texture_cache: missed slices in rt view; + detiler format

This commit is contained in:
psucien 2024-08-12 14:11:46 +02:00
parent 0299cc6ff2
commit 0e71f65469
2 changed files with 3 additions and 0 deletions

View File

@ -92,6 +92,8 @@ ImageViewInfo::ImageViewInfo(const AmdGpu::Liverpool::ColorBuffer& col_buffer,
bool is_vo_surface) noexcept { bool is_vo_surface) noexcept {
const auto base_format = const auto base_format =
Vulkan::LiverpoolToVK::SurfaceFormat(col_buffer.info.format, col_buffer.NumFormat()); Vulkan::LiverpoolToVK::SurfaceFormat(col_buffer.info.format, col_buffer.NumFormat());
range.base.layer = col_buffer.view.slice_start;
range.extent.layers = col_buffer.NumSlices();
format = Vulkan::LiverpoolToVK::AdjustColorBufferFormat( format = Vulkan::LiverpoolToVK::AdjustColorBufferFormat(
base_format, col_buffer.info.comp_swap.Value(), is_vo_surface); base_format, col_buffer.info.comp_swap.Value(), is_vo_surface);
} }

View File

@ -194,6 +194,7 @@ vk::Format DemoteImageFormatForDetiling(vk::Format format) {
case vk::Format::eR32G32Sfloat: case vk::Format::eR32G32Sfloat:
case vk::Format::eR32G32Uint: case vk::Format::eR32G32Uint:
case vk::Format::eR16G16B16A16Unorm: case vk::Format::eR16G16B16A16Unorm:
case vk::Format::eR16G16B16A16Sfloat:
return vk::Format::eR32G32Uint; return vk::Format::eR32G32Uint;
case vk::Format::eBc2SrgbBlock: case vk::Format::eBc2SrgbBlock:
case vk::Format::eBc2UnormBlock: case vk::Format::eBc2UnormBlock: