DirectX questions

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
Das Letzte Einhorn
Level 4
Level 4
Posts: 194
Joined: Thu Jun 12, 2008 12:40 pm

DirectX questions

Post by Das Letzte Einhorn »

Hello all,

Many games include a DirectX bundle in their installation setup, therefore the WINE DirectX implementation becomes overriden when we test games. However, not only this prevent the testing of WINE's DirectX implementation, the bundle they install is usually outdated. I was wondering therefore if preventing the DirectX install is possible, and if yes, would it be useful for WINE developers?

Thanks for the insights!
Thunderbird
Level 5
Level 5
Posts: 336
Joined: Mon Nov 24, 2008 8:10 am

Post by Thunderbird »

Well, the fact that games install DirectX might be a bit confusing. In all cases (unless you really mess with wine dll overrides by hand in winecfg), the only thing we use from native DirectX are d3dx9_*.dlls which are helper dlls. These dlls contain functions to load bmp/jpg files into a texture, a shader compier, math utility functions and more. In all cases Wine's Direct3D9 dll is used for 3D rendering.

We are working on improving our own d3dx9_*.dll files but it will take a long time before they are done and performance using native d3dx9_*.dll will likely be better.
DaVince
Level 8
Level 8
Posts: 1099
Joined: Wed Oct 29, 2008 4:53 pm

Re: DirectX questions

Post by DaVince »

Das Letzte Einhorn wrote:Hello all,

Many games include a DirectX bundle in their installation setup, therefore the WINE DirectX implementation becomes overriden when we test games. However, not only this prevent the testing of WINE's DirectX implementation, the bundle they install is usually outdated. I was wondering therefore if preventing the DirectX install is possible, and if yes, would it be useful for WINE developers?

Thanks for the insights!
Wine uses the [builtin,native] order for most DirectX files, which means that even though games install their own DX files, Wine actually just refers to its built-in version anyway. Except for the files Thunderbird mentioned, or when you exlpicitly change the order to native,builtin in winecfg.
Das Letzte Einhorn
Level 4
Level 4
Posts: 194
Joined: Thu Jun 12, 2008 12:40 pm

Post by Das Letzte Einhorn »

Thunderbird wrote:Well, the fact that games install DirectX might be a bit confusing. In all cases (unless you really mess with wine dll overrides by hand in winecfg), the only thing we use from native DirectX are d3dx9_*.dlls which are helper dlls. These dlls contain functions to load bmp/jpg files into a texture, a shader compier, math utility functions and more. In all cases Wine's Direct3D9 dll is used for 3D rendering.

We are working on improving our own d3dx9_*.dll files but it will take a long time before they are done and performance using native d3dx9_*.dll will likely be better.
Thanks for the clarification!

I test many, many games however, and I would like to know what would be the best test results for the developers. Is it preferable to run "winetricks d3dx9" for every game that I test, or to test the implementation of the helper DLLs?
DaVince
Level 8
Level 8
Posts: 1099
Joined: Wed Oct 29, 2008 4:53 pm

Post by DaVince »

Is it preferable to run "winetricks d3dx9" for every game that I test
You only need to install the DLLs once for each wineprefix you use, so if you use a separate prefix for each game, and you know that you need the DLL, then yes.

A lot of games actually simply won't run if you don't have these files, anyway (or when the Wine implementation of them isn't complete enough).
Locked