summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
AgeCommit message (Collapse)Author
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.
2010-04-24gallivm: Remove NULL check of pointer that can't be NULL.Vinson Lee
info cannot be NULL at the call to debug_printf. emit_instruction dereferences info, so at debug_printf it is either not NULL or the program has already crashed.
2010-04-22gallivm: implement indirect addressing over temporariesZack Rusin
a bit more involved than indirect addressing over consts, but still fairly reasonable. we allocate an array instead of individual alloca's, and we do it only if the shader does indirect addressing.
2010-04-22gallivm: implement indirect addressing over constantsZack Rusin
implement indirect addressing (ARL and ARR instructions) when used with CONST's. indirect addressing over other vars (temps, inputs, outputs) is not supported yet.
2010-04-22gallivm: update commentsZack Rusin
2010-04-22gallivm: fix nested cont statementsZack Rusin
2010-04-22gallivm: fix nested break statemantsZack Rusin
2010-04-21gallivm: added some assertions in loop-gen codeBrian Paul
We're hitting these assertions with nested loops...
2010-04-21gallivm: fix copy&paste error: s/cont_stack_size/break_stack_size/Brian Paul
2010-04-21gallivm: emit_instruction() is booleanBrian Paul
2010-04-21gallivm: implement TGSI KILPBrian Paul
As in tgsi_exec.c we don't actually rely on condition codes; we do an unconditional kill. The only predication comes from the execution mask which applies inside loops/conditionals.
2010-03-30gallivm: cleanup the code (found by coverity)Zack Rusin
the condition can't be false, declerations are ok even if we don't emit any.
2010-03-29gallivm: make sure that the alloca's are the very first thing in the functionZack Rusin
otherwise mem2reg can't put them in registers
2010-03-15gallivm/llvmpipe: rename some constant building functionsBrian Paul