broadcom/vc5: Clean up the comment and code around level 0 UIF.
authorEric Anholt <eric@anholt.net>
Tue, 19 Dec 2017 22:20:19 +0000 (14:20 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 19 Dec 2017 22:20:19 +0000 (14:20 -0800)
I wrote this early in driver development, and our UIF handling is much
better now.

src/gallium/drivers/vc5/vc5_state.c

index b7f9c405e4afc39858aacf474f42a013e1922086..6a90a78e2e588d77a83de5b87c754aa4f967c7ca 100644 (file)
@@ -693,21 +693,17 @@ vc5_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *prsc,
                         tex.swizzle_a = translate_swizzle(PIPE_SWIZZLE_W);
                 }
 
-                /* XXX: While we need to use this flag to enable tiled
-                 * resource sharing (even a small shared buffer should be UIF,
-                 * not UBLINEAR or raster), this is also at the moment
-                 * patching up the fact that our resource layout's decisions
-                 * about XOR don't quite match the HW's.
+                /* Since other platform devices may produce UIF images even
+                 * when they're not big enough for V3D to assume they're UIF,
+                 * we force images with level 0 as UIF to be always treated
+                 * that way.
                  */
-                switch (rsc->slices[0].tiling) {
-                case VC5_TILING_UIF_NO_XOR:
-                case VC5_TILING_UIF_XOR:
-                        tex.level_0_is_strictly_uif = true;
-                        tex.level_0_xor_enable = false;
-                        break;
-                default:
-                        break;
-                }
+                tex.level_0_is_strictly_uif = (rsc->slices[0].tiling ==
+                                               VC5_TILING_UIF_XOR ||
+                                               rsc->slices[0].tiling ==
+                                               VC5_TILING_UIF_NO_XOR);
+                tex.level_0_xor_enable = (rsc->slices[0].tiling ==
+                                          VC5_TILING_UIF_XOR);
         };
 
         return &so->base;