gallium: add TGSI_SEMANTIC_DEFAULT_OUTER/INNER_LEVEL
authorMarek Olšák <marek.olsak@amd.com>
Thu, 1 Aug 2019 18:21:41 +0000 (14:21 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 12 Aug 2019 18:52:17 +0000 (14:52 -0400)
for radeonsi NIR support.

src/gallium/docs/source/tgsi.rst
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader.h
src/gallium/drivers/radeonsi/si_shaderlib_tgsi.c
src/gallium/include/pipe/p_shader_tokens.h

index e72b047dbd5dfd38455e6e61867ce1ed3f744ad3..287f4b7272977625e8905876c42403ff851c21b2 100644 (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.
 
 
 ``(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
 ^^^^^^^^^^^^^^^^^^^^^^^
 
 Declaration Interpolate
 ^^^^^^^^^^^^^^^^^^^^^^^
 
index 032b6c24965549e981c527a3cd5b6469070dd590..69466361d41629c5aacd0fabad675c2e41f332d4 100644 (file)
@@ -2116,8 +2116,8 @@ void si_load_system_value(struct si_shader_context *ctx,
                value = load_tess_level(ctx, decl->Semantic.Name);
                break;
 
                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;
        {
                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);
                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,
 
                for (i = 0; i < 4; i++)
                        val[i] = buffer_load_const(ctx, buf,
index 0054a48ac15e83469279a499da4d0a05fabf2d03..2e4e4130e5cb29393240ecbf0eff376c16891f31 100644 (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
 
 #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,
 enum {
        /* Use a property enum that CS wouldn't use. */
        TGSI_PROPERTY_CS_LOCAL_SIZE = TGSI_PROPERTY_FS_COORD_ORIGIN,
index 57f8aec550c7dff25beb1f0b8f1690ffa68bdfd6..fbf83a08c948c8f19f8457df667f324976f7db91 100644 (file)
@@ -105,9 +105,9 @@ void *si_create_fixed_func_tcs(struct si_context *sctx)
                return NULL;
 
        outer = ureg_DECL_system_value(ureg,
                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,
        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);
 
        tessouter = ureg_DECL_output(ureg, TGSI_SEMANTIC_TESSOUTER, 0);
        tessinner = ureg_DECL_output(ureg, TGSI_SEMANTIC_TESSINNER, 0);
index bff3b78ab24f56752dae2b2f3ba7030a71359075..b30a257df2f9af9f39872eff05aa86b3d4457823 100644 (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_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 */
 };
 
    TGSI_SEMANTIC_COUNT,       /**< number of semantic values */
 };