feature: use heapless builtins in OCL if supported

Related-To: NEO-7621
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2024-02-07 14:43:44 +00:00
committed by Compute-Runtime-Automation
parent 6f69fa997a
commit 59f661356c
26 changed files with 609 additions and 101 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2023 Intel Corporation
* Copyright (C) 2018-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -58,10 +58,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBuffer(
numEventsInWaitList, eventWaitList, event);
}
auto eBuiltInOps = EBuiltInOps::copyBufferToBuffer;
if (forceStateless(buffer->getSize())) {
eBuiltInOps = EBuiltInOps::copyBufferToBufferStateless;
}
const bool useStateless = forceStateless(buffer->getSize());
const bool useHeapless = this->getHeaplessModeEnabled();
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(useStateless, useHeapless);
void *srcPtr = const_cast<void *>(ptr);
@@ -102,7 +101,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBuffer(
dc.direction = csrSelectionArgs.direction;
MultiDispatchInfo dispatchInfo(dc);
const auto dispatchResult = dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, blockingWrite, csr);
const auto dispatchResult = dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingWrite, csr);
if (dispatchResult != CL_SUCCESS) {
return dispatchResult;
}