Age | Commit message (Collapse) | Author |
|
This fixes sluggishness in vdrift.
|
|
Previously, code like ivec4(mat2(...)) would fail because the compiler
would naively try to convert a mat2 to an imat2...which doesn't exist.
Now, a separate pass breaks such matrices down to their columns, which
can be converted from vec2 to ivec2.
Fixes piglit tests constructor-11.vert, constructor-14.vert,
constructor-15.vert, and CorrectConstFolding2.frag.
|
|
This has no functional changes.
|
|
This case is already caught by a later check that ensures sufficient
components were provided, based on the type.
|
|
|
|
In particular, with foreach_list_safe, one can remove and free the current
node without crashes; if new nodes are added after the current node,
they will be properly visited as well.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
This pass renames register in order to make it easier for the pair
scheduler to group TEX instructions together.
This fixes fdo bug #28606
|
|
The following instruction sequence will no longer be emitted in separate
TEX blocks:
0: TEX temp[0].xyz, temp[1].xy__, 2D[0];
1: TEX temp[1].xyz, temp[2].xy__, 2D[0];
This fixes fdo bug #25109
|
|
This is a typo fix, the generated code should be the same.
|
|
textures is an array of size PIPE_MAX_VERTEX_SAMPLERS.
|
|
The code to emit an array of OpenGL state vars lacked the code
to handle the gl_TextureMatrix[] array.
Fixes fd.o bug 28967
NOTE: this is a candidate for the 7.8 branch.
|
|
This lets the egl_dri2 driver initialize on just a DRM fd.
|
|
|
|
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...)
|
|
This should fix FDO bugs #28437 and #28625.
|
|
|
|
|
|
When EU executes 'wait' instruction, it stalls and sets notification
register state. Host can issue MMIO write to clear notification
register state to allow EU continue on executing again.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
This came from commit cf255e382d147fe3ca450f0dcec3525190e7dcbc
|
|
|
|
|
|
|
|
Fixes fd.o bug 27216. May also be the root cause of fd.o bug 28950.
We weren't propogating the storage info for the x=foo() expression up
through the IR tree to the inequality expression.
NOTE: This is a candidate for the Mesa 7.8 branch.
|
|
|
|
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.
|
|
Fixes glsl-fs-pointcoord on swrast (remains broken on 965, like master)
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
First, this undoes commit e503af4baa2c709ae5743bb278b277d3faaba076
so we use iround() in lp_build_nearest_mip_level().
Second, in lp_build_sample_general() we need to check if we're sampling
a cube map before anything else. Choose the cube face and then recompute
the partial derivatives of (S,T) with respect to the chosen cube face.
Before, we were using the directional (S,T,R) derivatives to compute
the LOD.
Third, work around an apparent bug in LLVM 2.7 where setting the lod
variable to a const(0) value results in bad x86 code. See comments in
the code.
|
|
Uses of the bits for allocation are offset by 16, and
VERT_BIT_GENERIC0 already has the 16 offset. As a result, it was
preventing the wrong thing from being allocated.
|
|
caught by valgrind.
|
|
rcp of an integer value did not produce the result you're looking for.
Instead, do the a * rcp(b) as float and truncate after. This mostly
fixes glsl-fs-loop-nested.
|
|
|
|
|