diff options
author | Patrick Mours <pmours@nvidia.com> | 2020-01-14 19:47:41 +0300 |
---|---|---|
committer | Patrick Mours <pmours@nvidia.com> | 2020-01-14 19:48:16 +0300 |
commit | ff430dea663521f742ff2f8f79b5d7f4978ecc04 (patch) | |
tree | 254dbe60866d25c495f82ca8f18a0843744df2a1 /intern | |
parent | 4c1fb6412384b73c8900ce89462ee33a9609ad88 (diff) |
Fix rendering motion blur scenes with OptiX failing with CUDA_ERROR_INVALID_CONTEXT
Commit baeb11826b9fe5525db6dd05ba5271949079fc1e switched memory
allocation for the motion transform to use CUDA directly, instead of going
through abstractions. But no CUDA context was set active before those
were called, so the calls failed. This fixes that by binding a context beforehand.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/device/device_optix.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp index 979ea7dba23..a510e538031 100644 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@ -1432,6 +1432,8 @@ class OptiXDevice : public Device { size_t motion_transform_size = sizeof(OptixSRTMotionTransform) + motion_keys * sizeof(OptixSRTData); + const CUDAContextScope scope(cuda_context); + CUdeviceptr motion_transform_gpu = 0; check_result_cuda_ret(cuMemAlloc(&motion_transform_gpu, motion_transform_size)); as_mem.push_back(motion_transform_gpu); |