Commit Graph

153937 Commits

Author SHA1 Message Date
demeterdzadik@gmail.com
a1dfd67cbf New Colors v4 2025-09-16 17:59:54 +02:00
demeterdzadik@gmail.com
43f8efbf82 Partial versioning code, very much WIP
Just committing to transfer to another computer.
2025-09-16 17:59:54 +02:00
Sybren A. Stüvel
229a84ef90 Move versioning into the 'this always runs' block until we land the PR 2025-09-16 17:59:54 +02:00
demeterdzadik@gmail.com
d4c99b871c remove prints 2025-09-16 17:59:03 +02:00
demeterdzadik@gmail.com
17ea75d929 Add versioning 2025-09-16 17:59:03 +02:00
demeterdzadik@gmail.com
ab98959af0 New bone color presets
See design task:
https://projects.blender.org/blender/blender/issues/112635
2025-09-16 17:58:22 +02:00
Clément Foucault
9d0fe5573b GPU: FrameBuffer: Remove GPUFrameBuffer wrapper opaque type
This is the first step into merging DRW_gpu_wrapper.hh into
the GPU module.

This is very similar to #119825.

Pull Request: https://projects.blender.org/blender/blender/pulls/146372
2025-09-16 17:50:48 +02:00
Clément Foucault
ecc495ac39 EEVEE: Optimize Principled BSDF compilation time
This removes unused closure branches in the principled BSDF
code using the Material flags.

On top of this, use constants for weights to use compiler
dead code eliminitation for unused branches when there
is different variants of the principled BSDF node used.

Finally, remove Gbuffer packing cases that are not present
inside the nodetree.

Testing with the same setup as #145347:
|          | main (ms) |  PR (ms) |   Delta (ms) |
| -------- | ----------- | ------------ |------------ |
| Nvidia   |         174 |  132 (1.31x) |          42 |
| Mesa AMD |         191 |  170 (1.12x) |         21 |

Barbershop compilation time is almost equal because it is not using
the principled BSDF.

Rel #145347

Pull Request: https://projects.blender.org/blender/blender/pulls/146324
2025-09-16 16:44:01 +02:00
Sean Kim
3995359236 Tests: Add UI test for verifying all sculpt tool properties
This commit adds a UI test that activates each of the default tools for
a mesh in Sculpt Mode and verifies that no Python errors are emitted
when the corresponding tool settings are displayed to the user.

Note that this does not test all of the default bundled brushes.

Pull Request: https://projects.blender.org/blender/blender/pulls/144397
2025-09-16 16:15:47 +02:00
Philipp Oeser
60978e0b90 Fix #146349: 3D cursor still draws even though location is offscreen
Can happen if you set cursor location by snapping or manually.

In order to really skip drawing in `draw_output`, we have to set
`enabled_` to false in `begin_sync`.
This is already done for the "simple" cases covered by
`is_cursor_visible_XXX` but not for the "special" case where the cursor
is clipped in the view.

This is what this PR does.

Pull Request: https://projects.blender.org/blender/blender/pulls/146354
2025-09-16 16:09:21 +02:00
Clément Foucault
9bbbd833b2 Fix: Material: Compilation error for GPU material using voronoi node
This was caused by a wrong include.
2025-09-16 14:50:03 +02:00
Sean Kim
7eb84ebd90 Python: Print script errors with CLOG
Currently, when a python error is encountered when rendering the UI, the
corresponding message is printed to stdout / stderr via `PyErr_Print`,
this patch modifies behavior so that a cursory message is also printed
with CLOG

This has the benefit of allowing for testing via
`--debug-exit-on-error`, which aborts Blender when an error message is
printed.

Pull Request: https://projects.blender.org/blender/blender/pulls/146296
2025-09-16 14:34:14 +02:00
Julian Eisel
0a1b7ca067 UI: Amend description of asset shelf registration property
Unlike some other UI types, specifying the space type with this property
doesn't guarantee the asset shelf will only be shown in this space type.  This
is an important behavioral detail that's easily missed.
2025-09-16 14:15:35 +02:00
Jacques Lucke
ba81f03c41 Fix: Geometry Nodes: assert with a boolean input after recent refactor
The bug was there before, which is now found by an assert added in
84511b8509.

This used to be an integer property in the past before there were
boolean id properties.
2025-09-16 13:56:44 +02:00
Weizhen Huang
ba23257ec7 Fix: Cycles: volume octree should estimate extrema in the current segment
Was sampling the complete ray segment instead

Pull Request: https://projects.blender.org/blender/blender/pulls/146320
2025-09-16 13:02:50 +02:00
Brecht Van Lommel
033b2f8d5d Cleanup: Initialize closure weight to silence warning on Windows
This appears to be a false positive. It warns when the
function gets called with this argument, but the function
does not actually use it.

Pull Request: https://projects.blender.org/blender/blender/pulls/146175
2025-09-16 11:35:31 +02:00
Philipp Oeser
b474325aa1 Fix #146288: Crash displaying frames without a scene
Caused by ab43c57a2a

The VSE allows for "no scene", prior to above commit an "arbitrary"
framerate of 25 was hardcoded to display "something" in that case.

To resolve, pick what we defined as default for framerate (getting rid
of the "arbitrary") in case we have no (VSE) scene.

NOTE: that is 24 atm (instead of the hardcoded 25 we had before)
Pull Request: https://projects.blender.org/blender/blender/pulls/146300
2025-09-16 10:56:59 +02:00
Pablo Vazquez
fa6be590d9 UI: Move OpenGL render operators to sub-menu
Move 3D Viewport and Sequencer OpenGL render operators into a
"Render Preview" sub-menu.

The goal is to make the operation more clear, and being able to add
new entries to render the active scene or Sequencer scene (handy when
using the new "Sync Scene").

This also reduces the length of the `View` menu which in some cases
can get quite long.

See PR for details and screenshots.

Resolves #146302

Pull Request: https://projects.blender.org/blender/blender/pulls/146316
2025-09-16 10:44:29 +02:00
T0MIS0N
416b9990c8 Fix: Artifacting in experimental texture paint on non-manifold meshes
When texture painting a non-manifold mesh, various artifacts are created
on the image texture.

To add seams to the edges of non-manifold UV islands, the texture
painting system reads and writes pixels near the edge of the UV islands.

The offset calculations used to find pixel positions for reading and
writing were not accounting for color channels (RGBA) in the pixel data.
Because of this, the reading function corrupted the color data for the
seams, and the writing function caused the seams to be scaled down and
repeated.

Pull Request: https://projects.blender.org/blender/blender/pulls/146110
2025-09-16 10:05:24 +02:00
Oxicid
b27b7b1803 Fix #146171: Pack Islands from Python fails if Escape has been pressed
Ref !146195
2025-09-16 18:00:30 +10:00
Philipp Oeser
d980cea379 Fix #146252: Grease Pencil: Tag ID update after convert from text
Same situation as in #138793, so same solution as 1cb20d444e

Converting from text (via legacy curves) to grease pencil with "Keep
Original" option enabled can cause the new grease pencil ID to not be
evaluated, leading to an situation where a evaluated grease pencil
object would point to the original legacy curve ID as its object data.
This fix added a depsgraph tag so it ensures the COW ID is the latest.

Pull Request: https://projects.blender.org/blender/blender/pulls/146314
2025-09-16 09:05:51 +02:00
Clément Foucault
c3688e9d05 Fix #146132: EEVEE: Use uniform to additional data layer
Workaround driver bug.

Pull Request: https://projects.blender.org/blender/blender/pulls/146329
2025-09-16 08:57:35 +02:00
Campbell Barton
2e85163d10 Cleanup: use std::trunc(..) 2025-09-16 16:44:14 +10:00
Campbell Barton
7e51e78696 Fix #141547: Python API: Filebrowser crash in background mode
Raise an exception instead of crashing when calling deselect_all from
the file selector in background mode.
2025-09-16 16:30:21 +10:00
Campbell Barton
66c19a21d8 Fix #145557: Memory leak on exit with custom wayland cursor shapes
While the leak only occurred on GNOME, there is no guarantee the
compositor releases cursor buffer before exiting.
2025-09-16 15:25:14 +10:00
Campbell Barton
96d7c5c4cd Cleanup: use braces in mathutils switch statements
Also move error checking before variable declarations.
2025-09-16 14:53:58 +10:00
Oxicid
b2176bfdd7 PyAPI: use the vectorcall protocol for mathutils types
The Vectorcall protocol avoids creating a tuple, and also provides the
number of arguments in advance, providing a ~1.6x speedup for creation
of mathutils types.

Ref !146237
2025-09-16 04:50:38 +00:00
Jesse Yurkovich
d26a79b144 Core: Reduce cost of DupliObject random_id generation
Each dupli is given a PersistentId which is 8 integers, 1 for each level
of recursive duplication that Blender supports. When an instance belongs
to fewer than 8 levels, the id is padded with sentinel values for the
remaining levels. For example, a 2 level dupli may have a persistent id
like:`[7, 4, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX]`

When calculating the instance's `random_id` we were considering all 8
values of the Persistent Id which is unnecessary and wasteful. Now we
only use the minimal values necessary. This does mean that the Object
Info: Random material socket changes values from prior versions however.

This improves the performance of the viewport in some instancing
scenes by roughly 4-6%.

Co-authored-by: Bastien Montagne <mont29@noreply.localhost>
Pull Request: https://projects.blender.org/blender/blender/pulls/145150
2025-09-16 02:15:43 +02:00
Lukas Stockner
dcc5ac4e44 Fix: Cycles: Metal error in unrelated test after Sky Texture change
For some reason, the `underwater_caustics` test was failing on Metal
after #140480 even though that test doesn't use the Sky Texture.

After messing with the file for a while, going back to the previous version
and adding the changes back one at a time, I've now arrived at a version
that behaves the same way as the #140480 version without breaking the test.

No idea what is the underlying issue, but we've had problems with the MNEE
kernels before so maybe just a compiler thing.

Pull Request: https://projects.blender.org/blender/blender/pulls/146335
2025-09-16 01:15:18 +02:00
Hans Goudey
c9cd749bf1 Cleanup: Use attribute API for "Reset UVs" function
Also make the implementation local, and take an attribute name
argument rather than the index of the UV map.

Pull Request: https://projects.blender.org/blender/blender/pulls/146342
2025-09-15 23:09:35 +02:00
Hans Goudey
0686ceffd1 Fix: Geometry Nodes output attributes hidden
Caused by ad27211b77
2025-09-15 15:35:18 -04:00
Jeroen Bakker
47fc709987 Fix #146313: Vulkan: Memory leak HDR backbuffer shader
Oversight in !146170 where shader pointers where overwritten each
frame. Should also be a performance regression.

Pull Request: https://projects.blender.org/blender/blender/pulls/146319
2025-09-15 21:01:25 +02:00
Casey Bianco-Davis
ce2005318a Fix: Grease Pencil: Points with zero aspect ratio not displayed
A aspect ratio less than or equal to zero will cause point to not be
displayed.
This behavior problematic because use strokes create by Geometry Nodes
(or bugs) can cause the `aspect_ratio` to default to zero.
And as there is currently no operator to set `aspect_ratio` this
invisible geometry can not be fixed by most users.

This PR fixes this by returning `1.0f` when the `aspect_ratio` is
invalided.

Pull Request: https://projects.blender.org/blender/blender/pulls/146279
2025-09-15 18:51:33 +02:00
Casey Bianco-Davis
4fb784b97f Fix #142691: Grease Pencil: Reset Vertex Color obstructs materials
The default value for the `vertex_color` attribute is `0.0f` not `1.0f`
so the `Reset Vertex Color` operator should set zero, to no obstruct
the base material.

Candidate for backport to 4.5 LTS.

Pull Request: https://projects.blender.org/blender/blender/pulls/146277
2025-09-15 18:41:00 +02:00
Casey Bianco-Davis
51f9fccc81 Fix: Grease Pencil: Draw tool default aspect_ratio and u_scale to zero
The draw tool would create the `aspect_ratio` and `u_scale` attributes
if they did not exist, but would set them to `0.0f` not `1.0f`

Pull Request: https://projects.blender.org/blender/blender/pulls/146276
2025-09-15 18:38:05 +02:00
Lukas Stockner
4eee95c0f9 Fix: Cycles: Incorrect thin film IOR for backfacing Glass with OSL
Thanks to @main-menu-theme for noticing this!
2025-09-15 18:21:15 +02:00
Pablo Vazquez
ae7f3a0d18 Fix #146284: Missing Navigation Bar in Preferences
Follow up to !146169

- Add versioning so the new sidebar shows up in old files.
- Remove the hidden flag so it shows up in new Preferences editors.
- Add "Sidebar" toggle to the View menu, and expose region toggle.

Pull Request: https://projects.blender.org/blender/blender/pulls/146321
2025-09-15 18:11:37 +02:00
marcopavanello
084aefd0e0 Render: Add Multiple Scattering Sky Texture
This mode is based on the same athmospheric model as the previous one, but now
also accounts for multiple scattering and reflections from the ground.
This increases the accuracy, especially at low elevations.

Also renames some options for consistency:
- The previous "Nishita" model is now "Single Scattering"
- "Dust" is now "Aerosols"
- Default altitude is now 100m.

Co-authored-by: Lukas Stockner <lukas@lukasstockner.de>
Pull Request: https://projects.blender.org/blender/blender/pulls/140480
2025-09-15 18:08:28 +02:00
Hans Goudey
cf0703aa6e Sculpt: Improve and optimize undo data compression
Prefilter the position float data similar to what was done recently for
point caches in 3d9155eb0a (more information about this
compression technique is linked there). Also avoid reallocating an
array for temporary data when processing each BVH node. The results
are great relative to the size of the change:

- Building the compressed undo step data gets 5.2x faster (25 to 5 ms)
- Restoring the compressed undo step on undo is 1.8x faster (10 to 5 ms)
- The memory usage for an undo step is 1.6x smaller (23 to 14 MB)

I Tested on a mesh with 1.8 million vertices, with an operation affecting
the entire mesh. The mesh data affected will have an affect on the results.

Pull Request: https://projects.blender.org/blender/blender/pulls/146093
2025-09-15 17:57:36 +02:00
Sybren A. Stüvel
b466c6a99f Fix #145635: Tree View: Selection not working
Adjust the poll function of the 'Set Active Modifier' operator
(`object.modifier_set_active`) to only return `true` when it's run in a
context that actually may have a modifier. This makes it work in the
Modifiers panels, but not in other panels, so that the 'mouse click'
event can be used for other operators (like tree view selection).

This is not a perfect solution, as the modifier panel may use tree views
in some future as well, but at least it seems to fix the 'unbreak now'
issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/146325
2025-09-15 17:49:07 +02:00
Casey Bianco-Davis
63a5206145 Fix: Curves: Select Alternate operator not selecting handles
This makes it so that the `Select Grouped` operator will selected Bezier
handles. And Points with handles selected will be used included in the
group.

Part of #121574

Pull Request: https://projects.blender.org/blender/blender/pulls/145191
2025-09-15 17:37:21 +02:00
Clément Foucault
50283b9573 GPU: Split GLSL, C++ and metal shader defines
This makes all the defines and boiler plate code use
the generated source include system.

This makes source hierarchy more understandable.

Pull Request: https://projects.blender.org/blender/blender/pulls/146289
2025-09-15 17:22:19 +02:00
Jeroen Bakker
1dedbe3f9a Fix: Vulkan: VMA validation errors
Fixes several validation errors when using VMA.
- Always enable buffer device address in VMA as it is already a Blender
  requirement.
- Add host access hints when host access is needed.

Pull Request: https://projects.blender.org/blender/blender/pulls/146312
2025-09-15 16:47:26 +02:00
Pablo Vazquez
4d016a7b4f UI: Geometry Nodes: Use icon for node-tree subtype
Every Node Editor sub-type selector has icons, only Geometry Nodes
was missing it.

Pull Request: https://projects.blender.org/blender/blender/pulls/146298
2025-09-15 16:29:33 +02:00
Clément Foucault
680fec144c Cleanup: GPU: Remove prefix 'e' from enum types
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/146034
2025-09-15 15:11:02 +02:00
Sean Kim
5b02341a11 UI: Add ability to collapse paint pressure curves
This commit builds off of 5f8311f596 to support collapsing the custom
paint curve to reduce the amount of information shown to the user.

To support this, a new field is added to the `Paint` struct for this
visibility flag. This value is stored on a per-mode level, not a
per-brush level, as a user editing this curve is likely to not need
the visibility granularity on a per-brush basis.

Additionally, changes are included here to draw the curve button
itself as inactive if the parent layout it is part of is inactive.
Notably, this does not make the curve read only - it only changes
the appearance.

Pull Request: https://projects.blender.org/blender/blender/pulls/145699
2025-09-15 14:45:50 +02:00
илья _
433b61ccac Fix: CLG context is not initialized for some tests
Mesh validation log some steps even in case of valid result. And with
#132492, this validation will be part of code to create cuboid. So all
this tests will log something.

Pull Request: https://projects.blender.org/blender/blender/pulls/146234
2025-09-15 14:32:19 +02:00
Clément Foucault
b7d3b22db4 EEVEE: Move AOV clearing to its own separate pass
This splits the clearing code in a separate shader,
avoiding overhead for all material.

Testing with the same setup as #145347:
|          | main (ms) |  PR (ms) |   Delta (ms) |
| -------- | ----------- | ------------ |------------ |
| Nvidia   |         194 |  174 (1.11x) |          20 |
| Mesa AMD |         200 |  191 (1.04x) |           9 |

Pull Request: https://projects.blender.org/blender/blender/pulls/146286
2025-09-15 14:24:29 +02:00
Omar Emara
e9638b4a0a Compositor: Turn Double Edge Mask node menus into inputs
This patch turns the double edge mask node menus into two boolean
inputs.

Pull Request: https://projects.blender.org/blender/blender/pulls/146304
2025-09-15 13:45:34 +02:00
Omar Emara
3b1faf7594 Compositor: Turn menu options to sockets for pixel nodes
This patch turns node Menu options into menu inputs for Pixel nodes.

Pull Request: https://projects.blender.org/blender/blender/pulls/145596
2025-09-15 12:47:06 +02:00