Faster compute renderer, CPU fallback

Message ID
DKIM signature
Download raw message

I've just pushed a major update to the compute renderer to main. There
shouldn't be any visible changes for you, except the renderer is now
much faster and supports Linux and Android devices without GPU support.

The interesting commits are:

gpu: [compute] add CPU fallback

This change adds support for the gioui.org/cpu module that contains the
compiler and pre-compiled CPU binaries for the compute programs. With
CPU fallback, the compute renderer now covers virtually all devices Gio
can run on, including devices that only supports the old renderer by
lack of GPU compute.

gpu: [compute] cache and re-use drawing operations from the previous frame

This change implements an automatic layering scheme such that only the
changed parts of a frame needs to go through the compute programs.
Without this optimization CPU fallback would not be practical.

gpu: [compute] add compute renderer specific decoding of ops

Before this change, the compute renderer processed drawing operations
twice: first from Gio ops to old renderer operations, and then from
old renderer operations to compute operations. This change cuts out the
middle-man and converts straight from Gio ops to compute ops.

The update brings the compute renderer closer to becoming the default,
and eventually only, renderer. Before making it default, I plan to look
at the 3 outstanding compute issues: #214, #219, #221. I may also port
the renderer to Metal and Direct3D, although that's not strictly
necessary until the old renderer is disabled.

Reply to thread Export thread (mbox)