Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-10-09 | gallivm: more linear tex wrap mode calculation simplification | Roland Scheidegger | |
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. | |||
2010-10-09 | gallivm: optimize some tex wrap mode calculations a bit | Roland Scheidegger | |
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. | |||
2010-10-09 | gallivm: replace sub/floor/ifloor combo with ifloor_fract | Roland Scheidegger | |
2010-10-09 | gallivm: faster iround implementation for sse2 | Roland Scheidegger | |
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. | |||
2010-10-09 | gallivm: fix trunc/itrunc comment | Roland Scheidegger | |
trunc of -1.5 is -1.0 not 1.0... | |||
2010-10-08 | gallivm: Remove unnecessary header. | Vinson Lee | |
2010-10-08 | gallivm: Help for combined extraction and broadcasting. | José Fonseca | |
Doesn't change generated code quality, but saves some typing. | |||
2010-10-08 | llvmpipe: First minify the texture size, then broadcast. | José Fonseca | |
2010-10-08 | gallivm: Move into the as much of the second level code as possible. | José Fonseca | |
Also, pass more stuff trhough the sample build context, instead of arguments. | |||
2010-10-08 | gallivm: Warn when doing inefficient integer comparisons. | José Fonseca | |
2010-10-08 | gallivm: round rather than truncate in new 4x4f->1x16ub conversion path | Keith Whitwell | |
2010-10-08 | gallivm: Use the wrappers for SSE pack intrinsics. | José Fonseca | |
Fixes assertion failures on LLVM 2.6. | |||
2010-10-08 | gallivm: special case conversion 4x4f to 1x16ub | Keith Whitwell | |
Nice reduction in the number of operations required for final color output in many shaders. | |||
2010-10-08 | gallivm: Implement brilinear filtering. | José Fonseca | |
2010-10-08 | gallivm: Fix copy'n'paste typo in previous commit. | José Fonseca | |
2010-10-08 | gallivm: Clamp mipmap level and zero mip weight simultaneously. | José Fonseca | |
2010-10-08 | gallivm: Use lp_build_ifloor_fract for lod computation. | José Fonseca | |
Forgot this one before. | |||
2010-10-08 | gallivm: Don't compute the second mipmap level when frac(lod) == 0 | José Fonseca | |
2010-10-08 | gallivm: Simplify lp_build_mipmap_level_sizes' interface. | José Fonseca | |
2010-10-08 | gallivm: Do not do mipfiltering when magnifying. | José Fonseca | |
If lod < 0, then invariably follows that ilevel0 == ilevel1 == 0. | |||
2010-10-07 | gallivm: Vectorize the rho computation. | José Fonseca | |
2010-10-06 | gallivm: Compute lod as integer whenever possible. | José Fonseca | |
More accurate/faster results for PIPE_TEX_MIPFILTER_NEAREST. Less FP <-> SI conversion overall. | |||
2010-10-06 | gallivm: Only apply min/max_lod when necessary. | José Fonseca | |
2010-10-06 | gallivm: don't apply zero lod_bias | Keith Whitwell | |
2010-10-06 | gallivm: Combined ifloor & fract helper. | José Fonseca | |
The only way to ensure we don't do redundant FP <-> SI conversions. | |||
2010-10-06 | gallivm: Fast implementation of iround(log2(x)) | José Fonseca | |
Not tested yet, but should be correct. | |||
2010-10-06 | gallivm: Use a faster (and less accurate) log2 in lod computation. | José Fonseca | |
2010-10-06 | gallivm: Take the type signedness in consideration in round/ceil/floor. | José Fonseca | |
2010-09-30 | gallivm: added some comments | Brian Paul | |
2010-09-30 | gallivm: check for level=0 case in lp_build_minify() | Brian Paul | |
This lets us avoid the shift and max() operations. | |||
2010-09-30 | gallivm: More comprehensive border usage logic. | José Fonseca | |
2010-09-29 | gallivm: Use SSE4.1's ROUNDSS/ROUNDSD for scalar rounding. | José Fonseca | |
2010-09-27 | llvmpipe: fix swizzling of texture border color | Brian 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-25 | gallivm: fix repeat() function for NPOT textures | Brian 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-25 | gallivm: Remove dead experimental code. | José Fonseca | |
2010-09-25 | gallivm: Fetch the lod from the dynamic state when min_lod == max_lod. | José Fonseca | |
2010-09-25 | gallivm: optimize yuv decoding | Roland 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-25 | gallivm: don't use URem/UDiv when calculating offsets for blocks | Roland 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-25 | gallivm: fix copy&paste bug | Roland Scheidegger | |
looks like pot_depth should be used, not pot_height (found by accident, not verified) | |||
2010-09-24 | llvmpipe: make texture border_color dynamic state | Brian Paul | |
2010-09-24 | llvmpipe: make min/max lod and lod bias dynamic state | Brian 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-22 | gallivm: 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-21 | gallivm: 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-20 | gallivm: remove debug code | Brian Paul | |
2010-09-17 | gallivm: added missing case for PIPE_TEXTURE_RECT | Brian Paul | |
Fixes fd.o bug 30245 | |||
2010-09-16 | gallivm: Remove unnecessary header. | Vinson Lee | |
2010-09-16 | gallivm: fix wrong return value in bitwise functions | Brian Paul | |
2010-09-16 | gallivm: Clamp indirect register indices to file_max. | José Fonseca | |
Prevents crashes with bogus data, or bad shader translation. | |||
2010-09-16 | gallivm: Start collecting bitwise arithmetic helpers in a new module. | José Fonseca | |
2010-09-16 | gallivm: 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 |