From 057c3d5c3520cd7c45111f9dfd61aaa097e082df Mon Sep 17 00:00:00 2001
From: Hans-Kristian Arntzen <post@themaister.net>
Date: Fri, 1 Jul 2022 20:12:02 +0200
Subject: [PATCH] Fix abs bug.

Was using integer abs instead of FP abs in Lanczos LUT ...
abs() was likely pulled in from MSVC macro version.
This broke on GCC which used stdlib abs, which is integer by default ...
---
 src/ffx-fsr2-api/ffx_fsr2.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ffx-fsr2-api/ffx_fsr2.cpp b/src/ffx-fsr2-api/ffx_fsr2.cpp
index 39d8f37..ac42b61 100644
--- a/src/ffx-fsr2-api/ffx_fsr2.cpp
+++ b/src/ffx-fsr2-api/ffx_fsr2.cpp
@@ -29,6 +29,7 @@
 #include "shaders/ffx_fsr1.h"
 #include "shaders/ffx_spd.h"
 #include "shaders/ffx_fsr2_callbacks_hlsl.h"
+#include <cmath>
 
 #include "ffx_fsr2_maximum_bias.h"
 
@@ -157,7 +158,7 @@ FfxConstantBuffer globalFsr2ConstantBuffers[3] = {
 // Lanczos
 static float lanczos2(float value)
 {
-    return abs(value) < FFX_EPSILON ? 1.f : (sinf(FFX_PI * value) / (FFX_PI * value)) * (sinf(0.5f * FFX_PI * value) / (0.5f * FFX_PI * value));
+    return std::abs(value) < FFX_EPSILON ? 1.f : (sinf(FFX_PI * value) / (FFX_PI * value)) * (sinf(0.5f * FFX_PI * value) / (0.5f * FFX_PI * value));
 }
 
 // Calculate halton number for index and base.