diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-05-24 06:55:39 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:36 +0200 |
commit | df793fc0493a67ca2838ba816232da8409d03c8a (patch) | |
tree | 826775d0642001231c28c0233674ee2cc5ee817a /src/shader_recompiler/backend/glsl/reg_alloc.cpp | |
parent | glsl: Add a more robust fp formatter (diff) | |
download | yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar.gz yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar.bz2 yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar.lz yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar.xz yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.tar.zst yuzu-df793fc0493a67ca2838ba816232da8409d03c8a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/shader_recompiler/backend/glsl/reg_alloc.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glsl/reg_alloc.cpp b/src/shader_recompiler/backend/glsl/reg_alloc.cpp index 007f8c89d..9f529c358 100644 --- a/src/shader_recompiler/backend/glsl/reg_alloc.cpp +++ b/src/shader_recompiler/backend/glsl/reg_alloc.cpp @@ -25,6 +25,18 @@ std::string Representation(Id id) { } std::string FormatFloat(std::string_view value, IR::Type type) { + // TODO: Confirm FP64 nan/inf + if (type == IR::Type::F32) { + if (value == "nan") { + return "uintBitsToFloat(0x7fc00000)"; + } + if (value == "inf") { + return "uintBitsToFloat(0x7f800000)"; + } + if (value == "-inf") { + return "uintBitsToFloat(0xff800000)"; + } + } const bool needs_dot = value.find_first_of('.') == std::string_view::npos; const bool needs_suffix = !value.ends_with('f'); const auto suffix = type == IR::Type::F32 ? "f" : "lf"; |