video_core/renderer_vulkan: Fix fb image view usage (#1561)

This commit is contained in:
PabloMK7 2026-01-02 16:26:03 +01:00 committed by GitHub
parent 4ac18f5e18
commit a826f5ffa1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 5 deletions

View File

@ -1369,17 +1369,19 @@ vk::ImageView Surface::ImageView(u32 index) const noexcept {
vk::ImageView Surface::FramebufferView() noexcept {
is_framebuffer = true;
const u32 index = res_scale == 1 ? 0u : 1u;
// If we already have a framebuffer-compatible view, return it
if (framebuffer_view) {
return framebuffer_view.get();
if (framebuffer_view[index]) {
return framebuffer_view[index].get();
}
// Create a new view with a single mip level for framebuffer compatibility
// This is critical to avoid VUID-VkFramebufferCreateInfo-pAttachments-00883 validation errors
framebuffer_view = MakeFramebufferImageView(
framebuffer_view[index] = MakeFramebufferImageView(
instance->GetDevice(), Image(), instance->GetTraits(pixel_format).native, Aspect(), 0);
return framebuffer_view.get();
return framebuffer_view[index].get();
}
vk::ImageView Surface::DepthView() noexcept {

View File

@ -201,7 +201,7 @@ public:
std::array<Handle, 3> handles{};
std::array<vk::UniqueFramebuffer, 2> framebuffers{};
Handle copy_handle;
vk::UniqueImageView framebuffer_view;
std::array<vk::UniqueImageView, 2> framebuffer_view;
vk::UniqueImageView depth_view;
vk::UniqueImageView stencil_view;
vk::UniqueImageView storage_view;