Carl Worth
726faddda2
preprocessor: Remove dead code _token_list_length
...
As gcc noticed, this function is not currently being used. Good-bye.
2010-06-23 16:13:31 -07:00
Carl Worth
45cbc08438
preprocessor: Remove dead code _string_list_append_list
...
As gcc noticed, this function is not currently being used. Good-bye.
2010-06-23 16:13:31 -07:00
Carl Worth
60c67e46b1
configure: Ensure that config.h can be safely included multiple times.
...
Use AH_TOP and AH_BOTTOM macros so that the standard include guard
mechanisms are emitted by autoheader into the generated config.h file.
2010-06-23 16:13:31 -07:00
Carl Worth
a32305a8bd
configure: Remove some dead code.
...
This block of code is useless because a (nearly-equivalent) assignment
is made immediately after. The only difference is the omission of
-Wunreadchable-code in the assignment being used. Presumably, that was
intended to be -Wunreachable-code (without the first 'd'), but since
this hasn't been being used we just drop it.
2010-06-23 16:13:31 -07:00
Carl Worth
a22426dc4c
Fix typos of "variable" as "varaible"
...
One of these was just in a comment. But ther other was in an enum
tag, (which is apparently not being used anywhere yet).
2010-06-23 16:12:53 -07:00
Carl Worth
7fd7104fbb
ir_variable: Add some missing initialization to the constructor.
...
Thanks to valgrind for noticing this problem.
2010-06-23 16:12:53 -07:00
Eric Anholt
a9d58ad6c9
Fix double usage of the post-inc/dec's temporary pre-inc/dec copy.
...
Fixes CorrectSwizzle3.frag.
2010-06-23 15:20:29 -07:00
Eric Anholt
2731a739d0
Avoid using the RHS of an assignment twice.
...
This would fix double-evaluation of assignment RHS expressions,
including possible side effects.
2010-06-23 15:20:29 -07:00
Eric Anholt
959a9ecdd8
get_lvalue_copy doesn't need all the checking of do_assignment().
2010-06-23 15:20:29 -07:00
Eric Anholt
3e24ef68a9
ast_to_hir: Clone LHS derefs of assignment expressions.
2010-06-23 15:20:29 -07:00
Eric Anholt
8006576b36
ir_function_inlining: Allow inlining of loops and conditionals.
...
The new cloning code handles them.
2010-06-23 15:20:29 -07:00
Eric Anholt
4b6fd39c89
Add a virtual clone() method to ir_instruction.
...
This will be used by function inlining, the linker, and avoiding double
usage of the LHS deref chains in ++, *=, and similar operations.
2010-06-23 15:20:29 -07:00
Eric Anholt
02fc4b34e4
Avoid using the same ir_constant 0.0 multiple times in mat constructors.
2010-06-23 15:20:29 -07:00
Kenneth Graunke
bc1097d151
glcpp: Support line continuations within preprocessor directives.
...
Fixes CorrectPreprocess5.frag.
2010-06-23 14:14:57 -07:00
Kenneth Graunke
186e2634bf
glcpp: Make standalone binary use preprocess().
...
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-23 14:14:57 -07:00
Kenneth Graunke
12a820c9d8
glcpp: Fix "dangerous trailing context" warning.
...
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-23 14:14:57 -07:00
Kenneth Graunke
d07bb7b83a
Remove comment support from the main lexer.
...
Now handled by the preprocessor.
2010-06-23 14:14:57 -07:00
Kenneth Graunke
e6ae7afc0c
glcpp: Recognize plain "//" as a comment.
...
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-23 14:14:57 -07:00
Ian Romanick
fa455fc2a5
Generate errors for empty constructors instead of asserting
...
This causes the following tests to pass:
glslparsertest/glsl2/constructor-10.vert
2010-06-23 13:58:34 -07:00
Ian Romanick
3ed850e91c
linker: Update some comments, remove a couple FINISHMEs
2010-06-23 12:18:21 -07:00
Ian Romanick
553dcdcaaf
linker: Use InfoLog in assign_attribute_locations
...
Since the program is now passed in, refactor the parameter list to the
function as well.
2010-06-23 12:14:02 -07:00
Ian Romanick
ed1fe3db3b
linker: Refactor parameters to cross_validate_uniforms
2010-06-23 12:09:14 -07:00
Ian Romanick
f36460e1a7
linker: Write errors to info log instead of stdout
2010-06-23 12:07:22 -07:00
Ian Romanick
0e59b2698a
linker: Initial implementation of varying slot allocation
2010-06-23 11:24:26 -07:00
Ian Romanick
9342d269a4
linker: Limit attribute allocation to MAX_VERTEX_ATTRIBS
2010-06-23 11:24:26 -07:00
Ian Romanick
6984670f97
linker: Support matrix and array vertex inputs
2010-06-23 11:24:26 -07:00
Ian Romanick
0ad22cd1ce
linker: Initial implementation of attribute slot allocation
2010-06-23 11:24:26 -07:00
Ian Romanick
a8ca9cbc69
Import some bits Mesa's mtypes.h
2010-06-23 11:24:26 -07:00
Ian Romanick
4485c5ae78
Import gl_program_parameter and gl_program_parameter_list types from Mesa
2010-06-23 11:24:26 -07:00
Ian Romanick
abee16e8cb
linker: Store the par-linked per-stage shaders in the glsl_program
2010-06-23 11:24:26 -07:00
Ian Romanick
019a59b264
linker: Initial implementation of uniform slot allocation
2010-06-23 11:24:21 -07:00
Ian Romanick
5edf6f98d8
Import gl_uniform and gl_uniform_list types from Mesa
2010-06-23 10:56:04 -07:00
Ian Romanick
8b80e9f9e3
ir_variable: Add query to get number of slots used by a variable
2010-06-23 10:56:04 -07:00
Ian Romanick
57bb893a46
glsl_type: Add method to get number of slots used by a type
2010-06-23 10:56:04 -07:00
Ian Romanick
13e10e43c3
linker: Document what remains to be done
2010-06-23 10:56:04 -07:00
Ian Romanick
ed0626ebc7
ir_variable: Set locations for shader built-in variables
2010-06-23 10:56:03 -07:00
Ian Romanick
69a079aee8
ir_variable: Track the location of uniforms, varings, attributes, etc.
2010-06-23 10:56:03 -07:00
Ian Romanick
371019248e
linker: Initial implementation of interstage input / output validation
2010-06-23 10:56:03 -07:00
Ian Romanick
950ceb2bd6
ir_variable: Add method to get string representing interpolation qualifier
2010-06-23 10:56:03 -07:00
Ian Romanick
cc22c5a544
linker: Initial implementation of interstage uniform validation
2010-06-23 10:56:03 -07:00
Ian Romanick
1e8b7a714e
ir_constant: Add method to determine if two constants have the same value
2010-06-23 10:56:03 -07:00
Eric Anholt
53e48d3f63
Fix multiple usage of an rvalue in constructor component splitting.
...
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-23 10:55:25 -07:00
Ian Romanick
865cf2d1f5
ir_validate: Use callback functionality in ir_hierarchical_visitor
2010-06-23 09:25:33 -07:00
Ian Romanick
7c09576a97
ir_hierarchical_visitor: Add generic callback functionality
2010-06-23 09:25:28 -07:00
Eric Anholt
53cdb7e51d
ir_validate: New pass for checking our invariants.
2010-06-22 18:18:30 -07:00
Eric Anholt
e46a454305
ir: Give ir_instruction a print visitor helper.
...
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-22 18:18:30 -07:00
Eric Anholt
216580dbd7
Hook up texturing in the hierarchical visitor.
2010-06-22 18:18:30 -07:00
Eric Anholt
ac95f2f8c8
Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.
2010-06-22 12:30:55 -07:00
Ian Romanick
b302359394
Add missing build products to gitignore
2010-06-22 12:24:42 -07:00
Kenneth Graunke
1b85c46bcf
glcpp: Initialize error state.
2010-06-21 13:55:12 -07:00