@@ -580,7 +580,7 @@ TEST_F(ShareableUnifiedMemoryManagerPropertiesTest, givenShareableUnifiedPropert
580580 svmManager->freeSVMAlloc (ptr);
581581}
582582
583- TEST (UnfiedSharedMemoryTransferCalls, givenHostUSMllocationWhenPointerIsUsedAsWriteBufferSourceThenUSMAllocationIsReused ) {
583+ TEST (UnfiedSharedMemoryTransferCalls, givenHostUSMllocationWhenPointerIsUsedForTransferCallsThenUSMAllocationIsReused ) {
584584 MockContext mockContext;
585585 cl_context clContext = &mockContext;
586586
@@ -608,13 +608,18 @@ TEST(UnfiedSharedMemoryTransferCalls, givenHostUSMllocationWhenPointerIsUsedAsWr
608608
609609 EXPECT_EQ (1u , svmAllocation->gpuAllocation ->getTaskCount (osContextId));
610610
611+ status = clEnqueueReadBuffer (commandQueue, buffer, false , 0u , 4096u , hostMemory, 0u , nullptr , nullptr );
612+ ASSERT_EQ (CL_SUCCESS, status);
613+ EXPECT_TRUE (temporaryAllocations.peekIsEmpty ());
614+ EXPECT_EQ (2u , svmAllocation->gpuAllocation ->getTaskCount (osContextId));
615+
611616 status = clReleaseMemObject (buffer);
612617 ASSERT_EQ (CL_SUCCESS, status);
613618 status = clMemFreeINTEL (clContext, hostMemory);
614619 ASSERT_EQ (CL_SUCCESS, status);
615620 clReleaseCommandQueue (commandQueue);
616621}
617- TEST (UnfiedSharedMemoryTransferCalls, givenDeviceUsmAllocationWhenItIsPassedToWriteBufferAsSourceThenErrorIsReturned ) {
622+ TEST (UnfiedSharedMemoryTransferCalls, givenDeviceUsmAllocationWhenPtrIsUsedForTransferCallsThenErrorIsReturned ) {
618623 MockContext mockContext;
619624 cl_context clContext = &mockContext;
620625
@@ -633,14 +638,17 @@ TEST(UnfiedSharedMemoryTransferCalls, givenDeviceUsmAllocationWhenItIsPassedToWr
633638 status = clEnqueueWriteBuffer (commandQueue, buffer, false , 0u , 4096u , deviceMemory, 0u , nullptr , nullptr );
634639 EXPECT_EQ (CL_INVALID_OPERATION, status);
635640
641+ status = clEnqueueReadBuffer (commandQueue, buffer, false , 0u , 4096u , deviceMemory, 0u , nullptr , nullptr );
642+ ASSERT_EQ (CL_INVALID_OPERATION, status);
643+
636644 status = clReleaseMemObject (buffer);
637645 ASSERT_EQ (CL_SUCCESS, status);
638646 status = clMemFreeINTEL (clContext, deviceMemory);
639647 ASSERT_EQ (CL_SUCCESS, status);
640648 clReleaseCommandQueue (commandQueue);
641649}
642650
643- TEST (UnfiedSharedMemoryTransferCalls, givenHostAllocationThatIsSmallerThenWriteBufferTranfserSizeWhenTransferCallIsEmittedThenErrorIsReturned ) {
651+ TEST (UnfiedSharedMemoryTransferCalls, givenHostAllocationThatIsSmallerThenTransferRequirementsThenErrorIsReturned ) {
644652 MockContext mockContext;
645653 cl_context clContext = &mockContext;
646654
@@ -660,14 +668,17 @@ TEST(UnfiedSharedMemoryTransferCalls, givenHostAllocationThatIsSmallerThenWriteB
660668 status = clEnqueueWriteBuffer (commandQueue, buffer, false , 0u , 4096u , hostMemory, 0u , nullptr , nullptr );
661669 EXPECT_EQ (CL_INVALID_OPERATION, status);
662670
671+ status = clEnqueueReadBuffer (commandQueue, buffer, false , 0u , 4096u , hostMemory, 0u , nullptr , nullptr );
672+ ASSERT_EQ (CL_INVALID_OPERATION, status);
673+
663674 status = clReleaseMemObject (buffer);
664675 ASSERT_EQ (CL_SUCCESS, status);
665676 status = clMemFreeINTEL (clContext, hostMemory);
666677 ASSERT_EQ (CL_SUCCESS, status);
667678 clReleaseCommandQueue (commandQueue);
668679}
669680
670- TEST (UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithoutLocalMemoryWhenPointerIsUsedAsWriteBufferSourceThenUSMAllocationIsReused ) {
681+ TEST (UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithoutLocalMemoryWhenPointerIsUsedAsTranfserParameterThenUSMAllocationIsReused ) {
671682 DebugManagerStateRestore restore;
672683 DebugManager.flags .EnableLocalMemory .set (0 );
673684
@@ -697,14 +708,19 @@ TEST(UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithoutLocalMemoryW
697708
698709 EXPECT_EQ (1u , svmAllocation->gpuAllocation ->getTaskCount (osContextId));
699710
711+ status = clEnqueueReadBuffer (commandQueue, buffer, false , 0u , 4096u , sharedMemory, 0u , nullptr , nullptr );
712+ ASSERT_EQ (CL_SUCCESS, status);
713+ EXPECT_TRUE (temporaryAllocations.peekIsEmpty ());
714+ EXPECT_EQ (2u , svmAllocation->gpuAllocation ->getTaskCount (osContextId));
715+
700716 status = clReleaseMemObject (buffer);
701717 ASSERT_EQ (CL_SUCCESS, status);
702718 status = clMemFreeINTEL (clContext, sharedMemory);
703719 ASSERT_EQ (CL_SUCCESS, status);
704720 clReleaseCommandQueue (commandQueue);
705721}
706722
707- TEST (UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithLocalMemoryWhenPointerIsUsedAsWriteBufferSourceThenUSMAllocationIsReused ) {
723+ TEST (UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithLocalMemoryWhenPointerIsUsedAsTransferParameterThenUSMAllocationIsReused ) {
708724 DebugManagerStateRestore restore;
709725 DebugManager.flags .EnableLocalMemory .set (1 );
710726
@@ -737,6 +753,11 @@ TEST(UnfiedSharedMemoryTransferCalls, givenSharedUSMllocationWithLocalMemoryWhen
737753
738754 EXPECT_EQ (2u , svmAllocation->cpuAllocation ->getTaskCount (osContextId));
739755
756+ status = clEnqueueReadBuffer (commandQueue, buffer, false , 0u , 4096u , sharedMemory, 0u , nullptr , nullptr );
757+ ASSERT_EQ (CL_SUCCESS, status);
758+ EXPECT_TRUE (temporaryAllocations.peekIsEmpty ());
759+ EXPECT_EQ (3u , svmAllocation->cpuAllocation ->getTaskCount (osContextId));
760+
740761 status = clReleaseMemObject (buffer);
741762 ASSERT_EQ (CL_SUCCESS, status);
742763 status = clMemFreeINTEL (clContext, sharedMemory);
0 commit comments