Back port [0] with minor updates in main. The wrapper script builds
one library at a time, using all available cores for each.
Without this, building libraries is slower and it's more
difficult to troubleshoot build errors.
[0]: 09498264f6
small clean-up pass on #112530 that resolves the following problems
- Missing python_windows.diff
- CONFIGURE_ENV_MSVC is new in 4.0 and didn't exist in 3.3 breaking
the python build
- Hash updates for USD and OIIO both had repo renames leading to a
change there
- OIIO was building with -DREQUIRED_DEPS=python and -DUSE_PYTHON=OFF
- Updates in creators cmake for the ffmpeg 6.0 dll names.
This commit fixes two different issues in
`BLO_update_defaults_startup_blend`:
* No check were done whether a given 'paint mode' tool settings actually
exist or not before trying to 'update' it, leading to hard crash when
some did not.
* Only the first Scene in loaded 'startup' Main would be processed -
nothing prevents a `startup.blend` file to have more than one scene!
Pull Request: https://projects.blender.org/blender/blender/pulls/113597
The default theme of blender has no `icon_border_intensity` and
therefore only loads the regular icons. When newly loaded theme has the
`icon_border_intensity` set it needs to reload the icon textures so both
icon maps would be loaded.
Without reloading the icons a GPU texture is missing and would crash
blender at first use. Starting Blender the second time it would load the
correct icons and would work as expected.
Pull Request: https://projects.blender.org/blender/blender/pulls/113016
When clearing the parent of an object that has keys,
the object position jumped back to world space immediately.
This didn't allow for keying the current position
and was inconsistent with setting a parent.
This PR fixes it by not instantly re-evaluating the animation.
Pull Request: https://projects.blender.org/blender/blender/pulls/112670
Notifiers was sent to outliner for redraw but outliner was out of sync
due to missing flag which is required for syncing.
This will correctly set the select/active outliner element flags with
the help of Base in `outliner_select_sync_from_object`. So correct active
tree element will be highlighted in `outliner_draw_highlights`
Pull Request: https://projects.blender.org/blender/blender/pulls/112370
And ignore a few CVEs that do not affect Blender.
ffmpeg 6.0.0
libxml2 2.10.4
openssl 3.1.2
python 3.10.13 (with changes to use our own ssl)
sndfile 1.2.2
tiff 4.5.1
webp 1.3.2
Ref #98555
Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/112530
When using Xcode version 14.3 on Apple Silicon hardware a number of
regression tests fails. This change fixes this problem.
The root cause comes to the floating point contraction. It was already
disabled for GCC on Linux, but not for Clang on neither of Linux or
macOS.
Also corrected the comment about Clang default, as it as set to on
somewhere in 2021.
Cherry-pick of a pull-request #107136
Pull Request: https://projects.blender.org/blender/blender/pulls/112578
With such small proxy sizes (combined with a small blur radius), the
kernels `halfWidth` can get zero, which leads to a memory allocation of
same zero size and writing to that memory leads to overflow/crashes/can
only go downhill from there.
Now early out in such cases [which leads to
slightly different output -- well if the "buggy" output survives and
does not crash that is].
(alternatively we could just prevent the overflow and still let do
`RVBlurBitmap2_float` do stuff that it really shouldnt imo, see first version of the PR)
Pull Request: https://projects.blender.org/blender/blender/pulls/111660
Specifying the correct operator context (`INVOKE_REGION_CHANNELS` in
this case) is mandatory, otherwise looking up the shortcut in
`wm_keymap_item_find_props` will fetch the wrong region
(`RGN_TYPE_WINDOW` not `RGN_TYPE_CHANNELS`) and thus wont find the keymap
item in that region keymap.
This was already done for the other menus, not for the context menu
though.
Pull Request: https://projects.blender.org/blender/blender/pulls/111376
Since menus are created flipped (from event handling point of view), the
root layout block needs to be flagged `UI_BLOCK_IS_FLIP`.
This was missing for a couple of `uiMenuCreateFunc`, namely:
- creating worspaces menu
- modifiers extra ops
- constraints extra ops
- GP modifiers extra ops
- GP Shader FX extra ops
Same fix as f51de2246c.
Not crtitcal, but could go into LTS I guess.
Pull Request: https://projects.blender.org/blender/blender/pulls/111341
Fixes NaN in Vector Displacement node caused by the normalization of
0, 0, 0 vectors.
This fixes both visual rendering issues and an "illegal address" error
on the GPU. The "illegal address" error came from the Light Tree
Sampling code not handling the NaN normals well, leading to weird code
paths being taken, eventually leading to a kernel_assert and a
user facing illegal address error.
In Blender 3.5+, this fixes two errors (visual artifacts and errors on
the GPU when using the light tree). In Blender 3.3 it only fixes one
(visual artifacts) because 3.3 doesn't have the light tree. The commit
message should be adjusted to represent that
Pull Request: https://projects.blender.org/blender/blender/pulls/111294
Reason was a difference in poll functions (dropbox poll function vs.
operator poll function).
So the dropbox was actually recognized as being active (see
`dropbox_active`) but then when actually dropping, the corresponding
operator wasnt called (but instead another operator was).
In detail, the way `wm_handlers_do_intern` works, it checks all
dropboxes poll function if one succeeds it calls the dropbox operator.
But if that operators poll function fails, `wm_handlers_do_intern`
happily continues and "ends" the drop operations in a way we dont
actually get to the "real" dropbox & operator that was also recognized
as being active.
In the case of the report:
- dropbox for `UI_OT_drop_name` is active
- dropbox poll for `NODE_OT_add_object` (`node_object_drop_poll`)
succeeds though
- operator poll for `NODE_OT_add_object` (`node_add_object_poll`) fails
(it checks `UI_but_active_drop_name` already)
So in order to make this work, add the check for `UI_but_active_drop_name` to two dropbox poll
functions (and remove from the operator polls).
Probably good for LTS as well.
Pull Request: https://projects.blender.org/blender/blender/pulls/110929
This commit fixes the RNA path reported from the struct owned by the
Scene.display data. Paths generated for the View3D space remain
completely broken (but whole 'space' paths are broken anyway).
When choosing the new 'overwrite' option when trying to save a blendfile
from a newer version of Blender, it would cause invalid (use-after-free)
memory access.
Issue caused by the main commit (a1d7ec7139) of the new blendfile
compatibility handling. No idea how it was not detected earlier.
Many thanks to @weizhen for spotting the issue and doing some initial
investigation on it.
Somehow the backport for 3.3 diverged from commits to main (4.0), and
the case were the DNA block would go missing would not anymore prevent
handling of further `is_minversion_older_than_blender` test in
`blo_decode_and_check`.
The wrong RNA pointers were passed (passing the root ones instead of the
ones actually owning the rna-path-resolved property).
This was likely a harmless mistake, since it only affected RNA
collections of IDs, afaik we currently don't have many (if any) of these
in non-ID RNA structures. The children collections and objects in a
Collection data-block RNA structure e.g. were not affected.
But the potential consequence of that bug would have been missing
automatic detection of some needed liboverride resyncs.
In case a blend file opening fails (in the context of library content
listing, e.g. for linking or appending), the File Browser would just
show an emtpy window.
With the new comnpatibility policy, this will now become a fairly common
situation, which requires giving proper explanations to the user.
This commit re-uses and extends the system used to display errors
messages from the Asset browser.
Part of #109151 (PR !110109).
Pull Request: https://projects.blender.org/blender/blender/pulls/110574
This implements the main aspects of changes to blendfile compatibility
as designed in #109151:
* Blender files which file minversion is newer than current Blender
executable won't be loaded at all.
* Blender files which file version is newer than current Blender will
triger systematic warning to user:
* In the status info bar (lower right corner in default UI).
* When attempting to save (overwrite) them.
This means that the file minversion becomes a hard limit, and not a
soft, warning-only as it used to be. Further more, forward compatibility
warning is now systematic (instead of depending on file minversion),
and more visible for users.
See also https://wiki.blender.org/wiki/Process/Compatibility_Handling
for details over the new policy.
Technically:
* Opening any file with a minversion newer than current Blender file one
now triggers an early abort, with an error message reported to the user.
This is handled by a new utils called from `blo_decode_and_check`.
* Any file newer than current Blender version sets a new
`has_forward_compatibility_issues` flag in Main struct at read time.
* Status bar info area is turned into a template, which uses this flag
to display special warning UI and tooltip when set.
* A new confirmation popup appears when user tries to save (overwrite)
such a 'newer' blendfile, stating potential loos of data, and
proposing by default to 'save as' instead.
* The 'quit unsaved' popup has also been updated to 'save as' instead of
'save' when the edited file is has potential forward compitibility
issues.
NOTE: For 3.3LTS, an additional hot-fix is applied on read file
minversion, to ensure that all files from 3.6LTS releases (and
versions in-between 3.3 and 3.6) remain readable in Blender 3.3LTS
after this commit.
Part of #109151 (PR !110109).
The existing one (3.0 (sub 43)) is already low enough, and no older
version of Blender will get the new compatibility handling back-ported
anyway.
This commit only updates the comment regarding file minversion.
Part of #109151 (PR !110109).
Since in rare cases there may be needs to expose file subversion here,
the following format was defined:
<major>.<minor> (sub <subversion>)
Part of #109151 (PR !110109).
Even if a text datablock was "used" by in the Text Editor, it would be
lost after save/reload if no fake user is set.
This is not in line with other datablocks if they are used by an editor
(e.g. images, clips, masks etc.).
Now handle this with `IDWALK_CB_USER_ONE` (instead of `IDWALK_CB_NOP`)
in `id_refcount_recompute_callback` >
`BKE_screen_foreach_id_screen_area` which re-ensures a user is set.
(Bit on shaky ground here, but this seems like this is how this is
handled for other editors "consuming" a datablock).
Pull Request: https://projects.blender.org/blender/blender/pulls/110344
Clipping should use `clipr`instead of `curr`.
`clipr` is for value clipping while `curr` is for curve view clipping,
misuse of these two can lead to output value being clipped by
viewing range. Now fixed.
Pull Request: https://projects.blender.org/blender/blender/pulls/106164
Caused by 7a943428de
Looking at history, e.g. 575ade22d4 or prior, it seems the
"fallthrough" [related compiler warning was removed in 7a943428de] was
actually intended in the case of `VPAINT_TOOL_AVERAGE`.
So first, the average color is calculated and after that regular drawing
should happen with that color.
Now make this more clear by calling both `calculate_average_color` as
well as `vpaint_do_draw` before breaking.
Pull Request: https://projects.blender.org/blender/blender/pulls/109971
Selecting a rigid body world collection is supposed to set up rigid
bodies for all of its mesh members (if they are not rigid bodies
already), expected result would be just the same as if `Object` > `Rigid
Body` > `Add ...` was used.
Doing it via just the world collection had the following issues though:
- calculating mass would crash on such a freshly created rigid body
objects (be1b32e4e4 falsely assumed `ob->rigidbody_object` is always
present on evaluated objects -- without tagging for depsgraph updates
this is not the case though)
- rigid body simulation would not work even on these freshly created
rigid body objects
Now tag bmain relations and object transforms for update to make both of
these work (following code in `BKE_rigidbody_add_object` that is used
when adding these through `Object` > `Rigid Body` > `Add ...`)
Pull Request: https://projects.blender.org/blender/blender/pulls/109961
At a glance, it can be hard to see if a Shape Key has been muted or not.
This change greys out all the UI elements, instead of just the current value number.
All the functionality still works the same, purely a visual change.
Pull Request: https://projects.blender.org/blender/blender/pulls/109857
Try loading ROCm 5.x libraries specifically, as the .so without version
is only part of the development package.
Thanks to Lee Ringham investigating and proposing this solution.