77
88#include " core/memory_manager/unified_memory_manager.h"
99#include " runtime/built_ins/builtins_dispatch_builder.h"
10+ #include " runtime/memory_manager/allocations_list.h"
1011#include " test.h"
1112#include " unit_tests/command_queue/command_enqueue_fixture.h"
1213#include " unit_tests/command_queue/command_queue_fixture.h"
@@ -188,6 +189,20 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
188189 pCmdQ->getDevice ());
189190 EXPECT_EQ (&origBuilder, &restoredBuilder);
190191
192+ auto &ultCsr = pDevice->getUltCommandStreamReceiver <FamilyType>();
193+
194+ GraphicsAllocation *srcSvmAlloc = nullptr ;
195+
196+ auto head = ultCsr.getTemporaryAllocations ().peekHead ();
197+ while (head) {
198+ if (srcHostPtr == head->getUnderlyingBuffer ()) {
199+ srcSvmAlloc = head;
200+ break ;
201+ }
202+ head = head->next ;
203+ }
204+ EXPECT_NE (nullptr , srcSvmAlloc);
205+
191206 // use mock builder to validate builder's input / output
192207 auto mockBuilder = static_cast <MockBuiltinDispatchInfoBuilder *>(newBuilder.get ());
193208
@@ -197,7 +212,7 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
197212 EXPECT_EQ (dstSvmPtr, params->dstPtr );
198213 EXPECT_EQ (nullptr , params->srcMemObj );
199214 EXPECT_EQ (nullptr , params->dstMemObj );
200- EXPECT_EQ (nullptr , params->srcSvmAlloc );
215+ EXPECT_EQ (head , params->srcSvmAlloc );
201216 EXPECT_EQ (dstSvmAlloc, params->dstSvmAlloc );
202217 EXPECT_EQ (Vec3<size_t >(0 , 0 , 0 ), params->srcOffset );
203218 EXPECT_EQ (Vec3<size_t >(0 , 0 , 0 ), params->dstOffset );
@@ -267,6 +282,20 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
267282 pCmdQ->getDevice ());
268283 EXPECT_EQ (&origBuilder, &restoredBuilder);
269284
285+ auto &ultCsr = pDevice->getUltCommandStreamReceiver <FamilyType>();
286+
287+ GraphicsAllocation *dstSvmAlloc = nullptr ;
288+
289+ auto head = ultCsr.getTemporaryAllocations ().peekHead ();
290+ while (head) {
291+ if (dstHostPtr == head->getUnderlyingBuffer ()) {
292+ dstSvmAlloc = head;
293+ break ;
294+ }
295+ head = head->next ;
296+ }
297+ EXPECT_NE (nullptr , dstSvmAlloc);
298+
270299 // use mock builder to validate builder's input / output
271300 auto mockBuilder = static_cast <MockBuiltinDispatchInfoBuilder *>(newBuilder.get ());
272301
@@ -277,7 +306,7 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer
277306 EXPECT_EQ (nullptr , params->srcMemObj );
278307 EXPECT_EQ (nullptr , params->dstMemObj );
279308 EXPECT_EQ (srcSvmAlloc, params->srcSvmAlloc );
280- EXPECT_EQ (nullptr , params->dstSvmAlloc );
309+ EXPECT_EQ (dstSvmAlloc , params->dstSvmAlloc );
281310 EXPECT_EQ (Vec3<size_t >(0 , 0 , 0 ), params->srcOffset );
282311 EXPECT_EQ (Vec3<size_t >(0 , 0 , 0 ), params->dstOffset );
283312 EXPECT_EQ (Vec3<size_t >(256 , 0 , 0 ), params->size );
0 commit comments