summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-12-11 18:02:19 -0700
committerBrian Paul <brian.paul@tungstengraphics.com>2008-12-11 18:02:19 -0700
commit2dc3de016cd0306bf5b492ed781e824864788f11 (patch)
tree8e8489b0a3cea8f3ad980d3cd764521a1994f961 /src/mesa/shader/slang/slang_codegen.c
parente8f5c1a5e89fe43ddfa277d7392dcaf8ac1d6c88 (diff)
mesa: checkpoint commit of GLSL 1.20 array syntax.
This allows things like float[3] x = float[3](1., 2., 3.); Parsing and AST construction now. Codegen not working yet.
Diffstat (limited to 'src/mesa/shader/slang/slang_codegen.c')
-rw-r--r--src/mesa/shader/slang/slang_codegen.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/mesa/shader/slang/slang_codegen.c b/src/mesa/shader/slang/slang_codegen.c
index 8abb642a72..9d6a9d7d1b 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -2519,19 +2519,11 @@ _slang_gen_var_decl(slang_assemble_ctx *A, slang_variable *var)
if (var->array_len > 0) {
/* this is an array */
- /* cannot be const-qualified */
- if (var->type.qualifier == SLANG_QUAL_CONST) {
- slang_info_log_error(A->log, "array '%s' cannot be const",
- (char*) var->a_name);
- return NULL;
- }
- else {
- /* round up element size to mult of 4 */
- GLint sz = (n->Store->Size + 3) & ~3;
- /* mult by array size */
- sz *= var->array_len;
- n->Store->Size = sz;
- }
+ /* round up the element size to a multiple of 4 */
+ GLint sz = (n->Store->Size + 3) & ~3;
+ /* total size = element size * array length */
+ sz *= var->array_len;
+ n->Store->Size = sz;
}
assert(n->Store->Size > 0);