summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/tgsi
AgeCommit message (Collapse)Author
2007-10-09Pack fragment program outputs to be consistant with vertex programs.Brian
Previously, output[0] was always Z and output[1] was color. Now output[0] will be color if Z is not written. In shade_quad() use the semantic info to determine which quantity is in which output slot.
2007-10-09update some commentsBrian
2007-10-09More work on flow control for CAL/RET.Brian
2007-10-09New ATTRIB interpolation type for vertex program inputs/declarations.Brian
2007-10-09Don't emit semantic info for vertex program inputs.Brian
2007-10-03use different temps in exec_tex() for biasBrian
2007-10-03updated commentsBrian
2007-10-03fix eq/neq bugsBrian
2007-10-03fix f/u mix-up in micro_trunc()Brian
2007-10-03move TEX code into exec_tex()Brian
2007-10-02clean-upsBrian
2007-10-02Implement/use fragment kill resultsBrian
2007-10-02Implement TGSI_OPCODE_SNE with micro_ne()Brian
2007-10-02Separate TGSI_OPCODE_KIL and TGSI_OPCODE_KILP (predicated).Brian
These correspond to the NV and ARB-style fragment program KIL instructions. The former is really supposed to examine the NV condition codes but Mesa's GLSL compiler always emits unconditional KIL instructions.
2007-10-02Push mask stacks upon CAL, pop upon RET.Brian
Still need to handle conditional RET statements...
2007-10-02added license and interpreter commentsBrian
2007-10-02Implement CONT statement.Brian
2007-10-02added micro_trunc(), re-order some codeBrian
2007-10-02Minor optimization: no-op CAL when ExecMask==0x0.Brian
2007-10-02Added TGSI_FILE_OUTPUT case in fetch_src_file_channel().Brian
GLSL output variables (such as vertex varyings) can be read (they're not write-only).
2007-10-02Implement CAL/RET and a call stack for subroutines.Brian
The glsl/brick.c shader demo runs now.
2007-10-02Added TGSI_OPCODE_ENDBrian
Halt program execution when we get to END instruction. The GLSL compiler puts subroutines after the end instruction so we have to stop before then.
2007-10-02Fold expand_program() into tgsi_exec_prepare()Brian
2007-10-02no more need for tgsi_exec_machine_run2(), remove dead codeBrian
2007-10-02Move tgsi machine state init/allocations so they're done less frequently.Brian
This, plus expanding all instructions ahead of time, seems to have improved the performance of program execution by 8x or so.
2007-10-02checkpoint: unpack all instructions before interpretation. Actual looping ↵Brian
works.
2007-09-29Initial conditional execution support for loops and BRK instruction.Brian
Also, instead of passing cond mask to each micro op, just apply it in the store_dest() function.
2007-09-29remove unused tgsi_exec_cond_* typesBrian
2007-09-28Initial implementation of IF/ELSE/ENDIF using conditional masking.Brian
mach->CondMask controls writing to each of the 4 components in a quad. mach->CondMaskStack handles nested conditionals. Only a few of the micro ops (add/sub/mul/store) have been updated to obey CondMask at this time.
2007-09-27Fix some compiler warnings with -pedanticKeith Whitwell
2007-09-27Enable codegen based whenever __i386__ is defined.Keith Whitwell
2007-09-25Translate mesa vertex/fragment programs to TGSI programs at same time to do ↵Brian
proper linking. Previously, programs were translated independently during validation. The problem is the translation to TGSI format, which packs shader input/outputs into continuous slots, depends on which vertex program is being paired with which fragment shader. Now, we look at the outputs of the vertex program in conjunction with the inputs of the fragment shader to be sure the attributes match up correctly. The new 'linked_program_pair' class keeps track of the associations between vertex and fragment shaders. It's also the place where the TGSI tokens are kept since they're no longer per-program state but per-linkage. Still a few loose ends, like implementing some kind of hash/lookup table for linked_program_pairs.
2007-09-24Enable SSE2 for FS.michal
2007-09-21added PSIZEBrian
2007-09-21Fix up some point size breakage. Start on fogcoord too.Brian
2007-09-21remove debug printfsBrian
2007-09-21remove SEMANTIC_TEXCOORDBrian
2007-09-21Get rid of TGSI_SEMANTIC_TEXCOORD and just use TGSI_SEMANTIC_GENERIC.Brian
2007-09-21minor renamingBrian
2007-09-21pass vs output semantics to tgsi_mesa_compile_vp_program() to generate ↵Brian
output DECs
2007-09-21Pass vertex program input semantics into tgsi_mesa_compile_vp_program() to ↵Brian
produce DCLs.
2007-09-20Clean-up the TGSI_SEMANTIC tokens, introduce semantic indexes.Brian
Still need to produce decl instructions for vertex shaders...
2007-09-20remove old/used codeBrian
2007-09-20remove lots of dead code related to program input/output mappingBrian
2007-09-20obsoleteBrian
2007-09-20remove #includes of tgsi_attribs.hBrian
2007-09-20checkpoint: TGSI_ATTRIB_x tokens no longer usedBrian
2007-09-19Checkpoint: replacement of TGSI_ATTRIB_x tokens with input/output semantics.Brian
TGSI_ATTRIB_x tokens still present and used in a few places. Expanded set of TGSI_SEMANTIC_x tokens for describing the meaning of inputs/outputs. These tokens are in a crude state ATM. Lots of #if 0 / disabled code to be removed yet, etc... Softpipe and i915 drivers should be in working condition but not heavily tested.
2007-09-18Checkpoint: rework shader input/output register mapping.Brian
This is a step toward removing TGSI_ATTRIB_ tokens. Basically, when translating Mesa programs to TGSI programs, pass in input and output register re-maps, plus interpolation info. There's some known breakage (cubemap.c) so more to be done...
2007-09-18Fix some issues with perspective-corrected interpolation.Brian
In mesa_to_tgsi.c, use TGSI_INTERPOLATE_PERSPECTIVE by default (to match post-transform vertex info convention). More to be done there... In sp_quad_fs.c, interpolate W in addition to Z. This fixes the divide by zero happening in perspective_interpolation() tgsi_exec.c As it was, we were only getting perspective correction of texture coords used by the TGSI_TEX instruction since it does a homogeneous divide. Other coords/varyings were incorrect.