Fix a crash for buffer views in descriptors

This commit is contained in:
baldurk
2021-08-18 19:43:11 +01:00
parent cd6df12f8b
commit 3d168b3836
3 changed files with 3 additions and 6 deletions
+1 -1
View File
@@ -1163,7 +1163,7 @@ void DescriptorSetSlot::AccumulateBindRefs(DescriptorBindRefs &refs, VulkanResou
AddBindFrameRef(refs, bufView->baseResource, eFrameRef_Read);
if(bufView->baseResourceMem != ResourceId())
AddMemFrameRef(refs, bufView->baseResourceMem, bufView->memOffset, bufView->memSize, ref);
if(bufView->resInfo->storable)
if(bufView->storable)
refs.storableRefs.insert(rm->GetResourceRecord(bufView->baseResource));
}
if(imgView)
-1
View File
@@ -978,7 +978,6 @@ struct ResourceInfo
Sparse::PageTable sparseTable;
rdcarray<AspectSparseTable> altSparseAspects;
VkImageAspectFlags sparseAspect;
bool storable;
Sparse::PageTable &getSparseTableForAspect(VkImageAspectFlags aspects)
{
@@ -1729,8 +1729,6 @@ VkResult WrappedVulkan::vkCreateBuffer(VkDevice device, const VkBufferCreateInfo
{
record->resInfo = new ResourceInfo();
record->resInfo->storable = record->storable;
// pre-populate memory requirements
ObjDisp(device)->GetBufferMemoryRequirements(Unwrap(device), Unwrap(*pBuffer),
&record->resInfo->memreqs);
@@ -1904,6 +1902,7 @@ VkResult WrappedVulkan::vkCreateBufferView(VkDevice device, const VkBufferViewCr
record->baseResourceMem = bufferRecord->baseResource;
record->dedicated = bufferRecord->dedicated;
record->resInfo = bufferRecord->resInfo;
record->storable = bufferRecord->storable;
record->memOffset = bufferRecord->memOffset + pCreateInfo->offset;
record->memSize = pCreateInfo->range;
if(record->memSize == VK_WHOLE_SIZE)
@@ -2289,8 +2288,7 @@ VkResult WrappedVulkan::vkCreateImage(VkDevice device, const VkImageCreateInfo *
ResourceInfo &resInfo = *record->resInfo;
resInfo.imageInfo = ImageInfo(*pCreateInfo);
record->resInfo->storable = record->storable =
(pCreateInfo->usage & VK_IMAGE_USAGE_STORAGE_BIT) != 0;
record->storable = (pCreateInfo->usage & VK_IMAGE_USAGE_STORAGE_BIT) != 0;
// pre-populate memory requirements
ObjDisp(device)->GetImageMemoryRequirements(Unwrap(device), Unwrap(*pImage), &resInfo.memreqs);