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:
@@ -1986,6 +1986,10 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
|||||||
return nir_intrinsic_load_tess_level_outer;
|
return nir_intrinsic_load_tess_level_outer;
|
||||||
case SYSTEM_VALUE_TESS_LEVEL_INNER:
|
case SYSTEM_VALUE_TESS_LEVEL_INNER:
|
||||||
return nir_intrinsic_load_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:
|
case SYSTEM_VALUE_VERTICES_IN:
|
||||||
return nir_intrinsic_load_patch_vertices_in;
|
return nir_intrinsic_load_patch_vertices_in;
|
||||||
case SYSTEM_VALUE_HELPER_INVOCATION:
|
case SYSTEM_VALUE_HELPER_INVOCATION:
|
||||||
@@ -2079,6 +2083,10 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
|||||||
return SYSTEM_VALUE_TESS_LEVEL_OUTER;
|
return SYSTEM_VALUE_TESS_LEVEL_OUTER;
|
||||||
case nir_intrinsic_load_tess_level_inner:
|
case nir_intrinsic_load_tess_level_inner:
|
||||||
return SYSTEM_VALUE_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:
|
case nir_intrinsic_load_patch_vertices_in:
|
||||||
return SYSTEM_VALUE_VERTICES_IN;
|
return SYSTEM_VALUE_VERTICES_IN;
|
||||||
case nir_intrinsic_load_helper_invocation:
|
case nir_intrinsic_load_helper_invocation:
|
||||||
|
@@ -559,6 +559,8 @@ system_value("invocation_id", 1)
|
|||||||
system_value("tess_coord", 3)
|
system_value("tess_coord", 3)
|
||||||
system_value("tess_level_outer", 4)
|
system_value("tess_level_outer", 4)
|
||||||
system_value("tess_level_inner", 2)
|
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("patch_vertices_in", 1)
|
||||||
system_value("local_invocation_id", 3)
|
system_value("local_invocation_id", 3)
|
||||||
system_value("local_invocation_index", 1)
|
system_value("local_invocation_index", 1)
|
||||||
|
@@ -594,6 +594,8 @@ typedef enum
|
|||||||
SYSTEM_VALUE_PRIMITIVE_ID,
|
SYSTEM_VALUE_PRIMITIVE_ID,
|
||||||
SYSTEM_VALUE_TESS_LEVEL_OUTER, /**< TES input */
|
SYSTEM_VALUE_TESS_LEVEL_OUTER, /**< TES input */
|
||||||
SYSTEM_VALUE_TESS_LEVEL_INNER, /**< 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 */
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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;
|
op = nir_intrinsic_load_user_data_amd;
|
||||||
load = nir_load_user_data_amd(b);
|
load = nir_load_user_data_amd(b);
|
||||||
break;
|
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:
|
default:
|
||||||
unreachable("bad system value");
|
unreachable("bad system value");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user