Elbrusoid

+114
с 2022

Архитектура: e2k Порядок байт: Little Endian CPU(s): 8

6 подписчиков
2 подписки

Там код не оригинальной игры, а порт под Linux и рендерер переделан под OpenGL + Linux. Надо собирать этот движок под Linux На x86 и сравнивать производительность. Ещё движок использует 1,5 ... 2 потока всего, т. е. загружено 2 ядра всего, остальные ничего не делают.

1

Ну портируют его, игры он всё-равно не сможет запускать на другой архитектуре.

1

Да просто полностью под бинарной трансляцией придётся запускать. Грубо говоря, будет у тебя 30-50% оставшейся производительности.

А как он будет запускать игры под x86-64 (amd64) на e2k?

Привет Роман, точно, классный сайт запилили.

2

Но в бинарной трансляции запустится. 2й точно нормально пойдёт. 3й — должен тоже нормально пойти. Нужно уговаривать Дмитрия Бачило проверить на его Эльбрус 8СВ (согласится ли?).

4

Не, это не самая "топовая" модель, конечно же помогли приобрести компьютер на процессоре 8С (1300 МГц, DDR3-1600). Сейчас актуальная на 8СВ (1550 МГц, DDR4-2400). У Дмитрия Бачило имеется в его личном музее, иногда помогаем ему со сборкой и консультацией (хотя он и сам прекрасно умеет собирать код, ставить ОС, настраивать).

7

1. Нужны свободные исходники
2. Нужно портировать на Linux (если игра только под Windows, то крайне ресурсозатратно, так как только Direct-X)
3. Адаптация под процессор (если в коде были ассемблерные части под x86-64, то их нужно ещё дописать под e2k).
4. Если в игре всякие скрипты под Lua/LuaJIT, то это создаёт дополнительные проблемы. Лучше портируются игры на C/C++.

Вот список игр с инструкциями как собирать, игр достаточно много уже накопилось за 3 года работы команды: https://www.altlinux.org/How-to_compile_games_on_e2k

2

Проверка возможности переносимости кода (разработчику nillerusr было интересно), ну и товарищам хотелось собрать игру, продемонстрировать работоспособность, ну и пропатчить код для переносимости. Игра может спокойно собираться на linux, так что проблем с переносом почти не возникло, вот патч игры: https://github.com/nillerusr/source-engine/pull/305

5

Есть потребность. Упрощает портирование ПО без наличия машины, уже некоторых выручило. Но это крайне нишевая вещь, согласен, но есть возможность пощупать железку в эмуляции.

2

Попробуйте, но требуются навыки работы в дистрибутивах Linux (можно WSL), умение компилировать код. А если хотите портировать, то там нужны глубокие знания C, двоичной трансляции, низкоуровневого программирования (в т. ч. самому разобраться в ассемблере Эльбруса без документации).

1

Что значит совместимость с играми?
Это обычный компьютер: есть проц, шина PCIe для подключения видеокарт.

Есть языки программирования, есть компилятор LCC C/C++ (который не всё оптимально собрать может),

Игры тормозят: кривая оптимизация при компиляции, нет оптимизации в коде, упрощающей работу компилятора, там, где есть ассемблер — писать участки кода под e2k, либо использовать сишные заглушки.

Проблема в движке LuaJIt, который под Эльбрус работает в бинарной трансляции, динамическая компиляция ускорит движок в 10 раз, но там надо писать 16000 строк в двоичном коде.

2

Там в бинарной трансляции Lintel amd64, выделено 7 ядер на исполнение. Все запросы к видеокарте транслируются через amd64 код Windows DirectX, на этом много потерь.

Игра опен сорсный порт, это свободный порт под Linux, он так лагает и на amd64 Linux машине. Так что там ещё много работы

1

Это игры не 2003 года, это свободная реализация этих игр (заново написаны энтузиастами), их надо ещё дописывать и дописывать. Всё это делается в свободное время энтузиастами.

Это универсальный процессор, а вот свободная реализация этих игр (заново написаны энтузиастами), вот эти игры ещё собраны под Linux и работают под OpenGl/Vulkan, кто-то пробовал их собрать под amd64 Linux и проверить производительность.

1

Присоединяйтесь к портированию игры, там ещё многое нужно сделать, требуется знание C++.

Это игры не 2002 года, это свободная реализация этих игр (заново написаны энтузиастами), вы бы попробовали их собрать на своих машинах под Linux.

Не летает, потому что человек запустил сервер БД Postgres на виртуальной машине на ноутбуке. Надо было ставить сервер БД рядом на одной машине.

1

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