diff --git a/opencl/source/command_queue/command_queue.cpp b/opencl/source/command_queue/command_queue.cpp index 52ec4b873c..794181cb01 100644 --- a/opencl/source/command_queue/command_queue.cpp +++ b/opencl/source/command_queue/command_queue.cpp @@ -130,8 +130,9 @@ CommandStreamReceiver &CommandQueue::getGpgpuCommandStreamReceiver() const { return *gpgpuEngine->commandStreamReceiver; } -CommandStreamReceiver *CommandQueue::getBcsCommandStreamReceiver() const { +CommandStreamReceiver *CommandQueue::getBcsCommandStreamReceiver(aub_stream::EngineType bcsEngineType) const { if (bcsEngine) { + UNRECOVERABLE_IF(bcsEngine->getEngineType() != bcsEngineType); return bcsEngine->commandStreamReceiver; } return nullptr; @@ -176,8 +177,7 @@ bool CommandQueue::isCompleted(uint32_t gpgpuTaskCount, CopyEngineState bcsState if (gpgpuHwTag >= gpgpuTaskCount) { if (bcsState.isValid()) { - DEBUG_BREAK_IF(bcsState.engineType != getBcsCommandStreamReceiver()->getOsContext().getEngineType()); - return *getBcsCommandStreamReceiver()->getTagAddress() >= bcsTaskCount; + return *getBcsCommandStreamReceiver(bcsState.engineType)->getTagAddress() >= bcsTaskCount; } return true; @@ -215,7 +215,8 @@ void CommandQueue::waitUntilComplete(uint32_t gpgpuTaskCountToWait, uint32_t bcs gtpinNotifyTaskCompletion(gpgpuTaskCountToWait); } - if (auto bcsCsr = getBcsCommandStreamReceiver()) { + if (bcsEngine) { + auto bcsCsr = getBcsCommandStreamReceiver(bcsEngine->getEngineType()); bcsCsr->waitForTaskCountWithKmdNotifyFallback(bcsTaskCountToWait, 0, false, false, 1u, 0u); bcsCsr->waitForTaskCountAndCleanTemporaryAllocationList(bcsTaskCountToWait); } diff --git a/opencl/source/command_queue/command_queue.h b/opencl/source/command_queue/command_queue.h index 7c38c82c52..8ea1dc7d99 100644 --- a/opencl/source/command_queue/command_queue.h +++ b/opencl/source/command_queue/command_queue.h @@ -224,7 +224,7 @@ class CommandQueue : public BaseObject<_cl_command_queue> { const cl_event *eventWaitList); MOCKABLE_VIRTUAL CommandStreamReceiver &getGpgpuCommandStreamReceiver() const; - CommandStreamReceiver *getBcsCommandStreamReceiver() const; + CommandStreamReceiver *getBcsCommandStreamReceiver(aub_stream::EngineType bcsEngineType) const; CommandStreamReceiver *getBcsForAuxTranslation() const; MOCKABLE_VIRTUAL CommandStreamReceiver &selectCsrForBuiltinOperation(const CsrSelectionArgs &args) const; Device &getDevice() const noexcept; diff --git a/opencl/test/unit_test/command_queue/blit_enqueue_tests.cpp b/opencl/test/unit_test/command_queue/blit_enqueue_tests.cpp index b5b75d06d0..2b872f0847 100644 --- a/opencl/test/unit_test/command_queue/blit_enqueue_tests.cpp +++ b/opencl/test/unit_test/command_queue/blit_enqueue_tests.cpp @@ -1715,24 +1715,22 @@ HWTEST_TEMPLATED_F(BlitEnqueueWithDisabledGpgpuSubmissionTests, givenCacheFlushR HWTEST_TEMPLATED_F(BlitEnqueueWithDisabledGpgpuSubmissionTests, givenSubmissionToDifferentEngineWhenRequestingForNewTimestmapPacketThenDontClearDependencies) { auto mockCommandQueue = static_cast *>(commandQueue.get()); const bool clearDependencies = true; - auto &gpgpuCsr = mockCommandQueue->getGpgpuCommandStreamReceiver(); - auto &blitCsr = *mockCommandQueue->getBcsCommandStreamReceiver(); { TimestampPacketContainer previousNodes; - mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, gpgpuCsr); // init + mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, *gpgpuCsr); // init EXPECT_EQ(0u, previousNodes.peekNodes().size()); } { TimestampPacketContainer previousNodes; - mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, blitCsr); + mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, *bcsCsr); EXPECT_EQ(1u, previousNodes.peekNodes().size()); } { TimestampPacketContainer previousNodes; - mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, blitCsr); + mockCommandQueue->obtainNewTimestampPacketNodes(1, previousNodes, clearDependencies, *bcsCsr); EXPECT_EQ(0u, previousNodes.peekNodes().size()); } } diff --git a/opencl/test/unit_test/command_queue/command_queue_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_tests.cpp index 122fd8bed5..4d47454c5d 100644 --- a/opencl/test/unit_test/command_queue/command_queue_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_tests.cpp @@ -236,7 +236,7 @@ TEST(CommandQueue, givenDeviceNotSupportingBlitOperationsWhenQueueIsCreatedThenD auto mockDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(&hwInfo)); MockCommandQueue cmdQ(nullptr, mockDevice.get(), 0, false); - EXPECT_EQ(nullptr, cmdQ.getBcsCommandStreamReceiver()); + EXPECT_EQ(nullptr, cmdQ.bcsEngine); auto defaultCsr = mockDevice->getDefaultEngine().commandStreamReceiver; EXPECT_EQ(defaultCsr, &cmdQ.getGpgpuCommandStreamReceiver()); @@ -260,8 +260,8 @@ TEST(CommandQueue, givenDeviceWithSubDevicesSupportingBlitOperationsWhenQueueIsC MockCommandQueue cmdQ(nullptr, device.get(), 0, false); - EXPECT_NE(nullptr, cmdQ.getBcsCommandStreamReceiver()); - EXPECT_EQ(bcsEngine.commandStreamReceiver, cmdQ.getBcsCommandStreamReceiver()); + EXPECT_NE(nullptr, cmdQ.getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)); + EXPECT_EQ(bcsEngine.commandStreamReceiver, cmdQ.getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)); } INSTANTIATE_TEST_CASE_P(uint32_t, @@ -1611,7 +1611,7 @@ HWTEST_F(CommandQueueOnSpecificEngineTests, givenMultipleFamiliesWhenCreatingQue fillProperties(properties, 1, 0); EngineControl &engineBcs = context.getDevice(0)->getEngine(aub_stream::ENGINE_BCS, EngineUsage::Regular); MockCommandQueue queueBcs(&context, context.getDevice(0), properties, false); - EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver()); + EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver(aub_stream::ENGINE_BCS)); EXPECT_TRUE(queueBcs.isCopyOnly); EXPECT_TRUE(queueBcs.isQueueFamilySelected()); EXPECT_EQ(properties[1], queueBcs.getQueueFamilyIndex()); @@ -1653,7 +1653,7 @@ HWTEST_F(CommandQueueOnSpecificEngineTests, givenSubDeviceAndMultipleFamiliesWhe fillProperties(properties, 1, 0); EngineControl &engineBcs = context.getDevice(0)->getEngine(aub_stream::ENGINE_BCS, EngineUsage::Regular); MockCommandQueue queueBcs(&context, context.getDevice(0), properties, false); - EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver()); + EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver(aub_stream::ENGINE_BCS)); EXPECT_TRUE(queueBcs.isCopyOnly); EXPECT_NE(nullptr, queueBcs.getTimestampPacketContainer()); EXPECT_TRUE(queueBcs.isQueueFamilySelected()); @@ -1669,7 +1669,7 @@ HWTEST_F(CommandQueueOnSpecificEngineTests, givenBcsFamilySelectedWhenCreatingQu fillProperties(properties, 0, 0); EngineControl &engineBcs = context.getDevice(0)->getEngine(aub_stream::ENGINE_BCS, EngineUsage::Regular); MockCommandQueue queueBcs(&context, context.getDevice(0), properties, false); - EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver()); + EXPECT_EQ(engineBcs.commandStreamReceiver, queueBcs.getBcsCommandStreamReceiver(aub_stream::ENGINE_BCS)); EXPECT_TRUE(queueBcs.isCopyOnly); EXPECT_NE(nullptr, queueBcs.getTimestampPacketContainer()); EXPECT_TRUE(queueBcs.isQueueFamilySelected()); @@ -1792,7 +1792,7 @@ struct CopyOnlyQueueTests : ::testing::Test { TEST_F(CopyOnlyQueueTests, givenBcsSelectedWhenCreatingCommandQueueThenItIsCopyOnly) { MockCommandQueue queue{context.get(), clDevice.get(), properties, false}; - EXPECT_EQ(bcsEngine->commandStreamReceiver, queue.getBcsCommandStreamReceiver()); + EXPECT_EQ(bcsEngine->commandStreamReceiver, queue.getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)); EXPECT_NE(nullptr, queue.timestampPacketContainer); EXPECT_TRUE(queue.isCopyOnly); } diff --git a/opencl/test/unit_test/command_queue/enqueue_command_without_kernel_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_command_without_kernel_tests.cpp index 6087dd799a..dfebfc78cb 100644 --- a/opencl/test/unit_test/command_queue/enqueue_command_without_kernel_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_command_without_kernel_tests.cpp @@ -10,6 +10,7 @@ #include "shared/source/os_interface/os_context.h" #include "shared/test/common/mocks/mock_execution_environment.h" #include "shared/test/common/mocks/mock_graphics_allocation.h" +#include "shared/test/common/test_macros/test_checks_shared.h" #include "opencl/source/event/event_builder.h" #include "opencl/source/event/user_event.h" @@ -162,6 +163,10 @@ HWTEST_F(EnqueueHandlerTest, givenNonBlitPropertyWhenEnqueueIsBlockedThenDontReg } HWTEST_F(EnqueueHandlerTest, givenBlitPropertyWhenEnqueueIsBlockedThenRegisterBlitProperties) { + HardwareInfo *hwInfo = pClDevice->getRootDeviceEnvironment().getMutableHardwareInfo(); + hwInfo->capabilityTable.blitterOperationsSupported = true; + REQUIRE_BLITTER_OR_SKIP(hwInfo); + std::unique_ptr> mockCmdQ(new MockCommandQueueHw(context, pClDevice, 0)); auto &csr = mockCmdQ->getGpgpuCommandStreamReceiver(); @@ -186,7 +191,7 @@ HWTEST_F(EnqueueHandlerTest, givenBlitPropertyWhenEnqueueIsBlockedThenRegisterBl Surface *surfaces[] = {nullptr}; mockCmdQ->enqueueBlocked(CL_COMMAND_READ_BUFFER, surfaces, size_t(0), multiDispatchInfo, timestampPacketDependencies, blockedCommandsData, enqueuePropertiesForBlitEnqueue, eventsRequest, - eventBuilder, std::unique_ptr(nullptr), mockCmdQ->getBcsCommandStreamReceiver()); + eventBuilder, std::unique_ptr(nullptr), mockCmdQ->bcsEngine->commandStreamReceiver); EXPECT_TRUE(blockedCommandsDataForBlitEnqueue->blitEnqueue); EXPECT_EQ(blitProperties.srcAllocation, blockedCommandsDataForBlitEnqueue->blitPropertiesContainer.begin()->srcAllocation); EXPECT_EQ(blitProperties.dstAllocation, blockedCommandsDataForBlitEnqueue->blitPropertiesContainer.begin()->dstAllocation); @@ -252,6 +257,7 @@ HWTEST_F(DispatchFlagsTests, givenBlitEnqueueWhenDispatchingCommandsWithoutKerne mockCmdQ->bcsEngine = mockCmdQ->gpgpuEngine; cl_int retVal = CL_SUCCESS; auto buffer = std::unique_ptr(Buffer::create(context.get(), 0, 1, nullptr, retVal)); + auto &bcsCsr = *mockCmdQ->bcsEngine->commandStreamReceiver; auto blocking = true; TimestampPacketDependencies timestampPacketDependencies; @@ -264,10 +270,10 @@ HWTEST_F(DispatchFlagsTests, givenBlitEnqueueWhenDispatchingCommandsWithoutKerne multiDispatchInfo.setBuiltinOpParams(builtinOpParams); CsrDependencies csrDeps; - mockCmdQ->obtainNewTimestampPacketNodes(1, timestampPacketDependencies.previousEnqueueNodes, true, *mockCmdQ->getBcsCommandStreamReceiver()); + mockCmdQ->obtainNewTimestampPacketNodes(1, timestampPacketDependencies.previousEnqueueNodes, true, bcsCsr); timestampPacketDependencies.cacheFlushNodes.add(mockCmdQ->getGpgpuCommandStreamReceiver().getTimestampPacketAllocator()->getTag()); - BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(*mockCmdQ->getBcsCommandStreamReceiver(), multiDispatchInfo, timestampPacketDependencies, + BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(bcsCsr, multiDispatchInfo, timestampPacketDependencies, eventsRequest, &mockCmdQ->getCS(0), CL_COMMAND_READ_BUFFER, false); BlitPropertiesContainer blitPropertiesContainer; @@ -275,7 +281,7 @@ HWTEST_F(DispatchFlagsTests, givenBlitEnqueueWhenDispatchingCommandsWithoutKerne EnqueueProperties enqueueProperties(true, false, false, false, false, &blitPropertiesContainer); mockCmdQ->enqueueCommandWithoutKernel(nullptr, 0, &mockCmdQ->getCS(0), 0, blocking, enqueueProperties, timestampPacketDependencies, - eventsRequest, eventBuilder, 0, csrDeps, mockCmdQ->getBcsCommandStreamReceiver()); + eventsRequest, eventBuilder, 0, csrDeps, &bcsCsr); EXPECT_TRUE(mockCsr->passedDispatchFlags.implicitFlush); EXPECT_TRUE(mockCsr->passedDispatchFlags.guardCommandBufferWithPipeControl); @@ -296,6 +302,7 @@ HWTEST_F(DispatchFlagsTests, givenN1EnabledWhenDispatchingWithoutKernelThenAllow mockCmdQ->bcsEngine = mockCmdQ->gpgpuEngine; cl_int retVal = CL_SUCCESS; auto buffer = std::unique_ptr(Buffer::create(context.get(), 0, 1, nullptr, retVal)); + auto &bcsCsr = *mockCmdQ->bcsEngine->commandStreamReceiver; TimestampPacketDependencies timestampPacketDependencies; EventsRequest eventsRequest(0, nullptr, nullptr); @@ -308,9 +315,9 @@ HWTEST_F(DispatchFlagsTests, givenN1EnabledWhenDispatchingWithoutKernelThenAllow MultiDispatchInfo multiDispatchInfo; multiDispatchInfo.setBuiltinOpParams(builtinOpParams); - mockCmdQ->obtainNewTimestampPacketNodes(1, timestampPacketDependencies.previousEnqueueNodes, true, *mockCmdQ->getBcsCommandStreamReceiver()); + mockCmdQ->obtainNewTimestampPacketNodes(1, timestampPacketDependencies.previousEnqueueNodes, true, bcsCsr); timestampPacketDependencies.cacheFlushNodes.add(mockCmdQ->getGpgpuCommandStreamReceiver().getTimestampPacketAllocator()->getTag()); - BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(*mockCmdQ->getBcsCommandStreamReceiver(), multiDispatchInfo, timestampPacketDependencies, + BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(bcsCsr, multiDispatchInfo, timestampPacketDependencies, eventsRequest, &mockCmdQ->getCS(0), CL_COMMAND_READ_BUFFER, false); BlitPropertiesContainer blitPropertiesContainer; blitPropertiesContainer.push_back(blitProperties); @@ -320,12 +327,12 @@ HWTEST_F(DispatchFlagsTests, givenN1EnabledWhenDispatchingWithoutKernelThenAllow mockCsr->nTo1SubmissionModelEnabled = false; mockCmdQ->enqueueCommandWithoutKernel(nullptr, 0, &mockCmdQ->getCS(0), 0, blocked, enqueueProperties, timestampPacketDependencies, - eventsRequest, eventBuilder, 0, csrDeps, mockCmdQ->getBcsCommandStreamReceiver()); + eventsRequest, eventBuilder, 0, csrDeps, &bcsCsr); EXPECT_FALSE(mockCsr->passedDispatchFlags.outOfOrderExecutionAllowed); mockCsr->nTo1SubmissionModelEnabled = true; mockCmdQ->enqueueCommandWithoutKernel(nullptr, 0, &mockCmdQ->getCS(0), 0, blocked, enqueueProperties, timestampPacketDependencies, - eventsRequest, eventBuilder, 0, csrDeps, mockCmdQ->getBcsCommandStreamReceiver()); + eventsRequest, eventBuilder, 0, csrDeps, &bcsCsr); EXPECT_TRUE(mockCsr->passedDispatchFlags.outOfOrderExecutionAllowed); } diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp index 280f086de4..e0c9ab0e73 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_4_tests.cpp @@ -503,6 +503,7 @@ HWTEST_F(CrossDeviceDependenciesTests, givenWaitListWithEventBlockedByUserEventW for (auto &rootDeviceEnvironment : deviceFactory->rootDevices[0]->getExecutionEnvironment()->rootDeviceEnvironments) { rootDeviceEnvironment->getMutableHardwareInfo()->capabilityTable.blitterOperationsSupported = true; + REQUIRE_BLITTER_OR_SKIP(rootDeviceEnvironment->getHardwareInfo()); } auto clCmdQ1 = clCreateCommandQueue(context.get(), deviceFactory->rootDevices[1], {}, nullptr); @@ -513,12 +514,6 @@ HWTEST_F(CrossDeviceDependenciesTests, givenWaitListWithEventBlockedByUserEventW ASSERT_NE(nullptr, pCmdQ1); ASSERT_NE(nullptr, pCmdQ2); - if (!pCmdQ1->getBcsCommandStreamReceiver()) { - pCmdQ1->release(); - pCmdQ2->release(); - GTEST_SKIP(); - } - UserEvent userEvent1(&pCmdQ1->getContext()); cl_event outputEvent1{}; @@ -608,7 +603,7 @@ HWTEST_F(CrossDeviceDependenciesTests, givenWaitListWithEventBlockedByUserEventW } { HardwareParse csHwParser; - csHwParser.parseCommands(pCmdQ1->getBcsCommandStreamReceiver()->getCS(0)); + csHwParser.parseCommands(pCmdQ1->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->getCS(0)); auto semaphores = findAll(csHwParser.cmdList.begin(), csHwParser.cmdList.end()); EXPECT_LE(1u, semaphores.size()); @@ -625,7 +620,7 @@ HWTEST_F(CrossDeviceDependenciesTests, givenWaitListWithEventBlockedByUserEventW } { HardwareParse csHwParser; - csHwParser.parseCommands(pCmdQ2->getBcsCommandStreamReceiver()->getCS(0)); + csHwParser.parseCommands(pCmdQ2->getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->getCS(0)); auto semaphores = findAll(csHwParser.cmdList.begin(), csHwParser.cmdList.end()); EXPECT_LE(1u, semaphores.size()); diff --git a/opencl/test/unit_test/device/get_device_info_tests.cpp b/opencl/test/unit_test/device/get_device_info_tests.cpp index 3b9dcf6668..558b204b3a 100644 --- a/opencl/test/unit_test/device/get_device_info_tests.cpp +++ b/opencl/test/unit_test/device/get_device_info_tests.cpp @@ -811,7 +811,7 @@ HWTEST_F(GetDeviceInfoQueueFamilyTest, givenSubDeviceWithoutSupportedEngineWhenI MockContext context(&clDevice1); MockCommandQueue cmdQ(&context, &clDevice1, nullptr, false); - EXPECT_EQ(nullptr, cmdQ.getBcsCommandStreamReceiver()); + EXPECT_EQ(nullptr, cmdQ.getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)); } } diff --git a/opencl/test/unit_test/event/event_tests.cpp b/opencl/test/unit_test/event/event_tests.cpp index ea533e114a..2c1fd5c2d5 100644 --- a/opencl/test/unit_test/event/event_tests.cpp +++ b/opencl/test/unit_test/event/event_tests.cpp @@ -148,7 +148,7 @@ TEST(Event, givenBcsCsrSetInEventWhenPeekingBcsTaskCountThenReturnCorrectTaskCou EXPECT_EQ(0u, event.peekBcsTaskCountFromCommandQueue()); - event.setupBcs(queue.getBcsCommandStreamReceiver()->getOsContext().getEngineType()); + event.setupBcs(queue.getBcsCommandStreamReceiver(aub_stream::EngineType::ENGINE_BCS)->getOsContext().getEngineType()); EXPECT_EQ(19u, event.peekBcsTaskCountFromCommandQueue()); } diff --git a/opencl/test/unit_test/mem_obj/buffer_bcs_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_bcs_tests.cpp index 6a8376dc1c..aac35d6805 100644 --- a/opencl/test/unit_test/mem_obj/buffer_bcs_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_bcs_tests.cpp @@ -115,6 +115,7 @@ struct BcsBufferTests : public ::testing::Test { bcsMockContext = std::make_unique(device.get()); commandQueue.reset(new MockCommandQueueHw(bcsMockContext.get(), device.get(), nullptr)); + bcsCsr = static_cast *>(commandQueue.get())->bcsEngine->commandStreamReceiver; } template @@ -129,6 +130,7 @@ struct BcsBufferTests : public ::testing::Test { std::unique_ptr device; std::unique_ptr bcsMockContext; std::unique_ptr commandQueue; + CommandStreamReceiver *bcsCsr; uint32_t hostPtr = 0; cl_int retVal = CL_SUCCESS; }; @@ -163,7 +165,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenEnqueueBufferOperationIs DebugManager.flags.EnableBlitterForEnqueueOperations.set(0); auto mockCmdQueue = static_cast *>(commandQueue.get()); auto bcsEngine = mockCmdQueue->bcsEngine; - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(bcsEngine->commandStreamReceiver); auto bufferForBlt0 = clUniquePtr(Buffer::create(bcsMockContext.get(), CL_MEM_READ_WRITE, 1, nullptr, retVal)); auto bufferForBlt1 = clUniquePtr(Buffer::create(bcsMockContext.get(), CL_MEM_READ_WRITE, 1, nullptr, retVal)); @@ -295,7 +297,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDebugFlagSetWhenDispatchingBlitCommandsT } HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsSupportedWhenQueueIsBlockedThenDispatchBlitWhenUnblocked) { - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); auto bufferForBlt0 = clUniquePtr(Buffer::create(bcsMockContext.get(), CL_MEM_READ_WRITE, 1, nullptr, retVal)); auto bufferForBlt1 = clUniquePtr(Buffer::create(bcsMockContext.get(), CL_MEM_READ_WRITE, 1, nullptr, retVal)); @@ -361,7 +363,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBuffersWhenCopyBufferCalledThenUseBcs) { cmdQ->enqueueCopyBuffer(bufferForBlt0.get(), bufferForBlt1.get(), 0, 0, 1, 0, nullptr, nullptr); HardwareParse hwParser; - hwParser.parseCommands(commandQueue->getBcsCommandStreamReceiver()->getCS(0)); + hwParser.parseCommands(bcsCsr->getCS(0)); auto commandItor = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), commandItor); auto copyBltCmd = genCmdCast(*commandItor); @@ -386,7 +388,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBuffersWhenCopyBufferRectCalledThenUseBc cmdQ->enqueueCopyBufferRect(bufferForBlt0.get(), bufferForBlt1.get(), bufferOrigin, hostOrigin, region, 0, 0, 0, 0, 0, nullptr, nullptr); HardwareParse hwParser; - hwParser.parseCommands(commandQueue->getBcsCommandStreamReceiver()->getCS(0)); + hwParser.parseCommands(bcsCsr->getCS(0)); auto commandItor = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), commandItor); auto copyBltCmd = genCmdCast(*commandItor); @@ -405,7 +407,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDstHostPtrWhenEnqueueSVMMemcpyThenEnqueu cmdQ->enqueueSVMMemcpy(true, pDstSVM.get(), pSrcSVM, 1, 0, nullptr, nullptr); HardwareParse hwParser; - hwParser.parseCommands(commandQueue->getBcsCommandStreamReceiver()->getCS(0)); + hwParser.parseCommands(bcsCsr->getCS(0)); auto commandItor = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), commandItor); auto copyBltCmd = genCmdCast(*commandItor); @@ -426,7 +428,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSrcHostPtrWhenEnqueueSVMMemcpyThenEnqueu cmdQ->enqueueSVMMemcpy(true, pDstSVM, pSrcSVM.get(), 1, 0, nullptr, nullptr); HardwareParse hwParser; - hwParser.parseCommands(commandQueue->getBcsCommandStreamReceiver()->getCS(0)); + hwParser.parseCommands(bcsCsr->getCS(0)); auto commandItor = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), commandItor); auto copyBltCmd = genCmdCast(*commandItor); @@ -438,7 +440,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSrcHostPtrWhenEnqueueSVMMemcpyThenEnqueu } HWTEST_TEMPLATED_F(BcsBufferTests, givenBlockedBlitEnqueueWhenUnblockingThenMakeResidentAllTimestampPackets) { - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); bcsCsr->storeMakeResidentAllocations = true; auto mockCmdQ = static_cast *>(commandQueue.get()); @@ -447,7 +449,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBlockedBlitEnqueueWhenUnblockingThenMake bufferForBlt->forceDisallowCPUCopy = true; TimestampPacketContainer previousTimestampPackets; - mockCmdQ->obtainNewTimestampPacketNodes(1, previousTimestampPackets, false, *mockCmdQ->getBcsCommandStreamReceiver()); + mockCmdQ->obtainNewTimestampPacketNodes(1, previousTimestampPackets, false, *bcsCsr); auto dependencyFromPreviousEnqueue = mockCmdQ->timestampPacketContainer->peekNodes()[0]; auto event = make_releaseable(mockCmdQ, CL_COMMAND_READ_BUFFER, 0, 0); @@ -570,7 +572,7 @@ void BcsBufferTests::waitForCacheFlushFromBcsTest(MockCommandQueueHw bool isCacheFlushForBcsRequired = commandQueue.isCacheFlushForBcsRequired(); - auto bcsCsr = static_cast *>(commandQueue.getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); cl_int retVal = CL_SUCCESS; auto buffer = clUniquePtr(Buffer::create(bcsMockContext.get(), CL_MEM_READ_WRITE, 1, nullptr, retVal)); @@ -633,7 +635,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenPipeControlRequestWhenDispatchingBlitEnq using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT; auto cmdQ = clUniquePtr(new MockCommandQueueHw(bcsMockContext.get(), device.get(), nullptr)); - auto bcsCsr = static_cast *>(cmdQ->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); auto queueCsr = static_cast *>(cmdQ->gpgpuEngine->commandStreamReceiver); queueCsr->stallingPipeControlOnNextFlushRequired = true; @@ -734,7 +736,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenPipeControlRequestWhenDispatchingBlocked using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT; auto cmdQ = clUniquePtr(new MockCommandQueueHw(bcsMockContext.get(), device.get(), nullptr)); - auto bcsCsr = static_cast *>(cmdQ->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); auto queueCsr = static_cast *>(cmdQ->gpgpuEngine->commandStreamReceiver); queueCsr->stallingPipeControlOnNextFlushRequired = true; @@ -790,7 +792,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBufferOperationWithoutKernelWhenEstimati HWTEST_TEMPLATED_F(BcsBufferTests, givenOutputTimestampPacketWhenBlitCalledThenProgramMiFlushDwWithDataWrite) { using MI_FLUSH_DW = typename FamilyType::MI_FLUSH_DW; - auto csr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto csr = static_cast *>(this->bcsCsr); auto cmdQ = clUniquePtr(new MockCommandQueueHw(bcsMockContext.get(), device.get(), nullptr)); cl_int retVal = CL_SUCCESS; @@ -831,7 +833,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenOutputTimestampPacketWhenBlitCalledThenP } HWTEST_TEMPLATED_F(BcsBufferTests, givenInputAndOutputTimestampPacketWhenBlitCalledThenMakeThemResident) { - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); auto cmdQ = clUniquePtr(new MockCommandQueueHw(bcsMockContext.get(), device.get(), nullptr)); cl_int retVal = CL_SUCCESS; @@ -1139,7 +1141,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenSvmToSvmCopyWhenEnqueueSVMMemcpyThenSvmM cmdQ->enqueueSVMMemcpy(false, pDstSVM, pSrcSVM, 256, 0, nullptr, nullptr); HardwareParse hwParser; - hwParser.parseCommands(commandQueue->getBcsCommandStreamReceiver()->getCS(0)); + hwParser.parseCommands(bcsCsr->getCS(0)); auto commandItor = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), commandItor); auto copyBltCmd = genCmdCast(*commandItor); @@ -1260,7 +1262,7 @@ HWTEST_TEMPLATED_F(BcsSvmTests, givenSVMMAllocationWithOffsetWhenUsingBcsThenPro builtinOpParams.dstSvmAlloc = dstGpuAllocation; builtinOpParams.dstOffset = {ptrDiff(pDstPtr, builtinOpParams.dstPtr), 0, 0}; - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); auto blitProperties = ClBlitProperties::constructProperties(BlitterConstants::BlitDirection::BufferToBuffer, *bcsCsr, builtinOpParams); @@ -1311,7 +1313,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBlockedEnqueueWhenUsingBcsThenWaitForVal } HWTEST_TEMPLATED_F(BcsBufferTests, givenDebugFlagSetToOneWhenEnqueueingCopyLocalBufferToLocalBufferThenUseBlitter) { - auto bcsCsr = static_cast *>(commandQueue->getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); MockGraphicsAllocation srcGraphicsAllocation{}; MockGraphicsAllocation dstGraphicsAllocation{}; MockBuffer srcMemObj{srcGraphicsAllocation}; @@ -1352,7 +1354,7 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenBcsQueueWhenEnqueueingCopyBufferToBuffer 0, }; MockCommandQueueHw queue(bcsMockContext.get(), device.get(), properties); - auto bcsCsr = static_cast *>(queue.getBcsCommandStreamReceiver()); + auto bcsCsr = static_cast *>(this->bcsCsr); MockGraphicsAllocation srcGraphicsAllocation{}; MockGraphicsAllocation dstGraphicsAllocation{}; MockBuffer srcMemObj{srcGraphicsAllocation};