Skip to content

Commit 33be683

Browse files
committed
GPU OpenCL: Improve device detection and do not consider platforms/devices, which do not support SPIR-V
1 parent f259510 commit 33be683

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

GPU/GPUTracking/Base/opencl/GPUReconstructionOCL.cxx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,11 @@ size_t GPUReconstructionOCLBackend::GPUMemCpy(void* dst, const void* src, size_t
457457
if (stream == -1) {
458458
SynchronizeGPU();
459459
}
460-
if (toGPU == -2) {
460+
if (size == 0) {
461+
if (ev || nEvents) { // Workaround for OCL runtimes, which can throw an error in case size = 0
462+
GPUFailedMsg(clEnqueueMarkerWithWaitList(mInternals->command_queue[stream == -1 ? 0 : stream], nEvents, evList->getEventList<cl_event>(), ev->getEventList<cl_event>()));
463+
}
464+
} else if (toGPU == -2) {
461465
GPUFailedMsg(clEnqueueCopyBuffer(mInternals->command_queue[stream == -1 ? 0 : stream], mInternals->mem_gpu, mInternals->mem_gpu, (char*)src - (char*)mDeviceMemoryBase, (char*)dst - (char*)mDeviceMemoryBase, size, nEvents, evList->getEventList<cl_event>(), ev->getEventList<cl_event>()));
462466
} else if (toGPU) {
463467
GPUFailedMsg(clEnqueueWriteBuffer(mInternals->command_queue[stream == -1 ? 0 : stream], mInternals->mem_gpu, stream == -1, (char*)dst - (char*)mDeviceMemoryBase, size, src, nEvents, evList->getEventList<cl_event>(), ev->getEventList<cl_event>()));

0 commit comments

Comments
 (0)