gallium: add GS_INVOCATIONS property

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Ilia Mirkin 2014-04-23 23:14:55 -04:00
parent 76db20fc67
commit 4be146b108
3 changed files with 19 additions and 1 deletions

View File

@ -1468,6 +1468,14 @@ static void emit_decls( struct ureg_program *ureg )
ureg->property_gs_max_vertices);
}
if (ureg->property_gs_invocations != ~0) {
assert(ureg->processor == TGSI_PROCESSOR_GEOMETRY);
emit_property(ureg,
TGSI_PROPERTY_GS_INVOCATIONS,
ureg->property_gs_invocations);
}
if (ureg->property_fs_coord_origin) {
assert(ureg->processor == TGSI_PROCESSOR_FRAGMENT);
@ -1757,6 +1765,7 @@ struct ureg_program *ureg_create( unsigned processor )
ureg->property_gs_input_prim = ~0;
ureg->property_gs_output_prim = ~0;
ureg->property_gs_max_vertices = ~0;
ureg->property_gs_invocations = ~0;
ureg->free_temps = util_bitmask_create();
if (ureg->free_temps == NULL)

View File

@ -2765,6 +2765,14 @@ distance outputs.
This is useful for APIs that don't have UCPs and where clip distances written
by a shader cannot be disabled.
GS_INVOCATIONS
""""""""""""""
Specifies the number of times a geometry shader should be executed for each
input primitive. Each invocation will have a different
TGSI_SEMANTIC_INVOCATIONID system value set. If not specified, assumed to
be 1.
Texture Sampling and Texture Formats
------------------------------------

View File

@ -236,7 +236,8 @@ union tgsi_immediate_data
#define TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS 5
#define TGSI_PROPERTY_FS_DEPTH_LAYOUT 6
#define TGSI_PROPERTY_VS_PROHIBIT_UCPS 7
#define TGSI_PROPERTY_COUNT 8
#define TGSI_PROPERTY_GS_INVOCATIONS 8
#define TGSI_PROPERTY_COUNT 9
struct tgsi_property {
unsigned Type : 4; /**< TGSI_TOKEN_TYPE_PROPERTY */