WIP: Basic support for registering asset shelf as a type in BPY #104991

Closed
Julian Eisel wants to merge 73 commits from JulianEisel:temp-asset-shelf-type-bpy into asset-shelf

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

For example, the pose library add-on can now register an asset shelf
like this:

class VIEW3D_AST_pose_library(bpy.types.AssetShelf):
    bl_space_type = "VIEW_3D"

    @classmethod
    def poll(cls, context: Context) -> bool:
        return PoseLibraryPanel.poll(context)

To filter assets by type, a temporary asset_poll__() function can be used. This should be replaced by a bl_asset_traits registration variable, as per design.

This replaces the hack of registering a header type and the asset shelf
template to draw into that.

For example, the pose library add-on can now register an asset shelf like this: ``` class VIEW3D_AST_pose_library(bpy.types.AssetShelf): bl_space_type = "VIEW_3D" @classmethod def poll(cls, context: Context) -> bool: return PoseLibraryPanel.poll(context) ``` To filter assets by type, a temporary `asset_poll__()` function can be used. This should be replaced by a `bl_asset_traits` registration variable, as per design. This replaces the hack of registering a header type and the asset shelf template to draw into that.
Julian Eisel added 1 commit 2023-02-20 20:53:04 +01:00
For example, the pose library add-on can now register an asset shelf
like this:

```
class VIEW3D_AST_pose_library(bpy.types.AssetShelf):
    bl_space_type = "VIEW_3D"

    @classmethod
    def poll(cls, context: Context) -> bool:
        return PoseLibraryPanel.poll(context)
```

Filtering by ID type is not supported yet.

This replaces the hack of registering a header type and the asset shelf
template to draw into that.
Julian Eisel added this to the Brush Assets & Asset Shelf project 2023-02-20 20:58:14 +01:00
Julian Eisel changed title from Basic support for registering asset shelf as a type in BPY to WIP: Basic support for registering asset shelf as a type in BPY 2023-02-20 20:58:54 +01:00
Julian Eisel added 34 commits 2023-02-21 15:34:26 +01:00
Nodes: Allow adding multiple search items per type in add menu
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
cc925b9282
Add a per node type callback for creating node add search operations,
similar to the way link drag search is implemented (11be151d58).

Currently the searchable strings have to be separate items in the list.
In a separate step, we can look into adding invisible searchable text
to search items if that's still necessary.

Resolves #102118

Pull Request #104794
Fix #82936: Make Geometry Nodes modifier icon blue in outliner
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
5a86193b1c
In the outliner, the icons for modifiers are tinted blue. This didn't
work for the geometry nodes modifier icon.

Defining the icon with the macro `DEF_ICON_MODIFIER` also
defines the appropriate theme color so it's now tinted blue
when drawn in the outliner like the other modifier icons.

Pull Request #104957
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7c1e26dd64
No functional changes.
Fix test
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
07ae1feed2
Pull Request #104934
BMesh: fix invalid existence check in BM_mesh_bm_to_me
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
3e049973ee
Remember that the null customdata layer index is -1,
not 0.
Sculpt: Implement mesh filter cancel
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
ff3fd5f1ce
Added new function sculpt_mesh_filter_cancel in sculpt_filter_mesh.cc
for cancelling mesh filters. It currently is unused pending a
revamped modal map for mesh filter (see pull req 104718).
Tests: Add tests for image format saving and loading
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7699c7407d
This adds saving and loading tests for our supported image formats.

**Saving - bf_imbuf_save.py**
There are 2 template images which are loaded anew for each file save
attempt.  One is an 8-bit RGBA image and the other 32-bit. This is
required as many formats use a variety of factors to determine which of
`ibuf->rect` or `ibuf->rectfloat` to use for processing.  The templates
are constructed to have alpha transparency as well as values > 1 (or
clamped to 1 for the case of the 8-bit template).

Test flow:
 - Load in an appropriate template image
 - Save it to the desired format with the desired set of options
 - Compare against the reference image

Notes:
 - 98 references are used totaling ~3.6MB
 - 10-12 second test runtime
 - Templates can be reconstructed with the create-templates.blend file

**Loading - bf_imbuf_load.py**
Test flow:
 - Load in each of the reference images
 - Save them back out as .exr
 - Save additional metadata to a secondary file (alpha mode, colorspace etc)
 - Compare the saved out .exr with another set of reference .exrs
 - Compare the saved out file metadata with set of reference metadata

Notes:
 - 98 exr references are used totaling ~10MB
 - 10-12 second test runtime as well

A HTML report is not implemented. The diff output organization is very
similar to the other tests so it should be somewhat easy to do in the
future if we want.

The standard set of environment variables are implemented for both:
BLENDER_TEST_UPDATE, BLENDER_VERBOSE, and BLENDER_TEST_COLOR

Pull Request #104442
Cleanup: format
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
ece43dd716
Tests: Address imbuf_save failures on ARM64 builds
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
2d34a09043
This does 2 things to address the ARM64 failures:
- Increases the threshold to be inline with what Cycles uses
- Disables the 2 problematic WebP variations (#105006 will track)
Fix: Channel clamping when markers are used
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
4ab91dc0c9
Previously when markers were used, the newly introduced clamping code (#104516) would stop the last channel from being shown.

This patch fixes that by modifying the `v2d->tot.ymin` calculation.

This is a bit counterintuitive since the `v2d->tot` height is calculated in `action_draw.c`. But the advantage of doing it there is that it also works for the channels region.

Pull Request #104892
The active frame must be recovered using `BKE_gpencil_frame_retime_get`
Cleanup: Mark overriden virtual call as such
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
5db40f5747
Fixes the `-Winconsistent-missing-override` warning.

In theory the `virtual` is redundant in such case, but this is how
it is done in may other areas of USD code.

Pull Request #104977
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
e1b58be9e2
Curves: Fix proportional editing not working
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
33cbd063d3
This adds proper support for proportional editing for the Curves object.

Co-authored-by: Hans Goudey <h.goudey@me.com>
Pull Request #104620
This adds support for cursor snapping for the new curves object.

It implements a function `transverts_from_curves_positions_create` (to separate the logic from the `Curves` object type). That function is then C wrapped by `ED_curves_transverts_create` and finally used in `ED_transverts_create_from_obedit`.

Pull Request #104967
Gitea: more updates for new scoped label syntax
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
6eccea7a6f
Fix Cycles MetalRT access of macOS 11 features when unavailable
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
6583acb880
After recent changes in 2d994de.

Pull Request #104976
Mandatory change for the Brush Assets project, from quick test does not
seem to break anything (more) in existing 'old' brushes...

Re. #101908.

Pull Request #105016
Fix new essentials asset library not being covered in library path query
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
a280554b75
Fix: Unable pick select first point/curve in Curves
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
2fef2f707a
Because of an off-by-one error, it was not possible
to select the fist point or curve using the pick_select
operator in the Curves object.
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
68a8f96cca
Fix #104975: Essentials assets missing from node link-drag search
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
3e721195b0
Alternatively this could use `ASSET_LIBRARY_ALL` like
`add_node_search.cc`, but then it would need a different
method for skipping duplicate local assets.
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
8b8d8acc84
Contributed by Yulia Kuznetcova at Apple.

NanoVDB is patched to give add address spaces required by Metal. We hope that
in the future Metal will support the generic address space.

For AMD and Intel this is currently not available since it causes a performance
regression also on scenes without volumes.

Pull Request #104837
Vulkan: Initial Compute Shaders support
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
7fb1f060ff
This patch adds initial support for compute shaders to
the vulkan backend. As the development is oriented to the test-
cases we have the implementation is limited to what is used there.

It has been validated that with this patch that the following test
cases are running as expected
- `GPUVulkanTest.gpu_shader_compute_vbo`
- `GPUVulkanTest.gpu_shader_compute_ibo`
- `GPUVulkanTest.gpu_shader_compute_ssbo`
- `GPUVulkanTest.gpu_storage_buffer_create_update_read`
- `GPUVulkanTest.gpu_shader_compute_2d`

This patch includes:
- Allocating VkBuffer on device.
- Uploading data from CPU to VkBuffer.
- Binding VkBuffer as SSBO to a compute shader.
- Execute compute shader and altering VkBuffer.
- Download the VkBuffer to CPU ram.
- Validate that it worked.
- Use device only vertex buffer as SSBO
- Use device only index buffer as SSBO
- Use device only image buffers

GHOST API has been changed as the original design was created before
we even had support for compute shaders in blender. The function
`GHOST_getVulkanBackbuffer` has been separated to retrieve the command
buffer without a backbuffer (`GHOST_getVulkanCommandBuffer`). In order
to do correct command buffer processing we needed access to the queue
owned by GHOST. This is returned as part of the `GHOST_getVulkanHandles`
function.

Open topics (not considered part of this patch)
- Memory barriers & command buffer encoding
- Indirect compute dispatching
- Rest of the test cases
- Data conversions when requested data format is different than on device.
- GPUVulkanTest.gpu_shader_compute_1d is supported on AMD devices.
  NVIDIA doesn't seem to support 1d textures.

Pull-request: #104518
a280554b75 was committed to fix this in main, b5fa180d5d for the release
branch. Only one is needed though :)
Julian Eisel added 1 commit 2023-02-21 18:49:54 +01:00
Python defined asset shelfs can now define an `asset_poll__()` function
to determine if an asset should be visible or not, based on type
information. This isn't great and can probably be a performance issue in
bigger libraries. A proper solution would be to provide a set of asset
traits to filter by, but this is a bit tricky to implement. This is a
temporary solution so the brush assets project isn't held up by this.
Julian Eisel added 164 commits 2023-02-27 11:44:05 +01:00
Vulkan: Fix mismatch in shader and resource types.
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
6a5caf9d88
Fix tests for macOS storage_apple.mm functions.
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
92dc89e28a
Pull Request #105000
This commit implements described in the #104573.

The goal is to fix the confusion of the submodule hashes change, which are not
ideal for any of the supported git-module configuration (they are either always
visible causing confusion, or silently staged and committed, also causing
confusion).

This commit replaces submodules with a checkout of addons and addons_contrib,
covered by the .gitignore, and locale and developer tools are moved to the
main repository.

This also changes the paths:
- /release/scripts are moved to the /scripts
- /source/tools are moved to the /tools
- /release/datafiles/locale is moved to /locale

This is done to avoid conflicts when using bisect, and also allow buildbot to
automatically "recover" wgen building older or newer branches/patches.

Running `make update` will initialize the local checkout to the changed
repository configuration.

Another aspect of the change is that the make update will support Github style
of remote organization (origin remote pointing to thy fork, upstream remote
pointing to the upstream blender/blender.git).

Pull Request #104755
Caused by inverted arguments to `memcpy` in 1af62cb3bf.
Replace with use of spans to make the copying direction more obvious.
Fix Light Tree option causing wrong renders on macOS AMD
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
dd65e9901f
The light tree itself is disabled on the AMD GPUs due to a compiler issue.

There are couple of places where this was not fully checked:

- The `light_sample` function in the kernel.
- The light threshold during synchronization

The former one is solved as easy as just adding an ifdef block.
The latter one is solved by delaying the threshold assignment for
later on.

Pull Request #105022
Cleanup: Remove unused UV map deletion functions
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
996eb1bd5f
The attribute API is now used instead.
The values were not calculated in the subdivision modifier.
Cleanup: Spelling in warning message
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
d355f3ed2b
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1b96dd535a
Fix #104902: Use forward compatible integers for boolean RNA properties
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
720dbea429
Write RNA properties backed by IDProperties with the `IDP_INT` type like
before ef68a37e5d. That keeps forward compatibility, because
earlier versions don't support the boolean type. At some point in a future
release we can remove the forward compatibility. 4.0 is a good time to
do that because forward compatibility will be broken in other ways.

This commit also adds support for reading integer arrays for boolean
property defaults, which was only half-way supported before.

Pull Request #104995
Fix references to the /release/scripts directories
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
e28a9a87c9
Those were moved to the /scripts
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e82d4f1f93
Fix #104947: Missing depsgraph update on UV map deletion
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
6693c50ace
Since changing UV map deletion to be handled via the attribute api,
the object wasn't tagged for depsgraph updating.

Pull Request #105040
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ac160a270f
UI: UIList Hover Highlighting
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7216eb8879
Add mouse hover highlighting for items in UILists, in both list mode
and preview tile mode.

See 104677 for more details

Differential Revision: #104677

Reviewed by Brecht Van Lommel
msgfmt: fix runtime requirements
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
b874a0ead8
msgfmt has a TBB dependency though bf_blenlib, now for a release build
The MSVC linker is smart enough to realize none of the TBB code is
actually used and discards it. In debug mode the linker is a bit more
conservative and doesn't, leaving msgfmt with a runtime dependency
on TBB. The problem here is, we only copy the runtime dlls during
the install phase, and msgfmt runs long long before that.

For this reason when we run msgfmt we should make sure any runtime
needs it could have are met in the path, there already is a handy
variable for that since oslc has similar requirements.

Pull Request #105048
Revert 104438: Windows Spanning Multiple Monitors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8b63966236
Revert of commits that allowed non-temp Blender windows to be saved
and restored that spanned multiple monitors on the Windows platform.
This causes problems with temp windows (like Preferences & Render) that
cannot currently be fixed.

See 104956 for much more details.

This change is being redone after it was accidentally reverted.

Differential Revision: #104956

Reviewed by Ray Molenkamp
Cleanup: Use simpler syntax to return panel open status
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
05637254da
Curves: Avoid unnecessary allocation when calculating offsets
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
612965497e
Arrays for curve handle types were allocated even when there were no
Bezier curves. This saves 0.5ms of the total 0.9ms spent creating the
evaluated curve offsets, which happens every time the topology
of non-poly curves change.
Fix/Update to the i18n module settings after git submodule changes.
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
14368f4d09
Merge remote-tracking branch 'upstream/blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ad124d15e2
Fix #101518: Curves sculptmode Stabilize Stroke misses indicator line
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
e5a0a14a27
Drawing code `paint_draw_smooth_cursor` would be called correctly, it
was just the color not being initialized.

This is usually done with `BKE_paint_init`, but in the case of curves
sculpting brushes this would create an additional (unnamed) brush which
should be avoided since the workspace toolsystem creates the "right"
brush anyways.

So this patch just does the minimal work to get the Stabilize Stroke
indicator line to draw (which is initializing the color).

Brought over from https://archive.blender.org/developer/D16793

(cherry picked from commit 612a4382c4)

Pull Request #105021
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
50ebe21dd3
VSE: Add retiming tool
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e1f6587f12
This tools allows to change strip playback speed by manipulating
retiming handles. More handles can be added to single strip to create
variable playback speed.

This tool replaces Speed Factor property in time panel, with exception
of sound strips. Support for sound strips is still in review.

Pull Request #104523
See #103343

Pull Request #105061
Cleanup: Move rna_access.c to C++
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
709013dca4
See #103343

Pull Request #105060
Vulkan: Refactor shader interface.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8c03410ebd
Descriptor set locations are now determined in the
VKShaderInterface. Issues with the previous solution:

- Due to legacy code in GPU module the locations/bindings
  must be the same. Using one for something else might
  result in undesired lookups, incorrect resource
  bindings.
- Images/Textures reuses the same namespace, that didn't
  work as expected when looking up the resources via
  its binding.

This refactoring is required for adding support for
push constants.

Pull Request #105073
Fix #103761: creating a color attribute doesn't make it active
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
acfafeed88
Originally caused by 6514bb05ea

More cases where the active/default color attributes were not set
correctly:

[1] Using the old Python vertex_colors API (vertex_colors.new)
[2] OBJ importer
[3] Collada importer
[4] Data Transfer layout (both standalone operator and "Generate Data
    Layers" from the modifier)

Similar to 101d04f41f.

Brought over from https://archive.blender.org/developer/D16977, see
discussion there why some of the code for data transfer is not for the
genereal attribute API.

Pull Request #105020
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d6a61bc864
Erroneous cache warming case where the generated material is
identical to default material and cached shader is re-used,
resulting in case where the parent shader is identical to the
source.

Authored by Apple: Michael Parkin-White

Ref #96261
Cleanup: Remove wrapper functions in spline parameter node
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
11f52a4017
Do the domain check directly in the field input class to avoid the need
for another function to do it elsewhere. Also move one function to
be closer to a similar one, rename some functions, and avoid the need
for two intermediate span variables.
UI: Properly cancel dragging on escape or right-click
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d58e422ac3
This is refering to drag & drop within Blender which is using the
drop-box system.

Previously Escape would cancel the dragging, but still pass on the event
to other event handlers, which could trigger other behavior. For example
cancelling dragging a file in a file browser dialog would also cancel
the file browser operation and close the window. Right-click didn't
cancel anything even though we usually use both Escape and right-click
as a way to cancel the operation.

Now both escape and right-click both cancel the dragging and the event
is not passed on further.

Pull Request: #104838
This is a small initial refactor to extract the
USDGeomReader::read_mesh parameters into a separate struct.
This will allow for adding extra parameters to handle importing
velocities for #104462 which was brought over from

https://archive.blender.org/developer/D15430

Original patch was being reviewed here:

https://archive.blender.org/developer/D15435

Pull Request 104459
Fix #103269: node group asset description not showing as tooltip in the Add menu
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
18614b6b0b
Pull Request #104968
Expose the color selector on each item in the list, so it's easier to see
at a glance the Bone Groups color theme and change it.

Also avoids having color widgets grayed out when not in Custom Colors mode.

Pull Request #105036
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
775b51a847
Invalid node trees (e.g. when nodes are linked in a cycle) can not be
evaluated and the viewer is not available in them. This commit just adds
some null checks to handle this case more gracefully.
Fix regression after d165d6aa2a
Fix: Overlay regression after d165d6aa2a
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
6466c247c9
BLF: Glyph Clipping Corrections
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
54fa3b124f
Improvements to how glyphs are tested against the font clipping rect.

Pull Request #104679
The attribute was retrieved when converting to Bezier curves when it
wasn't necessary. Instead copy it like a regular attribute if any of the
result curves are NURBS. Also fix a check for an empty span for the
attribute which was never false.
This resulted in disappearing NURBS curves when joining them with other
curve types in some cases. The attribute has to be handles similarly to
the radius and resolution attributes rather than as simple generic data.
Fix #104842: Incorrect cyclic curve parameter node factor
Some checks failed
buildbot/v350-code-daily-coordinator Build done.
11766574a4
66dda2b902 made an incorrect change to account for the special
case for NURBS. Instead, make the step that turns the lengths into
parameters more explicit, and pass the correct total length for each
curve, even in the cyclic case.

Pull Request #105079
On the Windows platform, raise windows and give them focus as the mouse
hovers over them. This allows keyboard shortcuts for the area under the
mouse without having to click the window caption to make them active.

Pull Request #104681
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8693f1fdd2
Metal: Improve AMD EEVEE Performance
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
c760248fc5
Complex EEVEE nodegraphs, particularly those combining
multiple principledBSDF shader nodes have a tendancy
to require a large number of simultaneous live registers
due to function call depth. In some instances, this
causes substantial performance drop and corruption if
the stack gets too large.

To mitigate this, splitting calls to closure_eval such
that only a single individual closure is evaluated in each
call reduces the number of live registers required. This
is preferred over using compound closure evaluation
functions which require a large amount of in-flight data.

Note that this is generally not more optimal, if the stack
does not spill, as there is an increased instruction count.
The specific trade-off depends on the exact architecture
in question. Hence, this is limited to AMD GPUs.

Authored by Apple: Michael Parkin-White

Ref #96261
Pull Request #104985
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e497a50aa2
Sculpt: fix 104174, clicking over empty space always pushes undo.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7f256e0d33
This was actually caused by two problems.  The first is that the
code actually deliberately detects if nothing happened and pushed
an undo step, a bugfix for a problem that no longer exists.

The second was that SCULPT_test_location sometimes does a closest
point search instead of ray casting and didn't check the result
against the brush radius.
Sculpt: Fix #104618 (again).
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
4eb90fc15c
SculptAttributeParams.stroke_only wasn't being
applied to existing attributes properly.
GPU: Patch GPencil shader for metal support.
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
2c391f8877
The stoke shader of grease pencil uses a geometry shader stage. Apple
devices don't support shaders with geometry shader stage. In the
OpenGL driver there was a pass-through implemented so it didn't fail.

When using the metal backend this needs to be solved more explicitly.
This change patches the grease pencil shader to support both the
backends supporting a geometry stage and those without.

Fixes #105059

Pull Request #105116
When implementing the operator to select linked vertices in weight paint mode, the new `AtomicDisjointSet` was used.
In order to keep the code consistent, and also prepare it to add things like Extending/Shrinking selection, the select linked faces logic was also updated.

It now also makes use of the `AtomicDisjointSet` by connecting all edges of each poly. In order to find connecting Faces you then have to check if edges of that poly share a connection.

Pull Request #104577
Sculpt: Fix #104475, data transfer not respecting vgroup for float colors
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ddcf718640
This might've been a merge error, the result of color mixing
was being overwritten by a simple copy of source to destination
inside of layerCopyValue_propcol.
Animation: Add Slider operators to hotkey menu
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8756671084
Before that patch, the slider operators for the Graph Editor are not easily accessible since they don't have a hotkey.
This adds the "d" hotkey for the already existing slider operator menu.

Using the popup menu means that your last used operator will always be under the cursor, so it's quick to access.

Pull Request #104530
Animation: Paste Keys in Graph Editor with value offset
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7267682017
Extend the `GRAPH_OT_paste` operator with an enum to define the value offset.

Options are:

| Option              | Effect                                                                        |
| ------------------- | ----------------------------------------------------------------------------- |
| No Offset           | use the same key values as the copied keys                                    |
| Cursor Value        | align the leftmost key with the cursor value                                  |
| Current Frame Value | Evaluate the curve under the cursor align the leftmost key with it            |
| Right Key           | Align the rightmost key with the first key that is to the right of the cursor |
| Left Key            | Align the leftmost key with the first key that is to the left of the cursor   |

Pull Request #104512
Fix #105067: Error drawing Copy Rotation Constraint UI
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
e410fb4d3c
The translation contexts module wasn't imported after c7611d61e8,
which caused an error and prevented some constraints' UI from being
displayed.

Pull Request #105095
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
4cd00b1a71
Fix #105100: Metal using wrong kernels in multi-pass renders
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
482fb791ce
This fixes issue [#105100](#105100) where multi-pass renders can be incorrect due to kernels using stale specialisation constants (e.g. when rendering Pokedstudio).

This patch adds a new group of md5 hashes (`global_defines_md5`) to track whether the injected block of #defines is stale and regenerate the source string as appropriate. It also renames the existing group of md5 hashes from `source_md5` to `kernels_md5` to clarify that these refer to a specific kernel set rather than just the source (which might build an arbitrarily large number of kernel sets).

Pull Request #105103
Fix #105078: Regression: Memory leak in driver UI drawing code
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
f2250b7a5b
Just a missing call to `MEM_freeN()`.

The issue was introduced in c592bff047.
Merge remote-tracking branch 'origin/blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
c8ed48d5ca
Fix #105043: Add shortcut for proportional editing
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
061d191677
Fix #105043: Add shortcut for proportional editing
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
f93f743ffc
When trying to rotate in curves edit mode using proportional editing
and connected only mode, Blender would crash.

This was because the `TransData` structs for disconnected elements
did not have the location field populated, resulting in a null pointer
access.

The fix skips these elements entirely using `TD_SKIP`.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e2ba7f902d
The code below has to handle the case when `sample_length` is greater
or equal to the total length already anyway, so we can just make that
a valid input. Currently, the snake hook brush for curves also makes
use of passing in larger sample lengths which current results in crashes
in debug builds.
Fix #105026: Texture space operators in transform menu
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
059ba28b29
In curves edit mode, the "Move Texture Space" and "Scale Texture Space"
operators where shown in the "Curves > Transform" menu.

Since these are not implemented, the fix removes these operators
from the menu.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
78a54f23db
Fix #105089: Curves sculpt add creates invalid resolution
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
fcdfc0a85b
If the resolution attribute exists, it needs to be set to a non-zero
value for the newly added curves. While it might also make sense
to interpolate the value from neighbor curves, for now it's
simplest to just set it to the default value of 12.

Pull Request #105094
Vulkan: Get access to physical device limits.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
90f5b2f0ce
This patch will give access to the physical device limits
of the device associated with the context. In vulkan each
device has different limits and the application is
responsible to match these limits as the vulkan driver
just ignores calls that don't match these limits.

Those limits are GPUBackend specific and therefore are not
added to GPU_capabilities.

Pull Request #105125
Fix: Cycles display without OpenColorIO not working for Metal
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
4bfe4e5d49
Cycles fallback display shader previously did not use viewport.
This would crash or cause the display not to show when using
GPU backends other than OpenGL, if another display shader
was unavailable.

Now use ShaderCreateInfo for Cycles fallback display.

Authored by Apple: Michael Parkin-White

Ref #96261

Pull Request #104987
GPU: Fix Potential Error in Builtin Resolution.
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
dc9e0f300e
When using ShaderCreateInfo with builtin uniform(blocks) there are
cases where the current implementation could not find an existing
block. The reason is that it uses name matching and name matching
requires that the shader inputs are sorted based on the name hash.

This change fixes this by first for the sorting of the shader
inputs before resolving the builtins.

Pull Request #105127
Resolving builtin uniforms and uniform blocks when creating
shader interface. This maps builtin uniforms to uniforms
defined by the shader. Works the same as the OpenGL
builtin uniforms.

Pull Request #105128
Only supports uploading data to a uniform buffer.
Requirement for push constants #104880.

Pull Request #105129
Merge branch 'blender-v3.5-release' into main
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
25a5ff7670
Fix #105118: Wrong point size in sculpt density overlay
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
e2f0a63e55
Missed the GPU_program_point_size call in acd5889e50
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
6403bc28cd
Fix #103865: keep IDProperties overridable when setting them with Python
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
763f1897c2
Previously, the overridable status was lost when assigning a new value
to a custom property.

Pull Request #105130
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1851a69014
This code seems to be left over from before edges, polys, and loops were
stored in CustomData. They are already copied by the CustomData copy
calls directly above, which already deal with every other layer.
Using spans instead of raw pointers helps to differentiate ararys from
pointers to single elements, gives bounds checking in debug builds, and
conveniently stores the number of elements in the same variable.

Also make variable naming consistent. For example, use `loops` instead
of `mloop`. The plural helps to clarify that the variable is an array.

I didn't change positions because there is a type mismatch between
C and C++ code that is ugly to manage. All remaining code can be
converted to C++, then that change will be simpler.

Pull Request #105138
When using the "Frame Channel" operator in the Dope Sheet
the view would always go back to the top.

Fix it by copying the y bounds when in the Dope Sheet.

Pull Request #105123
When using the frame channel operators from #104523
the framing would fail under the following circumstance.
* In the graph editor
* Using normalized view
* with a curve that has a y-extent of less than the focus threshold of 0.01

The issue was the the clamping code was
before the normalization multiplication.

Pull Request #105121
Fix #105106: inconsistent order of settings in 3D viewport shading popover
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
a1f899754b
Put compositing settings at the bottom for both Cycles and Eevee.
Merge branch 'blender-v3.5-release' into main
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8e50539f1b
Blender currently has 2 algorithms for merging vertices:
- `BKE_mesh_merge_verts`;
- `blender::geometry::create_merged_mesh`

`BKE_mesh_merge_verts` has a simplified algorithm to work with Array,
Mirror and Screw modifiers. It doesn't support merge results that would
create new faces. However it has shortcuts to be more efficient in
these modifiers.

`blender::geometry::create_merged_mesh` tries to predict all possible
outcomes. So it's a more complex. But it loses in performance to
`BKE_mesh_merge_verts` in some cases.

The performance comparison between these two depends on many factors.
`blender::geometry::create_merged_mesh` works with a context that has
only the affected geometry. Thus a smaller region of the mesh is read
for duplicate checking. Therefore, the smaller the affected geometry,
the more efficient the operation.

By my tests `blender::geometry::create_merged_mesh` beats
`BKE_mesh_merge_verts` when less than 20% of the geometry is affected
in worst case `MESH_MERGE_VERTS_DUMP_IF_EQUAL` or 17% in case of
`MESH_MERGE_VERTS_DUMP_IF_MAPPED` .

For cases where the entire geometry is affected, a 30% loss was noticed,
largely due to the creation of a context that represents the entire mesh.

Co-authored-by: Germano Cavalcante <germano.costa@ig.com.br>
Pull Request #105136
Fix: Debug build failure and warnings after recent cleanup commit
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2bd097a58d
Fix #105150: Mesh.vertex_colors.new() returns existing active layer
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
f9f29eefc7
In 6514bb05ea I misinterpreted the function's intended
behavior when there was already an existing active layer. The data from
the active layer is just meat to be copied, the function should always
add a new attribute.
Merge branch 'blender-v3.5-release'
Some checks failed
buildbot/vdev-code-daily-coordinator Build done.
c065e8dd7f
Fix: Global buffer overflow of enum property items on startup
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
1b72712283
RNA enum items arrays need to end with a null entry.
BLF: Revert Glyph Clipping Changes
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
470e8ce1f4
Revert #104679. We are just too used to the old behavior, especially
the incorrect vertical clipping. Some uses rely on setting the min and
max of the clipping rect the same. Will have to revisit this later
to only correct for horizontal positioning for full hinting.

Pull Request #105157

Own Code.
UI: Widen Search Boxes When Necessary
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
cfb112edcb
Make floating search boxes wider when there is a linked scene or are
otherwise showing more information than a simple list.

Pull Request #104603
Cleanup: Move two subdiv headers to C++
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
2491cd5e16
This might've been a merge error, the result of color mixing
    was being overwritten by a simple copy of source to destination
    inside of layerCopyValue_propcol.
This was actually caused by two problems.  The first is that the
    code actually deliberately detects if nothing happened and pushed
    an undo step, a bugfix for a problem that no longer exists.

    The second was that SCULPT_test_location sometimes does a closest
    point search instead of ray casting and didn't check the result
    against the brush radius.
Sculpt island tags are now invalidated whenever the PBVH
    is rebuilt.
Sculpt: Fix #104618 (again).
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
718f78cfca
SculptAttributeParams.stroke_only wasn't being
    applied to existing attributes properly.
Fix #105011: Cannot remove user preset when its name is translated
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
47d4ec5aef
The preset names were translated before building the UI. This meant
that the translated name was passed to the operator responsible for
deleting the preset file, instead of the original name.

Pull Request #105155
Fix #105011: Cannot remove user preset when its name is translated
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ac93598dd1
The preset names were translated before building the UI. This meant
that the translated name was passed to the operator responsible for
deleting the preset file, instead of the original name.

Pull Request #105155
Fix #105168: Entering vertexpaint creates a non-default color attribute
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
b8359ede7d
Caused by 6514bb05ea

The new attribute was set active, but not default (camera icon).
Now set it default as well.

Pull Request #105169
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
d5e45c8b92
Fix paths in the auto-formatting tools
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
9b70039014
Those got missed in the submodule change commit.

Pull Request #105178
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
3e0a1cafa7
Fix #105166: Sample UV Surface node does not take index mask into account
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
3d10dfb0a3
The `call` method was reading from and writing to memory that it was
not supposed to access based on the passed in `mask`.
Fix: crash in Spline Parameter node with single-point-curves
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
2c5434c3f5
This was caught by our tests when they are run in a debug build with asserts.
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
be94fefeb1
Fix make_update switching branches with multiple upstreams
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
f30c395a7c
If repository has multiple remotes with the same name of branch
checking out to the branch using simple `git checkout branch` exists
with an error: this is because there is ambiguity w.r.t which remote
to track.

Now the code explicitly provides remote to track, preferring to use
"origin" first (which is to be used for Blender style of workflow,
and Github style workflow when there is a fork available), and use
"upstream" if there is no origin.

Pull Request #105176
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
12cc3ccd72
This is a workaround for [issue #104087](#104087). We encounter crashes when using shader binary archives on AMD, so this disables them while we investigate a proper fix. Kernels will still be cached automatically by the OS file system cache. This cache may occasionally be purged due to external factors, in which case kernels will get compiled again.

Pull Request #105186
This fixes [#100066](#100066) by failing hard when front-end MSL->AIR compilation errors are encountered.

Pull Request #105122
Fix #105009: Restore GPencil layer drawing in dopesheet
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
b789980e27
After 49ad91b5ab, an extra visibility
toggle is being drawn for grease pencil layer in dopesheet. In this PR,
a condition is added to skip drawing of visibility toggle for GPencil
layer. Also, Grease pencil does not support pinning so restore the offset
added to channel for drawing the pin icon.

Pull Request #105080
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
e3538546f2
Fix #104803: Fix broken deprecated vertex color RNA APIs
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
c517e4a501
Fixed:
* mesh.vertex_colors.active
* mesh.vertex_colors.active_index
* MeshLoopColorLayer.active
* MeshLoopColorLayer.active_render
* MeshVertColorLayer.active
* MeshVertColorLayer.active_render
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
6cd9604a91
Fix #104006 Sculpt box/lasso trim projection errors
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
01d4c8462d
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
0f09678036
Gizmo: support scaling of light gizmos with zero size
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
6166dac3ee
Zero-sized gizmos were not shown because GPU does not draw filled
triangles with zero area. This problem is resolved by drawing lines or
points in these degenerated cases.
Scaling is supported via computing the original and the new size, then
treat the case with zero original size separately, instead of only
computing the scale itself.
Actually applies to all `cage2d` gizmos, but not compatible when
translate flag is set.
List of renames:
GPU_texture_generate_mipmap > GPU_texture_update_mipmap_chain
GPU_texture_orig_width > GPU_texture_original_width
GPU_texture_orig_height > GPU_texture_original_height
GPU_texture_orig_size_set > GPU_texture_original_size_set
GPU_texture_format_description > GPU_texture_format_name
GPU_texture_array > GPU_texture_is_array
GPU_texture_cube > GPU_texture_is_cube
GPU_texture_depth > GPU_texture_has_depth_format
GPU_texture_stencil > GPU_texture_has_stencil_format
GPU_texture_integer > GPU_texture_has_integer_format
This was previously used when the binding number wasn't always stored
inside the texture itself.
For every other texture types this is expected to be implicitly
`GPU_DATA_FLOAT`. There is only one case where this is not the case.

I believe this was previously needed because the data type was
conditionning the texture creation. This is not the case anymore.
All usages are currently placeholder GPU_TEXTURE_USAGE_GENERAL.
Cleanup: GPUTexture: Remove _ex suffix from texture creation
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
9fb1f32f06
It isn't relevant anymore now that usage flags are mandatory.

Pull Request #105197
Workbench: Remove unecessary GPU_TEXTURE_USAGE_ATTACHMENT flag
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
afb6336857
The dummy 3D textures are read only and never used as framebuffer targets.
Fix #104992: Crash on calling operation search in outliner
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
f9bcd8c7e8
After 7eda9d8dda, crash occurs when operation search is called and no
active tree element is present. Add missing null check in new poll
function to fix the crash.

Pull Request #105004
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
7eef746270
Set the new `gather_add_node_search_ops` member for these two special
node types.

Pull Request #105201
GPUTexture: Make sure all available texture format are supported
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
52ded6ab56
This remove default casses from the `switch` statements to catch where
the missing cases are.

Uncomment unimplemented cases for the sake of completeness. Improving the
overall API.

This make the format conversion lists exhaustive and documented.

This replace `validate_data_format_mtl` by the common version as they
don't differ at all now.
Cleanup: format
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
86ceb6722f
Fix #103398: Fix Icon sampler initialization in Metal backend.
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
fb63e484b9
Resolves issue with nearest filtering on UI Icons. Note that as
Metal does not support LOD bias as a parameter on a sampler
object, the original code has been modified to perform LOD
biasing at the shader level.

As GPU_SAMPLER_ICON is not  widely used, it is more
efficient to apply directly to the  affected shaders, rather
than workaround passing in the sampler LOD bias as a
separate value e.g. uniform or push constant.

Original PR feedback addressed to also refactor ICON
shaders to use consistent style for single and multi
Icon rendering.

Authored by Apple: Michael Parkin-White

Ref #96261
Pull Request #105145
Metal LineLoop emulation path does not correctly apply
when using SSBO vertex fetch mode alongside 3D line
rendering.

Patch moves line emulation above SSBO
vertex fetch setup to ensure the correct emulation
parameters are passed to the shader.

Authored by Apple: Michael Parkin-White

Ref #96261
Pull Request #105142
Fix #105059: Fix Grease pencil fill tool with Metal.
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
2b7707b0d0
GPencil 3D stroke rendering uses a geometry shader.
This is unsupported by the Metal backend, so implement
fix for this failing compilation by shifting geometry shader
logic into the Vertex shader for Metal backend.

Authored by Apple: Michael Parkin-White

Ref #96261
Pull Request #105143
Fix OSX implementation of BLI_current_working_dir and improve tests.
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ec6e7d97ca
While some implementations of `getcwd` may return an allocated string
instead of the given char buffer in some cases, this is not the expected
behavior of the BLI wrapper. Not to mention the danger of returning a
pointer to a static char buffer...

Improve `ChangeWorkingDirectoryTest` to be more 'full check' regarding
behavior of both `BLI_current_working_dir` and `BLI_change_working_dir`.
Also move call to `BLI_threadapi_init` into proper `SetUp` method (to
have correct symmetry with the call to `BLI_threadapi_exit` in the
`TearDown` one).

Based on investigation by Charles Wardlaw (@CharlesWardlaw).

Pull Request #105220
Fix #104906: GPU: Fix signed/unsigned mismatches in shader code
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
a8cc5f6919
Fix error message "initializer of type int cannot be assigned to
variable of type uint" on Blender startup.

Pull Request #105153
#99807: USD IO: Add support for exporting to USDZ
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
54f672cbfa
This commit adds the default .usdz export capability.

The importer already supports usdz so no change is required other than updating the text in menu to match the updated exporter text.

On export, a .usd/a/c file has to be created first, and then converted to .usdz. A weird change of directory is required because of a quirk with the USD conversion to usdz. If an absolute filepath is passed into the `UsdUtilsCreateNewUsdzPackage` function, the usd files inside the usdz archive will have the same directory structure, i.e. if one tries to create a file at `C:\code\BlenderProjects\file.usdz`, when the usdz file is created, inside it will have the structure `\code\BlenderProjects\file.usdc`.

This is counteracted by setting the current working directory to the temporary session directory where both the usdc and usdz files are created, and just passing the file name to `UsdUtilsCreateNewUsdzPackage` without any filepath. Once the usdz file is created it is moved to the intended directory.

There is a separate `UsdUtilsCreateNewARKitUsdzPackage` capability for exporting usdz for iOS devices that will be implemented in a follow up patch as it will require some more small UI changes.

Co-authored-by: Charles Wardlaw (@CharlesWardlaw)
Co-authored-by: Sonny Campbell (@SonnyCampbell_Unity)
Co-authored-by: Bastien Montagne (@mont29)

Pull Request #105185, based on #104556.
It's not really worth having them in the header and compiling them
in every translation unit where they are used.
Fix: segfault when setting value in empty bit span
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
bf27a239c7
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
8b543bfa3a
# Conflicts:
#	source/blender/gpu/metal/mtl_immediate.mm
The initial subdivision context counting ended up using unnecessarily
complicated logic to count the number of final vertices. In a first pass
it added vertices for every coarse edge. Then it added the same number
of vertices for every loose edge. That adds up to the same number of
vertices for the edges, so the separation is redundant and can be
replaced with a single multiplication.

The bitmap doesn't need to be cleared then, since it isn't used now.

In a test of a mesh with 2 million faces and 3 million vertices, this
saved 2.8ms (though the whole subdivision process takes around 700ms).

Pull Request #105159
Writing to a bitmap from multiple threads causes races when writing to
bits within the same integer. Instead, write to a separate boolean
array while subdividing, then move that to the final mesh bit vector.

Notes:
 - The final copy to the bit vector could be replaced by a generic
   `copy_from(Span<bool>)` call in the future.
 - Theoretically we could entirely replace the `BitVector` with an
   `Array<bool>`, but 1/8 the memory use for edges is likely worth it.

Pull Request #105156
Fix #103387: Radius affects curves bounding box
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
97a8bb450c
e8f4010611 unified the bounds computation for the new curves
object type and the rest of the curves system used by geometry nodes.
In the process, it made bounds affected by the control point radius.
In theory that makes sense; the bounds are supposed to be the extents
of the visible geometry. But in practice the change wasn't expected,
for a few reasons:
 - The radius has never affected the bounds for the legacy curve type
 - The default radius of legacy curve objects is absurdly large at 1.0m
 - Only the new curve object has visible radius, and only in "strip"
   mode or when rendering with Cycles

Currently the bounds are only used for the "Bounding Box" geometry node
and the panel in the 3D viewport sidebar, so there isn't any incentive
to choose less intuitive behavior yet.

Long term, the correct behavior is probably to include the radius in
the bounds, but this commit postpones that change to when it works
better with the rest of the curves system.

Pull Request #105154
Merge branch 'blender-v3.5-release'
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
ca2c0da79e
Geometry Nodes: Remove unnecessary position copying in delete node
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
79d64bfde3
In Edges and Edges & Faces modes, the node copied the positions once
with the other generic attributes and another time specifically just as
the positions. This is now unnecessary since positions are stored as
a generic attribute (1af62cb3bf). In a simple test this saved
2ms out of a total 12 in these modes.
To improve mesh upload speeds and reduce the size of the scene data which allows larger scenes to be rendered.

The meshes in Cycles are currently stored as flattened meshes, where each triangle is stored as a set of 3 vertices. Unflattening writes out the vertices in a list according to the index buffer. This uses a lot of memory and for current hardware does not provide a noticeable benefit. This change unflattens the mesh by directly using the meshes vertex and index buffers directly and skips the unflattening. This change allows for larger scenes and also a reduction in the sizes of the meshes. Further it results in a decrease the amount of time it takes to upload the data to a GPU. This is especially important for when multiple GPUs are used in a single machine.

Pull Request #105173
* Refactored the color filter op to have an ->exec callback.
* Added nullptr checks to the filter cache API to support
  running outside of a view3d context.
* Redo panel displays the active filter type's name in the
  header.
Fix make update when local branch exists
All checks were successful
buildbot/v350-code-daily-coordinator Build done.
931b832fb2
Apparently `git checkout -t` is only allowed to happen for new branches.
Added a code which checks whether the branch already exists and it so
uses the `git checkout <branch>`.

Pull Request #105234
Oversight in c517e4a501.
Cleanup: comment out unused parameters from last commit
All checks were successful
buildbot/vdev-code-daily-coordinator Build done.
16aab1508d
Julian Eisel added 3 commits 2023-02-27 11:50:37 +01:00
Julian Eisel added 1 commit 2023-02-27 12:25:21 +01:00
Julian Eisel added 2 commits 2023-02-27 12:26:20 +01:00
Julian Eisel added 1 commit 2023-03-20 11:56:19 +01:00
Author
Member

This is part of the asset-shelf branch now (and brush-assets-project).

This is part of the `asset-shelf` branch now (and `brush-assets-project`).
Julian Eisel closed this pull request 2023-03-20 12:20:07 +01:00
Julian Eisel deleted branch temp-asset-shelf-type-bpy 2023-03-20 12:20:14 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#104991
No description provided.