майнкрафт mesa3d for windows
Майнкрафт mesa3d for windows
Mesa 21.2.5 builds with Visual Studio and MSYS2 Mingw-w64 are now available in releases section.
Run fix-libvulkan-1.dll-missing-error.cmd from MinGW release package to correct it. This tool supports unattended execution via auto command line option. This tool is only bundled in MinGW release package when needed because only releases for which zink driver was built with MSYS2 MinGW-W64 vulkan-devel package group are affected. The decision to use this Vulkan SDK over LunarG’s is done based on which comes with newer loader and headers.
This is due to 64-bit binaries containing swr driver which leaks AVX usage into common code. This is an upstream bug reported here, here and here.
This is an upstream regression introduced when zink driver was patched to support Windows.
This is not a defect but rather a behavior change of Mesa when environment variables are misconfigured. It usually happens when selecting a Mesa driver that doesn’t exist in release package used or it fails to initialize due to host system not meeting hardware requirements or lacking dependencies. Reading differences between MSVC and MinGW packages and Mingw and MSVC Package contents should aid in troubleshooting.
You may experience them with programs that use any Mesa3D desktop OpenGL driver via per app deployment tool, system wide deployment is unaffected. You may experience them if per app deployment was done before shared glapi support was introduced. shared glapi has been consistently available in both MSVC and MinGW packages since 20.0.2.
To correct these errors regardless of cause you have to re-deploy. If you don’t remember if an affected program is 32-bit or 64-bit, right click on opengl32.dll shortcut in the folder where the program executable is located and select open file location. If location ends in x64 then it’s 64-bit, otherwise it’s 32-bit.
Same problem with same solution applies to osmesa if you are upgrading from 17.3.5.501-1 or older.
Differences between MSVC and MinGW packages
If you need to migrate from Mingw to MSVC binaries you just need to replace Mesa binaries folder from Mingw package with MSVC counterpart.
Mingw and MSVC Package contents
The following Mesa3D drivers and build artifacts are shipped in each release:
Build instructions, if you want to replicate my builds, are available here.
Installation and usage
First choose between Mingw and MSVC package. See About Mingw package section for details. Before extracting release package close all programs that use Mesa if any is running. After extraction you will have access to 2 deployment options, both located in the directory you installed Mesa. Both deployment utilities have a start-over mechanism so you can do all deployments you need in one session.
Examples on OpenGL context configuration override, switch to swr driver and old applications compatibility are available here.
Legacy software compatibility
Old applications from early 200x and older may need MESA_EXTENSION_MAX_YEAR environment variable set to avoid buffer overflows. It expects a year number as value, most commonly used being 2001. It trims the extensions list returned by Mesa3D to extensions released up to and including provided year as Mesa3D extensions list is sorted by year.
OpenGL context configuration override
With release of OpenGL 3.1 many features marked as deprecated in OpenGL 3.0 have been removed and since OpenGL 3.2 launch this OpenGL specification branch is known as OpenGL core profile. Also in OpenGL 3.3 a new branch of the OpenGL specification known as forward compatible context was introduced which removes the OpenGL 3.0 deprecated features that were not removed in OpenGL 3.1. Most proprietary drivers implemented the exemptions from these changes offered in the form of GL_ARB_compatibility extension for OpenGL 3.1 and compatibility contexts for OpenGL 3.2 and above. Due to complexity and especially lack of correct implementation tests for GL_ARB_compatibility and compatibility contexts, Mesa3D developers chose to retain features deprecated in OpenGL 3.0 and implement core profile and forward compatible contexts. Mesa 18.1 introduced GL_ARB_compatibility support making the first step toward having compatibility contexts support in the future. Because GL_ARB_compatibility is only for OpenGL 3.1, programs requesting OpenGL compatibility context won’t get above OpenGL 3.0 for Mesa 18.0 and 3.1 for Mesa 18.1 and newer. Unfortunately these kind of programs are prevalent on Windows where developers tend to avoid using context flags required by core profile. Fortunately Mesa3D provides a mechanism to override the OpenGL context requested. There are 2 environment variables that override OpenGL context configuration:
It is used to specify OpenGL context version and type. It expects a value in the following format
A very important feature provided by this variable is the possibility to configure an incomplete OpenGL context. Programs can only request up to the highest OpenGL context with Khronos certification as complete from Mesa3D driver in use. Currently llvmpipe is certified for OpenGL 4.5 in core profile / forward compatible context and 3.1 in compatibility profile. Currently swr is certified for OpenGL 3.3 in core profile / forward compatible context and 3.1 in compatibility profile. Since Mesa 17.3 values meant for OpenGL 4.6 are recognized.
How to set environment variables
Under Windows the easiest way to set environment variables is by writing batch files. You’ll most likely need to do so:
You can set multiple environment variables on same batch script to mix the functionality provided by Mesa3D.
Mesa3D для чего вообще?
А кстати, где взять последнюю mesa3d dll’ку под винду? Хочу отладить свой движок на ней, а то он не везде работает, видимо я что-то делаю не по спецификации или эксплуатирую какой-то баг проприетарного драйвера AMD.
Я бы это и на Linux’е сделал, но там уже проприетарный стоит, удалять его не хочется.
Кстати, я у них так и не понял какую OpenGL версию поддерживает софтовый рендер (по сравнению с r600 и прочими).
Была же sgi версия
innuendo
> Была же sgi версия
Была. Но теперь это таки стандарт. API, а не конкретная реализация.
http://www.opengl.org/about/
Поставила на своем линуксе проприетарный драйвер, а проверить поддержку 3.3 в новой версии mesa забыла.
В 10-й версии mesa есть поддержка 3.3? Или это только слухи?
Про i915 там ничего нет 🙁
gammaker
> А кстати, где взять последнюю mesa3d dll’ку под винду?
arprog
> 32: http://www.mirrorservice.org/sites/downloads.sourceforge.net/m/ms…
> ny.pkg.tar.xz
Скачал. Только почему-то GL_VERSION показывает 2.1. А на экране mesa рендерит месиво какое-то :). И выдаёт предупреждения, ругаясь на эти строчки:
gammaker
хз, я запускал urho3d на нем, все работает.
arprog
> хз, я запускал urho3d на нем, все работает.
А какой там GL? А то моему движку требуется то ли 3.2, то ли 3.3. Но mesa, показывая 2.1, поддерживает расширения, которые заменяют часть функционала 3.3 и которых движку достаточно. Но с такой реализацией GL мой движок сталкивается впервые. Видимо, я забыл активировать какие-то расширения в шейдерах, а она молчит.
Надо наконец-то добавить в движок поддержку debug output, и смотреть, есть ли какие-нибудь сообщения.
Пару лет назад я запускал свой движок в месе и всё работало правильно. Но тогда я не использовал ничего новее 2.0. У меня была смесь FFP и самого первого GLSL и не было генерации текстур на gpu.
programina
> В 10-й версии mesa есть поддержка 3.3? Или это только слухи?
Вообще там уже довольно давно поддерживается всё кроме геометрических шейдеров, поэтому если они не используются можно легко выставить MESA_GL_VERSION_OVERRIDE=3.3 и игра/софт будет работать.
По геометрическим шейдера и «официальной» поддержке 3.3:
В последнем стабильном релизе (10.0.3) поддержка 3.3 реализована только для Intel: Ivy Bridge и Haswell. В текущей версии из git уже реализована поддержка для карт AMD, при этом для GS на старых картах (3XXX 4XXX) нужно ещё и ядро 3.14. И даже для Nvidia запилили, правда с некоторыми картами Nouveau умрёт даже от SuperTuxKart, а кое где крешнется ещё при загрузке системы.
programina
> Про i915 там ничего нет 🙁
i915 это говно мамонта, оно и на винде OpenGL 3 не поддерживают.
Первые интеграшки Intel c поддержкой OpenGL 3 были Sandy Bridge и HD2XXX/3XXX.
Майнкрафт mesa3d for windows
If you just need prebuilt binaries, click here.
Introduction
Let’s start by answering an obvious question: why would you want Mesa3D on Windows?
The answer is simple: old software. You see, sometimes old apps and games that use OpenGL do not work on modern systems because the implementation of older OpenGL versions in modern video drivers (especially AMD’s) is dreadful. Mesa3D comes with a software renderer, which means it can run those applications by emulating OpenGL on the CPU. Of course, it’s slow, but it’s fast enough to play Quake 3 and Star Trek Voyager Elite Force (on an i7), so that’s good enough. It’s also good if you have an old GPU that doesn’t support modern OpenGL.
Please excuse me if I’ll refer to Mesa3D, Gallium, Gallium, LLVMpipe, etc. simply as «Mesa».
For this tutorial we need:
Preparation
We will need the following things to build LLVM first and then Mesa:
Visual Studio
We will be using Visual Studio 2019 Community Edition, which is free and can be downloaded from Visual Studio website.
Run the installer and select Desktop development with C++. Nothing else is required. This will take a while to download and install.
Win Flex-Bison
Make a new folder in your C drive called winflexbison and extract the downloaded archive into it using 7-zip.
Press start and type «Environment variables», select Edit the system environment variables, and click Environment variables (at the bottom).
In the system variables, select PATH and click Edit.
Add C:\winflexbison at the end and press OK.
CMake
Choose to add CMake to the system PATH for all users, and create the desktop icon.
Python
Go to the Python website and get the latest version of Python 2.7 64bit.
Run the installer and choose to install Python to all users and to add it to the PATH variable.
Pywin32
Go to the pywin32 github page and get the latest release for Python 2.7 64bit.
Install the downloaded file.
Mako, setuptools, scons
Press start, type «command prompt», and run it (not as administrator). Type the following commands:
Building LLVM
Get the LLVM source code tar from their website and extract it to your desktop using 7-zip.
Run CMake from the shortcut on your desktop, select the LLVM source directory for the source code, and a new llvmbuild directory on your dekstop for the binaries.
It will look like this:
Now use the Add Entry button and add the following parameters that tell LLVM what the target system is.
Be careful when copying them. It is case sensitive, and do not add spaces by accident.
Name | Type | Value (64 bit builds) | Value (32 bit builds) |
---|---|---|---|
LLVM_DEFAULT_TARGET_TRIPLE | STRING | x86_64-pc-windows-msvc19 | i686-pc-win32 |
LLVM_HOST_TRIPLE | STRING | x86_64-pc-windows | i686-pc-win32 |
LLVM_TARGETS_TO_BUILD | STRING | X86 | X86 |
LLVM_TARGET_ARCH | STRING | x86_64 | i686 |
LLVM_USE_CRT_DEBUG | STRING | MTd | MTd |
LLVM_USE_CRT_RELEASE | STRING | MT | MT |
When you’re done and it looks like this, press Configure.
It will ask which version of Visual Studio you’re using and which platform. Select Visual Studio 16 2019, and x64 for 64bit builds or Win32 for 32bit builds.
It will take a few minutes.
When it’s done, it will add a bunch of parameters of its own. Click Generate and wait a few seconds.
Click Open Project to load the project in Visual Studio.
It will take some time to load. When it’s done, select Release for compiling. It will take some time to switch.
Right click the LLVM solution and select Build Solution.
This process takes about a hour. Perfect time to watch a Star Trek episode while sipping a nice cup of Earl Grey.
Now that LLVM is ready, we need to move some files. Be very careful here as it’s easy to get wrong:
Now open the Environment Variables again and add a new system variable called LLVM, that points to the llvmbuild directory on your desktop.
LLVM is now configured and ready. If you plan to build Mesa on this machine again, you will not need to repeat these steps.
Building Mesa
Download the latest Mesa source tar from their website and extract it to your desktop using 7-zip.
To get better performance in games that use the S3TC texture format, open the Mesa folder, edit src\gallium\drivers\llvmpipe\lp_tex_sample.h and set LP_USE_TEXTURE_CACHE to 1.
Go back to the Mesa folder on your desktop, select File and run PowerShell (not as administrator).
For a 64 bit build, use this command:
For a 32 bit build, use this command:
Watch the rest of your Star Trek episode, and when it’s over it should be done compiling.
Inside the Mesa folder, browse to build\windows-x86_64\gallium\targets\libgl-gdi (64bit build) or build\windows-x86\gallium\targets\libgl-gdi (32bit build), and here you will find opengl32.dll. This DLL is Mesa.
And there you have it, Mesa on Windows!
Credits
Thanks to Lorenzo «lowenz» Donizetti for figuring out some of the cryptic stuff going on with LLVM.
Майнкрафт mesa3d for windows
В настоящее время оптимизировано для ARM Chromebook. Также может быть использовано на мобильных устройствах ARM Android с подключенной клавиатурой и мышью (необязательно).
Дополнительная информация:
В настоящее время поддерживаются только 32-ух разрядные Windows приложения.
В настоящее время устройства с x86 процессором не поддерживаются (на то есть CrossOver, Wine).
Разработчик: Eltechs
Домашняя страница: https://eltechs.com/ http://elbrus-technologies.com/#exagear
Google Play: отныне Exagear удален из play маркета. Разработчик закрыл проект.
1. Модель Вашего Android-устройства.
2. Версию Android.
3. Наличие root-прав.
4. Версию используемого приложения Exagear Windows.
5. Прикрепите лог-файл x86-stderr.txt к сообщению или его содержимое под спойлер.
(лог-файл находится на диске Вашего Android-устройства, его можно вытащить любым файловым менеджером)
Можете указать дополнительную информацию (не обязательно):
6. По возможности, screenshot ошибки.
7. Выбранное разрешение экрана и глубину цвета в Exagear Windows.
8. Параметры winecfg, если они отличаются от параметров по умолчанию.
9. Ключи/параметрами запуска .exe-приложения, которые указываются в ярлыке или командной строке.
10. Лог запускаемого в эмуляторе .exe-приложения, если он создаётся приложением.
Внимание! Android 10 в настоящее время не поддерживается! Если вы планируете использовать данную программу, не обновляйтесь до Android 10.
Upd: программа запускается, но далеко не на всех устройствах с android 10
Список рабочих устройств с Android 10
Compiling and Installing¶
1. Prerequisites for building¶
1.1 General¶
Build system¶
Meson is required when building on *nix platforms and on Windows.
Android Build system when building as native Android component. Meson is used when building ARC.
Compiler¶
The following compilers are known to work, if you know of others or you’re willing to maintain support for other compiler get in touch.
GCC 4.2.0 or later (some parts of Mesa may require later versions)
Microsoft Visual Studio 2015 or later is required, for building on Windows.
Third party/extra tools.¶
On Linux systems, Flex and Bison versions 2.5.35 and 2.4.1, respectively, (or later) should work. On Windows with MinGW, install Flex and Bison with:
For MSVC on Windows, install Win flex-bison.
Some versions can be buggy (e.g. Flex 2.6.2) so do try others if things fail.
1.2 Requirements¶
The requirements depends on the features selected at configure stage. Check/install the respective development package as prompted by the configure error message.
Here are some common ways to retrieve most/all of the dependencies based on the packaging tool used by your distro.
2. Building with meson¶
Meson >= 0.46.0 is required
Meson is the latest build system in mesa, it is currently able to build for *nix systems like Linux and BSD, macOS, Haiku, and Windows.
The general approach is:
On Windows you can also use the Visual Studio backend
Please read the detailed meson instructions for more information
3. Running against a local build¶
First, configure Mesa and install in the temporary location:
where OTHER_OPTIONS is replaced by any meson configuration options you may want. For instance, if you want to build the LLVMpipe drivers, it would look like this:
OpenGL¶
You may need to use lib instead of lib64 on some systems or a full library specifier on debian. Look inside installdir for the directory that contains libGL.so and use that one.
Vulkan¶
OpenCL¶
Unlike Vulkan, OpenCL takes a path to the whole vendors folder and will enumerate any drivers found there.
Troubleshooting local builds¶
If you are trying to run an app against a local build and it’s not working, here are a few things to check:
Double-check your paths and try with the simplest app you can. Before banging your head on a Steam game, make sure your path works with glxgears first.
Watch out for wrapper scripts. Some more complex apps such as games have big start-up scripts. Sometimes those scripts scrub the environment or set LD_LIBRARY_PATH to something in the game’s install directory.
Is your Mesa build the same arch as your app? Lots of games are still 32-bit and your Mesa build is probably 64-bit by default.
32 and 64-bit builds in the same local install directory doesn’t typically work. Distros go to great lengths to make this work in your system install and it’s hard to get it right for a local install. If you’ve recently built 64-bit and are now building 32-bit, throw away the install directory first to prevent conflicts.
4. Building with AOSP (Android)¶
5. Library Information¶
When compilation has finished, look in the top-level lib/ (or lib64/ ) directory. You’ll see a set of library files similar to this:
libGL is the main OpenGL library (i.e. Mesa), while libOSMesa is the OSMesa (Off-Screen) interface library.
If you built the DRI hardware drivers, you’ll also see the DRI drivers:
If you built with Gallium support, look in lib/gallium/ for Gallium-based versions of libGL and device drivers.
6. Building OpenGL programs with pkg-config¶
Running ninja install will install package configuration files for the pkg-config utility.
When compiling your OpenGL application you can use pkg-config to determine the proper compiler and linker flags.
For example, compiling and linking a GLUT application can be done with: