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
virtual ~VertexProgram();
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::SourceParameter Src;
typedef Shader::Control Control;
......
......@@ -41,59 +41,14 @@ namespace sw
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;
......
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