diff options
author | Marek Olšák <[email protected]> | 2015-09-06 17:35:06 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2015-10-03 22:06:08 +0200 |
commit | 5804c6adf8361adb5d04feaf578dffbf840475d6 (patch) | |
tree | 87662fcbbae35b0378da4c7ba217733bd5a35d62 /src/gallium/drivers/radeonsi/si_dma.c | |
parent | cc92b9037507ccfb498bdcec27b4d186e230004f (diff) |
gallium/radeon: add separate stencil level dirty flags
We will only do depth-only or stencil-only decompress blits, whichever is
needed by textures, instead of always doing both.
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_dma.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_dma.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_dma.c b/src/gallium/drivers/radeonsi/si_dma.c index 3d980fb67b8..31b0b41e5a4 100644 --- a/src/gallium/drivers/radeonsi/si_dma.c +++ b/src/gallium/drivers/radeonsi/si_dma.c @@ -246,13 +246,13 @@ void si_dma_copy(struct pipe_context *ctx, goto fallback; if (src->format != dst->format || src_box->depth > 1 || - rdst->dirty_level_mask != 0 || + (rdst->dirty_level_mask | rdst->stencil_dirty_level_mask) & (1 << dst_level) || rdst->cmask.size || rdst->fmask.size || rsrc->cmask.size || rsrc->fmask.size) { goto fallback; } - if (rsrc->dirty_level_mask) { + if (rsrc->dirty_level_mask & (1 << src_level)) { ctx->flush_resource(ctx, src); } |