|
|
@@ -144,6 +144,8 @@
|
|
|
# define GLM_HAS_CXX11_STL 0
|
|
|
#elif (GLM_COMPILER & GLM_COMPILER_CUDA_RTC) == GLM_COMPILER_CUDA_RTC
|
|
|
# define GLM_HAS_CXX11_STL 0
|
|
|
+#elif (GLM_COMPILER & GLM_COMPILER_HIP)
|
|
|
+# define GLM_HAS_CXX11_STL 0
|
|
|
#elif GLM_COMPILER & GLM_COMPILER_CLANG
|
|
|
# if (defined(_LIBCPP_VERSION) || (GLM_LANG & GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED))
|
|
|
# define GLM_HAS_CXX11_STL 1
|
|
|
@@ -167,7 +169,8 @@
|
|
|
#else
|
|
|
# define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_VC))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N1988
|
|
|
@@ -177,7 +180,8 @@
|
|
|
# define GLM_HAS_EXTENDED_INTEGER_TYPE (\
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)))
|
|
|
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP)))
|
|
|
#endif
|
|
|
|
|
|
// N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
|
|
|
@@ -189,7 +193,8 @@
|
|
|
# define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
|
|
|
@@ -200,7 +205,8 @@
|
|
|
#else
|
|
|
# define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
(GLM_COMPILER & GLM_COMPILER_VC) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA)))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP)))
|
|
|
#endif
|
|
|
|
|
|
// N2346
|
|
|
@@ -212,7 +218,8 @@
|
|
|
# define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
- (GLM_COMPILER & GLM_COMPILER_CUDA)))
|
|
|
+ (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP)))
|
|
|
#endif
|
|
|
|
|
|
// N2118
|
|
|
@@ -223,7 +230,8 @@
|
|
|
#else
|
|
|
# define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
|
|
|
@@ -235,7 +243,8 @@
|
|
|
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
|
|
|
@@ -247,7 +256,8 @@
|
|
|
# define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
|
|
|
@@ -259,7 +269,8 @@
|
|
|
# define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
|
|
|
@@ -271,7 +282,8 @@
|
|
|
# define GLM_HAS_ALIGNOF ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)) || \
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
// N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
|
|
|
@@ -335,7 +347,8 @@
|
|
|
#else
|
|
|
# define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
|
|
|
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
|
|
|
- ((GLM_COMPILER & GLM_COMPILER_CUDA))))
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
|
|
|
+ ((GLM_COMPILER & GLM_COMPILER_HIP))))
|
|
|
#endif
|
|
|
|
|
|
//
|
|
|
@@ -410,7 +423,7 @@
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
// Qualifiers
|
|
|
|
|
|
-#if GLM_COMPILER & GLM_COMPILER_CUDA
|
|
|
+#if (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP)
|
|
|
# define GLM_CUDA_FUNC_DEF __device__ __host__
|
|
|
# define GLM_CUDA_FUNC_DECL __device__ __host__
|
|
|
#else
|
|
|
@@ -425,7 +438,7 @@
|
|
|
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
|
|
|
# define GLM_INLINE inline __attribute__((__always_inline__))
|
|
|
# define GLM_NEVER_INLINE __attribute__((__noinline__))
|
|
|
-# elif GLM_COMPILER & GLM_COMPILER_CUDA
|
|
|
+# elif (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP)
|
|
|
# define GLM_INLINE __forceinline__
|
|
|
# define GLM_NEVER_INLINE __noinline__
|
|
|
# else
|
|
|
@@ -512,7 +525,7 @@
|
|
|
#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)
|
|
|
# define GLM_DEPRECATED __attribute__((__deprecated__))
|
|
|
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
|
|
|
-#elif GLM_COMPILER & GLM_COMPILER_CUDA
|
|
|
+#elif (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP)
|
|
|
# define GLM_DEPRECATED
|
|
|
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)
|
|
|
#else
|
|
|
@@ -970,6 +983,8 @@ namespace detail
|
|
|
// Report compiler detection
|
|
|
# if GLM_COMPILER & GLM_COMPILER_CUDA
|
|
|
# pragma message("GLM: CUDA compiler detected")
|
|
|
+# elif GLM_COMPILER & GLM_COMPILER_HIP
|
|
|
+# pragma message("GLM: HIP compiler detected")
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_VC
|
|
|
# pragma message("GLM: Visual C++ compiler detected")
|
|
|
# elif GLM_COMPILER & GLM_COMPILER_CLANG
|