Move blit enqueue out of enqueueCommon [3/n]

Change-Id: Iaee5052d9b56efce6e4524dd0e0d0455de05c929
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2020-08-27 16:47:02 +02:00
committed by sys_ocldev
parent 4f5216fa1f
commit c9a3edd539
3 changed files with 33 additions and 21 deletions

View File

@@ -54,13 +54,17 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBuffer(
MemObjSurface s2(dstBuffer);
Surface *surfaces[] = {&s1, &s2};
enqueueHandler<CL_COMMAND_COPY_BUFFER>(
surfaces,
false,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
if (blitEnqueueAllowed(CL_COMMAND_COPY_BUFFER)) {
enqueueBlit<CL_COMMAND_COPY_BUFFER>(dispatchInfo, numEventsInWaitList, eventWaitList, event, false);
} else {
enqueueHandler<CL_COMMAND_COPY_BUFFER>(
surfaces,
false,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
}
return CL_SUCCESS;
}

View File

@@ -60,13 +60,17 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBufferRect(
MultiDispatchInfo dispatchInfo;
builder.buildDispatchInfos(dispatchInfo, dc);
enqueueHandler<CL_COMMAND_COPY_BUFFER_RECT>(
surfaces,
false,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
if (blitEnqueueAllowed(CL_COMMAND_COPY_BUFFER_RECT)) {
enqueueBlit<CL_COMMAND_COPY_BUFFER_RECT>(dispatchInfo, numEventsInWaitList, eventWaitList, event, false);
} else {
enqueueHandler<CL_COMMAND_COPY_BUFFER_RECT>(
surfaces,
false,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
}
return CL_SUCCESS;
}

View File

@@ -116,13 +116,17 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBuffer(
MultiDispatchInfo dispatchInfo;
builder.buildDispatchInfos(dispatchInfo, dc);
enqueueHandler<CL_COMMAND_WRITE_BUFFER>(
surfaces,
blockingWrite == CL_TRUE,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
if (blitEnqueueAllowed(cmdType)) {
enqueueBlit<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, numEventsInWaitList, eventWaitList, event, blockingWrite);
} else {
enqueueHandler<CL_COMMAND_WRITE_BUFFER>(
surfaces,
blockingWrite == CL_TRUE,
dispatchInfo,
numEventsInWaitList,
eventWaitList,
event);
}
if (context->isProvidingPerformanceHints()) {
context->providePerformanceHint(CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL, CL_ENQUEUE_WRITE_BUFFER_REQUIRES_COPY_DATA, static_cast<cl_mem>(buffer));