Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
This fixes crashes with the memory debugging routines on Windows.
NOTE: This is a candidate for the 7.8 stable branch
|
|
It was only used for D3D's REP/END/BGNFOR/ENDFOR. D3D's aL register is
just like another address register now.
|
|
|
|
Allows one to declare fragment shader inputs with cylindrical wrap info.
|
|
|
|
|
|
|
|
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.
|
|
This is to maintain backward compatibility with drivers
that don't support arrays of constant buffers.
|
|
|
|
|
|
|
|
|
|
|
|
Allows declaring a contiguous block of immediates. Useful for
relative indexing.
|
|
|
|
|
|
Conflicts:
src/gallium/auxiliary/tgsi/tgsi_dump.c
src/gallium/include/pipe/p_shader_tokens.h
|
|
Do not pollute immediates with unsuccessfull attempts to expand them.
|
|
|
|
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
|
|
|
|
|
|
Allows one to declare GS input registers.
|
|
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.
|
|
|
|
|
|
Conflicts:
src/gallium/drivers/r300/r300_vs.c
|
|
|
|
|
|
Rename Semantic.SemanticName to Semantic.Name. Similar for
SemanticIndex, and the members of the tgsi_version struct.
|
|
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.
|
|
|
|
|
|
|
|
For example, we would like to have a predicate and texture token
in one instruction to do predicated texture sampling.
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
Couldn't previously emit these except by calling the opcode-specific helper.
|
|
Avoid the need to emit all constant declarations in order. Makes
referring to a specific constant in the constant buffer much easier.
|
|
Fix ureg_DECL_vs_input to reflect this and fix up all callers.
|
|
|
|
|
|
Manual merge of ureg changes on the branch. Too much unrelated stuff
for a proper merge.
|
|
Shorthand.
(cherry picked from commit de911220bbbe74cff0c79b260456ff36122b7b5b)
|