2023-12-12 Render & Cycles Meeting

Attendees

  • Brecht Van Lommel (Blender)
  • Stefan Werner (Intel)
  • Nikita Sirgienko (Intel)
  • Attila Áfra (Intel)
  • Xavier Hallade (Intel)
  • Patrick Mours (NVIDIA)
  • Brian Savery (AMD)

Notes

The meeting in two weeks will be skipped due to holidays, the next one will be on January 9.

OpenImageDenoise

  • For CUDA, Atilla worked on a solution for the CUDA runtime GPL licensing problem. We can’t distribute this runtime library with Blender. The idea was to implement a CUDA runtime shim library that implements just what is needed by OIDN and uses the driver API like Cycles does, and it appears to work well. Unlike Cycles this does not dlopen the library to work on systems without CUDA, but it works because OIDN itself puts CUDA support in its own library which is dlopen’d.
  • HIP support is in OIDN and there is a PR open for it. Brian will look into testing this. Currently OIDN supports dedicated RDNA2 and RDNA3 GPUs, no integrated or older GPUs. This due to the ROCm composable kernel library, which is perhaps more aimed at data-center usage. It is unclear if these limitations could be lifted, but it is possible that it could be made to work similar to how Cycles supports more than what is officially supported by AMD. There were also some questions around which HIP driver library to link to, some changes may be needed for ROCM 6.
  • Metal support is under development in OIDN. There are some technical issues regarding how Metal needs handles instead of device memory pointers, and there was some discussion about the precise implementation of that.
  • To detect which GPUs support OIDN on Blender startup, we will need to make some changes to to match unique device IDs instead of creating a device just for testing, as this may have too much overhead. Care needs to be taken which exact IDs to compare for all backends, but it appears to be possible for all.
  • Nikita mentioned that we should communicate to users when OpenImageDenoise is not GPU accelerated and running on the CPU. A message in viewport denoising panel in the properties editor would be good to add.
  • Stefan mentioned some potential optimization for delayed and asynchronous denoising and path tracing, which could help when interactivity on the CPU or with multi GPU rendering. This is unlikely to be something we focus on now however.

Other

  • There is a bug in the NVIDIA driver that has been causing crashes in the OptiX denoiser, especially for final renders. A NVIDIA driver release that fixes this is imminent (or may even be out already today).
  • There is an update needed to ocloc for new Intel GPU models, Brecht will review the patch.

Practical Info

This is a weekly video chat meeting for planning and discussion of Blender rendering development. Any contributor (developer, UI/UX designer, writer, …) working on rendering in Blender is welcome to join and add proposed items to the agenda.

For users and other interested parties, we ask to read the meeting notes instead so that the meeting can remain focused.

14 Likes