summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-04-06Add some linebreaks in the ir_print_visitor of if statement bodies.Eric Anholt
2010-04-06Make constant folding descend into if statements.Eric Anholt
2010-04-06Descend down the tree in more locations in constant folding.Eric Anholt
2010-04-06Perform constant folding on array indices.Eric Anholt
Replaces a constant var deref with a constant value in CorrectParse1.frag.
2010-04-06Add float/int conversion to ir_constant_expression.cpp.Eric Anholt
Gives CorrectParse2.frag one more constant folding.
2010-04-06Handle constant expressions using derefs of const values.Eric Anholt
Fixes CorrectParse1.frag and makes for a ton of folding in CorrectParse2.frag.
2010-04-06Fold constant expressions in if conditionals.Eric Anholt
Fixes up 3 more expressions in CorrectParse2.frag.
2010-04-06Add support for =, != to ir_constant_expresion.cppEric Anholt
This results in constant folding of one more expression in CorrectParse2.frag.
2010-04-06Add ir_constant_expression.cpp support for <, >, <=, >=.Eric Anholt
This results in folding one more constant expression in CorrectParse2.frag.
2010-04-06Add a constant folding optimization pass.Eric Anholt
2010-04-05Add definition of gl_ClipDistance[]Eric Anholt
2010-04-05Set lower bound on size implied by whole-array assignmentIan Romanick
When an unsized array is accessed with a constant extension index this sets a lower bound on the allowable sizes. When the unsized array gets a size set due to a whole-array assignment, this size must be at least as large as the implied lower bound. This causes the following tests to pass: glslparsertest/glsl2/array-16.vert
2010-04-05Allow dereference of vectors and matrices with []Ian Romanick
This causes the following tests to pass: glslparsertest/glsl2/matrix-11.vert glslparsertest/glsl2/matrix-12.vert glslparsertest/shaders/CorrectParse2.vert glslparsertest/shaders/CorrectSwizzle2.frag
2010-04-05Set correct type for ir_dereference of a matrix or a vectorIan Romanick
2010-04-02Propagate sizes when assigning a whole array to an unsized arrayIan Romanick
2010-04-02Track whether whole-arrays are assignableIan Romanick
In GLSL 1.10 this was not allowed, but in GLSL 1.20 and later it is. This causes the following tests to pass: glslparsertest/glsl2/array-09.vert glslparsertest/glsl2/array-13.vert
2010-04-02Whole structures are assignableIan Romanick
Whole arrays are assignable in GLSL 1.20 and later, but it's not clear how to handle that within the IR because the IR is supposed to be shading language version agnostic.
2010-04-02Use glsl_type::element_type to get the type of array elementsIan Romanick
2010-04-02Ensure that 'in' and 'inout' formal parameters are valid lvaluesIan Romanick
This causes the following tests to pass: glslparsertest/shaders/function10.frag
2010-04-02Additional void parameter checksIan Romanick
If there is a void parameter it must not have a name, and it must be the only parameter.
2010-04-02Require that function formal parameters have namesIan Romanick
2010-04-02Make built-in gl_TexCoord available in vertex and fragment shadersIan Romanick
2010-04-02Fix matching of integer function parametersIan Romanick
This causes the following tests to pass: glslparsertest/shaders/function10.frag
2010-04-02Add bool/int conversion as IR operations.Eric Anholt
Fixes constructor-09.glsl and CorrectParse2.frag.
2010-04-02Add conversion of bool to float as an IR operation to match int to float.Eric Anholt
2010-04-02Add PASS / FAIL annotations to tests missing them.Eric Anholt
This tricked my import of the tests into piglit.
2010-04-02Test that invalid quailfiers aren't used on variables in GLSL 1.10.Eric Anholt
2010-04-02Allow array dereferences to be considered as lvalues.Eric Anholt
Fixes glsl-vs-arrays.vert and glsl-vs-mov-after-deref.vert. Regresses parser3.frag which was failing for the wrong reason.
2010-04-02Test for the type being different in parameter_lists_match.Eric Anholt
Fixes CorrectFuncOverload.frag.
2010-04-02Add some more operations to ir_constant_expression.cpp.Eric Anholt
2010-04-02Make ir_constant_expression.cpp support multi-component types.Eric Anholt
2010-04-02Simplify ir_constant_expression.cpp by factoring operand computation out.Eric Anholt
2010-04-02Reject non-float varyings.Eric Anholt
Fixes varying2.frag.
2010-04-02Remove fake ir_binop_logic_not. I think you meant ir_unop_logic_not.Eric Anholt
2010-04-02Handle logic not in constant expression evaluation.Eric Anholt
2010-04-02Fix error handling of logic operators.Eric Anholt
They were always throwing a type error because type wasn't being set.
2010-04-02Emit errors for unfinished ast_to_hir expression operations.Eric Anholt
2010-04-02Fix ast_logic_not handling to be unary, not binary.Eric Anholt
2010-04-02Add errors for type results of other expressions.Eric Anholt
2010-04-02Emit errors from failure in arithmetic_result_type.Eric Anholt
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-04-02Start trying to fill in a few bits of ir_constant_expression.cppEric Anholt
This makes a little progress on CorrectParse2.frag.
2010-04-02Compute the constant value of a constant initializer.Eric Anholt
Fixes constFunc.frag.
2010-04-02Allow initializers of constant values to succeed.Eric Anholt
This regresses constFunc.frag, but that's just unexpectedly passing because of the FINISHME just above.
2010-04-02Don't create a parameter declaration for a (void) parameter.Eric Anholt
Fixes segfaults in a shader consisting of just: void main(void) { } Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-04-02Remove ast_node::typeIan Romanick
It isn't a type (is was enum specifying the kind of node), it was unused, and it was easily confused with actual type fields. Kill with fire.
2010-04-01Track max accessed array element, reject additional out-of-bounds accessesIan Romanick
For unsized arrays, we can't flag out-of-bounds accesses until the array is redeclared with a size. Track the maximum accessed element and generate an error if the declaration specifies a size that would cause that access to be out-of-bounds. This causes the following tests to pass: glslparsertest/shaders/array10.frag
2010-04-01Begin processing ast_array_index nodesIan Romanick
This causes the following tests to pass: glslparsertest/shaders/parser3.frag glslparsertest/shaders/varying3.frag (also generates spurious error)
2010-04-01Fix type handling in ir_dereference array dereference constructorIan Romanick
2010-04-01Allow unsized arrays to be redeclared with a sizeIan Romanick
Test glslparsertest/shaders/array11.frag now passes for the right reason.
2010-04-01Add glsl_type::element_type and glsl_type::array_size queriesIan Romanick
The former gets the type of elements in an array, and the later gets the declared size, if any, of the array.