Carl Worth
c42e64099b
preprocessor: Initialize a potentially uninitialized variable.
My current reading of the relevant static functions suggests that last
is never used without being uninitialized, (we only use it if the
expansion function returned non-NULL and the expansion functions
always set it before returning non-NULL).
Apparently gcc isn't coming to the same conclusion. Initializing this
to NULL nicely quites gcc and will guarantee a nice, early segfault if
my anaylsis turns out to be wrong.
il y a 15 ans
Carl Worth
726faddda2
preprocessor: Remove dead code _token_list_length
As gcc noticed, this function is not currently being used. Good-bye.
il y a 15 ans
Carl Worth
45cbc08438
preprocessor: Remove dead code _string_list_append_list
As gcc noticed, this function is not currently being used. Good-bye.
il y a 15 ans
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.
il y a 15 ans
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.
il y a 15 ans
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).
il y a 15 ans
Carl Worth
7fd7104fbb
ir_variable: Add some missing initialization to the constructor.
Thanks to valgrind for noticing this problem.
il y a 15 ans
Eric Anholt
a9d58ad6c9
Fix double usage of the post-inc/dec's temporary pre-inc/dec copy.
Fixes CorrectSwizzle3.frag.
il y a 15 ans
Eric Anholt
2731a739d0
Avoid using the RHS of an assignment twice.
This would fix double-evaluation of assignment RHS expressions,
including possible side effects.
il y a 15 ans
Eric Anholt
959a9ecdd8
get_lvalue_copy doesn't need all the checking of do_assignment().
il y a 15 ans
Eric Anholt
3e24ef68a9
ast_to_hir: Clone LHS derefs of assignment expressions.
il y a 15 ans
Eric Anholt
8006576b36
ir_function_inlining: Allow inlining of loops and conditionals.
The new cloning code handles them.
il y a 15 ans
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.
il y a 15 ans
Eric Anholt
02fc4b34e4
Avoid using the same ir_constant 0.0 multiple times in mat constructors.
il y a 15 ans
Kenneth Graunke
bc1097d151
glcpp: Support line continuations within preprocessor directives.
Fixes CorrectPreprocess5.frag.
il y a 15 ans
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).
il y a 15 ans
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.
il y a 15 ans
Kenneth Graunke
d07bb7b83a
Remove comment support from the main lexer.
Now handled by the preprocessor.
il y a 15 ans
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.
il y a 15 ans
Ian Romanick
fa455fc2a5
Generate errors for empty constructors instead of asserting
This causes the following tests to pass:
glslparsertest/glsl2/constructor-10.vert
il y a 15 ans
Ian Romanick
3ed850e91c
linker: Update some comments, remove a couple FINISHMEs
il y a 15 ans
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.
il y a 15 ans
Ian Romanick
ed1fe3db3b
linker: Refactor parameters to cross_validate_uniforms
il y a 15 ans
Ian Romanick
f36460e1a7
linker: Write errors to info log instead of stdout
il y a 15 ans
Ian Romanick
0e59b2698a
linker: Initial implementation of varying slot allocation
il y a 15 ans
Ian Romanick
9342d269a4
linker: Limit attribute allocation to MAX_VERTEX_ATTRIBS
il y a 15 ans
Ian Romanick
6984670f97
linker: Support matrix and array vertex inputs
il y a 15 ans
Ian Romanick
0ad22cd1ce
linker: Initial implementation of attribute slot allocation
il y a 15 ans
Ian Romanick
a8ca9cbc69
Import some bits Mesa's mtypes.h
il y a 15 ans
Ian Romanick
4485c5ae78
Import gl_program_parameter and gl_program_parameter_list types from Mesa
il y a 15 ans
Ian Romanick
abee16e8cb
linker: Store the par-linked per-stage shaders in the glsl_program
il y a 15 ans
Ian Romanick
019a59b264
linker: Initial implementation of uniform slot allocation
il y a 15 ans
Ian Romanick
5edf6f98d8
Import gl_uniform and gl_uniform_list types from Mesa
il y a 15 ans
Ian Romanick
8b80e9f9e3
ir_variable: Add query to get number of slots used by a variable
il y a 15 ans
Ian Romanick
57bb893a46
glsl_type: Add method to get number of slots used by a type
il y a 15 ans
Ian Romanick
13e10e43c3
linker: Document what remains to be done
il y a 15 ans
Ian Romanick
ed0626ebc7
ir_variable: Set locations for shader built-in variables
il y a 15 ans
Ian Romanick
69a079aee8
ir_variable: Track the location of uniforms, varings, attributes, etc.
il y a 15 ans
Ian Romanick
371019248e
linker: Initial implementation of interstage input / output validation
il y a 15 ans
Ian Romanick
950ceb2bd6
ir_variable: Add method to get string representing interpolation qualifier
il y a 15 ans
Ian Romanick
cc22c5a544
linker: Initial implementation of interstage uniform validation
il y a 15 ans
Ian Romanick
1e8b7a714e
ir_constant: Add method to determine if two constants have the same value
il y a 15 ans
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>
il y a 15 ans
Ian Romanick
865cf2d1f5
ir_validate: Use callback functionality in ir_hierarchical_visitor
il y a 15 ans
Ian Romanick
7c09576a97
ir_hierarchical_visitor: Add generic callback functionality
il y a 15 ans
Eric Anholt
53cdb7e51d
ir_validate: New pass for checking our invariants.
il y a 15 ans
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.
il y a 15 ans
Eric Anholt
216580dbd7
Hook up texturing in the hierarchical visitor.
il y a 15 ans
Eric Anholt
ac95f2f8c8
Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.
il y a 15 ans
Ian Romanick
b302359394
Add missing build products to gitignore
il y a 15 ans