Russian-Doom / russian-doom

A limit-removing source port of Doom, Heretic and Hexen. It has numerous vanilla bug fixes, enhanced 640x400 and 1280x800 rendering resolutions, improved game palettes and offers many optional aesthetic game enhancements along with the maximum possible translation to the Russian language.
GNU General Public License v2.0
81 stars 13 forks source link

Add an option to enable LTO when available #434

Closed JNechaevsky closed 1 year ago

JNechaevsky commented 1 year ago

Сразу +200 fps (как в танках)! @Dasperal, вам на досмотр, а то очень сложно сделали с .exe и .com, подозреваю что в src/CMakeLists.txt не совсем туда впихнуто. Примечательно ещё то, что GCC в MSYS с этим не очень дружит, и может подлагувать и выдать несколько варнингов.

Dasperal commented 1 year ago

По LTO всё сделал. Ещё включил x64 сборки на MSVC чтобы ругалось на забытые хедеры. Ох, уж этот MinGW и его неявные инклюды.

JNechaevsky commented 1 year ago

Супер, спасибо! М.б. будет смысл в COMPILING дописать про libunwind (полностью: `mingw-w64-x86_64-libunwind), она стала требоваться при сборке, для GCC точно. Должно быть что-то типа такого?

pacman -S mingw-w64-{i686,x86_64}-{pkgconf,gcc,make,cmake,SDL2{,_net,_mixer},libsamplerate,libunwind} \
       git
Dasperal commented 1 year ago

На CI без неё собирается и у меня локально она для MINGW* не установлена. По описанию пакета A new implementation of a stack unwinder for C++ exceptions. У нас С++ кода нет, а если она нужна самому GCC, то он её сам притянет как зависимость. Так что указывать не надо, там только то что нужно именно ID.