Changes

Jump to navigation Jump to search

Wrappers

3,975 bytes added, 11:30, 27 February 2023
m
90's APIs
==90's APIs==
(Glide, DirectDraw 1-7, Direct3D 2-7, OpenGL1.1-1.2)
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.
|{{✗}} ||{{✓}} ||{{✓}}
|-
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2]
|align=left|{{Icon|Windows}}
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]
|Glide, DirectDraw 1-7, Direct3D 2-97
|Direct3D 11, Direct3D 12
|{{✗}} ||{{✓}} ||{{✓}}
|-
|[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
|{{✗}} ||{{✗}} ||{{✓}}
|-
|[[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}}] <ref group=N name=XPcompatibility>DxWnd 2.05.70, WineD3D 1.7.52 or 1.9.7-staging(partially): latest versions compatible with WinXP (without [https://github.com/Skulltrail192/One-Core-API-Binaries OneCoreAPI]), for these old builds use [https://www.vogonsdrivers.com/wrappers/files/DirectX/OpenGL/WineD3D/2000+/ this link]</ref> <small>(Windows)</small>|DirectDraw 1-7, Direct3D 2-117
|Vulkan, OpenGL
|{{✓}} ||{{✓}} ||{{✓}}
|OpenGL
|{{✓}} ||{{✓}} ||{{TBD}}
|-
|[https://sourceforge.net/projects/dxwnd DxWnd]
|align=left|{{Icon|Windows}}
|[https://sourceforge.net/projects/dxwnd/files/Latest%20build/ v2.05.90]<ref group=N name=XPcompatibility></ref>
|DirectDraw 1-7, Direct3D 2-7
|OpenGL, Direct3D 8-11
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/narzoul/DDrawCompat DDrawCompat]
|align=left|{{Icon|Windows}}
|[https://github.com/narzoul/DDrawCompat/tags v0.4.0]
|DirectDraw 1-7, Direct3D 2-7, GDI (Partially)
|<small>no API conversion</small>
|{{✓}} ||{{✓}} ||{{TBD}}
|-
|[https://github.com/elishacloud/dxwrapper dxwrapper]
|align=left|{{Icon|Windows}}
|[https://github.com/elishacloud/dxwrapper/tags v1.0.6542.21]
|DirectDraw 1-7<br>Direct3D 2-6<br> DirectInput 1-7
|Direct3D 9 (for DirectDraw)<br>Direct3D 7 (for Direct3D 2-6)<br>DirectInput 8
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[http://www.glidos.net/ Glidos]
|OpenGL 3.3
|{{✓}} ||{{✗}} ||{{✓}}
|-
|[https://github.com/csutorasa/XOutput XOutput]
|align=left|{{Icon|Windows}}
|[https://github.com/csutorasa/XOutput/tags 3.32]
|DirectInput
|XInput
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/kcat/dsoal DSOAL]
|align=left|{{Icon|Windows}}
|[https://github.com/kcat/dsoal/actions git]
|DirectSound
|OpenAL
|{{✓}} ||{{✓}} ||{{TBD}}
|-
|}
 
'''Note:''' Direct3D 1 doesn't exist, since DirectX 1 did not have a Direct3D component. The first release was Direct3D 2.
<references group=N />
===Comparisons===
;dgVoodoo2
:Targets Supports 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 and Direct3D 12 with different device types as wrapping output , such as hardware or software rendering.
;[[Wine|WineD3D]]
:Wine's internal wrapper for . Wraps DirectDraw and Direct3D 2-11 that targets 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 incorporating Vulkan support is available for Windows [https://fdossena.com/?p=wined3d/index.frag here].
;DXGL
==2000's and later APIs==
(Direct3D 8-9and higher, OpenGL1.3 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].
! scope="col"|[[Recommended Emulators|Recommended]]
|-
|[http://dege.freeweb.hu/dgVoodoo2/ dgVoodoo2]
|align=left|{{Icon|Windows}}
|[http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ {{DgVoodoo2Ver}}]
|Glide, DirectDraw 1-7, Direct3D 28-9
|Direct3D 11, Direct3D 12
|{{✗}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/AlpyneDreams/d8vk D8VK]
|align=left|{{Icon|Windows}}
|[https://github.com/AlpyneDreams/d8vk/releases 0.1.0]
|Direct3D 8
|Vulkan
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/doitsujin/dxvk DXVK]
|align=left|{{Icon|Windows|Linux}}
|[https://github.com/doitsujin/dxvk/releases {{DXVKVer}}]
|Direct3D 9-11
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/HansKristian-Worklibcg/vkd3d-proton VKD3D-Protongrvk grvk]|align=left|{{Icon|LinuxWindows}}|[https://github.com/HansKristian-Worklibcg/vkd3d-protongrvk/releases 2tags 0.65.0]|Direct3D 12Mantle
|Vulkan
|{{✓}} ||{{✓}} ||{{✓}}
|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 28-11
|Vulkan, OpenGL
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php Mesa3D for Windows + MesaInjector]
|align=left|{{Icon|Windows}}
|[https://downloads.fdossena.com/Projects/Mesa3D/Builds/index.php 20.1.8] <br/>[https://github.com/lightningterror/Mesa3D-Windows lightningterror's builds] <br/>[http://www.vogonsdrivers.com/wrappers/files/OpenGL/GDI/Mesa/ vogonsdrivers builds]
|OpenGL
|Software
|{{✓}} ||{{✓}} ||{{✓}}
|-
|[https://github.com/HansKristian-Work/vkd3d-proton VKD3D-Proton]
|align=left|{{Icon|Windows|Linux}}
|[https://github.com/HansKristian-Work/vkd3d-proton/releases 2.8]
|Direct3D 12
|Vulkan
|{{✓}} ||{{✓}} ||{{✓}}
|-
|align=left|{{Icon|Linux}}
|[https://gitlab.freedesktop.org/mesa/mesa/tree/zink git]
|OpenGL2.1-4.6
|Vulkan
|{{✓}} ||{{✓}} ||{{TBD}}
|Direct3D 9
|{{✓}} ||{{✓}} ||{{~}}
|-
|[https://github.com/microsoft/D3D9On12 D3D9On12]
|align=left|{{Icon|Windows}}
|[https://github.com/microsoft/D3D9On12 releases git]
|Direct3D 9
|Direct3D 12
|{{✓}} ||{{✓}} ||{{~}}
|-
|[https://github.com/microsoft/D3D11On12/ D3D11On12]
|align=left|{{Icon|Windows}}
|[https://github.com/microsoft/D3D11On12/ releases git]
|Direct3D 11
|Direct3D 12
|{{✓}} ||{{✓}} ||{{~}}
|-
|[https://github.com/bo3b/3Dmigoto/ 3Dmigoto]
|align=left|{{Icon|Windows}}
|[https://github.com/bo3b/3Dmigoto/tags 1.3.16]
|Direct3D 11 <small>(Stereo3D)</small>
|<small>no API conversion</small>
|{{✓}} ||{{✓}} ||{{~}}
|-
|[https://www.pcgamingwiki.com/wiki/Glossary:VorpX VorpX] ($)
|align=left|{{Icon|Windows}}
|[https://www.vorpx.com/support-faq/ v21.3.2]
|Direct3D 11 <small>(Stereo3D)</small>
|<small>no API conversion</small>
|{{✗}} ||{{✓}} ||{{~}}
|-
|}
===Comparisons===
;dgVoodoo2
:Supports Direct3D 8-9. Outputs Direct3D 11 and Direct3D 12 with different device types as wrapping output, such as hardware or software rendering.
 
;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 with [[Proton]]. Later merged D9VK to add Direct3D 9 support.
;WineD3D
:Wine's internal wrapper for . Wraps Direct3D 28-11 that targets into Vulkan and 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].
;MoltenVKVKD3D-Proton:Developed A fork of VKD3D funded by the Brenwill Workshop under the Khronos GroupValve, it reimplements Vulkan for Metalwhich is more ahead and experimentally supports DXR via VK_KHR_ray_tracing. Emulators like [[Dolphin]] and [[DuckStation]] use MoltenVK instead of a native Metal renderer Requires DXVK's dxgi.dll file to support Apple deviceswork on Windows.
;vkd3d
:Wine's work-in-progress Direct3D 12 to Vulkan wrapper.
;VKD3D-ProtonMoltenVK:A fork of VKD3D funded Developed by Valvethe Brenwill Workshop under the Khronos Group, which is more ahead it reimplements Vulkan for Metal. Emulators like [[Dolphin]] and experimentally supports DXR via VK_KHR_ray_tracing[[DuckStation]] use MoltenVK instead of a native Metal renderer to support Apple devices.
;Gallium Nine
;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>
 
;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.
==See also==
10,778
edits

Navigation menu