anv: set 3DSTATE_[MESH|TASK]_CONTROL.MaximumNumberofThreadGroups

Documentation is worded in a confusing way, which may be understood that
we don't have to set this field to get good results.

MESH part of this commit improves performance of vk_meshlet_cadscene
by a factor of 2 on A380.

Fixes: ef04caea9b ("anv: Implement Mesh Shading pipeline")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19412>
(cherry picked from commit d1d2dee970)
This commit is contained in:
Marcin Ślusarz
2022-10-27 09:50:51 +02:00
committed by Dylan Baker
parent 2a7c308d5d
commit 79b70f3978
2 changed files with 3 additions and 3 deletions

View File

@@ -517,7 +517,7 @@
"description": "anv: set 3DSTATE_[MESH|TASK]_CONTROL.MaximumNumberofThreadGroups",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "ef04caea9b8b98187340fd0ec6550aed06424b60"
},

View File

@@ -2180,6 +2180,7 @@ emit_task_state(struct anv_graphics_pipeline *pipeline)
tc.TaskShaderEnable = true;
tc.ScratchSpaceBuffer =
get_scratch_surf(&pipeline->base, MESA_SHADER_TASK, task_bin);
tc.MaximumNumberofThreadGroups = 511;
}
const struct intel_device_info *devinfo = &pipeline->base.device->info;
@@ -2236,8 +2237,7 @@ emit_mesh_state(struct anv_graphics_pipeline *pipeline)
mc.MeshShaderEnable = true;
mc.ScratchSpaceBuffer =
get_scratch_surf(&pipeline->base, MESA_SHADER_MESH, mesh_bin);
/* TODO(mesh): MaximumNumberofThreadGroups. */
mc.MaximumNumberofThreadGroups = 511;
}
const struct intel_device_info *devinfo = &pipeline->base.device->info;