Browse Source

image_info: Mark MSAA textures as non-rescalable

Blitting or resolving multisampled images requires the dimensions of the src and dst to be equal for valid usage, making them difficult for resolution scaling using the current implementation.
nce_cpp
ameerj 4 years ago
committed by Fernando Sahmkow
parent
commit
355343d57c
  1. 4
      src/video_core/texture_cache/image_info.cpp

4
src/video_core/texture_cache/image_info.cpp

@ -101,7 +101,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
// FIXME: Call this without passing *this
layer_stride = CalculateLayerStride(*this);
maybe_unaligned_layer_stride = CalculateLayerSize(*this);
rescaleable &= (block.depth == 0) && resources.levels == 1;
rescaleable &= (block.depth == 0) && resources.levels == 1 && num_samples == 1;
}
}
@ -134,7 +134,7 @@ ImageInfo::ImageInfo(const Tegra::Engines::Maxwell3D::Regs& regs, size_t index)
type = ImageType::e3D;
size.depth = rt.depth;
} else {
rescaleable = block.depth == 0 && size.height > 256;
rescaleable = block.depth == 0 && size.height > 256 && num_samples == 1;
type = ImageType::e2D;
resources.layers = rt.depth;
}

Loading…
Cancel
Save