wlroots/render/gles2
Andri Yngvason e6eb3e1ae4 render: gles2: pass: Implement rendering into NV12 buffers
As mentioned in the previous commit message, we can't create an RBO out
of an NV12 buffer in GL ES2.0. Instead, we render in 2 passes to 2
separate RBOs.

This could be made more generic by having a lookup table for the
parameters that need to be set for each plane for any given format, but
as of yet, I see no practical reason for implementing any other kind of
YCbCr target buffer rendering as NV12 seems to be the only format that's
commonly supported by hardware video encoders.

I chose to use BT.709 full-range cofficients as that is what is
prescribed by sRGB, annex f.

Signed-off-by: Andri Yngvason <andri@yngvason.is>
2026-04-16 14:34:54 +00:00
..
shaders render: gles2: Add colour conversion matrix to shaders 2026-04-16 14:34:54 +00:00
meson.build render/gles2: validate shaders at build time 2024-12-15 13:59:42 +01:00
pass.c render: gles2: pass: Implement rendering into NV12 buffers 2026-04-16 14:34:54 +00:00
pixel_format.c render/gles2: add BGR161616F and BGR161616 2026-01-03 17:47:19 +00:00
renderer.c render: gles2: Add NV12 GLES2 buffers 2026-04-16 14:34:54 +00:00
texture.c render: gles2: Add NV12 GLES2 buffers 2026-04-16 14:34:54 +00:00