Im-dex / xray-162

XRay engine 1.6.2 (S.T.A.L.K.E.R: Call of Pripyat) evolution
Apache License 2.0
46 stars 11 forks source link

64-bit build #5

Closed Im-dex closed 7 years ago

Im-dex commented 7 years ago

Configure projects for 64-bit build. Don't forget resolve luajit memory allocation issue.

ForserX commented 7 years ago

В общем, движок я собрал(https://bitbucket.org/sv3nk/fray/commits/branch/_M_X64), но возникла проблема с Lua. Просто падал при загрузке меню.

Im-dex commented 7 years ago

@ForserX Посмотрел, выглядит интересно :) только по хорошему надо бы еще SSE asm из xrCPU_Pipe на интринсики переписать. По поводу Lua: это известная проблема LuaJIT, что собственно и указано в первом сообщении. LuaJIT требует чтобы все аллокации, которые он производит (malloc, new etc), возвращали адреса, которые умещаются в 32 бита, что на 64 разрядных системах не гарантируется. Теоретически можно попробовать при старте приложения резервировать достаточный кусок виртуальной памяти, который будет располагаться в нижней границе адресов и уместится в 32 бита, и далее из него выделять память для LuaJIT. Но это нужно проверять на практике под разными версиями windows.

ForserX commented 7 years ago

Пффф, идея с подрубом Lua 5.1 мне кажется всё более актуальной.

Im-dex commented 7 years ago

Думаю заменять jit-компилятор на интерпретатор не лучшая идея, так как перфоманс можно опустить ниже плинтуса, тем более, что скриптов в сталкере довольно много.

ForserX commented 7 years ago

Знаю... Можно Python вкрутить.

ForserX commented 7 years ago

Собрали, запустили. Практически все изменения тут: https://bitbucket.org/sv3nk/fray/commits/all

Im-dex commented 7 years ago

@ForserX Все нормально работает? Как-то изменения странно выглядят, правки выравнивания и добавление паддинга. А фс зачем вообще править нужно, оно же от архитектуры не зависит?

ForserX commented 7 years ago

Не. По ФС это другая тема. Паралельно поправили для удобной отладки под дебаггером. По выравниванию обязательно, т.к. под x64 эта структура отказывается нормально работать.

ForserX commented 7 years ago

Кстати. Можешь заделиться nvdxt, который у тебя используется. А то от кода с oxr у меня на текстурах синий с красным каналом смещаются.

Im-dex commented 7 years ago

@ForserX

По выравниванию обязательно, т.к. под x64 эта структура отказывается нормально работать.

Только проблема не в выравнивании скорее всего, а в коде, который заполняет инстанс структуры, дополнительный паддинг лишь эту проблему маскирует.

Кстати. Можешь заделиться nvdxt, который у тебя используется. А то от кода с oxr у меня на текстурах синий с красным каналом смещаются.

У меня обычная дллка, собранная в 2008й студии с ванильным nvdxt, используется. Она экспортит только одну функцию, которую утили требуют.

ForserX commented 7 years ago

В любом случае, пока меня такая конструкция устраивает. Вариант получше искать нет сейчас никакого желания, весна всё-таки, код уходит далеко в конец списка занятий.

ghost commented 7 years ago

@ForserX How does one start a game with the x64 setting on your repo (I'd contact you there but I dont see contact info)? Something is up with fsgame.ltx it seems, as it was changed, and when I do finally get it to start it crashes right away with a renderer error (I'm assuming this is because it only compiles R1 and is looking for R2-R4)

ForserX commented 7 years ago

Now it is not tedious to rule. Fsgame remained from the test overload $ fs_root $. And for renderers ... It's hard to say. I building on Mixed, I use r2. Giperion checked for r4. More?

ghost commented 7 years ago

@ForserX Thanks, I think I understand. BTW, x64 on Mixed currently does not build, there is an error in xrCDB.

ForserX commented 7 years ago

Building or loading level? Revision?

P.S. You would write bitbucket questions about my repository, so as not to distract Im-Dex.