132 lines
4.6 KiB
Diff
132 lines
4.6 KiB
Diff
From 17748a3dfdddf0bc5e7a8948967547ab899dc700 Mon Sep 17 00:00:00 2001
|
|
From: Larry Gritz <lg@larrygritz.com>
|
|
Date: Thu, 18 Jul 2013 19:09:27 -0700
|
|
Subject: [PATCH 1/3] Fix compiler warning about unused local typedef
|
|
|
|
---
|
|
src/field3d.imageio/field3dinput.cpp | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
diff --git a/src/field3d.imageio/field3dinput.cpp b/src/field3d.imageio/field3dinput.cpp
|
|
index eeeac12..4df7158 100644
|
|
--- a/src/field3d.imageio/field3dinput.cpp
|
|
+++ b/src/field3d.imageio/field3dinput.cpp
|
|
@@ -145,7 +145,6 @@ inline int blocksize (FieldRes::Ptr &f)
|
|
typename SparseField<T>::Ptr sf (field_dynamic_cast<SparseField<T> >(f));
|
|
if (sf)
|
|
return sf->blockSize();
|
|
- typedef FIELD3D_VEC3_T<T> VecData_T;
|
|
typename SparseField<T>::Ptr vsf (field_dynamic_cast<SparseField<T> >(f));
|
|
if (vsf)
|
|
return vsf->blockSize();
|
|
--
|
|
1.8.1.6
|
|
|
|
|
|
From 27439302e32cdaacf7137f4e80eaf1c8a86cf862 Mon Sep 17 00:00:00 2001
|
|
From: Larry Gritz <lg@larrygritz.com>
|
|
Date: Thu, 18 Jul 2013 19:57:55 -0700
|
|
Subject: [PATCH 2/3] Make it work for big endian
|
|
|
|
---
|
|
src/libtexture/texture3d.cpp | 5 ++---
|
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/libtexture/texture3d.cpp b/src/libtexture/texture3d.cpp
|
|
index 34a57d6..2ba64f0 100644
|
|
--- a/src/libtexture/texture3d.cpp
|
|
+++ b/src/libtexture/texture3d.cpp
|
|
@@ -378,10 +378,9 @@
|
|
// bool svalid[2], tvalid[2], rvalid[2]; // Valid texels? false means black border
|
|
union { bool bvalid[6]; unsigned long long ivalid; } valid_storage;
|
|
valid_storage.ivalid = 0;
|
|
- DASSERT (sizeof(valid_storage) >= 6*sizeof(bool));
|
|
+ DASSERT (sizeof(valid_storage) == 8);
|
|
const unsigned long long none_valid = 0;
|
|
- const unsigned long long all_valid = 0x010101010101LL;
|
|
- DASSERT (__LITTLE_ENDIAN__ && "this trick won't work with big endian");
|
|
+ const unsigned long long all_valid = littleendian() ? 0x010101010101LL : 0x01010101010100LL;
|
|
bool *svalid = valid_storage.bvalid;
|
|
bool *tvalid = valid_storage.bvalid + 2;
|
|
bool *rvalid = valid_storage.bvalid + 4;
|
|
--
|
|
1.8.1.6
|
|
|
|
|
|
From 7fc6e497326cdcdd72904cda3d48ed9c1f87ac69 Mon Sep 17 00:00:00 2001
|
|
From: Larry Gritz <lg@larrygritz.com>
|
|
Date: Thu, 18 Jul 2013 19:58:45 -0700
|
|
Subject: [PATCH 3/3] Fix compile problem with gcc but on platforms with no
|
|
'pause'
|
|
|
|
---
|
|
src/include/thread.h | 16 +++++++++-------
|
|
1 file changed, 9 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/src/include/thread.h b/src/include/thread.h
|
|
index cf3717e..8a31dfc 100644
|
|
--- a/src/include/thread.h
|
|
+++ b/src/include/thread.h
|
|
@@ -318,16 +318,17 @@ class thread_specific_ptr {
|
|
inline void
|
|
pause (int delay)
|
|
{
|
|
-#if defined(__GNUC__)
|
|
- for (int i = 0; i < delay; ++i) {
|
|
-#if defined __arm__ || defined __s390__
|
|
- __asm__ __volatile__("NOP;");
|
|
-#else
|
|
+#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
|
|
+ for (int i = 0; i < delay; ++i)
|
|
__asm__ __volatile__("pause;");
|
|
-#endif
|
|
- }
|
|
+
|
|
+#elif defined(__GNUC__) && (defined(__arm__) || defined(__s390__))
|
|
+ for (int i = 0; i < delay; ++i)
|
|
+ __asm__ __volatile__("NOP;");
|
|
+
|
|
#elif USE_TBB
|
|
__TBB_Pause(delay);
|
|
+
|
|
#elif defined(_MSC_VER)
|
|
for (int i = 0; i < delay; ++i) {
|
|
#if defined (_WIN64)
|
|
@@ -336,6 +337,7 @@ class thread_specific_ptr {
|
|
_asm pause
|
|
#endif /* _WIN64 */
|
|
}
|
|
+
|
|
#else
|
|
// No pause on this platform, just punt
|
|
for (int i = 0; i < delay; ++i) ;
|
|
--
|
|
1.8.1.6
|
|
|
|
From db797a45b9060294ef02a879fde66c4265a90a14 Mon Sep 17 00:00:00 2001
|
|
From: Larry Gritz <lg@larrygritz.com>
|
|
Date: Fri, 12 Jul 2013 10:51:13 -0700
|
|
Subject: [PATCH] Fix compiler warnings with large unsigned value in test
|
|
|
|
---
|
|
src/libOpenImageIO/fmath_test.cpp | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/libOpenImageIO/fmath_test.cpp b/src/libOpenImageIO/fmath_test.cpp
|
|
index fefaac0..fdf7f4e 100644
|
|
--- a/src/libOpenImageIO/fmath_test.cpp
|
|
+++ b/src/libOpenImageIO/fmath_test.cpp
|
|
@@ -72,8 +72,8 @@ void test_bit_range_convert ()
|
|
OIIO_CHECK_EQUAL ((bit_range_convert<2,20>(3)), 1048575);
|
|
OIIO_CHECK_EQUAL ((bit_range_convert<20,2>(1048575)), 3);
|
|
OIIO_CHECK_EQUAL ((bit_range_convert<20,21>(1048575)), 2097151);
|
|
- OIIO_CHECK_EQUAL ((bit_range_convert<32,32>(4294967295)), 4294967295);
|
|
- OIIO_CHECK_EQUAL ((bit_range_convert<32,16>(4294967295)), 65535);
|
|
+ OIIO_CHECK_EQUAL ((bit_range_convert<32,32>(4294967295U)), 4294967295U);
|
|
+ OIIO_CHECK_EQUAL ((bit_range_convert<32,16>(4294967295U)), 65535);
|
|
// These are not expected to work, since bit_range_convert only takes a
|
|
// regular 'unsigned int' as parameter. If we need >32 bit conversion,
|
|
// we need to add a uint64_t version of bit_range_convert.
|
|
--
|
|
1.8.1.6
|