freedreno: dependency tracking for z/s depends on ZSA state
authorRob Clark <robdclark@gmail.com>
Sat, 27 Oct 2018 18:20:22 +0000 (14:20 -0400)
committerRob Clark <robdclark@gmail.com>
Sun, 28 Oct 2018 18:03:38 +0000 (14:03 -0400)
ZSA state can change whether depth or stencil is enabled

This plus previous patch fix stk, and various things w/
FD_MESA_DEBUG=inorder

Fixes: ec717fc629 freedreno: reduce resource dependency tracking overhead
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/freedreno_draw.c

index 2b5119e6f9321887e70a60501bbd2c442feda5c1..90d0e44036122264a368c8290d0ef1e2e4078e74 100644 (file)
@@ -137,7 +137,7 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info)
 
        mtx_lock(&ctx->screen->lock);
 
-       if (ctx->dirty & FD_DIRTY_FRAMEBUFFER) {
+       if (ctx->dirty & (FD_DIRTY_FRAMEBUFFER | FD_DIRTY_ZSA)) {
                if (fd_depth_enabled(ctx)) {
                        if (fd_resource(pfb->zsbuf->texture)->valid) {
                                restore_buffers |= FD_BUFFER_DEPTH;
@@ -159,7 +159,9 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info)
                        resource_written(batch, pfb->zsbuf->texture);
                        batch->gmem_reason |= FD_GMEM_STENCIL_ENABLED;
                }
+       }
 
+       if (ctx->dirty & FD_DIRTY_FRAMEBUFFER) {
                for (i = 0; i < pfb->nr_cbufs; i++) {
                        if (!pfb->cbufs[i])
                                continue;