Commit Graph

9264 Commits

Author SHA1 Message Date
Xavier Hallade
6e4c82e804 Merge branch 'blender-v4.5-release' 2025-06-30 16:40:46 +02:00
Xavier Hallade
7691e6520b Fix #141171: oneAPI: Rendering artifacts in barbershop scene
max_shaders was not updated when Embree was disabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/141175
2025-06-30 16:39:53 +02:00
Brecht Van Lommel
85890fb3b7 Merge branch 'blender-v4.5-release' 2025-06-28 00:06:31 +02:00
Brecht Van Lommel
9711efece7 Fix #141085: Cycles adaptive subdivision crash with zero length edges
As produced by booleans in the reported blend file.

Pull Request: https://projects.blender.org/blender/blender/pulls/141105
2025-06-28 00:03:45 +02:00
Campbell Barton
776dbe942c Cleanup: spelling (make check_spelling_*) 2025-06-22 11:34:32 +00:00
Weizhen Huang
2f7797dd4d Merge branch 'blender-v4.5-release' 2025-06-20 14:20:00 +02:00
weizhen
bf9836da65 Fix: Cycles not building with OptiX 9.0
As suggested by @pmoursnv

Was throwing errors like  `identifier "half" is undefined`.

Pull Request: https://projects.blender.org/blender/blender/pulls/140676
2025-06-20 14:19:43 +02:00
Brecht Van Lommel
17bda2cf3f Cycles: Enable multi-bounce random walk subsurface scattering
Multi-bounce was mainly disabled for disk sampling where the probability of
hitting something is relatively low even with high albedo, but this is not so
much an issue with random walk.

This reduces darkening artifacts at the cost of some extra render time. The
difference is mainly visible when using a high radius.

Pull Request: https://projects.blender.org/blender/blender/pulls/140665
2025-06-19 20:04:49 +02:00
Lukas Stockner
8eb94f7c6f Merge branch 'blender-v4.5-release' 2025-06-19 20:04:29 +02:00
Lukas Stockner
8f00a00283 Fix #138188: camera_shader_random_sample returns zero if DOF is off 2025-06-19 20:03:03 +02:00
Lukas Stockner
49ae867de4 Fix #139870: Cycles: Some objects with normal maps leak light
This was broken by !138632, the refactor of the microfacet code to no longer
check the "geometric normal", which in reality was the smoothed normal.

Since the logic is now the same for all closure types, it seemed weird that
the light leak only affects Microfacet closures, not Diffuse.

Turns out that for diffuse closures, the relevant paths were rejected by
the initial hemisphere check in the smooth bump terminator code, which also
incorporates the smoothed but non-bump/normal-mapped normal sd->N.

So, we can detect and prevent the new light leaks by extending this check to
all closure types for the eval case. Sampling already has stricter checks,
so this doesn't apply there.

With this change, we can revert the two test cases back to their pre-refactor
version. In hindsight it was a mistake to just shrug off these changes as okay,
I should have looked closer into the difference.

Pull Request: https://projects.blender.org/blender/blender/pulls/140415
2025-06-19 19:20:06 +02:00
Brecht Van Lommel
78ab68431c Merge branch 'blender-v4.5-release' 2025-06-19 15:22:10 +02:00
Brecht Van Lommel
39e7c2444e Fix #139614: Cycles CUDA + Vulkan interop fails with unknown error on GTX 970
The cause of the error is unknown, but instead of failing only print an error
and continue without graphics interop.

Pull Request: https://projects.blender.org/blender/blender/pulls/140657
2025-06-19 15:21:11 +02:00
Campbell Barton
05631085f8 Cleanup: spelling in comments (make check_spelling_*) 2025-06-19 11:40:00 +10:00
Campbell Barton
37fe1b9b8d Merge branch 'blender-v4.5-release' 2025-06-19 10:34:11 +10:00
Campbell Barton
41bf2f598f Cleanup: spelling in comments (make check_spelling_*) 2025-06-19 00:10:18 +00:00
Brecht Van Lommel
975322dde5 Merge branch 'blender-v4.5-release' 2025-06-18 19:28:50 +02:00
Brecht Van Lommel
a7f9ad5af6 Fix #140527: Cycles CUDA + Vulkan animation render memory leak
Missing call to free memory for graphics interop.

Pull Request: https://projects.blender.org/blender/blender/pulls/140612
2025-06-18 19:27:44 +02:00
Brecht Van Lommel
7e93c5b387 Merge branch 'blender-v4.5-release' 2025-06-18 16:02:35 +02:00
Alaska
353789c559 Fix: Cycles distributed memory toggle could appear on unsupported configurations
The distributed memory access toggle in Cycles preferences would show up
when a user has two GPUs that can access each other's memory, but only one
of them is supported by Cycles.

For example the AMD RX 5700XT and AMD Vega 64 can access each other's
memory, but only the 5700XT is supported by Cycles.

Pull Request: https://projects.blender.org/blender/blender/pulls/140521
2025-06-18 16:02:06 +02:00
Xavier Hallade
588b9ff3cd Merge branch 'blender-v4.5-release' 2025-06-18 08:22:04 +02:00
Xavier Hallade
2df163a648 Fix: Cycles low performance with scenes with many shaders on Arc B570
The performance of the sorted_paths_array kernel on B570 is problematic.
Relying on local sorting+partitioning instead gives a 25% overall rendering
speedup and no regression in shade_surface when rendering Agent 327 Barbershop scene.
On Arc A770, it still gives a 2% speedup when rendering Barbershop.

Pull Request: https://projects.blender.org/blender/blender/pulls/140308
2025-06-18 08:21:19 +02:00
Alaska
b561c78f93 Nodes: Remove legacy combine/separate nodes
In Blender 3.3 (1) the individual combine and separate color nodes were
combined together into a single combine/separate color node.

To ensure legacy addons still worked, the old nodes were left in
Blender, but hidden from the Add menus.

It has been nearly 3 years since that change was made, most if not all
addons should have been updated by now. So this commit removes these
hidden legacy nodes.

(1) blender/blender@82df48227b

Pull Request: https://projects.blender.org/blender/blender/pulls/135376
2025-06-17 15:36:33 +02:00
Brecht Van Lommel
b10b2d509c Merge branch 'blender-v4.5-release' 2025-06-16 18:03:22 +02:00
Brecht Van Lommel
e84fad92ea Fix #139986: Cycles crash on some scene updates, after Embree upgrade
Device::const_copy_to is sometimes called when the Embree BVH has been freed
and not replaced yet. Previously this was a simpler pointer copy, now there is
a function call. Make sure it's just a function copy.

Thanks to Nikita Sirgienko for figuring this out.

Pull Request: https://projects.blender.org/blender/blender/pulls/140457
2025-06-16 17:59:57 +02:00
Brecht Van Lommel
f7ffcfe652 Cleanup: Cycles: Use default initializers in oneAPI device
Ref #140457
2025-06-16 17:59:50 +02:00
Hans Goudey
8553878710 Cleanup: Remove unused depsgraph argument to Cycles shader node adding
Unused since b920f6f1a7
2025-06-16 11:13:14 -04:00
Alaska
85c1ab59aa Cycles: Mark HIP as unstable in Blender 5.0
HIP-RT was already marked unstable, but there are issues with HIP too.
So extend the warning, and add a link to #140278 which tracks the issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/140252
2025-06-16 15:25:12 +02:00
marcopavanello
ab21755aaf Shaders: Remove old Preetham and Hosek sky texture models
Remove old Preetham and Hosek-Wilkie sky models, which are less accurate.
The Nishita improved model has been available for long enough.

Pull Request: https://projects.blender.org/blender/blender/pulls/139923
2025-06-16 14:36:18 +02:00
Brecht Van Lommel
b920f6f1a7 Shaders: Remove point density texture node
This is replaced by geometry nodes, where volumes can now be generated from
point clouds and meshes with more control, and more efficient rendering as a
sparse volume.

No backwareds compatibility is provided, as this would be complicated, and
probably this feature was not used much in the past few years.

This node was supported in Cycles only, not by EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/140292
2025-06-16 12:06:02 +02:00
Campbell Barton
63600f806b Cleanup: spelling in comments (make check_spelling_*) 2025-06-13 11:23:28 +10:00
Aras Pranckevicius
68111db969 Nodes: Speedup Voronoi by changing the hash function
The 2D->2D, 3D->3D, 4D->4D hash functions used in Voronoi node were
using quite an expensive hash function. Switch these to dedicated
2D/3D/4D hash functions (pcg2d, pcg3d, pcg4d) -- these are still very
good quality, but the hash function itself is 3x-4x faster.
Which makes Voronoi node calculation overall be around 2x faster. In
some cases when using OSL, the speedup is even larger.

This visibly changes output of the Voronoi noise however. The actual
noise "behaves" the same, just if someone was depending on the noise
pattern being exactly like it was before, this will change the pattern.

Images, more performance results and details wrt OSL are in the PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/139520
2025-06-12 20:07:52 +02:00
Clément Foucault
e16b6ac3da EEVEE: Add support for view layer overrides
This was a missing features in EEVEE for ages which
was in fact very easy to implement.

EEVEE implements the sample override like the default
`Use` value in Cycles. It always override the sample
count if not 0. Adding a new option for changing this
behavior just like Cycles can be done later while
at the same time making the option more understandable
and its value moved to the blender's DNA.

This PR moves the UI panel to the Blender side to
be shared between Cycles and EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/140219
2025-06-12 14:18:29 +02:00
Weizhen Huang
735f531cc0 Fix: Cycles: NaN Normals from Normal Map
a degenerate triangle could produce a tangent that is antiparallel to
the normal, resulting the mapped normal to be zero, and becomes NaN when
normalized in `object_normal_transform()`. Fixed by falling back to
unperturbed normal in this case.

Fixes an assertion in the attic benchmark scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/140135
2025-06-12 14:12:39 +02:00
Brecht Van Lommel
6b128fb915 Cycles: Disable HIP-RT by default and mark as unstable
In blender-v4.5 some problematic commits were reverted, but for 5.0 we will
keep the changes and wait for the HIP SDK to be upgraded and hopefully fix
these issues.

Ref blender/blender#139836
2025-06-11 16:15:37 +02:00
Brecht Van Lommel
7f380e0644 Revert "Fix: Cycles: Do not count volume bounds bounce as transparent"
This reverts commit 23c762e388 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
45b11a6619 Revert "Fix: Cycles: Inconsistency in transparent bounces for NEE and forward path"
This reverts commit 64dc9cc98c in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
34838a9531 Revert "Cycles: Fix inconsistency in Ng handling between Microfacets and other closures"
This reverts commit a6015e1411 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:07 +02:00
Brecht Van Lommel
04e325029f Revert "Cycles: Guiding cleaning up and refactoring the guiding code"
This reverts commit 5abf42012d in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:06 +02:00
Brecht Van Lommel
501b4641f6 Revert "Cleanup: Unused arguments in Cycles kernel"
This reverts commit 0e7a696819 in the
blender-v4.5-release branch to work around HIP compiler issues. It will
remain in the main branch.

Ref blender/blender#139836
2025-06-11 15:47:06 +02:00
Campbell Barton
07121d44ae Cleanup: use braces (follow own style guide) 2025-06-11 09:05:26 +00:00
Clément Foucault
e57359726f GPU: VertexFormat: Use new data types
This prevents the use of unaligned data types in
vertex formats. These formats are not supported on many
platform.

This simplify the `GPUVertexFormat` class a lot as
we do not need packing shenanigans anymore and just
compute the vertex stride.

The old enums are kept for progressive porting of the
backends and user code.

This will break compatibility with python addons.

TODO:
- [x] Deprecation warning for PyGPU (4.5)
  - [x] Deprecate matrix attributes
- [x] Error handling for PyGPU (5.0)
- [x] Backends
  - [x] Metal
  - [x] OpenGL
  - [x] Vulkan

Pull Request: https://projects.blender.org/blender/blender/pulls/138846
2025-06-10 17:20:45 +02:00
Weizhen Huang
455f802ccb Fix #81089: Pointiness bright spot artefacts at small scale
_No response_

Pull Request: https://projects.blender.org/blender/blender/pulls/139948
2025-06-09 18:37:49 +02:00
Weizhen Huang
ee578cc738 Fix #139753: Discontinuity in mesh tangent without UV map
when there is no uv, we call the function `map_to_sphere()` to create
temporary uv for computing the tangent. It could happen that a triangle
has vertices with the u coordinates going across the line where u wraps
from 1 to 0. In this case, just computing the difference of the u
coordinates results in the wrong triangle area.

To fix this problem, we compute distance in toroidal (wrap around)
space.

This is safe for coordinates generated by `map_to_sphere()` function,
because it is not supposed to map the positions of a triangle to u
coordinates that span larger than 0.5.

Pull Request: https://projects.blender.org/blender/blender/pulls/139880
2025-06-09 13:52:00 +02:00
Weizhen Huang
1dfe8047d3 Fix #105546: Cycles volume uninitialized when frame is beyond valid range
Pull Request: https://projects.blender.org/blender/blender/pulls/139930
2025-06-09 12:15:59 +02:00
Weizhen Huang
27cf3990e9 Cleanup: Cycles: remove unused variable 2025-06-09 11:35:23 +02:00
Brecht Van Lommel
a4cfd14f0a Fix #137966: oneAPI crash when max texture size is exceeded
Until the texture cache addresses this properly, show a useful error rather
than crashing.

Pull Request: https://projects.blender.org/blender/blender/pulls/139892
2025-06-05 20:37:25 +02:00
Brecht Van Lommel
0add3f31a2 Cycles: Bump OptiX minimum and release version to 8.0.0
This requires a minimum driver version of 535, however most devices
were already requiring 570 due to the CUDA toolkit version.

The update is required to be able to use an API function for correct
stack size calculation.

Code for older API versions has been removed.

Fix #138185: OSL custom camera errors with OptiX

Pull Request: https://projects.blender.org/blender/blender/pulls/139801
2025-06-04 19:24:21 +02:00
Campbell Barton
6a1fa176ef Cleanup: spelling in comments & duplicate terms (check_spelling.py)
Also minor clarification in doc-string.
2025-06-04 01:51:29 +00:00
Lukas Stockner
39d7576844 Cycles: Switch OptiX OSL to use LLVM bitcode for shadeops
This is required to make ray differentials work correctly for OSL custom
cameras.

But it also lets us simplify the implementation, and makes the OSL
functionality more complete, such as implementing all noise types.

Pull Request: https://projects.blender.org/blender/blender/pulls/138161
2025-06-03 20:12:07 +02:00