Small WebGL drawings get smooth edges
Small WebGL drawings get smooth edges. A chart or a little canvas that stays in the software renderer was still stair-stepped after the last release, because only the GPU path could antialias. Software now takes the same four samples in the same four places, so a small drawing matches the reference almost pixel for pixel and comes out the same on every machine. Member reads on objects made with new are also cached now, which makes heavy WebGL scenes about a tenth faster.
Small drawings, smooth edges




After the last release one limit stayed on the quality claim: a small script that stays in the software renderer still had stair-stepped edges. Staying in software is what keeps a small canvas the same on every machine, so moving it to the GPU was not the answer. The answer was to teach software to antialias the way the GPU does. It now takes four samples at the same four positions, but only on pixels an edge actually crosses, so a flat area costs nothing extra and memory stays small. Getting there took one honest surprise: coverage worked out in sixteenths of a pixel flipped whole rows, and it had to be two hundred and fifty-sixths before software and GPU agreed.
The same edge, up close




This is the same chart enlarged four times. Because the pattern matches, a canvas that starts in software and moves to the GPU does not change its look when it moves, and two runs of the same page give the same bytes. The WebGL conformance suite in software went to 97.0% with this, and nothing got worse.