Commit Graph

124018 Commits

Author SHA1 Message Date
Pratik Borhade
40298b66da Merge branch 'blender-v5.0-release' 2025-10-18 16:47:28 +05:30
Pratik Borhade
74586023fb Fix #147698: Prevent drag drop inside packed nodetree interface
When node tree is packed, prevent drag-drop operation from rearranging
the socket/panel inside node-tree interface.

Pull Request: https://projects.blender.org/blender/blender/pulls/147794
2025-10-18 13:14:39 +02:00
Pablo Vazquez
88c2c67ae4 UI: Color Interpolation Icons
Color the interpolation icons matching the new interpolation theme
settings added in 75eaecf350

This makes a clearer connection with the lines drawn in Dope Sheet.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/148215
2025-10-18 00:05:23 +02:00
Harley Acheson
3de61b7f7f Merge branch 'blender-v5.0-release' 2025-10-17 14:53:20 -07:00
Harley Acheson
e259769e9d Fix #148143: Increase Curve Mapping Point Size
This PR increases the points shown on the Curve Mapping widget a bit,
with the selected ones ever larger. This is more in line with what we
saw in 4.5. This also draws the points with AA by changing to a
different shader - which means drawing the selected ones separate from
the unselected ones.

Pull Request: https://projects.blender.org/blender/blender/pulls/148176
2025-10-17 23:51:46 +02:00
Philipp Oeser
cc44420912 Cleanup: rename region_evaulate_visibility > region_evaluate_visibility
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/148268
2025-10-17 19:44:59 +02:00
Pablo Vazquez
4340d5fff9 Merge branch 'blender-v5.0-release'
# Conflicts:
#	source/blender/blenkernel/BKE_blender_version.h
#	source/blender/blenloader/intern/versioning_userdef.cc
2025-10-17 18:53:10 +02:00
Pablo Vazquez
829c6a7b98 Fix #141889: Broken themes in 5.0
Blender 5.0 got a theme overhaul, removing hundreds of options and
adding some more. While versioning was attempted to keep themes
looking as close as possible, some settings are impossible to guess
so they require manual editing.

Reset the theme to the default. Similarly to how it was done in other
major overhauls (2.80, 3.0).

Documentation and tools to migrate themes will be available at:
https://developer.blender.org/docs/release_notes/5.0/user_interface/

Pull Request: https://projects.blender.org/blender/blender/pulls/147637
2025-10-17 18:50:29 +02:00
Clément Foucault
a003b27244 Refactor: Compositor: Use template instead of macros for compositor_parallel_reduction.glsl
Rel #143582

This also adds support for C++ compilation of this shader.
See https://developer.blender.org/docs/features/gpu/tools/cpp_shader_compilation/

Pull Request: https://projects.blender.org/blender/blender/pulls/144904
2025-10-17 18:38:07 +02:00
Falk David
e1ca851276 Merge branch 'blender-v5.0-release' 2025-10-17 17:22:16 +02:00
Casey Bianco-Davis
316fe67295 Fix #147756: Grease Pencil: Join Operator crash because of resolution attribute
When strokes from to different layers get joined together, if one layer
had the `resolution` attribute and the other did not. The new
`resolution` attribute would be left with uninitialized values and then
a crash would happen.

This fixes this by filling all attributes that didn't exist with their
default value.

This also ensures that when strokes are removed, the drawing is
tagged as dirty.

Pull Request: https://projects.blender.org/blender/blender/pulls/147948
2025-10-17 17:21:33 +02:00
Clément Foucault
73d714832e GPU: Shader: Put layout definition above resources and typedefs
This allow resources declaration to include gl_WorkgroupSize.
2025-10-17 17:01:06 +02:00
Brecht Van Lommel
aab29c1ba6 Merge branch 'blender-v5.0-release' 2025-10-17 16:42:22 +02:00
Damien Picard
58b8ae1717 UI: Fix a few typos
- "Acion Slot" -> "Action": typo.
- "Specifies the input node used the created zone" -> "by the created
  zone": typo.
- "No reference available {!r}, Update..." -> "update": lower case.
- "uninitialized file-list" -> "Uninitialized": sentence case.

Some issues reported by Alexandr Fatih.

Pull Request: https://projects.blender.org/blender/blender/pulls/148265
2025-10-17 16:13:30 +02:00
Philipp Oeser
11001624ff Merge branch 'blender-v5.0-release' 2025-10-17 15:06:41 +02:00
Philipp Oeser
1de7b4372c Fix #148229: Vertex weights in wrong groups after joining meshes
Caused by 113d91aba8

Code first gathers a list of all vertexgroups on all objects.
Then it iterates the objects to join, and for each of them, puts their
vertexgroups in an index map.
However (by a typo?), it was doing it for the `active mesh` (instead of
the one currently visited) over and over again, resulting in weights
from other objects written to `def_nr` from groups of the `active mesh`.

Now corrected.

Pull Request: https://projects.blender.org/blender/blender/pulls/148259
2025-10-17 15:06:24 +02:00
Jacques Lucke
0f71665e4e Merge branch 'blender-v5.0-release' 2025-10-17 14:41:18 +02:00
Jacques Lucke
c990cd6759 Fix: correct previous commit
This is an alternative to ba0f73d076. I'm not exactly sure why that on
didn't work yet. Seems like there is some hidden state somewhere, not sure.

Now this fix is more similar to what is done in `curves_blend_write`.

Pull Request: https://projects.blender.org/blender/blender/pulls/148267
2025-10-17 14:40:43 +02:00
Clément Foucault
dbe44027c2 GL: Shader: Add missing accessor macro for shared variables 2025-10-17 14:23:50 +02:00
Clément Foucault
03d7ae9bf3 Compositor: Add support for shader C++ compilation
This is mostly stubs for now but they should be
ported overtime.

See the documentation for more info on this:
https://developer.blender.org/docs/features/gpu/tools/cpp_shader_compilation/

Splited from #144904

Pull Request: https://projects.blender.org/blender/blender/pulls/148261
2025-10-17 14:21:24 +02:00
Bastien Montagne
c8e0d14506 Merge branch 'blender-v5.0-release' 2025-10-17 14:20:11 +02:00
Bastien Montagne
861a174a82 Fix #148220: Scene 'Linked Copy' does not remap to newly copied data-block.
While more of a theoritical issue currently, this change is a
pre-requisite to support properly compo nodes duplication in 'linked
copy' case (see !148210).

Also add a basic unittest for this case.

Pull Request: https://projects.blender.org/blender/blender/pulls/148222
2025-10-17 14:17:42 +02:00
Jacques Lucke
81296027a9 Merge branch 'blender-v5.0-release' 2025-10-17 13:11:12 +02:00
Jacques Lucke
ba0f73d076 Fix: crash writing undo step for grease pencil
This was missing from #148144.
2025-10-17 13:10:37 +02:00
Aras Pranckevicius
facb17b0e3 Cleanup: BLI ENUM_OPERATORS cleanup/robustness
BLI code for enums that are meant to be used as "bit flags" defined
an ENUM_OPERATORS macro in BLI_utildefines.h. This cleans up things
related to said macro:

- Move it out into a separate BLI_enum_flags.hh header, instead of
  "random bag of things" that is the current place,
- Update it to no longer need manual indication of highest individual
  bit value. This originally was added in a31a87f89 (2020 Oct), in
  order to silence some UBSan warnings that were coming
  from GPU related structures (looking at current GPU code, I don't
  think this is happening anymore). However, that caused actual
  user-visible bugs due to incorrectly specified max. enum bit value,
  and today 14% of all usages have incorrect highest individual
  bit value spelled out.
    - I have reviewed all usages of operator ~ and none of them are
      used for directly producing a DNA-serialized value; all the
      usages are for masking out other bits for which the new ~
      behavior that just flips all bits is fine.
- Make the macro define flag_is_set() function to ease check of bits
  that are set in C++ enum class cases; update existing cases to use
  that instead of three other ways that were used.

Pull Request: https://projects.blender.org/blender/blender/pulls/148230
2025-10-17 12:57:50 +02:00
Jeroen Bakker
94ba670fac Cleanup: Remove rendundant code
Frontfacing was set twice.
2025-10-17 11:43:50 +02:00
Jeroen Bakker
ac30e9018b Cleanup: Remove out-dated comment 2025-10-17 11:32:11 +02:00
Philipp Oeser
3dd5da4e9c Merge branch 'blender-v5.0-release' 2025-10-17 10:23:06 +02:00
Philipp Oeser
48dc788e6d Fix #145488: UI: Flipped rows/columns in custom matrix property
Since matrices are usually indexed **row first**, displaying matrices in
the UI seems flipped.
They are stored as flat arrays.
When `matrix[1][0]` is accessed via python, the logic from
`pyrna_py_from_array_index` will actually look up index 2 in the flat
array (rightfully so).

But UI code was flipped in that regard.
The second value in the flat array **should** show at row 1 column 0,
but it currently doesnt.

Now (hopefully) handled properly (not only in `ui_item_array` but also
made code in `ui_item_rna_size` detect proper row count for a `height`)

Pull Request: https://projects.blender.org/blender/blender/pulls/148197
2025-10-17 10:22:51 +02:00
Philipp Oeser
6deb41fda2 Merge branch 'blender-v5.0-release' 2025-10-17 10:21:16 +02:00
Philipp Oeser
fca5bcbe46 Fix #146250: Some gizmos/widgets are continuously running updates
Reported for the geometry nodes gizmos, but in general `cage2d`,
`cage3d` and `arrow` were affected (so for example Forcefield arrows, UV
editing transform tool, Lamp angle gizmo, ...)

`gizmo_cage3d_modal`, `gizmo_cage2d_modal` and `gizmo_arrow_modal` add a
`WM_event_add_mousemove` which ... lets the modal run even if the mouse
does **not** move...

This seems to date back to d8f931c9b7 in the arrow gizmo, others
probably just copied from there (not the DialGizmo though), did not do
further git archeology.

Propose to just remove `WM_event_add_mousemove` (even though there
_might_ still be reasons for this -- could not spot any though...)

Pull Request: https://projects.blender.org/blender/blender/pulls/146310
2025-10-17 10:21:01 +02:00
Philipp Oeser
ab0ab3cf3b Merge branch 'blender-v5.0-release' 2025-10-17 10:19:28 +02:00
Philipp Oeser
6536fd80fc Fix #144359: Scrolled down Asset Shelf prevents drag & drop in viewport.
The issue is in the `ED_region_overlap_isect_` family of functions I
believe. Their purpose is to check if a coordinate is in the
"non-transparent" or opaque parts of the overlapping region.

These are getting event coordinates (in window space), converted to
region relative space (substracting region->winrct).

Comparison is in view space (through `UI_view2d_region_to_view_y`)
to account for scrolling and zooming.

The thing where it goes wrong is that we are actually comparing to
`region->v2d.tot` (this can be huge, most of it not visible), where I
think we should be comparing to `region->v2d.cur` (that is the part that
is actually visible...)

Swapping `region->v2d.tot` with `region->v2d.cur` is what this PR does.

Pull Request: https://projects.blender.org/blender/blender/pulls/146032
2025-10-17 10:19:15 +02:00
Philipp Oeser
d99aac494e Merge branch 'blender-v5.0-release' 2025-10-17 10:17:02 +02:00
Philipp Oeser
77819d77d2 Fix #146251: Moving masks via transform system does not update gizmos
Oversight in 4bede1b555

`transformApply` / `transformEnd` already gives us a `NC_MASK |
NA_EDITED` notifier (via `viewRedrawForce`), so listen to that in
`image_main_region_listener`.

NOTE: alternatively, we could send an appropriate notifier in
`special_aftertrans_update__mask` (or remove the condition from the one
that is already there), with the difference that the gizmo would only
update after the transform is confirmed -- which may or may not be
desired

Pull Request: https://projects.blender.org/blender/blender/pulls/146292
2025-10-17 10:16:49 +02:00
Campbell Barton
829d2074a6 Merge branch 'blender-v5.0-release' 2025-10-17 15:14:32 +11:00
Eitan Traurig
070344c06f Fix #147924: Move on Axis dynamic uses tile size instead of dynamic size
Ref !147933
2025-10-17 15:10:12 +11:00
Sean Kim
e46bbfc2e7 Merge branch 'blender-v5.0-release' 2025-10-16 13:44:27 -07:00
Sean Kim
fd3d9f2fa2 Fix #148064: Crash when using grease pencil fill tool
The recently introduced size, strength, and jitter pressure curves
affect most paint code. This exposed further odd behavior inside
`paint_brush_update` where the size pressure curve was being evaluated
even if the brush's size did not vary with pressure.

To fix this issue, this commit clarifies a few comments and updates the
code flow such that cached input values and evaluated pressure values
are used more consistently.

Pull Request: https://projects.blender.org/blender/blender/pulls/148077
2025-10-16 22:43:32 +02:00
Miguel Pozo
8abe501f2d Merge branch 'blender-v5.0-release' 2025-10-16 20:51:18 +02:00
Miguel Pozo
9d436aa31d Fix #147782: Workbench alpha imprecision
Regression from 1c41815c4d.

The log2/exp2 round-trip can cause imprecisions, which are especially
notable with the alpha channel.
This removes the round-trip conversion for the alpha channel.

Pull Request: https://projects.blender.org/blender/blender/pulls/148218
2025-10-16 20:50:20 +02:00
Hans Goudey
6a829d78fa Mesh: Rewrite validation code
Rewrite the "mesh is valid" and "validate mesh" functions to be more
agnostic of the custom data storage system, align with the changes to
topology storage in the last 5 years, be much clearer overall, more
reusable.

Each check is implemented as a separate pass over the remaining
valid geometry in the mesh, producing an IndexMask of the invalid
elements it finds. At the cost of some extra iteration over mesh elements,
this should make each requirement clearer and make it easier to
optimize and reuse each check if needed.

The code is roughly twice as fast as it was before. I measured 92ms
instead of 200ms for a 1 million vertex cube on a Ryzen 7950X.
There's a bit of low hanging fruit for further optimization too.

There are now automated tests just for the validation code as well.
For now they are very basic but they could be extended in the future.

Some non-obvious points:
- The new face offsets storage (replacing `MPoly`) upholds more
  invariants by itself. Previously faces could easily overlap or leave
  corners unreferenced. That doesn't really happen anymore, but
  bad offset values are a more "global" problem.
- The validation code for the old "MFace" storage was removed. It is
  just rebuilt when it's needed at runtime anyway, so there isn't much
  point in validating it.
- The versioning code for 2.90.1 was calling the mesh validation code
  to fix an issue where the extrude manifold tool could generate bad faces.
  Unfortunately keeping that would mean being unable to remove the old
  code, so now there's a warning to open and save the file in a previous
  version instead.
- One of the main goals of the new code is better const correctness, and
  working better with implicit sharing. The code now only requests mutable
  copies of the mesh data if it has to change.

Part of #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/148063
2025-10-16 19:55:24 +02:00
Clément Foucault
209605233a Merge branch 'blender-v5.0-release' 2025-10-16 19:26:09 +02:00
Clément Foucault
abdb682d37 Fix #141198: EEVEE: DOF is incorrect at low resolutions on AMD + Mesa
Caused by some driver synchronization bug.
Also fixes #147879.
2025-10-16 19:24:55 +02:00
Jacques Lucke
01f020ca23 Merge branch 'blender-v5.0-release' 2025-10-16 19:22:14 +02:00
Jacques Lucke
04fcc4126e Fix #147282: double clicking on value enters node group
This fix makes the enter-node-group operator pass through when interacting with a button.

The code is by @JulianEisel.

Pull Request: https://projects.blender.org/blender/blender/pulls/148133
2025-10-16 19:21:12 +02:00
Jacques Lucke
96d2f3430f Merge branch 'blender-v5.0-release' 2025-10-16 19:20:23 +02:00
Jacques Lucke
7075bbc176 Fix #148179: missing node group description in packed asset
The asset meta data containing the description was not packed and hence the
description was lost.

Pull Request: https://projects.blender.org/blender/blender/pulls/148221
2025-10-16 19:19:40 +02:00
Clément Foucault
6b0f57facf Fix #142285: 3D cursor placement ignores unselectable objects
This was caused by 3dfec1ff73
which introduce the new behavior. This was to fix workflows
using a lot of semi-transparent objects which made nagivation
difficult.

This patch first roll back to the previous behavior: The
unselectable object will affect depth-aware operators.

This patch introduces a new visibility property to remove
the influence of objects in all depth picking operations
and selection operations. However the object is still
selectable through non-drawing selection operators
(e.g. select by material) and through the outliner.
This is to adress the aforementionned navigation issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/146706
2025-10-16 19:17:18 +02:00
Jeroen Bakker
e2dc63c5de Fix #147618: PyGPU incorrect colors when drawing images
644fb2b679 fixed a long standing issue
that offscreen example showed the wrong colors. However the fix assumes
that input texture color space is always sRGB.

This adds a shader variation that draws textures that are stored in scene referred
linear color space (like all of our Image data-block).

Co-authored-by: Clément Foucault <foucault.clem@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/147788
2025-10-16 19:12:16 +02:00