Commit Graph

92780 Commits

Author SHA1 Message Date
Sergey Sharybin
6fff73e3f0 Merge branch 'blender-v2.82-release' 2020-01-23 16:59:50 +01:00
Sergey Sharybin
517870a4a1 CMake: Refactor external dependencies handling
This is a more correct fix to the issue Brecht was fixing in D6600.

While the fix in that patch worked fine for linking it broke ASAN
runtime under some circumstances.
For example, `make full debug developer` would compile, but trying
to start blender will cause assert failure in ASAN (related on check
that ASAN is not running already).

Top-level idea: leave it to CMake to keep track of dependency graph.

The root of the issue comes to the fact that target like "blender" is
configured to use a lot of static libraries coming from Blender sources
and to use external static libraries. There is nothing which ensures
order between blender's and external libraries. Only order of blender
libraries is guaranteed.

It was possible that due to a cycle or other circumstances some of
blender libraries would have been passed to linker after libraries
it uses, causing linker errors.

For example, this order will likely fail:

  libbf_blenfont.a libfreetype6.a libbf_blenfont.a

This change makes it so blender libraries are explicitly provided
their dependencies to an external libraries, which allows CMake to
ensure they are always linked against them.

General rule here: if bf_foo depends on an external library it is
to be provided to LIBS for bf_foo.
For example, if bf_blenkernel depends on opensubdiv then LIBS in
blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES.

The change is made based on searching for used include folders
such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries
to LIBS ion that CMakeLists.txt. Transitive dependencies are not
simplified by this approach, but I am not aware of any downside of
this: CMake should be smart enough to simplify them on its side.
And even if not, this shouldn't affect linking time.

Benefit of not relying on transitive dependencies is that build
system is more robust towards future changes. For example, if
bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES
and all such code is moved to bf_blenkernel this will not break
linking.

The not-so-trivial part is change to blender_add_lib (and its
version in Cycles). The complexity is caused by libraries being
provided as a single list argument which doesn't allow to use
different release and debug libraries on Windows. The idea is:

- Have every library prefixed as "optimized" or "debug" if
  separation is needed (non-prefixed libraries will be considered
  "generic").

- Loop through libraries passed to function and do simple parsing
  which will look for "optimized" and "debug" words and specify
  following library to corresponding category.

This isn't something particularly great. Alternative would be to
use target_link_libraries() directly, which sounds like more code
but which is more explicit and allows to have more flexibility
and control comparing to wrapper approach.

Tested the following configurations on Linux, macOS and Windows:

- make full debug developer
- make full release developer
- make lite debug developer
- make lite release developer

NOTE: Linux libraries needs to be compiled with D6641 applied,
otherwise, depending on configuration, it's possible to run into
duplicated zlib symbols error.

Differential Revision: https://developer.blender.org/D6642
2020-01-23 16:59:18 +01:00
Brecht Van Lommel
544ee7a4f2 Make deps: Fix zlib symbols defined twice
We compile zlib as own dependency, but are not informing BLOSC
to use it. This leads to zlib symbols defined twice when linking
Blender: one set comes from libz.a and another one from libblosc.a.

Tested on Linux Debian testing and CentOS 7.5.

It is possible that this change on its own will lead to linking
errors after libraries are re-compiled, This will be fixed as
a dedicated fix to Blender's build system.

Reviewed By: brecht, mont29, LazyDodo

Differential Revision: https://developer.blender.org/D6641
2020-01-23 16:59:18 +01:00
Antonio Vazquez
fb671035be Merge branch 'blender-v2.82-release' 2020-01-23 16:56:26 +01:00
Antonio Vazquez
d9d11e2faf Fix T73327: GPencil strength sculpt brush not working with small brush radius
The problem was related to the smooth of the strength. As the factor was very low and the value was smoothed , the result was almost nothing when the radius was very small. Now the factor is higher and the smooth is done after clamping pressure.
2020-01-23 16:55:37 +01:00
Clément Foucault
170844135a Fix T67050 Overlay: Forcefield limits are not dashed
This adds some kind of dashing to the tube and cone limits. Although the
dashing is in object space and is not a good as old dashing. But it is
the least time consuming and least complex solution.
2020-01-23 15:41:41 +01:00
Clément Foucault
3cd32c376d Fix T66956 EEVEE: NaN produced by bad geometry mess with the DoF
Sanitize the source of the depth of field.
2020-01-23 15:41:41 +01:00
Clément Foucault
6dcbc3cd5a Fix T73335 Overlay: Light Distance line does not represent custom distance
This is a fix to the issue that light distance line end does not represent
anything now that shadow bounds are computed automatically.
2020-01-23 15:41:41 +01:00
William Reynish
8482ba6d2e UI: Text Editor header cleanup
- Register toggle is in the Text menu
  - Run Script and Refresh OSL become an icon buttons next to ID block

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

Reviewed by Campbell Barton
2020-01-23 14:53:19 +01:00
mano-wii
24ebed4d84 Fix T51011: bpy.ops.action.new does nothing when invoked from script
The operator always expect to be called form a button.
But this is not always the case.

This does not bring functional changes when not called from python.
2020-01-23 10:44:19 -03:00
Sybren A. Stüvel
fb0136f908 Fix T71311 Bridge Edge Loops crash when bridging cube edges
This commit will prevent the crash. It does produce a result that may not
be desirable (only briding one face of the cube), but at least it's better
than crashing.
2020-01-23 14:39:50 +01:00
William Reynish
79122aec30 UI: Make default Info Editor theme more consistent with Outliner (round 2)
Fixes an error in the first version of this commit. Accidentally included theme entries from anther patch which isn't yet merged.
2020-01-23 14:38:10 +01:00
Jacques Lucke
9c9ea37770 Fix: Use a minimal alignment of 8 in MEM_lockfree_mallocN_aligned
`posix_memalign` requires the `alignment` to be at least `sizeof(void *)`.
Previously, `MEM_mallocN_aligned` would simply return `NULL` if a too small
`alignment` was used. This was an OS specific issue.

The solution is to use a minimal alignment of `8` for all aligned allocations.
The unit tests have been extended to test more possible alignments (some
of which were broken before).

Reviewers: brecht

Differential Revision: https://developer.blender.org/D6660
2020-01-23 14:21:48 +01:00
William Reynish
237d03f3a3 Revert "UI: Make default Info Editor theme more consistent with Outliner"
This reverts commit dc96995b03.
2020-01-23 13:43:42 +01:00
William Reynish
dc96995b03 UI: Make default Info Editor theme more consistent with Outliner
Currently, the Info Editor default theme settings aren't consistent with other areas such as the Outliner. This change makes it fit in more by using the same default values for things like the background and selected elements.

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

Reviewed by Pablo Vazquez
2020-01-23 13:34:33 +01:00
William Reynish
dee01cad19 UI: Rename 'View Frame' to 'Go to Current Frame'
In our animation editors, we have a feature called View Frame. Problem is, it is not self evident what this feature does. Does it show frame numbers? Does it show all frames? Does it frame the view? Does it frame the view?

What this does, is it moves the view to where the playhead is. With clearer naming, we can communicate this much more clearly.

This is just a simple patch that changes the name from 'View Frame' -> 'Go to Current Frame'.

Differential Revision: https://developer.blender.org/D6437
2020-01-23 11:50:13 +01:00
William Reynish
c01246f6c0 UI: Consolidate masking-related brush controls
In the brush properties, some masking-related controls are currently available as a sub-panel in the Options panel, while others are in the Mask panel. I want to generally lessen the amount of controls in generic 'options' panels, since it's non-descriptive and rather a rather random grab bag of various controls. Better to group things in terms of their functionality with descriptive names.

This change consolidates the masking-related controls under one panel.

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

Reviewers: Pablo Dobarro, Julien Kaspar
2020-01-23 11:45:48 +01:00
Sybren A. Stüvel
1f6ab32196 Fix T73279: Particle Rotation checkbox enabled when a bake exists
The contents of the Rotation panel was already disabled when a bake
exists, but the checkbox in the header wasn't. Since rotations are part
of the baked data, it doesn't make sense to enable/disable rotations
after baking.
2020-01-23 10:37:32 +01:00
William Reynish
fe772bf818 UI: Change 'Lock Time to Other Windows' > 'Sync Visible Range' + add to Sequencer
As pointed out by user @Peter Fog (tintwotin):

The current name for this property is wrong for two reasons:

  - Because it makes incorrect use of the term 'window' (in Blender these are called 'editors')
  - 'Lock Time' is incorrect, because it has nothing to do with locking the time at all. In Blender, the time is already locked and always the same across editors, no matter what. This property only syncs the visible range, which is something quite different.
For this reason, this is changed to 'Sync Visible Range' instead. I also added a tooltip, which was completely missing.

This patch also adds this property to the Sequencer, where it was missing.

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

Reviewed by Julian Eisel
2020-01-23 10:34:29 +01:00
Harley Acheson
c5c46e5b74 UI: Fix Hover Flickering on Selected Items
Removes hover highlight from already-selected UI items to remove unintended flickering.

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

Reviewed by Campbell Barton
2020-01-22 14:00:08 -08:00
Harley Acheson
452834f1e3 UI: Area Duplicate Icon
Changes the icon used for 'duplicate into new window' to a new one created for this purpose.

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

Reviewed by Julian Eisel
2020-01-22 13:48:25 -08:00
Tyler Seacrest
e769be1f34 Bugfix for T69413
Fixes the invisible scrollbar when opening preferences by 'Editor Type' by always creating scrollbars for V2D_COMMONVIEW_PANELS_UI objects.

This removes a fix (T47047) for dpi issues when dragging out the toolbox. The new toolbox in 2.8 does not seem to have the same DPI issues.

Exact steps for others to reproduce scrollbar invisible (T69413):
change the 3d viewport to preferences and go to addons. The scrollbar will not be visible

To verify there are no DPI issues:
Apply the patch and open blender. Hide the toolbar. Split the 3d view port into 4 windows, such that one is very small horizontally, another is very small vertically, and a third is small in both directions. Drag out the toolbar arrow on all four viewports. The Toolbar will be the same size in each. For further verification, adjust the scaling and repeat.
{F7805968}

Also this is my first time submitting a patch. Some instruction is welcome!

Reviewed By: #user_interface, Severin

Maniphest Tasks: T69413

Differential Revision: https://developer.blender.org/D6050
2020-01-22 18:49:03 +01:00
Julian Eisel
c68c160e7b UI: Hide empty Tool-Header in Rendering workspace (Image Editor)
Fixes T71509
2020-01-22 18:35:47 +01:00
Sebastián Barschkis
ca7bd3f1c3 Fluid: Cleaned up functions that deal with Python objects (C-API)
This commit belongs to T72894. It's related to (my) previous commits on pointer exchanges (today + yesterday). It cleans up the functions by describing their usage in the comments, adds additional nullptr checks, and fixes the reference count responsibilities of newly created PyObjects.
2020-01-22 18:31:19 +01:00
Gaia Clary
8fc68a2e9c Fix T69090: Collada Exporter now exports the base color if Nodes are disabled
I also changed the Collada importer scuh that the diffuse Alpha is now set
for the generated PBSDF Shader AND for the base color.

Note: we can not export the base color AND the color
from the PBSDF Shaders at the same time. And when importing
we do not know if the color was originally coming from a base
material or from a shader. Setting them both in import seems
to give the most consistent results.
2020-01-22 18:04:08 +01:00
Julian Eisel
084f072aae Fix T73191: Buttons in lower left of Preferences broken
I'm still not entirely sure what was going on - I know that the execute
region didn't get initialized correctly, but doing that at a later point
didn't fix the issue. Apparently forcing the header region to
re-initialize does fix it, even though I was sure this was redundant.

Also fixes a memory leak in UI code after preferences were opened.
2020-01-22 18:02:47 +01:00
Campbell Barton
abce4833a6 install_deps.sh: strip trailing punctuation from version numbers
Encountered this issue when enabling more libraries.
2020-01-23 03:39:06 +11:00
Sebastián Barschkis
be7571a5e4 Fluid: Refactored Mantaflow <-> Blender pointer exchange once more 2020-01-22 16:45:57 +01:00
Campbell Barton
fde6151641 install_deps.sh: fix versions such as 1.6_RC2 failing to compare
This is stripped off since it causes an error when evaluating
the strings as numbers.
2020-01-23 02:17:28 +11:00
Julian Eisel
412179b39b Cleanup: Rename ED_region_init() -> ED_region_floating_initialize()
This function is a very special refresh function just for floating
regions. _initialize is more consistent with ED_area_initialize() so use
that too.

Also adds assert.
2020-01-22 15:58:39 +01:00
Patrick Mours
26687dda5a Fix T71344: Optix render errors with motion blur and unknown bone constraint relationship
The OptiX SRT motion expects a motion defined by translation,
rotation, shear and scale, but the matrix decomposition code in
Cycles was not able to extract shear information and instead
produced a stretch matrix with the information baked in. This
caused conflicting transforms between traversal and shading
and lead to render artifacts.
This patch changes the matrix decomposition to produce factors
inline with what OptiX expects to fix that.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6605
2020-01-22 15:49:14 +01:00
Campbell Barton
0272acee0d install_deps.sh: fix IFS being incorrect when a version check fails
This caused quoting to fail later on.
2020-01-23 01:42:33 +11:00
Campbell Barton
fc0df1ffb4 Revert "install_deps.sh: fix ffmpeg package installation on Arch"
This reverts commit 3cb212602c.

The root cause was IFS being set incorrectly.
2020-01-23 01:42:33 +11:00
Sergey Sharybin
cfb7a8048c Merge branch 'blender-v2.82-release' 2020-01-22 15:41:50 +01:00
Sergey Sharybin
cbbbb9d179 Fix wrong DNA alignment on arm{el,hf} and mipsel
Technically, pointers are to be padded with followup pointer.
2020-01-22 15:34:27 +01:00
Richard Antalik
6a49161c8c VSE: Tool system integration
Add toolbar to sequencer regions.

A bit of refactoring has to be done in RNA space.
Currently there is only cut tool implemented to serve as template for
anybody who would like to add more.
2020-01-22 15:06:18 +01:00
Julian Eisel
f559e3977e Alembic & Collada: Show sidebar by default in file browser
Importers/exporters should show the sidebar by default (if they have
any settings). For some reason this was missing for the Alembic and
Collada exporters.
2020-01-22 14:59:06 +01:00
Julian Eisel
ba8de85299 PLY Import: Hide empty operator properties sidebar in file browser
The sidebar is empty for the PLY importer, so better to hide it.
2020-01-22 14:59:06 +01:00
Campbell Barton
3cb212602c install_deps.sh: fix ffmpeg package installation on Arch
A blank space at the start of the string caused the list to be quoted
as a single argument.
2020-01-23 00:50:33 +11:00
Campbell Barton
e790f4a49f install_deps.sh: define sections with overlines
Over-lines are used in other large files (keymaps for e.g),
using this add-hoc convention for sections make it easier to
configure editors to jump between them (as I have locally).
2020-01-23 00:45:34 +11:00
Campbell Barton
2b236294bb install_deps.sh: use jack2 on Arch 2020-01-23 00:41:26 +11:00
Campbell Barton
a90c2834a1 install_deps.sh: add debugging options
Add USE_DEBUG_TRAP, USE_DEBUG_LOG for trapping errors and logging
executed lines respectively.

Handy for troubleshooting issues in the script.
2020-01-23 00:41:26 +11:00
Campbell Barton
fbe25aeed4 Cleanup: adjust extend argument for tweak tool
This isn't a type, name argument 'extend'.
2020-01-23 00:41:26 +11:00
Richard Antalik
d51760dc5a Merge branch 'blender-v2.82-release' 2020-01-22 13:41:43 +01:00
Richard Antalik
a60a623a1a Fix T69921: VSE - Waveforms unnecessary redrawn on offset change
Waveform is freed in `sound_load_audio()` when sound length is `queried by BKE_sound_info_get()`.

Add argument free_waveform, so `BKE_sound_info_get()` can skip waveform freeing, as it is not expected to alter sound.

Reviewed By: sybren

Differential Revision: http://developer.blender.org/D6053
2020-01-22 13:36:55 +01:00
Sebastián Barschkis
96fa613639 Fix T73311: Mantaflow > Liquid: Enabling Initial Velocity on Inflow / Outflow crashes Blender 2020-01-22 11:40:04 +01:00
Sebastián Barschkis
c4b5279bbc Fix T72894: Mantaflow: several crashes due to null pointers
Incorporated LazyDodo's suggestions from the task.
2020-01-22 11:17:54 +01:00
Brecht Van Lommel
908ed661ee Fix Blender DMG bundling for macOS failing on buildbot
The change from D6462 caused a permission prompt. Setting the user and group
UID appears unnecessary to fix the issue, so leave just the mode.
2020-01-22 11:14:30 +01:00
Campbell Barton
69828cba53 UI: rename transparency to opacity
Calling it transparency makes value seem inverted, resolves T73306.
2020-01-22 17:44:54 +11:00
Campbell Barton
4099ad1984 install_deps.sh: quiet warning in install_deps.sh
The unquoted check gave a 'binary operator expected' warning.
2020-01-22 17:30:54 +11:00