« Call for testing: cairo backend for win32 | Main | Cairo improvements »
September 30, 2005
Call for testing: cairo backend for win32 (Take 2)
Thanks for everyone who participated in testing the last cairo/win32 build of Firefox. It helped immensely in identifying the shortcomings of that backend.
We have prepared a new build that fixes the following issues:
- White rectangles or other geometry redraw artifacts
- Text missing on partial redraws or if the start of the string was offscreen
- Missing wedges or notches on paths
- Gradient stops not obeying specification rule for ordering
- shape-rendering property not implemented
- Printing showing nothing or something unrecognizable
- Dashed curved lines not implemented
- All zero matrix would stop rendering
Known problems with the new build:
- Fonts in printed output are extremely large
- No text decoration (underline, overline, strikethrough)
- stroke-dasharray="0" will stop rendering
Some people have encountered performance problems, in particular with SVG that contain images. We are looking into this. Please continue to report URLs for uses that demonstrate a dramatic speed differential between GDI+ and cairo, as more testcases help us in identifying the problem areas.
The new build is based off the branch being used to develop Firefox 1.5, so it will be closer to 1.5b2 than 1.5b1 in terms of other bugs and features.
Some general notes about testing new builds: by default Firefox checks to see if there's another running Firefox, and if so just sends it a message to open a new window. The easiest way to make sure you're really running the cairo version of Firefox is to make sure all Firefox windows are closed before starting a new build. The cairo build can easily be distinguished from the official 1.5b1 release by the unofficial build artwork (blue globe icon and "deer park" labeling).
Please test and respond with your findings. Please be specific about problems encountered and URLs to the content in question if possible. In addition to testing just SVG content, try complicated DHTML sites as well to check the new backend isn't overwriting memory.
The cairo build may be obtained from the following link. It will unzip with a "bin" directory containing the firefox.exe executable.
Posted by tor at September 30, 2005 8:06 PM
Comments
Hello, texts rendering seems to be greatly increased.
I also noticed the stroke-dasharray for circle elements was not working in previous version and seems to be working now. congrats
Unfortunatly i still experiment performances issues between GDI+ and cairo. I am gonna make a few tests to see if it's opacity related as i think.
Posted by: Mokhet at September 30, 2005 9:31 PM
Why not do these things in the trunk builds?
They seem to be needed anyway (since Mozilla is moving to Cairo) and it would allow day-to-day testing instead of this testing per blog post.
Posted by: Martijn at September 30, 2005 9:44 PM
We're not testing with the trunk because both the SVG and cairo code is diverging, and we want to get eyes on what will be shipping shortly.
Some of the fixes included in this build currently only exist in cairo cvs, so a trunk build wouldn't be useful for testing them right now.
Posted by: tor at September 30, 2005 9:55 PM
Ah, I see. Thanks for the answer.
So ideally, Mozilla trunk would automatically update it's cairo source from cvs, right?
Posted by: Martijn at September 30, 2005 10:09 PM
Ok, at http://www.wpsenergy.com/JayNick/default.asp I get some major problems.
Hovering over "Power Plant One Line Diagram" at the top left, I lose a bit of the last letter M. It gets cutted of.
http://www.wpsenergy.com/JayNick/MBTCP/6Meters.svg
freezes entirely for me with the Cairo build, while that doesn't happen for me in current trunk build.
Posted by: Martijn at September 30, 2005 10:37 PM
it seems my issues are resolved in this new build, and it seems to run faster. I'll report anything I find further, but I'm certainly less reticent about the switch. good work!
Posted by: sky at September 30, 2005 11:49 PM
The normal browser speed is amazing!
I´ll test SVG during the weekend
Thanks!
Posted by: Julián Cellini at October 1, 2005 12:07 AM
"Hovering over "Power Plant One Line Diagram" at the top left, I lose a bit of the last letter M. It gets cutted of."
Hmm, now I'm not seeing it anymore at that place.
Instead, at particular sizes of the window, the FF logo is too close to the links (the "Electric Distribution and Metering" link).
Posted by: Martijn at October 1, 2005 12:08 AM
Mokhet, you might want to have a peek at https://bugzilla.mozilla.org/show_bug.cgi?id=309782
There is a test case there that demonstrates opacity slowdowns related to where there opacity is set. If you have a slow testcase using opacities, perhaps you could try pushing the opacity setting out to the leaf nodes.
Posted by: Amos at October 1, 2005 7:05 AM
If I'm not completely wrong, this new cairo-backend version sends any svg content as rendered image with *display resolution* to the printer whereas the gdi+backend version sends it as vector graphic resulting in printouts having much higher quality.
Then I would very much prefer the gdi+ version or wait for gecko using cairo for all drawing and using the pdf backend of cairo for printing.
Posted by: at October 1, 2005 9:47 AM
I tried two builds tonight with Hixie's perf tests -- I'm using a P3 450, Win2K SP4. I don't know whether I did it right, but here's the numbers.
gdi = nightly/2005-10-01-06-mozilla1.8/
cairo = your provided build
Tests numbers 1 to 6:
gdi | cairo
20.43 | 80.02
19.97 | 79.56
7.19 | 13.88
25.84 | 159.21
581.3 | 233.62
80.63 | 250.67
Posted by: Andrew at October 1, 2005 4:26 PM
Those are dramatically worse numbers than we typically see. Did you use the indicated preparating page before running the tests?
http://www.hixie.ch/tests/adhoc/perf/prepare.html
Also, keep the mouse outside of the window when the test is running.
Posted by: tor at October 1, 2005 10:53 PM
I don't know, if you mean the tests on Hixies website and I can only see five test there, but anyway, here are my numbers using a Celereon M 1.3, 512 MB, Windows XP SP2:
gdi+ | cairo
17.20 | 25.06
15.96 | 25,00
5.29 | 6.16
11.76 | 49.97
266.71 | 76.13
Posted by: Abdulkadir Topal at October 2, 2005 12:11 AM
My question was directed to Andrew, whose results are not we expect to see.
Posted by: tor at October 2, 2005 5:42 AM
Are there any linux builds available?
Posted by: Shadow3333 at October 2, 2005 9:48 AM
linux has cairo backend by default
Posted by: at October 2, 2005 11:52 AM
Yeah, I used the "prepare" page and kept the mouse out of the window. I'm using the tests pointed to in an earlier post here, http://www.hixie.ch/tests/adhoc/svg/perf/ . Running in 16bit display depth btw. I'll do the tests again tonight after a reboot. Sorry about the wait on the response.. I've got visitors :/
Posted by: at October 2, 2005 2:03 PM
Ok have some more test information for you, dhtml heavy site with demos (http://www.backbase.com/#home/home.xml[0]) works fast and looks good to me, gmail works fine as does google maps, don't see any difference between de cairo and the GDI+ build.
Performance figures for the SVG tests are shown below:
30/09/GDI+ | 30/09/Cairo
-----------------------------
test 1: 16.64 | 16.84
test 2: 16.16 | 16.41
test 3: 5.30 | 5.38
test 4: 8.30 | 27.97
test 5: 143.31 | 44.36
Posted by: Shadow3333 at October 2, 2005 5:29 PM
Oops forgot to include the specs:
AMD Athlon XP 2400+, 512 MB memory
Posted by: Shadow3333 at October 2, 2005 5:31 PM
I suspect this also might be videocard specific.
I'm also getting less performance with the Cairo build, using Hixie's testcases.
I'm using a 600MHz Duron, 512MB, GeForce 200MX
Posted by: Martijn at October 2, 2005 9:59 PM
Re-ran the tests after a fresh start up and nothing but Firefox running. I'm using a Geforce2 200MX with the 30.82 drivers in 16bit.
gdi | cairo
21.77 | 80.64
21.12 | 78.31
7.11 | 13.24
24.84 | 153.67
567.76 | 227.91
78.69 | 242.27
There's 6 tests on the page I'm using -- am I on the right page? Everyone else seems to only have 5 tests.
Posted by: Andrew at October 3, 2005 2:18 PM
tor, I have no idea if this is related but middle-clicking links no longer bring up new tabs, they just leave me with a mouse-wheel cursor.
Posted by: Jeff Schiller at October 3, 2005 3:15 PM
I am getting similar speed performance as before but the printing is greatly improved.
Andrew - try the tests again but let your machine cool down between tests. I notice poorer performance as I progress through the tests and can hear the cooling fan cranking. Looking at your numbers I think you are really heating up your machine.
Posted by: Bruce R at October 3, 2005 8:42 PM
Two things:
1) GDI and Cairo render the following differently: http://www.the325project.org/SVG/Tests/MapTests/territoriesCities.svg.
Screenshots:
- Cairo: http://www.the325project.org/SVG/Tests/MapTests/DeerparkCairoWorldMap.jpg
- GDI+: http://www.the325project.org/SVG/Tests/MapTests/DeerparkGDIWorldMap.jpg
GDI seems to ignore or not like the size of the border setting (stroke:red;stroke-width:.0001) but Cairo renders it correctly.
2) Bug https://bugzilla.mozilla.org/show_bug.cgi?id=309254 still crashes the windows build - GDI or Cairo. As there's no problem with OS X I thought it might be a library port issue but no ...
p.s. OS X is alot faster now.
Posted by: conor325 at October 3, 2005 9:42 PM
Nah, it's not heating related. I've got fans on CPU, motherboard and graphics card, and the machine's barely on for 10 minutes before I start testing. I'll try the tests in 32bit tonight when I get a chance. Sorry for the wait -- still got visitors, and they're on the computer half the day..
Posted by: Andrew at October 4, 2005 5:57 AM
Take a look at this SVG:
http://filezilla.sourceforge.net/~botg/fz3.svg
theres a little black spike on the lower right corner of the folder, which should be rounded. Can you confirm this?
Posted by: Arpad Borsos at October 5, 2005 10:35 PM
The spike appears in the Firefox Cairo build but not the GDI build. The spike also appears in IE6/ASV.
Posted by: Bruce R at October 6, 2005 4:50 PM
Rotated text does not look nice:
http://lamp2.fh-stpoelten.ac.at/~lbz/beispiele/ws2005/scxml/site.php
Posted by: bernhard at October 6, 2005 10:41 PM
Does Firefox 1.5b2 use the current version of Cairo you're using in this test build?
Posted by: Andrew at October 7, 2005 6:00 AM
Can someone with a better background knowledge please file a bug on that spike problem? ( http://filezilla.sourceforge.net/~botg/fz3.svg )
Posted by: Arpad Borsos at October 7, 2005 6:21 AM
Andrew: http://www.squarefree.com/burningedge/releases/1.5b2.html
Notable bug fixes/Windows-specific bugs
"310957 - Switch Win32 SVG renderer from GDI+ to cairo. (This improves cross-platform consistency of SVG rendering and eliminates the requirement for Windows 98 users to download gdiplus.dll before they can see SVG content.)"
so it seems it's a resounding yes. great news for cairo and linux (that will have the exact same rendering than windows). also for non winXP users.
Posted by: emmanuel at October 7, 2005 11:27 AM
I've got some 16bit vs. 32bit perf numbers from my machine here. There's some pretty distinct differences -- 16bit is around 50% slower than 32bit on Test 4 (images), for example. GDI is pretty much exactly the same for both.
Cairo results
32bit | 16bit
----------------
55.37 | 79.02
55.41 | 78.28
12.93 | 13.46
101.34 | 157.48
173.37 | 229.27
192.30 | 247.51
GDI results
32bit | 16bit
--------------
19.83 | 20.14
19.73 | 19.79
7.18 | 7.21
25.62 | 26.09
576.04 | 572.91
79.41 | 79.03
Posted by: Andrew at October 8, 2005 2:49 PM
running FF 1.5 Beta 2
dynamic SVG is way slower now displayed than it was with the previous GDI-based implementation.
We have a mapping application in our intranet that is highly dynamic (SVG Dom modified by javascript). While previously there was no difference between viweing the map in Firefox and ASV3 it's now hardly useable in Firefox: showing and hiding objects and groups of objects is too slow.
I vote for GDI instead of Cairo
Posted by: Jens at October 10, 2005 12:38 PM
Have you tried AntiGrain Geometry http://antigrain.com for Mozilla Firefox backend. It seems to be terribly fast (comparing to cairo, even GDI+) it's opensource.
Just have a look at the demos: http://antigrain.com/demo/index.html
It's multiplatform, well maintained and having great performance. Only con it's C++, but for Mozilla it shouldn't be a problem.
Regards, Adam.
Posted by: OnO at October 13, 2005 6:52 PM
Hi,
When I look at my user agent statistics graph just now (http://www.grauw.nl/logs/useragent.php), I noticed that a white edge can be seen at the bottom.
I do not recall that being there before, and it is also incorrect for that to happen because both circles (the backdrop rendered with paths and the border with a circle) are both centered at (0,0).
~Grauw
Posted by: Laurens Holst at October 29, 2005 1:49 PM
Andrew. you need just Switch Win32 SVG renderer from GDI+ to cairo. (This improves cross-platform consistency of SVG rendering and eliminates the requirement for Windows 98 users to download gdiplus.dll before they can see SVG content.
Posted by: Jh_Beale at October 30, 2005 12:10 PM
Jh_Beale, thank for information. I've got the same troble like Andrew.
Posted by: Steph Rose at November 5, 2005 8:15 AM
Any other known problems?
Posted by: Jessica at November 12, 2005 11:52 PM
Please don't fix the "big text printout" bug
it is just a ugly quickfix screenshot bitmap after all.
Try to get printing to work as in the GDI+ version instead with actual vector graphics.
Posted by: Patrik Carlsson at November 18, 2005 8:36 AM
Firefox is the best browser. Fast, secure and comfortable... DO you need more?
Posted by: Ford at December 7, 2005 6:32 PM
I'm building a SVG browser for biological semantic web information. Whilst I'm finding SVG incredibly versatile for this purpose (especially when coupled to servlets using AJAX), I too find image rendering slow and the text-decoration is definately b0rked.
Is there a bug ID for the text-decoration problem? I searched bugzilla, but couldn't find one...
Posted by: clydefrog at March 6, 2006 2:13 PM
The judge who put coded messages in his Da Vinci Code plagiarism trial ruling has written another...
Posted by: Christopher Tallent at December 13, 2006 12:33 AM
Firefox is up there globally, but not in the US/Canada section. But still, that's awesome. Go Firefox! new for you
Posted by: at January 7, 2007 1:11 AM
that's a nice update, way to go.
Posted by: at January 18, 2007 3:07 PM
application based on GDI calls having
Posted by: at November 12, 2007 5:23 PM