intel/fs/gen12: Use TCS 8_PATCH mode.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 3 May 2019 23:39:18 +0000 (16:39 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 11 Oct 2019 19:24:16 +0000 (12:24 -0700)
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/intel/compiler/brw_compiler.c
src/intel/compiler/brw_vec4_tcs.cpp

index 6404339f06fa6ab46934f588315832dc0de5eda5..06b70193dd636797371c221259c9ef87922837d6 100644 (file)
@@ -101,7 +101,8 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
    compiler->precise_trig = env_var_as_boolean("INTEL_PRECISE_TRIG", false);
 
    compiler->use_tcs_8_patch =
-      devinfo->gen >= 9 && (INTEL_DEBUG & DEBUG_TCS_EIGHT_PATCH);
+      devinfo->gen >= 12 ||
+      (devinfo->gen >= 9 && (INTEL_DEBUG & DEBUG_TCS_EIGHT_PATCH));
 
    if (devinfo->gen >= 10) {
       /* We don't support vec4 mode on Cannonlake. */
index 9d6c4f326a447f2cc55caf5426b35aaf3133a420..3ce5e268e27ed071fbbdd1f65bbd75f801f8e7b4 100644 (file)
@@ -360,12 +360,13 @@ brw_compile_tcs(const struct brw_compiler *compiler,
       nir->info.system_values_read & (1 << SYSTEM_VALUE_PRIMITIVE_ID);
 
    if (compiler->use_tcs_8_patch &&
-       nir->info.tess.tcs_vertices_out <= 16 &&
+       nir->info.tess.tcs_vertices_out <= (devinfo->gen >= 12 ? 32 : 16) &&
        2 + has_primitive_id + key->input_vertices <= 31) {
-      /* 3DSTATE_HS imposes two constraints on using 8_PATCH mode.  First,
-       * the "Instance" field limits the number of output vertices to [1, 16].
-       * Secondly, the "Dispatch GRF Start Register for URB Data" field is
-       * limited to [0, 31] - which imposes a limit on the input vertices.
+      /* 3DSTATE_HS imposes two constraints on using 8_PATCH mode. First, the
+       * "Instance" field limits the number of output vertices to [1, 16] on
+       * gen11 and below, or [1, 32] on gen12 and above. Secondly, the
+       * "Dispatch GRF Start Register for URB Data" field is limited to [0,
+       * 31] - which imposes a limit on the input vertices.
        */
       vue_prog_data->dispatch_mode = DISPATCH_MODE_TCS_8_PATCH;
       prog_data->instances = nir->info.tess.tcs_vertices_out;