Вылет «Out of Memory» |
||||||||||||
Страна: Украина Город: Мелитополь Дата регистрации: 07.08.2014 |
||||||||||||
IP-адрес: Страна: Украина Город: Кривой Рог Дата регистрации: 19.10.2015 |
||||||||||||
IP-адрес: Страна: Украина Город: Мелитополь Дата регистрации: 07.08.2014 |
||||||||||||
IP-адрес: Страна: Город: Дата регистрации: 25.07.2018 |
||||||||||||
IP-адрес: Страна: Украина Город: Мелитополь Дата регистрации: 07.08.2014 |
||||||||||||
IP-адрес: Страна: Город: Дата регистрации: 05.08.2018 |
||||||||||||
IP-адрес: Страна: Украина Город: Мелитополь Дата регистрации: 07.08.2014 |
||||||||||||
IP-адрес: Страна: Город: Дата регистрации: 05.08.2018 |
||||||||||||
IP-адрес: Страна: Украина Город: Мелитополь Дата регистрации: 07.08.2014 |
||||||||||||
IP-адрес: Страна: Город: Дата регистрации: 05.08.2018 |
Борьба с out of memory.
Способ работает только на API DirectX версий 10 (R3) и выше. Также на оригинальных движках трилогий.
Текстуры теперь будут храниться в видеопамяти, не загружая оперативную.
Если видеопамять кончилась, то текстуры начинают грузиться в ОЗУ.
Так что правку рекомендую включать всем, однако хороший результат будет у владельцев 4 гб видеопамяти, а самый лучший от 6 гб.
Эх, наконец-то свершилось, 32 битные моды больше не вылетает по памяти, ура! Максимальные настройки.
Форумчанин под ником Krt0ki он же @mortan рассказал о «переключений» текстур с ОЗУ на видеопамять, об этом способе ему поведал сам «Shoker». Это вещь была сделана GSC для оптимизаций под слабые карты, в те «бородатые года в основном были 256-512мб GDDR затычки, однако ОЗУ было более 1.5 гб.
Самое странное, что за такое продолжительное время, а именно начиная с 2009 года никто об этом не рассказывает, выглядит очень странно, такое ощущение что разработчики нас отгораживают от рептилоидов просто забывают и не рассказывают про этот про способ.
Cпособ немного улучшит положение у владельцев ПК с видеокартами у которых памяти менее 1 ГБ, станет поменьше вылетов по памяти, некоторые непроходимые моменты теперь можно пройти.
Чтобы включить режим хранения текстур видеопамяти нужно прописать в ярлык: -no_staging
Для примера, я возьму мод Dead Air. Должно получится так:
Не забудьте, ярлык должен быть создан от файла «xrEngine.exe».
Отследить можно через мониторинг в Task manager или использовать сторонние программы, например MSI afterburner или FPS Monitor.
Имея видеокарту GTX 1070 8gb я забыл о вылетах по памяти…
Изменено 6 сентября, 2020 пользователем [Humboldt]
Данное решение подходит для тех у кого игра беспричинно вылетает(например при попытке сохраниться/загрузиться), если в настройках графики выставлено динамическое освещение.
Запуск игры, работа в течение 5-10 минут потом спонтанный вылет на рабочий стол из игры, при нажатии Esc или при попытке записи. Знакомые многим симптомы.
Причина вылетов банальна — в логах игры «out of memory», что означает недостаточно памяти. У меня общий объем доступной Windows памяти целых 6 GB (2 GB + 4 GB — подкачки). Приложение завершается аварийно, как только объем используемой операционной системой памяти становится равным ровно 2 GB. Попытка приложения запросить чуть больше — здравствуй рабочий стол.
xrEngine.exe (запускаемый файл Сталкера) 32 битное и собрано оно без флага линковщика /LARGEADDRESSAWARE. Этот волшебный флаг позволяет 32 битным приложениям адресовать не 2 GB, а 4 GB на 64 разрядной версии Windows и 3 GB на 32 разрядной версии Windows (если 32 битная операционная система запущена с ключом /3GB).
Короче разработчики о флаге /LARGEADDRESSAWARE не догадываются и мы имеем ограничение на объем памяти 2 GB. Можно пересобрать приложение с этим флагом, а можно в текущем exe установить этот флаг с помощью утилиты editbin.exe, которая входит в состав Microsoft Visual Studio2005.
Итак решение проблемы вылетов:
1) Я уже изменил xrEngine.exe(v1.5.03) вот он: http://rapidshare.com/files/141593003/xrEngine.exe.html
Сделайте бекап оригинального xrEngine.exe на всякий случай.
2) -Для 32 битных Windows XP в boot.ini прописать ключ загрузки: /3GB.
-Для 32 бит Vista, выполнить команду с правами администратора: BCDEDIT /Set IncreaseUserVa 3072
и перезагрузится.
Говорю сразу: Я не автор этого решения, а нашёл его случайно. Мучался я долго, в основном с изменением xrEngine.exe.
И внимание!!!!!!!!!!!: Данное решение подходит ТОЛЬКО если использовать небезисвестный NoDVD(ну вы поняли: protect.dll и мини образ). Почему??? Потому, что Старфорс проверяет исполняемый файл на md5 сумму и если он изменён — ошибка.
В моём случае это помогло. Перманентные вылеты прекратились. Остались только вылеты из-за кривых скриптов.
Это уже вторая тема, на предыдущую никто внимания не обратил, а зря. Пробуйте и отписывайтесь.
Пожалуста соблюдайте правила форума.
Борьба с вылетом, ошибкой в модах игры сталкер aka out of memory.
«Произошла ошибка при попытке копирования файла Out of memory»
Способ работает только на API DirectX версий 10 (R3) и выше. Также на оригинальных движках трилогий.
Текстуры теперь будут храниться в видеопамяти, не загружая оперативную.
Если видеопамять кончилась, то текстуры начинают грузиться в ОЗУ.
Так что правку рекомендую включать всем, однако хороший результат будет у владельцев 4 гб видеопамяти, а самый лучший от 6 гб.
— Эх, наконец-то свершилось, 32 битные моды больше не вылетает по памяти, ура! Максимальные настройки.
Форумчанин под ником Krt0ki он же @mortan рассказал о «переключений» текстур с ОЗУ на видеопамять, об этом способе ему поведал сам «Shoker». Это вещь была сделана GSC для оптимизаций под слабые карты, в те «бородатые года в основном были 256-512мб GDDR затычки, однако ОЗУ было более 1.5 гб.
— Самое странное, что за такое продолжительное время, а именно начиная с 2009 года никто об этом не рассказывает, выглядит очень странно, такое ощущение что разработчики нас отгораживают от рептилоидов просто забывают и не рассказывают про этот про способ.
Cпособ немного улучшит положение у владельцев ПК с видеокартами у которых памяти менее 1 ГБ, станет поменьше вылетов по памяти, некоторые непроходимые моменты теперь можно пройти.
Чтобы включить режим хранения текстур видеопамяти нужно прописать в ярлык: -no_staging
Не забудьте, ярлык должен быть создан от файла «xrEngine.exe».
Отследить можно через мониторинг в Task manager или использовать сторонние программы, например MSI afterburner или FPS Monitor.
От автора: Имея видеокарту GTX 1070 8gb я забыл о вылетах по памяти…
Статус:
Вылет «Out of Memory . Memory request: …… K».
Недостаточно памяти. Запрос памяти: ….
Здесь главное нужно понимать, что 32-битные Windows выделяют под процесс ( а запуск Сталкера – это процесс) только 2 Гига памяти. И не байтом больше, даже если у Вас в компьютере установлено 8 Гигов.
А 64-битные Windows выделяют под процесс столько памяти – «сколько нужно процессу».
Здесь два варианта решения проблемы:
1. У Вас в компьютере установлено 2 Гига памяти RAM.
Снижайте настройки рендера вплоть до статического. Убирайте плотность травы, качество теней и т.д. до минимума. Если не помогает, то убирайте все надстройки игры (озвучки, атмосферы, музыку, аномалии, мины и т. д.). Если и это не помогает, то вам дорога в магазин докупать модули памяти.
2. У Вас в компьютере установлено 4 Гига памяти RAM или больше.
А) Установить 64-битную Windows.
Б) «Заставить» 32-битную Windows выделить под процесс не 2, а 3 Гига памяти, за счет урезания памяти ядра( сама система, драйвера и т.д.).
Советую запустить диспетчер задач, перейти на вкладку «Быстродействие» и посмотреть на «Память» . Если меньше 1 Гига, то начинаем действовать. ( Если больше – то выгружайте из памяти все побочные процессы кроме ядра системы, видео и аудио драйверов).
Вот пример вылета:
Код
* [win32]: free[65320 K], reserved[98608 K], committed[1933160 K]
* [ D3D ]: textures[687435 K]
* [x-ray]: crt heap[454760 K], process heap[9774 K], game lua[60032 K], render[5882 K]
* [x-ray]: economy: strings[54097 K], smem[11933 K]
FATAL ERROR
[error]Expression : fatal error
[error]Function : out_of_memory_handler
[error]File : D:prog_repositorysourcestrunkxrCorexrDebugNew.cpp
[error]Line : 336
[error]Description :
[error]Arguments : Out of memory. Memory request: 3629 K
Здесь видно , что [win32]: free[65320 K] – свободная память 65,32 Мбайта, а
под процесс уже занято committed[1933160 K] — 1,93 Гига. То есть свободной памяти практически нет.
Решаем проблему:
Windows XP 32 bit
1. На системном диске находим и открываем блокнотом файл boot.ini.
Файл системный, поэтому будет скрыт, необходимо будет в свойствах
проводника включить отображение системных файлов.
2. Сделайте копию boot.ini, откройте файл boot.ini, выберите «Сохранить как», имя файла boot.ini.bak.
3. С командной строки (зайти в «Старт Меню»->«Выполнить…» или нажать Win+R) выполните команду:
bootcfg /raw «/3GB /userva=2500» /A /ID 1
где «1» — это номер конфигурации в файле boot.ini. По умолчанию есть всего одна конфигурация.
Если вы продвинутый пользователь, то параметры «/3GB /userva=2500» можно добавить самостоятельно
в файл boot.ini с помощью текстового редактора.
4. После применения настроек необходимо перегрузить компьютер.
В случае неудачи с загрузкой ОС, придётся зайти в безопасном режиме и восстановить настройки из
бекапа, просто переименовав файл boot.ini.bak в boot.ini. Windows Vista/Seven 32bit:
1. Запускаем командную строку (cmd.exe) с привилегиями администратора (правой кнопкой
по ярлыку/запуск от имени администратора). В появившемся окне пропишите:
bcdedit /export «C:BCDBackup»
нажать «enter»
bcdedit /set IncreaseUserVa 2500
нажать «enter».
2. Перезагрузить компьютер.
3. Запускаем игру.
Если ОС удачно не загрузилась, придётся зайти в безопасном режиме и выполнить первый
пункт прописав в командной строке:
bcdedit /import «C:BCDBackup»
[b]А вот лог после указанных выше действий при выходе из игры:
Код
* [win32]: free[1197900 K], reserved[85456 K], committed[1862308 K]
Под процесс занято (committed[1862308 K]) 1,86 Гига и еще свободно 1,197Гига.
$