intel/compiler: Track primitive id in domain/evaluation shader
authorSagar Ghuge <sagar.ghuge@intel.com>
Fri, 22 Oct 2021 16:51:42 +0000 (09:51 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 26 Oct 2021 18:22:14 +0000 (18:22 +0000)
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Suggeted-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13474>

src/intel/compiler/brw_compiler.h
src/intel/compiler/brw_shader.cpp

index 3247a2e..48be135 100644 (file)
@@ -1332,6 +1332,7 @@ struct brw_tes_prog_data
    enum brw_tess_partitioning partitioning;
    enum brw_tess_output_topology output_topology;
    enum brw_tess_domain domain;
+   bool include_primitive_id;
 };
 
 struct brw_gs_prog_data
index e178828..83ed047 100644 (file)
@@ -1374,6 +1374,9 @@ brw_compile_tes(const struct brw_compiler *compiler,
       ((1 << nir->info.cull_distance_array_size) - 1) <<
       nir->info.clip_distance_array_size;
 
+   prog_data->include_primitive_id =
+      BITSET_TEST(nir->info.system_values_read, SYSTEM_VALUE_PRIMITIVE_ID);
+
    /* URB entry sizes are stored as a multiple of 64 bytes. */
    prog_data->base.urb_entry_size = ALIGN(output_size_bytes, 64) / 64;