The fix in this case is to properly use the stored builtin attribute defaults
when capturing the field on the mesh. I extracted that to a function so
the code would read better with early returns.
Pull Request: https://projects.blender.org/blender/blender/pulls/147646
The geometry was copied later on when it was modified because there was still a
reference to it in the modifier. Since this uses implicit sharing, if there is
more than one reference, the data has to be copied before it can be modified.
Pull Request: https://projects.blender.org/blender/blender/pulls/147644
When rendering in the main window and changing the active scene,
RE_FreeUnusedGPUResources can free the resources of an active Render,
since no wmWindow references the Scene anymore.
Active Render instances always reference their Scene, so we check those
directly instead.
Pull Request: https://projects.blender.org/blender/blender/pulls/147553
Support loops at the GLSL level instead of relying on
NOD_shader_nodes_inline.
This improves compilation and runtime performance, avoids causing
recompilations on iteration count changes, and allows supporting
dynamic iteration counts.
(EEVEE-only)
Pull Request: https://projects.blender.org/blender/blender/pulls/145269
Make the logic in the image editor drawing robust against configuration
when the image editor has flag "show render result from sequencer scene"
and the sequencer scene being nullptr.
It could happen when user configures image editor is such way and then
removes the sequencer scene.
Or, it could also happen when the image editor has the flag set, which
was exactly the cause of the originally reported issue. So this change
also clears the flag which was expected to be cleared. It could affect
some current files saved in the past day, but since the render operator
sets it based on the way the scene is rendered it is not too bad.
Caused by 76c03744a8
Pull Request: https://projects.blender.org/blender/blender/pulls/147630
Previously items in the "Group" list would usually show up first because
their menu path is shorter. Now, adjust their search weight so they show
up lower than the corresponding asset. That this is just a heuristic,
because we don't have a good way to directly deduplicate groups
that are just packed assets in the add menu currently.
Pull Request: https://projects.blender.org/blender/blender/pulls/147629
This avoid putting too much work in only one thread for building very long surfel lists.
Instead of insertion sort, we use a prefix sum where all surfel scan the whole ray
list to know their position. Only the coplanar surfel patching is dispatched as
one thread per list.
This is currently a bruteforce approach and could be optimized further.
On top of this, we add a heuristic to scale the amount of work from the baking
depending on the scene complexity. Complex scene will have more overhead but
will remain responsive during baking, while simple scene will be faster to bake.
This avoids hitting TDR in most cases.
The update refresh is now limited to 1 per second to avoid the readback overhead.
Fix#142988
Pull Request: https://projects.blender.org/blender/blender/pulls/146848
This is the 'safe and simple' aspect of the fix: prevent `node_warnings`
RNA property of the Node modifier to be overridable.
Its access is 100% not thread safe currently - and it makes no sense to
have this reuntime data overridable anyway!
Another side of the issue will be fixed in a separate commit, for main
only, as it affects quite deeply the behavior of viewlayer resync, and
fixes some unrelated logical issues in the current code.
The UI property was changed 7b97bc48d8
to a negative boolean but the boolean conversion inside EEVEE was
not inverted.
This mean that since 4.2, the default behavior for Lightprobe
volume has been broken / inverted.
To make an existing scene bake the same as before, all material
needs to have their `BackFace Culling > Light Probe Volume` options
inverted. This is done automatically through the versioning code.
The only test cases broken are the ones using default materials which
do not have their property turned off.
Release Notes should contains the compatibility breakage.
Pull Request: https://projects.blender.org/blender/blender/pulls/147218
This new version of the graphics compiler improves performance
for the majority of supported Intel devices and adds support
for upcoming Intel hardware. Such an upgrade also requires
an increase in the minimal supported driver version on Windows,
which is why these changes are combined together with
the ocloc upgrade.
Previously set minimal version 101.6557 was increased to 101.8132.
Pull Request: https://projects.blender.org/blender/blender/pulls/147460
Merge changes from https://projects.blender.org/blender/blender-assets/pulls/34
- Handle <1 Substeps in Displace Geometry node.
- Move Substeps down in Displace Geometry node.
- Basic node-tree cleanup (merging input nodes, removing WIP comments, etc.).
- Change Surface Offset subtype to be Distance.
- Enable `As Instance` for object scattering to allow other object types like lights and cameras.
- Use hash for instance randomization to allow for more than 100 unique instances.
- Fixblender/blender#147464 by handling missing radius attribute.
Pull Request: https://projects.blender.org/blender/blender/pulls/147607
The Cryptomatte node is not supported in VSE strip modifiers because we
previously limited it to root node trees in scene compositing. This
limitation can be lifted however if the user is using the image mode, so
we remove the poll method and instead give warning when appropriate
based on the mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/147601
With #146102 the selection state of pose bones was moved to
the pose bone itself and syncing code was introduced that
ensures the selection state between pose- and edit mode matches.
While the syncing happens via the `Bone` struct, the flag is
always overridden from either the `EditBone` or the `bPoseChannel`.
Since the selection state of the `Bone` is not used for operations anymore
there is no point in keeping it.
In a way this doesn't break backwards compatibility more than
it already was. It's just more visible now because it will actually error.
Pull Request: https://projects.blender.org/blender/blender/pulls/147597
Fix done in 7805a4bfe1 introduced another crash - null dereference when
accessing `strip->scene`.
Also the mentioned fix was not quite correct, because it used incorrect
scene and timeline frame to get rendered strips.
Pull Request: https://projects.blender.org/blender/blender/pulls/147595
Add a new section to the `Context` page that includes an explanation
on how to invoke "on demand" logging for context member access.
Design task: #144746
Logging added in: !144810
Ref !146862
Replace per UV map selection with a single UV selection for all UV's.
This uses the same data as UV sync select, meaning that it's no longer
possible to keep a different selection when sync-select is disabled.
There is a minor improvement to functionality - previously not possible
to de-select a single face surrounding by selected faces.
Now this is possible because true face selection is supported.
The selection from the active UV-map is converted to use the shared
selection data.
Ref !147523
Co-authored-by: Hans Goudey <hans@blender.org>
Since recent UV selection changes (!138197), the meshes UV selection
is closely tied to the scenes selection options.
Track these settings with edit-mesh undo, to prevent undoing into a
state where the selection doesn't match the previous state.
Ref !147591
Check if 3D render would be done by recursing also into sequencer
timeline used by scene strips.
This PR removes check if the scene strip is cached. This was used to
allow rendering from disk cache, but it was removed.
Pull Request: https://projects.blender.org/blender/blender/pulls/147511
The new colorful edge icons are considered a bit too bright and
distracting in the menus. This PR just tones them down a bit by
changing the layer opacities.
Pull Request: https://projects.blender.org/blender/blender/pulls/147567
There were two issues conspiring to prevent most BKE_reports from
surfacing when loading a file from the command line.
The first is that the "print_level" was left initialized to only
RPT_ERROR which prevents this particular warning from being traced to
the console.
The second is that, in order for us to display reports in the
notification area, we need to give the reports to the window manager.
This is typically all wired up during normal operator execution, but not
when just starting up from the command line.
Pull Request: https://projects.blender.org/blender/blender/pulls/147251
Move the selection flag for pose bones, from the (edit)bone to the
pose bone.
Previously having multiple instances of armatures in pose mode at the
same time caused issues because selecting a pose bone on one armature
would automatically select it on all instances of it.
This is now fixed since the selection state is stored on the pose bone
(Object level) Doing so breaks API compatibility with 4.5 since the
RNA property on the Bone no longer affects the pose bone. Instead,
there is a new property on the pose bone for that.
Due to this change, some runtime flags for the transform system also
had to be moved to the pose bone. This is due to the fact that these
flags are used by the transform system to pass information between
functions. If we keep the flag at the bone level, this wouldn't work
with armature instances. See `bPoseChannelRuntimeFlag`
Fixes#117892
Pull Request: https://projects.blender.org/blender/blender/pulls/146102
The owner library could keep invalid references to removed archive
libraries after undo.
This should fix the immediate issues reported as #147236, #147095 and #147036.
There is still a known crash, although it is harder to reproduce reliably
from the UI, so it will be handled separately. It is tracked by #147317.
Similar to 9b5f23c7a3
This commit updates the remaining three non-trivial preset curve types:
* CURVE_PRESET_ROUND - approximating `sqrtf(2x - x^2)`
* CURVE_PRESET_ROOT - approximating `sqrtf(x)`
* CURVE_PRESET_SHARP - approximating x^2
Like in the above commit, this change only affects the defined presets,
but does not change any existing curves in any files.
Related to #145208
Pull Request: https://projects.blender.org/blender/blender/pulls/147012
This commit slightly shorten the new 3D cursor colored axis tips,
allowing for a larger part of the dark part of the axis to show,
improving readability. Discussed during the last UI meeting.
Pull Request: https://projects.blender.org/blender/blender/pulls/147563