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
|