Surfin' Safari

WebKit achieves Acid3 100/100 in public build

Posted by Maciej Stachowiak on Wednesday, March 26th, 2008 at 6:55 pm

UPDATE We now believe we have a full rendering pass (but not necessarily an animation smoothness pass yet). See the bottom of the post for details.

UPDATE The Windows nightly is now available for download. See below for details.

With r31342 WebKit has become the first publicly available rendering engine to achieve 100/100 on Acid3. The final test, test 79, was a brutal torture test of SVG text rendering. Details of the bugs we fixed will follow. Indeed, we found a critical bug in the test itself that would have forced a violation of the SVG 1.1 standard to pass, so until a few hours ago it was not possible to get a valid 100/100. Acid3 test editor Ian Hickson has the details.

Note: this does not indicate a full pass of Acid3. We have a slight glitch in the text rendering that is likely to be fixed soon (patch in progress). Also, the animation is required to be smooth. On typical machines, if you look really closely, you can see a small glitch in the animation on test 26 because 26 is designed to be a performance test. However, we think we are faster than all other browsers on test 26. What constitutes a smooth animation is somewhat subjective.

This is not just a screenshot, you can pull live from SVN and build to see it yourself, and a fresh nightly build is coming soon.

Update:

Thanks to our own Dan Bernstein, as of r31356 we believe we have a pixel-perfect match for the reference rendering.

Get the fresh hot bits of the latest Mac and Windows nightly builds which include the full reference rendering pass.

Extra special bonus update: Alp Toker reports that the Gtk port now gets 100/100, although it does not yet match the reference rendering.

65 Responses to “WebKit achieves Acid3 100/100 in public build”

  1. alexramos Says:

    Congratulations Guys!!!!

  2. wuputah Says:

    Fantastic work. I want to congratulate and thank you all for the work that has been done here, and a special thanks to the test creator, Ian Hickson. The progress we’ve seen in all browsers since Acid3 was released has been simply amazing. I look forward to seeing a new version of Safari being released for public consumption in the future. Hope it isn’t too long. :)

  3. Swahvay Says:

    That really is great work! I hear the heads over at the development of IE reached a milestone today too. They finally got the memo that there’s an Acid3 test.

    But seriously. This is really great work. :)

  4. rk Says:

    The latest nightly looks great. Congratulations to all of you and thanks for your hard work. I too look forward to seeing an update that will bring this fantastic rendering engine to all Safari users.

  5. anaknipedro Says:

    Great job guys. Build r31344 gets 99/100. It’s that SVG text rendering test again. I’m not savy enough to bild it on my own.

  6. DJCarbon43 Says:

    Yes!!!!! :D Congrats to all of the dedicated folks who worked on this, submitted bug reports, et al !!! YAY! :)

  7. Aisys Says:

    Rock ON. Congratulations to the WebKit team, and Ian!

  8. m1ss1ontomars2k4 Says:

    Good job. I think you already know this, but the text that says “Acid3″ is slightly skinnier in the test-rendered version than in the reference. My hobby is opening two similar pages in different tabs and rapidly switching between the two tabs.

  9. anaknipedro Says:

    Interesting, the first few times I did the test with build r31344 it came back as 99/100 but after several refreshes it scored 100/100. Amazing work guys.

  10. DJCarbon43 Says:

    r31344 is now out, and looks exactly, to the pixel, like the reference rendering. The spacing issue is resolved it appears.

    In addition, a previous build corrected the refresh regression bug in the ACID 2 test.

    Now where’s this Opera build… ;)

  11. jpinnix Says:

    Congratulations!

  12. David Smith Says:

    @m1ss1ontomars2k4

    I believe http://trac.webkit.org/projects/webkit/changeset/31356 fixes that

  13. Trackback from mcc.id.au:

    WebKit gets 100 on Acid3…

    The last few days have been neck-and-neck, but finally the latest nightly build of WebKit gets 100/100 on the Acid3 test, just beating out Opera. While Opera had a screenshot of an internal build getting 100 yesterday, WebKit’s is the first publ…

  14. spectral Says:

    Just downloaded 31356, it’s now pixel exact on my machine. Awesome work guys!

  15. andrew.hedges Says:

    So, if it wasn’t possible to get 100/100 until a few hours ago and Opera said they did it yesterday…

  16. Kody Bryson Says:

    Congratulations!

  17. John B Says:

    The first time I ran 31356, it got 99/100 on the test. Subsequent runs achieved 100/100.

    Unfortunately, I didn’t pay enough attention to the screen that first run, but one of the boxes was gray (I believe it was the blue one, but I wouldn’t bet anything serious on it.)

    Awesome job.

  18. cheunghy Says:

    I am getting 100/100 on my MacBook Pro; however, I can only get 94/100 on my iMac G5. Is there anything to do with the architecture (PowerPC vs Intel)? If not, what are the other possible factors that may lead to such results?

    For your reference:
    Failed 6 tests.
    Test 26 passed, but took 313ms
    Test 43 passed, but took 17ms
    Test 46 passed, but took 18ms
    Test 65 passed, but took 37ms
    Test 69 failed: Undefined value
    Test 74 failed: getSVGDocument failed for referencing an svg document.
    Test 75 failed: Value undefined (result of expression svg.setCurrentTime) is not object.
    Test 76 failed: expected ’0′ but got ’100′ – Incorrect animVal value after svg animation.
    Test 77 failed: expected ’3′ but got ’0′ – getNumberOfChars returned incorrect string length.
    Test 78 failed: expected ’90′ but got ’0′ – getRotationOfChar(0) failed.
    Total elapsed time: 1.76s

  19. jeffbax Says:

    Awesome news, and a kudos to the Opera folk as well. Too bad half the web is still in IE6 hell :(

  20. eAi Says:

    Great job. Now just fix the few odd 99/100s etc that people get and we’ll all be happy bunnies until Acid4 comes along :)

    Anyone got any thoughts on what Acid4 should test?

  21. tqv Says:

    You guys did an awesome job providing us nightly users with a day-to-day update on the progress we could follow live with each new build of Safari. We knew it was coming soon considering the rate you have improved the engine in the last couple of days. Many thanks for this hardcore hacking job, hope you will be rewarded with the prize of getting the first stable release to pass Acid3!

  22. Kit Says:

    Thanks to our own Dan Bernstein, as of r31356 we believe we have a pixel-perfect match for the reference rendering.

    You sure do

  23. FrancescoK Says:

    Safari. Previously on speed, now on Acid, too. (I give this hereby into the public domain for Apple marketing to use. That would be awesome)

  24. Rene Says:

    Congratulations and great work! Hope you’ll get the Browser of the Year award and fund!

  25. lala Says:

    And don’t forget Epiphany and Konqueror, our open source Linux browsers! They have reached also 100/100 on acid by the webkit engine. Woohaa!

  26. slugtrail Says:

    Congratulations guys :-) I’m particulary impressed with your openness during this process with rapid updates on progress, it’s been very exciting!

  27. znerd Says:

    Congratulations on this, from the Netherlands. This should give WebKit and Safari some positive press after the not-so-positive reactions to the Safari-via-update trick.

    Indeed, like slugtrail says, the openness is impressive; it boosts awareness and appreciation for WebKit.

  28. xfinite Says:

    Nothing like a competition to get multiple talented teams in overdrive mode.
    Awesome work guys (and the Opera team as well of course.) Here’s hoping Foxy gets up to speed as well, completing the Browsers of Awesomeness Trifecta.

  29. jonasmunk Says:

    I also only got 99 on the first try. Maybe this is due to caching of the old faulty javascript/html on the test page since I have been running the test every morning for the past week :-)

    Super job! And please continue to write about your progress with the engine – it is very interesting reading!

  30. FrancescoK Says:

    Oh, and with rev. 31370, the “99 on first try, 100 all the subsequent times” bug seems to be gone, too. Awesomeness. Now bring on Safari 3.2, oh and KDE guys: Please just let this KHTML/WebKit duality go and use WebKit for Konqueror. Or at least give a simple option to the user to use either engine (Great choice by QT by the way). Hopefully Firefox catches up soon, I don’t really like the current state of Gecko and the decision of a fifth beta for FF3 doesn’t bode too well…

  31. Roberto Says:

    hm, I still have “Test 26 passed, but took 112ms (less than 30fps)” (only this)

    but it’s awesome (I hate this word ;]) that WebKit is first again!

    but still there are problems with :hover on http://disruptive-innovations.com/zoo/css3tests/selectorTest.html#target (when I remove :hover 2 last tests work perfectly)

  32. Gladiak Says:

    Congratulations from Italy :)

    Webkit is the best engine ever :D

  33. nemeseri Says:

    Congrats guys!

  34. FavBrowser.com Says:

    Good work,

    Congrats!

  35. harveypooka Says:

    Well done.

    A most excellent job!

  36. ttjervaag Says:

    Congratulations Safari team! Great work!

    I was reading Rob Sayre’s commentary today: http://blog.mozilla.com/rob-sayre/2008/03/26/acid3-is-basically-worthless/ and while it mostly sounds like sour grapes I would love to hear comments from the Safari team about this commit:

    http://trac.webkit.org/projects/webkit/changeset/31322

    If it’s not the hack it looks like, why not take the time to comment publicly to resolve any ambiguity? And if it is a hack just to pass Acid 3, shouldn’t something be done about either the test or the browser to fix the bug properly?

  37. menneke Says:

    Congratulations!
    Like others I had 99/100 the first time and 100/100 for reloads (on rev 31370)

  38. dngnta Says:

    First load on r31368 on Windows, 99/100 with test 80 failing: kungFuDeathGrip is null.

    Reloaded (hit ctrl-r) and it worked fine up to 100/100.

    IIRC I had it fail yesterday at 99/100 with “null glyph” or something like that. So apparently some objects are sometimes not being loaded properly. I can’t be arsed to file a bug report atm though :-)

  39. sulka Says:

    Build 31370 gets consistently 94/100 on my Powerbook G4 10.4.11, reloading or not. Need a bug report?

    Test 69 failed: Undefined value
    Test 74 failed: getSVGDocument failed for referencing an svg document.
    Test 75 failed: Value undefined (result of expression svg.setCurrentTime) is not object.
    Test 76 failed: expected ’0′ but got ’100′ – Incorrect animVal value after svg animation.
    Test 77 failed: expected ’3′ but got ’0′ – getNumberOfChars returned incorrect string length.
    Test 78 failed: expected ’90′ but got ’0′ – getRotationOfChar(0) failed.

  40. Unr3a1 Says:

    I have r31368 on Windows and I am consistently getting 75/100 with a “LINKTEST FAILED” message.

  41. solipsism Says:

    @ suika,
    You should fill out a bug report.

    @Unr3a1,
    You are running Safari 3.1′s WebKit engine, not r31368.

  42. Franck Says:

    I am the only one to constantly get over 200ms on test 65 under Windows XP ?
    I can’t explain how that could be so slow without an entry in the bug tracker.

  43. nachokb Says:

    Good work! This test is really important, and sets a good quality standard for the time to come. If only IE vanished away… I hope Acid4 comes in some months, after a few more browsers pass this one. Still, I wouldn’t like for it to become routine, it would lose its power.

    I found the difference between 31342 to be reaaaaaally picky [1]. What caused that? A CSS property?.

    I want to note that it is most likely that Opera’s developers got there first. What was the difference? The license!

    Applause for both WebKit’s and Opera’s devs.

    P.S. Please enable OpenID for this site, I had to register for this one comment.

    nachokb

    [1] http://www.flickr.com/photos/nachokb/2366189473/sizes/o/

  44. Dan Atkinson Says:

    Firstly, congratulations are in order!

    When I run the latest build, I do get to 100, eventually, but the first two times I ran the test, it halted at 98.

    Is this something you are aware of?

  45. nachokb Says:

    Damn, now I see where the difference was. It was really a bug [1].

    [1] http://trac.webkit.org/projects/webkit/changeset/31356 (it disabled subpixel AA on certain circumstances).

    nachokb

  46. Dan Atkinson Says:

    P.S. 31368 (win) is my build revision!

  47. Thinine Says:

    I still get intermittent failures using the latest Windows beta that drop the score down to 98 or so. And how are people getting the test times and stuff? The Inspector console doesn’t show anything.

  48. mgalvin Says:

    Congratulations! I am so glad WebKit/Safari is leading the way for standards and web developer sanity. Thank you for all the hard excellent work!

  49. Karl Says:

    Great work guys – competition does improve the breed!

  50. Unr3a1 Says:

    Well shiver me timbers… I am a total newb at this safari webkit stuff. how do I run the correct webkit?

  51. dcolanduno Says:

    What am I doing wrong, no matter what I can only go up to 94/100 and I have the newest build as indicated. Is there something I need to turn off more than all the plugins and such?

  52. dngnta Says:

    WebKit-r31376 on Windows. First try, 98/100 with two tests failing:

    Test 79 failed: character position 6, which is between a normal character, which has some kerning after it and the first character of a two-character glyph, which has some kerning before it, is 21600 but should be 21800.
    Test 80 failed: kungFuDeathGrip was null

    Reloaded, now scoring 97/100 with three tests failing:

    Test 77 failed: expected ’4776′ but got ’5550′ – getComputedTextLength failed.
    Test 78 failed: expected ’90′ but got ’0′ – getRotationOfChar(0) failed.
    Test 79 failed: character position 6, which is between a normal character, which has some kerning after it and the first character of a two-character glyph, which has some kerning before it, is 21600 but should be 21800.

  53. anaknipedro Says:

    @Unr3a1,
    Simply download the nightly build, your mac should automatically mount the disk image, then drag the webkit icon to your applications folder. Webkit will use all of Safari’s plugins, bookmarks, and preferences, only it will use the nightly build’s engine.

  54. giromide Says:

    Mac OS X 10.4.11, Nightly r31376 — 99/100

  55. giromide Says:

    I should clarify my last post. Sorry…

    iMac Fall 2006, Mac OS X 10.4.11, Nightly r31376 —> 99/100

    From AcidTests:

    Failed 1 tests.
    Test 26 passed, but took 86ms (less than 30fps)
    Test 79 failed: character position 6, which is between a normal character, which has some kerning after it and the first character of a two-character glyph, which has some kerning before it, is 21600 but should be 21800.
    Total elapsed time: 0.28s

  56. Niko Neugebauer Says:

    A major step forward guys, congratulations!
    Wish some _other_ browser developers would be so interested in innovating as you are.

  57. lethe Says:

    @Thinine: click on the “A” in the Acid3 test to get a javascript alert-box showing you your errors.

  58. Mark Rowe Says:

    @giromide: An attempt at fixing up the Qt build earlier today introduced a regression that caused test 79 to fail as you mention. This was fixed again in r31381, so the latest nightly build will once again pass.

  59. danielruiz Says:

    I have 2 computers one with OS X 10.5 (Intel) and one with OS X 10.4.11(G4). WebKit r31388 on 10.5 is getting 100/100 but only 94/100 on 10.4.11. If someone could enter this into a bug report that would be great, I would but I don’t really know your system for entering bugs and just don’t want to f it up. Great work by the way, can’t wait to see this as a release.

  60. Sebastian Says:

    This is already a bug, see http://bugs.webkit.org/show_bug.cgi?id=17884

    Please create an account and vote for the bug, I still think this is somewhat of a very low priority for the devs, but many people are seeing the failure.

  61. Unr3a1 Says:

    Got 100/100 with my webkit r31386. However, if I reload the page, I only get 99/100. then if i reload again, I only get 98/100. On the third reload, I got the 100/100 again.

  62. Daniel Ruiz Says:

    As of r31738 I’m still only getting 94/100 on my G4 with OS X 10.5.2 on my Intel with 10.5.2 100/100.

  63. Sebastian Says:

    Daniel: Please see http://bugs.webkit.org/show_bug.cgi?id=17884 and confirm if it works for you.

  64. Daniel Ruiz Says:

    Thanks Sebastian, I removed NPSVG3Carbon-Plugin and I now get 100/100 awesome. When the next version of Safari is officially rolled out the Webkit team should ask Apple to remove that plugin for G4/G5 users or at least disable it in Safari.

  65. Sebastian Says:

    Daniel: Please write a comment in the bug report! The devs are still not sure what to do with the bug, so any additional comment will help.