diff options
| author | 2023-05-12 01:40:21 +0100 | |
|---|---|---|
| committer | 2023-05-12 01:40:21 +0100 | |
| commit | cd0ded77716dbafb1aca423ec22d562c56f046a7 (patch) | |
| tree | 844decadad9f3f06790fc2a5f490000c554b4083 /src | |
| parent | Merge pull request #10132 from Kelebek1/fermi_blit2 (diff) | |
| download | yuzu-cd0ded77716dbafb1aca423ec22d562c56f046a7.tar.gz yuzu-cd0ded77716dbafb1aca423ec22d562c56f046a7.tar.xz yuzu-cd0ded77716dbafb1aca423ec22d562c56f046a7.zip | |
Correctly track RT indexes for image aspect lookup during clears
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.h | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 012d6fa73..4d0481f2a 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -1864,6 +1864,7 @@ void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime, | |||
| 1864 | num_layers = std::max(num_layers, color_buffer->range.extent.layers); | 1864 | num_layers = std::max(num_layers, color_buffer->range.extent.layers); |
| 1865 | images[num_images] = color_buffer->ImageHandle(); | 1865 | images[num_images] = color_buffer->ImageHandle(); |
| 1866 | image_ranges[num_images] = MakeSubresourceRange(color_buffer); | 1866 | image_ranges[num_images] = MakeSubresourceRange(color_buffer); |
| 1867 | rt_map[index] = num_images; | ||
| 1867 | samples = color_buffer->Samples(); | 1868 | samples = color_buffer->Samples(); |
| 1868 | ++num_images; | 1869 | ++num_images; |
| 1869 | } | 1870 | } |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 23473bf9c..4166b3d20 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h | |||
| @@ -334,7 +334,7 @@ public: | |||
| 334 | } | 334 | } |
| 335 | 335 | ||
| 336 | [[nodiscard]] bool HasAspectColorBit(size_t index) const noexcept { | 336 | [[nodiscard]] bool HasAspectColorBit(size_t index) const noexcept { |
| 337 | return (image_ranges.at(index).aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) != 0; | 337 | return (image_ranges.at(rt_map[index]).aspectMask & VK_IMAGE_ASPECT_COLOR_BIT) != 0; |
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | [[nodiscard]] bool HasAspectDepthBit() const noexcept { | 340 | [[nodiscard]] bool HasAspectDepthBit() const noexcept { |
| @@ -354,6 +354,7 @@ private: | |||
| 354 | u32 num_images = 0; | 354 | u32 num_images = 0; |
| 355 | std::array<VkImage, 9> images{}; | 355 | std::array<VkImage, 9> images{}; |
| 356 | std::array<VkImageSubresourceRange, 9> image_ranges{}; | 356 | std::array<VkImageSubresourceRange, 9> image_ranges{}; |
| 357 | std::array<size_t, NUM_RT> rt_map{}; | ||
| 357 | bool has_depth{}; | 358 | bool has_depth{}; |
| 358 | bool has_stencil{}; | 359 | bool has_stencil{}; |
| 359 | }; | 360 | }; |