broadcom/vc5: Add checks that we don't try to do raw Z+S load/stores.
authorEric Anholt <eric@anholt.net>
Fri, 30 Mar 2018 23:31:07 +0000 (16:31 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 12 Apr 2018 18:20:50 +0000 (11:20 -0700)
This was dying in the simulator on
GTF-GLES3.gtf.GL3Tests.packed_depth_stencil.packed_depth_stencil_blit.
We'll need to do basically the same thing as Z32F/S8 does in the MSAA
Z24S8 case.

src/gallium/drivers/vc5/vc5_rcl.c

index 8ff1515f883335769a82a3525bf9f3ce138d2a3b..83593a86d2e9f0236a2e5dcb25636c0acf22b4f5 100644 (file)
@@ -69,6 +69,10 @@ load_general(struct vc5_cl *cl, struct pipe_surface *psurf, int buffer)
 
                 /* XXX: MSAA */
 #else /* V3D_VERSION < 40 */
+                /* Can't do raw ZSTENCIL loads -- need to load/store them to
+                 * separate buffers for Z and stencil.
+                 */
+                assert(buffer != ZSTENCIL);
                 load.raw_mode = true;
                 load.padded_height_of_output_image_in_uif_blocks =
                         surf->padded_height_of_output_image_in_uif_blocks;
@@ -119,6 +123,10 @@ store_general(struct vc5_job *job,
                         store.height_in_ub_or_stride = slice->stride;
                 }
 #else /* V3D_VERSION < 40 */
+                /* Can't do raw ZSTENCIL stores -- need to load/store them to
+                 * separate buffers for Z and stencil.
+                 */
+                assert(buffer != ZSTENCIL);
                 store.raw_mode = true;
                 if (!last_store) {
                         store.disable_colour_buffers_clear_on_write = true;