v3dv: setup loop unrolling
We set the maximum at 16 iterations (the GL compiler chooses 32 iterations for the GLSL front-end loop unrolling pass) because we have observed a bunch of shaders from Sascha Willems that spill significantly with 32, leading to massive performance degradation, while 16 avoids spilling and doesn't seem to cause visible performance degradation compared to cases that unroll 32 without spilling. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10647>
This commit is contained in:
parent
ec72b876fe
commit
db3fa1cc8c
|
@ -233,6 +233,7 @@ const nir_shader_compiler_options v3dv_nir_options = {
|
|||
.vertex_id_zero_based = false, /* FIXME: to set this to true, the intrinsic
|
||||
* needs to be supported */
|
||||
.lower_interpolate_at = true,
|
||||
.max_unroll_iterations = 16,
|
||||
.divergence_analysis_options =
|
||||
nir_divergence_multiple_workgroup_per_compute_subgroup
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue