History log of /external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0f6a3a7de3b56a383061635016cdb10f0229bf02 23-May-2012 Vinson Lee <vlee@freedesktop.org> tgsi: Initialize Padding struct fields.

Fix uninitialized scalar variable defects report by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
96956dc5076fc03b9290368ca90e3f3b870ee613 11-May-2012 José Fonseca <jfonseca@vmware.com> gallium/tgsi: s/TGSI_BUFFER/TGSI_TEXTURE_BUFFER/

For consistency.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
223831ca146bc3aca615542794a7c3800ccbcc6f 11-May-2012 José Fonseca <jfonseca@vmware.com> gallium/tgsi: Redefine the TGSI_TEXTURE_UNKNOWN texture target.

Some code relies on the existing of an invalid texture target. It seems
safer to bring it back than to deal with unintended consequences.

This partially reverts commit a4ebb04214bab1cd9bd41967232ec89441e31744.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
e9072863b18e4a8cf78e72bf25abbb433de1b486 20-Mar-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Fix tgsi_build_full_immediate() for non-float data types.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
2644952bd4dfa3b75112dee8dfd287a12d770705 18-Mar-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Introduce the "LOCAL" register declaration modifier.

This change will be useful to implement function parameter passing on
top of TGSI. As we don't have a proper stack, a register-based
calling convention will be used instead, which isn't necessarily a bad
thing given that GPUs often have plenty of registers to spare.

Using the same register space for local temporaries and
inter-procedural communication caused some inefficiencies, because in
some cases the register allocator would lose the freedom to merge
temporary values together into the same physical register, leading to
suboptimal register (and sometimes, as a side effect, instruction)
usage.

The LOCAL declaration modifier specifies that the value isn't intended
for parameter passing and as a result the compiler doesn't have to
give any guarantees of it being preserved across function boundaries.

Ignoring the LOCAL flag doesn't change the semantics of a valid
program in any way, because local variables are just supposed to get a
more relaxed treatment. IOW, this should be a backwards-compatible
change.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
b8e808f1ef9462af8545999df514fddbbff34345 30-Apr-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Add resource write-back support.

Define a new STORE opcode with a role dual to the LOAD opcode, and add
flags to specify that a shader resource is intended for writing.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
82c90b2da8e236bc134cb2bd0ec4e09551b12164 30-Apr-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Add support for raw resources.

Normal resource access (e.g. the LOAD TGSI opcode) is supposed to
perform a series of conversions to turn the texture data as it's found
in memory into the target data type.

In compute programs it's often the case that we only want to access
the raw bits as they're stored in some buffer object, and any kind of
channel conversion and scaling is harmful or inefficient, especially
in implementations that lack proper hardware support to take care of
it -- in those cases the conversion has to be implemented in software
and it's likely to result in a performance hit even if the pipe_buffer
and declaration data types are set up in a way that would just pass
the data through.

Add a declaration flag that marks a resource as typeless. No channel
conversion will be performed in that case, and the X coordinate of the
address vector will be interpreted in byte units instead of elements
for obvious reasons.

This is similar to D3D11's ByteAddressBuffer, and will be used to
implement OpenCL's constant arguments. The remaining four compute
memory spaces can also be understood as raw resources.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
a4ebb04214bab1cd9bd41967232ec89441e31744 30-Apr-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Define the TGSI_BUFFER texture target.

This texture type was already referred to by the documentation but it
was never defined. Define it as 0 to match the pipe_texture_target
enumeration values.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
1279923d72942ee201fcc6ad40d552143f651f03 30-Apr-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Move interpolation info from tgsi_declaration to a separate token.

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
a5f44cc8c2ce0916809ce5da5a2490ad000ef099 01-May-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Split sampler views from shader resources.

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
2083a276eb270b748d1c2668eb9faa5aadc8e700 26-Aug-2011 Dave Airlie <airlied@redhat.com> tgsi: add support for texture offsets to the TGSI IR. (v2)

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 <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
08520bdea2db623044e2e46c21402039fd8fe5e2 01-May-2011 Marek Olšák <maraeo@gmail.com> tgsi: remove set-but-unused variables
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
bdbe77f9c6f06cfaa155f27c2ade3c523d7fbea7 24-Jan-2011 Zack Rusin <zackr@vmware.com> gallium: implement modern sampling scheme

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]
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
ef6b7e0a30814badd201ca1b3e1f5afb4ba21fef 04-Nov-2010 Brian Paul <brianp@vmware.com> tgsi: remove unused function
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
420400f67fce15512a8fcab770dde83a3eacc5cc 04-Nov-2010 Michal Krol <michal@vmware.com> tgsi/build: Reduce interface clutter.

Make private those functions that are used internally only.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
101f792a2af9c9a19a050afba8b60caa689466a5 18-Jun-2010 Zack Rusin <zackr@vmware.com> gallium: add a temporary array register file

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]]
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
2b221e11da7a8bf759e3c359f22ba6f49d5f0997 18-Jun-2010 Zack Rusin <zackr@vmware.com> gallium: add a new register file - immediate array

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
6f6d740c851aa8bedc7c51dbd5db14de338787f1 03-Feb-2010 Michal Krol <michal@vmware.com> gallium: Add cylindrical wrap info to TGSI declaration.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
dcf8543ab375dd9c128d1ca772b1e587cebbdc7c 21-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Handle two-dimensional constants in text parser.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
960be012a9d185c80bfcb9ff5c3781314dfb7b25 23-Dec-2009 Zack Rusin <zackr@vmware.com> tgsi: fix property parsing/building
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
3ff688ea299581e60caf5d6e1a464f68c717fe83 14-Dec-2009 Zack Rusin <zackr@vmware.com> tgsi: add properties and system value register

adds support for properties to all parts of the tgsi framework, plus
introduces a new register which will be used for system generated
values.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
bc7567d9665924650c43c661d07ae9a922554bee 07-Dec-2009 Brian Paul <brianp@vmware.com> tgsi: fix some off-by-one errors in shader length, instruction length

The ureg and/or tgsi-simplification work introduced some inconsistencies
between the ureg and traditional TGSI construction code.

Now the tgsi_instruction::NrTokens field is consistant and the
tgsi_header::BodySize field isn't off by one.

Fixes bug 25455.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
e6133564bf2e65fc86f626a45d7977bdeaff8579 27-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Remove tgsi_version token.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
e13add8cae4637d9cd2f6c40c68de30701736abf 25-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Fix token builder.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
91a4e6d53f83c45c1da9240b6325011d96b61386 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_src_register to reduce verbosity

SrcRegister -> Register
SrcRegisterInd -> Indirect
SrcRegisterDim -> Dimension
SrcRegisterDimInd -> DimIndirect
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
5b0824dfe5eaf59fa87134e7482b3d147b262901 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_dst_register to reduce verbosity

DstRegister -> Register
DstRegisterInd -> Indirect
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
fe2b31e4a896167a33d267822b36eb2de0ceecba 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_declaration to reduce verbosity

DeclarationRange -> Range
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
7d6c8f980d1e23ad6f557d650e89c715861a3b0c 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosity

InstructionPredicate -> Predicate
InstructionLabel -> Label
InstructionTexture -> Texture
FullSrcRegisters -> Src
FullDstRegisters -> Dst
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
763426a0256f0ab06f8af53947bd630f8600183a 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: reduce repetition of structure name in its members

Rename Semantic.SemanticName to Semantic.Name. Similar for
SemanticIndex, and the members of the tgsi_version struct.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
9fbfe6b65d7d45a70553b603f2166be3272d1e35 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: remove unused Flags member from full_instruction
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
ba1ca28cc62fed71c77902b95ae4ed36c6bf25f8 24-Nov-2009 Keith Whitwell <keithw@vmware.com> gallium: simplify tgsi tokens further

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
5ee0d9f632383339088cc33005b7794b0915d4e0 24-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Account for gallium shader token representation changes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
aa2b2e5d7d53ddd08425536edddec509a8834bfc 02-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Update for gallium interface changes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
da253319f9e5d37d9c55b975ef9328545a3ac9b4 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove extended negate also, and also the ExtSwz token

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
b9cb74c7f826dfd320f5e5b54aa933898f7ddd3d 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove the swizzling parts of ExtSwizzle

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
fffcecc4d93253b077479d5f550a8fc5c20e54cd 20-Aug-2009 Brian Paul <brianp@vmware.com> tgsi: added tgsi_full_instruction::Flags field

Users of the parser can make use of this.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
fd31f92cea0ce8613a22d8f4b3c75b340bcc5689 22-Jul-2009 Keith Whitwell <keithw@vmware.com> gallium: simplify tgsi_full_immediate struct

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
cff2126f522bb511216f64427b3060467e266f8a 11-Jul-2009 Brian Paul <brianp@vmware.com> tgsi: update some assertions
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
baa7ff47d548cdcc1ea68657ee1b0500f78041be 10-Jul-2009 Brian Paul <brianp@vmware.com> tgis: implement indirect addressing for destination registers

Includes the TGSI interpreter, but not the SSE/PPC/etc code generators.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
ea4bf267e4b023b08043f91ac44592fed1736e7f 18-Feb-2009 José Fonseca <jfonseca@vmware.com> util: Move p_debug.h into util module.

The debug functions depend on several util function for os abstractions, and
these depend on debug functions, so a seperate module is not possible.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
5ecd0b0890fd48656e46c017830a9f5d6b906aae 10-Feb-2009 Michal Krol <michal@vmware.com> tgsi: Fix build -- rename Size to NrTokens.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
4de360e67d83cd6503fb8ad053bb8afe507db5fa 25-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added centroid/invarient fields to declarations
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
434e255eae90b0f3d836d452b7d3b0c5aadf78b8 24-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> tgsi: add tgsi_declaration fields for centroid sampling, invariant optimization
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
31d2e5b954ece02070555b51c06ee427cf951b1f 12-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: use new compare32() function to fix warnings about type punning and aliasing
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
4f25420bdd834e81a3e22733304efc5261c2998a 25-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h

Also, rename p_tile.[ch] to u_tile.[ch]
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
bfdb1d55d58d70044af9fcd6f8465179145581dd 13-Aug-2008 Michal Krol <michal@tungstengraphics.com> tgsi: Fix typo.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c
c208a2c791fa24c7c5887fc496738cbddbfafc72 27-Jul-2008 José Fonseca <jrfonseca@tungstengraphics.com> Merge tgsi/exec and tgsi/util directories.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_build.c