Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making DirectX 9 games ? #174

Open
Ahmed-Dzair-Dev opened this issue Dec 5, 2024 · 1 comment
Open

Making DirectX 9 games ? #174

Ahmed-Dzair-Dev opened this issue Dec 5, 2024 · 1 comment

Comments

@Ahmed-Dzair-Dev
Copy link

Explain to me.

@the-burrito-triangle
Copy link

Explain what exactly?

Wine-Nine-Standalone (d3d9-nine-dll.so) is part of a wrapper used to forward D3D9 API calls to MESA's Gallium Nine "State Tracker" backend that translates D3D9 to OpenGL and is a more performant alternative to WineD3D. The shared object can be renamed to d3d9.dll (or a symbolic link named d3d9.dll) and placed in the directory of the game's exe or in the appropriate Wine directory (system32 or syswow64). Currently, the provided install script is broken for newer versions of Wine and manual installation is required to get it working. The included GUI utility isn't required and can be ignored. The d3d9-nine-dll.so requires a distro specific package that provides d3dadapter9.so.1 along with a supported Wine and MESA version to work.

So to summarize, this isn't for "making D3D9 games" but used as an alternative to WineD3D (or newer releases of DXVK) to wrap D3D9 API calls to OpenGL. It's primary use is to allow older/weak GPUs that are more performant with OpenGL than Vulkan (or have no Vulkan support) to play Windows games using D3D9 on Linux. Further wrappers can be used to extend the Gallium Nine backend to Glide and D3D8, but is out of scope for this discussion.

The d3dadapter9.so.1 can be used outside of Wine for "native" D3D9 applications/games to run on Linux. I think there are a few Steam games using the Source Engine that do this. See Mike Blumenkrantz's blog for more information on this use case:

https://www.supergoodcode.com/the-finale/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants