From 61de5e88351f9a9285d347ae93b35a46d8b0c28e Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Tue, 15 Mar 2016 18:58:16 +0100 Subject: [PATCH] vulkan: Clear swapchain before usage. Fix VkQueuePresentKHR error messages --- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index af71f53678..7208532c8c 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -192,8 +192,16 @@ VKGSRender::VKGSRender() : GSRender(frame_type::Vulkan) for (u32 i = 0; i < m_swap_chain->get_swap_image_count(); ++i) { vk::change_image_layout(m_command_buffer, m_swap_chain->get_swap_chain_image(i), - VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, + VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_ASPECT_COLOR_BIT); + + VkClearColorValue clear_color{}; + auto range = vk::default_image_subresource_range(); + vkCmdClearColorImage(m_command_buffer, m_swap_chain->get_swap_chain_image(i), VK_IMAGE_LAYOUT_GENERAL, &clear_color, 1, &range); + vk::change_image_layout(m_command_buffer, m_swap_chain->get_swap_chain_image(i), + VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, + VK_IMAGE_ASPECT_COLOR_BIT); + } CHECK_RESULT(vkEndCommandBuffer(m_command_buffer));