diff options
Diffstat (limited to 'src/mesa/shader/slang/slang_emit.c')
-rw-r--r-- | src/mesa/shader/slang/slang_emit.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c index 1142bc6416..52627486bd 100644 --- a/src/mesa/shader/slang/slang_emit.c +++ b/src/mesa/shader/slang/slang_emit.c @@ -618,10 +618,15 @@ emit(slang_var_table *vt, slang_ir_node *n, struct gl_program *prog) assert(n->Store->File != PROGRAM_UNDEFINED); assert(n->Store->Size > 0); assert(n->Store->Index < 0); - if (!n->Var || n->Var->isTemp) + if (!n->Var || n->Var->isTemp) { + /* a nameless/temporary variable, will be freed after first use */ n->Store->Index = _slang_alloc_temp(vt, n->Store->Size); - else + } + else { + /* a regular variable */ + _slang_add_variable(vt, n->Var); n->Store->Index = _slang_alloc_var(vt, n->Store->Size); + } assert(n->Store->Index >= 0); break; |