summaryrefslogtreecommitdiff
path: root/src/glsl/ir_print_visitor.cpp
AgeCommit message (Collapse)Author
2010-12-03ir_print_visitor: Print out constant structure values.Kenneth Graunke
In the form (constant type ((field1 value) (field2 value) ...))
2010-11-30glsl: Remove anti-built-in hacks from the print visitor.Kenneth Graunke
Now that we only import built-in signatures that are actually used, printing them is reasonable.
2010-11-19glsl: Eliminate assumptions about size of ir_expression::operandsIan Romanick
This may grow in the near future.
2010-09-16glsl: Don't print blank (function ...) headers for built-ins.Kenneth Graunke
Fixes a regression caused when I added my GLSL ES support.
2010-09-07glsl: Move is_builtin flag back to ir_function_signature.Kenneth Graunke
This effectively reverts b6f15869b324ae64a00d0fe46fa3c8c62c1edb6c. In desktop GLSL, defining a function with the same name as a built-in hides that built-in function completely, so there would never be built-in and user function signatures in the same ir_function. However, in GLSL ES, overloading built-ins is allowed, and does not hide the built-in signatures - so we're back to needing this.
2010-09-03ir_print_visitor: Print empty else blocks more compactlyIan Romanick
2010-08-26glsl: Move is_built_in flag from ir_function_signature to ir_function.Kenneth Graunke
Also rename it to "is_builtin" for consistency. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-08-11glsl2: added casts to silence warningsBrian Paul
2010-08-04glsl2: Add ir_assignment::write_mask and associated methodsIan Romanick
Replace swizzles on the LHS with additional swizzles on the RHS and a write mask in the assignment instruction. As part of this add ir_assignment::set_lhs. Ideally we'd make ir_assignment::lhs private to prevent erroneous writes, but that would require a lot of code butchery at this point. Add ir_assignment constructor that takes an explicit write mask. This is required for ir_assignment::clone, but it can also be used in other places. Without this, ir_assignment clones lose their write masks, and incorrect IR is generated in optimization passes. Add ir_assignment::whole_variable_written method. This method gets the variable on the LHS if the whole variable is written or NULL otherwise. This is different from ir->lhs->whole_variable_referenced() because the latter has no knowledge of the write mask stored in the ir_assignment. Gut all code from ir_to_mesa that handled swizzles on the LHS of assignments. There is probably some other refactoring that could be done here, but that can be left for another day.
2010-07-29glsl2: Allow use of _mesa_print_ir without a parse state on hand.Eric Anholt
2010-07-29glsl2: When dumping IR for debug, indent nested blocks.Eric Anholt
No more trying to match parens in my head when looking at the body of a short function containing an if statement.
2010-07-29glsl2: When dumping IR for debug, skip all the empty builtin prototypes.Eric Anholt
2010-07-22ir_print_visitor: Add "temporary" to mode string printing.Kenneth Graunke
Variables with mode ir_var_temporary were causing an out of bounds array access and filling my screen with rubbish. I'm not sure if "temporary" is the right thing to print.
2010-07-21ir_print_visitor: Print out constant arrays.Kenneth Graunke
2010-07-21ir_print_visitor: Remove commas between ir_constant's components.Kenneth Graunke
The IR reader does not expect commas.
2010-06-30glsl2: Define new ir_discard instruction.Kenneth Graunke
2010-06-24glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt