Commit Graph

119511 Commits

Author SHA1 Message Date
Clément Foucault
fe213f80a4 GPU: Shader: Make info files generated
This is the first step of moving the create infos
back inside shader sources.

All info files are now treated as source files.
However, they are not considered in the include tree
yet. This will come in another following PR.

Each shader source file now generate a `.info` file
containing only the create info declarations.

This renames all info files so that they do not
conflict with their previous versions that were
copied (non-generated).

Pull Request: https://projects.blender.org/blender/blender/pulls/146676
2025-09-25 10:57:02 +02:00
Richard Antalik
e655243825 Fix: infinite loop when region is too small
When region is too small, `calculate_grid_step()` can return value of 0.
This can happen if the editor happens to be just few px wider than side panel.

The root cause was, that region pixelsize was calculated with
`BLI_rcti_size_x(&v2d->mask)`, but the result needs to be offset by 1.

Caused by ab43c57a2a

Pull Request: https://projects.blender.org/blender/blender/pulls/146365
2025-09-25 10:48:32 +02:00
Clément Foucault
e098441b5a GPU: Material: Improve limit of UBO size
This moves the UBO size limit to be a capability.
This allows to check if size fits the requirements before
creating it and avoids hitting an assert.

Rel #146705

Pull Request: https://projects.blender.org/blender/blender/pulls/146728
2025-09-25 09:44:12 +02:00
Clément Foucault
3cf7ce0fd1 Fix: Node: Integer overflow in GPU nodetree evaluation
This was caused by `stack_index` being stored as a `short`
even though the stack `index` inside `ntree_exec_begin` was
`int`.

Rel #146705

Pull Request: https://projects.blender.org/blender/blender/pulls/146733
2025-09-25 09:43:22 +02:00
Brady Johnston
c010bab779 Nodes: Reorder socket data types list
Currently there is a difference in the assigned accelerator keys for
Boolean attribute type for Store Named Attribute and Named Attribute.
For Named Attribute it is assigned <kbd>B</kbd> as a user would expect
but in the Store Named Attribute it is assigned <kbd>o</kbd> as it comes
after _Byte Color_ which leads to confusion when using lots of each node.

This PR changes the order of the socket types so simpler types come
first, and updates the attribute types to reflect this same ordering.

This fixes the issue with the accelerator keys and improves overall
consistency. The more specialised subtypes such as 8-Bit Integer, Byte
Color and 2D Vector all appear at the end of the menu in the same order.

This ordering will also be reflected in other nodes such as Sample Index,
Sample Curve etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/146722
2025-09-25 09:34:36 +02:00
Richard Antalik
97297bd167 Fix #146484: Stack overflow due to recursive strip rendering
When effect of adjustment layer strip is moved below the adjustment
layer, this causes infinite loop in strip rendering. Same happens when
you use multicam strip and set source channel to one of its effects.

This is fixed by passing `SeqRenderState` to the effects. If any strip
renders "seqbase" pointer of strip is stored in set in the render state
struct. If the pointer exists in this set, function returns without
rendering anything. In other words, The strip must never render itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/146624
2025-09-25 08:48:56 +02:00
Campbell Barton
84559f8bd4 Fix: trailing zeros added to the rounded value with split units
When units were split into larger and smaller values, the larger
value is rounded and should not show trailing zeros.
Trailing zeros should only be used for the smaller unit.

Ref !140790
2025-09-25 13:55:21 +10:00
Campbell Barton
a69dede3f1 Cleanup: minor changes to unit comments 2025-09-25 13:53:10 +10:00
Campbell Barton
2f3e6e69df Cleanup: rename BM_mesh_{validate=>is_valid}
The term validate is often used to make the data valid
(e.g. BKE_mesh_validate) where is this only checks the mesh is valid.
2025-09-25 11:22:23 +10:00
Aaron Carlisle
f16320e118 UI: Improve Movie Clip Display Aspect Ratio
- Disable animation support (consistent with image editor)
- Use property split layout
2025-09-24 20:20:15 -04:00
Aaron Carlisle
18d0532915 UI: Movie Clip Editor: Add Overlays Support
Move several clip and mask display options into a common Overlays popover,
consistent with other editors. Includes a global toggle (Shift-Alt-Z) to
show/hide all overlays at once.

Also adds the missing annotations toggle, cursor visibility toggle, and moves mask display options in
the Image Editor into the Overlays popover due to shared code paths.

See PR for images.

Pull Request: https://projects.blender.org/blender/blender/pulls/145895
2025-09-24 23:51:06 +02:00
Nika Kutsniashvili
e0392599f8 UI: Theme: Remove face dot color property
Mesh faces have a separate theme color for selected dots (1px dot in the center of the face),
in both the 3D Viewport and the Image Editor.

I don't think there is any justification for why that 1 pixel has to be a different color from rest
of the active face. Even if result isn't satisfying, we should be tweaking Face Selected color
for this purpose. 1 pixel doesn't deserve its own theme setting.

This PR removes property from both editors, and instead uses "Face Selected" color with alpha
hardcoded to 1 (removed properties didn't have alpha). Also note that dot is still visible in 3D viewport
because Face Selected color is different from Face Mode Selected color, which is used for faces
when dots are drawn.

There are no visual changes in default themes.

Pull Request: https://projects.blender.org/blender/blender/pulls/145364
2025-09-24 19:04:28 +02:00
Habib Gahbiche
2e8d5a238e Cleanup: Description for deprecated use_nodes
Pull Request: https://projects.blender.org/blender/blender/pulls/146721
2025-09-24 18:41:50 +02:00
Clément Foucault
34e5f0a4a6 Fix #146281: Overlay: Uninitialized data in Paint Mask
The early out case did not initialize the data.

This caused garbage data to be used for the visibility
flag, producing inconsistent result.

Pull Request: https://projects.blender.org/blender/blender/pulls/146704
2025-09-24 17:26:50 +02:00
Hans Goudey
fd76bfdd46 Fix #146350: Mesh edit "reverse/rotate colors" crash
MeshRuntime was null but required by the implementation
of the attribute API. This code is much hackier than necessary
anyway and should just use BMesh CustomData directly rather
than trying to be clever.

Also part of #122398.

Pull Request: https://projects.blender.org/blender/blender/pulls/146674
2025-09-24 17:10:48 +02:00
Sean Kim
eec8d81088 Fix: Use Laplacian as default relax method for UV sculpting
Introduced in e3894f0a07

Pull Request: https://projects.blender.org/blender/blender/pulls/146702
2025-09-24 16:35:40 +02:00
Habib Gahbiche
4c2a92e550 Compositor: Reintroduce scene.use_nodes as deprecated in Python API
This partially reverts c499adf3b8. We decided in #141278 to mark
`material.use_nodes` as deprecated instead of removing it. For
consistency reasons, we do the same for the Scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/146633
2025-09-24 16:13:36 +02:00
luz paz
279e20a9f2 Cleanup: Fix typos in source/blender/blenlib
Fixes some user-facing and non-user-facing typos. Found via codespell.

Pull Request: https://projects.blender.org/blender/blender/pulls/146111
2025-09-24 15:37:57 +02:00
Habib Gahbiche
db8188a794 Python: Nodes: deprecate 'world.use_nodes' instead of removing it
`world.use_nodes` was initially removed in #142342. However, in #141278
we decided not to remove `material.use_nodes` from the API to
avoid breaking exporters. This commit brings the removed
`world.use_nodes` back and marks it as deprecated.

Pull Request: https://projects.blender.org/blender/blender/pulls/146629
2025-09-24 14:57:46 +02:00
Habib Gahbiche
b33250f799 Nodes: Forward compatibility for World
Implement forward compatibility for World by always writing
`use_nodes=true` when saving blend files.

This was missed in #142342

Pull Request: https://projects.blender.org/blender/blender/pulls/146628
2025-09-24 14:49:47 +02:00
Omar Emara
5462d90fa8 Compositor: Make Bokeh Blur size input in pixels
This patch makes the Size input of the Bokeh Blur node defined in
pixels as opposed to being relative to 0.01 the greater dimension of the
image.

Pull Request: https://projects.blender.org/blender/blender/pulls/146367
2025-09-24 14:45:54 +02:00
Philipp Oeser
2f5f9a9cdb UI: clarify tooltip for "User Tooltips"
Even when disabled, one can force the tooltip display by holding ALT
**prior** to entering/hovering a control. This PR clarifies that.

(also clarified in the actual manual separately)

Resolves #146689

Pull Request: https://projects.blender.org/blender/blender/pulls/146707
2025-09-24 13:41:44 +02:00
Omar Emara
92be913a2a Compositor: Remove XY scale from Displace node
This patch removes the XY scale inputs from the Displace node. The
inputs were redundant since they were just multiplied by the vector.
This simplifies the node and improves performance slightly.

Additionally, the Vector input was renamed to Displacement since it no
longer specifies a direction.

Pull Request: https://projects.blender.org/blender/blender/pulls/146356
2025-09-24 13:33:24 +02:00
Bastien Montagne
91d2d54703 Fix Outliner File view not grouping indirectly linked libraries.
Indirectly linked libraries are supposed to be put under their 'best
parent' library, this has been broken in the outliner for some times.
for several reasons.

This commit addresses the 'outliner hierarchy building' part of the
problem. The 'everything ends up directly linked' is addressed by
!146667.

Pull Request: https://projects.blender.org/blender/blender/pulls/146669
2025-09-24 11:57:02 +02:00
Bastien Montagne
0224d3083b Fix writefile making all linked IDs directly linked.
Regression from 435b6743fd, when considering UI ID usages to define
if IDs are weekly direclty linked, cases where this should not be the
case (e.g. Outliber ID pointers) ended up making them directly linked.

So essentially, all linked data became directly linked when writing the
blendfile on disk!

Fixed by adding a new `IDWALK_CB_WRITEFILE_IGNORE`, to tell the
writefile code that it can ignore this ID usage (similar to the existing
`IDWALK_CB_READFILE_IGNORE` one).

Pull Request: https://projects.blender.org/blender/blender/pulls/146667
2025-09-24 11:55:53 +02:00
Clément Foucault
9b7086a422 GPU: Shader Preprocess: Port more function to use parser
This allows to share the parsed structure between each
preprocessing step if no mutation occurs.

Also remove `matrix_constructor_linting` as this is
now enforced by the C++ compilation. Same thing for
`array_constructor_linting`.

Pull Request: https://projects.blender.org/blender/blender/pulls/146666
2025-09-24 11:47:23 +02:00
Bastien Montagne
d8ef3b3752 Fix (unreported): Sequencer: assert/crash when showing Add->Scene menu.
Regression from 851e5b55af3... Please do test changes on debug builds
before committing...
2025-09-24 10:26:32 +02:00
Dalai Felinto
baff9dd8a6 VSE: Story Tools: Scene Asset behaviour: always add a new scene
* If the asset was local to the file, creates a copy of it.
* If the asset was from an external asset library makes sure it is appended.

Design ref: #145522

Pull Request: https://projects.blender.org/blender/blender/pulls/146657
2025-09-24 09:58:30 +02:00
Sean Kim
1c7489b841 Fix #146398: Crash when exiting sculpt mode in load_post
It is possible, though unlikely, that some sculpt mode runtime data will
be uninitialized when various application handlers run. This commit
makes the minimal change to avoid crashing in this case when exiting
sculpt mode when Dyntopo is enabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/146647
2025-09-24 09:30:22 +02:00
Campbell Barton
1a93cd9148 Cleanup: quiet undeclared function warnings
Resolve warnings from !127711.

Ref !146685
2025-09-24 04:40:38 +00:00
Campbell Barton
f313540686 Cleanup: rename flushing functions for clarity
It wasn't clear how `*_flush` and `*_flush_mode` were different,
rename `*_flush` to `*_flush_from_verts`.
2025-09-24 14:26:28 +10:00
Campbell Barton
8930b1a96a Cleanup: format 2025-09-24 14:00:43 +10:00
Campbell Barton
30485e6122 Cleanup: grammar, confusing wording 2025-09-24 03:06:11 +00:00
Oxicid
a714472194 PyAPI: Implement vectorcall support for rna_func
Use vectorcall for ~20-30% speedup calling Python/RNA functions.

Ref !146366
2025-09-24 02:41:08 +00:00
Campbell Barton
580af50709 Cleanup: minor naming changes for RNA functions
Split out from !146366.
2025-09-24 02:41:07 +00:00
Brecht Van Lommel
022d0edf22 Fix: Theme color picker not working correctly after recent changes
* HSV buttons were missing due to wrong visibility check
* Wrong HSV values with ACEScg working space

Ref #146612

Pull Request: https://projects.blender.org/blender/blender/pulls/146680
2025-09-24 02:32:51 +02:00
Hans Goudey
db4d9067d0 Shape Keys: Options to mirror shape keys in update, join operators
As described in #135095, this adds a "mirror" option to the "Join as
Shapes" and "Update from Objects" operators, and additional menu items
with the option enabled. Like the operators, this is a convenience
feature that's functionally the same as selecting all shape keys with
changed data and running the existing "Flip" operator.

Pull Request: https://projects.blender.org/blender/blender/pulls/144098
2025-09-23 22:12:10 +02:00
Hans Goudey
6daf1dd2f2 Fix: Grain size calculation for setting custom normals
Recent change 3a6a663a15 has some logic issues.
First, the grain size was clamped to be never lower than 256, which
doesn't make sense since the size of the array is never greater than
the number of threads. The numbers used in the division were also large
enough that multithreading wouldn't be used in many realistic cases
anyway. There's no need to cap the grain size at 1024, and also
`safe_divide` doesn't make sense in this scenario.

Pull Request: https://projects.blender.org/blender/blender/pulls/144872
2025-09-23 22:11:01 +02:00
Jesse Yurkovich
7c75651b3b IO: Remove visible_objects_only property for USD and Alembic export
To help reduce confusion, remove this property as we believe it has
little to no actual utility. Visibility, instead, remains controlled
with the `evaluation_mode` option.

Ref #134012
See PR for discussion and description of what effect this option used to
have.

Pull Request: https://projects.blender.org/blender/blender/pulls/144600
2025-09-23 22:04:36 +02:00
Brecht Van Lommel
eb32994b50 Color Management: Add separate RGB/HSV and Linear/Perceptual enum
So that is it possible to edit Linear HSV. Somehow the two enums don't feel
very elegant to work with, but I don't immediately have a better idea on
how to organize this UI.

I also tried to always show both the RGB and HSV sliders, but it felt
very noisy to have the HSV slider updating as you edit RGB and vice versa.

Pull Request: https://projects.blender.org/blender/blender/pulls/146612
2025-09-23 19:35:53 +02:00
Brecht Van Lommel
09d9239efd Fix #146619: Random Color workbench mode too saturated with ACEScg working space
Pull Request: https://projects.blender.org/blender/blender/pulls/146664
2025-09-23 18:56:31 +02:00
Dalai Felinto
e8deba14c3 Fix #145525: Scene switch should not affect viewport perspective mode
The existing behaviour traces back from pre-2.5 era. It seems like a
general sanitization technique for any operator which may change the
view transformation.

While it still makes sense to switch to PERSPECTIVE mode when actively
calling a view operator, I don't think the same should be said by simply
switching the active scene.

This PR makes it so a temporary flag is set when switching to a scene that
has no camera. This flag is kept around until we deliberately change
perspective mode. We can eventually make it so the flag is reset again in
more occasions. But the patch is good as it is.

Ref: !146364
2025-09-23 18:53:20 +02:00
Jesse Yurkovich
ec4db5825d Cleanup: Alembic: Remove deprecated scene.alembic_export API
This deprecated function looks to have been long forgotten. Both import
and export are already available as `bpy.ops.wm.alembic_import` and
`bpy.ops.wm.alembic_export`.

Pull Request: https://projects.blender.org/blender/blender/pulls/146556
2025-09-23 18:47:04 +02:00
Omar Emara
9a2c7f334b Compositor: Clarify Alpha Over input names
This patch renames the input of the Alpha Over node to use Background
and Foreground instead of just Image.

Pull Request: https://projects.blender.org/blender/blender/pulls/146352
2025-09-23 18:08:06 +02:00
Falk David
bd07749a82 Fix: VSE: Scene Sync doesn't account for scene start frame
The time synchronization function assumed that the content
of the scene strip starts at frame 0, but it should start
at the start frame of the scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/146653
2025-09-23 18:02:03 +02:00
Omar Emara
7ec89d1bfb Compositor: Reorder inputs accordingly to importance
This patch reorders the inputs of some of the compositor nodes
accordingly to their importance. The importance is already quantified
internally using the domain priority of the input, so we needn't make
any subjective judgement and just order by the priority.

This breaks forward and backward compatibility if input indices were
used as opposed to input identifiers due to the different order.
Handling compatibility is not impossible, but is difficult, and it was
already ignored in many past node changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/146311
2025-09-23 17:32:07 +02:00
Julian Eisel
bafb63a654 Assets/BPY: Remove unused catalog path RNA/BPY type
This was used internally only until 2fbf206491 and was planned for
removal in 5.0, see blender/blender#122330.
2025-09-23 17:24:34 +02:00
Clément Foucault
acb2f02910 EEVEE: Reduce necessary includes
This saves a few milisecond of compile time per shader.

This removes the need for occlusion lib when not using occlusion
node.

To improve detection of uneeded includes, we add a new logging
system which output can be fed to mermaid to inspect dependencies.

The new dependencies can be inspected using `--log "gpu.shader_dependencies"`

Example pasted here:
```mermaid
flowchart LR
draw_curves_lib.glsl_7298 --> gpu_shader_math_constants_lib.glsl_600
style gpu_shader_math_constants_lib.glsl_600 fill:#0f0
gpu_shader_math_matrix_conversion_lib.glsl_1032 --> gpu_shader_math_base_lib.glsl_1406
style gpu_shader_math_base_lib.glsl_1406 fill:#1e0
gpu_shader_math_matrix_conversion_lib.glsl_1032 --> gpu_shader_math_euler_lib.glsl_461
style gpu_shader_math_euler_lib.glsl_461 fill:#0f0
gpu_shader_math_matrix_compare_lib.glsl_2964 --> gpu_shader_math_vector_compare_lib.glsl_2489
style gpu_shader_math_vector_compare_lib.glsl_2489 fill:#2d0
gpu_shader_math_matrix_conversion_lib.glsl_1032 --> gpu_shader_math_matrix_compare_lib.glsl_2964
style gpu_shader_math_matrix_compare_lib.glsl_2964 fill:#2d0
gpu_shader_math_matrix_conversion_lib.glsl_1032 --> gpu_shader_math_quaternion_lib.glsl_395
style gpu_shader_math_quaternion_lib.glsl_395 fill:#0f0
gpu_shader_math_matrix_conversion_lib.glsl_1032 --> gpu_shader_utildefines_lib.glsl_3112
style gpu_shader_utildefines_lib.glsl_3112 fill:#3c0
draw_curves_lib.glsl_7298 --> gpu_shader_math_matrix_conversion_lib.glsl_1032
style gpu_shader_math_matrix_conversion_lib.glsl_1032 fill:#1e0
draw_curves_lib.glsl_7298 --> gpu_shader_math_matrix_transform_lib.glsl_706
style gpu_shader_math_matrix_transform_lib.glsl_706 fill:#0f0
eevee_surf_deferred_frag.glsl_4531 --> draw_curves_lib.glsl_7298
style draw_curves_lib.glsl_7298 fill:#780
eevee_surf_deferred_frag.glsl_4531 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
eevee_gbuffer_lib.glsl_14598 --> gpu_shader_math_vector_reduce_lib.glsl_1383
style gpu_shader_math_vector_reduce_lib.glsl_1383 fill:#1e0
eevee_gbuffer_lib.glsl_14598 --> gpu_shader_codegen_lib.glsl_6143
style gpu_shader_codegen_lib.glsl_6143 fill:#690
eevee_gbuffer_lib.glsl_14598 --> gpu_shader_math_vector_lib.glsl_5038
style gpu_shader_math_vector_lib.glsl_5038 fill:#5a0
eevee_gbuffer_lib.glsl_14598 --> gpu_shader_utildefines_lib.glsl_3112
style gpu_shader_utildefines_lib.glsl_3112 fill:#3c0
eevee_gbuffer_write_lib.glsl_7324 --> eevee_gbuffer_lib.glsl_14598
style eevee_gbuffer_lib.glsl_14598 fill:#e10
eevee_surf_deferred_frag.glsl_4531 --> eevee_gbuffer_write_lib.glsl_7324
style eevee_gbuffer_write_lib.glsl_7324 fill:#780
eevee_ambient_occlusion_lib.glsl_10738 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
draw_math_geom_lib.glsl_5172 --> gpu_shader_math_vector_lib.glsl_5038
style gpu_shader_math_vector_lib.glsl_5038 fill:#5a0
draw_math_geom_lib.glsl_5172 --> gpu_shader_math_vector_reduce_lib.glsl_1383
style gpu_shader_math_vector_reduce_lib.glsl_1383 fill:#1e0
eevee_ray_types_lib.glsl_2390 --> draw_math_geom_lib.glsl_5172
style draw_math_geom_lib.glsl_5172 fill:#5a0
eevee_ray_types_lib.glsl_2390 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
eevee_ray_types_lib.glsl_2390 --> gpu_shader_math_matrix_transform_lib.glsl_706
style gpu_shader_math_matrix_transform_lib.glsl_706 fill:#0f0
gpu_shader_math_safe_lib.glsl_1235 --> gpu_shader_math_constants_lib.glsl_600
style gpu_shader_math_constants_lib.glsl_600 fill:#0f0
eevee_ray_types_lib.glsl_2390 --> gpu_shader_math_safe_lib.glsl_1235
style gpu_shader_math_safe_lib.glsl_1235 fill:#1e0
eevee_ray_types_lib.glsl_2390 --> gpu_shader_ray_lib.glsl_137
style gpu_shader_ray_lib.glsl_137 fill:#0f0
eevee_ambient_occlusion_lib.glsl_10738 --> eevee_ray_types_lib.glsl_2390
style eevee_ray_types_lib.glsl_2390 fill:#2d0
eevee_sampling_lib.glsl_4291 --> gpu_shader_math_base_lib.glsl_1406
style gpu_shader_math_base_lib.glsl_1406 fill:#1e0
eevee_sampling_lib.glsl_4291 --> gpu_shader_math_constants_lib.glsl_600
style gpu_shader_math_constants_lib.glsl_600 fill:#0f0
eevee_sampling_lib.glsl_4291 --> gpu_shader_math_safe_lib.glsl_1235
style gpu_shader_math_safe_lib.glsl_1235 fill:#1e0
eevee_ambient_occlusion_lib.glsl_10738 --> eevee_sampling_lib.glsl_4291
style eevee_sampling_lib.glsl_4291 fill:#4b0
eevee_ambient_occlusion_lib.glsl_10738 --> eevee_utility_tx_lib.glsl_1225
style eevee_utility_tx_lib.glsl_1225 fill:#1e0
eevee_ambient_occlusion_lib.glsl_10738 --> gpu_shader_math_base_lib.glsl_1406
style gpu_shader_math_base_lib.glsl_1406 fill:#1e0
gpu_shader_math_fast_lib.glsl_921 --> gpu_shader_math_constants_lib.glsl_600
style gpu_shader_math_constants_lib.glsl_600 fill:#0f0
eevee_ambient_occlusion_lib.glsl_10738 --> gpu_shader_math_fast_lib.glsl_921
style gpu_shader_math_fast_lib.glsl_921 fill:#0f0
gpu_shader_math_vector_safe_lib.glsl_5847 --> gpu_shader_math_safe_lib.glsl_1235
style gpu_shader_math_safe_lib.glsl_1235 fill:#1e0
eevee_ambient_occlusion_lib.glsl_10738 --> gpu_shader_math_vector_safe_lib.glsl_5847
style gpu_shader_math_vector_safe_lib.glsl_5847 fill:#5a0
eevee_ambient_occlusion_lib.glsl_10738 --> gpu_shader_utildefines_lib.glsl_3112
style gpu_shader_utildefines_lib.glsl_3112 fill:#3c0
eevee_nodetree_frag_lib.glsl_395 --> eevee_ambient_occlusion_lib.glsl_10738
style eevee_ambient_occlusion_lib.glsl_10738 fill:#a50
eevee_nodetree_frag_lib.glsl_395 --> eevee_geom_types_lib.glsl_682
style eevee_geom_types_lib.glsl_682 fill:#0f0
draw_model_lib.glsl_2563 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
eevee_nodetree_lib.glsl_16051 --> draw_model_lib.glsl_2563
style draw_model_lib.glsl_2563 fill:#2d0
draw_object_infos_lib.glsl_1114 --> draw_model_lib.glsl_2563
style draw_model_lib.glsl_2563 fill:#2d0
eevee_nodetree_lib.glsl_16051 --> draw_object_infos_lib.glsl_1114
style draw_object_infos_lib.glsl_1114 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
eevee_nodetree_lib.glsl_16051 --> eevee_renderpass_lib.glsl_1793
style eevee_renderpass_lib.glsl_1793 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> eevee_utility_tx_lib.glsl_1225
style eevee_utility_tx_lib.glsl_1225 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> gpu_shader_codegen_lib.glsl_6143
style gpu_shader_codegen_lib.glsl_6143 fill:#690
eevee_nodetree_lib.glsl_16051 --> gpu_shader_math_base_lib.glsl_1406
style gpu_shader_math_base_lib.glsl_1406 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> gpu_shader_math_safe_lib.glsl_1235
style gpu_shader_math_safe_lib.glsl_1235 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> gpu_shader_math_vector_reduce_lib.glsl_1383
style gpu_shader_math_vector_reduce_lib.glsl_1383 fill:#1e0
eevee_nodetree_lib.glsl_16051 --> gpu_shader_utildefines_lib.glsl_3112
style gpu_shader_utildefines_lib.glsl_3112 fill:#3c0
eevee_nodetree_frag_lib.glsl_395 --> eevee_nodetree_lib.glsl_16051
style eevee_nodetree_lib.glsl_16051 fill:#f00
gpu_shader_material_ambient_occlusion.glsl_558 --> gpu_shader_math_vector_safe_lib.glsl_5847
style gpu_shader_math_vector_safe_lib.glsl_5847 fill:#5a0
eevee_nodetree_frag_lib.glsl_395 --> gpu_shader_material_ambient_occlusion.glsl_558
style gpu_shader_material_ambient_occlusion.glsl_558 fill:#0f0
eevee_nodetree_frag_lib.glsl_395 --> gpu_shader_material_emission.glsl_380
style gpu_shader_material_emission.glsl_380 fill:#0f0
gpu_shader_material_output_material.glsl_850 --> gpu_shader_material_transform_utils.glsl_2136
style gpu_shader_material_transform_utils.glsl_2136 fill:#2d0
eevee_nodetree_frag_lib.glsl_395 --> gpu_shader_material_output_material.glsl_850
style gpu_shader_material_output_material.glsl_850 fill:#0f0
eevee_nodetree_frag_lib.glsl_395 --> gpu_shader_material_world_normals.glsl_128
style gpu_shader_material_world_normals.glsl_128 fill:#0f0
eevee_surf_deferred_frag.glsl_4531 --> eevee_nodetree_frag_lib.glsl_395
style eevee_nodetree_frag_lib.glsl_395 fill:#0f0
eevee_surf_deferred_frag.glsl_4531 --> eevee_sampling_lib.glsl_4291
style eevee_sampling_lib.glsl_4291 fill:#4b0
eevee_surf_lib.glsl_3650 --> draw_view_lib.glsl_3551
style draw_view_lib.glsl_3551 fill:#3c0
eevee_surf_lib.glsl_3650 --> gpu_shader_codegen_lib.glsl_6143
style gpu_shader_codegen_lib.glsl_6143 fill:#690
eevee_surf_lib.glsl_3650 --> gpu_shader_math_base_lib.glsl_1406
style gpu_shader_math_base_lib.glsl_1406 fill:#1e0
eevee_surf_lib.glsl_3650 --> gpu_shader_math_vector_safe_lib.glsl_5847
style gpu_shader_math_vector_safe_lib.glsl_5847 fill:#5a0
eevee_surf_deferred_frag.glsl_4531 --> eevee_surf_lib.glsl_3650
style eevee_surf_lib.glsl_3650 fill:#3c0
```

Pull Request: https://projects.blender.org/blender/blender/pulls/146580
2025-09-23 17:21:56 +02:00
Julian Eisel
c7b91903df BPY/UI: Rename pie menu emboss type
Renames `'RADIAL_MENU'` to `'PIE_MENU'`, to more clearly describe what
it relates to. Internally this was already done with e425faf696.

This is a 5.0 compatibility breaking change. But I couldn't find any
usages of it in bundled scripts.

Pull Request: https://projects.blender.org/blender/blender/pulls/146651
2025-09-23 16:52:46 +02:00
Jorn Visser
e90c08fa98 Image Paint: Support single pixel drawing
With !142495, the minimum brush radius became 0.5px, so clamp to that
instead of 1px to allow drawing single pixels. Also change how drawing
with anti-aliasing disabled works to avoid 1 pixel brush strokes not
always appearing. Now when AA is disabled, snap the cursor to either
the corners or centers of the pixels, depending on if the diameter is even
or odd, respectively.

Fixes #71403

Pull Request: https://projects.blender.org/blender/blender/pulls/146384
2025-09-23 16:06:52 +02:00