gallium: add AMD-specific compute TGSI enums

for tgsi_to_nir
This commit is contained in:
Marek Olšák 2019-07-31 21:28:40 -04:00
parent 6a2bdb8d01
commit 902dd50cf0
6 changed files with 9 additions and 11 deletions

View File

@ -108,6 +108,7 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] =
"SUBGROUP_GT_MASK",
"SUBGROUP_LE_MASK",
"SUBGROUP_LT_MASK",
"CS_USER_DATA_AMD",
};
const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =
@ -160,6 +161,7 @@ const char *tgsi_property_names[TGSI_PROPERTY_COUNT] =
"CS_FIXED_BLOCK_DEPTH",
"MUL_ZERO_WINS",
"VS_BLIT_SGPRS_AMD",
"CS_USER_DATA_COMPONENTS_AMD",
};
const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] =

View File

@ -145,7 +145,7 @@ static void si_create_compute_state_async(void *job, int thread_index)
sel->info.uses_block_size &&
sel->info.properties[TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH] == 0;
program->num_cs_user_data_dwords =
sel->info.properties[TGSI_PROPERTY_CS_USER_DATA_DWORDS];
sel->info.properties[TGSI_PROPERTY_CS_USER_DATA_COMPONENTS_AMD];
void *ir_binary = si_get_ir_binary(sel);

View File

@ -2215,7 +2215,7 @@ void si_load_system_value(struct si_shader_context *ctx,
break;
}
case TGSI_SEMANTIC_CS_USER_DATA:
case TGSI_SEMANTIC_CS_USER_DATA_AMD:
value = LLVMGetParam(ctx->main_fn, ctx->param_cs_user_data);
break;
@ -4978,7 +4978,7 @@ static void create_function(struct si_shader_context *ctx)
ctx->param_block_size = add_arg(&fninfo, ARG_SGPR, v3i32);
unsigned cs_user_data_dwords =
shader->selector->info.properties[TGSI_PROPERTY_CS_USER_DATA_DWORDS];
shader->selector->info.properties[TGSI_PROPERTY_CS_USER_DATA_COMPONENTS_AMD];
if (cs_user_data_dwords) {
ctx->param_cs_user_data = add_arg(&fninfo, ARG_SGPR,
LLVMVectorType(ctx->i32, cs_user_data_dwords));

View File

@ -261,18 +261,12 @@ enum {
/* Values from set_tess_state. */
TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI = TGSI_SEMANTIC_COUNT,
TGSI_SEMANTIC_DEFAULT_TESSINNER_SI,
/* Up to 4 dwords in user SGPRs for compute shaders. */
TGSI_SEMANTIC_CS_USER_DATA,
};
enum {
/* Use a property enum that CS wouldn't use. */
TGSI_PROPERTY_CS_LOCAL_SIZE = TGSI_PROPERTY_FS_COORD_ORIGIN,
/* The number of used user data dwords in the range [1, 4]. */
TGSI_PROPERTY_CS_USER_DATA_DWORDS = TGSI_PROPERTY_FS_COORD_PIXEL_CENTER,
/* These represent the number of SGPRs the shader uses. */
SI_VS_BLIT_SGPRS_POS = 3,
SI_VS_BLIT_SGPRS_POS_COLOR = 7,

View File

@ -152,8 +152,8 @@ void *si_create_dma_compute_shader(struct pipe_context *ctx,
struct ureg_src value;
if (!is_copy) {
ureg_property(ureg, TGSI_PROPERTY_CS_USER_DATA_DWORDS, inst_dwords[0]);
value = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_CS_USER_DATA, 0);
ureg_property(ureg, TGSI_PROPERTY_CS_USER_DATA_COMPONENTS_AMD, inst_dwords[0]);
value = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_CS_USER_DATA_AMD, 0);
}
struct ureg_src tid = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_THREAD_ID, 0);

View File

@ -208,6 +208,7 @@ enum tgsi_semantic {
TGSI_SEMANTIC_SUBGROUP_GT_MASK,
TGSI_SEMANTIC_SUBGROUP_LE_MASK,
TGSI_SEMANTIC_SUBGROUP_LT_MASK,
TGSI_SEMANTIC_CS_USER_DATA_AMD,
TGSI_SEMANTIC_COUNT, /**< number of semantic values */
};
@ -302,6 +303,7 @@ enum tgsi_property_name {
TGSI_PROPERTY_CS_FIXED_BLOCK_DEPTH,
TGSI_PROPERTY_MUL_ZERO_WINS,
TGSI_PROPERTY_VS_BLIT_SGPRS_AMD,
TGSI_PROPERTY_CS_USER_DATA_COMPONENTS_AMD,
TGSI_PROPERTY_COUNT,
};