OClCollatingMeshingEngn: Compile both kernels side by side

This commit is contained in:
2025-11-09 04:49:37 -04:00
parent 6264a128a8
commit 7977f0bcc9
2 changed files with 260 additions and 140 deletions
@@ -51,8 +51,10 @@ private:
cl_device_id device;
cl_context context;
cl_command_queue commandQueue;
cl_program program;
cl_kernel kernel;
cl_program slotCompactorProgram;
cl_program collateProgram;
cl_kernel slotCompactorKernel;
cl_kernel collateKernel;
bool isSetup;
// OpenCL buffers
@@ -62,9 +64,8 @@ private:
// State tracking
bool isRunning;
cl_event currentKernelEvent;
bool memoryPinned;
// Memory pinning tracking
// Memory tracking
void* assemblyBufferPtr;
size_t assemblyBufferSize;
void* collationBufferPtr;
@@ -76,6 +77,15 @@ private:
// Static callback for OpenCL event
static void CL_CALLBACK kernelEventCallback(
cl_event event, cl_int event_command_exec_status, void* user_data);
// Private helper methods
bool compileAndPrepareKernel(
const char* kernelSource, size_t kernelSourceLen,
const char* kernelName, cl_program& program, cl_kernel& kernel);
bool compileAndPrepareKernels();
bool setupSlotCompactorsArgs(
StagingBuffer& assemblyBuff, uint32_t nSucceeded);
bool setupCollateDgramsArgs(StagingBuffer& assemblyBuff);
};
} // namespace stim_buff