summaryrefslogtreecommitdiff
path: root/modules/raycast
diff options
context:
space:
mode:
authorJFonS <joan.fonssanchez@gmail.com>2021-05-05 18:24:13 +0200
committerRĂ©mi Verschelde <rverschelde@gmail.com>2021-05-11 14:09:44 +0200
commit1cab622e9461cf49629449d2c16369a0496825cc (patch)
tree090a74ae1a8dfd20860b2cd6c79f20a942a08706 /modules/raycast
parent31a9afb135cc5ffcf634e638e88232b71444d975 (diff)
Add checks for __SSE2__ in the lightmap raycaster
(cherry picked from commit 20717990fd2a7ad300fd9c6fab0394f25e3b7294)
Diffstat (limited to 'modules/raycast')
-rw-r--r--modules/raycast/lightmap_raycaster.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/raycast/lightmap_raycaster.cpp b/modules/raycast/lightmap_raycaster.cpp
index 56bdb5900b..0583acc119 100644
--- a/modules/raycast/lightmap_raycaster.cpp
+++ b/modules/raycast/lightmap_raycaster.cpp
@@ -32,7 +32,9 @@
#include "lightmap_raycaster.h"
+#ifdef __SSE2__
#include <pmmintrin.h>
+#endif
LightmapRaycaster *LightmapRaycasterEmbree::create_embree_raycaster() {
return memnew(LightmapRaycasterEmbree);
@@ -171,8 +173,10 @@ void embree_error_handler(void *p_user_data, RTCError p_code, const char *p_str)
}
LightmapRaycasterEmbree::LightmapRaycasterEmbree() {
+#ifdef __SSE2__
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
+#endif
embree_device = rtcNewDevice(nullptr);
rtcSetDeviceErrorFunction(embree_device, &embree_error_handler, nullptr);
@@ -180,8 +184,10 @@ LightmapRaycasterEmbree::LightmapRaycasterEmbree() {
}
LightmapRaycasterEmbree::~LightmapRaycasterEmbree() {
+#ifdef __SSE2__
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_OFF);
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_OFF);
+#endif
if (embree_scene != nullptr) {
rtcReleaseScene(embree_scene);