[PATCH xf86-video-amdgpu 2/7] Initialize color properties on CRTC during CRTC init
Michel Dänzer
michel at daenzer.net
Thu Jun 14 16:58:13 UTC 2018
On 2018-06-01 06:03 PM, sunpeng.li at amd.com wrote:
> From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com>
>
> And destroy them on the CRTC destroy hook.
>
> When initializing color management properties on the private
> drmmode_crtc, we want to:
>
> 1. Obtain its degamma and regamma LUT sizes
> 2. Default its color transform matrix (CTM) to identity
> 3. Program hardware with default color management values (SRGB for
> de/regamma, identity for CTM)
>
> It's possible that cm initialization fails due to memory error or DRM
> error. In which case, DDX support for color management will be disabled
> on this CRTC.
>
> Signed-off-by: Leo (Sunpeng) Li <sunpeng.li at amd.com>
>
> [...]
>
> + drmModeFreeObjectProperties(drm_props);
> +
> + if (!drmmode_crtc_cm_enabled(drmmode_crtc)) {
> + xf86DrvMsg(crtc->scrn->scrnIndex, X_INFO,
> + "CRTC%d does not support non-legacy color management.\n",
> + drmmode_get_crtc_id(crtc));
> + drmmode_crtc->degamma_lut_size = 0;
> + drmmode_crtc->gamma_lut_size = 0;
drmmode_crtc_cm_enabled returning FALSE means these are already both 0.
> + xf86DrvMsg(crtc->scrn->scrnIndex, X_INFO,
> + "CRTC%d supports non-legacy color management.\n",
> + drmmode_get_crtc_id(crtc));
Is this log message really needed? For every CRTC? :)
This can easily be determined by checking for the existence of the
properties with xrandr.
> + /* Push properties to reset properties currently in hardware */
> + for (i = 0; i < CM_NUM_PROPS; i++) {
> + if (i == CM_DEGAMMA_LUT_SIZE || i == CM_GAMMA_LUT_SIZE)
> + continue;
This loop and the drmmode_output_set_property change in patch 5 could be
simplified by putting CM_(DE)GAMMA_LUT_SIZE at the end of the enum
definition and using the first of them as the sentinel instead of
CM_NUM_PROPS.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the amd-gfx
mailing list