4 years agoRemoved trailing spaces
Sybren A. Stüvel [Mon, 19 Jun 2017 08:46:07 +0000 (10:46 +0200)]
Removed trailing spaces

4 years agoFix (unreported) bad copying code of Surface Deform modifier.
Bastien Montagne [Mon, 19 Jun 2017 12:57:40 +0000 (14:57 +0200)]
Fix (unreported) bad copying code of Surface Deform modifier.

4 years agoFix compiler warnings from own recent rB0d5c7e5e36b9.
Bastien Montagne [Mon, 19 Jun 2017 12:43:44 +0000 (14:43 +0200)]
Fix compiler warnings from own recent rB0d5c7e5e36b9.

4 years agoFix (unreported) bad copying of Ocean modifier.
Bastien Montagne [Mon, 19 Jun 2017 12:40:08 +0000 (14:40 +0200)]
Fix (unreported) bad copying of Ocean modifier.

Was needlessly complicated code, forgot to copy a value (foam_fade), and
was utterly leaking memory!

4 years agoFix (unreported) bad copying code in Mesh Deform modifier.
Bastien Montagne [Mon, 19 Jun 2017 10:55:11 +0000 (12:55 +0200)]
Fix (unreported) bad copying code in Mesh Deform modifier.

4 years agoFix (unreported) Dynamic Paint modifier not increasing ID usercount in copy function.
Bastien Montagne [Mon, 19 Jun 2017 10:25:41 +0000 (12:25 +0200)]
Fix (unreported) Dynamic Paint modifier not increasing ID usercount in copy function.

*Sigh* One more example of why we should keep ID management handling in
as few places as possible! It's impossible to keep more than a few
places in sync regarding which ID pointer is refcounted etc.

4 years agoFix (unreported) memory leak in Fluid modifier copying.
Bastien Montagne [Mon, 19 Jun 2017 10:21:14 +0000 (12:21 +0200)]
Fix (unreported) memory leak in Fluid modifier copying.

Also generally simplify/sanitize this copy code.

4 years agoCleanup: doxygen comments
Campbell Barton [Sun, 18 Jun 2017 23:33:23 +0000 (09:33 +1000)]
Cleanup: doxygen comments

Also remove duplicate & mismatching comments from grease-pencil header.
Keep comments close to implementation to avoid getting out of sync.

4 years agoFix T51774: Children particles hair interpolation not correct with textures or dp.
Bastien Montagne [Sun, 18 Jun 2017 21:54:52 +0000 (23:54 +0200)]
Fix T51774: Children particles hair interpolation not correct with textures or dp.

Children where always getting at least one segment of fixed length...

Now fully hidden ones (zero length) get no segment at all.

Note that even very short ones keep getting one 'unit' length segment - would
rather avoid changing that at this point, given how complex children
particles 'length' can get with all kind of modifiers... Think we can
live with that for now anyway.

4 years agoFix T51840: UI redraw in node editor header missing on pointcache bake
Thomas Beck [Sun, 18 Jun 2017 14:26:09 +0000 (16:26 +0200)]
Fix T51840: UI redraw in node editor header missing on pointcache bake

Missing a notifier handler in the node editor

4 years agoFix unreported: Copy-pasting nodes crashes when they have an undefined type
Lukas Stockner [Sun, 18 Jun 2017 03:13:32 +0000 (05:13 +0200)]
Fix unreported: Copy-pasting nodes crashes when they have an undefined type

4 years agoDocs: Fix file:line links in generated API docs
Campbell Barton [Sat, 17 Jun 2017 16:33:13 +0000 (02:33 +1000)]
Docs: Fix file:line links in generated API docs

4 years agoAdd Cone: tip soft-min should be zero
Campbell Barton [Sat, 17 Jun 2017 16:07:22 +0000 (02:07 +1000)]
Add Cone: tip soft-min should be zero

Default value should be included in range.

4 years agoGuarded allocator: Fix type in macro definition
Sergey Sharybin [Sat, 17 Jun 2017 14:13:30 +0000 (16:13 +0200)]
Guarded allocator: Fix type in macro definition

The crash did not happen yet because we always had proper vmemh defined in
the parent scope.

Patch by Ivan Ivanov (aka obiwanus), thanks!

Differential Revision:

4 years agoPyAPI: Fix warning about indent
Aaron Carlisle [Fri, 16 Jun 2017 16:30:18 +0000 (12:30 -0400)]
PyAPI: Fix warning about indent

4 years agoFix T51810: Add minimal example of usage of translation API for non-official addons.
Bastien Montagne [Fri, 16 Jun 2017 14:43:46 +0000 (16:43 +0200)]
Fix T51810: Add minimal example of usage of translation API for non-official addons.

4 years agoUsual i18n/UI messages fixes.
Bastien Montagne [Fri, 16 Jun 2017 10:50:24 +0000 (12:50 +0200)]
Usual i18n/UI messages fixes.

Please do not add useless tooltips! We have enough messages to translate

4 years agoCycles: Fix race condition happening in progress utility
Sergey Sharybin [Fri, 16 Jun 2017 08:22:35 +0000 (10:22 +0200)]
Cycles: Fix race condition happening in progress utility

This is not enough to mutex-guard modification code of integer values,
since this operation is NOT atomic. This is not even safe for a single
byte data types.

For now guarded the getter functions, similar to other functions in
this module.

Ideally we want to switch modification to an atomic operations, so we
wouldn't need any locks in the getters.

4 years agoPyAPI: Fix changed ref link
Aaron Carlisle [Fri, 16 Jun 2017 02:03:22 +0000 (22:03 -0400)]
PyAPI: Fix changed ref link

4 years agoPyAPI: Add HTML logo and favicon
Aaron Carlisle [Fri, 16 Jun 2017 01:24:50 +0000 (21:24 -0400)]
PyAPI: Add HTML logo and favicon

Differential Revision:

4 years agoPyAPI: Remove addon tutorial
Aaron Carlisle [Thu, 15 Jun 2017 17:00:58 +0000 (13:00 -0400)]
PyAPI: Remove addon tutorial

This page now lives at

4 years agoCMake: print absolute CMakeCache.txt
Campbell Barton [Thu, 15 Jun 2017 21:38:20 +0000 (07:38 +1000)]
CMake: print absolute CMakeCache.txt

Message didn't show the path of the file to remove
which could be confusing.

4 years agoMath Lib: add angle_on_axis_v3v3_v3
Campbell Barton [Thu, 15 Jun 2017 15:25:08 +0000 (01:25 +1000)]
Math Lib: add angle_on_axis_v3v3_v3

Use for calculating the angle between 2 directions on an axis.

Also signed version and normalized plane projection,
use when input is normalized.

4 years agoCleanup: do not use `BKE_libblock_free_ex()` unless needed!
Bastien Montagne [Thu, 15 Jun 2017 14:20:51 +0000 (16:20 +0200)]
Cleanup: do not use `BKE_libblock_free_ex()` unless needed!

4 years agoFix/workaround 'convert object' messing up linked data.
Bastien Montagne [Thu, 15 Jun 2017 13:40:24 +0000 (15:40 +0200)]
Fix/workaround 'convert object' messing up linked data.

'Convert To...' Object operation has very weird effect of actually
working at obdata level, not object level, which means *all* objects
(even unselected/hidden/in other scenes/...) using same obdata will be
converted to new selected type.

IMHO this is very bad behavior, but... not a bug really, so do not
change this for now.

But at least, do not do that when working on some linked data, else it
leaves Blend file in invalid (incoherent) state until next reload.

So workaround for now is to enforce the 'Keep Original' option when some
linked object/obdata is affected by the operation.

Also fixed somewhat broken usercount handling in Curve->Mesh part.

4 years agoCleanup: make Group Unlink outliner action use `BKE_libblock_delete() too.
Bastien Montagne [Thu, 15 Jun 2017 11:05:29 +0000 (13:05 +0200)]
Cleanup: make Group Unlink outliner action use `BKE_libblock_delete() too.

Same as in rB2bd51474a44...

4 years agoCleanup: remove useless call to `BKE_screen_free()` in screen deletion.
Bastien Montagne [Thu, 15 Jun 2017 11:00:11 +0000 (13:00 +0200)]
Cleanup: remove useless call to `BKE_screen_free()` in screen deletion.

`BKE_libblock_free()` will call it itself.

4 years agoFix dangerous code when deleting Scene.
Bastien Montagne [Thu, 15 Jun 2017 10:57:08 +0000 (12:57 +0200)]
Fix dangerous code when deleting Scene.

That one was probably not an actual issue, except maybe in some corner
cases (like deleting a linked scene also used by some other linked scene).

Again, better not try to do smart & complex freeing logic outside of
BKE_library area, let's keep spaghetti nitghmare in a single place!

4 years agoCleanup: make Group Unlink operator use BKE_libblock_delete(), since that's what...
Bastien Montagne [Thu, 15 Jun 2017 10:49:40 +0000 (12:49 +0200)]
Cleanup: make Group Unlink operator use BKE_libblock_delete(), since that's what it is doing.

Previous code (same as what `BKE_libblock_free_us()` is doing when
usercount reach 0) was probably OK in that specific case, but still not
good idea, and potentially risky.

4 years agoFix collada importer doing own handling of usercount/freeing.
Bastien Montagne [Thu, 15 Jun 2017 10:44:15 +0000 (12:44 +0200)]
Fix collada importer doing own handling of usercount/freeing.

Better use generic `BKE_libblock_free_us()`.

4 years agoFix potentially dnagerous code in doversionning of brush.
Bastien Montagne [Thu, 15 Jun 2017 10:38:55 +0000 (12:38 +0200)]
Fix potentially dnagerous code in doversionning of brush.

Even though in that specific it was probably safe-ish, there is no
guarantee at this point Brush we want to remove are not used somewhere,
better take the slightly slower, much safer `BKE_libblock_delete()` path here.

4 years agoFix serious bug in 'curve-to-mesh' conversion code.
Bastien Montagne [Thu, 15 Jun 2017 10:34:12 +0000 (12:34 +0200)]
Fix serious bug in 'curve-to-mesh' conversion code.

Eeeeeek!^2 Calling unconditionnaly ID freeing `BKE_libblock_free()` on a
datablock (ob->data, i.e. Curve) that may be used elsewhere...
Veryveryvery bad!

4 years agoFix potential memory leak in Sequencer sound strip creation code.
Bastien Montagne [Thu, 15 Jun 2017 10:32:27 +0000 (12:32 +0200)]
Fix potential memory leak in Sequencer sound strip creation code.

4 years agoFix compilation error with strict cflags after recent const changes
Sergey Sharybin [Thu, 15 Jun 2017 08:14:56 +0000 (10:14 +0200)]
Fix compilation error with strict cflags after recent const changes

4 years agoFurther improvements of text editor for POV-Ray
Bastien Montagne [Thu, 15 Jun 2017 07:34:38 +0000 (09:34 +0200)]
Further improvements of text editor for POV-Ray

*tryed "#" as preprocessor used in POV-Ray for language keywords best behaviour was to have it as a punctuation symbol
*moved "finish" to its proper category
*changed order of some POV-Ray ini files keywords to have them work better
*added a few keywords from latest pov version
*Fixed C-style closing of multiline comments (*/)

Reviewers: campbellbarton, mont29

Reviewed By: campbellbarton, mont29

Subscribers: mont29

Differential Revision:

4 years agoPyAPI: Add toctree link on parent page of submodule
Aaron Carlisle [Thu, 15 Jun 2017 05:41:28 +0000 (01:41 -0400)]
PyAPI: Add toctree link on parent page of submodule

4 years agoPyAPI: Proper Solution to
Aaron Carlisle [Thu, 15 Jun 2017 04:54:41 +0000 (00:54 -0400)]
PyAPI: Proper Solution to

4 years agoPYAPI: Fix mathutils doc structure
Aaron Carlisle [Wed, 14 Jun 2017 20:46:49 +0000 (16:46 -0400)]
PYAPI: Fix mathutils doc structure

4 years agoMake whole ID copying code use const source pointer.
Bastien Montagne [Wed, 14 Jun 2017 20:36:30 +0000 (22:36 +0200)]
Make whole ID copying code use const source pointer.

Noisy change, but safe, and better do it sooner than later if we are to
rework copying code. Also, previous commit shows this *is* useful to
catch some mistakes.

4 years agoFix three obvious mistakes in brush/mask/cachefile ID copying.
Bastien Montagne [Wed, 14 Jun 2017 20:33:04 +0000 (22:33 +0200)]
Fix three obvious mistakes in brush/mask/cachefile ID copying.

They were modifying some source ID prop, instead of copied version of
it... Found while making all source of ID copying const. ;)

4 years agoPYAPI: fix documention structure of
Aaron Carlisle [Wed, 14 Jun 2017 20:19:05 +0000 (16:19 -0400)]
PYAPI: fix documention structure of

4 years agoFix missing toctree for bmesh submodules
Aaron Carlisle [Wed, 14 Jun 2017 19:22:26 +0000 (15:22 -0400)]
Fix missing toctree for bmesh submodules

4 years agoPYAPI: Fix freestyle submodules without tocrees
Aaron Carlisle [Wed, 14 Jun 2017 18:41:07 +0000 (14:41 -0400)]
PYAPI: Fix freestyle submodules without tocrees

Fixes 6 compile warnings
Follow up on rBf87ca5f1c314f67353b6111d3647aef159dc07c6

4 years agoDepsgraph: Cleanup, indentation
Sergey Sharybin [Wed, 14 Jun 2017 10:01:52 +0000 (12:01 +0200)]
Depsgraph: Cleanup, indentation

4 years agoRemove unused bmain argument from BKE_libblock_free_data
Sergey Sharybin [Wed, 14 Jun 2017 09:16:34 +0000 (11:16 +0200)]
Remove unused bmain argument from BKE_libblock_free_data

4 years agoCleanup: Indentation got broken in previous commit
Sergey Sharybin [Wed, 14 Jun 2017 08:54:30 +0000 (10:54 +0200)]
Cleanup: Indentation got broken in previous commit

4 years agoAdd utility function to free memory used by a datablock
Sergey Sharybin [Wed, 14 Jun 2017 08:45:20 +0000 (10:45 +0200)]
Add utility function to free memory used by a datablock

This function is similar to BKE_libblock_free but does no DEG
tagging or any extra things, just operates on memory.

4 years agoDepsgraph: Remove unused ID node removal
Sergey Sharybin [Wed, 14 Jun 2017 08:10:39 +0000 (10:10 +0200)]
Depsgraph: Remove unused ID node removal

4 years agoCycles: Fix typo in comment
Sergey Sharybin [Wed, 14 Jun 2017 07:54:07 +0000 (09:54 +0200)]
Cycles: Fix typo in comment

4 years agoFix buffer read error w/ 2 pass select queries
Campbell Barton [Wed, 14 Jun 2017 07:03:49 +0000 (17:03 +1000)]
Fix buffer read error w/ 2 pass select queries

Also don't do second pass when the first has no hits.

4 years agoAdd utility function to get size of given ID type
Sergey Sharybin [Tue, 13 Jun 2017 15:42:31 +0000 (17:42 +0200)]
Add utility function to get size of given ID type

Optionally it'll also give name used for memory allocation.

4 years agoDepsgraph: Pass function bindings by const reference
Sergey Sharybin [Tue, 13 Jun 2017 13:10:29 +0000 (15:10 +0200)]
Depsgraph: Pass function bindings by const reference

Avoids using copy-constructor invoked every time we pass function
to the builder functions.

Should lower number of CPU ticks spent during DEG construction.

4 years agoDepsgraph: Remove root node concept
Sergey Sharybin [Tue, 13 Jun 2017 12:12:54 +0000 (14:12 +0200)]
Depsgraph: Remove root node concept

Was rather weird and only used for time source. It is simpler to make depsgraph
to keep track of time source directly.

No need to introduce extra entitites without actual need.

4 years agoFix T51791: Point Density doesn't work on GPU
Hristo Gueorguiev [Tue, 13 Jun 2017 11:50:27 +0000 (13:50 +0200)]
Fix T51791: Point Density doesn't work on GPU

4 years agoCycles: Cleanup, indentation
Sergey Sharybin [Tue, 13 Jun 2017 08:28:38 +0000 (10:28 +0200)]
Cycles: Cleanup, indentation

4 years agoCycles: Fix compilation error of OpenCL mega kernel
Sergey Sharybin [Tue, 13 Jun 2017 08:25:46 +0000 (10:25 +0200)]
Cycles: Fix compilation error of OpenCL mega kernel

Was some mismatch in address space. Seems to be caused by recent additions.

Additionally, moved decoupled ray marching functions under ifdef, so they
don't try to use malloc() functions.

Thanks Mai for testing the patch!

4 years agoDepsgraph: Remove residue from partial updates support
Sergey Sharybin [Mon, 12 Jun 2017 14:55:04 +0000 (16:55 +0200)]
Depsgraph: Remove residue from partial updates support

4 years agoDepsgraph: Use depsgraph from handle rather than from scene
Sergey Sharybin [Mon, 12 Jun 2017 12:45:43 +0000 (14:45 +0200)]
Depsgraph: Use depsgraph from handle rather than from scene

This way the code is more decoupled from the way where depsgraph is stored.

4 years agoDepsgraph: Add utility function to get depsgraph from node handle
Sergey Sharybin [Mon, 12 Jun 2017 12:41:46 +0000 (14:41 +0200)]
Depsgraph: Add utility function to get depsgraph from node handle

The idea is to use this function for modifiers' updateDepsgraph functions
instead of doing direct scene->depsgraph access.

4 years agoDepsgraph: Remove outdated comment
Sergey Sharybin [Mon, 12 Jun 2017 12:25:05 +0000 (14:25 +0200)]
Depsgraph: Remove outdated comment

4 years agoCleanup: indentation, long lines
Campbell Barton [Mon, 12 Jun 2017 03:35:00 +0000 (13:35 +1000)]
Cleanup: indentation, long lines

4 years agoFix T51737: Material properties error
Campbell Barton [Mon, 12 Jun 2017 02:55:47 +0000 (12:55 +1000)]
Fix T51737: Material properties error

D2706 by @knox

4 years agoCorrect gtest EXPECT use
Campbell Barton [Mon, 12 Jun 2017 00:25:18 +0000 (10:25 +1000)]
Correct gtest EXPECT use

4 years agoCycles: adjust supported driver version for AMD GPUs
Hristo Gueorguiev [Sun, 11 Jun 2017 21:04:27 +0000 (23:04 +0200)]
Cycles: adjust supported driver version for AMD GPUs

On Windows 17.Q1 and 17.Q2 return driver version 2236.10.

4 years agoUse two decimal places for UI scale User Preference option
Julian Eisel [Sun, 11 Jun 2017 20:58:14 +0000 (22:58 +0200)]
Use two decimal places for UI scale User Preference option

4 years agoGTest: initial kdopbvh test
Campbell Barton [Sun, 11 Jun 2017 09:07:18 +0000 (19:07 +1000)]
GTest: initial kdopbvh test

Currently only find-nearest, ray-casting needs to be added.

4 years agoBLI_kdopbvh: add ifdef's for debugging info
Campbell Barton [Sun, 11 Jun 2017 08:42:11 +0000 (18:42 +1000)]
BLI_kdopbvh: add ifdef's for debugging info

Allow to quickly enable print & tree verify.

4 years agoCycles Denoising: Add more failsafes for invalid pixels
Lukas Stockner [Sat, 10 Jun 2017 23:44:06 +0000 (01:44 +0200)]
Cycles Denoising: Add more failsafes for invalid pixels

Now, when there is no usable neighboring pixel for denoising, the noisy value
is preserved instead of producing a NaN.
Also, negative results are clamped to zero.

Note that there are just workarounds that don't fix the underlying problems,
but these issues are very rare and I'm not sure if it's even possible to fix
the underlying problems without introducing a significant slowdown or quality
decrease in other situations.
Because of that and since 2.79 is happening very soon, I just went for these
workarounds for now.

4 years agoUI: Replace placeholder icons in object-add menu
Julian Eisel [Sat, 10 Jun 2017 14:41:58 +0000 (16:41 +0200)]
UI: Replace placeholder icons in object-add menu

Replaces the placeholder 'emtpy' icons of "Force Field" and "Group
Instance" entries in object-add menu with proper new ones.

Icons by @zlsa, thanks a lot!

Maniphest task T51291.

4 years agoCycles: Selectively include denoising in kernel
Sergey Sharybin [Fri, 9 Jun 2017 07:11:54 +0000 (03:11 -0400)]
Cycles: Selectively include denoising in kernel

4 years agoCycles: Pass all buffers to each kernel call for OpenCL
Mai Lavelle [Thu, 11 May 2017 23:23:49 +0000 (19:23 -0400)]
Cycles: Pass all buffers to each kernel call for OpenCL

Technically not passing all buffers used by a kernel is undefined
behavior. We haven't had any issues with this so far on AMD or
Nvidia, but it's known to be a problem with Intel and we received
a report from AMD that this is a problem on newer hardware, so we
need to make this change at some point.

Unfortunately there a cost to being correct, about 5% for the
benchmark scenes. For low sample counts it's even worse, I've
seen up to 50% slowdown. For the latter case I think adjusting
tile updating logic can help, but not sure what that would look
like yet (it would be just a few lines change however).

4 years agoCycles: Faster split branched path tracing by sharing samples with inactive threads
Mai Lavelle [Tue, 30 May 2017 01:35:27 +0000 (21:35 -0400)]
Cycles: Faster split branched path tracing by sharing samples with inactive threads

Unlike regular path tracing, branched path tracing is usually used with lower
sample counts, at least for primary rays. This means that are less samples for
the GPU to work on in parallel and rendering is slower. As there is less work
overall there is also more inactive threads during rendering with BPT. This
patch makes use of those inactive rays to render branched samples in parallel
with other samples.

Each thread that is preparing for a branched sample will attempt to find an
inactive thread and if one is found the state for the sample is copied to that
thread. Potentially, if there are enough inactive threads, 100s of branched
samples could be generated from the same originating thread and ran in
parallel giving large speed ups.

Gives 70% faster render for pavillion midday scene. 20-60% faster on BMW
with car paint replaced with SSS/volumes.

4 years agoCycles: Modify path_radiance_accum_sample to use atomics for split kernel
Mai Lavelle [Tue, 30 May 2017 01:34:05 +0000 (21:34 -0400)]
Cycles: Modify path_radiance_accum_sample to use atomics for split kernel

Samples ran in parallel need a safe way to accumulate their results
with the results of other threads.

4 years agoCycles: Add function to dequeue a ray
Mai Lavelle [Tue, 30 May 2017 01:33:27 +0000 (21:33 -0400)]
Cycles: Add function to dequeue a ray

4 years agoCycles: Add atomic decrement functions to util_atomic.h
Mai Lavelle [Tue, 30 May 2017 01:28:21 +0000 (21:28 -0400)]
Cycles: Add atomic decrement functions to util_atomic.h

4 years agoCycles: Add kernel to enqueue inactive rays
Mai Lavelle [Tue, 30 May 2017 00:40:26 +0000 (20:40 -0400)]
Cycles: Add kernel to enqueue inactive rays

The queue will be used to make reuse of inactive threads to keep
the GPU more busy.

4 years agoCycles: Blacklist unsupported OpenCL devices
Hristo Gueorguiev [Thu, 8 Jun 2017 09:08:52 +0000 (05:08 -0400)]
Cycles: Blacklist unsupported OpenCL devices

Due to various driver issues with AMD GCN 1 cards we can no longer support
these GPUs. This patch makes them unavailable to select for Cycles rendering.

GCN cards 2 and higher are still supported. Please use the most recent
drivers available to ensure proper functionality.

See here for a list to check which GPUs are supported:

4 years agoCycles: Fix denoising passes being written when they're not actually generated
Lukas Stockner [Fri, 9 Jun 2017 21:02:56 +0000 (23:02 +0200)]
Cycles: Fix denoising passes being written when they're not actually generated

4 years agoCleanup Cycles Denoising platform-specific defines
Lukas Stockner [Fri, 9 Jun 2017 20:31:26 +0000 (22:31 +0200)]
Cleanup Cycles Denoising platform-specific defines

4 years agoCycles Denoising: Speedup reconstruction by skipping near-zero weights
Lukas Stockner [Fri, 9 Jun 2017 20:27:49 +0000 (22:27 +0200)]
Cycles Denoising: Speedup reconstruction by skipping near-zero weights

4 years agoUI: Fix some small ui inconsistencies
Aaron Carlisle [Fri, 9 Jun 2017 19:23:44 +0000 (15:23 -0400)]
UI: Fix some small ui inconsistencies

- Use "..." to indicate non immediate action.
- First letter of words in labels should be capitalized.

4 years agoCleanup: get rid of some now unused animdata ID management custom functions.
Bastien Montagne [Fri, 9 Jun 2017 14:29:20 +0000 (16:29 +0200)]
Cleanup: get rid of some now unused animdata ID management custom functions.

That's the kind of commit that are nice to do - getting rid of
half-working custom pieces of code, now that we have generic tools
to do same thing. ;)

4 years agoFix crash when making local object+obdata with linked armature.
Bastien Montagne [Fri, 9 Jun 2017 13:58:32 +0000 (15:58 +0200)]
Fix crash when making local object+obdata with linked armature.

Reported by Andy Goralczyk (@eyecandy) over IRC, thanks!

Simply nuke all that poor broken custom one-by-one handling in
object_relations.c code, and use highly complex but powerful and
well-tested BKE_library_make_local() in all cases of MakeLocal!

ID management, especially related to linking, is very hairy matters,
better to have as few as possible core functions managing all the dirty
details. ;)

4 years agoMath Lib: Add mat3_from_axis_conversion_single
Campbell Barton [Fri, 9 Jun 2017 09:31:27 +0000 (19:31 +1000)]
Math Lib: Add mat3_from_axis_conversion_single

Single axis version of mat3_from_axis_conversion,
when the second axis isn't important (orienting an arrow for eg).

4 years agoFix T51756: Fix crash when transforming vertices in edit mode
Sergey Sharybin [Fri, 9 Jun 2017 08:46:00 +0000 (10:46 +0200)]
Fix T51756: Fix crash when transforming vertices in edit mode

The issue was caused by under-allocation of UV islands calculation.

4 years agoFix T51648: Inconsistent edge collapse point depending on orientation
Luca Rood [Fri, 9 Jun 2017 07:56:19 +0000 (09:56 +0200)]
Fix T51648: Inconsistent edge collapse point depending on orientation

Edge collapse was using bounding box center as the point to collapse to.
When collapsing multiple adjacent edges together, this caused
inconsistencies in placement of the collapsed point, depending on the
orientation of the edges in relation to the space axis.

This makes edge collapse use the mean point instead.

4 years agoinstall_depsh: update OpenCollada to 1.6.51, and OIIO to 1.7.15
Bastien Montagne [Fri, 9 Jun 2017 07:44:40 +0000 (09:44 +0200)]
install_depsh: update OpenCollada to 1.6.51, and OIIO to 1.7.15

4 years agoFix for fix for bplayer (c) :/
Bastien Montagne [Fri, 9 Jun 2017 07:23:54 +0000 (09:23 +0200)]
Fix for fix for bplayer (c) :/

4 years agoFix bplayer building (c)
Bastien Montagne [Fri, 9 Jun 2017 07:13:54 +0000 (09:13 +0200)]
Fix bplayer building (c)

4 years agoCycles Denoising: Merge outlier heuristic and confidence interval test
Lukas Stockner [Fri, 9 Jun 2017 00:30:06 +0000 (02:30 +0200)]
Cycles Denoising: Merge outlier heuristic and confidence interval test

The previous outlier heuristic only checked whether the pixel is more than
twice as bright compared to the 75% quantile of the 5x5 neighborhood.
While this detected fireflies robustly, it also incorrectly marked a lot of
legitimate small highlights as outliers and filtered them away.

This commit adds an additional condition for marking a pixel as a firefly:
In addition to being above the reference brightness, the lower end of the
3-sigma confidence interval has to be below it.
Since the lower end approximates how low the true value of the pixel might be,
this test separates pixels that are supposed to be very bright from pixels that
are very bright due to random fireflies.

Also, since there is now a reliable outlier filter as a preprocessing step,
the additional confidence interval test in the reconstruction kernel is no
longer needed.

4 years agoRNA: remove static strings from registration
Campbell Barton [Thu, 8 Jun 2017 21:13:35 +0000 (07:13 +1000)]
RNA: remove static strings from registration

* Static strings aren't needed anymore, use stack memory.
* Fix obscure leak on failed macro registration.
* Use prefix for wrappers exported from bpy module.

4 years agoCleanup: cmake indentation, missing include
Campbell Barton [Thu, 8 Jun 2017 20:45:21 +0000 (06:45 +1000)]
Cleanup: cmake indentation, missing include

4 years agoFix T51733: 3d print toolbox checks report false positives.
Bastien Montagne [Thu, 8 Jun 2017 12:02:49 +0000 (14:02 +0200)]
Fix T51733: 3d print toolbox checks report false positives.

Colinear vertices in a same face would not be handled correctly.

4 years agoCycles: Don't leave multiple spaces in the device name
Sergey Sharybin [Thu, 8 Jun 2017 10:15:24 +0000 (12:15 +0200)]
Cycles: Don't leave multiple spaces in the device name

4 years agoCycles: Display optional board name in system info
Sergey Sharybin [Thu, 8 Jun 2017 10:10:15 +0000 (12:10 +0200)]
Cycles: Display optional board name in system info

4 years agoCycles: Cleanup, indentation
Sergey Sharybin [Thu, 8 Jun 2017 10:03:08 +0000 (12:03 +0200)]
Cycles: Cleanup, indentation

4 years agoSimplify Array modifier 'relative offset' handling.
Bastien Montagne [Thu, 8 Jun 2017 07:17:08 +0000 (09:17 +0200)]
Simplify Array modifier 'relative offset' handling.

Was looping three times over the source mesh's vertices to get min/max
along all three axes... Nothing critical, but still!

4 years agoFix: GP Clone brush was not correcting color references for pasted strokes either
Joshua Leung [Wed, 7 Jun 2017 15:07:57 +0000 (03:07 +1200)]
Fix: GP Clone brush was not correcting color references for pasted strokes either

4 years agoFix: Pasting GP strokes files between files (or when the original colors were deleted...
Joshua Leung [Wed, 7 Jun 2017 14:42:04 +0000 (02:42 +1200)]
Fix: Pasting GP strokes files between files (or when the original colors were deleted) would crash

The problem was that the strokes in the copy-paste buffer could be keeping
dangling pointers to colors that were already freed. Therefore, this commit
makes it so that when copying the strokes, we now make copies of the colors
and put them in a hashtable beside the stroke buffer. This is convenient,
as it saves us having to look up what colours need to be copied over each
time when pasting.

4 years agoGP Copy/Paste Fix: Paste button doesn't update after copying strokes using Ctrl-C
Joshua Leung [Wed, 7 Jun 2017 07:07:57 +0000 (19:07 +1200)]
GP Copy/Paste Fix: Paste button doesn't update after copying strokes using Ctrl-C