diff options
| author | 2021-12-25 16:59:55 -0500 | |
|---|---|---|
| committer | 2021-12-29 19:03:50 -0500 | |
| commit | 9f34be5a6176674c9f4be0e2636cf1c01c067e69 (patch) | |
| tree | 4ae8648116cf5eacbd39d4fbc673f8384dd6caec /src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp | |
| parent | shader: Add integer attribute get optimization pass (diff) | |
| download | yuzu-9f34be5a6176674c9f4be0e2636cf1c01c067e69.tar.gz yuzu-9f34be5a6176674c9f4be0e2636cf1c01c067e69.tar.xz yuzu-9f34be5a6176674c9f4be0e2636cf1c01c067e69.zip | |
emit_glsl_integer: Use negation work around
Diffstat (limited to 'src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp')
| -rw-r--r-- | src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp index 44060df33..b0d85be99 100644 --- a/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp +++ b/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp | |||
| @@ -87,11 +87,11 @@ void EmitUDiv32(EmitContext& ctx, IR::Inst& inst, std::string_view a, std::strin | |||
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | void EmitINeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { | 89 | void EmitINeg32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { |
| 90 | ctx.AddU32("{}=uint(-({}));", inst, value); | 90 | ctx.AddU32("{}=uint(int(0)-int({}));", inst, value); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | void EmitINeg64(EmitContext& ctx, IR::Inst& inst, std::string_view value) { | 93 | void EmitINeg64(EmitContext& ctx, IR::Inst& inst, std::string_view value) { |
| 94 | ctx.AddU64("{}=-({});", inst, value); | 94 | ctx.AddU64("{}=uint64_t(int64_t(0)-int64_t({}));", inst, value); |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | void EmitIAbs32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { | 97 | void EmitIAbs32(EmitContext& ctx, IR::Inst& inst, std::string_view value) { |