diff options
-rw-r--r-- | arm_compute/core/CL/CLKernelLibrary.h | 10 | ||||
-rw-r--r-- | arm_compute/runtime/CL/CLScheduler.h | 7 | ||||
-rw-r--r-- | src/runtime/CL/CLScheduler.cpp | 2 |
3 files changed, 14 insertions, 5 deletions
diff --git a/arm_compute/core/CL/CLKernelLibrary.h b/arm_compute/core/CL/CLKernelLibrary.h index 4c42d8e23a..2511966102 100644 --- a/arm_compute/core/CL/CLKernelLibrary.h +++ b/arm_compute/core/CL/CLKernelLibrary.h @@ -261,6 +261,16 @@ public: _device = cl_devices[0]; } } + + /** Accessor for the associated CL context. + * + * @return A CL context. + */ + cl::Context &context() + { + return _context; + } + /** Sets the CL device for which the programs are created. * * @param[in] device A CL device. diff --git a/arm_compute/runtime/CL/CLScheduler.h b/arm_compute/runtime/CL/CLScheduler.h index 0d81d73182..26b459c42d 100644 --- a/arm_compute/runtime/CL/CLScheduler.h +++ b/arm_compute/runtime/CL/CLScheduler.h @@ -123,7 +123,7 @@ public: void init(cl::Context context = cl::Context::getDefault(), cl::CommandQueue queue = cl::CommandQueue::getDefault(), cl::Device device = cl::Device::getDefault(), ICLTuner *cl_tuner = nullptr) { - _context = std::move(context); + set_context(context); _queue = std::move(queue); _target = get_target_from_device(device); _is_initialised = true; @@ -137,7 +137,7 @@ public: cl::Context &context() { ARM_COMPUTE_ERROR_ON(!_is_initialised); - return _context; + return CLKernelLibrary::get().context(); } /** Accessor to set the CL context to be used by the scheduler. @@ -146,7 +146,7 @@ public: */ void set_context(cl::Context context) { - _context = std::move(context); + CLKernelLibrary::get().set_context(context); } /** Accessor for the associated CL command queue. @@ -225,7 +225,6 @@ private: /** Flag to ensure symbols initialisation is happening before Scheduler creation */ static std::once_flag _initialize_symbols; - cl::Context _context; cl::CommandQueue _queue; GPUTarget _target; bool _is_initialised; diff --git a/src/runtime/CL/CLScheduler.cpp b/src/runtime/CL/CLScheduler.cpp index 2a5d836c33..fdae615108 100644 --- a/src/runtime/CL/CLScheduler.cpp +++ b/src/runtime/CL/CLScheduler.cpp @@ -31,7 +31,7 @@ using namespace arm_compute; std::once_flag CLScheduler::_initialize_symbols; CLScheduler::CLScheduler() - : _context(), _queue(), _target(GPUTarget::MIDGARD), _is_initialised(false), _cl_tuner() + : _queue(), _target(GPUTarget::MIDGARD), _is_initialised(false), _cl_tuner() { } |