diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index ed0d865d113..f346d840fe7 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -1297,6 +1297,8 @@ brw_nir_link_shaders(const struct brw_compiler *compiler, .num_workgroups[0] = producer->info.mesh.ts_mesh_dispatch_dimensions[0], .num_workgroups[1] = producer->info.mesh.ts_mesh_dispatch_dimensions[1], .num_workgroups[2] = producer->info.mesh.ts_mesh_dispatch_dimensions[2], + /* nir_lower_idiv generates expensive code */ + .shortcut_1d_workgroup_id = compiler->devinfo->verx10 >= 125, }; NIR_PASS(_, consumer, nir_lower_compute_system_values, &options); diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 1628154b0f7..bb0f4e02f44 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -939,6 +939,8 @@ anv_pipeline_lower_nir(struct anv_pipeline *pipeline, nir_lower_compute_system_values_options options = { .lower_cs_local_id_to_index = true, .lower_workgroup_id_to_index = true, + /* nir_lower_idiv generates expensive code */ + .shortcut_1d_workgroup_id = compiler->devinfo->verx10 >= 125, }; NIR_PASS(_, nir, nir_lower_compute_system_values, &options);