Age | Commit message (Collapse) | Author |
|
|
|
This reverts commit b4d0c0e0ee983ee614b047799c3e01221a353c98.
Now that ir_mat_op_to_vec is landed, this change is no longer needed.
|
|
This will be used by the Mesa IR and likely most HW backends, as it
allows other optimizations to occur that might not otherwise.
Fixes glsl-vs-mat-sub-1, glsl-vs-mat-div-1.
|
|
Most places in the code simply use a static name, which works because
names are never used to look up an ir_variable. generate_temporary is
simply unnecessary (and looks like it would leak memory, and isn't
thread safe...)
|
|
Previously, a register defined at main scope and used in a loop in a
loop could end up getting marked as needed only from the definition
outside of the loops to the end of the inner loop, and we would
cleverly slot in something else in its register in the end of the
outer loop.
Fixes glsl-vs-loop-nested and glsl-fs-loop-nested on glsl2. This
doesn't happen much on master because the original compiler does its
own register allocation, so we find little we can do with linear scan
register (re)allocation.
|
|
It was changed in 2009 and the comment wasn't updated.
|
|
This allows array derefs of matrices now, which makes idr's GLSL demo
happy.
|
|
|
|
This isn't really tested, but didn't break normal vector add/sub.
|
|
|
|
|
|
|
|
|
|
Fixes glsl-vs-texturematrix-1, and glsl-vs-texturematrix-2 on swrast.
|
|
|
|
This allows function inlining making the following tests work even
without function calls implemented:
glsl-fs-functions-2
glsl-fs-functions-3
glsl-vs-functions
glsl-vs-functions-2
glsl-vs-functions-3
glsl-vs-vec4-indexing-5
(Note that those tests were designed to trigger actual function calls,
and this defeats them. However, those testcases ended up catching the
bug in the previous commit.)
|
|
The Mesa IR needs this to support vector indexing correctly, and
hardware backends such as 915 would want this behavior as well.
Fixes glsl-vs-vec4-indexing-2.
|
|
Nothing generates conditional moves yet.
|
|
|
|
|
|
The previous table didn't distinguish gl_Color for the VS and FS, so
we would use the FS's attribute index for the VS and read undefined.
This partially fixes glsl-routing to match its behavior on master.
|
|
|
|
OPCODE_EXP is not to ir_unop_exp what OPCODE_EX2 is to ir_unop_exp2.
It's the weird VP approximation helper opcode. Just implement it with
OPCODE_POW instead.
Fixes glsl-fs-exp.
|
|
The original glsl compiler would generate a.x * b.x + a.y * b.y, which
we would do mul+mul+add for instead of this mul+mac.
Fixes glsl-fs-dot-vec2.
|
|
This is not tested by piglit currently.
|
|
piglit lacks tests for this currently.
|
|
Fixes:
glsl-fs-texture2dproj-bias
glsl-fs-texture2dproj-bias-2
|
|
Fixes:
glsl-fs-texture2dproj
glsl-fs-texture2dproj-2
|
|
Fixes glsl-fs-texture2d-masked.
|
|
With how we generate assignments, the trivial copy propagation in it
is really important, and some drivers will really want the register
allocation, too.
|
|
This results in constant folding of a constant divisor.
|
|
The only optional extension currently supported by the compiler is
GL_EXT_texture_array.
|
|
The only optional extension currently supported by the compiler is
GL_EXT_texture_array.
|
|
|
|
We should now have support for all the expression types we need for
GLSL 1.20.
|
|
This isn't used at the moment, but will be soon.
|
|
This is used by the Mesa IR backend to implement mod, fixing glsl-fs-mod.
|
|
Most backends will prefer seeing this to seeing (a - floor(a)), so
represent it explicitly.
|
|
Fixes glsl-fs-discard-01.
|
|
Fixes glsl-fs-sign, glsl-vs-sign.
|
|
The old compiler didn't use SSG, and instead emitted SGT/SGT/SUB. We
can do a little better for SSG than we do for the SGT series.
|
|
Fixes glsl-fs-step.
|
|
|
|
|
|
Fixes glsl-fs-neg.
|
|
Fixes depth-tex-modes-glsl.
|
|
|
|
Fixes glsl-bug-22603.
|
|
glsl-derivs would add 40.0, 0.0, and 1.0 in order. When we went
looking for 0.0, we'd find it in the second slot of the param, and use
it, but param->Size would still be 1. When we went to add 1.0 and
didn't find it, we'd put allocate it to that second slot and the 0.0
would actualy end up being 1.0.
Fixes glsl-derivs, glsl-deriv-varyings.
|
|
This fixes GetAttribLocation returning VERT_ATTRIB_GENERIC1 instead of 1,
caught by glsl-dlist-getattriblocation.
|