summaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast
Commit message (Collapse)AuthorAgeFilesLines
* consolidate BRA with BRK, CONTBrian2007-02-081-7/+3
|
* Simplify code with eval_condition(). Implement conditional BRK.Brian2007-02-081-69/+56
|
* Use IR_LOOP to represent do-while and for-loops.Brian2007-02-071-7/+5
| | | | Also, start moving high vs. low-level instruction selection into slang_emit.c
* BRK and CONT work the sameBrian2007-02-061-20/+4
|
* Implement CONT, improve BRK.Brian2007-02-061-0/+6
| | | | | | | 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).
* BRK instruction's BranchTarget field now used for efficiently breaking out ↵Brian2007-02-051-17/+13
| | | | | | | | 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.
* Use IR node's BranchNode field for IF/ELSE/ENDIF instructions.Brian2007-02-051-51/+6
| | | | | | | 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.
* Initial implementation of high-level flow-control instructions.Brian2007-02-051-6/+32
| | | | | | 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.
* Initial support of loop and subroutine instructions.Brian2007-02-051-0/+13
| | | | | New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines.
* Merge SWvertex texcoord and varying fields into attrib[] array field.Brian2007-02-0512-561/+363
| | | | | Fragment texcoords and varying code is now unified in the point/line/triangle rasterization code. In the future, merge color, fog, etc. attribs.
* fix maxInst argumentBrian2007-02-021-1/+2
|
* unroll inner loop of interpolate_varying()Brian2007-02-021-13/+22
|
* simplify derivative-related codeBrian2007-02-021-90/+41
|
* simplify interpolate_texcoords()Brian2007-02-021-262/+126
|
* Replace color, z, w, texture interpolants with new generic attrib interpolants.Brian2007-02-028-277/+280
|
* New span attrStart/attrStepX/attrStepY fields to replace fog, specular, etc. ↵Brian2007-02-028-115/+118
| | | | fields. More to come.
* get rid of unused span->start fieldBrian2007-02-022-5/+2
|
* commentsBrian2007-02-012-2/+7
|
* New SWspanarrays attribs[] array.Brian2007-02-0116-171/+140
| | | | | | | 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.
* move span-related types/tokens into s_span.hBrian2007-02-012-200/+204
|
* additional assertions, bump up MAX_EXECBrian2007-02-011-1/+6
|
* noise functionsBrian2007-01-281-0/+45
|
* asst fixes, tranpose span->varying array indexesBrian2007-01-251-38/+54
|
* fixes, clean-ups, transpose span->varying array indexingBrian2007-01-251-21/+29
|
* new comments, ideasBrian2007-01-251-21/+22
|
* fix varying interpolationBrian2007-01-241-2/+5
|
* only setup varying vars that will be usedBrian2007-01-242-25/+35
|
* fix g++ warnings/errorsBrian2007-01-231-4/+3
|
* Initial implementation of OPCODE_IF/ELSE/ENDIF instructions.Brian2007-01-201-0/+67
|
* Added OPCODE_INT to convert 4 floats to 4 ints.Brian2007-01-171-0/+11
|
* more debug code (disabled)Brian2007-01-091-1/+5
|
* check if _Current == NULL for TXBBrian2007-01-081-3/+5
|
* Remove if (tObj) conditional so that texture units without a texture imageBrian2007-01-081-5/+6
| | | | return black (0,0,0,1) when sampled.
* added INTERP_VARYING codeBrian2006-12-211-0/+29
|
* s/attribute/varying/Brian2006-12-212-5/+6
|
* Overhaul of GLSL API functions, dispatching, etc.Brian2006-12-192-2/+2
|
* Added instruction counter to catch infinite loops (temporary).Brian2006-12-181-1/+11
|
* fix comment, handle NOPBrian2006-12-161-1/+3
|
* varying var changesBrian2006-12-153-17/+17
|
* Renamed s_nvfragprog.[ch] to s_fragprog.[ch]Brian2006-12-153-17/+9
|
* Renamed s_nvfragprog.[ch] to s_fragprog.[ch], program_instruction.h to ↵Brian2006-12-152-1729/+0
| | | | prog_instruction.h
* Renamed from s_nvfragprog.[ch]Brian2006-12-142-0/+1729
|
* Updated includes.Brian2006-12-142-2/+4
|
* Remove include of s_arbshader.hBrian2006-12-141-1/+0
|
* Retire old GLSL shader code.Brian2006-12-132-162/+0
|
* Checkpoint for GLSL compiler changes.Brian2006-12-136-61/+76
| | | | | | In brief: Check for enabled fragment program by looking at ctx->FragmentProgram._Current. New code for varying variables.
* list header files in sources files (Dan Nicholson)Brian Paul2006-11-211-1/+34
|
* Initial implementation work for CAL, RET, and BRA instructions for fragmentBrian Paul2006-11-161-0/+53
| | | | programs.
* Make sure RENDER_FINISH is called on the zero pixel case. Reported byKeith Whitwell2006-11-141-1/+1
| | | | Haihao Xiang.
* always load frag prog state params for now (see comments)Brian Paul2006-11-021-0/+5
|