Turnip+Zink в ExaGear: Difference between revisions
(→Сборка Mesa с Turnip+Zink для использования в ExaGear: (не завершено)) |
(Дополнение) |
||
Line 1: | Line 1: | ||
'''[[Turnip(ru)|Turnip]][[Zink(ru)|+Zink]]''' в [[О продуктах ExaGear|'''ExaGear Windows Emulator''']] используется как один из методов для достижения полноценного аппаратного ускорения. | '''[[Turnip(ru)|Turnip]][[Zink(ru)|+Zink]]''' в [[О продуктах ExaGear|'''ExaGear Windows Emulator''']] используется как один из методов для достижения полноценного аппаратного ускорения. Драйвера '''Turnip, Zink''' входят в состав драйвера '''Mesa''' - свободной реализации Vulkan, OpenGL API. | ||
В данной статье показана инструкция по компиляции '''''Mesa''' с Turnip+Zink'' с последующей установкой собранных библиотек в ''ExaGear Windows Emulato''r. | В данной статье показана инструкция по компиляции '''''Mesa''' с Turnip+Zink'' с последующей установкой собранных библиотек в ''ExaGear Windows Emulato''r. | ||
Line 5: | Line 5: | ||
В '''ExaGear RPG/Strategies''' нельзя задействовать '''Turnip+Zink'''. | В '''ExaGear RPG/Strategies''' нельзя задействовать '''Turnip+Zink'''. | ||
== Сборка Mesa с Turnip+Zink для использования в ExaGear == | '''Внимание! Страница не завершена!''' | ||
== Установка предварительно собранных для ExaGear библиотек Turnip+Zink == | |||
В актуальных(выпущенные с декабря 2021 года) модифицированных кешах '''Turnip+Zink''' встроен, их можно установить в меню "Пуск" | |||
----Если используется кеш, где '''Turnip+Zink''' не включены в состав .obb, для установки данных Turnip+Zink легче всего использовать автоустановщики созданные с помощью WinRAR(SFX архивы). Скачать их можно [https://drive.google.com/drive/folders/15TElVFjHc9hAQxdd2MMYB6o3_lo38X7y?usp=sharing здесь]. | |||
== Сборка Mesa с Turnip+Zink для использования в ExaGear вручную(для мододелов) == | |||
'''Внимание! Требуется базовое знание GNU/Linux.''' | |||
В данной части статьи показана инструкция по сборке библиотек '''Turnip+Zink вручную''' с последующей установкой и использованием в ExaGear. | |||
----Для этого необходимо иметь компьютер или ноутбук с установленной i386(не х86_64, поскольку '''ExaGear Windows Emulator''' имеет поддержку трансляции в ARM только 32 битного кода) ''GNU/Linux'' операционной системой. | |||
Для сборки последней версии в данной инструкции будет использоваться ''Debian 12(sid)''. | Для сборки последней версии в данной инструкции будет использоваться ''Debian 12(sid)''. | ||
==== Установка зависимостей ==== | ==== Установка зависимостей ==== | ||
Line 20: | Line 27: | ||
==== Скачивание Mesa3D и Zink-Mesa-Xlib ==== | ==== Скачивание Mesa3D и Zink-Mesa-Xlib ==== | ||
Поскольку ''Х-сервер'' '''ExaGear Windows Emulator''' корректно работает только с xlib(библиотека функций клиента системы X Window, | Поскольку ''Х-сервер'' '''ExaGear Windows Emulator''' корректно работает только с xlib(библиотека функций клиента системы X Window, написанная на языке Си), а не на dri(''Direct Rendering Infrastructure),'' то для работы Zink в '''ExaGear''' необходима пропатченная пользователем alexvorxx версия [https://github.com/alexvorxx/Zink-Mesa-Xlib Mesa] | ||
----Установите git, если он не установлен: <code>sudo apt install git -y</code> и склонируйте репозитории [https://github.com/mesa3d/mesa Mesa3D] и Zink-Mesa-Xlib: | ----Установите git, если он не установлен: <code>sudo apt install git -y</code> и склонируйте репозитории [https://github.com/mesa3d/mesa Mesa3D] и Zink-Mesa-Xlib: | ||
# <code>git clone <nowiki>https://github.com/mesa3d/mesa</nowiki></code> | # <code>git clone [https://github.com/mesa3d/mesa(здесь <nowiki>https://github.com/mesa3d/mesa</nowiki>]</code> (здесь может использоваться любой репозиторий с Mesa 22. | ||
# <code>git clone <nowiki>https://github.com/alexvorxx/Zink-Mesa-Xlib</nowiki></code> | # <code>git clone <nowiki>https://github.com/alexvorxx/Zink-Mesa-Xlib</nowiki></code> | ||
==== Для тех кто использует Debian 11(и ниже) или Ubuntu 18.04 ==== | |||
Если используется Debian 11 и ниже, или Ubuntu 18.04, то перед сборкой mesa необходимо скомпилировать последние версии программ, список которых есть ниже: | Если используется Debian 11 и ниже, или Ubuntu 18.04, то перед сборкой mesa необходимо скомпилировать последние версии программ, список которых есть ниже: | ||
Line 34: | Line 42: | ||
Данные репозитории также можно склонировать с помощью <code>git clone</code>, инструкция по сборке есть в README. | Данные репозитории также можно склонировать с помощью <code>git clone</code>, инструкция по сборке есть в README. | ||
==== Для тех кто использует Ubuntu 18.04 ==== | |||
Поскольку в Ubuntu 18.04 в репозиториях используется старая версия meson, то её необходимо установить из pip3, используя python3.6, для установки последовательно введите команды ниже: | |||
# <code>sudo apt-get install python3-pip</code> | |||
# <code>pip3 install meson ninja</code> | |||
---- | ---- | ||
Line 39: | Line 54: | ||
После сборки необходимых зависимостей, перейдите в папку, и соберите <code>mesa</code>: | После сборки необходимых зависимостей, перейдите в папку, и соберите <code>mesa</code>: | ||
<code>meson build -D platforms=x11,wayland -D gallium-drivers=swrast,zink -D vulkan-drivers=freedreno -D dri3= | <code>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 libunwind=disabled -D osmesa=true -D shared-glapi=enabled -D microsoft-clc=disabled -D valgrind=disabled --prefix /usr -D gles1=disabled -D freedreno-kgsl=true -Dbuildtype=release && sudo ninja -C build</code> | ||
Если во время компиляции будет ошибка об отстуствии файла drm.h, drm_mode.h, скопируйте данные файлы в <code>/usr/include</code>: | Если во время компиляции будет ошибка об отстуствии файла drm.h, drm_mode.h, скопируйте данные файлы в <code>/usr/include</code>: | ||
Line 51: | Line 66: | ||
<code>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</code> | <code>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</code> | ||
После компиляции, собранные библиотеки | После компиляции, собранные библиотеки нужно установить в '''ExaGear Windows Emulator''' | ||
==== Установка в ExaGear ==== | ==== Установка в ExaGear ==== | ||
''' | |||
=== mesa === | |||
Необходимо создать папку <code>usr</code>, и создать там ещё 3 папки (share, lib, include). | |||
==== include ==== | |||
В папку include скопируйте файл gbm.h(находится в ~/mesa/src/gbm/main). | |||
В папку usr/include скопируйте данные каталоги: EGL, GL, GLES, GLES2, GLES3, KHR(находятся в ~/mesa/include) | |||
==== share ==== | |||
В папке share создайте папку vulkan, glvnd, drirc.d, в папке vulkan создайте папку icd.d, в glvnd создайте папку egl_vendor.d. | |||
----В папке vulkan/icd.d нужно скопировать файл freedreno_icd.i686.json(находится в ~/mesa/build/src/freedreno/vulkan) | |||
В папку glvnd/egl_vendor.d/ скопируйте 50_mesa.json(находится в ~/mesa/build/src/egl) | |||
В папку drirc.d скопируйте файл 00-mesa-defaults.conf(находится в ~/mesa/src/util) | |||
---- | |||
==== lib ==== | |||
В папке lib создайте папку i386-linux-gnu и скопируйте туда файлы: | |||
# libglapi.so, libglapi.so.0, libglapi.so.0.0.0(находятся в ~/mesa/build/src/mapi/shared-glapi) | |||
# libvulkan_freedreno.so(находится в ~/mesa/build/src/freedreno/vulkan) | |||
# libOSMesa.so.8.0.0, libOSMesa.so, libOSMesa.so.8(находятся в ~/mesa/build/src/gallium/targets/osmesa) | |||
# libGLX_mesa.so.0.0.0, libGLX_mesa.so, libGLX_mesa.so.0(находятся в ~/mesa/build/src/glx/) | |||
# libEGL_mesa.so.0.0.0, libEGL_mesa.so, libEGL_mesa.so.0(находятся в ~/mesa/build/src/egl) | |||
# libgbm.so, libgbm.so.1, libgbm.so.1.0.0(находятся в ~/mesa/build/src/gbm/) | |||
Также создайте в той же папке lib папки pkgconfig и dri. В папку pkgconfig необходимо скопировать файлы: | |||
# osmesa.pc(находится в ~/mesa/build/meson-private/) | |||
# gbm.pc(находится в ~/mesa/build/meson-private/) | |||
# dri.pc(находится в ~/mesa/build/meson-private/) | |||
В папку dri необходимо скопировать данные файлы: | |||
# zink_dri.so(находится в ~/mesa/build/src/gallium/targets/dri) | |||
# libgallium_dri.so(находится в ~/mesa/build/src/gallium/targets/dri) | |||
=== Zink-Mesa-Xlib === | |||
==== lib ==== | |||
Из папки '''Zink-Mesa-Xlib''' необходимо в созданный вами каталог ''usr/lib/i386-linux-gnu'' скопировать библиотеку libGL.so.1.5.0(находится в ... ) |
Revision as of 08:34, 26 September 2022
Turnip+Zink в ExaGear Windows Emulator используется как один из методов для достижения полноценного аппаратного ускорения. Драйвера Turnip, Zink входят в состав драйвера Mesa - свободной реализации Vulkan, OpenGL API.
В данной статье показана инструкция по компиляции Mesa с Turnip+Zink с последующей установкой собранных библиотек в ExaGear Windows Emulator.
В ExaGear RPG/Strategies нельзя задействовать Turnip+Zink.
Внимание! Страница не завершена!
Установка предварительно собранных для ExaGear библиотек Turnip+Zink
В актуальных(выпущенные с декабря 2021 года) модифицированных кешах Turnip+Zink встроен, их можно установить в меню "Пуск"
Если используется кеш, где Turnip+Zink не включены в состав .obb, для установки данных Turnip+Zink легче всего использовать автоустановщики созданные с помощью WinRAR(SFX архивы). Скачать их можно здесь.
Сборка Mesa с Turnip+Zink для использования в ExaGear вручную(для мододелов)
Внимание! Требуется базовое знание GNU/Linux.
В данной части статьи показана инструкция по сборке библиотек Turnip+Zink вручную с последующей установкой и использованием в ExaGear.
Для этого необходимо иметь компьютер или ноутбук с установленной i386(не х86_64, поскольку ExaGear Windows Emulator имеет поддержку трансляции в ARM только 32 битного кода) GNU/Linux операционной системой.
Для сборки последней версии в данной инструкции будет использоваться Debian 12(sid).
Установка зависимостей
Для начала откройте файл /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, написанная на языке Си), а не на dri(Direct Rendering Infrastructure), то для работы Zink в ExaGear необходима пропатченная пользователем alexvorxx версия Mesa
Установите git, если он не установлен: sudo apt install git -y
и склонируйте репозитории Mesa3D и Zink-Mesa-Xlib:
git clone https://github.com/mesa3d/mesa
(здесь может использоваться любой репозиторий с Mesa 22.git clone https://github.com/alexvorxx/Zink-Mesa-Xlib
Для тех кто использует Debian 11(и ниже) или Ubuntu 18.04
Если используется Debian 11 и ниже, или Ubuntu 18.04, то перед сборкой mesa необходимо скомпилировать последние версии программ, список которых есть ниже:
- https://gitlab.freedesktop.org/glvnd/libglvnd
- https://dri.freedesktop.org/libdrm
- https://gitlab.freedesktop.org/wayland/wayland
- https://gitlab.freedesktop.org/wayland/wayland-protocols
Данные репозитории также можно склонировать с помощью git clone
, инструкция по сборке есть в README.
Для тех кто использует Ubuntu 18.04
Поскольку в Ubuntu 18.04 в репозиториях используется старая версия meson, то её необходимо установить из pip3, используя python3.6, для установки последовательно введите команды ниже:
sudo apt-get install python3-pip
pip3 install meson ninja
Сборка 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 libunwind=disabled -D osmesa=true -D shared-glapi=enabled -D microsoft-clc=disabled -D valgrind=disabled --prefix /usr -D gles1=disabled -D freedreno-kgsl=true -Dbuildtype=release && sudo ninja -C build
Если во время компиляции будет ошибка об отстуствии файла drm.h, drm_mode.h, скопируйте данные файлы в /usr/include
:
sudo cp /usr/include/libdrm/drm.h /usr/include
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
mesa
Необходимо создать папку usr
, и создать там ещё 3 папки (share, lib, include).
include
В папку include скопируйте файл gbm.h(находится в ~/mesa/src/gbm/main).
В папку usr/include скопируйте данные каталоги: EGL, GL, GLES, GLES2, GLES3, KHR(находятся в ~/mesa/include)
В папке share создайте папку vulkan, glvnd, drirc.d, в папке vulkan создайте папку icd.d, в glvnd создайте папку egl_vendor.d.
В папке vulkan/icd.d нужно скопировать файл freedreno_icd.i686.json(находится в ~/mesa/build/src/freedreno/vulkan)
В папку glvnd/egl_vendor.d/ скопируйте 50_mesa.json(находится в ~/mesa/build/src/egl)
В папку drirc.d скопируйте файл 00-mesa-defaults.conf(находится в ~/mesa/src/util)
lib
В папке lib создайте папку i386-linux-gnu и скопируйте туда файлы:
- libglapi.so, libglapi.so.0, libglapi.so.0.0.0(находятся в ~/mesa/build/src/mapi/shared-glapi)
- libvulkan_freedreno.so(находится в ~/mesa/build/src/freedreno/vulkan)
- libOSMesa.so.8.0.0, libOSMesa.so, libOSMesa.so.8(находятся в ~/mesa/build/src/gallium/targets/osmesa)
- libGLX_mesa.so.0.0.0, libGLX_mesa.so, libGLX_mesa.so.0(находятся в ~/mesa/build/src/glx/)
- libEGL_mesa.so.0.0.0, libEGL_mesa.so, libEGL_mesa.so.0(находятся в ~/mesa/build/src/egl)
- libgbm.so, libgbm.so.1, libgbm.so.1.0.0(находятся в ~/mesa/build/src/gbm/)
Также создайте в той же папке lib папки pkgconfig и dri. В папку pkgconfig необходимо скопировать файлы:
- osmesa.pc(находится в ~/mesa/build/meson-private/)
- gbm.pc(находится в ~/mesa/build/meson-private/)
- dri.pc(находится в ~/mesa/build/meson-private/)
В папку dri необходимо скопировать данные файлы:
- zink_dri.so(находится в ~/mesa/build/src/gallium/targets/dri)
- libgallium_dri.so(находится в ~/mesa/build/src/gallium/targets/dri)
Zink-Mesa-Xlib
lib
Из папки Zink-Mesa-Xlib необходимо в созданный вами каталог usr/lib/i386-linux-gnu скопировать библиотеку libGL.so.1.5.0(находится в ... )