diff options
author | Patrick Mours <pmours@nvidia.com> | 2019-11-28 19:06:56 +0300 |
---|---|---|
committer | Patrick Mours <pmours@nvidia.com> | 2019-11-28 19:07:14 +0300 |
commit | 8caeae9f40abe942030a5b4c269a3e4b1a601021 (patch) | |
tree | bf986b0956e2e39a1c3e4a98c7ebb05876aa9793 /intern/cycles | |
parent | 627a34463511647e9a697ebd62a03478ec75a7d1 (diff) |
Fix crash if OptiX context creation fails in Cycles
When encountering an error during context creation, the "OptiXDevice" constructor aborts early.
This means the "cuda_stream" vector is never resized and the destructor iterated over non-existent data.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/device/device_optix.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp index 3ef954ab27f..ae3ab7e1fc2 100644 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@ -290,8 +290,8 @@ class OptiXDevice : public Device { optixPipelineDestroy(pipelines[i]); // Destroy launch streams - for (int i = 0; i < info.cpu_threads; ++i) - cuStreamDestroy(cuda_stream[i]); + for (CUstream stream : cuda_stream) + cuStreamDestroy(stream); // Destroy OptiX and CUDA context optixDeviceContextDestroy(context); |