summaryrefslogtreecommitdiff
path: root/src/mesa/slang/slang_ir.c
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2010-07-09 22:40:04 -0400
committerZack Rusin <zackr@vmware.com>2010-07-09 22:40:04 -0400
commit9808308f9ad05c5fd6916cb808c66be23f21db60 (patch)
tree04a16000fd68c5e15ad77eb21dfea214076ff645 /src/mesa/slang/slang_ir.c
parent7b8726a99da961fe0ace7c7ee567f82217715fe4 (diff)
mesa: initial support for emitting 2D registers from slang
Diffstat (limited to 'src/mesa/slang/slang_ir.c')
-rw-r--r--src/mesa/slang/slang_ir.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mesa/slang/slang_ir.c b/src/mesa/slang/slang_ir.c
index d78ba52505..131093d2a7 100644
--- a/src/mesa/slang/slang_ir.c
+++ b/src/mesa/slang/slang_ir.c
@@ -133,6 +133,8 @@ _slang_init_ir_storage(slang_ir_storage *st,
st->Swizzle = swizzle;
st->Parent = NULL;
st->IsIndirect = GL_FALSE;
+ st->Is2D = GL_FALSE;
+ st->Index2D = 0;
}
@@ -151,6 +153,8 @@ _slang_new_ir_storage(gl_register_file file, GLint index, GLint size)
st->Swizzle = SWIZZLE_NOOP;
st->Parent = NULL;
st->IsIndirect = GL_FALSE;
+ st->Is2D = GL_FALSE;
+ st->Index2D = 0;
}
return st;
}
@@ -172,10 +176,36 @@ _slang_new_ir_storage_swz(gl_register_file file, GLint index, GLint size,
st->Swizzle = swizzle;
st->Parent = NULL;
st->IsIndirect = GL_FALSE;
+ st->Is2D = GL_FALSE;
+ st->Index2D = 0;
}
return st;
}
+/**
+ * Return a new slang_ir_storage object.
+ */
+slang_ir_storage *
+_slang_new_ir_storage_2d(gl_register_file file,
+ GLint index, GLint index2d,
+ GLint size, GLuint swizzle)
+{
+ slang_ir_storage *st;
+ st = (slang_ir_storage *) _slang_alloc(sizeof(slang_ir_storage));
+ if (st) {
+ st->File = file;
+ st->Index = index;
+ st->Size = size;
+ st->Swizzle = swizzle;
+ st->Parent = NULL;
+ st->IsIndirect = GL_FALSE;
+ st->Is2D = GL_TRUE;
+ st->Index2D = index2d;
+ }
+ return st;
+}
+
+
/**
* Return a new slang_ir_storage object.
@@ -193,6 +223,8 @@ _slang_new_ir_storage_relative(GLint index, GLint size,
st->Swizzle = SWIZZLE_NOOP;
st->Parent = parent;
st->IsIndirect = GL_FALSE;
+ st->Is2D = GL_FALSE;
+ st->Index2D = 0;
}
return st;
}
@@ -217,6 +249,8 @@ _slang_new_ir_storage_indirect(gl_register_file file,
st->IndirectFile = indirectFile;
st->IndirectIndex = indirectIndex;
st->IndirectSwizzle = indirectSwizzle;
+ st->Is2D = GL_FALSE;
+ st->Index2D = 0;
}
return st;
}