From 0f56f822c384ecaf787e11cd9d0fd6605078b472 Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Thu, 17 Jun 2021 12:13:22 +0200 Subject: [PATCH] nvidia/cuda/context: Don't try to destroy device contexts --- source/nvidia/cuda/nvidia-cuda-context.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/nvidia/cuda/nvidia-cuda-context.cpp b/source/nvidia/cuda/nvidia-cuda-context.cpp index c6c7d95..144d10d 100644 --- a/source/nvidia/cuda/nvidia-cuda-context.cpp +++ b/source/nvidia/cuda/nvidia-cuda-context.cpp @@ -55,8 +55,9 @@ streamfx::nvidia::cuda::context::~context() if (_has_device) { _cuda->cuDevicePrimaryCtxRelease(_device); + } else { + _cuda->cuCtxDestroy(_ctx); } - _cuda->cuCtxDestroy(_ctx); } streamfx::nvidia::cuda::context::context() @@ -85,6 +86,8 @@ streamfx::nvidia::cuda::context::context(ID3D11Device* device) : context() throw std::runtime_error("Failed to get device index for device."); } + _cuda->cuDevicePrimaryCtxSetFlags(_device, context_flags::SCHEDULER_BLOCKING_SYNC); + // Acquire Context if (result res = _cuda->cuDevicePrimaryCtxRetain(&_ctx, _device); res != result::SUCCESS) { throw std::runtime_error("Failed to acquire primary device context.");