spirv: Support SPV_KHR_subgroup_uniform_control_flow
There's no SPIR-V Capability associated, so check in the Execution Mode. For now, don't keep track of whether a shader uses uniform control flow in the shader_info, we can add that when/if a driver actually need that information. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11476>
This commit is contained in:

committed by
Marge Bot

parent
a219073e9b
commit
6ad88a8f08
@@ -91,6 +91,7 @@ struct spirv_supported_capabilities {
|
||||
bool subgroup_basic;
|
||||
bool subgroup_quad;
|
||||
bool subgroup_shuffle;
|
||||
bool subgroup_uniform_control_flow;
|
||||
bool subgroup_vote;
|
||||
bool tessellation;
|
||||
bool transform_feedback;
|
||||
|
@@ -5033,6 +5033,12 @@ vtn_handle_execution_mode(struct vtn_builder *b, struct vtn_value *entry_point,
|
||||
/* Handled later by vtn_handle_execution_mode_id(). */
|
||||
break;
|
||||
|
||||
case SpvExecutionModeSubgroupUniformControlFlowKHR:
|
||||
/* There's no corresponding SPIR-V capability, so check here. */
|
||||
vtn_fail_if(!b->options->caps.subgroup_uniform_control_flow,
|
||||
"SpvExecutionModeSubgroupUniformControlFlowKHR not supported.");
|
||||
break;
|
||||
|
||||
default:
|
||||
vtn_fail("Unhandled execution mode: %s (%u)",
|
||||
spirv_executionmode_to_string(mode->exec_mode),
|
||||
|
Reference in New Issue
Block a user