intel/fs: Add and use a new load_simd_width_intel intrinsic
Intrinsic to get the SIMD width, which not always the same as subgroup size. Starting with a small scope (Intel), but we can rename it later to generalize if this turns out useful for other drivers. Change brw_nir_lower_cs_intrinsics() to use this intrinsic instead of a width will be passed as argument. The pass also used to optimized load_subgroup_id for the case that the workgroup fitted into a single thread (it will be constant zero). This optimization moved together with lowering of the SIMD. This is a preparation for letting the drivers call it before the brw_compile_cs() step. No shader-db changes in BDW, SKL, ICL and TGL. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4794>
This commit is contained in:
@@ -99,8 +99,7 @@ void
|
||||
brw_nir_link_shaders(const struct brw_compiler *compiler,
|
||||
nir_shader *producer, nir_shader *consumer);
|
||||
|
||||
bool brw_nir_lower_cs_intrinsics(nir_shader *nir,
|
||||
unsigned dispatch_width);
|
||||
bool brw_nir_lower_cs_intrinsics(nir_shader *nir);
|
||||
void brw_nir_lower_alpha_to_coverage(nir_shader *shader);
|
||||
void brw_nir_lower_legacy_clipping(nir_shader *nir,
|
||||
int nr_userclip_plane_consts,
|
||||
|
Reference in New Issue
Block a user