config: tweak.surface-bit-depth: add 16-bit

This adds support for 16-bit (integer) surfaces. The corresponding
pixman type (PIXMAN_a16b16g16r16) was added in 0.46.0.

If the new 16-bit type is requested, but not supported by the
compositor, fallback to 16f-bit, and if that fails, 10-bit (and
finally 8-bit).
This commit is contained in:
Daniel Eklöf 2025-05-01 11:55:21 +02:00
parent 429a922723
commit 5dbf5ea89d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
8 changed files with 60 additions and 16 deletions

View file

@ -2814,7 +2814,12 @@ parse_section_tweak(struct context *ctx)
#if defined(HAVE_PIXMAN_RGBA_FLOAT16)
return value_to_enum(
ctx,
(const char *[]){"auto", "8-bit", "10-bit", "16f-bit", NULL},
(const char *[]){"auto", "8-bit", "10-bit", "16-bit", "16f-bit", NULL},
(int *)&conf->tweak.surface_bit_depth);
#elif defined(HAVE_PIXMAN_RGBA_16)
return value_to_enum(
ctx,
(const char *[]){"auto", "8-bit", "10-bit", "16-bit", NULL},
(int *)&conf->tweak.surface_bit_depth);
#else
return value_to_enum(