3 years agoDepsgraph: Remove workarounds from depsgraph for keeping threads alive
Sergey Sharybin [Fri, 3 Mar 2017 09:58:53 +0000 (10:58 +0100)]
Depsgraph: Remove workarounds from depsgraph for keeping threads alive

This is something what should be done in the task scheduler instead
with local thread queues so we handle this in a single place.

3 years agoTask scheduler: Initial implementation of local tasks queues
Sergey Sharybin [Mon, 6 Mar 2017 14:40:05 +0000 (15:40 +0100)]
Task scheduler: Initial implementation of local tasks queues

The idea is to allow some amount of tasks to be pushed from working
thread to it's local queue, so we can acquire some work without doing
whole mutex lock.

This should allow us to remove some hacks from depsgraph which was
added there to keep threads alive.

3 years agoTask scheduler: Use real pthread's TLS to access active thread's data
Sergey Sharybin [Mon, 6 Mar 2017 10:21:50 +0000 (11:21 +0100)]
Task scheduler: Use real pthread's TLS to access active thread's data

This allows us to avoid TLS stored in pool which gives us advantage of
using pre-allocated tasks pool for the pools created from non-main thread.

Even on systems with slow pthread TLS it should not be a problem because
we access it once at a pool construction time. If we want to use this more
often (for example, to get rid of push_from_thread) we'll have to do much
more accurate benchmark.

3 years agoTask scheduler: Refactor the way we store thread-spedific data
Sergey Sharybin [Mon, 6 Mar 2017 10:12:07 +0000 (11:12 +0100)]
Task scheduler: Refactor the way we store thread-spedific data

Basically move all thread-specific data (currently it's only task
memory pool) from a dedicated array of taskScheduler to TaskThread.
This way we can add more thread-specific data in the future with
less of a hassle.

3 years agoTask scheduler: Remove per-pool threads limit
Sergey Sharybin [Fri, 3 Mar 2017 09:48:13 +0000 (10:48 +0100)]
Task scheduler: Remove per-pool threads limit

This feature was adding extra complexity to task scheduling
which required yet extra variables to be worried about to be
modified in atomic manner, which resulted in following issues:

- More complex code to maintain, which increases risks of
  something going wrong when we modify the code.

- Extra barriers and/or locks during task scheduling, which
  causes extra threading overhead.

- Unable to use some other implementation (such as TBB) even for
  the comparison tests.

Notes about other changes.

There are two places where we really had to use that limit.

One of them is the single threaded dependency graph. This will
now construct a single-threaded scheduler at evaluation time.
This shouldn't be a problem because it only happens when using
debugging command line arguments and the code simply don't
run in regular Blender operation.

The code seems a bit duplicated here across old and new
depsgraph, but think it's OK since the old depsgraph is already
gone in 2.8 branch and i don't see where else we might want
to use such a single-threaded scheduler.

When/if we'll want to do so, we can move it to a centralized
single-threaded scheduler in threads.c.

OpenGL render was a bit more tricky to port, but basically we
are using conditional variables to wait background thread to
do all the job.

3 years agoFix typo in command line arg list
Aaron Carlisle [Tue, 7 Mar 2017 14:07:58 +0000 (09:07 -0500)]
Fix typo in command line arg list

3 years agoUpdate keymap presets for recent transform manipulator changes
Julian Eisel [Tue, 7 Mar 2017 10:54:10 +0000 (11:54 +0100)]
Update keymap presets for recent transform manipulator changes

Part of T50565.

3 years agoOnce more T50565: Allow using planar constraints for scale manipulator
Julian Eisel [Tue, 7 Mar 2017 10:23:07 +0000 (11:23 +0100)]
Once more T50565: Allow using planar constraints for scale manipulator

3 years agoRigid body: fix viewport not updating on properties change.
Clément Foucault [Mon, 6 Mar 2017 15:25:26 +0000 (16:25 +0100)]
Rigid body: fix viewport not updating on properties change.

3 years agoFix width calculation for split layouts
raa [Mon, 6 Mar 2017 13:35:56 +0000 (16:35 +0300)]
Fix width calculation for split layouts

3 years agoCycles: Fix strict -Wpedantic warnings with GCC
Sergey Sharybin [Mon, 6 Mar 2017 13:16:45 +0000 (14:16 +0100)]
Cycles: Fix strict -Wpedantic warnings with GCC

Patch by Stefan Werner, thanks!

3 years agoTask scheduler: Cleanup, use BLI_assert() instead of assert()
Sergey Sharybin [Mon, 6 Mar 2017 10:33:27 +0000 (11:33 +0100)]
Task scheduler: Cleanup, use BLI_assert() instead of assert()

3 years agoFFmpeg: Update for the deprecated API in 3.2.x
Sergey Sharybin [Mon, 6 Mar 2017 09:34:57 +0000 (10:34 +0100)]
FFmpeg: Update for the deprecated API in 3.2.x

Should be no functional changes.

3 years agoSurface Deform Modifier: Respect object transforms at bind time
Luca Rood [Mon, 6 Mar 2017 05:40:29 +0000 (02:40 -0300)]
Surface Deform Modifier: Respect object transforms at bind time

This slightly changes SDef behavior, by now respecting object transforms
at bind time, thus not requiring the objects to be aligned in their
respective local spaces, but instead using world space.

3 years agoMulti-View: Map cursor coordinates to visual coordinates
Julian Eisel [Sun, 5 Mar 2017 23:40:48 +0000 (00:40 +0100)]
Multi-View: Map cursor coordinates to visual coordinates

When rendering multi-view in side-by-side or top-bottom mode, we squash
the UI to half of its size and draw it twice on screen. That means the
cursor coordinates used for UI interaction don't match what's visible on
This commit is a little event system hack (tm) to fix this. It has some
small glitches with cursor grabbing, but nothing to bad.
We'll also use it for viewport HMD support.

D1350, thanks for the feedback @dfelinto!

3 years agoCMake: confine WIN32 options
Campbell Barton [Sun, 5 Mar 2017 17:05:00 +0000 (04:05 +1100)]
CMake: confine WIN32 options

3 years agoCleanup: typos
Campbell Barton [Sun, 5 Mar 2017 12:13:40 +0000 (23:13 +1100)]
Cleanup: typos

3 years agoBMesh: Add 'cut' separate mode for intersect tool
Campbell Barton [Sun, 5 Mar 2017 12:20:04 +0000 (23:20 +1100)]
BMesh: Add 'cut' separate mode for intersect tool

It was only possible to separate all geometry from an intersection or none.

Made this into an enum with a 3rd option to 'Cut', (now default)
which keeps each side of the intersection separate
without splitting faces in half.

3 years agoFix T50855: Intersect (knife) w/o separate doesn't select
Campbell Barton [Sun, 5 Mar 2017 11:23:12 +0000 (22:23 +1100)]
Fix T50855: Intersect (knife) w/o separate doesn't select

3 years agoFix T50843: Pitched Audio renders incorrectly in VSE
Jörg Müller [Sun, 5 Mar 2017 11:19:32 +0000 (12:19 +0100)]
Fix T50843: Pitched Audio renders incorrectly in VSE

There was a bug in the intended code behaviour to always seek with a
pitch of 1.0 regardless of pitch/pitch animation/doppler effects.

Check the bug report for a more detailed explanation of problems
concerning pitch and seeking.

3 years agoBLI_rect: add init from point functions
Campbell Barton [Sun, 5 Mar 2017 09:51:23 +0000 (20:51 +1100)]
BLI_rect: add init from point functions

Initialize a rectangle from point+size.

3 years agoFix T50838: Surface Deform DM use after free issue
Luca Rood [Sat, 4 Mar 2017 06:16:50 +0000 (03:16 -0300)]
Fix T50838: Surface Deform DM use after free issue

Implementd fix suggested by @sergey in T50838.

3 years agoCleanup: expose struct for ED_view3d_mats_rv3d_*
Campbell Barton [Sat, 4 Mar 2017 02:32:40 +0000 (13:32 +1100)]
Cleanup: expose struct for ED_view3d_mats_rv3d_*

3 years agoFix own previous commit, sorry about that :(
Bastien Montagne [Fri, 3 Mar 2017 16:23:22 +0000 (17:23 +0100)]
Fix own previous commit, sorry about that :(

3 years agoGet rid of `BLI_task_pool_stop()`.
Bastien Montagne [Fri, 3 Mar 2017 16:16:39 +0000 (17:16 +0100)]
Get rid of `BLI_task_pool_stop()`.

Comments said that function was supposed to 'stop worker threads', but
it absolutely did not do anything like that, was merely wiping out TODO
queue of tasks from given pool (kind of subset of what
`BLI_task_pool_cancel()` does).

Misleading, and currently useless, we can always add it back if we need
it some day, but for now we try to simplify that area.

3 years agoFix ugly mistake in BLI_task - freeing while some tasks are still being processed.
Bastien Montagne [Fri, 3 Mar 2017 16:12:03 +0000 (17:12 +0100)]
Fix ugly mistake in BLI_task - freeing while some tasks are still being processed.

Freeing pool was calling `BLI_task_pool_stop()`, which only clears
pool's tasks that are in TODO queue, whithout ensuring no more tasks
from that pool are being processed in worker threads.

This could lead to use-after-free random (and seldom) crashes.

Now use instead `BLI_task_pool_cancel()`, which does waits for all tasks
being processed to finish, before returning.

3 years agoUpdate comment which was remained in an old place
Sergey Sharybin [Fri, 3 Mar 2017 15:36:21 +0000 (16:36 +0100)]
Update comment which was remained in an old place

3 years agoCleanup: Indentation
Sergey Sharybin [Fri, 3 Mar 2017 14:53:02 +0000 (15:53 +0100)]
Cleanup: Indentation

3 years agoFix T50842: NLA Influence Curve draws out of bounds when it exceeds the 0-1 range
Joshua Leung [Fri, 3 Mar 2017 12:24:21 +0000 (01:24 +1300)]
Fix T50842: NLA Influence Curve draws out of bounds when it exceeds the 0-1 range

3 years agoCleanup: GPU_select never took NULL rect
Campbell Barton [Fri, 3 Mar 2017 04:40:54 +0000 (15:40 +1100)]
Cleanup: GPU_select never took NULL rect

3 years agoCleanup: redundant header, use const, short -> bool
Campbell Barton [Wed, 1 Mar 2017 15:14:02 +0000 (02:14 +1100)]
Cleanup: redundant header, use const, short -> bool

3 years agoWhen creating texture/image in Texture Paint mode, both datablocks should get the...
Bastien Montagne [Fri, 3 Mar 2017 09:47:22 +0000 (10:47 +0100)]
When creating texture/image in Texture Paint mode, both datablocks should get the same name

The paint slot name was not the same as what is displayed on the texture properties panel.
Instead, the slot type (e.g. "Diffuse Color") was used as the name.

Patch by Suchaaver (@minifigmaster125) with minor changes from @mont29.

Reviewers: mont29, sergey

Maniphest Tasks: T50704

Differential Revision:

3 years agoCycles: Fix possibly uninitialized variable
Sergey Sharybin [Fri, 3 Mar 2017 09:09:42 +0000 (10:09 +0100)]
Cycles: Fix possibly uninitialized variable

Hopefully this was a reason of randomly disappearing textures in our renders.

3 years agoFix T49655: Reloading library breaks proxies.
Bastien Montagne [Fri, 3 Mar 2017 07:52:19 +0000 (08:52 +0100)]
Fix T49655: Reloading library breaks proxies.

Can't say enough how much I hate those proxies... their duality (sharing
some aspects of both direct *and* indirect users) is a nightmare to handle. :(

3 years agoFix own stupid mistake in recent mesh 'split_faces' rework.
Bastien Montagne [Thu, 2 Mar 2017 16:22:03 +0000 (17:22 +0100)]
Fix own stupid mistake in recent mesh 'split_faces' rework.

Was assigning new edge index to ml_prev->e, and then assigning ml_pre->e
to orig_index...

3 years agoFix duplicated 'Accurate' property for manipulator keymap item
Julian Eisel [Thu, 2 Mar 2017 12:39:01 +0000 (13:39 +0100)]
Fix duplicated 'Accurate' property for manipulator keymap item

Is already added through Transform_Properties

3 years agoFix weird "use_planar_constraint" button in redo panel
Julian Eisel [Thu, 2 Mar 2017 12:23:00 +0000 (13:23 +0100)]
Fix weird "use_planar_constraint" button in redo panel

Issue was that the VIEW_OT_manipulator operator calls the transform
operators and passes them it's own operator properties. That means the
transform operator got properties passed that it doesn't have.

3 years agoThreads: Use atomics instead of spin when entering threaded malloc
Sergey Sharybin [Thu, 2 Mar 2017 08:56:25 +0000 (09:56 +0100)]
Threads: Use atomics instead of spin when entering threaded malloc

3 years agoFix another part of T50565: Planar constraints were always initialized to accurate...
Sergey Sharybin [Thu, 2 Mar 2017 11:18:07 +0000 (12:18 +0100)]
Fix another part of T50565: Planar constraints were always initialized to accurate transform

Now it is defined by keymap.

3 years agoFix second part T50565: Using planar transform once makes it enabled by default
Sergey Sharybin [Thu, 2 Mar 2017 10:20:57 +0000 (11:20 +0100)]
Fix second part T50565: Using planar transform once makes it enabled by default

Was caused by property being saved by the operator manager.

3 years agoFix T50830: Wrong context when calling surfacedeform_bind
Luca Rood [Wed, 1 Mar 2017 20:56:10 +0000 (17:56 -0300)]
Fix T50830: Wrong context when calling surfacedeform_bind

The custom poll function for surfacedeform_bind seems to have caused
issues when calling it from Python. Fixed by using the generic modifier
poll function, and setting the button to be active or not in the
Python UI code instead. (there might be a better way, but for now this
works fine)

3 years agoCorrect comment
Aaron Carlisle [Wed, 1 Mar 2017 19:12:03 +0000 (14:12 -0500)]
Correct comment

Thanks to @dingto for noticing.

3 years agoCleanup: Use .enabled instead of .active
Aaron Carlisle [Wed, 1 Mar 2017 18:05:34 +0000 (13:05 -0500)]
Cleanup: Use .enabled instead of .active

3 years agoFix T50565: Planar constraints don't work properly with non-Blender key configurations
Sergey Sharybin [Wed, 1 Mar 2017 16:57:22 +0000 (17:57 +0100)]
Fix T50565: Planar constraints don't work properly with non-Blender key configurations

The issue was introduced by 4df75e5 and seems we just need to explicitly
add new keymap item now.

There is still some difference from old behavior, which is planar transform
is using precision movement since e138cde and here i don't see nice solution
currently: the change was requested here in the studio and it's just a
conflict in picking shift key for something which is not supposed to be

At least now it's possible to invoke planar constraint and simply unhold

3 years agoTask scheduler: Remove query for the pool's number of threads
Sergey Sharybin [Wed, 1 Mar 2017 11:51:51 +0000 (12:51 +0100)]
Task scheduler: Remove query for the pool's number of threads

Not really happy of per-pool threads limit, need to find better
approach to that. But at least it's possible to get rid of half
of the nastyness here by removing getter which was only used in
an assert statement.

That piece of code was already well-tested and this code becomes
obsolete in the new depsgraph and does no longer exists in blender
2.8 branch.

3 years agoAll drop-down buttons should use the same width
raa [Wed, 1 Mar 2017 16:30:18 +0000 (19:30 +0300)]
All drop-down buttons should use the same width

3 years agoCleanup: code-style, duplicate header
Campbell Barton [Wed, 1 Mar 2017 13:16:36 +0000 (00:16 +1100)]
Cleanup: code-style, duplicate header

3 years agoFix text and icon positioning issues
raa [Wed, 1 Mar 2017 13:11:21 +0000 (16:11 +0300)]
Fix text and icon positioning issues

3 years agoTask scheduler: Remove counter of done tasks
Sergey Sharybin [Wed, 1 Mar 2017 11:45:51 +0000 (12:45 +0100)]
Task scheduler: Remove counter of done tasks

This was only used for progress report, and it's wrong because:

- Pool might in theory be re-used by different tasks
- We should not make any decision based on scheduling stats

Proper way is to take care of progress by the task itself.

3 years agoCleanup: Use explicit unsigned int in atomics
Sergey Sharybin [Wed, 1 Mar 2017 11:01:19 +0000 (12:01 +0100)]
Cleanup: Use explicit unsigned int in atomics

3 years agoCleanup: update copyright and Blender description
Aaron Carlisle [Tue, 28 Feb 2017 16:59:18 +0000 (11:59 -0500)]
Cleanup: update copyright and Blender description

3 years agoCycles: Fix division by zero in volume code which was producing -nan
Sergey Sharybin [Tue, 28 Feb 2017 16:33:06 +0000 (17:33 +0100)]
Cycles: Fix division by zero in volume code which was producing -nan

3 years agoFix/workaround T48549: Crash baking high-to-low-poly normal map in cycles
Sergey Sharybin [Tue, 28 Feb 2017 13:08:33 +0000 (14:08 +0100)]
Fix/workaround T48549: Crash baking high-to-low-poly normal map in cycles

For now only prevent crash.

3 years agoFix T49936: Cycles point density get's it's bounding box from basis shape key
Sergey Sharybin [Tue, 28 Feb 2017 11:39:40 +0000 (12:39 +0100)]
Fix T49936: Cycles point density get's it's bounding box from basis shape key

3 years agoCleanup: Grey --> Gray
Aaron Carlisle [Tue, 28 Feb 2017 00:33:57 +0000 (19:33 -0500)]
Cleanup: Grey --> Gray

3 years agoSurface Deform Modifier (SDef)
Luca Rood [Mon, 27 Feb 2017 15:39:14 +0000 (12:39 -0300)]
Surface Deform Modifier (SDef)

Implementation of the SDef modifier, which allows meshes to be bound by
surface, thus allowing things such as cloth simulation proxies.

User documentation:

Reviewers: mont29, sergey

Subscribers: Severin, dfelinto, plasmasolutions, kjym3

Differential Revision:

3 years agoFix memory leak when making duplicates real and parent had constraints
Sergey Sharybin [Mon, 27 Feb 2017 16:46:21 +0000 (17:46 +0100)]
Fix memory leak when making duplicates real and parent had constraints

Thanks Bastien for help!

3 years agoFix/workaround T50677: Shrinkwrap constraint don't get updated when target mesh gets...
Sergey Sharybin [Mon, 27 Feb 2017 15:27:53 +0000 (16:27 +0100)]
Fix/workaround T50677: Shrinkwrap constraint don't get updated when target mesh gets modified

Do a "full" update on leaving sculpt mode, so we are sure scene will be brought
to a consistent state.

Ideally we'll only do that when there are objects which depends on geometry
without re-calculating self geometry, but that's a bit tricky currently.

3 years agoSimilar to previous commit, but for object constraints
Sergey Sharybin [Mon, 27 Feb 2017 15:19:52 +0000 (16:19 +0100)]
Similar to previous commit, but for object constraints

3 years agoDepsgraph: Shrinkwrap constraint actually depends on geometry
Sergey Sharybin [Mon, 27 Feb 2017 15:00:39 +0000 (16:00 +0100)]
Depsgraph: Shrinkwrap constraint actually depends on geometry

3 years agoCycles: Fix compilation error on vanilla Ubuntu 16.10
Sergey Sharybin [Mon, 27 Feb 2017 14:22:51 +0000 (15:22 +0100)]
Cycles: Fix compilation error on vanilla Ubuntu 16.10

Patch by @swerner, thanks!

3 years agoFix T50634: Hair Primitive as Triangles + Hair shader with a texture = crash
Sergey Sharybin [Mon, 27 Feb 2017 14:11:51 +0000 (15:11 +0100)]
Fix T50634: Hair Primitive as Triangles + Hair shader with a texture = crash

Attributes were not resized after pushing new triangles to the mesh.

3 years agoFix part of T50634: Hair Primitive as Triangles + Hair shader with a texture = crash
Sergey Sharybin [Mon, 27 Feb 2017 12:39:23 +0000 (13:39 +0100)]
Fix part of T50634: Hair Primitive as Triangles + Hair shader with a texture = crash

Wrong formula was used to calculate needed verts and tris to be reserved.

3 years agoCycles: Make it more clear values never changes by using const qualifier
Sergey Sharybin [Mon, 27 Feb 2017 12:30:11 +0000 (13:30 +0100)]
Cycles: Make it more clear values never changes by using const qualifier

3 years agoCleanup: typo in struct name
Campbell Barton [Mon, 27 Feb 2017 09:44:59 +0000 (20:44 +1100)]
Cleanup: typo in struct name

3 years agoCycles: Forgot this in previous commit
Sergey Sharybin [Mon, 27 Feb 2017 11:54:35 +0000 (12:54 +0100)]
Cycles: Forgot this in previous commit

3 years agoCycles: Add more logs about what's going on in shader optimization
Sergey Sharybin [Mon, 27 Feb 2017 11:38:24 +0000 (12:38 +0100)]
Cycles: Add more logs about what's going on in shader optimization

3 years agoCycles: Experiment with replacing Sharp Glossy with GGX when Filter Glossy is used
Sergey Sharybin [Wed, 14 Dec 2016 11:22:57 +0000 (12:22 +0100)]
Cycles: Experiment with replacing Sharp Glossy with GGX when Filter Glossy is used

The idea is to make it simpler to remove noise from scenes when some prop uses
Sharp glossy closure and causes noise in certain cases. Previously Sharp Glossy
was not affected by Filter Glossy at all, which was quite confusing.

Here is a file which demonstrates the issue: {F417797}

After applying the patch all the noise from the scene is gone.

This change also solves fireflies reported in T50700.

Reviewers: brecht, lukasstockner97

Differential Revision:

3 years agoFix missing break setting curve auto-handles
Campbell Barton [Mon, 27 Feb 2017 02:32:45 +0000 (13:32 +1100)]
Fix missing break setting curve auto-handles

3 years agoFix unreported bug: Ensure you have the correct array directory even after the `dm...
Germano Cavalcante [Sun, 26 Feb 2017 17:16:54 +0000 (14:16 -0300)]
Fix unreported bug: Ensure you have the correct array directory even after the `dm->release(dm)`

3 years agoImprove add-on UI error message
Campbell Barton [Sun, 26 Feb 2017 16:54:12 +0000 (03:54 +1100)]
Improve add-on UI error message

Show the paths of the duplicate addons

D791 by @gregzaal

3 years agoCleanup: minor changes to array_store
Campbell Barton [Sun, 26 Feb 2017 04:25:19 +0000 (15:25 +1100)]
Cleanup: minor changes to array_store

- remove unused struct member.
- misleading variable name.

3 years agoFix compiling after a0b8a9f
Jens Verwiebe [Sat, 25 Feb 2017 13:58:08 +0000 (14:58 +0100)]
Fix compiling after a0b8a9f

3 years agoFix (unreported) missing update when adding constraint from RNA.
Bastien Montagne [Sat, 25 Feb 2017 10:27:11 +0000 (11:27 +0100)]
Fix (unreported) missing update when adding constraint from RNA.

3 years agoFix rows with fixed last item (D2524)
raa [Sat, 25 Feb 2017 10:18:41 +0000 (13:18 +0300)]
Fix rows with fixed last item (D2524)

3 years agoAlembic: avoid crashing when reading non-indexed UV params.
Kévin Dietrich [Sat, 25 Feb 2017 06:08:14 +0000 (07:08 +0100)]
Alembic: avoid crashing when reading non-indexed UV params.

3 years agoAlembic: addition of a scope timer to perform basic profiling.
Kévin Dietrich [Sat, 25 Feb 2017 05:18:32 +0000 (06:18 +0100)]
Alembic: addition of a scope timer to perform basic profiling.

3 years agoFix T50698: Cycles baking artifacts with transparent surfaces.
Brecht Van Lommel [Sat, 25 Feb 2017 02:09:02 +0000 (03:09 +0100)]
Fix T50698: Cycles baking artifacts with transparent surfaces.

3 years agoFix build error with macOS / clang / c++11.
Brecht Van Lommel [Sat, 25 Feb 2017 01:35:53 +0000 (02:35 +0100)]
Fix build error with macOS / clang / c++11.

3 years agoFix T50757: Alembic, assign imported materials to the object data
Kévin Dietrich [Fri, 24 Feb 2017 20:19:52 +0000 (21:19 +0100)]
Fix T50757: Alembic, assign imported materials to the object data
instead of to the object itself.

3 years agoFix T50676: Crash on closing while frameserver rendering.
Bastien Montagne [Fri, 24 Feb 2017 13:56:50 +0000 (14:56 +0100)]
Fix T50676: Crash on closing while frameserver rendering.

Can't see any reason to call AUD exit early in WM_exit, that's a
low-level module that has no dependency on anything else in Blender, but
is dependency of some other parts of Blender, so it should rather be
exited late in the process!

3 years agoCycles: Fix compilation warning with CUDA on OSX
Sergey Sharybin [Fri, 24 Feb 2017 13:33:10 +0000 (14:33 +0100)]
Cycles: Fix compilation warning with CUDA on OSX

3 years agoCycles: Fix non-zero exit status when rendering animation from CLI and running out...
Sergey Sharybin [Fri, 24 Feb 2017 13:25:11 +0000 (14:25 +0100)]
Cycles: Fix non-zero exit status when rendering animation from CLI and running out of memory

3 years agoAdd "Gravitation" option to "Force" type force fields
Luca Rood [Thu, 23 Feb 2017 22:00:03 +0000 (19:00 -0300)]
Add "Gravitation" option to "Force" type force fields

This adds an option to force fields of type "Force", which enables the
simulation of gravitational behavior (dist^-2 falloff).

Patch by @AndreasE

Reviewers: #physics, LucaRood, mont29

Reviewed By: #physics, LucaRood, mont29

Tags: #physics

Differential Revision:

3 years agoFix some more minor issue with updated py doc generation.
Bastien Montagne [Thu, 23 Feb 2017 21:31:21 +0000 (22:31 +0100)]
Fix some more minor issue with updated py doc generation.

3 years agoFix stupid mistake in previous commit for release builds of API doc.
Bastien Montagne [Thu, 23 Feb 2017 21:08:01 +0000 (22:08 +0100)]
Fix stupid mistake in previous commit for release builds of API doc.

3 years agoUpdate py API doc generation tools to comply to new name scheme on server.
Bastien Montagne [Thu, 23 Feb 2017 20:24:47 +0000 (21:24 +0100)]
Update py API doc generation tools to comply to new name scheme on server.

 - for rc/release: /api/2.79c/, zip file named
 - for dev: /api/master/, zip file named

3 years agoUsual UI messages fixes...
Bastien Montagne [Thu, 23 Feb 2017 20:10:43 +0000 (21:10 +0100)]
Usual UI messages fixes...

3 years agoCycles: Fix compilation error on 32bit Linux
Sergey Sharybin [Thu, 23 Feb 2017 16:30:26 +0000 (17:30 +0100)]
Cycles: Fix compilation error on 32bit Linux

3 years agoCycles: Fix wrong render results with texture limit and half-float textures
Sergey Sharybin [Thu, 23 Feb 2017 13:46:22 +0000 (14:46 +0100)]
Cycles: Fix wrong render results with texture limit and half-float textures

3 years agoCycles: Add utility function to convert float to half
Sergey Sharybin [Thu, 23 Feb 2017 13:42:06 +0000 (14:42 +0100)]
Cycles: Add utility function to convert float to half

handles overflow and underflow, but not NaN/inf.

3 years agoFix T50656: Compositing node editor is empty, no nodes can be added
Sergey Sharybin [Thu, 23 Feb 2017 10:23:49 +0000 (11:23 +0100)]
Fix T50656: Compositing node editor is empty, no nodes can be added

3 years agoFix T50748: Render Time incorrect when refreshing rendered preview in GPU mode
Sergey Sharybin [Thu, 23 Feb 2017 09:50:46 +0000 (10:50 +0100)]
Fix T50748: Render Time incorrect when refreshing rendered preview in GPU mode

3 years agoFix T50736: Zero streaks in Glare node.
Bastien Montagne [Thu, 23 Feb 2017 09:39:51 +0000 (10:39 +0100)]
Fix T50736: Zero streaks in Glare node.

Please never, ever use same DNA var for two different things. Even worse
if they do not have same type and ranges!

This is only ensuring issues (as described in report, but also if
animating both RNA props using same DNA var... yuck).

And we were not even saving any byte in DNA, could reuse some padding
there to store the two new needed vars (yes, two, since we cannot re-use
existing one if we want to keep backward *and* forward compatibility).

3 years agoFix possible crash in various 3D View operators
Julian Eisel [Thu, 23 Feb 2017 00:59:40 +0000 (01:59 +0100)]
Fix possible crash in various 3D View operators

Was actually harmeless and not crashing, but I'd say more or less only
by luck: the NULL-check for region data would only evaluate to true for
the correct 3D View region. However, if we were to add region data to a
different region type in future, this would lead to undefined behavior
if executed in the wrong region.

3 years agoColumns should be expandable by default
raa [Wed, 22 Feb 2017 21:03:31 +0000 (00:03 +0300)]
Columns should be expandable by default

3 years agoFix T50745: Shape key editing on bezier objects broken with Rendered Viewport Shading
Bastien Montagne [Wed, 22 Feb 2017 20:20:50 +0000 (21:20 +0100)]
Fix T50745: Shape key editing on bezier objects broken with Rendered Viewport Shading

So... Curve+shapekey was even more broken than it looked, this report was
actually a nice crasher (immediate crash in an ASAN build when trying to
edit a curve shapekey with some viewport rendering enabled).

There were actually two different issues here.

I) The less critical: rB6f1493f68fe was not fully fixing issues from
T50614. More specifically, if you updated obdata from editnurb
*without* freeing editnurb afterwards, you had a 'restored' (to
original curve) editnurb, without the edited shapekey modifications
anymore. This was fixed by tweaking again `calc_shapeKeys()` behavior in

II) The crasher: in `ED_curve_editnurb_make()`, the call to
`init_editNurb_keyIndex()` was directly storing pointers of obdata
nurbs. Since those get freed every time `ED_curve_editnurb_load()` is
executed, it easily ended up being pointers to freed memory. This was
fixed by copying those data, which implied more complex handling code
for editnurbs->keyindex, and some reshuffling of a few functions to
avoid duplicating things between editor's editcurve.c and BKE's curve.c

Note that the separation of functions between editors and BKE area for
curve could use a serious update, it's currently messy to say the least.
Then again, that area is due to rework since a long time now... :/

Finally, aligned 'for_render' curve evaluation to mesh one - now
editing a shapekey will show in rendered viewports, if it does have some
weight (exactly as with shapekeys of meshes).

3 years agoCleanup: remove unused orig_nu from keyIndex ghash of editcurves.
Bastien Montagne [Wed, 22 Feb 2017 17:06:09 +0000 (18:06 +0100)]
Cleanup: remove unused orig_nu from keyIndex ghash of editcurves.

3 years agoUse new api doc links
Aaron Carlisle [Wed, 22 Feb 2017 16:17:09 +0000 (11:17 -0500)]
Use new api doc links

Differential Revision:

3 years agoFix Cycles still saving render output when error happened
Sergey Sharybin [Wed, 22 Feb 2017 12:06:24 +0000 (13:06 +0100)]
Fix Cycles still saving render output when error happened

This was fixed ages ago for the interface case but not for the
command line. The thing here is that currently external engines
are relying on reports system to indicate that error happened
so suppressing reports storage in the background mode prevented
render pipeline from detecting errors happened.

This is all weak and i don't like it, but this is better than
delivering black frames from the farm.