From 75596c07e0fc1462c2a19484e168f4944c33d3d3 Mon Sep 17 00:00:00 2001 From: Feng Chen Date: Fri, 4 Nov 2022 14:39:42 +0800 Subject: video_core: Fix SNORM texture buffer emulating error (#9001) --- src/video_core/shader_environment.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/video_core/shader_environment.h') diff --git a/src/video_core/shader_environment.h b/src/video_core/shader_environment.h index a05833f38..bb55b029f 100644 --- a/src/video_core/shader_environment.h +++ b/src/video_core/shader_environment.h @@ -63,14 +63,15 @@ public: protected: std::optional TryFindSize(); - Shader::TextureType ReadTextureTypeImpl(GPUVAddr tic_addr, u32 tic_limit, bool via_header_index, - u32 raw); + Tegra::Texture::TICEntry ReadTextureInfo(GPUVAddr tic_addr, u32 tic_limit, + bool via_header_index, u32 raw); Tegra::MemoryManager* gpu_memory{}; GPUVAddr program_base{}; std::vector code; std::unordered_map texture_types; + std::unordered_map texture_pixel_formats; std::unordered_map cbuf_values; u32 local_memory_size{}; @@ -104,6 +105,8 @@ public: Shader::TextureType ReadTextureType(u32 handle) override; + Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override; + u32 ReadViewportTransformState() override; private: @@ -124,6 +127,8 @@ public: Shader::TextureType ReadTextureType(u32 handle) override; + Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override; + u32 ReadViewportTransformState() override; private: @@ -149,6 +154,8 @@ public: [[nodiscard]] Shader::TextureType ReadTextureType(u32 handle) override; + [[nodiscard]] Shader::TexturePixelFormat ReadTexturePixelFormat(u32 handle) override; + [[nodiscard]] u32 ReadViewportTransformState() override; [[nodiscard]] u32 LocalMemorySize() const override; @@ -164,6 +171,7 @@ public: private: std::unique_ptr code; std::unordered_map texture_types; + std::unordered_map texture_pixel_formats; std::unordered_map cbuf_values; std::array workgroup_size{}; u32 local_memory_size{}; -- cgit v1.2.3