summaryrefslogtreecommitdiff
path: root/src/glsl/glsl_parser_extras.h
AgeCommit message (Collapse)Author
2011-01-31glsl: Reject shader versions not supported by the implementationIan Romanick
Previously we'd happily compile GLSL 1.30 shaders on any driver. We'd also happily compile GLSL 1.10 and 1.20 shaders in an ES2 context. This has been a long standing FINISHME in the compiler. NOTE: This is a candidate for the 7.9 and 7.10 branches
2011-01-31Convert everything from the talloc API to the ralloc API.Kenneth Graunke
2011-01-26glsl: Add support for AMD_conservative_depth to parserChad Versace
When AMD_conservative_depth is enabled: * Let 'layout' be a token. * Extend the production rule of layout_qualifier_id to process the tokens: depth_any depth_greater depth_less depth_unchanged
2011-01-15Merge branch 'draw-instanced'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_llvm.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/glsl/ir_set_program_inouts.cpp src/mesa/tnl/t_vb_program.c
2011-01-10glsl: Add version_string containing properly formatted GLSL versionIan Romanick
2011-01-06glsl: Support the 'invariant(all)' pragmaIan Romanick
Previously the 'STDGL invariant(all)' pragma added in GLSL 1.20 was simply ignored by the compiler. This adds support for setting all variable invariant. In GLSL 1.10 and GLSL ES 1.00 the pragma is ignored, per the specs, but a warning is generated. Fixes piglit test glsl-invariant-pragma and bugzilla #31925. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2010-12-08glsl: add support for system values and GL_ARB_draw_instancedBrian Paul
2010-10-20glsl: Remove useless ir_shader enumeration value.Kenneth Graunke
2010-10-13Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg
2010-10-13glsl: add support for shader stencil exportDave Airlie
This adds proper support for the GL_ARB_shader_stencil_export extension to the GLSL compiler. Thanks to Ian for pointing out where I need to add things.
2010-10-08glsl: Add parser support for GL_ARB_explicit_attrib_location layoutsIan Romanick
Only layout(location=#) is supported. Setting the index requires GLSL 1.30 and GL_ARB_blend_func_extended.
2010-09-07glsl: Define GL_ES preprocessor macro if API is OpenGL ES 2.0.Kenneth Graunke
Also define it if #version 100 is encountered.
2010-09-07glsl: Accept language version 100 and make it the default on ES2.Kenneth Graunke
2010-08-27glsl2: restructure header file for C++ and C inclusionBrian Paul
As it was, the header could not be cleanly #included by a C source.
2010-08-18glsl2: Free the shader compiler at dri screen destruction.Eric Anholt
Hooray, we can valgrind again without adding suppressions. This also adds an interface for use by an implementation of glReleaseShaderCompiler().
2010-08-18glsl: Garbage collect old prototype for ir_to_mesa.Eric Anholt
2010-07-28glsl2: Parser support for GL_ARB_fragment_coord_conventionsIan Romanick
2010-07-22glsl2: When a "continue" happens in a "for" loop, run the loop expression.Eric Anholt
Fixes: glsl1-for-loop with continue Bug #29097
2010-07-21linker: Link built-in functions instead of including them in every shaderIan Romanick
This is an invasive set of changes. Each user shader tracks a set of other shaders that contain built-in functions. During compilation, function prototypes are imported from these shaders. During linking, the shaders are linked with these built-in-function shaders just like with any other shader.
2010-07-21glsl: Fix missing initialization of yylloc.sourceCarl Worth
In both the preprocessor and in the compiler proper, we use a custom yyltype struct to allow tracking the source-string number in addition to line and column. However, we were previously relying on bison's default initialization of the yyltype struct which of course is not aware of the source field and leaves it uninitialized. We fix this by defining our own YYLLOC_DEFAULT macro expanding on the default version (as appears in the bison manual) and adding initialization of yylloc.source.
2010-07-20glsl2: Add a constructor for _mesa_glsl_parse_stateIan Romanick
Coming changes to the handling of built-in functions necessitate this.
2010-07-20glsl2: Add definitions of the builtin constants present in GLSL 1.10.Eric Anholt
Fixes: glsl1-built-in constants
2010-07-08glsl2: Remove generate_temporary and global temporary counter.Kenneth Graunke
Most places in the code simply use a static name, which works because names are never used to look up an ir_variable. generate_temporary is simply unnecessary (and looks like it would leak memory, and isn't thread safe...)
2010-07-01glsl2: Conditionally allow optional extensions to be enabledIan Romanick
The only optional extension currently supported by the compiler is GL_EXT_texture_array.
2010-07-01glsl2: Conditionally define preprocessor tokens for optional extensionsIan Romanick
The only optional extension currently supported by the compiler is GL_EXT_texture_array.
2010-07-01glsl2: Add gl_MaxTextureCoordsIan Romanick
2010-06-29glsl2: Pass MaxDrawBuffers from core Mesa into the GLSL compilerIan Romanick
2010-06-29glsl2: Check for non-void functions that don't have a return statement.Kenneth Graunke
This doesn't do any control flow analysis to ensure that the return statements are actually reached. Fixes piglit tests function5.frag and function-07.vert.
2010-06-24glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt