From 0b68941405638928028ca2dc799366ef9bc7e90c Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 15 May 2018 15:10:37 +1000 Subject: [PATCH] tgsi: update property support This pulls in the latest TGSI properties. Tested-by: Elie Tournier Reviewed-by: Elie Tournier Tested-by: Jakob Bornecrantz --- src/gallium/auxiliary/tgsi/tgsi_strings.c | 7 +++++++ src/gallium/auxiliary/tgsi/tgsi_text.c | 22 ++++++++++++++++++++++ src/gallium/include/pipe/p_shader_tokens.h | 9 ++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c b/src/gallium/auxiliary/tgsi/tgsi_strings.c index b1995c0..af040cf 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_strings.c +++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c @@ -140,6 +140,13 @@ const char *tgsi_property_names[TGSI_PROPERTY_COUNT] = "TES_POINT_MODE", "NUM_CLIPDIST_ENABLED", "NUM_CULLDIST_ENABLED", + "FS_EARLY_DEPTH_STENCIL", + "FS_POST_DEPTH_COVERAGE", + "NEXT_SHADER", + "CS_FIXED_BLOCK_WIDTH", + "CS_FIXED_BLOCK_HEIGHT", + "CS_FIXED_BLOCK_DEPTH", + "MUL_ZERO_WINS", }; const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] = diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c index 16ad03b..3185c1a 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_text.c +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c @@ -1609,6 +1609,22 @@ parse_fs_coord_pixel_center( const char **pcur, uint *fs_coord_pixel_center ) return FALSE; } +static boolean +parse_property_next_shader( const char **pcur, uint *next_shader ) +{ + uint i; + + for (i = 0; i < ARRAY_SIZE(tgsi_processor_type_names); i++) { + const char *cur = *pcur; + + if (str_match_nocase_whole( &cur, tgsi_processor_type_names[i])) { + *next_shader = i; + *pcur = cur; + return TRUE; + } + } + return FALSE; +} static boolean parse_property( struct translate_ctx *ctx ) { @@ -1663,6 +1679,12 @@ static boolean parse_property( struct translate_ctx *ctx ) return FALSE; } break; + case TGSI_PROPERTY_NEXT_SHADER: + if (!parse_property_next_shader(&ctx->cur, &values[0] )) { + report_error( ctx, "Unknown next shader property value." ); + return FALSE; + } + break; case TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS: default: if (!parse_uint(&ctx->cur, &values[0] )) { diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index 10ec7a7..2705ecf 100644 --- a/src/gallium/include/pipe/p_shader_tokens.h +++ b/src/gallium/include/pipe/p_shader_tokens.h @@ -273,7 +273,14 @@ union tgsi_immediate_data #define TGSI_PROPERTY_TES_POINT_MODE 14 #define TGSI_PROPERTY_NUM_CLIPDIST_ENABLED 15 #define TGSI_PROPERTY_NUM_CULLDIST_ENABLED 16 -#define TGSI_PROPERTY_COUNT 17 +#define TGSI_PROPERTY_FS_EARLY_DEPTH_STENCIL 17 +#define TGSI_PROPERTY_FS_POST_DEPTH_COVERAGE 18 +#define TGSI_PROPERTY_NEXT_SHADER 19 +#define TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH 20 +#define TGSI_PROPERTY_CS_FIXED_BLOCK_HEIGHT 21 +#define TGSI_PROPERTY_CS_FIXED_BLOCK_DEPTH 22 +#define TGSI_PROPERTY_MUL_ZERO_WINS 23 +#define TGSI_PROPERTY_COUNT 24 struct tgsi_property { unsigned Type : 4; /**< TGSI_TOKEN_TYPE_PROPERTY */