Difference between revisions of "Wrappers"

From Emulation General Wiki
Jump to navigation Jump to search
m
m (Comparisons)
(36 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{WIP}}
+
A '''wrapper''' is a reimplementation of a [[wikipedia:Library (computing)|library]], where the goal is to substitute the original API with a better-supported interface. It works as a drop-in replacement for the original library, since a lot of software usually bundled it as-is without any fine-tuning. Wrappers are most common for proprietary interfaces that are either abandoned or otherwise platform-specific.
A '''wrapper''' is a common name for a [[Compatibility layers|compatibility/translation layer]] that translates from one ''graphics API'' to another. This can be used to run software on systems they were not designed for. Such as running old PC games made for 3Dfx Glide graphics card on modern Windows 10 systems, or running modern Windows-only DirectX 11 games on Linux.
 
  
 
==90's APIs==
 
==90's APIs==
 +
During the 90s, many [[Intel CPUs|PC]] game developers chose to use 3Dfx's Glide API for their Voodoo graphics cards. These developers didn't anticipate that 3Dfx would run out of money trying to compete with NVIDIA's offering, and in 2000 NVIDIA bought them for their IP assets (presumably to improve their own cards). Despite the API getting an open source release in 2003, neither NVIDIA or ATI adopted support for Glide in their own drivers, meaning a wrapper is now needed to play these games with hardware acceleration. Or, if we're lucky, the game gets [[Game Engine Recreations and Source Ports|ported or reimplemented]] to use other APIs instead.
 +
 +
Even games using older versions of DirectDraw or Direct3D can benefit from wrappers, since those interfaces may not even work properly on newer systems. Wrappers can even enable various overrides and enhancements, such as [https://reshade.me/ ReShade].
 +
 
{| class="wikitable sortable" style="text-align:center;"
 
{| class="wikitable sortable" style="text-align:center;"
 
|-
 
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|OS
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
 
! scope="col"|Translates
 
! scope="col"|Translates
 
! scope="col"|Into
 
! scope="col"|Into
 +
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
 
|[http://www.zeus-software.com/downloads/nglide nGlide]
 
|[http://www.zeus-software.com/downloads/nglide nGlide]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[http://www.zeus-software.com/downloads/nglide 2.10]
 
|[http://www.zeus-software.com/downloads/nglide 2.10]
 
|Glide
 
|Glide
 
|Vulkan, Direct3D 9
 
|Vulkan, Direct3D 9
|{{✓}} ||{{✓}}
+
|{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|-
|[[Wine|Wine DirectX]]
+
|[http://dege.freeweb.hu/ dgVoodoo2]
|Windows, Linux, macOS
+
|align=left|{{Icon|Windows}}
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br /> [https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>Windows</small>
+
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]
|DirectX 1-7
+
|Glide, DirectX 1-9
|OpenGL
+
|Direct3D 11, Direct3D 12
|{{✓}} ||{{✓}}
+
|{{✗}} ||{{✓}} ||{{✓}}
 
|-
 
|-
|[http://dege.freeweb.hu/ dgVoodoo 2]
+
|[[Wine|WineD3D]]
|Windows
+
|align=left|{{Icon|Windows|Linux|macOS}}
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.html 2.62.3]
+
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small>
|Glide, DirectX 1-9
+
|DirectX 1-11
|Direct3D 11
+
|Vulkan, OpenGL
|{{✓}} ||{{✓}}
+
|{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[https://www.dxgl.org/ DXGL]
 
|[https://www.dxgl.org/ DXGL]
|Windows
+
|align=left|{{Icon|Windows}}
|[https://www.dxgl.org/downloads/ 0.5.17]
+
|[https://www.dxgl.org/downloads/ {{DXGLVer}}]
 
|DirectX 1-7
 
|DirectX 1-7
 
|OpenGL
 
|OpenGL
|{{✓}} ||{{}} <small>WIP</small>
+
|{{✓}} ||{{✓}} ||{{TBD}}
 
|-
 
|-
 
|[http://www.glidos.net/ Glidos]
 
|[http://www.glidos.net/ Glidos]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[http://www.glidos.net/download.html 1.53b]
 
|[http://www.glidos.net/download.html 1.53b]
 
|Glide <small>(DOS)</small>
 
|Glide <small>(DOS)</small>
 
|?
 
|?
|{{✗}} ||?
+
|{{✗}} ||{{✗}} ||{{TBD}}
 
|-
 
|-
 
|[http://openglide.sourceforge.net/ OpenGlide]
 
|[http://openglide.sourceforge.net/ OpenGlide]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]
 
|[https://sourceforge.net/projects/openglide/files/latest/download 0.09 Alpha]
 
|Glide
 
|Glide
 
|OpenGL
 
|OpenGL
|{{✗}} ||?
+
|{{✓}} ||{{✗}} ||{{✗}}
 
|-
 
|-
 
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]
 
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo]
|Windows
+
|align=left|{{Icon|Windows}}
 
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]
 
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.13]
 
|Glide
 
|Glide
 
|Direct3D 9
 
|Direct3D 9
|{{✗}} ||?
+
|{{✓}} ||{{✗}} ||{{✗}}
 +
|-
 +
|[https://github.com/ata4/glrage glrage]
 +
|align=left|{{Icon|Windows}}
 +
|[https://github.com/ata4/glrage/releases/latest r10]
 +
|ATI3DCIF, DirectDraw 2
 +
|OpenGL 3.3
 +
|{{✓}} ||{{✗}} ||{{✓}}
 
|-
 
|-
 
|}
 
|}
  
 
===Comparisons===
 
===Comparisons===
* [http://www.zeus-software.com/downloads/nglide nGlide] is a 3Dfx Voodoo Glide wrapper. It allows you to play games designed for 3Dfx Glide API without the need for having 3Dfx Voodoo graphics card. All three API versions are supported, Glide 2.11, Glide 2.60 and Glide 3.10. nGlide emulates Glide environment with Direct3D 9 and version 2.0 implemented Vulkan support, which also makes it work under Linux using [[Wine]] Staging 2.10.0 or newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> Glide wrapper also supports high resolution modes. This is currently the best Glide wrapper. Has a [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].
+
;nGlide
 +
:Currently the best Glide wrapper, supporting all three public versions (2.11, 2.60 and 3.10) but it's closed-source. It originally only used Direct3D 9 until Vulkan output was added in 2.0, allowing it to work under Linux using [[Wine]] 2.10.0 and newer.<ref name="nglidevulkan">http://www.zeus-software.com/forum/viewtopic.php?f=2&t=2044</ref> nGlide also supports high resolution modes. See the [http://www.zeus-software.com/downloads/nglide/compatibility compatibility list].
 +
 
 +
;dgVoodoo2
 +
:Targets Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw and Direct3D up to version 7, Direct3D 8.1, and Direct3D 9. Outputs Direct3D 11 with different device types as wrapping output such as hardware or software rendering.
 +
 
 +
;[[Wine|WineD3D]]
 +
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. It works pretty well for running older Direct3D games, though it does not come with a Glide implementation of its own. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].
  
* [http://dege.freeweb.hu/ dgVoodoo 2] is a closed-source wrapper for old graphics API's for Windows. The API's it currently can wrap are: Glide 2.11, Glide 2.45, Glide 3.1, Glide 3.1 Napalm, DirectX 1-7 (all versions of DirectDraw and Direct3D up to version 7), Direct3D 8.1 and Direct3D 9. This wrapper can use Direct3D 11 with different device types as wrapping output such as hardware or software rendering.
+
;DXGL
 +
:Reimplements DirectDraw using OpenGL. It is considered alpha software despite many applications working.
  
* [https://www.dxgl.org/ DXGL] is a free replacement for the Windows ddraw.dll library, running on OpenGL. It is designed to overcome driver bugs, particularly in Windows Vista and newer operating systems. It also adds various enhancements to the graphics output such as display scaling and filtering options. DXGL supports the DirectX 7.0 graphics APIs, however it is currently under development and does not work with many programs.
+
;glrage
 +
:Reimplements ATI3DCIF, an API from ATI used in a handful of games, and DirectDraw 2 over OpenGL. Originally designed specifically for Tomb Raider 1/UB patched with ATIRage patch, currently also supports Assault Rigs and Wipeout. Additionally, it applies some improvements, fixes and QoL changes to the games.
  
 
==2000's and later APIs==
 
==2000's and later APIs==
 +
Modern Windows games will likely need one of these wrappers to work on other platforms. Usually these are not separate downloads, and will come packaged into [[compatibility layers]] like [[Proton]], [[Wine]], or [https://www.codeweavers.com/crossover CrossOver].
 +
 
{| class="wikitable sortable" style="text-align:center;"
 
{| class="wikitable sortable" style="text-align:center;"
 
|-
 
|-
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|OS
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
 
! scope="col"|Translates
 
! scope="col"|Translates
 
! scope="col"|Into
 
! scope="col"|Into
 +
! scope="col"|<abbr title="Free and Open-Source Software">FOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
 
|[https://github.com/doitsujin/dxvk DXVK]
 
|[https://github.com/doitsujin/dxvk DXVK]
|Linux
+
|align=left|{{Icon|Linux}}
|[https://github.com/doitsujin/dxvk/releases 1.5]
+
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]
 
|Direct3D 9-11
 
|Direct3D 9-11
 
|Vulkan
 
|Vulkan
|{{✓}} ||{{✓}}
+
|{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
|[[Wine|Wine Direct3D]]
+
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]
|Windows, Linux, macOS
+
|align=left|{{Icon|Linux}}
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br /> [https://fdossena.com/?p=wined3d/index.frag 4.8] <small>Windows</small>
+
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.6]
|Direct3D 1-11
+
|Direct3D 12
|OpenGL
+
|Vulkan
|{{✓}} ||{{✓}}
+
|{{✓}} ||{{✓}} ||{{✓}}
|-
 
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]
 
|Linux
 
|[https://github.com/iXit/wine-nine-standalone 0.5]
 
|Direct3D 9
 
|Native
 
|{{✓}} ||{{~}} <small>WIP</small>
 
 
|-
 
|-
|[https://source.winehq.org/git/vkd3d.git/ vkd3d]
+
|vkd3d
|Linux
+
|align=left|{{Icon|Linux}}
|[https://source.winehq.org/git/vkd3d.git/ 1.1]
+
|[https://source.winehq.org/git/vkd3d.git/ {{Vkd3dVer}}]
 
|Direct3D 12
 
|Direct3D 12
 
|Vulkan
 
|Vulkan
|{{✓}} ||{{✗}} <small>WIP</small>
+
|{{✓}} ||{{✓}} ||{{✗}}
 +
|-
 +
|[[Wine|WineD3D]]
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small>
 +
|Direct3D 1-11
 +
|OpenGL
 +
|{{✓}} ||{{✓}} ||{{✓}}
 
|-
 
|-
 
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]
 
|[https://github.com/KhronosGroup/MoltenVK MoltenVK]
|macOS, iOS
+
|align=left|{{Icon|macOS|iOS}}
|[https://github.com/KhronosGroup/MoltenVK/releases 1.0.39]
+
|[https://github.com/KhronosGroup/MoltenVK/releases {{MoltenVKVer}}]
 
|Vulkan
 
|Vulkan
 
|Metal
 
|Metal
|{{✓}} ||?
+
|{{✓}} ||{{✓}} ||{{✓}}
 +
|-
 +
|[https://github.com/iXit/wine-nine-standalone Gallium Nine]
 +
|align=left|{{Icon|Linux}}
 +
|[https://github.com/iXit/wine-nine-standalone/releases v0.8]
 +
|Direct3D 9
 +
|Gallium
 +
|{{✓}} ||{{✓}} ||{{~}} <small>WIP</small>
 
|-
 
|-
|[https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Zink]
+
|[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/zink.rst Zink]
|Linux
+
|align=left|{{Icon|Linux}}
|[https://gitlab.freedesktop.org/kusma/mesa/tree/zink Git]
+
|[https://gitlab.freedesktop.org/mesa/mesa/tree/zink git]
 
|OpenGL
 
|OpenGL
 
|Vulkan
 
|Vulkan
|{{✓}} ||?
+
|{{✓}} ||{{✓}} ||{{TBD}}
|-
 
|[https://github.com/Joshua-Ashton/d9vk D9VK]
 
|Linux
 
|[https://github.com/Joshua-Ashton/d9vk Git]
 
|Direct3D 9
 
|Vulkan
 
|{{✓}} ||{{✗}}
 
|-
 
|[https://github.com/Joshua-Ashton/dxup DXUP]
 
|Windows, Linux
 
|[https://github.com/Joshua-Ashton/dxup Git]
 
|Direct3D 9-10
 
|Direct3D 11
 
|{{{✗}} ||{{✗}}
 
 
|-
 
|-
|[https://github.com/disks86/VK9 VK9]
+
|[https://github.com/crosire/d3d8to9/ d3d8to9]
|Windows, Linux
+
|align=left|{{Icon|Windows}}
|[https://github.com/disks86/VK9/releases 0.29.0]
+
|[https://github.com/crosire/d3d8to9/releases git]
 +
|Direct3D 8
 
|Direct3D 9
 
|Direct3D 9
|Vulkan
+
|{{✓}} ||{{}} ||{{✗}}
|{{}} ||{{✗}}
 
 
|-
 
|-
 
|}
 
|}
  
 
===Comparisons===
 
===Comparisons===
* [[Wine]] has an internal graphics API wrapper for Direct3D 1-11 using OpenGL. It works mostly well for older games, but is slower and has more bugs than newer wrappers using Vulkan, such as DXVK. It is possible to use Wine's wrapper in Windows using different forks.
+
;DXVK
 +
:Was originally designed to accelerate support for Direct3D 11 games running under [[Wine]] since a native implementation seemed unlikely. Today it is bundled into [[Proton]]. Later merged D9VK to add Direct3D 9 support.
  
* [https://source.winehq.org/git/vkd3d.git/ vkd3d] is an internal Wine wrapper for Direct3D 12 to Vulkan translation. Sponsored by Valve. Currently a work in progress.
+
;WineD3D
 +
:Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. For newer APIs it has more bugs than DXVK. A custom build incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].
  
* [https://github.com/doitsujin/dxvk DXVK] is a Vulkan-based translation layer for Direct3D 10 & 11, which allows running Windows 3D applications on Linux using [[Wine]].
+
;MoltenVK
 +
:Developed by the Brenwill Workshop under the Khronos Group, it reimplements Vulkan for Metal. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices.
  
:* [https://github.com/Joshua-Ashton/d9vk D9VK] is a  Direct3D 9 to Vulkan translation layer based off DXVK's codebase. Has been merged into DXVK as of version 1.5.
+
;vkd3d
 +
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper.
  
* [https://github.com/disks86/VK9 VK9] runs Direct3D 9 applications on Windows or Linux (with [[Wine]]) over Vulkan.
+
;VKD3D-Proton
 +
:A fork of VKD3D funded by Valve, which is more ahead and experimentally supports DXR via VK_KHR_ray_tracing.
  
 +
;Gallium Nine
 +
:An implementation of the Direct3D 9 library on top of the Gallium driver for Linux. By using calls native to Linux, applications running under Wine run "at near-native speeds" according to the maintainers. The caveat is that this only works on Mesa, not NVIDIA's proprietary driver.
  
 +
;Zink
 +
:A "just-in-case" implementation of OpenGL on top of Vulkan first introduced in 2018 by Collabora for the Mesa driver.<ref>Erik Faye-Lund (October 31, 2018). [https://www.collabora.com/news-and-blog/blog/2018/10/31/introducing-zink-opengl-implementation-vulkan/ Introducing Zink, an OpenGL implementation on top of Vulkan]. Collabora.</ref>
  
==External links==
+
==See also==
[https://www.gamingonlinux.com/articles/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely.13868/comment_id=151939 State of Direct3D 9-12 translation layers] by DXVK author YoRHa-2B (2019-04-02)
+
* [[Compatibility layers]] - Allows software written for one platform to run on another.
  
 
==References==
 
==References==
 
{{Reflist}}
 
{{Reflist}}
 +
 +
==External links==
 +
* [https://www.gamingonlinux.com/articles/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely.13868/page=2#r151939 State of Direct3D 9-12 translation layers] by DXVK author YoRHa-2B (2019-04-02)
 +
 +
[[Category:Not really emulators]]

Revision as of 15:08, 19 March 2022

A wrapper is a reimplementation of a library, where the goal is to substitute the original API with a better-supported interface. It works as a drop-in replacement for the original library, since a lot of software usually bundled it as-is without any fine-tuning. Wrappers are most common for proprietary interfaces that are either abandoned or otherwise platform-specific.

90's APIs

During the 90s, many PC game developers chose to use 3Dfx's Glide API for their Voodoo graphics cards. These developers didn't anticipate that 3Dfx would run out of money trying to compete with NVIDIA's offering, and in 2000 NVIDIA bought them for their IP assets (presumably to improve their own cards). Despite the API getting an open source release in 2003, neither NVIDIA or ATI adopted support for Glide in their own drivers, meaning a wrapper is now needed to play these games with hardware acceleration. Or, if we're lucky, the game gets ported or reimplemented to use other APIs instead.

Even games using older versions of DirectDraw or Direct3D can benefit from wrappers, since those interfaces may not even work properly on newer systems. Wrappers can even enable various overrides and enhancements, such as ReShade.

Name OS Latest Version Translates Into FOSS Active Recommended
nGlide Windows 2.10 Glide Vulkan, Direct3D 9
dgVoodoo2 Windows 2.8.2 Glide, DirectX 1-9 Direct3D 11, Direct3D 12
WineD3D Windows Linux macOS 9.0 (Linux, macOS)
9.6 (Windows)
DirectX 1-11 Vulkan, OpenGL
DXGL Windows 0.5.22 DirectX 1-7 OpenGL TBD
Glidos Windows 1.53b Glide (DOS) ? TBD
OpenGlide Windows 0.09 Alpha Glide OpenGL
psVoodoo Windows 0.13 Glide Direct3D 9
glrage Windows r10 ATI3DCIF, DirectDraw 2 OpenGL 3.3

Comparisons

nGlide
Currently the best Glide wrapper, supporting all three public versions (2.11, 2.60 and 3.10) but it's closed-source. It originally only used Direct3D 9 until Vulkan output was added in 2.0, allowing it to work under Linux using Wine 2.10.0 and newer.[1] nGlide also supports high resolution modes. See the compatibility list.
dgVoodoo2
Targets Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw and Direct3D up to version 7, Direct3D 8.1, and Direct3D 9. Outputs Direct3D 11 with different device types as wrapping output such as hardware or software rendering.
WineD3D
Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. It works pretty well for running older Direct3D games, though it does not come with a Glide implementation of its own. A custom build incorporating Vulkan support is available for Windows here.
DXGL
Reimplements DirectDraw using OpenGL. It is considered alpha software despite many applications working.
glrage
Reimplements ATI3DCIF, an API from ATI used in a handful of games, and DirectDraw 2 over OpenGL. Originally designed specifically for Tomb Raider 1/UB patched with ATIRage patch, currently also supports Assault Rigs and Wipeout. Additionally, it applies some improvements, fixes and QoL changes to the games.

2000's and later APIs

Modern Windows games will likely need one of these wrappers to work on other platforms. Usually these are not separate downloads, and will come packaged into compatibility layers like Proton, Wine, or CrossOver.

Name OS Latest Version Translates Into FOSS Active Recommended
DXVK Linux 2.3 Direct3D 9-11 Vulkan
VKD3D-Proton Linux 2.6 Direct3D 12 Vulkan
vkd3d Linux 1.11 Direct3D 12 Vulkan
WineD3D Windows Linux macOS 9.0 (Linux, macOS)
9.6 (Windows)
Direct3D 1-11 OpenGL
MoltenVK macOS iOS 1.3.204.1 Vulkan Metal
Gallium Nine Linux v0.8 Direct3D 9 Gallium ~ WIP
Zink Linux git OpenGL Vulkan TBD
d3d8to9 Windows git Direct3D 8 Direct3D 9

Comparisons

DXVK
Was originally designed to accelerate support for Direct3D 11 games running under Wine since a native implementation seemed unlikely. Today it is bundled into Proton. Later merged D9VK to add Direct3D 9 support.
WineD3D
Wine's internal wrapper for Direct3D 1-11 that targets OpenGL. For newer APIs it has more bugs than DXVK. A custom build incorporating Vulkan support is available for Windows here.
MoltenVK
Developed by the Brenwill Workshop under the Khronos Group, it reimplements Vulkan for Metal. Emulators like Dolphin and DuckStation use MoltenVK instead of a native Metal renderer to support Apple devices.
vkd3d
Wine's work-in-progress Direct3D 12 to Vulkan wrapper.
VKD3D-Proton
A fork of VKD3D funded by Valve, which is more ahead and experimentally supports DXR via VK_KHR_ray_tracing.
Gallium Nine
An implementation of the Direct3D 9 library on top of the Gallium driver for Linux. By using calls native to Linux, applications running under Wine run "at near-native speeds" according to the maintainers. The caveat is that this only works on Mesa, not NVIDIA's proprietary driver.
Zink
A "just-in-case" implementation of OpenGL on top of Vulkan first introduced in 2018 by Collabora for the Mesa driver.[2]

See also

References

External links