texture_cache: missed slices in rt view; + detiler format
This commit is contained in:
parent
0299cc6ff2
commit
0e71f65469
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue