blender.git
12 months agobuild_environment: force a consistent libdir across Linux distributions.
Ray Molenkamp [Mon, 17 Sep 2018 14:13:08 +0000 (08:13 -0600)]
build_environment: force a consistent libdir across Linux distributions.

on some distributions libs ended up in lib64 confusing the cmake builder.

12 months agoFix object selection with eyerdropper not respecting property poll function.
Brecht Van Lommel [Mon, 17 Sep 2018 10:16:27 +0000 (12:16 +0200)]
Fix object selection with eyerdropper not respecting property poll function.

12 months agoFix T56811: Do not show cancel button for jobs when UI is locked.
Bastien Montagne [Mon, 17 Sep 2018 08:22:00 +0000 (10:22 +0200)]
Fix T56811: Do not show cancel button for jobs when UI is locked.

Since that button is then totally useless and unusable...

13 months agoFix OpenColorIO link errors in some Linux builds.
Brecht Van Lommel [Fri, 14 Sep 2018 14:27:11 +0000 (16:27 +0200)]
Fix OpenColorIO link errors in some Linux builds.

The library can get installed in a lib/static subdirectory, so search there
as well now.

13 months agoFix building deps when OpenCV dev package is present.
Bastien Montagne [Thu, 13 Sep 2018 14:05:59 +0000 (16:05 +0200)]
Fix building deps when OpenCV dev package is present.

Since we are not linking against OpenCV ourselves, that generated
linking errors later on (while building OSL e.g.).
Those 'open' libs link against way too many other libs... :/

Thanks to @intrah for initial report (T56785), and @LazyDodo for
suggested solution.

13 months agoWM: move mousemove out of internal undo function
Campbell Barton [Thu, 13 Sep 2018 13:20:04 +0000 (23:20 +1000)]
WM: move mousemove out of internal undo function

This causes a feedback loop in 2.8x,
where gizmo redo caused fake mousemove that executed gizmo again.

Move the mousemove into the undo/redo operator.

13 months agoPyAPI: remove operator methods that leak memory
Campbell Barton [Thu, 13 Sep 2018 10:10:56 +0000 (20:10 +1000)]
PyAPI: remove operator methods that leak memory

13 months agoPyAPI: use brief description for operator repr
Campbell Barton [Thu, 13 Sep 2018 09:59:15 +0000 (19:59 +1000)]
PyAPI: use brief description for operator repr

Only include description in docstring.

Also avoid using op_get_rna.

13 months agoTentative fix for T56770: Crash after set language to Simplified Chinese.
Bastien Montagne [Thu, 13 Sep 2018 09:20:49 +0000 (11:20 +0200)]
Tentative fix for T56770: Crash after set language to Simplified Chinese.

That bug probably did not affect 2.7x, only 2.8 with COW copying IDs in
threads... But root of the issue is that underlying boost i18n lib does
not support well multi-threaded access. So simply forbid any translation
from non-main thread. This *may* be an annoying limit at some point, but
doubt it will be any issue currently.

13 months agoPyAPI: add API call to get an operators type
Campbell Barton [Thu, 13 Sep 2018 08:16:06 +0000 (18:16 +1000)]
PyAPI: add API call to get an operators type

Getting the instance leaks memory and was only meant to be used for
generating docs.

13 months agoCleanup: _bpy.ops utility to lookup an operator
Campbell Barton [Thu, 13 Sep 2018 07:47:56 +0000 (17:47 +1000)]
Cleanup: _bpy.ops utility to lookup an operator

13 months agoCleanup: use PyImport_GetModuleDict
Campbell Barton [Thu, 13 Sep 2018 07:06:07 +0000 (17:06 +1000)]
Cleanup: use PyImport_GetModuleDict

Replace direct access using PyThreadState_GET

13 months agoPyDoc: replace use of deprecated API call
Campbell Barton [Thu, 13 Sep 2018 06:33:34 +0000 (16:33 +1000)]
PyDoc: replace use of deprecated API call

13 months agoCleanup: move 'make help_features' into own file
Campbell Barton [Thu, 13 Sep 2018 06:20:02 +0000 (16:20 +1000)]
Cleanup: move 'make help_features' into own file

13 months agoPyDoc: disable ASAN exit code for doc building
Campbell Barton [Thu, 13 Sep 2018 05:37:30 +0000 (15:37 +1000)]
PyDoc: disable ASAN exit code for doc building

Prevented docs from building on any minor issue when ASAN was enabled.

13 months agoCleanup: GCC ignored qualifier warning
Campbell Barton [Wed, 12 Sep 2018 21:39:22 +0000 (07:39 +1000)]
Cleanup: GCC ignored qualifier warning

13 months agoFix T56662: Autocomplete for texture slot Crash (in console).
Bastien Montagne [Wed, 12 Sep 2018 16:31:14 +0000 (18:31 +0200)]
Fix T56662: Autocomplete for texture slot Crash (in console).

That pointer can be NULL, RNA default string handling does not support
that. (that whole uv_layer prop is quite nasty actually, since it does
not own that string, always borrows it from some other data :((( ).

13 months agoCycles: Don't allocate Extra if BSDF allocation failed
Sergey Sharybin [Wed, 12 Sep 2018 10:21:04 +0000 (12:21 +0200)]
Cycles: Don't allocate Extra if BSDF allocation failed

Failed as in did not allocate due to possibly weight cutoff.
Tryign to allocated Extra storage for closure in such situation
will consfuse Cycles and cause crashes later one due to obscure
values in ShaderData.

13 months agoCleanup: More correct terminology work
Sergey Sharybin [Wed, 12 Sep 2018 09:00:38 +0000 (11:00 +0200)]
Cleanup: More correct terminology work

Matches threading API.

13 months agoCMake: add openjpeg 2x search paths
Campbell Barton [Wed, 12 Sep 2018 06:26:15 +0000 (16:26 +1000)]
CMake: add openjpeg 2x search paths

Wasn't finding the include path by on Linux.

13 months agoCleanup: remove alpha_check variable from DNA
Campbell Barton [Wed, 12 Sep 2018 05:48:00 +0000 (15:48 +1000)]
Cleanup: remove alpha_check variable from DNA

Just pass as an argument.

13 months agoBuild: require OpenJPEG 2.x minimum, remove bundled version.
Brecht Van Lommel [Thu, 30 Aug 2018 12:20:19 +0000 (14:20 +0200)]
Build: require OpenJPEG 2.x minimum, remove bundled version.

* WITH_SYSTEM_OPENJPEG is removed and is now always on, this was already
  the case for macOS and Windows.
* This should not break existing Linx builds. If there is no new enough
  OpenJPEG installed, CMake will no find libopenjp2 and WITH_IMAGE_OPENJPEG
  will be disabled.
* install_deps.sh was updated with new package names, since distributions
  put this version in a new package.

Differential Revision: https://developer.blender.org/D3663

13 months agoCleanup: unused variables
Campbell Barton [Tue, 11 Sep 2018 07:30:05 +0000 (17:30 +1000)]
Cleanup: unused variables

13 months agoBuild: update for new macOS libraries.
Brecht Van Lommel [Mon, 10 Sep 2018 20:24:37 +0000 (22:24 +0200)]
Build: update for new macOS libraries.

Run "make update", or "svn update" in lib/darwin to get the matching
precompiled libraries.

13 months agoBuild Environment: updates for macOS.
Brecht Van Lommel [Mon, 10 Sep 2018 12:25:06 +0000 (14:25 +0200)]
Build Environment: updates for macOS.

Mainly this is following Linux to build own xml2/lzma/ssl/sqlite and linking
them all statically. This ensures the Python ssl module uses a recent openssl
version rather than a very old one shipped with macOS.

13 months agoCorrect own error in recent transform orientation changes
Campbell Barton [Tue, 11 Sep 2018 05:00:50 +0000 (15:00 +1000)]
Correct own error in recent transform orientation changes

13 months agoUI: split theme draw style into separate field
Campbell Barton [Tue, 11 Sep 2018 00:56:08 +0000 (10:56 +1000)]
UI: split theme draw style into separate field

Was using UI_BLOCK_LOOP to control draw style,
this meant we couldn't use popup theme colors for cases
where it the interface has the same purpose as a popup but happens
not to use this flag.

13 months agoFix Cycles principled BSDF black with transmission and IOR 1.0.
Brecht Van Lommel [Mon, 10 Sep 2018 16:49:47 +0000 (18:49 +0200)]
Fix Cycles principled BSDF black with transmission and IOR 1.0.

13 months agoFix T56720: Lattice: crash on setting points_u/v/w from python.
Bastien Montagne [Sat, 8 Sep 2018 13:29:39 +0000 (15:29 +0200)]
Fix T56720: Lattice: crash on setting points_u/v/w from python.

One need to check that there is something to free, before trying to free it...

13 months agoCleanup: move area API into own function
Campbell Barton [Fri, 7 Sep 2018 19:59:28 +0000 (05:59 +1000)]
Cleanup: move area API into own function

13 months agoInstall_deps: fix llvm/clang ARCH package names.
Bastien Montagne [Fri, 7 Sep 2018 18:39:42 +0000 (20:39 +0200)]
Install_deps: fix llvm/clang ARCH package names.

Issue raised in T56540, thanks.

Also tried to re-enable using fedora's llvm/clang packages, would hope
and assume old issue here is fixed.

13 months agoInstall_deps: Fix wrong URL for ILMBase/OpenEXR source archives.
Bastien Montagne [Fri, 7 Sep 2018 18:31:50 +0000 (20:31 +0200)]
Install_deps: Fix wrong URL for ILMBase/OpenEXR source archives.

They also went to github...

13 months agoInstall_deps: Fix building python on fedora 28
Bastien Montagne [Fri, 7 Sep 2018 18:20:09 +0000 (20:20 +0200)]
Install_deps: Fix building python on fedora 28

Looks like libffi is now a dependency of python as well...

Done it for the other distro as well, just in case. ;)

13 months agoFix normal transform orientation calculation
Campbell Barton [Fri, 7 Sep 2018 01:24:37 +0000 (11:24 +1000)]
Fix normal transform orientation calculation

When using the 'normal' orientation, the normal would be ignored
if the plane couldn't be calculated.

Now use only the normal if the plane is zero length,
this was already done, just not in all cases.

13 months agoCleanup: fix compiler warning.
Brecht Van Lommel [Thu, 6 Sep 2018 18:09:13 +0000 (20:09 +0200)]
Cleanup: fix compiler warning.

13 months agoFix T56704: black / NaN values in Cycles normal pass.
Brecht Van Lommel [Thu, 6 Sep 2018 18:06:23 +0000 (20:06 +0200)]
Fix T56704: black / NaN values in Cycles normal pass.

13 months agoFix T56698: saving render result from compositing as EXR is empty.
Brecht Van Lommel [Thu, 6 Sep 2018 15:32:05 +0000 (17:32 +0200)]
Fix T56698: saving render result from compositing as EXR is empty.

13 months agoUpdate install_deps.sh to latest libs.
Bastien Montagne [Wed, 5 Sep 2018 15:11:03 +0000 (17:11 +0200)]
Update install_deps.sh to latest libs.

Tested with Debian Testing, might need some adjustements for other
distributions...

Also removed last patches we used here, we shall not need any anymore!

13 months agoCompositor: Always use AA on masks
Sergey Sharybin [Thu, 6 Sep 2018 08:39:25 +0000 (10:39 +0200)]
Compositor: Always use AA on masks

In a real world it is very weird to disable AA on a mask,
it will give ugly looking result. For some fast preview
passes (like in the node preview) the system can decide
to disable AA without asking user to do anything.

One thing we can consider doing is to remove Feather
option as well. If real compo becomes measurably slower
in cases when mask has no real feather, we can disable
feather internally, without user input. Disabling
feather in the interface is like making things faster
but giving a wrong result, which doesn't sound that
helpful either.

Reviewers: brecht

Reviewed By: brecht

Subscribers: hype, sebastian_k

Differential Revision: https://developer.blender.org/D3677

13 months agoFix ruler angle arc displaying past endpoints
Campbell Barton [Thu, 6 Sep 2018 04:41:36 +0000 (14:41 +1000)]
Fix ruler angle arc displaying past endpoints

13 months agoCycles: Allow cancel during displacement of meshes
Mai Lavelle [Thu, 6 Sep 2018 04:23:50 +0000 (00:23 -0400)]
Cycles: Allow cancel during displacement of meshes

13 months agoCCG: Remove number of layers from key
Sergey Sharybin [Wed, 5 Sep 2018 13:56:50 +0000 (15:56 +0200)]
CCG: Remove number of layers from key

The issue there was that number of layers did not include normals,
while element size counts bytes used by normals. This sounds very
fragile and dangerous to work further. Also, one value can easily
be delivered from another, so it is redundancy going on here.

Possible difference now is that multires subdivision will copy
normals to a higher levels. Shouldn't be big of a problem, since
leaving old normals and updating coordinates is not correct either.

13 months agoCleanup: replace doxy @ with backslash
Campbell Barton [Wed, 5 Sep 2018 04:56:29 +0000 (14:56 +1000)]
Cleanup: replace doxy @ with backslash

The rest of Blender uses backslashes.

13 months agoCleanup: style
Campbell Barton [Wed, 5 Sep 2018 04:46:54 +0000 (14:46 +1000)]
Cleanup: style

13 months agoFix T54152: --env-system-scripts fails on win32
Ray Molenkamp [Wed, 5 Sep 2018 04:31:10 +0000 (14:31 +1000)]
Fix T54152: --env-system-scripts fails on win32

13 months agoFix VSE cut both-sides option
Campbell Barton [Wed, 5 Sep 2018 01:56:31 +0000 (11:56 +1000)]
Fix VSE cut both-sides option

Was ignoring the option, using the mouse in all cases.

D3671 by @ISS w/ edits.

13 months agocycles: Fix x86 build error.
Ray Molenkamp [Tue, 4 Sep 2018 22:58:41 +0000 (16:58 -0600)]
cycles: Fix x86 build error.

WITH_CYCLES_CUDA_BINARIES was set as a regular variable causing it to be overwritten by the release.cmake settings.

13 months agoCleanup: use const arg for BLI_rect inside check
Campbell Barton [Tue, 4 Sep 2018 07:33:12 +0000 (17:33 +1000)]
Cleanup: use const arg for BLI_rect inside check

13 months agoUI: cleanup tooltip bounds clamping
Campbell Barton [Tue, 4 Sep 2018 05:23:39 +0000 (15:23 +1000)]
UI: cleanup tooltip bounds clamping

Wasn't properly clamping on the window minimum.

13 months agoClosthCollision: fully avoid computing BVHTree when we have no collision objects...
Bastien Montagne [Mon, 3 Sep 2018 15:32:46 +0000 (17:32 +0200)]
ClosthCollision: fully avoid computing BVHTree when we have no collision objects to test against.

Followup to rBc6bbe6c5aac29, much more elegant solution to the problem. ;)

13 months agoSpelling fixes in comments and descriptions, patch by luzpaz.
Brecht Van Lommel [Mon, 3 Sep 2018 14:49:08 +0000 (16:49 +0200)]
Spelling fixes in comments and descriptions, patch by luzpaz.

Differential Revision: https://developer.blender.org/D3668

13 months agoFix (unreported) potentially giant memory leak in Cloth collision solver.
Bastien Montagne [Mon, 3 Sep 2018 13:30:33 +0000 (15:30 +0200)]
Fix (unreported) potentially giant memory leak in Cloth collision solver.

Not freeing its BVHTree in case there were no collision objects,
could quickly lead to hundreds of MB of memleak!

13 months agoFix Cycles half float pragma for strict OpenCL compilers (like ROCm).
Alex Fuller [Mon, 3 Sep 2018 09:11:45 +0000 (11:11 +0200)]
Fix Cycles half float pragma for strict OpenCL compilers (like ROCm).

Differential Revision: https://developer.blender.org/D3669

13 months agoPyAPI: add optional imports to expression eval API
Campbell Barton [Mon, 3 Sep 2018 02:38:19 +0000 (12:38 +1000)]
PyAPI: add optional imports to expression eval API

Avoids having to use `__import__` to access modules.

13 months agoCleanup: move keymap helpers into own file
Campbell Barton [Sun, 2 Sep 2018 09:34:36 +0000 (19:34 +1000)]
Cleanup: move keymap helpers into own file

13 months agoCleanup: comment blocks
Campbell Barton [Sun, 2 Sep 2018 08:51:31 +0000 (18:51 +1000)]
Cleanup: comment blocks

13 months agoBuildbot: Usable PIE
Sergey Sharybin [Fri, 31 Aug 2018 15:05:51 +0000 (17:05 +0200)]
Buildbot: Usable PIE

Makes it impossible to run from GUI on certain platforms, see T56628.

13 months agoPython: Enable MASS unit in FloatProperty
Monique Dewanchand [Fri, 31 Aug 2018 13:00:38 +0000 (15:00 +0200)]
Python: Enable MASS unit in FloatProperty

MASS unit was already implemented for the C api. Only making sure it is
accessible in the python api. Also added 'CAMERA' to the documentation as a valid option.

13 months agoRemove CCGDM from PBVH
Sergey Sharybin [Fri, 31 Aug 2018 10:41:23 +0000 (12:41 +0200)]
Remove CCGDM from PBVH

The statement that PBVH needs to keep track of CCGDM is wrong, PBVH itself
does not care about CCGDM at all, and it's weird for it to carry on this
beast so others can access.

Even more, nobody will actually caring about CCGDM itself, all the usages
were checking whether there is CCGDM or not. This is as good as simply
checking PBVH type.

Tested with an original report T53551 and everything is still stable.

13 months agoFix T56618: crash in release builds when GHOST asserts.
Brecht Van Lommel [Fri, 31 Aug 2018 10:32:12 +0000 (12:32 +0200)]
Fix T56618: crash in release builds when GHOST asserts.

WITH_ASSERT_ABORT was not disabled for release builds. In most cases asserts
are disabled in release builds, but not always.

This also changes the buildbot to use blender_release.cmake instead of
blender_full.cmake, the only effective difference should be WITH_ASSERT_ABORT.

13 months agoFix T56618: crash when typing certain characters on Linux.
Brecht Van Lommel [Fri, 31 Aug 2018 10:39:16 +0000 (12:39 +0200)]
Fix T56618: crash when typing certain characters on Linux.

13 months agoCycles: Cleanup, use explicit comparison with NULL
Sergey Sharybin [Fri, 31 Aug 2018 10:28:12 +0000 (12:28 +0200)]
Cycles: Cleanup, use explicit comparison with NULL

13 months agoFix T56626: Cycles ambient occlusion only local : crash
Sergey Sharybin [Fri, 31 Aug 2018 10:14:36 +0000 (12:14 +0200)]
Fix T56626: Cycles ambient occlusion only local : crash

Was caused by missing NULL pointer check in BVH8.

13 months agoPyAPI: replace checks for invalid input w/ assert
Campbell Barton [Fri, 31 Aug 2018 04:51:59 +0000 (14:51 +1000)]
PyAPI: replace checks for invalid input w/ assert

Was returning -1 as a bool argument,
in this case the caller needs to ensure non-null args.

13 months agoC/Python API: Add PyC_RunString_AsIntPtr
Campbell Barton [Fri, 31 Aug 2018 04:21:32 +0000 (14:21 +1000)]
C/Python API: Add PyC_RunString_AsIntPtr

Utility to get an int or pointer from a Python expression.

13 months agoCleanup: rename WM_keymap_find -> WM_keymap_ensure
Campbell Barton [Fri, 31 Aug 2018 03:36:14 +0000 (13:36 +1000)]
Cleanup: rename WM_keymap_find -> WM_keymap_ensure

13 months agoCycles: Cleanup, whitespace after keyword
Sergey Sharybin [Thu, 30 Aug 2018 15:34:11 +0000 (17:34 +0200)]
Cycles: Cleanup, whitespace after keyword

13 months agoBuildbot: Correction to previous commit
Sergey Sharybin [Thu, 30 Aug 2018 12:09:14 +0000 (14:09 +0200)]
Buildbot: Correction to previous commit

13 months agoBuildbot: Attempt to fix glibc-2.19 compilation
Sergey Sharybin [Thu, 30 Aug 2018 12:07:48 +0000 (14:07 +0200)]
Buildbot: Attempt to fix glibc-2.19 compilation

It is likely to be retired, but for until then lets ensure it works.

13 months agoCycles: Fix detection of CPU brand string on 32 bit platforms
Sergey Sharybin [Thu, 30 Aug 2018 10:50:36 +0000 (12:50 +0200)]
Cycles: Fix detection of CPU brand string on 32 bit platforms

The assembler template was backing up and restoring ebx, which is
fair enough. However, this did not prevent compiler for putting
result variables to ebx. This was causing data corruption.

In order to prevent this easiest solution is to list ebx in clobbers
for the assembly.

13 months agoFix T56612: crash in Cycles viewport render update, after recent changes.
Brecht Van Lommel [Thu, 30 Aug 2018 10:21:57 +0000 (12:21 +0200)]
Fix T56612: crash in Cycles viewport render update, after recent changes.

BVH8 refitting code had a bug.

13 months agoFix T56610: crash saving images with python API.
Brecht Van Lommel [Thu, 30 Aug 2018 10:19:27 +0000 (12:19 +0200)]
Fix T56610: crash saving images with python API.

13 months agoCleanup: license header formatting.
Brecht Van Lommel [Thu, 30 Aug 2018 10:09:47 +0000 (12:09 +0200)]
Cleanup: license header formatting.

13 months agoBuild environment: Tweak to harvasting script
Sergey Sharybin [Thu, 30 Aug 2018 08:21:51 +0000 (10:21 +0200)]
Build environment: Tweak to harvasting script

The idea is to make find_package() to succeed without any
extra tips given. For this, we need header files to be
harvasted.

13 months agoBuildbot: Get rid of OpenJPEG 2 hack
Sergey Sharybin [Thu, 30 Aug 2018 08:00:23 +0000 (10:00 +0200)]
Buildbot: Get rid of OpenJPEG 2 hack

Also clarified some options and decisions.

13 months agoCMake: Automatically detect OpenJPEG 2 libraries
Sergey Sharybin [Thu, 30 Aug 2018 07:55:40 +0000 (09:55 +0200)]
CMake: Automatically detect OpenJPEG 2 libraries

There is chance that on a system with both versions installed this
*might* cause some issues. Such system will be pain to support out
of the box anyway.

This change allows to use precompiled libraries without extra
modifications in the config.

13 months agoCorrection to previous commit
Sergey Sharybin [Wed, 29 Aug 2018 16:37:49 +0000 (18:37 +0200)]
Correction to previous commit

Should not include ABI.

13 months agoBuildbot: Tweak configuration to actually ve successful in chroot
Sergey Sharybin [Wed, 29 Aug 2018 16:32:27 +0000 (18:32 +0200)]
Buildbot: Tweak configuration to actually ve successful in chroot

13 months agoBuildbot: Make configuration to pass config state
Sergey Sharybin [Wed, 29 Aug 2018 15:56:17 +0000 (17:56 +0200)]
Buildbot: Make configuration to pass config state

- Foe some reason CMake's platform and processor are not intialized there.

- Need to set variables in cache, otherwise they are not visible in the
  actual CMake files.

13 months agoCleanup: indentation
Campbell Barton [Wed, 29 Aug 2018 15:31:20 +0000 (01:31 +1000)]
Cleanup: indentation

13 months agoCleanup: trailing space
Campbell Barton [Wed, 29 Aug 2018 15:05:13 +0000 (01:05 +1000)]
Cleanup: trailing space

13 months agoFix Cycles CUDA build after recent changes.
Brecht Van Lommel [Wed, 29 Aug 2018 14:35:21 +0000 (16:35 +0200)]
Fix Cycles CUDA build after recent changes.

13 months agoCleanup: remove unused build environment patches.
Brecht Van Lommel [Wed, 29 Aug 2018 12:33:42 +0000 (14:33 +0200)]
Cleanup: remove unused build environment patches.

13 months agoCleanup: consistent includes.
Brecht Van Lommel [Wed, 29 Aug 2018 11:54:26 +0000 (13:54 +0200)]
Cleanup: consistent includes.

13 months agoBuildbot: Some inital work to support newer chroot environment
Sergey Sharybin [Wed, 29 Aug 2018 14:29:25 +0000 (16:29 +0200)]
Buildbot: Some inital work to support newer chroot environment

13 months agoCMake: Allow specifying custom LIBDIR on Unix
Sergey Sharybin [Wed, 29 Aug 2018 14:15:54 +0000 (16:15 +0200)]
CMake: Allow specifying custom LIBDIR on Unix

Works similar to how maxOS deals with this.

13 months agoCMake: Comply with include path reported by FindOpenGL.cmake
Sergey Sharybin [Wed, 29 Aug 2018 13:08:28 +0000 (15:08 +0200)]
CMake: Comply with include path reported by FindOpenGL.cmake

The script clearly states:

  This makes the presumption that you are include al.h like
  #include "al.h"
  and not
  #include <AL/al.h>
  The reason for this is that the latter is not entirely portable.
  Windows/Creative Labs does not by default put their headers in AL/ and
  OS X uses the convention <OpenAL/al.h>.

This commit makes default precompiled OpenAL to be properly detected
and also removes hack on MacOS which was finding the OpenAL package but
then was overwriting include directory.

Note, that new audaspace in 2.8 is using expected #include <al.h>.

13 months agoCMake: Make sure zlib folder comes first for precompiled Linux libraries
Sergey Sharybin [Wed, 29 Aug 2018 13:05:03 +0000 (15:05 +0200)]
CMake: Make sure zlib folder comes first for precompiled Linux libraries

Without this find_package(ZLIB) will find ZLib from OpenCollada folder,
which has older ABI and is not what was used to link PNG against.

13 months agoCycles: Add BVH8 and packeted triangle intersection
Sergey Sharybin [Wed, 14 Feb 2018 10:23:30 +0000 (11:23 +0100)]
Cycles: Add BVH8 and packeted triangle intersection

This is an initial implementation of BVH8 optimization structure
and packated triangle intersection. The aim is to get faster ray
to scene intersection checks.

    Scene                BVH4      BVH8
barbershop_interior    10:24.94   10:10.74
bmw27                  02:41.25   02:38.83
classroom              08:16.49   07:56.15
fishy_cat              04:24.56   04:17.29
koro                   06:03.06   06:01.45
pavillon_barcelona     09:21.26   09:02.98
victor                 23:39.65   22:53.71

As memory goes, peak usage raises by about 4.7% in a complex
scenes.

Note that BVH8 is disabled when using OSL, this is because OSL
kernel does not get per-microarchitecture optimizations and
hence always considers BVH3 is used.

Original BVH8 patch from Anton Gavrikov.
Batched triangles intersection from Victoria Zhislina.
Extra work and tests and fixes from Maxym Dmytrychenko.

13 months agoBuild environment: Fix compilation of boost on Linux 32bit
Sergey Sharybin [Wed, 29 Aug 2018 12:11:32 +0000 (14:11 +0200)]
Build environment: Fix compilation of boost on Linux 32bit

13 months agoBuild environment: Ensure Python is using static ffi
Sergey Sharybin [Tue, 28 Aug 2018 16:53:59 +0000 (18:53 +0200)]
Build environment: Ensure Python is using static ffi

Surely, need to compile ffi first :)

Good news are: Python seems static enough now!

13 months agoBuild environment: Make sure Python is linkign against static Zlib
Sergey Sharybin [Tue, 28 Aug 2018 16:28:05 +0000 (18:28 +0200)]
Build environment: Make sure Python is linkign against static Zlib

There is system-wide libz development package installed by default,
needed for some other dependencies. This patch ensures Python will
use our own self-compiled Zlib.

13 months agoBuild environment: Enable bzip2, lzma and sqlite for Python on Linux
Sergey Sharybin [Tue, 28 Aug 2018 10:17:04 +0000 (12:17 +0200)]
Build environment: Enable bzip2, lzma and sqlite for Python on Linux

13 months agocmake: adjustments required for lib-upgrade on windows.
Ray Molenkamp [Tue, 28 Aug 2018 01:37:55 +0000 (19:37 -0600)]
cmake: adjustments required for lib-upgrade on windows.

13 months agobuild_environment: llvm only copy lib files for the debug build.
Ray Molenkamp [Tue, 28 Aug 2018 01:23:45 +0000 (19:23 -0600)]
build_environment: llvm only copy lib files for the debug build.

13 months agoFix T56557: wrong hash in Windows buildbot builds.
Brecht Van Lommel [Mon, 27 Aug 2018 17:35:46 +0000 (19:35 +0200)]
Fix T56557: wrong hash in Windows buildbot builds.

13 months agoBuild Environment: fix Windows Alembic build.
Brecht Van Lommel [Mon, 27 Aug 2018 17:06:00 +0000 (19:06 +0200)]
Build Environment: fix Windows Alembic build.

Ideally we should remove this difference between platforms, but for now
just do the simple fix.

13 months agoBuild environment: Enable SSL for Python on Linux
Sergey Sharybin [Mon, 27 Aug 2018 16:09:30 +0000 (18:09 +0200)]
Build environment: Enable SSL for Python on Linux

This involved getting SSL compiled from sources first, ensuring
it is a static library placement independent code. Configuration
is based on what Debian is using. CFlags required to have own
configuration file, which i didn't find a better place that next
to the corresponding CMake file.

It is OpenSSL btw.

It is set to Python via --with-openssl= configuration argument.
This works fine in a clean chroot, but having libssl-dev installed
might make Python to prefer system wide library, This was worked
around by using libssl_pic.a name for the library and modifying
setup.py. Would be cool to ensure system wide libraries are not
a problem, but official release builder is safe against this,
since it will catch possible non-static dependencies.

There is also a new map file which shadows bunch of Python
symbols. Without this Python's shared libraries might bring
conflicting symbols to Blender namespace at runtime.

Hopefully this doesn't break other platforms.

13 months agoBuild environment: Fix for C placement independent code
Sergey Sharybin [Mon, 27 Aug 2018 13:45:18 +0000 (15:45 +0200)]
Build environment: Fix for C placement independent code

Need to pass -fPIC to C code as well.
Without this blosc is not being properly placement independent.

13 months agoBuild Environment: fix alembic, openvdb, ffmpeg, osl build on Linux.
Brecht Van Lommel [Mon, 27 Aug 2018 11:36:42 +0000 (13:36 +0200)]
Build Environment: fix alembic, openvdb, ffmpeg, osl build on Linux.