summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/svga/svga_tgsi_insn.c
AgeCommit message (Collapse)Author
2011-02-18svga: Cannot use negate or abs on source to dsx/dsy instructions.José Fonseca
2011-02-18svga: Ensure LRP's restrictions are observed in all uses.José Fonseca
The dst reg must be a temporary, and not be the same as src0 or src2.
2011-02-18svga: Preserve src swizzles in submit_op2/3/4.José Fonseca
Several opcodes require scalar swizzle, and this requirement was being was not being observed when creating temporaries for other reasons.
2011-02-17svga: Don't use more than one constant per IFC instruction.José Fonseca
2011-01-31svga: Fix translation of TGSI SSG opcode.Michel Dänzer
SVGA3D only supports SGN for vertex shaders, and this requires two additional temporary registers for intermediate results. For fragment shaders, lower to two CMPs and one ADD.
2010-09-20svga: Integer constant register file has a separate namespace.Michal Krol
Count int and float constants independently. Since there are only few i# constants available and hundreds of c# constants, it would be too easy to end up with an i# declaration out of its range.
2010-09-20svga: Fix relative addressing translation for pixel shaders.Michal Krol
Pixel shaders do not have address registers a#, only one loop register aL. Our only hope is to assume the address register is in fact a loop counter and replace it with aL. Do not translate ARL instruction for pixel shaders -- MOVA instruction is only valid for vertex saders. Make it more explicit relative addressing of inputs is only valid for pixel shaders and constants for vertex shaders.
2010-08-30svga: Fix CMP translation for vertex shader targets.Michal Krol
SVGA3DOP_CMP is not supported for vertex shaders; use SLT + LRP instead.
2010-05-14gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell
Use front/back instead of cw/ccw throughout. Also, use offset_point/line/fill instead of offset_cw/ccw. Brings gallium representation of this state into line with its main user, and also what turns out to be the most common hardware representation. This fixes a long-standing bias in the interface towards the architecture of the software rasterizer.
2010-04-27svga: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca
2010-02-22svga: Emit a scalar rcp in shadow maps.José Fonseca
Small improvement in Lightsmark 2008.
2010-02-22svga: Don't emit zero writemasks.José Fonseca
This fixes a regression with Lightsmark, where more compact TGSI from Mesa was causing a zero mask MOV to be emitted for shadow map compare, causing problems in some backends. Add a few more assertions to catch cases like this.
2010-02-17svga: Silence uninitialized variable warnings.Vinson Lee
2010-02-14svga: Silence uninitialized variable warning.Vinson Lee
2010-02-03svga: fix TXD and TXL opcode translationKeith Whitwell
2010-02-03svga: deriv insns not valid in dynamic flow control eitherKeith Whitwell
2010-02-03svga: texture from lod zero inside dynamic branchingKeith Whitwell
Texture derivatives are potentially undefined inside dynamic branches, so hardwire lod zero in this case. Treating all if/endif and loop constructs as dynamic branches.
2010-02-03svga: better method for generating white fs color outputsKeith Whitwell
2010-01-05Remove TGSI_OPCODE_SHR, map existing usage to TGSI_OPCODE_ISHR.Michal Krol
This is to differentiate it from its unsigned version, TGSI_OPCODE_USHR.
2009-11-24tgsi: rename fields of tgsi_full_src_register to reduce verbosityKeith Whitwell
SrcRegister -> Register SrcRegisterInd -> Indirect SrcRegisterDim -> Dimension SrcRegisterDimInd -> DimIndirect
2009-11-24tgsi: rename fields of tgsi_full_dst_register to reduce verbosityKeith Whitwell
DstRegister -> Register DstRegisterInd -> Indirect
2009-11-24tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosityKeith Whitwell
InstructionPredicate -> Predicate InstructionLabel -> Label InstructionTexture -> Texture FullSrcRegisters -> Src FullDstRegisters -> Dst
2009-11-24gallium: simplify tgsi tokens furtherKeith Whitwell
Drop anonymous 'Extended' fields, have every optional token named explicitly in its parent. Eg. there is now an Instruction.Label flag, etc. Drop destination modifiers and other functionality which cannot be generated by tgsi_ureg.c, which is now the primary way of creating shaders. Pull source modifiers into the source register token, drop the second negate flag. The source register token is now full - if we need to expand it, probably best to move all of the modifiers to a new token and have a single flag for it.
2009-11-17svga: Add svga driverJakob Bornecrantz