diff --git a/renderdoc/driver/vulkan/vk_state.cpp b/renderdoc/driver/vulkan/vk_state.cpp index faa6943d2..9fd8cb7a3 100644 --- a/renderdoc/driver/vulkan/vk_state.cpp +++ b/renderdoc/driver/vulkan/vk_state.cpp @@ -96,7 +96,7 @@ void setupRenderingInfo(const VulkanRenderState::DynamicRendering &dynamicRender structs->fragmentDensity = { VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT, NULL, - dynamicRendering.fragmentDensityView, dynamicRendering.fragmentDensityLayout, + Unwrap(dynamicRendering.fragmentDensityView), dynamicRendering.fragmentDensityLayout, }; if(dynamicRendering.fragmentDensityView != VK_NULL_HANDLE) @@ -108,7 +108,7 @@ void setupRenderingInfo(const VulkanRenderState::DynamicRendering &dynamicRender structs->shadingRate = { VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR, NULL, - dynamicRendering.shadingRateView, + Unwrap(dynamicRendering.shadingRateView), dynamicRendering.shadingRateLayout, dynamicRendering.shadingRateTexelSize, }; diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 463fd2b0b..3aec55930 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -7155,6 +7155,26 @@ void WrappedVulkan::vkCmdBeginRendering(VkCommandBuffer commandBuffer, record->AddChunk(scope.Get(&record->cmdInfo->alloc)); + VkRenderingFragmentDensityMapAttachmentInfoEXT *densityMap = + (VkRenderingFragmentDensityMapAttachmentInfoEXT *)FindNextStruct( + pRenderingInfo, VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT); + + if(densityMap) + { + VkResourceRecord *viewRecord = GetRecord(densityMap->imageView); + record->MarkImageViewFrameReferenced(viewRecord, ImageRange(), eFrameRef_Read); + } + + VkRenderingFragmentShadingRateAttachmentInfoKHR *shadingRate = + (VkRenderingFragmentShadingRateAttachmentInfoKHR *)FindNextStruct( + pRenderingInfo, VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR); + + if(shadingRate) + { + VkResourceRecord *viewRecord = GetRecord(shadingRate->imageView); + record->MarkImageViewFrameReferenced(viewRecord, ImageRange(), eFrameRef_Read); + } + for(uint32_t i = 0; i < pRenderingInfo->colorAttachmentCount + 2; i++) { const VkRenderingAttachmentInfo *att = pRenderingInfo->pColorAttachments + i;