3603fdcebfa25e2217f1dbfb0a99261be3e84b02 |
|
06-Jun-2012 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Hook up loop_variable_state destructor to plug a memory leak. While ~loop_state() is already freeing the loop_variable_state objects via ralloc_free(this->mem_ctx), the ~loop_variable_state() destructor was never getting called, so the hash table inside loop_variable_state was never getting destroyed. Fixes a memory leak in any shader with loops. NOTE: This is a candidate for stable release branches. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/loop_analysis.h
|
0405bd08ca0e01ebc68891ee1ff47d320983f775 |
|
28-Mar-2012 |
Kenneth Graunke <kenneth@whitecape.org> |
glsl: Don't trust loop analysis in the presence of function calls. Function calls may have side effects that alter variables used inside the loop. In the fragment shader, they may even terminate the shader. This means our analysis about loop-constant or induction variables may be completely wrong. In general it's impossible to determine whether they actually do or not (due to the halting problem), so we'd need to perform conservative static analysis. For now, it's not worth the complexity: most functions will be inlined, at which point we can unroll them successfully. Fixes Piglit tests: - shaders/glsl-fs-unroll-out-param - shaders/glsl-fs-unroll-side-effect NOTE: This is a candidate for release branches. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/loop_analysis.h
|
58c988ada56114b56477983f66b4039219f1a82c |
|
18-Jan-2011 |
Eric Anholt <eric@anholt.net> |
glsl: Skip the rest of loop unrolling if no loops were found. Shaves 1.6% (+/- 1.0%) off of ff_fragment_shader glean texCombine time (n=5).
/external/mesa3d/src/glsl/loop_analysis.h
|
e591c4625cae63660c5000fbab366e40fe154ab0 |
|
05-Sep-2010 |
Luca Barbieri <luca@luca-barbieri.com> |
glsl: add several EmitNo* options, and MaxUnrollIterations 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>
/external/mesa3d/src/glsl/loop_analysis.h
|
de7c3fe31a7b88a5392dceee3b13b45ed78cdeae |
|
27-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add module to perform simple loop unrolling
/external/mesa3d/src/glsl/loop_analysis.h
|
3bcfafcf0320ee5407716ff67062e80d162760d4 |
|
28-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Track the number of ir_loop_jump instructions that are in a loop
/external/mesa3d/src/glsl/loop_analysis.h
|
bfe3fbb38e0a3ae7c1efb74282628c2cc5abc3e0 |
|
27-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add module to suss out loop control variables from loop analysis data This is the next step on the road to loop unrolling
/external/mesa3d/src/glsl/loop_analysis.h
|
9434a0749f26c640305f68ef85d17a31063a5705 |
|
27-Aug-2010 |
Ian Romanick <ian.d.romanick@intel.com> |
glsl2: Add module to analyze variables used in loops This is the first step eventually leading to loop unrolling.
/external/mesa3d/src/glsl/loop_analysis.h
|