summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi/tgsi_parse.h
Commit message (Collapse)AuthorAgeFilesLines
* tgsi: use separate structure for indirect address v2Christian König2013-03-191-4/+4
| | | | | | | | | | | | | | To further improve the optimization of source and destination indirect addressing we need the ability to store a reference to the declaration of the addressed operands. Since most of the fields in tgsi_src_register doesn't apply for an indirect addressing operand replace it with a separate tgsi_ind_register structure and so make room for extra information. v2: rename Declaration to ArrayID, put the ArrayID into () instead of [] Signed-off-by: Christian König <[email protected]>
* tgsi: add ArrayID to declarationsChristian König2013-03-191-0/+1
| | | | | | | | Remember which declarations are declared as "arrays" and so can be indirectly addressed. ArrayIDs start at 1, cause for compatibility reasons zero is treaded as no array present. Signed-off-by: Christian König <[email protected]>
* tgsi: remove TGSI_FILE_(IMMEDIATE|TEMP)_ARRAYChristian König2013-03-191-6/+0
| | | | | | Nobody seems to be using it, and only nv50 had a partial implementation. Signed-off-by: Christian König <[email protected]>
* gallium/tgsi: Move interpolation info from tgsi_declaration to a separate token.Francisco Jerez2012-05-111-0/+1
| | | | | | Move Interpolate, Centroid and CylindricalWrap from tgsi_declaration to a separate token -- they only make sense for FS inputs and we need room for other flags in the top-level declaration token.
* gallium/tgsi: Split sampler views from shader resources.Francisco Jerez2012-05-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit splits the current concept of resource into "sampler views" and "shader resources": "Sampler views" are textures or buffers that are bound to a given shader stage and can be read from in conjunction with a sampler object. They are analogous to OpenGL texture objects or Direct3D SRVs. "Shader resources" are textures or buffers that can be read and written from a shader. There's no support for floating point coordinates, address wrap modes or filtering, and, unlike sampler views, shader resources are global for the whole graphics pipeline. They are analogous to OpenGL image objects (as in ARB_shader_image_load_store) or Direct3D UAVs. Most hardware is likely to implement shader resources and sampler views as separate objects, so, having the distinction at the API level simplifies things slightly for the driver. This patch introduces the SVIEW register file with a declaration token and syntax analogous to the already existing RES register file. After this change, the SAMPLE_* opcodes no longer accept a resource as input, but rather a SVIEW object. To preserve the functionality of reading from a sampler view with integer coordinates, the SAMPLE_I(_MS) opcodes are introduced which are similar to LOAD(_MS) but take a SVIEW register instead of a RES register as argument.
* tgsi: add support for texture offsets to the TGSI IR. (v2)Dave Airlie2011-09-021-0/+2
| | | | | | | | | | | | | This adds tokens for texture offsets, to store 4 * swizzled vec 3 for use in TXF and other opcodes. It also contains TGSI exec changes for softpipe to use this code, along with GLSL->TGSI support for TXF. v2: add some more comments, add back padding I removed. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium: implement modern sampling schemeZack Rusin2011-01-241-1/+2
| | | | | | | | | | | largely a merge of the previously discussed origin/gallium-resource-sampling but updated. the idea is to allow arbitrary binding of resources, the way opencl, new gl versions and dx10+ require, i.e. DCL RES[0], 2D, FLOAT LOAD DST[0], SRC[0], RES[0] SAMPLE DST[0], SRC[0], RES[0], SAMP[0]
* tgsi: fix rbug compile errorMarek Olšák2010-12-111-1/+2
| | | | | | | ../mesa/src/gallium/auxiliary/tgsi/tgsi_parse.h:139: error: dereferencing pointer ‘tokens.25’ does break strict-aliasing rules Signed-off-by: Marek Olšák <[email protected]>
* tgsi: Include missing header in tgsi_parse.h.Vinson Lee2010-08-271-0/+1
| | | | Include p_compiler.h for boolean and INLINE symbols.
* tgsi: helper for dumping tokens as hexKeith Whitwell2010-08-251-2/+9
|
* gallium: add a temporary array register fileZack Rusin2010-06-181-0/+2
| | | | | | | | | | | | | | like normal temporaries, but allows to define a number of distinct arrays, all of which make it explicit that they contain /indexable/ registers. as a side-effect we're adding support for multi-dimensional destination registers. The whole thing looks like this: DCL TEMPX[0][0..128] # 0 array with 128 registers ADD TEMPX[0][0], IN[0], IMM[0] ADD TEMPX[0][1], IN[0], IMM[0] ABS OUT[0], TEMPX[0][TEMP[0]]
* gallium: add a new register file - immediate arrayZack Rusin2010-06-181-0/+6
| | | | | | allows one to specify a safe (bound checked) array filled with immediates. it works just like a const array and declares much like our current immediates.
* tgsi: added tgsi_alloc_tokens()Brian Paul2010-02-021-0/+4
|
* tgsi: Handle 2-D declarations.Michal Krol2010-01-281-0/+1
|
* tgsi: add properties and system value registerZack Rusin2009-12-141-0/+7
| | | | | | adds support for properties to all parts of the tgsi framework, plus introduces a new register which will be used for system generated values.
* tgsi: Remove tgsi_version token.Michal Krol2009-11-271-6/+0
|
* tgsi: rename fields of tgsi_full_src_register to reduce verbosityKeith Whitwell2009-11-241-4/+4
| | | | | | | SrcRegister -> Register SrcRegisterInd -> Indirect SrcRegisterDim -> Dimension SrcRegisterDimInd -> DimIndirect
* tgsi: rename fields of tgsi_full_dst_register to reduce verbosityKeith Whitwell2009-11-241-2/+2
| | | | | DstRegister -> Register DstRegisterInd -> Indirect
* tgsi: rename fields of tgsi_full_declaration to reduce verbosityKeith Whitwell2009-11-241-1/+1
| | | | DeclarationRange -> Range
* tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosityKeith Whitwell2009-11-241-5/+5
| | | | | | | | InstructionPredicate -> Predicate InstructionLabel -> Label InstructionTexture -> Texture FullSrcRegisters -> Src FullDstRegisters -> Dst
* tgsi: remove unnecessary full_token init and free functionsKeith Whitwell2009-11-241-8/+0
|
* tgsi: remove unused Flags member from full_instructionKeith Whitwell2009-11-241-1/+0
|
* gallium: simplify tgsi tokens furtherKeith Whitwell2009-11-241-4/+2
| | | | | | | | | | | | | | | 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.
* tgsi: Account for gallium shader token representation changes.Michal Krol2009-11-241-1/+1
|
* tgsi: Update for gallium interface changes.Michal Krol2009-11-021-2/+1
|
* gallium: remove extended negate also, and also the ExtSwz tokenKeith Whitwell2009-10-231-1/+0
| | | | | | Likewise, the extended negate functionality hasn't been used since mesa switched to using tgsi_ureg to build programs, and has been translating the SWZ opcode internally to a single MAD.
* tgsi: added tgsi_full_instruction::Flags fieldBrian Paul2009-08-201-0/+1
| | | | Users of the parser can make use of this.
* gallium: simplify tgsi_full_immediate structKeith Whitwell2009-07-221-5/+1
| | | | | | | | | | | | | 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.
* tgis: implement indirect addressing for destination registersBrian Paul2009-07-101-0/+1
| | | | Includes the TGSI interpreter, but not the SSE/PPC/etc code generators.
* Merge tgsi/exec and tgsi/util directories.José Fonseca2008-07-281-0/+151