From a3dedcc7eede1d024400f355fd5c16a1e175309a Mon Sep 17 00:00:00 2001 From: Lukasz Jobczyk Date: Tue, 30 Aug 2022 14:10:57 +0000 Subject: [PATCH] Add minimal transfer size for BCS split Signed-off-by: Lukasz Jobczyk --- .../source/command_queue/command_queue_hw.h | 3 +- opencl/source/command_queue/enqueue_common.h | 13 +++- .../command_queue/enqueue_copy_buffer.h | 2 +- .../command_queue/enqueue_copy_buffer_rect.h | 2 +- .../source/command_queue/enqueue_copy_image.h | 2 +- .../command_queue/enqueue_read_buffer.h | 2 +- .../command_queue/enqueue_read_buffer_rect.h | 2 +- .../source/command_queue/enqueue_read_image.h | 2 +- opencl/source/command_queue/enqueue_svm.h | 12 ++-- .../command_queue/enqueue_write_buffer.h | 2 +- .../command_queue/enqueue_write_buffer_rect.h | 2 +- .../command_queue/enqueue_write_image.h | 2 +- .../command_queue_hw_2_tests.cpp | 60 ++++++++++++------- 13 files changed, 68 insertions(+), 38 deletions(-) diff --git a/opencl/source/command_queue/command_queue_hw.h b/opencl/source/command_queue/command_queue_hw.h index 46ca7c779a..9a89d6dce2 100644 --- a/opencl/source/command_queue/command_queue_hw.h +++ b/opencl/source/command_queue/command_queue_hw.h @@ -358,7 +358,8 @@ class CommandQueueHw : public CommandQueue { cl_int enqueueBlit(const MultiDispatchInfo &multiDispatchInfo, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking, CommandStreamReceiver &bcsCsr); bool isSplitEnqueueBlitSupported(); - bool isSplitEnqueueBlitNeeded(TransferDirection transferDirection, CommandStreamReceiver &csr); + bool isSplitEnqueueBlitNeeded(TransferDirection transferDirection, size_t transferSize, CommandStreamReceiver &csr); + size_t getTotalSizeFromRectRegion(const size_t *region); template cl_int enqueueBlitSplit(MultiDispatchInfo &dispatchInfo, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking, CommandStreamReceiver &csr); diff --git a/opencl/source/command_queue/enqueue_common.h b/opencl/source/command_queue/enqueue_common.h index 605a8cac35..df8cd7e510 100644 --- a/opencl/source/command_queue/enqueue_common.h +++ b/opencl/source/command_queue/enqueue_common.h @@ -1115,9 +1115,12 @@ bool CommandQueueHw::isSplitEnqueueBlitSupported() { } template -bool CommandQueueHw::isSplitEnqueueBlitNeeded(TransferDirection transferDirection, CommandStreamReceiver &csr) { +bool CommandQueueHw::isSplitEnqueueBlitNeeded(TransferDirection transferDirection, size_t transferSize, CommandStreamReceiver &csr) { + constexpr size_t minimalSizeForBcsSplit = 16 * MemoryConstants::megaByte; + auto bcsSplit = isSplitEnqueueBlitSupported() && csr.getOsContext().getEngineType() == aub_stream::EngineType::ENGINE_BCS && + transferSize >= minimalSizeForBcsSplit && (transferDirection == TransferDirection::HostToLocal || transferDirection == TransferDirection::LocalToHost); @@ -1128,6 +1131,14 @@ bool CommandQueueHw::isSplitEnqueueBlitNeeded(TransferDirection trans return bcsSplit; } +template +size_t CommandQueueHw::getTotalSizeFromRectRegion(const size_t *region) { + auto size = region[0]; + size *= (region[1] == 0 ? 1 : region[1]); + size *= (region[2] == 0 ? 1 : region[2]); + return size; +} + template template cl_int CommandQueueHw::enqueueBlitSplit(MultiDispatchInfo &dispatchInfo, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking, CommandStreamReceiver &csr) { diff --git a/opencl/source/command_queue/enqueue_copy_buffer.h b/opencl/source/command_queue/enqueue_copy_buffer.h index 3edd7f41bd..1bb99cc88e 100644 --- a/opencl/source/command_queue/enqueue_copy_buffer.h +++ b/opencl/source/command_queue/enqueue_copy_buffer.h @@ -45,7 +45,7 @@ cl_int CommandQueueHw::enqueueCopyBuffer( dc.srcOffset = {srcOffset, 0, 0}; dc.dstOffset = {dstOffset, 0, 0}; dc.size = {size, 0, 0}; - dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); MultiDispatchInfo dispatchInfo(dc); diff --git a/opencl/source/command_queue/enqueue_copy_buffer_rect.h b/opencl/source/command_queue/enqueue_copy_buffer_rect.h index f998c4f9b5..41699db65b 100644 --- a/opencl/source/command_queue/enqueue_copy_buffer_rect.h +++ b/opencl/source/command_queue/enqueue_copy_buffer_rect.h @@ -56,7 +56,7 @@ cl_int CommandQueueHw::enqueueCopyBufferRect( dc.srcSlicePitch = srcSlicePitch; dc.dstRowPitch = dstRowPitch; dc.dstSlicePitch = dstSlicePitch; - dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); MultiDispatchInfo dispatchInfo(dc); return dispatchBcsOrGpgpuEnqueue(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, false, csr); diff --git a/opencl/source/command_queue/enqueue_copy_image.h b/opencl/source/command_queue/enqueue_copy_image.h index 7d955388b2..7df8c26008 100644 --- a/opencl/source/command_queue/enqueue_copy_image.h +++ b/opencl/source/command_queue/enqueue_copy_image.h @@ -52,7 +52,7 @@ cl_int CommandQueueHw::enqueueCopyImage( if (isMipMapped(dstImage->getImageDesc())) { dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, dstOrigin); } - dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); MultiDispatchInfo dispatchInfo(dc); diff --git a/opencl/source/command_queue/enqueue_read_buffer.h b/opencl/source/command_queue/enqueue_read_buffer.h index 2a057c3f73..82113becfa 100644 --- a/opencl/source/command_queue/enqueue_read_buffer.h +++ b/opencl/source/command_queue/enqueue_read_buffer.h @@ -82,7 +82,7 @@ cl_int CommandQueueHw::enqueueReadBuffer( GeneralSurface mapSurface; Surface *surfaces[] = {&bufferSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); if (mapAllocation) { surfaces[1] = &mapSurface; diff --git a/opencl/source/command_queue/enqueue_read_buffer_rect.h b/opencl/source/command_queue/enqueue_read_buffer_rect.h index 9ce6879c42..be9117803e 100644 --- a/opencl/source/command_queue/enqueue_read_buffer_rect.h +++ b/opencl/source/command_queue/enqueue_read_buffer_rect.h @@ -66,7 +66,7 @@ cl_int CommandQueueHw::enqueueReadBufferRect( GeneralSurface mapSurface; Surface *surfaces[] = {&srcBufferSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); if (region[0] != 0 && region[1] != 0 && region[2] != 0) { if (mapAllocation) { diff --git a/opencl/source/command_queue/enqueue_read_image.h b/opencl/source/command_queue/enqueue_read_image.h index 7e7b6a1efd..5f0b3d1183 100644 --- a/opencl/source/command_queue/enqueue_read_image.h +++ b/opencl/source/command_queue/enqueue_read_image.h @@ -63,7 +63,7 @@ cl_int CommandQueueHw::enqueueReadImage( GeneralSurface mapSurface; Surface *surfaces[] = {&srcImgSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); bool tempAllocFallback = false; if (mapAllocation) { diff --git a/opencl/source/command_queue/enqueue_svm.h b/opencl/source/command_queue/enqueue_svm.h index b2c4502c93..af4e04db70 100644 --- a/opencl/source/command_queue/enqueue_svm.h +++ b/opencl/source/command_queue/enqueue_svm.h @@ -123,7 +123,7 @@ cl_int CommandQueueHw::enqueueSVMMap(cl_bool blockingMap, dc.srcOffset = {svmOffset, 0, 0}; dc.size = {size, 0, 0}; dc.unifiedMemoryArgsRequireMemSync = externalAppCall; - dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); MultiDispatchInfo dispatchInfo(dc); const auto dispatchResult = dispatchBcsOrGpgpuEnqueue(dispatchInfo, surfaces, EBuiltInOps::CopyBufferToBuffer, numEventsInWaitList, eventWaitList, event, blocking, csr); @@ -210,7 +210,7 @@ cl_int CommandQueueHw::enqueueSVMUnmap(void *svmPtr, dc.srcOffset = {svmOperation->offset, 0, 0}; dc.size = {svmOperation->regionSize, 0, 0}; dc.unifiedMemoryArgsRequireMemSync = externalAppCall; - dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + dc.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, svmOperation->regionSize, csr); MultiDispatchInfo dispatchInfo(dc); const auto dispatchResult = dispatchBcsOrGpgpuEnqueue(dispatchInfo, surfaces, EBuiltInOps::CopyBufferToBuffer, numEventsInWaitList, eventWaitList, event, false, csr); @@ -367,7 +367,7 @@ cl_int CommandQueueHw::enqueueSVMMemcpy(cl_bool blockingCopy, GeneralSurface srcSvmSurf(srcAllocation); HostPtrSurface dstHostPtrSurf(dstGpuPtr, size); - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); if (size != 0) { bool status = selectCsrForHostPtrAllocation(bcsSplit, csr).createAllocationForHostSurface(dstHostPtrSurf, true); @@ -393,7 +393,7 @@ cl_int CommandQueueHw::enqueueSVMMemcpy(cl_bool blockingCopy, HostPtrSurface srcHostPtrSurf(const_cast(srcGpuPtr), size, true); GeneralSurface dstSvmSurf(dstAllocation); - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); if (size != 0) { bool status = selectCsrForHostPtrAllocation(bcsSplit, csr).createAllocationForHostSurface(srcHostPtrSurf, false); @@ -420,7 +420,7 @@ cl_int CommandQueueHw::enqueueSVMMemcpy(cl_bool blockingCopy, surfaces[0] = &srcSvmSurf; surfaces[1] = &dstSvmSurf; - operationParams.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + operationParams.bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); dispatchInfo.setBuiltinOpParams(operationParams); dispatchResult = dispatchBcsOrGpgpuEnqueue(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy, csr); } else { @@ -430,7 +430,7 @@ cl_int CommandQueueHw::enqueueSVMMemcpy(cl_bool blockingCopy, HostPtrSurface srcHostPtrSurf(const_cast(srcGpuPtr), size); HostPtrSurface dstHostPtrSurf(dstGpuPtr, size); - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); if (size != 0) { bool status = selectCsrForHostPtrAllocation(bcsSplit, csr).createAllocationForHostSurface(srcHostPtrSurf, false); diff --git a/opencl/source/command_queue/enqueue_write_buffer.h b/opencl/source/command_queue/enqueue_write_buffer.h index 51740f5c74..fadb6d5044 100644 --- a/opencl/source/command_queue/enqueue_write_buffer.h +++ b/opencl/source/command_queue/enqueue_write_buffer.h @@ -70,7 +70,7 @@ cl_int CommandQueueHw::enqueueWriteBuffer( GeneralSurface mapSurface; Surface *surfaces[] = {&bufferSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, size, csr); if (mapAllocation) { surfaces[1] = &mapSurface; diff --git a/opencl/source/command_queue/enqueue_write_buffer_rect.h b/opencl/source/command_queue/enqueue_write_buffer_rect.h index ec9606fa5c..43e3c675f9 100644 --- a/opencl/source/command_queue/enqueue_write_buffer_rect.h +++ b/opencl/source/command_queue/enqueue_write_buffer_rect.h @@ -70,7 +70,7 @@ cl_int CommandQueueHw::enqueueWriteBufferRect( GeneralSurface mapSurface; Surface *surfaces[] = {&dstBufferSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); if (region[0] != 0 && region[1] != 0 && region[2] != 0) { if (mapAllocation) { diff --git a/opencl/source/command_queue/enqueue_write_image.h b/opencl/source/command_queue/enqueue_write_image.h index 6d08b1c491..7a30c4115d 100644 --- a/opencl/source/command_queue/enqueue_write_image.h +++ b/opencl/source/command_queue/enqueue_write_image.h @@ -59,7 +59,7 @@ cl_int CommandQueueHw::enqueueWriteImage( GeneralSurface mapSurface; Surface *surfaces[] = {&dstImgSurf, nullptr}; - auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, csr); + auto bcsSplit = this->isSplitEnqueueBlitNeeded(csrSelectionArgs.direction, getTotalSizeFromRectRegion(region), csr); if (mapAllocation) { surfaces[1] = &mapSurface; diff --git a/opencl/test/unit_test/command_queue/command_queue_hw_2_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_hw_2_tests.cpp index e86d1f9b1f..123d5970ff 100644 --- a/opencl/test/unit_test/command_queue/command_queue_hw_2_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_hw_2_tests.cpp @@ -307,26 +307,44 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenCheckIsSplitEnqueueBlit DebugManager.flags.SplitBcsCopy.set(1); auto *cmdQHw = static_cast *>(this->pCmdQ); { - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_TRUE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_TRUE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_TRUE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_TRUE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); } { - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, cmdQHw->getGpgpuCommandStreamReceiver())); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, cmdQHw->getGpgpuCommandStreamReceiver())); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, cmdQHw->getGpgpuCommandStreamReceiver())); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, cmdQHw->getGpgpuCommandStreamReceiver())); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, 64 * MemoryConstants::megaByte, cmdQHw->getGpgpuCommandStreamReceiver())); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, 64 * MemoryConstants::megaByte, cmdQHw->getGpgpuCommandStreamReceiver())); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, 64 * MemoryConstants::megaByte, cmdQHw->getGpgpuCommandStreamReceiver())); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, 64 * MemoryConstants::megaByte, cmdQHw->getGpgpuCommandStreamReceiver())); + } + { + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, 4 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, 4 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, 4 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, 4 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); } { DebugManager.flags.SplitBcsCopy.set(0); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); - EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToHost, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToLocal, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::LocalToHost, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); + EXPECT_FALSE(cmdQHw->isSplitEnqueueBlitNeeded(TransferDirection::HostToLocal, 64 * MemoryConstants::megaByte, *cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS))); } } +char hostPtr[16 * MemoryConstants::megaByte]; +struct BcsSplitBufferTraits { + enum { flags = CL_MEM_READ_WRITE }; + static size_t sizeInBytes; + static void *hostPtr; + static NEO::Context *context; +}; + +void *BcsSplitBufferTraits::hostPtr = static_cast(&hostPtr); +size_t BcsSplitBufferTraits::sizeInBytes = 16 * MemoryConstants::megaByte; +Context *BcsSplitBufferTraits::context = nullptr; + HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadThenEnqueueBlitSplit) { DebugManagerStateRestore restorer; DebugManager.flags.SplitBcsCopy.set(1); @@ -353,8 +371,8 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadThenEnqueueB cmdQHw->bcsEngines[2] = &control1; cmdQHw->bcsEngines[4] = &control2; - BufferDefaults::context = context; - auto buffer = clUniquePtr(BufferHelper<>::create()); + BcsSplitBufferTraits::context = context; + auto buffer = clUniquePtr(BufferHelper::create()); static_cast(buffer->getGraphicsAllocation(0u))->memoryPool = MemoryPool::LocalMemory; char ptr[1] = {}; @@ -363,7 +381,7 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadThenEnqueueB EXPECT_EQ(cmdQHw->getGpgpuCommandStreamReceiver().peekTaskCount(), 0u); EXPECT_EQ(cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->peekTaskCount(), 0u); - EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_FALSE, 0, 1u, ptr, nullptr, 0, nullptr, nullptr)); + EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_FALSE, 0, 16 * MemoryConstants::megaByte, ptr, nullptr, 0, nullptr, nullptr)); EXPECT_EQ(csr1->peekTaskCount(), 1u); EXPECT_EQ(csr2->peekTaskCount(), 1u); @@ -400,8 +418,8 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueBlockingReadThen cmdQHw->bcsEngines[2] = &control1; cmdQHw->bcsEngines[4] = &control2; - BufferDefaults::context = context; - auto buffer = clUniquePtr(BufferHelper<>::create()); + BcsSplitBufferTraits::context = context; + auto buffer = clUniquePtr(BufferHelper::create()); static_cast(buffer->getGraphicsAllocation(0u))->memoryPool = MemoryPool::LocalMemory; char ptr[1] = {}; @@ -410,7 +428,7 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueBlockingReadThen EXPECT_EQ(cmdQHw->getGpgpuCommandStreamReceiver().peekTaskCount(), 0u); EXPECT_EQ(cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->peekTaskCount(), 0u); - EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_TRUE, 0, 1u, ptr, nullptr, 0, nullptr, nullptr)); + EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_TRUE, 0, 16 * MemoryConstants::megaByte, ptr, nullptr, 0, nullptr, nullptr)); EXPECT_EQ(csr1->peekTaskCount(), 2u); EXPECT_EQ(csr2->peekTaskCount(), 2u); @@ -447,8 +465,8 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadWithEventThe cmdQHw->bcsEngines[2] = &control1; cmdQHw->bcsEngines[4] = &control2; - BufferDefaults::context = context; - auto buffer = clUniquePtr(BufferHelper<>::create()); + BcsSplitBufferTraits::context = context; + auto buffer = clUniquePtr(BufferHelper::create()); static_cast(buffer->getGraphicsAllocation(0u))->memoryPool = MemoryPool::LocalMemory; char ptr[1] = {}; @@ -458,7 +476,7 @@ HWTEST_F(IoqCommandQueueHwBlitTest, givenSplitBcsCopyWhenEnqueueReadWithEventThe EXPECT_EQ(cmdQHw->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->peekTaskCount(), 0u); cl_event event; - EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_FALSE, 0, 1u, ptr, nullptr, 0, nullptr, &event)); + EXPECT_EQ(CL_SUCCESS, cmdQHw->enqueueReadBuffer(buffer.get(), CL_FALSE, 0, 16 * MemoryConstants::megaByte, ptr, nullptr, 0, nullptr, &event)); EXPECT_EQ(csr1->peekTaskCount(), 1u); EXPECT_EQ(csr2->peekTaskCount(), 1u);