OpenXRay / xray-16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
https://discord.gg/sjRMQwv
Other
2.96k stars 454 forks source link

Segfault in CGamePersistent::RegisterModel #1605

Closed Zenitur closed 4 months ago

Zenitur commented 7 months ago

Здравствуйте. Я могу по-русски написать, вы не против? Спасибо.

В октябре 2009 года состоялся выпуск двух программных продуктов, это Ubuntu 9.10 и Сталкер: Зов Припяти. Я играл в него в Ubuntu и мечтал, что когда-нибудь разработчики выпустят нативную Linux-версию. Что ж, прошло 15 лет, пришло время переустанавливать шиндовс исполнять мечту.

Чтобы установить драйвер amdgpu, надо обновить ядро, libdrm и mesa, а также установить тяжеленный компилятор llvm. Боюсь, что я так затрахаюсь, что у меня не хватит сил поиграть. Поэтому я установил драйвер fglrx 15.12.

Запускаю игру и... она работает. Я даже удивился, что, спустя столько лет, это возможно.

Однако она падает при нажатии "новая игра", "выберите уровень сложности".

Логи тут: openxray_zenitur.log fglrx-15-12-glxinfo.txt

Скрин тут: Screenshot-Stalker-COP-on-Ubuntu-9-10

Сборка тут: S.T.A.L.K.E.R. - Call of Pripyat (Linux x86_64 build 07.14.2023).zip

Xottab-DUTY commented 7 months ago

fglrx тут не причём, это видео-драйвер, а, согласно логу, вылет происходит чисто в игровой части движка при загрузке модели рук игрока.

Это похоже на вылет, который происходит на бинарниках, собранных клангом. Чем собран движок? Его можно собрать клангом, но стабильность не гарантируется. Лучше собирать GCC.

Zenitur commented 7 months ago

Движок собран GCC 9.1. Кланг... Ну, могу конечно собрать. Версия 7.0 пойдёт?

P.S. Если будешь смотреть сборку - там бинарники strip-нутые. Могу с отладочными символами выложить.

Xottab-DUTY commented 7 months ago

Кланг... Ну, могу конечно собрать.

Не надо, я же говорю, им наоборот и не нужно собирать :)

Zenitur commented 7 months ago

Проблема вряд ли в коде рук. На более новой системе, с драйвером AMDGPU, эта же сборка работает.

Xottab-DUTY commented 7 months ago

Проблема вряд ли в коде рук. На более новой системе, с драйвером AMDGPU, эта же сборка работает.

Драйвера на видеокарту здесь не причём. Валится код загрузки моделей. Похоже, что здесь та же самая проблема как и в #1224.

Если это действительно так. то баг мог быть исправлен в свежих коммитах и следует собирать именно их. Но, судя по всему, пришлось собирать со старых коммитов из-за #1595. Что ж, тогда ждём исправления сборки со старым SDL2 на самых новых коммитах.

Xottab-DUTY commented 4 months ago

Так как #1595 исправлен, то этот Issue теперь уже, скорее, дубликат #1224, так что закрываю. Можно открыть заново в случае новых проблем или создать новый Issue.