summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm
AgeCommit message (Collapse)Author
2010-11-09gallivm: Allocate TEMP/OUT arrays only once.José Fonseca
2010-11-09gallivm: implement indirect addressing of the output registersZack Rusin
2010-11-05gallivm: add const qualifiers, fix comment stringBrian Paul
2010-11-05gallivm: alloca() was called too often for temporary arraysBrian Paul
Need to increment the array index to point to the last value. Before, we were calling lp_build_array_alloca() over and over for no reason.
2010-11-04gallivm: implement execution mask for scatter storesBrian Paul
2010-11-04gallivm: added lp_elem_type()Brian Paul
2010-11-04gallivm: add pixel offsets in scatter storesBrian Paul
We want to do the scatter store to sequential locations in memory for the vector of pixels we're processing in SOA format.
2010-11-04gallivm: added debug code to dump temp registersBrian Paul
2010-11-03gallivm: add some LLVM var labelsBrian Paul
2010-11-03gallivm: implement scatter stores into temp register fileBrian Paul
Something is not quite right, however. The piglit tests mentioned in fd.o bug 31226 still don't pass.
2010-10-28gallivm: always enable LLVMAddInstructionCombiningPass()José Fonseca
2010-10-21gallivm: Silence uninitialized variable warning.Vinson Lee
Fixes this GCC warning. gallivm/lp_bld_tgsi_aos.c: In function 'lp_build_tgsi_aos': gallivm/lp_bld_tgsi_aos.c:516: warning: 'dst0' may be used uninitialized in this function gallivm/lp_bld_tgsi_aos.c:516: note: 'dst0' was declared here
2010-10-21gallivm: Silence uninitialized variable warnings.Vinson Lee
Fixes these GCC warnings. gallivm/lp_bld_sample_aos.c: In function 'lp_build_sample_image_nearest': gallivm/lp_bld_sample_aos.c:271: warning: 't_ipart' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:271: warning: 'r_ipart' may be used uninitialized in this function
2010-10-21gallivm: Silence uninitialized variable warnings.Vinson Lee
Fixes these GCC warnings. gallivm/lp_bld_sample_aos.c: In function 'lp_build_sample_image_linear': gallivm/lp_bld_sample_aos.c:439: warning: 'r_ipart' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:438: warning: 't_ipart' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:438: warning: 't_fpart' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:439: warning: 'r_fpart' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:438: warning: 't_fpart_hi' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:438: warning: 't_fpart_lo' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:439: warning: 'r_fpart_hi' may be used uninitialized in this function gallivm/lp_bld_sample_aos.c:439: warning: 'r_fpart_lo' may be used uninitialized in this function
2010-10-19gallivm: fix incorrect type for zero vector in emit_kilp()Brian Paul
http://bugs.freedesktop.org/show_bug.cgi?id=30974
2010-10-18gallivm: Add a note about SSE4.1's nearest mode rounding.José Fonseca
2010-10-17gallivm: Comment lp_build_insert_new_block().José Fonseca
2010-10-17gallivm: Fix SoA cubemap derivative computation.José Fonseca
Derivatives are now scalar. Broken since 17dbd41cf23e7e7de2f27e5e9252d7f792d932f3.
2010-10-15gallivm: use util_snprintf()Brian Paul
2010-10-15gallivm: added lp_build_load_volatile()Brian Paul
There's no LLVM C LLVMBuildLoadVolatile() function so roll our own. Not used anywhere at this time but can come in handy during debugging.
2010-10-15gallivm: added lp_build_print_vec4()Brian Paul
2010-10-14gallivm: add compile-time option to emit inst addrs and/or line numbersBrian Paul
Disabling address printing is helpful for diffing.
2010-10-13gallivm: More accurate float -> 24bit & 32bit unorm conversion.José Fonseca
2010-10-13gallivm: work-around trilinear mipmap filtering regression with LLVM 2.8Brian Paul
The bug only happens on the AOS / fixed-pt path.
2010-10-13gallivm: Remove unnecessary header.Vinson Lee
2010-10-13gallivm: only use lp_build_conv 4x4f -> 1x16 ub fastpath with sse2Roland Scheidegger
This is relying on lp_build_pack2 using the sse2 pack intrinsics which handle clamping. (Alternatively could have make it use lp_build_packs2 but it might not even produce more efficient code than not using the fastpath in the first place.)
2010-10-12gallivm: remove newlinesBrian Paul
2010-10-13gallivm: fix different handling of [non]normalized coords in linear soa pathRoland Scheidegger
There seems to be no reason for it, so do same math for both (except the scale mul, of course).
2010-10-12gallivm: Name anonymous union.José Fonseca
2010-10-12gallivm: don't branch on KILLs near end of shaderKeith Whitwell
2010-10-11gallivm: More detailed analysis of tgsi shaders.José Fonseca
To allow more optimizations, in particular for direct textures.
2010-10-11gallivm: Eliminate unsigned integer arithmetic from texture coordinates.José Fonseca
SSE support for 32bit and 16bit unsigned arithmetic is not complete, and can easily result in inefficient code. In most cases signed/unsigned doesn't make a difference, such as for integer texture coordinates. So remove uint_coord_type and uint_coord_bld to avoid inefficient operations to sneak in the future.
2010-10-10gallivm: Pass texture coords derivates as scalars.José Fonseca
We end up treating them as scalars in the end, and it saves some instructions.
2010-10-10gallivm: Use variables instead of Phis in loops.José Fonseca
With this commit all explicit Phi emission is now gone.
2010-10-10gallivm: Allow to disable bri-linear filtering with ↵José Fonseca
GALLIVM_DEBUG=no_brilinear runtime option
2010-10-10gallivm: 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-09gallivm: Cleanup the rest of the flow module.José Fonseca
2010-10-09gallivm: Simplify if/then/else implementation.José Fonseca
No need for for a flow stack anymore.
2010-10-09gallivm: Factor out the SI->FP texture size conversion for SoA path tooJosé Fonseca
2010-10-09gallivm: Remove support for Phi generation.José Fonseca
Simply rely on mem2reg pass. It's easier and more reliable.
2010-10-09gallivm: Use varilables instead of Phis for cubemap selection.José Fonseca
2010-10-09gallivm: Don't generate Phis for execution mask.José Fonseca
2010-10-09gallivm: Special bri-linear computation path for unmodified rho.José Fonseca
2010-10-09gallivm: Less code duplication in log computation.José Fonseca
2010-10-09gallivm: Handle code have ret correctly.José Fonseca
Stop disassembling on unconditional backwards jumps.
2010-10-09llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell
Don't branch more than once in quick succession. Don't branch at the end of the shader.
2010-10-09gallivm: simpler uint8->float conversionsKeith Whitwell
LLVM seems to finds it easier to reason about these than our mantissa-manipulation code.
2010-10-09gallivm: prefer blendvb for integer argumentsKeith Whitwell
2010-10-09llvmpipe: store zero into all alloca'd valuesKeith Whitwell
Fixes slowdown in isosurf with earlier versions of llvm.
2010-10-09gallivm: 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.