Age | Commit message (Collapse) | Author |
|
Much more convenient than boolean arrays.
|
|
|
|
This, plus the previous commit fix fd.o bug 29806.
|
|
|
|
By default LLVM adds a signal handler to output a pretty stack trace.
This signal handler is never removed, causing problems when unloading
the shared object where the gallium driver resides.
Thanks to Chris Li for finding this.
|
|
|
|
The result is scalar, so when argument is zero/undef we can pass vector
zero/undef.
Also, support the scalar case.
|
|
The function was duplicated.
|
|
Include p_format.h for enum pipe_format symbol.
|
|
Include p_compiler.h for boolean symbol.
|
|
See comments for detailed rationale.
Thanks to Michal Krol and Zack Rusin for detecting and investigating this
in detail.
|
|
Searched for them with:
git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D'
Behavior hasn't been changed.
|
|
Doesn't fix anything, as those indices were both always 0.
|
|
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
|
|
This logic duplicates the one in p_config.h, so remove it and adjust
the only two places that were using it.
|
|
It causes a very ugly corruption on the Earth's halo on Google Earth.
|
|
Thanks to Michal for spotting this.
|
|
Single divide, so let lp_build_div decide how to implement this.
This will save a multiplication in architectures which don't have
a RCP intrinsic.
|
|
Texture dimensions are unsigned.
|
|
Since there's no SSE instruction for this case, fall through to the
generic shuffle code.
Fixes bug fd.o 29468.
|
|
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
|
|
It didn't exist yet.
|
|
This fixes the assert added in LLVM 2.8:
assert(getType()->isIntOrIntVectorTy() &&
"Tried to create an integer operation on a non-integer type!")
But it also fixes some subtle bugs, since we should've been doing this
since LLVM 2.6 anyway.
Includes a modified patch from steckdenis@yahoo.fr for the
FNeg instructions in emit_fetch(); thanks for pointing those out.
http://bugs.freedesktop.org/29404
http://bugs.freedesktop.org/29407
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
|
|
See:
http://bugs.freedesktop.org/29407
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 5f90e76c54bbf4456c977b3cbca450d7a570179e.
Bad cherry-pick.
|
|
If y==NULL and y_stride==NULL it means the texture is 1D. Return
zero for out_i and the offset instead of garbage.
|
|
Unfortunately LLVM doesn't emit EMMS itself, and there is no
easy/effective way to disable MMX.
http://llvm.org/bugs/show_bug.cgi?id=3287
|
|
When
(mask & a) | (~mask & b)
is meant instead of
mask ? a : b
|
|
Instead of one big boolean indicating indirect addressing, use a
bitfield indicating which register files are accessed with indirect
addressing.
Most shaders that use indirect addressing only use it to access the
constant buffer. So no need to use an array for temporary registers
in this case.
|
|
|
|
|
|
|
|
|
|
As with indexing the const buffer, the ADDR reg may have totally
different values for each element. Need to use a gather operation.
|
|
|
|
|
|
The previous code assumed that all elements of the address register
were the same. But it can vary from pixel to pixel or vertex to
vertex so we must use a gather operation when dynamically indexing
the constant buffer.
Still need to fix this for the temporary register file...
|
|
|
|
|
|
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.
|
|
|