diff options
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 7 | ||||
-rw-r--r-- | src/amd/vulkan/radv_private.h | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index e60df1471c9..7e785a23340 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -1774,7 +1774,8 @@ radv_cmd_buffer_update_vertex_descriptors(struct radv_cmd_buffer *cmd_buffer, bo { struct radv_device *device = cmd_buffer->device; - if ((pipeline_is_dirty || cmd_buffer->state.vb_dirty) && + if ((pipeline_is_dirty || + (cmd_buffer->state.dirty & RADV_CMD_DIRTY_VERTEX_BUFFER)) && cmd_buffer->state.pipeline->vertex_elements.count && radv_get_vertex_shader(cmd_buffer->state.pipeline)->info.info.vs.has_vertex_buffers) { struct radv_vertex_elements_info *velems = &cmd_buffer->state.pipeline->vertex_elements; @@ -1820,7 +1821,7 @@ radv_cmd_buffer_update_vertex_descriptors(struct radv_cmd_buffer *cmd_buffer, bo cmd_buffer->state.vb_size = count * 16; cmd_buffer->state.vb_prefetch_dirty = true; } - cmd_buffer->state.vb_dirty = false; + cmd_buffer->state.dirty &= ~RADV_CMD_DIRTY_VERTEX_BUFFER; return true; } @@ -2287,7 +2288,7 @@ void radv_CmdBindVertexBuffers( return; } - cmd_buffer->state.vb_dirty = true; + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_VERTEX_BUFFER; } void radv_CmdBindIndexBuffer( diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index a416f38a730..93f93b98364 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -701,6 +701,7 @@ enum radv_cmd_dirty_bits { RADV_CMD_DIRTY_PIPELINE = 1 << 9, RADV_CMD_DIRTY_INDEX_BUFFER = 1 << 10, RADV_CMD_DIRTY_FRAMEBUFFER = 1 << 11, + RADV_CMD_DIRTY_VERTEX_BUFFER = 1 << 12, }; enum radv_cmd_flush_bits { @@ -809,7 +810,6 @@ struct radv_attachment_state { struct radv_cmd_state { /* Vertex descriptors */ - bool vb_dirty; bool vb_prefetch_dirty; uint64_t vb_va; unsigned vb_size; |