Age | Commit message (Collapse) | Author |
|
Fixes:
glsl1-varying read but not written
glsl1-varying var mismatch
|
|
This fixes an assertion failure in ir_to_mesa, and the varying won't
take up varying space.
|
|
This is now consistent with other usage of flex/bison througout mesa,
(which is that these generated files are added to source control so
that the build system does not require external tools like flex/bison
for non-developers).
|
|
These are generated files where we can do the sane thing, and keep
them out of version control.
|
|
The mesa build environment does not (currently) accept external
dependencies such as flex and bison. The compromise is to commit the
generated output files, (in spite of the pain that comes from having
generated files under version control).
|
|
I simply forgot to add this file when adding the test case originally.
|
|
|
|
Cleans up some of the FINISHMEs in this file.
|
|
The "%expect 0" construct will make bison emit an error if any future
changes to the grammar introduce shift/reduce conflicts, (without also
increasing the number after "%expect").
|
|
Since we have productions to turn "defined FOO" and "defined ( FOO )"
into a conditional_token we don't need to list DEFINED as an operator
as well. Doing so just introduces the shift/reduce ambiguity with no
benefit.
|
|
Fixes:
glsl1-GLSL 1.20 uniform array constructor
|
|
I managed to revert the change from unlinked at some point while
cleaning up the changes. glsl-fs-raytrace-bug27060 drops from 389
instructions to 370.
|
|
If an undeclared variable was dereferenced in an expression that
needed constant expression handling, we would walk off a null ir->var
pointer.
Fixes:
glsl1-TIntermediate::addUnaryMath
|
|
glsl-fs-raytrace-bug27060 goes from 485 Mesa IR instructions to 389
before Mesa IR optimization.
|
|
If we don't walk into functions, we won't see any usage of variables
in the functions.
|
|
This way, we don't need to pass in a parse state, and the context
doesn't grow with the number of passes through optimization.
|
|
Otherwise, we end up losing structure names after compile time, and
dumping IR often ends up reporting some other mysterious string.
|
|
This cleans up the assembly output of almost all the non-logic tests
glsl-algebraic-*. glsl-algebraic-pow-two needs love (basically,
flattening to a temporary and squaring it).
|
|
|
|
|
|
|
|
Fixes a link-time crash in glsl-vs-cross-3.
|
|
|
|
This pulls in multiple i965 driver fixes which will help ensure better
testing coverage during development, and also gets past the conflicts
of the src/mesa/shader -> src/mesa/program move.
Conflicts:
src/mesa/Makefile
src/mesa/main/shaderapi.c
src/mesa/main/shaderobj.h
|
|
It's supposed to be x - y * floor(x/y), not (x - y) * floor(x/y).
|
|
|
|
|
|
|
|
|
|
Top-level instructions now get NULL as their default type (since type is
irrelevant for things like ir_function), while ir_rvalues get error_type
by default.
This should make it easier to tell if we've forgotten to set a type. It
also fixes some "Conditional jump or move depends on uninitialized
value" errors in valgrind caused by ir_validate examining the type of
top level ir_instructions, which weren't set.
|
|
Assignments can only exist at the top level instruction stream; the
residual value is handled by assigning the value to a temporary and
returning an ir_dereference_variable of that temporary.
|
|
ir_to_mesa was updated for the _mesa_glsl_parse_state constructor
changes, but main.cpp was not.
|
|
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.
|
|
It's really hard to believe that this case has been broken, but apparently
no test previously exercised it. So this commit adds such a test and fixes
it by making a copy of the argument token-list before expanding it.
This fix causes the following glean tests to now pass:
glsl1-Preprocessor test 6 (#if 0, #define macro)
glsl1-Preprocessor test 7 (multi-line #define)
|
|
Kind of missing the point to only do the side effects if the LHS
evaluates as true.
Fixes:
glsl1-|| operator, short-circuit
|
|
|
|
|
|
|
|
Fixes:
draw_buffers-08.frag
draw_buffers-09.frag
glsl-vs-texturematrix-2
|
|
If we put the protos in separate ir_functions, they wouldn't be found
at lookup time for linking.
Fixes:
glsl-fs-texture2d-bias
glsl-fs-texture2dproj-bias
glsl-fs-texture2dproj-bias-2
glsl-lod-bias
glsl1-texture2D(), computed coordinate
|
|
Previously, the compiler expected the result of the multiplication to
be of the same type as the vector. This is correct for square
matrices, but wrong for all others.
We fix this by instead expecting a vector with the same number of rows
as the matrix (for the case of M*v with a column vector) or the same
number of columns as the matrix (for v*M with a row vector).
This fix causes the following four glean tests to now pass:
glsl1-mat4x2 * vec4
glsl1-vec2 * mat4x2 multiply
glsl1-vec3 * mat4x3 multiply
glsl1-vec4 * mat3x4 multiply
|
|
Previously, we'd constant-fold up a value of vec4(1.0 - arg2, 0, 0, 0).
Fixes:
glsl1-mix(vec4) function
|
|
Instead, just use the incoming sampler param. Fixes many texture-using
piglit tests since the linker rework.
|
|
Fixes:
glsl1-for-loop with continue
Bug #29097
|
|
|
|
Piglit parser tests const-array-03.frag and const-array-04.frag now
generate the correct code.
|
|
Fixes piglit test const-array-02.frag.
|
|
|
|
|
|
The IR reader does not expect commas.
|