From 731c37b6c421f1bf6708ff7511e910468b93b074 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 10 Oct 2015 22:45:44 +0200 Subject: [PATCH] Check the right buffer resource object for different descriptor types --- renderdoc/driver/vulkan/vk_initstate.cpp | 7 ++++++- renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_initstate.cpp b/renderdoc/driver/vulkan/vk_initstate.cpp index e5f9a43cb..b25e3f257 100644 --- a/renderdoc/driver/vulkan/vk_initstate.cpp +++ b/renderdoc/driver/vulkan/vk_initstate.cpp @@ -284,13 +284,18 @@ bool WrappedVulkan::Serialise_InitialState(WrappedVkRes *res) } case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + { + for(uint32_t d=0; d < writes[i].count; d++) + valid &= (writes[i].pDescriptors[d].bufferView != VK_NULL_HANDLE); + break; + } case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: { for(uint32_t d=0; d < writes[i].count; d++) - valid &= (writes[i].pDescriptors[d].bufferView != VK_NULL_HANDLE); + valid &= (writes[i].pDescriptors[d].bufferInfo.buffer != VK_NULL_HANDLE); break; } default: diff --git a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp index 05770634d..564dfdca7 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp @@ -377,13 +377,18 @@ bool WrappedVulkan::Serialise_vkUpdateDescriptorSets( } case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + { + for(uint32_t i=0; i < writeDesc.count; i++) + valid &= (writeDesc.pDescriptors[i].bufferView != VK_NULL_HANDLE); + break; + } case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: { for(uint32_t i=0; i < writeDesc.count; i++) - valid &= (writeDesc.pDescriptors[i].bufferView != VK_NULL_HANDLE); + valid &= (writeDesc.pDescriptors[i].bufferInfo.buffer != VK_NULL_HANDLE); break; } default: