History log of /external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8ff8c91893cee8b1893de91e145c8496a12ab9ca 26-Oct-2012 Marek Olšák <maraeo@gmail.com> mesa: bump MAX_VARYING to 32

We're starting to get apps utilizing more than 16 varyings and
most current hardware supports 32 anyway.

Tested with r600g.
swrast, softpipe and llvmpipe still advertise 16 varyings.

This fixes a WebGL crash after launching this demo:
https://developer.mozilla.org/en-US/demos/detail/falling-cubes

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54402

NOTE: This is a candidate for the stable branches.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit b3921e1f53833420e0a0fd581f741744e7957a05)

Conflicts:
src/mesa/main/context.c
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
f5c41e16d7b09e7c342bff8ec5888db88c071be3 29-Jun-2012 José Fonseca <jfonseca@vmware.com> gallium/tgsi: Don't declare temps individually when they are all similar.

tgsi_ureg was recently enhanced to support local temporaries, and as result
temps are declared individually.

This change avoids many TEMP register declarations on common shaders.

(And fixes performance regression due to mismatches against performance
sensitive shaders.)

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
b52e374ad3b568fc1eb35df80e90a39b4cb99289 26-Mar-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi/ureg: Support local temporary emission.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
1b8aecc797b72a84c4a571639e952fe1f84e0fa5 08-Dec-2011 Francisco Jerez <currojerez@riseup.net> gallium/tgsi/ureg: Lift the restriction on releasing temporaries over UREG_MAX_TEMP.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.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_ureg.c
6951870e5790a4b563bfa3b943ed338f9c5922ac 02-Jan-2012 Bryan Cain <bryancain3@gmail.com> gallium: add support for clip distances
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
8a9a37cebeff19b56afed43ae037d00950fa7594 09-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: utility helper functions for stream output
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
861a029ddb31e91bb4d8e18ab708d0d172f63aad 15-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: interface changes necessary to implement transform feedback (v5)

Namely:
- EXT_transform_feedback
- ARB_transform_feedback2
- ARB_transform_feedback_instanced

The old interface was not useful for OpenGL and had to be reworked.

This interface was originally designed for OpenGL, but additional
changes have been made in order to make st/d3d1x support easier.

The most notable change is the stream-out info must be linked
with a vertex or geometry shader and cannot be set independently.
This is due to limitations of existing hardware (special shader
instructions must be used to write into stream-out buffers),
and it's also how OpenGL works (stream outputs must be specified
prior to linking shaders).

Other than that, each stream output buffer has a "view" into it that
internally maintains the number of bytes which have been written
into it. (one buffer can be bound in several different transform
feedback objects in OpenGL, so we must be able to have several views
around) The set_stream_output_targets function contains a parameter
saying whether new data should be appended or not.

Also, the view can optionally be used to provide the vertex
count for draw_vbo. Note that the count is supposed to be stored
in device memory and the CPU never gets to know its value.

OpenGL way | Gallium way
------------------------------------
BeginTF = set_so_targets(append_bitmask = 0)
PauseTF = set_so_targets(num_targets = 0)
ResumeTF = set_so_targets(append_bitmask = ~0)
EndTF = set_so_targets(num_targets = 0)
DrawTF = use pipe_draw_info::count_from_stream_output

v2: * removed the reset_stream_output_targets function
* added a parameter append_bitmask to set_stream_output_targets,
each bit specifies whether new data should be appended to each
buffer or not.
v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2,
note that the draw-auto subset is always required (for d3d10),
only the pause/resume functionality is limited if the CAP is not
advertised
v4: * update gallium/docs
v5: * compactified struct pipe_stream_output_info, updated dump/trace
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
06f217d80f3d1318da4974bf7b31ea7edcf5eb0b 18-Nov-2011 Marek Olšák <maraeo@gmail.com> gallium: implement ARB_conservative_depth

This adds a new TGSI property to represent the GLSL layout qualifier in TGSI.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
40864b85aa70b6bc523dbb9792449e6a3dfac4b2 15-Nov-2011 Vadim Girlin <vadimgirlin@gmail.com> gallium: add PIPE_SHADER_CAP_OUTPUT_READ

It's intended to indicate whether the driver/hardware supports reading
of the values written into shader outputs.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.c
ff038170ff9042c0ee535be7c2837d200e06b0c0 29-May-2011 Marek Olšák <maraeo@gmail.com> tgsi/ureg: bump the limit of immediates

Lowered indirect addressing can create lots of immediates.

Fixes piglit/glsl-fs-uniform-array-7 on r300g.

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.c
c9c8a5ed02408495b3132cabd7947cc352a117a2 18-Dec-2010 Dave Airlie <airlied@redhat.com> gallium: add fragment shader property for color writes to all buffers. (v2)

For GL fragColor semantics we need to tell the pipe drivers that the fragment
shader color result is to be replicated to all bound color buffers, this
adds the basic TGSI + documentation.

v2: fix missing comma pointed out by Tilman on mesa-dev.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
ff531c5b05cb4c078b42c6b14e707646d3d158c9 27-Sep-2010 Luca Barbieri <luca@luca-barbieri.com> ureg: support centroid interpolation
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
23969670387bc0bb7d0761936905e5eb4df963dc 11-Jun-2010 Zack Rusin <zack@kde.org> tgsi: support 2d indirect addressing
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
d4ef0f6c67aefe06d8dd647acf8d9005df39a709 09-Jun-2010 Zack Rusin <zack@kde.org> geometry shaders: make gs work with changable primitives and variable number of vertices

lots and lots of fixes for geometry shaders. in particular now we work when the gs
emits a different primitive than the one the pipeline was started with and also
we work when gs emits more vertices than would fit in the original buffer.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
edbc302ad678e1a4a8803ba0e827a13dd27105d2 11-May-2010 José Fonseca <jfonseca@vmware.com> mesa/st+tgsi: Provide a free callback to match with ureg_get_tokens().

This fixes crashes with the memory debugging routines on Windows.

NOTE: This is a candidate for the 7.8 stable branch
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
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_ureg.c
1673bb38bbc4b05f823abecbfaae06e9ce52eb9b 18-Apr-2010 Brian Paul <brianp@vmware.com> tgsi: replace 0xf with TGSI_WRITEMASK_XYZW
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
33a9fb35dd4c74945840ce1e1b496c43ecfc92de 03-Feb-2010 Michal Krol <michal@vmware.com> tgsi: Add ureg_DECL_fs_input_cyl().

Allows one to declare fragment shader inputs with cylindrical wrap info.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
45dac0d82a5a69166e86dce77c2550f7512c541e 03-Feb-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-embedded'
38f6f23fcf37247fd709d1c612d08bfa9b124e69 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: Make pipe_atomic a regular int32_t.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
ad83f3bf0a633d5d7360c849010f01063afc1702 02-Feb-2010 Michal Krol <michal@vmware.com> tgsi: ureg_DECL_gs_input() accepts shader semantics.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
73317139a4f78126af0dc4ddaef8206352740727 21-Jan-2010 Luca Barbieri <luca@luca-barbieri.com> tgsi: add properties for fragment coord conventions (v3)

Changes in v3:
- Documented the new properties
- Added comments for property values
- Rebased to current master

Changes in v2:
- Caps are added in a separate, subsequent patch

This adds two TGSI fragment program properties that indicate the
fragment coord conventions.

The properties behave as described in the extension spec for
GL_ARB_fragment_coord_conventions, but the default origin in
upper left instead of lower left as in OpenGL.

The syntax is:
PROPERTY FS_COORD_ORIGIN [UPPER_LEFT|LOWER_LEFT]
PROPERTY FS_COORD_PIXEL_CENTER [HALF_INTEGER|INTEGER]

The names have been chosen for consistency with the GS properties
and the OpenGL extension spec.

The defaults are of course the previously assumed conventions:
UPPER_LEFT and HALF_INTEGER.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
9e895831bcb35b0a14f68538376b15ae4e94ae0d 27-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Constants declared with ureg_DECL_constant() are one-dimensional.

This is to maintain backward compatibility with drivers
that don't support arrays of constant buffers.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
3ba2ab3a23099f00366bdbec09f18612bfa71225 27-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Add ureg_property_gs_output_prim/max_vertices().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
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_ureg.c
4367de152cc5bd7240d75a33e75c1b1671b5cc16 19-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Handle 2-D declarations.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
5dcc088bf16c8c4659e5e7c272ab226f0ed95d75 28-Jan-2010 Vinson Lee <vlee@vmware.com> tgsi: Silence uninitialized variable warning.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
463351ea6c953c3db7f135ba97160a212562daef 18-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Allow TEMPORARY registers as indirect address into source operands.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
4698a865e076998107c188b39db039bdcbaac3a9 18-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Add ureg_DECL_immediate_block_uint().

Allows declaring a contiguous block of immediates. Useful for
relative indexing.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
42d55953b19db8916a677abc606b8d0a923efb5d 15-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Add ureg_property_gs_input_prim().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
181adca5d6f03390dcfed567be6dfd9e14eb94a7 15-Jan-2010 Michal Krol <michal@vmware.com> tgsi: Add ureg_src_dimension().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
9b21b3c52a8a7d58d08151d1a6bf25c472dec213 05-Jan-2010 Michal Krol <michal@vmware.com> Merge branch 'master' into instanced-arrays

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_dump.c
src/gallium/include/pipe/p_shader_tokens.h
08a3efee10034d9bd8809eb6707a372b81ea3957 23-Dec-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Improve immediate match & expand logic.

Do not pollute immediates with unsuccessfull attempts to expand them.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
ff56a12051a91c5c69db9afb85e4a3ebdb17ef96 23-Dec-2009 Michal Krol <michal@vmware.com> tgsi: Support signed/unsigned integer immediate types.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
25024d948298a9f3f3210a0b91486f79a3917b0f 31-Dec-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_7_branch'

Conflicts:
configs/darwin
src/gallium/auxiliary/util/u_clear.h
src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
src/mesa/drivers/dri/i965/brw_draw_upload.c
5754185d39c147cd81b97fd331ccf78aebfad5e7 30-Dec-2009 Michal Krol <michal@vmware.com> tgsi: Support system values in ureg.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
0463ee64e39951257d0bb7c5a9b6c894fe761dd1 28-Dec-2009 Vinson Lee <vlee@vmware.com> tgsi/ureg: Silence uninitialized variable warnings.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
c14be63c5647e4406a0a4d80570a4def593b551b 14-Dec-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Add ureg_DECL_gs_input().

Allows one to declare GS input registers.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.c
cdb6849fc1fa0c6e360c89a6388dc8bf19a746ca 03-Dec-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Fix ureg_emit_src().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
574715d8368f99c0a5720a9676385d58d6cfdf30 01-Dec-2009 Keith Whitwell <keithw@vmware.com> tgsi: fix ureg emit after version token change
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
87eec80c1120d2cd9749ee360b77922feabf7f10 01-Dec-2009 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/tgsi-simplify-ext'

Conflicts:
src/gallium/drivers/r300/r300_vs.c
e6133564bf2e65fc86f626a45d7977bdeaff8579 27-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Remove tgsi_version token.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
75df599e30bda03b40c0442eff3e39ec84397ede 26-Nov-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Add forgotten goto in ureg_DECL_constant().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.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_ureg.c
59a70c364df03c34abc72bca2cdca8fae12d8f68 24-Nov-2009 Michal Krol <michal@vmware.com> tgsi: Add ureg_DECL_loop().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.c
e44c77028c2964891943e4235e44d93c559de088 10-Nov-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Simplify logic in tokens_expand().
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
767bc8eb5a0bbaf9fde9d760e8460d34c51d2991 04-Nov-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Allow for multiple extended instruction tokens.

For example, we would like to have a predicate and texture token
in one instruction to do predicated texture sampling.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
c379fbbe244bf6778c5bd66c1f2118f83b08f90d 02-Nov-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Add negate and swizzle for predicates.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
962ece954068646f8e2c0e9ea81395ab7eaf5ee8 02-Nov-2009 Michal Krol <michal@vmware.com> tgsi/ureg: Update for gallium interface changes.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.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_ureg.c
055fe5768c6e455b3466be47e1771711c495f1c6 13-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi: add missing implementation of constant decl change
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
11f41f54cf4ce1cdc19c4b5c45ed8d2083d96831 12-Sep-2009 Keith Whitwell <keithw@vmware.com> ureg: add a mechanism to get the built tokens rather than a full shader

Previously ureg would always call the driver's create-shader function. This
allows the caller the opportunity to hold onto the tokens if it needs to
reuse them, eg. to create an internal draw shader.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
c23894295b593b9a8561e9775199e1c78ea4435d 12-Sep-2009 Keith Whitwell <keithw@vmware.com> ureg: add generic emitters for tex and branch instructions

Couldn't previously emit these except by calling the opcode-specific helper.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
ae4704eabc237e13c9b06df9c44f31c9baca6208 12-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi/ureg: give ureg_DECL_constant an explicit index parameter

Avoid the need to emit all constant declarations in order. Makes
referring to a specific constant in the constant buffer much easier.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
6d8dbd3d1ec888300fb0e9ac3cf61808ba8ecc2b 12-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi/ureg: VS inputs don't have any semantic tags, just an index

Fix ureg_DECL_vs_input to reflect this and fix up all callers.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
149945c432115ef27788216063dd453624caa9e9 12-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi: free tokens on error
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
e90fb86ac3f3a000c91d2cd9fab2bf27d4ede0e7 12-Sep-2009 Keith Whitwell <keithw@vmware.com> tgsi: sanity check ureg programs
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
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_ureg.c
02c523dfbb1b6854eeab9619afe4efbd59a5c8fc 24-Aug-2009 José Fonseca <jfonseca@vmware.com> tgsi: Only free temp uregs.

Shorthand.
(cherry picked from commit de911220bbbe74cff0c79b260456ff36122b7b5b)
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
acc7da90356a96efb93bb3a6a53e0b5f67ce993a 24-Aug-2009 José Fonseca <jfonseca@vmware.com> tgsi: Pass pipe_context as a parameter to ureg_create_shader.

Simplifies migration to tgsi_ureg.
(cherry picked from commit f574398c07c41cb8d31249a7186fc178ef7d552a)
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
b570a7e6b6ebd05e94fd91f2df53de7d2e2e05d2 24-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: add generic instruction builder

When translating an incoming shader (rather than building one from scratch)
it's preferable to be able to call a single, generic instruction emitter
rather than figuring out which of the opcode-specific functions to call.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
c69d9296fbf02ed2a50e37456a733bef885995ca 17-Aug-2009 José Fonseca <jfonseca@vmware.com> tgsi: Add missing include.
(cherry picked from commit d2787c02c130b1fe20d0c032d468622f2fdaef79)
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
b2f3f7dd12eeab31c7edbc7c5ff52230bc8c4296 18-Aug-2009 José Fonseca <jfonseca@vmware.com> tgsi: Fix typo in ureg constant creation.
(cherry picked from commit aa40c9abc7787fdf46cb661a4d0bb8bec513fc63)
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
65079afcde1be96d980b56e86bdd023d8e5a338b 19-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: silence compiler warning
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
7dc55275922aa52f281b7d8d4a5d776a3799b762 19-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: remove unused function argument
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
265e210edb2fdf0f6ae777635676f05613b38eb7 19-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: add missing functionality to support instructions with labels

Could previously emit opcodes with label arguments, but was no way to
patch them with the actual destinations of those labels.

Adds two functions:

ureg_get_instruction_number - to get the id of the next instruction
to be emitted

ureg_fixup_label - to patch an emitted label to point to a given
instruction number.

Need some more complex examples than u_simple_shader, so far this has
only been compile-tested.
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
f2fcd5822a0b308e8b9410061996377c0b4a0a91 13-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: add simple facility for releasing and reusing temporaries
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
78918c876054fc428e6f78c02526c0323d134a6c 13-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: turn off debugging
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
749e52049dee6717023309f6446efb2c89ed720c 13-Aug-2009 Keith Whitwell <keithw@vmware.com> tgsi: use REALLOC for growing token pool
/external/mesa3d/src/gallium/auxiliary/tgsi/tgsi_ureg.c
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_ureg.c