summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm
AgeCommit message (Collapse)Author
2010-10-08gallivm: Fix copy'n'paste typo in previous commit.José Fonseca
2010-10-08gallivm: Clamp mipmap level and zero mip weight simultaneously.José Fonseca
2010-10-08gallivm: Use lp_build_ifloor_fract for lod computation.José Fonseca
Forgot this one before.
2010-10-08gallivm: Don't compute the second mipmap level when frac(lod) == 0José Fonseca
2010-10-08gallivm: Simplify lp_build_mipmap_level_sizes' interface.José Fonseca
2010-10-08gallivm: Do not do mipfiltering when magnifying.José Fonseca
If lod < 0, then invariably follows that ilevel0 == ilevel1 == 0.
2010-10-07gallivm: Vectorize the rho computation.José Fonseca
2010-10-06gallivm: Compute lod as integer whenever possible.José Fonseca
More accurate/faster results for PIPE_TEX_MIPFILTER_NEAREST. Less FP <-> SI conversion overall.
2010-10-06gallivm: Only apply min/max_lod when necessary.José Fonseca
2010-10-06gallivm: don't apply zero lod_biasKeith Whitwell
2010-10-06gallivm: Combined ifloor & fract helper.José Fonseca
The only way to ensure we don't do redundant FP <-> SI conversions.
2010-10-06gallivm: Fast implementation of iround(log2(x))José Fonseca
Not tested yet, but should be correct.
2010-10-06gallivm: Use a faster (and less accurate) log2 in lod computation.José Fonseca
2010-10-06gallivm: Take the type signedness in consideration in round/ceil/floor.José Fonseca
2010-09-30gallivm: added some commentsBrian Paul
2010-09-30gallivm: check for level=0 case in lp_build_minify()Brian Paul
This lets us avoid the shift and max() operations.
2010-09-30gallivm: More comprehensive border usage logic.José Fonseca
2010-09-29gallivm: Use SSE4.1's ROUNDSS/ROUNDSD for scalar rounding.José Fonseca
2010-09-27llvmpipe: fix swizzling of texture border colorBrian Paul
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.
2010-09-25gallivm: fix repeat() function for NPOT texturesBrian Paul
The trick of casting the coord to an unsigned value only works for POT textures. Add a bias instead. This fixes a few piglit texwrap failures.
2010-09-25gallivm: Remove dead experimental code.José Fonseca
2010-09-25gallivm: Fetch the lod from the dynamic state when min_lod == max_lod.José Fonseca
2010-09-25gallivm: optimize yuv decodingRoland Scheidegger
this is more a proof to show vector shifts on x86 with per-element shift count are evil. Since we can avoid the shift with a single compare/select, use that instead. Replaces more than 20 instructions (and slow ones at that) with about 3, and cuts compiled shader size with mesa's yuvsqure demo by over 10% (no performance measurements done - but selection is blazing fast). Might want to revisit that for future cpus - unfortunately AVX won't have vector shifts neither, but AMD's XOP will, but even in that case using selection here is probably not slower.
2010-09-25gallivm: don't use URem/UDiv when calculating offsets for blocksRoland Scheidegger
While it's true that llvm can and will indeed replace this with bit arithmetic (since block height/width is POT), it does so (llvm 2.7) by element and hence extracts/shifts/reinserts each element individually. This costs about 16 instructions (and extract is not really fast) vs. 1...
2010-09-25gallivm: fix copy&paste bugRoland Scheidegger
looks like pot_depth should be used, not pot_height (found by accident, not verified)
2010-09-24llvmpipe: make texture border_color dynamic stateBrian Paul
2010-09-24llvmpipe: make min/max lod and lod bias dynamic stateBrian Paul
Before, changing any of these sampler values triggered generation of new JIT code. Added a new flag for the special case of min_lod == max_lod which is hit during auto mipmap generation.
2010-09-22gallivm: Add unorm support to lp_build_lerp()José Fonseca
Unfortunately this can cause segfault with LLVM 2.6, if x is a constant.
2010-09-21gallivm: fix lp_build_sample_compare()Brian Paul
The old code didn't really make sense. We only need to compare the X channel of the texture (depth) against the texcoord. For (bi)linear sampling we should move the calls to this function and compute the final result as (s1+s2+s3+s4) * 0.25. Someday. This fixes the glean glsl1 shadow2D() tests. See fd.o bug 29307.
2010-09-20gallivm: remove debug codeBrian Paul
2010-09-17gallivm: added missing case for PIPE_TEXTURE_RECTBrian Paul
Fixes fd.o bug 30245
2010-09-16gallivm: Remove unnecessary header.Vinson Lee
2010-09-16gallivm: fix wrong return value in bitwise functionsBrian Paul
2010-09-16gallivm: Clamp indirect register indices to file_max.José Fonseca
Prevents crashes with bogus data, or bad shader translation.
2010-09-16gallivm: Start collecting bitwise arithmetic helpers in a new module.José Fonseca
2010-09-16gallivm: Fix address register swizzle.José Fonseca
We're actually doing a double swizzling: indirect_reg->Swizzle[indirect_reg->SwizzleX] instead of simply indirect_reg->SwizzleX
2010-09-16gallivm: make lp_build_sample_nop publicKeith Whitwell
2010-09-16gallivm: move i32_vec_type inside the #ifdefBrian Paul
2010-09-16gallivm: fix incorrect vector shuffle datatypeBrian Paul
The permutation vector must always be a vector of int32 values.
2010-09-15gallivm: Remove unnecessary headers.Vinson Lee
2010-09-15gallivm: expand AoS sampling to cover all filtering modesBrian Paul
...and all texture targets (1D/2D/3D/CUBE).
2010-09-14gallivm: Remove unnecessary header.Vinson Lee
2010-09-11gallivm: nr_channels is only valid for formats with plain layout.José Fonseca
This is erroneously throwing non plain formats out of the faster AoS sampling path. Doing 8bit interpolation for single channels such as L8 should be no worse than with floating point. But this may need more investigation.
2010-09-11gallivm: Use const keyword on swizzles.José Fonseca
2010-09-11gallivm: Allow to TGSI AoS translation to happen in BGRA ordering.José Fonseca
Or any ordering.
2010-09-11gallivm: Add a new debug flag to warn about performance issues.José Fonseca
2010-09-11gallivm: Helper functions for pointer indirection.José Fonseca
2010-09-11gallivm: Cleanup the TGSI <-> sampler interface.José Fonseca
2010-09-11gallivm: Add some utility functions to set/get array elements too.José Fonseca
2010-09-11gallivm: Basic AoS TGSI -> LLVM IR.José Fonseca
Essentially a variation of the SoA version.