https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #7 from Nakarin Khankham garuda2550@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #5)
Thanks for the patch. Currently the biggest hurdle is that not all the supported Distro support OpenCL 2.1. So, on these platforms, we are just going to have to use #ifdef CL_VERSION_X_X and return a default value.
or dynamically map the functions as required.
Thanks, I haven't thought about that.
I'll try to fix the patch with #ifdef CL_VERSION_X_X and return with a default value in the appropriate functions.
(In reply to Sveinar Søpler from comment #6)
This is possibly not relevant for ALL graphics manufacturers? nVidia proprietary driver (418.31.03) seems to only expose OpenCL 1.2 ref. clinfo: Number of platforms 1 Platform Name NVIDIA CUDA Platform Vendor NVIDIA Corporation Platform Version OpenCL 1.2 CUDA 10.1.95 Platform Profile FULL_PROFILE
This version is also seen in windows using wine-staging-4.2. (Gpu Caps Viewer)
===================================[ OpenCL Capabilities ]
Num OpenCL platforms: 1
CL_PLATFORM_NAME: NVIDIA CUDA
CL_PLATFORM_VENDOR: NVIDIA Corporation
CL_PLATFORM_VERSION: OpenCL 1.2 CUDA 10.1.95
CL_PLATFORM_PROFILE: FULL_PROFILE
Num devices: 1
- CL_DEVICE_NAME: GeForce GTX 970
- CL_DEVICE_VENDOR: NVIDIA Corporation
- CL_DRIVER_VERSION: 418.31.03
- CL_DEVICE_PROFILE: FULL_PROFILE
- CL_DEVICE_VERSION: OpenCL 1.2 CUDA
Ubuntu 18.04
It might relevant for all of GPU manufacturers, but since I don't have any nVidia GPU to test currently, so I don't know of nVidia GPU's situation.
If you test it with Windows version of clinfo, which the binary can be found here https://github.com/Oblomov/clinfo (scroll to the bottom), it will complain with message like
NOTE: your OpenCL library only supports OpenCL 1.0, but some installed platforms support OpenCL 1.2. Programs using 1.2 features may crash or behave unexpectedly
Since wine's opencl.dll pass-though is missing some functions that was added in OpenCL 1.1+
Or test it with Windows version of Blender 2.79b, both before and after apply the patch. Set the compute device to your OpenCL GPU. If wine didn't pass-thought OpenCL 1.2 functionary, the GPU will not be list as a compute device in blender. Then render the default scene with Cycle to see if it really working.
I have test before and after patch with Windows version of large Windows program that have some functionary that required OpenCL higher than 1.0 support and the patch appear to be working - Blender 2.79b (Cycle renderer, OpenCL 1.2) with AMDGPU-PRO 18.50 OpenCL driver (using R9 290 graphic card, forced amdgpu driver) - DAZ Studio 4.10.0.123 (dForce cloth simulator, OpenCL 1.2) with AMDGPU-PRO OpenCL and pocl library (a CPU OpenCL library, git version)
I have make a script to install AMDGPU-PRO 18.50 OpenCL driver on Ubuntu 18.04 for people who use AMD GCN graphic card and wish to duplicate my own test, the script can be found at https://gist.github.com/kytulendu/3351b5d0b4f947e19df36b1ea3c95cbe