Commit Graph

131604 Commits

Author SHA1 Message Date
Sybren A. Stüvel 2e2b5dcd52 Anim: Outliner, show bone collections in their hierarchy
The Outliner now shows an Armature's bone collections as a hierarchy
instead of a flat list.
2024-01-08 12:31:20 +01:00
Sergey Sharybin fed446ce8a Fix #116220: Context property driver does not update during playback
This commit fixes missing updates during playback when `frame_current`
property of the active scene is used.

Applied the same check for the depends-on-time as for explicitly
specified scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/116886
2024-01-08 12:30:33 +01:00
Bastien Montagne 4d56b696ec I18N: Updated UI translations from git/weblate repo (bd340604b). 2024-01-08 12:19:45 +01:00
Julian Eisel d71f1ce95f Tools: Update weekly report script to use Gitea Markdown syntax
Update for the changed way to host weekly reports, they should now live
on projects.blender.org using Gitea Markdown syntax. See
https://devtalk.blender.org/t/weekly-reports-2024-new-structure/32725.
2024-01-08 12:09:49 +01:00
Bastien Montagne d13edee3e0 UI/Code: Fix typos and other UI messages issues. 2024-01-08 12:03:35 +01:00
Pratik Borhade dddf1ba32a GPv3: Crash when drawing in locked or hidden layer
Cancel drawing operation when layer is locked/hidden (similar to GPv2).
Otherwise `get_editable_drawing_at` returns nullptr which results in crash
and assert hit.

Pull Request: https://projects.blender.org/blender/blender/pulls/116779
2024-01-08 11:18:55 +01:00
Clément Foucault 4dad262dbe Fix: EEVEE-Next: Implicit type conversions
This was breaking compilation on Mesa drivers.
2024-01-08 22:12:01 +13:00
Clément Foucault 98e465109b EEVEE-Next: Replace lighting tiles by direct stencil setup
This avoid the cost of creating the tiles themselves which uses a lot
texture write. This was a bottleneck on Apple GPUs.

Also the per pixel classification allows us to remove certain checks in
the deferred lighting shader making it faster.

### TODO
- [x] Add gl_FragStencilRefARB support on other backend
- [x] Add workaround for when gl_FragStencilRefARB isnt supported

Pull Request: https://projects.blender.org/blender/blender/pulls/116704
2024-01-08 07:35:05 +01:00
Campbell Barton 8c2222b8d9 Fix #116687: Crash on reload scripts and dropping blend files
Reloading scripts lead to wmDropBox::ot pointing to freed operators.
Resolve by following the logic of key-map operator initialization
to ensure changes to registered operator triggers a refresh of the
operator pointer & properties.
2024-01-08 15:24:08 +11:00
Campbell Barton 7fa88241a8 WM: ensure operator context isn't used for drop operator properties
Since wmDropBox are setup with the editors and aren't re-initialized
when the file is reloaded for e.g. it doesn't make sense to use the
current context when setting up their properties.

Note that this doesn't fix any user visible bugs and is more a issue of
correctness.
2024-01-08 14:02:32 +11:00
Campbell Barton 8fadc1ca7f Cleanup: early return & avoid duplicate warnings in WM_dropbox_add 2024-01-08 13:58:46 +11:00
Campbell Barton 5dd91346e1 Cleanup: remove unused imports 2024-01-08 11:40:53 +11:00
Campbell Barton 375c217ea0 Cleanup: apply clang-tidy modernize-deprecated-headers 2024-01-08 11:32:49 +11:00
Campbell Barton 2783af45ee Cleanup: trailing newlines 2024-01-08 11:31:43 +11:00
Campbell Barton 40444b35d1 Cleanup: various non-functional changes for C++ 2024-01-08 11:31:43 +11:00
Campbell Barton 617f7b76df Cleanup: comment block formatting 2024-01-08 11:31:43 +11:00
Campbell Barton 0ba83fde1f Cleanup: spelling in comments 2024-01-08 11:24:37 +11:00
Jesse Yurkovich 268f93d763 Fix: memory leak during Property Search
An early return prevented the property item array from being free'd.

Pull Request: https://projects.blender.org/blender/blender/pulls/116860
2024-01-07 20:37:30 +01:00
Jacques Lucke 797013b7f4 Fix #116866: crash when adding volume
This removed line is not necessary anymore since
3b3b1bb1a7.

That's because the run-time data is not written to the
.blend file anymore at all.
2024-01-07 13:49:02 +01:00
Jacques Lucke e983e47616 Cleanup: remove unused simplify level from volume runtime data 2024-01-07 11:03:18 +01:00
Clément Foucault 28356d1f89 Metal: Add debug names to compute pipelines 2024-01-07 22:46:44 +13:00
Thomas Barlow 8b8ca00270 Fix #107634: selecting random hair curves ignores operator settings
There was a second randomization loop after the first loop which ignored
the operator settings. This may have been accidentally left in from when
the operator was being developed.

Removing this second loop makes the operator work as expected.

Pull Request: https://projects.blender.org/blender/blender/pulls/116835
2024-01-07 10:22:25 +01:00
Hans Goudey 4b427e1b57 Fix #116843: Multires sculpting crash in undo step creation
The number of multires vertices was wrong after 31435c85c8ee873211cd.
2024-01-06 23:58:14 -05:00
Pratik Borhade 26a629a696 GPv3: Crash deleting end points
Crash is observed when `dst_curve` nums are same as original curve.
`type_count` array in runtime struct of `dst_curve` is not updated after copying
curve attributes hence the crash/assert. In other case (when source and
dst curve_nums are different), type_count is updated when dst.finish()
is called in `gather_attributes()`

Pull Request: https://projects.blender.org/blender/blender/pulls/116839
2024-01-07 05:37:31 +01:00
Clément Foucault b8b9ed075b Fix: GPU: Crash caused by buffer overflow of name buffer
This was caused by the name buffer not being sized
accordingly. Now counts the specialization constants.
2024-01-07 16:53:56 +13:00
Clément Foucault 8032f85f61 Metal: Allow pretty log for compute shader 2024-01-07 16:48:54 +13:00
Clément Foucault 8dd08d81f4 Fix: GPU: Fix Shader builder
The recent header changes moved the header
containing this function to C++.
2024-01-07 16:48:29 +13:00
Clément Foucault f2b3403145 EEVEE-Next: Gbuffer Read optimizations
This modify most shader using the GBuffer to use the
`ClosureUndetermined`. This in turn reduces the amount
of duplicated data in the `GBufferReader` structure.

The most important part is the usage of fixed array
indices to access the `GBufferReader.closures[]`.
This avoid the struct to be moved from local register
to device memory and remove a huge performance penalty.

Pull Request: https://projects.blender.org/blender/blender/pulls/116772
2024-01-07 04:46:25 +01:00
Clément Foucault 6f51d7332b EEVEE-Next: Refactor Raytracing to support arbitrary closure
This refactors the whole pipeline to be closure agnostic.

This mean we can have only one raytracing step that covers
any closure type. In practice, it means that there is
3 objects having 1 closure each with a different closure
types each, we can run the raytracing once.

This create a huge overhead during the tile classification
stage. This is fixed by #116772 and will be merged separately.

Pull Request: https://projects.blender.org/blender/blender/pulls/116670
2024-01-07 02:52:04 +01:00
Hans Goudey 3eee758c2b Cleanup: Fix build warnings and errors after recent commits
- Add missing include for `std::function` without TBB
- Add include for math define reported in chat (couldn't reproduce that)
2024-01-06 09:06:20 -05:00
Hans Goudey e90d844dd7 Cleanup: Grammar in comments
"it's own" -> "its own" again. Start new sentences properly.
2024-01-06 09:02:56 -05:00
Hans Goudey 5179e66756 Cleanup: Move array store files to C++ 2024-01-06 09:02:55 -05:00
Jacques Lucke 3b3b1bb1a7 Volume: move volume runtime data to separate allocation
The same is done for other geometry types. This allows us to use C++ types in
the run-time data more easily and avoids dumping runtime data into .blend files.

Pull Request: https://projects.blender.org/blender/blender/pulls/116840
2024-01-06 13:26:59 +01:00
Guillermo Venegas 5b104fb3fa Cleanup: Silence warnings from 1254fee589
Introduced in 1254fee589

Also remove translation from CLOG statements.

Pull Request: https://projects.blender.org/blender/blender/pulls/116836
2024-01-06 06:53:42 +01:00
Jesse Yurkovich 75c71b78ba Cleanup: Use new OIIO valid_file API
Now that OIIO has proper `valid_file` APIs for the formats we care
about, and which take MemReaders, we can remove the code added to TIFF,
PSD, and PNG as part of 5cc8fea7e9.

Additionally, this change eliminates the recent console spew on startup
where the TIFF loader is asked to load non-TIFF files (it is based on
the ordering of the filetype array)[1]. We now make a `valid_file` check
during open to address this.

[1] `: Not a TIFF or MDI file, bad magic number 12150 (0x2f76).`

Pull Request: https://projects.blender.org/blender/blender/pulls/116826
2024-01-06 05:50:04 +01:00
Guillermo Venegas 1254fee589 IO: Add support for Drag and Drop to FileHandlers
Added support to Drag and Drop to file handlers, part of #111242.

If file handlers are registered with an import operator they can now be
invoked with drag and drop path data.

Import operators must either declare a `filepath` StringProperty or both
a `directory` StringProperty and a `files` CollectionProperty depending
on if they support single or multiple files respectively.

Multiple FileHandlers could be valid for handling a dropped path. When
this happens a menu is shown so the user can choose which exact handler
to use for the file.

Pull Request: https://projects.blender.org/blender/blender/pulls/116047
2024-01-06 03:51:45 +01:00
Hans Goudey 09063a3632 Cleanup: Remove some indirect includes in common headers
The idea is to avoid mistakenly depending on indirect includes,
and avoid compile time overhead from unnecessary header parsing.

Pull Request: https://projects.blender.org/blender/blender/pulls/116664
2024-01-06 01:47:39 +01:00
Jesse Yurkovich ae02096ad6 Cleanup: Warning fix
Fix warning introduced in b0db5363fa

Pull Request: https://projects.blender.org/blender/blender/pulls/116828
2024-01-05 22:44:46 +01:00
Aras Pranckevicius 423e54b000 VSE: Scopes improvements
- Improve the look of them, so they feel less like from year
  1998 (more details and images in the PR).
- Some of the scopes got slightly faster in the process, others
  stayed the same performance (details below).
- Remove VSE Scopes related data from SpaceSeq DNA, move it into
  runtime instead.
2024-01-05 22:03:03 +01:00
Bastien Montagne 3e744db9fe Tests: Refactor handling of environment variables when invoking tests.
The current handling had a fairly bad issue: multiple calls to
`set_tests_properties` to set envvars of a same test.

This does not work, only the last call is effective, all previous
ones have absolutely no effect.

This has been addressed by moving all 'set envvar for test' logic into a
single CMake function, `blender_test_set_envvars`.

This function takes optional extra envvars if needed, and define a set
of default ones (currently, `PATH` from `PLATFORM_ENV_INSTALL` if
defined, and the 'nuke' `exitcode=0` `LSAN_OPTIONS` if relevant).

NOTE: The way `blender_test_set_envvars` handles extra envvars passed to
it as parameter is fairly basic and unsafe, in that there is no check
whether a same envvar is defined more than once. Think for now this is
an acceptable limitation.

NOTE: Although this commit _should_ be a non-functional change one, the
unification of the handling of all envvars makes it hard to ensure there is no
side effects.
The `PATH` envvar e.g. was set to either `PLATFORM_ENV_INSTALL` if defined,
or a copy of that variable's definition, but only in Windows case. So technically,
the behavior for this envvar is changed.
2024-01-05 21:13:54 +01:00
Jesse Yurkovich b0db5363fa Cleanup: Use blender C++ containers for USD
Use Vector, Map, and Set as appropriate.

The remaining uses of the std:: types come from USD APIs.

Pull Request: https://projects.blender.org/blender/blender/pulls/116801
2024-01-05 20:35:55 +01:00
Hans Goudey 0a8129e0cf Cleanup: Make format 2024-01-05 13:59:07 -05:00
Hans Goudey 549a606383 Cleanup: Improve face corner variable name, simplify iteration 2024-01-05 13:26:22 -05:00
Hans Goudey ecc3656f72 Cleanup: Move remaining draw geometry extraction code to C++ namespace
Overall the transition to C++ in the draw module is awkwardly half
complete, but moving more code to a C++ namespace makes cleaning up
this code in other ways much easier, and the next C++ cleanup steps
are clear anyway.
2024-01-05 13:26:22 -05:00
Hans Goudey 5b55c1dc10 Cleanup: Move five draw headers to C++ 2024-01-05 13:26:22 -05:00
Bastien Montagne 95b30b3516 Build: Ninja: Move 'Unity builds' to heavy pooljobs.
This commit adds a new helper to define expected properties when a
target needs to use the unity build feature.

That new helper does what was already done for existing cases, and in
addition add the target to the Ninja 'heavy' pooljobs if relevant.

Pull Request: https://projects.blender.org/blender/blender/pulls/116791
2024-01-05 18:35:48 +01:00
Bastien Montagne fd0ca109b1 Build: Ninja: Enable pooljobs by default.
Using pooljobs with default settings should never have any significant impact
on the build speed, and it makes building full debug with sanitizer builds
safe on (almost) all machines.

Quick test showed no significant difference in Release build time with or
without Ninja pooljobs (on linux, with a 16 cores, 64GBb machine).
2024-01-05 17:09:56 +01:00
Sybren A. Stüvel 66cdc112fc Anim: Bone Collections, replace `.move_to_parent()` with `.child_number`
Instead of moving bone collections by absolute index, they can now be
moved by manipulating `.child_number`. This is the relative index of the
bone collection within the list of its siblings.

This replaces the much more cumbersome `collections.move_to_parent()`
function. Since that function is now no longer necessary (it's been
replaced by assignment to `.parent` and `.child_number`), it's removed
from RNA. Note that this function was never part of even a beta build of
Blender.
2024-01-05 16:54:46 +01:00
Sybren A. Stüvel 6444eeb14c Anim: test, improve bone collection name tests
The `expect_bcolls()` function now no longer calls the `EXPECT_EQ` macro,
but returns a `testing::AssertionResult` instead. The function call does
need to be wrapped in an `EXPECT_TRUE()` call now, but that also means that
any failure message points directly to the call site.
2024-01-05 16:54:46 +01:00
Omar Emara 9f076edf5d Fix: Filtering does not work in GPU compositor
Texture filtering does not work in the GPU compositor. That's because
filtering is set after textures are bound. It works in the viewport
compositor because the textures come pre filtered from the DRW texture
pool.
2024-01-05 17:38:10 +02:00