At screen depths > 24 bit, the color palettes passed into xf86Randr12CrtcComputeGamma() can have a larger number of slots than the crtc's hardware lut. E.g., at depth 30, 1024 palette slots vs. 256 hw lut slots. This palette size > crtc gamma size case is not handled yet and leads to silent failure, so gamma table updates do not happen. Add a new subsampling path for this case. This makes lut updates work again, as tested with the xgamma utility (uses XF86VidMode extension) and some RandR based gamma ramp animation. v2: Better resampling when subsampling the palette, as proposed by Ville. Now reaches the max index of the palette and deals with non-power-of-two sizes. Thanks. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by: Antoine Martin <antoine@nagafix.co.uk> (v1) Cc: <ville.syrjala@linux.intel.com> |
||
---|---|---|
.. | ||
Makefile.am | ||
meson.build | ||
xf86Crtc.c | ||
xf86Crtc.h | ||
xf86Cursors.c | ||
xf86cvt.c | ||
xf86DiDGA.c | ||
xf86EdidModes.c | ||
xf86gtf.c | ||
xf86Modes.c | ||
xf86Modes.h | ||
xf86RandR12.c | ||
xf86RandR12.h | ||
xf86Rotate.c |