diff options
author | Samuel Pitoiset <[email protected]> | 2017-08-29 17:37:14 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-08-30 09:33:55 +0200 |
commit | 59101e771d63d3d623828a173454fdbbcb719ec3 (patch) | |
tree | 7ef5598ef998947bccbdbab8a953df07c806cf44 | |
parent | a2234614b6a7b53b4f8ba68e0bc9136e4b265d0e (diff) |
radeonsi: update dirty_level_mask before dispatching
This fixes a rendering issue with Hitman when bindless textures
are enabled.
Fixes: 2263610827 ("radeonsi: flush DB caches only when transitioning from DB to texturing")
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_compute.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 59886ecccc6..d76d4a13841 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -569,6 +569,7 @@ struct r600_common_context { unsigned gpu_reset_counter; unsigned last_dirty_tex_counter; unsigned last_compressed_colortex_counter; + unsigned last_num_draw_calls; struct threaded_context *tc; struct u_suballocator *allocator_zeroed_memory; diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 3ebd22c3c16..ca334949d77 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -782,6 +782,11 @@ static void si_launch_grid( program->shader.compilation_failed) return; + if (sctx->b.last_num_draw_calls != sctx->b.num_draw_calls) { + si_update_fb_dirtiness_after_rendering(sctx); + sctx->b.last_num_draw_calls = sctx->b.num_draw_calls; + } + si_decompress_compute_textures(sctx); /* Add buffer sizes for memory checking in need_cs_space. */ |