radv: clear vertex bindings while resetting command buffer
authorJózef Kucia <joseph.kucia@gmail.com>
Fri, 10 May 2019 19:38:22 +0000 (21:38 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 11 May 2019 00:51:00 +0000 (02:51 +0200)
Only vertex inputs accessed by vertex shader must have valid buffers
bound.

Signed-off-by: Józef Kucia <joseph.kucia@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fixes: 5010436e09f "radv: bail out when binding the same vertex buffers"
src/amd/vulkan/radv_cmd_buffer.c

index b04c998fac2ed33030203ec59355b1ac1ec49d2d..890662841d21a67060ed8c05d447fbaaa91f9fa7 100644 (file)
@@ -301,7 +301,6 @@ radv_cmd_buffer_destroy(struct radv_cmd_buffer *cmd_buffer)
 static VkResult
 radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
 {
-
        cmd_buffer->device->ws->cs_reset(cmd_buffer->cs);
 
        list_for_each_entry_safe(struct radv_cmd_buffer_upload, up,
@@ -326,6 +325,8 @@ radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
 
        cmd_buffer->record_result = VK_SUCCESS;
 
+       memset(cmd_buffer->vertex_bindings, 0, sizeof(cmd_buffer->vertex_bindings));
+
        for (unsigned i = 0; i < VK_PIPELINE_BIND_POINT_RANGE_SIZE; i++) {
                cmd_buffer->descriptors[i].dirty = 0;
                cmd_buffer->descriptors[i].valid = 0;