From 05877a83211aee64a47e227dde433ef19fec0b2e Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Thu, 28 Apr 2022 02:23:18 +0200 Subject: [PATCH] backends/drm: reduce "max bpc" to what is actually used This prevents triggering a bug in the BenQ GW2765 monitor, and should in theory have no downsides. BUG: 449906 FIXED-IN: 5.24.5 --- src/backends/drm/drm_pipeline.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backends/drm/drm_pipeline.cpp b/src/backends/drm/drm_pipeline.cpp index 8d3bc34200..afc3812dcb 100644 --- a/src/backends/drm/drm_pipeline.cpp +++ b/src/backends/drm/drm_pipeline.cpp @@ -231,7 +231,11 @@ void DrmPipeline::prepareAtomicModeset() m_connector->getProp(DrmConnector::PropertyIndex::Underscan_hborder)->setPending(hborder); } if (const auto bpc = m_connector->getProp(DrmConnector::PropertyIndex::MaxBpc)) { - bpc->setPending(bpc->maxValue()); + uint64_t preferred = 8; + if (auto backend = dynamic_cast(gpu()->platform()->renderBackend()); backend && backend->prefer10bpc()) { + preferred = 10; + } + bpc->setPending(std::min(bpc->maxValue(), preferred)); } m_pending.crtc->setPending(DrmCrtc::PropertyIndex::Active, activePending());