spirv: don't fail on CapabilitySubgroupDispatch if supported

Since only Anv uses the value, I'm only enabling this on anv.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 518693c3ec ("spirv: Handle the SubgroupSize execution mode")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13034>
This commit is contained in:
Lionel Landwerlin 2021-09-24 17:26:23 +03:00 committed by Marge Bot
parent 1d676fdee9
commit 9d9e67d118
3 changed files with 14 additions and 0 deletions

View file

@ -91,6 +91,7 @@ struct spirv_supported_capabilities {
bool subgroup_arithmetic;
bool subgroup_ballot;
bool subgroup_basic;
bool subgroup_dispatch;
bool subgroup_quad;
bool subgroup_shuffle;
bool subgroup_uniform_control_flow;

View file

@ -4535,6 +4535,18 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
spv_check_supported(amd_shader_ballot, cap);
break;
case SpvCapabilitySubgroupDispatch:
spv_check_supported(subgroup_dispatch, cap);
/* Missing :
* - SpvOpGetKernelLocalSizeForSubgroupCount
* - SpvOpGetKernelMaxNumSubgroups
* - SpvExecutionModeSubgroupsPerWorkgroup
* - SpvExecutionModeSubgroupsPerWorkgroupId
*/
vtn_warn("Not fully supported capability: %s",
spirv_capability_to_string(cap));
break;
case SpvCapabilityVariablePointersStorageBuffer:
case SpvCapabilityVariablePointers:
spv_check_supported(variable_pointers, cap);

View file

@ -146,6 +146,7 @@ anv_shader_compile_to_nir(struct anv_device *device,
.subgroup_arithmetic = true,
.subgroup_basic = true,
.subgroup_ballot = true,
.subgroup_dispatch = true,
.subgroup_quad = true,
.subgroup_uniform_control_flow = true,
.subgroup_shuffle = true,