summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_compile.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-04-01 19:50:28 -0600
committerBrian Paul <brianp@vmware.com>2009-04-01 19:54:35 -0600
commit49fb750a6884c3f647f46270ffce8652f664f908 (patch)
tree8a666b370a04c14b14391c6d9281e0ccd032e339 /src/mesa/shader/slang/slang_compile.c
parent1ab225017ed1ea8bd9e266d10ee56ab914bb28c1 (diff)
glsl: implement compiling/linking of separate compilation units
A shader program may consist of multiple shaders (source code units). If we find there are unresolved functions after compiling the unit that defines main(), we'll concatenate all the respective vertex or fragment shaders then recompile. This isn't foolproof but should work in most cases.
Diffstat (limited to 'src/mesa/shader/slang/slang_compile.c')
-rw-r--r--src/mesa/shader/slang/slang_compile.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index fb7128841c..6348f799aa 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -2435,6 +2435,8 @@ parse_code_unit(slang_parse_ctx * C, slang_code_unit * unit,
_slang_codegen_function(&A, mainFunc);
shader->Main = GL_TRUE; /* this shader defines main() */
+
+ shader->UnresolvedRefs = A.UnresolvedRefs;
}
_slang_pop_var_table(o.vartable);