diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp index 6ce7ed12a..50918317f 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp | |||
| @@ -30,11 +30,20 @@ struct FuncTraits<ReturnType_ (*)(Args...)> { | |||
| 30 | using ArgType = std::tuple_element_t<I, std::tuple<Args...>>; | 30 | using ArgType = std::tuple_element_t<I, std::tuple<Args...>>; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | #ifdef _MSC_VER | ||
| 34 | #pragma warning(push) | ||
| 35 | #pragma warning(disable : 4702) // Ignore unreachable code warning | ||
| 36 | #endif | ||
| 37 | |||
| 33 | template <auto func, typename... Args> | 38 | template <auto func, typename... Args> |
| 34 | void SetDefinition(EmitContext& ctx, IR::Inst* inst, Args... args) { | 39 | void SetDefinition(EmitContext& ctx, IR::Inst* inst, Args... args) { |
| 35 | inst->SetDefinition<Id>(func(ctx, std::forward<Args>(args)...)); | 40 | inst->SetDefinition<Id>(func(ctx, std::forward<Args>(args)...)); |
| 36 | } | 41 | } |
| 37 | 42 | ||
| 43 | #ifdef _MSC_VER | ||
| 44 | #pragma warning(pop) | ||
| 45 | #endif | ||
| 46 | |||
| 38 | template <typename ArgType> | 47 | template <typename ArgType> |
| 39 | ArgType Arg(EmitContext& ctx, const IR::Value& arg) { | 48 | ArgType Arg(EmitContext& ctx, const IR::Value& arg) { |
| 40 | if constexpr (std::is_same_v<ArgType, Id>) { | 49 | if constexpr (std::is_same_v<ArgType, Id>) { |