livoxGen1: Add OpenClSplittingEngine

This commit is contained in:
2025-11-06 01:20:02 -04:00
parent bb59f47549
commit aacbdd5864
3 changed files with 176 additions and 0 deletions
@@ -0,0 +1,50 @@
#ifndef _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H
#define _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H
#include <cstdint>
#include <cstddef>
#include <memory>
#include <CL/cl.h>
namespace smo {
namespace stim_buff {
class PcloudStimulusBuffer;
class OpenClSplittingEngine
{
public:
explicit OpenClSplittingEngine(PcloudStimulusBuffer& parent);
~OpenClSplittingEngine();
// Non-copyable, movable
OpenClSplittingEngine(const OpenClSplittingEngine&) = delete;
OpenClSplittingEngine& operator=(const OpenClSplittingEngine&) = delete;
OpenClSplittingEngine(OpenClSplittingEngine&&) = default;
OpenClSplittingEngine& operator=(OpenClSplittingEngine&&) = default;
bool setup();
void finalize();
private:
PcloudStimulusBuffer& parent;
// OpenCL infrastructure
cl_platform_id platform;
cl_device_id device;
cl_context context;
cl_command_queue commandQueue;
cl_program program;
cl_kernel kernel;
bool isSetup;
// OpenCL buffers
cl_mem assemblyBuffer;
cl_mem xyzBuffer;
cl_mem intensityBuffer;
};
} // namespace stim_buff
} // namespace smo
#endif // _LIVOX_GEN1_OPENCL_SPLITTING_ENGINE_H