blender-staging.git
2 years agoFix bmesh.utils.face_join arg parsing
Campbell Barton [Fri, 12 Jan 2018 03:51:15 +0000 (14:51 +1100)]
Fix bmesh.utils.face_join arg parsing

2 years agoUser Prefs: app-template option to hide the cursor
Campbell Barton [Fri, 12 Jan 2018 01:41:03 +0000 (12:41 +1100)]
User Prefs: app-template option to hide the cursor

2 years agoUser Prefs: add new flag for app-template options
Campbell Barton [Fri, 12 Jan 2018 01:30:58 +0000 (12:30 +1100)]
User Prefs: add new flag for app-template options

For experimental options, outside the scope of typical preferences.

While templates are developed we might want to make changes
to behavior which aren't fully compatible with typical work-flows.

Instead of mixing these options in with current preferences
expose separately (we could even force disable them when templates
aren't int use)

2 years agoCycles: option to make background visible through glass transparent.
Lukas Stockner [Thu, 11 Jan 2018 19:03:31 +0000 (20:03 +0100)]
Cycles: option to make background visible through glass transparent.

This can be enabled in the Film panel, with an option to control the
transmisison roughness below which glass becomes transparent.

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

2 years agoCycles: add offscreen dicing scale and dicing camera.
Mai Lavelle [Thu, 11 Jan 2018 23:50:34 +0000 (00:50 +0100)]
Cycles: add offscreen dicing scale and dicing camera.

The offscreen dicing scale helps to significantly reduce memory usage,
by reducing the dicing rate for objects the further they are outside of
the camera view.

The dicing camera can be specified now, to keep the geometry fixed and
avoid crawling artifacts in animation. It is also useful for debugging,
to see the tesselation from a different camera location.

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

2 years agoFix Cycles bevel normal baking having some random incorrect pixels.
Brecht Van Lommel [Thu, 11 Jan 2018 21:25:40 +0000 (22:25 +0100)]
Fix Cycles bevel normal baking having some random incorrect pixels.

The bevel and SSS code could result in NaNs in some cases, tweak the
formulas so this can't happen.

2 years agoBuild: auto detection of libraries built by "make deps" on Linux.
Brecht Van Lommel [Mon, 31 Jul 2017 17:04:18 +0000 (19:04 +0200)]
Build: auto detection of libraries built by "make deps" on Linux.

Use the libraries if they exist in ../lib/linux_x86_64 or similar, so
that you can run "make deps && make full" to get a full static build.
Note that install_deps.sh is still the only officially supported way to
build Blender dependencies on Linux, but this may be useful to some.

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

2 years agoCleanup commented out OMP command.
Bastien Montagne [Thu, 11 Jan 2018 19:17:29 +0000 (20:17 +0100)]
Cleanup commented out OMP command.

2 years agoNuke OMP from multires.c: forgot that one in previous commit.
Bastien Montagne [Thu, 11 Jan 2018 19:14:16 +0000 (20:14 +0100)]
Nuke OMP from multires.c: forgot that one in previous commit.

Gives same kind of speedup too, 8.7ms with old OMP code, 2.7ms with new
one, with same level-4 multires monkey head.

2 years agoNuke OMP usage in multires.c.
Bastien Montagne [Thu, 11 Jan 2018 18:39:24 +0000 (19:39 +0100)]
Nuke OMP usage in multires.c.

New code is over three times quicker than old one here (e.g. Suzanne
subdiv level 4, 250k tris, threaded part is now 1.4ms instead of 4.5ms
with OMP).

2 years agoPreparation step for nuking OMP from multires code.
Bastien Montagne [Thu, 11 Jan 2018 16:56:18 +0000 (17:56 +0100)]
Preparation step for nuking OMP from multires code.

Remove the critical OMP sections used to protect mem allocation.

First one can be done in a separate loop before main, parallelized one.

Second one only affect 'private' data, so we only need to ensure
guardedalloc thread safety is enabled.

This is committed as separated step to ease troubleshooting in case
bisecting becomes necesary.

2 years agoCleanup typo in comment.
Bastien Montagne [Thu, 11 Jan 2018 16:55:58 +0000 (17:55 +0100)]
Cleanup typo in comment.

2 years agoSubsurf: Allow partial threading over geometry arrays
Sergey Sharybin [Thu, 11 Jan 2018 14:06:56 +0000 (15:06 +0100)]
Subsurf: Allow partial threading over geometry arrays

This helps avoiding threading overhead when having lots of system threads..

2 years agoMesh evaluate: Tweak threadability criteria
Sergey Sharybin [Thu, 11 Jan 2018 14:04:13 +0000 (15:04 +0100)]
Mesh evaluate: Tweak threadability criteria

Gives measurable speedup on layout scenes from Spring.

Actual value for chunk size is a subject for more scientific research.

2 years agoMesh deform: Tweak threadability criteria
Sergey Sharybin [Thu, 11 Jan 2018 13:51:30 +0000 (14:51 +0100)]
Mesh deform: Tweak threadability criteria

Allow threading using subset of all available threads. Makes it faster to
evaluate lower resolution mesh but with complex deform groups and such.

2 years agoSubsurf: Make copyFinalLoopArray() threaded
Sergey Sharybin [Thu, 11 Jan 2018 13:49:32 +0000 (14:49 +0100)]
Subsurf: Make copyFinalLoopArray() threaded

Gives about 40% speedup of object which has simple-ish deformation applied
on top of subdivided mesh.

This might easily happen with single character animation.

2 years agoDepsgraph: Make eval initialization more friendly for threading
Sergey Sharybin [Thu, 11 Jan 2018 13:47:12 +0000 (14:47 +0100)]
Depsgraph: Make eval initialization more friendly for threading

Helps in cases of not very complex scenes and lots of system threads available.

A bit hard to measure change on it's own, it works best with the upcoming
changes and gives measurable improvements.

2 years agoSubsurf: Use regular mutex instead of RW one
Sergey Sharybin [Thu, 11 Jan 2018 13:32:56 +0000 (14:32 +0100)]
Subsurf: Use regular mutex instead of RW one

Mutex is now local to particular CCGDM, and guarding edge hash which is only
used by a single function only. There is no need to acquire read lock after
edge hash was created.

2 years agoFix critical issue with our DNA ID tags (two totally different tags having same value).
Bastien Montagne [Thu, 11 Jan 2018 13:26:44 +0000 (14:26 +0100)]
Fix critical issue with our DNA ID tags (two totally different tags having same value).

Nice typo from rBc4046e9082f6, tssk. ;)

2 years agoFix T53311: transform edge/normal orientation
Campbell Barton [Thu, 11 Jan 2018 08:09:45 +0000 (19:09 +1100)]
Fix T53311: transform edge/normal orientation

When the edge is aligned with it's own normals,
transform orientation wasn't aligned with the edge.

2 years agoFix T53755: Cycles OpenCL lamp shaders have incorrect normal.
Brecht Van Lommel [Thu, 11 Jan 2018 07:42:57 +0000 (08:42 +0100)]
Fix T53755: Cycles OpenCL lamp shaders have incorrect normal.

2 years agoUI: option not to show screen splitting widgets
Campbell Barton [Thu, 11 Jan 2018 05:08:55 +0000 (16:08 +1100)]
UI: option not to show screen splitting widgets

Request for simplified Blender template,
this may be extended to limit access to other UI changes
that could be pressed by accident.

2 years agoUI: don't draw outline when it's not calculated
Campbell Barton [Thu, 11 Jan 2018 02:20:08 +0000 (13:20 +1100)]
UI: don't draw outline when it's not calculated

Outline drawing was running even when there were no verts to draw.
Causes an assert in 2.8.

2 years agoCycles: support animated object scale in motion blur.
Stefan Werner [Sat, 2 Dec 2017 02:28:13 +0000 (03:28 +0100)]
Cycles: support animated object scale in motion blur.

This was disabled previously due to CUDA compiler bugs, see T32900.

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

2 years agoFix T53455: Object disappear w/ TrackTo constraint
Campbell Barton [Wed, 10 Jan 2018 23:57:30 +0000 (10:57 +1100)]
Fix T53455: Object disappear w/ TrackTo constraint

Regression caused by own commit 16fbb47c886,
this is really an edge case though since calling normalize twice fixes.

2 years agoFix T53752: Draw curve fails w/ stylus
Philipp Oeser [Wed, 10 Jan 2018 23:22:08 +0000 (10:22 +1100)]
Fix T53752: Draw curve fails w/ stylus

2 years agoFix Windows compiler warning using WITH_CYCLES_NATIVE_ONLY.
Brecht Van Lommel [Tue, 9 Jan 2018 21:50:48 +0000 (22:50 +0100)]
Fix Windows compiler warning using WITH_CYCLES_NATIVE_ONLY.

2 years agoFix issue with moving CUDA memory to host and multiple devices.
Brecht Van Lommel [Tue, 9 Jan 2018 17:37:46 +0000 (18:37 +0100)]
Fix issue with moving CUDA memory to host and multiple devices.

This is not expected to fix all issues. Also adds some more details
to error reporting to investigate failures.

2 years agoFix T53692: OpenCL multi GPU rendering not using all GPUs.
Brecht Van Lommel [Thu, 4 Jan 2018 22:29:06 +0000 (23:29 +0100)]
Fix T53692: OpenCL multi GPU rendering not using all GPUs.

Ensure each OpenCL device has a unique ID even if the hardware ID is not
unique for some reason.

2 years agoCleanup: BKE naming conventions for datablock add/localize
Campbell Barton [Wed, 10 Jan 2018 22:55:41 +0000 (09:55 +1100)]
Cleanup: BKE naming conventions for datablock add/localize

Conventions were already followed nearly everywhere.

2 years agoSubsurf: Loop array should not be called mv
Sergey Sharybin [Wed, 10 Jan 2018 13:58:49 +0000 (14:58 +0100)]
Subsurf: Loop array should not be called mv

mv is a mesh vertex, not loop.

2 years agoSubsurf: Remove increment of unused variable
Sergey Sharybin [Wed, 10 Jan 2018 13:58:09 +0000 (14:58 +0100)]
Subsurf: Remove increment of unused variable

2 years agoFix wrong data type used for undo memory limit
Sergey Sharybin [Wed, 10 Jan 2018 12:20:36 +0000 (13:20 +0100)]
Fix wrong data type used for undo memory limit

2 years agoTask scheduler: Use const qualifier in callbacks for parallel range
Sergey Sharybin [Wed, 10 Jan 2018 11:53:59 +0000 (12:53 +0100)]
Task scheduler: Use const qualifier in callbacks for parallel range

2 years agoTask scheduler: Use restrict pointer qualifier
Sergey Sharybin [Wed, 10 Jan 2018 11:49:51 +0000 (12:49 +0100)]
Task scheduler: Use restrict pointer qualifier

Those pointers are never to be aliased, so let's be explicit about this and hope
compiler does save some CPU ticks.

2 years agoTask scheduler: Use more const qualifiers
Sergey Sharybin [Wed, 10 Jan 2018 11:27:43 +0000 (12:27 +0100)]
Task scheduler: Use more const qualifiers

2 years agoRNA: Increase memory limit settings to their possible max on platform
Sergey Sharybin [Thu, 21 Dec 2017 10:07:59 +0000 (11:07 +0100)]
RNA: Increase memory limit settings to their possible max on platform

This is quite common to have 64GB memory now, and even 128. There is no reason
to add any artificial caps on the cache and undo memory here. We can not protect
against using too much memory in one cases and allow use of full computer
potential in others.

Now 32 bit will use 2GB max (as it used to be), but 64bit will use whatever
number of megabytes fits into integer.

Reviewers: campbellbarton, mont29

Subscribers: sebastian_k

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

2 years agomath utils: Add size_t version of min and max functions
Sergey Sharybin [Thu, 21 Dec 2017 09:39:15 +0000 (10:39 +0100)]
math utils: Add size_t version of min and max functions

2 years agoCleanup: comment block alignment
Campbell Barton [Wed, 10 Jan 2018 08:57:02 +0000 (19:57 +1100)]
Cleanup: comment block alignment

2 years agoAlternate fix for brush user count
Campbell Barton [Wed, 10 Jan 2018 08:34:34 +0000 (19:34 +1100)]
Alternate fix for brush user count

This reverts change to BKE_brush_add,
callers now remove the extra user.

Note this isn't very convenient for callers but
is consistent with other ID types.

In the future we will probably remove this and have new
ID's created with zero users.

2 years agoCorrection to brush user commit
Campbell Barton [Wed, 10 Jan 2018 07:31:54 +0000 (18:31 +1100)]
Correction to brush user commit

RNA API was compensating for the extra user.

2 years agoFix background_job template
Campbell Barton [Wed, 10 Jan 2018 06:49:20 +0000 (17:49 +1100)]
Fix background_job template

Update attribute and use empty file operator

2 years agoFix brush user count
Campbell Barton [Wed, 10 Jan 2018 06:45:34 +0000 (17:45 +1100)]
Fix brush user count

New brushes had 2 users on adding.
Caused assert removing them after.

2 years agoCorrect typos
Campbell Barton [Wed, 10 Jan 2018 01:43:29 +0000 (12:43 +1100)]
Correct typos

2 years agoFix T53491: Absolute tablet motion detection fails
Campbell Barton [Wed, 10 Jan 2018 01:25:20 +0000 (12:25 +1100)]
Fix T53491: Absolute tablet motion detection fails

When using a tablet, detecting absolute motion only worked
when activating a tool with the tablet.

Pressing Enter to run a tool for e.g. would use relative motion.

Now store is_motion_absolute in the event,
set for new events based on the most recent motion events.

2 years agofix t53701 minimal changes to get it working right
bjornmose [Wed, 10 Jan 2018 00:51:04 +0000 (01:51 +0100)]
fix t53701 minimal changes to get it working right

2 years agoFix (unreported) potential crash.
Bastien Montagne [Tue, 9 Jan 2018 18:51:50 +0000 (19:51 +0100)]
Fix (unreported) potential crash.

RNA_pointer_as_string could return NULL instead of a valid string in some cases.

2 years agoTask scheduler: Use single thread branch when range fits into single chunk
Sergey Sharybin [Tue, 9 Jan 2018 17:10:47 +0000 (18:10 +0100)]
Task scheduler: Use single thread branch when range fits into single chunk

2 years agoTask scheduler: Fix wrong tasks calculation when chunk size is too big
Sergey Sharybin [Tue, 9 Jan 2018 17:07:34 +0000 (18:07 +0100)]
Task scheduler: Fix wrong tasks calculation when chunk size is too big

2 years agoTask scheduler: Use const qualifiers in parallel range
Sergey Sharybin [Tue, 9 Jan 2018 09:47:01 +0000 (10:47 +0100)]
Task scheduler: Use const qualifiers in parallel range

2 years agoTask scheduler: Avoid over-allocation of tasks for parallel ranges
Sergey Sharybin [Mon, 8 Jan 2018 11:13:56 +0000 (12:13 +0100)]
Task scheduler: Avoid over-allocation of tasks for parallel ranges

This seems to only cause extra rthreading overhead on systems with 10s of
threads, without actually solving anything.

2 years agoTask scheduler: Add minimum number of iterations per thread in parallel range
Sergey Sharybin [Mon, 8 Jan 2018 11:08:18 +0000 (12:08 +0100)]
Task scheduler: Add minimum number of iterations per thread in parallel range

The idea is to support following: allow doing parallel for on a small range,
each iteration of which takes lots of compute power, but limit such range to
a subset of threads.

For example, on a machine with 44 threads we can occupy 4 threads to handle
range of 64 elements, 16 elements per thread, where each block of 16 elements
is very complex to compute.

The idea should be to use this setting instead of global use_threading flag,
which is only based on size of array. Proper use of the new flag will improve
threadability.

This commit only contains internal task scheduler changes, this setting is not
used yet by any areas.

2 years agoTask scheduler: Simplify parallel range function
Sergey Sharybin [Mon, 8 Jan 2018 11:07:09 +0000 (12:07 +0100)]
Task scheduler: Simplify parallel range function

Basically, split it up and avoid extra abstraction level.

2 years agoTask scheduler: Use single parallel range function with more flexible function
Sergey Sharybin [Mon, 8 Jan 2018 10:35:48 +0000 (11:35 +0100)]
Task scheduler: Use single parallel range function with more flexible function

Now all the fine-tuning is happening using parallel range settings structure,
which avoid passing long lists of arguments, allows extend fine-tuning further,
avoid having lots of various functions which basically does the same thing.

2 years agoTask scheduler: Get rid of extended version of parallel range callback
Sergey Sharybin [Fri, 5 Jan 2018 15:33:13 +0000 (16:33 +0100)]
Task scheduler: Get rid of extended version of parallel range callback

Wrap all arguments into TLS type of argument. Avoids some branching and also
makes it easier to extend things in the future.

2 years agoFix T53691: Motion Tracking Object Solver Constraint doesn't work as Bone Constraint
Sergey Sharybin [Tue, 9 Jan 2018 13:27:19 +0000 (14:27 +0100)]
Fix T53691: Motion Tracking Object Solver Constraint doesn't work as Bone Constraint

2 years agoDepsgraph: Move special handling of tracking constraints to a dedicated function
Sergey Sharybin [Tue, 9 Jan 2018 13:11:23 +0000 (14:11 +0100)]
Depsgraph: Move special handling of tracking constraints to a dedicated function

2 years agoDepsgraph: Perform early check on constraint info NULL
Sergey Sharybin [Tue, 9 Jan 2018 12:09:59 +0000 (13:09 +0100)]
Depsgraph: Perform early check on constraint info NULL

2 years agoCorrect error in last commit (versioning)
Campbell Barton [Tue, 9 Jan 2018 04:17:00 +0000 (15:17 +1100)]
Correct error in last commit (versioning)

2 years agoAdd deform axis for Simple Deform modifier
Campbell Barton [Tue, 9 Jan 2018 03:59:45 +0000 (14:59 +1100)]
Add deform axis for Simple Deform modifier

D2989 by @dmarra w/ own edits

2 years agoinstall_deps: Fix OCIO always re-cloning its whole git repository.
Bastien Montagne [Mon, 8 Jan 2018 15:33:56 +0000 (16:33 +0100)]
install_deps: Fix OCIO always re-cloning its whole git repository.

2 years agoNo groping in Blender's Tracker!
Sebastian Koenig [Mon, 8 Jan 2018 13:11:43 +0000 (14:11 +0100)]
No groping in Blender's Tracker!

This a small cleanup of something which I think is just a typo anyway.

With all the recent talks of harrassment and groping, I think we better avoid
that within our source code! :)

Reviewers: sergey

Reviewed By: sergey

Tags: #motion_tracking

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

2 years agoFix T53612: Blender crashes on CleanTracks with 'DELETE_SEGMENTS' and a disabled...
Sergey Sharybin [Mon, 8 Jan 2018 13:10:50 +0000 (14:10 +0100)]
Fix T53612: Blender crashes on CleanTracks with 'DELETE_SEGMENTS' and a disabled marker

Simple fix, which is totally safe for 2.79a!

2 years agoFix T53509: Datablock ID Properties attached to bpy.types.Material are not loaded.
Bastien Montagne [Mon, 8 Jan 2018 08:37:56 +0000 (09:37 +0100)]
Fix T53509: Datablock ID Properties attached to bpy.types.Material are not loaded.

Stupid mistake in material reading code, thanks to Simon Wendsche (@BYOB) for the investigation and fix!

To be backported to 2.79a.

2 years agoFix T53713: User remap failed w/ texface images
Campbell Barton [Mon, 8 Jan 2018 05:58:58 +0000 (16:58 +1100)]
Fix T53713: User remap failed w/ texface images

2 years ago(Nodes) Display image name if any in the Image and Texture Image node title
Ines Almeida [Sun, 7 Jan 2018 21:29:25 +0000 (22:29 +0100)]
(Nodes) Display image name if any in the Image and Texture Image node title

2 years agoFix T47212: Luminance Key not working with HDR and out-of-gamut ranges.
Aaron Carlisle [Sat, 6 Jan 2018 15:23:58 +0000 (16:23 +0100)]
Fix T47212: Luminance Key not working with HDR and out-of-gamut ranges.

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

2 years agoFix T47212: incorrect luma coefficients for Luminance Key node.
Brecht Van Lommel [Sat, 6 Jan 2018 15:41:33 +0000 (16:41 +0100)]
Fix T47212: incorrect luma coefficients for Luminance Key node.

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

2 years agoFix T53650: remove hard limits on force field size and max distance.
Philipp Oeser [Sat, 6 Jan 2018 04:12:24 +0000 (05:12 +0100)]
Fix T53650: remove hard limits on force field size and max distance.

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

2 years agoFix T53696: Compositor HSV limits changed
Campbell Barton [Fri, 5 Jan 2018 09:13:17 +0000 (20:13 +1100)]
Fix T53696: Compositor HSV limits changed

2 years agoFix leak when rendering OpenGL animations
Dalai Felinto [Thu, 4 Jan 2018 17:56:41 +0000 (15:56 -0200)]
Fix leak when rendering OpenGL animations

We were duplicating rectf twice :/

Patch by ClĂ©ment Foucault.

2 years agoFix T52953: Crash removing material
Campbell Barton [Thu, 4 Jan 2018 10:35:09 +0000 (21:35 +1100)]
Fix T52953: Crash removing material

2 years agoFix T53586: Surfaces collapse when joined
Campbell Barton [Thu, 4 Jan 2018 05:01:27 +0000 (16:01 +1100)]
Fix T53586: Surfaces collapse when joined

2 years agoFix T53637: Keymap from app-template ignored
Campbell Barton [Thu, 4 Jan 2018 03:07:45 +0000 (14:07 +1100)]
Fix T53637: Keymap from app-template ignored

Addon's were also ignored

2 years agobuild deps: llvm new website download locations
Arto Kitula [Wed, 3 Jan 2018 12:52:25 +0000 (14:52 +0200)]
build deps: llvm new website download locations

2 years agoNew API function to call an existing menu
Dalai Felinto [Wed, 3 Jan 2018 12:16:26 +0000 (10:16 -0200)]
New API function to call an existing menu

Thanks Campbell Barton for the help and review.
This is for Blender 2.8, so we are not using this function yet.

2 years agoMissing from last commit
Campbell Barton [Wed, 3 Jan 2018 11:01:40 +0000 (22:01 +1100)]
Missing from last commit

2 years agoFix T53632: Objects outside scene shown in popup
Campbell Barton [Wed, 3 Jan 2018 10:54:02 +0000 (21:54 +1100)]
Fix T53632: Objects outside scene shown in popup

Only show objects in current scene when not pinned.

This commit adds a filter argument to id-template
since we may want to filter by other criteria.

2 years agoFix T53678: Smart Project UV margin ignores units
Campbell Barton [Wed, 3 Jan 2018 05:10:41 +0000 (16:10 +1100)]
Fix T53678: Smart Project UV margin ignores units

2 years agoCycles: CUDA support for rendering scenes that don't fit on GPU.
Brecht Van Lommel [Fri, 3 Nov 2017 23:33:38 +0000 (00:33 +0100)]
Cycles: CUDA support for rendering scenes that don't fit on GPU.

In that case it can now fall back to CPU memory, at the cost of reduced
performance. For scenes that fit in GPU memory, this commit should not
cause any noticeable slowdowns.

We don't use all physical system RAM, since that can cause OS instability.
We leave at least half of system RAM or 4GB to other software, whichever
is smaller.

For image textures in host memory, performance was maybe 20-30% slower
in our tests (although this is highly hardware and scene dependent). Once
other type of data doesn't fit on the GPU, performance can be e.g. 10x
slower, and at that point it's probably better to just render on the CPU.

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

2 years agoCycles: make CUDA code a bit more robust to host/device alloc failures.
Brecht Van Lommel [Tue, 2 Jan 2018 21:56:07 +0000 (22:56 +0100)]
Cycles: make CUDA code a bit more robust to host/device alloc failures.

Fixes a few corner cases found while stress testing host mapped memory.

2 years agonstall_deps: llvm downloads new website location
Bastien Montagne [Tue, 2 Jan 2018 14:21:21 +0000 (15:21 +0100)]
nstall_deps: llvm downloads new website location

Patch by Lucas Walter (@lucasw), thanks.

Reviewers: mont29

Reviewed By: mont29

Subscribers: mont29

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

2 years agofix T53230: avoid Nullpointer problems in Collada Exporter
Gaia Clary [Mon, 1 Jan 2018 14:02:26 +0000 (15:02 +0100)]
fix T53230: avoid Nullpointer problems in Collada Exporter

2 years agoBuild: fix make deps TBB on Linux, older versions don't support GCC 7.
Brecht Van Lommel [Tue, 8 Aug 2017 00:46:19 +0000 (02:46 +0200)]
Build: fix make deps TBB on Linux, older versions don't support GCC 7.

2 years agoBuild: fix make deps OpenSubdiv build on Linux.
Brecht Van Lommel [Fri, 29 Dec 2017 17:11:46 +0000 (18:11 +0100)]
Build: fix make deps OpenSubdiv build on Linux.

2 years agoFix T53513: Particle size showing in multiple places
Dalai Felinto [Fri, 29 Dec 2017 15:03:26 +0000 (13:03 -0200)]
Fix T53513: Particle size showing in multiple places

Technically this was introduced in 01b547f9931970050e when
exposing size and randomness for particles.

This "fixes" makes sure particle size and size randomness is always in the
Render panel when it affects the particle system (i.e., always unless using
advanced hair or hair that is not rendering groups/objects).

2 years agoFix T53639: text sequence strips no stamped into render.
Philipp Oeser [Thu, 28 Dec 2017 23:10:27 +0000 (00:10 +0100)]
Fix T53639: text sequence strips no stamped into render.

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

2 years agoFix mistake in previous fix for T53600, shows we really need a smarter solution.
Brecht Van Lommel [Thu, 28 Dec 2017 23:07:49 +0000 (00:07 +0100)]
Fix mistake in previous fix for T53600, shows we really need a smarter solution.

2 years agoFix T53630: Effect strips not displaying Input data.
Bastien Montagne [Thu, 28 Dec 2017 16:57:18 +0000 (17:57 +0100)]
Fix T53630: Effect strips not displaying Input data.
Fix T52977: Parent bone name disappeared in the UI in pose mode.

Regression caused by own rBc57636f060018. So instead of changing widget
type, just flag it as disabled.

Note that core of the issue is elsewhere though - there is absolutely no
reasons to have a search widget for pointers we cannot change nor
search! But fixing this is not really top priority, one of the many
glitches of our UI code, so think we can live with current code.

To be backported to 2.79a.

2 years agoFix T53600: Cycles shader mixing issue with principled BSDF and zero weights.
Brecht Van Lommel [Mon, 25 Dec 2017 22:43:55 +0000 (23:43 +0100)]
Fix T53600: Cycles shader mixing issue with principled BSDF and zero weights.

SVM nodes need to read all data to get the right offset for the following node.
This is quite weak, a more generic solution would be good in the future.

2 years agoFix T53607: Cycles normal map baking problem when there is no bump.
Brecht Van Lommel [Mon, 25 Dec 2017 22:04:51 +0000 (23:04 +0100)]
Fix T53607: Cycles normal map baking problem when there is no bump.

2 years agoCleanup - Various style/typo fixes
Joshua Leung [Sat, 23 Dec 2017 10:54:05 +0000 (23:54 +1300)]
Cleanup - Various style/typo fixes

2 years agoFix scalability issue in threaded code of Mesh normals computation.
Bastien Montagne [Fri, 22 Dec 2017 21:12:23 +0000 (22:12 +0100)]
Fix scalability issue in threaded code of Mesh normals computation.

We tried to do as much as possible in a single threaded callback, which
lead to using some nasty tricks like fake atomic-based spinlocks to
perform some operations (like float addition, which has no atomic
intrinsics).

While OK with 'standard' low number of working threads (8-16), because
collision were rather rare and implied memory barrier not *that* much
overhead, this performed poorly with more powerful systems reaching the
100 of threads and beyond (like workstations or render farm hardware).

There, both memory barrier overhead and more frequent collisions would
have significant impact on performances.

This was addressed by splitting further the process, we now have three
loops, one over polys, loops and vertices, and we added an intermediate
storage for weighted loop normals. This allows to avoid completely any
atomic operation in body of threaded loops, which should fix scalability
issues. This costs us slightly higher temp memory usage (something like
50Mb per million of polygons on average), but looks like acceptable
tradeoff.

Further more, tests showed that we could gain an additional ~7% of speed
in computing normals of heavy meshes, by also parallelizing the last two
loops (might be 1 or 2% on overall mesh update at best...).

Note that further tweaking in this code should be possible once Sergey
adds the 'minimum batch size' option to threaded foreach API, since very
light loops like the one on loops (mere v3 addition) require much bigger
batches than heavier code (like the one on polys) to keep optimal
performances.

2 years agoTask scheduler: Clarify why do we need an atomic add of 0
Sergey Sharybin [Fri, 22 Dec 2017 15:37:25 +0000 (16:37 +0100)]
Task scheduler: Clarify why do we need an atomic add of 0

2 years agoSubsurf: Avoid possible use of partially initialized edge hash
Sergey Sharybin [Fri, 22 Dec 2017 11:50:06 +0000 (12:50 +0100)]
Subsurf: Avoid possible use of partially initialized edge hash

2 years agoSubsurf: Avoid global lock for loops and orig index layers
Sergey Sharybin [Fri, 22 Dec 2017 11:45:06 +0000 (12:45 +0100)]
Subsurf: Avoid global lock for loops and orig index layers

This is a bit annoying to have per-DM locking, but it's way better (as in, up to
4 times better) for playback speed when having lots of subsurf objects,

2 years agoTask scheduler: Start with suspended pool to avoid threading overhead on push
Sergey Sharybin [Fri, 22 Dec 2017 11:25:11 +0000 (12:25 +0100)]
Task scheduler: Start with suspended pool to avoid threading overhead on push

The idea is to avoid any threading overhead when we start pushing tasks in a
loop. Similarly to how we do it from the new dependency graph. Gives couple of
percent of speedup here, but also improves scalability.

2 years agoDepsgraph: Sort and clam number of statistics entries
Sergey Sharybin [Thu, 21 Dec 2017 16:16:18 +0000 (17:16 +0100)]
Depsgraph: Sort and clam number of statistics entries

Makes log easier to read.

2 years agoDepsgraph: Bring timing statistics to the new dependency graph
Sergey Sharybin [Thu, 21 Dec 2017 15:14:15 +0000 (16:14 +0100)]
Depsgraph: Bring timing statistics to the new dependency graph

This statistics is only collected when debug_value is different from 0.

Stored in depsgraph node itself, so we can always have access to average data
and other stats which requires persistent storage. This way we also don't waste
time trying to find stats from a separately stored hash map.

2 years agoDepsgraph: Make it more clear that we dump relations into graphviz
Sergey Sharybin [Thu, 21 Dec 2017 11:56:44 +0000 (12:56 +0100)]
Depsgraph: Make it more clear that we dump relations into graphviz

We might implement other things to dump into graphviz, so better to
start having explicit names.