Age | Commit message (Collapse) | Author |
|
Only requires sse2 now.
|
|
Clamp against 0 instead of -0.5, which simplifies things.
The former version would have resulted in both int coords being zero
(in case of coord being smaller than 0) and some "unused" weight value,
whereas now the int coords will be 0 and 1, but weight will be 0, hence the
lerp should produce the same value.
Still not happy about differences between normalized and non-normalized...
|
|
Haven't looked at what code this exactly generates but URem can't be fast.
Instead of using two URem only use one and replace the second one with
select/add (this is what the corresponding aos code already does).
|
|
Rearrange order of operations a bit to make some clamps easier.
All calculations should be equivalent.
Note there seems to be some inconsistency in the clamp to edge case
wrt normalized/non-normalized coords, could potentially simplify this too.
|
|
Sometimes coords are clamped to positive numbers before doing conversion
to int, or clamped to 0 afterwards, in this case can use itrunc
instead of ifloor which is easier. This is only the case for nearest
calculations unfortunately, except linear MIRROR_CLAMP_TO_EDGE which
for the same reason can use a unsigned float build context so the
ifloor_fract helper can reduce this to itrunc in the ifloor helper itself.
|
|
|
|
sse2 supports round to nearest directly (or rather, assuming default nearest
rounding mode in MXCSR). Use intrinsic to use this rather than round (sse41)
or bit manipulation whenever possible.
|
|
trunc of -1.5 is -1.0 not 1.0...
|
|
|
|
Doesn't change generated code quality, but saves some typing.
|
|
|
|
Also, pass more stuff trhough the sample build context, instead of
arguments.
|
|
|
|
|
|
Fixes assertion failures on LLVM 2.6.
|
|
Nice reduction in the number of operations required for final color
output in many shaders.
|
|
|
|
|
|
|
|
Forgot this one before.
|
|
|
|
|
|
If lod < 0, then invariably follows that ilevel0 == ilevel1 == 0.
|
|
|
|
- Handle PIPE_FORMAT_Z32_FLOAT packing correctly.
- In the integer version z shouldn't be passed as as double.
- Make it clear that the integer versions should only be used for masks.
- Make integer type sizes explicit (uint32_t for now, although
uint64_t will be necessary later to encode f32_s8_x24).
|
|
More accurate/faster results for PIPE_TEX_MIPFILTER_NEAREST. Less
FP <-> SI conversion overall.
|
|
|
|
|
|
The only way to ensure we don't do redundant FP <-> SI conversions.
|
|
Not tested yet, but should be correct.
|
|
|
|
|
|
we weren't decreasing when removing from the list.
|
|
If we assume busy buffers are added to the list in order its unlikely
we'd fine one after the first busy one that isn't busy.
|
|
|
|
http://bugs.freedesktop.org/show_bug.cgi?id=30516
|
|
|
|
This reverts commit 5f66b340aa49c6bc8d0acb2d1a6f8e9a7ef2cb2e, quickly
fixing 30514.
|
|
|
|
Really old gcc's (3.3, at least) don't have support for the
intrinsics we need. This implements a fallback for that case.
|
|
This lets us avoid the shift and max() operations.
|
|
|
|
Remove duplicated include.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
Remove duplicated include.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
|
|
Fixes a regression caused from the change to make min/max lod dynamic
state.
https://bugs.freedesktop.org/show_bug.cgi?id=30437
|
|
Corrections in store_clip to store clip coordinates in AoS form.
Viewport & cliptest flag options based on variant key.
Put back draw_pt_post_vs and now 2 paths based on whether clipping
occurs or not.
|
|
Cliptesting now done at the end of vs in draw_llvm instead of
draw_pt_post_vs.
Added viewport mapping transformation and further cliptesting to
vertex shader in draw_llvm.c
Alternative path where vertex header setup, clip coordinates store,
cliptesting and viewport mapping are done earlier in the vertex
shader.
Still need to hook this up properly according to the return value of
"draw_llvm_shader" function.
|
|
The pipe_sampler_view's swizzle terms also apply to the texture border
color. Simply move the apply_sampler_swizzle() call after we fetch
the border color.
Fixes many piglit texwrap failures.
|
|
|