summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-06-23Fix double usage of the post-inc/dec's temporary pre-inc/dec copy.linkerEric Anholt1-5/+4
Fixes CorrectSwizzle3.frag.
2010-06-23Avoid using the RHS of an assignment twice.Eric Anholt1-3/+19
This would fix double-evaluation of assignment RHS expressions, including possible side effects.
2010-06-23get_lvalue_copy doesn't need all the checking of do_assignment().Eric Anholt1-6/+3
2010-06-23ast_to_hir: Clone LHS derefs of assignment expressions.Eric Anholt1-5/+10
2010-06-23ir_function_inlining: Allow inlining of loops and conditionals.Eric Anholt1-25/+1
The new cloning code handles them.
2010-06-23Add a virtual clone() method to ir_instruction.Eric Anholt10-328/+305
This will be used by function inlining, the linker, and avoiding double usage of the LHS deref chains in ++, *=, and similar operations.
2010-06-23Avoid using the same ir_constant 0.0 multiple times in mat constructors.Eric Anholt1-2/+1
2010-06-23glcpp: Support line continuations within preprocessor directives.Kenneth Graunke1-0/+79
Fixes CorrectPreprocess5.frag.
2010-06-23glcpp: Make standalone binary use preprocess().Kenneth Graunke2-9/+56
This prevents the two code paths from getting out of sync. Also, future work will need the shader source as a string anyway. Unfortunately, this copies and pastes load_text_file from main.cpp, with small changes (support for reading from stdin, talloc).
2010-06-23glcpp: Fix "dangerous trailing context" warning.Kenneth Graunke1-1/+1
Flex couldn't be sure whether "def" and "ndef" were part of the #ifdef and #ifndef patterns or the trailing context of the #if pattern.
2010-06-23Remove comment support from the main lexer.Kenneth Graunke1-10/+1
Now handled by the preprocessor.
2010-06-23glcpp: Recognize plain "//" as a comment.Kenneth Graunke1-1/+1
Found in glsl-orangebook-ch06-bump.(frag|vert). This was resulting in the comments getting passed through to the main compiler's lexer.
2010-06-23Generate errors for empty constructors instead of assertingIan Romanick1-1/+8
This causes the following tests to pass: glslparsertest/glsl2/constructor-10.vert
2010-06-23linker: Update some comments, remove a couple FINISHMEsIan Romanick1-3/+4
2010-06-23linker: Use InfoLog in assign_attribute_locationsIan Romanick1-16/+15
Since the program is now passed in, refactor the parameter list to the function as well.
2010-06-23linker: Refactor parameters to cross_validate_uniformsIan Romanick1-6/+4
2010-06-23linker: Write errors to info log instead of stdoutIan Romanick1-48/+84
2010-06-23linker: Initial implementation of varying slot allocationIan Romanick1-3/+76
2010-06-23linker: Limit attribute allocation to MAX_VERTEX_ATTRIBSIan Romanick1-3/+13
2010-06-23linker: Support matrix and array vertex inputsIan Romanick1-15/+179
2010-06-23linker: Initial implementation of attribute slot allocationIan Romanick1-1/+82
2010-06-23Import some bits Mesa's mtypes.hIan Romanick1-0/+221
2010-06-23Import gl_program_parameter and gl_program_parameter_list types from MesaIan Romanick1-1/+46
2010-06-23linker: Store the par-linked per-stage shaders in the glsl_programIan Romanick2-20/+27
2010-06-23linker: Initial implementation of uniform slot allocationIan Romanick1-1/+99
2010-06-23Import gl_uniform and gl_uniform_list types from MesaIan Romanick1-1/+34
2010-06-23ir_variable: Add query to get number of slots used by a variableIan Romanick2-0/+16
2010-06-23glsl_type: Add method to get number of slots used by a typeIan Romanick2-0/+37
2010-06-23linker: Document what remains to be doneIan Romanick1-0/+14
2010-06-23ir_variable: Set locations for shader built-in variablesIan Romanick2-55/+65
2010-06-23ir_variable: Track the location of uniforms, varings, attributes, etc.Ian Romanick2-0/+18
2010-06-23linker: Initial implementation of interstage input / output validationIan Romanick1-1/+105
2010-06-23ir_variable: Add method to get string representing interpolation qualifierIan Romanick2-0/+27
2010-06-23linker: Initial implementation of interstage uniform validationIan Romanick1-1/+69
2010-06-23ir_constant: Add method to determine if two constants have the same valueIan Romanick2-0/+61
2010-06-23Fix multiple usage of an rvalue in constructor component splitting.Eric Anholt1-3/+23
Store the thing in a variable and deref it for each swizzle if we have to. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-06-23ir_validate: Use callback functionality in ir_hierarchical_visitorIan Romanick1-122/+34
2010-06-23ir_hierarchical_visitor: Add generic callback functionalityIan Romanick2-16/+72
2010-06-22ir_validate: New pass for checking our invariants.Eric Anholt4-0/+199
2010-06-22ir: Give ir_instruction a print visitor helper.Eric Anholt6-9/+13
This avoids spamming each file with includes of ir_print_visitor.h because someone was doing debugging at some point, and is less typing when doing debugging.
2010-06-22Hook up texturing in the hierarchical visitor.Eric Anholt1-0/+49
2010-06-22Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.Eric Anholt22-24/+11
2010-06-22Add missing build products to gitignoreIan Romanick2-0/+6
2010-06-21glcpp: Initialize error state.Kenneth Graunke1-0/+1
2010-06-21glcpp: Accept #elif without an expression if the expression doesn't matter.Kenneth Graunke1-0/+11
Issue a warning. nVidia's compiler seems to accept this; apparently GCC < 4.4 did as well: http://gcc.gnu.org/gcc-4.4/porting_to.html
2010-06-21glcpp: Print to the main compiler's infolog, not stdout.Kenneth Graunke3-4/+4
2010-06-21Use yy_scan_string and stop caring about shader->SourceLen.Kenneth Graunke4-9/+7
We had to call strlen on the preprocessed source, which seemed a bit pointless; also, we updated shader->SourceLen but not shader->Source, which was even more confusing. Just leave both untouched.
2010-06-21glcpp: Rework handling of "defined" operator.Kenneth Graunke1-45/+33
It's now done in the grammar, and as a result, can easily handle parenthesis. defined ( identifier ) is now supported. Fixes glcpp/tests/065-if-defined-parens.c.
2010-06-21glcpp/tests: Add a test for #if defined (identifier)Kenneth Graunke2-0/+35
Previously we only tested #if defined identifier (without parenthesis).
2010-06-21glcpp: Ignore junk tokens at end of #ifdef/#ifndef (with warning)Kenneth Graunke1-2/+8
Both nVidia's compiler and GCC accept this. Fixes CorrectPreprocess11.frag.