It looks fine to me, but I'm worried whether it can work properly in the end. A few months ago I worked on Cuda support for something (I implemented nvcuda.dll which is what cuda runtime libraries like cudart or physx are using). Certain lowlevel nvcuda applications worked, but more fancy applications didn't. I had some contact with Nvidia about it and it was not possible to support Cuda without assistance on their side.
OpenCL is a little different of course, but I fear that not all OpenCL implementations will like wrapping. What OpenCL applications have you tried so far? The Nvidia GPU Computing SDK (or whatever it was called) has a ton of samples for both Cuda and OpenCL. Do all their OpenCL samples work?
Roderick
On Mon, Nov 29, 2010 at 2:39 PM, Peter Urbanec winehq.org@urbanec.net wrote:
Resending because previous patch was mangled by Thunderbird.
dlls/opencl/opencl.c | 1142 +++++++++++++++++++++++++++++++++++++++++++++++ dlls/opencl/opencl.spec | 159 ++++--- 2 files changed, 1232 insertions(+), 69 deletions(-)
On 01/12/10 12:33, Roderick Colenbrander wrote:
OpenCL is a little different of course, but I fear that not all OpenCL implementations will like wrapping. What OpenCL applications have you tried so far? The Nvidia GPU Computing SDK (or whatever it was called) has a ton of samples for both Cuda and OpenCL. Do all their OpenCL samples work?
I added wine OpenCL support in order to get OpenCL functionality in eyeon Fusion 6.1 [*] and it works with both built-in tools and Fuses. I also tested with a number of (not all) samples from the Nvidia GPU Computing SDK. It works with the simple ones, like oclDeviceQuery.exe and oclBandwidthTest.exe as well as the more complex ones, like oclParticles.exe
I only tested with Nvidia GT240 hardware, 260.19.x series drivers, but I will get a chance to test with an ATI FirePro V5800 at some point in the future.
So far, I have only implemented support for the mandatory core OpenCL 1.0 functionality. In particular, native kernels (optional feature) are not supported and probably never will be.
Extensions are not yet supported, they will each have to be dealt with on individual basis, but I suspect that features such as cl_khr_fp64 support should be doable.
OpenGL sharing is also not supported yet - mainly because I don't know enough about wine OpenGL internals. I'm hoping that I will get some help with OpenGL sharing once the basic OpenCL implementation is in the wine tree.
[*] http://www.eyeonline.com/Web/EyeonWeb/Products/fusion6/fusion6.aspx