summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
AgeCommit message (Collapse)Author
2011-01-15Merge branch 'draw-instanced'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_llvm.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/glsl/ir_set_program_inouts.cpp src/mesa/tnl/t_vb_program.c
2010-12-08gallivm/llvmpipe: implement system values and instanceIDBrian Paul
2010-12-03gallivm: fix null builder pointersBrian Paul
2010-12-02gallivm/llvmpipe: remove lp_build_context::builderBrian Paul
The field was redundant. Use the gallivm->builder value instead.
2010-11-30gallivm/llvmpipe: squash merge of the llvm-context branchBrian Paul
This branch defines a gallivm_state structure which contains the LLVMBuilderRef, LLVMContextRef, etc. All data structures built with this object can be periodically freed during a "garbage collection" operation. The gallivm_state object has to be passed to most of the builder functions where LLVMBuilderRef used to be used. Conflicts: src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c src/gallium/drivers/llvmpipe/lp_state_setup.c
2010-11-30gallivm: fix storing of the addr registerZack Rusin
we store into the index specified by the register index, not an indirect register.
2010-11-10gallivm: implement indirect addressing over inputsZack Rusin
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 <jfonseca@vmware.com>
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: 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-19gallivm: fix incorrect type for zero vector in emit_kilp()Brian Paul
http://bugs.freedesktop.org/show_bug.cgi?id=30974
2010-10-12gallivm: don't branch on KILLs near end of shaderKeith Whitwell
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-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-09-16gallivm: Clamp indirect register indices to file_max.José Fonseca
Prevents crashes with bogus data, or bad shader translation.
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-11gallivm: Move the texture modifiers to the header.José Fonseca
Useful to pass these around.
2010-09-05gallivm: Cope with tgsi instruction reallocation failure.José Fonseca
2010-08-31gallivm: fix bug in nested conditionalsBrian Paul
This, plus the previous commit fix fd.o bug 29806.
2010-08-18gallivm: Use proper index to lookup predicate register array.michal
Doesn't fix anything, as those indices were both always 0.
2010-08-09gallivm: Don't call LLVMBuildFNeg on llvm-2.6.José Fonseca
It didn't exist yet.
2010-08-09gallivm: Always use floating-point operators for floating-point typesnobled
This fixes the assert added in LLVM 2.8: assert(getType()->isIntOrIntVectorTy() && "Tried to create an integer operation on a non-integer type!") But it also fixes some subtle bugs, since we should've been doing this since LLVM 2.6 anyway. Includes a modified patch from steckdenis@yahoo.fr for the FNeg instructions in emit_fetch(); thanks for pointing those out. http://bugs.freedesktop.org/29404 http://bugs.freedesktop.org/29407 Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-08-08gallivm: Fix more integer operations.José Fonseca
2010-08-08gallivm: Use the correct context for integersnobled
See: http://bugs.freedesktop.org/29407
2010-07-21gallivm: replace has_indirect_addressing field with indirect_files fieldBrian Paul
Instead of one big boolean indicating indirect addressing, use a bitfield indicating which register files are accessed with indirect addressing. Most shaders that use indirect addressing only use it to access the constant buffer. So no need to use an array for temporary registers in this case.
2010-07-21gallivm: refactor code into get_indirect_offsets() functionBrian Paul
2010-07-21gallivm: added commentBrian Paul
2010-07-21gallivm: remove extraneous bracesBrian Paul
2010-07-21gallivm: no longer do indirect addressing in get_temp_ptr()Brian Paul
2010-07-21gallivm: implement correct indirect addressing of temp registersBrian Paul
As with indexing the const buffer, the ADDR reg may have totally different values for each element. Need to use a gather operation.
2010-07-21gallivm: re-org, comments for get_temp_ptr()Brian Paul
2010-07-21gallivm: rename a var to avoid compiler warningsBrian Paul
2010-07-20gallivm: fix indirect addressing of constant bufferBrian Paul
The previous code assumed that all elements of the address register were the same. But it can vary from pixel to pixel or vertex to vertex so we must use a gather operation when dynamically indexing the constant buffer. Still need to fix this for the temporary register file...
2010-06-07gallivm: eliminate tgsi_exec.h includeKeith Whitwell
2010-06-03gallivm: Factor out the quad derivative code into a single place. Fix ddy.José Fonseca
For ddy it should be (bottom - top).
2010-05-20gallivm: rename a var: s/val/array_size/Brian Paul
2010-05-17gallivm: Tweak ret_mask handling.José Fonseca
2010-05-17gallivm: implement function calls by inliningZack Rusin
with this approach we inline the entire function body in the caller
2010-05-15gallivm: Temporarily remove function call supportJosé Fonseca
Commits moved to the gallivm-call feature branch for further experimentation and stabilization.
2010-05-15gallivm: use our util_snprintfZack Rusin
2010-05-15gallivm: implement function callsZack Rusin
2010-05-14tgsi: clean up in emit_fetch()Brian Paul
2010-05-13gallivm: silence uninitialized var warningBrian Paul
2010-05-13gallivm: silence uninitialized var warningBrian Paul