diff options
| author | 2021-03-25 11:31:37 -0400 | |
|---|---|---|
| committer | 2021-07-22 21:51:24 -0400 | |
| commit | 32c5483beb2f79f5d55eb2906f2bfdfa1698bca3 (patch) | |
| tree | bca00dad85f6823746aee66f43dc0cbe2f337481 /src/shader_recompiler/backend/spirv/emit_spirv.cpp | |
| parent | shader: Track first bindless argument instead of the instruction itself (diff) | |
| download | yuzu-32c5483beb2f79f5d55eb2906f2bfdfa1698bca3.tar.gz yuzu-32c5483beb2f79f5d55eb2906f2bfdfa1698bca3.tar.xz yuzu-32c5483beb2f79f5d55eb2906f2bfdfa1698bca3.zip | |
shader: Implement SHFL
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv.cpp')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp index 107403912..cee72f50d 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp | |||
| @@ -224,7 +224,7 @@ void SetupCapabilities(const Profile& profile, const Info& info, EmitContext& ct | |||
| 224 | ctx.AddExtension("SPV_KHR_shader_draw_parameters"); | 224 | ctx.AddExtension("SPV_KHR_shader_draw_parameters"); |
| 225 | ctx.AddCapability(spv::Capability::DrawParameters); | 225 | ctx.AddCapability(spv::Capability::DrawParameters); |
| 226 | } | 226 | } |
| 227 | if (info.uses_subgroup_vote && profile.support_vote) { | 227 | if ((info.uses_subgroup_vote || info.uses_subgroup_invocation_id) && profile.support_vote) { |
| 228 | ctx.AddExtension("SPV_KHR_shader_ballot"); | 228 | ctx.AddExtension("SPV_KHR_shader_ballot"); |
| 229 | ctx.AddCapability(spv::Capability::SubgroupBallotKHR); | 229 | ctx.AddCapability(spv::Capability::SubgroupBallotKHR); |
| 230 | if (!profile.warp_size_potentially_larger_than_guest) { | 230 | if (!profile.warp_size_potentially_larger_than_guest) { |
| @@ -315,4 +315,8 @@ void EmitGetSparseFromOp(EmitContext&) { | |||
| 315 | throw LogicError("Unreachable instruction"); | 315 | throw LogicError("Unreachable instruction"); |
| 316 | } | 316 | } |
| 317 | 317 | ||
| 318 | void EmitGetInBoundsFromOp(EmitContext&) { | ||
| 319 | throw LogicError("Unreachable instruction"); | ||
| 320 | } | ||
| 321 | |||
| 318 | } // namespace Shader::Backend::SPIRV | 322 | } // namespace Shader::Backend::SPIRV |