Commit Graph

106978 Commits

Author SHA1 Message Date
Sergey Sharybin
3dc832a904 Switch SVN to Git submodules using Git-LFS
This change makes it so build system and update utilities for Blender builds
are using pre-compiled libraries and other resources attached as Git modules
instead of using checkout of SVN repositories in the parent folder.

The directory layout:
```
  * release/datafiles/
    * assets/        -> blender-assets.git
      * publish/
      * ...
      * README.txt
  * lib/
    * darwin_x64/    -> lib-darwin_x64.git
    * darwin_arm64/  -> lib-darwin_arm64.git
    * linux_x64/     -> lib-linux_x64.git
    * windows_x64/   -> lib-windows_x64.git
  * tests/
    * data/         -> blender-test-data.git
```

The changes about configuring the actual Git sub-modules are not included
into this patch, as those require repository to actually exist before it
can be used.

The assets submodule is enabled by default, and the rest of them are
disabled. This means that if someone runs `git submodule update --init`
they will not get heavy libraries. The platform-specific and tests
related submodules are enabled when using `make update` or `make test`.

All the submodules are tracked: this means that when new commits are
done to the submodule, the blender.git repository is to be updated to
point them to the new hash. This causes some extra manual work, but it
allows to more easily update Blender and its dependencies to known good
state when performing operations like bisect.

Ref #108978

Pull Request: https://projects.blender.org/blender/blender/pulls/117946
2024-02-22 13:50:55 +01:00
Campbell Barton
20c729b902 Fix missing info space redraw when modal operators report while running 2024-02-22 22:12:02 +11:00
Jacques Lucke
a1b95f69fa Revert "Fix #116082: support changing interface socket bl_socket_idname"
This reverts commit 42faf9d242.

This caused #118529. Better figure out a fix first before committing this again.
2024-02-21 22:23:32 +01:00
Bastien Montagne
243f125fa2 Fix #107946: Blender crashes when relocating a library to another library that uses the same "2nd-level" library.
The issue here is that the `parent` pointer of indirectly linked
libraries would not be propoerly cleared when their current parent was
deleted.

Note that this fix will leave effectively indirectly linked libraries
shown as directly used ones in the UI, until the blendfile is saved and
reloaded. This is not a new issue though, deleting a parent library in
the Outliner has the same effect.
2024-02-21 18:17:27 +01:00
Michael Kowalski
1d0bbefbb7 USD: Fix varying interpolation import
This addresses issue #93052.

Now converting the USD "varying" interpolation type to
the "point" domain type when importing USD attributes.

There have been some inconsistent opinions in the USD
developer community about whether "varying" interpolation
is equivalent to "corner" or "point" domains for meshes.
However, DCCs such as Unity and Houdini assume that the
number of entries for attributes with "varying" interpolation
is the same as the number of points, and this change allows
Blender to import such assets without error.

Pull Request: https://projects.blender.org/blender/blender/pulls/118539
2024-02-21 16:07:17 +01:00
Germano Cavalcante
bdc9767e09 Fix: wrong index returned for edge endpoints snapping
This value is not currently being used.
But it can cause problems for those who use Snap Gizmo in Python.
2024-02-21 10:31:18 -03:00
Enrique-de-la-Calle
bd783c8c1b Fix #113812: disabled Bake simulation if cache is not enabled
Currently, baking to disk does not work when caching is disabled. So better
force the user to enable the cache before attempting to bake.

Pull Request: https://projects.blender.org/blender/blender/pulls/114601
2024-02-21 14:12:55 +01:00
Harley Acheson
857341a7a7 Fix #118473: Glitches for Square Color Picker When Very Wide
When using a square color picker you can drag it very wide in an RGB
node. Once over a threshold the round cursor in the color canvas will
turn into a vertical bar. Caused by (dumb) proportion test. Replaced
with a proper check for gradient type.

Pull Request: https://projects.blender.org/blender/blender/pulls/118542
2024-02-21 03:03:48 +01:00
Brecht Van Lommel
6b0b3ccadc Fix: Missing include, causing error with a combination of build options 2024-02-20 19:18:22 +01:00
Philipp Oeser
d2f8af9b08 Fix #102930: crash loading a GP file with hook custom curve
The CurveMapping was just not initialized on file read (now done via
BKE_curvemapping_init).

Pull Request: https://projects.blender.org/blender/blender/pulls/118525
2024-02-20 18:09:41 +01:00
Christoph Lendenfeld
a0fb1486be Fix #97973: Red underline in action editor is stale
When switching to an object with invalid channels,
the red underline would only appear on the second redraw.
Same when switching the other way around, then they would
stay until the next redraw.

The issue is that the logic to check if that line should be drawn
is checking the flag of the `bAnimListElem` which gets it from
the FCurve. But the FCurve is only checked later down the line
when getting the name.

Fix it by checking the flag on the FCurve directly.

Pull Request: https://projects.blender.org/blender/blender/pulls/118522
2024-02-20 17:33:39 +01:00
bonj
f5151bbbeb Fix #118116: Only hide solid mesh if overlays are enabled
When the retopology overlay is enabled, the edit mesh is not drawn
in solid mode. When you disabled overlays however, it would not be
drawn in any mode, which understandably confused users.
Now it checks whether overlays are enabled before it hides the solid mesh.

Pull Request: https://projects.blender.org/blender/blender/pulls/118422
2024-02-20 12:57:24 +01:00
Harley Acheson
42a74a28f2 Fix #117780: Allow Embossing With Horizontal Layouts
Although it is nice to skip embossing for middle buttons in aligned
rows, this only applies to vertically-aligned buttons. Horizontal ones
need to keep their embossing, if enabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/118304
2024-02-19 22:26:08 +01:00
Iliya Katueshenock
42faf9d242 Fix #116082: support changing interface socket bl_socket_idname
Pull Request: https://projects.blender.org/blender/blender/pulls/116146
2024-02-19 21:01:57 +01:00
Julian Eisel
edcdbf1cbd Fix race condition in "All" asset library building
Multiple threads may try to load the "All" asset library catalogs, so
avoid working on the same catalog service in parallel.

Found when testing #118463 on top of #118382, by creating a sculpt brush
asset while the asset shelf is open. The 3D View header would trigger
reloading of the "All" asset library catalogs to display node assets in
header pulldowns, while the asset shelf triggered a threaded reload of
the asset library.
2024-02-19 18:05:31 +01:00
Brecht Van Lommel
0f2064bc3b Revert changes from main commits that were merged into blender-v4.1-release
The last good commit was 4bf6a2e564.
2024-02-19 15:59:59 +01:00
Germano Cavalcante
6b6393b22f Merge remote-tracking branch 'origin/main' into blender-v4.1-release 2024-02-19 11:42:01 -03:00
Germano Cavalcante
4bf6a2e564 Fix #118445: crash when snapping to face nearest
Caused by `dd1c12e4d0`.

We need to be a little more restricted to calculate the occlusion plane.
2024-02-19 11:41:30 -03:00
Miguel Pozo
5a76a4190d Fix: Workbench: Wrong volume shader
Regression from
2a2effc0c2
2024-02-19 15:37:14 +01:00
Iliya Katueshenock
9e12a675b5 Cleanup: Merge BKE_node.h into BKE_node.hh
Trivial change, just move all the code from `BKE_node.h` to `BKE_node.hh` header top.
No mixing code from different headers or namespace changes. Part of #117773

Pull Request: https://projects.blender.org/blender/blender/pulls/118407
2024-02-19 15:26:10 +01:00
Philipp Oeser
9ca48c0e2c Merge branch 'blender-v4.1-release' 2024-02-19 15:18:59 +01:00
Philipp Oeser
8675fc50dc Fix #105968: Crash when delete linked object in scenes Outliner
Problem here is that when selecting/activating an object in a different
scene in the Outliner, the Outliner will automatically switch scenes via
`WM_window_set_active_scene` however the `view_layer` was untouched and
as a consequence `BKE_view_layer_synced_ensure` gets the right scene but
the "wrong" viewlayer [which makes it not do its thing properly]

To solve, now use the new active viewlayer after having switched scenes.

NOTE this also solves a couple of other asserts elsewhere (when not
deleting, just selecting/activating could assert on
`DEG_is_evaluated_object(ob)`)

Pull Request: https://projects.blender.org/blender/blender/pulls/118458
2024-02-19 15:18:19 +01:00
Bastien Montagne
b31e6bd93e GPv3: Conversion: Add general modifiers handling, and convert Noise one.
Fairly straightforward.

Note that only the Noise modifier is handled in this commit, for demonstration/testing purposes.

The other modifiers remain TODO and will be handled in later commits.

Pull Request: https://projects.blender.org/blender/blender/pulls/118415
2024-02-19 14:34:40 +01:00
Falk David
a6dbfc8281 Fix: GPv3: Don't convert default thickness factor
The check that would early return to skip the thickness conversion was wrong.
It should check if the factor is 0 and then return.
2024-02-19 13:54:29 +01:00
Jacques Lucke
1f30f41af8 Geometry Nodes: align input and output sockets in simulation and repeat zone nodes
This changes the drawing of the zone nodes to align corresponding input
and output sockets. The resulting nodes are smaller and it's easier to see
how data is passed through them.

Drawing aligned sockets is already technically supported for quite a while
already, but we haven't used it so far. Using them for zone nodes seems to
provide benefits only. How we use aligned sockets in other nodes still has
to be discussed more.

This patch only changes run-time data. It doesn't affect what is written to
.blend files.

In the node declaration, aligned sockets are created by tagging a socket
so that it is aligned with the previous socket. This is a bit different from
what we had before where a single socket declaration would be used for
an input and output socket. I think the approach used here works better,
especially in a potential future scenario where the input and output socket
has a different type.

Pull Request: https://projects.blender.org/blender/blender/pulls/118335
2024-02-19 13:32:01 +01:00
Brecht Van Lommel
05f6a32b18 Merge branch 'blender-v4.1-release' into main 2024-02-19 13:18:27 +01:00
Brecht Van Lommel
7dd0dfe188 Fix: Build error using WITH_GPU_DRAW_TESTS and WITH_VULKAN_BACKEND 2024-02-19 12:24:54 +01:00
YimingWu
ae20873250 GPv3: Weight proximity modifier
This migrates the Weight proximity modifier to GPv3.

Pull Request: https://projects.blender.org/blender/blender/pulls/118363
2024-02-19 11:16:38 +01:00
Jeroen Bakker
06dd75ebd0 EEVEE-Next: Fix Metal Shading Warning
Implicit conversion between int and uint should be made explicit
accourding to our style guide.

Pull Request: https://projects.blender.org/blender/blender/pulls/118450
2024-02-19 09:53:53 +01:00
Aaron Carlisle
234e15f7b6 UI: Allow Context Online Manual Access for User Preferences
The check for owner ID here was preventing the online manual access to work for user preference properties.

This is also true for Python API Documentation access.
2024-02-19 02:11:04 -05:00
Jacques Lucke
5594490aea Fix: race condition in atomic disjoint set
To fix this, I compared our implementation with the reference implementation
in more detail again and found some differences.
Aligning our and the reference implementation a bit more fixed the issue.

Reference implementation: https://github.com/wjakob/dset/blob/master/dset.h

Pull Request: https://projects.blender.org/blender/blender/pulls/118434
2024-02-19 02:09:55 -05:00
Jeroen Bakker
2cb2d3944b RenderTest: Fix EEVEE Render Test
Panorama dicing test fails for EEVEE on legacy platforms. EEVEE creates a shader interface
that isn't compatible with the vulkan backend. This PR hides the check.

Check should be enabled again after EEVEE has been replaced by EEVEE-Next.
This PR also changes the behavior when checks are executed. It used to be
executed when blender was build with asserts. Now it is behind the --debug-gpu flag.

Pull Request: https://projects.blender.org/blender/blender/pulls/117992
2024-02-19 08:07:53 +01:00
Aaron Carlisle
09ff1b1f7e UI: Allow Context Online Manual Access for User Preferences
The check for owner ID here was preventing the online manual access to work for user preference properties.

This is also true for Python API Documentation access.
2024-02-19 02:07:47 -05:00
Hans Goudey
fb8f9deaab Cleanup: Store BLF Glyph cache with C++ Vector, use std::mutex
- Store glyph cache entries as unique pointers in a vector
- Use std::mutex instead of `ThreadMutex`

Pull Request: https://projects.blender.org/blender/blender/pulls/118222
2024-02-19 03:34:36 +01:00
Campbell Barton
64213e6c24 Cleanup: use std::string for manual_id access 2024-02-19 12:18:30 +11:00
Campbell Barton
14b5912eee Cleanup: quiet C4551 warning for MSVC 2024-02-19 09:34:41 +11:00
Campbell Barton
e51f954f39 Cleanup: spelling in comments, RNA description warning 2024-02-19 09:23:48 +11:00
Jacques Lucke
02127c1d3e Fix: race condition in atomic disjoint set
To fix this, I compared our implementation with the reference implementation
in more detail again and found some differences.
Aligning our and the reference implementation a bit more fixed the issue.

Reference implementation: https://github.com/wjakob/dset/blob/master/dset.h

Pull Request: https://projects.blender.org/blender/blender/pulls/118434
2024-02-18 19:20:45 +01:00
Pratik Borhade
203f5f9f09 GPv3: Autolock inactive layers
Port legacy `autolock_layers` property to gpv3

Pull Request: https://projects.blender.org/blender/blender/pulls/118323
2024-02-18 07:32:56 +01:00
Iliya Katushenock
c2b56ca468 Cleanup: prevent unnecessary copy of VArray
Pull Request: https://projects.blender.org/blender/blender/pulls/118349
2024-02-17 21:44:21 +01:00
Jacques Lucke
1e20f06c21 BLI: add utility to simplify creating proper random access iterator
The difficulty of implementing this iterator is that it requires lots of operator
overloads which are usually very simple to implement, but result in a lot of code.
The goal of this patch is to abstract the common parts so that it becomes easier
to implement random accessor iterators. Many algorithms can work more
efficiently with random access iterators than with other iterator types.

Also see https://en.cppreference.com/w/cpp/iterator/random_access_iterator

Pull Request: https://projects.blender.org/blender/blender/pulls/118113
2024-02-17 20:59:45 +01:00
Dalai Felinto
c9d506ba18 Extensions: Rename experimental feature name, description and task
New name: Extensions

Now that we are gettting closer to a launch I need to refer to this
feature in the documentation. As such it was time to bring it up to
date.

I'm also pointing the experimental feature to the task where the Alpha
launch is being coordinated (#117286). Once that task is all ticked we
will likely be ready to go out of experimental.
2024-02-17 15:50:16 +01:00
Germano Cavalcante
a0d453ccad Merge branch 'blender-v4.1-release' 2024-02-17 10:38:46 -03:00
Germano Cavalcante
dd1c12e4d0 Fix: 'V3D_SNAPCURSOR_OCCLUSION_ALWAYS_TRUE' flag not working
The name `use_occlusion_test` was misleading and led to errors.

If this variable is false, objects will be considered to always be
occluders.

Not a serious problem, since the flag is not being used.
2024-02-17 10:17:38 -03:00
Germano Cavalcante
286b5a1c34 Fix: Snap Cursor API not returning index
Not a serious problem as nowhere currently requires this index.
2024-02-17 10:17:27 -03:00
Pratik Borhade
daedb427c5 Merge branch 'blender-v4.1-release' 2024-02-17 11:38:33 +05:30
Pratik Borhade
1e81a353ad Cleanup: Wrong return value
`drop_target_tooltip` return type was changed to std::string in
7ca4dcac5a

Pull Request: https://projects.blender.org/blender/blender/pulls/118361
2024-02-17 07:04:38 +01:00
Clément Foucault
8b6d145a6b Fix: Metal: Shader compilation logging with compute shader
It was missing the line directive treatment the
fragment and vertex shader had.
2024-02-16 22:52:59 +01:00
Hans Goudey
c4bdfba15d Cleanup: Sort geomery node static definitions 2024-02-16 14:43:36 -05:00
Iliya Katueshenock
1dfd94a8d3 Cleanup: EEVEE: Fix compile warning
Pull Request: https://projects.blender.org/blender/blender/pulls/118322
2024-02-16 20:01:06 +01:00