OClCollMeshEngn: use the central ComputeMgr APIs
We no longer create our own context and get our own OpenCL device in OClCollMeshEngn::setup. We now request a device from the central ComputeManager.
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
#include <user/stimulusFrame.h>
|
||||
#include <user/stagingBuffer.h>
|
||||
#include <user/frameAssemblyDesc.h>
|
||||
#include <user/compute.h>
|
||||
#include <user/senseApiDesc.h>
|
||||
|
||||
namespace smo {
|
||||
namespace stim_buff {
|
||||
@@ -72,17 +74,17 @@ public:
|
||||
private:
|
||||
PcloudStimulusProducer& parent;
|
||||
|
||||
// OpenCL infrastructure
|
||||
cl_platform_id platform;
|
||||
cl_device_id device;
|
||||
cl_context context;
|
||||
cl_command_queue commandQueue;
|
||||
// OpenCL infrastructure (managed by ComputeManager)
|
||||
std::shared_ptr<smo::compute::ComputeDevice> computeDevice;
|
||||
cl_program slotCompactorProgram;
|
||||
cl_program collateProgram;
|
||||
cl_kernel slotCompactorKernel;
|
||||
cl_kernel collateKernel;
|
||||
|
||||
// OpenCL buffers
|
||||
// OpenCL buffers (managed by ComputeManager)
|
||||
std::shared_ptr<smo::compute::ClBuffer> clAssemblyBufferClBuffer;
|
||||
std::shared_ptr<smo::compute::ClBuffer> clCollationBufferClBuffer;
|
||||
// Cached cl_mem handles for the device we're using
|
||||
cl_mem clAssemblyBuffer;
|
||||
cl_mem clCollationBuffer;
|
||||
|
||||
@@ -174,7 +176,8 @@ private:
|
||||
|
||||
// Enqueue kernel execution
|
||||
cl_int err = clEnqueueNDRangeKernel(
|
||||
commandQueue, kernel, 1, nullptr, &globalWorkSize, nullptr,
|
||||
computeDevice->commandQueue, kernel,
|
||||
1, nullptr, &globalWorkSize, nullptr,
|
||||
0, nullptr, eventPtr);
|
||||
|
||||
if (err != CL_SUCCESS)
|
||||
@@ -198,7 +201,7 @@ private:
|
||||
}
|
||||
|
||||
// Force queue flush to ensure event processing and callback invocation
|
||||
err = clFlush(commandQueue);
|
||||
err = clFlush(computeDevice->commandQueue);
|
||||
if (err != CL_SUCCESS)
|
||||
{
|
||||
std::cerr << __func__ << ": failed to flush queue: " << err
|
||||
|
||||
Reference in New Issue
Block a user