mirror of
https://github.com/g-truc/glm.git
synced 2024-11-10 04:31:47 +00:00
Initial SYCL support:
The core and some ext functions should work.
This commit is contained in:
parent
fce2abd01c
commit
8fb71ffd07
@ -410,6 +410,7 @@
|
|||||||
#if GLM_COMPILER & GLM_COMPILER_CUDA
|
#if GLM_COMPILER & GLM_COMPILER_CUDA
|
||||||
# define GLM_CUDA_FUNC_DEF __device__ __host__
|
# define GLM_CUDA_FUNC_DEF __device__ __host__
|
||||||
# define GLM_CUDA_FUNC_DECL __device__ __host__
|
# define GLM_CUDA_FUNC_DECL __device__ __host__
|
||||||
|
#error "oops cuda shit"
|
||||||
#else
|
#else
|
||||||
# define GLM_CUDA_FUNC_DEF
|
# define GLM_CUDA_FUNC_DEF
|
||||||
# define GLM_CUDA_FUNC_DECL
|
# define GLM_CUDA_FUNC_DECL
|
||||||
@ -529,6 +530,48 @@
|
|||||||
# define GLM_EXPLICIT
|
# define GLM_EXPLICIT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// SYCL
|
||||||
|
|
||||||
|
#if GLM_COMPILER==GLM_COMPILER_SYCL
|
||||||
|
|
||||||
|
#include <CL/sycl.hpp>
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
|
namespace glm {
|
||||||
|
namespace std {
|
||||||
|
// import sycl function into the namespace glm::std to force their usages.
|
||||||
|
// It's important to use the builtin intrinsics (sin, exp, ...)
|
||||||
|
// of sycl instead the std ones.
|
||||||
|
using namespace cl::sycl;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Import some "harmless" std's stuffs used by glm into
|
||||||
|
// the new glm::std namespace.
|
||||||
|
template<typename T>
|
||||||
|
using numeric_limits = ::std::numeric_limits<T>;
|
||||||
|
|
||||||
|
using ::std::size_t;
|
||||||
|
|
||||||
|
using ::std::uint8_t;
|
||||||
|
using ::std::uint16_t;
|
||||||
|
using ::std::uint32_t;
|
||||||
|
using ::std::uint64_t;
|
||||||
|
|
||||||
|
using ::std::int8_t;
|
||||||
|
using ::std::int16_t;
|
||||||
|
using ::std::int32_t;
|
||||||
|
using ::std::int64_t;
|
||||||
|
|
||||||
|
using ::std::make_unsigned;
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
} //namespace std
|
||||||
|
} //namespace glm
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
// Length type: all length functions returns a length_t type.
|
// Length type: all length functions returns a length_t type.
|
||||||
// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise
|
// When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise
|
||||||
|
@ -81,6 +81,9 @@
|
|||||||
#define GLM_COMPILER_CUDA75 0x100000B0
|
#define GLM_COMPILER_CUDA75 0x100000B0
|
||||||
#define GLM_COMPILER_CUDA80 0x100000C0
|
#define GLM_COMPILER_CUDA80 0x100000C0
|
||||||
|
|
||||||
|
// SYCL
|
||||||
|
#define GLM_COMPILER_SYCL 0x00300000
|
||||||
|
|
||||||
// Clang
|
// Clang
|
||||||
#define GLM_COMPILER_CLANG 0x20000000
|
#define GLM_COMPILER_CLANG 0x20000000
|
||||||
#define GLM_COMPILER_CLANG34 0x20000050
|
#define GLM_COMPILER_CLANG34 0x20000050
|
||||||
@ -129,6 +132,10 @@
|
|||||||
# error "GLM requires CUDA 7.0 or higher"
|
# error "GLM requires CUDA 7.0 or higher"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
// SYCL
|
||||||
|
#elif defined(__SYCL_DEVICE_ONLY__)
|
||||||
|
# define GLM_COMPILER GLM_COMPILER_SYCL
|
||||||
|
|
||||||
// Clang
|
// Clang
|
||||||
#elif defined(__clang__)
|
#elif defined(__clang__)
|
||||||
# if defined(__apple_build_version__)
|
# if defined(__apple_build_version__)
|
||||||
|
@ -15,6 +15,7 @@ This library works perfectly with *[OpenGL](https://www.opengl.org)* but it also
|
|||||||
- [LLVM](http://llvm.org/) 3.4 and higher
|
- [LLVM](http://llvm.org/) 3.4 and higher
|
||||||
- [Visual C++](http://www.visualstudio.com/) 2013 and higher
|
- [Visual C++](http://www.visualstudio.com/) 2013 and higher
|
||||||
- [CUDA](https://developer.nvidia.com/about-cuda) 7.0 and higher (experimental)
|
- [CUDA](https://developer.nvidia.com/about-cuda) 7.0 and higher (experimental)
|
||||||
|
- [SYCL](https://www.khronos.org/sycl/) 1.2.1 and higher (experimental: only [ComputeCpp](https://codeplay.com/products/computesuite/computecpp) has been tested).
|
||||||
- Any C++11 compiler
|
- Any C++11 compiler
|
||||||
|
|
||||||
For more information about *GLM*, please have a look at the [manual](manual.md) and the [API reference documentation](http://glm.g-truc.net/0.9.8/api/index.html).
|
For more information about *GLM*, please have a look at the [manual](manual.md) and the [API reference documentation](http://glm.g-truc.net/0.9.8/api/index.html).
|
||||||
|
Loading…
Reference in New Issue
Block a user