compiler: add SYSTEM_VALUE_TESS_LEVEL_OUTER/INNER_DEFAULT

TCS system values for internal passthru TCS, needed by radeonsi NIR support

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
Marek Olšák
2019-08-01 14:38:40 -04:00
parent 5167ca27fa
commit 9c7746ceae
4 changed files with 20 additions and 0 deletions

View File

@@ -1986,6 +1986,10 @@ nir_intrinsic_from_system_value(gl_system_value val)
return nir_intrinsic_load_tess_level_outer;
case SYSTEM_VALUE_TESS_LEVEL_INNER:
return nir_intrinsic_load_tess_level_inner;
case SYSTEM_VALUE_TESS_LEVEL_OUTER_DEFAULT:
return nir_intrinsic_load_tess_level_outer_default;
case SYSTEM_VALUE_TESS_LEVEL_INNER_DEFAULT:
return nir_intrinsic_load_tess_level_inner_default;
case SYSTEM_VALUE_VERTICES_IN:
return nir_intrinsic_load_patch_vertices_in;
case SYSTEM_VALUE_HELPER_INVOCATION:
@@ -2079,6 +2083,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
return SYSTEM_VALUE_TESS_LEVEL_OUTER;
case nir_intrinsic_load_tess_level_inner:
return SYSTEM_VALUE_TESS_LEVEL_INNER;
case nir_intrinsic_load_tess_level_outer_default:
return SYSTEM_VALUE_TESS_LEVEL_OUTER_DEFAULT;
case nir_intrinsic_load_tess_level_inner_default:
return SYSTEM_VALUE_TESS_LEVEL_INNER_DEFAULT;
case nir_intrinsic_load_patch_vertices_in:
return SYSTEM_VALUE_VERTICES_IN;
case nir_intrinsic_load_helper_invocation:

View File

@@ -559,6 +559,8 @@ system_value("invocation_id", 1)
system_value("tess_coord", 3)
system_value("tess_level_outer", 4)
system_value("tess_level_inner", 2)
system_value("tess_level_outer_default", 4)
system_value("tess_level_inner_default", 2)
system_value("patch_vertices_in", 1)
system_value("local_invocation_id", 3)
system_value("local_invocation_index", 1)

View File

@@ -594,6 +594,8 @@ typedef enum
SYSTEM_VALUE_PRIMITIVE_ID,
SYSTEM_VALUE_TESS_LEVEL_OUTER, /**< TES input */
SYSTEM_VALUE_TESS_LEVEL_INNER, /**< TES input */
SYSTEM_VALUE_TESS_LEVEL_OUTER_DEFAULT, /**< TCS input for passthru TCS */
SYSTEM_VALUE_TESS_LEVEL_INNER_DEFAULT, /**< TCS input for passthru TCS */
/*@}*/
/**

View File

@@ -643,6 +643,14 @@ ttn_src_for_file_and_index(struct ttn_compile *c, unsigned file, unsigned index,
op = nir_intrinsic_load_user_data_amd;
load = nir_load_user_data_amd(b);
break;
case TGSI_SEMANTIC_TESS_DEFAULT_INNER_LEVEL:
op = nir_intrinsic_load_tess_level_inner_default;
load = nir_load_tess_level_inner_default(b);
break;
case TGSI_SEMANTIC_TESS_DEFAULT_OUTER_LEVEL:
op = nir_intrinsic_load_tess_level_outer_default;
load = nir_load_tess_level_outer_default(b);
break;
default:
unreachable("bad system value");
}