Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | glsl2: Add a pass to simplify if statements returning from both sides. | Eric Anholt | 2010-07-07 | 3 | -0/+125 |
| | | | | | | | | | | | | | | | This allows function inlining making the following tests work even without function calls implemented: glsl-fs-functions-2 glsl-fs-functions-3 glsl-vs-functions glsl-vs-functions-2 glsl-vs-functions-3 glsl-vs-vec4-indexing-5 (Note that those tests were designed to trigger actual function calls, and this defeats them. However, those testcases ended up catching the bug in the previous commit.) | ||||
* | glsl2: Clean up vec_index_to_cond_assign after the clone return type change. | Eric Anholt | 2010-07-07 | 1 | -2/+2 |
| | |||||
* | glsl2: Don't forget to walk the parameters to a function in the hv. | Eric Anholt | 2010-07-07 | 1 | -0/+4 |
| | | | | | Fixes segfaults from use after free after the steal of ir nodes and free of the compile context. | ||||
* | glsl2: Avoid null deref in scalar constant unop expressions. | Eric Anholt | 2010-07-07 | 1 | -1/+6 |
| | |||||
* | glsl2: Put the declaration in the instruction stream before its initializer. | Eric Anholt | 2010-07-06 | 1 | -2/+2 |
| | | | | | This fixes a regression in the generated code from when I did the ir_validate.cpp-driven rework of assignments. | ||||
* | glsl2: Add pass for supporting variable vector indexing in rvalues. | Eric Anholt | 2010-07-06 | 4 | -0/+200 |
| | | | | | | | 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: Clone methods return the type of the thing being cloned | Ian Romanick | 2010-07-06 | 5 | -41/+45 |
| | | | | This is as opposed to returning the type of the base class of the hierarchy. | ||||
* | ir_constant_expression: Declare loop counting variables in the loops. | Kenneth Graunke | 2010-07-06 | 1 | -24/+23 |
| | | | | Fixes "name lookup of 'c' changed" warning. | ||||
* | glsl2: Update TODO. | Kenneth Graunke | 2010-07-06 | 1 | -11/+3 |
| | |||||
* | ir_constant_expression: Add support for dot products. | Kenneth Graunke | 2010-07-06 | 1 | -0/+20 |
| | |||||
* | ir_constant_expression: Add support for matrix multiplication. | Kenneth Graunke | 2010-07-06 | 1 | -3/+25 |
| | | | | | | | Also handles matrix/vector and vector/matrix multiplication. Fixes piglit tests const-matrix-multiply-01.frag, const-matrix-multiply-02.frag, and const-vec-mat.frag. | ||||
* | ir_constant_expression: Support scalar * vector and scalar * matrix. | Kenneth Graunke | 2010-07-06 | 1 | -7/+10 |
| | | | | | | | The test here is slightly different since we need to keep matrix multiplication separate. Fixes piglit tests const-vec-scalar-03.frag and const-mat-scalar-03.frag. | ||||
* | ir_constant_expression: Support scalar / vector and scalar / matrix. | Kenneth Graunke | 2010-07-06 | 1 | -18/+18 |
| | | | | Fixes piglit tests const-vec-scalar-04.frag and const-mat-scalar-04.frag. | ||||
* | ir_constant_expression: Support scalar - vector and scalar - matrix. | Kenneth Graunke | 2010-07-06 | 1 | -18/+18 |
| | | | | Fixes piglit tests const-vec-scalar-02.frag and const-mat-scalar-02.frag. | ||||
* | ir_constant_expression: Support scalar + vector and scalar + matrix. | Kenneth Graunke | 2010-07-06 | 1 | -18/+28 |
| | | | | | Fixes piglit tests const-vec-scalar-01.frag, const-vec-scalar-05.frag, and const-mat-scalar-01.frag. | ||||
* | ir_constant_expression: Assert that both operands share a base type. | Kenneth Graunke | 2010-07-06 | 1 | -0/+3 |
| | |||||
* | ir_constant_expression: Initialize op[0] and op[1] to NULL. | Kenneth Graunke | 2010-07-06 | 1 | -1/+1 |
| | | | | This makes it easy to check if there is a second argument. | ||||
* | ir_constant_expression: Initialize all components of constant data to 0. | Kenneth Graunke | 2010-07-06 | 1 | -0/+2 |
| | | | | | This is probably just a good idea, and will come in useful when implementing things like matrix multiplication. | ||||
* | Add hash table helper functions for using pointers as hash keys | Ian Romanick | 2010-07-06 | 2 | -26/+3 |
| | |||||
* | Refresh autogenerated file builtin_function.cpp. | Kenneth Graunke | 2010-07-02 | 1 | -101/+18 |
| | |||||
* | glcpp: Add #error support. | Kenneth Graunke | 2010-07-02 | 1 | -0/+8 |
| | |||||
* | glsl2: Fix for dead strings being stored in the symbol table. | Kenneth Graunke | 2010-07-02 | 1 | -2/+2 |
| | |||||
* | glsl2/builtins: Use vector ops in the 130 version of "sign." | Kenneth Graunke | 2010-07-02 | 1 | -15/+3 |
| | |||||
* | glsl2/builtins: Use vector ops in "smoothstep." | Kenneth Graunke | 2010-07-02 | 1 | -86/+15 |
| | |||||
* | glsl2: Print the linking info log in the stand-alone compiler | Ian Romanick | 2010-07-02 | 1 | -0/+3 |
| | |||||
* | glsl2: Add a pass to break ir_binop_div to _mul and _rcp. | Eric Anholt | 2010-07-02 | 3 | -0/+79 |
| | | | | This results in constant folding of a constant divisor. | ||||
* | glsl2: Conditionally allow optional extensions to be enabled | Ian Romanick | 2010-07-01 | 3 | -0/+10 |
| | | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array. | ||||
* | glsl2: Append _TOK to some parser tokens | Ian Romanick | 2010-07-01 | 2 | -7/+7 |
| | | | | | This prevents conflicts with defines elsewhere in Mesa and allows including mtypes.h in the compiler. | ||||
* | glsl2: Conditionally define preprocessor tokens for optional extensions | Ian Romanick | 2010-07-01 | 6 | -11/+23 |
| | | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array. | ||||
* | glsl2: Define preprocessor tokens for extensions | Ian Romanick | 2010-07-01 | 1 | -1/+17 |
| | | | | | | Currently only GL_ARB_draw_buffers and GL_ARB_texture_rectangle are defined because those extensions are always enabled. This make tex_rect-03.frag pass. | ||||
* | glsl2: Support AST-to-IR translation of invariant keyword | Ian Romanick | 2010-07-01 | 1 | -14/+70 |
| | |||||
* | glsl2: Initialize ast_declarator_list::invariant in constructor | Ian Romanick | 2010-07-01 | 1 | -0/+1 |
| | |||||
* | glsl2: Don't bounds check unsize array redeclarations | Ian Romanick | 2010-07-01 | 1 | -1/+1 |
| | | | | This along with several previous commits fix test CorrectUnsizedArray.frag. | ||||
* | glsl2: Add gl_MaxTextureCoords | Ian Romanick | 2010-07-01 | 4 | -22/+23 |
| | |||||
* | glsl2: Default delcaration of gl_TexCoord is unsized | Ian Romanick | 2010-07-01 | 2 | -11/+34 |
| | |||||
* | glsl2: Change order of semaintic checks on variable declarations | Ian Romanick | 2010-07-01 | 1 | -61/+61 |
| | | | | This will make it easier to support more (valid) kinds of redeclarations. | ||||
* | glsl2: Update README for what I've been thinking about with expr types work. | Eric Anholt | 2010-07-01 | 1 | -1/+38 |
| | |||||
* | glsl2: Add a pass to convert mod(a, b) to b * fract(a/b). | Eric Anholt | 2010-07-01 | 7 | -7/+117 |
| | | | | This is used by the Mesa IR backend to implement mod, fixing glsl-fs-mod. | ||||
* | glsl2: Remove dead member from dead code visitor. | Eric Anholt | 2010-07-01 | 1 | -1/+0 |
| | |||||
* | glsl2: Add ir_unop_fract as an expression type. | Eric Anholt | 2010-07-01 | 5 | -8/+29 |
| | | | | | Most backends will prefer seeing this to seeing (a - floor(a)), so represent it explicitly. | ||||
* | glsl2: Don't break sign() down by vector components. | Eric Anholt | 2010-06-30 | 2 | -32/+6 |
| | |||||
* | glsl2: Fix reversed value of step(). | Eric Anholt | 2010-06-30 | 2 | -38/+38 |
| | | | | It's 0.0 if x < edge, not 1.0. Partial fix for glsl-fs-step. | ||||
* | glsl2: Fix up the implementation of fract() for vector types. | Eric Anholt | 2010-06-30 | 2 | -30/+6 |
| | | | | There's no need to split each vector component out, just do vector ops. | ||||
* | glsl2: Implement AST->HIR support for the "discard" instruction. | Kenneth Graunke | 2010-06-30 | 1 | -1/+1 |
| | |||||
* | glsl2: Define new ir_discard instruction. | Kenneth Graunke | 2010-06-30 | 10 | -0/+107 |
| | |||||
* | glsl2: Allow a fragment shader to not write a color. | Eric Anholt | 2010-06-30 | 1 | -6/+0 |
| | | | | | | I can't find any text justifying this check, and it caused a reasonable-looking shader in glsl-bug-22603 (which writes only gl_FragDepth) to fail. | ||||
* | glsl2: Fix storing of dead memory in the symbol table. | Kenneth Graunke | 2010-06-30 | 1 | -2/+2 |
| | | | | | decl->identifier is part of the AST, so it doesn't live very long. Instead, add var->name which is owned by var. | ||||
* | glsl2: Preprocessed source doesn't need to live past compile time. | Kenneth Graunke | 2010-06-30 | 1 | -4/+1 |
| | |||||
* | glsl2: Create new talloc contexts the "right" way. | Kenneth Graunke | 2010-06-30 | 2 | -2/+2 |
| | |||||
* | glsl2: Use _mesa_glsl_parse_state as the talloc parent, not glsl_shader. | Kenneth Graunke | 2010-06-30 | 6 | -120/+120 |
| | | | | | | | | | | | | | _mesa_glsl_parse_state should be the parent for all temporary allocation done while compiling a shader. glsl_shader should only be used as the parent for the shader's final IR---the _result_ of compilation. Since many IR instructions may be added or discarded during optimization passes, IR should not ever be allocated to glsl_shader directly. Done via sed -i s/talloc_parent(state)/state/g and s/talloc_parent(st)/st/g. This also removes a ton of talloc_parent calls, which may help performance. |