Correctly track RT indexes for image aspect lookup during clears
This commit is contained in:
		| @@ -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{}; | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user