Commit Graph

17203 Commits

Author SHA1 Message Date
Sergey Sharybin
83e8765562 Subdiv: Tweak threading settings
Ensure that all threads on a multi-core system are used.

The issue was that BLI_task module was trying to be smart and
used heuristic to find optimal number of iterations per thread.
This heuristic assumes that tasks are light-weight, which is
not a case for subdivision surface.

On a higher subdivision level with a file from T70826 the
evaluation time goes down from 0.25 to 0.17 seconds per modifier
evaluation.

When D6189 is finalized we can being some extra performance
improvement.
2019-11-19 16:58:58 +01:00
Ray Molenkamp
6fea251e01 Use mutex for lock in image.c
Usage of spinlock during heavy IO gave reduced performance
see D6267 for details.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D6267
2019-11-19 07:37:16 -07:00
Sergey Sharybin
8d4460b6c4 GHOST: Only spam about X11 errors when using --debug-ghost
This commit adds a new command line argument --debug-ghost and
makes it so X11 errors happening during context initialization
are only printed when this new flag is sued.

There is no need to flood users with errors when their GPU is
not supporting latest OpenGL version. Or, at a very minimum,
the error must be more meaning full.

Differential Revision: https://developer.blender.org/D6057
2019-11-18 09:28:17 +01:00
Sybren A. Stüvel
f8354d492d Fix crash when freeing Blender after GTests
This only frees brush_rng and random_tex_array when they were actually
previously allocated.

In a unit test (see D6246) I want to be able to partially start Blender
so that I can load a blend file. To prevent memory leaks, I also want to
be able to release memory, which currently requires calling
`BKE_blender_free()`. This unconditionally calls `RE_texture_rng_exit()`
and `BKE_brush_system_exit()`, which now crash on freeing `NULL`. This
patch fixes that.

Allocation (`BKE_brush_system_init()`) and freeing
(`BKE_brush_system_exit()`) are done asymmetrically. The allocation
functions are called from `main()` in the creator module, but the
freeing is done by `BKE_blender_free()` the Window Manager. Ideally we
symmetrise this and initialise Blender from outside the window manager
(so that the initialisation can be done without WM and Python too), but
for now I'm happy when things don't crash.

Reviewed by: sergey via pair programming
2019-11-15 15:13:18 +01:00
Campbell Barton
8863fc65ca Cleanup: unused argument, variable warnings 2019-11-15 14:36:16 +11:00
YimingWu
91248876e5 GPencil MultiStroke modifier
This patch includes a modifiers that developed for NPR rendering.

- MultiStroke modifier that generates multiple strokes around the original ones.

Differential Revision: https://developer.blender.org/D5795
2019-11-14 19:24:49 +01:00
Sergey Sharybin
9462d911ea Merge branch 'blender-v2.81-release' 2019-11-13 17:20:18 +01:00
Sergey Sharybin
fe86375d1c Force sculpting on highest multires level
This is a workaround for T58473 to avoid likely event of ruining
sculpted data.

Differential Revision: https://developer.blender.org/D6244
2019-11-13 17:15:54 +01:00
Sergey Sharybin
97d79ca844 Merge branch 'blender-v2.81-release' 2019-11-13 11:49:09 +01:00
Sergey Sharybin
ca1721270a Fix T71503: Wrap + displace + multires + Sculpt crash
The root of the issue goes to the discontinuity between the way how
mesh_calc_modifiers() and BKE_sculpt_multires_active() works.

At some point detection of original data usage by a modifier got
broken: the mesh_final based check is unreliable because deform-only
modifiers will create mesh_final for the connectivity information.

This made it so modifier stack evaluation would skip multires
evaluation, but the sculpt code will assume the multires is properly
applied.

This change makes it an explicit check about whether there are any
non-deform-only modifiers applied.

Pair programming and review together with Bastien, thanks!
2019-11-13 11:29:19 +01:00
Sergey Sharybin
5fde907fd3 Modifiers: Correct deform-only modifiers
There was a discontinuity between how deform-only modifiers are applied
for the case when result deform mesh is requested and when it is not.

Namely, the input mesh will always be guaranteed to present in the
former case, but not in the latter.

This change makes it so input mesh to deform-only modifiers is always
at consistent state.

Pair programming and review together with Bastien, thanks!
2019-11-13 11:29:00 +01:00
Campbell Barton
b09498700c Merge branch 'blender-v2.81-release' 2019-11-13 15:08:43 +11:00
Campbell Barton
d32520932f Fix sculpt + undo curve crash
PaintCurve data ID data wasn't being remapped.
Error in initial undo refactor.
2019-11-13 14:04:18 +11:00
Dalai Felinto
982bffa69f Merge branch 'blender-v2.81-release' 2019-11-11 11:26:24 -03:00
Dalai Felinto
3e4e346e59 Fix T71489: Video editor crash
Bug introduced on rBb77da65e8c4d.

Differential Revision: https://developer.blender.org/D6223
2019-11-11 10:56:07 -03:00
Campbell Barton
19c44ae087 Merge branch 'blender-v2.81-release' 2019-11-11 20:09:21 +11:00
Campbell Barton
c3dab45510 Fix lattice deform after undo and edit-mode exit
Follow up on T71414
2019-11-11 20:07:12 +11:00
Alexander Gavrilov
dca32f2b4f Fluid Particles: fix threading crash with viscoelastic springs.
As correctly pointed out by a comment in the code, adding
new springs wasn't thread safe, and caused crashes.

Fix by buffering new springs in intermediate thread-local
arrays, which are flushed on the main thread. This is valid
because the new springs are not used until the next sim step.

Differential Revision: https://developer.blender.org/D6133
2019-11-09 13:44:43 +03:00
Campbell Barton
3ecb1056c9 Merge branch 'blender-v2.81-release' 2019-11-08 12:17:42 +11:00
Campbell Barton
e9d7fddeb4 Fix dyntopo sculpt not setting vertex indices dirty
This is an old bug exposed by new cursor drawing
which uses vertex indices.
2019-11-08 12:13:23 +11:00
Campbell Barton
72351aec72 Cleanup: clang-format 2019-11-08 11:50:16 +11:00
Campbell Barton
8d8c4562cc Merge branch 'blender-v2.81-release' 2019-11-08 11:45:39 +11:00
Campbell Barton
5c2670ca39 Cleanup: spelling 2019-11-08 11:44:23 +11:00
Campbell Barton
bda58b8a89 Cleanup: clang-format 2019-11-08 11:44:23 +11:00
Sebastián Barschkis
23e1fb365b Merge branch 'blender-v2.81-release' 2019-11-07 21:36:23 +01:00
Sebastián Barschkis
eefd806afc Fix in addition to T61432: Sampling Subframes not working 2.8
As mentioned in the discussion, emission from particles did not make use of subframes. This commit resolves this issue.
2019-11-07 21:33:56 +01:00
Alexander Gavrilov
aadc90d0fc Stretch To: implement a mode similar to Damped Track for rotation.
Most of the time Stretch To is used in actual rigs, like BlenRig
or Rigify, in combination with Damped Track to handle rotation
before the stretch, because it produces rotations more appropriate
for organic deformation, and doesn't flip because of internal
gimbal lock.

The prevalence of this pattern suggests that Stretch To should
support that kind of rotation directly as an option.

Differential Revision: https://developer.blender.org/D6134
2019-11-07 19:03:03 +03:00
Alexander Gavrilov
4e5768b2a7 Stretch To: clean up the math code in the implementation.
Combine computing `size` and normalizing the matrix, invert the
direction of `vec` to avoid negating it later, use `rescale_m4`
instead of matrix multiplication to scale the final result.

Differential Revision: https://developer.blender.org/D6134
2019-11-07 18:39:17 +03:00
Bastien Montagne
50dc5648f5 Merge branch 'blender-v2.81-release' 2019-11-07 16:20:00 +01:00
Bastien Montagne
74af698769 Fix T70875: Library Override: Clicking an Library Overriden Object crashes Blender.
We also need to rebuild the whole collection/viewlayer object cache
thing when we relink an objector collection in a collection (since it
might be part of a view layer).

Again, usual disclaimer about how inneficient this is currently, needs a
serious refactor to only tag caches as dirty, and actually rebuild the
whole thing on access.
2019-11-07 16:14:11 +01:00
Campbell Barton
322cec8e4d Merge branch 'blender-v2.81-release' 2019-11-07 17:02:09 +11:00
Campbell Barton
79b703bb63 Fix T69822: Switching sculpt objects breaks undo
This introduces object mode tagging for data which hasn't yet been
written back to the ID data.

Now when selecting other sculpt objects, the original objects data is
flushed back to the ID before writing a memfile undo step.
2019-11-07 16:56:21 +11:00
Pablo Dobarro
9243c77e43 Merge branch 'blender-v2.81-release' 2019-11-06 19:22:44 +01:00
Pablo Dobarro
265295e6a6 Fix Voxel Remesher preserve volume artifacts
Should Fix T70326

This implements the shrinkwrap options suggested in D5933. I did a few
test and it seems much more stable than the previous options.

Reviewed By: jbakker

Maniphest Tasks: T70326

Differential Revision: https://developer.blender.org/D6176
2019-11-06 19:21:43 +01:00
Pablo Dobarro
ee66059ac5 Merge branch 'blender-v2.81-release' 2019-11-06 19:15:48 +01:00
Pablo Dobarro
9b944e530e Clay Strips: Set default normal radius to 1.55
The previous default was 1.7, so the brush was more stable on surface
normal changes, but softer. I don't think users expect this brush to be
that stable, so by using 1.55 we make the brush a little bit stronger on
curved surfaces by default.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6187
2019-11-06 19:14:04 +01:00
Alexander Gavrilov
7728bfd4c4 Constraints: remove special meaning of Local Space for parentless Objects.
In 2011 special handling was introduced, apparently for no other
reason than to address a complaint in T25707 that World and Local
space are equivalent for objects without parent. This causes issues
and confusion, as mentioned in rB599c8a2c8e4.

This special meaning of Local Space is not documented in the manual,
and is not known to experienced riggers, so removing it should not
be a problem.

Differential Revision: https://developer.blender.org/D6095
2019-11-06 15:36:05 +03:00
Campbell Barton
95a60fe84d Fix errors in fix for T68018 2019-11-05 09:14:47 +11:00
Lukas Stockner
ece4515fc8 Fix T71250: ID user decrement error with ID properties in ViewLayer
Credit for the original patch goes to @scorpion81.
2019-11-04 15:02:03 +01:00
Campbell Barton
b5244cd5dc Fix errors in fix for T68018 2019-11-03 17:56:05 +11:00
Richard Antalik
7ddbc7b031 Merge branch 'blender-v2.81-release' 2019-11-02 21:53:14 -07:00
Richard Antalik
8ab6ef30ab Fix T68018: Crash on building movie proxy
Skip building proxy if directory can not be created.

Crash happens, when setting custom dir to location of source file itself.
This results in attempt to create directory with the same name as source file.

Differential Revision: https://developer.blender.org/D6148
Reviewed By: sergey
2019-11-02 20:57:11 -07:00
Pablo Dobarro
cca61a0fe2 Merge branch 'blender-v2.81-release' 2019-10-31 14:46:47 +01:00
Pablo Dobarro
cd827194f7 Paint: Option to disable antialiasing
You may want to disable antialiasing if you are working with pixel art
or low resolution textures. It is enabled by default.

Reviewed By: jbakker, campbellbarton

Differential Revision: https://developer.blender.org/D6044
2019-10-31 14:45:26 +01:00
Campbell Barton
51ac654b3f Merge branch 'blender-v2.81-release' 2019-10-29 19:30:24 +11:00
Campbell Barton
7cc489a2c8 Error in last commit 2019-10-29 19:29:38 +11:00
Campbell Barton
7d7bd02ea7 Cleanup: quiet TBB deprecation warning 2019-10-29 19:25:08 +11:00
Campbell Barton
d310cbfa0f Merge branch 'blender-v2.81-release' 2019-10-29 01:38:34 +11:00
Campbell Barton
312075e688 CMake: add missing headers, use space before comments 2019-10-29 01:33:44 +11:00
Campbell Barton
1aa1716924 Merge branch 'blender-v2.81-release' 2019-10-25 21:50:48 +11:00