| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Looking at a vec2 / float codegen, the writemasks on the RCPs were wrong and
the swizzle on the multiply by the RCP results was wrong.
|
|
|
|
| |
Multiply left by 1/right, please.
|
|
|
|
|
| |
This should help prevent Mesa from having to be smart to give
channel-wise drivers better information.
|
| |
|
|
|
|
| |
Fixes the code emitted in a test shader for vec2 texcoord / vec2 tex_size.
|
|
|
|
|
|
|
|
|
|
|
| |
The alloced_vec4/vec4 distinction was an experiment to expose the cost
of temps to the codegen. But the problem is that the temporary
production rule gets called after the emit rule that was using the
temp. We could have the args to emit_op be pointers to where the temp
would get allocated later, but that seems overly hard while just
trying to bring this thing up. Besides, the temps used in expressions
bear only the vaguest relation to how many temps will be used after
register allocation.
|
|
|
|
| |
Regs aren't allocated at the right times yet, so we see TEMP[0] a lot.
|
|
|
|
| |
The destination of assign is in left, not in the node itself.
|
| |
|
|
|
|
|
|
|
|
| |
Ideally this would be hooked up by ir_print_visitor dumping into a
string that we could include as prog_instruction->Comment when in
debug mode, and not try keeping ir_instruction trees around after
conversion to Mesa. The ir_print_visitor isn't set up to do that for
us today.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Later we'll throw them in revision control.
|
|
|
|
|
|
|
| |
There are major missing pieces here. Most operations aren't
supported. Matrices need to be broken down to vector ops before we
get here. Scalar operations (RSQ, RCP) are handled incorrectly.
Arrays and structures are not even considered.
|
| |
|
|
|
|
|
| |
Since variable names are not unique, and we like to make lots of
__retvals and assignment_tmps and a,b,c,d this helps in debugging.
|
| |
|
| |
|
|
|
|
|
| |
Otherwise, dead code elimination gets confused since it relies on
seeing decls.
|
|
|
|
|
| |
I ripped it out with the cloning changes yesterday, and should have
tested and noticed that there were now returns all over.
|
|
|
|
| |
It's (ht, data, key) not (ht, key, data).
|
|
|
|
| |
This wasn't serving any purpose. So delete it.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
As gcc noticed, this function is not currently being used. Good-bye.
|
|
|
|
| |
As gcc noticed, this function is not currently being used. Good-bye.
|
|
|
|
|
| |
Use AH_TOP and AH_BOTTOM macros so that the standard include guard
mechanisms are emitted by autoheader into the generated config.h file.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
One of these was just in a comment. But ther other was in an enum
tag, (which is apparently not being used anywhere yet).
|
|
|
|
| |
Thanks to valgrind for noticing this problem.
|
|
|
|
| |
Fixes CorrectSwizzle3.frag.
|
|
|
|
|
| |
This would fix double-evaluation of assignment RHS expressions,
including possible side effects.
|
| |
|
| |
|
|
|
|
| |
The new cloning code handles them.
|
|
|
|
|
| |
This will be used by function inlining, the linker, and avoiding double
usage of the LHS deref chains in ++, *=, and similar operations.
|
| |
|
|
|
|
| |
Fixes CorrectPreprocess5.frag.
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
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.
|
|
|
|
| |
Now handled by the preprocessor.
|
|
|
|
|
| |
Found in glsl-orangebook-ch06-bump.(frag|vert). This was resulting in
the comments getting passed through to the main compiler's lexer.
|
|
|
|
|
|
| |
This causes the following tests to pass:
glslparsertest/glsl2/constructor-10.vert
|