Every tile on the GPU
The graphics card now draws every part of every page we test, and every pixel it draws is the same as the software drawing it replaces. On the 98 pages of our test set and on 25 real sites, from news front pages to web apps, nothing is left for the processor to draw. That took 3D and perspective, filters and blurs behind glass, cone-shaped gradients, masks, the four colour blend modes and shaped clips, each proved pixel for pixel on Mac and on Windows. The browser also checks its own graphics card now: a driver that gets something wrong is caught on the user's own machine and that drawing moves back to the processor.
Every tile, both test sets
A page is drawn in tiles of 16 by 16 pixels. Before this release, tiles holding a 3D transform, a filter, a backdrop blur, a cone gradient or one of a few blend modes were drawn by the processor and the rest by the graphics card. Each of those now has a graphics card form that gives the same bytes as the software, proved by a test of 120 to 400 random cases each, run on an Apple GPU and an NVIDIA one.
The browser checks its own graphics card
Graphics drivers have bugs, and a wrong pixel from one looks like a broken page. Because every graphics card drawing here is defined to equal the software drawing, the browser can check itself: every few seconds it draws one row of the page again in software, off the main thread, and compares. If they differ, the kinds of drawing in that row move to the processor for the rest of the session, the screen repaints, and the wrong row is never shown. Nothing leaves the device. The reference browser cannot do this: its graphics card drawing has no exact software twin to compare with.
Fast to start on Windows
The new drawing code made the Windows graphics compiler take 14.7 seconds to prepare at start-up. Three changes brought it back: an exact multiply uses the card's own multiply instead of forty whole-number steps, loops are written so the compiler keeps one copy instead of unrolling them, and the new kinds of drawing are prepared on a thread of their own while the page is already showing. Until they are ready, those parts are drawn by the processor, exactly the same.
Cone gradients that are the same everywhere
The angle in a cone-shaped gradient came from each operating system's own maths library, which can differ by a level between Mac, Windows and Linux. It now comes from our own angle function, built only from steps every machine does the same way, so the processor and the graphics card on every system give identical pixels. On our gradient test pages 4 pixels changed, each by one level.