Skip to content

Draft: Fix offscreen cogl pipeline for optical encoding

Naveen Kumar requested to merge naveenk2/mutter:wip/color-state-plumbing-v3 into main

Currently with MR !3433, CoglPipeline priv->offscreen_pipeline created for optical encoding is not destroyed from initial pipeline and hence it will always ignore re-generation of shaders for pq_inv_eotf during later cases and it will not include shaders for optical encoding i.e. "linear to non-linear conversion".

Following are my observations so far: Observation 1: I tried couple of image & video clients and my findings are same, it simply ignores pq_inv_eotf and shaders pipeline created is only srgb_eotf->bt709_to_bt2020, however what is rightly expected is srgb_eotf->bt709_to_bt2020->pq_inv_eotf.

Observation 2: The pipeline looks correct and shaders srgb_eotf->bt709_to_bt2020->pq_inv_eotf gets included properly initially only when you enable HDR via ./tools/debug-control.py --enable EnableHDR.

Note: All this observations are for input content bt709 and HDR is enabled.

FIX: With this patch, we are trying to invalidate offscreen pipeline when setting a different color state.

This MR is related to !3433.

Merge request reports