Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-10-10 | gallivm: Fix a long standing bug with nested if-then-else emission. | José Fonseca | |
We can't patch true-block at end-if time, as there is no guarantee that the block at the beginning of the true stanza is the same at the end of the true stanza -- other control flow elements may have been emitted half way the true stanza. Although this bug surfaced recently with the commit to skip mip filtering when lod is an integer the bug was always there, although probably it was avoided until now: e.g., cubemap selection nests if-then-else on the else stanza, which does not suffer from the same problem. | |||
2010-10-09 | gallivm: Cleanup the rest of the flow module. | José Fonseca | |
2010-10-09 | gallivm: Simplify if/then/else implementation. | José Fonseca | |
No need for for a flow stack anymore. | |||
2010-10-09 | gallivm: Factor out the SI->FP texture size conversion for SoA path too | José Fonseca | |
2010-10-09 | gallivm: Remove support for Phi generation. | José Fonseca | |
Simply rely on mem2reg pass. It's easier and more reliable. | |||
2010-10-09 | gallivm: Use varilables instead of Phis for cubemap selection. | José Fonseca | |
2010-10-09 | gallivm: Don't generate Phis for execution mask. | José Fonseca | |
2010-10-09 | gallivm: Special bri-linear computation path for unmodified rho. | José Fonseca | |
2010-10-09 | gallivm: Less code duplication in log computation. | José Fonseca | |
2010-10-09 | gallivm: Handle code have ret correctly. | José Fonseca | |
Stop disassembling on unconditional backwards jumps. | |||
2010-10-09 | llvmpipe: try to be sensible about whether to branch after mask updates | Keith Whitwell | |
Don't branch more than once in quick succession. Don't branch at the end of the shader. | |||
2010-10-09 | gallivm: simpler uint8->float conversions | Keith Whitwell | |
LLVM seems to finds it easier to reason about these than our mantissa-manipulation code. | |||
2010-10-09 | gallivm: prefer blendvb for integer arguments | Keith Whitwell | |
2010-10-09 | llvmpipe: store zero into all alloca'd values | Keith Whitwell | |
Fixes slowdown in isosurf with earlier versions of llvm. | |||
2010-10-09 | gallivm: Do size computations simultanously for all dimensions (AoS). | José Fonseca | |
Operate simultanouesly on <width, height, depth> vector as much as possible, instead of doing the operations on vectors with broadcasted scalars. Also do the 24.8 fixed point scalar with integer shift of the texture size, for unnormalized coordinates. AoS path only for now -- the same thing can be done for SoA. | |||
2010-10-09 | gallivm: make use of new iround code in lp_bld_conv. | Roland Scheidegger | |
Only requires sse2 now. | |||
2010-10-09 | gallivm: optimize soa linear clamp to edge wrap mode a bit | Roland Scheidegger | |
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... | |||
2010-10-09 | gallivm: avoid unnecessary URem in linear wrap repeat case | Roland Scheidegger | |
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). | |||
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 | |