While we expose the ability to turn off hardware dithering for nouveau,
we actually make the mistake of turning it on anyway, due to
dithering_depth containing a non-zero value if our dithering depth isn't
also set to 6 bpc.

So, fix it by never enabling dithering when it's disabled.

Signed-off-by: Lyude Paul <ly...@redhat.com>
---
 drivers/gpu/drm/nouveau/dispnv50/head.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c 
b/drivers/gpu/drm/nouveau/dispnv50/head.c
index e29ea40e7c33..72bc3bce396a 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/head.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/head.c
@@ -84,18 +84,20 @@ nv50_head_atomic_check_dither(struct nv50_head_atom *armh,
 {
        u32 mode = 0x00;
 
-       if (asyc->dither.mode == DITHERING_MODE_AUTO) {
-               if (asyh->base.depth > asyh->or.bpc * 3)
-                       mode = DITHERING_MODE_DYNAMIC2X2;
-       } else {
-               mode = asyc->dither.mode;
-       }
+       if (asyc->dither.mode) {
+               if (asyc->dither.mode == DITHERING_MODE_AUTO) {
+                       if (asyh->base.depth > asyh->or.bpc * 3)
+                               mode = DITHERING_MODE_DYNAMIC2X2;
+               } else {
+                       mode = asyc->dither.mode;
+               }
 
-       if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
-               if (asyh->or.bpc >= 8)
-                       mode |= DITHERING_DEPTH_8BPC;
-       } else {
-               mode |= asyc->dither.depth;
+               if (asyc->dither.depth == DITHERING_DEPTH_AUTO) {
+                       if (asyh->or.bpc >= 8)
+                               mode |= DITHERING_DEPTH_8BPC;
+               } else {
+                       mode |= asyc->dither.depth;
+               }
        }
 
        asyh->dither.enable = mode;
-- 
2.24.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to