Make vertex registers members of routine classes.
Bug 22652760
Change-Id: I698ce910ee4302178d7235fa316aaa2b268e71a8
Reviewed-on: https://swiftshader-review.googlesource.com/4560
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/VertexRoutine.hpp b/src/Shader/VertexRoutine.hpp
index 3eec924..1861d10 100644
--- a/src/Shader/VertexRoutine.hpp
+++ b/src/Shader/VertexRoutine.hpp
@@ -41,59 +41,14 @@
void generate();
protected:
- struct Registers
- {
- Registers(const VertexShader *shader) :
- v(shader && shader->dynamicallyIndexedInput),
- r(shader && shader->dynamicallyIndexedTemporaries),
- o(shader && shader->dynamicallyIndexedOutput)
- {
- loopDepth = -1;
- enableStack[0] = Int4(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);
+ Pointer<Byte> constants;
- if(shader && shader->containsBreakInstruction())
- {
- enableBreak = Int4(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);
- }
+ Int clipFlags;
- if(shader && shader->containsContinueInstruction())
- {
- enableContinue = Int4(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);
- }
- }
-
- Pointer<Byte> data;
- Pointer<Byte> constants;
-
- Int clipFlags;
-
- RegisterArray<16> v;
- RegisterArray<4096> r;
- RegisterArray<12> o;
- Vector4f a0;
- Array<Int, 4> aL;
- Vector4f p0;
-
- Array<Int, 4> increment;
- Array<Int, 4> iteration;
-
- Int loopDepth;
- Int stackIndex; // FIXME: Inc/decrement callStack
- Array<UInt, 16> callStack;
-
- Int enableIndex;
- Array<Int4, 1 + 24> enableStack;
- Int4 enableBreak;
- Int4 enableContinue;
- Int4 enableLeave;
-
- Int instanceID;
- };
-
- Registers r;
+ RegisterArray<16> v; // Varying registers
+ RegisterArray<12> o; // Output registers
const VertexProcessor::State &state;
- const VertexShader *const shader;
private:
virtual void pipeline() = 0;