backends/drm: disable degamma_lut and ctm on NVidia

The NVidia driver maps them to hardware planes, which means they do not
apply to the cursor because the cursor plane doesn't have these color
operations.

BUG: 491634
This commit is contained in:
Xaver Hugl 2024-08-13 14:45:25 +02:00
parent 74c90b727f
commit fe5db7f97d

View file

@ -55,11 +55,11 @@ bool DrmCrtc::updateProperties()
m_postBlendingColorOps.push_back(std::make_unique<LegacyLutColorOp>(next, &gammaLut, gammaLutSize.value())); m_postBlendingColorOps.push_back(std::make_unique<LegacyLutColorOp>(next, &gammaLut, gammaLutSize.value()));
next = m_postBlendingColorOps.back().get(); next = m_postBlendingColorOps.back().get();
} }
if (ctm.isValid()) { if (!gpu()->isNVidia() && ctm.isValid()) {
m_postBlendingColorOps.push_back(std::make_unique<LegacyMatrixColorOp>(next, &ctm)); m_postBlendingColorOps.push_back(std::make_unique<LegacyMatrixColorOp>(next, &ctm));
next = m_postBlendingColorOps.back().get(); next = m_postBlendingColorOps.back().get();
} }
if (degammaLut.isValid() && degammaLutSize.isValid() && degammaLutSize.value() > 0) { if (!gpu()->isNVidia() && degammaLut.isValid() && degammaLutSize.isValid() && degammaLutSize.value() > 0) {
m_postBlendingColorOps.push_back(std::make_unique<LegacyLutColorOp>(next, &degammaLut, degammaLutSize.value())); m_postBlendingColorOps.push_back(std::make_unique<LegacyLutColorOp>(next, &degammaLut, degammaLutSize.value()));
next = m_postBlendingColorOps.back().get(); next = m_postBlendingColorOps.back().get();
} }