Commit Graph

95 Commits

Author SHA1 Message Date
Jonas Holzman
7ab0dba156 Deps: macOS arm64/x64: Add TBB CMake config files
Ref: blender/blender#137063
4.5 Library tracking issue: #136540
2025-04-13 22:41:49 +02:00
Anthony Roberts
2ccaba94aa Deps: Windows ARM64: Add new Manifold library
4.5 Library tracking issue: #136540
Ref: #135261

Pull Request: https://projects.blender.org/blender/blender/pulls/137348
2025-04-11 17:54:51 +02:00
Jeroen Bakker
a46643af0f Vulkan/OpenXR: Add support for VK_KHR_external_memory_fd
Current implementation uses a CPU roundtrip to transfer render result
to the Xr Swapchain. This PR adds support for sharing the render result
on Linux systems by using file descriptors.

To extend this solution to win32 or dx handles can be done by extending
the data transfer modes, register the correct extensions. When not
using the same GPU between Blender and OpenXR the CPU roundtrip
will still be used.

Solution has been validated with monado simulator and seems to be as
fast as OpenGL.

Performance can be improved by using GPU based synchronization.
Current API is limited as we cannot chain the different renders and
swapchains.

Pull Request: https://projects.blender.org/blender/blender/pulls/136933
2025-04-04 16:01:06 +02:00
Sebastian Parborg
73a466c44f Deps: Linux x64: Add new Manifold library 2025-04-03 18:25:59 +02:00
Thomas Dinges
5541c8063f Deps: Windows x64: Add new Manifold library
4.5 Library tracking issue: #136540
2025-04-03 13:26:23 +02:00
Jonas Holzman
ab00258d02 Deps: macOS arm64/x64: Add new Manifold library
4.5 Library tracking issue: #136540
Ref: #135261
2025-04-03 13:09:05 +02:00
Anthony Roberts
2c4628c474 Windows ARM64: Workaround #134676
PR as discussed on the thread for #134676.

Works by disabling dependent load flag in OIDN, and also switching off OpenMP.

The OIDN bit is just a workaround until they can resolve this properly on their side by fixing the manifest.

The OpenMP bit requires more investigation regarding delayed loading.

Pull Request: https://projects.blender.org/blender/blender/pulls/135319
2025-03-10 15:41:38 +01:00
Sergey Sharybin
5cd758368a Fix #134992: HIP-RT fails building BVH if Blender path contains space
Quite obscure issue, seemingly caused by the fact that HIP-RT is
passing a large (about 20 MB) global array to a different library
(HIP driver, via hipModuleLoadData). Having global variables of
such size seems to be always problematic as they can not be stored
on stack and, possibly, extra mapping is involved here. It is not
clear whether it is a quirk of the HIP driver, or Linux, or, maybe,
something completely different.

It is possible to work-around the problem by making a temporary
copy of data on heap memory and pass it to the hipModuleLoadData().
This is how other areas are dealing with modules in Blender.

This change contains patch against HIP-RT and the new HIP-RT
library compiled with the patch. It seems to fix the problem
reported in the report.

This change does not resolve OIDN on HIP GPU which seems to have
the same issue. However, it is not a recent regression and the
bug with OIDN GPU denoising can be reproduced using Blender 4.3.

Pull Request: https://projects.blender.org/blender/blender/pulls/135403
2025-03-04 09:35:54 +01:00
Sebastian Parborg
f8057af3df Libs: Update libs to include the patched openEXR lib
See #128577 for more information
2025-02-27 15:15:21 +01:00
Anthony Roberts
aaf6bcaba0 Windows ARM64: Update deps with new OpenEXR patch
Fixes #134802 via #135037

Pull Request: https://projects.blender.org/blender/blender/pulls/135188
2025-02-27 11:02:19 +01:00
Jonas Holzman
e2645bfaf1 macOS arm64/x64: Rebuild OpenEXR library with patch to fix DWA bug
Ref: blender/blender#135037
Fixes: blender/blender#134802
4.4 Changes Tracking Issue: blender/blender#128577

Pull Request: https://projects.blender.org/blender/blender/pulls/135180
2025-02-26 23:00:43 +01:00
Ray Molenkamp
2a283772e3 Deps: Windows: x64: Rebuild openexr with upstream PR 1986
This fixes #134802, blender side pr #135037
2025-02-26 07:57:13 -07:00
Sahar A. Kashi
6363181af9 Cycles: HIP-RT 2.5 integration and gfx12 support
This change brings the following improvements on the user level
- Support of GPUs with gfx12 architecture
- New HIP-RT library which in addition to the gfx12 support brings
  various bug-fixes.

The known limitation of gfx12 is that OpenImageDenoiser does not yet
support this GPU architecture. This means that while Cycles will use the
full advantage of the gfx12 (including hardware accelerated ray-tracing),
denoising will only be possible on CPU, or secondary gfx11 or below GPU.
This is something that requires a change in OIDN and it is to late to do
it for Blender 4.4, but it is something to look forward for Blender 4.5.

The gfx12 changes for the pre-compiled kernels is rather trivial,
so it comes together (in the same PR) as the bigger HIP-RT change.

On the development side this change brings the following improvements:
- One step compile and link (much simpler CMake rules)
- Embedding BVH binaries in hiprt dll (which makes it easier to package
  and load, without relying on special path configuration)

Co-authored-by: Sahar Kashi <sahar.kashi@amd.com>
Co-authored-by: Sergey Sharybin <sergey@blender.org>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/133129
2025-02-20 17:34:14 +01:00
Anthony Roberts
394d204758 Windows ARM64: Update libs to use patched OCIO
See #134568 for more details

Pull Request: https://projects.blender.org/blender/blender/pulls/134572
2025-02-14 15:03:17 +01:00
Anthony Roberts
bf53ee96e5 Windows ARM64: 4.4 Library Updates
Updates the prebuilt libs to the versions used in 4.4

Also adds a check to ensure users are using at least the version of VS2022, that was used to compile the libraries

Pull Request: https://projects.blender.org/blender/blender/pulls/134405
2025-02-13 16:51:19 +01:00
Ray Molenkamp
e94d92593e Windows: Update x64 libraries for 4.4
4.4 Library Changes Task: https://projects.blender.org/blender/blender/issues/128577

Pull Request: https://projects.blender.org/blender/blender/pulls/134424
2025-02-12 17:48:28 +01:00
Sebastian Parborg
dfb1b58681 Libs: Update to 4.4 Linux libs
See #128577 for more information

Pull Request: https://projects.blender.org/blender/blender/pulls/134340
2025-02-11 11:39:57 +01:00
Jonas Holzman
41bb42d374 macOS: Update x64 and arm64 libraries for 4.4
4.4 Library Changes Task: https://projects.blender.org/blender/blender/issues/128577

Pull Request: https://projects.blender.org/blender/blender/pulls/134301
2025-02-10 10:23:09 +01:00
Sebastian Parborg
78ff230257 Revert "Libs: Update to 4.4 Linux libs"
This reverts commit 924cb219d8.
2025-02-07 20:33:46 +01:00
Sebastian Parborg
924cb219d8 Libs: Update to 4.4 Linux libs
See #128577 for more information
2025-02-07 18:55:36 +01:00
Brecht Van Lommel
597f279702 Clang Format: disable formatting lib/, same as was done for extern/
Precompiled library headers don't follow Blender code style.
2025-01-04 18:35:11 +01:00
salipourto
4e5a9c5dfb Cycles: Handling SDK/ROCm 6+ lack of backward compatibility with pre ROCm 6
This commit introduces proper handling of ROCm 5 and ROCm 6 runtimes on
Linux, based on the version of the ROCm compiler used at build time.
Previously, HIPEW (the HIP equivalent of Cuda Wrangler) defaulted to
loading the ROCm 5 runtime. If ROCm 5 was unavailable, it would attempt
to load ROCm 6. However, ROCm 6 introduces changes in certain
structures and functions that are not backward compatible, leading to
potential issues when kernels compiled with the ROCm 6 compiler are
executed on the ROCm 5 runtime.

### Summary of Changes:

**Separation of Structures and Functions:**
Structures and functions are now separated into hipew5 and hipew6 to
accommodate the differences between ROCm versions.

**Build-Time Version Detection:**
The ROCm version is determined during build time, and the corresponding
hipew5 or hipew6 is included accordingly.

**Runtime Default to ROCm 6:**
By default, HIPEW now loads the ROCm 6 runtime and
includes hipew6 (Linux only).

**JIT Compilation Behavior:**
Since ROCm 6 is the default version, JIT compilation is supported only
when the ROCm 6 compiler is detected at runtime.

**HIP-RT Update:**
HIP-RT has been updated to load the ROCm 6 runtime by default.

These changes ensure compatibility and stability when switching
between ROCm versions, avoiding issues caused by runtime
and compiler mismatches.

Co-authored-by: Alaska <alaskayou01@gmail.com>
Co-authored-by: Sergey Sharybin <sergey@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/130153
2024-12-17 16:19:36 +01:00
Anthony Roberts
89102b3b5d Libs: Update Windows ARM64 Vulkan + shaderc
In line with what other platofrms have already done as part of #128577

Pull Request: https://projects.blender.org/blender/blender/pulls/131628
2024-12-10 11:16:12 +01:00
Sebastian Parborg
4d9a9a65f4 Libs: Linux: shaderc v2024.3 Vulkan loader/headers 1.3.296
see #129971 and #128995 for details
2024-12-05 14:14:39 +01:00
Ray Molenkamp
c71fba8190 Libs: Windows_X64: shaderc v2024.3 Vulkan loader/headers 1.3.296
see #129971 and #128995 for details
2024-12-02 11:55:20 -07:00
Sebastian Parborg
aad4e62173 Libs: Update linux libs 2024-11-14 18:07:16 +01:00
Anthony Roberts
6a242055a3 Windows ARM64: Update autopep8
Part of the 4.3 lib updates, which was missed (#125241)

Pull Request: https://projects.blender.org/blender/blender/pulls/129877
2024-11-05 19:23:15 +01:00
Ray Molenkamp
3469dea422 Windows_X64: Libs Autopep8 1.6.0-> 2.3.1
see #127553 for details
2024-11-04 11:42:36 -07:00
Jonas Holzman
b2a333a0cc Libs: macOS arm64/x64: Update autopep8 to 2.3.1
Ref: blender/blender#127553
4.3 Library Changes Task: blender/blender#125241
2024-10-16 23:39:46 +02:00
Sebastian Parborg
417f9f29cf Linux: Bump autopep8 version 2024-10-15 19:21:21 +02:00
Sebastian Parborg
1458ba1d6c Bump Linux libs 2024-10-15 18:26:31 +02:00
Jonas Holzman
eb2b0ac3f1 Libs: macOS arm64/x64: Update ShaderC to remove global locale lock
4.3 Library Changes Tracking Issue: #125241

Pull Request: https://projects.blender.org/blender/blender/pulls/128947
2024-10-13 13:29:33 +02:00
Sebastian Parborg
9d6794dd5d Fix #124173: SVG export creates invalid xml
Bump MaterialX libs with our workarounds
2024-10-11 14:17:34 +02:00
Ray Molenkamp
1d11123da7 Deps: WinX64 - 4.3 Library update
see #125241 for details
2024-10-10 12:07:28 -06:00
Campbell Barton
819fce6a3a Linux: add missing files from wayland protocols 2024-10-08 09:09:44 +11:00
Anthony Roberts
937b289137 Libs: Update OIIO+OSL+LibPNG+ShaderC
Pull Request: https://projects.blender.org/blender/blender/pulls/128690
2024-10-07 18:55:00 +02:00
Campbell Barton
470ccdd327 Linux: update ShaderC (#2)
Ref !127564
2024-09-25 12:38:39 +10:00
Sahar A. Kashi
26ed4d3892 Cycles: Linux Support for HIP-RT
This change switches Cycles to an opensource HIP-RT library which
implements hardware ray-tracing. This library is now used on
both Windows and Linux. While there should be no noticeable changes
on Windows, on Linux this adds support for hardware ray-tracing on
AMD GPUs.

The majority of the change is typical platform code to add new
library to the dependency builder, and a change in the way how
ahead-of-time (AoT) kernels are compiled. There are changes in
Cycles itself, but they are rather straightforward: some APIs
changed in the opensource version of the library.

There are a couple of extra files which are needed for this to
work: hiprt02003_6.1_amd.hipfb and oro_compiled_kernels.hipfb.
There are some assumptions in the HIP-RT library about how they
are available. Currently they follow the same rule as AoT
kernels for oneAPI:
- On Windows they are next to blender.exe
- On Linux they are in the lib/ folder

Performance comparison on Ubuntu 22.04.5:
```
GPU: AMD Radeon PRO W7800
Driver: amdgpu-install_6.1.60103-1_all.deb
                       main         hip-rt
attic                  0.1414s      0.0932s
barbershop_interior    0.1563s      0.1258s
bistro                 0.2134s      0.1597s
bmw27                  0.0119s      0.0099s
classroom              0.1006s      0.0803s
fishy_cat              0.0248s      0.0178s
junkshop               0.0916s      0.0713s
koro                   0.0589s      0.0720s
monster                0.0435s      0.0385s
pabellon               0.0543s      0.0391s
sponza                 0.0223s      0.0180s
spring                 0.1026s      1.5145s
victor                 0.1901s      0.1239s
wdas_cloud             0.1153s      0.1125s
```

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Sergey Sharybin <sergey@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/121050
2024-09-24 14:35:24 +02:00
Campbell Barton
c9c57e2fe6 Linux: update ShaderC
Ref !127564
2024-09-20 13:06:11 +10:00
Ray Molenkamp
6a7b54db20 Revert "Libs: Win64: hiprt 83e18cc9c3"
This reverts commit 4fcad1858a.

this broke something that should not have been breaking,
revert for now
2024-09-17 09:47:06 -06:00
Anthony Roberts
de9fc05af6 Windows: Update TBB patch + enable OpenPGL for Windows ARM64
See: #125241 and #127705

Pull Request: https://projects.blender.org/blender/blender/pulls/127763
2024-09-17 17:20:31 +02:00
Ray Molenkamp
4fcad1858a Libs: Win64: hiprt 83e18cc9c3 2024-09-17 08:16:06 -06:00
Campbell Barton
a63ab1840e Linux: update Python to 3.11.9
Ref !125771
2024-09-13 14:01:51 +10:00
Campbell Barton
610cf11bee Linux: update for intel graphics compiler
Update IGC 1.0.17384, ocloc 24.31.30508.

Ref !127251.
2024-09-12 22:53:59 +10:00
Campbell Barton
7cd91c55a4 Linux: LibPNG: Update to 1.6.43, OSL & OpenImageIO
Ref !126980.
2024-09-12 22:53:59 +10:00
Sybren A. Stüvel
f271e89a45 Revert "Linux: LibPNG: Update to 1.6.43"
This reverts commit 1890887f3b.

It was referring to a submodule commit that doesn't exist (likely wasn't
pushed yet).
2024-09-12 11:06:50 +02:00
Campbell Barton
1890887f3b Linux: LibPNG: Update to 1.6.43 2024-09-12 14:48:24 +10:00
Sergey Sharybin
c1010f46c3 Build: LibPNG: Update to 1.6.43
Fixes issue with EXIF after IDAT.

The change also includes new libraries for macos for PNG and OIIO which
were needed to fix the original bug.

Ref #123620
Ref #125241

Pull Request: https://projects.blender.org/blender/blender/pulls/126980
2024-09-11 12:13:22 +02:00
Anthony Roberts
3a6a953662 Libs: Update OIIO/sse2neon/Python for Windows ARM64
Pull Request: https://projects.blender.org/blender/blender/pulls/126640
2024-08-22 13:00:57 +02:00
Ray Molenkamp
4f084d180b windows_x64: rebuild ffmpeg with sse flags
See PR #126396 for details.
2024-08-21 14:19:20 -06:00