summaryrefslogtreecommitdiff
path: root/src/glsl/main.cpp
AgeCommit message (Collapse)Author
2010-10-13Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg
2010-09-08glsl: add several EmitNo* options, and MaxUnrollIterationsLuca Barbieri
This increases the chance that GLSL programs will actually work. Note that continues and returns are not yet lowered, so linking will just fail if not supported. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-09-08glsl: Support GLSL ES in the standalone compile.Chia-I Wu
GLSL ES mode is enabled when --glsl-es is passed to glsl_compiler.
2010-09-08glsl: Require a context in _mesa_glsl_parse_state.Chia-I Wu
Create a dummy context in the standalone compiler and pass it to _mesa_glsl_parse_state.
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-03glsl2: Add module to perform simple loop unrollingIan Romanick
2010-09-03glsl2: Perform initial bits of loop analysis during compilationIan Romanick
2010-08-18mesa: Free old linked shaders when relinking new shaders.Eric Anholt
2010-08-09glsl2: Add constant propagation.Eric Anholt
Whereas constant folding evaluates constant expressions at rvalue nodes, constant propagation tracks constant components of vectors across execution to replace (possibly swizzled) variable dereferences with constant values, triggering possible constant folding or reduced variable liveness.
2010-08-02glsl2: Clean-up two 'unused variable' warningsIan Romanick
2010-07-31glsl2: Add new tree grafting optimization pass.Eric Anholt
2010-07-27glsl2: Make the dead code handler make its own talloc context.Eric Anholt
This way, we don't need to pass in a parse state, and the context doesn't grow with the number of passes through optimization.
2010-07-27glsl2: Add optimization pass for algebraic simplifications.Eric Anholt
This cleans up the assembly output of almost all the non-logic tests glsl-algebraic-*. glsl-algebraic-pow-two needs love (basically, flattening to a temporary and squaring it).
2010-07-22glsl2: Fix standalone compiler to not crash horribly.Kenneth Graunke
ir_to_mesa was updated for the _mesa_glsl_parse_state constructor changes, but main.cpp was not.
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-20glsl2: Implement utility routine to talloc reparent an IR treeIan Romanick
2010-07-20glsl2: Add definitions of the builtin constants present in GLSL 1.10.Eric Anholt
Fixes: glsl1-built-in constants
2010-07-20glsl2: Don't validate IR if there were compilation errorsIan Romanick
2010-07-19linker: Track and validate GLSL versions used in shadersIan Romanick
2010-07-12linker: Stub-out intrastage linkerIan Romanick
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-06glsl2: Add pass for supporting variable vector indexing in rvalues.Eric Anholt
The Mesa IR needs this to support vector indexing correctly, and hardware backends such as 915 would want this behavior as well. Fixes glsl-vs-vec4-indexing-2.
2010-07-02glsl2: Print the linking info log in the stand-alone compilerIan Romanick
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-30glsl2: Preprocessed source doesn't need to live past compile time.Kenneth Graunke
2010-06-30glsl2: Steal the live IR and free the rest of the junk.Kenneth Graunke
2010-06-30glsl2: Use Mesa's gl_shader_program instead of our own struct glsl_program.Eric Anholt
This avoids more allocation and shuffling of data around.
2010-06-30glsl2: Move our data from a glsl_shader* on the side to the main gl_shader *.Eric Anholt
This saves recompiling at link time. gl_shader->ir is made a pointer so that we don't have to bring exec_list into mtypes.h.
2010-06-29glsl2: Pass MaxDrawBuffers from core Mesa into the GLSL compilerIan Romanick
2010-06-29glsl_type: Add _mesa_glsl_release_types to release all type related storageIan Romanick
2010-06-28glsl2: Add option to stand-alone GLSL compiler to dump IR before optimizationsIan Romanick
2010-06-25glsl2: Use the parser state as the talloc context for dead code elimination.Eric Anholt
This cuts runtime by around 20% from talloc_parent() lookups.
2010-06-24glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt