Merge pull request #9430 from liamwhite/capable

spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
This commit is contained in:
Matías Locatti 2022-12-15 20:52:05 -03:00 committed by GitHub
commit 82d80869fc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1345,8 +1345,10 @@ void EmitContext::DefineInputs(const IR::Program& program) {
if (info.uses_fswzadd || info.uses_subgroup_invocation_id || info.uses_subgroup_shuffles || if (info.uses_fswzadd || info.uses_subgroup_invocation_id || info.uses_subgroup_shuffles ||
(profile.warp_size_potentially_larger_than_guest && (profile.warp_size_potentially_larger_than_guest &&
(info.uses_subgroup_vote || info.uses_subgroup_mask))) { (info.uses_subgroup_vote || info.uses_subgroup_mask))) {
AddCapability(spv::Capability::GroupNonUniform);
subgroup_local_invocation_id = subgroup_local_invocation_id =
DefineInput(*this, U32[1], false, spv::BuiltIn::SubgroupLocalInvocationId); DefineInput(*this, U32[1], false, spv::BuiltIn::SubgroupLocalInvocationId);
Decorate(subgroup_local_invocation_id, spv::Decoration::Flat);
} }
if (info.uses_fswzadd) { if (info.uses_fswzadd) {
const Id f32_one{Const(1.0f)}; const Id f32_one{Const(1.0f)};