diff --git a/src/util/util_vector.h b/src/util/util_vector.h index 43deeb922..ace6cde76 100644 --- a/src/util/util_vector.h +++ b/src/util/util_vector.h @@ -151,12 +151,18 @@ namespace dxvk { static_assert(sizeof(Vector4i) == sizeof(int) * 4); inline Vector4 replaceNaN(Vector4 a) { + #ifdef DXVK_ARCH_X86 Vector4 result; __m128 value = _mm_load_ps(a.data); __m128 mask = _mm_cmpeq_ps(value, value); value = _mm_and_ps(value, mask); _mm_store_ps(result.data, value); return result; + #else + for (int i = 0; i < 4; i++) + a[i] = std::isnan(a[i]) ? 0.0f : a[i]; + return a; + #endif } }