Age | Commit message (Collapse) | Author |
|
This is a work-around for an apparent bug in LLVM seen with piglit's
glsl-vs-sqrt-zero test.
|
|
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
|
|
|
|
Chances are, if one fragment looped badly, others will too, and
debugging output gets overwhelmed by the looping complaints.
|
|
|
|
|
|
Fixes glsl-vs-point-size.
|
|
This has confused me twice now. It's a fixed width of 4 (usually a
region description of <4,4,1>), not 1. If it was 1, we'd have been
skipping all over register space.
|
|
|
|
|
|
This supersedes http://lists.freedesktop.org/archives/mesa-dev/2010-July/001442.html.
|
|
Fixes a segfault in Regnum Online.
|
|
The ARL value is increments of vec4 in the register file. But
PROGRAM_TEMPORARY or PROGRAM_INPUT are stored as vec4s interleaved
between the two verts being executed (thus a vec8 each), compared to
PROGRAM_STATE_VAR being packed vec4s.
Fixes:
glsl-vs-arrays-2
glsl-vs-mov-after-deref
(without regressing glsl-vs-arrays-3)
|
|
|
|
The previous support was overly complicated by trying to use the same
1-OWORD message for both offsets.
|
|
|
|
|
|
Otherwise, the second half isn't written, and we end up reading back
black.
Fixes the remaining junk drawn in glsl-max-varyings, and will likely
help with a number of large real-world shaders.
|
|
They go into the render cache, so while we don't care about their
contents after execution, failing to note them could cause the writes
to be flushed over important buffer contents later.
|
|
|
|
Otherwise, the subsequent read may not get the written value.
|
|
|
|
|
|
|
|
|
|
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.
|
|
Since GLSL permits arrays of structures, we need to store each element
as an ir_constant*, not just ir_constant_data.
Fixes parser tests const-array-01.frag, const-array-03.frag,
const-array-04.frag, const-array-05.frag, though 03 and 04 generate the
wrong code.
|
|
|
|
Implicit conversions were not being performed, nor was there any
type checking - it was possible to have, say, var->type == float
and var->constant_value->type == int. Later use of the constant
expression would trigger an assertion.
Fixes piglit test const-implicit-conversion.frag.
|
|
Also make ir_unop_i2f only operate on signed integers.
|
|
The ir_constant::has_value method already does this.
|
|
|
|
|
|
This is an invasive set of changes. Each user shader tracks a set of other
shaders that contain built-in functions. During compilation, function
prototypes are imported from these shaders. During linking, the
shaders are linked with these built-in-function shaders just like with
any other shader.
|
|
|
|
And remove checks of surface depth bits. The state tracker should
not turn on depth/stencil testing if the framebuffer doesn't have
depth/stencil.
|
|
|
|
glx_info is used if X_DRI2SwapBuffers is defined
This reverts commit c0ca2bfb2ad8cf7fb9d756b5ae52cb77236ff605.
|
|
This configure some of the value properly based on
asic so others asic than RV710 works too.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
|
|
some of the ALU instructions are different on r6xx vs r7xx,
separate the alu translation to separate files, and use family
to pick which compile stage to use.
|
|
allow pipe driver to get the family of the gpu.
|
|
The other drivers just return 0 without the assert.
|