summaryrefslogtreecommitdiff
path: root/src/glsl
AgeCommit message (Collapse)Author
2010-10-20glsl: Add assert for unhandled ir_shader case.Vinson Lee
Silences this GCC warning. ast_to_hir.cpp: In function 'void apply_type_qualifier_to_variable(const ast_type_qualifier*, ir_variable*, _mesa_glsl_parse_state*, YYLTYPE*)' ast_to_hir.cpp:1768: warning: enumeration value 'ir_shader' not handled in switch
2010-10-19linker: Improve handling of unread/unwritten shader inputs/outputsIan Romanick
Previously some shader input or outputs that hadn't received location assignments could slip through. This could happen when a shader contained user-defined varyings and was used with either fixed-function or assembly shaders. See the piglit tests glsl-[fv]s-user-varying-ff and sso-user-varying-0[12]. NOTE: this is a candidate for the 7.9 branch.
2010-10-19glsl: Commit generated file glsl_lexer.cppChad Versace
Changes are due to commit "glsl: Fix lexer rule for ^=".
2010-10-19glsl: Fix lexer rule for ^=Chad Versace
The caret is a special character, and needs to be quoted or escaped.
2010-10-19glsl: Implement ast-to-hir for bit-logic opsChad Versace
Implement by adding to ast_expression::hir() the following cases: - ast_and_assign - ast_or_assign - ast_xor_assign
2010-10-19glsl: Define bit_logic_result_type() in ast_to_hir.cppChad Versace
This function type checks the operands of and returns the result type of bit-logic operations. It replaces the type checking performed in the following cases of ast_expression::hir() : - ast_bit_and - ast_bit_or - ast_bit_xor
2010-10-19glsl: Implement ast-to-hir for bit-shift-assignmentChad Versace
Implement by adding to ast_expression::hir() these cases: - ast_ls_assign - ast_rs_assign
2010-10-19glsl: Define shift_result_type() in ast_to_hir.cppChad Versace
This function type checks the operands of and returns the result type of bit-shift operations. It replaces the type checking performed in the following cases of ast_expression::hir() : - ast_lshift - ast_rshift
2010-10-18glsl: Regenerate parser files.Kenneth Graunke
2010-10-18glsl: Fix copy and paste error in ast_bit_and node creation.Kenneth Graunke
All & operations were incorrectly being generated as ast_bit_or.
2010-10-18glsl: Don't return NULL IR for erroneous bit-shift operators.Kenneth Graunke
Existing code relies on IR being generated (possibly with error type) rather than returning NULL. So, don't break - go ahead and generate the operation. As long as an error is flagged, things will work out. Fixes fd.o bug #30914.
2010-10-15glsl: add ir_unop_round_even case to silence unhandled enum warningBrian Paul
2010-10-15linker: Trivial indention fixIan Romanick
2010-10-15glsl: Fix ir validation for bit logic opsChad Versace
In ir_validate::visit_leave(), the cases for - ir_binop_bit_and - ir_binop_bit_xor - ir_binop_bit_or were incorrect. It was incorrectly asserted that both operands must be the same type, when in fact one may be scalar and the other a vector. It was also incorrectly asserted that the resultant type was the type of the left operand, which in fact does not hold when the left operand is a scalar and the right operand is a vector.
2010-10-15glsl: Implement constant expr evaluation for bitwise logic opsChad Versace
Implement by adding the following cases to ir_exporession::constant_expression_value(): - ir_binop_bit_and - ir_binop_bit_or - ir_binop_bit_xor
2010-10-15glsl: Implement constant expr evaluation for bit-shift opsChad Versace
Implement by adding the following cases to ir_expression::constant_expression_value(): - ir_binop_lshfit - ir_binop_rshfit
2010-10-15glsl: Implement constant expr evaluation for bitwise-notChad Versace
Implement by adding a case to ir_expression::constant_expression_value() for ir_unop_bit_not.
2010-10-15glsl: Implement ast-to-hir for binary shifts in GLSL 1.30Chad Versace
Implement by adding the following cases to ast_expression::hir(): - ast_lshift - ast_rshift Also, implement ir validation for the new operators by adding the following cases to ir_validate::visit_leave(): - ir_binop_lshift - ir_binop_rshift
2010-10-15glsl: Change generated file glsl_lexer.cppChad Versace
2010-10-15glsl: Add lexer rules for << and >> in GLSL 1.30Chad Versace
Commit for generated file glsl_lexer.cpp follows this commit.
2010-10-14glsl: Slightly change the semantic of _LinkedShadersIan Romanick
Previously _LinkedShaders was a compact array of the linked shaders for each shader stage. Now it is arranged such that each slot, indexed by the MESA_SHADER_* defines, refers to a specific shader stage. As a result, some slots will be NULL. This makes things a little more complex in the linker, but it simplifies things in other places. As a side effect _NumLinkedShaders is removed. NOTE: This may be a candidate for the 7.9 branch. If there are other patches that get backported to 7.9 that use _LinkedShader, this patch should be cherry picked also.
2010-10-14glsl: Refresh autogenerated file builtin_function.cpp.Kenneth Graunke
2010-10-14glsl: Add support for the 1.30 round() built-in.Kenneth Graunke
This implements round() via the ir_unop_round_even opcode, rather than adding a new opcode. We may wish to add one in the future, since it might enable a small performance increase on some hardware, but for now, this should suffice.
2010-10-14glsl: Add front-end support for GLSL 1.30's roundEven built-in.Kenneth Graunke
Implemented using the op-code introduced in the previous commit.
2010-10-14glsl: Add a new ir_unop_round_even opcode for GLSL 1.30's roundEven.Kenneth Graunke
Also, update ir_to_mesa's "1.30 is unsupported" case to "handle" it.
2010-10-14glsl: Refresh autogenerated file builtin_function.cpp.Kenneth Graunke
2010-10-14glsl: Add front-end support for the "trunc" built-in.Kenneth Graunke
2010-10-13linker: Reject shaders that have unresolved function callsIan Romanick
This really amounts to just using the return value from link_function_calls. All the work was being done, but the result was being ignored. Fixes piglit test link-unresolved-funciton. NOTE: this is a candidate for the 7.9 branch.
2010-10-13glsl: Initialize variable in ir_derefence_array::constant_expression_valueVinson Lee
Completely initialize data passed to ir_constant constructor. Fixes piglit glsl-mat-from-int-ctor-03 valgrind uninitialized value error on softpipe.
2010-10-13Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg
2010-10-13glsl: add support for shader stencil exportDave Airlie
This adds proper support for the GL_ARB_shader_stencil_export extension to the GLSL compiler. Thanks to Ian for pointing out where I need to add things.
2010-10-12glsl2: fix signed/unsigned comparison warningBrian Paul
2010-10-11glsl: Changes in generated file glsl_lexer.cppChad Versace
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-10-11glsl: Add lexer rules for uint and uvecN (N=2..4)Chad Versace
Commit for generated file glsl_lexer.cpp follows this commit. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2010-10-11glsl: Add glsl_type::uvecN_type for N=2,3Chad Versace
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2010-10-08glsl: Remove const decoration from inlined function parametersIan Romanick
The constness of the function parameter gets inlined with the rest of the function. However, there is also an assignment to the parameter. If this occurs inside a loop the loop analysis code will get confused by the assignment to a read-only variable. Fixes bugzilla #30552. NOTE: this is a candidate for the 7.9 branch.
2010-10-08glsl: Add linker support for explicit attribute locationsIan Romanick
2010-10-08glsl: Track explicit location in AST to IR translationIan Romanick
2010-10-08glsl: Regenerate files changes by previous commitIan Romanick
2010-10-08glsl: Add parser support for GL_ARB_explicit_attrib_location layoutsIan Romanick
Only layout(location=#) is supported. Setting the index requires GLSL 1.30 and GL_ARB_blend_func_extended.
2010-10-08glcpp: Regenerate files changes by previous commitIan Romanick
2010-10-08glcpp: Add the define for ARB_explicit_attrib_location when presentIan Romanick
2010-10-08glsl: Regenerate files modified by previous commitsIan Romanick
2010-10-08glsl: Wrap ast_type_qualifier contents in a struct in a unionIan Romanick
This will ease adding non-bit fields in the near future.
2010-10-08glsl: Clear type_qualifier using memsetIan Romanick
2010-10-08glsl: Slight refactor of error / warning checking for ARB_fcc layoutIan Romanick
2010-10-08glsl: Refactor 'layout' grammar to match GLSL 1.60 spec grammarIan Romanick
2010-10-08glsl: Fail linking if assign_attribute_locations failsIan Romanick
2010-10-01glsl: Remove unnecessary header.Vinson Lee
2010-09-30glsl: Add a lowering pass for texture projection.Eric Anholt