From c9268687587e710080249383274cd12b20411144 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 15 Nov 2017 21:03:21 +0300 Subject: [PATCH] vk: Dont always assume framebuffers exist - TODO: Use temporary renderbuffers for these outputs --- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index e6b23f5db0..b5790f55e8 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -2546,16 +2546,17 @@ void VKGSRender::prepare_rtts(rsx::framebuffer_creation_context context) for (u8 index : draw_buffers) { - vk::image *raw = std::get<1>(m_rtts.m_bound_render_targets[index]); + if (vk::image *raw = std::get<1>(m_rtts.m_bound_render_targets[index])) + { + VkImageSubresourceRange subres = {}; + subres.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + subres.baseArrayLayer = 0; + subres.baseMipLevel = 0; + subres.layerCount = 1; + subres.levelCount = 1; - VkImageSubresourceRange subres = {}; - subres.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - subres.baseArrayLayer = 0; - subres.baseMipLevel = 0; - subres.layerCount = 1; - subres.levelCount = 1; - - fbo_images.push_back(std::make_unique(*m_device, raw->value, VK_IMAGE_VIEW_TYPE_2D, raw->info.format, vk::default_component_map(), subres)); + fbo_images.push_back(std::make_unique(*m_device, raw->value, VK_IMAGE_VIEW_TYPE_2D, raw->info.format, vk::default_component_map(), subres)); + } } if (std::get<1>(m_rtts.m_bound_depth_stencil) != nullptr)