Skip to content

Commit

Permalink
Release 21.0.1
Browse files Browse the repository at this point in the history
Add info about zink, GLonD3D12 and SPIR-V to DXIL tool to end user guide
  • Loading branch information
pal1000 committed Mar 25, 2021
1 parent c333aff commit 336ec39
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 13 deletions.
14 changes: 7 additions & 7 deletions buildinfo/mingw.txt
Expand Up @@ -20,7 +20,7 @@ curl 7.74.0-4
dash 0.5.11.3-1
db 5.3.28-3
file 5.39-2
filesystem 2021.02-1
filesystem 2021.03-5
findutils 4.7.0-1
flex 2.6.4-1
gawk 5.1.0-1
Expand Down Expand Up @@ -113,7 +113,7 @@ mingw-w64-i686-python 3.8.8-2
mingw-w64-i686-python-beaker 1.11.0-1
mingw-w64-i686-python-mako 1.1.4-1
mingw-w64-i686-python-markupsafe 1.1.1-1
mingw-w64-i686-python-setuptools 54.1.2-1
mingw-w64-i686-python-setuptools 54.2.0-1
mingw-w64-i686-readline 8.0.004-2
mingw-w64-i686-spirv-headers 1.5.4.2-1
mingw-w64-i686-spirv-tools 2020.6-2
Expand Down Expand Up @@ -164,7 +164,7 @@ mingw-w64-x86_64-python 3.8.8-2
mingw-w64-x86_64-python-beaker 1.11.0-1
mingw-w64-x86_64-python-mako 1.1.4-1
mingw-w64-x86_64-python-markupsafe 1.1.1-1
mingw-w64-x86_64-python-setuptools 54.1.2-1
mingw-w64-x86_64-python-setuptools 54.2.0-1
mingw-w64-x86_64-readline 8.0.004-2
mingw-w64-x86_64-spirv-headers 1.5.4.2-1
mingw-w64-x86_64-spirv-tools 2020.6-2
Expand All @@ -185,18 +185,18 @@ mingw-w64-x86_64-zstd 1.4.8-2
mintty 1~3.4.7-2
mpfr 4.1.0-1
msys2-keyring 1~20210213-1
msys2-launcher 1.0-1
msys2-runtime 3.1.7-6
msys2-launcher 1.2-1
msys2-runtime 3.1.7-8
nano 5.6.1-1
ncurses 6.2-1
nettle 3.7-1
openssl 1.1.1.i-1
p11-kit 0.23.22-2
pacman 5.2.2-13
pacman 5.2.2-16
pacman-contrib 1.4.0-1
pacman-mirrors 20210227-1
patch 2.7.6-1
perl 5.32.0-2
perl 5.32.1-1
pinentry 1.1.0-2
rebase 4.4.4-2
sed 4.8-1
Expand Down
4 changes: 2 additions & 2 deletions buildinfo/msvc.txt
Expand Up @@ -14,9 +14,9 @@ Mako 1.1.4
MarkupSafe 1.1.1
meson 0.57.1
pip 21.0.1
setuptools 54.1.2
setuptools 54.2.0

CMake 3.19.7
CMake 3.20.0
Ninja 1.10.2
LLVM 11.1.0
Winflexbison package 2.5.24
Expand Down
10 changes: 7 additions & 3 deletions readme.md
Expand Up @@ -8,24 +8,28 @@
- [OpenGL context configuration override](#opengl-context-configuration-override)
- [How to set environment variables](#how-to-set-environment-variables)
# Downloads
Mesa 21.0.0 builds with Visual Studio and MSYS2 Mingw-w64 are now available in [releases section](https://github.com/pal1000/mesa-dist-win/releases).
Mesa 21.0.1 builds with Visual Studio and MSYS2 Mingw-w64 are now available in [releases section](https://github.com/pal1000/mesa-dist-win/releases).
# Note for enterprise environments
IT security policy may restrict or even outright prohibit running 3rd-party unsigned executables. If this is the case you can extract Mesa3D drivers using [7-Zip](https://www.7-zip.org/).
# About Mingw package
Mingw package is recommended in most cases over MSVC as it has better performance but there are some differences:
- it requires a CPU with [SSSE3](https://en.wikipedia.org/wiki/SSSE3#CPUs_with_SSSE3);
- [osmesa classic](https://gitlab.freedesktop.org/mesa/mesa/issues/2297) is not available due to build failure;
- it contains zink driver since 21.0.0 while MSVC package introduced GLonD3D12;
- SPIR-V to DXIL tool introduced in 21.0.0 is not available;
- ZSTD is used for certain compression tasks since 20.1.8.

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:
- [llvmpipe](https://www.mesa3d.org/llvmpipe.html) and softpipe bundle. File name: opengl32.dll. llvmpipe is the default desktop OpenGL driver. Both llvmpipe and softpipe are available for both x86 and x64. softpipe can be selected by setting environment variable GALLIUM_DRIVER=softpipe.
- [GLAPI shared library](https://www.mesa3d.org/egl.html). File name: libglapi.dll. Required by llvmpipe, softpipe and swr if Mesa3D is built with shared glapi. Since 20.0.2 it is available in both MSVC and MSYS2 Mingw-w64 packages.
- [GLonD3D12](https://docs.mesa3d.org/drivers/d3d12.html). Standalone ICD filename: openglon12.dll. This driver introduced in 21.0.0 is operating as wrapper returning D3D12 API calls. Due to this nature it can use GPU accelleration. Select it via GALLIUM_DRIVER environment variable, but note that it's only available in MSVC package. By default it requires at least 1 D3D12 GPU with driver, but it can be tested with WARP via `LIBGL_ALWAYS_SOFTWARE=1`.
- [zink](https://docs.mesa3d.org/drivers/zink.html). This driver introduced for Windows in 21.0.0 is operating as wrapper returning Vulkan API calls. Due to this nature it can use GPU accelleration. Select it via GALLIUM_DRIVER environment variable, but note that it's only available in MinGW package. zink ignores Vulkan CPU type devices unless `ZINK_USE_LAVAPIPE=1` environment variable is set. zink requires at least 1 Vulkan device and Vulkan loader to initialize.
- [swr](https://openswr.org/). File names: swrAVX.dll, swrAVX2.dll, swrSKX.dll, swrKNL.dll. An alternative desktop OpenGL driver developed by Intel. Available in MSVC package and since 20.1.7 in MinGW package as well. It only supports x64, x86 is [officially unsupported](https://bugs.freedesktop.org/show_bug.cgi?id=102564#c5). There are currently 4 DLLs, only one being loaded based on what the user CPU can do. By default Mesa uses llvmpipe. You can switch to swr by setting GALLIUM_DRIVER environment variable value to swr either globally or in a batch file. See [How to set environment variables](#how-to-set-environment-variables).
- [OpenGL ES standalone drivers](https://www.mesa3d.org/opengles.html). File names: libGLESv1_CM.dll and libGLESv2.dll. OpenGL ES 1.x, 2.0 and 3.0 standalone drivers available for 32-bit and 64-bit applications. Since 20.0.2 they are available in both MSVC and MSYS2 Mingw-w64 packages.
- [osmesa](https://www.mesa3d.org/osmesa.html). File name: osmesa.dll. 2 versions of osmesa, off-screen rendering driver. They are located in osmesa-gallium and osmesa-swrast subdirectories. Available for both x86 and x64. This driver is used in special cases by software that is designed to use Mesa code to render without any kind of window system or operating system dependency. osmesa gallium supports OpenGL 3.x and newer while osmesa swrast also known as osmesa classic only supports OpenGL 2.1 but it has some unique capabilities. Since 20.0.2 osmesa integration with standalone GLLES drivers is available in both MSVC and MSYS2 Mingw-w64 packages.
- [osmesa](https://www.mesa3d.org/osmesa.html). File name: osmesa.dll. Available for both x86 and x64. This driver is used in special cases by software that is designed to use Mesa code to render without any kind of window system or operating system dependency. Since 21.0.0 only osmesa gallium remained. It supports OpenGL 3.x and newer. Since 20.0.2 osmesa integration with standalone GLLES drivers is available in both MSVC and MSYS2 Mingw-w64 packages.
- graw. File names: graw.dll, graw_null.dll. This is Mesa3D plug-in library. It is not a driver. Available for both x86 and x64 and in full (with window system support) and headless (no window) versions. This is used in special cases by software that is designed to use Mesa3D code internal APIs. Since 20.0.2 both full and headless versions are available in both MSVC and MSYS2 Mingw-w64 packages.
- SPIR-V to DXIL tool and library are only available in MSVC package since 21.0.0. File names: spirv_to_dxil.dll and spirv2dxil.exe.
- test suite. Many executable unit tests.
- libraries and headers generated at build time for both 32-bit and 64-bit builds are located in a separate archive called development pack. Note that build time generated headers depend on source code headers, so you may need Mesa3D source code because only build time headers are included.

Expand Down
5 changes: 4 additions & 1 deletion releasenotes.md
@@ -1,9 +1,12 @@
# Next release
# 21.0.1
- Updated Mesa3D to [21.0.1](https://docs.mesa3d.org/relnotes/21.0.1.html).
### Build script
- MSVC build: Switch LLVM discovery method from config tool to cmake;
- LLVM: Build install target again now that configuration has been optimized.
### Deployment
- Add version info for Microsoft SPIR-V to DXIL library.
### Documentation
- Add info about zink, GLonD3D12 and SPIR-V to DXIL tool to end user guide.
# 21.0.0
- Updated Mesa3D to [21.0.0](https://docs.mesa3d.org/relnotes/21.0.0.html).
### Debug
Expand Down

0 comments on commit 336ec39

Please sign in to comment.