OK, I've fixed a few mistakes in the .spec file and we are getting further, but I tried debugging the output but I am not sure what it all means.
zerix01@DeepThought:~/.wine/drive_c/Program Files/Folding@home /Folding@home-gpu$ winedbg Folding@home.exe WineDbg starting on pid 0024 start_process () at /media/md0/wine/wine/dlls/kernel32/process.c:904 0x7b877d02 start_process+0xc2 [/media/md0/wine/wine/dlls/kernel32/process.c:904] in kernel32: movl %esi,0x0(%esp) 904 ExitThread( entry( peb ) ); Wine-dbg>n fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 32 vertex samplers and 32 total samplers fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers fixme:win:EnumDisplayDevicesW ((null),0,0x33f40c,0x00000000), stub! err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0xf7facaaf Invalid address (0x7b877d07 start_process+0xc7) for breakpoint 0, disabling it Process of pid=0024 has terminated Wine-dbg>
I believe the key line is Invalid address (0x7b877d07 start_process+0xc7) for breakpoint 0, disabling it . But what exactly that means I am not sure, I mean I don't know which function it is saying is missing or messed up. Also from the documentation and from the nvidia forums it seems that both libraries are exactly the same, and it is said that there is no difference in writing a program for Linux vs. Windows, but I assume that is minus the direct3d functions, which I know the folding at home program doesn't use.
On Thu, Jul 10, 2008 at 12:01 AM, Stefan Dösinger stefan@codeweavers.com wrote:
Wine links against cudart.dll.so from /usr/lib/ or wherever it is. You don't have to put it in C:\windows... .
You can put a TRACE or ERR into the cudaMalloc(or whatever) function implementation in your code to write a message to check if the functions are properly called. I suspect they are, and that libcudart.so writes those errors. This would then mean that the Windows and Linux cuda libraries are different, and some features are missing in the Linux version. If that is true, the only thing you can do is to contact Nvidia and ask them for help
*From:* wine-devel-bounces@winehq.org [mailto: wine-devel-bounces@winehq.org] *On Behalf Of *Seth Shelnutt *Sent:* Wednesday, July 09, 2008 7:23 PM *To:* Juan Lang; wine-devel@winehq.org *Subject:* Re: CUDA wrapper
Well at least it compiled, but it isn't working. We are still getting the message that the function isn't implemented.
Initializing Nvidia gpu library cudaMalloc CUDAStream::Allocate failed feature is not yet implemented
Now both cudamalloc and all four cuda stream's, cudaStreamCreate, Destroy, Query and Synchronize were implemented. I thought maybe it was because in the spec file I had the cudaStream's as pointers (ptr) so I switched them to long but ti didn't make a difference. Originally the argument was "stream" but I can't get any argument but ptr and long to pass the winegcc for spec files.
http://shelnutt.twomurs.com/patches/cuda/cuda.dll.spec
Does wine need to somehow be made aware of the presence of the cudart.dll.so file? We tried putting it in both the system32 and the lib folder but it seems also that maybe WINE needs to be made aware of it?