Cycles: Add Intel GPU support for OpenImageDenoise #108314

Merged
Stefan Werner merged 28 commits from Stefan_Werner/blender:oidn2 into main 2023-11-20 11:12:51 +01:00

28 Commits

Author SHA1 Message Date
Stefan Werner 9c186527ed Merge branch 'main' into oidn2 2023-11-20 11:04:55 +01:00
Werner, Stefan c1752b2515 Build: Removed leftover entry in CMake 2023-11-20 09:25:03 +01:00
Werner, Stefan 68f112df40 Cleanup: Removed extraneous "(CPU)" from denoiser name 2023-11-17 15:19:08 +01:00
Werner, Stefan fd24459a2d Cleanup: Removed unused function and file in Cycles. 2023-11-17 13:05:12 +01:00
Werner, Stefan fc23fd0e07 Cycles: Removed redundant buffers in OIDN GPU
The albedo/normal buffers were prefiltered in separate memory,
where it can easily be done in place without side effect.
2023-11-17 12:08:01 +01:00
Stefan Werner eb600035d4 Merge branch 'main' into oidn2 2023-11-17 11:06:45 +01:00
Werner, Stefan 4233d6f1c3 Cycles: Automatic selection of OIDN on GPU or CPU
The manual selection of OIDN on GPU or CPU has been removed,
denoising now happens on the same device that was used for
rendering.
2023-11-17 10:58:12 +01:00
Werner, Stefan a4ccc94bad Renamed OIDN2Denoiser to OIDNDenoiserGPU. 2023-11-08 11:44:31 +01:00
Stefan Werner 3fc24077a6 Merge branch 'main' into oidn2 2023-11-08 10:52:26 +01:00
Stefan Werner 534eba4d95 Merge branch 'main' into oidn2 2023-10-10 14:14:57 +02:00
Stefan Werner b3f79c4b2c Fix: Prevent Cycles from attempting to compile OIDN2 kernels 2023-09-13 14:15:08 +02:00
Stefan Werner 12897e04ec Cycles: Make automatic Denoiser selection pick OIDN on GPU where available 2023-09-13 13:39:50 +02:00
Stefan Werner c3b06abde1 Cleanup: Removed build env/dependency changes from this Cycles PR
Since this branch can build with both V1 and V2 of OIDN, build/deps
changes can be in a completely separate PR. To test the new V2
functionality, that PR needs to be merged first.
2023-09-13 13:19:52 +02:00
Stefan Werner 6712ea7fc4 Cycles: Better OIDN2 GPU device support detection
OIDN2 is now better checking for device availability.
2023-09-13 13:01:37 +02:00
Stefan Werner e990b84190 Cleanup: Formatting and build fixes
Making sure it builds with WITH_OPENIMAGEDENOISE=OFF
`make format` for new OIDN2 code
2023-09-13 10:25:25 +02:00
Stefan Werner 1511609e17 Cleanup: Removed debugging printf()s 2023-09-13 08:42:46 +02:00
Stefan Werner 648617dbeb Merge branch 'main' into oidn2 2023-09-12 23:06:03 +02:00
Stefan Werner c0fdf33c54 Cycles: Refactor of OIDN2 GPU support
Moved OIDN2 GPU code to a separate class and file, leaving the CPU
version unchanged from OIDN1. GPU and CPU backends can now be
selected explicitly in the UI.
2023-09-12 22:56:07 +02:00
Stefan Werner 90e63627d8 Updated comment 2023-09-12 22:56:07 +02:00
Ray molenkamp c20d0bfa08 deps_builder: oidn2 windows support 2023-09-12 22:56:07 +02:00
Stefan Werner ca9c6e4869 Cycles: Cleanup in denoising
Moving more shared code to DenoisierGPU superclass
Reintroduced mutex in CPU OIDN
2023-09-12 22:56:07 +02:00
Stefan Werner a30051173c Cycles: Backing out CUDA support in OIDN2
Splitting this out for a future PR. Initial PR will be supporting
SYCL only to keep the patch to its basics.
2023-09-12 22:56:07 +02:00
Stefan Werner a4053f7190 Cycles: Fixed OpenImageDenoise crash with SYCL devices 2023-09-12 22:56:07 +02:00
Stefan Werner c77676b1d5 deps: Improvements to OIDN, reusing level zero instead of building its own 2023-09-12 22:56:07 +02:00
Stefan Werner 87b50f168a deps: Fixed OIDN build for SYCL 2023-09-12 22:56:07 +02:00
Werner, Stefan 4be7049ddd First pass at OIDN2 integration 2023-09-12 22:56:07 +02:00
Stefan Werner 46816889c0 Build: Enable OpenImageDenoise 2 on macOS 2023-09-12 22:56:07 +02:00
Stefan Werner a4697a3582 Build: Update OpenImageDenoise to 2.0.1
Major new feature in v2 is GPU support. This is not enabled yet,
this commit only changes the library version without enabling new
functionality.
2023-09-12 22:56:07 +02:00