Commit Graph

93530 Commits

Author SHA1 Message Date
Bastien Montagne
e317e9f6c7 Fix T72751: Timeline crash from overridden scene.
Depsgraph RNA pointer would generate infinite loop in override comparisons.

Depsgraph pointer should never be considered here anyway, this is purely
runtime data.
2020-02-19 16:10:57 +01:00
Sebastián Barschkis
8c5e36d0a9 Fluid: Fix typo that was made in 4453509d83 2020-02-19 15:33:36 +01:00
Sebastián Barschkis
4453509d83 Fix T73770: Mantaflow is unable to bake fluid simulations on non-ASCII file paths
Some fluid cache functions were not using Blender's more secure BLI_gzopen() function. On Windows there are some special cases which this function can handle compared to the plain gzopen().
2020-02-19 15:07:54 +01:00
Bastien Montagne
367ecff15d readfile: Move ID refcounting to libquery.
Having that extra ID users handling at readfile level, besides generic
one ensured by libquery, has been something bothering me for a long time
(had to fix my share of bugs due to mismatches between those two areas).

Further more, work on undo speedup will require even more complex ID
refcount management if we want to keep it in readfile.c area.

So idea is instead to generalize what we did for linked data already
when undoing: recompute properly usercount numbers after liblink step,
for all IDs.

Note that extra time required here is neglectable in a whole .blend file
reading (few extra milliseconds when loading a full production scene
e.g.).

Notes:
* Some deprecated data (IPOs) are not refcounted at all anymore, this
should not be an issue in pratice since the are supposed to get deleted
after doversion anyway.
* Refcounting happens after `do_versions_after_linking`, i.e those
functions won't get valid ID usercounts currently. Again, this is not a
problem in current code, if needed we could recompute refcount before,
and then ensure `do_versions_after_linoiing()` actually handles properly
usercount, which it does not currently.

Differential Revision: https://developer.blender.org/D6881
2020-02-19 12:56:02 +01:00
Germano Cavalcante
bde215a60c Fix T68878: Update shapekeys during transformation
Only use the hack in `key_block_get_data` for the bmesh shapekey.
The remaining shapekeys can use the original offset values.

Differential Revision: https://developer.blender.org/D6516
2020-02-19 08:54:34 -03:00
Bastien Montagne
cfdb5b9a8b Fix T73941: Custom normals from normal edit modifier ignored by further modifiers.
This commit actually fixes several issues in this modifier, but main one
from the report was caused by adding a `CD_NORMAL` layer to loops to
store temp real clnors. Unless we plan on modifying the topology itself,
this is useless, and would require some additional 'dirty normals'
tagging to work properly, so just switched to simpler, cleaner solution
of having a local array of computed clnors.
2020-02-19 12:28:35 +01:00
Philipp Oeser
65ea5020c4 Fix T73938: Cycles Vertex Color wrong if no layer is specified
The node would render black in this case (but should use the
'active_render' layer choosen in the object data properties -- this is
now in line to how this is handled for e.g. UVs)

This introduces ATTR_STD_VERTEX_COLOR and uses this thoughout, if no
particular layer is specified in the node.

Maniphest Tasks: T73938

Differential Revision: https://developer.blender.org/D6887
2020-02-19 12:10:33 +01:00
Sergey Sharybin
3b01dbdeb1 Subdiv: Clarify Subdiv settings
The actual naming might also be a subject to change, especially the one
around `level`. Tricky part here is that at some point in the API there
will be change from Blender modifier's Quality to OpenSubdiv's Level,
but which API level is most suitable for this?

At least now meaning of settings is better documented ans should be
clear what's going on.
2020-02-19 11:49:32 +01:00
Brecht Van Lommel
02f44049a8 Fix make deps OSL build on some systems with Qt libraries 2020-02-19 11:41:38 +01:00
Jacques Lucke
d54a4a32f3 Fix T73859: Support executing sculpt.set_pivot_position without invoke
Reviewers: brecht
2020-02-19 10:07:46 +01:00
Campbell Barton
3afe218a7d Cleanup: assign Main, use existing assignments
Avoid accessing inline since it's often used multiple times.

In some cases it was already defined.
2020-02-19 15:07:32 +11:00
Campbell Barton
9f8dd4f9e5 BLI_math: unify zero area checks for barycentric weight calculation
This applies the change from T73348 fix to related functions.

Instead of checking against an epsilon to avoid divide by zero,
perform the division and check the result is finite.

This is needed since small faces can have an area under 'FLT_EPSILON',
and dividing by values close to zero can result in 'inf'.
2020-02-19 13:33:53 +11:00
Charlie Jolly
eef5b506d5 EEVEE: Color Ramp Ease Optimisation
This patch provides an optimisation for Ease (Smoothstep) setting in the color ramp node.
This optimisation exists already for Constant and Linear modes.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D6880
2020-02-19 02:27:36 +01:00
Clément Foucault
e82827bf6e DRW: New High Quality Normal & Tangent extract
This patch adds a dedicated path to extract 16bit normals instead of packing them into 10bits/comp.
The tangents are also packed to 10bits/comp if not using the new High Quality Normal option.

Fix T61024 Degraded texture shading on dense meshes

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6614
2020-02-19 01:57:06 +01:00
Clément Foucault
77619f5274 GPU: Fix huge performance regression regarding instancing
Under some circumstances, MultiDrawIndirect was disabled to improve perf.
of average scene. But this conflicted with the normal instancing buffer
filling if only 1 or 2 instances were needed to fill the buffer. All
consecutive drawcalls could not be batched together and performance would
degrade rapidly.

This patch make my instance test scene go from 11fps back to 40fps where
it should have been.
2020-02-18 18:20:00 +01:00
Clément Foucault
56d6666689 GPU: Limit Mesa workaround to older version 2020-02-18 18:20:00 +01:00
Cody Winchester
20605c4b51 Modifiers: UVWarp modifier add invert vgroup option
Adds the invert vgroup option to the UVWarp modifier. Adds a flag and char padding to the DNA.

Differential Revision: https://developer.blender.org/D6841
2020-02-18 18:14:44 +01:00
Cody Winchester
6cd4363c0c Modifiers: Bevel modifier add invert vgroup option
Adds the invert vgroup option to the Bevel modifier.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D6845
2020-02-18 18:09:40 +01:00
Brecht Van Lommel
ed8aa154a3 Fix crash loading .blend file saved with Blender 2.25
pathJumper.blend from 2.25 release demo files in demos225.zip
2020-02-18 18:05:11 +01:00
Cody Winchester
5df0f8bffb Modifiers: Explode modifier add invert vgroup option
Adds the invert vgroup option to the Explode modifier.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D6844
2020-02-18 17:23:16 +01:00
Brecht Van Lommel
b8567b704b Fix Cycles fluid motion blur not working after recent refactor
This also re-enables the fluid motion blur test.
2020-02-18 17:11:57 +01:00
Pablo Dobarro
43c497051a Sculpt: Update red cursor color
Some users reported that the previous red color of the cursor was too
saturated and that can be distracting.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6828
2020-02-18 17:10:17 +01:00
Cody Winchester
e30d8f45ef Modifiers: Laplacian Deform modifier add invert vgroup option
Adds the invert vgroup option to the Laplacian Deform modifier.

Differential Revision: https://developer.blender.org/D6843
2020-02-18 16:57:09 +01:00
Clément Foucault
19e63bb51e EEVEE: Fix default material disappearing when SSRefraction is enabled 2020-02-18 16:56:52 +01:00
Pablo Dobarro
8673d2e92a Sculpt: Fix slide relax cursor color
Slide/Relax is a deform tool, so the color should be yellow.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6827
2020-02-18 16:56:37 +01:00
Pablo Dobarro
f996aeaf76 Fix T73105: Use Magnify instead of Pinch in the brush context menu
This matches the name in the properties panel for the Blob and Snake
Hook brushes

Reviewed By: brecht

Maniphest Tasks: T73105

Differential Revision: https://developer.blender.org/D6805
2020-02-18 16:53:57 +01:00
Bastien Montagne
efcfe0ffdf Cleanup: clang-format. 2020-02-18 16:38:57 +01:00
Cody Winchester
d0cc9b522d Modifiers: Laplacian Smooth modifier add invert vgroup option
Adds the invert vgroup option to the Laplacian Smooth modifier.

Differential Revision: https://developer.blender.org/D6842
2020-02-18 16:28:02 +01:00
Brecht Van Lommel
cef4d344f9 Fix Embree failing on objects with a very high number of motion steps
Set the limit to 129 to match Embree. This applies to all devices for
consistent render results.

Ref T73778
2020-02-18 15:38:11 +01:00
Ray Molenkamp
003a97e0bf Cycles: Fix failing avxf cross test on AVX2
cycles_util_avxf_avx2_test failed on the cross test, since
it wasn't immediately clear why, the test was disabled.

After looking into it, this test when build for AVX2 is
generating FMA instructions where the intermediate results
have "infinite" precision [1] leading to slightly different
results.

This diff re-enables the cross test and allows for a small error
in the results.

[1] https://www.felixcloutier.com/x86/vfmadd132ps:vfmadd213ps:vfmadd231ps

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

Reviewers: brecht
2020-02-18 06:42:35 -07:00
Bastien Montagne
ad9b919962 Cleanup: protect parameters of FOREACH_MAIN_ID & co macros. 2020-02-18 14:38:33 +01:00
Bastien Montagne
ce33388413 Fix (unreported) wrong handling of usercount in BKE_workspace_add().
This does not seem to be an actual issue in current master code (as
creating a new ID will assign 1 user to it by default), but is breaking
generic usercount handling in future changes.
2020-02-18 14:38:33 +01:00
Jeroen Bakker
e3e6dc41a7 Code cleanup EEVEE Render Passes
The render passes didn't follow the DrawManager way of doing things. It added new geometry and shading groups during drawing. This would make it harder to migrate to Vulkan later on.

This change will re-implement this part by using uniform references.

Reviewed By: Clément Foucault

Differential Revision: https://developer.blender.org/D6875
2020-02-18 12:23:04 +01:00
Campbell Barton
f7386b9757 Fix T62612: Saving with "Remap Relative" makes ALL paths relative 2020-02-18 22:12:34 +11:00
Bastien Montagne
d4e38d99b2 libquery: add optional handling of 'UI' ID pointers.
Handling those through different ways /might/ be needed sometimes, but
in most case this is just a nest of issues, since you can easily forget
to take them into account.

Note that this should be a 'non-functional' change, as this new behavior
is not used anywhere yet.
2020-02-18 11:22:32 +01:00
Antonio Vazquez
abfdd1c697 Fix T73960: GPencil can't convert while it is a separate from old strokes
The problem was the new object hadn't any layer active.
2020-02-18 11:11:32 +01:00
Campbell Barton
5343d0f494 Fix making paths relative on windows
Comparing the drive letter was case sensitive,
causing 'BLI_path_rel' to fail in common cases
(manually entering a lower case drive letter for example).

Surprisingly this issue dates back to 2005 and wasn't reported.
2020-02-18 20:56:23 +11:00
Bastien Montagne
8a2228a597 Remove debug prints from blendfile_liblink.
rBf35f7bd97a4151 was the proper fix it seems.
2020-02-18 10:28:33 +01:00
Brecht Van Lommel
79f99becaf Fix T73954: Cycles viewport render from camera not respecting aspect ratio 2020-02-18 10:10:48 +01:00
Bastien Montagne
f35f7bd97a Fix missing output dir for blendfile_liblink test. 2020-02-18 09:53:08 +01:00
Campbell Barton
c83099e987 Cleanup: use doxy sections for BLI_bpath API 2020-02-18 18:21:08 +11:00
Ray Molenkamp
d0c159ae97 build_deps: include venv on windows 2020-02-17 18:41:24 -07:00
Brecht Van Lommel
ca72ff599a Fix Cycles Embree crash with AO shader local only option
Ref T73778
2020-02-18 00:45:30 +01:00
Brecht Van Lommel
1761d65b25 Fix Cycles Embree test failures with shadow catcher
Ref T73778
2020-02-18 00:45:30 +01:00
Brecht Van Lommel
a450bf330c Cleanup: compiler warnings 2020-02-18 00:45:30 +01:00
Campbell Barton
52a475287d Fix T70898: Area.type access fails for topbar & statusbar
Revert change from 5f6c45498c

Excluding enum items meant Python scripts couldn't access them.

This is no longer needed now Area.ui_type is used for the menu.
2020-02-18 10:34:45 +11:00
Stefan Werner
f5740ec8cf Cycles: Enabled quaternion motion blur with Embree.
Bringing Embree's motion blur closer to Cycles' native blur.
This requries Embree 3.8.0 or newer.

Differential Revision: https://developer.blender.org/D6575
2020-02-17 23:44:12 +01:00
William Reynish
435476cb87 IC keymap: Use B for Sequencer Blade tool, Ctrl/Cmd-B for Split operator
Also add Q for select tool, as in other editors
2020-02-17 22:50:46 +01:00
Clément Foucault
cc296ef179 DRW: Fix wrong view transform used in solid mode if using workbench engine 2020-02-17 22:49:17 +01:00
William Reynish
d38dfbd13d IC keymap: Fix warnings after recent Cut -> Split name change 2020-02-17 22:42:58 +01:00