diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp index a068f5463..f1ebb2ed5 100644 --- a/renderdoc/driver/vulkan/vk_info.cpp +++ b/renderdoc/driver/vulkan/vk_info.cpp @@ -1424,13 +1424,22 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, viewportCount = 0; viewports.resize(viewportCount); - scissors.resize(viewportCount); for(uint32_t i = 0; i < viewportCount; i++) { if(pCreateInfo->pViewportState->pViewports) viewports[i] = pCreateInfo->pViewportState->pViewports[i]; + } + if(pCreateInfo->pViewportState) + scissorCount = pCreateInfo->pViewportState->scissorCount; + else + scissorCount = 0; + + scissors.resize(scissorCount); + + for(uint32_t i = 0; i < scissorCount; i++) + { if(pCreateInfo->pViewportState->pScissors) scissors[i] = pCreateInfo->pViewportState->pScissors[i]; } @@ -1751,6 +1760,7 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, vertLayout = pipeInfo.vertLayout; viewportCount = pipeInfo.viewportCount; + scissorCount = pipeInfo.scissorCount; viewports = pipeInfo.viewports; scissors = pipeInfo.scissors; @@ -2013,6 +2023,7 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, Vulk tessellationDomainOrigin = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT; viewportCount = 0; + scissorCount = 0; // VkPipelineRasterStateCreateInfo depthClampEnable = false; @@ -2079,6 +2090,7 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, tessellationDomainOrigin = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT; viewportCount = 0; + scissorCount = 0; // VkPipelineRasterStateCreateInfo depthClampEnable = false; diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h index 74f4b6873..bcd909e01 100644 --- a/renderdoc/driver/vulkan/vk_info.h +++ b/renderdoc/driver/vulkan/vk_info.h @@ -364,6 +364,7 @@ struct VulkanCreationInfo // VkPipelineViewportStateCreateInfo uint32_t viewportCount; + uint32_t scissorCount; rdcarray viewports; rdcarray scissors;