Все прерывания делятся по следующим приоритетам: 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
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
helpme111 писал(а):
Может мне попробовать поменять видеокарту по гарантии ?? Да и еще у меня с ней глюки такие есть в играх при движении мышкой немного меняется яркость изображения, то светлее то темнее, иногда некоторые мелкие объекты прорисовываются прямо перед носом, в некоторых играх в определенных моментах бывают глюки с тенями...
Если такое в сетевых играх-как тут правильно говорят товарищи, бороться с этим бесполезно, меняйте провайдера,маршрут, тип подключения, дом и т.д (какой кстати у вас провайдер?) -если подключение оптический роутер, пробуйте перевести в режим бриджа, договаривайтесь на той стороне и настройками на порту если это необходимо.
Бывает такое ещё редко при плохом питании роутера. Если витая пара, тут вариантов не много- можно попробовать подключить услугу статический адрес,или сесть на тариф для юрид лиц. В остальном только смена места жительства в комплексе с провом.
Если сильный лаг в сингле- пробуйте последний мп биос, и работу без/с ссд- или чекайте их состояние смарт и драйвера, в каком режиме карта pcie? . сколько линий отъели 2 ссд? У меня нареканий лично на 430.64 в плане лага, нету. Остальное в faq и в сообщениях темы.
Про "вынул батарейку и пропал инпут лаг" - это уже интересно.
тогда я просто вытащил планки может батарейку и не вынимал (просто уже смешалось все в кучу в голове), поменял их местами и после этого сыграл пару каток в пубг и в бф и у меня действительно все было в норме, управление резкое и отзывчивое без инпутлага, после этого на след день меня что то черт дергнул обновить дрова..., надо было оставить все как есть.
Moonk этот эффект был особенно заметен в ведьмаке3 (было что то вроде мерцания текстур при движении мышью), экспириенс не стоит, creator ready еще кстати не пробовал ставить, надо поробовать
XIMERA123 пробовал, тоже ничего не дает
OLD Hunter я пробовал играть и по сети и в одиночную компанию и там и там одинаково все, инпут лаг, ощущение что мало фпс и отсутствие 144гц на мониторе, вообщем играть неприятно во всяком случае так точно не должно быть и такого раньше не было.
Насчет прорисовывания объектов, возможно да, это особенности игры, просто на своей предидущей видеокарте (gtx1070) я таких явлений особо не замечал, может я просто придираюсь уже )
Добавлено спустя 2 минуты 42 секунды: kiberman не думаю что тут проблемы с интернетом, как я уже писал пробовал играть в компанию, там тоже все плохо... через пару дней попробую вставить другую видеокарту.
Добавлено спустя 14 минут 26 секунд: еще кстати 1 момент, мне ни разу не удавалось запустить battlefield 5 с включенным RTX, сразу вылетал на рабочий стол, может все таки брак видеокарты ?
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
helpme111 писал(а):
OLD Hunter я пробовал играть и по сети и в одиночную компанию
в других еще играх проверьте, шутерах, без сети, чтоб точно убедиться что там такое есть. Т.к. у меня большие сомнения что такое везде.
Добавлено спустя 2 минуты:
helpme111 писал(а):
еще кстати 1 момент, мне ни разу не удавалось запустить battlefield 5 с включенным RTX, сразу вылетал на рабочий стол, может все таки брак видеокарты ?
вряд ли. Скорее что-то с ос и дровами. Ну а так есть и другие игры с ртх, то же метро.(если не куплено, надеюсь знаете где его брать)
Member
Статус: Не в сети Регистрация: 16.11.2004 Откуда: Санкт-Петербург
helpme111 Дружище! У меня один в один та же проблема, что и у тебя. Я уже вторую неделю по несколько часов на дню ломаю голову и пробую различные варианты. Только у меня ситуация веселее, т.к. проблема в игрe Quake Live. Ей 1000 лет уже, если не больше. Железо: 9900K + 16Gb Samsung B-Die, RTX2070/GTX1060, 240Hz монитор. Итак, суть: В игре FPS ограничен на отметке 250, при этом, визуально выглядит все это дело, хорошо, если на FPS 100. Есть микростаттеры, больше похожие на screen tearing, иногда проскакивают даже фризы. При этом, мониторинг показывает стабильные 250 кадров и ровный фреймтайм. (За исключением случаев, когда дело доходит до фризов. Их видно, но случаются они крайне редко). Управление "как в киселе", на экране какая-то замыленная и смазанная картинка. Ради интереса установил в ПК 1060, которая в связке с 6700K+16Gb Hynix работала в Quake отлично. Сначала, я грешил на процессор. Думал, он включает C-State, но нет. После, думал уже о мат. плате - мало ли брак или, возможно, она сбрасывает частоты CPU. Тоже мимо. В общем, что я пробовал. Списком: Прошивал BIOS мат. платы. Устанавливал все настройки BIOS на Default. Отключал ядра процессора, отключал HT. Отключал C-States. Устанавливал ручное напряжение на CPU. Память пробовал@stock, XMP, ручной разгон. Пробовал отключать/включать лимиты CPU в BIOS. Устанавливал различные версии драйверов nvidia, в т.ч. с помощью DDU. Включал режим максимальной производительности в Windows (скрытый) + режим максимальной производительности GPU. Включал кол-во заранее подготовленных кадров - 1. Отключал потоковую оптимизацию. Пробовал устанавливать на процесс игры высокий приоритет. Делал чистую установку Windows версии 1607. Сейчас у меня установлена 1903 и да, система расположена на SSD. SSD установлен в ROG DIMM.2, т.е. прикрыт радиатором. Пробовал отключать дополнительные мониторы, пробовал менять кабель монитора (DP, HDMI 2.0). Ничего не помогает. Проблема проявляет себя ПОЛНОСТЬЮ случайно. К примеру, вчера, после того, как я в очередной раз ковырял BIOS и зафиксировал в нем частоту CPU на отметке 4.7Ггц, захожу в игру... Чудо! Идеальная плавность, все отлично работает! Играл около часа. После, отошел от ПК примерно на час. Сажусь снова - кисельное управление, микростаттеры... Температура GPU в норме. CPU тоже. VRM тоже. К тому же, у меня APEX. Корпус полностью продувается. В общем, вспомнил я кое-что... На 6700K у меня раза три за год, что у меня 240Гц монитор данная проблема всплывала. Но она решалась в миг - простым отключением и включением монитора. Сейчас такой же финт ушами не помогает от слова совсем. Я в отчаянии, что делать не знаю. Господа, спасайте!
_________________ Аудиофил, оверклокер и лучший друг твоей мамы.
Последний раз редактировалось SubL0ck 16.05.2019 5:52, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 12.06.2009 Откуда: хз не помню
SubL0ck писал(а):
Пробовал устанавливать на процесс игры высокий приоритет.
наоборот надо ставить минимальный на игру приоритет. отключить быстрый запуск еще стоит, динамический таймер и hpet, s3 стате сна тоже на время стоит отключить. так же стоит промониторить частоты видео карты в игру и напряжение, иногда при быстром запуски и после сна некоторые биосы не выходят из режима 2D и банально не хватает напряжение.
SubL0ck у вас на обеих видеокартах такое происходит или только на rtx2070 ?
kiberman
kiberman писал(а):
в каком режиме карта pcie?
в первом слоте, показывает 16x
kiberman писал(а):
сколько линий отъели 2 ссд?
где и как это посмотреть?
OLD Hunter поиграл в дум, причем ставил его и на ssd и на обычный винчестер (проблема на обоих носителях), инет отрубил, в метро кстати rtx работает без вылетов. "кисель" в обеих играх, только в думе это сильнее ощущается т.к. он более динамичный.
Если такое везде, включая раб. стол и оффлайн игры - возможно проблема в "грязном" электричестве, то что из розетки - к такому выводу недавно пришли на форуме нвидиа и фиксят это дорогими сетевыми фильтрами.
Можете почитать вот эту тему еще, последние 10 страниц думаю хватит https://forums.geforce.com/default/topi ... ng-me/294/ Все завсегдатаи фиксят свои инпут лаги и плавающие мыши вот этой штукой Furman M-10x E . Уж не знаю реально помогает или очередное плацебо.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
eightylvl писал(а):
фиксят это дорогими сетевыми фильтрами
Советую попробовать взять на недельку с возвратом в магазине хороший стабилизатор напряжения. Лучше всего инверторный - таким вообще плевать, что у них на входе. Я такой поставил и себе (пора указывать такие девайсы в своей конфигурации?). Могу черкнуть модель в ЛС или сюда, если позволят.
Добавлено спустя 2 минуты 41 секунду:
SubL0ck писал(а):
Включал режим максимальной производительности в Windows (скрытый)
Что за зверь?...
Добавлено спустя 2 минуты 18 секунд:
SubL0ck писал(а):
после того, как я в очередной раз ковырял BIOS и зафиксировал в нем частоту CPU на отметке 4.7Ггц, захожу в игру... Чудо! Идеальная плавность, все отлично работает! Играл около часа. После, отошел от ПК примерно на час. Сажусь снова - кисельное управление,
Перезагрузка и выключение ПК на 10 секунд или на 10 минут проблему не решает? Ещё раз изменить частоту ЦПУ в биос попробуйте, сохранитесь, перезагрузитесь, потом верните на ваши 4,7, снова сохранитесь и перезагрузитесь. Отпишитесь: так ксель пропадёт хотя бы на время?
Member
Статус: Не в сети Регистрация: 16.11.2004 Откуда: Санкт-Петербург
helpme111 писал(а):
SubL0ck у вас на обеих видеокартах такое происходит или только на rtx2070 ?
На обеих.
eightylvl писал(а):
если совсем ничего не помогает, то остается пробовать это:
Проблема только в Quake. По-крайней мере в других играх не замечал странностей. Дело не в игре, думаю. Её не апдейтили уже несколько лет, а на 6700K она у меня работала прекрасно. Ну и версию Windows, на которой она хорошо работала я уже устанавливал - без толку.
Alex TOPMAN писал(а):
Перезагрузка и выключение ПК на 10 секунд или на 10 минут проблему не решает? Ещё раз изменить частоту ЦПУ в биос попробуйте, сохранитесь, перезагрузитесь, потом верните на ваши 4,7, снова сохранитесь и перезагрузитесь. Отпишитесь: так ксель пропадёт хотя бы на время?
Попробую. Одно могу сказать точно - перезагрузка, как таковая, не помогает. Проблема носит абсолютно случайный характер. Может два дня тормозить, на третий поработать час или два хорошо. После, безо всяких перезагрузок и прочего начинает работать плохо. Иногда тормозить начинает через несколько минут после старта игры и т.д. Но, попробую Ваш метод чуть позже вечером.
iG0Lka писал(а):
SubL0ck а игра сетевая или кисель даже в офлайниграх?
Привет! Читал твои сообщения еще вчера ночью. Попробовал с отключенной сетевой картой - тоже самое.
_________________ Аудиофил, оверклокер и лучший друг твоей мамы.
там пишут что для включения "ультимативной" схемы, надо выполнить команду powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61
мне при выполнении этой команды выдает: Не удается создать новую схему электропитания Схемы электропитания, подгруппы или определенной настройки не существует.
у меня 1709 если чо...
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Member
Статус: Не в сети Регистрация: 16.11.2004 Откуда: Санкт-Петербург
adept1 писал(а):
А куда у вас системник подключен, на прямую в розетку или через какой-нибудь фильтр?
Через фильтр и всегда был подключен именно так. Я уже думал попробовать без него, сейчас переподключу. Отпишусь.
Добавлено спустя 54 секунды:
iG0Lka писал(а):
у меня 1709 если чо...
У меня на 180х и 1903 работает. Появилась доп. схема под названием "Режим максимальной производительности для высокопроизводительных компьютеров".
Добавлено спустя 42 минуты 51 секунду: С другим фильтром все тоже самое. Напрямую до розетки мне кабель не дотянуть. Да и не в этом дело, я думаю. Во всех остальных играх все нормально.
_________________ Аудиофил, оверклокер и лучший друг твоей мамы.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
SubL0ck писал(а):
Через фильтр и всегда был подключен именно так. Я уже думал попробовать без него, сейчас переподключу. Отпишусь.
Простой фильтр не выравнивает напряжение и не поднимает/опускает его при отклонениях от 220в. Он предотвращает только от overload и overvoltage. Всё остальное он пропускает. БП тоже этим не занимаются - только прямым преобразованием (ровно 220 в ровно 13, 5 и 3.3), т.е. при "кривом" напряжении, результирующие также будут кривые. Почитайте как работает инверторный стабилизатор. Я же не зря предложил именно его. Хоть у друга или на работе возьмите "погонять" на время.
Добавлено спустя 1 минуту 48 секунд:
SubL0ck писал(а):
Во всех остальных играх все нормально
Что же сразу об этом не упомянули? Значит проблема похоже в другом.
Добавлено спустя 3 минуты 39 секунд: Старые библиотеки PhysX доустанавливали? (сам недавно удивился тому, что там что-то когда-то из компонентов, оказывается, отключали, но я, хоть убей, не помню ни одного официального упоминания об этом при выпуске новых видеодрайверов) Устаревшие компоненты DirectX типа Direct Play в винде включены?
Advanced member
Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
Alex TOPMAN вообщето БП компа работает практически как инверторный упс конкретно сначала делает из 220В постоянное напряжение, потом преобразует его в высокочастотное переменное, потом из высокого высокочастотного напряжения, делает низкое высокачастотное, потом выпрямляет и стабилизирует.
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения