vcpkg/ports/nvtt/fix-build-error.patch
JackBoosY 5bbba1c92b [nvtt]Upgrade version to 2.1.1 and fix build error on windows. (#6765)
* [nvtt]Upgrade version to 2.1.1 and fix build error on windows.

* [nvtt]Fix build error on OSX.

* [nvtt]Merge two patches.

* [nvtt]Re-trigger CI system.

* [nvtt]Fix build error on OSX.
2019-06-17 16:36:07 -07:00

40 lines
1.5 KiB
Diff

diff --git a/extern/butteraugli/butteraugli.h b/extern/butteraugli/butteraugli.h
index 31824b8..c116a73 100644
--- a/extern/butteraugli/butteraugli.h
+++ b/extern/butteraugli/butteraugli.h
@@ -134,7 +134,14 @@ bool ButteraugliAdaptiveQuantization(size_t xsize, size_t ysize,
// The conventional syntax uint8_t* const RESTRICT is more confusing - it is
// not immediately obvious that the pointee is non-const.
template <typename T>
+#ifdef _MSC_VER
+// Due to MSVC bug:
+// https://developercommunity.visualstudio.com/content/problem/32196/msvc-cant-compile-a-templated-using-without-instan.html
+// , we cannot use __restrict now. Loss some performance instead of can't use this code.
+using ConstRestrict = T const;
+#else
using ConstRestrict = T const BUTTERAUGLI_RESTRICT;
+#endif
// Functions that depend on the cache line size.
class CacheAligned {
diff --git a/src/nvthread/Atomic.h b/src/nvthread/Atomic.h
index 212b9cb..b8eaedb 100644
--- a/src/nvthread/Atomic.h
+++ b/src/nvthread/Atomic.h
@@ -183,7 +183,6 @@ namespace nv {
#elif NV_CC_CLANG && (NV_OS_IOS || NV_OS_DARWIN)
- NV_COMPILER_CHECK(sizeof(uint32) == sizeof(long));
//ACS: Use Apple's atomics instead? I don't know if these are better in any way; there are non-barrier versions too. There's no OSAtomicSwap32 tho'
/*
@@ -254,7 +253,6 @@ namespace nv {
#elif NV_CC_CLANG && POSH_CPU_STRONGARM
- NV_COMPILER_CHECK(sizeof(uint32) == sizeof(long));
inline uint32 atomicIncrement(uint32 * value)
{