radv/gfx10: make GDS idle when leaving the IB

NGG streamout uses GDS and we have to make sure that another
process isn't going to overwrite GDS while our shaders are busy.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2019-09-10 10:56:24 +02:00
parent 2d89d8f333
commit 7314f6ef97
1 changed files with 7 additions and 0 deletions

View File

@ -3615,6 +3615,13 @@ VkResult radv_EndCommandBuffer(
*/
cmd_buffer->state.flush_bits |= cmd_buffer->active_query_flush_bits;
/* Since NGG streamout uses GDS, we need to make GDS idle when
* we leave the IB, otherwise another process might overwrite
* it while our shaders are busy.
*/
if (cmd_buffer->gds_needed)
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_PS_PARTIAL_FLUSH;
si_emit_cache_flush(cmd_buffer);
}