На счет HPET, есть специальный бенчмарк для тестирования таймеров - https://www.overclockers.at/articles/the-hpet-bug-what-it-is-and-what-it-isnt
Действия для тестирования:
- Скачиваем архив с программой
- Распаковываем в удобное место
- В программе Intelegent standby list cleaner устанавливаем
Wanted timer resolution
в 0.50- Запускаем из папки TimerBench
- Смотрим на строку
QPC Mode
, чтобы узнать какой таймер используется HPET или TSC(он может не определиться и значение будет Unknown)- Выбираем разрешение 1280х720
- Ставим галочку в строке
Fullscreen
- Жмем кнопку
Run
- Запустится тест, сначала он определит количество циклов в синтетических тестах, а потом запустится демка на UE, для определения количества циклов в играх, максимальный фреймтайм и средний фпс.
- Повторяем тест 3-5 раз, не надо закрывать окна с результатами тестов, они понадобятся для высчитывания среднего фреймтайма, фпс и количества циклов, выборка из 5 результат будет точнее.
- Меняем в программе Intelegent standby list cleaner параметр
Wanted timer resolution
в 1.00- Повторяем тестирование 3-5 раз.
Смотрим результаты Timer Calls/s
в разделе Game Test
, если разница между результатами с таймеров в 0.50 и 1.00 больше чем 20%, то делаем следующее:
- Открываем командную строку или PowerShell от имени администратора
- Вводим
bcdedit /set tscsyncpolicy Enhanced
- Жмем Enter
- Перезагружаем ПК
- Снова меняем в программе Intelegent standby list cleaner параметр
Wanted timer resolution
на 0.50- Снова запускаем TimerBench и запускаем тест в полном экране
- Смотрим на
Timer Calls/s
, число должно стать таким же как было при таймере1.00
.
Для того, чтобы сравнить результаты с включенным HPET:
- Нажать в окне TimerBench кнопку
Enable HPET
- Перезагрузить ПК
- Повторить тестирование.
Чтобы обратно отключить HPET:
- Открываем командную строку или PowerShell от имени администратора
- Вводим
bcdedit /set useplatformtick false
жмем Enter- Вводим
bcdedit /set useplatformclock false
жмем Enter- Вводим
bcdedit /set disabledynamictick true
жмем Enter- Вводим
bcdedit /set tscsyncpolicy Enhanced
жмем Enter- Запускаем диспетчер устройств
- Переходим в раздел
Системные устройства
- Находим
Высокоточный таймер событий
и отключаем его.- Перезагружаем ПК
На ПК c FX-8350 и GTX 1060 3Gb разница между включенным и выключенным HPET составляет:
Frametime 41мс(HPET включен), 6мс(HPET выключен);
AVG FPS - 325(HPET включен), 357(HPET выключен)
Game Test timer calls - 314,266 (HPET включен), 2,133,816(HPET выключен)