summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_fragprog.c
AgeCommit message (Collapse)Author
2007-02-08consolidate BRA with BRK, CONTBrian
2007-02-08Simplify code with eval_condition(). Implement conditional BRK.Brian
2007-02-07Use IR_LOOP to represent do-while and for-loops.Brian
Also, start moving high vs. low-level instruction selection into slang_emit.c
2007-02-06BRK and CONT work the sameBrian
2007-02-06Implement CONT, improve BRK.Brian
IR_LOOP's BranchNode ptr is the head of a linked list of CONT and BRK nodes. After emitting loop, walk over the linked list, filling in the CONT/BRK instruction's BranchTarget field (location of the ENDLOOP instruction, or one past).
2007-02-05BRK instruction's BranchTarget field now used for efficiently breaking out ↵Brian
of loops. BRK's BranchTarget field actually points to the top of the loop, not the bottom, since we don't know the later's location yet. In the interpreter, basically do an indirect jump to update the PC.
2007-02-05Use IR node's BranchNode field for IF/ELSE/ENDIF instructions.Brian
This allows us to back-patch the IF/ELSE instruction's BranchTarget field to point to the location of the ELSE/ENDIF instructions. No longer have to search for ELSE/ENDIF in the interpreter. Also makes it trivial to translate IF/ELSE instructions into conditional/unconditional BRA instructions.
2007-02-05Initial implementation of high-level flow-control instructions.Brian
IF/ELSE/ENDIF and BEGIN_LOOP/END_LOOP/BREAK instructions seem to work. Disabled by default though until better tested. Implemented IR_NOT, but needs optimization.
2007-02-05Initial support of loop and subroutine instructions.Brian
New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines.
2007-02-02fix maxInst argumentBrian
2007-02-02simplify derivative-related codeBrian
2007-02-02Replace color, z, w, texture interpolants with new generic attrib interpolants.Brian
2007-02-02New span attrStart/attrStepX/attrStepY fields to replace fog, specular, etc. ↵Brian
fields. More to come.
2007-02-01New SWspanarrays attribs[] array.Brian
Replace texcoord[], varying[], etc. arrays with single attribs[] array, indexed by FRAG_ATTRIB_* values. Eliminates need to copy data into fragment program machine input registers. Will lead to future clean-ups.
2007-02-01additional assertions, bump up MAX_EXECBrian
2007-01-28noise functionsBrian
2007-01-25fixes, clean-ups, transpose span->varying array indexingBrian
2007-01-23fix g++ warnings/errorsBrian
2007-01-20Initial implementation of OPCODE_IF/ELSE/ENDIF instructions.Brian
2007-01-17Added OPCODE_INT to convert 4 floats to 4 ints.Brian
2007-01-09more debug code (disabled)Brian
2007-01-08check if _Current == NULL for TXBBrian
2006-12-18Added instruction counter to catch infinite loops (temporary).Brian
2006-12-16fix comment, handle NOPBrian
2006-12-15Renamed s_nvfragprog.[ch] to s_fragprog.[ch]Brian
2006-12-14Renamed from s_nvfragprog.[ch]Brian