summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_mesa_to_tgsi.c
AgeCommit message (Collapse)Author
2009-12-18fix debug output mising from edgeflag changesRoland Scheidegger
2009-12-18gallium: fix mesa to tgsi translation for edgeflagsRoland Scheidegger
test apps (progs/trivial/tri-edgeflags and similar) seem to work now
2009-12-14gallium: more work for edgeflags changesRoland Scheidegger
fixes, cleanups, etc. not working yet
2009-12-09gallium: first steps to treat edgeflags as regular vertex elementKeith Whitwell
The idea here is to eliminate the set_edgeflags() call in pipe_context by treating edgeflags as a regular vertex element. Edgeflags provoke special treatment in hardware, which means we need to label them in some way, in this case we'll be passing them through the vertex shader and labelling the vertex shader output with a new TGSI semantic (TGSI_SEMANTIC_EDGEFLAG).
2009-12-07st/mesa: remove debug codeBrian Paul
2009-12-07st/mesa: negate DDY to match GL semanticsBrian Paul
This fixes the regression from commit 884007546c98b1779bf266ec5111b1e7e2b68b2e Fixes bug 25456 (piglit derivs regression).
2009-12-02Merge branch 'mesa_7_7_branch'Jakob Bornecrantz
2009-12-01st/mesa: updated emit_swz() commentBrian Paul
2009-11-30st/mesa: handle front/back-face +1/-1 vs. 1/0 conversionBrian Paul
Fixes progs/glsl/twoside.c demo.
2009-11-15mesa/st: don't calculate unused output_flags data eitherKeith Whitwell
2009-11-15mesa/st: don't calculate unused input_flags dataKeith Whitwell
2009-10-23gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell
These haven't been used by the mesa state tracker since the conversion to tgsi_ureg, and it seems that none of the other state trackers are using it either. This helps simplify one of the biggest suprises when starting off with TGSI shaders.
2009-10-23gallium: remove noise opcodesKeith Whitwell
Provide a dummy implementation in the GL state tracker (move 0.5 to the destination regs). At some point, a motivated person could add a better implementation of noise. Currently not even the nvidia binary drivers do anything more than this. In any case, the place to do this is in the GL state tracker, not the poor driver.
2009-10-07mesa/st: add missing mesa constant file nameKeith Whitwell
There are many different names for constants in mesa, we were missing one since the ureg rewrite.
2009-09-21mesa: Ensure TGSI tokens are freed with gallium's free.José Fonseca
To avoid breaking the gallium's builtin malloc debugging.
2009-09-15st/mesa: disable accidentally committed _mesa_print_program() callBrian Paul
2009-09-14st/mesa: minor whitespace, comment clean-upsBrian Paul
2009-09-14mesa/st: remove dead commentKeith Whitwell
2009-09-14st/mesa: convert to new tgsi_ureg mechanism for shader emitKeith Whitwell
Should be easier to read and work with than the older ways of emitting TGSI tokens. Also, emit simpler TGSI than previously: - translate away source and dest extended modifiers - translate away the SWZ opcode
2009-09-12mesa: remove unused SATURATE_PLUS_MINUS_ONE flagKeith Whitwell
Never set in mesa. Remove from tgsi translation as well.
2009-08-12Merge branch 'new-frag-attribs'Brian Paul
This branch introduces new FRAG_ATTRIB_FACE and FRAG_ATTRIB_PNTC fragment program inputs for GLSL gl_FrontFacing and gl_PointCoord. Before, these attributes were packed with the FOG attribute. That made things complicated elsewhere.
2009-07-31Rename TGSI LOOP instruction to better match theri usage.Michal Krol
The LOOP/ENDLOOP pair is renamed to BGNFOR/ENDFOR as its behaviour is similar to a C language for-loop. The BGNLOOP2/ENDLOOP2 pair is renamed to BGNLOOP/ENDLOOP as now there is no name collision.
2009-07-29mesa: add new FRAG_ATTRIB_FACE and FRAG_ATTRIB_PNTC fragment program inputsBrian Paul
Previously, the FOGC attribute contained the fragment fog coord, front/back- face flag and the gl_PointCoord.xy values. Now each of those things are separate fragment program attributes. This simplifies quite a few things in Mesa and gallium. Need to test i965 driver and fix up point coord handling in the gallium/draw module...
2009-07-29gallium: fix SSE shadow texture instructionsBrian Paul
When sampling a 2D shadow map we need 3 texcoord components, not 2. The third component (distance from light source) is compared against the texture sample to return the result (visible vs. occluded). Also, enable proper handling of TGSI_TEXTURE_SHADOW targets in Mesa->TGSI translation. There's a possibility for breakage in gallium drivers if they fail to handle the TGSI_TEXTURE_SHADOW1D / TGSI_TEXTURE_SHADOW2D / TGSI_TEXTURE_SHADOWRECT texture targets for TGSI_OPCODE_TEX/TXP instructions, but that should be easy to fix. With these changes, progs/demos/shadowtex.c renders properly again with softpipe.
2009-07-22gallium: simplify tgsi_full_immediate structKeith Whitwell
Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
2009-07-10st/mesa: implement indirect addressing for destination registersBrian Paul
2009-07-06gallium: more fog extraction fixesZack Rusin
fix the cases when fog coord/front face/point coord are used in the same shader.
2009-07-01gallium: fix the front face semanticsZack Rusin
mesa allocates both frontface and pointcoord registers within the fog coordinate register, by using swizzling. to make it cleaner and easier for drivers we want each of them in its own register. so when doing compilation from the mesa IR to tgsi allocate new registers for both and add new semantics to the respective declarations.
2009-04-14mesa: merge the prog_src_register::NegateBase and NegateAbs fieldsBrian Paul
There's really no need for two negation fields. This came from the GL_NV_fragment_program extension. The new, unified Negate bitfield applies after the absolute value step.
2009-03-20gallium: remove use of origin_lower_leftBrian Paul
This was used to indicate OpenGL's lower-left origin for fragment window coordinates for polygon stipple and gl_FragCoord. Now: - fragment coordinate origin is always upper-left corner - GL polygon stipple is inverted and shifted before given to gallium - GL fragment programs that use INPUT[WPOS] are modified to use an inverted window coord which is placed in a temp register. Note: the origin_lower_left field still exists in pipe_rasterizer_state. Remove it when all the drivers, etc. no longer reference it.
2009-03-07mesa: gl_register_file enum typedefBrian Paul
2009-02-20gallium: use the TGSI_TEXTURE_SHADOW1D/2D/RECT texture types for TEX ↵Brian Paul
instructions These texture types were defined but never put to use. For the time being though, the Mesa->TGSI translater isn't emitting these targets. See the XXX comment in map_texture_target().
2009-02-18util: Move p_debug.h into util module.José Fonseca
The debug functions depend on several util function for os abstractions, and these depend on debug functions, so a seperate module is not possible.
2009-02-17mesa: remove old comment as it's fixed elsewhere now.Alan Hourihane
2009-02-10Missing: tgsi: Fix build -- rename Size to NrTokens.Patrice Mandin
2009-01-02gallium: assorted state tracker fixes for > 8 texture samplersBrian Paul
2008-12-15Merge commit 'origin/gallium-0.1' into gallium-0.2Alan Hourihane
Conflicts: src/gallium/winsys/gdi/SConscript
2008-12-12st: don't unilaterally ABS the argument to RSQKeith Whitwell
2008-11-24mesa: pass shader centroid/invariant info through to the TGSI shaderBrian Paul
2008-11-07gallium: translate DP2, DP2A, NRM3, NRM4, SSG opcodesBrian Paul
2008-11-06gallium: s/OPCODE_INT/OPCODE_TRUNC/Brian Paul
2008-09-26gallium: rename tgsi_translate_mesa_program() to st_translate_mesa_program()Brian Paul
2008-09-26gallium: rename tgsi_translate_mesa_program() to st_translate_mesa_program()Brian Paul
2008-09-19mesa: Fix arb parse constantsBrian Paul
2008-09-17gallium: include prog_print.h to silence warningBrian Paul
2008-09-17tgsi: Add a ugly fix for CONSTANT problemsJakob Bornecrantz
2008-09-17tgsi: More debug printing on sanity check errorJakob Bornecrantz
2008-09-16mesa: State tracker now checks for faulty shaders on debugJakob Bornecrantz
2008-08-19st: Do not translate program constants to immediates whenMichal Krol
indirect addressing used.
2008-08-19st: Translate address register declaration.Michal Krol