OSDN Git Service

Fix indexing with instance ID.
authorNicolas Capens <capn@google.com>
Mon, 15 Aug 2016 19:33:58 +0000 (15:33 -0400)
committerNicolas Capens <capn@google.com>
Fri, 9 Sep 2016 15:29:26 +0000 (15:29 +0000)
BUG=swiftshader:3

Change-Id: I070059f3b4e9e431c7667b98017912b72d9d66a4
Reviewed-on: https://swiftshader-review.googlesource.com/6952
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/Shader/VertexProgram.cpp

index b855933..8e1d662 100644 (file)
@@ -856,11 +856,12 @@ namespace sw
 
                                switch(src.rel.type)
                                {
-                               case Shader::PARAMETER_ADDR:   a = a0[component]; break;
-                               case Shader::PARAMETER_TEMP:   a = r[src.rel.index][component]; break;
-                               case Shader::PARAMETER_INPUT:  a = v[src.rel.index][component]; break;
-                               case Shader::PARAMETER_OUTPUT: a = o[src.rel.index][component]; break;
-                               case Shader::PARAMETER_CONST:  a = *Pointer<Float>(uniformAddress(src.bufferIndex, src.rel.index) + component * sizeof(float)); break;
+                               case Shader::PARAMETER_ADDR:     a = a0[component]; break;
+                               case Shader::PARAMETER_TEMP:     a = r[src.rel.index][component]; break;
+                               case Shader::PARAMETER_INPUT:    a = v[src.rel.index][component]; break;
+                               case Shader::PARAMETER_OUTPUT:   a = o[src.rel.index][component]; break;
+                               case Shader::PARAMETER_CONST:    a = *Pointer<Float>(uniformAddress(src.bufferIndex, src.rel.index) + component * sizeof(float)); break;
+                               case Shader::PARAMETER_MISCTYPE: a = As<Float4>(Int4(instanceID)); break;
                                default: ASSERT(false);
                                }