mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 23:11:25 +12:00
vk: Explicitly declare null subpass dependencies
- We do not want any actual dependencies, but it turns out removing them entirely makes the driver add even worse dependencies.
This commit is contained in:
parent
4018b833ad
commit
23f1515448
1 changed files with 24 additions and 2 deletions
|
@ -184,6 +184,28 @@ namespace vk
|
||||||
attachment_references.push_back({ attachment_count, dsv_layout });
|
attachment_references.push_back({ attachment_count, dsv_layout });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VkSubpassDependency null_subpass_dependencies[2] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.srcSubpass = VK_SUBPASS_EXTERNAL,
|
||||||
|
.dstSubpass = 0,
|
||||||
|
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
|
.dstStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
|
.srcAccessMask = 0,
|
||||||
|
.dstAccessMask = 0,
|
||||||
|
.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.srcSubpass = 0,
|
||||||
|
.dstSubpass = VK_SUBPASS_EXTERNAL,
|
||||||
|
.srcStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
|
.dstStageMask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
|
.srcAccessMask = 0,
|
||||||
|
.dstAccessMask = 0,
|
||||||
|
.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
VkSubpassDescription subpass = {};
|
VkSubpassDescription subpass = {};
|
||||||
subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
|
subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
|
||||||
subpass.colorAttachmentCount = attachment_count;
|
subpass.colorAttachmentCount = attachment_count;
|
||||||
|
@ -196,8 +218,8 @@ namespace vk
|
||||||
rp_info.pAttachments = attachments.data();
|
rp_info.pAttachments = attachments.data();
|
||||||
rp_info.subpassCount = 1;
|
rp_info.subpassCount = 1;
|
||||||
rp_info.pSubpasses = &subpass;
|
rp_info.pSubpasses = &subpass;
|
||||||
rp_info.pDependencies = nullptr;
|
rp_info.dependencyCount = 2;
|
||||||
rp_info.dependencyCount = 0;
|
rp_info.pDependencies = null_subpass_dependencies;
|
||||||
|
|
||||||
VkRenderPass result;
|
VkRenderPass result;
|
||||||
CHECK_RESULT(vkCreateRenderPass(dev, &rp_info, NULL, &result));
|
CHECK_RESULT(vkCreateRenderPass(dev, &rp_info, NULL, &result));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue