Deprecated: Creation of dynamic property GeneralSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: Creation of dynamic property AbstractSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: Creation of dynamic property UserSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_init_login.inc.php on line 81

Deprecated: Creation of dynamic property CollectionSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: Creation of dynamic property Item::$objtype is deprecated in /usr/share/b2evolution/inc/items/model/_itemlight.class.php on line 164

Deprecated: Creation of dynamic property Item::$datestart is deprecated in /usr/share/b2evolution/inc/items/model/_itemlight.class.php on line 175

Deprecated: Creation of dynamic property Item::$coll_to_cat is deprecated in /usr/share/b2evolution/inc/items/model/_itemlight.class.php on line 1260

Deprecated: Creation of dynamic property ItemList2::$filterset_name is deprecated in /usr/share/b2evolution/inc/items/model/_itemlistlight.class.php on line 114

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /usr/share/b2evolution/inc/items/model/_itemlistlight.class.php on line 420

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /usr/share/b2evolution/inc/_core/_param.funcs.php on line 1407

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /usr/share/b2evolution/inc/_core/_param.funcs.php on line 1407

Deprecated: Creation of dynamic property ItemQuery::$dbtablename is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 78

Deprecated: Creation of dynamic property ItemQuery::$dbprefix is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 79

Deprecated: Creation of dynamic property ItemQuery::$dbIDname is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 80

Deprecated: Creation of dynamic property ItemQuery::$Blog is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 231

Deprecated: Creation of dynamic property ItemQuery::$cat_array is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 232

Deprecated: Creation of dynamic property ItemQuery::$cat_modifier is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 233

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: Creation of dynamic property ItemQuery::$assignees_logins is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 525

Deprecated: Creation of dynamic property ItemQuery::$author_assignee is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 557

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

Deprecated: Creation of dynamic property ItemQuery::$m is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 842

Deprecated: Creation of dynamic property ItemQuery::$w is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 843

Deprecated: Creation of dynamic property ItemSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: Creation of dynamic property Item::$switchable_params is deprecated in /usr/share/b2evolution/inc/items/model/_item.class.php on line 4737

Deprecated: Creation of dynamic property Item::$is_locked is deprecated in /usr/share/b2evolution/inc/items/model/_item.class.php on line 12180

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/skins/model/_skin.class.php on line 1509

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/_core/_template.funcs.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/_core/_template.funcs.php on line 405

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/_core/_template.funcs.php on line 406

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/_core/_template.funcs.php on line 407

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/b2evolution/inc/_core/_misc.funcs.php:10542) in /usr/share/b2evolution/inc/_core/_template.funcs.php on line 408

Deprecated: Creation of dynamic property tinymce_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property wikitables_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Return type of ExplodeIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/b2evolution/plugins/wikitables_plugin/_string_utils.inc.php on line 529

Deprecated: Return type of ExplodeIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/b2evolution/plugins/wikitables_plugin/_string_utils.inc.php on line 540

Deprecated: Return type of ExplodeIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/b2evolution/plugins/wikitables_plugin/_string_utils.inc.php on line 533

Deprecated: Return type of ExplodeIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/b2evolution/plugins/wikitables_plugin/_string_utils.inc.php on line 558

Deprecated: Return type of ExplodeIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/b2evolution/plugins/wikitables_plugin/_string_utils.inc.php on line 511

Deprecated: Creation of dynamic property auto_anchors_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property twitter_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property PluginUserSettings::$count_col_key_names is deprecated in /usr/share/b2evolution/inc/settings/model/_abstractsettings.class.php on line 121

Deprecated: Creation of dynamic property PluginUserSettings::$plugin_ID is deprecated in /usr/share/b2evolution/inc/plugins/model/_pluginusersettings.class.php on line 36

Deprecated: Creation of dynamic property videoplug_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property html5_mediaelementjs_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /usr/share/b2evolution/plugins/html5_mediaelementjs_plugin/_html5_mediaelementjs.plugin.php on line 61

Deprecated: Creation of dynamic property html5_videojs_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property mermaid_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property widescroll_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413

Deprecated: Creation of dynamic property table_contents_plugin::$classfile_path is deprecated in /usr/share/b2evolution/inc/plugins/model/_plugins.class.php on line 413
Progress on Moz2D
  • Front Page

  • Deprecated: Calling get_class() without arguments is deprecated in /usr/share/b2evolution/inc/_core/model/dataobjects/_dataobjectcache.class.php on line 248

    Deprecated: Creation of dynamic property ItemListLight::$filterset_name is deprecated in /usr/share/b2evolution/inc/items/model/_itemlistlight.class.php on line 114

    Deprecated: Creation of dynamic property ItemQuery::$dbtablename is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 78

    Deprecated: Creation of dynamic property ItemQuery::$dbprefix is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 79

    Deprecated: Creation of dynamic property ItemQuery::$dbIDname is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 80

    Deprecated: Creation of dynamic property ItemQuery::$Blog is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 231

    Deprecated: Creation of dynamic property ItemQuery::$cat_array is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 232

    Deprecated: Creation of dynamic property ItemQuery::$cat_modifier is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 233

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: Creation of dynamic property ItemQuery::$assignees_logins is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 525

    Deprecated: Creation of dynamic property ItemQuery::$author_assignee is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 557

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10537

    Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /usr/share/b2evolution/inc/_core/_misc.funcs.php on line 10542

    Deprecated: Creation of dynamic property ItemQuery::$m is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 842

    Deprecated: Creation of dynamic property ItemQuery::$w is deprecated in /usr/share/b2evolution/inc/items/model/_itemquery.class.php on line 843
  • Contact
Bas
2013-07-02

Progress on Moz2D

So again it's been a while since I've last posted on here, I guess anyone still reading my blog has probably gotten used to that so it's okay! I figured it was about time I'd update people reading along with some of the stuff that I've been working on lately(of course with the help of the rest of the Graphics team and others!). I will be using the term Moz2D in this post to refer to our new graphics API that was formerly known under the name 'Azure'.

Moz2D Stand-Alone Build & Repository

In order to make it easier for both ourselves, partners and potential 3rd parties interested in using Moz2D to build and work with the Moz2D API, I now have a stand-alone repository that contains the Moz2D basic library code, the player and some testing applications. The exact status of this repository is still to be determined, and no automation is applied to it yet, however we are making sure it keeps building and remains up to date! It can be found here. Some basic build instructions are available here, I will try to post more detailed build information, also for the different dependencies such as Cairo and Skia, somewhere in the coming weeks.

Direct2D 1.1 Integration

We've been working towards a Direct2D 1.1 backend in Moz2D. Direct2D 1.1 was included with Windows 8 and is provided as an update to Windows 7 users. It includes a wide range of API additions, several of which give us the ability to implement the Moz2D feature set with reduced and cleaner code. In addition to that some of the API additions should promise some performance improvements. We have refrained from using some of the new APIs in the Direct2D 1.1 implementation as of yet however, since at the moment they seem to increase the complexity without offering the expected performance benefits. As we begin rolling out Direct2D 1.1 integration to actual firefox users I'll attempt to provide more information on what we discover along the way.

Moz2D Recording & Performance Analysis Improvements

Another thing that we've been working on has been increased recording abilities as well as an increased ability to get useful information out of these recordings. Although the priority for this has been relatively low, steady improvements are being made and it has proven to be a large asset in the creation of new Moz2D backends.

First of all it's now possible to create a recording of a specific page using a single command when using Firefox nightly, an example looks like this (assuming 'recording' is a valid, clean profile of firefox):

firefox -no-remote -P recording -recording file://C:\Users\Bas\Dev\mytest.html -recording-output mytest.aer

We're currently still working out some problems which will often cause recordings to be terminated prematurely and therefore come up empty. But this should be fairly easy to fix. Do note this needs to be done on a system where Moz2D content is enabled, for now, this is only windows, although it should soon include OS X as well!

Once the recording is completed several (experimental) possibilities have been added. First of all the Moz2D player has gotten additional features, see a screenshot below for the updated look:

Player2D Screenshot
Click for a larger version

Note that it's now possible to replay the recording with different drawing backends (depending on your build). This easily makes it possible when adding backends to find flaws in new implementations by comparing drawing results with established backends. We've also added the possibility to analyze timings on a per-call basis to find performance bottlenecks for different backends. In addition to that a separate application called 'recordbench' has been added which is in a very early stage, this essentially is a very simple tool that reports timings for a recording across a range of backends. Trough this application we should be able to do automated performance comparisons between different drawing backends.

Finally we've added a micro-benchmark suite that allows us to make detailed performance comparisons on a per-backend basis. The intention of all this being to give us the ability to make well-informed decisions in the future as to what drawing backends to prefer on specific platforms/configurations.

This isn't necessarily all that we've been doing and I'll do my best to provide additional updates in the near future!

4 comments

# RyanVM on 2013-07-02 at 13:25

Bas, it’s been awhile since we’ve heard any new information in the Win7 text rendering issues caused by the IE10 platform update. What’s the status of that issue?

# Agnej on 2013-07-06 at 12:22

Does nvidia hardware not fully supporting directx 11.1 affect your direct2d 1.1 plans any bit? (and what about intel graphic chips?)

# Jet Villegas on 2013-07-10 at 18:32

Yes, there are those of us who click on your blog regularly looking for gold. Today is a happy day.

I’d love to see a live example of your benchmarks that show the “why” of this work. How is Firefox stacking up compared to others on your tests?

# Ievgen   on 2013-10-20 at 17:13

Hello,

thank you for your post and especially for this page with documentation on Moz2D https://wiki.mozilla.org/Platform/GFX/Moz2D

Could you please give an tip on how to build a helloworld program with Moz2D outside of Mozilla? I’ve managed to download the source code and to compile it, but I was not yet able to figure out how to draw a simple line with it.

Thanks in advance.


Form is loading...

May 2026
Mon Tue Wed Thu Fri Sat Sun
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
 << <   > >>