mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-29 21:30:53 +00:00
viewportCount can't be assumed to be the number of scissors
* Although normally viewportCount == scissorCount, if viewport is DYNAMIC_WITH_COUNT and scissor is only dynamic (or fixed) the number of scissors must be used strictly.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -364,6 +364,7 @@ struct VulkanCreationInfo
|
||||
|
||||
// VkPipelineViewportStateCreateInfo
|
||||
uint32_t viewportCount;
|
||||
uint32_t scissorCount;
|
||||
rdcarray<VkViewport> viewports;
|
||||
rdcarray<VkRect2D> scissors;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user