Turnip+Zink в ExaGear

From Exagear International
Jump to navigation Jump to search

Turnip+Zink в ExaGear Windows Emulator используется как один из методов для достижения полноценного аппаратного ускорения.

В данной статье показана инструкция по компиляции Mesa с Turnip+Zink с последующей установкой собранных библиотек в ExaGear Windows Emulator.

В ExaGear RPG/Strategies нельзя задействовать Turnip+Zink.

Сборка Mesa с Turnip+Zink для использования в ExaGear

Для сборки Turnip+Zink с последующим использованием в ExaGear, необходимо иметь компьютер или ноутбук с установленной i386(не х86_64, поскольку ExaGear Windows Emulator имеет поддержку трансляции в ARM только 32 битного кода) GNU/Linux операционной системой.

Для сборки последней версии в данной инструкции будет использоваться Debian 12(sid).

Вы также можете установить Turnip+Zink в ExaGear Windows Emulator с помощью данных установщиков(рекомендуется версия от 01.08.22): https://drive.google.com/drive/folders/15TElVFjHc9hAQxdd2MMYB6o3_lo38X7y

Установка зависимостей

Для начала откройте файл /etc/apt/sources.list с помощью текстового редактора. Скопируйте строки подобные deb http://ftp.ua.debian.org/debian/ bookworm main и вставьте их уже с deb-src, например deb-src http://ftp.ua.debian.org/debian/ bookworm main

Если deb-src уже есть в вашем sources.list, то ничего редактировать не нужно.

Сохраните изменения, и введите команду sudo apt update, после обновления пакетов установите зависимости для сборки Mesa: sudo apt build-dep mesa -y

Скачивание Mesa3D и Zink-Mesa-Xlib

Поскольку Х-сервер ExaGear Windows Emulator корректно работает только с xlib(библиотека функций клиента системы X Window, нsuаписанная на языке Си), а не на dri(Direct Rendering Infrastructure), то для работы Zink в ExaGear необходима пропатченная пользователем alexvorxx версия Mesa


Установите git, если он не установлен: sudo apt install git -y и склонируйте репозитории Mesa3D и Zink-Mesa-Xlib:

  1. git clone https://github.com/mesa3d/mesa
  2. git clone https://github.com/alexvorxx/Zink-Mesa-Xlib

Если используется Debian 11 и ниже, или Ubuntu 18.04, то перед сборкой mesa необходимо скомпилировать последние версии программ, список которых есть ниже:

  1. https://gitlab.freedesktop.org/glvnd/libglvnd
  2. https://dri.freedesktop.org/libdrm
  3. https://gitlab.freedesktop.org/wayland/wayland
  4. https://gitlab.freedesktop.org/wayland/wayland-protocols

Данные репозитории также можно склонировать с помощью git clone, инструкция по сборке есть в README.


Сборка mesa

После сборки необходимых зависимостей, перейдите в папку, и соберите mesa:

meson build -D platforms=x11,wayland -D gallium-drivers=swrast,zink -D vulkan-drivers=freedreno -D dri3=enabled  -D egl=enabled  -D gles2=enabled -D glvnd=true -D glx=dri -D osmesa=true --prefix /usr -D gles=enabled -D freedreno-kgsl=true && sudo ninja -C build install

Если во время компиляции будет ошибка об отстуствии файла drm.h, drm_mode.h, скопируйте данные файлы в /usr/include:

  1. sudo cp /usr/include/libdrm/drm.h /usr/include
  2. sudo cp /usr/include/libdrm/drm_mode.h /usr/include

Сборка Zink-Mesa-Xlib

После установки mesa, перейдите в папку Zink-Mesa-Xlib, и соберите Mesa с Zink:

meson . build -Dgallium-va=false -Ddri-drivers= -Dgallium-drivers=virgl,zink,swrast -Ddri3=true -Dvulkan-drivers= -Dglx=xlib -Dplatforms=x11 -Dbuildtype=release && sudo ninja -C build install

После компиляции, собранные библиотеки можно скопировать в архив, и установить в ExaGear Windows Emulator

Установка в ExaGear

Не завершено