Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
fo36r писал(а):
поэтому судить по картинке это не совсем верное убеждение
Верное. Я в эту игру с 17 года играю, знаю уже каждую анимацию досконально, и картинку и т.д. Знаю когда оно идеально работает у меня и как у людей. Если у себя я вижу вот эти дерганые анимации, как при низком фпс(именно анимаций, не игры), то такие же анимации есть и на видео, как на своем так и на чужом, или на стриме. Когда сама игра странно идет, как при низком фпс или тикрейте, непонятно, это видно у себя в игре, так же и на своей записе. На чужих стримах/записях это так же видно.
Всё же попробуй со vsync поиграть и записать, будет такая же плавная картинка, не знаю как в этой игре привязана анимация, но в кс коннект инета к серверу имеет важную роль.
Member
Статус: Не в сети Регистрация: 25.01.2004 Откуда: Ростов-на-Дону Фото: 4
OLD Hunter писал(а):
А вот кстати как идёт Овер без инпута https://www.twitch.tv/kssarplayz?sr=a Можно чекнуть записи. Плавная четкая картинка, плавные анимации, никаких подёргиваний и прочего. Отличная рега(нет задержек) При этом пинг 100 и он из саудовской Аравии. У челов из Европы с пингом 20 игра идёт в 10 раз хуже.
Еще раз повторяю - плавность записи напрямую зависит от фпс в игре. Когда существенно переваливает за 200, то запись выглядит плавнее, чем на 140-150. Тем более у него мощное железо и фпс хорошо держится на лимитированных 250. И ваще что за наркомания оценивать плавность игры по записи векторным кодеком х264 с 60фпс? Прочитай как работают кодеки с кодированием векторов движения объектов. Они сглаживают типа мойшон блюром картинку, дорисовывают пиксели и т.п. Часто стример может жаловаться, что игра лагает, но на стриме этого нет, потому что векторный кодек, да и фпс всего 60.
_________________ 12400|224XT|MSI PRO B660M-A DDR4|4x8Gb@3466|KFA2 3060-12X|Deepcool PQ650M|Corsair 200R|Win11x64
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
OLD Hunter писал(а):
У челов из Европы с пингом 20 игра идёт в 10 раз хуже.
Плохо настроенные и оптимизированные компы, дефолтные настройки стека сети, приколы роутера... продолжать можно бесконечно?
fo36r писал(а):
Можешь сам попробовать записать игру при включенном vsync и других синхронизаций, с записью без любой синхронизации, запись с vsync и другими будет выглядеть так же хорошо, нежели без синхронизации
Не совсем, я выкладывал свою запись для демонстрации как у меня идёт игра, никакие виды синхронизации не включены
Перемещение по картам, "собирал" стенки на карте, промахивался смоками и.т.п. это он писал в конце прошлого года, с месяц назад примерно, на стриме Niko его подкалывали в тс, мол ты бы ещё варежки надел и играл он сказал что уже привык без vsync и чувствует что играть стало "легче" Забыл упомянуть, играл с синхронизацией k1to.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Genrix Кто понимает и чувствительный он все изменения в игре ощущает и комментирует, и на стриме это видно, даже если там 300 фпс. У них игра идёт не так при 300 фпс, на 240гц, а как при 100 фпс и 100гц и это даже на стриме видно, как ты сам сказал - чем выше фпс тем больше плавность. Но этот фпс становится каким-то фейковым.
k2viper писал(а):
Плохо настроенные и оптимизированные компы, дефолтные настройки стека сети, приколы роутера... продолжать можно бесконечно?
Нет, не стоит. Ибо это бред в большинстве своем. Т.к я знаю многих у кого игра шла нормально на новом компе и потом что-то случается и она больше так не идёт, хоть заоптимизируйся, хоть какие сборки или чистую ос поставь. Например txao, я знаю как у него шла игра, было видно как все плавно, правильные анимации, все это было видно на стриме. Но потом что-то произошло, он стал жаловаться на инпут лаг и сэвсе это видно. И дело тут не в оптимизациях и не инете. Ос он переустанавливал, настройки обс не менял. Железо менял только видяху, и то уже когда была проблема. Думал что озу дает такой эффект, ее тоже менял, эффекта не дало. И провайдеров у него 2 - игра идёт одинаково.
Member
Статус: Не в сети Регистрация: 25.01.2004 Откуда: Ростов-на-Дону Фото: 4
OLD Hunter писал(а):
Genrix Кто понимает и чувствительный он все изменения в игре ощущает и комментирует, и на стриме это видно, даже если там 300 фпс. У них игра идёт не так при 300 фпс, на 240гц, а как при 100 фпс и 100гц и это даже на стриме видно, как ты сам сказал - чем выше фпс тем больше плавность. Но этот фпс становится каким-то фейковым.
Ну тогда сформируй пруфы что ли. Вот клип с твича где все дерганное с этой проблемой, а вот клип с твича где всё плавно. А то получается, что мы обсуждаем ничего, коня в вакууме. И вообще мы про одно и то же говорим, или про разное. Нужно определиться.
_________________ 12400|224XT|MSI PRO B660M-A DDR4|4x8Gb@3466|KFA2 3060-12X|Deepcool PQ650M|Corsair 200R|Win11x64
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Для кого пруфы то? Смысл мне это делать и доказывать людям без проблемы, если я уже кидал не то что клипы, а прямо людей у которых это по кд. Ну если не видят они, зачем я буду тратить время на клипы?
Заблокирован Статус: Не в сети Регистрация: 23.06.2019 Фото: 0
Эт снова я. А почему вы не берете в расчет физиологию? Ведь иногда, в зависимости от разных факторов (сон, усталость, время суток, прием пищи и т.д.) мы можем тупить. И в такой ситуации человек может ни в кого не попадать, но списывает это все не проблемы в компе. Потом, на следующий день, он садится играть в другом, более "свежем" состоянии, и всех нагибает.
И получается такая вот плавающая проблема: в один день хорошо, в другой лучше. А вы списываете её на провайдера/фазы луны. Хотя я не отрицаю, что все аппаратные факторы тоже имею место быть.
Добавлено спустя 9 минут 47 секунд:
iG0Lka писал(а):
Как в этой проге регистрируется начало сдвига мыши или нажатие на кнопку мыши?
Там измеряется лаг вывода изображения после обработки ЦП, как тут верно отметили. И я просто хотел показать, что он тоже может прилично скакать, даже если частота кадров меняется не сильно – и это тоже надо учитывать. А лаг от нажатия клавиши мышки/клавиатуры до обработки ЦП там задается как оффсет, который по умолчанию составляет 10 мс (и он у всех примерно одинаковый: 10-12 мс).
И полный инпут-лаг складывается из этих двух факторов. Если игра онлайн, то добавляется третий: интернет.
Кстати, об интернете. Там задержка тоже может плавать. Например, в крупных населенных пунктах все линии от отдельных квартир сходятся в один узел, и если его пропускной способности не достаточно, то он начинает сортировать запросы и ставить пакеты в очередь – может получиться так, что у Васи из соседней квартиры все ок, а у тебя интернет тормозит. А на следующий день ситуация будет обратная.
OLD Hunter Есть куча людей которые видели инопланетян, верят что земля плоская и пр. На каждый бред можно найти в мире единомышленников. Электричество это не магия, его нельзя сглазить, все можно посчитать, измерить и самое главное исправить. Существуют выпрямители и экранирование, если ты это все проделал и не помогает значит дело не в электричестве, если даже не пробовал, то ты просто заходишь поныть. Все остальное психическая болезнь.
Member
Статус: Не в сети Регистрация: 25.01.2004 Откуда: Ростов-на-Дону Фото: 4
CorniliuS писал(а):
Электричество это не магия, его нельзя сглазить, все можно посчитать, измерить и самое главное исправить. Все остальное психическая болезнь.
Вот тоже так считаю. Прокладка между стулом и периферией пека - самый нестабильный элемент системы. Есть дни когда я реагирую будто бухой, а есть когда мне пишут, что я читак или под ускоряющими веществами. И эту разницу я ощущаю сам, как и якобы ватную, кисельную мышку. Но это всё только кажется. Поэтому доверяю только средствам объективного контроля.
А электричество из розетки проходит через такую кучу фильтров и преобразований в пека, что я думаю шумы просто не доберутся до чипов, а шум от самих преобразований и так до сотни милливатт доходит. Все что добирается из розетки это наверное только основной тон 50гц.
_________________ 12400|224XT|MSI PRO B660M-A DDR4|4x8Gb@3466|KFA2 3060-12X|Deepcool PQ650M|Corsair 200R|Win11x64
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Ну дя ну дяя, конечно кажется все. инпут лаг мозга
второе видео про эксемпла, 4300 ело было в КС (если перевести на язык овервотч то это будет дпс 4600-4700) Получил эту проблему с инпут лагом на новой квартире. Т.е у него там не просто мышка плавает, плохая картинка не на свой фпс но еще и клики не работают с мышки , клавы. Он просто переехал со своим пк в новую квартиру и получил это (это к слову про настройку пк, твики и прочую ересь) И ему кстати после этого Шок(есть такой ютубер) дарил пк новый и на нем была та же проблема, сразу.
По поводу решения и прочего - никаких денег не хватит, некоторые доходят до смены проводки в кв и даже подъезде, ибп стабов и т.д., но финансовые возможности все же ограничены у большинства.
Заблокирован Статус: Не в сети Регистрация: 23.06.2019 Фото: 0
OLD Hunter Хватит показывать видео, которые идут в 60 фпс. Ты тут организовал какую-то секту, основываясь на видео и "ощущениях". Это 3.1. Хватит морочить людям голову.
OLD Hunter Пример с вождением мыши проблема явно не в электричестве, проверяется и решается эта проблема (если она есть) очень просто — ИБП. Если ИБП есть, а проблема не уходит, ответ очевиден, проблема не в электричестве.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Проблема в эл-ве как раз. Ибп не решается, он во первых не для этих задач и не дает чистой эл-и и не стабилизирует. Некоторым помогают ибп двойного преобразования с чистой синусоидой, но помогают на несколько дней. Т.е картинка становится четкая резкая, игра нормально отзывается на мышь, но затем все возвращается как было. Тут некоторые сидят умничают, но многие уже перепробовали все что только можно но не пришли к решению. За рубежом некотрые тратят 10 тыс долларов на оборудование и решение, но ничего не выходит, т.к проблема слишком сложна.
Понятно. Была значит нормальная синусоида, а через пару дней взяла и испортилась. Точно бабка сглазила. Есть даже такие объявления - ворожба, приворот, искривляю синусоиду. Сколько же вас фриков на этом сайте...
Member
Статус: Не в сети Регистрация: 25.01.2004 Откуда: Ростов-на-Дону Фото: 4
Phenomenum писал(а):
Хватит морочить людям голову
На записи твича, где стримерам скидывали ссылку на ВК, например на 19-08 второго видео, там в верхнем и нижнем образце разный фов. Поэтому кажется, что сенсы разные, но это не так. Всегда в конверторах сенсы делаю пересчет с учетом фова. Он очень сильно влияет на ощущение сенсы. Кароч это всё рофл какой-то, ни инструментальных тестов, ни синхронизации с внешним таймером, просто - я вот вижу как аудиофилы, а потом выясняется что аудиофил этот мр3 192 не может отличить от оригинала. Есть такие люди - если я что-то чувствую или вижу, то это так и есть. Инженеры - я человек, а значит я пипега, я верю только приборам = средствам объективного контроля. Кароч, предлагаю забить.
_________________ 12400|224XT|MSI PRO B660M-A DDR4|4x8Gb@3466|KFA2 3060-12X|Deepcool PQ650M|Corsair 200R|Win11x64
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Скидывайтесь на монитор 360Гц, с рефлексом, какие-то жалкие 50к. Покажу вам задержки. Ведь это вам надо увидеть циферки, не мне
Добавлено спустя 13 минут 43 секунды:
через 30 мин игры задержки от 20 мс улетели под 300 Он в итоге это все подправил - даунклокнул проц и повыкидывал все из пк, включая звукову, ссд и еще что-то. Но не пофиксил, т.к железо в пк и его работа это следствие внешних наводок.
Member
Статус: Не в сети Регистрация: 25.01.2004 Откуда: Ростов-на-Дону Фото: 4
Ничего не поменялось на видео. Как прыгали цифры в районе 8-20мс и 100-200мс, так и прыгают в конце. Эта измерялка ориентируется по вспышке анимации на участке экрана. Даже на старте видео она находит 100+мс задержки. "Хорошая" точность измерений
_________________ 12400|224XT|MSI PRO B660M-A DDR4|4x8Gb@3466|KFA2 3060-12X|Deepcool PQ650M|Corsair 200R|Win11x64
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения