Все прерывания делятся по следующим приоритетам: 1 место - работает на уровне кольцо -2 прерывания SMI (system management interrupt — прерывание системного управления), которое возникает: -по сигналу от чипсета или периферии на материнской плате -программный SMI, посланный системным ПО через порт ввода-вывода -запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM. 2 место - гипервизор, который работает в кольце -1 3 место - ядро операционной системы - работает в кольце 0 4 место - пользовательский уровень - работает в кольце 3
Позднее дополню каждый раздел. Все проблемы у нас связаны с тем, что windows относится к операционным системам с вытесняющей многозадачностью. Вытесняющая многозадачность требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую. Единственное, что мы можем изменить - это увеличить время кванта и поменять соотношение квантов времени на активную задачу и задачи в фоне, за это отвечает параметр в реестре Win32PrioritySeparation По умолчанию 0х26 кванты 18:6 = Оптимальный вариант. https://github.com/keoy7am/Win32PrioritySeparationTool При этом само время кванта зависит от системного таймера. При системном таймера 15.625 мс оно будет больше, чем при 1.0 мс. Высчитывается время системного таймера * тики. 1 тик= 3 кванта Для системного таймера 0.5 мс фону тогда буде даваться 0.5мс*6/3 = 1мс из каждых 4 мс. При 1 мс - 2мс из каждых 8мс. При 2 мс - 4мс из каждых 16мс. Для борьбы с фризами оптимально выставить системный таймер 0.5мс.
SMI-прерывания зависят от BIOS/UEFI и оборудования. Отключаем все лишнее, отключаем энергосохранение, скорость вентиляторов фиксируем, это все, что мы можем сделать. В нашем плане энергосохранения выбрать оценка для поднятия частоты вместо 15 мс максимум 5000 мс. Есть программа Intel SMI Latency Checker Для гипервизора - отключаем поддержку виртуальных машин в биосе.
Про прерывания на уровне ядра и пользователя в windows.
В Windows применяется: - для x86 - 32 уровня IRQL от 0 до 31 (в скобках указано числовое значение): High (31) Power fail (30) IPI (29) Clock (28) Profile (27) Диапазон аппаратных прерываний, называемых Devices IRQL, или DIRQL (от 26 до 3) или ISR DPC/DISPATCH (2) APC (1) PASSIVE (0) Это означает, например, что планировщик (работающий на уровне DPC/DISPATCH) может быть прерван аппаратными прерываниями, межпроцессорными прерываниями (IPI) и т. д., но не может быть прерван асинхронными процедурами (APC) и обычными потоками, работающими на уровне PASSIVE. Межпроцессорные прерывания IPI могут быть прерваны сбоем электропитания (прерывание на уровне Power fail), но не могут быть прерваны обычными аппаратными прерываниями от устройств и т. д. - для х64 16 уровней IRQL (от 0 до 15) High/Profile (15) Interprocessor interrupt/Power (14) Clock (13) Synch (12) Device n (11) ......... Device 1 (3) Dispatch/DPC (2) APC (1) Passive/Low (0)
При этом: hardware interrupts 3-15 (3-31) software interrupts 1-2 (1-2) normal thread execution 0 (0)
Наш пользовательский процесс может иметь следующие приоритеты: Idle - 4 Below Normal - 6 Normal -8 Above Normal -10 High -13 Real-Time -24 Внутри процесса мы можем задать приоритет для его потоков: Idle дает итоговый приоритет процесса с потоком 1, кроме real-time, там он его просто снизит до фиксированной 16 Lowest -2 Below Normal -1 Normal 0 Above Normal +1 Highest +2 Time Critical +7
Итоговый приоритет потока - это сумма приоритетов процесса и потока. 31 - максимум Real-Time - от 16 до 31. При этом даже максимальный 31 приоритет не лает нам возможности подняться выше уровня Passive/Low(0), поэтому любое прерывание на нашем ядре прервет нашу программу.
Борьба с прерываниями. Бороться надо двумя путями. Первый путь - уменьшить само количество прерываний=их частоту. Частота прерываний за 1 секунду до 10000 считается еще неплохой. Второй путь - уменьшить длительность прерываний. Есть еще третий путь - освободить от прерываний нужные нам ядра.
Первое и самое главное. Установка максимально облегченной и очищенной системы. Если хватит windows 10, то лучше ставить ее. 23H2 лучше, чем 24Н2. Отключить динамический таймер. Поднять, а не снизить время для системного таймера до 15,625 мс! Если снизим до 0.5 мс, то увеличим количество прерываний. Но тут вступает в действие многозадачность винды. 1/4 времени отдается фоновым процессам. Минимум - это 6 тиков=2 кванта Полностью вырубить все фоновые процессы на винде мы не сможем. Для 120 кадров нам нужно иметь перерыв не больше 1/120=8.(3) мс. Поэтому подходит время для системного таймера только 0.5 мс /1 мс и условно 2 мс , так как 2 мс*2=4 мс. Внести в реестр для глобальной настройки системного таймера (работает только для win 11) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] "GlobalTimerResolutionRequests"=dword:00000001"
Отключить VSYNC. Включить тройную буферизацию если процессор успевает рендерить, то компенсирует воемя двух кадров: 2*1000 мс / частоту кадров в Гц Краткий список исследований по психофизиологии: Watson (1986): Задержки <5 мс незаметны. Kelly (1979): Порог фликера <2 мс. Burr & Ross (1982): 10% кадра = 100мс/частоту кадров (при движении). Clayton (2018): 1–2% кадров= 1000мс*процент пропуска кадров (10–20 мс/с) незаметно. Carrasco (2011): <5–10 мс при внимании. Hoffman et al. (2017): <3 мс с размытием. Swafford et al. (2016): <4 мс, 2% (20 мс) при редких фризах (реже 1 раза в секунду). Digital Foundry (2025): 0.125 фриза/с=0.125*1000мс/частоту кадров Гц) заметно при частых повторениях.
Для 120 Гц: 1982-0.833мс 2025-1.042мс
Снизить частоту опроса мыши до 125Гц.
Главные правила для таймеров: Таймеры используются для времени (QPC) и для системных прерываний=тиков.
useplatformclock disables TSC and uses the platform source clock instead (HPET or PMT). PMT is used when HPET is disabled in BIOS. useplatformtick disables TSC tick and uses the platform source tick instead (RTC). Does disabledynamictick work when useplatformtick is used? No, it does not do anything since RTC is not a dynamic tick counter.
При этом возможны разные комбинации таймеров.
TSC + TSC without desync: bcdedit /deletevalue useplatformclock - bcdedit /deletevalue useplatformtick (make sure HPET is enabled in BIOS) TSC + RTC: bcdedit /deletevalue useplatformclock - bcdedit /set useplatformtick Yes HPET + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is enabled in BIOS) PMT + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is disabled in BIOS) Частота HPET 14.318180 MHz, в 4 раза выше частоты ACPI PM Timer. RTC устаревший тайминг с частотой от 2-х до 8192 Гц. Использует кварц 32.768 KHz HPET требует больше времени на вызов, чем TSC или PM Timer, но это важно только для системных прерываний. HPET и PM timer находятся в южном мосте. TSC в процессоре. Поэтому вполне допустима комбинация HPET (для времени QPC)+TSC (для тиков).
bcdedit /set useplatformtick no (отключаем RTC и включаем TSC для тиков) bcdedit /set useplatformclock no (отключаем HPET и включаем TSC для времени QPC) bcdedit /set disabledynamictick yes (отключаем динамическое изменение частоты системного таймера - влияет только на тики) bcdedit /set tscsyncpolicy Enhanced (включаем улучшенную синхронизацию TSC-таймера) HPET не следует отключать в биосе и в диспетчере устройств. Посмотреть текущую конфигурацию можно с помощью команды bcdedit /enum
Обсуждение проблем ОС и оборудования: задержка реакции системы (latency), микроcтаттер, инпутлаг, фризы.
Перед тем как задавать вопросы, просьба прочитать FAQ
Осуществлять мониторинг программойLatency Monitorнужно в течение 1 минуты, в состоянии простоя системы т.е. без дисковой, сетевой активности, и любой другой, с выключенным ав и приложениями в трее и автозагрузке, не раньше чем через 2 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
kiberman, Версия биоса МП: А20, версия биоса видеокарты: 86.06.39.00.6F. Ничего не разгонял, всё на стоковых частотах. Ось пиратка (крякнутая) Версия 1607, игра тоже пиратская. Электропитание в винде стоит "высокая производительность", а по поводу "панели видеодрайвера", вы имеете ввиду зайти в "панель управления nvidia" и поставить там энергопотребление - "макс. произв."? Я такого не увидел в "панель управления nvidia".
Куратор темы Статус: Не в сети Регистрация: 22.12.2005 Откуда: Киров
Alex TOPMAN писал(а):
предлагаю (кураторам) вставить в шапку требование к постам: цпу, мать, гпу, винда и билд, версия драйверов
Это все есть в правилах конференции и дублировать это мне кажется не нужно. Лучше всеми силами начинать делать FAQ и в 1 пост вставить все методы решения которые известны на данный момент.
kiberman, сделал всё как вы указали, к сожалению ничего не помогло
З.Ы. Кому не трудно покатайтесь в ГТА5 по городу минут 5 и выложите скрин с временем кадра. Начинать уже грешить на игры что ли? потому что в сентетике всё нормально
Вложения:
Безымянный12.png [ 17.08 КБ | Просмотров: 1606 ]
Последний раз редактировалось lookedme 28.03.2017 20:21, всего редактировалось 2 раз(а).
Eddisson178, у меня помимо этой проблемы, ещё свистят катушки индуктивности в нагрузке. Интересно, как бы это умно так сложить в кучу и рассказать продавцу, чтобы без конфликтов и возни лишней сделать замену на другую видяху или такую же
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
lookedme писал(а):
у меня помимо этой проблемы, ещё свистят катушки индуктивности в нагрузке. Интересно, как бы это умно так сложить в кучу и рассказать продавцу, чтобы без конфликтов и возни лишней сделать замену на другую видяху или такую же
если 14 дней не прошло,можно вобще ничего не объяснять,катушки не являются браком-и тут на усмотрение продавца и магазина,как договоритесь. Что касается микролагов, почитайте всю тему-многие решения уже были озвучены. Что касается карт Паскаль,задокументированы только 2 особенности- не любит 67-77 чипсеты и чувствительна к джиттеру на Pci-ex.
По карте,если она не бсодит,игры играет,нет перегрева,всё стабильно-я бы не заморачивался с обменом-можно обменять на реальный брак и потом опять бегать.
Eddisson178 писал(а):
Вообще данная проблема являеться условием к манибеку? При условии что купленной видюхе нету 2-недель?
Нет конечно,потому-что это работа энергосберегающих технологий. Смотрите выше.
Добавлено спустя 1 минуту 38 секунд:
Eddisson178 писал(а):
А у вас вообще проблемы с с временем кадра в любых играх имеються? Или только в GTA 5?
Монитор фиксирует переключение оборудования,то что бюрнер показывает к лагу может не иметь никакого отношения. Цпу например дёргает задачей,или частота гпу скачет.
Нет конечно,потому-что это работа энергосберегающих технологий. Смотрите выше.
Вся проблема DPC Latecy в том что тупо работают энергосберегающие технологии? Так пусть тогда lookedme их выключит и все проблем не будет
kiberman писал(а):
Монитор фиксирует переключение оборудования,то что бюрнер показывает к лагу может не иметь никакого отношения. Цпу например дёргает задачей,или частота гпу скачет.
То есть у него игра идет плавно? И вся проблема в том что это глюк автербернера?
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Eddisson178 писал(а):
Вся проблема DPC Latecy в том что тупо работают энергосберегающие технологии? Так пусть тогда lookedme их выключить и все проблем не будет
Там совокупность всего,и софт может быть-если такое только в гта-всё решаемо,пусть человек почитает с первой страницы.
Про ось уже второй раз спрашиваю какой у него билд,версия 1607-уже обновлений 12-15 вышло,пиратка,а билд-номер?)) . Так вот с каждой обновой у майков то инпут лаг ломался, то ещё что-нибудь. По этому нужна лицензия или обновлённая пиратка.
Eddisson178 писал(а):
То есть у него игра идет плавно? И вся проблема в том что это глюк автербернера?
Нет),монитор фиксирует разные частоты на гпу/нагрузку,отсюда эти скачки-кадров,человек связывает это именно с лагами. Только это может быть не верно).
Прежде всего надо проинспектировать Ос,и настройки,сторонний софт. Сам бюрнер и его мониторинг может добавлять лагов. Ему бы я порекомендовал отключить сеть,удалить бюрнер,переставить драйвер с помощью ddu,потом смотреть дальше энергосберегающие,если не поможет. Машину можно было бы проверить на заразу-трояны и майнеры, и проверить целостность файлов sfc/ scannow
Нет),монитор фиксирует разные частоты на гпу/нагрузку,отсюда эти скачки-кадров,человек связывает это именно с лагами. Только это может быть не верно).
Прежде всего надо проинспектировать Ос,и настройки,сторонний софт. Сам бюрнер и его мониторинг может добавлять лагов. Ему бы я порекомендовал отключить сеть,удалить бюрнер,переставить драйвер с помощью ddu,потом смотреть дальше энергосберегающие,если не поможет. Машину можно было бы проверить на заразу-трояны и майнеры, и проверить целостность файлов sfc/ scannow
Почему то про эти проблемы слышал только у Паскалей, у предыдущих покалений такого не было?
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Eddisson178 писал(а):
Почему то про эти проблемы слышал только у Паскалей, у предыдущих покалений такого не было
Потому-что схема гпубуста изменилась,на Паскале она другая. Меня карта устраивает-были бы моменты-которые не решаемы-уже бы давно обменял,а так уже 8ой месяц пойдёт в апреле-работает. Дело в том что у меня до покупки карты-система была настроена под себя- биос,минимальный набор энергосберегающих. Ос-лицензия+ встроенный защитник. Как описывал в начале темы-тестировал на пиратке гта-всё было идеально.
Eddisson178, Вот во что играл и мониторил : Battlefield 1, GTA5, DOTA2 ( ), ещё попробую в Resident evil 7 и Battlefield 4. Запустил стресс-тест в 3Dmark 20 циклов Firestorm и всё в норме. Вообще не понимаю как в играх могут быть проблемы, а в сентетике нет? Понимающие люди, объясните мне пожалуйста.
kiberman, сносил драйвера DDU несколько раз - не помогало. В диспечере устройств(это вы имелли в виду под "отключить сеть"?) отключить сетевуху и всегда без интернета сидеть или как? Удалял бюрнер тоже, всё равно были заметны рывки и фризы даже без мониторинга, sfc /scannow делал - никаких проблем. К сожалению я в биосе не силён и абревиатур многих не знаю чтобы отключить энергосберегающие функции или не только в биосе нужно отключать? Не могли бы вы пожалуйста подробно рассписать что желательно/нужно выключить из энергосберегалок? З.Ы. Сборка ОС 14393.969, надеюсь с третьего раза правильно сказал?
Последний раз редактировалось lookedme 28.03.2017 22:09, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Eddisson178 писал(а):
Просто интересно эта проблема массовая?
Нет,так как особенность работы,у одних есть у других нет-тем более микрофризы проблема решаемая. Если бы массовая - была бы крики и ор в прессе и на форумах.
Повторюсь-если карта держит нагрузку-не сбоит драйвер,нет бсодов,артефактов и перегрева -менять нет никакого смысла -фризы искать надо в платформе-биос-мп и софте-Ос.
Всё это 100 раз "обмусоливалось" причины и решение. Что достоверно известно глюки на старых чипсетах.
lookedme писал(а):
Вообще не понимаю как в играх могут быть проблемы, а в сентетике нет?
Фризы какого рода? вращение камеры обзор? или просто периодические?-при перемещениях. Ос не переустанавливалась после смены карты? или это "на чистую" такое?
Добавлено спустя 4 минуты 49 секунд:
lookedme писал(а):
В диспечере устройств(это вы имелли в виду под "отключить сеть"?
Имел ввиду,что ddu иногда не отключает автоапдейт,и чтоб не ставить драйвер поверх выкачанного системой-лучше подстраховаться.
Фризы какого рода? вращение камеры обзор? или просто периодические?-при перемещениях
Как будто падает фпс до 0, просто обычный фриз.
kiberman писал(а):
Имел ввиду,что ddu иногда не отключает автоапдейт,и чтоб не ставить драйвер поверх выкачанного системой-лучше подстраховаться.
Да, делал такое.
kiberman писал(а):
Ос не переустанавливалась после смены карты? или это "на чистую" такое?
До этого стоял Radeon RX470 ROG Strix 4GB, обменял на 1060 потому что был брак, то перед тем как ставить 1060 я почистил DDU, отключил Windows update, только потом поставил 1060 и дрова.
Последний раз редактировалось lookedme 28.03.2017 22:35, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
lookedme писал(а):
Как будто падает фпс до 0, просто обычный фриз.
Прежде чем набросать гайд по биосу-надо исключить софт.
С сайта интел выкачайте последние драйвера для вашей Мп
1) intel inf - Chipset_10.1.1.42_Public
2) intel Me driver
3)Сеть с realtek com tw
4)Другие драйверы и контроллёры которые есть на вашей мп-с сайта производителей чипов.
5)Дистрибутив драйвера 378.92 и dx web setup
Переставьте виндовс с нуля на чистую,с форматированием системного раздела. Перед этим отключите сеть-чтобы система не выкачала драйвера для мп и видеокарты.
Создаёте локальный профиль при установке,потом все драйвера, после установки видеодрайвера-включаете сеть, и выкачиваете dxwebsetup -dx библиотеки. Проверяете игры,если игры тормозят-только тогда имеет смысл ковырять биос-железо. Всё последовательно.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
lookedme писал(а):
Вообще не понимаю как в играх могут быть проблемы, а в сентетике нет? Понимающие люди, объясните мне пожалуйста.
Я уже писал это на форуме, но всё равно повторюсь: синтетика не требует от пользователя никаких действий. Даже наоборот - не допускает. Поэтому в ней движок можно вылизать так, что он кадры на упреждение хоть за сутки вперёд тебе считать будет и подавать потом на экран плавнее некуда. В играх же идёт большой поток инпутов от игрока. И предсказать их хоть и можно, но сложно и только на очень короткое будущее. Особенно нелинейный ввод, типа мыши. Я специально замерял (в Фоллауте 4) и прекрасно видел, как повороты стрелками на клаве давали более плавный видеоряд, чем вращения мышкой (наиболее заметные микрофризы). При чём, замечу - стоя на месте. А то некоторые любят включать скачущего вперёд на лошади ведьмака и заявлять потом, что у них всё ок и они ничего не замечают. Ну, ок. Не замечайте и дальше... (это к вопросу о правильной постановке теста).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения