aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.c3
-rw-r--r--src/gallium/drivers/freedreno/freedreno_draw.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c b/src/gallium/drivers/freedreno/freedreno_batch.c
index 9c66dc98bc7..6e208d350ea 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch.c
@@ -382,6 +382,9 @@ fd_batch_resource_used(struct fd_batch *batch, struct fd_resource *rsc, bool wri
DBG("%p: %s %p", batch, write ? "write" : "read", rsc);
+ if (write)
+ rsc->valid = true;
+
/* note, invalidate write batch, to avoid further writes to rsc
* resulting in a write-after-read hazard.
*/
diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c
index fc24776e4a9..d3bf3165276 100644
--- a/src/gallium/drivers/freedreno/freedreno_draw.c
+++ b/src/gallium/drivers/freedreno/freedreno_draw.c
@@ -55,7 +55,6 @@ resource_written(struct fd_batch *batch, struct pipe_resource *prsc)
{
if (!prsc)
return;
- fd_resource(prsc)->valid = true;
fd_batch_resource_used(batch, fd_resource(prsc), true);
}
@@ -147,7 +146,7 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info)
if (fd_stencil_enabled(ctx)) {
if (fd_resource(pfb->zsbuf->texture)->valid)
- restore_buffers |= FD_BUFFER_DEPTH;
+ restore_buffers |= FD_BUFFER_STENCIL;
buffers |= FD_BUFFER_STENCIL;
resource_written(batch, pfb->zsbuf->texture);
batch->gmem_reason |= FD_GMEM_STENCIL_ENABLED;