Просмотр исходного кода

Merge pull request #8837 from Morph1984/invalidate

(shader/pipeline)_cache: Raise shader/pipeline cache version
bunnei 3 лет назад
Родитель
Сommit
4ffbbc5348

+ 5 - 5
src/shader_recompiler/ir_opt/texture_pass.cpp

@@ -415,11 +415,11 @@ void TexturePass(Environment& env, IR::Program& program) {
             inst->SetFlags(flags);
             break;
         case IR::Opcode::ImageSampleImplicitLod:
-            if (flags.type == TextureType::Color2D) {
-                auto texture_type = ReadTextureType(env, cbuf);
-                if (texture_type == TextureType::Color2DRect) {
-                    PatchImageSampleImplicitLod(*texture_inst.block, *texture_inst.inst);
-                }
+            if (flags.type != TextureType::Color2D) {
+                break;
+            }
+            if (ReadTextureType(env, cbuf) == TextureType::Color2DRect) {
+                PatchImageSampleImplicitLod(*texture_inst.block, *texture_inst.inst);
             }
             break;
         case IR::Opcode::ImageFetch:

+ 1 - 1
src/video_core/renderer_opengl/gl_shader_cache.cpp

@@ -49,7 +49,7 @@ using VideoCommon::LoadPipelines;
 using VideoCommon::SerializePipeline;
 using Context = ShaderContext::Context;
 
-constexpr u32 CACHE_VERSION = 5;
+constexpr u32 CACHE_VERSION = 6;
 
 template <typename Container>
 auto MakeSpan(Container& container) {

+ 1 - 1
src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

@@ -53,7 +53,7 @@ using VideoCommon::FileEnvironment;
 using VideoCommon::GenericEnvironment;
 using VideoCommon::GraphicsEnvironment;
 
-constexpr u32 CACHE_VERSION = 5;
+constexpr u32 CACHE_VERSION = 6;
 
 template <typename Container>
 auto MakeSpan(Container& container) {

+ 2 - 5
src/video_core/shader_environment.cpp

@@ -39,11 +39,8 @@ static Shader::TextureType ConvertType(const Tegra::Texture::TICEntry& entry) {
         return Shader::TextureType::Color1D;
     case Tegra::Texture::TextureType::Texture2D:
     case Tegra::Texture::TextureType::Texture2DNoMipmap:
-        if (entry.normalized_coords) {
-            return Shader::TextureType::Color2D;
-        } else {
-            return Shader::TextureType::Color2DRect;
-        }
+        return entry.normalized_coords ? Shader::TextureType::Color2D
+                                       : Shader::TextureType::Color2DRect;
     case Tegra::Texture::TextureType::Texture3D:
         return Shader::TextureType::Color3D;
     case Tegra::Texture::TextureType::TextureCubemap: