Commit Graph

143607 Commits

Author SHA1 Message Date
Omar Emara
a8591c9efb Compositor: Implement Box Mask for new CPU compositor
Reference #125968.
2024-11-18 17:35:22 +02:00
Omar Emara
c9e974249e Compositor: Implement Ellipse Mask for new CPU compositor
Reference #125968.
2024-11-18 17:35:22 +02:00
Omar Emara
8034e1ee51 Compositor: Implement ID Mask node for new CPU compositor
Reference #125968.
2024-11-18 17:35:22 +02:00
Omar Emara
6166e9ab6e Compositor: Add integer pixel load and store functions 2024-11-18 17:35:21 +02:00
Omar Emara
5511256f3b Compositor: Add fallback variant for pixel loader
This patch adds a variant of the pixel loader function that returns a
fallback value for out of bound access.
2024-11-18 17:35:21 +02:00
Bastien Montagne
e8770a3845 Cleanup: Do not use PointerRNA::owner_id to create non-ID PointerRNAs.
Also added asserts to 'document' that in that case the PointerRNA data
is expected to be the same as the (Brush) ID.
2024-11-18 15:58:06 +01:00
Pablo Vazquez
1cd0ffd1d6 UI: Keymap Editor: Add margin from scrollbar
The "X" button to delete a keymap entry is too close to the scrollbar,
potentially leading to misclicks that would delete data.

Add margin to the right of the buttons to prevent this.
The X button is now aligned when the box is open/closed.

Pull Request: https://projects.blender.org/blender/blender/pulls/130349
2024-11-18 15:57:42 +01:00
Clément Foucault
376f896b1f Cleanup: Overlay-Next: Use same test for V3D everywhere 2024-11-18 15:55:14 +01:00
Clément Foucault
fb6188f658 Fix: Overlay-Next: Crash when changing workspace
Outline drawing was not guarded to V3D
2024-11-18 15:55:14 +01:00
Clément Foucault
cb1440b92f Fix: Overlay-Next: Wireframe does not update in sculpt mode
Was just missing the implementation.
2024-11-18 15:55:14 +01:00
Germano Cavalcante
607b2dd826 Fix: assert failure when snapping to geometry with only vertices
These geometries do not have "EDGE_ENDPOINT".
2024-11-18 11:18:09 -03:00
Jeroen Bakker
1a6c586e81 Vulkan: Use Vulkan 1.1 feature enablement
Shader draw parameters was enabled by query-ing the extension. The
feature is core in Vulkan 1.1, and our minimum requirement is Vulkan
1.2. In stead of querying the extension we should use enable the
feature via `VkPhysicalDeviceVulkan11Features`.

This was detected when working on !129062

Pull Request: https://projects.blender.org/blender/blender/pulls/130441
2024-11-18 15:11:42 +01:00
Clément Foucault
906e770b15 Fix: Overlay-Next: Object wireframe draw type not drawing wireframe
Logic was missing.
2024-11-18 14:42:28 +01:00
Clément Foucault
3cad71b03f Fix: Overlay-Next: Grid occluding overlays in wireframe mode 2024-11-18 14:35:39 +01:00
Hans Goudey
47a002747c Merge branch 'blender-v4.3-release' 2024-11-18 08:34:40 -05:00
Hans Goudey
97be9b603b Cleanup: Grease Pencil: Remove unnecessary legacy modifier writing
Since all legacy Grease Pencil modifier are converted to regular modifiers
in versioning, we should never be in a position where we need to write the
old modifiers anymore.

Pull Request: https://projects.blender.org/blender/blender/pulls/130388
2024-11-18 14:33:20 +01:00
Sean Kim
28a5a800ee Fix #130422: Expand Active Face Set crashes on Multires mesh
Caused by dcb3391e10

Pull Request: https://projects.blender.org/blender/blender/pulls/130431
2024-11-18 14:31:10 +01:00
Lukas Tönne
fe76d267e3 Merge branch 'blender-v4.3-release' 2024-11-18 13:39:51 +01:00
Lukas Tönne
a452e2d499 Fix #125559: Eraser does not find intersections at small scales
When points are close together in 2D view space the eraser intersection
function does not have a valid direction vector (zero). This cancels out
terms in the computation that would still contribute to the result and
the function always returns zero intersections.

This patch adds a special case when the direction vector is zero,
so the point distance to the circle is still calculated (just not in
any particular direction).

Pull Request: https://projects.blender.org/blender/blender/pulls/130341
2024-11-18 13:39:10 +01:00
Bastien Montagne
4d181e9470 RNA: Store PointerRNA as pointer in PropertyRNAOrID.
While copying `PointerRNA` struct is currently extremely cheap, this
won't be the case in the future once it starts storing more complex
data.

Keeping an independent copy in `PropertyRNAOrID` struct should never be
needed, as this is a fairly short-lived runtime data, so store a pointer
to the given PointerRNA instead.
2024-11-18 12:59:39 +01:00
Sybren A. Stüvel
1c34e00ce1 Anim: draw prop as 'orange' when changed value with stashed Actions present
Properties that are animated, but have different values than their
animation data, are drawn in orange. This was skipped whenever any NLA
tracks were active (likely because this would re-evaluate the NLA for
every property drawn, which is a performance bottleneck).

This commit lifts this limitation slightly, and only skips the "has this
changed?" check if there are any non-muted NLA tracks. This means that
using the NLA purely as a stash of Actions is now possible without
losing the 'orange means it changed' indicators in the UI.

Fixes: #129968

Pull Request: https://projects.blender.org/blender/blender/pulls/130130
2024-11-18 12:58:36 +01:00
Falk David
624b38e531 Merge branch 'blender-v4.3-release' 2024-11-18 12:45:43 +01:00
Bastien Montagne
785965c6e7 I18N: Update UI translations from git/weblate repository (58ace72553d3a4f). 2024-11-18 12:45:27 +01:00
Pratik Borhade
d7d7a6ef97 Fix: GPv3: Hide channel color for layers in dopesheet
This is not implemented yet so remove the callback function which draws
channel color for GPv3 layers. Also `acf_gpl_channel_color` is a legacy function,
it may lead to different channel color as explained in #130370.

Pull Request: https://projects.blender.org/blender/blender/pulls/130445
2024-11-18 12:44:38 +01:00
Sergey Sharybin
8467e05036 Fix: Make CMake files compatible with CMake 3.10
The `cmake_path()` function was introduced in CMake 3.20,
while our minimum supported version is 3.10.

In practice this fixes compilation error API docs.

Pull Request: https://projects.blender.org/blender/blender/pulls/130447
2024-11-18 12:32:17 +01:00
Falk David
cf39bd3704 Merge branch 'blender-v4.3-release' 2024-11-18 12:31:29 +01:00
Falk David
7911f8e6b3 Fix #130353: GPv3: Fill strokes disappear when using bucket fill
The issue was that when the fill strokes were merged into the drawing,
the `fill_opacity` attribute would be created on the drawing
(when it didn't exist before) and initialized to 0. This meant that
all previously drawn fill strokes would disappear.

The fix manaully initializes the `fill_opacity` attribute on the
target geometry before calling `join_geometries`.

Ideally this could be something the attribute system handles
or the `join_geometries` function takes care of by getting
some information about how to initialize attributes.

Pull Request: https://projects.blender.org/blender/blender/pulls/130442
2024-11-18 12:29:51 +01:00
Aras Pranckevicius
bbbe08d0b0 Fix #111703: banding and color shift when decoding some videos
Tell ffmpeg swscale to do accurate YUV->RGB conversion, instead of
slightly faster but not really accurate one. Fixes banding and some
color shifts in video files, particularly in dark regions.

The accurate conversion is a bit slower though, on 4K resolution video,
time taken to convert video frame from YUV to RGB:

- x64 (Ryzen 5950X): 2.3ms -> 3.7ms
- arm64 (M1 Max): 0.6ms -> 2.9ms

My take is that paying 1-2ms per 4K video playback is acceptable
since the result is obviously "more correct" and matches what VLC/ffplay
produces.

From what I can tell, "accurate conversion" turns off some dedicated
assembly code paths within ffmpeg. Maybe someday ffmpeg would get
accurate and assembly-optimized routines for that.

With more accurate decoding, we can now lower the expected render
test threshold again, since x64 & arm64 decoding is much closer now.

Comparison screenshots in the PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/130383
2024-11-18 12:27:50 +01:00
Pratik Borhade
7dfe47164a Fix #130325: GPv3: Update overlay on changing active layer in dopesheet
This is due to missing depsgraph update.

Pull Request: https://projects.blender.org/blender/blender/pulls/130367
2024-11-18 11:55:10 +01:00
Jesse Yurkovich
704d34fe0f Fix: properly save in-memory and packed textures during USD export
While adding test coverage for in-memory and packed texture scenarios, I
found that UDIMs were not being handled correctly in both cases. For
in-memory scenarios the per-tile generated/dirty status was not taken
into account. For packed scenarios the wrong filename substitutions were
being used.

This fixes both of these cases and adds test coverage for these
scenarios now. Both relative and absolute path options are validated.

Note: Both in-memory and packed images behave incorrectly when using the
'KEEP' and 'PRESERVE' texture export modes, so those remain untested
currently. A design on exactly what should happen in these modes is TBD.

Pull Request: https://projects.blender.org/blender/blender/pulls/130391
2024-11-17 21:53:35 +01:00
Clément Foucault
1a96d73f52 Fix: DRW: PassSimple do not pass resource_id correctly
This only happened if there are multiple different resource
handle used inside the same `PassSimple`.

Fix is to use the same logic to find the first instance.

Fix #130384
2024-11-17 19:17:12 +01:00
Clément Foucault
94d2a1e6a2 GPU: GLSL CPP stubs: Allow printf in code 2024-11-17 19:17:12 +01:00
Jun Mizutani
dcec1d5f68 Fix #130365 : Hard to read brush names in Blender Light theme
Pull Request: https://projects.blender.org/blender/blender/pulls/130366
2024-11-17 17:41:01 +01:00
kitt
140ff12eae VSE: Add Box Roundness option to text strips
The background box for VSE text strips can have rounded corners now.

Actual rounded shape is a superellipse with 2.1 exponent; this is
very close to a circle section but feels a bit nicer with more
continuity between the flat part and the rounded part of the box.

At very large rounding radius this is not very fast; optimization
for that case will come in a separate commit.

Pull Request: https://projects.blender.org/blender/blender/pulls/129665
2024-11-17 12:07:16 +01:00
Jacques Lucke
b4fc5754fd Cleanup: avoid constructing std::string from nullptr
This probably never in practice in these cases.
Constructing a `std::string` from nullptr is invalid.
Starting with C++23, the `nullptr_t` is even explicitly deleted.
2024-11-16 23:48:49 +01:00
Sean Kim
c88c2bfda9 Cleanup: Convert BKE_multires.hh enum to enum class
Pull Request: https://projects.blender.org/blender/blender/pulls/130363
2024-11-16 23:16:37 +01:00
Jacques Lucke
4836e0209a Cleanup: remove invalid template usage
This does not compile with GCC on C++20.
2024-11-16 23:10:44 +01:00
Jacques Lucke
b84498e20b Cleanup: avoid name clash with lerp function in C++20 2024-11-16 23:10:44 +01:00
Jacques Lucke
af3ddb5551 Fix #130369: wrong attributes removed in Extrude Mesh node
The issue was that pointers to `CustomDataLayer.name` are not stable when
attributes are removed. So the change is to create a temporary copy of the
names that need to be removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/130373
2024-11-16 21:58:29 +01:00
Bastien Montagne
bb3eb9aa23 Cleanup: Add missing BLI headers.
Not sure why I got an error about this today in one of my usual
builds... very mysterious, but the `BLI_array_utils.hh` include does
seem to be missing anyway.
2024-11-16 19:06:23 +01:00
Clément Foucault
85e12e7dc0 Cleanup: Select Engine: Move debug draw to new draw manager 2024-11-16 15:29:29 +01:00
Jesse Yurkovich
e68897e117 Fix: prevent duplicate shader node links during USD import
When reading UsdPreviewSurface materials from USD files, duplicate links
between nodes would often result. This typically occurs between the
Image node and its upstream UV Mapping node, or between the Image node
and a downstream Separate RGB node. As processing progresses, we
de-duplicate the nodes themselves as each new input/output socket is
discovered. However, we would unconditionally add a link between the
nodes even if we've already added one.

Cycles will complain about this situation and it's obviously incorrect:
`Cycles shader graph connect: input already connected.`

As most UsdPreviewSurface material networks are all fairly small
(<10 links total) I'm not worried about the cost of counting the links
at this point.

Pull Request: https://projects.blender.org/blender/blender/pulls/130356
2024-11-16 04:12:07 +01:00
Clément Foucault
39e5e3c4fe Cleanup: Grease Pencil: Remove unused functions 2024-11-15 19:21:40 +01:00
Omar Emara
6e814e7597 Compositor: Implement Mao UV node for new CPU compositor
Reference #125968.
2024-11-15 19:20:28 +02:00
Omar Emara
7f7ababec2 Compositor: Implement Displace node for new CPU compositor
Reference #125968.
2024-11-15 19:18:31 +02:00
Sebastian Parborg
ca1bf7928d Tests: Add sanity check test for Linux releases
This test does some rudimentary checks to see if the binaries and
folder structure are ready for a release.

Pull Request: https://projects.blender.org/blender/blender/pulls/130319
2024-11-15 18:12:52 +01:00
Bastien Montagne
992c52ff1e Fix #130310: Improve Enum props API doc regarding separators.
Doc only mentioned 'None' separators, but 'tuple' items with an empty
identifier string are also valid separators, and allow to get 'named'
separators in the UI.
2024-11-15 17:36:22 +01:00
Jeroen Bakker
c1379ff2b3 Fix #130161: Vulkan: Grid overlay artifact when copying to swap chain
When copying the window to the swap chain the image needs to be copied
upside down to match Vulkan/OpenGL image coordinate differences.

There was an of by 1 error when copying resulting in minor drawing
glitch which was noticeable when looking at the viewport grid.

Pull Request: https://projects.blender.org/blender/blender/pulls/130328
2024-11-15 17:12:24 +01:00
Falk David
60df9fd982 Merge branch 'blender-v4.3-release' 2024-11-15 17:01:46 +01:00
Falk David
d3d26233fc Fix: GPv3: Edit Mode: Crash during extrude
The crash was caused by the selection attribute not being
initialized properly. The size was 0.

The fix uses `ed::curves::ensure_selection_attribute` to ensure
the attribute is created and on the right domain.

Extrude should only work for a point selection, so the poll
function of the operator is updated to reflect this.

Pull Request: https://projects.blender.org/blender/blender/pulls/130333
2024-11-15 17:01:06 +01:00