浏览代码

Merge pull request #45346 from RandomShaper/lightmapper_fix_3.2

Fix freeze-crash in lightmapper under MinGW-GCC (3.2)
Rémi Verschelde 4 年之前
父节点
当前提交
9d1d4d1f6a

+ 1 - 1
thirdparty/embree/common/sys/intrinsics.h

@@ -432,7 +432,7 @@ namespace embree
       _mm_pause();    
 // -- GODOT start --
 #else
-      usleep(1);
+      __builtin_ia32_pause();
 #endif
 // -- GODOT end --
   }

+ 4 - 2
thirdparty/embree/common/sys/mutex.h

@@ -54,7 +54,8 @@ namespace embree
           _mm_pause();
 // -- GODOT start --
 #else
-          usleep(1);
+          __builtin_ia32_pause();
+          __builtin_ia32_pause();
 #endif
 // -- GODOT end --
         }
@@ -89,7 +90,8 @@ namespace embree
         _mm_pause();
 // -- GODOT start --
 #else
-        usleep(1);
+        __builtin_ia32_pause();
+        __builtin_ia32_pause();
 #endif
 // -- GODOT end --
       }

+ 1 - 1
thirdparty/embree/common/tasking/taskschedulerinternal.cpp

@@ -367,7 +367,7 @@ namespace embree
             _mm_pause();
 // -- GODOT start --
 #else
-            usleep(1);
+            __builtin_ia32_pause();
 #endif
 // -- GODOT end --
 	  loopIndex++;

+ 6 - 4
thirdparty/embree/patches/godot-changes.patch

@@ -90,7 +90,7 @@ diff --git a/common/sys/mutex.h b/common/sys/mutex.h
 index 1164210f2..f0f55340a 100644
 --- a/common/sys/mutex.h
 +++ b/common/sys/mutex.h
-@@ -47,8 +47,16 @@ namespace embree
+@@ -47,8 +47,17 @@ namespace embree
        {
          while (flag.load()) 
          {
@@ -101,13 +101,14 @@ index 1164210f2..f0f55340a 100644
            _mm_pause();
 +// -- GODOT start --
 +#else
-+          usleep(1);
++          __builtin_ia32_pause();
++          __builtin_ia32_pause();
 +#endif
 +// -- GODOT end --
          }
          
          bool expected = false;
-@@ -74,8 +82,16 @@ namespace embree
+@@ -74,8 +82,17 @@ namespace embree
      {
        while(flag.load())
        {
@@ -118,7 +119,8 @@ index 1164210f2..f0f55340a 100644
          _mm_pause();
 +// -- GODOT start --
 +#else
-+        usleep(1);
++        __builtin_ia32_pause();
++        __builtin_ia32_pause();
 +#endif
 +// -- GODOT end --
        }