gallium: add AMD-specific compute TGSI enums
for tgsi_to_nir
This commit is contained in:
parent
6a2bdb8d01
commit
902dd50cf0
|
@ -108,6 +108,7 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] =
|
||||||
"SUBGROUP_GT_MASK",
|
"SUBGROUP_GT_MASK",
|
||||||
"SUBGROUP_LE_MASK",
|
"SUBGROUP_LE_MASK",
|
||||||
"SUBGROUP_LT_MASK",
|
"SUBGROUP_LT_MASK",
|
||||||
|
"CS_USER_DATA_AMD",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =
|
const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =
|
||||||
|
@ -160,6 +161,7 @@ const char *tgsi_property_names[TGSI_PROPERTY_COUNT] =
|
||||||
"CS_FIXED_BLOCK_DEPTH",
|
"CS_FIXED_BLOCK_DEPTH",
|
||||||
"MUL_ZERO_WINS",
|
"MUL_ZERO_WINS",
|
||||||
"VS_BLIT_SGPRS_AMD",
|
"VS_BLIT_SGPRS_AMD",
|
||||||
|
"CS_USER_DATA_COMPONENTS_AMD",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] =
|
const char *tgsi_return_type_names[TGSI_RETURN_TYPE_COUNT] =
|
||||||
|
|
|
@ -145,7 +145,7 @@ static void si_create_compute_state_async(void *job, int thread_index)
|
||||||
sel->info.uses_block_size &&
|
sel->info.uses_block_size &&
|
||||||
sel->info.properties[TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH] == 0;
|
sel->info.properties[TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH] == 0;
|
||||||
program->num_cs_user_data_dwords =
|
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);
|
void *ir_binary = si_get_ir_binary(sel);
|
||||||
|
|
||||||
|
|
|
@ -2215,7 +2215,7 @@ void si_load_system_value(struct si_shader_context *ctx,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TGSI_SEMANTIC_CS_USER_DATA:
|
case TGSI_SEMANTIC_CS_USER_DATA_AMD:
|
||||||
value = LLVMGetParam(ctx->main_fn, ctx->param_cs_user_data);
|
value = LLVMGetParam(ctx->main_fn, ctx->param_cs_user_data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -4978,7 +4978,7 @@ static void create_function(struct si_shader_context *ctx)
|
||||||
ctx->param_block_size = add_arg(&fninfo, ARG_SGPR, v3i32);
|
ctx->param_block_size = add_arg(&fninfo, ARG_SGPR, v3i32);
|
||||||
|
|
||||||
unsigned cs_user_data_dwords =
|
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) {
|
if (cs_user_data_dwords) {
|
||||||
ctx->param_cs_user_data = add_arg(&fninfo, ARG_SGPR,
|
ctx->param_cs_user_data = add_arg(&fninfo, ARG_SGPR,
|
||||||
LLVMVectorType(ctx->i32, cs_user_data_dwords));
|
LLVMVectorType(ctx->i32, cs_user_data_dwords));
|
||||||
|
|
|
@ -261,18 +261,12 @@ enum {
|
||||||
/* Values from set_tess_state. */
|
/* Values from set_tess_state. */
|
||||||
TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI = TGSI_SEMANTIC_COUNT,
|
TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI = TGSI_SEMANTIC_COUNT,
|
||||||
TGSI_SEMANTIC_DEFAULT_TESSINNER_SI,
|
TGSI_SEMANTIC_DEFAULT_TESSINNER_SI,
|
||||||
|
|
||||||
/* Up to 4 dwords in user SGPRs for compute shaders. */
|
|
||||||
TGSI_SEMANTIC_CS_USER_DATA,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
/* Use a property enum that CS wouldn't use. */
|
/* Use a property enum that CS wouldn't use. */
|
||||||
TGSI_PROPERTY_CS_LOCAL_SIZE = TGSI_PROPERTY_FS_COORD_ORIGIN,
|
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. */
|
/* These represent the number of SGPRs the shader uses. */
|
||||||
SI_VS_BLIT_SGPRS_POS = 3,
|
SI_VS_BLIT_SGPRS_POS = 3,
|
||||||
SI_VS_BLIT_SGPRS_POS_COLOR = 7,
|
SI_VS_BLIT_SGPRS_POS_COLOR = 7,
|
||||||
|
|
|
@ -152,8 +152,8 @@ void *si_create_dma_compute_shader(struct pipe_context *ctx,
|
||||||
|
|
||||||
struct ureg_src value;
|
struct ureg_src value;
|
||||||
if (!is_copy) {
|
if (!is_copy) {
|
||||||
ureg_property(ureg, TGSI_PROPERTY_CS_USER_DATA_DWORDS, inst_dwords[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, 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);
|
struct ureg_src tid = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_THREAD_ID, 0);
|
||||||
|
|
|
@ -208,6 +208,7 @@ enum tgsi_semantic {
|
||||||
TGSI_SEMANTIC_SUBGROUP_GT_MASK,
|
TGSI_SEMANTIC_SUBGROUP_GT_MASK,
|
||||||
TGSI_SEMANTIC_SUBGROUP_LE_MASK,
|
TGSI_SEMANTIC_SUBGROUP_LE_MASK,
|
||||||
TGSI_SEMANTIC_SUBGROUP_LT_MASK,
|
TGSI_SEMANTIC_SUBGROUP_LT_MASK,
|
||||||
|
TGSI_SEMANTIC_CS_USER_DATA_AMD,
|
||||||
TGSI_SEMANTIC_COUNT, /**< number of semantic values */
|
TGSI_SEMANTIC_COUNT, /**< number of semantic values */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -302,6 +303,7 @@ enum tgsi_property_name {
|
||||||
TGSI_PROPERTY_CS_FIXED_BLOCK_DEPTH,
|
TGSI_PROPERTY_CS_FIXED_BLOCK_DEPTH,
|
||||||
TGSI_PROPERTY_MUL_ZERO_WINS,
|
TGSI_PROPERTY_MUL_ZERO_WINS,
|
||||||
TGSI_PROPERTY_VS_BLIT_SGPRS_AMD,
|
TGSI_PROPERTY_VS_BLIT_SGPRS_AMD,
|
||||||
|
TGSI_PROPERTY_CS_USER_DATA_COMPONENTS_AMD,
|
||||||
TGSI_PROPERTY_COUNT,
|
TGSI_PROPERTY_COUNT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue