Trying to do HDR with XRGB8888 is a bit like using RGB565 on SDR: you get visible color quantization and banding in gradients (without dithering which Weston does not implement yet, and might not work too well for HDR anyway). Therefore, on any HDR mode, default output framebuffer format to 10 bpc instead of 8 bpc. Ideally we'd also optionally try 16F or 16 bpc formats, but automatic fallbacks for those are more complicated to arrange. You can still configure 16F or 16 bpc manually. This patch also moves the default format setting from drm_output_set_gbm_format() to drm_output_enable(), because setting the default now requires eotf_mode. Frontends may call set_gbm_format() first and set eotf_mode next. This does create an awkward situation for outputs that a frontend disables and re-enables. This patch here makes sure that the old output configuration remains, but changing eotf_mode may not change the default format. One needs to call set_gbm_format(NULL) to re-evaluate the default format. Resetting the format on drm_output_deinit() would lose the current setting. DRM_FORMAT_INVALID was introduced in libdrm 2.4.95 which we already hard-depend on. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>dev
parent
33d553f833
commit
e6a9e3c4ee
Loading…
Reference in new issue