Commit Graph

117289 Commits

Author SHA1 Message Date
Clément Foucault
63a91c8d82 Fix: DRW: Tests: GPU backend error because of missing resources 2024-11-10 23:47:21 +01:00
Clément Foucault
e9252f206b GPU: Comment out test not compatible with metal backend
These test are either not compatible because of the
spec or are just broken in the current state of the backend.

These should be dealt with soon.
2024-11-10 15:16:34 +01:00
Clément Foucault
e79f12cf43 Fix: GPU: Broken static shader tests
Caused by 5d162719ba
2024-11-10 15:16:34 +01:00
Clément Foucault
8260e3aa81 GPU: Simplify framebuffer tests 2024-11-10 15:16:34 +01:00
Campbell Barton
86c5c4af6e Merge branch 'blender-v4.3-release' 2024-11-10 14:50:02 +11:00
Lukasz Czyz
9b3108462f Fix #129925: SLIM UV unwrap with holes
Assignments to UnwrapOptions overwrote the values set by
unwrap_options_get().

Ref: !130041
2024-11-10 14:45:18 +11:00
Clément Foucault
f67ea33993 Cleanup: Metal: Fix clang-tidy warnings
Replace != "" by more semanticaly friendly `is_empty`.
2024-11-10 00:29:03 +01:00
Jesse Yurkovich
33482bdd3a Merge branch 'blender-v4.3-release' 2024-11-09 13:19:29 -08:00
Jesse Yurkovich
f0e2d7e5ca Fix #107696: Use correct API when importing USD mesh vertex normals
This seems like a long-standing misuse of the custom vert normal APIs.
It broke, obviously so, in 3.1 but 3.0 was also rather fragile as was
noted in the original bug report.

The `BKE_mesh_set_custom_normals_from_verts` should be the correct API
to use when loading in vert normals from external files. The current
code would yield faceted mesh shading, as-if there were no custom
normals at all.

Pull Request: https://projects.blender.org/blender/blender/pulls/130069
2024-11-09 22:18:31 +01:00
Clément Foucault
85f6350c0f Fix: GPU: Missing include breaking shader tests 2024-11-09 21:50:37 +01:00
Clément Foucault
6f4b106da3 Metal: Refactor format conversion logic
Simplify the logic and handle all cases.
2024-11-09 21:50:37 +01:00
Clément Foucault
5d162719ba Cleanup: Metal: Fix clang-tidy warning
Replace size > 0 by more semanticaly friendly `is_empty`.
2024-11-09 21:50:37 +01:00
Clément Foucault
9b91a42240 GPU: Improve fetch mode tests to cover GPU_FETCH_INT_TO_FLOAT_UNIT 2024-11-09 21:50:37 +01:00
Clément Foucault
2738e33a58 GPU: Silence invalid fetch mode tests on Metal
These vertex buffer setup are invalid on metal.
For now simply disable them on Apple hardware.
2024-11-09 21:50:37 +01:00
Clément Foucault
ef8ea88f5f Fix: GPU: Tests not passing on Metal with ASAN on
Fixes a few stack overflow error, reduce framebuffer size
to avoid errors flooding the output.
2024-11-09 21:50:37 +01:00
Germano Cavalcante
7ce080cf72 Refactor: prevent storing dangling pointers
The `_EXCEPTION_POINTERS` structure is valid only within the context of
the `UnhandledExceptionFilter` function.

After the function exits, the memory referenced by the pointer might no
longer be valid or the exception information.

The solution for this was to create `BLI_system_backtrace_with_os_info`
and passing a system-specific data as the second argument.
`BLI_system_backtrace` calls `BLI_system_backtrace_with_os_info` with a
null second argument internally.

Pull Request: https://projects.blender.org/blender/blender/pulls/129999
2024-11-08 23:17:36 +01:00
John Kiril Swenson
65018a1557 Merge branch 'blender-v4.3-release' 2024-11-08 14:31:49 -06:00
John Kiril Swenson
8bbe0bc838 Fix #129947: VSE: B to box-select on strips
d2a802d3c6 got overzealous by removing the "tweak" property which was
actually necessary to differentiate box select on click-drag vs. box
select on B. Fix by restoring the tweak property for everything but
preview keymap items (where it doesn't actually do anything).

Main reason this happened is because the original description was a bit
too cryptic, so update it to be clearer.

Pull Request: https://projects.blender.org/blender/blender/pulls/130015
2024-11-08 21:29:53 +01:00
Clément Foucault
654cc9ed36 GPU: Fix printf force injection logic and limit it to material shader
This fixes backend error caused by missing resource.
2024-11-08 20:20:07 +01:00
Clément Foucault
93a10cbf7e GPU: Enable printf only between render boundaries and use a stack
Printf buffer read needs to be inside render boundaries
to work. Since render boundaries can be nested, use a stack.

Fixes assert when quitting blender.
2024-11-08 20:01:08 +01:00
Clément Foucault
9dbfa1f81c Merge branch 'blender-v4.3-release' 2024-11-08 18:49:52 +01:00
Clément Foucault
03d31a3717 Fix #128712: Workbench: Crash dragging window to another screen
The crash was caused by the texture wrapper being out of date.
This happened after workbench finished rendering AntiAliasing and
going into blit-result-only mode. Doing so was causing a use after
free caught by ASAN.

But this only partially fix the bug as workbench render then becomes
uninitialized (black most likely) after dragging the window to the
second monitor. This is because the TAA texture gets recreated since
the new viewport resolution doesn't match the old one. But this
recreation does not tag as a viewport update so the TAA stays in
blit-result-only mode.

Detecting the viewport resolution change at the engine init level
seems the safest option for now, and it fixes the remaining issue.

To be backported to 4.2.

Pull Request: https://projects.blender.org/blender/blender/pulls/130043
2024-11-08 18:47:20 +01:00
Julian Eisel
4799c1ebb8 Merge branch 'blender-v4.3-release' 2024-11-08 18:01:56 +01:00
Julian Eisel
5829f215ab Fix #129347: Asset shelf tooltips jumping around
10ef436c8f sets the tooltip callback for asset shelf buttons, causing a
code path to be executed that refreshes tooltips in `UI_block_end()`.
This relied on projection matrices being stored for blocks to position
the tooltips, which were incorrect. I think this would be a general
issue for dynamically sized regions, but keeping the fix minimal for now
to avoid further issues.
2024-11-08 17:52:24 +01:00
Falk David
ee46f57f92 Merge branch 'blender-v4.3-release' 2024-11-08 16:44:45 +01:00
Falk David
589ef9ccce Fix #129542: GPv3: Layers and Groups don't generate callback to message bus
Layers and layer groups did not generate message bus callbacks.
This was a regression from 4.2. The fix adds
`WM_msg_publish_rna_prop` to (some) places where the layers/groups
change or the active one changes.

Also resolves #129539.

Note: This does not cover every possible scenario and only fixes
the regressions from 4.2. The message bus is still very unreliable
when it comes to detecting changes of properties.

Pull Request: https://projects.blender.org/blender/blender/pulls/130039
2024-11-08 16:43:52 +01:00
Falk David
447c324da2 Merge branch 'blender-v4.3-release' 2024-11-08 16:39:13 +01:00
Falk David
2c15c8de7c Fix: GPv3: Merge layers operator did not copy grease pencil paramters
The merge layer operator did not copy the parameters of the original
Grease Pencil meaning that it would e.g. loose onion skinning settings.
This fixes the issue by making sure to copy the parameters.
2024-11-08 16:38:07 +01:00
Falk David
6b6bd3bd8f Fix: GPv3: Groups sometimes loose their color tag
The copy constructor of the layer groups class was missing
the `color_tag`. This fixes the issue.
2024-11-08 16:36:36 +01:00
Clément Foucault
510f97865a Fix: Metal: Address ASAN errors
Fix several error reported by asan when just launching blender.
2024-11-08 16:09:09 +01:00
Clément Foucault
72b24fa336 Cleanup: Metal: Simplify mtl_convert_vertex_format
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/130036
2024-11-08 16:07:58 +01:00
Falk David
4b1d542363 Merge branch 'blender-v4.3-release' 2024-11-08 13:14:49 +01:00
Falk David
f0614a4a3f Fix: GPv3: Regression when applying modifiers after recent commit
This was caused by 9a03f283e8.

The change disregarded the `orig_layers_to_apply` mask and
introduced some issues regarding clearing keyframes of deleted layers.

The fix does two things:
 * Add a `orig_layers_to_apply` set that contains the pointers of the
   original layers that we want to apply.
* Add a `orig_layers_to_clear` set that contains the pointers of original
  layers that need their keyframe cleared.

When a layer is removed during modifier execution, we don't want
the layer to be deleted in the original geometry. Instead we clear
the keyframes by deleting all the curves geometry. A layer
can be removed by e.g. using the  `Grease Pencil to Curves` node to
get curve instances, then the `Delete Geometry` node to delete
some instances, and finally `Curves to Grease Pencil` to convert back
to Grease Pencil.

Pull Request: https://projects.blender.org/blender/blender/pulls/130028
2024-11-08 13:08:58 +01:00
Jeroen Bakker
4a9d53f9f3 Merge branch 'blender-v4.3-release' 2024-11-08 12:30:33 +01:00
Jeroen Bakker
b86ed45fcb Fix unreported: Vulkan: Empty device list
The list of vulkan devices is empty. This regression was introduced by
91960b07db. Vulkan needs to initialize the
platform twice. Once when the backend starts, and the second time when
the device is selected. The device list is added when the backend
starts, but was cleared when the device was initialized, making the list
empty.

Pull Request: https://projects.blender.org/blender/blender/pulls/130020
2024-11-08 12:29:23 +01:00
Jeroen Bakker
b2e1677b36 Fix: Vulkan: Incorrect depth on ARM devices
When gl_FragDepth is defined in the fragment shader and the depth isn't
written to the driver would reset the value to 0. This PR fixes this by
not putting the gl_FragDepth in the shader when it uses the
`depth_unchanged` qualifier or doesn't find any usage in the GLSL.

Pull Request: https://projects.blender.org/blender/blender/pulls/130016
2024-11-08 12:27:46 +01:00
Pratik Borhade
b1bcdf8d53 Fix #130010: Fill mask crash with multires
&subdiv_ccg and node span in fill_mask_grids becomes invalid after
`BKE_sculpt_mask_layers_ensure` call (`sculpt->subdiv_ccg` pointer updated
in `BKE_scene_graph_evaluated_ensure`). To avoid this, move multires
reference and GridNode array after that function.

Pull Request: https://projects.blender.org/blender/blender/pulls/130014
2024-11-08 11:16:00 +01:00
Lukas Tönne
021e010a07 Merge branch 'blender-v4.3-release' 2024-11-08 10:22:58 +01:00
Lukas Tönne
449e7229f3 Fix #129749: Use consistent GPv3 color settings in different modes
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
2024-11-08 10:21:24 +01:00
Lukas Tönne
9a03f283e8 Fix #129346: GPv3: Merge layers into correct groups when applying modifier
Applying a modifier on Grease Pencil objects tries to maintain the
original layer order by inserting each layer after the previous. This
ignores layer groups and all layers get move to the root group.
This patch replaces the simple `previous_node` with a per-group pointer
map, which maintains order within each group only.

The code is also creating new layers when the original node of the same
name is a group. This was creating duplicate names which are not allowed
and break various things (layer editing buttons, panel open/close
toggles, etc.). Now these new layer names are made unique to avoid a
name conflict.

One remaining issue is that mixed layer/group ordering is lost: All the
layers get pushed to the bottom of the stack, due to the way
`geometry::merge_layers` ignores layer groups. The existing groups in
the orig data are not sorted along with the evaluated layers, so they
move to the top of the stack. This requires changes to `merge_layers`
and should be handled separately.

Pull Request: https://projects.blender.org/blender/blender/pulls/129943
2024-11-08 08:28:06 +01:00
Pratik Borhade
0fd2c747fc Fix #126076: GPv3: Strokes in multi-frame mode always use onion skinning colors
`grease_pencil_layer_final_tint_and_alpha_get` wrongly sets custom
 onion skinning color to "gpLayerTint"

Pull Request: https://projects.blender.org/blender/blender/pulls/129960
2024-11-08 08:12:31 +01:00
John Kiril Swenson
25f34c0614 Merge branch 'blender-v4.3-release' 2024-11-07 22:48:15 -06:00
YimingWu
54d957a44e Fix #129873: GPv3: Missing material name overlay
The option of showing material name overlay is present but the feature
was missing in GPv3. This fix adds material name overlay back for GPv3.

Pull Request: https://projects.blender.org/blender/blender/pulls/129936
2024-11-08 05:05:32 +01:00
Clément Foucault
4416e27b14 GPU: GLSL C++ stubs: Add support for depth and buffer sampler fetch 2024-11-08 00:28:59 +01:00
Clément Foucault
0a3008172b Cleanup: GPU: Silence shader warnings 2024-11-08 00:28:08 +01:00
Clément Foucault
62a5671587 Cleanup: DRW: Remove unused shader functions 2024-11-08 00:27:42 +01:00
Sean Kim
7262146c1f Merge branch 'blender-v4.3-release' 2024-11-07 13:20:47 -08:00
Sean Kim
5c880a5291 UI: Revert default brush icon to monochrome version
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

![image](/attachments/f1575814-88f0-44f7-8ab6-7b069ff09763)

Pull Request: https://projects.blender.org/blender/blender/pulls/129934
2024-11-07 22:13:58 +01:00
Germano Cavalcante
1633766c2e Refactor: move blenlib system_win32 to C++ 2024-11-07 17:33:27 -03:00
Falk David
5de9dd1786 Merge branch 'blender-v4.3-release' 2024-11-07 18:34:53 +01:00