On 2018-03-26 10:00 PM, sunpeng.li at amd.com wrote: > From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com> > > In cases where CRTC properties are updated without going through > RRChangeOutputProperty, we don't update the properties in user land. > > Consider setting legacy gamma. It doesn't go through > RRChangeOutputProperty, but modifies the CRTC's color management > properties. Unless they are updated, the user properties will remain > stale. Can you describe a bit more how the legacy gamma and the new properties interact? > Therefore, add a function to update user CRTC properties by querying DRM, > and call it whenever legacy gamma is changed. Note that drmmode_crtc_gamma_do_set is called from drmmode_set_mode_major, i.e. on every modeset or under some circumstances when a DRI3 client stops page flipping. > diff --git a/src/drmmode_display.c b/src/drmmode_display.c > index 1966fd2..45457c4 100644 > --- a/src/drmmode_display.c > +++ b/src/drmmode_display.c > @@ -61,8 +61,13 @@ > > #define DEFAULT_NOMINAL_FRAME_RATE 60 > > +/* Forward declarations */ > + > static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height); > > +static void drmmode_crtc_update_resources(xf86CrtcPtr crtc); Can you move the drmmode_crtc_update_resources such that the forward declaration isn't necessary? > static Bool > AMDGPUZaphodStringMatches(ScrnInfoPtr pScrn, const char *s, char *output_name) > { > @@ -768,6 +773,7 @@ drmmode_crtc_gamma_do_set(xf86CrtcPtr crtc, uint16_t *red, uint16_t *green, > > drmModeCrtcSetGamma(pAMDGPUEnt->fd, drmmode_crtc->mode_crtc->crtc_id, > size, red, green, blue); > + drmmode_crtc_update_resources(crtc); > } > > Bool > @@ -1653,10 +1659,15 @@ static Bool drmmode_property_ignore(drmModePropertyPtr prop) > * Configure and change the given output property through randr. Currently > * ignores DRM_MODE_PROP_ENU property types. Used as part of create_resources. > * > +* @output: The output to configure and change the property on. > +* @pmode_prop: The driver-private property object. These two should have been added in patch 1. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer