summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
AgeCommit message (Collapse)Author
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
2010-05-13gallivm: rename a varBrian Paul
2010-05-12gallivm/llvmpipe: add const qualifiersBrian Paul
2010-05-10gallivm: Add missing lvalue.José Fonseca
2010-05-08gallivm: Add an alternative to LLVMDumpValue that works with Windows GUI apps.José Fonseca
2010-05-08gallivm: Fix BREAK/CONT translation.José Fonseca
The cont_mask must be restored and exec mask recomputed in order to decide whether to repeat the loop or not. Unlike the continue mask, the break_mask must be preserved across loop iterations. Fixes several VShader DCT cases, and no regressions with glean.
2010-05-08gallivm: Support predicates.José Fonseca
2010-05-04gallivm: Proper implementation of TXL opcode.José Fonseca
2010-05-04gallivm: Fix several glitches introduced in the prev commit.José Fonseca
2010-05-04gallivm: Implement TXD.José Fonseca
2010-05-04gallivm: Increase the TGSI translation limits and centralize them in a header.José Fonseca
2010-05-03gallivm: Display message instead of crashing when sampler generator was not ↵José Fonseca
supplied for tgsi translation.
2010-05-03gallivm: Replace predicate assertion failure with warning message.José Fonseca
2010-05-02gallivm: fix nested break and continue statementsZack Rusin
we were resetting the mask on each new break/continue statement within the same scope. we always need to and the current execution mask with the current break/continue mask to get the correct result (the masks are always ~1 initially)
2010-04-27gallivm: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca
2010-04-27gallivm: Ensure all allocas are in the first block.José Fonseca
Refactor the code to make this easier.
2010-04-26gallivm: BGNFOR/ENDFOR fallthrough to BGNLOOP/ENDLOOPAlan Hourihane
2010-04-25gallivm: Rename variable info to opcode_info.Vinson Lee
Avoid hiding existing variable already named info in outer scope.