Commit 7551ac68 by Nicolas Capens

Make vertex registers members of routine classes.

Bug 22652760 Change-Id: I698ce910ee4302178d7235fa316aaa2b268e71a8 Reviewed-on: https://swiftshader-review.googlesource.com/4560Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 907700d1
...@@ -32,6 +32,28 @@ namespace sw ...@@ -32,6 +32,28 @@ namespace sw
virtual ~VertexProgram(); virtual ~VertexProgram();
private: private:
const VertexShader *const shader;
RegisterArray<4096> r; // Temporary registers
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;
typedef Shader::DestinationParameter Dst; typedef Shader::DestinationParameter Dst;
typedef Shader::SourceParameter Src; typedef Shader::SourceParameter Src;
typedef Shader::Control Control; typedef Shader::Control Control;
......
...@@ -41,59 +41,14 @@ namespace sw ...@@ -41,59 +41,14 @@ namespace sw
void generate(); void generate();
protected: protected:
struct Registers Pointer<Byte> constants;
{
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);
if(shader && shader->containsBreakInstruction()) Int clipFlags;
{
enableBreak = Int4(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF);
}
if(shader && shader->containsContinueInstruction()) RegisterArray<16> v; // Varying registers
{ RegisterArray<12> o; // Output registers
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;
const VertexProcessor::State &state; const VertexProcessor::State &state;
const VertexShader *const shader;
private: private:
virtual void pipeline() = 0; virtual void pipeline() = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment