Исправление вылетов (рассинхронизация потоков) у SKSE плагинов (HDT)
28.09.2022 7324 870 Автор мода: Mitradis Автор публикации: Mitradis Версия: 1.0 Перевод: Русский

Исправление вылетов (рассинхронизация потоков) у SKSE плагинов (HDT)

Это довольно простое решение казалось бы безвыходной ситуации с CTD у HDT плагина. На первый взгляд вылеты у HDT плагина происходят совершенно случайно и спонтанно и это действительно так. Вы не могли отследить причину, как собственно и я. Проблема этого плагина заключается в постоянном спаме в память, так собственно и работают 90% всех плагинов, но даже не сам спам, а то, что в это время плагин зачем-то постоянно пишет данные в лог. Не нужно быть IT специалистом чтобы знать, что команды ввода-вывода на запись-чтение являются просто катастрофически медленными по сравнению с обменом данными процессор-память или ядра-кеш, и SATA3 или M2 ничем совершенно тут не помогут. Дело в том, что когда плагин решает записать новую строку, потому-что он обнаружил нового NPC, на которого решил повесить поддержку физики и решил сообщить об этом всем на свете, он посылает соответствующие команды ОС. И тут начинается праздник. Все знают о невероятной скорости интерфейсов типа SATA3, M2 и пр. Но мало кто догадывается сколько времени уходит на старт записи, на инициализацию: создания потоков, выделение памяти под операцию, опрос готовности железа, кучу обращений через подсистемы, драйвера и пр. прежде чем запись начнется. Специалисты поправят если что. А в этот момент плагину нужно работать и игре тоже нужно работать, а скорости функций там просто космические по сравнению с этим. Но идет не просто создание нового файла с одной строкой, а добавление строки к существующему, а это затягивает (в сравнении с наносекундами) операцию в разы, т.к. системе нужно считать старый файл и добавить строки и произвести записать. Собственно тут и происходит вылет судя по всему. Некая рассинхронизация в потоках происходит, что-то начинается или заканчивается раньше или позже, не дождавшись чего-то. Я не такой специалист в этом.

Решение: запретить плагинам писать логи. У 99% плагинов такая функция жестко прописана в коде и отключение не поддерживается. Поэтому приходится извращаться. Как решение был выбран самый простой вариант: путь и имя лог файла (доступного в HEX редакторе) заменяется одним символом ? являющимся недопустимым знаком для путей и имен файлов. ОС будет игнорировать такой запрос на самом первом этапе работы с таким запросом и не будет запускать инициализацию записи. Вы можете сделать это самостоятельно (см. пример изображения), все остальное забивается нулями.
 


По главной ссылки плагин HDT. По дополнительной отключение логов для самого SKSE и .dll файлы от распространенных плагинов:
AddItemMenu 3.2
Animation Loading Fix
Armor Rating Rescaled
Barter Fix
Cobb Bug Fixes
Enchantment Reload Fix
Encounter Zones Unlocked
Equip Enchantment Fix
Improvement Names Customized
MoreHUD
NPC AI Behavior Fixes
OSA
PapyrusUtil
Race Menu
Russian Helper
Skyrim Souls
Smart Souls
Unequip Quiver
Which quest's item

Обратите внимание, что так же добавлено "исправление" для файла nioverride.dll, чья версия 3.4.5 вызывает вылеты, в а версии 3.4.4 нет вылетов. Версию nioverride 3.4.4  можно спокойно использовать с версией Race Menu 3.4.5 т.к. она не отличается набором функций. 

Обратите внимание так же на эти исправления: раз, два,

Требования:
Вы должны удалить hdtskyrimmempatch, если он у вас есть и у вас установлен ENB и есть расширение памяти SKSE\SSME\OSA. Почему?
Заменить нужные файлы в папке Директория игры\Data\SKSE\Plugins предварительно создав резервные копии старых.

Удаление:
Восстановить свои резервные копии или скачать оригинальные версии.

Требования:
Skyrim LE
HDT плагины
Внимание: Автор данной темы имеет право удалять комментарии пользователей, если комментарии не соответствуют правилам сайта. Если ВЫ как пользователь считаете, что ваш комментарий был удален без каких-либо на то причин и без основания, то можете написать автору данной темы, и спросить, за что был удален ВАШ комментарий, с предоставлением причины удаления, исходя от правил сайта.
1 2 »
Аватар opostol-sergey
opostol-sergey в 18:11:53, 19.01.2024
Нравится
Не могу скачать, как и другие исправления автора.
Аватар k©קaso√®
k©קaso√® в 18:46:27, 19.01.2024
№42, Администратор
Нравится
я автору данного мода уже написал и уведомил что его моды удалены с гугла и не скачиваются, ждать когда он вернется на сайт и восстановит их )
Аватар Sinder
Sinder в 23:43:03, 09.12.2023
Нравится
Вот это вот очень полезная штука на самом деле.Действительно лишняя нагрузка на игру не нужна,тем более всякими логами-которые для обычного игрока на фиг не нужны.
Аватар serjcybercat
serjcybercat в 17:17:51, 01.12.2023
Нравится
вопрос , заменять надо то что есть ?
и SafetyLoad нужен или не нужен где то читал что не нужен ,
Аватар Mitradis
Mitradis в 14:58:20, 02.11.2023
Нравится
Перезалил. Обратите внимание, что так же добавлено "исправление" для файла nioverride.dll, чья версия 3.4.5 вызывает вылеты, в а версии 3.4.4 нет вылетов. Версию nioverride 3.4.4  можно спокойно использовать с версией Race Menu 3.4.5 т.к. она не отличается набором функций.
Аватар Gutran
Gutran в 18:29:13, 15.01.2023
Нравится
Немного с установкой запарно, некоторые факлы надо в плагины, а некоторые вообще в папку.  Попробовал скайрим запускался, но вот новую игру или загрузить сохранение не удавалось((( Скидывал в папку SKSE плагины, а сам скс кинул в папку с игрой в замену. Из модов у меня фикс кирилицы, оса, HDT барахло, DAR, Fnis. Что у меня стояло то и ставил из папок с заменой, но не сканало. Ещё анти крах мод. В общем пробнул, откатил назад благо заменены были лишь скс и плагинов штук 5-6. Жаль не удалось проверить работу данных фиксов(( Вот список того что у меня из плагинов есть https://ibb.co/BBsxj8C
Аватар Dima19788791
Dima19788791 в 07:35:15, 19.12.2022
Нравится
а на секс лаб так можно добавиь?
Аватар Gmod25
Gmod25 в 16:15:44, 05.12.2022
Нравится
Ну поставил через MO 2, проверил, физика никуда не пропала, да и вылетов пока нет. При том, что я ничего не удалял, MO 2 просто сам заменил файлы. Побегаю, посмотрю, потом отпишусь
Аватар qwerzxcv123zxc
qwerzxcv123zxc в 13:31:43, 28.11.2022
Нравится
говно этот фикс. после установки этого исправления у меня игра перестала включаться и сейчас мне придется все моды которые он "правил"  придется перезакачивать
Аватар uriahheep
uriahheep в 11:31:20, 22.10.2022
Нравится (1)
Ну что сказать Тёзка Виталик.
Прошёл месяц, а может и больше, как я поставил этот Фикс себе на "UNP с физикой полный комплект".
Полёт нормальный. Ранее я бегал и сохранялся после каждых телодвижений. А теперь забываю о сохранениях.
Долго бегаю, а потом думаю, надо же сохраниться.
Мне кажется ты попал в точку. Я не знаю как это работает, но вижу что работает офигительно.
Тем более у меня Скайрим весь построен на телодвижухах, не на статике (деревья, цветы, города и прочая муть) А на монстрах, бойнях, беге, скачках, охоте и тд. Он живой. Одних животных наверно тысячи.
И работает на стареньком компе сейчас лучше чем до Фикса. Хотя мой старенький комп может быть и лучше чем новые Ноуты, т.к. всё же машина с кулерами, охлаждением и прочими прелестями. Короче я не Тех.наладчик компов.
Хотел поменять тот свой "UNP с физикой полный комплект" который выставлял на сайте, да что то лень мне суетиться.
Может легче туда дописать пару строк с ссылкой сюда, чтобы они сами себя обслужили. Всё таки там наверно за 50К скачек.

Вобщем СПАСИБО за фикс. По всем критериям и во времени, вроде это он так работает отлично. Ну больше нечему.
Я в отличие от других, сейчас НЕ сую много всякого говна в игру. Раньше сувал, сейчас всё по минимуму. Десятки тысяч монстров и животных, ну всё по минимуму. По Фен-Шую.
Аватар votblin
votblin в 13:45:10, 07.10.2022
Нравится
Как раз была тестовая глючная подборка модов . Изначально вылет каждые полчаса-час, тормоза, невовремя и неправильно срабатывающие скрипты, особенно во время массовых боев. Вылеты при загрузке локаций, при квиксейвах. Работало кое-как только если каждые полчаса перезапускать Скайрим. Фиксы реально это все смогли убрать. 3 часа игры, в том числе долгий массовый замес, лагов нет, локации грузятся быстро, вылета ни одного.
Аватар Mitradis
Mitradis в 00:12:56, 07.10.2022
Нравится (1)
Добавил фикс для SMP. Забыл про него совсем.
Аватар uriahheep
uriahheep в 11:59:08, 04.10.2022
Нравится
Привет ! А можно в двух словах написать что ты поменял в файле hdtphysicsextensions.dll
Дело в том что он работает с моим "UNP - c физикой полный комплект" и работает как и тот который был ранее.
То есть разницы визуально нет. Как тряслись сиси, так и трясутся.
А вот все вылеты прекратились. Даже вчера провёл в Черноземье целый день, а Черноземье всё таки сыроватая конструкция и то нет вылетов.
Такого не было ранее, тем более на "левых" землях.
Или это так работает hdtphysicsextensionscrashfix.dll ????
Вобщем в двух словах посвяти. Мне это надо знать, чтобы поменять тот свой "UNP - c физикой полный комплект" что на сайте для людей.
Там скачек тысячи. До ума довести да и людям отдать.
Неделю я конечно потестирую. Но нет вылетов. Этого быть не может. Это НОНСЕНС.
Аватар Mitradis
Mitradis в 15:21:42, 04.10.2022
Нравится
В "Решении" написано и я могу лишь повторить тоже самое. С помощью любого HEX редактора открыть нужный dll файл, по поиску ".log" (без ковычек) найти текст (в колонне декодированного текста) указывающий на расположение лога. Заменить самый первый символ этого пути к логу на ? В окне редактирования байтов изменить все остальные символы этого пути к логу на 00 (см. картинку).
Аватар uriahheep
uriahheep в 18:28:01, 02.10.2022
Нравится (1)
Сегодня опять скачал. А оказалось тут теперь всего ДВА файла.
hdtphysicsextensions.dll и hdtphysicsextensionscrashfix.dll
А было 5. Ну я конечно понял, что что то поменялось или было удалено, хотя в описаниях и в версии ничего об этом нет.
Короче. Поставил эти два файла. Файл hdtphysicsextensions.dll заменился.
Смотрю сиськотряс работает. Всё что работало, работает.
А играл я сегодня целый день в Готик-Проект Орфей (примочка к Скайриму), а он немного глючноват.
Но всё равно ни ОДНОГО вылета. Я аж офигел. Даже были моменты что ФПС на НОЛЬ и картинка зависает на пару сек, а потом опять 55-60.
Стопарь есть, а вылета то нет.
Оставил эти два файла. Перешёл в Скайрим и посмотрим, ЧО будет завтра.
А пока СПАСИБО. Те 5 файлов и эти 2 это разные вещи.
Аватар Mayler
Mayler в 11:06:01, 02.10.2022
Нравится
Немного от себя.

Если говорить об основном костяке "hdtPhysicsExtensions", состоящем из 3 файлов, то при замене на ваши физика груди и ягодиц немного меняется, видимо это уже зависит от того, какую физику использует сам пользователь - оригинальную или кастомную (я же использовал кастомную). Поэтому пришлось эти три файла откатить (дело вкуса).

С "Animation Loading Fix" у меня банально вылетает игра при попытки произвести загрузку сейва или просто продолжить игру. Сам автор говорил, что увеличил кол-во лимита анимаций, но со скольких и до скольких - не уточняется (если же это уточнение есть в комментариях  под его файлом - пожалуйста, но в описании я не заметил). Может это проблема моя, т.к. возможно я использую подобный ему плагин и поэтому происходит конфликт (или же лимит не удовлетворяет мое кол-во анимаций). По крайней мере, вроде как, я использовал этот плагин, но сейчас его удалил (сам искал причины вылетов).

Пока вроде как все стабильно, а там еще посмотрим...

upd: И почему-то у вас используется другой .dll-файл для AddItemMenu, т.к. у версии с Nexus'а нет цифры "2" в файле...
Аватар Mitradis
Mitradis в 13:58:37, 02.10.2022
Нравится
я взял его тут сайте. Там есть 3.2 и 3.13, я взял 3.2.
Аватар gardener
gardener в 08:06:51, 02.10.2022
Нравится
О пользе и вреде hdtskyrimmempatch можно спорить до бесконечности, одним он не нужен, другим необходим в зависимости от модов. Если не сложно, то добавьте пожалуйста его в Other SKSE Plugins (кому надо добавят). А ещё плагины JContainers и Dynamic Animation Replacer создают логи, может посмотрите. smile
Аватар Ревизор
Ревизор в 22:36:20, 02.10.2022
Нравится (1)
В ответ на ваш комментарий ниже и на этот. Шутка в том, что чистый 3BBB - эдтакая дикая солянка. Красивая, возможно, но проблемная...
Не буду вдаваться в разглаголы, суть в том, что в 90% случаев 3BBB может и будет требоваться hdtSkinnedMeshPhysics.dll (тот самый SMP)), который в обычных условиях работает через задний проход драугра. И вот именно этому плагину чаще всего и требуется мем патч (на самом деле нет, но это самый простой вариант заставить его работать правильно, а вот разбираться с дальнейшими проблемами уже никому не надо, да)))
На нексусе есть сборка COCO Body (3BBB) с преднастроенной физикой в куче вариантов. Создатель этой солянки реально помешана на "фигуристых" телах и шарит в их производстве wink И, насколько помню, мем патч у неё отличается от обычного (не буду утверждать)))
Если вдруг поставите, можете покидать её плагины мне? Чисто глянуть на досуге.

DAR и JContainers без логов можете забрать отсюда.

Ах, да, почернение лиц у спутников действительно не связано с мем патчем. Пропади у них волосы с физикой, можно было бы подумать, а так - нет.
На счёт "растягивания" частей тела - если дадите мне все свои плагины с припиской hdt... и с их конфигами (включая те, что могут быть в папке hdtSkinnedMeshConfigs) я смогу подсказать более точную причину такого бага, если там действительно замешана физика, а не кривые меши.
1 2 »
avatar
Gamer-mods.ru © 2012 - 2024. Все права защищены. Копирование материалов без указанной активной ссылки на данный сайт запрещено.