[video_core] Better error messages (#2827)

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2827
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
This commit is contained in:
MaranBr 2025-10-24 11:35:33 +02:00 committed by crueter
parent 199bc6a170
commit cd4bcb91cc
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
3 changed files with 5 additions and 12 deletions

View File

@ -59,7 +59,7 @@ static Shader::TextureType ConvertTextureType(const Tegra::Texture::TICEntry& en
case Tegra::Texture::TextureType::TextureCubeArray: case Tegra::Texture::TextureType::TextureCubeArray:
return Shader::TextureType::ColorArrayCube; return Shader::TextureType::ColorArrayCube;
default: default:
UNIMPLEMENTED(); LOG_ERROR(Shader, "Invalid texture_type={}, falling back to texture_type={}", static_cast<int>(entry.texture_type.Value()), Shader::TextureType::Color2D);
return Shader::TextureType::Color2D; return Shader::TextureType::Color2D;
} }
} }

View File

@ -51,10 +51,8 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
config.texture_type != TextureType::Texture2DNoMipmap) { config.texture_type != TextureType::Texture2DNoMipmap) {
ASSERT(!config.IsPitchLinear()); ASSERT(!config.IsPitchLinear());
} }
//Normalize so that the 1D that actually uses layers is treated as 1DArray
TextureType tex_type = config.texture_type; TextureType tex_type = config.texture_type;
if (tex_type == TextureType::Texture1D && if (tex_type == TextureType::Texture1D && (config.Depth() > 1 || config.BaseLayer() != 0)) {
(config.Depth() > 1 || config.BaseLayer() != 0)) {
tex_type = TextureType::Texture1DArray; tex_type = TextureType::Texture1DArray;
} }
switch (tex_type) { switch (tex_type) {
@ -113,7 +111,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
resources.layers = 1; resources.layers = 1;
break; break;
default: default:
ASSERT_MSG(false, "Invalid texture_type={}", static_cast<int>(config.texture_type.Value())); ASSERT_MSG(false, "Invalid texture_type={}", static_cast<int>(tex_type));
break; break;
} }
if (num_samples > 1) { if (num_samples > 1) {

View File

@ -41,9 +41,7 @@ ImageViewInfo::ImageViewInfo(const TICEntry& config, s32 base_layer) noexcept
}; };
range.extent.levels = config.res_max_mip_level - config.res_min_mip_level + 1; range.extent.levels = config.res_max_mip_level - config.res_min_mip_level + 1;
TextureType tex_type = config.texture_type; TextureType tex_type = config.texture_type;
//normalize 1D texture with many layers if (tex_type == TextureType::Texture1D && (config.Depth() > 1 || base_layer != 0)) {
if (tex_type == TextureType::Texture1D &&
(config.Depth() > 1 || base_layer != 0)) {
tex_type = TextureType::Texture1DArray; tex_type = TextureType::Texture1DArray;
} }
switch (tex_type) { switch (tex_type) {
@ -74,18 +72,15 @@ ImageViewInfo::ImageViewInfo(const TICEntry& config, s32 base_layer) noexcept
type = ImageViewType::Cube; type = ImageViewType::Cube;
range.extent.layers = 6; range.extent.layers = 6;
break; break;
case TextureType::TextureCubeArray: case TextureType::TextureCubeArray:
type = ImageViewType::CubeArray; type = ImageViewType::CubeArray;
range.extent.layers = config.Depth() * 6; range.extent.layers = config.Depth() * 6;
break; break;
case TextureType::Texture1DBuffer: case TextureType::Texture1DBuffer:
type = ImageViewType::Buffer; type = ImageViewType::Buffer;
break; break;
default: default:
ASSERT_MSG(false, "Invalid texture_type={}", static_cast<int>(config.texture_type.Value())); ASSERT_MSG(false, "Invalid texture_type={}", static_cast<int>(tex_type));
break; break;
} }
} }