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: 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: 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: 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: 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: 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
Direct2D: Hardware Rendering a Browser
  • Front Page

  • 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: 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
  • Contact
Bas
2009-11-22

Direct2D: Hardware Rendering a Browser

A short while ago I wrote about my work on DirectWrite usage in Firefox. Next to DirectWrite, Microsoft also published another new API with Windows 7 (and the Vista Platform Update), called Direct2D. Direct2D is designed as a replacement for GDI and functions as a vector graphics rendering engine, using GPU acceleration to give large performance boosts to transformations and blending operations.

Why GPU acceleration?
First of all why is GPU acceleration important? Well, in modern day computers, it's pretty common to have a relatively powerful GPU. Since the GPU can specialize in very specific operations (namely vertex transformations and pixel operations), it is much faster than the CPU for those specific operations. Where the fastest desktop CPUs clock in the hundreds of GFLOPS(billion floating point operations per second), the fastest GPUs clock in the TFLOPS(trillion floating point operations per second). Currently the GPU is mainly used in video games, and its usage in desktop rendering is limited. Direct2D signifies an important step towards a future where more and more desktop software will use the GPU where available to provide better quality and better performance rendering.

Direct2D usage in Firefox
A while ago I started my investigation into Direct2D usage in firefox (see bug 527707). Since then we've made significant progress and are now able to present a Firefox browser completely rendered using Direct2D, making intensive usage of the GPU (this includes the UI, menu bars, etc.). I won't be showing any screenshots, since it is not supposed to look much different. But I will be sharing some technical details, first performance indications and a test build for those of you running Windows 7 or an updated version of Vista!

Implementation
Direct2D has been implemented as a Cairo backend, meaning our work can eventually be used to facilitate Direct2D usage by all Cairo based software. We use Direct3D textures as backing store for all surfaces. This allows us to implement operations not supported by Direct2D using Direct3D, this will prevent software fallbacks being needed, which will require readbacks. Since a readback forces the GPU to transfer memory to the CPU before the CPU can read it, readbacks have significant performance penalties because of GPU-CPU synchronization being required. On Direct3D10+ hardware this should not negatively impact performance, it does mean it is harder to implement effective D2D software fallback. Although in that scenario we could continue using Cairo with GDI as our vector graphics rendering system.

Internally here's a rough mapping of cairo concepts to D2D concepts:

cairo_surface_t - ID2D1RenderTarget
cairo_pattern_t - ID2D1Brush
cairo clip path - ID2D1Layer with GeometryMask
cairo_path_t - ID2D1PathGeometry
cairo_stroke_style_t - ID2D1StrokeStyle

More about the implementation can be learned by looking at the patches included on the bug! Now to look at how well it works.

Website Benchmarks
First of all let's look at the page rendering times. I've graphed the rendering time for several common websites together with the error margin of my measurements. The used testing hardware was a Core i7 920 with a Radeon HD4850 Graphics card:

There's some interesting conclusions to be drawn from this graph. First of all it can be seen that Direct2D, on this hardware, performance significantly better or similarly on all tested website. What can also be seen is that on complexly structured websites the performance advantages are significantly less, and the error margin in the measurements can be seen to be larger (i.e. different rendering runs of the same site deviated more strongly). The exact reasons for this I am still unsure of. One reason could be is that the websites contain significant amounts of text or complex polygons as well, for those scenarios with few transformations and blending operations the GPU will show smaller advantages over the CPU. Additionally the CPU will be spending more time processing the actual items to be displayed, which might decrease the significance of the actual drawing operations somewhat.

Other Performance Considerations
Although the static website rendering is an interesting benchmarks. There are other, atleast as important considerations to the performance. As websites become more graphically intense dynamic graphics will start playing a larger role. Especially in user interfaces. If we look at some interesting sites using fancy opacity and transformation effects(take for example photos.svg), we can see that D2D provides a much better experience on the test system. Where on sizing up photos GDI will quickly drop in framerate to a jittery experience, Direct2D will remain completely smooth.

Another interesting consideration is scrolling. Since on scrolling only small parts of the website need to be re-drawn, it has the potential of creating a much smoother scrolling experience when using Direct2D. This is also the feedback we've received from people utilizing the test builds.

Conclusions
Although the investigation and implementation are still in an early stage, we can conclude that things are looking very promising for Direct2D. Though older PCs with pre-D3D10 graphics cards and WDDM 1.0 drivers will not show significant improvements, going into the future most PCs will support DirectX 10+. PCs in the future could allow providing extremely smooth graphical experiences for web-content like SVG or transformed CSS. Interestingly, Microsoft has also announced IE9 will feature Direct2D support as well only shortly ago. Feel free to download and try a build of Firefox with Direct2D support here. There are several known issues and in some cases some rendering artifacts may appear. In general it should be quite usable on D3D10 graphics cards. It may or may not work on D3D9 graphic cards, depending on exact graphics card specifications.

Well, that's it for now, I hope I've given you an interesting first glance into the future of desktop graphics.

NOTE: If you want to do your own performance analysis, please see my other blogpost about the subject here

NOTE2: For those not used to running experimental builds. If you would just execute this .exe while having normal firefox running. You will get another window of your normal firefox. You need to either close your normal firefox, or run it from the command line on a different profile, using: 'firefox -no-remote -P d2d'.

265 comments

# Chris on 2009-11-22 at 23:18

Hi Bas, this is fantastic news and wonderful work. The obvious question is: do you think this will be ready in time for Firefox 3.7?

# Damian on 2009-11-23 at 00:57

Amazing work!

I can’t wait for this to be stable enough to hit the trunk. Graphics acceleration brings such a huge jump in performance, just a shame for the moment it only really benefits Vista + 7 and not other platforms.

# [Member]   on 2009-11-23 at 02:08

@Chris: Well, obviously that’s a good question. The problem with something like this is a lot of work is involved in QA-ing something like this. Deciding on a good strategy for what hardware to enable it on, and what hardware to disable it on. We don’t want people with decent CPUs but older graphics hardware suffering from performance regressions.

# WL on 2009-11-23 at 04:10

It’s really a good news, but bad for me, a 7950GTX user.
I’m really interested in how it perform on video element and even blending with some svg filters at a high resolution (1920*1080?).

# [Member]   on 2009-11-23 at 04:26

@WL: If you have any specific SVG you want me to test for you, feel free to post it, and I’ll have a look. Also note it -should- work on your 7950GTX as the current test build has it always enabled, even on DX9 cards. It might be buggy though!

# WL on 2009-11-23 at 06:03

@Bas: Thanks, Let’s take some examples from the open web :)
1. SVG filter + video element
http://people.mozilla.com/~prouget/demos/round/index.xhtml
2. HD video:
http://screencasts.ubuntu.com/
http://screencasts.ubuntu.com/videos/2009/09/24/ISO_Tracker.ogv
3. transform + video
http://www.zachstronaut.com/lab/isocube.html

Could you post some benchmark about them here, mostly about the CPU usage and frame rate.
If they are playing too smooth, please use “ctrl +” to zoom in.
Thanks again!

# [Member]   on 2009-11-23 at 06:50

@WL:

As I have no very good dynamic measurement tools, here’s what manual CPU usage monitoring and framerate estimates get me. Again, core i7 920, HD4850:

D2D:
1. Framerate smooth up until max zoom, CPU usage 7% +/- 2%
2. Framerate smooth, CPU usage 2% +/- 1% at full screen
3. Smooth, until max zoom, CPU usage 8% +/- 1%

GDI:
1. Single CPU usage maxed out at 12.5% from normal zoom, stuttering at higher zoom levels.
2. Normal size smooth, CPU usage 8% +/- 1%, fullscreen +/- 5-10fps, using 1 CPU plus little over a second, at 14%
3. Almost smooth at max zoom, CPU usage 10% +/- 2%

# WL on 2009-11-23 at 07:51

Ah, your CPU is too powerful, and that’s the biggest problem here ;)
I don’t have a win7 box, so, waiting for your Direct 3d/ogl backend.

# Stephane Loeuillet   on 2009-11-23 at 07:56

Anyone working on OpenGL FireFox acceleration ? (still via Cairo)

Or is all work concerning Cairo via OpenGL stopped ?

# [Member]   on 2009-11-23 at 08:04

@WL: And still we’re seeing tremendous improvements with D2D! :-) Note that 12.5% is maxed out, since it’s a 4 core with HyperThreading, i.e. 8 cores, 12.5% is the max of a single core.

Also I’ve updated the file pointed to with the build, all known graphical artifacts should now be gone!

# Damian on 2009-11-23 at 09:02

If QA is the issue, it seems like a community project could really benefit. Something a long the lines of building several tests where a user inputs the CPU/GPU config they have and then proceeds to run the tests with each build.

And then raises a warning at the end if there were any rendering issues in the GPU version.

It seems a much better solution for a company like Mozilla who have such an active test community vs. Microsoft who already have huge hardware labs for testing software.

# Henrik Gemal on 2009-11-23 at 10:45

Super work. If you can provide test builds I’m sure that many people will help you QA it.

# Chris Lord on 2009-11-23 at 15:23

Very cool stuff, I’m interested to know if this D2/3D-based back-end has any feature regressions? Especially interested what happens concerning plug-ins.

I’ve only worked on Mozilla from a Linux perspective, but do windowed and windowless plugins continue to work? And would there be any performance regressions with windowless plugins?

If windowless plugins work similarly to how they work on Linux, I’d expect there perhaps to be a bit of a performance hit with having to copy from the D3D surface to whatever the native surface specified by the NPAPI is for Windows, and back again?

# Benjamin Smedberg on 2009-11-23 at 16:07

Is it possible/practical for us to ship a Direct2D backend and a GDI backend in the same build, so that we could get these performance gains on Windows 7 and Windows Vista with the new service pack, while continuing to support Windows XP and non-upgraded versions of Vista?

# [Member]   on 2009-11-23 at 16:47

@Chris: No testing has been done in this area, but I suspect for windowed plugins there shouldn’t be a problem. Windowless is a more interesting area :-).

@Smedberg: Yes, that’s perfectly possible :) If you try my testbuild on Windows XP it should work just fine. Just not be using the D2D backend or DirectWrite.

# [Member]   on 2009-11-23 at 19:35

Uploaded a new build fixing some scrolling issues on some hardware. Should also make it more usable with decent D3D9 cards! @WL: So if you’ve got an update Vista box, it should work for you too ;-).

# Dan   on 2009-11-23 at 22:33

This sounds great. When can we get accelerated 2D graphics on Linux though?

# skierpage on 2009-11-24 at 00:20

Wow. I don’t see any mention of this new Direct2D backend on cairo@cairographics.org or its wiki, I’m sure there will be a lot of interest from other Cairo users.

@Dan, Chris Wilson and others have been working on an OpenGL accelerated backend for Cairo but it’s not official yet. I don’t know how hard it would be for Mozilla to target an additional graphics backend.

BTW, can you switch your blog software to ISO8601 YYYY-MM-DD dates? 10/12/09 is transatlantically ambiguous.

# [Member]   on 2009-11-24 at 03:47

@skierpage: There’s definitely some people at Cairo who know! Also, I’ve tried to get decent dates in but it seems this skin won’t show them even if I set the right locale. Need to look at what I’m doing wrong.

# tia on 2009-11-24 at 08:32

I notice that the glyphs in Thai language rendered incorrectly. The glyphs which must appear below and above character glyphs are not visible, e.g. มิถุนายน became มถนายน. However, the glyphs which are taller than others are working fine, such as ไทย.

# Øystein Hole on 2009-11-24 at 13:35

This is cool stuff! It’s great to see such widely used software making progress in this field.

FYI I’ve tested one of my company’s plugins based on Qt/Coin3D/OpenGL and it seems to be running fine inside the test build.

As a final note, I got some artifacts when hovering over thumbs in the W7 taskbar, the text disappearing but most images rendering correctly. Otherwise, it seems quite stable and consistent in page rendering.

# John on 2009-11-24 at 15:04

This is excellent! And very needed indeed, because at least on Windows, resizing (of both images and video) on Firefox is both mediocre quality (specially when downsizing) and very bad performance (just scrolling a resized image is a pain, and video almost turns into a slideshow for fullscreen playback on high resolutions - this certainly doesn’t happen with other software resizers).

Even with this, it’d be good if somebody could improve the software resizer, for the cases where D2D isn’t available.

# [Member]   on 2009-11-24 at 16:44

@Tia: I’ll look into this, the problem for a lot of these language is that in many cases my language skills in them are a bit rusty ;-). Thanks for giving me something to test with though.

@Øystein: We have noticed those artifacts, since I haven’t talked to Robarnold about how we draw those thumbs. I’m unsure what causes them. I don’t think we normally have to do anything special with them, so this could be an issue with DirectWrite in general.

# Chris on 2009-11-24 at 16:55

This really works great! I had to launch in safe-mode but other than that it runs fine. I’m not absolutely happy with the render quality of small text (black on white), but I made some websites that use javascript fades (via mootools) on large texts and images and the transitions are just super smooth!

I’d love Firefox to beat IE on Direct2D integration! :)

# Theo on 2009-11-24 at 18:58

that’s awesome but i hope developers do something about open-source’s OS too! I’m not sure what kind of rendering are implemented on linux-liked but I know if someone go foward for, probably would be fckn faster!

# Luminus on 2009-11-24 at 20:23

Cool stuff ! Here’s a bug for you :)

Install flash plugin, go to the following webpage and scroll up and down. On my machine, the embedded youtube video (without clicking on it to run) keeps sticking around in the same position on screen when you scroll up and down, and causes weird corruption.

http://www.engadget.com/2009/11/24/fring-adds-skype-video-support-on-s60-threatens-to-make-front-c/

Test machine is an Win7 x64 with Radeon HD 4870x2, on latest AMD driver on their website (11/4/2009 - 8.671.0.0).

# anonymous on 2009-11-24 at 20:46

Why can’t Firefox use DirectDraw (the older 2D hardware accelerated API) on Windows XP? DirectDraw also provides extremely fast rendering.

# [Member]   on 2009-11-24 at 20:58

@Luminus: When did you download that build? That should have been fixed since this morning :-). Please let me know if it still persists for you on the current package.

@anonymous: DirectDraw offers much more limited functionality, making it extremely tricky to implement as a general purpose cairo backend. It might offer some advantages when blitting, but I doubt it would be worth it.

# Klaus on 2009-11-24 at 21:21

Looks great, Google Wave runs smooth, everything rendered as intended and I can’t wait to see this in a final product. (But then again I always like to use the latest stuff ^^) And yes not everything is rendered in previewmode under Win7 but isn’t happy yet with this anyway.

# MrX1980   on 2009-11-24 at 22:01

Hello

Great to hear from this nice “project".

Here a test on:
AMD Athlon 64 Venice 3200+@2288MHz
2GB DDR PC400 RAM CL2
ATI HD4670 AGP8x with Catalyst 9.11 AGP
Windows 7 x64 Ultimate german

Futuremark Peacekeeper

Firefox 3.6 beta 3 = 2058
Rendering = 1439
Social networking = 1700
Complex graphics = 3548
Data = 4130
DOM = 1778
Text = 2057

Firefox 3.7pre1 d2d (20091124) = 1967
Rendering = 1906
Social networking = 1923
Complex graphics = 4434
Data = 3370
DOM = 1391
Text = 1714

(both started with an empty profile)

# Luminus on 2009-11-24 at 22:19

Oh cool. Didn’t realize you posted a new build. I downloaded yesterday around noon. Yep that bug seems gone.

Ok, here’s another one that I’m guessing you knew about and just didn’t get around to coding the error conditions. Handle device loss in D2D. I had firefox running while updating driver, and after the newly installed driver comes back, Firefox stops rendering anything. :)

# MrX1980   on 2009-11-24 at 22:25


Firefox 3.7pre1 without d2d (20091124) = 2115
Rendering = 1577
Social networking = 1938
Complex graphics = 3516
Data = 3894
DOM = 1735
Text = 2053

# Jan on 2009-11-24 at 22:39

Text in the alpha release looks kind of blurry compared to GDI rendering in Firefox 3.5. Is this expected when using D2D or is it just a matter of fine-tuning? (ClearType enabled)

See screenshot:
http://twitpic.com/show/thumb/qsler.png

# [Member]   on 2009-11-24 at 22:56

@Luminus: Yes, that is known, it’s a pain to handle it :-) But I’ll get to it.

@Jan: D2D renders a bit thinner but it shouldn’t look overly fuzzy. If it does that is a bug :-)

@MrX1980: Well, first of all those benchmarks show some odd results, obviously rendering is displayed as faster. However I don’t know why the ‘Data’ and ‘DOM’ numbers diverge so strongly, since I’m not sure what they measure but it doesn’t sound like there should be a difference for with/without D2D. I also cannot find details quickly about how futuremark peacekeeper executes its measurements and what kind of statistical analysis it does on them. What I can advise you to try is run photos.svg or maps.google.com in firefox-gdi, another browser, and firefox-d2d. The difference is quite visual. Complex dynamic graphics we see about a 4 time speed-up.

# Jan on 2009-11-24 at 22:57

Sorry, here’s the correct screenshot:

http://i49.tinypic.com/b6339d.png

# [Member]   on 2009-11-24 at 23:07

@Jan: Ah, yes, that effect is expected, the subpixel antialiasing DirectWrite performs is a bit gentler, so is the stroking. Note that is you find the cleartype in directwrite disturbing you can tune cleartype very finely in your control panel’s display setting. There is a known bug with light text on a dark background on some hardware though.

# [Member]   on 2009-11-24 at 23:24

@MrX1980: Well, I’ve examined the benchmark as well. There’s a couple of things here, first of all, I was not able to get a statistically significant difference between either D2D or GDI in any benchmark but Complex Graphics. Also, it is using only 1/4th of display real estate on my machine. When filling relatively small surfaces GPUs will give you less benefit. And the overhead of other thing associated with rendering is very large. This would probably explain the very small increase in rendering and complex graphics, the test does not measure -just- the time it takes to render, I suspect it measures a lot of overhead as well. For a couple of the tests though, there was a clear visual difference for me, the smallest linear gradient rectangles were a bit smoother. And the test with the bouncing blue balls obviously performed better under D2D. All these factors combined make it not a very good test for browser rendering speed sadly, the most important probably being the small size of the fill area.

# Michal on 2009-11-25 at 00:38

Tested on photos.svg, using:
- UNDERCLOCKED single core Athlon64 CPU at 800MHz
- Radeon HD2600Pro (DX10)
- latest Catalyst 9.11 drivers (WDDM1.1)
- Windows 7 64-bit

Results:
GDI - heavy stuttering, 100% CPU utilization
Direct2D - VERY smooth movement & zooming, 50%-75% CPU utilization

The UI redrawing and overal responsiveness (XUL?) is still rather bad, especially at 800MHz.

I’d like to ask ïf Direct2D and DirectWrite could pave the way for SMOOTH page zooming (pixel-level accuracy)?

# Swift on 2009-11-25 at 01:36

Any chance we could see this being backported to the upcoming 3.6 as a custom build?

# Brandon on 2009-11-25 at 01:58

Wow, this preview build is niiiiiice.

Things just feel smoother. Especially bing and google maps. I really hope this makes it into the final release of Firefox 3.7. This process has to be accelerated and made a top priority.

# [Member]   on 2009-11-25 at 02:49

@Michal: Not 100% sure, but UI redrawing could bee a result of the uxtheme library still drawing the ‘theme’ (buttons, textboxes, checkboxes, etc.) using GDI, which is only then blended in an accelerated fashion back to D2D. Once we figure a way to draw the theme more effectively, or perhaps cache it, this should improve.

@Swift: I wouldn’t count on it :)

# WL on 2009-11-25 at 03:35

Still don’t have a vista box to test.
Isn’t the direct2d based on DX10/10.1 device? I don’t know much about it…
Is there any work on the direct draw/3d backend?

# [Member]   on 2009-11-25 at 03:52

@WL: Well, yes it is, but there’s something included with the Vista platform update called ‘D3D10Level9′ it sort of ‘emulates’ D3D10 on a D3D9 card, and somewhat limits the features you can use, it should work, although it might not perform that well. I think with a 7950GTX you might very well find it works alright.
I doubt there will be a DDraw/D3D backend for cairo. It would be a lot of work, although Cairo or D2D could in theory do the tesselation for you. I’m not sure if it’s worth it looking forward though, but I might be wrong.

# Chris on 2009-11-25 at 09:31

I get an instant crash when I try to go to the sunspider benchmark: http://www2.webkit.org/perf/sunspider-0.9/sunspider.html (Win7 x64)
I know it only tests Javascript performance, so why would it crash your build?

# Mark Perris on 2009-11-25 at 09:53

This is great work, especially since IE9 will feature this too.
If you do decide to disable support on DX9 cards, can you add a pref so that it can be turned on for any hardware that has at least compatibility at the API level? A lot of us with lower end machines have DX9 cards, and any performance improvement (even if it’s buggy in edge cases) would be very welcome. It would also be very useful for testing and development.

# urmel on 2009-11-25 at 10:30

i think it is a big mistake using d3d. mozilla was never bound to microsoft for good reasons (linux, mobile computing etc), so why should it be now? OpenGL is much more compatible to other (all?) platforms!

# J on 2009-11-25 at 13:27

This is incredible. The benchmark numbers just don’t do it justice. This thing trounces everything else so badly I doubt I’ll be able to use any other build until this gets to trunk. Scrolling is now mesmerizing, perfectly smooth and v-synched. And also, as expected, with resized or transparent images it’s a pair of orders of magnitude faster (this won’t show up in benchmarks because pages are avoiding them for the very performance reason). Ans this is just with a 2-year-old mid range mobile graphics card.

I know I’m a bit skewed but I also think this should be top priority, specially considering it seems to work pretty well already.

# morgan   on 2009-11-25 at 15:28

So is this it for Linux support ? Or will that be replaced with O3D ?

If Mozilla simply ignore this feature on Linux you will loose I lot of volunteers - It would also be against everything Mozilla has done previously..

Yes your biggest userbase is Windows, but i’m sure you get a generally higher standard of bug report form a Linux use.

# Harsh on 2009-11-25 at 16:23

Don’t know if this will help you but i recently came across a PDC09 talk about Direct2D/DirectWrite that i thought might possibly help you further optimise your effort to make your Direct2D code yet even more faster.

http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/CL14.wmv

# James   on 2009-11-25 at 16:35

This site that I go to normally locks up your test build
http://usbloadergx.koureio.net/downloads/revisions

# [Member]   on 2009-11-25 at 16:42

@Urmel: @Morgan: Obviously we will aspire to deliver the highest quality and performance rendering on all platforms. There is no Linux alternative to Direct2D though. Partially because building a system like Direct2D is extremely complex, even when using Cairo’s tesselation it is still very difficult to correctly use the Shaders for everything, deal with all the edges and provide subpixel text anti-aliasing. The trick here is that any implementation, needs to be -totally- complete, since software fallback is extraordinarily expensive because it requires the GPU and the CPU to synchronize. Causing stalls.

We are working on providing hardware acceleration for some operations on other platforms. It is a more difficult struggle though, and it would be foolish for us not to use more advanced systems when those are provided to us by the OS. Note we have always tried to support the best frameworks for all platforms. OpenGL is also poorly and inconsistently supported on Windows & Linux.

@Harsh: Thanks! Haven’t had the time to view it yet, but anything should be helpful!

# Steven on 2009-11-25 at 16:54

I absolutely love it. In fact, I am blown away just how much smoother it feels. Thnx alot, now I hate using FF3.6 because I know it could be that much better ;-)

Anyways, it consistently stops rendering for me after a few minutes, and sometimes even during the initial load. It doesn’t crash though, just stops rendering.

Would be glad to provide testing with other builds, or send a log (but would have to tell me how etc.).

Any place where we can get updated builds with this build in, as soon as this stopping in rendering is a bit better (i dont care if i have to restart the browser every 30 minutes) I will use this thing full time.

Killer feature…though I feel bad for the IE9 guys, they seemed so proud and now their spotlight gets stolen :-(

# [Member]   on 2009-11-25 at 17:06

@Chris: I know this is always annoying.. but works for me :). Could you try again with the current build. I uploaded a new one fixing some bugs right before your post.

@James: Confirmed and reproduced. I’ll let you know when I have a fix.

# [Member]   on 2009-11-25 at 17:07

@Steven: Hrm, that’s very strange! Do update your graphics drivers to the absolute latest. Also try and see if there’s anything going on which could cause a device reset. Right now I don’t have any other immediate ideas sadly, but I’ll let you know as soon as I have a better build out or something with useful logging.

# [Member]   on 2009-11-25 at 17:32

@Alex: Do you have a mid-end D3D9 card? That would certainly do it…

# Steven on 2009-11-25 at 17:40

@Bas: I just updated from catalyist 9.10 to 9.11, same thing.
By device reset, do you mean the thing where the display driver crashes, it flickers shortly and you get that baloon thingy telling you the driver was restarted? If so, then now, I’ve never had to that on Win7 (on Vista a long time ago I saw it a few times).

BTW here is a SS of what it looks like afterwards. At first it looks just like normal, but then you realize that it doesnt get refreshed. Also mouse clicks are ignored, and the mouse doesnt change “form” anymore, no matter where in the browser window you are. If you resize the window it ends up looking like this:
http://img69.imageshack.us/i/37d2derr.png/

As I said, sometimes its after just 30 seconds, sometimes it survives a few minutes. Doesnt seem bound to any particular site either.

As said, if i can help in any way let me know.

My specs are
X2 4200+
HD2600 XT AGP
Win 7 x64

# [Member]   on 2009-11-25 at 17:54

@Steven: I’m absolutely baffled. I really wonder what’s going on there, it would seem that somehow we crash the GPU or atleast the device resets. You can try again once I fix handling device resets. Although it’s probably not a good thing if your device resets so often!

@James: I’ve updated the build, you can download again and your crash should be fixed.

# James   on 2009-11-25 at 18:01

@Bas
Thanks for the quick update. It works now
My specs are
Phenom II 940
Geforce gts 250
Gigabyte GA-MA78GM-US2H mb
4gb of 1066 ddr2 memory
Windows 7 64bit

# [Member]   on 2009-11-25 at 18:22

@Alex: Yes, that’s your problem. Obviously in the real builds we will just fall back to GDI in those cases, but I don’t detect that at this point. (Mainly to make sure that if someone is using the test build, they’re either on D2D, or they crash).

# lucideer on 2009-11-25 at 18:29

RT @opvard Hm. [Opera] Presto 2.4 with software rendering is faster at iBench than Firefox with Direct2D hardware acceleration?!

http://twitter.com/opvard/status/6050705367

Interesting?

# [Member]   on 2009-11-25 at 19:22

@Lucideer: Along with the other people benchmarking performance, please read my post on performance analysis :-). On the other hand, thanks a lot for taking an interest though.

# Steven on 2009-11-25 at 19:30

@Bas: error seems to be gone now for me.
I realized you had updated the build and just redownloaded it and have been running the new build now for 1h+ without the issue appearing.

The old zip file (and extracted files) got overriden by the new one unfortunatly, so all I can tell you is that I downloaded the old one at 11:28 (GMT+1) this morning and the new one at 18:32, just about an hour ago.

Maybe if you’re interested that helps you figure out the fix. I dunno. If the issue reappears I’ll leave a msg, but I guess you can consider it solved for now.

# [Member]   on 2009-11-25 at 20:07

@Mark: You send me an e-mail with some questions, but my e-mails to you appears to be bouncing :-) If you still want an answer, please re-mail with a working e-mail addy.

# Steven on 2009-11-25 at 20:30

Sorry to bother you again, but I thought I’d share my Peacekeeper results with you. Perhaps they are of interest to you (or others):

http://img513.imageshack.us/img513/2576/browserspeed.png

# [Member]   on 2009-11-25 at 21:49

@Steven: For you too my performance analysis posts might be interesting. This build does not use all the more advanced compilation options the normal nightlies/build server builds do. So it’s expected to be slower than a normal production build in many cases. You can switch off D2D and switch on GDI though, the procedure is discussed in my other post :-).

# acreda on 2009-11-25 at 23:44

@bas

As I Linux user, I am dismayed by your comments but completely understand them as well. OpenGL has mostly been held back by the graphic companies that have refusted to show their work to the community so they cannot learn/improve.

I hope all the work that the Mesa/Gallum3d team are making in 2d/3d will pay off for things like this soon……

# Oz   on 2009-11-26 at 08:50

Seem like there is a problem with right to left languages like Hebrew, try and go to a forum like bgu.co.il, and put a smiley (:))

It will do :(, while the buttons I press are the same as 3.5 (on my keyboard), so I need to type :( for having :) and the opposite.

Also, typing is a little slow on this version, and I hope for better GPU acceleration to! (Also, when I have a mistake and press the right mouse button, it takes like a time, some weird delay)


# Oz   on 2009-11-26 at 08:51

Also, will there be a 64bit version of this one? with all the flags and compile options of the nightly build for max performance ?

# Oz   on 2009-11-26 at 09:19

BTW
Why not keep with the latest nightly build?

# Mitch 74 on 2009-11-26 at 10:06

About acceleration on other platforms: isn’t it possible to make use of compositing and RENDER when available? While I do understand that Direct2D has an advantage in how much it can take out of a device, I thought that the X protocol and those extensions allowed direct hardware 2D acceleration use (at the very least, direct VRAM manipulations) - or is that already the case in Cairo?

Side note on Xorg systems: currently, NVIDIA and AMD proprietary drivers positively SUCK at 2D. Please try ati and nouveau drivers for Firefox benches - I wonder if Direct2D would really bring an improvement in those cases.

I was under the impression that GDI+ was slower in Vista+ than in XP/2000 (in the former’s case, with themes disabled); I don’t have native systems with those OSes installed, I wonder what’s the delta between ‘fast’ GDI+, ’slow’ GDI+ and Direct2D.

# Chris on 2009-11-26 at 11:25

@bas
Sunspider still crashes for me, I just tried with your latest build. Curiously even a google search for sunspider results in a crash. Is there a way for me to get further information what causes the crash?
I’m using Win 7 x64 with a Nvidia 8800 GTS 512 and the last beta drivers 195.55

# Oz   on 2009-11-26 at 12:40

http://pandas.co.il/

Seem like links on the right side looks ugly, something is bad with the fonts.

# Mika on 2009-11-26 at 12:45

I’m having scrolling problem with Nvidia gtx 260 and windows 7 x64. When you scroll down bottom of the screen leaves trails. Those trails go away if the window is somehow redrawn. It does not happen on every web page but for example on this page it does happen. Also it doesn’t happen if you scroll up. I have tested 195.62 and 191.07 drivers.

# Mika on 2009-11-26 at 12:54

Continuation to previous post. If you remove status bar bug goes away.

# [Member]   on 2009-11-26 at 13:35

@Oz: The performance problems are unexpected. Do you have a D3D9 or D3D10 card? Also I don’t expect a 64-bit build. It’s not easy with firefox :-). There will be a build with all optimizations. But keeping up with the latest nightlies and running all optimizations is a pain with the frequency I’m updating things. Right to left language I know don’t work, I sadly can’t read them :-) But I’ll try to fix them anyway.

@Chris: Weird, I have no idea what’s going on there, no other reports either. I don’t see anyway you can help me right now in finding out what it is, but I’ll certainly keep looking. I wonder if you have a corrupt font table or something like that somewhere.

@Mika: Interesting, did you try the latest build? (After last night) Otherwise I’ve spoken one other person with issues on the GTX260. I’ll let everyone know if I have any idea what causes this.

My appologies to all those experiencing issues, but is is a test build after all! :-)

# Oz   on 2009-11-26 at 16:13

Thanks for the repley and the great work!

I am running 2x4870, so yeah my card is DX10 (even 10.1) and I have Win7-64bit.

Also, many times the program is unstable, I haven’t been able to figure it out where and when it happens, but it is like the page goes blank and like Firefox is still operating, but I can’t do a thing (excepct close it “by force"), even when I press the X for closing it, it shows the “There are tabs…” dialog, but I don’t see a thing (just a blank dialog)

and I have enough memory, (8GB of ram, and most of it is free, only Firefox is running)

# James   on 2009-11-26 at 16:54

Can you make a blog with a changelog so we know when you update the file? Thanks for the great work!

# [Member]   on 2009-11-26 at 16:55

@Oz: Hrm, interesting, also, with 8 GB RAM, it doesn’t really matter if you have other things running ;). Since it’s a 32-bit build it can only address 2 GB of user space anyway.

@James: Hrm, I’ll try to see if I can set that up.

# dcdead on 2009-11-26 at 17:20

Hi!

The version feels really smooth.

is there a way to disable clear type completely? On my SPVA Panel it just can’t be tuned to display sharp fonts (It’s a common SPVA problem)

# [Member]   on 2009-11-26 at 17:30

@dcdead: You should be able to do that from your windows settings, in the Control Panel there should be configuration settings for cleartype. My test build simply should follow your configuration.

# Chris on 2009-11-26 at 19:06

@bas
I downloaded the debugging tools from MS. I hardly know how to use them, but this is reported when your build crashes on the sunspider site:

0:000:x86> g
(684.fdc): C++ EH exception - code e06d7363 (first chance)
(684.fdc): C++ EH exception - code e06d7363 (first chance)
(684.fdc): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files (x86)\Mozilla Firefox 3.7\xul.dll -
xul!gfxWindowsGDIFontGroup::MakeTextRun+0x7b5:
6faf27ac 8b08 mov ecx,dword ptr [eax] ds:002b:00000000=????????

Don’t know if this is any help…

# [Member]   on 2009-11-26 at 19:25

@Chris: That’s very off, seems like you’re partially using the wrong build. Make sure you completely shut down your normal firefox before starting this build. It shouldn’t be looking at the xul.dll in your normal firefox directory at all.

# Chris on 2009-11-26 at 20:42

@bas
no, I’m actually running your build from that directory. If I’m running it from c:\temp\firefox the report looks like this
(1128.1300): C++ EH exception - code e06d7363 (first chance)
(1128.1300): C++ EH exception - code e06d7363 (first chance)
(1128.1300): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Temp\firefox\xul.dll -
xul!gfxWindowsGDIFontGroup::MakeTextRun+0x7b5:
67e427ac 8b08 mov ecx,dword ptr [eax] ds:002b:00000000=????????

# [Member]   on 2009-11-26 at 21:39

@Chris: Hrm, two strange things there, the build shouldn’t have symbols.. although I might have forgotten to strip them. It also seems it’s trying to use the GDIFontGroup, which suggests it’s not using D2D at all. I’m not sure why this is. I need to think about it.

# Oz   on 2009-11-26 at 22:11

I hope there is a new and improved build from you on the way :)

# Draizkc on 2009-11-26 at 22:16

This is amazing!

Hopefully we’ll see it soon in Firefox.

# dcdead on 2009-11-26 at 22:52

@bas: Nope, clear type is turned off in windows and firefox 3.6 does not use, whilst it is enabled in your 3.7

# Spyd   on 2009-11-26 at 23:19

I’m impressed with the performance that I get from your build of Firefox. Google maps works smooth when zooming… in Chrome the zoom is an instant snap.
By the way, I get some strange bugs; If I click on any menu from the bar, and then move the cursor to another menu, the only thing rendered is the shadow. Example pic: http://img171.imageshack.us/img171/7816/firefox37menubug.png
It happens too when opening a popup menu.
When only the shadow is visible, if you move the cursor over the transparent menu, it appears. When it works, the highlighted item isn’t synchronized with the cursor position.
I have a similar synchronization problem with selecting text.

My specs:
Win7 64
PhenomII 940
Radeon HD4870 with 8.671.0.0 driver

# [Member]   on 2009-11-26 at 23:29

@dcdead: I will look into this, it should be reproducable for me by disabling cleartype on my monitor. Thanks for your feedback.

@Spyd: Interesting, I have heard of a similar problem. I think I might have an idea what causes this, I will do my best to fix it.

# Steven on 2009-11-27 at 13:37

I have the same problem as Spyd.

Heres a few more quircks I’ve found:

I can’t select any fonts in the options, list is just empty.

Some languages are rendered incorreclty, such as thai which has those tonal marks on top of the charachters that are missing.

When clicking on show all tabs, and hovering over a tab things get strange.

You can see examples in the link below:
http://img689.imageshack.us/gal.php?g=fontsy.png

Cheers

# Pyarn on 2009-11-27 at 20:28

What happens if many tabs are opened at the same time while gaming?as I usually leave my browser open while gaming.. I tried opening around 20 tabs and my GPU memory usage jumps from 180MB to 500++ MB which is similar to my GPU memory usage when I’m playing Dragon Age Origins (1280x1024 Max 4AA on GTX275), didn’t test it with gaming though.

# [Member]   on 2009-11-27 at 20:43

@Steven: Thanks for the feedback, I’ll see what I can do, hopefully I can provide some significant improvement over the weekend.

@Pyarn: In theory D2D and D3D should manage the cache and make sure it the much used textures in your game get priority. I’ve not done any testing with this though.

# Steven on 2009-11-28 at 01:24

Awesome Bas, many thnx for your hard work.

I’ll continue testing this thing and provide feedback, it works very well already.

Little suggestion, if you update your build could you maybe just change the filename to a data and time or something. Just something so we can see if an updated build is available. Dont bother posting a new blog entry for every update of course, I’m sure you have better things to do.

# Oz   on 2009-11-28 at 08:34

Yep, I am waiting for and update and many fixes to, hope for even a better performance.
And like many said before, please update the file name so we can know of a change

Thank you!

# [Member]   on 2009-11-28 at 15:19

@Oz: Problem with changing the filename is that several websites have deeplinked directly to my build :(

# Oz   on 2009-11-28 at 15:19

OK, so when will a new build be here please?

# [Member]   on 2009-11-28 at 16:01

@Oz: There will be a new build tomorrow, but it should fix a couple of issues, although I’m not sure it will fix yours.

# Steven on 2009-11-28 at 16:03

@bas, isnt that even more reason to change the filename prediodically? You want people to come to your blog to get the build right? No?
Some of them might even leave feedback where its easy for you to see as opposed to some random forum they got the link from.

BTW: site go down there for a while?

# Oz   on 2009-11-28 at 16:11

OK, Thanks for the great work!
Hope you can put even some more optimizations so we can have even a faster Firefox :-)

# Oz   on 2009-11-28 at 19:29

Also, I have to come notice a “bug” when writing text. Right now when I am writing text, it kind of “very slow” (and yes I have a very powerful PC), every thing moves kinda of “slow”

# [Member]   on 2009-11-28 at 20:21

@Steven: Hrm, well yeah, maybe that’s true. Also, yeah, it did go down. When I logged into my server this morning for some reason Apache was frozen and I had to kill -9 it to restart.

@Oz: Oh, that’s annoying. Is there a tooltip open perhaps? Just trying to think of what could be causing it.

# Oz   on 2009-11-28 at 22:46

NO, nothing :(
Just really slow, right now I am on 3.6 beta 4 and I have 3.7A1 and works great, but yours build is doing problems of a slow down :(

# J on 2009-11-28 at 23:15

I tested this today on an Intel GMA X3100 under Windows 7 expecting a disaster, but to my surprise it actually ran rather well!

For most pages there wasn’t a lot of difference performance-wise. Not even with tons of text, which I was expecting DirectWrite to choke on.

photos.svg of course ran very very well. Google Maps also ran better. Bing Maps ran slower for some reason, but still fast enough, it wasn’t really a problem.

Since these cards are in most laptops (and even in many desktops), it’s quite nice it can actually run well on them.

# Oz   on 2009-11-29 at 08:33

Waiting for a new build :-)

# [Member]   on 2009-11-29 at 19:01

A new build has been uploaded and linked. It should fix aero peek text, and ctrl+tab previews should work a bit better for those with it enabled (there’s still some small known issues).

It should also slightly improve performance and stability.

# Oz   on 2009-11-30 at 07:39

Still having the aero peek text problems.

Still in Hebrew the ( and ) are not right (means that ) is written as ( and so on)

And still a little bit slow :( (means slower, much slower than 3.7a1 or 3.6B4)

Hope for a new and improved build soon :-)

And want to thank you for the great work!!!

# Oz   on 2009-11-30 at 07:42

Here for example open this page (no need to understand the text)
http://www.ynet.co.il/home/0,7340,L-8,00.html

Than, try and do a Aero Peak, seem like all the text in the text boxes is gone :(

# Oz   on 2009-11-30 at 07:46

http://pandas.co.il/

Just take a look at the right side, as you can see, there are “boxes” instead of text.
Doesn’t happen in Firefox 3.7a1 or 3.6b4 or 3.5.5 or IE8 or what ever.

# [Member]   on 2009-11-30 at 12:32

@Oz: Hrm, I can’t really explain your performance problem(I have a Radeon 4850 myself and its much faster than normal firefox. Could you describe in what situation the slowness is mainly noticable? I can see the boxes in the hebrew build. I’ll see what I can do there, it’s still relatively tricky if you can’t read a language :).

# Steven on 2009-11-30 at 12:56

@bas, heres something interesting that doesnt render right:
http://rotateme.org/?u=channel9.msdn.com
Its hard to describe, but check the output with GDI vs. D2D.

Also I still have weird text selection, it just doesnt work right. In the adressbar, the search field, form textboxes…even normal text selection, it seems to get confused somehow. Is this known? If not I’ll think of a way to demonstrate to you, maybe a little screencapture or something.

As always, thnx for your hard work

# [Member]   on 2009-11-30 at 13:24

@Steven: ooh, great test case on that rotateme thing. I’ll look into that.

Also, that text selection thin you mention is not known. It also doesn’t happen for me :( Text selection seems fine here.

# Steven on 2009-11-30 at 13:40

@bas, ok…if you want you can email me and you can vnc or rdp into my machine (rdp might not work with d2d though, I dunno, but vnc should be fine).

The screencapture thing might not show much come to think of it.

# datenkind on 2009-11-30 at 14:47

Using a crappy proprietare technology in a cross-platform software is like … just ridiculous.

# [Member]   on 2009-11-30 at 16:27

@datenkind: So we shouldn’t do firefox for windows at all then… since the whole operating system is proprietary technology. Also D2D isn’t crappy in my opinion :P.

@Steven: I’ve uploaded a new build that fixes the rotated MSDN site.

# Paul on 2009-11-30 at 17:52

getting horizontal lines when scrolling here
http://img40.imageshack.us/img40/5548/scrollzp.jpg

i also have the same problem with selecting/highlighting text.
clicking 3 times to select a line of text sometimes shows only a single word selected, or sometimes it takes an extra second or so for it all to highlight
it’s very messed up

the right-click menu only shows a shadow and does not appear until moused over.

oh, and this build of minefield (d2d.2009.11.30) just crashed the 1st time i went to imageshack *shrug*

# [Member]   on 2009-11-30 at 19:13

@Paul: Hrm, alright, I can reproduce none of those problems, although the shadow only has been reported before! I’m working on trying to find a machine to reproduce that. What graphics card are you using?

# Paul on 2009-11-30 at 19:17

Hi Bas,

Thanks for taking the time to reply :)

I’m currently running an ATI 4870X2

# Steven on 2009-11-30 at 19:23

the shadow context menu thing I have too, but not the lines. I can also go to imgshack without crashing.

# Urmel on 2009-11-30 at 19:26

@Bas: Thanks for the quick response :-)
Well - I see your point. OpenGL is (sometimes) not that consistant cross plattforms and versions. (I think, DX would be as inconsistent if it would support more than one plattform…) And I guess, it is also too late for a change of the renderer in your project ;-) Nevertheless: Browsers are inconsistant as well! As you know, most web pages have to be fine-tuned to work with both explorer and firefox, or even different versions. The result is always not an exact match of the look, but it is sufficient for all users! Days are numbered for M$…especially if focus on the mobile phones-helds-cams-whatsoever. Plattform-compatibility might be more attactive than a perfect page at some point.
Anyway, nice work….I would love to use it @ home, unfortunately I use Linux… ;-) Regards

# Steven on 2009-11-30 at 19:47

Found another test case for you:
http://mikepinkowish.com/projects/life/

in D2D it doesnt quite clear the canvas right, so the figures leave some traces.

Firefox 3.6 proper (GDI) displays things correctly, I tried setting the forceGDI thing in your build, but even after restarting it still loooks like its using D2D to me…im not really sure how to double check. Also, a regular FF 3.7 nighly build also displays it correctly.

# [Member]   on 2009-11-30 at 20:06

@Urmel: Even if you would want to use OpenGL, developing the vector renderer on top of it would take considerable effort. Current Cairo OpenGL backends have not succesfully been made to perform sufficiently to date. Direct2D takes a lot of this work off our shoulders by providing an extremely efficient and complicated vector graphics renderer. Hence OGL would not really have been an option at all.

@Steven: I can reproduce the issue, thanks for reporting! For forceGDI, make sure you’ve completely shut it down, so no downloads window open or anything like that (i.e., check from the task manager if the process is gone).

# Napalmdest54 on 2009-11-30 at 22:06

I also get the same issues about the horizontal lines on most pages when scrolling and highlighting text.

Core i7 920
ATi Sapphire 4870 512MB (9.11 drivers)
Windows 7 64bit

# [Member]   on 2009-11-30 at 23:09

@Napalmdest54: Okay, interesting, do you get them only when scrolling upwards or also when scrolling downwards?

# marek raida on 2009-12-01 at 00:16

D2D as SVG background renderer really rocks! Higher levels (3+) of my incoming SVG game (http://svg.kvalitne.cz/cavern/082/cavern.svg) using GDI are almost unplayable, but with D2D build even level six is smooth and perfectly playable! CPU load is roughly the same but smoothness is incomparable!
There is some small rendering bug with dash-line, but everything else looks fine…

# Napalmdest54 on 2009-12-01 at 02:14

@Bas
The lines (for me atleast) do only occur when scrolling down. The interval in which the line appears depends on how I am moving down on the page. (smaller spaces between lines when holding down the arrow key; larger spaces when using the scroll wheel on the mouse)

Image 1 - Different Line Intervals: http://www.theragecage.net/pagelinesall.JPG

Sometimes when hover over a link the lines on the content part are hidden/gone

Image 2 - Hovering Over Link: http://www.theragecage.net/pagelinespartial.JPG

However with all of that said about the black lines, sometimes the lines dont show but still are noticeable after scrolling

Image 3 - Blank Lines on Text: http://www.theragecage.net/textlines2.JPG

Also this scrolling seems to be very bad when dragging the scroll bar on the side down.

Image 4 - Scroll Bar Scrolling: http://www.theragecage.net/pagelinesscrollbar.JPG

Im glad to answer any more questions, because I am truly really looking forward to this new use of technology.

# [Member]   on 2009-12-01 at 02:55

@Napalmdest54: Thanks a lot for the great information. I can deduct from your screenshots what’s going wrong, but -why- it’s going wrong is a lot harder question. Especially since your hardware is so terribly close to my development platform(only difference is an HD4850 vs HD4870). I’ll have to think about this for a while and will get back to you as soon as I have something testable or any questions. Thanks again!

# Napalmdest54 on 2009-12-01 at 03:36

@Bas

Not sure if you missed Paul’s response to your question, but his problem, which looks to be just like my problem (with the lines), is using a 4870 X2.

But your right the 4850 and the 4870 are practically the same.

No problem on the details. Thanks for releasing it and fixing the bugs as they have been coming.

# Oz   on 2009-12-01 at 12:51

http://pandas.co.il/

Can you please take a look at the right side of the screen? there are “squares” instead of text.

Take a look at FF 3.6B4 or 3.7a1 and so on, none of them has this problem.

# James   on 2009-12-01 at 16:24

Is there a way to use direct2d on released builds like firefox 3.5.4 or firefox 3.6 beta 4?

# [Member]   on 2009-12-01 at 17:44

@Oz: Yep, that was noted already, it’s a DirectWrite Shaper issue so it’s indeed D2D only.

@James: Nope, sorry :-)

# [Member]   on 2009-12-01 at 18:34

@HTML5: What kind of trouble exactly? It -appears- to give the same results for me on GDI vs. D2D. But I might be missing something?

# HTML5 Canvas on 2009-12-01 at 18:49

Bas, it had some graphical anomalies then the D2D build crashed on that demo page. This is with the latest build.

# Chris Moeller on 2009-12-01 at 19:03

Animated GIF files don’t seem to display correctly in-page layout. They seem to oscillate between displaying the first frame and a random frame somewhere in the middle. And it’s not flashing between the two at an even rate, it seems to be displaying the first frame instead of all the other frames, then just the one other frame at the correct time and duration.

What’s strange is that the same images seem to animate just fine when viewed stand-alone using the “View Image” context menu item.

Anyway, for some examples, my avatar here:

http://board.byuu.org/viewtopic.php?p=8431#p8431

And boo_radley’s avatar here:

http://forums.somethingawful.com/showthread.php?threadid=2834226&userid=0&perpage=40&pagenumber=237#post369085730

# Chris Moeller on 2009-12-01 at 19:20

Wow, this one is even better, it seems to draw the first frame, then draws another frame in progressively larger clipping boxes:

http://forums.somethingawful.com/showthread.php?noseen=0&threadid=3118958&pagenumber=121#post369081117

# Oz   on 2009-12-01 at 22:56

Hope for a new and improved build soon, really love and value your hard work!!

# [Member]   on 2009-12-01 at 23:37

@HTML5: Odd, not seeing any of that, could you put a screenshot of the anomalies somewhere, as well as the hardware (particularly the GPU) and OS it occurs on?

@Chris: Confirmed, I can reproduce that, I’ll try and figure out why it is.

# Lux on 2009-12-02 at 05:45

i’ve downloaded the build and tried to test, but it won’t even boot up. First I suspected if thats because of my on-board poor GPU X3100, but I noticed one comment above that says the build actually runs quite well on X3100 which is same as my GPU. and I also noticed that the only difference between the environment from the comment and my environment is OS(I’m trying to run the build on Vista with Platform Update, which released recently, and the environment from the comment is Windows 7).

Im not a developer or anything, so Im not really confident about this, Do i need to install some Direct2D sdk(if it exists) or something like that to run Direct2d on Vista? .or is it impossible to run Direct2D on Vista yet in the first place?


# [Member]   on 2009-12-02 at 07:30

@Lux: My first guess would be the driver. Make sure you have the latest driver for your X3100 from Intel. Preferrably WDDM 1.1 if Intel supplies those.

# [Member]   on 2009-12-02 at 13:14

I’ve uploaded a new build, some stability fixes and the bugs with animated gifs (@Chris) should be fixed.

# Oz   on 2009-12-02 at 16:07

Thanks for the hard work!

So, when will the “peak” problem be fixed? (windows 7) - still having some problems with it.

Also, still same pages have problems with the fonts, like pandas.co.il

# Bug report on 2009-12-02 at 18:21

I’ve noted a problem which happens with D2D builds (including the latest one): www.megaupload.com hangs in a very strange way on load (it seems nothing is drawn anymore inside any Firefox window until you restart it, but I don’t think it crashes/hangs internally). This doesn’t happen with normal trunk builds. It happens with Flash enabled or disabled, and happens every time. It triggers when the page is about to be drawn (if you load in a background tab, there’s no problem until you switch to it).

Thanks for your work!

# Napalmdest54 on 2009-12-02 at 18:57

@Bas: Just wondering what drivers are you using with your 4850?

# Oz   on 2009-12-02 at 19:44

Don’t know why, but seem like this build is much less “smooth” than FF 3.7a, it is really slow sometimes, can you take care of it please?

# NVGF on 2009-12-02 at 19:56
# Lux on 2009-12-02 at 22:38

@Bas
Thanks for the quick reply.
My driver for X3100 is already the latest one. And I realized after reading your reply, that even the latest driver doesn’t support WDDM 1.1 on “Vista". The lastest driver for “Win 7″ does support WDDM 1.1 though… Now I know all I can do is wait till intel provides a driver that supports WDDM 1.1 on Vista. I’m not even sure if they are going to release it though.
Thanks a lot anyway!

# [Member]   on 2009-12-03 at 02:09

@Oz: What problems are you still having with Aero Peek? It seems fine with me. The font problem isn’t a high priority, obviously it will be fixed if this goes onto trunk and is available on the nightlies.

You say the build is less smooth… is it less smooth than the previous build as well? And are their situations in which it specifically is problematic?

@Napalmdest: 9.11 I think.

@Bugreport: Confirmed, happens for me too, hopefully I’ll be able to fix it by tomorrow.

@Lux: Well, that’s because Vista doesn’t support WDDM 1.1 I think, I’m surprised it doesn’t work at all though. Should work, but just be crap, not sure what’s going on there to be honest :-(.

# Napalmdest54 on 2009-12-03 at 04:10

I hope this does get put in the trunk. I think it will have to be eventually since IE9 will have it.

Why is it not already part of the nightly builds?

# Napalmdest54 on 2009-12-03 at 04:57

Possible bug: For me there seems to be some issues with hovering over (what I guess is javascript). Mainly on Menus. Such as the “Home, Contact, and Login” menu links at the top of your page. The top menus at http://mootools.net/ and also the top menu on my site (which uses mootools) http://www.theragecage.net/.

The issues involve ‘lag’ between the normal and hover event and sometimes nothing will happen when hovering over the menu.

Update on the lines: I been trying and trying to get those horizontal lines to appear on my site (url above), but I cant notice them (if there are any). My site uses a joomla template from Rocket Theme called Refraction, their other themes do have the horizontal lines when scrolling.

The issue on highlighting is strange. There also seems to be some lag between what shows to be highlighted and what actually is highlighted. For instance, when highlighting the entire address bar with the cursor/mouse it may only highly 1/3 of the address bar, but if I copy (ctrl+c) and paste somewhere then the full address bar is pasted. This issue seems to lessen when all addons have been disabled (had to disable all addons in 3.5 first)

# [Member]   on 2009-12-03 at 05:12

@Napalmdest: These are all very useful details. I’m going to think about this for a bit. I think I may simply have to redesign the point of integration of the window surface. Since there appear to be weird timing issues. Thanks a lot for the extensive coverage.

# Oz   on 2009-12-03 at 07:43

This build is less smooth than the 3.6B4 or 3.7a1, means that it run slower, even when I try to copy a text (mark it) or something, everything seem to move slower.

# Oz   on 2009-12-03 at 09:06

I hope for a new build with improve speed and more stable soon :)

Also, seem like in pages with a lot of text, still the usual Firefox is faster.

# [Member]   on 2009-12-03 at 16:08

Ok, for Oz and those with other HD4800 series users. I’ve just checked and it seems the machine with the 4800 I was testing on was running the Windows 7 included drivers (or from Windows Update), not those from Radeon! These drivers included with windows 7 seem to work much better. I’ll have to figure out what causes this. For those with HD4800 problems, if you want to try the older driver and see if it makes the same huge difference for you, let me know what your results are :-).

# Oz   on 2009-12-03 at 16:54

I have 9.11 with the patch for GRID2, I have 2x4870 (crossfire) and a very strong CPU and memory.

Running windows 7 64bit.

and like I have said, it is very slow, and there is a problem with copy of a text (I mark it and it like dissapear, and the text writing is slow)

# Napalmdest54 on 2009-12-03 at 18:33

I tried an older driver same issues. And I tried with no driver at all, but FireFox would crash without a driver. Allowed Windows to find and install a driver automatically same issues.

Do you get issues with the drivers released by ati? http://game.amd.com/us-en/drivers_catalyst.aspx

# [Member]   on 2009-12-03 at 18:40

@Napalmdest54: Yep, I do. Probably if you let windows find and install a driver automatically it will still ‘know’ about your recent ATI drivers and use those (check if dxdiag reports your driver is from August 2009, then you have the windows ones). However I think I’ve got the issues fixed, need half an hour or so to confirm. And I’ll upload a new build.

# [Member]   on 2009-12-03 at 18:54

@Oz, Napalmdest, and others: For those with the latest ATI drivers. Try the new build I’ve put up, I suspect you’ll see positive improvements in performance. The crash/hang reported yesterday isn’t fixed yet.

# Steven on 2009-12-03 at 19:22

@bas did you fix the text highliting thingy? Just downloaded the 3.12. version and I’m no longer seeing it, at least not at first glance. I’ll get back to you if it creeps back in

And it can’t be said enough, THANK YOU THANK YOU thank you for all the hard work. I love the new FF :-)

# [Member]   on 2009-12-03 at 19:25

@Steven: It was a result of the ‘lagging one frame behind’ bug I fixed for recent ATI drivers. If you’re lagging one frame behind, double click won’t do anything, the next single click will actually show the double click(so select the word). A triple click will show the double click result (i.e. have a word selected), etc. That’s fixed now, so your text highlighting issues should also be fixed.

# Napalmdest54 on 2009-12-03 at 19:28

@Bas: awesome. The new build fixed a small animated gif issue that was occurring from the previous build. Hover menus now work.

Im guessing this wasnt supposed to fix the line issues?

Also another possible bug is that center clicking does not bring up the ‘movement image,’ sorry I dont know the tech term for it.

# [Member]   on 2009-12-03 at 19:43

@Napalmdest54: Good to hear, and, No, it wasn’t supposed to fix scrolling, sorry :).

I’ll look at the ‘movement image’ thingy :-).

# Steven on 2009-12-03 at 19:58

@bas ahhh…..yes now that you explain it that was exactly what i was seeing.

Also the shadow context menu seems fixed now too. No more lag bringing it up, and shows properly without having to move the mouse over it as previously.

Great great work!

Only two problems remaining for me are proper text rendering for some east asian scripts, and the font menu in options being empty. But take your time, not that important.

And please please push for this to be included in 3.7 by default…maybe set forceGDI to true by default but allow users to overwrite it.

I don’t think I can go back now…. :-)

# Napalmdest54 on 2009-12-03 at 20:14

Steven, yep menus on FireFox are fixed for me too.

What would be needed to get this implemented into the nightly builds? More bug fixes?

# Oz   on 2009-12-04 at 08:24

What about problems with D2D like in sites like pandas.co.il? (right side, I see only “squares” instead of text)

# Oz   on 2009-12-04 at 08:53

I love every update you are doing and each build is getting better!

Thanks for the hard work!

Hope for a GREAT new build soon :)

# [Member]   on 2009-12-04 at 09:04

@Oz: As I said, not too high of a priority :) Although since many of the other bugs are gone now I expect to get to it fairly soon. Not too much time next week though, let’s see.

# Oz   on 2009-12-04 at 09:50

The new build is great! hope for even a new build soon, I value all the hard work you are putting into it! and hope the new build will be based on a new firefox 3.7a1 new build to!
:-)

# Chris on 2009-12-04 at 09:57

@bas:
unfortunately the latest build still crashed on the sunspider site. I can’t believe I’m the only one for whom this is happening?! Maybe some of your readers could check: http://www2.webkit.org/perf/sunspider-0.9/sunspider.html

I also updated to the latest WHQL Nvidia drivers, but no change.

Another bug I noticed has to do with font-face. If you have a CSS font-face definition like this

@font-face {
font-family: “MyFont";
font-style: normal;
font-weight: normal;
src: url("LiberationSans-Regular.ttf") format("truetype");
}
@font-face {
font-family: “MyFont";
font-style: normal;
font-weight: bold;
src: url("LiberationSans-Bold.ttf") format("truetype");
}
body { font: normal 12px/16px MyFont, Arial, sans-serif; }

Your build displays all text in bold, whereas FF 3.5 or 3.6 correctly only show bold text where applied by the usual tags.

# smi on 2009-12-04 at 16:47

@bas gr8 potential on this ,nice work.
two things:

translation software babylon have hard time capturing text within d2d minefield.

when I open one web site that takes 20- 30 % gpu (like justin.tv channel)
other windows ,even text scorlling on your comment pages(this one)become erratic and not smooth.

gpu do not go out of idle (300 MHz out of 780Mhz)

seven x64 ulti
mobo x48
q9550
3870 512mb DDR3
4GB ram

Again gr8 potential nice work bas

# Oz   on 2009-12-04 at 17:14

I am still having problems with right to left writing like Hebrew, seem that ( and ) are wrong (mean that ‘(’ shown as ‘)’ and etc)

# telnet on 2009-12-04 at 19:47

Is it normal that your builds do not allow to change the default font (tool->options->Default font)? I would like to try with custom cleartype-enhanced typefaces such as segoi UI , candara, calibri or Meiro

# NVGF on 2009-12-04 at 20:34
# Adam on 2009-12-05 at 04:52

I’m guessing CANVAS isn’t accelerated?

See http://www.mrspeaker.net/dev/parcycle/

# [Member]   on 2009-12-05 at 07:21

@Telnet: Yes, I fixed that bug but I have some extensive work to support large image surfaces (which cause the megaupload.com crash) before I’m putting out a new build. So it should be fixed soon! In the meanwhile in theory it should be possible to do manually from your prefs.js

@Adam: You are correct! It is not a hard thing to do and we will certainly be able to fix it. I simply haven’t been able to get to it yet and it wasn’t too high on my priority list.

# Oz   on 2009-12-05 at 08:30

The fonts looks kind of “ugly” sometimes, like being bold when not needed to or something like that.

Also, still have the aero peak text problem.

# Oz   on 2009-12-05 at 09:55

BTW
Megaupload seem to make this build crush :(

# [Member]   on 2009-12-05 at 10:19

@Oz: That’s what I said :-). Working on fixing that, it’s a complicated issue but we have a strategy for addressing it. I’m pretty close to implementing that.

# Oz   on 2009-12-05 at 10:23

Sometimes when I press on a tab on FACEBOOK (like photos of someone), it does nothing (not passing me to the photos page)

Not happening in FF3.6 or whatever.

# Oz   on 2009-12-05 at 11:35
# Oz   on 2009-12-06 at 09:24

I have found one more bug, when I press the “show all tabs” (right most button on the top), and I hover my mouse over a tab, it stays black or something.
Can it be fixed?
Using windows 7.

# Omega X on 2009-12-06 at 23:41

Certain fonts with a dark background look terrible. Its artificially making the font look bolder than what it really is.

And Gamespot.com causes a hang.

# [Member]   on 2009-12-07 at 00:13

@Shane: Hrm, shame that it adversely affects performance for you :(. Although that is also a Direct3D 9 card so it will probably not be supported by the final D2D support anyway. Although, perhaps we could ‘whitelist’ it and make sure that doesn’t flush.

@Omega: Same crash as the megaupload.com one, working hard on a fix. The light-on-dark font issue seems to occur only on some hardware, I’m working on trying to figure out how to fix it.

# Oz   on 2009-12-07 at 07:45

Hope the new and improved build be here soon, hope it will be based on a new 3.7a build (the newest one you have till date), and will make a major improvement :)

Love your work!

# Oz   on 2009-12-09 at 08:51

What about a new build and update? seem like a long time no update :(

# Oz   on 2009-12-10 at 14:25

Hi

What’s about a new build? something going on? can you please update us with some news or something ?
:)

# Tom on 2009-12-11 at 11:14

Um, what’s the big deal here? I can go from 11ms to 4ms? Well, even the blink of an eye takes longer than 11ms. So this “improvement” won’t even be noticeable.

# Steven on 2009-12-11 at 13:51

any news, been almost a week since any word?

Still using the last build u uploaded, a few hangs and crashes here and there, but otherwise works fine and fast :-)

thnx

# [Member]   on 2009-12-11 at 18:02

@Tom: If you would read, you’ll notice the real improvement is ment to be on animations and heavily transformed content, where rendering is significantly more the bottle neck. Indeed, on loading static pages the difference won’t be too big.

@Steven,Oz: This week was the Mozilla All-hands in Mountain View, I’ve been busy there, there will be a new build soon.

# xStylezx on 2009-12-11 at 20:24

Just wanted to drop a comment to say great job on this and cant wait to see it on the trunk! I will be using your builds as who can stand going back to “slower” builds after this.lol

Just curious if you plan on adding optimization flags when compiled and PGO as well(hope so!). Also will you be basing the next build on a more up to date trunk? Thanks again for the great work youre doing here!

Oh,please let us know fixes or improvements coming on the next build,thanks!

# Steven on 2009-12-12 at 03:39

ah…awesome..I think we all started to worry there :-)

Did you give a talk about you’re D2D talk? Maybe even pushed for it to be included in 3.7? hehe

Then again I don’t know what this event is or anything about anything really so best ignore me :-)

# Oz   on 2009-12-12 at 09:14

Ok waiting for an update, hope for some real improvements when it come to speed and being stable, and less fonts problem, and solving the mega-upload problem and the aero peak one.

# [Member]   on 2009-12-13 at 02:47

Put up a new build like I promised! Doesn’t fix any of the font stuff, it does fix the known crashes, and should perform better. I did disable v-syncing again, which I had enabled with the fix for ATI (that fix is still there ofcourse!). In the hope it will improve performance for those who experienced poor performance when I had enabled it.

@xStylezx: No, those optimizations will be coming when we land this on trunk. I did update to a tree from last week though.

@Steven: I did give a talk about D2D, it was well received. We are hoping to land it on trunk (disabled, but you could then enable it on nightlies), in two weeks.

# sh.sean on 2009-12-13 at 06:09

Great job! I just downloaded the latest build, it works all fine on my win7 32. Although I have an ancient 7300gt.

# Oz   on 2009-12-13 at 08:55

This build is very nice!
but still have the fonts problem - they appear like empty boxes sometimes
http://pandas.co.il/
right side - the table, the first rows

# Steven on 2009-12-13 at 14:04

@bas: any recordings of that talk? slides? :-)

on a different note, new build crashes within 10 seconds of use for me :-(

# Chris Moeller on 2009-12-13 at 14:24

Any chance that vsync can be enabled by a configuration setting? Smooth updates may be preferred by some over touting the highest raw frame rate scores. Unless it happens to really slow down smooth scrolling, something I don’t really use.

# [Member]   on 2009-12-13 at 14:35

@Steven: Oooh, that’s not good :s

@Chris: I’d say we will probably make it a pref when this is actually released :-). Although on most websites I don’t see a lot of tearing in my case.

# Steven on 2009-12-13 at 14:48

@bas….actually now it seems to work….I traced it down to this tab I had open:
http://news.yahoo.com/s/nf/20091212/tc_nf/70579

this consistantly crashes the browser (minefiled needs to close..bla bla)

sorry, should have tried with a blank start earlier

# Steven on 2009-12-13 at 14:51

Actually, here is the crash info:
Problemsignatur:
Problemereignisname: APPCRASH
Anwendungsname: firefox.exe
Anwendungsversion: 1.9.3.3625
Anwendungszeitstempel: 4b24425b
Fehlermodulname: mozjs.dll
Fehlermodulversion: 0.0.0.0
Fehlermodulzeitstempel: 4b2443ac
Ausnahmecode: c0000005
Ausnahmeoffset: 0001f1f2
Betriebsystemversion: 6.1.7600.2.0.0.256.1
Gebietsschema-ID: 3079
Zusatzinformation 1: 0a9e
Zusatzinformation 2: 0a9e372d3b4ad19135b953a78882e789
Zusatzinformation 3: 0a9e
Zusatzinformation 4: 0a9e372d3b4ad19135b953a78882e789

mozjs.dll sounds like javascript to me, so perhaps it has nothing to do with your build but only with the updated trunk you used to build this?

I don’t know…if you can’t reproduce the crash i’ll try a stock nightly build and see if it crashes too

# Chris Moeller on 2009-12-13 at 14:53

Also, I can’t paste any text into Google Wave, either using ctrl+v, or right click. Not your bug, as the same thing happens with 3.6b4. I guess I’ll report that somewhere else more likely to see it fixed, since, again, it’s not your problem. Just thought I’d mention it anyway. :)

# telnet on 2009-12-13 at 16:22

Good thing that the font selection is back in the latest build!

I have run peacemaker benchmark with this build(2009.13.12).So far I did not experience much improvement except for the complex graphics section. What’s more, it is even slower than the lastest chromium builds, which is GDI only. I suppose this is realted to the compiler optimizations, which are not present in this builds yet.

specs:
Intel core2 duo T9400, 4 GB RAM, windows 7 x64, Geforec 120M (driver version: 195.62, WDDM 1.1).

Firefox 3.7 pre alpha (direct2d):
Rendering: 2120
Social networking: 2576
Complex graphics: 4836
Data: 4682
DOM operations: 1780
Text parsing: 2410

Firefox 3.7 pre alpha (GDI )

Rendering: 2356
Social networking: 2565
Complex graphics: 4240
Data: 4733
DOM operations: 1757
Text parsing: 2395

chromium 4.0.269 (GDI)

Rendering: 3594
Social networking: 3384
Complex graphics: 6871
Data: 2710
DOM operations: 4673
Text parsing: 5033

# [Member]   on 2009-12-13 at 17:19

@Steven: It crashes for me too, I will look into it, thanks for reporting!

@Telnet: Yeah, those peacekeeper benchmarks, I have no idea -what- they measure. I tried making rendering slower (by just inserting random sleep() in the rendering code left and right, and it didn’t really matter either. I suspect their measurement of rendering is probably just rubbish, might be measuring things which are executed asynchronously or something like that. What I recommend is just comparing to chromium on random sites like photos.svg or other sites with cool graphics stuff that have been mentioned here. You’ll notice that even firefox GDI is faster than chromium GDI on some of those.

# CI on 2009-12-13 at 18:10

I know this will sound insane (and it probably is) but have you tried using Direct2D with software rendering? I have reasons to think that while it would generally be slower than GDI, on some stuff like photos.svg it’d come out faster (of course what should be done in that case is making the GDI backend faster, but still…)

# [Member]   on 2009-12-13 at 18:21

@CI: I have tried it to some extent, I’ve tried using WARP as a D3D device, this is most likely different from using Direct2D in software mode though. Since D2D in software mode probably doesn’t use triangles, and D2D with a WARP D3D device probably does. In the general case I think you would be right, since GDI’s blending algorithms aren’t that great. And the new ones should b much better (SSE4 and all that).

# [Member]   on 2009-12-13 at 18:39

@Steven: I’ve uploaded a new build (same name, because same day), which has the crash bug fixed, I indeed had an error in my code.

# Steven on 2009-12-13 at 18:55

Awesome bas, crash seems fixed.

However, is there something special about that page? Seems extremely sluggish to scroll on that page with the new build…if i drag teh slider it kinda jumps as its struggeling to keep up. All other sites seem to scroll very smooth (as expected from D2D) 3.6b4 scrolls the same site just fine, doesnt seem slower than other sites.

Anyways, great work!

# Chris on 2009-12-14 at 08:52

@bas:
great work on the latest build! It’s the first one I don’t have to run in safe-mode and that doesn’t crash with my default profile. JavaScript fades seem to be even smoother on large texts!
But it still has the font-face bug and I still get the sunspider crash, no matter what. If I find some time I’ll try to determine what exactly causes the crash (JavaScript, CSS, …?)
Thanks for all the time you put into this!

# Chris on 2009-12-14 at 11:37

@bas:
I found what crashes sunspider for me, after saving the page locally. If I remove the code for the “sun"-icon in [span id="logo"]☀[/span] it doesn’t crash anymore. I tried diffferent fonts in the CSS but that doesn’t seem to matter, so I don’t think it has to do with font corruption. Also all other browsers display the logo without problems.

# [Member]   on 2009-12-14 at 15:30

@Chris: Could you try the latest nightly for me? The logo displays fine for me, also on D2D, but the latest trunk contains some interesting anti-font-corruption code.

# Chris on 2009-12-14 at 16:59

@bas:
latest build still crashes. Now that I put the sign in the comment this page also crashes for me! :D
How can this be specific to my system? It’s a fresh Win7 installation, latest drivers everywhere. The only thing a bit special about my setup is a dual monitor configuration… I’ll try with only one monitor.

# Chris on 2009-12-14 at 17:06

@bas:
I tried two more things. Single monitor set-up and disabling Aero. Unfortunately it didn’t change anything…

# [Member]   on 2009-12-14 at 18:32

@Chris: Very strange, it’s showing the symbol fine on my D2D build on all my machines. Did you try the Mozilla Nightly build?

# Chris on 2009-12-14 at 20:31

@bas:
by latest nightly you mean this one, right?
ftp://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-3.7a1pre.en-US.win32.zip
Yes, I just tried it, no problems at all.

# Oz   on 2009-12-14 at 22:32

Will you fix the fonts problem soon? and the right to left problems ?
(like in Hebrew writing)

Hope for a new and improved build soon :)

# Danial on 2009-12-15 at 04:17

These builds ignore the windows cleartype settings, and impose a major amount of text blur on both the gui and page view.

# Bojan on 2009-12-15 at 10:45

could the same principle be applied to PDF readers? scrolling large documents with alot of pics is a pain

# Oz   on 2009-12-17 at 09:10

will there be a new build that fix all the fonts problems soon?

# [Member]   on 2009-12-17 at 17:05

@Bojan: In theory the creators of readers could use this, yes.

@Oz: I don’t expect it to. We’re currently commiting this to trunk disabled by default. So the fonts are not an issue. Also, within the coming 2 months there will be a major overhaul of the font code landing. Meaning investing a lot of time into the current font code would be a waste of effort.

# Danial on 2009-12-17 at 21:00

That doesn’t mean Firefox shouldn’t observe the windows cleartype setting.

the builds i have tried so far do not. I even entirely disabled cleartype and the fonts were still smoothed, blurry and painful to look at.

# Napalmdest54   on 2009-12-18 at 03:28

@Bojan: Acrobat Reader already uses GPU acceleration for both 2D and 3D.

@Bas: Just updated to the newest Windows 7 ATi Drivers (9.12) that were released today (17th) and the horizontal lines are back. Using the second release of the 12/13 build. Also tested on older builds you released, lines for them too with the new drivers.

# Omega X on 2009-12-18 at 10:52

Hey Bas, I don’t know if anyone even reported it yet but the autoscroll graphic disappeared.

# mike on 2009-12-18 at 22:57

This works great. Running it on a i7 920 and HD5970. Scrolling is silky smooth on every page I’ve tested now, even on content heavy pages with lots of text and surrounding images.

# Oz   on 2009-12-19 at 09:52

Will there be a new build that solve some of the problems and improve performance soon?

# Oz   on 2009-12-19 at 18:30

seem there are sometimes some “slow down” that isn’t on the FF 3.5 or 3.6, like with many open tabs or other things.

And sometimes typing is still slow.

Also, “right-to-left” languages like Hebrew - still this one have problems (FF 3.7a1 doesn’t have it)

# ferdinand   on 2009-12-20 at 14:31

I just love these direct2d builds and I just can’t go back to the nightly builds anymore. Scrolling is very smooth.

The only downside I can see is that is it seems to use a lot more memory. Especially with a lot of youtube pages(about 12) it used 1.4GB.

When will this direct2d be integrated with the nightly builds? And does anybody know an extension that freezes tabs when inactive for 1 hour?

# [Member]   on 2009-12-20 at 16:11

@Ferdinand: Well, if it happens on youtube pages mainly I’m inclined to think Flash plays a part in that as well. I’m also still working on some memory optimizations so hopefully that will improve things somewhat. We are aiming to land somewhere before the third week of January. But I can’t give any guarantees yet since we are dependent on our release engineering department.

# Oz   on 2009-12-20 at 17:04

Yep this build seem to be a real “mem hug”

I use it and open some tabs (even just 7 but with a lot of photos and so on), and the Firefox almost no move, and after sometime crush!
:(

# [Member]   on 2009-12-20 at 18:33

There does appear to be a memory leak in my current tree. I’m looking into it.

# ferdinand   on 2009-12-20 at 19:57

I just tried to see what Google Chrome says about flash memory usage. With 14 youtube tabs i get 300MB flash and 100MB webpage usage. So that is 21MB flash and 7MB webpage usage. So I would say that that doesn’t account for 1.4GB of memory usage even with heavy pages like gmail and greader that use about 80MB.

# [Member]   on 2009-12-20 at 22:49

I’ve uploaded an updated build. It contains some fixes but mainly code improvements. Which shouldn’t really have an effect on how well it works. It should have better memory behavior though!

# Oz   on 2009-12-21 at 08:07

Still seem to get stuck from time to time when I write (just like here), and also the memory bugs are still here :(

And the right to left writing and reading problem :( (like Hebrew)

# Omega X on 2009-12-22 at 00:43

Font crispness improved. Though fonts on dark backgrounds are still the same.

I wish the build team would hurry up so that this can land on Trunk.

# pinkey on 2009-12-23 at 21:57

Im getting also horizontal lines. It seems that it only appear when scrolling down. Sometimes it also happens that some parts of text disappears.

GPU: HD 2600 Mobility
Driver:

Driver Packaging Version 8.681-091124a-092499C-ATI
Catalyst™ Version 09.12
Provider ATI Technologies Inc.
2D Driver Version 8.01.01.984
Direct3D Version 8.14.10.0716
OpenGL Version 6.14.10.9232
Catalyst™ Control Center Version 2009.1124.2131.38610

Modded with DH MobilityModder and win7 64bit

still very good work until now, i love the d2d support!

# Oz   on 2009-12-26 at 08:28

For me the new build and the 3.7a1 crush just to much :(

# Oz   on 2009-12-27 at 11:26

Any new and improved build is on the way? long time haven’t hard any update from you :(

# [Member]   on 2009-12-27 at 14:52

Although I must admit having a life is something to be frowned upon :-). Even I have to celebrate holidays with friends and family, hence less work on D2D these weeks.

# Michael on 2009-12-28 at 05:15

Enjoy your new years mate. It’s a time to forget about work for a few days :)

# [Member]   on 2009-12-28 at 11:03

@Michael: Thanks :) And happy holidays to everyone of course!

# Oz   on 2009-12-30 at 07:21

Happy new year!
Hope we will see a great new build worth it for the new 2010 year :)

# Roeh on 2009-12-31 at 05:24

Merry Christmas and happy New Year everyone!

I’ve been playing around with these D2D builds for a while, making sure to use Nvidia’s latest driver packages, and yes my card is supported. I too have dealt with the “line” artificats showing up on my screen when scrolling down. Oddly enough the solution I have found to this problem was changing to a different “theme". I was rather stunned by this, but I performed a half dozen restarts and theme swaps to be certain. The theme I’m using is the “Strata40″ theme found at: https://addons.mozilla.org/en-US/firefox/addon/14284

Perhaps someone tech-savvy enough can solve this little riddle. Anyways, happy holidays everyone!

# Roeh on 2009-12-31 at 05:26

Merry Christmas and happy New Year everyone!

I’ve been playing around with these D2D builds for a while, making sure to use Nvidia’s latest driver packages, and yes my card is supported. I too have dealt with the “line” artificats showing up on my screen when scrolling down. Oddly enough the solution I have found to this problem was changing to a different “theme". I was rather stunned by this, but I performed a half dozen restarts and theme swaps to be certain. The theme I’m using is the “Strata40″ theme found at: https://addons.mozilla.org/en-US/firefox/addon/14284

After changing to a non-default theme, such as the theme I’ve pointed to above, enjoy an artifact free d2d build.

Perhaps someone tech-savvy enough can solve this little riddle. Anyways, happy holidays everyone!

# Oz   on 2010-01-04 at 16:07

any new news? updates or what ever please ???

# Philippe GEORGE   on 2010-01-06 at 16:30

I use Cairo to develop an environment simulator Railway. Is it possible to try only the binary Cairo with Direct2D backend under Windows 7 ?

# [Member]   on 2010-01-06 at 16:43

@Roeh: Very interesting! No idea though :( I’ll let you know when we figure it out.

@Philippe: In theory, yes, if you grab the patch for Cairo from the Mozilla bug. We are also looking to upstream this work to Cairo on the longer run.

# Oz   on 2010-01-08 at 14:21

Is the project dead?!

Seem like for three weeks there wasn’t any update :(

# [Member]   on 2010-01-08 at 14:31

@Oz: It is not dead at all, we are working on landing it on Mozilla trunk, this is a process during which we focus on cleaning up the code and ensuring things are functioning as we want them to. And we are not working on actual optimizations right now.

We have done considerable analysis of performance bottlenecks though and we have some good ideas which should, going forward, greatly increase UI performance.

# xStylezx on 2010-01-08 at 14:40

Any firefox performance increases are greatly desired id say,especially UI(of course webpage rendering 2.lol). Will be great to see this hit the trunk asap!

# Steven on 2010-01-08 at 17:06

Great to see this is being pushed towards the main trunk!

Is this: https://bugzilla.mozilla.org/show_bug.cgi?id=527707
the main and only discussion taking place? Anythign else we can follow?

Thnx again

# Maciej   on 2010-01-08 at 23:23

Hello, I’m using this build with Strata40 theme and StrataBuddy (and a few more extensions). The field behind the tabs should look like glass (it should like like the window title bar on Window 7/Vista with Aero Glass enabled), but it’s black! This problem doesn’t exist in version 3.5 or 3.6 RC1

Here are the screenshots: 3.7 http://wstaw.org/p/9ddb/
3.6 RC1 http://www.wstaw.org/p/9ddd/

# Chris Moeller on 2010-01-10 at 10:04

Does the current version accelerate canvas drawing? That would be excellent, considering a number of complex demos available now, including an object drawing canvas gadget for Google Wave, which can become quite slow as you add dozens or even hundreds of different objects to the canvas.

# Oz   on 2010-01-10 at 10:35

OK, just let us know when it is going to the current build, also hope you will improve it even more to make it even faster, and fix all the fonts problems.

# Oz   on 2010-01-12 at 14:18

I hope you will still put some major updates here for all of us :)

# NV on 2010-01-19 at 13:29
# pinkey on 2010-01-19 at 23:23

hi :) got some new news for us?

# Macko   on 2010-02-04 at 03:42

Unbelievable!!! Right now i ve been totally mad about poor browsing experience using my brand new energy saving second rig (ATOM 330, 4 GB RAM, ION PLATFORM). I ve tried all the browsers out there and yes, even Firefox 3.6 and all of them were just too slow with more tabs opened (25+) at the same time and what concerned me the most was totally choppy and thus absolutely chaotic and distracting scrolling. After that i took my last chance and put “gpu accelerated browser” into the google and i discovered this new minefield release and WOW i have to say what a DIFFERENCE!!! Well the browsing still cant be fully compared to normal rig with processor like C2D but still its a BIG improvement over all the other browsers and also over the Firefox 3.6. The scrolling is smooth again! And also the web pages load much faster than on opera. Hard to believe its just a prerelease! Keep up the great work, i can just wonder how superb will the final release be if this prerelease is THIS great!!!

just for info, i havent seen anything out of ordinary like som bugs or something like that which is great.

all the best

# Daniel on 2010-02-11 at 17:32

Hey now that FF 3.7 A1 is out i wonder if Direct2d is included?
Do i need to enable it ?

# [Member]   on 2010-02-11 at 17:58

@Daniel: It is not included in the Alpha release. It will soon be included in the nightly builds, where it can be enabled by setting specific preferences.

# Oskar on 2010-02-12 at 22:37

I can see improvements in rendering and in performance.
Firefox no longer uses lots of CPU.
Which is one o really good thing since Firefox is known to use alot of CPU.
I’m using Nvidia GeForce 8400GS and it makes a good work.
I saw at friend on ATi’s 3870 that it has better performance with Direct2D Firefox builds.
Is there any way to more optimize Direct2D to run on slower DX10-11 cards? Like mine.
Also I noticed that Mozilla is now talking about that on status meeting pages, so that a good thing.
By the way, to mention that not everyone has Quad Core and 4x or 220 series of graphic cards.
Try testing it with lower configurations.
And try to optimize it.

Since this build is from december, when is next build coming?
And when will PGO will be included?
I heard it will give some boost in performance.
When is that “soon” is going to happen? - I mean that it will be included in nightly builds - When bugs are fixed or what is taking time?
I don’t know is this a bug or what, but it occurs from time to time. It just stops working.
http://img638.imageshack.us/img638/4398/capturedd.jpg

Oh yeah, smooth scrolling is improved :D

I hope that Direct2D is going to be soon in next Firefox.
An extra speed is more than good.
Since Firefox is lacking in rendering speed against Opera, Chrome, Safari.

Keep the good work on! :)

# Stu on 2010-02-13 at 04:55

@Stephanie - The cairo guys are working on cairo-gl which should help firefox in the longrun. I wouldn’t expect this to be functional for at least a year though, let alone start seeing firefox builds using it.

# Macko on 2010-02-20 at 15:15

Hi

Id like to ask one question. If you use GPU (nvidia gf9600 gt for example) to decode a video, the CPU utilization (lets take a C2D E8400 for example) decreases from roughly tenths of percent to just 1-5%. The question is: can we expect this big decrease in CPU utilization using GPU accelerated Firefox instead of CPU accelerated? If not, how big decrease are we talking about here (just roughly, i know there are many factors playing a role here)? And I mean regarding final release of GPU accelerated firefox, not beta build. And when can we expect this final release, if it can be discerned at this point of time?

Thanks for the answer
bye

# Oz   on 2010-02-23 at 23:36

And what are the specific preferences ? can you enlighten about it more?

# Benjine Gerber on 2010-03-12 at 23:04

Getting the Horizontal lines, only on FF/Ubuntu systems when zooming to other than 100%.

# Ciantic on 2010-03-14 at 17:26

I’m just downloading firefox-3.7a3pre.en-US.win32.zip (13-Mar-2010 05:09), from http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/

Is the preference included in this one? What is the name of the preference.

Thanks.

# windo0zer   on 2010-04-12 at 20:34

you can enable Direct2d and DirectDraw easily using FF extension ” Configuration Mania”

# seo   on 2010-05-13 at 17:48

What happens if many tabs are opened at the same time while gaming?as I usually leave my browser open while gaming.. I tried opening around 20 tabs and my GPU memory usage jumps from 180MB to 500++ MB which is similar to my GPU memory usage when I’m playing Dragon Age Origins (1280x1024 Max 4AA on GTX275), didn’t test it with gaming though.

# Medyumlar on 2010-07-07 at 11:05

What happens if many tabs are opened at the same time while gaming?as I usually leave my browser open while gaming.. I tried opening around 20 tabs and my GPU memory usage jumps from 180MB to 500++ MB which is similar to my GPU memory usage when I’m playing Dragon Age Origins (1280x1024 Max 4AA on GTX275), didn’t test it with gaming though.


Form is loading...

March 2024
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
 << <   > >>