Commit Graph

122638 Commits

Author SHA1 Message Date
илья _
33933a6eb4 Fix #145234: Mesh normals calculation division by zero error
Skip any normals calculations for faceless mesh so no zero division
happens later. This may also improve performance since before
we visited all mesh vertices for no reason.

Pull Request: https://projects.blender.org/blender/blender/pulls/145237
2025-08-27 16:14:01 +02:00
Clément Foucault
03296e6679 GPU: Remove unused workarounds
The line workaround is no longer necessary since the
shader now uses SSBO and is less likely to have
issues (more tested path).

The source patching is now always done in the GL and VK
backend before compilation.

Pull Request: https://projects.blender.org/blender/blender/pulls/145240
2025-08-27 16:01:07 +02:00
Christoph Neuhauser
ad4adccdeb GPU: Added image format validation for shader image bindings
The OpenGL specs require that the storage image qualifier in shaders
(e.g., "rgba32f") needs to be compatible with the format of a bound image
(see https://registry.khronos.org/OpenGL/specs/gl/glspec46.core.pdf#page=318).

We know that Blender currently does not handle this correctly in
multiple places. AMD and NVIDIA seem to silently ignore a mismatch and
just seem to use the format of the bound image. However, for the
Intel Windows drivers, this seems to lead to visual corruptions
(#141436, #141173). While a more graceful handling of a mismatch may
be nice, this is in line with the OpenGL specs.

This PR adds code for validating image formats for bindings.

Pull Request: https://projects.blender.org/blender/blender/pulls/143791
2025-08-27 15:43:09 +02:00
Sebastian Parborg
f5f3013113 FFmpeg: Remove deprecated variable (fixes ffmpeg 8 compilation)
We needed to remove `AV_INPUT_BUFFER_MIN_SIZE` as ffmpeg8 has removed it: [Changelog](4811518143:/doc/APIchanges#l468
)

Pull Request: https://projects.blender.org/blender/blender/pulls/145183
2025-08-27 15:26:56 +02:00
Clément Foucault
fa3355c505 Refactor: GPU: NodeLink shader to remove need of instance attributes
Use SSBO loads instead.

Contains a cleanup pass to bring this shader to current shader
standards.

This removes the non-instance version of the shader as it is
not necessary anymore.

The motivation for this is to remove the instance buffer from
the batch API.

Pull Request: https://projects.blender.org/blender/blender/pulls/145238
2025-08-27 15:24:22 +02:00
Clément Foucault
7becc38a3c GPU: Make text rendering not use instance buffer
Use SSBO loads instead.

Add a new `GlyphQuad` interface.

Note that this reduces the size of glyph batch since the
buffer is always fully uploaded.
Can be improved with partial update later on if that causes
significant performance regression.

The motivation for this is to remove the instance buffer from
the batch API.

Pull Request: https://projects.blender.org/blender/blender/pulls/145225
2025-08-27 14:52:19 +02:00
Falk David
117e660491 Fix #144900: Assert hit when changing/removing the default eraser
The default eraser property should not refcount the Brush ID.

Pull Request: https://projects.blender.org/blender/blender/pulls/145229
2025-08-27 14:40:21 +02:00
Casey Bianco-Davis
fad44198a3 Fix #130293: Grease Pencil: Edit mode Join operator splits points
When the `Join` operator was added to Grease Pencil v3 the behavior when
joining points was changed. The selected point would now be split from the
existing strokes and put into a new one.
This behavior is often undesirable, leading to multiple user reporting it as a
bug  #130293, #141368, #131036, #132201, #136144 and #144300.

This PR adds a new mode, `Join Strokes` that behaves the same as legacy
grease pencil, and sets it as default. This PR also renames the existing modes
to `SplitAndCopy`, `SplitPoints` to better indicate the expected behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/144666
2025-08-27 14:21:11 +02:00
Casey Bianco-Davis
11afddc681 Fix: Grease Pencil: Join operator connects wrong ends and crashes
Sometimes when joining two or more strokes ends that were not close would be merge.

This was caused by using `dst_drawing` instead of `tmp_drawing`. The function
`compute_closest_range_to` would try to the the first and last point by using the drawing
that the `PointsRange` would have a pointer to.
But the `working_range` would point to `dst_drawing` with would have the `CurveGeometry`
of `dst_curves` instead of `tmp_curves`
This would lead to the wrong first and last points being used for deciding which end
to connect.

This problem could also lead to a crash by trying to get a curve that does not exist.

Pull Request: https://projects.blender.org/blender/blender/pulls/144668
2025-08-27 13:39:36 +02:00
Sybren A. Stüvel
b33e372d02 Nodes: ensure tree topology cache is up to date before iterating sockets
Call `ntree->ensure_topology_cache();` to ensure the topology cache is
up to date, before iterating over each node's input sockets.

This is a follow-up of 3016cf650d.

Pull Request: https://projects.blender.org/blender/blender/pulls/145232
2025-08-27 13:27:33 +02:00
Pratik Borhade
0516cd63fa Fix #144361: Grease Pencil: Crash after deleting the Default Eraser
Make sure brush property is never null. Flag will avoid setting brush
to null inside `RNA_property_pointer_set`. Flag also prevents
`UI_BUT_VALUE_CLEAR/PREDEFINED_EXTRA_OP_ICON_CLEAR` from being set which
are responsible for the `X` button (`UI_OT_button_string_clear`).

Pull Request: https://projects.blender.org/blender/blender/pulls/144531
2025-08-27 12:08:29 +02:00
Casey Bianco-Davis
f248f3a5a2 Curves: Add Toggle Free/Align to Set Handle Type operators
This adds `Toggle Free/Align` from legacy Curve objects to
Grease Pencil and Curves objects.

This also reorders the items to match the legacy system.

Resolves: #140350.

Pull Request: https://projects.blender.org/blender/blender/pulls/144883
2025-08-27 11:57:51 +02:00
Clément Foucault
ba4589e894 DRW: New Curve Drawing
Implementation of the design task #142969.

This adds the following:
- Exact GPU interpolation of curves of all types.
- Radius attribute support.
- Cyclic curve support.
- Resolution attribute support.
- New Cylinder hair shape type.
![image.png](/attachments/a8e7aea0-b0e5-4694-b660-89fb3df1ddcd)

What changed:
- EEVEE doesn't compute random normals for strand hairs anymore. These are considered legacy now.
- EEVEE now have an internal shadow bias to avoid self shadowing on hair.
- Workbench Curves Strip display option is no longer flat and has better shading.
- Legacy Hair particle system evaluates radius at control points before applying additional subdivision. This now matches Cycles.
- Color Attribute Node without a name do not fetch the active color attribute anymore. This now matches Cycles.

Notes:
- This is not 100% matching the CPU implementation for interpolation (see the epsilons in the tests).
- Legacy Hair Particle points is now stored in local space after interpolation.

The new cylinder shape allows for more correct hair shading in workbench and better intersection in EEVEE.

|      | Strand | Strip | Cylinder |
| ---- | --- | --- | --- |
| Main | ![main_strand.png](/attachments/67d3b792-962c-4272-a92c-1c0c7c6cf8de) | ![main_strip.png](/attachments/f2aa3575-368e-4fbb-b888-74df845918f1) | N/A |
| PR   | ![pr_strand.png](/attachments/cc012483-25f0-491f-a06e-ad3029981d47) | ![pr_strip.png](/attachments/73fa2f5c-5252-4b30-a334-e935ed0fb938) | ![pr_cylinder.png](/attachments/3133b2d4-a6f2-41ee-8e2d-f6fd00db0c8d) |

|      | Strand | Strip | Cylinder |
| ---- | --- | --- | --- |
| Main | ![main_strand_closeup.png](/attachments/730bd79c-6762-446d-819b-3ea47961ff9f) |![main_strip_closeup.png](/attachments/d9ace578-cfeb-4895-9896-3625b6ad7a02) | N/A |
| PR   | ![pr_strand_closeup.png](/attachments/ac8f3b0c-6ef6-4d54-b714-6322f9865036)|![pr_strip_closeup.png](/attachments/8504711a-955b-4ab2-aa3d-c2d114baf9d4)| ![pr_cylinder_closeup.png](/attachments/1e2899a8-0a5c-431f-ac6c-5184d87e9598) |

Cyclic Curve, Mixed curve type, and proper radius support:
![image.png](/attachments/7f0bf05e-62ee-4ae9-aef9-a5599249b8d7)

Test file for attribute lookup: [test_attribute_lookup.blend](/attachments/1d54dd06-379b-4480-a1c5-96adc1953f77)

Follow Up Tasks:
- Correct full tube segments orientation based on tangent and normal attributes
- Correct V resolution property per object
- More attribute type support (currently only color)

TODO:
- [x] Attribute Loading Changes
  - [x] Generic Attributes
  - [x] Length Attribute
  - [x] Intercept Attribute
  - [x] Original Coordinate Attribute
- [x] Cyclic Curves
- [x] Legacy Hair Particle conversion
  - [x] Attribute Loading
  - [x] Additional Subdivision
- [x] Move some function to generic headers (VertBuf, OffsetIndices)
- [x] Fix default UV/Color attribute assignment

Pull Request: https://projects.blender.org/blender/blender/pulls/143180
2025-08-27 09:49:43 +02:00
Miguel Pozo
15da5dbaf8 Fix #145194: EEVEE: World Shader crash
Regression from 7e26323724

Pull Request: https://projects.blender.org/blender/blender/pulls/145196
2025-08-27 09:10:20 +02:00
Hans Goudey
f17168d78c Cleanup: Mesh: Use attribute API for merging UV maps
Ref #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/145209
2025-08-27 04:09:26 +02:00
Sean Kim
35d3f3f028 Fix #145070: Clay Strips 'Sculpt Plane' option doesn't work
Introduced in ba29593a17

This commit effectively reverts the above commit with a few extra
changes:
* We no longer recalculate a different `plane_normal` for the plane
  check, as that check is performed by the brush local matrix.
* Fixes the incorrect usage of `plane_center` and `plane_normal` in the
  degenerate usecase, though this practically had no effect as the brush
  would not execute.

Pull Request: https://projects.blender.org/blender/blender/pulls/145151
2025-08-27 02:16:16 +02:00
Sean Kim
fee064e524 Multires: Add 'Conform Base' functionality
This commit modifies the `OBJECT_OT_multires_base_apply` operator to
take in a new parameter which determines whether the final heuristic of
adjusting for a subdivision surface modifier applies.

Resolves #124553

Pull Request: https://projects.blender.org/blender/blender/pulls/145055
2025-08-27 01:39:23 +02:00
Hans Goudey
715cff1299 Cleanup: Use attribute API in weighted normal modifier
Use the attribute API instead of CustomData to access
the face strength integer attribute.

Ref #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/145205
2025-08-27 00:57:33 +02:00
Hans Goudey
dce7626b6b Cleanup: Remove unused CustomData interpolation "subweights" argument
This argument is always passed as null. Removing it simplifies the
transition to `AttributeStorage`. Nowadays it seems that most more
complicated interpolation needs are not handled directly by the
CustomData system.

Pull Request: https://projects.blender.org/blender/blender/pulls/145197
2025-08-27 00:02:20 +02:00
Campbell Barton
60a6f5bde4 Fix #145084: Crash opening a file and removing a scene from Python
Don't rely on the contexts window to ensure windows have their
scene updated when removing, since the window may be cleared and
there may be multiple windows.
2025-08-26 21:54:17 +00:00
Harley Acheson
494c32735f UI: Fade in Area Move Divider Lines
When resizing areas there is a line shown along the edge to help
indicate that you have pressed the correct location. This PR just
quickly animates this line into place, rather than immediately.

Pull Request: https://projects.blender.org/blender/blender/pulls/140616
2025-08-26 22:01:34 +02:00
Hans Goudey
af32b24199 Cleanup: Resolve missing declaration warning 2025-08-26 15:54:35 -04:00
Harley Acheson
2dd420d40d BLF: Public Function to Return Maximum Glyph Bounds
This BLF adds a public function that returns the maximum extext of a
font's glyphs. BLF_bounds_max returns a rctf of the minimum rect that
can contain any of the font's glyphs. Can be useful to know when sizing
a bitmap without knowing the final string contents.

Pull Request: https://projects.blender.org/blender/blender/pulls/145016
2025-08-26 21:31:29 +02:00
Sybren A. Stüvel
7f4096be41 Core: treat already-existing directory as 'ok' in recursive mkdir
When creating a directory recursively (via
`BLI_file_ensure_parent_dir_exists()` or `BLI_dir_create_recursive()`,
filter out errors that indicate that the directory already exists.
This is now also covered by a unit test.

I've also removed `BLI_assert(BLI_exists(dirname) == 0);` from
`dir_create_recursive()` (the workhorse for the above-mentioned
functions), for two reasons:

- The function is only used in an "ensure this directory exist"
  context, so the directory existing should be fine, and
- the assertion doesn't guarantee that the subsequent call to
  `mkdir()` actually succeeds. Race conditions between Blender and
  other processes (potentially on other computers, when using
  networked filesystems) will make such a precondition test
  unreliable.

This is a followup of 00abaa571a.

Pull Request: https://projects.blender.org/blender/blender/pulls/145173
2025-08-26 18:30:46 +02:00
Brecht Van Lommel
6aa11a304c Paint: Store brush and palette colors in scene linear colorspace
For historical reasons these were stored in sRGB space, which caused all
kinds of complexity.

* For image painting, it now properly uses the byte buffer colorspace
  instead of assuming sRGB or display colorspace. This can be more expensive,
  so there is a fast path for sRGB buffers (and for fixed brush colors).
* Lots of code was changed to remove conversion when painting float images
  or vertex colors, and added when painting byte images.
* For non-color data, there is now no colorspace conversion between the brush
  color and image pixels, and #143642 was basically reverted because of that.

Compatibility notes:

* Backwards compatibility is not perfect, as we can not determine if the
  brush has non-color data in isolation. We always convert sRGB to linear,
  and existing brushes configured with non-color data need to be manually
  fixed.
* There is forward compatibility, the old sRGB value is still stored next
  to the scene linear value.

Pull Request: https://projects.blender.org/blender/blender/pulls/144400
2025-08-26 17:10:16 +02:00
Miguel Pozo
8adb3e758f Draw: Use ResourceHandleRange
Optimize instancing performance by syncing all instances at once.
Part of #130291

At the moment, it only works for certain Object types in Workbench and
Overlay.
Everything else follows a path similar to the previous one.

Performance on instancing heavy scenes can range from 1.5x to 3x faster
depending on hardware and platform.

Pull Request: https://projects.blender.org/blender/blender/pulls/140378
2025-08-26 17:08:47 +02:00
Clément Foucault
7e26323724 EEVEE: Remove GPencil from geometry types
The Grease pencil is taking a different direction
and will not be supported in EEVEE.

See https://devtalk.blender.org/t/2025-08-13-grease-pencil-rendering-meeting/41845
2025-08-26 15:39:25 +02:00
Clément Foucault
1f3971cae9 Revert "Cleanup: GPU: Remove unused shader library guards"
This reverts commit 05115b0f88.

Material shaders do not compile after this change
2025-08-26 15:39:13 +02:00
Clément Foucault
06ddc55846 Cleanup: GPU: Fix french spelling of Dictionary
...baguette?
2025-08-26 15:38:33 +02:00
Hans Goudey
36222be528 Cleanup: Formatting 2025-08-26 09:33:43 -04:00
Clément Foucault
05115b0f88 Cleanup: GPU: Remove unused shader library guards
Nowadays every shader uses the new include system and
there is no need for these manual double include guards.
2025-08-26 15:11:35 +02:00
Aras Pranckevicius
e6a3c97259 Cleanup: tone down ffmpeg related logging amount
Recently 1ebefb8252 changed ffmpeg related logs to go through
CLOG. However, previously things coming from ffmpeg innards
via ffmpeg_log_callback were not logged at all, unless user
has explicitly asked for --debug-ffmpeg.

Many ffmpeg internal logs are not actionable and are missing
any context, thus now producing logs like:

"Could not update timestamps for discarded samples"
"Estimating duration from bitrate, this may be inaccurate"
"Could not find codec parameters for stream 2 (Audio: none (apac / 0x63617061), 48000 Hz, 2 channels, 396 kb/s): unknown codec"
"SCAN: Frame belongs to an unexpected GOP!"
"st: 2 edit list: 1 Missing key frame while searching for timestamp: 0"

Which is not very useful. Make it so that that errors/warnings coming
from ffmpeg_log_callback are treated as "info" CLOG level.

Pull Request: https://projects.blender.org/blender/blender/pulls/145172
2025-08-26 15:01:32 +02:00
Philipp Oeser
e76454a4fb Fix #145141: Crash on "Mark Freestyle Face" operator
Caused by b20ecee555

Seems to be a simple copy-paste oversight (not actually swapping "edge"
with "face").

Pull Request: https://projects.blender.org/blender/blender/pulls/145164
2025-08-26 14:24:23 +02:00
Jeroen Bakker
f82e89183e Fix #142110: Vulkan: Only last planar probe is visible
When using multiple planar probes only the last one would
be visible. The other probes would use the world probe.

Reason is that the data of planar probes are stored in
layered textures. When updating planar probes framebuffers
are created with the correct layer attached.

Vulkan backend missed some code paths to clear a single layer
when clearing a framebuffer where the previous action had depth
write disabled. This PR adds the missing code path.

Pull Request: https://projects.blender.org/blender/blender/pulls/145170
2025-08-26 14:18:47 +02:00
Falk David
3417401f0f Cleanup: Formatting
Caused by 39990303a0.
2025-08-26 13:55:38 +02:00
Philipp Oeser
d7fa455e66 Fix #144760: Some (Input) Nodes not changeable in Properties Editor
A node would not show the "Collapse/Expand" arrows (caused by
87c011f8bb which moved the drawing code for the input nodes a new
`custom_draw_fn` callback on the socket declaration).

Related fix: 7f07124d30

So in order to resolve, make sure we have correct conditions to show the
expander and also make sure we draw the custo buttons in appropriate
places.

NOTE: not sure if there are better ways to achieve the correct UI split
alignment, since we draw with empty labels, I had to flag with
`UI_ITEM_R_SPLIT_EMPTY_NAME` in the new `custom_draw_fn` callbacks.

Pull Request: https://projects.blender.org/blender/blender/pulls/144993
2025-08-26 13:18:41 +02:00
Campbell Barton
39990303a0 Cleanup: pass "Curve" as a const reference for font evaluation
Remove a redundant `const_cast`.
2025-08-26 20:56:19 +10:00
Habib Gahbiche
adfc8da91d Cleanup: Grammar tooltip
Pull Request: https://projects.blender.org/blender/blender/pulls/145169
2025-08-26 12:52:12 +02:00
Clément Foucault
1f2c906e2a GPU: Shader: Always mute line directives for GLSL
This is motivated by the latest changes to the preprocessor
which outputs a lot of line directives when code is
generated or unrolled.

In this case the reported line would be correct but not
correctly displayed.

Moreover the system of outputing hashes inside the
`#line` directive proved to be incompatible with some
compilers and tools (renderdoc).

This commit always comments the line directives before
compilation (solves the compatibility issue).
When error logging, we then scan the commented
directives to output the correct filename and source
line. The log line is kept untouched and will show
the correct final generated code that triggered the
error.

This also fixed the error line parsing for vulkan.

Pull Request: https://projects.blender.org/blender/blender/pulls/145096
2025-08-26 12:46:46 +02:00
Casey Bianco-Davis
f291ed4156 Fix: Grease Pencil: Use evaluated positions for the Fill tool
This PR make it so that the Fill tool will use evaluated geometry.
Allowing for regions created by `Bézier`, `NURBS` and
`Catmull Rom` to be filled.

Note that the added geometry is still of curve type `Poly`.

Pull Request: https://projects.blender.org/blender/blender/pulls/144662
2025-08-26 12:31:35 +02:00
Lukas Tönne
12f0bc7736 Fix #138388: Use grid voxel corners as value locations like OpenVDB
Blender grid rendering interprets voxel transforms in such a way that the voxel
values are located at the center of a voxel. This is inconsistent with OpenVDB
where the values are located at the lower corners for the purpose or sampling
and related algorithms.

While it is possible to offset grids when communicating with the OpenVDB
library, this is also error-prone and does not add any major advantage.
Every time a grid is passed to OpenVDB we currently have to take care to
transform by half a voxel to ensure correct sampling weights are used that match
the density displayed by the viewport rendering.

This patch changes volume grid generation, conversion, and rendering code so
that grid transforms match the corner-located values in OpenVDB.

- The volume primitive cube node aligns the grid transform with the location of
  the first value, which is now also the same as min/max bounds input of the
  node.
- Mesh<->Grid conversion does no longer require offsetting grid transform and
  mesh vertices respectively by 0.5 voxels.
- Texture space for viewport rendering is offset by half a voxel, so that it
  covers the same area as before and voxel centers remain at the same texture
  space locations.

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/138449
2025-08-26 12:27:20 +02:00
Aras Pranckevicius
a52bed7786 VSE: Do Scopes on the GPU, improve their look, HDR for waveform/parade
Faster and better looking VSE scopes & "show overexposed". Waveform &
RGB Parade now can also show HDR color intensities. (Note: this is
only about VSE scopes; Image Space scopes are to be improved separately)

- Waveform, RGB Parade, Vectorscope scopes are done on the GPU now, by
  drawing points for each input pixel, and placing them according to
  scope logic. The point drawing is implemented in a compute shader,
  with a fragment shader resolve pass; this is because drawing lots of
  points in the same location is very slow on some GPUs (e.g. Apple).
  The compute shader rasterizer is several times faster on regular
  desktop GPU as well.
- If a non-default color management is needed (e.g. VSE colorspace is
  not the same as display colorspace, or a custom look transform is used
  etc. etc.), then transform the VSE preview texture into display space
  RGBA 16F texture using OCIO GPU machinery, and calculate scopes
  from that.
- The "show overexposed" (zebra) preview option is also done on the
  GPU now.
- Waveform/Parade scopes unlock zoom X/Y aspect for viewing HDR scope,
  similar to how it was done for HDR histograms recently.
- Added SEQ_preview_cache.hh that holds GPU textures of VSE preview,
  this is so that when you have a preview and several scopes, each of
  them does not have to create/upload their own GPU texture (that would
  both waste memory, and be slow).

Screenshots and performance details in the PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/144867
2025-08-26 12:25:43 +02:00
John Kiril Swenson
7bd19f7efb Fix: VSE: Various crashes when sequencer scene is not initialized
Most of these crashes happen because it is assumed that the scene will
always be present even if we have an uninitialized `Editing`, which is
no longer the case with #140271.

- Fix crash when clicking and dragging in the scrub area by checking for
  valid `sequencer_scene` in `change_frame_poll`
- Fix crashes when selecting menu items by disabling them in the UI
  until a `sequencer_scene` is present
- Fix crashes running operators from the F3 menu by changing to more
  restrictive polls that check for `sequencer_scene`
- For good measure, check before dereferencing in
  `channels_displayed_get`, `active_seqbase_get`, and `editing_get`

Pull Request: https://projects.blender.org/blender/blender/pulls/145145
2025-08-26 11:53:49 +02:00
Sergey Sharybin
30d546cdca Cleanup: Unused multires_subdiv_type in ToolSettings
Pull Request: https://projects.blender.org/blender/blender/pulls/145106
2025-08-26 11:34:00 +02:00
Christoph Lendenfeld
0c36ed91db Refactor: Remove usage of std::deque
This removes the usage of `std::deque` introduced
in a43359eb88
It turns out this implementation has issues on Windows as pointed
out by Sean Kim. Falling back to a growing vector.

Pull Request: https://projects.blender.org/blender/blender/pulls/144925
2025-08-26 11:09:37 +02:00
Sybren A. Stüvel
3016cf650d Geometry Nodes: implement file path callback for import nodes
Add geometry file import nodes support to the for-each-path logic.
This will make `bpy.data.file_path_map()` report the input files for
OBJ, PLY, etc. import nodes (and any other node that has a string
property of subtype `PROP_FILEPATH`).

Currently this only supports static file paths, so where the file path
is set as the input socket's default value. When the path is
determined via any noodle, this is ignored and the default value is
reported anyway.

This is necessary for the new version of Blender Asset Tracer, which
in turn is needed to resolve studio/flamenco#104423.

Pull Request: https://projects.blender.org/blender/blender/pulls/144874
2025-08-26 11:03:27 +02:00
Falk David
23d8b7f126 Revert "Fix: Curves: Select Alternate operator not selecting handles"
This reverts commit 4d7042a46e.
The PR got merged by accident.
2025-08-26 10:54:37 +02:00
Clément Foucault
505e4fc3ae GPU: Shader: Add support for templated struct
This does a few things:
- Add support for templated struct.
- Change parsing of template scope.
  Now all template scope `<..>` are parsed properly.
- Rework to support better match syntax.
- Avoid warning from scope guard processing. Now initialize
  the return value to zero.

Pull Request: https://projects.blender.org/blender/blender/pulls/145132
2025-08-26 10:10:43 +02:00
Jeroen Bakker
0a2c84d48d Fix #144771: Vulkan: Object outlines and workbench transparency
Workbench transparency outlines where not working. The cause was that
the incorrect texture was bound in the pipeline due to unused
attachments being removed from the pipeline.

It seems to be an error since we added render pass support. This support
has already been removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/145120
2025-08-26 10:08:08 +02:00
Sergey Sharybin
721e227ce3 Fix #145137: Regression: Multires Bake: Broken with UDIM
Make rasterization consistently work in local tile coordinates.

Also avoid memory leak when baking multiple tiles: high resolution bake
mesh has been created for every tile.

Pull Request: https://projects.blender.org/blender/blender/pulls/145163
2025-08-26 10:07:24 +02:00