Browse Source

[Experiment] Poetential fix for depth/stencil copies

pull/2846/head
Ribbit 4 months ago
committed by crueter
parent
commit
25acca2c41
  1. 9
      src/video_core/renderer_vulkan/vk_texture_cache.cpp

9
src/video_core/renderer_vulkan/vk_texture_cache.cpp

@ -418,19 +418,10 @@ TransformBufferCopies(std::span<const VideoCommon::BufferCopy> copies, size_t bu
size_t buffer_offset; size_t buffer_offset;
VkImageAspectFlags aspect_mask; VkImageAspectFlags aspect_mask;
}; };
if (aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
boost::container::small_vector<VkBufferImageCopy, 16> result(copies.size() * 2);
std::ranges::transform(copies, result.begin(),
Maker{buffer_offset, VK_IMAGE_ASPECT_DEPTH_BIT});
std::ranges::transform(copies, result.begin() + copies.size(),
Maker{buffer_offset, VK_IMAGE_ASPECT_STENCIL_BIT});
return result;
} else {
boost::container::small_vector<VkBufferImageCopy, 16> result(copies.size()); boost::container::small_vector<VkBufferImageCopy, 16> result(copies.size());
std::ranges::transform(copies, result.begin(), Maker{buffer_offset, aspect_mask}); std::ranges::transform(copies, result.begin(), Maker{buffer_offset, aspect_mask});
return result; return result;
} }
}
[[nodiscard]] VkImageSubresourceRange MakeSubresourceRange(VkImageAspectFlags aspect_mask, [[nodiscard]] VkImageSubresourceRange MakeSubresourceRange(VkImageAspectFlags aspect_mask,
const SubresourceRange& range) { const SubresourceRange& range) {

Loading…
Cancel
Save