Преглед на файлове

Merge pull request #622 from Subv/unused_tex

GPU: Ignore unused textures and corrected the TEX shader instruction decoding.
bunnei преди 8 години
родител
ревизия
8b815877a6
променени са 2 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 1 1
      src/video_core/engines/shader_bytecode.h
  2. 4 1
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 1 - 1
src/video_core/engines/shader_bytecode.h

@@ -654,7 +654,7 @@ private:
             INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"),
             INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"),
             INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"),
-            INST("1100000000111---", Id::TEX, Type::Memory, "TEX"),
+            INST("110000----111---", Id::TEX, Type::Memory, "TEX"),
             INST("1101111101001---", Id::TEXQ, Type::Memory, "TEXQ"),
             INST("1101100---------", Id::TEXS, Type::Memory, "TEXS"),
             INST("1101101---------", Id::TLDS, Type::Memory, "TLDS"),

+ 4 - 1
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -686,7 +686,10 @@ u32 RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, GLuint program,
 
         // Bind the uniform to the sampler.
         GLint uniform = glGetUniformLocation(program, entry.GetName().c_str());
-        ASSERT(uniform != -1);
+        if (uniform == -1) {
+            continue;
+        }
+
         glProgramUniform1i(program, uniform, current_bindpoint);
 
         const auto texture = maxwell3d.GetStageTexture(entry.GetStage(), entry.GetOffset());