mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-23 03:02:53 +01:00
vk: Add a subpass dependancy (#2172)
This commit is contained in:
parent
38562155d4
commit
9abb908226
@ -370,7 +370,7 @@ void VKFragmentDecompilerThread::insertMainEnd(std::stringstream & OS)
|
|||||||
case rsx::comparison_function::less_or_equal: compare = " <= "; break;
|
case rsx::comparison_function::less_or_equal: compare = " <= "; break;
|
||||||
case rsx::comparison_function::less: compare = " < "; break;
|
case rsx::comparison_function::less: compare = " < "; break;
|
||||||
case rsx::comparison_function::greater: compare = " > "; break;
|
case rsx::comparison_function::greater: compare = " > "; break;
|
||||||
case rsx::comparison_function::greater_or_equal: compare = " >= "; break;
|
case rsx::comparison_function::greater_or_equal: compare = " >= "; break;
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@ -328,12 +328,23 @@ namespace
|
|||||||
subpass.pColorAttachments = number_of_color_surface > 0 ? attachment_references.data() : nullptr;
|
subpass.pColorAttachments = number_of_color_surface > 0 ? attachment_references.data() : nullptr;
|
||||||
subpass.pDepthStencilAttachment = depth_format != VK_FORMAT_UNDEFINED ? &attachment_references.back() : nullptr;
|
subpass.pDepthStencilAttachment = depth_format != VK_FORMAT_UNDEFINED ? &attachment_references.back() : nullptr;
|
||||||
|
|
||||||
|
VkSubpassDependency dependency = {};
|
||||||
|
dependency.srcSubpass = VK_SUBPASS_EXTERNAL;
|
||||||
|
dependency.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
|
||||||
|
dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||||
|
dependency.dstSubpass = 0;
|
||||||
|
dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
|
||||||
|
dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||||
|
dependency.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
|
||||||
|
|
||||||
VkRenderPassCreateInfo rp_info = {};
|
VkRenderPassCreateInfo rp_info = {};
|
||||||
rp_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
|
rp_info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
|
||||||
rp_info.attachmentCount = static_cast<uint32_t>(attachments.size());
|
rp_info.attachmentCount = static_cast<uint32_t>(attachments.size());
|
||||||
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 = &dependency;
|
||||||
|
rp_info.dependencyCount = 1;
|
||||||
|
|
||||||
VkRenderPass result;
|
VkRenderPass result;
|
||||||
CHECK_RESULT(vkCreateRenderPass(dev, &rp_info, NULL, &result));
|
CHECK_RESULT(vkCreateRenderPass(dev, &rp_info, NULL, &result));
|
||||||
|
Loading…
Reference in New Issue
Block a user