The GPU backend selection menu, used to select the Vulkan backend, was
hidden behind the Developer Extras user interface option in 4.3 as
Vulkan wasn't ready for wide spread testing due to multiple
major issues.
The majority of the major issues have been fixed, and Vulkan should
safer to use.
To help encourage Vulkan testing throughout Blender 4.4's development,
this commit unhides the Vulkan backend from behind the developer extras
option.
Pull Request: https://projects.blender.org/blender/blender/pulls/131231
`Action.slots.new()` in the Python API previously took either an ID or nothing
as a parameter. In the former case it would create a slot with the appropriate
`id_root` and name for that ID. In the latter case it would create a default
slot with an unspecified `id_root` and default name.
This had several issues:
1. You couldn't create a slot with a specific `id_root` without already having
an ID of that type. In theory this isn't a problem, but in practice in larger
scripts/addons you don't necessarily have such an ID on hand at the call
site.
2. You couldn't directly create a slot with a desired name without an existing
ID with that name. This isn't so important, since you can always just set the
name afterwards. But it's a bit annoying.
3. Most other `new()` APIs in Blender *require* you to specify the name of the
item being created. So calling this with no parameters was violating that
norm.
4. Ideally, we want to eliminate unspecified `id_root`s, since they cause other
weirdness in the API such as slot identifiers changing upon slot assignment.
To resolve these issues, and just generally to make the API more
straightforward, this PR changes `slots.new()` to take two required parameters:
an ID type and a name. For example:
`slots.new(id_type='CAMERA', name="My Camera Data Slot")`.
This fully specifies everything needed for the slot identifier upon creation,
and doesn't require any outside data items to create a slot with the desired
type and name.
In the future if we decide we still want a `for_id`-style slot creation API, we
can reintroduce it as a separate function.
Ref: #130892
Pull Request: https://projects.blender.org/blender/blender/pulls/130970
Selectors for properties `space_object` and `space_subtarget` are
missing in Shrinkwrap constraint UI panel. This was because of the
difference between property names it didn't use `space_template` to
create those selectors. Since this is just a single special case,
a branch was added in `draw_shrinkwrap` in similar fashion to display
those selectors.
Pull Request: https://projects.blender.org/blender/blender/pulls/128347
The stroke simplify operator was implemented at the beginning of GPv3
migration, which means it lacked a few other modes. This fix reused the
same code as in the simplify modifier to provide more simplify modes
back to the modifier so it can work just like GPv2.
Resolves#130616.
Pull Request: https://projects.blender.org/blender/blender/pulls/131076
When in grease pencil drawing mode, user could pin material or vertex
color to a specific brush or fill tool, but when switching tools, the
display and the logic of how those pinned material/vertex color are used
is inconsistent, leading to confusion.
The main cause of such problem is that the new GPv3 brush/fill tool is
not respecting pinning status, on top of that, user interface display
logic is also wrong. This PR makes sure that:
- Brush/fill tools respect pinning status.
- Buttons on the tool bar always display correct pinning status.
- Brush cursor will use correct color based on pinning status.
Pull Request: https://projects.blender.org/blender/blender/pulls/130968
`AnimData`, NLA strips, and action constraints all have an
`action_slots` field in RNA. The purpose of this field is to list
the slots of the currently assigned action (if any) that are suitable
for the relevant ID.
However, this is not clear from the naming. In particular, given that
there is another field `action_slot` that represents the currently
assigned slot, the name `action_slots` could be easily misinterpreted
as a way to assign multiple slots at once, which is not possible.
To help clarify its actual purpose and meaning, this PR renames the
field to `action_suitable_slots`.
As a bonus, this also ends up decluttering the Python autocomplete when
looking for things related to `action_slot`.
Ref: #130892
Pull Request: https://projects.blender.org/blender/blender/pulls/130754
Error in [0] intended to remove the panels but kept the space type &
region type, causing a warning on startup and the panels to be added
to a "Misc" tab.
[0]: 46773766a3
In Blender 4.3 all the EEVEE Legacy compatibility Python API calls for
materials in were removed. All Python code that makes use of that API
need to be updated to make use of the new API.
This commit updates two built in Python scripts to use the new API
to avoid errors like the one reported in #130822
Candidate for 4.3.1 corrective release
Pull Request: https://projects.blender.org/blender/blender/pulls/130873
Compositor: UI: remove snapping to nodes.
Snapping nodes to other nodes behaves in a very unpredictable way, which makes most snapping options useless.
The patch removes the following:
- Snapping options `Node X`, `Node Y` and `Node XY`
- Menu `Snap Node Element`
- Menu `Snap Target`
New behavior:
- Activating `Snap` always acts as 'Snap to Grid'
Part of https://projects.blender.org/blender/blender/issues/128612
Pull Request: https://projects.blender.org/blender/blender/pulls/127667
The legacy option is turned off by default and will be removed
in the following weeks. It is only there to check for
regression for a short period of time. Afterward checking
for regression will require to use 4.3 as a reference.
Rel #102179
Pull Request: https://projects.blender.org/blender/blender/pulls/130683
The amount of settings in the text strip UI is quite large now; use collapsible (and closed by default) panels for outline/shadow/box options.
Images in PR.
Pull Request: https://projects.blender.org/blender/blender/pulls/130449
The background box for VSE text strips can have rounded corners now.
Actual rounded shape is a superellipse with 2.1 exponent; this is
very close to a circle section but feels a bit nicer with more
continuity between the flat part and the rounded part of the box.
At very large rounding radius this is not very fast; optimization
for that case will come in a separate commit.
Pull Request: https://projects.blender.org/blender/blender/pulls/129665
The `Lineart` and `Opacity` modifier appear at the bottom of their respective
menus instead of following alphabetical order. There doesn't seem to be any
conceivable reason to do this, and it is inconsistent with how the modifiers
were laid out in older Blender versions. Fixes the order of the modifiers.
Pull Request: https://projects.blender.org/blender/blender/pulls/130080
addon_utils.enable/disable now handle wheels so that the functions can
be used with extension add-ons.
A new argument `refresh_handled` supports scripts handing refresh
themselves which is needed to avoid refreshing many times in cases
when there are multiple calls to enable/disable.
This is mostly useful for internal operations.
Always use the Brush.color setting in the Draw mode side bar.
Technically the "Color" panel in the sidebar can draw in other modes,
but it's polling for explicit tools that limit it to the Draw mode
implicitly.
Use the appropriate brush or unified color in other GP modes based on
the unified paint settings flag.
Worth noting this was technically broken for a long time:
The default was that unified paint is disabled, so the GP panels would
use the brush color as expected. Enabling unified paint would then break
the colors, probably wasn't done very frequently since GP files
and e.g. mesh sculpting don't mix often. The default was changed in
#129127 to enable unified paint by default, which now breaks GP colors
by default.
Pull Request: https://projects.blender.org/blender/blender/pulls/129790
Earlier in the brush assets project, for mesh sculpting, grease pencil,
and curves sculpting, the toolbar brush icon used was changed to a
version with a green highlight. This commit reverts that change to use
the monochrome grey icon instead in each of these modes.
For Sculpt mode specifically, the Paint tool icon is kept as this green
version to differentiate the usages. In future releases, further changes
are planned for sculpting related brushes to better represent their
functionality.
---
### Sculpt Mode Toolbar

Pull Request: https://projects.blender.org/blender/blender/pulls/129934
The label was hidden explicitly when saving changes wouldn't be
possible. But this was done for an earlier design iteration where there
would be a button to save changes, not just a label as indicator. The
indicator should always be shown when applicable.
Part of overall #118493 task: video input/output support at 10 and 12
bit/component formats. (note: this is still LDR videos just at higher
precision; there's no HDR handling (yet)).
Movie reading/playback: when movie file pixel format has >8 bit
components, decode those into a floating point ImBuf result. Previously
all movies were decoded into 8 bit/channel ImBufs, so 10- and 12-bit
movie pixel colors were getting quantized.
Movie output: when ffmpeg video with suitable codec is selected,
there's a color depth setting under Encoding block. Currently that is:
- 10 bit option for H.264, H.265, AV1 (VP9 could do 10 bit in theory too,
but ffmpeg that is built in Blender does not have that compiled in)
- 12 bit option for H.265, AV1
When "lossless" is picked, then similar to how for regular 8-bit video
it switches from YUV 4:2:0 to 4:4:4, this also switches to 4:4:4
10- or 12-bit variant.
Pull Request: https://projects.blender.org/blender/blender/pulls/129298
When doing action baking, the option "Clear Constraints" mentions
it's doing visual keying while not actually using that option.
Just fixing the description, even though a better solution
would be to revisit the design of the options to see if they
even make sense in some configurations.
Pull Request: https://projects.blender.org/blender/blender/pulls/129052
Vulkan backend selection will be hidden behind developer extras. There
are some issues which would not be inviting for users to start testing.
- Some basic functionality are not working (object selection, depth
testing)
- NVIDIA UI artifacts are annoying and unsure where the error is.
- AMD artifacts
- Memory leaks
The backend will still be part of Blender 4.3 only hidden behind an
additional flag.
Ref: #129265, #129262, #127225, #128624, #127768, #127223
Pull Request: https://projects.blender.org/blender/blender/pulls/129799
Accidentally added in d70b10dcd4 and moved in dc652aeedb, the
`GREASE_PENCIL_OT_stroke_trim` operator is meant for usage in draw mode
(as the Cutter tool), but not in editmode. It is not the same as the
GPv2 Trim operator, see 4fbef3dc6b
To resolve, remove this from the menu again.
Pull Request: https://projects.blender.org/blender/blender/pulls/129805