mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git a/thirdparty/embree/common/simd/arm/sse2neon.h b/thirdparty/embree/common/simd/arm/sse2neon.h
 | |
| index b18d41e783..c54d0b7951 100644
 | |
| --- a/thirdparty/embree/common/simd/arm/sse2neon.h
 | |
| +++ b/thirdparty/embree/common/simd/arm/sse2neon.h
 | |
| @@ -102,7 +102,9 @@
 | |
|  #include <stdint.h>
 | |
|  #include <stdlib.h>
 | |
|  
 | |
| -#if defined(_WIN32)
 | |
| +// -- GODOT start --
 | |
| +#if defined(_WIN32) && !defined(__MINGW32__)
 | |
| +// -- GODOT end --
 | |
|  /* Definitions for _mm_{malloc,free} are provided by <malloc.h>
 | |
|   * from both MinGW-w64 and MSVC.
 | |
|   */
 | |
| @@ -2080,8 +2082,16 @@ FORCE_INLINE void *_mm_malloc(size_t size, size_t align)
 | |
|          return malloc(size);
 | |
|      if (align == 2 || (sizeof(void *) == 8 && align == 4))
 | |
|          align = sizeof(void *);
 | |
| -    if (!posix_memalign(&ptr, align, size))
 | |
| +// -- GODOT start --
 | |
| +#if defined(_WIN32)
 | |
| +    ptr = _aligned_malloc(size, align);
 | |
| +    if (ptr)
 | |
|          return ptr;
 | |
| +#else
 | |
| +    if (!posix_memalign(&ptr, align, size))
 | |
| +        return ptr;
 | |
| +#endif
 | |
| +// -- GODOT end --
 | |
|      return NULL;
 | |
|  }
 | |
|  #endif
 | |
| @@ -1890,7 +1890,13 @@ FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b)
 | |
|  #if !defined(SSE2NEON_ALLOC_DEFINED)
 | |
|  FORCE_INLINE void _mm_free(void *addr)
 | |
|  {
 | |
| +// -- GODOT start --
 | |
| +#if defined(_WIN32)
 | |
| +    _aligned_free(addr);
 | |
| +#else
 | |
|      free(addr);
 | |
| +#endif
 | |
| +// -- GODOT end --
 | |
|  }
 | |
|  #endif
 | 
