Имя пользователя: Hardwin
Название темы Проблема с мониторами 240гц
Список используемых аддонов нету
Описание проблемы Привет! Хочу скинуть вам готовое решение проблемы с локом на 128 фпс и рваной картинкой на 240 Гц мониторах, чтобы вы могли зашить это сразу в лаунчер или в дефолтный конфиг для всех игроков.
Суть проблемы:
Зашел играть на чистом клиенте без единого аддона, монитор 240 Гц, проц новый гибридный Intel Core Ultra 7 265K (с P и E ядрами, та же история будет на всех Intel 12/13/14 серии и некоторых Ryzen). В игре намертво встал лок ровно на 128 фпс. Если прописать в Config.wtf руками SET maxFPS "0", то счетчик показывает 300-400 фпс, но на глаз и по движению камеры картинка все равно остается дерганой, будто игра идет в те же 128 герц.
Полез копаться в WTF\Config.wtf и папку Logs, нашел в чем причина:
1. Из-за того что у современных процев есть производительные (P) и энергоэффективные (E) ядра, старый движок 3.3.5 при запуске заваливает свой внутренний тест синхронизации ядер и сам прописывает в Config.wtf строчку:
SET timingTestError "3"
Как только появляется эта ошибка, клиент вырубает нормальный высокоточный таймер и падает на старый системный таймер винды (timingMethod 1), который тикает ровно 128 раз в секунду (шаг 7.81 мс). Из-за этого:
- со стандартным лимитером фпс режется ровно в 128;
- даже если снять лимит через maxFPS 0 и получить 400 фпс, внутренние часы движка (анимации, поворот камеры мышкой) все равно обновляются только 128 раз в секунду, то есть каждые 2-3 кадра рисуются в одном и том же положении и на 240 Гц мониторе идут дикие микрофризы.
2. Второй момент — в лаунчере у меня было выбрано 240 Гц и макс. дистанция камеры, но в самом Config.wtf все равно оставалось SET gxRefresh "60" (в Logs\gx.log при этом сыпало ошибку ValidateFormatMonitor(): invalid refresh rate 60). Глянул конфиг лаунчера в AppData — там по умолчанию стоит "displayOverride": false, из-за чего настройки герцовки из лаунчера вообще не записываются в Config.wtf.
Как я это у себя полностью вылечил в Config.wtf (сейчас в Оргриммаре стабильные и реально плавные 240 фпс):
SET timingTestError "0"
SET timingMethod "2"
SET processAffinityMask "255"
SET gxRefresh "240"
SET maxFPS "240"
SET Sound_EnableHardware "0"
Поясню почему именно так и что вам стоит добавить в лаунчер или в вашу ClientExt.dll / Extension.dll:
- SET timingMethod "2" принудительно включает высокоточный таймер (QueryPerformanceCounter), и игра перестает лочиться на 128 Гц даже если до этого сработал timingTestError.
- SET processAffinityMask "255" вешает процесс игры строго на первые 8 потоков (производительные P-ядра), чтобы винда не кидала потоки вова на медленные E-ядра и ошибка timingTestError "3" вообще не вылезала.
- SET Sound_EnableHardware "0" убирает попытку инициализировать мертвый аппаратный DirectSound3D на Win 10/11 (в SESound.log иначе при каждом старте пишет 0 Hardware Channels Available и принудительно откатывается на софт). У вас сейчас по дефолту стоит "1".
- В лаунчере стоит починить передачу герцовки в Config.wtf (чтобы выбранные 144/240 Гц реально прописывались в SET gxRefresh), либо добавить галочку "Фикс 128 FPS / плавности для новых процессоров и 144/240 Гц", которая будет сама прописывать timingMethod "2", timingTestError "0" и маску ядер.
Попутно, пока смотрел логи в папке Logs, заметил еще пару мелочей в сборке клиента:
- В FrameXML.log при каждом входе сыпет ошибки парсинга XML на текстуры в папке Custom_HeroicKeystoneTracker (ChallengeMode.BLP, ChallengeModeHud.BLP, ObjectiveTracker.BLP и CommonIcons.blp) — видимо их случайно засунули в список загрузки .xml/.toc вместе со скриптами.
- В базе аддонов лаунчера аддон Auctionator записан с опечаткой как Auictionator.
Надеюсь, инфа пригодится, потому что сейчас почти у всех, кто заходит на сервер с новым железом и мониторами 144-240 Гц, игра по дефолту работает через кривой таймер на 128 Гц, и многие просто думают, что это клиент лагает.
Шаги для воспроизведения проблемы 1-2-3-4-5
Прикрепление описание ошибки кек
Скриншот (НЕТ ОТВЕТА НА ВОПРОС)
Я ознакомился(-ась) с правилами форума и правилами написания багрепортов. Да
Название темы Проблема с мониторами 240гц
Список используемых аддонов нету
Описание проблемы Привет! Хочу скинуть вам готовое решение проблемы с локом на 128 фпс и рваной картинкой на 240 Гц мониторах, чтобы вы могли зашить это сразу в лаунчер или в дефолтный конфиг для всех игроков.
Суть проблемы:
Зашел играть на чистом клиенте без единого аддона, монитор 240 Гц, проц новый гибридный Intel Core Ultra 7 265K (с P и E ядрами, та же история будет на всех Intel 12/13/14 серии и некоторых Ryzen). В игре намертво встал лок ровно на 128 фпс. Если прописать в Config.wtf руками SET maxFPS "0", то счетчик показывает 300-400 фпс, но на глаз и по движению камеры картинка все равно остается дерганой, будто игра идет в те же 128 герц.
Полез копаться в WTF\Config.wtf и папку Logs, нашел в чем причина:
1. Из-за того что у современных процев есть производительные (P) и энергоэффективные (E) ядра, старый движок 3.3.5 при запуске заваливает свой внутренний тест синхронизации ядер и сам прописывает в Config.wtf строчку:
SET timingTestError "3"
Как только появляется эта ошибка, клиент вырубает нормальный высокоточный таймер и падает на старый системный таймер винды (timingMethod 1), который тикает ровно 128 раз в секунду (шаг 7.81 мс). Из-за этого:
- со стандартным лимитером фпс режется ровно в 128;
- даже если снять лимит через maxFPS 0 и получить 400 фпс, внутренние часы движка (анимации, поворот камеры мышкой) все равно обновляются только 128 раз в секунду, то есть каждые 2-3 кадра рисуются в одном и том же положении и на 240 Гц мониторе идут дикие микрофризы.
2. Второй момент — в лаунчере у меня было выбрано 240 Гц и макс. дистанция камеры, но в самом Config.wtf все равно оставалось SET gxRefresh "60" (в Logs\gx.log при этом сыпало ошибку ValidateFormatMonitor(): invalid refresh rate 60). Глянул конфиг лаунчера в AppData — там по умолчанию стоит "displayOverride": false, из-за чего настройки герцовки из лаунчера вообще не записываются в Config.wtf.
Как я это у себя полностью вылечил в Config.wtf (сейчас в Оргриммаре стабильные и реально плавные 240 фпс):
SET timingTestError "0"
SET timingMethod "2"
SET processAffinityMask "255"
SET gxRefresh "240"
SET maxFPS "240"
SET Sound_EnableHardware "0"
Поясню почему именно так и что вам стоит добавить в лаунчер или в вашу ClientExt.dll / Extension.dll:
- SET timingMethod "2" принудительно включает высокоточный таймер (QueryPerformanceCounter), и игра перестает лочиться на 128 Гц даже если до этого сработал timingTestError.
- SET processAffinityMask "255" вешает процесс игры строго на первые 8 потоков (производительные P-ядра), чтобы винда не кидала потоки вова на медленные E-ядра и ошибка timingTestError "3" вообще не вылезала.
- SET Sound_EnableHardware "0" убирает попытку инициализировать мертвый аппаратный DirectSound3D на Win 10/11 (в SESound.log иначе при каждом старте пишет 0 Hardware Channels Available и принудительно откатывается на софт). У вас сейчас по дефолту стоит "1".
- В лаунчере стоит починить передачу герцовки в Config.wtf (чтобы выбранные 144/240 Гц реально прописывались в SET gxRefresh), либо добавить галочку "Фикс 128 FPS / плавности для новых процессоров и 144/240 Гц", которая будет сама прописывать timingMethod "2", timingTestError "0" и маску ядер.
Попутно, пока смотрел логи в папке Logs, заметил еще пару мелочей в сборке клиента:
- В FrameXML.log при каждом входе сыпет ошибки парсинга XML на текстуры в папке Custom_HeroicKeystoneTracker (ChallengeMode.BLP, ChallengeModeHud.BLP, ObjectiveTracker.BLP и CommonIcons.blp) — видимо их случайно засунули в список загрузки .xml/.toc вместе со скриптами.
- В базе аддонов лаунчера аддон Auctionator записан с опечаткой как Auictionator.
Надеюсь, инфа пригодится, потому что сейчас почти у всех, кто заходит на сервер с новым железом и мониторами 144-240 Гц, игра по дефолту работает через кривой таймер на 128 Гц, и многие просто думают, что это клиент лагает.
Шаги для воспроизведения проблемы 1-2-3-4-5
Прикрепление описание ошибки кек
Скриншот (НЕТ ОТВЕТА НА ВОПРОС)
Я ознакомился(-ась) с правилами форума и правилами написания багрепортов. Да
- Категория бага
- Интерфейс
