Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | glsl: add several EmitNo* options, and MaxUnrollIterations | Luca Barbieri | 2010-09-08 | 1 | -1/+1 |
| | | | | | | | | | 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 <[email protected]> | ||||
* | glsl: Support GLSL ES in the standalone compile. | Chia-I Wu | 2010-09-08 | 1 | -1/+3 |
| | | | | GLSL ES mode is enabled when --glsl-es is passed to glsl_compiler. | ||||
* | glsl: Require a context in _mesa_glsl_parse_state. | Chia-I Wu | 2010-09-08 | 1 | -6/+41 |
| | | | | | Create a dummy context in the standalone compiler and pass it to _mesa_glsl_parse_state. | ||||
* | glsl: Define GL_ES preprocessor macro if API is OpenGL ES 2.0. | Kenneth Graunke | 2010-09-07 | 1 | -1/+1 |
| | | | | Also define it if #version 100 is encountered. | ||||
* | glsl2: Add module to perform simple loop unrolling | Ian Romanick | 2010-09-03 | 1 | -1/+2 |
| | |||||
* | glsl2: Perform initial bits of loop analysis during compilation | Ian Romanick | 2010-09-03 | 1 | -0/+5 |
| | |||||
* | mesa: Free old linked shaders when relinking new shaders. | Eric Anholt | 2010-08-18 | 1 | -1/+5 |
| | |||||
* | glsl2: Add constant propagation. | Eric Anholt | 2010-08-09 | 1 | -0/+1 |
| | | | | | | | | 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. | ||||
* | glsl2: Clean-up two 'unused variable' warnings | Ian Romanick | 2010-08-02 | 1 | -0/+3 |
| | |||||
* | glsl2: Add new tree grafting optimization pass. | Eric Anholt | 2010-07-31 | 1 | -0/+1 |
| | |||||
* | glsl2: Make the dead code handler make its own talloc context. | Eric Anholt | 2010-07-27 | 1 | -1/+1 |
| | | | | | 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. | ||||
* | glsl2: Add optimization pass for algebraic simplifications. | Eric Anholt | 2010-07-27 | 1 | -0/+1 |
| | | | | | | 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). | ||||
* | glsl2: Fix standalone compiler to not crash horribly. | Kenneth Graunke | 2010-07-22 | 1 | -41/+4 |
| | | | | | ir_to_mesa was updated for the _mesa_glsl_parse_state constructor changes, but main.cpp was not. | ||||
* | linker: Link built-in functions instead of including them in every shader | Ian Romanick | 2010-07-21 | 1 | -0/+4 |
| | | | | | | | | 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. | ||||
* | glsl2: Implement utility routine to talloc reparent an IR tree | Ian Romanick | 2010-07-20 | 1 | -9/+1 |
| | |||||
* | glsl2: Add definitions of the builtin constants present in GLSL 1.10. | Eric Anholt | 2010-07-20 | 1 | -1/+18 |
| | | | | | Fixes: glsl1-built-in constants | ||||
* | glsl2: Don't validate IR if there were compilation errors | Ian Romanick | 2010-07-20 | 1 | -3/+3 |
| | |||||
* | linker: Track and validate GLSL versions used in shaders | Ian Romanick | 2010-07-19 | 1 | -0/+1 |
| | |||||
* | linker: Stub-out intrastage linker | Ian Romanick | 2010-07-12 | 1 | -0/+22 |
| | |||||
* | glsl2: Remove generate_temporary and global temporary counter. | Kenneth Graunke | 2010-07-08 | 1 | -1/+0 |
| | | | | | | | 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...) | ||||
* | glsl2: Add pass for supporting variable vector indexing in rvalues. | Eric Anholt | 2010-07-06 | 1 | -0/+1 |
| | | | | | | | 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. | ||||
* | glsl2: Print the linking info log in the stand-alone compiler | Ian Romanick | 2010-07-02 | 1 | -0/+3 |
| | |||||
* | glsl2: Conditionally allow optional extensions to be enabled | Ian Romanick | 2010-07-01 | 1 | -0/+1 |
| | | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array. | ||||
* | glsl2: Conditionally define preprocessor tokens for optional extensions | Ian Romanick | 2010-07-01 | 1 | -1/+3 |
| | | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array. | ||||
* | glsl2: Add gl_MaxTextureCoords | Ian Romanick | 2010-07-01 | 1 | -0/+1 |
| | |||||
* | glsl2: Preprocessed source doesn't need to live past compile time. | Kenneth Graunke | 2010-06-30 | 1 | -4/+1 |
| | |||||
* | glsl2: Steal the live IR and free the rest of the junk. | Kenneth Graunke | 2010-06-30 | 1 | -0/+11 |
| | |||||
* | glsl2: Use Mesa's gl_shader_program instead of our own struct glsl_program. | Eric Anholt | 2010-06-30 | 1 | -2/+2 |
| | | | | This avoids more allocation and shuffling of data around. | ||||
* | glsl2: Move our data from a glsl_shader* on the side to the main gl_shader *. | Eric Anholt | 2010-06-30 | 1 | -25/+22 |
| | | | | | 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. | ||||
* | glsl2: Pass MaxDrawBuffers from core Mesa into the GLSL compiler | Ian Romanick | 2010-06-29 | 1 | -0/+2 |
| | |||||
* | glsl_type: Add _mesa_glsl_release_types to release all type related storage | Ian Romanick | 2010-06-29 | 1 | -0/+1 |
| | |||||
* | glsl2: Add option to stand-alone GLSL compiler to dump IR before optimizations | Ian Romanick | 2010-06-28 | 1 | -0/+7 |
| | |||||
* | glsl2: Use the parser state as the talloc context for dead code elimination. | Eric Anholt | 2010-06-25 | 1 | -1/+1 |
| | | | | This cuts runtime by around 20% from talloc_parent() lookups. | ||||
* | glsl2: Move the compiler to the subdirectory it will live in in Mesa. | Eric Anholt | 2010-06-24 | 1 | -0/+256 |