summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_compile.c
AgeCommit message (Collapse)Author
2009-12-21Merge branch 'mesa_7_6_branch' into mesa_7_7_branchBrian Paul
Conflicts: configure.ac progs/demos/morph3d.c progs/demos/textures.c progs/glsl/shtest.c progs/glsl/texaaline.c progs/tests/packedpixels.c progs/xdemos/corender.c src/mesa/main/version.h
2009-12-18glsl: clear out shader code before compilingBrian Paul
When we start compiling a shader, first free the existing gl_program. This (mostly) fixes the piglit glsl-reload-source test. Without this change, we were actually appending the new GPU code onto the previous program.
2009-09-29mesa: added nopfrag/nopvert options for MESA_GLSLBrian Paul
These options can be used to force vertex/fragment shaders to be no-op shaders (actually, simple pass-through shaders). For debug/test purposes.
2009-06-26glsl: added slang_assemble_ctx::EmitContReturn field, initBrian Paul
2009-04-27Avoid a segfault in shader compilationRobert Ellison
If a shader reaches an out-of-memory condition while adding a new function (reallocating the function list), a segfault will occur during cleanup (because the num_functions field is non-zero, but the functions pointer is NULL). This fixes that segfault by zeroing out the num_functions field if reallocation fails.
2009-04-07glsl: don't optimize program if MESA_GLSL=noptBrian Paul
2009-04-01glsl: implement compiling/linking of separate compilation unitsBrian Paul
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.
2009-03-19slang: initialize the contextAlan Hourihane
2009-03-19glsl: change GLSL #pragma initializationBrian Paul
Initialize the shader's pragma settings before calling the compiler. Added pragma "Ignore" fields to allow overriding the #pragma directives found in shader source code.
2009-03-06glsl: call the program optimizerBrian Paul
This still needs more testing bug glean and Mesa GLSL tests seem OK.
2009-02-16glsl: silence some uninit var warningsBrian Paul
2009-02-06glsl: new MESA_GLSL env var for GLSL debugging featuresBrian Paul
Replaces the VERBOSE_GLSL, VERBOSE_GLSL_DUMP flags which only worked in debug builds. MESA_GLSL will work both in debug and non-debug builds. Also add facility to dump glUniform() calls to stdout.
2009-02-06Revert "mesa: meaningless whitespace change to see if git's working (ignore)"Brian Paul
This reverts commit b2e779988eeb595187933fe2122d86f8ccfe059c. I didn't mean to push this stuff yet. I'm having a bad git day...
2009-02-06mesa: meaningless whitespace change to see if git's working (ignore)Brian Paul
2009-01-22glsl: call _mesa_write_shader_to_file(). Debug-only, disabledBrian Paul
2009-01-22glsl: set shader->CompileStatus in _slang_compile()Brian Paul
2009-01-15glsl: move declaration before codeBrian Paul
2009-01-14glsl: propagate pragma info down into compiler from preprocessorBrian Paul
2009-01-12glsl: better fix for for-loop scope issue (commit ↵Brian Paul
6333005f7aea3e5d1d86a5c47b3fa2a1ed2f3ff0)
2009-01-10glsl: force creation of new scope for for-loop bodyBrian Paul
Fixes regression in progs/demos/convolution.c due to loop unrolling. This also allows the following to be compiled correctly: for (int i = 0; i < n; i++) { int i; ... } This fix is a bit of a hack, however. The better fix would be to change the slang_shader.syn grammar. Will revisit that...
2009-01-10glsl: replace 0/1 with GL_FALSE/GL_TRUEBrian Paul
2009-01-07glsl: pass GLcontext::Extension info down into GLSL preprocessorBrian Paul
Now the #extension directives can be handled properly.
2008-12-16mesa: disable debug outputBrian Paul
2008-12-16mesa: fix some GLSL array regressionsBrian Paul
array.length() wasn't working. Swizzle mask for accessing elements of float arrays was incorrect.
2008-12-15mesa: bump glsl grammar revisionBrian Paul
And update some copyrights.
2008-12-12mesa: remove unused varpool code in glsl compilerBrian Paul
2008-12-12mesa: remove incorrect array_len assignmentBrian Paul
2008-12-12mesa: fix some more GLSL 1.20 array things.Brian Paul
Function that return arrays should work now.
2008-12-12mesa: glsl compiler function renamingBrian Paul
2008-12-12mesa: remove unused fixup table code in glsl compilerBrian Paul
2008-12-12mesa: checkpoint: GLSL 1.20 array constructorsBrian Paul
2008-12-11mesa: glsl clean-upsBrian Paul
2008-12-11mesa: checkpoint commit of GLSL 1.20 array syntax.Brian Paul
This allows things like float[3] x = float[3](1., 2., 3.); Parsing and AST construction now. Codegen not working yet.
2008-11-26mesa: remove debug codeBrian Paul
2008-11-24mesa: added support for GLSL 1.20 array.length() methodBrian Paul
This is the only method supported in GLSL 1.20 so we take a few short-cuts.
2008-11-24mesa: support for GLSL 1.20 array typesBrian Paul
This allows syntax like "float[8] foo, bar;"
2008-11-24mesa: copy centroid/invariance/precision info in parse_init_declarator()Brian Paul
2008-11-19mesa: glsl compiler debug codeBrian Paul
RETURN0 macro reports file/line before returning zero.
2008-11-07mesa: add support for 'centroid' qualifier in GLSL 1.20Brian Paul
2008-11-07mesa: add support for 'invariant' keyword for GLSL 1.20Brian Paul
2008-10-31mesa: fix some bugs with precision qualifier parsingBrian Paul
2008-08-16mesa: import latest GLSL code from gallium-0.1 branchBrian Paul
2008-07-29mesa: disable debug codeBrian Paul
2008-07-29mesa: glsl: silence warning (s/int/GLuint)Brian Paul
2008-07-29mesa: glsl: assorted fixes for resolving polymorphic functionsBrian Paul
Plus, - fix some issues in casting function arguments to format param types. - fix some vec/mat constructor bugs - find/report more syntax/semantic errors
2008-07-29mesa: glsl: only try to link shaders defining main()Brian Paul
2008-07-29mesa: implement grammar/parsing for precision/invariant syntaxBrian Paul
Plus, fix some issues with pre-defined preprocessor symbols and version checking.
2008-07-14mesa: assemble main() after all other functionsBrian Paul
Before, main() had to come after any functions it called.
2008-07-14mesa: check for null shader->SourceBrian Paul
2008-07-08mesa: compute global var size before doing codegenBrian Paul