Просмотр исходного кода

Merge pull request #9430 from liamwhite/capable

spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
Matías Locatti 3 лет назад
Родитель
Сommit
82d80869fc
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      src/shader_recompiler/backend/spirv/spirv_emit_context.cpp

+ 2 - 0
src/shader_recompiler/backend/spirv/spirv_emit_context.cpp

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