summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/vc4/vc4_context.c2
-rw-r--r--src/gallium/drivers/vc4/vc4_context.h1
-rw-r--r--src/gallium/drivers/vc4/vc4_draw.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc4/vc4_context.c b/src/gallium/drivers/vc4/vc4_context.c
index 7b9e6f097e9..d14da676334 100644
--- a/src/gallium/drivers/vc4/vc4_context.c
+++ b/src/gallium/drivers/vc4/vc4_context.c
@@ -59,7 +59,7 @@ vc4_setup_rcl(struct vc4_context *vc4)
cl_u32(&vc4->rcl, vc4->clear_color[0]);
cl_u32(&vc4->rcl, vc4->clear_color[1]);
cl_u32(&vc4->rcl, vc4->clear_depth);
- cl_u8(&vc4->rcl, 0);
+ cl_u8(&vc4->rcl, vc4->clear_stencil);
cl_start_reloc(&vc4->rcl, 1);
cl_u8(&vc4->rcl, VC4_PACKET_TILE_RENDERING_MODE_CONFIG);
diff --git a/src/gallium/drivers/vc4/vc4_context.h b/src/gallium/drivers/vc4/vc4_context.h
index c2fdcae231b..b82c08c5ff8 100644
--- a/src/gallium/drivers/vc4/vc4_context.h
+++ b/src/gallium/drivers/vc4/vc4_context.h
@@ -146,6 +146,7 @@ struct vc4_context {
uint32_t resolve;
uint32_t clear_color[2];
uint32_t clear_depth; /**< 24-bit unorm depth */
+ uint8_t clear_stencil;
/**
* Set if some drawing (triangles, blits, or just a glClear()) has
diff --git a/src/gallium/drivers/vc4/vc4_draw.c b/src/gallium/drivers/vc4/vc4_draw.c
index d1035bb30ab..90d98b37b01 100644
--- a/src/gallium/drivers/vc4/vc4_draw.c
+++ b/src/gallium/drivers/vc4/vc4_draw.c
@@ -231,6 +231,9 @@ vc4_clear(struct pipe_context *pctx, unsigned buffers,
vc4->clear_depth = util_pack_z(PIPE_FORMAT_Z24X8_UNORM, depth);
}
+ if (buffers & PIPE_CLEAR_STENCIL)
+ vc4->clear_stencil = stencil;
+
vc4->cleared |= buffers;
vc4->resolve |= buffers;