texture_cache: Fix image mip overlap. (#2177)

This commit is contained in:
squidbus 2025-01-18 01:35:44 -08:00 committed by GitHub
parent 12364b197a
commit d361579618
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 6 deletions

View file

@ -802,8 +802,6 @@ void Rasterizer::BeginRendering(const GraphicsPipeline& pipeline, RenderState& s
const auto mip = view.info.range.base.level;
state.width = std::min<u32>(state.width, std::max(image.info.size.width >> mip, 1u));
state.height = std::min<u32>(state.height, std::max(image.info.size.height >> mip, 1u));
ASSERT(old_img.info.size.width == state.width);
ASSERT(old_img.info.size.height == state.height);
}
auto& image = texture_cache.GetImage(image_id);
if (image.binding.force_general) {

View file

@ -219,7 +219,7 @@ int ImageInfo::IsMipOf(const ImageInfo& info) const {
return -1;
}
if (IsTilingCompatible(info.tiling_idx, tiling_idx)) {
if (!IsTilingCompatible(info.tiling_idx, tiling_idx)) {
return -1;
}

View file

@ -114,9 +114,12 @@ ImageView::ImageView(const Vulkan::Instance& instance, const ImageViewInfo& info
const auto view_aspect = aspect & vk::ImageAspectFlagBits::eDepth ? "Depth"
: aspect & vk::ImageAspectFlagBits::eStencil ? "Stencil"
: "Color";
Vulkan::SetObjectName(instance.GetDevice(), *image_view, "ImageView {}x{}x{} {:#x}:{:#x} ({})",
Vulkan::SetObjectName(
instance.GetDevice(), *image_view, "ImageView {}x{}x{} {:#x}:{:#x} {}:{} {}:{} ({})",
image.info.size.width, image.info.size.height, image.info.size.depth,
image.info.guest_address, image.info.guest_size, view_aspect);
image.info.guest_address, image.info.guest_size, info.range.base.level,
info.range.base.level + info.range.extent.levels - 1, info.range.base.layer,
info.range.base.layer + info.range.extent.layers - 1, view_aspect);
}
ImageView::~ImageView() = default;