History log of /external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.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_opcode_tmp.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_opcode_tmp.h
de71e7a4c96e513beacb94eccbb8e5241a71aaf3 20-Sep-2010 Luca Barbieri <luca@luca-barbieri.com> tgsi: add switch/case opcodes to tgsi_opcode_tmp.h
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
73e1405de0277bab2d617742ff5a764467e32899 27-Apr-2010 José Fonseca <jfonseca@vmware.com> tgsi: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
c34f6faf35c16ff81a1c4420290be4ed7f542121 02-Jan-2010 Michal Krol <michal@vmware.com> gallium: Add UMOD TGSI opcode.

Either that or have UDIV have two destination operands.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
df0826fba37f38e9ea094180c71f2460e5b50e38 23-Dec-2009 Michal Krol <michal@vmware.com> tgsi: Implement new integer opcodes.

Update interpreter and ureg.
Also, get rid of SHR -- it's actually an alias for ISHR.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
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_opcode_tmp.h
4e1d51786e0657c7430d731ac464f2a73e32eddf 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove noise opcodes

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.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
b3f4b56a3b7f979c631358caefed635c6ec56453 01-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi: remove redundant CND0 opcode

Can be implemented with CMP src2, src1, src0
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
8a7d1e7b7681a4f0be9cee9e62477317dcd09caf 13-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: add tgsi_ureg, a simplified tgsi shader builder

This is modelled on the nice & easy-to-use facilities we had
for building shaders in mesa, eg. in texenvprogram.c and friends.

Key points include pass-by-value register structs that can be manipulated
in a functional style, eg:

negate(swizzle(reg, X,X,X,X))

and per-opcode instruction functions, eg:

emit_MOV( p, writemask(dst, 0x1), negate(src));

and similar.

Additionally, the interface allows mixed emit of instructions and decls,
which are sorted out internally to obey TGSI ordering.

Immediates may be emitted at any time and are scanned against existing
immediates to try and reduce redundancy.

Not all TGSI functionality is accessible through this interface, but
most or all of what mesa uses should be.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h