Killing Floor: low-memory профиль клиента - фикс CreateTexture и out of video memory

Killing Floor: low-memory профиль клиента - фикс CreateTexture и out of video memory

  • Тема закрыта
  • Вы не можете ответить в тему

Killing Floor: low-memory профиль клиента - фикс CreateTexture и out of video memory Практичный INI-профиль клиента Killing Floor для падений CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY, Virtual memory exhausted и крашей при смене карт.

Geekrainian #1

    • Группа: Администратор
    • Сообщений: 974

    Отправлено:

    Killing Floor: low-memory профиль клиента

    Этот гайд для игроков, у которых клиент Killing Floor падает с ошибками памяти, особенно на кастомных картах, при смене карты или после нескольких карт подряд.

    Цель профиля - стабильность. Настройки ниже уменьшают precache, давление текстур, нагрузку звука и тяжелую визуальную детализацию. Картинка станет проще, зато клиенту будет легче переживать загрузку и смену карт.

    Какие ошибки лечит этот профиль

    Ошибка или симптомЧто обычно означает
    CreateTexture failed(8007000E)Клиент не смог выделить память под текстуру
    D3DERR_OUTOFVIDEOMEMORYDirect3D не смог выделить достаточно видеопамяти
    IDirect3DVertexBuffer9::Lock failedРендер не смог заблокировать или создать D3D buffer
    CreateVertexBuffer failedНе удалось создать mesh/render buffer
    Virtual memory exhausted32-bit процесс уперся в лимит адресного пространства
    Виртуальная память исчерпанаТо же самое, но в русской локализации
    General protection fault при загрузке texture, sound, static mesh или mapPackage не загрузился, пока клиент был под давлением памяти

    Важно: Killing Floor работает на старом 32-bit движке Unreal Engine 2. Сервер может снизить шанс падений, убрав слишком тяжелые карты из ротации, но полностью убрать лимит памяти клиента сервер не может.

    Короткий чеклист

    1. Закрой игру.
    2. Найди клиентский KillingFloor.ini.
    3. Сделай backup.
    4. Отключи precache звука и рендера.
    5. Понизь детализацию текстур до Normal.
    6. Включи bNeverPrecache=true.
    7. Сохрани файл и проверь несколько смен карт.

    Где находится KillingFloor.ini

    Тип установкиПуть
    SteamC:\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini
    Non-Steam или portable client<папка Killing Floor>\System\KillingFloor.ini
    Windows VirtualStore%LOCALAPPDATA%\VirtualStore\Program Files (x86)\Steam\steamapps\common\KillingFloor\System\KillingFloor.ini

    Если Steam установлен в другую папку, открой Steam, найди Killing Floor, выбери управление локальными файлами и перейди в папку System.

    Backup перед изменениями

    Перед правкой скопируй:

    KillingFloor.ini

    в:

    KillingFloor.ini.backup

    Если что-то станет хуже или картинка окажется слишком плохой, верни backup и перезапусти игру.

    Рекомендуемый low-memory профиль

    Открой KillingFloor.ini, найди указанные секции и измени только перечисленные ключи. Если ключа нет, добавь его внутрь нужной секции.

    1. Engine cache

    Секция:

    [Engine.GameEngine]

    Рекомендуемо:

    CacheSizeMegs=32

    Не повышай это значение для решения out-of-memory. Большой cache может ухудшить ситуацию, потому что 32-bit клиенту и так не хватает адресного пространства.

    2. Audio precache

    Секция:

    [ALAudio.ALAudioSubsystem]

    Рекомендуемо:

    UsePrecache=False
    LowQualitySound=True
    Channels=24

    Что это дает:

    • UsePrecache=False уменьшает предварительную загрузку звуков.
    • LowQualitySound=True снижает нагрузку от аудио-ресурсов.
    • Channels=24 уменьшает число одновременных звуковых каналов.

    Если звук начинает слишком часто пропадать, попробуй вернуть:

    Channels=32

    3. Direct3D 9 renderer

    Большинство игроков используют D3D9. Это самая важная секция для падений по текстурам и видеопамяти.

    Секция:

    [D3D9Drv.D3D9RenderDevice]

    Рекомендуемо:

    DetailTextures=False
    HighDetailActors=False
    SuperHighDetailActors=False
    UsePrecaching=False
    UseTrilinear=False
    ReduceMouseLag=False
    UseCubemaps=False
    UseCompressedLightmaps=True
    UseVSync=False
    LevelOfAnisotropy=0
    DetailTexMipBias=0.0
    DefaultTexMipBias=0.0

    Самые важные строки:

    UsePrecaching=False
    HighDetailActors=False
    SuperHighDetailActors=False
    ReduceMouseLag=False

    Примечания:

    • UsePrecaching=False уменьшает предварительную загрузку render-ресурсов.
    • ReduceMouseLag=False может снизить давление на D3D buffers.
    • UseCompressedLightmaps=True обычно лучше для памяти, чем uncompressed lightmaps.
    • DefaultTexMipBias=0.0 - безопасное стартовое значение. Если клиент все еще падает, попробуй 0.5 или 1.0; текстуры станут заметно мыльнее.

    4. OpenGL renderer

    Меняй эту секцию только если точно играешь через OpenGL.

    Секция:

    [OpenGLDrv.OpenGLRenderDevice]

    Рекомендуемо:

    DetailTextures=False
    HighDetailActors=False
    SuperHighDetailActors=False
    UsePrecaching=False
    UseCompressedLightmaps=True
    UseTrilinear=False
    ReduceMouseLag=False
    LevelOfAnisotropy=0

    Если ты не знаешь, используешь ли OpenGL, скорее всего, у тебя D3D9. Тогда эту секцию можно не трогать.

    5. Visual detail

    Секция:

    [WinDrv.WindowsClient]

    Рекомендуемо:

    Decals=False
    Coronas=False
    DecoLayers=False
    Projectors=False
    NoDynamicLights=True
    TextureDetailInterface=Normal
    TextureDetailTerrain=Normal
    TextureDetailWeaponSkin=Normal
    TextureDetailPlayerSkin=Normal
    TextureDetailWorld=Normal
    TextureDetailRenderMap=Normal
    TextureDetailLightmap=Normal
    WeatherEffects=False
    DrawDistanceLOD=0.700000

    Что это дает:

    • TextureDetail...=Normal снижает размер загружаемых texture resources.
    • Projectors=False и Decals=False помогают на картах с большим количеством следов, крови, проекций и эффектов.
    • WeatherEffects=False помогает на кастомных картах с тяжелыми погодными эффектами.
    • DrawDistanceLOD=0.700000 уменьшает дальнюю детализацию.

    Если картинка стала слишком плохой, можно попробовать:

    DrawDistanceLOD=0.850000

    6. Level loading и preload

    Секция:

    [Engine.LevelInfo]

    Рекомендуемо:

    PhysicsDetailLevel=PDL_Medium
    MeshLODDetailLevel=MDL_Medium
    bLowSoundDetail=True
    DecalStayScale=0.0
    bNeverPrecache=true
    bShouldPreload=False
    bDesireSkinPreload=False

    Самая важная строка:

    bNeverPrecache=true

    Она снижает риск out-of-memory на загрузке уровня. Возможный минус - микрофризы при первом появлении некоторых врагов, оружия или эффектов.

    Полный copy-paste профиль

    Не удаляй весь KillingFloor.ini. Найди существующие секции и выставь в них такие значения.

    [Engine.GameEngine]
    CacheSizeMegs=32
    
    [ALAudio.ALAudioSubsystem]
    UsePrecache=False
    LowQualitySound=True
    Channels=24
    
    [D3D9Drv.D3D9RenderDevice]
    DetailTextures=False
    HighDetailActors=False
    SuperHighDetailActors=False
    UsePrecaching=False
    UseTrilinear=False
    ReduceMouseLag=False
    UseCubemaps=False
    UseCompressedLightmaps=True
    UseVSync=False
    LevelOfAnisotropy=0
    DetailTexMipBias=0.0
    DefaultTexMipBias=0.0
    
    [WinDrv.WindowsClient]
    Decals=False
    Coronas=False
    DecoLayers=False
    Projectors=False
    NoDynamicLights=True
    TextureDetailInterface=Normal
    TextureDetailTerrain=Normal
    TextureDetailWeaponSkin=Normal
    TextureDetailPlayerSkin=Normal
    TextureDetailWorld=Normal
    TextureDetailRenderMap=Normal
    TextureDetailLightmap=Normal
    WeatherEffects=False
    DrawDistanceLOD=0.700000
    
    [Engine.LevelInfo]
    PhysicsDetailLevel=PDL_Medium
    MeshLODDetailLevel=MDL_Medium
    bLowSoundDetail=True
    DecalStayScale=0.0
    bNeverPrecache=true
    bShouldPreload=False
    bDesireSkinPreload=False

    Более агрессивный профиль

    Используй только если рекомендуемый профиль помог, но не решил падения полностью.

    [WinDrv.WindowsClient]
    TextureDetailInterface=Lower
    TextureDetailTerrain=Lower
    TextureDetailWeaponSkin=Lower
    TextureDetailPlayerSkin=Lower
    TextureDetailWorld=Lower
    TextureDetailRenderMap=Lower
    TextureDetailLightmap=Lower
    DrawDistanceLOD=0.500000
    MinDesiredFrameRate=45.000000
    
    [D3D9Drv.D3D9RenderDevice]
    DefaultTexMipBias=1.0
    DetailTexMipBias=1.0

    Минусы:

    • текстуры станут заметно мыльными;
    • дальние объекты будут хуже выглядеть;
    • возможен более заметный pop-in.

    Экспериментальные NVIDIA и video memory настройки

    Это необязательный шаг. Пробуй только если:

    • у тебя NVIDIA GPU;
    • основной low-memory профиль не помог;
    • ты понимаешь, как откатить изменения.

    Секция:

    [Engine.Engine]

    Экспериментально:

    NVidiaGPU=True
    DetectedVideoMemory=1024

    Для старых или слабых GPU лучше:

    DetectedVideoMemory=512

    Не ставь огромное значение только потому, что у видеокарты много VRAM. 32-bit игра все равно может упереться в лимит памяти процесса.

    Large Address Aware

    Large Address Aware, или LAA, это флаг Windows executable, который может позволить 32-bit процессу использовать больше виртуального адресного пространства на 64-bit Windows.

    Для старых Unreal Engine 2 игр это иногда помогает, но это не серверный фикс и не обычная настройка INI. Это изменение executable файла клиента.

    Рассматривай LAA только если все пункты верны:

    • у тебя 64-bit Windows;
    • low-memory профиль уменьшил падения, но не убрал их полностью;
    • ты часто падаешь на тяжелых кастомных картах;
    • ты понимаешь, как восстановить оригинальный KillingFloor.exe.

    Риски:

    • Steam может вернуть оригинальный executable при verify или update.
    • Некоторые anti-cheat или серверные конфигурации могут негативно относиться к измененному executable.
    • Non-Steam builds отличаются, поэтому универсальной инструкции для всех клиентов нет.
    • Сохраняй чистый backup оригинального executable.

    Откат:

    1. Закрой игру.
    2. Для Steam запусти проверку файлов.
    3. Для Non-Steam верни backup executable или переустанови клиент из исходного архива/инсталлера.

    Что этот профиль не исправит

    Профиль уменьшает memory pressure. Он не превращает Killing Floor в 64-bit игру и не гарантирует фикс, если проблема в:

    • битой или плохо собранной кастомной карте;
    • отсутствующих redirect downloads;
    • поврежденном .utx, .uax, .usx, .ukx package;
    • отключенном или слишком маленьком Windows pagefile;
    • нестабильном GPU driver;
    • перегреве или нестабильном overclock;
    • слишком тяжелой карте, которая не помещается в лимиты клиента;
    • длинной игровой сессии без перезапуска клиента.

    Дополнительные проверки Windows

    Если падения остаются:

    1. Убедись, что Windows pagefile включен.
    2. Оставь несколько GB свободного места на системном диске.
    3. Закрой браузер, Discord overlay, запись видео, другие игры и тяжелые фоновые программы.
    4. Обнови GPU driver.
    5. Если новый driver нестабилен, попробуй одну из старых стабильных версий.
    6. Перезапускай Killing Floor после нескольких тяжелых кастомных карт.
    7. Не заходи сразу на тяжелую карту, если клиент уже долго запущен.

    Как тестировать

    После изменений:

    1. Запусти Killing Floor.
    2. Зайди на сервер с обычной картой.
    3. Сыграй одну карту.
    4. Смени карту на кастомную.
    5. Смени еще одну карту.
    6. Если все стабильно, зайди на сервер или карту, где раньше были падения.

    Хороший результат - клиент переживает несколько смен карт без CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY и Виртуальная память исчерпана.

    Плохой результат - клиент падает на одной и той же карте при каждой загрузке, особенно если лог указывает на один и тот же texture, sound, static mesh или map package. В таком случае проблема может быть в конкретной карте или package.

    Откат INI-настроек

    Если картинка стала слишком плохой или стало хуже:

    1. Закрой Killing Floor.
    2. Удали измененный KillingFloor.ini.
    3. Переименуй KillingFloor.ini.backup обратно в KillingFloor.ini.
    4. Запусти игру.

    Если backup не был сделан:

    • Steam: запусти verify game files.
    • Non-Steam: восстанови файл из инсталлера или архива.
    • В некоторых сборках можно удалить KillingFloor.ini, и игра создаст новый файл при старте.

    Короткое сообщение для игроков

    Админ сервера может отправлять игрокам такой текст:

    Если Killing Floor падает с CreateTexture failed, D3DERR_OUTOFVIDEOMEMORY или "Виртуальная память исчерпана":
    1) Закрой игру
    2) Сделай backup System\KillingFloor.ini
    3) Поставь UsePrecache=False и UsePrecaching=False
    4) Поставь bNeverPrecache=true
    5) Понизь TextureDetail... до Normal
    6) Перезапускай клиент после нескольких тяжелых кастомных карт

    Связанные страницы

    Назад