mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Enqueue Read/Write operations with blitter
- Program dependencies from Event and IOQ - Obtain new TimestampPacket - Update output TimestampPacket if needed Change-Id: I4ad020f5c5b05ceca8b096fafe1257523e2bc343 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com> Related-To: NEO-3020
This commit is contained in:

committed by
sys_ocldev

parent
aae31c3c1b
commit
3e88907201
@ -587,12 +587,20 @@ bool CommandQueue::bufferCpuCopyAllowed(Buffer *buffer, cl_command_type commandT
|
||||
cl_int CommandQueue::enqueueReadWriteBufferWithBlitTransfer(cl_command_type commandType, Buffer *buffer,
|
||||
size_t offset, size_t size, void *ptr, cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList, cl_event *event) {
|
||||
CsrDependencies csrDependencies;
|
||||
auto blitCommandStreamReceiver = context->getCommandStreamReceiverForBlitOperation(*buffer);
|
||||
EventsRequest eventsRequest(numEventsInWaitList, eventWaitList, event);
|
||||
TimestampPacketContainer previousTimestampPacketNodes;
|
||||
CsrDependencies csrDependencies;
|
||||
|
||||
csrDependencies.fillFromEventsRequestAndMakeResident(eventsRequest, *blitCommandStreamReceiver,
|
||||
CsrDependencies::DependenciesType::All);
|
||||
|
||||
obtainNewTimestampPacketNodes(1, previousTimestampPacketNodes, queueDependenciesClearRequired());
|
||||
csrDependencies.push_back(&previousTimestampPacketNodes);
|
||||
|
||||
auto copyDirection = (CL_COMMAND_WRITE_BUFFER == commandType) ? BlitterConstants::BlitWithHostPtrDirection::FromHostPtr
|
||||
: BlitterConstants::BlitWithHostPtrDirection::ToHostPtr;
|
||||
blitCommandStreamReceiver->blitWithHostPtr(*buffer, ptr, true, offset, size, copyDirection, csrDependencies);
|
||||
blitCommandStreamReceiver->blitWithHostPtr(*buffer, ptr, true, offset, size, copyDirection, csrDependencies, *timestampPacketContainer);
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user