diff options
author | Marek Olšák <[email protected]> | 2017-07-04 16:11:16 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-07-28 16:34:24 +0200 |
commit | f4d095cc651af005d5760aa9dd06e6ae7007fab6 (patch) | |
tree | 241e7d2bf363cec5ee7e4247c145aa28d47b6e6c /src/gallium/drivers/radeonsi/si_state.h | |
parent | 221fdae38b32df8d5761ec1fdc61707a025afec6 (diff) |
radeonsi: update dirty_level_mask only when flushing or unbinding framebuffer
This fixes corruption with bindless textures in Dawn Of War 3.
The do_update_surf_dirtiness mechanism was complicated and dirty_level_mask
was only updated after the first draw call. The problem is bindless textures
are checked for decompression every draw call and we would only decompress
after the first draw call. The solution is to set dirtiness after the last
draw call to the framebuffer, so the (unconditional) decompression of
bindless textures happens at the right time.
Cc: 17.2 <[email protected]>
Tested-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.h b/src/gallium/drivers/radeonsi/si_state.h index ec28abaf9a4..acc8fb7870a 100644 --- a/src/gallium/drivers/radeonsi/si_state.h +++ b/src/gallium/drivers/radeonsi/si_state.h @@ -384,6 +384,7 @@ si_create_sampler_view_custom(struct pipe_context *ctx, const struct pipe_sampler_view *state, unsigned width0, unsigned height0, unsigned force_level); +void si_update_fb_dirtiness_after_rendering(struct si_context *sctx); /* si_state_shader.c */ bool si_update_shaders(struct si_context *sctx); |