v3d: Fix double-swapping of R/B on V3D 4.1
authorEric Anholt <eric@anholt.net>
Tue, 6 Nov 2018 00:40:22 +0000 (16:40 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 15 Nov 2018 19:12:54 +0000 (11:12 -0800)
Fixes: 4018eb04e8a5 ("v3d: Use the TLB R/B swapping instead of recompiles when available.")
src/gallium/drivers/v3d/v3dx_state.c

index f40febb0ab2d57ef4c02cb99292346a8effd89e3..b20a32df67efda87381f95a0f16719cdaaf9e097 100644 (file)
@@ -487,9 +487,10 @@ v3d_set_framebuffer_state(struct pipe_context *pctx,
                         util_format_description(cbuf->format);
 
                 /* For BGRA8 formats (DRI window system default format), we
-                 * need to swap R and B, since the HW's format is RGBA8.
+                 * need to swap R and B, since the HW's format is RGBA8.  On
+                 * V3D 4.1+, the RCL can swap R and B on load/store.
                  */
-                if (v3d->screen->devinfo.ver < 42 && v3d_cbuf->swap_rb)
+                if (v3d->screen->devinfo.ver < 41 && v3d_cbuf->swap_rb)
                         v3d->swap_color_rb |= 1 << i;
 
                 if (desc->swizzle[3] == PIPE_SWIZZLE_1)