Merge pull request #10243 from Kelebek1/red_dot
Correctly track render target index in the framebuffer for image aspects
This commit is contained in:
commit
075d73f076
|
@ -1864,6 +1864,7 @@ void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime,
|
||||||
num_layers = std::max(num_layers, color_buffer->range.extent.layers);
|
num_layers = std::max(num_layers, color_buffer->range.extent.layers);
|
||||||
images[num_images] = color_buffer->ImageHandle();
|
images[num_images] = color_buffer->ImageHandle();
|
||||||
image_ranges[num_images] = MakeSubresourceRange(color_buffer);
|
image_ranges[num_images] = MakeSubresourceRange(color_buffer);
|
||||||
|
rt_map[index] = num_images;
|
||||||
samples = color_buffer->Samples();
|
samples = color_buffer->Samples();
|
||||||
++num_images;
|
++num_images;
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,7 +334,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] bool HasAspectColorBit(size_t index) const noexcept {
|
[[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 {
|
[[nodiscard]] bool HasAspectDepthBit() const noexcept {
|
||||||
|
@ -354,6 +354,7 @@ private:
|
||||||
u32 num_images = 0;
|
u32 num_images = 0;
|
||||||
std::array<VkImage, 9> images{};
|
std::array<VkImage, 9> images{};
|
||||||
std::array<VkImageSubresourceRange, 9> image_ranges{};
|
std::array<VkImageSubresourceRange, 9> image_ranges{};
|
||||||
|
std::array<size_t, NUM_RT> rt_map{};
|
||||||
bool has_depth{};
|
bool has_depth{};
|
||||||
bool has_stencil{};
|
bool has_stencil{};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue