Date: Friday, August 3, 2018 @ 04:40:07
  Author: foutrelis
Revision: 367477

archrelease: copy trunk to community-testing-x86_64

Added:
  blender/repos/community-testing-x86_64/PKGBUILD
    (from rev 367476, blender/trunk/PKGBUILD)
  blender/repos/community-testing-x86_64/ffmpeg4.0.patch
    (from rev 367476, blender/trunk/ffmpeg4.0.patch)
  blender/repos/community-testing-x86_64/openvdb3-abi.patch
    (from rev 367476, blender/trunk/openvdb3-abi.patch)
  blender/repos/community-testing-x86_64/python37.patch
    (from rev 367476, blender/trunk/python37.patch)
  blender/repos/community-testing-x86_64/tree_hpp.patch
    (from rev 367476, blender/trunk/tree_hpp.patch)
  blender/repos/community-testing-x86_64/util_sseb.patch
    (from rev 367476, blender/trunk/util_sseb.patch)
Deleted:
  blender/repos/community-testing-x86_64/PKGBUILD
  blender/repos/community-testing-x86_64/ffmpeg4.0.patch
  blender/repos/community-testing-x86_64/openvdb3-abi.patch
  blender/repos/community-testing-x86_64/tree_hpp.patch
  blender/repos/community-testing-x86_64/util_sseb.patch

--------------------+
 PKGBUILD           |  225 +++++++++++++++----------------
 ffmpeg4.0.patch    |  226 +++++++++++++++----------------
 openvdb3-abi.patch |   56 +++----
 python37.patch     |   40 +++++
 tree_hpp.patch     |  366 +++++++++++++++++++++++++--------------------------
 util_sseb.patch    |   26 +--
 6 files changed, 491 insertions(+), 448 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD    2018-08-03 04:39:58 UTC (rev 367476)
+++ PKGBUILD    2018-08-03 04:40:07 UTC (rev 367477)
@@ -1,111 +0,0 @@
-# $Id$
-# Maintainer: Sven-Hendrik Haase <s...@lutzhaase.com>
-# Contributor: John Sowiak <j...@archlinux.org>
-# Contributor: tobias <tob...@archlinux.org>
-
-# Sometimes blender.org takes some time to release patch releases and because 
Arch users
-# are impatient, we sometimes need to build from git directly.
-# Update because I get so many queries on this:
-# Due to our other rolling deps, it's sometimes not possible to build Blender 
stable releases.
-# More often than not, a new openshadinglanguage breaks it and I could either 
backport fixes
-# or simply roll with a new version. I usually choose the latter when the 
former seems
-# unreasonable.
-
-# _gittag=v2.79b
-_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761
-
-pkgname=blender
-pkgver=2.79.b
-[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8}
-pkgrel=2
-epoch=17
-pkgdesc="A fully integrated 3D graphics creation suite"
-arch=('x86_64')
-license=('GPL')
-url="http://www.blender.org";
-depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 
'python-requests'
-         'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg' 
'python-numpy'
-         'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 
'alembic'
-         'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage'
-         'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 
'sdl2')
-makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda')
-optdepends=('cuda: cycles renderer cuda support')
-options=(!strip)
-source=("git://git.blender.org/blender-addons.git"
-        "git://git.blender.org/blender-addons-contrib.git"
-        "git://git.blender.org/blender-translations.git"
-        "git://git.blender.org/blender-dev-tools.git"
-        "git://git.blender.org/scons.git"
-        ffmpeg4.0.patch
-        tree_hpp.patch
-        util_sseb.patch
-        openvdb3-abi.patch)
-if [[ -n $_gittag ]]; then
-    
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}")
-elif [[ -n $_gitcommit ]]; then
-    
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}")
-fi
-md5sums=('SKIP'
-         'SKIP'
-         'SKIP'
-         'SKIP'
-         'SKIP'
-         'da14d7cbdea1ab5499659a066658cdd2'
-         'feea89510de171946c41c6208461f453'
-         '53da216adbc2a9d555a59c15b8f0ef08'
-         '3f9613fcb7ea61214982272e9c20a294'
-         'SKIP')
-
-prepare() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  git submodule init
-  git config submodule."release/scripts/addons".url ${srcdir}/blender-addons
-  git config submodule."release/scripts/addons_contrib".url 
${srcdir}/blender-addons-contrib
-  git config submodule."release/datafiles/locale".url 
${srcdir}/blender-translations
-  git config submodule."source/tools".url ${srcdir}/blender-dev-tools
-  git config submodule."scons".url ${srcdir}/scons
-  git submodule update
-
-  patch -Np1 -i "$srcdir"/ffmpeg4.0.patch
-  patch -Np1 -i "$srcdir"/tree_hpp.patch
-  patch -Np1 -i "$srcdir"/util_sseb.patch
-  patch -Np1 -i "$srcdir"/openvdb3-abi.patch
-}
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  [[ -d build ]] && rm -rf build
-  mkdir build && cd build
-
-  cmake -C../build_files/cmake/config/blender_release.cmake .. \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DWITH_INSTALL_PORTABLE=OFF \
-    -DWITH_PYTHON_INSTALL=OFF \
-    -DOPENIMAGEIO_ROOT_DIR=/usr \
-    -DWITH_SYSTEM_OPENJPEG=ON \
-    -DWITH_GL_PROFILE_CORE=OFF \
-    -DWITH_GL_PROFILE_ES20=OFF \
-    -DWITH_LLVM=ON \
-    -DWITH_CYCLES_CUDA_BINARIES=ON \
-    -DWITH_CYCLES_PTEX=OFF \
-    
-DCYCLES_CUDA_BINARIES_ARCH="sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_62;sm_70"
 \
-    -DPYTHON_VERSION=3.7 \
-    -DPYTHON_LIBPATH=/usr/lib \
-    -DPYTHON_LIBRARY=python3.7m \
-    -DPYTHON_INCLUDE_DIRS=/usr/include/python3.7m
-  make
-
-  # PTEX is currently broken and experimental in blender anyway
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver/build"
-
-  make DESTDIR="${pkgdir}" install
-  install -Dm755 ../release/bin/blender-softwaregl 
"${pkgdir}/usr/bin/blender-softwaregl"
-  python -m compileall "${pkgdir}/usr/share/blender"
-  python -O -m compileall "${pkgdir}/usr/share/blender"
-}

Copied: blender/repos/community-testing-x86_64/PKGBUILD (from rev 367476, 
blender/trunk/PKGBUILD)
===================================================================
--- PKGBUILD                            (rev 0)
+++ PKGBUILD    2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,114 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <s...@lutzhaase.com>
+# Contributor: John Sowiak <j...@archlinux.org>
+# Contributor: tobias <tob...@archlinux.org>
+
+# Sometimes blender.org takes some time to release patch releases and because 
Arch users
+# are impatient, we sometimes need to build from git directly.
+# Update because I get so many queries on this:
+# Due to our other rolling deps, it's sometimes not possible to build Blender 
stable releases.
+# More often than not, a new openshadinglanguage breaks it and I could either 
backport fixes
+# or simply roll with a new version. I usually choose the latter when the 
former seems
+# unreasonable.
+
+# _gittag=v2.79b
+_gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761
+
+pkgname=blender
+pkgver=2.79.b
+[[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8}
+pkgrel=3
+epoch=17
+pkgdesc="A fully integrated 3D graphics creation suite"
+arch=('x86_64')
+license=('GPL')
+url="http://www.blender.org";
+depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 
'python-requests'
+         'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg' 
'python-numpy'
+         'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 
'alembic'
+         'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage'
+         'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 
'sdl2')
+makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda')
+optdepends=('cuda: cycles renderer cuda support')
+options=(!strip)
+source=("git://git.blender.org/blender-addons.git"
+        "git://git.blender.org/blender-addons-contrib.git"
+        "git://git.blender.org/blender-translations.git"
+        "git://git.blender.org/blender-dev-tools.git"
+        "git://git.blender.org/scons.git"
+        python37.patch
+        ffmpeg4.0.patch
+        tree_hpp.patch
+        util_sseb.patch
+        openvdb3-abi.patch)
+if [[ -n $_gittag ]]; then
+    
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}")
+elif [[ -n $_gitcommit ]]; then
+    
source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}")
+fi
+md5sums=('SKIP'
+         'SKIP'
+         'SKIP'
+         'SKIP'
+         'SKIP'
+         '1d6d2064db0e8e4e3a52735406f5106a'
+         'da14d7cbdea1ab5499659a066658cdd2'
+         'feea89510de171946c41c6208461f453'
+         '53da216adbc2a9d555a59c15b8f0ef08'
+         '3f9613fcb7ea61214982272e9c20a294'
+         'SKIP')
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  git submodule init
+  git config submodule."release/scripts/addons".url ${srcdir}/blender-addons
+  git config submodule."release/scripts/addons_contrib".url 
${srcdir}/blender-addons-contrib
+  git config submodule."release/datafiles/locale".url 
${srcdir}/blender-translations
+  git config submodule."source/tools".url ${srcdir}/blender-dev-tools
+  git config submodule."scons".url ${srcdir}/scons
+  git submodule update
+
+  patch -Np1 -i "$srcdir"/python37.patch
+  patch -Np1 -i "$srcdir"/ffmpeg4.0.patch
+  patch -Np1 -i "$srcdir"/tree_hpp.patch
+  patch -Np1 -i "$srcdir"/util_sseb.patch
+  patch -Np1 -i "$srcdir"/openvdb3-abi.patch
+}
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  [[ -d build ]] && rm -rf build
+  mkdir build && cd build
+
+  cmake -C../build_files/cmake/config/blender_release.cmake .. \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DWITH_INSTALL_PORTABLE=OFF \
+    -DWITH_PYTHON_INSTALL=OFF \
+    -DOPENIMAGEIO_ROOT_DIR=/usr \
+    -DWITH_SYSTEM_OPENJPEG=ON \
+    -DWITH_GL_PROFILE_CORE=OFF \
+    -DWITH_GL_PROFILE_ES20=OFF \
+    -DWITH_LLVM=ON \
+    -DWITH_CYCLES_CUDA_BINARIES=ON \
+    -DWITH_CYCLES_PTEX=OFF \
+    
-DCYCLES_CUDA_BINARIES_ARCH="sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_62;sm_70"
 \
+    -DPYTHON_VERSION=3.7 \
+    -DPYTHON_LIBPATH=/usr/lib \
+    -DPYTHON_LIBRARY=python3.7m \
+    -DPYTHON_INCLUDE_DIRS=/usr/include/python3.7m
+  make
+
+  # PTEX is currently broken and experimental in blender anyway
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver/build"
+
+  make DESTDIR="${pkgdir}" install
+  install -Dm755 ../release/bin/blender-softwaregl 
"${pkgdir}/usr/bin/blender-softwaregl"
+  python -m compileall "${pkgdir}/usr/share/blender"
+  python -O -m compileall "${pkgdir}/usr/share/blender"
+}

Deleted: ffmpeg4.0.patch
===================================================================
--- ffmpeg4.0.patch     2018-08-03 04:39:58 UTC (rev 367476)
+++ ffmpeg4.0.patch     2018-08-03 04:40:07 UTC (rev 367477)
@@ -1,113 +0,0 @@
-diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 
b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-index e9eea195208..84aea330313 100644
---- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
-@@ -264,9 +264,9 @@ 
AUD_FFMPEGReader::AUD_FFMPEGReader(boost::shared_ptr<AUD_Buffer> buffer) :
-               m_membuffer(buffer),
-               m_membufferpos(0)
- {
--      m_membuf = reinterpret_cast<data_t*>(av_malloc(FF_MIN_BUFFER_SIZE + 
FF_INPUT_BUFFER_PADDING_SIZE));
-+      m_membuf = reinterpret_cast<data_t*>(av_malloc(AV_INPUT_BUFFER_MIN_SIZE 
+ AV_INPUT_BUFFER_PADDING_SIZE));
- 
--      m_aviocontext = avio_alloc_context(m_membuf, FF_MIN_BUFFER_SIZE, 0, 
this,
-+      m_aviocontext = avio_alloc_context(m_membuf, AV_INPUT_BUFFER_MIN_SIZE, 
0, this,
-                                                                          
read_packet, NULL, seek_packet);
- 
-       if(!m_aviocontext)
-diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 
b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-index 3f95ac7a4da..2c2f0916406 100644
---- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
-@@ -163,7 +163,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, 
AUD_DeviceSpecs specs,
-               try
-               {
-                       if(m_formatCtx->oformat->flags & AVFMT_GLOBALHEADER)
--                              m_codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+                              m_codecCtx->flags |= 
AV_CODEC_FLAG_GLOBAL_HEADER;
- 
-                       AVCodec* codec = 
avcodec_find_encoder(m_codecCtx->codec_id);
-                       if(!codec)
-@@ -185,11 +185,11 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, 
AUD_DeviceSpecs specs,
-                       if(avcodec_open2(m_codecCtx, codec, NULL))
-                               AUD_THROW(AUD_ERROR_FFMPEG, codec_error);
- 
--                      m_output_buffer.resize(FF_MIN_BUFFER_SIZE);
-+                      m_output_buffer.resize(AV_INPUT_BUFFER_MIN_SIZE);
-                       int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), 
AUD_DEVICE_SAMPLE_SIZE(m_specs));
- 
-                       if(m_codecCtx->frame_size <= 1) {
--                              m_input_size = FF_MIN_BUFFER_SIZE * 8 / 
m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
-+                              m_input_size = AV_INPUT_BUFFER_MIN_SIZE * 8 / 
m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
-                               m_input_buffer.resize(m_input_size * 
samplesize);
-                       }
-                       else
-diff --git a/source/blender/blenkernel/intern/writeffmpeg.c 
b/source/blender/blenkernel/intern/writeffmpeg.c
-index d7fcd896e11..9e82df17dce 100644
---- a/source/blender/blenkernel/intern/writeffmpeg.c
-+++ b/source/blender/blenkernel/intern/writeffmpeg.c
-@@ -619,8 +619,6 @@ static AVStream *alloc_video_stream(FFMpegContext 
*context, RenderData *rd, int
-       c->rc_buffer_aggressivity = 1.0;
- #endif
- 
--      c->me_method = ME_EPZS;
--      
-       codec = avcodec_find_encoder(c->codec_id);
-       if (!codec)
-               return NULL;
-@@ -682,14 +680,14 @@ static AVStream *alloc_video_stream(FFMpegContext 
*context, RenderData *rd, int
-           )
-       {
-               PRINT("Using global header\n");
--              c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+              c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-       }
-       
-       /* Determine whether we are encoding interlaced material or not */
-       if (rd->mode & R_FIELDS) {
-               PRINT("Encoding interlaced video\n");
--              c->flags |= CODEC_FLAG_INTERLACED_DCT;
--              c->flags |= CODEC_FLAG_INTERLACED_ME;
-+              c->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
-+              c->flags |= AV_CODEC_FLAG_INTERLACED_ME;
-       }
- 
-       /* xasp & yasp got float lately... */
-@@ -779,7 +777,7 @@ static AVStream *alloc_audio_stream(FFMpegContext 
*context, RenderData *rd, int
-       }
- 
-       if (of->oformat->flags & AVFMT_GLOBALHEADER) {
--              c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+              c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-       }
- 
-       set_ffmpeg_properties(rd, c, "audio", &opts);
-@@ -798,14 +796,14 @@ static AVStream *alloc_audio_stream(FFMpegContext 
*context, RenderData *rd, int
-       st->codec->time_base.den = st->codec->sample_rate;
- 
- #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
--      context->audio_outbuf_size = FF_MIN_BUFFER_SIZE;
-+      context->audio_outbuf_size = AV_INPUT_BUFFER_MIN_SIZE;
- #endif
- 
-       if (c->frame_size == 0)
-               // used to be if ((c->codec_id >= CODEC_ID_PCM_S16LE) && 
(c->codec_id <= CODEC_ID_PCM_DVD))
-               // not sure if that is needed anymore, so let's try out if 
there are any
-               // complaints regarding some ffmpeg versions users might have
--              context->audio_input_samples = FF_MIN_BUFFER_SIZE * 8 / 
c->bits_per_coded_sample / c->channels;
-+              context->audio_input_samples = AV_INPUT_BUFFER_MIN_SIZE * 8 / 
c->bits_per_coded_sample / c->channels;
-       else {
-               context->audio_input_samples = c->frame_size;
- #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
-diff --git a/source/blender/imbuf/intern/indexer.c 
b/source/blender/imbuf/intern/indexer.c
-index eaf4dfd84b4..9c2f42feb52 100644
---- a/source/blender/imbuf/intern/indexer.c
-+++ b/source/blender/imbuf/intern/indexer.c
-@@ -537,7 +537,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
-       av_opt_set_int(rv->c, "qmax", ffmpeg_quality, 0);
- 
-       if (rv->of->flags & AVFMT_GLOBALHEADER) {
--              rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+              rv->c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-       }
- 
-       if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) {

Copied: blender/repos/community-testing-x86_64/ffmpeg4.0.patch (from rev 
367476, blender/trunk/ffmpeg4.0.patch)
===================================================================
--- ffmpeg4.0.patch                             (rev 0)
+++ ffmpeg4.0.patch     2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,113 @@
+diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 
b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
+index e9eea195208..84aea330313 100644
+--- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
++++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
+@@ -264,9 +264,9 @@ 
AUD_FFMPEGReader::AUD_FFMPEGReader(boost::shared_ptr<AUD_Buffer> buffer) :
+               m_membuffer(buffer),
+               m_membufferpos(0)
+ {
+-      m_membuf = reinterpret_cast<data_t*>(av_malloc(FF_MIN_BUFFER_SIZE + 
FF_INPUT_BUFFER_PADDING_SIZE));
++      m_membuf = reinterpret_cast<data_t*>(av_malloc(AV_INPUT_BUFFER_MIN_SIZE 
+ AV_INPUT_BUFFER_PADDING_SIZE));
+ 
+-      m_aviocontext = avio_alloc_context(m_membuf, FF_MIN_BUFFER_SIZE, 0, 
this,
++      m_aviocontext = avio_alloc_context(m_membuf, AV_INPUT_BUFFER_MIN_SIZE, 
0, this,
+                                                                          
read_packet, NULL, seek_packet);
+ 
+       if(!m_aviocontext)
+diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp 
b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
+index 3f95ac7a4da..2c2f0916406 100644
+--- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
++++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
+@@ -163,7 +163,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, 
AUD_DeviceSpecs specs,
+               try
+               {
+                       if(m_formatCtx->oformat->flags & AVFMT_GLOBALHEADER)
+-                              m_codecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER;
++                              m_codecCtx->flags |= 
AV_CODEC_FLAG_GLOBAL_HEADER;
+ 
+                       AVCodec* codec = 
avcodec_find_encoder(m_codecCtx->codec_id);
+                       if(!codec)
+@@ -185,11 +185,11 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, 
AUD_DeviceSpecs specs,
+                       if(avcodec_open2(m_codecCtx, codec, NULL))
+                               AUD_THROW(AUD_ERROR_FFMPEG, codec_error);
+ 
+-                      m_output_buffer.resize(FF_MIN_BUFFER_SIZE);
++                      m_output_buffer.resize(AV_INPUT_BUFFER_MIN_SIZE);
+                       int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), 
AUD_DEVICE_SAMPLE_SIZE(m_specs));
+ 
+                       if(m_codecCtx->frame_size <= 1) {
+-                              m_input_size = FF_MIN_BUFFER_SIZE * 8 / 
m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
++                              m_input_size = AV_INPUT_BUFFER_MIN_SIZE * 8 / 
m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
+                               m_input_buffer.resize(m_input_size * 
samplesize);
+                       }
+                       else
+diff --git a/source/blender/blenkernel/intern/writeffmpeg.c 
b/source/blender/blenkernel/intern/writeffmpeg.c
+index d7fcd896e11..9e82df17dce 100644
+--- a/source/blender/blenkernel/intern/writeffmpeg.c
++++ b/source/blender/blenkernel/intern/writeffmpeg.c
+@@ -619,8 +619,6 @@ static AVStream *alloc_video_stream(FFMpegContext 
*context, RenderData *rd, int
+       c->rc_buffer_aggressivity = 1.0;
+ #endif
+ 
+-      c->me_method = ME_EPZS;
+-      
+       codec = avcodec_find_encoder(c->codec_id);
+       if (!codec)
+               return NULL;
+@@ -682,14 +680,14 @@ static AVStream *alloc_video_stream(FFMpegContext 
*context, RenderData *rd, int
+           )
+       {
+               PRINT("Using global header\n");
+-              c->flags |= CODEC_FLAG_GLOBAL_HEADER;
++              c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+       }
+       
+       /* Determine whether we are encoding interlaced material or not */
+       if (rd->mode & R_FIELDS) {
+               PRINT("Encoding interlaced video\n");
+-              c->flags |= CODEC_FLAG_INTERLACED_DCT;
+-              c->flags |= CODEC_FLAG_INTERLACED_ME;
++              c->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
++              c->flags |= AV_CODEC_FLAG_INTERLACED_ME;
+       }
+ 
+       /* xasp & yasp got float lately... */
+@@ -779,7 +777,7 @@ static AVStream *alloc_audio_stream(FFMpegContext 
*context, RenderData *rd, int
+       }
+ 
+       if (of->oformat->flags & AVFMT_GLOBALHEADER) {
+-              c->flags |= CODEC_FLAG_GLOBAL_HEADER;
++              c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+       }
+ 
+       set_ffmpeg_properties(rd, c, "audio", &opts);
+@@ -798,14 +796,14 @@ static AVStream *alloc_audio_stream(FFMpegContext 
*context, RenderData *rd, int
+       st->codec->time_base.den = st->codec->sample_rate;
+ 
+ #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
+-      context->audio_outbuf_size = FF_MIN_BUFFER_SIZE;
++      context->audio_outbuf_size = AV_INPUT_BUFFER_MIN_SIZE;
+ #endif
+ 
+       if (c->frame_size == 0)
+               // used to be if ((c->codec_id >= CODEC_ID_PCM_S16LE) && 
(c->codec_id <= CODEC_ID_PCM_DVD))
+               // not sure if that is needed anymore, so let's try out if 
there are any
+               // complaints regarding some ffmpeg versions users might have
+-              context->audio_input_samples = FF_MIN_BUFFER_SIZE * 8 / 
c->bits_per_coded_sample / c->channels;
++              context->audio_input_samples = AV_INPUT_BUFFER_MIN_SIZE * 8 / 
c->bits_per_coded_sample / c->channels;
+       else {
+               context->audio_input_samples = c->frame_size;
+ #ifndef FFMPEG_HAVE_ENCODE_AUDIO2
+diff --git a/source/blender/imbuf/intern/indexer.c 
b/source/blender/imbuf/intern/indexer.c
+index eaf4dfd84b4..9c2f42feb52 100644
+--- a/source/blender/imbuf/intern/indexer.c
++++ b/source/blender/imbuf/intern/indexer.c
+@@ -537,7 +537,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
+       av_opt_set_int(rv->c, "qmax", ffmpeg_quality, 0);
+ 
+       if (rv->of->flags & AVFMT_GLOBALHEADER) {
+-              rv->c->flags |= CODEC_FLAG_GLOBAL_HEADER;
++              rv->c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+       }
+ 
+       if (avio_open(&rv->of->pb, fname, AVIO_FLAG_WRITE) < 0) {

Deleted: openvdb3-abi.patch
===================================================================
--- openvdb3-abi.patch  2018-08-03 04:39:58 UTC (rev 367476)
+++ openvdb3-abi.patch  2018-08-03 04:40:07 UTC (rev 367477)
@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bfea2dd1a97..c59aff4c62c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -252,6 +252,10 @@ option(WITH_OPENSUBDIV    "Enable OpenSubdiv for surface 
subdivision" _init_OPEN
- option(WITH_OPENVDB       "Enable features relying on OpenVDB" OFF)
- option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable 
if OpenVDB was built with blosc support" OFF)
- 
-+if(WITH_OPENVDB)
-+    add_definitions(-DOPENVDB_3_ABI_COMPATIBLE=TRUE)
-+endif()
-+
- # GHOST Windowing Library Options
- option(WITH_GHOST_DEBUG   "Enable debugging output for the GHOST library" OFF)
- mark_as_advanced(WITH_GHOST_DEBUG)
-diff --git a/intern/openvdb/intern/openvdb_writer.cc 
b/intern/openvdb/intern/openvdb_writer.cc
-index e886c5a76a8..bedcfe65552 100644
---- a/intern/openvdb/intern/openvdb_writer.cc
-+++ b/intern/openvdb/intern/openvdb_writer.cc
-@@ -45,7 +45,7 @@ void OpenVDBWriter::insert(const openvdb::GridBase::Ptr 
&grid)
- 
- void OpenVDBWriter::insert(const openvdb::GridBase &grid)
- {
--#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER == 3)
-+#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER <= 3) || 
defined(OPENVDB_3_ABI_COMPATIBLE)
-       m_grids->push_back(grid.copyGrid());
- #else
-       m_grids->push_back(grid.copyGridWithNewTree());

Copied: blender/repos/community-testing-x86_64/openvdb3-abi.patch (from rev 
367476, blender/trunk/openvdb3-abi.patch)
===================================================================
--- openvdb3-abi.patch                          (rev 0)
+++ openvdb3-abi.patch  2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bfea2dd1a97..c59aff4c62c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -252,6 +252,10 @@ option(WITH_OPENSUBDIV    "Enable OpenSubdiv for surface 
subdivision" _init_OPEN
+ option(WITH_OPENVDB       "Enable features relying on OpenVDB" OFF)
+ option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable 
if OpenVDB was built with blosc support" OFF)
+ 
++if(WITH_OPENVDB)
++    add_definitions(-DOPENVDB_3_ABI_COMPATIBLE=TRUE)
++endif()
++
+ # GHOST Windowing Library Options
+ option(WITH_GHOST_DEBUG   "Enable debugging output for the GHOST library" OFF)
+ mark_as_advanced(WITH_GHOST_DEBUG)
+diff --git a/intern/openvdb/intern/openvdb_writer.cc 
b/intern/openvdb/intern/openvdb_writer.cc
+index e886c5a76a8..bedcfe65552 100644
+--- a/intern/openvdb/intern/openvdb_writer.cc
++++ b/intern/openvdb/intern/openvdb_writer.cc
+@@ -45,7 +45,7 @@ void OpenVDBWriter::insert(const openvdb::GridBase::Ptr 
&grid)
+ 
+ void OpenVDBWriter::insert(const openvdb::GridBase &grid)
+ {
+-#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER == 3)
++#if (OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER <= 3) || 
defined(OPENVDB_3_ABI_COMPATIBLE)
+       m_grids->push_back(grid.copyGrid());
+ #else
+       m_grids->push_back(grid.copyGridWithNewTree());

Copied: blender/repos/community-testing-x86_64/python37.patch (from rev 367476, 
blender/trunk/python37.patch)
===================================================================
--- python37.patch                              (rev 0)
+++ python37.patch      2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,40 @@
+From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001
+From: Campbell Barton <ideasma...@gmail.com>
+Date: Thu, 12 Jul 2018 08:28:06 +0200
+Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7
+
+In Python3.7 this now raises an error.
+---
+ source/blender/python/intern/bpy_rna.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/source/blender/python/intern/bpy_rna.c 
b/source/blender/python/intern/bpy_rna.c
+index 9052b6f580a..80b0aa7a51b 100644
+--- a/source/blender/python/intern/bpy_rna.c
++++ b/source/blender/python/intern/bpy_rna.c
+@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA 
*dummyptr, StructRNA *srna, v
+               if (!(flag & PROP_REGISTER))
+                       continue;
+ 
++              /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also 
in the macro below. */
+               identifier = RNA_property_identifier(prop);
+               item = PyObject_GetAttrString(py_class, identifier);
+ 
+               if (item == NULL) {
++                      PyErr_Clear();
+                       /* Sneaky workaround to use the class name as the 
bl_idname */
+ 
+ #define     BPY_REPLACEMENT_STRING(rna_attr, py_attr)                         
\
+@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA 
*dummyptr, StructRNA *srna, v
+                                       }                                       
                  \
+                                       Py_DECREF(item);                        
                  \
+                               }                                               
              \
++                              else {                                          
              \
++                                      PyErr_Clear();                          
                  \
++                              }                                               
              \
+                       }  /* intentionally allow else here */
+ 
+                       if (false) {}  /* needed for macro */
+-- 
+2.18.0
+

Deleted: tree_hpp.patch
===================================================================
--- tree_hpp.patch      2018-08-03 04:39:58 UTC (rev 367476)
+++ tree_hpp.patch      2018-08-03 04:40:07 UTC (rev 367477)
@@ -1,183 +0,0 @@
-diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp
-index c8a253fc901..bd35f82d185 100644
---- a/intern/itasc/kdl/tree.hpp
-+++ b/intern/itasc/kdl/tree.hpp
-@@ -1,177 +1,177 @@
- // Copyright  (C)  2007  Ruben Smits <ruben dot smits at mech dot kuleuven 
dot be>
- 
- // Version: 1.0
- // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
- // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
- // URL: http://www.orocos.org/kdl
- 
- // This library is free software; you can redistribute it and/or
- // modify it under the terms of the GNU Lesser General Public
- // License as published by the Free Software Foundation; either
- // version 2.1 of the License, or (at your option) any later version.
- 
- // This library is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- // Lesser General Public License for more details.
- 
- // You should have received a copy of the GNU Lesser General Public
- // License along with this library; if not, write to the Free Software
- // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- 
- #ifndef KDL_TREE_HPP
- #define KDL_TREE_HPP
- 
- #include "segment.hpp"
- #include "chain.hpp"
- 
- #include <string>
- #include <map>
- #include <Eigen/Core>
- 
- namespace KDL
- {
-     //Forward declaration
-     class TreeElement;
-     // Eigen allocator is needed for alignment of Eigen data types
--    typedef std::map<std::string,TreeElement, std::less<std::string>, 
Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap;
-+    typedef std::map<std::string,TreeElement, std::less<std::string>, 
Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > 
SegmentMap;
- 
-     class TreeElement
-     {
-     public:
-         TreeElement():q_nr(0),parent(0)
-         {};
-     public:
-         Segment segment;
-         unsigned int q_nr;
-         SegmentMap::value_type const *parent;
-         std::vector<SegmentMap::const_iterator > children;
-         TreeElement(const Segment& segment_in,const SegmentMap::value_type& 
parent_in,unsigned int q_nr_in)
-         {
-                       q_nr=q_nr_in;
-             segment=segment_in;
-             parent=&parent_in;
-         };
-         static TreeElement Root()
-         {
-             return TreeElement();
-         };
-     };
- 
-     /**
-      * \brief  This class encapsulates a <strong>tree</strong>
-      * kinematic interconnection structure. It is build out of segments.
-      *
-      * @ingroup KinematicFamily
-      */
-     class Tree
-     {
-     private:
-         SegmentMap segments;
-         unsigned int nrOfJoints;
-         unsigned int nrOfSegments;
- 
-         bool addTreeRecursive(SegmentMap::const_iterator root, const 
std::string& tree_name, const std::string& hook_name);
- 
-     public:
-         /**
-          * The constructor of a tree, a new tree is always empty
-          */
-         Tree();
-         Tree(const Tree& in);
-         Tree& operator= (const Tree& arg);
- 
-         /**
-          * Adds a new segment to the end of the segment with
-          * hook_name as segment_name
-          *
-          * @param segment new segment to add
-          * @param segment_name name of the new segment
-          * @param hook_name name of the segment to connect this
-          * segment with.
-          *
-          * @return false if hook_name could not be found.
-          */
-         bool addSegment(const Segment& segment, const std::string& 
segment_name, const std::string& hook_name);
- 
-         /**
-          * Adds a complete chain to the end of the segment with
-          * hook_name as segment_name. Segment i of
-          * the chain will get chain_name+".Segment"+i as segment_name.
-          *
-          * @param chain Chain to add
-          * @param chain_name name of the chain
-          * @param hook_name name of the segment to connect the chain with.
-          *
-          * @return false if hook_name could not be found.
-          */
-         bool addChain(const Chain& chain, const std::string& chain_name, 
const std::string& hook_name);
- 
-         /**
-          * Adds a complete tree to the end of the segment with
-          * hookname as segment_name. The segments of the tree will get
-          * tree_name+segment_name as segment_name.
-          *
-          * @param tree Tree to add
-          * @param tree_name name of the tree
-          * @param hook_name name of the segment to connect the tree with
-          *
-          * @return false if hook_name could not be found
-          */
-         bool addTree(const Tree& tree, const std::string& tree_name,const 
std::string& hook_name);
- 
-         /**
-          * Request the total number of joints in the tree.\n
-          * <strong> Important:</strong> It is not the same as the
-          * total number of segments since a segment does not need to have
-          * a joint.
-          *
-          * @return total nr of joints
-          */
-         unsigned int getNrOfJoints()const
-         {
-             return nrOfJoints;
-         };
- 
-         /**
-          * Request the total number of segments in the tree.
-          * @return total number of segments
-          */
-         unsigned int getNrOfSegments()const {return nrOfSegments;};
- 
-         /**
-          * Request the segment of the tree with name segment_name.
-          *
-          * @param segment_name the name of the requested segment
-          *
-          * @return constant iterator pointing to the requested segment
-          */
-         SegmentMap::const_iterator getSegment(const std::string& 
segment_name)const
-         {
-             return segments.find(segment_name);
-         };
- 
-         SegmentMap::value_type const* getSegmentPtr(const std::string& 
segment_name)const
-         {
-             SegmentMap::const_iterator it = segments.find(segment_name);
-             
-             if (it == segments.end())
-                 return 0;
- 
-             return &*it;
-         };
- 
-         const SegmentMap& getSegments()const
-         {
-             return segments;
-         }
- 
-         virtual ~Tree(){};
-     };
- }
- #endif
- 
- 
- 
- 
- 

Copied: blender/repos/community-testing-x86_64/tree_hpp.patch (from rev 367476, 
blender/trunk/tree_hpp.patch)
===================================================================
--- tree_hpp.patch                              (rev 0)
+++ tree_hpp.patch      2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,183 @@
+diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp
+index c8a253fc901..bd35f82d185 100644
+--- a/intern/itasc/kdl/tree.hpp
++++ b/intern/itasc/kdl/tree.hpp
+@@ -1,177 +1,177 @@
+ // Copyright  (C)  2007  Ruben Smits <ruben dot smits at mech dot kuleuven 
dot be>
+ 
+ // Version: 1.0
+ // Author: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
+ // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
+ // URL: http://www.orocos.org/kdl
+ 
+ // This library is free software; you can redistribute it and/or
+ // modify it under the terms of the GNU Lesser General Public
+ // License as published by the Free Software Foundation; either
+ // version 2.1 of the License, or (at your option) any later version.
+ 
+ // This library is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ // Lesser General Public License for more details.
+ 
+ // You should have received a copy of the GNU Lesser General Public
+ // License along with this library; if not, write to the Free Software
+ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ 
+ #ifndef KDL_TREE_HPP
+ #define KDL_TREE_HPP
+ 
+ #include "segment.hpp"
+ #include "chain.hpp"
+ 
+ #include <string>
+ #include <map>
+ #include <Eigen/Core>
+ 
+ namespace KDL
+ {
+     //Forward declaration
+     class TreeElement;
+     // Eigen allocator is needed for alignment of Eigen data types
+-    typedef std::map<std::string,TreeElement, std::less<std::string>, 
Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap;
++    typedef std::map<std::string,TreeElement, std::less<std::string>, 
Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > 
SegmentMap;
+ 
+     class TreeElement
+     {
+     public:
+         TreeElement():q_nr(0),parent(0)
+         {};
+     public:
+         Segment segment;
+         unsigned int q_nr;
+         SegmentMap::value_type const *parent;
+         std::vector<SegmentMap::const_iterator > children;
+         TreeElement(const Segment& segment_in,const SegmentMap::value_type& 
parent_in,unsigned int q_nr_in)
+         {
+                       q_nr=q_nr_in;
+             segment=segment_in;
+             parent=&parent_in;
+         };
+         static TreeElement Root()
+         {
+             return TreeElement();
+         };
+     };
+ 
+     /**
+      * \brief  This class encapsulates a <strong>tree</strong>
+      * kinematic interconnection structure. It is build out of segments.
+      *
+      * @ingroup KinematicFamily
+      */
+     class Tree
+     {
+     private:
+         SegmentMap segments;
+         unsigned int nrOfJoints;
+         unsigned int nrOfSegments;
+ 
+         bool addTreeRecursive(SegmentMap::const_iterator root, const 
std::string& tree_name, const std::string& hook_name);
+ 
+     public:
+         /**
+          * The constructor of a tree, a new tree is always empty
+          */
+         Tree();
+         Tree(const Tree& in);
+         Tree& operator= (const Tree& arg);
+ 
+         /**
+          * Adds a new segment to the end of the segment with
+          * hook_name as segment_name
+          *
+          * @param segment new segment to add
+          * @param segment_name name of the new segment
+          * @param hook_name name of the segment to connect this
+          * segment with.
+          *
+          * @return false if hook_name could not be found.
+          */
+         bool addSegment(const Segment& segment, const std::string& 
segment_name, const std::string& hook_name);
+ 
+         /**
+          * Adds a complete chain to the end of the segment with
+          * hook_name as segment_name. Segment i of
+          * the chain will get chain_name+".Segment"+i as segment_name.
+          *
+          * @param chain Chain to add
+          * @param chain_name name of the chain
+          * @param hook_name name of the segment to connect the chain with.
+          *
+          * @return false if hook_name could not be found.
+          */
+         bool addChain(const Chain& chain, const std::string& chain_name, 
const std::string& hook_name);
+ 
+         /**
+          * Adds a complete tree to the end of the segment with
+          * hookname as segment_name. The segments of the tree will get
+          * tree_name+segment_name as segment_name.
+          *
+          * @param tree Tree to add
+          * @param tree_name name of the tree
+          * @param hook_name name of the segment to connect the tree with
+          *
+          * @return false if hook_name could not be found
+          */
+         bool addTree(const Tree& tree, const std::string& tree_name,const 
std::string& hook_name);
+ 
+         /**
+          * Request the total number of joints in the tree.\n
+          * <strong> Important:</strong> It is not the same as the
+          * total number of segments since a segment does not need to have
+          * a joint.
+          *
+          * @return total nr of joints
+          */
+         unsigned int getNrOfJoints()const
+         {
+             return nrOfJoints;
+         };
+ 
+         /**
+          * Request the total number of segments in the tree.
+          * @return total number of segments
+          */
+         unsigned int getNrOfSegments()const {return nrOfSegments;};
+ 
+         /**
+          * Request the segment of the tree with name segment_name.
+          *
+          * @param segment_name the name of the requested segment
+          *
+          * @return constant iterator pointing to the requested segment
+          */
+         SegmentMap::const_iterator getSegment(const std::string& 
segment_name)const
+         {
+             return segments.find(segment_name);
+         };
+ 
+         SegmentMap::value_type const* getSegmentPtr(const std::string& 
segment_name)const
+         {
+             SegmentMap::const_iterator it = segments.find(segment_name);
+             
+             if (it == segments.end())
+                 return 0;
+ 
+             return &*it;
+         };
+ 
+         const SegmentMap& getSegments()const
+         {
+             return segments;
+         }
+ 
+         virtual ~Tree(){};
+     };
+ }
+ #endif
+ 
+ 
+ 
+ 
+ 

Deleted: util_sseb.patch
===================================================================
--- util_sseb.patch     2018-08-03 04:39:58 UTC (rev 367476)
+++ util_sseb.patch     2018-08-03 04:40:07 UTC (rev 367477)
@@ -1,13 +0,0 @@
-diff --git a/intern/cycles/util/util_sseb.h b/intern/cycles/util/util_sseb.h
-index 6e669701f3b..9ffe391666a 100644
---- a/intern/cycles/util/util_sseb.h
-+++ b/intern/cycles/util/util_sseb.h
-@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const 
sseb& b ) { return _mm_u
- __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return 
_mm_unpackhi_ps(a, b); }
- 
- template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb 
shuffle( const sseb& a ) {
--      return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0));
-+      return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, 
i0)));
- }
- 
- template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) {

Copied: blender/repos/community-testing-x86_64/util_sseb.patch (from rev 
367476, blender/trunk/util_sseb.patch)
===================================================================
--- util_sseb.patch                             (rev 0)
+++ util_sseb.patch     2018-08-03 04:40:07 UTC (rev 367477)
@@ -0,0 +1,13 @@
+diff --git a/intern/cycles/util/util_sseb.h b/intern/cycles/util/util_sseb.h
+index 6e669701f3b..9ffe391666a 100644
+--- a/intern/cycles/util/util_sseb.h
++++ b/intern/cycles/util/util_sseb.h
+@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const 
sseb& b ) { return _mm_u
+ __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return 
_mm_unpackhi_ps(a, b); }
+ 
+ template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb 
shuffle( const sseb& a ) {
+-      return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0));
++      return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, 
i0)));
+ }
+ 
+ template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) {

Reply via email to