0
0
forked from blender/blender
blender/intern/cycles/device
Michael Jones (Apple) 5a29be3c75 Cycles: Fix #116243, #122022 - MetalRT live viewport stability issues
This PR fixes live viewport stability issues on Mac when MetalRT is enabled.

There were two sources of instability:

1) `MTLAccelerationStructure` instances were not being correctly retained meaning that use-after-free crashes could occur following a geometry sync.
2) `MTLIntersectionFunctionTable` objects could be unsafely shared between multiple `MetalDeviceQueue` instances (in this case, `setBuffer` being the unsafe mutation)

The solution to 2 involves creating a new `MetalDispatchPipeline` type which is strictly used by only 1 `MetalDeviceQueue` instance.

Pull Request: blender/blender#124055
2024-07-08 16:18:34 +02:00
..
cpu Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
cuda Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
dummy Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
hip Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
hiprt Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
metal Cycles: Fix #116243, #122022 - MetalRT live viewport stability issues 2024-07-08 16:18:34 +02:00
multi Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
oneapi Cycles: oneAPI: Fix undefined behavior when embree fails initializing 2024-07-03 14:13:01 +02:00
optix Cycles: Compress GPU kernels to reduce file size 2024-06-23 00:52:30 +02:00
CMakeLists.txt Build: Improve OSL library dependency handling in Cycles 2024-03-29 15:24:30 +01:00
denoise.cpp Cycles: Add OpenImageDenoise quality option 2024-05-06 18:56:16 +02:00
denoise.h Cycles: Add OpenImageDenoise quality option 2024-05-06 18:56:16 +02:00
device.cpp Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
device.h Fix: Command line Cycles render crash on multi-CUDA device 2024-06-07 17:53:44 +02:00
graphics_interop.cpp License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
graphics_interop.h License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
kernel.cpp License headers: use SPDX-FileCopyrightText in intern/cycles 2023-06-14 16:53:23 +10:00
kernel.h Cleanup: fewer iostreams related includes in Cycles 2023-08-15 13:55:38 +02:00
memory.cpp Cycles: Disambiguate shadow integrator state buffer names 2024-05-15 23:19:24 +02:00
memory.h Cycles: oneAPI: Enable host memory migration 2024-05-28 19:04:19 +02:00
queue.cpp Cleanup: use braces for sources in intern/ 2023-09-17 09:05:40 +10:00
queue.h Cycles: Metal support for OpenImageDenoise 2024-02-06 21:13:23 +01:00