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 <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Samuel Pitoiset 2017-08-29 17:37:14 +02:00
parent a2234614b6
commit 59101e771d
2 changed files with 6 additions and 0 deletions

View File

@ -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;

View File

@ -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. */