fix: Select csr once for staging buffer memcpy
Resolves: NEO-13083 Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
parent
fccca2dba7
commit
7832b115a4
|
@ -4947,7 +4947,8 @@ cl_int CL_API_CALL clEnqueueSVMMemcpy(cl_command_queue commandQueue,
|
|||
size,
|
||||
numEventsInWaitList,
|
||||
eventWaitList,
|
||||
event);
|
||||
event,
|
||||
nullptr);
|
||||
}
|
||||
} else {
|
||||
retVal = pCommandQueue->enqueueMarkerWithWaitList(numEventsInWaitList, eventWaitList, event);
|
||||
|
|
|
@ -1579,7 +1579,7 @@ cl_int CommandQueue::enqueueStagingBufferMemcpy(cl_bool blockingCopy, void *dstP
|
|||
}
|
||||
memcpy(stagingBuffer, chunkSrc, chunkSize);
|
||||
if (isSingleTransfer) {
|
||||
return this->enqueueSVMMemcpy(false, chunkDst, stagingBuffer, chunkSize, 0, nullptr, event);
|
||||
return this->enqueueSVMMemcpy(false, chunkDst, stagingBuffer, chunkSize, 0, nullptr, event, csr);
|
||||
}
|
||||
|
||||
if (isFirstTransfer && isProfilingEnabled()) {
|
||||
|
@ -1590,7 +1590,7 @@ cl_int CommandQueue::enqueueStagingBufferMemcpy(cl_bool blockingCopy, void *dstP
|
|||
if (isLastTransfer && !this->isOOQEnabled()) {
|
||||
outEvent = event;
|
||||
}
|
||||
auto ret = this->enqueueSVMMemcpy(false, chunkDst, stagingBuffer, chunkSize, 0, nullptr, outEvent);
|
||||
auto ret = this->enqueueSVMMemcpy(false, chunkDst, stagingBuffer, chunkSize, 0, nullptr, outEvent, csr);
|
||||
return ret;
|
||||
};
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
|||
void *userData, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event) = 0;
|
||||
|
||||
virtual cl_int enqueueSVMMemcpy(cl_bool blockingCopy, void *dstPtr, const void *srcPtr, size_t size, cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList, cl_event *event) = 0;
|
||||
const cl_event *eventWaitList, cl_event *event, CommandStreamReceiver *csrParam) = 0;
|
||||
|
||||
virtual cl_int enqueueSVMMemFill(void *svmPtr, const void *pattern, size_t patternSize,
|
||||
size_t size, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event) = 0;
|
||||
|
|
|
@ -204,7 +204,7 @@ class CommandQueueHw : public CommandQueue {
|
|||
size_t size,
|
||||
cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) override;
|
||||
cl_event *event, CommandStreamReceiver *csrParam) override;
|
||||
|
||||
cl_int enqueueSVMMemFill(void *svmPtr,
|
||||
const void *pattern,
|
||||
|
|
|
@ -316,7 +316,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
size_t size,
|
||||
cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) {
|
||||
cl_event *event, CommandStreamReceiver *csrParam) {
|
||||
|
||||
if ((dstPtr == nullptr) || (srcPtr == nullptr)) {
|
||||
return CL_INVALID_VALUE;
|
||||
|
@ -357,6 +357,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
const bool useHeapless = this->getHeaplessModeEnabled();
|
||||
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(isStatelessRequired, useHeapless);
|
||||
|
||||
auto selectCsr = [csrParam, this](CsrSelectionArgs &csrSelectionArgs) -> CommandStreamReceiver & {
|
||||
return csrParam ? *csrParam : selectCsrForBuiltinOperation(csrSelectionArgs);
|
||||
};
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
BuiltinOpParams operationParams;
|
||||
Surface *surfaces[2];
|
||||
|
@ -364,7 +367,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
|
||||
if (copyType == SvmToHost) {
|
||||
CsrSelectionArgs csrSelectionArgs{CL_COMMAND_SVM_MEMCPY, srcAllocation, {}, device->getRootDeviceIndex(), &size};
|
||||
CommandStreamReceiver &csr = selectCsrForBuiltinOperation(csrSelectionArgs);
|
||||
CommandStreamReceiver &csr = selectCsr(csrSelectionArgs);
|
||||
|
||||
GeneralSurface srcSvmSurf(srcAllocation);
|
||||
HostPtrSurface dstHostPtrSurf(dstGpuPtr, size);
|
||||
|
@ -391,7 +394,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
dispatchResult = dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy, csr);
|
||||
} else if (copyType == HostToSvm) {
|
||||
CsrSelectionArgs csrSelectionArgs{CL_COMMAND_SVM_MEMCPY, {}, dstAllocation, device->getRootDeviceIndex(), &size};
|
||||
CommandStreamReceiver &csr = selectCsrForBuiltinOperation(csrSelectionArgs);
|
||||
CommandStreamReceiver &csr = selectCsr(csrSelectionArgs);
|
||||
|
||||
HostPtrSurface srcHostPtrSurf(const_cast<void *>(srcGpuPtr), size, true);
|
||||
GeneralSurface dstSvmSurf(dstAllocation);
|
||||
|
@ -416,7 +419,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
dispatchResult = dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy, csr);
|
||||
} else if (copyType == SvmToSvm) {
|
||||
CsrSelectionArgs csrSelectionArgs{CL_COMMAND_SVM_MEMCPY, srcAllocation, dstAllocation, device->getRootDeviceIndex(), &size};
|
||||
CommandStreamReceiver &csr = selectCsrForBuiltinOperation(csrSelectionArgs);
|
||||
CommandStreamReceiver &csr = selectCsr(csrSelectionArgs);
|
||||
|
||||
GeneralSurface srcSvmSurf(srcAllocation);
|
||||
GeneralSurface dstSvmSurf(dstAllocation);
|
||||
|
@ -430,7 +433,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
|||
dispatchResult = dispatchBcsOrGpgpuEnqueue<CL_COMMAND_SVM_MEMCPY>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy, csr);
|
||||
} else {
|
||||
CsrSelectionArgs csrSelectionArgs{CL_COMMAND_SVM_MEMCPY, &size};
|
||||
CommandStreamReceiver &csr = selectCsrForBuiltinOperation(csrSelectionArgs);
|
||||
CommandStreamReceiver &csr = selectCsr(csrSelectionArgs);
|
||||
|
||||
HostPtrSurface srcHostPtrSurf(const_cast<void *>(srcGpuPtr), size);
|
||||
HostPtrSurface dstHostPtrSurf(dstGpuPtr, size);
|
||||
|
|
|
@ -1017,7 +1017,7 @@ TEST(clUnifiedSharedMemoryTests, givenTwoUnifiedMemoryAllocationsWhenTheyAreCopi
|
|||
size_t size,
|
||||
cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) override {
|
||||
cl_event *event, CommandStreamReceiver *csrParam) override {
|
||||
EXPECT_EQ(0u, blockingCopy);
|
||||
EXPECT_EQ(expectedDstPtr, dstPtr);
|
||||
EXPECT_EQ(expectedSrcPtr, srcPtr);
|
||||
|
|
|
@ -111,7 +111,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -188,7 +189,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -270,7 +272,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -339,7 +342,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenCommandQueueWhenEnqueueSVMMemcpyIsCalledThe
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -363,7 +367,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenCommandQueueWhenEnqueueSVMMemcpyIsCalledThe
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_TRUE(mockCmdQ->notifyEnqueueSVMMemcpyCalled);
|
||||
|
@ -391,7 +396,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenCsrSelectionArgsCalledWithRootDeviceIndexGr
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_TRUE(mockCmdQ->notifyEnqueueSVMMemcpyCalled);
|
||||
|
@ -419,7 +425,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenConstHostMemoryAsSourceWhenEnqueueSVMMemcpy
|
|||
sizeof(double), // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -472,7 +479,8 @@ HWTEST_F(EnqueueSvmMemCopyHwTest, givenEnqueueSVMMemCopyWhenUsingCopyBufferToBuf
|
|||
static_cast<size_t>(bigSize), // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
@ -490,7 +498,8 @@ HWTEST_F(EnqueueSvmMemCopyHwTest, givenEnqueueSVMMemCopyWhenUsingCopyBufferToBuf
|
|||
static_cast<size_t>(smallSize), // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
@ -528,7 +537,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSvmMemcpyWhenSvmZeroCopyThenBuiltinK
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -605,7 +615,8 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSvmMemcpyWhenSvmGpuThenBuiltinKernel
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_event *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
|
|
@ -388,7 +388,8 @@ TEST_F(EnqueueSvmTest, GivenNullDstPtrWhenCopyingMemoryThenInvalidVaueErrorIsRet
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_INVALID_VALUE, retVal);
|
||||
context->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -404,7 +405,8 @@ TEST_F(EnqueueSvmTest, GivenNullSrcPtrWhenCopyingMemoryThenInvalidVaueErrorIsRet
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_INVALID_VALUE, retVal);
|
||||
}
|
||||
|
@ -421,7 +423,8 @@ TEST_F(EnqueueSvmTest, givenSrcHostPtrAndEventWhenEnqueueSVMMemcpyThenEventComma
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
&event // cL_event *event
|
||||
&event, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_MEMCPY;
|
||||
|
@ -441,7 +444,8 @@ TEST_F(EnqueueSvmTest, givenSrcHostPtrAndSizeZeroWhenEnqueueSVMMemcpyThenReturnS
|
|||
0, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
@ -458,7 +462,8 @@ HWTEST_F(EnqueueSvmTest, givenSrcHostPtrWhenEnqueueSVMMemcpyThenEnqueuWriteBuffe
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(myCmdQ.lastCommandType, static_cast<cl_command_type>(CL_COMMAND_WRITE_BUFFER));
|
||||
|
@ -489,7 +494,8 @@ HWTEST_F(EnqueueSvmTest, givenDstHostPtrWhenEnqueueSVMMemcpyThenEnqueuReadBuffer
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(myCmdQ.lastCommandType, static_cast<cl_command_type>(CL_COMMAND_READ_BUFFER));
|
||||
|
@ -520,7 +526,8 @@ TEST_F(EnqueueSvmTest, givenDstHostPtrAndEventWhenEnqueueSVMMemcpyThenEventComma
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
&event // cL_event *event
|
||||
&event, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_MEMCPY;
|
||||
|
@ -540,7 +547,8 @@ TEST_F(EnqueueSvmTest, givenDstHostPtrAndSizeZeroWhenEnqueueSVMMemcpyThenReturnS
|
|||
0, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
@ -558,7 +566,8 @@ HWTEST_F(EnqueueSvmTest, givenDstHostPtrAndSrcHostPtrWhenEnqueueNonBlockingSVMMe
|
|||
3, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(myCmdQ.lastCommandType, static_cast<cl_command_type>(CL_COMMAND_WRITE_BUFFER));
|
||||
|
@ -591,7 +600,8 @@ HWTEST_F(EnqueueSvmTest, givenDstHostPtrAndSrcHostPtrWhenEnqueueBlockingSVMMemcp
|
|||
3, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(myCmdQ.lastCommandType, static_cast<cl_command_type>(CL_COMMAND_WRITE_BUFFER));
|
||||
|
@ -618,7 +628,8 @@ TEST_F(EnqueueSvmTest, givenDstHostPtrAndSrcHostPtrAndSizeZeroWhenEnqueueSVMMemc
|
|||
0, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
@ -634,7 +645,8 @@ HWTEST_F(EnqueueSvmTest, givenSvmToSvmCopyTypeWhenEnqueueNonBlockingSVMMemcpyThe
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(myCmdQ.lastCommandType, static_cast<cl_command_type>(CL_COMMAND_SVM_MEMCPY));
|
||||
|
@ -663,7 +675,8 @@ TEST_F(EnqueueSvmTest, givenSvmToSvmCopyTypeWhenEnqueueBlockingSVMMemcpyThenSucc
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
context->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -681,7 +694,8 @@ TEST_F(EnqueueSvmTest, GivenValidParamsWhenCopyingMemoryWithBlockingThenSuccessi
|
|||
256, // size_t size
|
||||
1, // cl_uint num_events_in_wait_list
|
||||
eventWaitList, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
context->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -700,7 +714,8 @@ TEST_F(EnqueueSvmTest, GivenCoherencyWhenCopyingMemoryThenSuccessIsReturned) {
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
context->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -720,7 +735,8 @@ TEST_F(EnqueueSvmTest, GivenCoherencyWhenCopyingMemoryWithBlockingThenSuccessIsR
|
|||
256, // size_t size
|
||||
1, // cl_uint num_events_in_wait_list
|
||||
eventWaitList, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
context->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -738,7 +754,8 @@ HWTEST_F(EnqueueSvmTest, givenUnalignedAddressWhenEnqueueMemcpyThenDispatchInfoH
|
|||
0, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
|
@ -2152,7 +2169,8 @@ HWTEST_F(EnqueueSvmTest, GivenDstHostPtrWhenHostPtrAllocationCreationFailsThenRe
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_OUT_OF_RESOURCES, retVal);
|
||||
cmdQ.gpgpuEngine->commandStreamReceiver = oldCommandStreamReceiver;
|
||||
|
@ -2173,7 +2191,8 @@ HWTEST_F(EnqueueSvmTest, GivenSrcHostPtrAndSizeZeroWhenHostPtrAllocationCreation
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_OUT_OF_RESOURCES, retVal);
|
||||
cmdQ.gpgpuEngine->commandStreamReceiver = oldCommandStreamReceiver;
|
||||
|
@ -2195,7 +2214,8 @@ HWTEST_F(EnqueueSvmTest, givenDstHostPtrAndSrcHostPtrWhenHostPtrAllocationCreati
|
|||
256, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_OUT_OF_RESOURCES, retVal);
|
||||
cmdQ.gpgpuEngine->commandStreamReceiver = oldCommandStreamReceiver;
|
||||
|
@ -2211,7 +2231,7 @@ TEST_F(EnqueueSvmTest, givenPageFaultManagerWhenEnqueueMemcpyThenAllocIsDecommit
|
|||
mockMemoryManager->getPageFaultManager()->insertAllocation(ptrSVM, 256, context->getSVMAllocsManager(), context->getSpecialQueue(pDevice->getRootDeviceIndex()), {});
|
||||
EXPECT_EQ(static_cast<MockPageFaultManager *>(mockMemoryManager->getPageFaultManager())->transferToCpuCalled, 0);
|
||||
|
||||
this->pCmdQ->enqueueSVMMemcpy(false, ptrSVM, srcSvm, 256, 0, nullptr, nullptr);
|
||||
this->pCmdQ->enqueueSVMMemcpy(false, ptrSVM, srcSvm, 256, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
EXPECT_EQ(static_cast<MockPageFaultManager *>(mockMemoryManager->getPageFaultManager())->allowMemoryAccessCalled, 0);
|
||||
EXPECT_EQ(static_cast<MockPageFaultManager *>(mockMemoryManager->getPageFaultManager())->protectMemoryCalled, 2);
|
||||
|
@ -2257,7 +2277,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromMappedPtrToSvmAllocWhenCallingSvmMemcpyThe
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(0u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2272,7 +2293,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromMappedPtrToSvmAllocWhenCallingSvmMemcpyThe
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(1u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2294,7 +2316,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromSvmAllocToMappedPtrWhenCallingSvmMemcpyThe
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(0u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2309,7 +2332,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromSvmAllocToMappedPtrWhenCallingSvmMemcpyThe
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(1u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2333,7 +2357,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromMappedPtrToMappedPtrWhenCallingSvmMemcpyTh
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(0u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2350,7 +2375,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromMappedPtrToMappedPtrWhenCallingSvmMemcpyTh
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(1u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
@ -2367,7 +2393,8 @@ HWTEST_F(EnqueueSvmTest, givenCopyFromMappedPtrToMappedPtrWhenCallingSvmMemcpyTh
|
|||
size, // size_t size
|
||||
0, // cl_uint num_events_in_wait_list
|
||||
nullptr, // cl_evebt *event_wait_list
|
||||
nullptr // cL_event *event
|
||||
nullptr, // cL_event *event
|
||||
nullptr // CommandStreamReceiver* csrParam
|
||||
);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(2u, csr.createAllocationForHostSurfaceCalled);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2018-2023 Intel Corporation
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -766,7 +766,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSv
|
|||
void *pSrcSVM = context.getSVMAllocsManager()->createSVMAlloc(256, {}, context.getRootDeviceIndices(), context.getDeviceBitfields());
|
||||
void *pDstSVM = context.getSVMAllocsManager()->createSVMAlloc(256, {}, context.getRootDeviceIndices(), context.getDeviceBitfields());
|
||||
size_t zeroSize = 0;
|
||||
mockCmdQ->enqueueSVMMemcpy(false, pSrcSVM, pDstSVM, zeroSize, 0, nullptr, nullptr);
|
||||
mockCmdQ->enqueueSVMMemcpy(false, pSrcSVM, pDstSVM, zeroSize, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(static_cast<cl_command_type>(CL_COMMAND_MARKER), mockCmdQ->lastCommandType);
|
||||
|
||||
context.getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -781,7 +781,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSv
|
|||
void *pSrcSVM = context.getSVMAllocsManager()->createSVMAlloc(256, {}, context.getRootDeviceIndices(), context.getDeviceBitfields());
|
||||
void *pDstSVM = context.getSVMAllocsManager()->createSVMAlloc(256, {}, context.getRootDeviceIndices(), context.getDeviceBitfields());
|
||||
size_t zeroSize = 0;
|
||||
mockCmdQ->enqueueSVMMemcpy(false, pSrcSVM, pDstSVM, zeroSize, 0, nullptr, &event);
|
||||
mockCmdQ->enqueueSVMMemcpy(false, pSrcSVM, pDstSVM, zeroSize, 0, nullptr, &event, nullptr);
|
||||
EXPECT_EQ(static_cast<cl_command_type>(CL_COMMAND_MARKER), mockCmdQ->lastCommandType);
|
||||
|
||||
auto pEvent = (Event *)event;
|
||||
|
|
|
@ -244,7 +244,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenEnqueueBufferOperationIs
|
|||
commandQueue->enqueueCopyBufferRect(bufferForBlt0.get(), bufferForBlt1.get(), bufferOrigin, hostOrigin, region,
|
||||
MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize,
|
||||
MemoryConstants::cacheLineSize, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
debugManager.flags.EnableBlitterForEnqueueOperations.set(-1);
|
||||
mockCmdQueue->bcsEngines[bcsIndex] = bcsEngine;
|
||||
|
@ -263,7 +263,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenEnqueueBufferOperationIs
|
|||
commandQueue->enqueueCopyBufferRect(bufferForBlt0.get(), bufferForBlt1.get(), bufferOrigin, hostOrigin, region,
|
||||
MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize,
|
||||
MemoryConstants::cacheLineSize, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
EXPECT_EQ(7u, bcsCsr->blitBufferCalled);
|
||||
|
||||
|
@ -290,7 +290,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenEnqueueBufferOperationIs
|
|||
MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize,
|
||||
MemoryConstants::cacheLineSize, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(13u, bcsCsr->blitBufferCalled);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_TRUE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(14u, bcsCsr->blitBufferCalled);
|
||||
}
|
||||
|
||||
|
@ -352,7 +352,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenQueueIsBlockedThenDispat
|
|||
commandQueue->enqueueCopyBufferRect(bufferForBlt0.get(), bufferForBlt1.get(), bufferOrigin, hostOrigin, region,
|
||||
MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize,
|
||||
MemoryConstants::cacheLineSize, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_FALSE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_FALSE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
EXPECT_EQ(0u, bcsCsr->blitBufferCalled);
|
||||
|
||||
|
@ -378,7 +378,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenQueueIsBlockedThenDispat
|
|||
MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize, MemoryConstants::cacheLineSize,
|
||||
MemoryConstants::cacheLineSize, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(13u, bcsCsr->blitBufferCalled);
|
||||
commandQueue->enqueueSVMMemcpy(CL_FALSE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr);
|
||||
commandQueue->enqueueSVMMemcpy(CL_FALSE, bufferForBlt0.get(), bufferForBlt1.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
}
|
||||
|
||||
HWTEST_TEMPLATED_F(BcsBufferTests, givenBuffersWhenCopyBufferCalledThenUseBcs) {
|
||||
|
@ -440,7 +440,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDstHostPtrWhenEnqueueSVMMemcpyThenEnqueu
|
|||
auto pDstSVM = std::make_unique<char[]>(1);
|
||||
auto pSrcSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(1, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM, 1, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM, 1, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(bcsCsr->getCS(0));
|
||||
|
@ -463,7 +463,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSrcHostPtrWhenEnqueueSVMMemcpyThenEnqueu
|
|||
auto pSrcSVM = std::make_unique<char[]>(1);
|
||||
auto pDstSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(1, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM.get(), 1, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM.get(), 1, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(bcsCsr->getCS(0));
|
||||
|
@ -1239,7 +1239,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBlockingSVMMemcpyAndEnqueuReadBufferIsCa
|
|||
auto pDstSVM = std::make_unique<char[]>(256);
|
||||
auto pSrcSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM.get(), pSrcSVM, 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM.get(), pSrcSVM, 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(0u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
EXPECT_TRUE(gpgpuCsr.getTemporaryAllocations().peekIsEmpty());
|
||||
EXPECT_FALSE(myMockCsr->getTemporaryAllocations().peekIsEmpty());
|
||||
|
@ -1249,7 +1249,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBlockingSVMMemcpyAndEnqueuReadBufferIsCa
|
|||
EXPECT_EQ(0u, tempAlloc->countSuccessors());
|
||||
EXPECT_EQ(pDstSVM.get(), reinterpret_cast<void *>(tempAlloc->getGpuAddress()));
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM, 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM, 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(1u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
|
||||
bcsMockContext->getSVMAllocsManager()->freeSVMAlloc(pSrcSVM);
|
||||
|
@ -1274,7 +1274,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSrcHostPtrBlockingEnqueueSVMMemcpyAndEnq
|
|||
auto pSrcSVM = std::make_unique<char[]>(256);
|
||||
auto pDstSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM.get(), 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM.get(), 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(0u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
EXPECT_TRUE(gpgpuCsr.getTemporaryAllocations().peekIsEmpty());
|
||||
EXPECT_FALSE(myMockCsr->getTemporaryAllocations().peekIsEmpty());
|
||||
|
@ -1284,7 +1284,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSrcHostPtrBlockingEnqueueSVMMemcpyAndEnq
|
|||
EXPECT_EQ(0u, tempAlloc->countSuccessors());
|
||||
EXPECT_EQ(pSrcSVM.get(), reinterpret_cast<void *>(tempAlloc->getGpuAddress()));
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM.get(), 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM.get(), 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(1u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
|
||||
bcsMockContext->getSVMAllocsManager()->freeSVMAlloc(pDstSVM);
|
||||
|
@ -1309,7 +1309,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDstHostPtrAndSrcHostPtrBlockingEnqueueSV
|
|||
auto pSrcSVM = std::make_unique<char[]>(256);
|
||||
auto pDstSVM = std::make_unique<char[]>(256);
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM.get(), pSrcSVM.get(), 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM.get(), pSrcSVM.get(), 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(0u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
EXPECT_TRUE(gpgpuCsr.getTemporaryAllocations().peekIsEmpty());
|
||||
EXPECT_FALSE(myMockCsr->getTemporaryAllocations().peekIsEmpty());
|
||||
|
@ -1320,7 +1320,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDstHostPtrAndSrcHostPtrBlockingEnqueueSV
|
|||
EXPECT_EQ(pSrcSVM.get(), reinterpret_cast<void *>(tempAlloc->getGpuAddress()));
|
||||
EXPECT_EQ(pDstSVM.get(), reinterpret_cast<void *>(tempAlloc->next->getGpuAddress()));
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM.get(), 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM.get(), 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(1u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
}
|
||||
|
||||
|
@ -1333,7 +1333,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSvmToSvmCopyWhenEnqueueSVMMemcpyThenSvmM
|
|||
auto pDstSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
auto pSrcSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr, nullptr);
|
||||
|
||||
HardwareParse hwParser;
|
||||
hwParser.parseCommands<FamilyType>(bcsCsr->getCS(0));
|
||||
|
@ -1367,12 +1367,12 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSvmToSvmCopyTypeWhenEnqueueNonBlockingSV
|
|||
auto pDstSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
auto pSrcSVM = bcsMockContext->getSVMAllocsManager()->createSVMAlloc(256, {}, bcsMockContext->getRootDeviceIndices(), bcsMockContext->getDeviceBitfields());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(0u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
EXPECT_TRUE(gpgpuCsr.getTemporaryAllocations().peekIsEmpty());
|
||||
EXPECT_TRUE(myMockCsr->getTemporaryAllocations().peekIsEmpty());
|
||||
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr);
|
||||
cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr, nullptr);
|
||||
EXPECT_EQ(1u, myMockCsr->waitForTaskCountAndCleanAllocationListCalled);
|
||||
|
||||
bcsMockContext->getSVMAllocsManager()->freeSVMAlloc(pDstSVM);
|
||||
|
|
|
@ -159,7 +159,7 @@ class MockCommandQueue : public CommandQueue {
|
|||
cl_event *event) override { return CL_SUCCESS; }
|
||||
|
||||
cl_int enqueueSVMMemcpy(cl_bool blockingCopy, void *dstPtr, const void *srcPtr, size_t size,
|
||||
cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event) override { return CL_SUCCESS; }
|
||||
cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, CommandStreamReceiver *csrParam) override { return CL_SUCCESS; }
|
||||
|
||||
cl_int enqueueSVMMemFill(void *svmPtr, const void *pattern, size_t patternSize, size_t size, cl_uint numEventsInWaitList,
|
||||
const cl_event *eventWaitList, cl_event *event) override { return CL_SUCCESS; }
|
||||
|
@ -471,9 +471,9 @@ class MockCommandQueueHw : public CommandQueueHw<GfxFamily> {
|
|||
}
|
||||
|
||||
cl_int enqueueSVMMemcpy(cl_bool blockingCopy, void *dstPtr, const void *srcPtr, size_t size,
|
||||
cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event) override {
|
||||
cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, CommandStreamReceiver *csrParam) override {
|
||||
enqueueSVMMemcpyCalledCount++;
|
||||
return BaseClass::enqueueSVMMemcpy(blockingCopy, dstPtr, srcPtr, size, numEventsInWaitList, eventWaitList, event);
|
||||
return BaseClass::enqueueSVMMemcpy(blockingCopy, dstPtr, srcPtr, size, numEventsInWaitList, eventWaitList, event, csrParam);
|
||||
}
|
||||
|
||||
cl_int finish() override {
|
||||
|
|
Loading…
Reference in New Issue