blender/intern/cycles/device/cuda
Brecht Van Lommel 5c328388f3 Cycles: Add concurrent states growth and shrinking for all GPU backends
This helps avoid out of memory errors for complex scenes, and improves
performance for smaller scenes with more memory available for states.

Metal already had logic like this, now the logic is centralized and can
be used for all GPU backends.

The parameters have been somewhat tuned per device, based on earlier
work for oneAPI in #163437 and CUDA in #163532. For Metal the behavior
should remain basically the same.

For oneAPI, this enables free_memory queries on iGPUs, as driver have
been exposing this for some time.

Co-authored-by: Patrick Mours <pmours@nvidia.com>
Co-authored-by; Xavier Hallade <xavier.hallade@intel.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/163930
2026-09-23 15:22:57 +02:00
..
device.cpp Cycles: Switch to CUDA 13 and enable DLSS 2026-09-18 19:30:10 +02:00
device.h Refactor: Cycles: Replace new/delete by unique_ptr, in simple cases 2025-01-03 10:23:30 +01:00
device_impl.cpp Cycles: Fallback value for missing image or attribute in shader 2026-09-15 19:45:36 +02:00
device_impl.h Cycles: Enable local shader sorting for CUDA/OptiX 2026-09-15 12:39:35 +02:00
graphics_interop.cpp Fix: Cycles log levels conflict with macros on some platforms 2025-07-10 19:44:14 +02:00
graphics_interop.h Fix: Properly free Vulkan interop handle for Cycles 2025-05-26 10:59:49 +02:00
kernel.cpp Refactor: Cycles: Move MNEE walk into separate kernel 2026-05-27 20:34:06 +02:00
kernel.h
queue.cpp Cycles: Add concurrent states growth and shrinking for all GPU backends 2026-09-23 15:22:57 +02:00
queue.h Cycles: Add concurrent states growth and shrinking for all GPU backends 2026-09-23 15:22:57 +02:00
util.cpp
util.h Cycles: Bump minimum supported CUDA architecture to sm_50 2025-07-21 19:49:21 +02:00