On 2018-02-20 05:06 AM, Mario Kleiner wrote:
> This retains old behavior for depths <= 24, but allows gamma
> table and colormap updates to work properly at depth 30.
> 
> This needs the xf86Randr12CrtcComputeGamma() fix for depth 30
> from a previous commit to work. Otherwise the server will work,
> but gamma table updates will silently fail, iow. the server
> would always run with a default identity gamma lut.
> 
> Signed-off-by: Mario Kleiner <[email protected]>
> ---
>  hw/xfree86/drivers/modesetting/drmmode_display.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c 
> b/hw/xfree86/drivers/modesetting/drmmode_display.c
> index 9c38563..d4c3ca8 100644
> --- a/hw/xfree86/drivers/modesetting/drmmode_display.c
> +++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
> @@ -2262,13 +2262,18 @@ drmmode_load_palette(ScrnInfoPtr pScrn, int numColors,
>  Bool
>  drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn)
>  {
> -    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0, "Initializing kms color 
> map\n");
> +    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0,
> +                   "Initializing kms color map for depth %d, %d bpc.\n",
> +                   pScrn->depth, pScrn->rgbBits);
>      if (!miCreateDefColormap(pScreen))
>          return FALSE;
> -    /* all radeons support 10 bit CLUTs */
> -    if (!xf86HandleColormaps(pScreen, 256, 10, drmmode_load_palette, NULL,
> -                CMAP_PALETTED_TRUECOLOR |
> -                CMAP_RELOAD_ON_MODE_SWITCH))
> +
> +    /* Adapt color map size and depth to color depth of screen. */
> +    if (!xf86HandleColormaps(pScreen,
> +                             (pScrn->rgbBits > 8) ? 1 << pScrn->rgbBits : 
> 256,

Just passing 1 << pScrn->rgbBits should always work here.


> +                             10, drmmode_load_palette, NULL,

BTW, drmmode_load_palette is never called, since
xf86CrtcFuncsRec::gamma_set is always non-NULL; it can be removed.
Doesn't have to be done by this patch, of course.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to