Browse Source

Fix Squish SSE misconfiguration

elasota 7 years ago
parent
commit
04410346bb
2 changed files with 20 additions and 6 deletions
  1. 0 6
      modules/squish/image_compress_squish.cpp
  2. 20 0
      thirdparty/squish/config.h

+ 0 - 6
modules/squish/image_compress_squish.cpp

@@ -32,12 +32,6 @@
 
 
 #include "print_string.h"
 #include "print_string.h"
 
 
-#if defined(__SSE2__)
-#define SQUISH_USE_SSE 2
-#elif defined(__SSE__)
-#define SQUISH_USE_SSE 1
-#endif
-
 #include <squish.h>
 #include <squish.h>
 
 
 void image_decompress_squish(Image *p_image) {
 void image_decompress_squish(Image *p_image) {

+ 20 - 0
thirdparty/squish/config.h

@@ -32,6 +32,26 @@
 #endif
 #endif
 
 
 // Set to 1 or 2 when building squish to use SSE or SSE2 instructions.
 // Set to 1 or 2 when building squish to use SSE or SSE2 instructions.
+// -- GODOT start --
+#ifdef _MSC_VER
+  #if defined(_M_IX86_FP)
+    #if _M_IX86_FP >= 2
+      #define SQUISH_USE_SSE 2
+    #elif _M_IX86_FP >= 1
+      #define SQUISH_USE_SSE 1
+    #endif
+  #elif defined(_M_X64)
+    #define SQUISH_USE_SSE 2
+  #endif
+#else
+  #if defined(__SSE2__)
+    #define SQUISH_USE_SSE 2
+  #elif defined(__SSE__)
+    #define SQUISH_USE_SSE 1
+  #endif
+#endif
+// -- GODOT end --
+
 #ifndef SQUISH_USE_SSE
 #ifndef SQUISH_USE_SSE
 #define SQUISH_USE_SSE 0
 #define SQUISH_USE_SSE 0
 #endif
 #endif