On Wed, Jun 27, 2018 at 12:39 PM, Michel Dänzer <michel at daenzer.net> wrote: > From: Michel Dänzer <michel.daenzer at amd.com> > > Instead of from drmmode_set_mode_major. There's no need to re-set the > gamma LUT on every modeset, the kernel should preserve it. > > Signed-off-by: Michel Dänzer <michel.daenzer at amd.com> Series is: Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > src/drmmode_display.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) > > diff --git a/src/drmmode_display.c b/src/drmmode_display.c > index 5fe49b607..9364a885a 100644 > --- a/src/drmmode_display.c > +++ b/src/drmmode_display.c > @@ -1353,12 +1353,6 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, > else > drmmode_crtc->scanout_id = 0; > > - /* gamma is disabled in kernel driver for deep color */ > - if (pScrn->depth != 30) > - drmmode_crtc_gamma_do_set( > - crtc, crtc->gamma_red, crtc->gamma_green, > - crtc->gamma_blue, crtc->gamma_size); > - > if (drmmode_crtc->prime_scanout_pixmap) { > drmmode_crtc_prime_scanout_update(crtc, mode, scanout_id, > &fb, &x, &y); > @@ -3450,6 +3444,7 @@ Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode, > Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn) > { > xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); > + int i; > > if (xf86_config->num_crtc) { > xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, AMDGPU_LOGLEVEL_DEBUG, > @@ -3457,13 +3452,23 @@ Bool drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn) > if (!miCreateDefColormap(pScreen)) > return FALSE; > /* All radeons support 10 bit CLUTs. They get bypassed at depth 30. */ > - if (pScrn->depth != 30 && > - !xf86HandleColormaps(pScreen, 256, 10, > - NULL, NULL, > - CMAP_PALETTED_TRUECOLOR > - | CMAP_RELOAD_ON_MODE_SWITCH)) > - return FALSE; > + if (pScrn->depth != 30) { > + if (!xf86HandleColormaps(pScreen, 256, 10, NULL, NULL, > + CMAP_PALETTED_TRUECOLOR > + | CMAP_RELOAD_ON_MODE_SWITCH)) > + return FALSE; > + > + for (i = 0; i < xf86_config->num_crtc; i++) { > + xf86CrtcPtr crtc = xf86_config->crtc[i]; > + > + drmmode_crtc_gamma_do_set(crtc, crtc->gamma_red, > + crtc->gamma_green, > + crtc->gamma_blue, > + crtc->gamma_size); > + } > + } > } > + > return TRUE; > } > > -- > 2.18.0 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx