Closed Im-dex closed 7 years ago
В общем, движок я собрал(https://bitbucket.org/sv3nk/fray/commits/branch/_M_X64), но возникла проблема с Lua. Просто падал при загрузке меню.
@ForserX Посмотрел, выглядит интересно :) только по хорошему надо бы еще SSE asm из xrCPU_Pipe на интринсики переписать. По поводу Lua: это известная проблема LuaJIT, что собственно и указано в первом сообщении. LuaJIT требует чтобы все аллокации, которые он производит (malloc, new etc), возвращали адреса, которые умещаются в 32 бита, что на 64 разрядных системах не гарантируется. Теоретически можно попробовать при старте приложения резервировать достаточный кусок виртуальной памяти, который будет располагаться в нижней границе адресов и уместится в 32 бита, и далее из него выделять память для LuaJIT. Но это нужно проверять на практике под разными версиями windows.
Пффф, идея с подрубом Lua 5.1 мне кажется всё более актуальной.
Думаю заменять jit-компилятор на интерпретатор не лучшая идея, так как перфоманс можно опустить ниже плинтуса, тем более, что скриптов в сталкере довольно много.
Знаю... Можно Python вкрутить.
Собрали, запустили. Практически все изменения тут: https://bitbucket.org/sv3nk/fray/commits/all
@ForserX Все нормально работает? Как-то изменения странно выглядят, правки выравнивания и добавление паддинга. А фс зачем вообще править нужно, оно же от архитектуры не зависит?
Не. По ФС это другая тема. Паралельно поправили для удобной отладки под дебаггером. По выравниванию обязательно, т.к. под x64 эта структура отказывается нормально работать.
Кстати. Можешь заделиться nvdxt, который у тебя используется. А то от кода с oxr у меня на текстурах синий с красным каналом смещаются.
@ForserX
По выравниванию обязательно, т.к. под x64 эта структура отказывается нормально работать.
Только проблема не в выравнивании скорее всего, а в коде, который заполняет инстанс структуры, дополнительный паддинг лишь эту проблему маскирует.
Кстати. Можешь заделиться nvdxt, который у тебя используется. А то от кода с oxr у меня на текстурах синий с красным каналом смещаются.
У меня обычная дллка, собранная в 2008й студии с ванильным nvdxt, используется. Она экспортит только одну функцию, которую утили требуют.
В любом случае, пока меня такая конструкция устраивает. Вариант получше искать нет сейчас никакого желания, весна всё-таки, код уходит далеко в конец списка занятий.
@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)
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?
@ForserX Thanks, I think I understand. BTW, x64 on Mixed currently does not build, there is an error in xrCDB.
Building or loading level? Revision?
P.S. You would write bitbucket questions about my repository, so as not to distract Im-Dex.
Configure projects for 64-bit build. Don't forget resolve luajit memory allocation issue.