summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-03-30 16:31:07 -0700
committerEric Anholt <[email protected]>2018-04-12 11:20:50 -0700
commit8f2999120de83845b1c0098170356819c5a6e439 (patch)
tree76d728159e26cb104615fb8a8695dae1d3b831dd
parent7553cbfc9d78f0a4f8816122ce6327bc3899c2b5 (diff)
broadcom/vc5: Add checks that we don't try to do raw Z+S load/stores.
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.
-rw-r--r--src/gallium/drivers/vc5/vc5_rcl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc5/vc5_rcl.c b/src/gallium/drivers/vc5/vc5_rcl.c
index 8ff1515f883..83593a86d2e 100644
--- a/src/gallium/drivers/vc5/vc5_rcl.c
+++ b/src/gallium/drivers/vc5/vc5_rcl.c
@@ -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;