From fc4eaa1894413db41f9c8bd5b29f00a5ccaaa5d0 Mon Sep 17 00:00:00 2001 From: Bartosz Dunajski Date: Thu, 7 Apr 2022 13:03:01 +0000 Subject: [PATCH] Refactor passing GlobalFenceAllocation to DirectSubmission Signed-off-by: Bartosz Dunajski --- .../command_stream_receiver_hw_2_tests.cpp | 4 +- .../linux/drm_command_stream_tests_1.cpp | 29 ++++--- .../windows/device_command_stream_tests.cpp | 10 +-- .../command_stream_receiver_hw_base.inl | 4 +- .../create_direct_submission_hw.inl | 6 +- .../create_direct_submission_hw.inl | 8 +- .../create_direct_submission_hw.inl | 6 +- .../direct_submission/direct_submission_hw.h | 6 +- .../direct_submission_hw.inl | 12 +-- .../linux/drm_direct_submission.h | 5 +- .../linux/drm_direct_submission.inl | 5 +- .../windows/wddm_direct_submission.h | 5 +- .../windows/wddm_direct_submission.inl | 7 +- .../direct_submission_tests_1.cpp | 84 +++++++++---------- .../direct_submission_tests_2.cpp | 50 +++++------ .../direct_submission_tests_xe_hp_core.cpp | 4 +- .../linux/drm_direct_submission_tests.cpp | 28 +++---- .../windows/wddm_direct_submission_tests.cpp | 34 ++++---- .../windows/wddm_command_stream_l0_tests.cpp | 4 +- 19 files changed, 154 insertions(+), 157 deletions(-) diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp index 5f23799e99..1f75543a59 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp @@ -1374,7 +1374,7 @@ HWTEST_F(BcsTests, givenBlitterDirectSubmissionEnabledWhenProgrammingBlitterThen auto &csr = pDevice->getUltCommandStreamReceiver(); using DirectSubmission = MockDirectSubmissionHw>; - csr.blitterDirectSubmission = std::make_unique(*pDevice, *csr.osContext); + csr.blitterDirectSubmission = std::make_unique(*pDevice, *csr.osContext, csr.getGlobalFenceAllocation()); csr.recordFlusheBatchBuffer = true; DirectSubmission *directSubmission = reinterpret_cast(csr.blitterDirectSubmission.get()); bool initRet = directSubmission->initialize(true, false); @@ -1417,7 +1417,7 @@ HWTEST_F(BcsTests, givenBlitterDirectSubmissionEnabledWhenFlushTagUpdateThenBatc auto &csr = pDevice->getUltCommandStreamReceiver(); using DirectSubmission = MockDirectSubmissionHw>; - csr.blitterDirectSubmission = std::make_unique(*pDevice, *csr.osContext); + csr.blitterDirectSubmission = std::make_unique(*pDevice, *csr.osContext, csr.getGlobalFenceAllocation()); csr.recordFlusheBatchBuffer = true; DirectSubmission *directSubmission = reinterpret_cast(csr.blitterDirectSubmission.get()); bool initRet = directSubmission->initialize(true, false); diff --git a/opencl/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp b/opencl/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp index 77463227cc..824634387a 100644 --- a/opencl/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp +++ b/opencl/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp @@ -654,8 +654,8 @@ struct DrmDirectSubmissionFunctionsCalled { template struct MockDrmDirectSubmissionToTestDtor : public DrmDirectSubmission> { - MockDrmDirectSubmissionToTestDtor(Device &device, OsContext &osContext, DrmDirectSubmissionFunctionsCalled &functionsCalled) - : DrmDirectSubmission>(device, osContext), functionsCalled(functionsCalled) { + MockDrmDirectSubmissionToTestDtor(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation, DrmDirectSubmissionFunctionsCalled &functionsCalled) + : DrmDirectSubmission>(device, osContext, globalFenceAllocation), functionsCalled(functionsCalled) { } ~MockDrmDirectSubmissionToTestDtor() override { if (ringStart) { @@ -680,7 +680,8 @@ struct MockDrmDirectSubmissionToTestDtor : public DrmDirectSubmission>(*device.get(), *device->getDefaultEngine().osContext, functionsCalled); + auto directSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext, + device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation(), functionsCalled); ASSERT_NE(nullptr, directSubmission); EXPECT_FALSE(directSubmission->ringStart); @@ -694,14 +695,15 @@ HWTEST_TEMPLATED_F(DrmCommandStreamDirectSubmissionTest, givenEnabledDirectSubmi template struct MockDrmDirectSubmissionToTestRingStop : public DrmDirectSubmission> { - MockDrmDirectSubmissionToTestRingStop(Device &device, OsContext &osContext) - : DrmDirectSubmission>(device, osContext) { + MockDrmDirectSubmissionToTestRingStop(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : DrmDirectSubmission>(device, osContext, globalFenceAllocation) { } using DrmDirectSubmission>::ringStart; }; HWTEST_TEMPLATED_F(DrmCommandStreamDirectSubmissionTest, givenEnabledDirectSubmissionWhenStopRingBufferIsCalledThenClearRingStart) { - auto directSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext); + auto directSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext, + device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); ASSERT_NE(nullptr, directSubmission); directSubmission->stopRingBuffer(); @@ -710,8 +712,8 @@ HWTEST_TEMPLATED_F(DrmCommandStreamDirectSubmissionTest, givenEnabledDirectSubmi template struct MockDrmDirectSubmissionDispatchCommandBuffer : public DrmDirectSubmission> { - MockDrmDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext) - : DrmDirectSubmission>(device, osContext) { + MockDrmDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : DrmDirectSubmission>(device, osContext, globalFenceAllocation) { } ADDMETHOD_NOBASE(dispatchCommandBuffer, bool, false, @@ -720,8 +722,8 @@ struct MockDrmDirectSubmissionDispatchCommandBuffer : public DrmDirectSubmission template struct MockDrmBlitterDirectSubmissionDispatchCommandBuffer : public DrmDirectSubmission> { - MockDrmBlitterDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext) - : DrmDirectSubmission>(device, osContext) { + MockDrmBlitterDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : DrmDirectSubmission>(device, osContext, globalFenceAllocation) { } ADDMETHOD_NOBASE(dispatchCommandBuffer, bool, false, @@ -729,7 +731,8 @@ struct MockDrmBlitterDirectSubmissionDispatchCommandBuffer : public DrmDirectSub }; HWTEST_TEMPLATED_F(DrmCommandStreamDirectSubmissionTest, givenDirectSubmissionFailsThenFlushReturnsError) { - static_cast *>(csr)->directSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext); + static_cast *>(csr)->directSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext, + device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto directSubmission = static_cast *>(csr)->directSubmission.get(); static_cast *>(directSubmission)->dispatchCommandBufferResult = false; @@ -746,7 +749,9 @@ HWTEST_TEMPLATED_F(DrmCommandStreamDirectSubmissionTest, givenDirectSubmissionFa } HWTEST_TEMPLATED_F(DrmCommandStreamBlitterDirectSubmissionTest, givenBlitterDirectSubmissionFailsThenFlushReturnsError) { - static_cast *>(csr)->blitterDirectSubmission = std::make_unique>(*device.get(), *device->getDefaultEngine().osContext); + static_cast *>(csr)->blitterDirectSubmission = std::make_unique>(*device.get(), + *device->getDefaultEngine().osContext, + device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto blitterDirectSubmission = static_cast *>(csr)->blitterDirectSubmission.get(); static_cast *>(blitterDirectSubmission)->dispatchCommandBufferResult = false; diff --git a/opencl/test/unit_test/os_interface/windows/device_command_stream_tests.cpp b/opencl/test/unit_test/os_interface/windows/device_command_stream_tests.cpp index 1347faf7d7..d19c5dc45a 100644 --- a/opencl/test/unit_test/os_interface/windows/device_command_stream_tests.cpp +++ b/opencl/test/unit_test/os_interface/windows/device_command_stream_tests.cpp @@ -119,12 +119,12 @@ struct MockWddmCsr : public WddmCommandStreamReceiver { if (DebugManager.flags.EnableDirectSubmission.get() == 1) { if (!initBlitterDirectSubmission) { directSubmission = std::make_unique< - MockWddmDirectSubmission>>(device, osContext); + MockWddmDirectSubmission>>(device, osContext, globalFenceAllocation); ret = directSubmission->initialize(true, false); this->dispatchMode = DispatchMode::ImmediateDispatch; } else { blitterDirectSubmission = std::make_unique< - MockWddmDirectSubmission>>(device, osContext); + MockWddmDirectSubmission>>(device, osContext, globalFenceAllocation); blitterDirectSubmission->initialize(true, false); } } @@ -1056,8 +1056,8 @@ HWTEST_F(WddmCsrCompressionTests, givenDisabledCompressionWhenFlushingThenDontIn template struct MockWddmDrmDirectSubmissionDispatchCommandBuffer : public MockWddmDirectSubmission> { - MockWddmDrmDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext) - : MockWddmDirectSubmission>(device, osContext) { + MockWddmDrmDirectSubmissionDispatchCommandBuffer(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : MockWddmDirectSubmission>(device, osContext, globalFenceAllocation) { } bool dispatchCommandBuffer(BatchBuffer &batchBuffer, FlushStampTracker &flushStamp) override { @@ -1092,7 +1092,7 @@ TEST_F(WddmCommandStreamMockGdiTest, givenDirectSubmissionFailsThenFlushReturnsE nullptr, false, false, QueueThrottle::MEDIUM, QueueSliceCount::defaultSliceCount, cs.getUsed(), &cs, commandBuffer->getUnderlyingBuffer(), false}; - csr->directSubmission = std::make_unique(*device.get(), *osContext); + csr->directSubmission = std::make_unique(*device.get(), *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto res = csr->flush(batchBuffer, csr->getResidencyAllocations()); EXPECT_EQ(NEO::SubmissionStatus::FAILED, res); diff --git a/shared/source/command_stream/command_stream_receiver_hw_base.inl b/shared/source/command_stream/command_stream_receiver_hw_base.inl index f514198b42..b283db7bb9 100644 --- a/shared/source/command_stream/command_stream_receiver_hw_base.inl +++ b/shared/source/command_stream/command_stream_receiver_hw_base.inl @@ -1317,11 +1317,11 @@ inline bool CommandStreamReceiverHw::initDirectSubmission(Device &dev auto lock = this->obtainUniqueOwnership(); if (!this->isAnyDirectSubmissionEnabled()) { if (EngineHelpers::isBcs(osContext.getEngineType())) { - blitterDirectSubmission = DirectSubmissionHw>::create(device, osContext); + blitterDirectSubmission = DirectSubmissionHw>::create(device, osContext, this->globalFenceAllocation); ret = blitterDirectSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync()); } else { - directSubmission = DirectSubmissionHw>::create(device, osContext); + directSubmission = DirectSubmissionHw>::create(device, osContext, this->globalFenceAllocation); ret = directSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync()); } auto directSubmissionController = executionEnvironment.initializeDirectSubmissionController(); diff --git a/shared/source/direct_submission/create_direct_submission_drm/create_direct_submission_hw.inl b/shared/source/direct_submission/create_direct_submission_drm/create_direct_submission_hw.inl index 4852a472c0..84279eb524 100644 --- a/shared/source/direct_submission/create_direct_submission_drm/create_direct_submission_hw.inl +++ b/shared/source/direct_submission/create_direct_submission_drm/create_direct_submission_hw.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -9,7 +9,7 @@ namespace NEO { template -inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext) { - return std::make_unique>(device, osContext); +inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) { + return std::make_unique>(device, osContext, globalFenceAllocation); } } // namespace NEO diff --git a/shared/source/direct_submission/create_direct_submission_drm_or_wddm/create_direct_submission_hw.inl b/shared/source/direct_submission/create_direct_submission_drm_or_wddm/create_direct_submission_hw.inl index 24bb81087c..f845296917 100644 --- a/shared/source/direct_submission/create_direct_submission_drm_or_wddm/create_direct_submission_hw.inl +++ b/shared/source/direct_submission/create_direct_submission_drm_or_wddm/create_direct_submission_hw.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -10,11 +10,11 @@ namespace NEO { template -inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext) { +inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) { if (device.getRootDeviceEnvironment().osInterface->getDriverModel()->getDriverModelType() == DriverModelType::DRM) { - return std::make_unique>(device, osContext); + return std::make_unique>(device, osContext, globalFenceAllocation); } else { - return std::make_unique>(device, osContext); + return std::make_unique>(device, osContext, globalFenceAllocation); } } } // namespace NEO diff --git a/shared/source/direct_submission/create_direct_submission_wddm/create_direct_submission_hw.inl b/shared/source/direct_submission/create_direct_submission_wddm/create_direct_submission_hw.inl index a89629f31e..f7b6a758e8 100644 --- a/shared/source/direct_submission/create_direct_submission_wddm/create_direct_submission_hw.inl +++ b/shared/source/direct_submission/create_direct_submission_wddm/create_direct_submission_hw.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -9,7 +9,7 @@ namespace NEO { template -inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext) { - return std::make_unique>(device, osContext); +inline std::unique_ptr> DirectSubmissionHw::create(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) { + return std::make_unique>(device, osContext, globalFenceAllocation); } } // namespace NEO diff --git a/shared/source/direct_submission/direct_submission_hw.h b/shared/source/direct_submission/direct_submission_hw.h index 9ee74920bd..3da2823c72 100644 --- a/shared/source/direct_submission/direct_submission_hw.h +++ b/shared/source/direct_submission/direct_submission_hw.h @@ -60,8 +60,7 @@ class OsContext; template class DirectSubmissionHw { public: - DirectSubmissionHw(Device &device, - OsContext &osContext); + DirectSubmissionHw(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation); virtual ~DirectSubmissionHw(); @@ -73,7 +72,7 @@ class DirectSubmissionHw { MOCKABLE_VIRTUAL bool dispatchCommandBuffer(BatchBuffer &batchBuffer, FlushStampTracker &flushStamp); - static std::unique_ptr> create(Device &device, OsContext &osContext); + static std::unique_ptr> create(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation); protected: static constexpr size_t prefetchSize = 8 * MemoryConstants::cacheLineSize; @@ -148,6 +147,7 @@ class DirectSubmissionHw { Device &device; OsContext &osContext; const HardwareInfo *hwInfo = nullptr; + const GraphicsAllocation *globalFenceAllocation = nullptr; GraphicsAllocation *ringBuffer = nullptr; GraphicsAllocation *ringBuffer2 = nullptr; GraphicsAllocation *semaphores = nullptr; diff --git a/shared/source/direct_submission/direct_submission_hw.inl b/shared/source/direct_submission/direct_submission_hw.inl index e64765b348..639c1a2423 100644 --- a/shared/source/direct_submission/direct_submission_hw.inl +++ b/shared/source/direct_submission/direct_submission_hw.inl @@ -30,9 +30,8 @@ namespace NEO { template -DirectSubmissionHw::DirectSubmissionHw(Device &device, - OsContext &osContext) - : device(device), osContext(osContext) { +DirectSubmissionHw::DirectSubmissionHw(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : device(device), osContext(osContext), globalFenceAllocation(globalFenceAllocation) { hwInfo = &device.getHardwareInfo(); auto hwInfoConfig = HwInfoConfig::get(hwInfo->platform.eProductFamily); @@ -618,11 +617,8 @@ size_t DirectSubmissionHw::getDiagnosticModeSection() { template void DirectSubmissionHw::dispatchSystemMemoryFenceAddress() { - auto &engineControl = device.getEngine(this->osContext.getEngineType(), this->osContext.getEngineUsage()); - - UNRECOVERABLE_IF(engineControl.osContext->getContextId() != engineControl.osContext->getContextId()); - - EncodeMemoryFence::encodeSystemMemoryFence(ringCommandStream, engineControl.commandStreamReceiver->getGlobalFenceAllocation()); + UNRECOVERABLE_IF(!this->globalFenceAllocation); + EncodeMemoryFence::encodeSystemMemoryFence(ringCommandStream, this->globalFenceAllocation); } template diff --git a/shared/source/direct_submission/linux/drm_direct_submission.h b/shared/source/direct_submission/linux/drm_direct_submission.h index 9c97f0e1b9..87e04ae62f 100644 --- a/shared/source/direct_submission/linux/drm_direct_submission.h +++ b/shared/source/direct_submission/linux/drm_direct_submission.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -16,8 +16,7 @@ class DrmDirectSubmission : public DirectSubmissionHw { using DirectSubmissionHw::ringCommandStream; using DirectSubmissionHw::switchRingBuffersAllocations; - DrmDirectSubmission(Device &device, - OsContext &osContext); + DrmDirectSubmission(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation); ~DrmDirectSubmission(); diff --git a/shared/source/direct_submission/linux/drm_direct_submission.inl b/shared/source/direct_submission/linux/drm_direct_submission.inl index 4767192950..bd6092052c 100644 --- a/shared/source/direct_submission/linux/drm_direct_submission.inl +++ b/shared/source/direct_submission/linux/drm_direct_submission.inl @@ -20,9 +20,8 @@ namespace NEO { template -DrmDirectSubmission::DrmDirectSubmission(Device &device, - OsContext &osContext) - : DirectSubmissionHw(device, osContext) { +DrmDirectSubmission::DrmDirectSubmission(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : DirectSubmissionHw(device, osContext, globalFenceAllocation) { this->disableMonitorFence = true; diff --git a/shared/source/direct_submission/windows/wddm_direct_submission.h b/shared/source/direct_submission/windows/wddm_direct_submission.h index c2301703a5..779c5a6afa 100644 --- a/shared/source/direct_submission/windows/wddm_direct_submission.h +++ b/shared/source/direct_submission/windows/wddm_direct_submission.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -19,8 +19,7 @@ class Wddm; template class WddmDirectSubmission : public DirectSubmissionHw { public: - WddmDirectSubmission(Device &device, - OsContext &osContext); + WddmDirectSubmission(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation); ~WddmDirectSubmission(); diff --git a/shared/source/direct_submission/windows/wddm_direct_submission.inl b/shared/source/direct_submission/windows/wddm_direct_submission.inl index 8cf90c618d..745a8a2d5b 100644 --- a/shared/source/direct_submission/windows/wddm_direct_submission.inl +++ b/shared/source/direct_submission/windows/wddm_direct_submission.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -23,9 +23,8 @@ namespace NEO { DECLARE_COMMAND_BUFFER(CommandBufferHeader, UMD_OCL, FALSE, FALSE, PERFTAG_OCL); template -WddmDirectSubmission::WddmDirectSubmission(Device &device, - OsContext &osContext) - : DirectSubmissionHw(device, osContext) { +WddmDirectSubmission::WddmDirectSubmission(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) + : DirectSubmissionHw(device, osContext, globalFenceAllocation) { osContextWin = reinterpret_cast(&osContext); wddm = osContextWin->getWddm(); commandBufferHeader = std::make_unique(); diff --git a/shared/test/unit_test/direct_submission/direct_submission_tests_1.cpp b/shared/test/unit_test/direct_submission/direct_submission_tests_1.cpp index 6478042a61..08ac8773d5 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_tests_1.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_tests_1.cpp @@ -31,7 +31,7 @@ HWTEST_F(DirectSubmissionTest, whenDebugCacheFlushDisabledSetThenExpectNoCpuCach DebugManager.flags.DirectSubmissionDisableCpuCacheFlush.set(1); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.disableCpuCacheFlush); uintptr_t expectedPtrVal = 0; @@ -51,7 +51,7 @@ HWTEST_F(DirectSubmissionTest, whenDebugCacheFlushDisabledNotSetThenExpectCpuCac DebugManager.flags.DirectSubmissionDisableCpuCacheFlush.set(0); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_FALSE(directSubmission.disableCpuCacheFlush); uintptr_t expectedPtrVal = 0xABCD00u; @@ -64,7 +64,7 @@ HWTEST_F(DirectSubmissionTest, whenDebugCacheFlushDisabledNotSetThenExpectCpuCac HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenStopThenRingIsNotStarted) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto &csr = pDevice->getUltCommandStreamReceiver(); csr.directSubmission.reset(&directSubmission); @@ -80,7 +80,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenStopThenRingIsNotStarted HWTEST_F(DirectSubmissionTest, givenBlitterDirectSubmissionWhenStopThenRingIsNotStarted) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto &csr = pDevice->getUltCommandStreamReceiver(); std::unique_ptr osContext(OsContext::create(pDevice->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), 0, EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_BCS, EngineUsage::Regular}, @@ -103,7 +103,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenMakingResourcesResidentT pDevice->getRootDeviceEnvironmentRef().memoryOperationsInterface.reset(mockMemoryOperations.get()); - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -124,7 +124,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenMakingResourcesResidentT HWTEST_F(DirectSubmissionTest, givenDirectSubmissionInitializedWhenRingIsStartedThenExpectAllocationsCreatedAndCommandsDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.disableCpuCacheFlush); bool ret = directSubmission.initialize(true, false); @@ -140,7 +140,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionInitializedWhenRingIsStarted HWTEST_F(DirectSubmissionTest, givenDirectSubmissionInitializedWhenRingIsNotStartedThenExpectAllocationsCreatedAndCommandsNotDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -156,7 +156,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionInitializedWhenRingIsNotStar HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSwitchBuffersWhenCurrentIsPrimaryThenExpectNextSecondary) { using RingBufferUse = typename MockDirectSubmissionHw>::RingBufferUse; MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -170,7 +170,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSwitchBuffersWhenCurrentIsPr HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSwitchBuffersWhenCurrentIsSecondaryThenExpectNextPrimary) { using RingBufferUse = typename MockDirectSubmissionHw>::RingBufferUse; MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -186,7 +186,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSwitchBuffersWhenCurrentIsSe } HWTEST_F(DirectSubmissionTest, givenDirectSubmissionAllocateFailWhenRingIsStartedThenExpectRingNotStarted) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.disableCpuCacheFlush); directSubmission.allocateOsResourcesReturn = false; @@ -199,7 +199,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionAllocateFailWhenRingIsStarte HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSubmitFailWhenRingIsStartedThenExpectRingNotStartedCommandsDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.submitReturn = false; bool ret = directSubmission.initialize(true, false); @@ -211,7 +211,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionSubmitFailWhenRingIsStartedT HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsStartedThenExpectNoStartCommandsDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -224,7 +224,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsStartedThenEx HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedThenExpectStartCommandsDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -238,7 +238,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedThe HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedSubmitFailThenExpectStartCommandsDispatchedRingNotStarted) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -253,7 +253,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedSub HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedAndSwitchBufferIsNeededThenExpectRingAllocationChangedStartCommandsDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -280,7 +280,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStartWhenRingIsNotStartedAnd HWTEST_F(DirectSubmissionTest, givenDirectSubmissionStopWhenStopRingIsCalledThenExpectStopCommandDispatched) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -302,11 +302,11 @@ HWTEST_F(DirectSubmissionTest, using Dispatcher = RenderDispatcher; MockDirectSubmissionHw regularDirectSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t regularSizeEnd = regularDirectSubmission.getSizeEnd(); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); directSubmission.disableMonitorFence = true; @@ -348,7 +348,7 @@ HWTEST_F(DirectSubmissionTest, HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchSemaphoreThenExpectCorrectSizeUsed) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -359,7 +359,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchSemaphoreThenExp HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchStartSectionThenExpectCorrectSizeUsed) { MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -369,7 +369,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchStartSectionThen } HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchSwitchRingBufferSectionThenExpectCorrectSizeUsed) { - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -381,7 +381,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchSwitchRingBuffer HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchFlushSectionThenExpectCorrectSizeUsed) { using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -393,7 +393,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchFlushSectionThen HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchTagUpdateSectionThenExpectCorrectSizeUsed) { using Dispatcher = RenderDispatcher; MockDirectSubmissionHw - directSubmission(*pDevice, *osContext); + directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -405,7 +405,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchTagUpdateSection HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenDispatchEndingSectionThenExpectCorrectSizeUsed) { using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -420,7 +420,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenGetDispatchSizeThenExpec DebugManagerStateRestore restorer; DebugManager.flags.DirectSubmissionDisableCacheFlush.set(0); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t expectedSize = directSubmission.getSizeStartSection() + Dispatcher::getSizeCacheFlush(*directSubmission.hwInfo) + @@ -436,7 +436,7 @@ HWTEST_F(DirectSubmissionTest, DebugManagerStateRestore restorer; DebugManager.flags.DirectSubmissionDisableCacheFlush.set(0); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.workloadMode = 1; size_t expectedSize = Dispatcher::getSizeStoreDwordCommand() + @@ -454,7 +454,7 @@ HWTEST_F(DirectSubmissionTest, using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.workloadMode = 2; size_t expectedSize = Dispatcher::getSizeCacheFlush(*directSubmission.hwInfo) + Dispatcher::getSizeMonitorFence(*directSubmission.hwInfo) + @@ -468,7 +468,7 @@ HWTEST_F(DirectSubmissionTest, using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableCacheFlush = true; size_t expectedSize = directSubmission.getSizeStartSection() + Dispatcher::getSizeMonitorFence(*directSubmission.hwInfo) + @@ -483,7 +483,7 @@ HWTEST_F(DirectSubmissionTest, DebugManagerStateRestore restorer; DebugManager.flags.DirectSubmissionDisableCacheFlush.set(0); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = true; size_t expectedSize = directSubmission.getSizeStartSection() + Dispatcher::getSizeCacheFlush(*directSubmission.hwInfo) + @@ -496,7 +496,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenGetEndSizeThenExpectCorr using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t expectedSize = Dispatcher::getSizeStopCommandBuffer() + Dispatcher::getSizeCacheFlush(*directSubmission.hwInfo) + @@ -510,7 +510,7 @@ HWTEST_F(DirectSubmissionTest, givenDirectSubmissionWhenSettingAddressInReturnCo using MI_BATCH_BUFFER_START = typename FamilyType::MI_BATCH_BUFFER_START; MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -527,7 +527,7 @@ HWTEST_F(DirectSubmissionTest, whenDirectSubmissionInitializedThenExpectCreatedA std::unique_ptr>> directSubmission = std::make_unique>>(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission->initialize(false, false); EXPECT_TRUE(ret); @@ -538,7 +538,7 @@ HWTEST_F(DirectSubmissionTest, whenDirectSubmissionInitializedThenExpectCreatedA directSubmission = std::make_unique< MockDirectSubmissionHw>>(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); ret = directSubmission->initialize(false, false); EXPECT_TRUE(ret); @@ -549,7 +549,7 @@ HWTEST_F(DirectSubmissionTest, whenDirectSubmissionInitializedThenExpectCreatedA directSubmission = std::make_unique< MockDirectSubmissionHw>>(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); ret = directSubmission->initialize(false, false); EXPECT_TRUE(ret); nulledAllocation = directSubmission->semaphores; @@ -677,7 +677,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(UllsDefaults::defaultDisableCacheFlush); EXPECT_FALSE(UllsDefaults::defaultDisableMonitorFence); EXPECT_TRUE(directSubmission.disableCacheFlush); @@ -712,7 +712,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(UllsDefaults::defaultDisableCacheFlush); EXPECT_FALSE(UllsDefaults::defaultDisableMonitorFence); EXPECT_TRUE(directSubmission.disableCacheFlush); @@ -750,7 +750,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockVfptrinfCalled = 0u; NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(UllsDefaults::defaultDisableCacheFlush); EXPECT_FALSE(UllsDefaults::defaultDisableMonitorFence); EXPECT_TRUE(directSubmission.disableCacheFlush); @@ -790,7 +790,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockVfptrinfCalled = 0u; NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); uint32_t expectedSemaphoreValue = directSubmission.currentQueueWorkCount; EXPECT_TRUE(UllsDefaults::defaultDisableCacheFlush); EXPECT_FALSE(UllsDefaults::defaultDisableMonitorFence); @@ -886,7 +886,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockVfptrinfCalled = 0u; NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); uint32_t expectedSemaphoreValue = directSubmission.currentQueueWorkCount; EXPECT_TRUE(UllsDefaults::defaultDisableCacheFlush); EXPECT_FALSE(UllsDefaults::defaultDisableMonitorFence); @@ -949,7 +949,7 @@ HWTEST_F(DirectSubmissionTest, NEO::IoFunctions::mockFcloseCalled = 0u; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_NE(nullptr, directSubmission.diagnostic.get()); EXPECT_EQ(1u, NEO::IoFunctions::mockFopenCalled); @@ -1000,7 +1000,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, DirectSubmissionTest, using Dispatcher = RenderDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -1022,7 +1022,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DirectSubmissionTest, givenDebugFlagSetWhenDispatch using MI_ARB_CHECK = typename FamilyType::MI_ARB_CHECK; using Dispatcher = BlitterDispatcher; - MockDirectSubmissionHw directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); EXPECT_TRUE(ret); diff --git a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp index 20bf093f5b..bfb565f73d 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp @@ -95,7 +95,7 @@ struct DirectSubmissionDispatchMiMemFenceTest : public DirectSubmissionDispatchB }; HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenMiMemFenceSupportedWhenInitializingDirectSubmissionThenEnableMiMemFenceProgramming) { - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(miMemFenceSupported, directSubmission.miMemFenceRequired); EXPECT_FALSE(directSubmission.systemMemoryFenceAddressSet); @@ -108,7 +108,7 @@ HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenMiMemFenceSupportedWhenIni } HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenMiMemFenceSupportedWhenDispatchingWithoutInitThenEnableMiMemFenceProgramming) { - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); FlushStampTracker flushStamp(true); EXPECT_EQ(miMemFenceSupported, directSubmission.miMemFenceRequired); @@ -126,7 +126,7 @@ HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenMiMemFenceSupportedWhenDis } HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenMiMemFenceSupportedWhenSysMemFenceIsAlreadySentThenDontReprogram) { - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); FlushStampTracker flushStamp(true); EXPECT_EQ(miMemFenceSupported, directSubmission.miMemFenceRequired); @@ -145,7 +145,7 @@ HWTEST_F(DirectSubmissionDispatchMiMemFenceTest, givenDebugFlagSetWhenCreatingDi DebugManagerStateRestore restorer; DebugManager.flags.DirectSubmissionInsertExtraMiMemFenceCommands.set(0); - MockDirectSubmissionHw> directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw> directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_FALSE(directSubmission.miMemFenceRequired); EXPECT_FALSE(directSubmission.systemMemoryFenceAddressSet); @@ -172,7 +172,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DirectSubmissionDispatchBufferTest, ultCsr->createWorkPartitionAllocation(*pDevice); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.partitionConfigSet); directSubmission.partitionConfigSet = false; directSubmission.disableMonitorFence = false; @@ -245,11 +245,11 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, DebugManager.flags.DirectSubmissionDisableCacheFlush.set(0); MockDirectSubmissionHw regularDirectSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t regularSizeDispatch = regularDirectSubmission.getSizeDispatch(); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = true; bool ret = directSubmission.allocateResources(); @@ -296,11 +296,11 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, DebugManager.flags.DirectSubmissionDisableCacheFlush.set(0); MockDirectSubmissionHw regularDirectSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t regularSizeDispatch = regularDirectSubmission.getSizeDispatch(); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableCacheFlush = true; bool ret = directSubmission.allocateResources(); @@ -345,12 +345,12 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, using Dispatcher = RenderDispatcher; MockDirectSubmissionHw regularDirectSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t regularSizeDispatch = regularDirectSubmission.getSizeDispatch(); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.workloadMode = 1; bool ret = directSubmission.allocateResources(); @@ -392,11 +392,11 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, using MI_STORE_DATA_IMM = typename FamilyType::MI_STORE_DATA_IMM; MockDirectSubmissionHw> regularDirectSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); size_t regularSizeDispatch = regularDirectSubmission.getSizeDispatch(); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.workloadMode = 2; bool ret = directSubmission.allocateResources(); @@ -432,7 +432,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -474,7 +474,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -511,7 +511,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -550,7 +550,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -588,7 +588,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, givenDirectSubmissionPrintBuffersWh FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); testing::internal::CaptureStdout(); @@ -622,7 +622,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.partitionConfigSet); directSubmission.activeTiles = 2; directSubmission.partitionedMode = true; @@ -686,7 +686,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw> directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.partitionConfigSet); directSubmission.activeTiles = 2; directSubmission.partitionedMode = true; @@ -738,7 +738,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = false; bool ret = directSubmission.initialize(true, true); @@ -774,7 +774,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = false; bool ret = directSubmission.initialize(true, true); @@ -813,7 +813,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, true); EXPECT_TRUE(ret); @@ -838,7 +838,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, FlushStampTracker flushStamp(true); MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.initialize(true, true); EXPECT_TRUE(ret); @@ -860,7 +860,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest, givenDebugFlagSetWhenDispatchingWor for (int32_t debugFlag : {-1, 0, 1, 2}) { DebugManager.flags.DirectSubmissionInsertSfenceInstructionPriorToSubmission.set(debugFlag); - MockDirectSubmissionHw directSubmission(*pDevice, *osContext); + MockDirectSubmissionHw directSubmission(*pDevice, *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_TRUE(directSubmission.initialize(true, true)); auto initialCounterValue = CpuIntrinsicsTests::sfenceCounter.load(); diff --git a/shared/test/unit_test/direct_submission/direct_submission_tests_xe_hp_core.cpp b/shared/test/unit_test/direct_submission/direct_submission_tests_xe_hp_core.cpp index 31658c8c8a..6a55b24074 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_tests_xe_hp_core.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_tests_xe_hp_core.cpp @@ -20,7 +20,7 @@ XE_HP_CORE_TEST_F(DirectSubmissionTestXE_HP_CORE, givenBlitterUsedWhenDispatchin using Dispatcher = BlitterDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(sizeof(MI_BATCH_BUFFER_START), directSubmission.getSizePrefetchMitigation()); @@ -45,7 +45,7 @@ XE_HP_CORE_TEST_F(DirectSubmissionTestXE_HP_CORE, givenBlitterUsedWhenDispatchin using Dispatcher = BlitterDispatcher; MockDirectSubmissionHw directSubmission(*pDevice, - *osContext); + *osContext, pDevice->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(sizeof(MI_ARB_CHECK), directSubmission.getSizeDisablePrefetcher()); diff --git a/shared/test/unit_test/direct_submission/linux/drm_direct_submission_tests.cpp b/shared/test/unit_test/direct_submission/linux/drm_direct_submission_tests.cpp index a1a9c75124..ba43c6c190 100644 --- a/shared/test/unit_test/direct_submission/linux/drm_direct_submission_tests.cpp +++ b/shared/test/unit_test/direct_submission/linux/drm_direct_submission_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -78,7 +78,7 @@ struct MockDrmDirectSubmission : public DrmDirectSubmission(device, osContext) { + MockDrmDirectSubmission(Device &device, OsContext &osContext, const GraphicsAllocation *globalFenceAllocation) : DrmDirectSubmission(device, osContext, globalFenceAllocation) { this->disableMonitorFence = false; } }; @@ -87,7 +87,7 @@ using namespace NEO; HWTEST_F(DrmDirectSubmissionTest, givenDrmDirectSubmissionWhenCallingLinuxImplementationThenExpectInitialImplementationValues) { MockDrmDirectSubmission> drmDirectSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); auto drm = static_cast(executionEnvironment.rootDeviceEnvironments[0]->osInterface->getDriverModel()->as()); EXPECT_TRUE(drm->isDirectSubmissionActive()); @@ -114,7 +114,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenDrmDirectSubmissionWhenCallingLinuxImplem HWTEST_F(DrmDirectSubmissionTest, whenCreateDirectSubmissionThenValidObjectIsReturned) { auto directSubmission = DirectSubmissionHw>::create(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_NE(directSubmission.get(), nullptr); bool ret = directSubmission->initialize(false, false); @@ -126,7 +126,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenDisabledMonitorFenceWhenDispatchSwitchRin using Dispatcher = RenderDispatcher; MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = true; directSubmission.ringStart = true; @@ -153,7 +153,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenDisabledMonitorFenceWhenUpdateTagValueThe using Dispatcher = RenderDispatcher; MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); directSubmission.disableMonitorFence = true; directSubmission.ringStart = true; @@ -185,7 +185,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenDirectSubmissionNewResourceTlbFlushWhenDi DebugManager.flags.DirectSubmissionNewResourceTlbFlush.set(1); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); EXPECT_TRUE(ret); @@ -213,7 +213,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenNewResourceBoundhWhenDispatchCommandBuffe DebugManager.flags.DirectSubmissionNewResourceTlbFlush.set(-1); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); EXPECT_TRUE(ret); @@ -244,7 +244,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenNoNewResourceBoundhWhenDispatchCommandBuf DebugManager.flags.DirectSubmissionNewResourceTlbFlush.set(-1); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); EXPECT_TRUE(ret); @@ -274,7 +274,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenDirectSubmissionNewResourceTlbFlusZeroAnd DebugManager.flags.DirectSubmissionNewResourceTlbFlush.set(0); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = directSubmission.allocateResources(); EXPECT_TRUE(ret); @@ -300,7 +300,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmDirectSubmissionTest, givenMultipleActiveTilesWh using Dispatcher = RenderDispatcher; MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); uint32_t offset = directSubmission.postSyncOffset; EXPECT_NE(0u, offset); @@ -338,7 +338,7 @@ HWTEST_F(DrmDirectSubmissionTest, ultCsr->createWorkPartitionAllocation(*device); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(2u, directSubmission.activeTiles); EXPECT_TRUE(directSubmission.partitionedMode); @@ -363,7 +363,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenRenderDispatcherAndMultiTileDeviceWhenCre ultCsr->createWorkPartitionAllocation(*device); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(1u, directSubmission.activeTiles); EXPECT_FALSE(directSubmission.partitionedMode); @@ -386,7 +386,7 @@ HWTEST_F(DrmDirectSubmissionTest, givenBlitterDispatcherAndMultiTileDeviceWhenCr EXPECT_EQ(2u, osContext->getDeviceBitfield().count()); MockDrmDirectSubmission directSubmission(*device.get(), - *osContext.get()); + *osContext.get(), device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(1u, directSubmission.activeTiles); EXPECT_FALSE(directSubmission.partitionedMode); diff --git a/shared/test/unit_test/direct_submission/windows/wddm_direct_submission_tests.cpp b/shared/test/unit_test/direct_submission/windows/wddm_direct_submission_tests.cpp index cb2019688f..7902088053 100644 --- a/shared/test/unit_test/direct_submission/windows/wddm_direct_submission_tests.cpp +++ b/shared/test/unit_test/direct_submission/windows/wddm_direct_submission_tests.cpp @@ -52,7 +52,7 @@ using WddmDirectSubmissionTest = WddmDirectSubmissionFixture; HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenDirectIsInitializedAndStartedThenExpectProperCommandsDispatched) { std::unique_ptr>> wddmDirectSubmission = std::make_unique>>(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(1u, wddmDirectSubmission->commandBufferHeader->NeedsMidBatchPreEmptionSupport); @@ -84,7 +84,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenDirectIsInitializedAndNotStarted device->setPreemptionMode(PreemptionMode::Disabled); std::unique_ptr>> wddmDirectSubmission = std::make_unique>>(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(0u, wddmDirectSubmission->commandBufferHeader->NeedsMidBatchPreEmptionSupport); @@ -111,7 +111,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenDirectIsInitializedAndNotStarted HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSubmitingCmdBufferThenExpectPassWddmContextAndProperHeader) { MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = wddmDirectSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -130,7 +130,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSubmitingCmdBufferThenExpectPass HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenAllocateOsResourcesThenExpectRingMonitorFenceCreatedAndAllocationsResident) { MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = wddmDirectSubmission.allocateResources(); EXPECT_TRUE(ret); @@ -149,7 +149,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenAllocateOsResourcesFenceCreation ASSERT_NE(nullptr, ringBuffer); MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); DirectSubmissionAllocations allocations; allocations.push_back(ringBuffer); @@ -168,7 +168,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenAllocateOsResourcesFenceCreation HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenAllocateOsResourcesResidencyFailsThenExpectRingMonitorFenceCreatedAndAllocationsNotResident) { MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); wddm->callBaseMakeResident = false; wddm->makeResidentStatus = false; @@ -190,7 +190,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenGettingTagDataThenExpectContextM contextFence.currentFenceValue = value; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); TagData tagData; wddmDirectSubmission.getTagAddressValue(tagData); @@ -201,7 +201,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenGettingTagDataThenExpectContextM HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenHandleResidencyThenExpectWddmWaitOnPaginfFenceFromCpuCalled) { MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); wddmDirectSubmission.handleResidency(); @@ -216,7 +216,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenHandlingRingBufferCompletionThen contextFence.currentFenceValue = value; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); uint64_t completionValue = 0x12345679ull; wddmDirectSubmission.handleCompletionRingBuffer(completionValue, contextFence); @@ -230,7 +230,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenHandlingRingBufferCompletionThen HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSwitchingRingBufferStartedThenExpectDispatchSwitchCommandsLinearStreamUpdated) { using MI_BATCH_BUFFER_START = typename FamilyType::MI_BATCH_BUFFER_START; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = wddmDirectSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -256,7 +256,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSwitchingRingBufferStartedThenEx HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSwitchingRingBufferNotStartedThenExpectNoSwitchCommandsLinearStreamUpdated) { using MI_BATCH_BUFFER_START = typename FamilyType::MI_BATCH_BUFFER_START; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = wddmDirectSubmission.initialize(false, false); EXPECT_TRUE(ret); @@ -283,7 +283,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenSwitchingRingBufferStartedAndWai using RingBufferUse = typename MockWddmDirectSubmission>::RingBufferUse; using MI_BATCH_BUFFER_START = typename FamilyType::MI_BATCH_BUFFER_START; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); bool ret = wddmDirectSubmission.initialize(true, false); EXPECT_TRUE(ret); @@ -319,7 +319,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmWhenUpdatingTagValueThenExpectComple contextFence.currentFenceValue = value; MockWddmDirectSubmission> wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); uint64_t actualTagValue = wddmDirectSubmission.updateTagValue(); EXPECT_EQ(value, actualTagValue); @@ -348,7 +348,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmResidencyEnabledWhenCreatingDestroyi std::unique_ptr> wddmSubmission = std::make_unique>(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); EXPECT_EQ(1u, NEO::IoFunctions::mockFopenCalled); EXPECT_EQ(2u, NEO::IoFunctions::mockVfptrinfCalled); @@ -375,7 +375,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmResidencyEnabledWhenAllocatingResour NEO::IoFunctions::mockFcloseCalled = 0u; MockWddmDirectSubmission wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); wddm->callBaseMakeResident = true; wddm->createPagingFenceLogger(); @@ -406,7 +406,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmResidencyEnabledWhenHandleResidencyT NEO::IoFunctions::mockFcloseCalled = 0u; MockWddmDirectSubmission wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); wddm->createPagingFenceLogger(); EXPECT_EQ(1u, NEO::IoFunctions::mockFopenCalled); @@ -435,7 +435,7 @@ HWTEST_F(WddmDirectSubmissionTest, givenWddmResidencyEnabledWhenSubmitToGpuThenS NEO::IoFunctions::mockFcloseCalled = 0u; MockWddmDirectSubmission wddmDirectSubmission(*device.get(), - *osContext); + *osContext, device->getDefaultEngine().commandStreamReceiver->getGlobalFenceAllocation()); wddm->createPagingFenceLogger(); EXPECT_EQ(1u, NEO::IoFunctions::mockFopenCalled); diff --git a/shared/test/unit_test/os_interface/windows/wddm_command_stream_l0_tests.cpp b/shared/test/unit_test/os_interface/windows/wddm_command_stream_l0_tests.cpp index 745f286cc6..3b14101449 100644 --- a/shared/test/unit_test/os_interface/windows/wddm_command_stream_l0_tests.cpp +++ b/shared/test/unit_test/os_interface/windows/wddm_command_stream_l0_tests.cpp @@ -81,12 +81,12 @@ struct MockWddmCsrL0 : public WddmCommandStreamReceiver { if (DebugManager.flags.EnableDirectSubmission.get() == 1) { if (!initBlitterDirectSubmission) { directSubmission = std::make_unique< - MockWddmDirectSubmission>>(device, osContext); + MockWddmDirectSubmission>>(device, osContext, globalFenceAllocation); ret = directSubmission->initialize(true, false); this->dispatchMode = DispatchMode::ImmediateDispatch; } else { blitterDirectSubmission = std::make_unique< - MockWddmDirectSubmission>>(device, osContext); + MockWddmDirectSubmission>>(device, osContext, globalFenceAllocation); blitterDirectSubmission->initialize(true, false); } }