History log of /external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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_exec.h
82b71db03ddaf0eed504412c9169db37cf9bdadc 14-Jan-2012 Tom Stellard <tstellar@gmail.com> gallium: Move duplicated helper macros to tgsi_exec.h
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
6b63e25b3d7a6ac0bd738c139ead0c7e7ad84368 14-Jan-2012 Tom Stellard <tstellar@gmail.com> gallium: Prefix #defines in tgsi_exec.h with TGSI_
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
9ee1bcf7a5442ccb517a5cfbaf024755bd4d2738 14-Jan-2012 Tom Stellard <tstellar@gmail.com> gallium: Unify defines of CHAN_[XYZW] in tgsi_exec.h
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
34a78b7ef6b0edf217acf221eab4b63542be5552 05-Jan-2012 Dave Airlie <airlied@redhat.com> tgsi/softpipe: add VertexID support.

This required changing the system value semantics, so we stored
a system value per vertex, instance id is the only other system
value we currently support, so I span it across the channels.

This passes the 3 vertexid-* piglit tests + lots of instanceid tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
67e3cbf1632e361220234013147331e4618b70cb 09-Jan-2012 Dave Airlie <airlied@redhat.com> gallium: introduce GLSL based interpolation rules. (v2)

This introduces an unspecified interpolation paramter that is only allowed for
color semantics, so a specified GLSL interpolation will override the ShadeModel
specified interpolation, but not vice-versa.

This fixes a lot of the interpolation tests in piglit.

v2: rename from unspecified to color

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
f5bfe54a34d9c8cd5de2b096d0e8486fe0d990a7 27-Sep-2011 Marek Olšák <maraeo@gmail.com> gallium: add and use PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS

This removes:
- PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS
- PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS
in favor of the that new per-shader cap.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
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_exec.h
d562f97bef99e051842ae0cec8f5ac46a10a73c4 25-Aug-2011 Dave Airlie <airlied@redhat.com> tgsi: add TXF support.

This is a straight texel fetch with no filtering or clamping. It uses
integers to specify the i/j/k (from EXT_gpu_shader4).

To enable this I had to add another hook into the tgsi sampler so that
we could easily bypass all the filtering sample does.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
7f1b9ddd12e97ac57c4818646c17521bb0c2c358 25-Aug-2011 Dave Airlie <airlied@redhat.com> tgsi: add TXQ support. (v2)

this adds another callback in the sampler struct containing get_dims
entry point. This is used to query the driver for the texture resource
dimensions for the resource bound to the current sampler.

v2: remove unusued variable, fix indent

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
17b695e6e7dd730497fb60a8e161935b23fa0e9c 06-May-2011 Bryan Cain <bryancain3@gmail.com> gallium: add PIPE_SHADER_CAP_INTEGERS
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
ff2a0faba068ac8bc891f4a6427ad3e241c5f09f 02-Mar-2011 Zack Rusin <zack@kde.org> tgsi: defer allocation of huge inputs/outputs until we have a gs
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
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_exec.h
859f45a92197f310186924c47ef7b7d1c2bd7ec8 09-Dec-2010 Brian Paul <brianp@vmware.com> tgsi: add support for system values to TGSI interpreter
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
9aa089eac05ebefafb6610b4a7e209b2fd1e93f6 14-Nov-2010 Marek Olšák <maraeo@gmail.com> gallium: add PIPE_SHADER_CAP_SUBROUTINES

This fixes piglit/glsl-vs-main-return and glsl-fs-main-return for the drivers
which don't support RET (i915g, r300g, r600g, svga).

ir_to_mesa does not currently generate subroutines, but it's a matter of time
till it's added. It would then break all the drivers which don't implement
them, so this CAP makes sense.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
53b7ec91caa99c1ddd51262b4c311d93995726ba 12-Nov-2010 Marek Olšák <maraeo@gmail.com> tgsi: fill out CAPs for indirect addressing
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
f93d6f929f2439f87950df2c30c6c48b6dcac395 04-Nov-2010 Michal Krol <michal@vmware.com> tgsi/exec: Get rid of obsolete condition codes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
a508d2dddcc67d0f92cc36b9ed6f36a9bbfc579d 05-Sep-2010 Luca Barbieri <luca@luca-barbieri.com> gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)

Changes in v3:
- Also change trace, which I forgot about

Changes in v2:
- No longer adds tessellation shaders

Currently each shader cap has FS and VS versions.

However, we want a version of them for geometry, tessellation control,
and tessellation evaluation shaders, and want to be able to easily
query a given cap type for a given shader stage.

Since having 5 duplicates of each shader cap is unmanageable, add
a new get_shader_param function that takes both a shader cap from a
new enum and a shader stage.

Drivers with non-unified shaders will first switch on the shader
and, within each case, switch on the cap.

Drivers with unified shaders instead first check whether the shader
is supported, and then switch on the cap.

MAX_CONST_BUFFERS is now per-stage.
The geometry shader cap is removed in favor of checking whether the
limit of geometry shader instructions is greater than 0, which is also
used for tessellation shaders.

WARNING: all drivers changed and compiled but only nvfx tested
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
ba2cc3b8e6ad161181b67fd2575c6bc768584d23 29-Jul-2010 Brian Paul <brianp@vmware.com> gallium: implement bounds checking for constant buffers

Plumb the constant buffer sizes down into the tgsi interpreter where
we can do bounds checking. Optional debug code warns upon out-of-bounds
reading. Plus add a few other assertions in the TGSI interpreter.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
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_exec.h
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_exec.h
7b5931b313b8a38fd564435e69e644320fb3de5e 12-May-2010 José Fonseca <jfonseca@vmware.com> softpipe: Adverstise (tgsi_exec's) shader limits.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
fbb1ad33a42f91797327a099d6565d1c201099b4 06-May-2010 Brian Paul <brianp@vmware.com> gallium/tgsi: remove unused tgsi_exec_labels code
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
d288698a76e2ad8408d303570578856a05ea96d0 03-May-2010 José Fonseca <jfonseca@vmware.com> gallium: Remove loop register file.

It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is
just like another address register now.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
7c5f255201f42303188137f56ea8acc030444f0e 25-Jan-2010 Michal Krol <michal@vmware.com> gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
835bab0143e11ab98551a061043f944fd6eab456 19-Jan-2010 Michal Krol <michal@vmware.com> gallium: Implement 2D constant buffers for fragment shader in softpipe.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
4440428faa82f01b4dfb4be89618be2aaf153abd 07-Jan-2010 Michal Krol <michal@vmware.com> gallium: Fix texture sampling with explicit LOD in softpipe.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
4bfe1c955fe679547c8a03119d1681e33593c768 07-Jan-2010 Michal Krol <michal@vmware.com> gallium: Pass per-element (not per-quad) LOD bias values down to texture sampler.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
062aab96e015021f3b83067848495a8ce2d92456 01-Jan-2010 Michal Krol <michal@vmware.com> gallium: Add SWITCH, CASE, DEFAULT and ENDSWITCH opcodes to TGSI.

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
89d8577fb3036547ef0b47498cc8dc5c77f886e0 14-Dec-2009 Zack Rusin <zackr@vmware.com> gallium: add geometry shader support to gallium
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
0c54d76f3783091267cb18e6bd23697d024c95b2 24-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Implement predicated instructions in exec.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
cc35a454da08e7303c76a51972bcccf7d67b7704 23-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Fix POSITION and FACE fragment shader inputs.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
b7590cde4a475cd785030d7c7909846ae72608e5 23-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Bring BGNFOR/ENDFOR implementation up to spec.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
7ccf60ae40b2a201d446400bc8329df51e83cb6c 03-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Up tgsi_exec's control flow nesting to 32.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
aa2b2e5d7d53ddd08425536edddec509a8834bfc 02-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Update for gallium interface changes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
d78a19612173eda51b93818a16a947201a785f3f 10-Sep-2009 Brian Paul <brianp@vmware.com> tgsi: use new tgsi_call_record to handle execution mask stacks

This fixes some issues when "return"ing from nested loops/conditionals.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
848ab8be8c34b00b2afe6120882f8c29f047ced5 03-Sep-2009 Keith Whitwell <keithw@vmware.com> aux/tgsi: pull back ureg work from 0.1 branch

Manual merge of ureg changes on the branch. Too much unrelated stuff
for a proper merge.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
013bd4da1a4c112334c0b658f2506446df3666a6 20-Aug-2009 Brian Paul <brianp@vmware.com> tgsi: handle SOA dependencies for MOV/SWZ

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
4e3002b50fcedf3a6db1ac7394077bc3337ccda1 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> tgsi: no need to separately malloc input and output arrays

Can now guarantee alignment in the initial allocation of the tgsi exec machine.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
c202fe187cf7a08d60e23ce617a5820a8bc510fd 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> gallium: reduce recursive include of tgsi_exec.h

A lot of draw code no longer needs to see this header.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
7fb702705a77df46074b9e09e9c5e5903036c732 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> tgsi: make function call code in tgsi_sse.c less opaque

Explictly pass src and dst arguments (previously dst argument was also
being used as a src). Separate argument handling from the rest of
the function call emit.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
6175653d0bceedba1f599d27111bab14f312f134 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> gallium: proper constructor and destructor for tgsi_exec_machine

Centralize the creation, initialization and destruction of this struct.
Use align_malloc instead of home-brew alternatives.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
45e744dddc8a8f3b42610bfa512bc296bd5264bc 04-Jun-2009 Brian Paul <brianp@vmware.com> tgsi: increase MAX_LABELS to 4096
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
0f82aa5f15479aea692613fb56643bf3b769cf37 23-Mar-2009 Brian Paul <brianp@vmware.com> tgsi: minor comments
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
0b9e96fae9493d5d58f046e01c983a3c4267090e 24-Nov-2008 Brian <brian.paul@tungstengraphics.com> softpipe: remove old/unneeded dependencies between TGSI exec and softpipe

Use tgsi_sampler struct as a base class. Softpipe subclasses it and adds
the fields it needs.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
26c8593093bd9e42d06a54ed8cfdedce2fb44332 12-Nov-2008 Michal Krol <michal@tungstengraphics.com> tgsi: More comments on source register indirect and 2D indexing.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
03c0ce4c61fd970509d605fe78166e828fc1df57 05-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added tgsi_set_exec_mask()
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
e2da7edd642198d7c515dbc0b9ba77d4286c3262 18-Aug-2008 Michal Krol <michal@tungstengraphics.com> tgsi: Add condition code (CC) register.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h
c208a2c791fa24c7c5887fc496738cbddbfafc72 27-Jul-2008 José Fonseca <jrfonseca@tungstengraphics.com> Merge tgsi/exec and tgsi/util directories.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_exec.h