воскресенье, 25 октября 2015
Приветствую вас.
Помогите понять, как избавиться от периодических тормозов потока kmixer.sys в играх на ноуте с Windows XP sp3 32bit.
читать дальше
Симптомы таковы - вскорости после запуска игры загрузка процессора подскакивает до 98-100% и FPS игры с периодичностью в 2-3 секунды падает до 3-4 с нормального значения в 15-30. Я посмотрел с помощью Process Explorer и выяснил, что в этот момент сильно загружается процесс system. Дальнейшее исследование выявило тред kmixer.sys. Вот скриншот из Process explorer.

Драйвера стоят родные, с сайта производителя.
Попытка исправить по решению в этой теме показала, что этот патч уже включен в SP3.
На сайте микрософта лежит вопрос о похожей проблеме трёхлетней давности без ответа.
Проверка системы программами DrWeb CureIt, Piriform CCleaner и RegRun Reanimator не помогла выявить и решить проблему (вирусов и руткитов не нашлось, мелкие проблемы были исправлены, но не имели отношения к тормозам).
Подарю 2000 рублей (наличными или переводом) за успешное решение этой проблемы для одной конкретной игры Spelunky (так, чтобы можно было постоянно играть с таким FPS, какой у неё первые 15-30 секунд игры, а не с неиграбельными тормозами). Естественно, игра должна играться, звук и картинка должны присутствовать. Если нужно провести какие-либо тесты или предоставить какие-либо данные - пишите в комментарии, я буду следить.
Спасибо за внимание.
@темы:
Пользовательские настройки Windows,
Ноутбуки,
Глюки Windows,
Установка Windows и драйверов
-
-
25.10.2015 в 14:01Так же для начала сделайте чистку реестра и оптимизацию программой wise care.
Обновите драйвера с drp.su
ну и самый простой вариант заменить файл на другой, скажем от win2k и посмотреть поведение компа.
-
-
25.10.2015 в 14:09-
-
25.10.2015 в 14:22по описанию у него родная система виста.
хп какой сборки ставили, чистый образ микрософт или сборку?
систему нужно проверить - sfc /scannow , это покажет ошибки системных файлов.
проверить диск на ошибки chkdsk c: /f /r
вобщем с первичной диагностикой на пол дня развлечений.
можно развернуть образ на ссд и посмотреть, связанна ли такая загрузка со скоростью диска, может не успевает обрабатывать звук в игре.
-
-
25.10.2015 в 14:29XP ставил чистый образ, потом все обновления и драйвера с сайта dell.
Диск уже SSD, kingston, не вижу смысла проверять диск, так как куплен полгода назад.
вот результаты sfc
C:\Documents and Settings>sfc /scannow
Windows File Protection could not initiate a scan of protected system files.
The specific error code is 0x000004dd [The operation being requested was not performed because the user has not logged on to the network.
The specified service does not exist.
].
-
-
25.10.2015 в 14:33-
-
25.10.2015 в 14:34-
-
25.10.2015 в 14:41ребутнуть комп и попробовать снова.
-
-
25.10.2015 в 14:47We highly DO NOT recommend Wise Care 365 or any other all-in-one snake oil system speeder-upper. Miracles may really happen — but not on Windows.
имхо это объясняет всю статью сразу.
Но дело Ваше.
Я бы поставил чистую систему, драйвера взял с дрп, тк там они обновлённые и проверил так.
естественно с официального образа, не сборку.
Но раз у вас развлечение с уже установленной и рабочей системой, то варианты могут быть разные, их и нужно пробовать.
-
-
25.10.2015 в 14:50Система как раз чистая (имхо), а драйверов более обновлённых в природе не существует (опять же, имхо).
Да, можно попробовать воткнуть старый винт и поставить на него систему с нуля, и потом попробовать вариант с обновлением драйверов с дрп. А ещё варианты есть?
-
-
25.10.2015 в 15:00www.virustotal.com/ru/file/f49a275e091208040b86...
-
-
25.10.2015 в 15:02На дрп скачивается полный пакет (порядка 8 гиг) попробуйте его.
-
-
25.10.2015 в 15:06Эщё вариант - это взять с серверной винды файл, я уже писал про это.
Миксер это драйвер преобразования звука, попробуйте запустить игру без звука, будет ли нагрузка в этом файле?
Насколько я понимаю, после xp этот драйвер не использовался в вин системах, его заменили, но в хп только он, так что реестр, варианты файла, вариант упрощения сложности звука, если игра позволяет,
других вариантов не вижу на вскидку.
-
-
25.10.2015 в 17:29-
-
26.10.2015 в 09:01Можно попробовать снять логи
1) программой Process Monitor, предварительно настроив фильтр только на Spelunky.exe.
2) windbg с расширением logexts, настроив его на модуль fmodex.dll, но в последнем случае требуется опыт работы с отладчиками и тонкая настройка, чтобы дебаг не сильно тормозил сам процесс. В очередь интересно, что за функции вызываются из fmodex.dll, как часто, вызываются ли они, когда лагов нет, и сам стек вызовов (команда kn). Вот ещё какой-то метод трассировки, но я никогда им не пользовался: flylib.com/books/en/3.141.1.168/1/
-
-
28.10.2015 в 11:24Trotil, о, это интересное направление, но есть одна проблема: мне не очень интересно, что тормозит при отсутствии звука в fmodex.dll потому что я хочу играть со звуком. Не уверен, что смогу отлаживать kmixer.sys этим способом сам, впрочем.
Жаль, что не получится поставить чистую систему и тестировать тормоза по мере наката обновлений винды. Потому что стим требует SP3. Но пока что лидирует именно мысль переставить с нуля систему снова и посмотреть, будет ли тормозить.
Поставил игру Hydorah, там тот же fmodex.dll и проч, но она при этом не тормозит. Похоже, что проблема скорее не в системе, а в игре... ((
-
-
28.10.2015 в 11:28Есть мысль, что проблема может быть в формате звука в игре, потом попробую распаковать звуки в wav, если смогу их извлечь.
-
-
28.10.2015 в 12:28сделать лог за 15-20 секунд, попутно отмечая на листочке временные периоды тормозов по точным часам
затем по временным меткам смотреть, чем отличается кусок логов в моменты тормозов и без оных.
Маловероятно, что будет что-то интересное в твоём случае, но вдруг будет? Это самый лёгкий способ диагностики.
> мне не очень интересно, что тормозит при отсутствии звука в fmodex.dll потому что я хочу играть со звуком. Не уверен, что смогу отлаживать kmixer.sys
проблема НЕ в fmodex.dll и НЕ в драйвере kmixer.sys, а проблема в отдельном потоке Spelunky.exe, который по непонятным причинам временами активизируется и часто вызывает функции fmodex.dll или аудиофункции (которые, в свою очередь, активизируют системный драйвер kmixer.sys)
Остаётся надеяться, что природа этих тормозов одинакова.
Как отлаживать частые вызовы драйвера? Честно - не знаю. Несмотря на то, что мне часто приходится отлаживать проги без исходных кодов по рабочей необходимости (у нас бывает переезды на новое железо, на новые ОС, и старые программы отказываются работать), я посмотрел инфу по драйверам и WDM и понял, что там сам чёрт ногу сломит... Крайне специфическая область.
А если ты попробуешь отладить процесс pid=4 (System), тебе будет оказано в доступе. Не уверен, что это легко будет сделать.
А вот отладить отдельный поток Spelunky.exe - более посильная задача.
И даже более-менее понятно, что на первых порах ловить.
Ещё можно понажимать refresh проблемного потока в моменты тормозов и без оных (перед этим кнопку stack из скриншота), трассировка будет меняться, м.б. это даст какие-то зацепки.
-
-
29.10.2015 в 21:55