mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-20 10:28:09 +02:00
The assumption in the upsampling code was that the crtc->gamma_size size of the crtc's gamma table is a power of two. This is true for almost all current driver + gpu combos at least on Linux, with typical sizes of 256, 512, 1024 or 4096 slots. However, Intel Gen-11 Icelake and later are outliers, as their gamma table has 2^18 + 1 slots, very big and not a power of two! Try to make upsampling behave at least reasonable: Replicate the last gamma value to fill up remaining crtc->gamma_red/green/blue slots, which would normally stay uninitialized. This is important, because while the intel display driver does not actually use all 2^18+1 values passed as part of a GAMMA_LUT, it does need the very last slot, which would not get initialized by the old code. This should hopefully create reasonable behaviour with Icelake+ but is untested on the actual Intel hw due to lack of suitable hw. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> |
||
|---|---|---|
| .. | ||
| Makefile.am | ||
| meson.build | ||
| xf86Crtc.c | ||
| xf86Crtc.h | ||
| xf86Cursors.c | ||
| xf86DiDGA.c | ||
| xf86EdidModes.c | ||
| xf86gtf.c | ||
| xf86Modes.c | ||
| xf86Modes.h | ||
| xf86RandR12.c | ||
| xf86RandR12.h | ||
| xf86Rotate.c | ||