summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/tgsi_exec.c
AgeCommit message (Collapse)Author
2010-01-14Merge branch 'mesa_7_7_branch'Jakob Bornecrantz
Conflicts: src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/util/Makefile src/gallium/drivers/r300/r300_state_derived.c
2010-01-08tgsi: Cleanup dot-product opcodes in interpreter.Michal Krol
2010-01-07gallium: Fix texture sampling with explicit LOD in softpipe.Michal Krol
2010-01-07gallium: Pass per-element (not per-quad) LOD bias values down to texture ↵Michal Krol
sampler.
2010-01-07tgsi: Cleanup exec_tex().Michal Krol
2010-01-08tgsi: Silence uninitialized variable warnings.Vinson Lee
2010-01-05tgsi: Simplify implementation of few interpreter's instructions.Michal Krol
2010-01-05tgsi: Treat MOV source operand as FLOAT so modifiers works as expected.Michal Krol
2010-01-05tgsi: Store ADDR file in interpreter as an int.Michal Krol
2010-01-05tgsi: Remove dead micro_umod().Michal Krol
2010-01-05tgsi: Make interpreter aware of float and integer data types.Michal Krol
Debug check for inf and nan only on float channels. Apply absolute and negate source operand modifiers based on opcode type.
2010-01-05gallium: Add UMOD TGSI opcode.Michal Krol
Either that or have UDIV have two destination operands.
2010-01-05gallium: Add SWITCH, CASE, DEFAULT and ENDSWITCH opcodes to TGSI.Michal Krol
Provide reference implementation of them in tgsi_exec. Note that BREAK opcode is overloaded and can be used to break out of either a loop or a switch-case statement.
2010-01-05tgsi: Cleanup interpreter code for other existing integer opcodes.Michal Krol
2010-01-05tgsi: Implement new integer opcodes.Michal Krol
Update interpreter and ureg. Also, get rid of SHR -- it's actually an alias for ISHR.
2010-01-04tgsi: Fix assert.Vinson Lee
2009-12-25draw/tgsi: fix geometry shader input/output swizzlingZack Rusin
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2009-12-22tgsi: Implement BREAKC in interpreter.Michal Krol
2009-12-14tgsi: add properties and system value registerZack Rusin
adds support for properties to all parts of the tgsi framework, plus introduces a new register which will be used for system generated values.
2009-12-01Merge commit 'origin/tgsi-simplify-ext'Keith Whitwell
Conflicts: src/gallium/drivers/r300/r300_vs.c
2009-11-26tgsi/exec: Fix orientation of DDY.Michal Krol
2009-11-26tgsi/exec: Force return from a subroutine at ENDSUB.Michal Krol
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_declaration to reduce verbosityKeith Whitwell
DeclarationRange -> Range
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-24tgsi: reduce repetition of structure name in its membersKeith Whitwell
Rename Semantic.SemanticName to Semantic.Name. Similar for SemanticIndex, and the members of the tgsi_version struct.
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-24tgsi: Implement predicated instructions in exec.Michal Krol
2009-11-23tgsi: Clamp the source argument in micro_exp2() to avoid Inf.Michal Krol
2009-11-23tgsi: Remove code that actually had no effect.Michal Krol
2009-11-23tgsi: Fix POSITION and FACE fragment shader inputs.Michal Krol
2009-11-23tgsi: Bring BGNFOR/ENDFOR implementation up to spec.Michal Krol
2009-11-23tgsi: Fake TXD implementation in exec.Michal Krol
2009-11-23tgsi: Add execution debugging facilities to exec.Michal Krol
2009-11-19tgsi: Provide ultimate solution for SOA dependencies in exec.Michal Krol
Reorder STOREs in such a way that they appear after the last FETCH.
2009-11-10tgsi/exec: Exit early on error.Michal Krol
2009-11-02tgsi: Update for gallium interface changes.Michal Krol
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-09-10tgsi: use new tgsi_call_record to handle execution mask stacksBrian Paul
This fixes some issues when "return"ing from nested loops/conditionals.
2009-09-03aux/tgsi: pull back ureg work from 0.1 branchKeith Whitwell
Manual merge of ureg changes on the branch. Too much unrelated stuff for a proper merge.
2009-09-01tgsi: remove redundant CND0 opcodeKeith Whitwell
Can be implemented with CMP src2, src1, src0
2009-08-20tgsi: handle SOA dependencies for MOV/SWZBrian Paul
SOA dependencies can happen when a register is used both as a source and destination and the source is swizzled. For example: MOV T, T.yxwz; would expand into: MOV t0, t1; MOV t1, t0; MOV t2, t3; MOV t3, t2; The second instruction will produce the wrong result since we wrote to t0 in the first instruction. We need to use an intermediate temporary to fix this. This will take more work to fix for all TGSI instructions. This seems to happen with MOV instructions more than anything else so fix that case now and warn on others. Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
2009-08-17gallium: memset() tgsi_exec_machine to all zeros in tgsi_exec_machine_create()Brian Paul
This fixes invalid values for CondStackTop, LoopStackTop, etc.
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-23gallium: remove deprecated TGSI opcodesKeith Whitwell
Various opcodes which can be implemented trivially with other TGSI opcodes, such as matrix multiplication and negation. These were not used by any state tracker or implemented by any of the drivers.
2009-07-22gallium: remove multiple aliases for TGSI opcodesKeith Whitwell
This is a source of ongoing confusion. TGSI has multiple names for opcodes where the same semantics originate in multiple shader APIs. For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for opcodes with the same semantics, but aliases those names to the same underlying opcode number. This makes it very difficult to visually inspect two sets of opcodes (eg in state tracker & driver) and check if they implement the same functionality. This patch arbitarily rips out the versions of the opcodes not currently favoured by the mesa state tracker and leaves us with a single name for each distinct operation.
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.