summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glsl2: Put the initializer in the instruction stream after the declarationIan Romanick2010-07-071-2/+11
|
* exec_list: Add method to append one complete list to anotherIan Romanick2010-07-071-0/+24
|
* Revert "glsl2: Put the declaration in the instruction stream before its ↵Ian Romanick2010-07-071-2/+2
| | | | | | | | | initializer." This change causes segfaults in other tests. A fix for both sets of segfaults is coming. This reverts commit d4d630b72c7b7f38074addda0f1b819608247d93.
* ir_to_mesa: Add support for gl_TextureMatrix access.Eric Anholt2010-07-071-19/+84
| | | | Fixes glsl-vs-texturematrix-1, and glsl-vs-texturematrix-2 on swrast.
* ir_to_mesa: Fill in some uninitialized fields that sometimes contained junk.Eric Anholt2010-07-071-2/+4
|
* glsl2: Add a pass to simplify if statements returning from both sides.Eric Anholt2010-07-074-0/+126
| | | | | | | | | | | | | | | 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 Anholt2010-07-071-2/+2
|
* glsl2: Don't forget to walk the parameters to a function in the hv.Eric Anholt2010-07-071-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 Anholt2010-07-071-1/+6
|
* glsl2: Put the declaration in the instruction stream before its initializer.Eric Anholt2010-07-061-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 Anholt2010-07-065-0/+206
| | | | | | | 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.
* ir_to_mesa: Add support for conditional moves.Eric Anholt2010-07-061-5/+27
| | | | Nothing generates conditional moves yet.
* glsl2: Clone methods return the type of the thing being clonedIan Romanick2010-07-065-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 Graunke2010-07-061-24/+23
| | | | Fixes "name lookup of 'c' changed" warning.
* glsl2: Update TODO.Kenneth Graunke2010-07-061-11/+3
|
* ir_constant_expression: Add support for dot products.Kenneth Graunke2010-07-061-0/+20
|
* ir_constant_expression: Add support for matrix multiplication.Kenneth Graunke2010-07-061-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 Graunke2010-07-061-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 Graunke2010-07-061-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 Graunke2010-07-061-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 Graunke2010-07-061-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 Graunke2010-07-061-0/+3
|
* ir_constant_expression: Initialize op[0] and op[1] to NULL.Kenneth Graunke2010-07-061-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 Graunke2010-07-061-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 keysIan Romanick2010-07-064-26/+41
|
* Make hashtable.h be C++ friendlyIan Romanick2010-07-061-0/+7
|
* ir_to_mesa: Use the compiler-assigned locations for builtin attrs/varyings.Eric Anholt2010-07-061-74/+9
| | | | | | The previous table didn't distinguish gl_Color for the VS and FS, so we would use the FS's attribute index for the VS and read undefined. This partially fixes glsl-routing to match its behavior on master.
* Refresh autogenerated file builtin_function.cpp.Kenneth Graunke2010-07-021-101/+18
|
* glcpp: Add #error support.Kenneth Graunke2010-07-021-0/+8
|
* glsl2: Fix for dead strings being stored in the symbol table.Kenneth Graunke2010-07-021-2/+2
|
* ir_to_mesa: Fix uninitalized value.Kenneth Graunke2010-07-021-1/+1
|
* glsl2/builtins: Use vector ops in the 130 version of "sign."Kenneth Graunke2010-07-021-15/+3
|
* glsl2/builtins: Use vector ops in "smoothstep."Kenneth Graunke2010-07-021-86/+15
|
* ir_to_mesa: Fix up implementation of ir_unop_exp.Eric Anholt2010-07-021-1/+2
| | | | | | | | OPCODE_EXP is not to ir_unop_exp what OPCODE_EX2 is to ir_unop_exp2. It's the weird VP approximation helper opcode. Just implement it with OPCODE_POW instead. Fixes glsl-fs-exp.
* i965: Add support for the DP2 opcode, which we use for dot(vec2, vec2).Eric Anholt2010-07-024-0/+38
| | | | | | | The original glsl compiler would generate a.x * b.x + a.y * b.y, which we would do mul+mul+add for instead of this mul+mac. Fixes glsl-fs-dot-vec2.
* ir_to_mesa: Add support for scalar * mat, vec * mat.Eric Anholt2010-07-021-0/+36
| | | | This is not tested by piglit currently.
* ir_to_mesa: Add support for shadow comparison to texture instructions.Eric Anholt2010-07-021-2/+15
| | | | piglit lacks tests for this currently.
* ir_to_mesa: Move projection handling out of ir_tex so txb and txl get it.Eric Anholt2010-07-021-27/+53
| | | | | | Fixes: glsl-fs-texture2dproj-bias glsl-fs-texture2dproj-bias-2
* glsl2: Print the linking info log in the stand-alone compilerIan Romanick2010-07-021-0/+3
|
* ir_to_mesa: Add support for projected non-shadow/bias/lod texturing.Eric Anholt2010-07-021-3/+18
| | | | | | Fixes: glsl-fs-texture2dproj glsl-fs-texture2dproj-2
* ir_to_mesa: Fix sparse swizzling of src regs when a writemask is present.Eric Anholt2010-07-021-0/+26
| | | | Fixes glsl-fs-texture2d-masked.
* ir_to_mesa: Don't forget to run the Mesa IR optimization passes.Eric Anholt2010-07-021-0/+5
| | | | | | With how we generate assignments, the trivial copy propagation in it is really important, and some drivers will really want the register allocation, too.
* glsl2: Add a pass to break ir_binop_div to _mul and _rcp.Eric Anholt2010-07-024-3/+81
| | | | This results in constant folding of a constant divisor.
* glsl2: Conditionally allow optional extensions to be enabledIan Romanick2010-07-014-0/+11
| | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array.
* glsl2: Append _TOK to some parser tokensIan Romanick2010-07-012-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 extensionsIan Romanick2010-07-017-12/+25
| | | | | The only optional extension currently supported by the compiler is GL_EXT_texture_array.
* glsl2: Define preprocessor tokens for extensionsIan Romanick2010-07-011-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 keywordIan Romanick2010-07-011-14/+70
|
* glsl2: Initialize ast_declarator_list::invariant in constructorIan Romanick2010-07-011-0/+1
|
* glsl2: Don't bounds check unsize array redeclarationsIan Romanick2010-07-011-1/+1
| | | | This along with several previous commits fix test CorrectUnsizedArray.frag.