Browse Source
Merge pull request #10243 from Kelebek1/red_dot
Correctly track render target index in the framebuffer for image aspects
pull/15/merge
Fernando S
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
3 additions and
1 deletions
-
src/video_core/renderer_vulkan/vk_texture_cache.cpp
-
src/video_core/renderer_vulkan/vk_texture_cache.h
|
|
|
@ -1864,6 +1864,7 @@ void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime, |
|
|
|
num_layers = std::max(num_layers, color_buffer->range.extent.layers); |
|
|
|
images[num_images] = color_buffer->ImageHandle(); |
|
|
|
image_ranges[num_images] = MakeSubresourceRange(color_buffer); |
|
|
|
rt_map[index] = num_images; |
|
|
|
samples = color_buffer->Samples(); |
|
|
|
++num_images; |
|
|
|
} |
|
|
|
|
|
|
|
@ -334,7 +334,7 @@ public: |
|
|
|
} |
|
|
|
|
|
|
|
[[nodiscard]] bool HasAspectColorBit(size_t index) const noexcept { |
|
|
|
return (image_ranges.at(index).aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) != 0; |
|
|
|
return (image_ranges.at(rt_map[index]).aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) != 0; |
|
|
|
} |
|
|
|
|
|
|
|
[[nodiscard]] bool HasAspectDepthBit() const noexcept { |
|
|
|
@ -354,6 +354,7 @@ private: |
|
|
|
u32 num_images = 0; |
|
|
|
std::array<VkImage, 9> images{}; |
|
|
|
std::array<VkImageSubresourceRange, 9> image_ranges{}; |
|
|
|
std::array<size_t, NUM_RT> rt_map{}; |
|
|
|
bool has_depth{}; |
|
|
|
bool has_stencil{}; |
|
|
|
}; |
|
|
|
|