VulkanDevice: Fix render pass fallback path with MRT

This commit is contained in:
Stenzek 2024-03-24 22:18:49 +10:00
parent f1847462a9
commit 315524a89c
No known key found for this signature in database

View file

@ -1657,7 +1657,7 @@ bool VulkanDevice::IsBrokenMobileDriver() const
VkRenderPass VulkanDevice::CreateCachedRenderPass(RenderPassCacheKey key) VkRenderPass VulkanDevice::CreateCachedRenderPass(RenderPassCacheKey key)
{ {
VkAttachmentReference color_reference; std::array<VkAttachmentReference, MAX_RENDER_TARGETS> color_references;
VkAttachmentReference* color_reference_ptr = nullptr; VkAttachmentReference* color_reference_ptr = nullptr;
VkAttachmentReference depth_reference; VkAttachmentReference depth_reference;
VkAttachmentReference* depth_reference_ptr = nullptr; VkAttachmentReference* depth_reference_ptr = nullptr;
@ -1688,12 +1688,13 @@ VkRenderPass VulkanDevice::CreateCachedRenderPass(RenderPassCacheKey key)
VK_ATTACHMENT_STORE_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_DONT_CARE,
layout, layout,
layout}; layout};
color_reference.attachment = num_attachments; color_references[num_attachments].attachment = num_attachments;
color_reference.layout = layout; color_references[num_attachments].layout = layout;
color_reference_ptr = &color_reference; color_reference_ptr = color_references.data();
if (key.color_feedback_loop) if (key.color_feedback_loop)
{ {
DebugAssert(i == 0);
if (!UseFeedbackLoopLayout()) if (!UseFeedbackLoopLayout())
{ {
input_reference.attachment = num_attachments; input_reference.attachment = num_attachments;