mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
radv/gfx10: make sure to wait for idle before clearing GDS
Otherwise the next streamout operation will overwrite GDS. This can be improved by tracking if there is a streamout operation in flight. Currently the driver unconditionally flushes but that doesn't matter much as NGG streamout is disabled by default. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
7314f6ef97
commit
63b20fb0cf
1 changed files with 8 additions and 0 deletions
|
|
@ -5943,6 +5943,14 @@ gfx10_emit_streamout_begin(struct radv_cmd_buffer *cmd_buffer,
|
|||
assert(cmd_buffer->device->physical_device->rad_info.chip_class >= GFX10);
|
||||
assert(firstCounterBuffer + counterBufferCount <= MAX_SO_BUFFERS);
|
||||
|
||||
/* Sync because the next streamout operation will overwrite GDS and we
|
||||
* have to make sure it's idle.
|
||||
* TODO: Improve by tracking if there is a streamout operation in
|
||||
* flight.
|
||||
*/
|
||||
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_VS_PARTIAL_FLUSH;
|
||||
si_emit_cache_flush(cmd_buffer);
|
||||
|
||||
for_each_bit(i, so->enabled_mask) {
|
||||
int32_t counter_buffer_idx = i - firstCounterBuffer;
|
||||
if (counter_buffer_idx >= 0 && counter_buffer_idx >= counterBufferCount)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue