Wrappers: Difference between revisions
Useful when there is a long gap between releases, like between 2.7.1 and 3.0 |
|||
| (166 intermediate revisions by 28 users not shown) | |||
| Line 1: | Line 1: | ||
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 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. | ||
See [[High and low-level emulation]] page for more information about terms like "[[Hypervisors|hypervisors]]", "[[Simulators|simulators]]", "[[Compatibility_layer|compatibility layers]]", "[[Wrappers|wrappers]]", "[[FPGA]]" and "[[:Category:Emulators|software emulators]]". | |||
;*Lists of Glide games [https://www.vogons.org/viewtopic.php?t=534 here], [https://www.vogons.org/viewtopic.php?t=886 here], and [https://www.zeus-software.com/downloads/nglide/compatibility here] | |||
;*List of other proprietary API games [https://www.vogons.org/viewtopic.php?p=279817 here] | |||
;*PCGamingWiki's [https://www.pcgamingwiki.com/wiki/Category:Graphics_API lists] of APIs of games<ref group=Note>As of April 29, 2026, only the Direct3D 12 (except Early Access), 10, 9Ex and 8 lists (and potentially Vulkan, Mantle and Metal) are practically reliable (barring a handful of titles). Note that there are more games using the said APIs which have not yet had the API information added on their pages. The other lists still require validation; it's a WIP. People are encouraged to contribute by directly checking the games with the appropriate tools. The details are on the PCGW editing guide.</ref> | |||
;*See [[Sound and audio|audio API and middleware]] supported games list; | |||
::*[https://www.dosdays.co.uk/topics/3daudio_games.php Surround sound] ([https://docs.google.com/document/d/1SyOw7D0H2ecGxzPsCFEFKwupU8LuazUrlkI-gVTpyhc/edit?tab=t.0#heading=h.nu0xc1c2nmo4 #2], [https://www.pcgamingwiki.com/wiki/List_of_games_that_support_surround_sound #3]) | |||
::*[[wikipedia:Environmental_Audio_Extensions#Games_with_EAX_Support|EAX]] ([https://www.pcgamingwiki.com/wiki/List_of_games_that_support_EAX #2]). | |||
::*[https://www.pcgamingwiki.com/wiki/Miles_Sound_System List of Miles Sound System (MSS) & Audio Interface Library (AIL) supported games] | |||
::*[https://www.pcgamingwiki.com/wiki/FMOD List of FMOD titles] | |||
::*[https://www.pcgamingwiki.com/wiki/Wwise List of Wwise titles] | |||
::*[[wikipedia:QSound#Selected_games_using_QSound|List of games using QSound]] | |||
::*[[Wikipedia:OpenAL#Games|OpenAL]] | |||
::*[https://www.mobygames.com/attributes/attribute/1274/ DirectSound3D] | |||
=='90s APIs== | |||
(Glide, DirectDraw 1-7, Direct3D 2-7<ref group=N name=>Direct3D 1 is not listed, since DirectX 1 did not have a Direct3D component. The first release was Direct3D 2. The internal numbers of Direct3D pre-7 actually differ from the corresponding DirectX, but they were not referred to as such, outside of low-level dev material, possibly to avoid confusion.</ref>, OpenGL 1.x) | |||
During the 90s, many [[PC Emulator Comparisons|IBM-Compatible]] PC game developers used 3dfx's Glide API for hardware accelerated 3D games, which is compatible only with 3dfx Voodoo cards. Neither NVIDIA nor ATI supported Glide, hence a wrapper is needed to play Glide games on non-Voodoo hardware. | |||
Games using older versions of DirectDraw or Direct3D can also benefit from wrappers, since their interfaces may not work properly on newer systems. Wrappers can also 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" colspan="1" |Type | |||
! scope="col"|Name | ! scope="col"|Name | ||
! scope="col"| | ! scope="col"|Platform(s) | ||
! scope="col"|Latest | ! scope="col"|Latest version | ||
! scope="col"|Translates | ! scope="col"|Translates | ||
! scope="col"|Into | ! scope="col"|Into | ||
! scope="col"| | ! scope="col"|Compatibility | ||
! scope="col"|[[Licensing|License]] | |||
! scope="col"|Active | ! scope="col"|Active | ||
! scope="col"|[[Recommended Emulators|Recommended]] | ! scope="col"|[[Recommended Emulators|Recommended]] | ||
|- | |- | ||
| | | rowspan=17 |Graphics | ||
| | |||
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2] | |[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}] | |[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}] | ||
|Glide | |Glide 2.11-3.10<br>DirectDraw 1-7<br>Direct3D 2-7 | ||
|Direct3D 11, | |Direct3D 11, 12 | ||
|{{ | |[https://www.vogons.org/viewforum.php?f=59 ?] ||{{Red}} {{License|Proprietary}} ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[ | |[[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><ref group=N name=XPcompatibility>DxWnd 2.05.70, WineD3D 1.7.52 or 1.9.7-staging(partially) versions are the latest compatible versions with Windows XP (if [https://github.com/Skulltrail192/One-Core-API-Binaries OneCoreAPI] is '''not''' installed to OS), for getting these old "WineD3D for Windows" builds use [https://www.vogonsdrivers.com/wrappers/files/DirectX/OpenGL/WineD3D/2000+/ this link]. Also you can use [https://github.com/JHRobotics/wine9x?tab=readme-ov-file#wined3d-port-for-windows-9x JHRobotics port for using WineD3D on Windows 9x (Wine9x) or Windows XP].</ref> | |||
|DirectDraw 1-7<br>Direct3D 2-7 | |||
|Vulkan<br>OpenGL | |||
|[https://appdb.winehq.org/objectManager.php?sClass=application&sTitle=Browse%20Applications&sOrderBy=appName&bAscending=true ?] ||{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{✓}} | |||
|- | |||
|[https://github.com/WinterSnowfall/d7vk D7VK] | |||
|align=left|{{Icon|Windows|Linux}} | |||
|[https://github.com/WinterSnowfall/d7vk/releases/latest 1.7] | |||
|Direct3D 2-6 (experimental)<br/>Direct3D 7 | |||
|Vulkan | |||
| ||{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | |||
|- | |||
|[https://sourceforge.net/projects/dxwnd DxWnd] | |||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[ | |[https://sourceforge.net/projects/dxwnd/files/Latest%20build/ {{DxWndVer}}]<ref group=N name=XPcompatibility></ref> | ||
| | |DirectDraw 1-7<br>Direct3D 2-7 | ||
| | |<small>no API conversion</small> | ||
|{{ | | ||{{Green}} {{License|GPLv2}} ({{License|Copyleft}}) ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[ | |[https://github.com/ata4/glrage glrage] | ||
|align=left|{{Icon|Windows | |align=left|{{Icon|Windows}} | ||
| | |[https://github.com/ata4/glrage/releases/latest r10] | ||
|ATI3DCIF<br>DirectDraw 2 | |||
| | |OpenGL 3.3 | ||
|{{ | | ||{{Green}} {{License|LGPLv3}} ({{License|Copyleft}}) ||{{✗}} ||{{✓}} | ||
|- | |- | ||
|[https:// | |[https://apps.microsoft.com/detail/9NRCQJ8VLGTK?hl=en-us&gl=US RReady (Rendition Verite wrapper)] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https:// | |[https://apps.microsoft.com/detail/9NRCQJ8VLGTK?hl=en-us&gl=US RReady Rendition Verité] | ||
| | |RRedline<br>Speedy3D | ||
|OpenGL | |OpenGL | ||
|{{ | | ||{{Red}} {{License|Proprietary}} ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[https:// | |[https://www.vogons.org/viewtopic.php?t=104456 S3d wrappers] | ||
|align=left|{{Icon|Windows}} | |||
|[https://www.vogons.org/viewtopic.php?t=104456 S3d wrappers] | |||
|S3D<br>MSI95 | |||
|Software | |||
| ||{{Red}} {{License|Proprietary}} ||{{✓}} ||{{✓}} | |||
|- | |||
|[http://www.zeus-software.com/downloads/nglide nGlide] | |||
|align=left|{{Icon|Windows}} | |||
|[http://www.zeus-software.com/downloads/nglide 2.10] | |||
|Glide | |||
|Vulkan<br>Direct3D 9 | |||
| ||{{Red}} {{License|Proprietary}} ||{{✗}} ||{{✓}} | |||
|- | |||
|[https://github.com/elishacloud/dxwrapper DxWrapper] | |||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https:// | |[https://github.com/elishacloud/dxwrapper/releases {{DxWrapperVer}}] | ||
|DirectDraw 1-7<br>Direct3D 2-7 | |||
| | |Direct3D 9<ref group=N name=dxwrapper>Through '''dd7to9'''</ref><br>Direct3D 7 (for Direct3D 2-6)<br>DirectDraw 7 (for DirectDraw 1-6) | ||
|{{ | |[https://github.com/elishacloud/dxwrapper/wiki/DirectDraw-to-Direct3D9-Conversion#table-key ?] ||{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/narzoul/DDrawCompat DDrawCompat] | |[https://github.com/narzoul/DDrawCompat DDrawCompat] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https://github.com/narzoul/DDrawCompat/tags | |[https://github.com/narzoul/DDrawCompat/tags {{DDrawCompatVer}}] | ||
|DirectDraw 1-7 | |DirectDraw 1-7<br>Direct3D 2-7<br>GDI (Partially) | ||
|<small>no API conversion</small> | |<small>no API conversion</small> | ||
|{{ | | ||{{Green}} {{License|BSD0}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/ | |[https://github.com/FunkyFr3sh/cnc-ddraw cnc-ddraw] | ||
|align=left|{{Icon|Windows}}<br>{{Icon|Linux|macOS}}<ref group=N name=cnc-ddraw>Linux and macOS are supported through wine.</ref> | |||
|[https://github.com/FunkyFr3sh/cnc-ddraw/releases {{cnc-ddrawVer}}] | |||
|DirectDraw 1-7 | |||
|GDI<br>OpenGL<br>Direct3D 9 | |||
| ||{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | |||
|- | |||
|[https://www.dxgl.org/ DXGL] | |||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https:// | |[https://www.dxgl.org/downloads/ {{DXGLVer}}] | ||
|DirectDraw 1-7 | |DirectDraw 1-7 | ||
| | |OpenGL | ||
|{{ | | ||{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{~}} | ||
|- | |||
|[https://mesa3d.org/ Mesa3D] | |||
|align=left|{{Icon|Windows|Linux}} | |||
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.frag {{MesaVer}}] | |||
|OpenGL 1.x | |||
|Software (CPU) | |||
| ||{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | |||
|- | |- | ||
|[http://www.glidos.net/ Glidos] | |[http://www.glidos.net/ Glidos] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[http://www.glidos.net/download.html 1. | |[http://www.glidos.net/download.html 1.59] | ||
|Glide <small>(DOS)</small> | |Glide <small>(DOS)</small> | ||
|? | |? | ||
|{{✗}} ||{{✗}} ||{{ | | ||{{?}} ||{{✓}} ||{{✗}} | ||
|- | |||
|[http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ dgVoodoo] | |||
|align=left|{{Icon|Windows}} | |||
|[http://dege.freeweb.hu/dgVoodoo/dgVoodoo/ v1.50b2] | |||
|Glide 2.11-2.45 | |||
|Direct3D 7, 9 | |||
| ||{{Red}} {{License|Proprietary}} ||{{✗}} ||{{✗}} | |||
|- | |- | ||
|[http://openglide.sourceforge.net/ OpenGlide] | |[http://openglide.sourceforge.net/ OpenGlide] | ||
| Line 87: | Line 147: | ||
|Glide | |Glide | ||
|OpenGL | |OpenGL | ||
|{{ | | ||{{Green}} {{License|Apache2}} ({{License|Permissive}}) ||{{✗}} ||{{✗}} | ||
|- | |- | ||
|[https://sourceforge.net/projects/psvoodoo/ psVoodoo] | |[https://sourceforge.net/projects/psvoodoo/ psVoodoo] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https://sourceforge.net/projects/psvoodoo/files/latest/download 0. | |[https://sourceforge.net/projects/psvoodoo/files/latest/download 0.17] | ||
|Glide | |Glide | ||
|Direct3D 9 | |Direct3D 9 | ||
| | | ||{{Green}} {{License|LGPL}} ({{License|Copyleft}}) ||{{✗}} ||{{✗}} | ||
| | |||
|{{ | |||
|- | |- | ||
| rowspan=2 |Input | |||
|[https://github.com/csutorasa/XOutput XOutput] | |[https://github.com/csutorasa/XOutput XOutput] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
| Line 108: | Line 162: | ||
|DirectInput | |DirectInput | ||
|XInput | |XInput | ||
|{{✓}} ||{{✓}} ||{{✓}} | | ||{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | ||
|- | |||
|[https://github.com/elishacloud/dxwrapper DxWrapper] | |||
|align=left|{{Icon|Windows}} | |||
|[https://github.com/elishacloud/dxwrapper/releases {{DxWrapperVer}}] | |||
|DirectInput 1-7 | |||
|DirectInput 8 | |||
| ||{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | |||
|- | |- | ||
| rowspan=1 |Sound | |||
|[https://github.com/kcat/dsoal DSOAL] | |[https://github.com/kcat/dsoal DSOAL] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https://github.com/kcat/dsoal/actions git] | |[https://github.com/kcat/dsoal/actions git]<br/>[https://github.com/pachuco/dsoal-XP dsoal-XP] | ||
|DirectSound | |DirectSound | ||
|OpenAL | |OpenAL | ||
|{{ | | ||{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{TBD}} | ||
|- | |- | ||
|} | |} | ||
<references group=N /> | <references group=N /> | ||
===Comparisons=== | ===Comparisons=== | ||
;dgVoodoo2 | ;dgVoodoo2 | ||
:Supports Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw, and Direct3D up to version 7. Outputs Direct3D 11 and Direct3D 12 with different device types as wrapping output, such as hardware or software rendering. | :Supports Glide 2.11, 2.45, 3.10, 3.1 Napalm, all versions of DirectDraw, and Direct3D up to version 7. Outputs Direct3D 11 and Direct3D 12 with different device types as wrapping output, such as hardware or software rendering. | ||
| Line 131: | Line 189: | ||
;[[Wine|WineD3D]] | ;[[Wine|WineD3D]] | ||
:Wine's internal wrapper. Wraps DirectDraw and Direct3D up to 7 into Vulkan and 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 is available for Windows [https://fdossena.com/?p=wined3d/index.frag here]. | :Wine's internal wrapper. Wraps DirectDraw and Direct3D up to 7 into Vulkan and 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 is available for Windows [https://fdossena.com/?p=wined3d/index.frag here]. | ||
;nGlide | |||
:A great 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]. | |||
;DXGL | ;DXGL | ||
| Line 138: | Line 199: | ||
: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. | :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. | ||
== | ==2000s and later APIs== | ||
(Direct3D 8 and higher, OpenGL | (Direct3D 8 and higher, OpenGL 2.x and higher, Vulkan) | ||
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]. | 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]. | ||
The term "wrapper" is not entirely accurate for some software listed in this table, such as OpenAL Soft. Unlike a true wrapper, which translates or redirects API calls to another system (e.g., DSOAL mapping OpenAL to DirectSound3D), OpenAL Soft is a complete, open-source software implementation of the OpenAL 3D audio API. It directly provides full functionality, including positional audio, distance attenuation, Doppler effects, and environmental audio processing, through software-based rendering. Operating independently of hardware acceleration, OpenAL Soft supports multiple platforms (e.g., Linux, Windows, macOS) and audio backends (e.g., ALSA, PulseAudio, WASAPI), making it a standalone audio engine rather than a wrapper layer. | |||
{| class="wikitable sortable" style="text-align:center;" | {| class="wikitable sortable" style="text-align:center;" | ||
|- | |- | ||
! scope="col"|Name | ! scope="col"|Name | ||
! scope="col"| | ! scope="col"|Platform(s) | ||
! scope="col"|Latest Version | ! scope="col"|Latest Version | ||
! scope="col"|Translates | ! scope="col"|Translates | ||
! scope="col"|Into | ! scope="col"|Into | ||
! scope="col"| | ! scope="col"|[[Licensing|License]] | ||
! scope="col"|Active | ! scope="col"|Active | ||
! scope="col"|[[Recommended Emulators|Recommended]] | ! scope="col"|[[Recommended Emulators|Recommended]] | ||
| Line 156: | Line 219: | ||
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2] | |[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2 | |[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2 {{DgVoodoo2Ver}}] | ||
|Direct3D 8-9 | |Direct3D 8-9 | ||
|Direct3D 11, | |Direct3D 11, 12 | ||
|{{ | |{{Red}} {{License|Proprietary}} ||{{✓}} ||{{✓}} | ||
| | |||
|- | |- | ||
|[https://github.com/doitsujin/dxvk DXVK] | |[https://github.com/doitsujin/dxvk DXVK] | ||
|align=left|{{Icon|Windows|Linux}} | |align=left|{{Icon|Windows|Linux}} | ||
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}] | |[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]<br>[https://github.com/doitsujin/dxvk/actions/workflows/artifacts.yml?query=branch%3Amaster git artifacts] | ||
|Direct3D | |Direct3D 8-11 | ||
|Vulkan | |Vulkan | ||
|{{ | |{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[[Wine|WineD3D]] | |[[Wine|WineD3D]] | ||
| Line 186: | Line 235: | ||
|[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small> | |[https://wiki.winehq.org/Download {{WineVer}}] <small>(Linux, macOS)</small><br/>[https://fdossena.com/?p=wined3d/index.frag {{WineDevVer}}] <small>(Windows)</small> | ||
|Direct3D 8-11 | |Direct3D 8-11 | ||
|Vulkan | |Vulkan<br>OpenGL | ||
|{{✓}} ||{{✓}} ||{{✓}} | |{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{✓}} | ||
|- | |||
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton] | |||
|align=left|{{Icon|Windows|Linux}} | |||
|[https://github.com/HansKristian-Work/vkd3d-proton/releases {{VKD3D-ProtonVer}}] | |||
|Direct3D 12 | |||
|Vulkan | |||
|{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{✓}} | |||
|- | |||
|[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/zink.rst Zink] | |||
|align=left|{{Icon|Windows|Linux}} | |||
|[https://gitlab.freedesktop.org/mesa/mesa/-/tree/main/src/gallium/drivers/zink git] <br/>[https://github.com/pal1000/mesa-dist-win pal1000's Windows builds]<ref group=N name=Zink>Requires setting environment variable GALLIUM_DRIVER=zink</ref> | |||
|OpenGL 2.1-4.6 | |||
|Vulkan | |||
|{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | |||
|- | |||
|[https://github.com/crosire/d3d8to9/ d3d8to9] | |||
|align=left|{{Icon|Windows}} | |||
|[https://github.com/crosire/d3d8to9/releases 1.12.0] | |||
|Direct3D 8 | |||
|Direct3D 9 | |||
|{{Green}} {{License|BSD2}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | |||
|- | |- | ||
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php Mesa3D for Windows + MesaInjector] | |[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php Mesa3D for Windows + MesaInjector] | ||
| Line 194: | Line 264: | ||
|OpenGL | |OpenGL | ||
|Software | |Software | ||
|{{ | |{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[https://github.com/ | |[https://github.com/libcg/grvk grvk] | ||
|align=left|{{Icon|Windows | |align=left|{{Icon|Windows}} | ||
|[https://github.com/ | |[https://github.com/libcg/grvk/tags 0.5.0] | ||
| | |Mantle | ||
|Vulkan | |Vulkan 1.2 | ||
|{{ | |{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | ||
| | |||
|{{✓}} ||{{✓ | |||
|- | |- | ||
|[https://github.com/KhronosGroup/MoltenVK MoltenVK] | |[https://github.com/KhronosGroup/MoltenVK MoltenVK] | ||
| Line 215: | Line 278: | ||
|Vulkan | |Vulkan | ||
|Metal | |Metal | ||
|{{ | |{{Green}} {{License|Apache2}} ({{License|Permissive}}) ||{{✓}} ||{{✓}} | ||
|- | |- | ||
| | |KosmicKrisp | ||
|align=left|{{Icon| | |align="left"|{{Icon|macOS}} | ||
| | | | ||
| | |Vulkan 1.3/1.4 | ||
| | |Metal | ||
|{{ | |{{Green}} {{License|MIT}} ({{License|Permissive}}) | ||
|{{✓}} | |||
|{{TBD}} | |||
|- | |- | ||
|[https:// | |[https://github.com/kcat/openal-soft OpenAL Soft] | ||
|align=left|{{Icon| | |align=left|{{Icon|Windows}} | ||
|[https:// | |[https://github.com/kcat/openal-soft/releases 1.24.3] | ||
| | |OpenAL | ||
| | |<small>no API conversion</small> | ||
|{{ | |{{Green}} {{License|LGPL}} ||{{✓}} ||{{✓}} | ||
|- | |- | ||
|[https:// | |[https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/drivers/d3d12.rst GLon12] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows|Xbox}} | ||
|[https://github.com/ | |[https://gitlab.freedesktop.org/mesa/mesa/-/tree/main/src/gallium/drivers/d3d12 git] <br/>[https://github.com/pal1000/mesa-dist-win pal1000's Windows builds] | ||
| | |OpenGL | ||
|Direct3D | |Direct3D 12 | ||
|{{ | |{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/microsoft/D3D9On12 D3D9On12] | |[https://github.com/microsoft/D3D9On12 D3D9On12] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https://github.com/microsoft/D3D9On12 | |[https://github.com/microsoft/D3D9On12 git] | ||
|Direct3D 9 | |Direct3D 9 | ||
|Direct3D 12 | |Direct3D 12 | ||
|{{ | |{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/microsoft/D3D11On12/ D3D11On12] | |[https://github.com/microsoft/D3D11On12/ D3D11On12] | ||
|align=left|{{Icon|Windows}} | |align=left|{{Icon|Windows}} | ||
|[https://github.com/microsoft/D3D11On12/ | |[https://github.com/microsoft/D3D11On12/ git] | ||
|Direct3D 11 | |Direct3D 11 | ||
|Direct3D 12 | |Direct3D 12 | ||
|{{ | |{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/bo3b/3Dmigoto/ 3Dmigoto] | |[https://github.com/bo3b/3Dmigoto/ 3Dmigoto] | ||
| Line 257: | Line 322: | ||
|Direct3D 11 <small>(Stereo3D)</small> | |Direct3D 11 <small>(Stereo3D)</small> | ||
|<small>no API conversion</small> | |<small>no API conversion</small> | ||
|{{ | |{{Green}} {{License|GPLv3}} ({{License|Copyleft}}) ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://www.pcgamingwiki.com/wiki/Glossary:VorpX VorpX] ($) | |[https://www.pcgamingwiki.com/wiki/Glossary:VorpX VorpX] ($) | ||
| Line 264: | Line 329: | ||
|Direct3D 11 <small>(Stereo3D)</small> | |Direct3D 11 <small>(Stereo3D)</small> | ||
|<small>no API conversion</small> | |<small>no API conversion</small> | ||
|{{ | |{{Red}} {{License|Proprietary}} ||{{✓}} ||{{~}} | ||
|- | |- | ||
|[https://github.com/darlinghq/indium Indium] | |||
|align=left|{{Icon|Linux}} | |||
| | |||
|Metal | |||
|Vulkan | |||
|{{Green}} {{License|0BSD}} ({{License|Permissive}}) ||{{~}} ||{{~}} | |||
|- | |||
|vkd3d | |||
|align=left|{{Icon|Linux}} | |||
|[https://source.winehq.org/git/vkd3d.git/ {{VKD3DVer}}] | |||
|Direct3D 12 | |||
|Vulkan | |||
|{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✓}} ||{{✗}} | |||
|- | |||
|[https://github.com/AlpyneDreams/d8vk D8VK] | |||
|align=left|{{Icon|Windows|Linux}} | |||
|[https://github.com/AlpyneDreams/d8vk/releases 1.0] | |||
|Direct3D 8 | |||
|Vulkan | |||
|{{Green}} {{License|zlib}} ({{License|Permissive}}) ||{{✗}} ||{{✗}}<ref group=N name=d8vk>Merged to DXVK. Use that instead</ref> | |||
|- | |||
|[https://github.com/iXit/wine-nine-standalone Gallium Nine] | |||
|align=left|{{Icon|Linux}} | |||
|[https://github.com/iXit/wine-nine-standalone/releases v0.10] <small>(WIP)</small> | |||
|Direct3D 9 | |||
|Gallium | |||
|{{Green}} {{License|LGPLv21}} ({{License|Copyleft}}) ||{{✗}} ||{{✗}}<ref group=N name=galliumnine>Deprecated in favor of more portable translation layers, such as DXVK or WineD3D</ref> | |||
|- | |||
|[https://github.com/ValveSoftware/ToGL ToGL] | |||
|align=left|{{Icon|Windows|Linux}} | |||
| | |||
|Direct3D 9.0c | |||
|OpenGL | |||
|{{Green}} {{License|MIT}} ({{License|Permissive}}) ||{{✗}} ||{{✗}} | |||
|} | |} | ||
<references group=N /> | |||
===Comparisons=== | ===Comparisons=== | ||
| Line 273: | Line 373: | ||
;DXVK | ;DXVK | ||
: | :It was originally designed to accelerate support for Direct3D 11 games running under [[Wine]] since a native implementation seemed unlikely. Today it is bundled with [[Proton]]. D9VK was later merged to add Direct3D 9 support, and D8VK was also merged to add Direct3D 8 support. | ||
;WineD3D | ;WineD3D | ||
| Line 279: | Line 379: | ||
;VKD3D-Proton | ;VKD3D-Proton | ||
:A fork of VKD3D funded by Valve, which is more | :A fork of VKD3D funded by Valve, which is more developed and has experimental support for DXR via VK_KHR_ray_tracing. Requires DXVK's dxgi.dll file to work on Windows. | ||
;vkd3d | ;vkd3d | ||
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper. | :Wine's work-in-progress Direct3D 12 to Vulkan wrapper. | ||
;d3d8to9 | |||
:Not as versatile as dgVoodoo2, however it's the only wrapper that can wrap Direct3D 8 into 9. Its main advantage is Windows XP support, which dgVoodoo2 lacks. It's specifically useful for Windows XP running in VMware, since VMware's Direct3D 8 acceleration has graphical and/or performance issues. | |||
;Indium | |||
:A implementation of Metal on top of Vulkan, originally devolped by iglunix and later by Darling the open-source macOS compatibility layer. | |||
;MoltenVK | ;MoltenVK | ||
:Developed by the Brenwill Workshop under the Khronos Group, it | :Developed by the Brenwill Workshop under the Khronos Group, it re-implements Vulkan for Metal. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices. | ||
;Gallium Nine | ;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 | :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 it only works on Mesa, not NVIDIA's proprietary driver. | ||
;Zink | ;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> | :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> | ||
==See also== | ==See also== | ||
* [[Compatibility layers]] - Allows software written for one platform to run on another. | * [[Compatibility layers]] - Allows software written for one platform to run on another. | ||
==Notes== | |||
<references group=Note /> | |||
==References== | ==References== | ||
| Line 303: | Line 409: | ||
==External links== | ==External links== | ||
* [https://www.gamingonlinux.com/ | ;* [https://www.vogons.org/viewtopic.php?f=9&t=36412 VOGONS: The Wrapper Collection Project] | ||
;* [https://www.pcgamingwiki.com/wiki/Glossary:Display_wrapper PCGamingWiki: Display wrapper] | |||
* [https://www.gamingonlinux.com/2019/04/dxvk-102-is-out-with-some-bug-fixes-d9vk-seems-to-be-progressing-nicely/comment_id=151939 State of Direct3D 9-12 translation layers] by DXVK author YoRHa-2B (2019-04-02) | |||
* [https://www.youtube.com/@Levan4KGaming/search?query=performance%20benchmark Levan's Wrapper Benchmarks] | |||
[[Category: | [[Category:Compatibility layers|*]] | ||