radv: fix re-emitting streamout descriptors for NGG streamout
In a scenario like: CmdBindTransformFeedbackBuffers() BeginTransformFeedback() CmdDraw() --> streamout descriptors emitted EndTransformFeedback() --> streamout descriptors emitted as 0 (disabled) CmdDraw() BeginTransformFeedback() CmdDraw() --> streamout descriptor not re-emitted EndTransformFeedback() Fix this by re-emitting streamout descriptors when streamout is enabled/disabled because a buffer size of 0 acts like a disable bit. This fixes dEQP-VK.transform_feedback.simple.backward_dependency_indirect* on NAVI31. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25583>
This commit is contained in:
committed by
Marge Bot
parent
3a33e59596
commit
3c61fd029b
@@ -10884,11 +10884,10 @@ radv_set_streamout_enable(struct radv_cmd_buffer *cmd_buffer, bool enable)
|
||||
radv_emit_streamout_enable(cmd_buffer);
|
||||
|
||||
if (cmd_buffer->device->physical_device->use_ngg_streamout) {
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_SHADER_QUERY;
|
||||
|
||||
/* Re-emit streamout buffers to unbind them. */
|
||||
if (!enable)
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_STREAMOUT_BUFFER;
|
||||
/* Re-emit streamout desciptors because with NGG streamout, a buffer size of 0 acts like a
|
||||
* disable bit and this is needed when streamout needs to be ignored in shaders.
|
||||
*/
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_SHADER_QUERY | RADV_CMD_DIRTY_STREAMOUT_BUFFER;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user