This demonstrates loading high-resolution (4096px) photos into WebGL as compressed textures stored using KTX2, transcoded at runtime to ··· (best format for your browser.) Compare compressed textures to the “naïve” approach of loading JPEG images as uncompressed textures by toggling the checkbox. View source for the JavaScript code.

The rolling chart above shows the time taken to render each frame.
Frames in which a new texture is uploaded are colored ■ black. Frames exceeding the "frame budget" are red.