gallium: add TGSI_SEMANTIC_DEFAULT_OUTER/INNER_LEVEL

for radeonsi NIR support.
This commit is contained in:
Marek Olšák
2019-08-01 14:21:41 -04:00
parent f8d4198998
commit 5167ca27fa
5 changed files with 19 additions and 12 deletions

View File

@@ -3495,6 +3495,18 @@ A bit mask of ``bit index < TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``(1 << subgroup_invocation) - 1`` in arbitrary precision arithmetic.
TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL
""""""""""""""""""""""""""""""""""""""
A system value equal to the default_outer_level array set via set_tess_level.
TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL
""""""""""""""""""""""""""""""""""""""
A system value equal to the default_inner_level array set via set_tess_level.
Declaration Interpolate
^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -2116,8 +2116,8 @@ void si_load_system_value(struct si_shader_context *ctx,
value = load_tess_level(ctx, decl->Semantic.Name);
break;
case TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI:
case TGSI_SEMANTIC_DEFAULT_TESSINNER_SI:
case TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL:
case TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL:
{
LLVMValueRef buf, slot, val[4];
int i, offset;
@@ -2125,7 +2125,7 @@ void si_load_system_value(struct si_shader_context *ctx,
slot = LLVMConstInt(ctx->i32, SI_HS_CONST_DEFAULT_TESS_LEVELS, 0);
buf = LLVMGetParam(ctx->main_fn, ctx->param_rw_buffers);
buf = ac_build_load_to_sgpr(&ctx->ac, buf, slot);
offset = decl->Semantic.Name == TGSI_SEMANTIC_DEFAULT_TESSINNER_SI ? 4 : 0;
offset = decl->Semantic.Name == TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL ? 4 : 0;
for (i = 0; i < 4; i++)
val[i] = buffer_load_const(ctx, buf,

View File

@@ -256,13 +256,6 @@ enum {
#define S_VS_STATE_LS_OUT_VERTEX_SIZE(x) (((unsigned)(x) & 0xFF) << 24)
#define C_VS_STATE_LS_OUT_VERTEX_SIZE 0x00FFFFFF
/* Driver-specific system values. */
enum {
/* Values from set_tess_state. */
TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI = TGSI_SEMANTIC_COUNT,
TGSI_SEMANTIC_DEFAULT_TESSINNER_SI,
};
enum {
/* Use a property enum that CS wouldn't use. */
TGSI_PROPERTY_CS_LOCAL_SIZE = TGSI_PROPERTY_FS_COORD_ORIGIN,

View File

@@ -105,9 +105,9 @@ void *si_create_fixed_func_tcs(struct si_context *sctx)
return NULL;
outer = ureg_DECL_system_value(ureg,
TGSI_SEMANTIC_DEFAULT_TESSOUTER_SI, 0);
TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL, 0);
inner = ureg_DECL_system_value(ureg,
TGSI_SEMANTIC_DEFAULT_TESSINNER_SI, 0);
TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL, 0);
tessouter = ureg_DECL_output(ureg, TGSI_SEMANTIC_TESSOUTER, 0);
tessinner = ureg_DECL_output(ureg, TGSI_SEMANTIC_TESSINNER, 0);

View File

@@ -209,6 +209,8 @@ enum tgsi_semantic {
TGSI_SEMANTIC_SUBGROUP_LE_MASK,
TGSI_SEMANTIC_SUBGROUP_LT_MASK,
TGSI_SEMANTIC_CS_USER_DATA_AMD,
TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL, /**< from set_tess_state */
TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL, /**< from set_tess_state */
TGSI_SEMANTIC_COUNT, /**< number of semantic values */
};