When the user attempted to install a previously enabled add-on as an
extension after enabling online access and *without* viewing extensions,
installation would fail.
Resolve by adding a check that the remote repository data is available,
adding a button to refresh remote repositories if it's not.
During descriptor set update several internal buffers where reallocated
over and over. As descriptor set updates are done very often (1000s
times per frame) some performance could be gained by keeping the
previous allocated buffers around.
Pull Request: https://projects.blender.org/blender/blender/pulls/124877
The cache invalidation worked on basis of timeline frame instead of
frame index, which caused, that these images were outside of range, that
was considered to be changed, after strip was moved.
In this case the issue happened only with effect strips. This was not
an issue before, mainly because raw images for these strips were not
stored. For other strip types, raw image does not usually change.
This seems to be "caused" by f4f708a54f .
Pull Request: https://projects.blender.org/blender/blender/pulls/124870
* enable OSL in `image_log_osl.blend`
* update `image_alpha_blend_osl.png`, which renders differently than
previous reference image, but did not fail the threshold
Pull Request: https://projects.blender.org/blender/blender/pulls/124871
When using particle hair the optional generated color buffer was bound
as a texture (texel buffer), however in Vulkan texel buffers aren't
textures but buffers.
This change will create a texture, that will pass the needed calls to
the source vertex buffer. Only particle hair does uses
`GPU_texture_create_from_vertbuf`. I would expect that we will phase
this out eventually when particle hair is removed.
This fixes crashes with scenes using particle hair where materials use color
or uv attributes.

Pull Request: https://projects.blender.org/blender/blender/pulls/124854
It would not execute the "Frame Selected" action if the viewport already
fully zoomed out on the y-axis. However we still need to center the
viewport around the selected strips x position.
Prevent doing layer collection resync during most of
`blo_read_file_internal` process. This is dangerous (since during
blendfile read there is no way to ensure that Main is in a fully valid
sate), and a useless costly process.
There is no reason to deal with layer collections resync in non-main
case, deletion code should never trigger it anyway.
This will avoid quite a lot of the non-main-thread calls to
`BKE_layer_collection_resync_forbid` (detected and 'fixed' in previous
commit).
This commit allows re-entrant calls to
`BKE_layer_collection_resync_forbid` and
`BKE_layer_collection_resync_allow`, such that higher-level code can
block layer collections updates while calling lower-level code that does
the same thing.
E.g. `BKE_id_delete` blocks and then re-allows such updates. However,
such code can also be called from other pieces of code that also need
to prevent these updates in their own, broader scope.
In addition, realized that this call had concurrency issues since BKE
code using it is called from non-main thread too (e.g. from depsgraph
evaluation).
So made the counter atomic to ensure all calls to
`BKE_layer_collection_resync_forbid` is matched by a call to
`BKE_layer_collection_resync_allow`. Also added a cap to max amount of
're-entrant' calls (has to be quite high, due to potential concurrent
calls too).
This is required to fix#124777.
File from #124777 (from 2.79.1) cause a temp bScreen to not be properly
tagged as such, which prevents its deletion when related window is
closed, and leaves a zero-user bScreen in Main.
While this should not happen, this does not seem trivial to track down,
and not an important enough issue to spend more time on it.
Also reported as #124857.
This commit fixes a issue where the Cycles "cast shadow" setting
versioning from Blender 4.1 to 4.2 wasn't working properly due to the
use of the wrong parameter name when grabbing the Blender 4.1 setting.
Pull Request: https://projects.blender.org/blender/blender/pulls/124834
Multi-layer image passes are missing after dragging and dropping an EXR
into the compositor editor. To fix this, we tag the new nodes as needing
an update due to changed ID.
Pull Request: https://projects.blender.org/blender/blender/pulls/124855
The Cryptomatte node makes the UI very slow in Image mode. That's
because the node updates its available Cryptomatte layers on every
redraw, which is a blocking operation that is not very fast.
To fix this, we only update the layers when engine layers change for
the Scene mode, and when image settings change for Image mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/124738
Cryptomatte layer initialization required the active scene to update the
image user frame, but the image user is already updated through other
mechanisms and is thus redundant to do at draw time, so we remove the
frame update call as well as the scene argument from the call chain. The
frame number of the image user is ignored at compositing time in any
case since it is set to the compositing scene frame.
This is needed for #124738.
Caused by 525293a95d
Crash due to attempt of double freeing. Fix is to make first and
last nullptr of list after freeing the memory. This avoids execution of
`folderlist_free` (`if(folderlist_clear_next())` is false)
Pull Request: https://projects.blender.org/blender/blender/pulls/124781
Part of #118145.
Change the "Pivot to Unmasked" and "Pivot to Mask Border" operations
to avoid the vertex iteration macro. The former also uses a proper
weighted average now, so mostly-masked vertices have less influence.
The whole operation is multithreaded now so I expect it's a bit faster,
but I didn't explicitly test that.
Pull Request: https://projects.blender.org/blender/blender/pulls/124743
While this is a rather fragile fix, the alternative also seems fragile.
We can instead check the operator name inside `push_begin_ex` to see if
the operator is transitioning into Sculpt Mode and initialize the
StepData.type to a custom "Mode Change" type instead of using "None"
Pull Request: https://projects.blender.org/blender/blender/pulls/124640
This commit adds SculptBoundaryPreview to reduce the scope of variables
that the SculptSession has access to when displaying the preview for
using the Boundary brush. Further changes in this area will be made once
more of the relevant flood_fill and boundary code is refactored.
In particular, the main algorithm does not need the edge position data.
Pull Request: https://projects.blender.org/blender/blender/pulls/124759