diff --git a/CMakeLists.txt b/CMakeLists.txt index cbd80de8f9..678f1a935d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -977,7 +977,7 @@ set(BUILTINS_SPIRV_LIB_NAME "builtins_spirv") set(BUILTINS_VME_LIB_NAME "builtins_vme") if(WIN32) - set(NEO_EXTRA_LIBS Ws2_32 winmm) + set(NEO_EXTRA_LIBS Ws2_32) else() set(NEO_EXTRA_LIBS dl pthread rt) endif() diff --git a/level_zero/CMakeLists.txt b/level_zero/CMakeLists.txt index 16115d13f0..348ecf49d9 100644 --- a/level_zero/CMakeLists.txt +++ b/level_zero/CMakeLists.txt @@ -261,7 +261,6 @@ if(BUILD_WITH_L0) ${NEO_SHARED_DIRECTORY}/gmm_helper/windows/gmm_memory.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/gmm_interface_win.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/sys_calls.cpp - ${NEO_SHARED_DIRECTORY}/os_interface/windows/sys_calls_winmm.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/os_interface_win.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/os_memory_virtual_alloc.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/wddm/wddm_calls.cpp diff --git a/opencl/source/dll/CMakeLists.txt b/opencl/source/dll/CMakeLists.txt index 7cc513f10b..8a61580d2a 100644 --- a/opencl/source/dll/CMakeLists.txt +++ b/opencl/source/dll/CMakeLists.txt @@ -65,7 +65,6 @@ set(RUNTIME_SRCS_DLL_WINDOWS ${NEO_SHARED_DIRECTORY}/gmm_helper/windows/gmm_memory.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/os_memory_virtual_alloc.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/sys_calls.cpp - ${NEO_SHARED_DIRECTORY}/os_interface/windows/sys_calls_winmm.cpp ${NEO_SHARED_DIRECTORY}/os_interface/windows/wddm/wddm_calls.cpp ${NEO_SHARED_DIRECTORY}/dll/wddm/wddm_create.cpp ${NEO_SOURCE_DIR}/opencl/source/os_interface/windows/platform_teardown_win.cpp diff --git a/opencl/test/unit_test/windows/CMakeLists.txt b/opencl/test/unit_test/windows/CMakeLists.txt index a13f8425c5..c02c55ab72 100644 --- a/opencl/test/unit_test/windows/CMakeLists.txt +++ b/opencl/test/unit_test/windows/CMakeLists.txt @@ -33,7 +33,6 @@ if(WIN32) ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/options.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/setup_external_dependencies_drm_or_wddm.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/sys_calls.cpp - ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/sys_calls_winmm.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/wddm_calls.cpp ${NEO_SOURCE_DIR}/opencl/test/unit_test/test_macros/test_checks_ocl.cpp ) diff --git a/shared/source/direct_submission/direct_submission_controller.cpp b/shared/source/direct_submission/direct_submission_controller.cpp index 739076ba54..f29eb32ac3 100644 --- a/shared/source/direct_submission/direct_submission_controller.cpp +++ b/shared/source/direct_submission/direct_submission_controller.cpp @@ -167,6 +167,10 @@ void DirectSubmissionController::checkNewSubmissions() { this->timeSinceLastCheck = getCpuTimestamp(); } +bool DirectSubmissionController::sleep(std::unique_lock &lock) { + return NEO::waitOnConditionWithPredicate(condVar, lock, std::chrono::microseconds(this->timeout), [&] { return !pagingFenceRequests.empty(); }); +} + SteadyClock::time_point DirectSubmissionController::getCpuTimestamp() { return SteadyClock::now(); } diff --git a/shared/source/direct_submission/linux/CMakeLists.txt b/shared/source/direct_submission/linux/CMakeLists.txt index 9234c1ef13..70153c0fcb 100644 --- a/shared/source/direct_submission/linux/CMakeLists.txt +++ b/shared/source/direct_submission/linux/CMakeLists.txt @@ -6,7 +6,6 @@ set(NEO_CORE_DIRECT_SUBMISSION_LINUX ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - ${CMAKE_CURRENT_SOURCE_DIR}/direct_submission_controller_linux.cpp ${CMAKE_CURRENT_SOURCE_DIR}/drm_direct_submission.h ${CMAKE_CURRENT_SOURCE_DIR}/drm_direct_submission.inl ) diff --git a/shared/source/direct_submission/linux/direct_submission_controller_linux.cpp b/shared/source/direct_submission/linux/direct_submission_controller_linux.cpp deleted file mode 100644 index 81b3a1e302..0000000000 --- a/shared/source/direct_submission/linux/direct_submission_controller_linux.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2024 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "shared/source/direct_submission/direct_submission_controller.h" -#include "shared/source/helpers/sleep.h" - -#include -namespace NEO { -bool DirectSubmissionController::sleep(std::unique_lock &lock) { - return NEO::waitOnConditionWithPredicate(condVar, lock, std::chrono::microseconds(this->timeout), [&] { return !pagingFenceRequests.empty(); }); -} -} // namespace NEO \ No newline at end of file diff --git a/shared/source/direct_submission/windows/CMakeLists.txt b/shared/source/direct_submission/windows/CMakeLists.txt index 438eb3544d..ce975d8fbb 100644 --- a/shared/source/direct_submission/windows/CMakeLists.txt +++ b/shared/source/direct_submission/windows/CMakeLists.txt @@ -6,7 +6,6 @@ set(NEO_CORE_DIRECT_SUBMISSION_WINDOWS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - ${CMAKE_CURRENT_SOURCE_DIR}/direct_submission_controller_windows.cpp ${CMAKE_CURRENT_SOURCE_DIR}/wddm_direct_submission.h ${CMAKE_CURRENT_SOURCE_DIR}/wddm_direct_submission.inl ) diff --git a/shared/source/direct_submission/windows/direct_submission_controller_windows.cpp b/shared/source/direct_submission/windows/direct_submission_controller_windows.cpp deleted file mode 100644 index ffc8b99ac9..0000000000 --- a/shared/source/direct_submission/windows/direct_submission_controller_windows.cpp +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2024 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "shared/source/direct_submission/direct_submission_controller.h" -#include "shared/source/helpers/sleep.h" -#include "shared/source/os_interface/windows/sys_calls_winmm.h" - -#include -namespace NEO { -bool DirectSubmissionController::sleep(std::unique_lock &lock) { - SysCalls::timeBeginPeriod(1u); - bool returnValue = NEO::waitOnConditionWithPredicate(condVar, lock, std::chrono::microseconds(this->timeout), [&] { return !pagingFenceRequests.empty(); }); - SysCalls::timeEndPeriod(1u); - return returnValue; -} -} // namespace NEO \ No newline at end of file diff --git a/shared/source/os_interface/windows/CMakeLists.txt b/shared/source/os_interface/windows/CMakeLists.txt index ae6c7d74a3..fa46adde5f 100644 --- a/shared/source/os_interface/windows/CMakeLists.txt +++ b/shared/source/os_interface/windows/CMakeLists.txt @@ -84,7 +84,6 @@ set(NEO_CORE_OS_INTERFACE_WDDM ${CMAKE_CURRENT_SOURCE_DIR}/os_environment_win.h ${CMAKE_CURRENT_SOURCE_DIR}/sharedata_wrapper.h ${CMAKE_CURRENT_SOURCE_DIR}/sys_calls.h - ${CMAKE_CURRENT_SOURCE_DIR}/sys_calls_winmm.h ${CMAKE_CURRENT_SOURCE_DIR}/thk_wrapper.h ${CMAKE_CURRENT_SOURCE_DIR}/wddm/adapter_info.cpp ${CMAKE_CURRENT_SOURCE_DIR}/wddm/adapter_info.h diff --git a/shared/source/os_interface/windows/sys_calls_winmm.cpp b/shared/source/os_interface/windows/sys_calls_winmm.cpp deleted file mode 100644 index 004d7f79ac..0000000000 --- a/shared/source/os_interface/windows/sys_calls_winmm.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2024 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "shared/source/os_interface/windows/sys_calls_winmm.h" -namespace NEO { -namespace SysCalls { -MMRESULT timeBeginPeriod(UINT period) { - return ::timeBeginPeriod(period); -} - -MMRESULT timeEndPeriod(UINT period) { - return ::timeEndPeriod(period); -} -} // namespace SysCalls -} // namespace NEO \ No newline at end of file diff --git a/shared/source/os_interface/windows/sys_calls_winmm.h b/shared/source/os_interface/windows/sys_calls_winmm.h deleted file mode 100644 index 9583a232cf..0000000000 --- a/shared/source/os_interface/windows/sys_calls_winmm.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2024 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#pragma once -#include "shared/source/os_interface/windows/windows_wrapper.h" -namespace NEO { - -namespace SysCalls { - -MMRESULT timeBeginPeriod(UINT period); -MMRESULT timeEndPeriod(UINT period); -} // namespace SysCalls -} // namespace NEO \ No newline at end of file diff --git a/shared/test/common/libult/CMakeLists.txt b/shared/test/common/libult/CMakeLists.txt index 8fa5d57b0c..495490ba4f 100644 --- a/shared/test/common/libult/CMakeLists.txt +++ b/shared/test/common/libult/CMakeLists.txt @@ -219,7 +219,6 @@ set(neo_libult_SRCS_WINDOWS ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/options.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/setup_external_dependencies_drm_or_wddm.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/sys_calls.cpp - ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/sys_calls_winmm.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/wddm_calls.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/mock_environment_variables.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/os_interface/windows/mock_environment_variables.h diff --git a/shared/test/common/os_interface/windows/sys_calls_winmm.cpp b/shared/test/common/os_interface/windows/sys_calls_winmm.cpp deleted file mode 100644 index ab00a220d8..0000000000 --- a/shared/test/common/os_interface/windows/sys_calls_winmm.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2024 Intel Corporation - * - * SPDX-License-Identifier: MIT - * - */ - -#include "sys_calls_winmm.h" - -namespace NEO { - -namespace SysCalls { - -size_t timeBeginPeriodCalled = 0u; -UINT timeBeginPeriodLastValue = 0u; -size_t timeEndPeriodCalled = 0u; -UINT timeEndPeriodLastValue = 0u; - -MMRESULT timeBeginPeriod(UINT period) { - timeBeginPeriodCalled++; - timeBeginPeriodLastValue = period; - return 0u; -} - -MMRESULT timeEndPeriod(UINT period) { - timeEndPeriodCalled++; - timeEndPeriodLastValue = period; - return 0u; -} - -} // namespace SysCalls -} // namespace NEO \ No newline at end of file diff --git a/shared/test/unit_test/direct_submission/direct_submission_controller_mock.h b/shared/test/unit_test/direct_submission/direct_submission_controller_mock.h index 32d024de41..3dd96c6ac8 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_controller_mock.h +++ b/shared/test/unit_test/direct_submission/direct_submission_controller_mock.h @@ -30,14 +30,10 @@ struct DirectSubmissionControllerMock : public DirectSubmissionController { using DirectSubmissionController::timeSinceLastCheck; bool sleep(std::unique_lock &lock) override { + auto ret = sleepReturnValue.load(); this->sleepCalled = true; - if (callBaseSleepMethod) { - return DirectSubmissionController::sleep(lock); - } else { - auto ret = sleepReturnValue.load(); - sleepReturnValue.store(false); - return ret; - } + sleepReturnValue.store(false); + return ret; } SteadyClock::time_point getCpuTimestamp() override { @@ -57,6 +53,5 @@ struct DirectSubmissionControllerMock : public DirectSubmissionController { std::atomic sleepReturnValue{false}; std::atomic timeoutElapsedReturnValue{false}; std::atomic timeoutElapsedCallBase{false}; - bool callBaseSleepMethod = false; }; } // namespace NEO \ No newline at end of file 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 7c88cbf738..c81d62de7d 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 @@ -10,29 +10,21 @@ #include "shared/source/gmm_helper/gmm_helper.h" #include "shared/source/helpers/flush_stamp.h" #include "shared/source/memory_manager/allocation_properties.h" -#include "shared/source/os_interface/windows/sys_calls.h" #include "shared/source/os_interface/windows/wddm/wddm_residency_logger.h" #include "shared/source/os_interface/windows/wddm_memory_manager.h" #include "shared/source/os_interface/windows/wddm_residency_controller.h" #include "shared/test/common/cmd_parse/hw_parse.h" #include "shared/test/common/helpers/debug_manager_state_restore.h" #include "shared/test/common/helpers/unit_test_helper.h" -#include "shared/test/common/helpers/variable_backup.h" #include "shared/test/common/mocks/mock_io_functions.h" #include "shared/test/common/mocks/mock_os_context_win.h" #include "shared/test/common/os_interface/windows/wddm_fixture.h" #include "shared/test/common/test_macros/hw_test.h" -#include "shared/test/unit_test/direct_submission/direct_submission_controller_mock.h" #include "shared/test/unit_test/mocks/windows/mock_wddm_direct_submission.h" -extern uint64_t cpuFence; -namespace NEO { -namespace SysCalls { -extern size_t timeBeginPeriodCalled; -extern MMRESULT timeBeginPeriodLastValue; -extern size_t timeEndPeriodCalled; -extern MMRESULT timeEndPeriodLastValue; -} // namespace SysCalls +using namespace NEO; + +extern uint64_t cpuFence; template struct WddmDirectSubmissionFixture : public WddmFixture { @@ -1138,22 +1130,4 @@ HWTEST_F(WddmDirectSubmissionTest, givenDirectSubmissionWhenUnblockPagingFenceSe wddmDirectSubmission.unblockPagingFenceSemaphore(pagingFenceValueToWait); EXPECT_GT(wddmDirectSubmission.semaphoreData->pagingFenceCounter, mockedPagingFence); -} - -TEST(DirectSubmissionControllerWindowsTest, givenDirectSubmissionControllerWhenCallingSleepThenRequestHighResolutionTimers) { - VariableBackup timeBeginPeriodCalledBackup(&SysCalls::timeBeginPeriodCalled, 0u); - VariableBackup timeBeginPeriodLastValueBackup(&SysCalls::timeBeginPeriodLastValue, 0u); - VariableBackup timeEndPeriodCalledBackup(&SysCalls::timeEndPeriodCalled, 0u); - VariableBackup timeEndPeriodLastValueBackup(&SysCalls::timeEndPeriodLastValue, 0u); - - DirectSubmissionControllerMock controller; - controller.callBaseSleepMethod = true; - std::unique_lock lock(controller.condVarMutex); - controller.sleep(lock); - EXPECT_TRUE(controller.sleepCalled); - EXPECT_EQ(1u, SysCalls::timeBeginPeriodCalled); - EXPECT_EQ(1u, SysCalls::timeEndPeriodCalled); - EXPECT_EQ(1u, SysCalls::timeBeginPeriodLastValue); - EXPECT_EQ(1u, SysCalls::timeEndPeriodLastValue); -} -} // namespace NEO +} \ No newline at end of file