summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_fragprog.c
AgeCommit message (Collapse)AuthorFilesLines
2007-05-02changes to get DDX/DDY working againBrian1-0/+4
2007-04-28only load front/back face attrib if using a shader (bug 10788)Brian1-2/+4
2007-04-21undo a test/debug changeBrian1-1/+1
2007-04-19Put gl_program_machine into swrast structure rather than using a local variable.Brian1-8/+7
Basically an easy way to make sure the memory gets initialized once (to zero) to avoid lots of valgrind warnings.
2007-03-13Check if FRAG_RESULT_COLR is written and update span->interpMask, arrayMask.Brian1-1/+8
Also, fix an assertion.
2007-03-11Implement support for GL_ARB_draw_buffers with GL_MAX_DRAW_BUFFERS > 1.Brian1-3/+21
GL_MAX_DRAW_BUFFERS is currently 4. Added gl_FragData[] output for fragment programs. In _swrast_write_rgba_span() loop over the color outputs/renderbuffers.
2007-03-10Implement gl_FrontFacing for fragment shaders.Brian1-0/+4
For the time being, we put the gl_FrontFacing value in the FOGC.Y input register. Combining FOGC and FrontFacing in one register is a bit of a hack and may need to be changed someday.
2007-02-25remove unneeded includesBrian1-4/+0
2007-02-25remove 'maxInst' parameter from _mesa_execute_program()Brian1-2/+1
2007-02-25remove unused 'element' parameter from _mesa_execute_program()Brian1-2/+1
2007-02-22Use the new unified vertex/fragment program interpreter from prog_execute.c.Brian1-1511/+12
Currently, DDX, DDY don't work.
2007-02-22use MAX_PROGRAM_ENV_PARAMSBrian1-3/+3
2007-02-17Lots of changes to prog_print.c code.Brian1-1/+2
Mainly, allow printing programs in either ARB, NV or "debug" formats.
2007-02-08consolidate BRA with BRK, CONTBrian1-7/+3
2007-02-08Simplify code with eval_condition(). Implement conditional BRK.Brian1-69/+56
2007-02-07Use IR_LOOP to represent do-while and for-loops.Brian1-7/+5
Also, start moving high vs. low-level instruction selection into slang_emit.c
2007-02-06BRK and CONT work the sameBrian1-20/+4
2007-02-06Implement CONT, improve BRK.Brian1-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).
2007-02-05BRK instruction's BranchTarget field now used for efficiently breaking out ↵Brian1-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.
2007-02-05Use IR node's BranchNode field for IF/ELSE/ENDIF instructions.Brian1-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.
2007-02-05Initial implementation of high-level flow-control instructions.Brian1-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.
2007-02-05Initial support of loop and subroutine instructions.Brian1-0/+13
New high-level flow-control instructions, both at IR level and GPU instructions for looping and subroutines.
2007-02-02fix maxInst argumentBrian1-1/+2
2007-02-02simplify derivative-related codeBrian1-90/+41
2007-02-02Replace color, z, w, texture interpolants with new generic attrib interpolants.Brian1-45/+46
2007-02-02New span attrStart/attrStepX/attrStepY fields to replace fog, specular, etc. ↵Brian1-28/+29
fields. More to come.
2007-02-01New SWspanarrays attribs[] array.Brian1-68/+16
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_EXECBrian1-1/+6
2007-01-28noise functionsBrian1-0/+45
2007-01-25fixes, clean-ups, transpose span->varying array indexingBrian1-21/+29
2007-01-23fix g++ warnings/errorsBrian1-4/+3
2007-01-20Initial implementation of OPCODE_IF/ELSE/ENDIF instructions.Brian1-0/+67
2007-01-17Added OPCODE_INT to convert 4 floats to 4 ints.Brian1-0/+11
2007-01-09more debug code (disabled)Brian1-1/+5
2007-01-08check if _Current == NULL for TXBBrian1-3/+5
2006-12-18Added instruction counter to catch infinite loops (temporary).Brian1-1/+11
2006-12-16fix comment, handle NOPBrian1-1/+3
2006-12-15Renamed s_nvfragprog.[ch] to s_fragprog.[ch]Brian1-10/+1
2006-12-14Renamed from s_nvfragprog.[ch]Brian1-0/+1692