Tricking program into seeing actual gfx driver not WINE's
jeffzaroyko at gmail.com
Fri Jul 4 01:01:15 CDT 2008
On Fri, Jul 4, 2008 at 1:43 PM, Maarten Lankhorst
<m.b.lankhorst at gmail.com> wrote:
> Hi Seth,
> 2008/7/3 Seth Shelnutt <shelnutt2 at gmail.com>:
>> Hello All,
>> We have run into an interesting problem while trying to get the latest
>> version of Stanford's Folding at Home GPU client to work in Linux via WINE.
>> The programs says it does not detect a compatible GPU. Even when the user
>> has installed the correct Nvidia drivers (with CUDA support) and has a
>> compatible GPU. The problem I believe lies in the fact that the program is
>> not told that there is a Nvidia 8800 installed, instead by the nature of
>> WINE it see that "WINE" is the graphics card, as WINE first translate the
>> direct3d calls into opengl calls that are then passed on to the GPU. So the
>> question is, is it possible to trick programs into believing they are
>> running on the right hardware? (As in fact they are).
>> I remember a while ago the steam system spec survey was used to see how many
>> people run steam via WINE. This was done by noting the graphics driver
>> installed and how the wine one appeared when running WINE. Well this is fine
>> but what we need is a way to make the program to see that it is actually
>> running on Nvidia hardware. Because if the client would just start then the
>> direct3d calls can be translated into opengl calls and the Nvidia linux
>> drivers can then handle them and run it all fine and dandy.
>> Here is the post, with error message about wrong graphics card detected,
>> http://www.ocforums.com/showpost.php?p=5698997&postcount=19 .
> Just wondering, why run the windows one on Wine and not the native linux client?
The native linux client doesn't support using the GPU.
I had a look, the windows client calls
IWineD3DImpl_GetAdapterIdentifier which we don't give the real adapter
driver and description strings, just "Display" and "Direct3D HAL" -
changing these in dlls/wined3d/directx.c to "NVIDIA GeForce 8800" gets
past the error message, but the client needs cudart.dll which isn't
distributed with the download.
More information about the wine-devel