summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/gallivm
Commit message (Collapse)AuthorAgeFilesLines
* gallivm: implement indirect addressing over inputsZack Rusin2010-11-101-3/+64
| | | | | | | Instead of messing with the callers simply copy our inputs into a alloca array at the beginning of the function and then use it. Reviewed-by: José Fonseca <[email protected]>
* gallivm: Allocate TEMP/OUT arrays only once.José Fonseca2010-11-091-36/+23
|
* gallivm: implement indirect addressing of the output registersZack Rusin2010-11-091-5/+105
|
* gallivm: add const qualifiers, fix comment stringBrian Paul2010-11-051-4/+4
|
* gallivm: alloca() was called too often for temporary arraysBrian Paul2010-11-051-0/+2
| | | | | | 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.
* gallivm: implement execution mask for scatter storesBrian Paul2010-11-041-7/+34
|
* gallivm: added lp_elem_type()Brian Paul2010-11-042-0/+20
|
* gallivm: add pixel offsets in scatter storesBrian Paul2010-11-041-2/+18
| | | | | We want to do the scatter store to sequential locations in memory for the vector of pixels we're processing in SOA format.
* gallivm: added debug code to dump temp registersBrian Paul2010-11-041-0/+51
|
* gallivm: add some LLVM var labelsBrian Paul2010-11-031-6/+6
|
* gallivm: implement scatter stores into temp register fileBrian Paul2010-11-031-4/+47
| | | | | Something is not quite right, however. The piglit tests mentioned in fd.o bug 31226 still don't pass.
* gallivm: always enable LLVMAddInstructionCombiningPass()José Fonseca2010-10-281-7/+1
|
* gallivm: Silence uninitialized variable warning.Vinson Lee2010-10-211-1/+1
| | | | | | | 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
* gallivm: Silence uninitialized variable warnings.Vinson Lee2010-10-211-1/+1
| | | | | | | 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
* gallivm: Silence uninitialized variable warnings.Vinson Lee2010-10-211-2/+2
| | | | | | | | | | | | | 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
* gallivm: fix incorrect type for zero vector in emit_kilp()Brian Paul2010-10-191-1/+2
| | | | http://bugs.freedesktop.org/show_bug.cgi?id=30974
* gallivm: Add a note about SSE4.1's nearest mode rounding.José Fonseca2010-10-181-0/+6
|
* gallivm: Comment lp_build_insert_new_block().José Fonseca2010-10-171-0/+8
|
* gallivm: Fix SoA cubemap derivative computation.José Fonseca2010-10-171-4/+4
| | | | | | Derivatives are now scalar. Broken since 17dbd41cf23e7e7de2f27e5e9252d7f792d932f3.
* gallivm: use util_snprintf()Brian Paul2010-10-151-1/+2
|
* gallivm: added lp_build_load_volatile()Brian Paul2010-10-152-0/+16
| | | | | There's no LLVM C LLVMBuildLoadVolatile() function so roll our own. Not used anywhere at this time but can come in handy during debugging.
* gallivm: added lp_build_print_vec4()Brian Paul2010-10-152-0/+24
|
* gallivm: add compile-time option to emit inst addrs and/or line numbersBrian Paul2010-10-141-3/+10
| | | | Disabling address printing is helpful for diffing.
* gallivm: More accurate float -> 24bit & 32bit unorm conversion.José Fonseca2010-10-131-40/+86
|
* gallivm: work-around trilinear mipmap filtering regression with LLVM 2.8Brian Paul2010-10-131-0/+20
| | | | The bug only happens on the AOS / fixed-pt path.
* gallivm: Remove unnecessary header.Vinson Lee2010-10-131-1/+0
|
* gallivm: only use lp_build_conv 4x4f -> 1x16 ub fastpath with sse2Roland Scheidegger2010-10-131-19/+5
| | | | | | | | 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.)
* gallivm: remove newlinesBrian Paul2010-10-121-2/+0
|
* gallivm: fix different handling of [non]normalized coords in linear soa pathRoland Scheidegger2010-10-131-16/+6
| | | | | There seems to be no reason for it, so do same math for both (except the scale mul, of course).
* gallivm: Name anonymous union.José Fonseca2010-10-122-7/+7
|
* gallivm: don't branch on KILLs near end of shaderKeith Whitwell2010-10-121-10/+47
|
* gallivm: More detailed analysis of tgsi shaders.José Fonseca2010-10-112-0/+557
| | | | To allow more optimizations, in particular for direct textures.
* gallivm: Eliminate unsigned integer arithmetic from texture coordinates.José Fonseca2010-10-113-42/+32
| | | | | | | | | | | 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.
* gallivm: Pass texture coords derivates as scalars.José Fonseca2010-10-104-26/+38
| | | | | We end up treating them as scalars in the end, and it saves some instructions.
* gallivm: Use variables instead of Phis in loops.José Fonseca2010-10-102-42/+23
| | | | With this commit all explicit Phi emission is now gone.
* gallivm: Allow to disable bri-linear filtering with ↵José Fonseca2010-10-103-9/+10
| | | | GALLIVM_DEBUG=no_brilinear runtime option
* gallivm: Fix a long standing bug with nested if-then-else emission.José Fonseca2010-10-101-17/+6
| | | | | | | | | | | | 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.
* gallivm: Cleanup the rest of the flow module.José Fonseca2010-10-092-201/+37
|
* gallivm: Simplify if/then/else implementation.José Fonseca2010-10-095-91/+34
| | | | No need for for a flow stack anymore.
* gallivm: Factor out the SI->FP texture size conversion for SoA path tooJosé Fonseca2010-10-091-34/+56
|
* gallivm: Remove support for Phi generation.José Fonseca2010-10-092-221/+0
| | | | Simply rely on mem2reg pass. It's easier and more reliable.
* gallivm: Use varilables instead of Phis for cubemap selection.José Fonseca2010-10-091-36/+26
|
* gallivm: Don't generate Phis for execution mask.José Fonseca2010-10-092-8/+25
|
* gallivm: Special bri-linear computation path for unmodified rho.José Fonseca2010-10-091-20/+91
|
* gallivm: Less code duplication in log computation.José Fonseca2010-10-092-35/+88
|
* gallivm: Handle code have ret correctly.José Fonseca2010-10-091-2/+4
| | | | Stop disassembling on unconditional backwards jumps.
* llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell2010-10-093-6/+14
| | | | | Don't branch more than once in quick succession. Don't branch at the end of the shader.
* gallivm: simpler uint8->float conversionsKeith Whitwell2010-10-091-0/+10
| | | | | LLVM seems to finds it easier to reason about these than our mantissa-manipulation code.
* gallivm: prefer blendvb for integer argumentsKeith Whitwell2010-10-091-2/+4
|
* llvmpipe: store zero into all alloca'd valuesKeith Whitwell2010-10-091-0/+1
| | | | Fixes slowdown in isosurf with earlier versions of llvm.