https://bugs.winehq.org/show_bug.cgi?id=46470
Bug ID: 46470 Summary: opencl 1.2 version support required Product: Wine-staging Version: 4.0-rc6 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: a.amruth@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: ---
Created attachment 63290 --> https://bugs.winehq.org/attachment.cgi?id=63290 clinfo logs attached
subject: opencl 1.2 version support required
looks like current wine staging supports only opencl version 1.0
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
clinfo is a simple command-line application that enumerates all possible (known) properties of the OpenCL platform and devices available on the system.
https://github.com/Oblomov/clinfo
clinfo complete output attached.
opencl 1.2 version support required for dforce feature on daz studio.
https://appdb.winehq.org/objectManager.php?sClass=version&iId=37524
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |-unknown Product|Wine-staging |Wine
https://bugs.winehq.org/show_bug.cgi?id=46470
Nakarin Khankham garuda2550@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |garuda2550@gmail.com
--- Comment #1 from Nakarin Khankham garuda2550@gmail.com --- Created attachment 63577 --> https://bugs.winehq.org/attachment.cgi?id=63577 OpenCL 2.1 support patch
Added a patch to expose OpenCL 2.1 on Linux side to Windows program runing on wine, and also all of extensions list that Linux side OpenCL devices support (including the un-implemented cl_khr_gl_sharing and cl_khr_gl_event extension :P)
The patch missing all functions related to OpenGL and DirectX sharing and no extension functions call support, just like the original.
I have test the patch with AMD's proprietary OpenCL Linux driver and the CPU OpenCL pocl library, and it seems to working as intended. But I'm not sure if I implement some pass-thought functions correctly...
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #2 from Amruth Aradhya a.amruth@gmail.com --- thanks to Nakarin Khankham for quick code changes. inviting linux users to confirm the code changes are working. please add your comments. after few users confirm that fix is working and no side effects, we can move this issue to RESOLVED. if any other thoughts let me know.
as if now I dont have the development code compile setup to quickly test these changes. it will take some time. please guide what is the normal official procedure followed here to resolve the bugzilla issues. thank you.
https://bugs.winehq.org/show_bug.cgi?id=46470
Nakarin Khankham garuda2550@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63577|0 |1 is obsolete| |
--- Comment #3 from Nakarin Khankham garuda2550@gmail.com --- Created attachment 63668 --> https://bugs.winehq.org/attachment.cgi?id=63668 New version of OpenCL 2.1 support patch
Added new version of the patch, the new version will enable platform extensions pass-though as well.
For the way to compile wine with this patch, use below instructions
1. download wine source code, it can be any version but I recommended either version 4.0 or latest 4.x release. you can download the source code from https://www.winehq.org/ using your browser or terminal command.
wget https://dl.winehq.org/wine/source/4.0/wine-4.0.tar.xz
tar xJf wine-4.0.tar.xz cd wine-4.0 git apply ../wine-opencl/*.patch mkdir build cd build ../configure --enable-win64 --prefix=/opt/wine-opencl sudo make install
https://bugs.winehq.org/show_bug.cgi?id=46470
Nakarin Khankham garuda2550@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63668|0 |1 is obsolete| |
--- Comment #4 from Nakarin Khankham garuda2550@gmail.com --- Created attachment 63669 --> https://bugs.winehq.org/attachment.cgi?id=63669 New version of OpenCL 2.1 support patch
Added new version of the patch, the new version will enable platform extensions pass-though as well.
@Amruth Aradhya, for the way to compile wine with this patch, use below instructions. You can change the file extract or install path as you'd like.
Before you continue, you need to install required tools and library to compile wine.
On Ubuntu 18.04 You can get it by using this command.
sudo apt install pkg-config libx11-dev mesa-common-dev libgl1-mesa-dri libegl1-mesa libegl1-mesa-dev libgl1-mesa-dev libfreetype6-dev libjpeg-dev libxml2-dev libgnutls28-dev libxslt-dev libmpg123-dev libvulkan-dev libxrender-dev libxcursor-dev libxi-dev libxrandr-dev libxinerama-dev libxcomposite-dev libglu1-mesa-dev libosmesa6-dev libva-dev libsdl2-dev ocl-icd-opencl-dev libpcap-dev libncurses5-dev libsane-dev libv4l-dev libgphoto2-dev liblcms2-dev libgtk-3-dev libcapi20-dev libcups2-dev libfontconfig1-dev libgsm1-dev libkrb5-dev libopenal-dev libldap2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libavcodec-dev
Some package aren't need for compile wine, but required to compile wine-staging. I didn't have the list of only package required to compile wine, so... :P
1. Open terminal.
2. Download wine source code and put it in your home directory. The source code can be any version, but I recommended either version 4.0 or latest 4.x release.
You can download the source code from https://www.winehq.org/ using your browser or by using this command.
wget https://dl.winehq.org/wine/source/4.0/wine-4.0.tar.xz
3. Extract the source code by using this command, change the file name to match the version you download
tar xJf wine-4.0.tar.xz
4. Change the current directory by using this command, change the directory name to match the version you download
cd wine-4.0
5. In this step, you will be in directory "~/wine-4.0" Now, download the OpenCL patch by using this command
wget https://github.com/kytulendu/wine-opencl/raw/master/0001_Update_OpenCL.patch
6. Apply the patch by using this command
git apply 0001_Update_OpenCL.patch
7. Make "build" directory by using this command
mkdir build
8. Change the current directory by using this command
cd build
9. In this step, you will be in directory "~/wine-4.0/build" Now, execute the configure script by using this command
../configure --enable-win64 --prefix=/opt/wine-opencl
In "--prefix=/opt/wine-opencl", this is where you will install your custom version of wine, you can install it in your home directory, which doesn't require "sudo" command to install, for example.
../configure --enable-win64 --prefix=/home/purr/wine-opencl
When it finish, the script will complain that there are some library missing/too old. Namely libhal, vkd3d and OSS sound system, this message can be ignore.
10. Build wine by using this command, then wait for finish compile
make -j 4
Note: The number behind "-j" is the number of thread your PC have, I'd recommended "number of thread - 2", just in case the compiler use too much CPU time and freeze the GUI.
11. Install your compiled wine by using this command
sudo make install
If you use --prefix to your home directory, you can use the below command to install it without using "sudo" command
make install
12. Test if it installed correctly by using this command
/opt/wine-opencl/bin/wine64 --version
If you install to other directory, change the executable path accordingly, suchas.
/home/purr/wine-opencl/bin/wine64 --version
13. Try to run and test the OpenCL program, in this case is I use Daz Studio (Windows 64bit version) that already installed to the main wine prefix.
/opt/wine-opencl/bin/wine64 C:\Program\ Files\DAZ\ 3D\DAZStudio4\DAZStudio.exe
14. Have fun :3
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #5 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Nakarin Khankham from comment #4)
Created attachment 63669 [details] New version of OpenCL 2.1 support patch
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.
https://bugs.winehq.org/show_bug.cgi?id=46470
Sveinar Søpler cybermax@dexter.no changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cybermax@dexter.no
--- Comment #6 from Sveinar Søpler cybermax@dexter.no --- 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
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
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #8 from Sveinar Søpler cybermax@dexter.no --- (In reply to Nakarin Khankham from comment #7)
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.
Not really sure how to interpret this, cos the clinfo.exe reports more or less the same as GPU Caps Viewer, except at the end.
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 Platform Extensions
Platform Name NVIDIA CUDA Number of devices 1 Device Name GeForce GTX 970 Device Vendor NVIDIA Corporation Device Vendor ID 0x10de Device Version OpenCL 1.2 CUDA Driver Version 418.31.03 Device OpenCL C Version OpenCL C 1.2 Device Type GPU Device Profile FULL_PROFILE blabla blabla and so on NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform clCreateContext(NULL, ...) [default] No platform clCreateContext(NULL, ...) [other] Success [P0] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) Invalid device type for platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No platform 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
So.. is it the "NULL platform" that is the issue here? Or is this "NULL Platform" the error message that CL 1.2 is not supported?
Blender seems to support CUDA for nVidia (via staging nvapi.dll hacks), but i dont really have a clue on how to USE blender, so i dont know any more tests. (Unless you can provide some extremely simple "load this -> Press that button" instructions for me..)
https://bugs.winehq.org/show_bug.cgi?id=46470
Amruth Aradhya a.amruth@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Debian Summary|opencl 1.2 version support |OpenCL 1.2 version support |required |required
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #9 from Nakarin Khankham garuda2550@gmail.com --- Created attachment 63713 --> https://bugs.winehq.org/attachment.cgi?id=63713 Updated patch
Added #ifdef CL_VERSION_X_X and return either CL_SUCCESS or NULL in all new functions added by this patch if the compiler have no OpenCL 1.1+ header.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #10 from Nakarin Khankham garuda2550@gmail.com --- (In reply to Sveinar Søpler from comment #8)
So.. is it the "NULL platform" that is the issue here? Or is this "NULL Platform" the error message that CL 1.2 is not supported?
Blender seems to support CUDA for nVidia (via staging nvapi.dll hacks), but i dont really have a clue on how to USE blender, so i dont know any more tests. (Unless you can provide some extremely simple "load this -> Press that button" instructions for me..)
The "NULL platform" isn't the issue, but the below message "NOTE: your OpenCL library only supports OpenCL 1.0, but some installed platforms support OpenCL 1.2." is, as this version of clinfo also detect if your opencl.dll have functions that your OpenCL platforms support, if not it will give a warning.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #11 from Sveinar Søpler cybermax@dexter.no --- (In reply to Nakarin Khankham from comment #10)
The "NULL platform" isn't the issue, but the below message "NOTE: your OpenCL library only supports OpenCL 1.0, but some installed platforms support OpenCL 1.2." is, as this version of clinfo also detect if your opencl.dll have functions that your OpenCL platforms support, if not it will give a warning.
I see. Will see if i can do some testing.
Slight problem with Ubuntu + libFAudio development files atm (when trying to build latest wine GIT), as i dunno if such a thing exist :P But can always build 4.2.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #12 from Amruth Aradhya a.amruth@gmail.com --- Created attachment 63720 --> https://bugs.winehq.org/attachment.cgi?id=63720 wine clinfo.exe output after the patch
file: linux_clinfo_ouput.log linux terminal command clinfo output.
file: wine_clinfo_x64_ouput_after_patch.log
output logs for wine clinfo.exe with OpenCL 1.2 patch applied.
GPU NVIDIA. logs are shared to compare the output.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #13 from Sveinar Søpler cybermax@dexter.no --- I have the problem that my linux clinfo also reports this: NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform clCreateContext(NULL, ...) [default] No platform clCreateContext(NULL, ...) [other] Success [NV] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) Invalid device type for platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) No platform
So i guess something weird is up with my setup.
Was not able to compile wine successfully on my main box either, but could on a fresh installed virtualbox with Ubuntu 18.04. Some strange library messing stuff up i guess.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #14 from Amruth Aradhya a.amruth@gmail.com --- thanks again Nakarin Khankham
I followed your instructions for compile and test OpenCL patch as described in Comment #4.
1. after applying this patch. Now runing 'wine clinfo.exe' doesn't show the earlier wine OpenCL 1.0 limitation warning. new clinfo output logs attached. file: compare_clinfo_logs_linux_vs_wine.tar.xz
2. Yes, now both NVIDIA gpu and POCL CUP are showing up as OpenCL device in Daz Studio dForce Simulation Advanced Settings. dForce cloth simulation is working on both Nvidia GPU and POCL CPU device.
3. Also Note that even native blender linux binary doesn't show any Open CL devices. native blender linux binary shows only the NVIDIA GPU as CUDA device and not as OpenCL device. may be blender shows only AMD GPU as Open CL cycles compute device. @Sveinar Søpler, so for NVIDIA GPU users can ignore testing OpenCL with Blender ?
4. @Admin, from my side no issues. I request the Admin to proceed further.
# for linux distro debian my method for code compile was
# winehq-staging release binary was already installed system wide # refer to https://wiki.winehq.org/Debian
# get source code and get build dependency. sudo apt install dpkg-dev apt source winehq-staging # but the src code appear to be wine-stable not staging. sudo apt build-dep winehq-staging
#steps 1 to 3 is complete #jump to step 4 and follow, Refer to Comment #4
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #15 from Sveinar Søpler cybermax@dexter.no --- It seems this patch is not compatible when linking with the nVidia libOpenCL.so.1.0.0 lib --- opencl.o: In function `wine_clSetDefaultDeviceCommandQueue': ... collect2: error: ld returned 1 exit status winegcc: gcc failed Makefile:191: recipe for target 'opencl.dll.so' failed --- 7 "undefined references" during the ld phase, and the libOpenCL.so.1.0.0 file is massively different on my install vs. the VM install.
Anyone with a working nVidia card get this compiled correctly? And if so.. what driver version.
I use 418.43 (Latest) binary installed via the nVidia .run file.
PS. Cuda and OpenCL apps works fine in both Linux and Wine, so its "working" even tho these error messages occur :)
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #16 from Sveinar Søpler cybermax@dexter.no --- Enabled my Intel IGPU, and running with Ubuntu 18.04 i get this:
--- NOTE: your OpenCL library only supports OpenCL 2.0, but some installed platforms support OpenCL 2.1. Programs using 2.1 features may crash or behave unexepectedly --- So, Ubuntu does not support >2.0, while the IGPU actually supports 2.1. With only nVidia its OpenCL 1.2, and no such warning.
Takes a while for me to "get it", but i do now :)
So, have i messed with something strange that have replaced my libOpenCL.so.1.0.0, or is nVidia the culprit?
Running: LD_DEBUG=files clinfo it seems as mostly things like libnvidia-opencl.so.1 is used, so i am not 100% sure that libOpenCL.so.1.0.0 is replaced when using nVidia...
Not too keen on testing to reinstall ocl-icd-libopencl1 incase that breaks things.
https://bugs.winehq.org/show_bug.cgi?id=46470
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|z.figura12@gmail.com |
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #17 from Amruth Aradhya a.amruth@gmail.com --- (In reply to Sveinar Søpler from comment #15)
It seems this patch is not compatible when linking with the nVidia libOpenCL.so.1.0.0 lib
opencl.o: In function `wine_clSetDefaultDeviceCommandQueue': ... collect2: error: ld returned 1 exit status winegcc: gcc failed Makefile:191: recipe for target 'opencl.dll.so' failed
7 "undefined references" during the ld phase, and the libOpenCL.so.1.0.0 file is massively different on my install vs. the VM install.
Anyone with a working nVidia card get this compiled correctly? And if so.. what driver version.
I use 418.43 (Latest) binary installed via the nVidia .run file.
PS. Cuda and OpenCL apps works fine in both Linux and Wine, so its "working" even tho these error messages occur :)
Suggestions to @Sveinar Søpler r u facing too many issues. Welcome to Linux !
1. do fresh install on linux. 2. install nvidia drivers as per your linux distro guide. It safe, stable and tested. the drivers may be little old but easy to install and debug issues. i.e apt install method
while installation through apt install method. it warns which package are getting removed/replaced if any. at least we can debug such situation. its lot of reading, takes lot of time but safe and correct method.
[ the method u r claiming i.e installation nvidia drivers through sudo installation scripts from direct nvidia website is not recommended. as its a blind write method. even though its latest driver, its very difficult debug such issues. now you have run into such situation.]
3. I have tested the up to third patch on debian stable, with default nvidia driver version 390 the third patch was working refer to comment #14
4. also you can try easy steps 1 to 3 for getting source code and build dependency as explained in comment #14
5. the last patch released [attachment #63713] test is in progress.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #18 from Sveinar Søpler cybermax@dexter.no --- Thanks for your efforts.
1. Ofc i wont do a fresh install of Linux due to this.. 2. Eh no. "a little old" is the understatement of the year. Absolutely horrible to suggest sticking to 390 "Ubuntu drivers" and the likes when you try to help out testing DXVK/vkd3d and general stuff. 3. See #2 4. Ok 5. Thx for patch.
Sure, i understand the "for-dummies" approach, and thank you for that. Someone might get helped by this tho :)
The problem MAY have been a old install of CUDA, or even possibly some testing from my side "way back", but i just reinstalled the default ocl-icd-libopencl1 packages and it did not seem to affect the usage of Cuda/Opencl on nvidia (As i think it is actually libnvidia-opencl.so.1 that is used by nvidia).
sudo apt --reinstall install ocl-icd-libopencl1 ocl-icd-libopencl1:i386
Compile went fine after this, and wine have no errors with clinfo (Even GPU Caps Viewer detected OpenCL platform correctly).
So, thanks for the patch. Gonna keep this in my own "wine-patches" hacks until you get it upstreamed :)
https://bugs.winehq.org/show_bug.cgi?id=46470
Amruth Aradhya a.amruth@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED URL| |https://www.daz3d.com/forum | |s/discussion/comment/420347 | |1/#Comment_4203471
--- Comment #19 from Amruth Aradhya a.amruth@gmail.com --- test results of last patch released [attachment #63713 [details]] .
1. after applying this patch. Now runing 'wine clinfo.exe'. It shows the correct properties of the OpenCL platform and devices available on the system. doesn't show the earlier wine OpenCL 1.0 limitation warning.
2. Yes, both Nvidia GPU and POCL lib CPU are showing up as OpenCL device in Daz Studio dForce Simulation Advanced Settings. dForce cloth simulation is working on both Nvidia GPU and POCL lib CPU device.
3. already Nakarin Khankham has confirmed that both AMD GPU and POCL lib CPU are showing up as OpenCL device in Daz Studio dForce Simulation Advanced Settings. Also he has confirmed that dForce cloth simulation is working on both AMD GPU and POCL lib CPU device. Additionally he has confirmed that even Blender win64 applications shows the AMD GPU as OpenCL cycles compute device and found working.
So the patch is working on Intel CPU and AMD CPU, AMD GPU and Nvidia GPU. No side effects found so for.
4. this confirms that the Wine OpenCL 1.2 version support is now available. also the patch has code changes to support OpenCL 2.1 version.
5. Summary description of list of code changes done. refer to comments by Nakarin Khankham Comment #1 Comment #3 Comment #9
6. for latest code changes for this patch refer to attachment #63713 or https://github.com/kytulendu/wine-opencl
this bug can be RESOLVED. I request the @Admin to proceed further and include these features in winehq release binary. A lot of people are eagerly waiting for this feature here. https://www.daz3d.com/forums/discussion/60901/daz-studio-and-linux/
https://bugs.winehq.org/show_bug.cgi?id=46470
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|FIXED |--- Status|RESOLVED |REOPENED
--- Comment #20 from Rosanne DiMesio dimesio@earthlink.net --- (In reply to Amruth Aradhya from comment #19)
this bug can be RESOLVED.
Bugs are not marked fixed until the fix is in Wine. Reopening
I request the @Admin to proceed further and include these features in winehq release binary.
Patches are not picked up from bugzilla. Follow the instructions on https://wiki.winehq.org/Submitting_Patches to submit it.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #21 from Sveinar Søpler cybermax@dexter.no --- This have to be submitted by the patch-writer, unless you perhaps get on IRC or something and talk to one of the devs to help you with this.
Those that have done it 100000000 times think the patch-mailing-list thingy wine uses is ez-pz, but for other mere mortals it is a daunting task i must admit.
Good luck :)
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #22 from Rosanne DiMesio dimesio@earthlink.net --- (In reply to Sveinar Søpler from comment #21)
Those that have done it 100000000 times think the patch-mailing-list thingy wine uses is ez-pz, but for other mere mortals it is a daunting task i must admit.
I'm not a Wine developer, but I have submitted a few patches for the website and AppDB, and the procedure for sending those patches is exactly the same. So I can say from experience that there is nothing difficult about using git send-email, even for someone like me, who had absolutely no prior experience submitting patches anywhere the first time I did it.
https://bugs.winehq.org/show_bug.cgi?id=46470
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #23 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- You should at least split the big patch into smaller patchset that adds new features incrementally.
I'd split the function definitions into groups of related functions (*BufferRect(), EnqueueSVM*(), etc.) and add them as separate patches. I'd make sure each patchset applies and compiles cleanly. I'd submit one patchset at a time in the appropriate order and wait for one patchset to be accepted before submitting the next.
Here is how it'd look like:
First patchset: - Patches to declare and define new opencl 1.1 functions;
Second patchset: - Patches to declare and define new opencl 1.2 functions; - Patch to modify existing functions for 1.2 (=add the #ifdef CL_VERSION_1_2/1_1} alternatives);
Third patchset: - Patches to declare and define new opencl 2.0 functions; - Patch to modify existing functions for 2.0 (=add the #ifdef CL_VERSION_2_0/1_* alternatives);
etc.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #24 from Nakarin Khankham garuda2550@gmail.com --- (In reply to Amruth Aradhya from comment #19) Glad to know that the patch also work for other people who use Nvidia GPU. :)
(In reply to Sveinar Søpler from comment #21) I have managed to figured out how to compile wine, which was the largest program I ever build from source. so figuring out how to submit a patch might not be a problem for me, I think XD
(In reply to Rosanne DiMesio from comment #22) Glad to know.
(In reply to Olivier F. R. Dierick from comment #23) Thanks for the suggestion with example, I'm currently trying to rebase the patch and split it into smaller one. When it finished, I'll submit it as suggested.
https://bugs.winehq.org/show_bug.cgi?id=46470
Nakarin Khankham garuda2550@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63669|0 |1 is obsolete| | Attachment #63713|0 |1 is obsolete| |
--- Comment #25 from Nakarin Khankham garuda2550@gmail.com --- Created attachment 63873 --> https://bugs.winehq.org/attachment.cgi?id=63873 Better version of OpenCL patch
New and better version of OpenCL patch, this one only support OpenCL up to version 1.2 tho as required by this bug report.
This patch come with multiple patch files, use "git apply *.patch" to apply all of it in single command.
The patch also available at https://github.com/kytulendu/wine-opencl
For compile instruction, see comment #4
https://bugs.winehq.org/show_bug.cgi?id=46470
Nakarin Khankham garuda2550@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63873|1 |0 is patch| |
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63873|text/plain |application/x-gtar-compress mime type| |ed
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #26 from Sveinar Søpler cybermax@dexter.no --- @Nakarin Thank you for the patchset
This WAS included in wine-staging-3d9797093dfa54699835b3ab193d5109fa34b4cb , but for some reason (ofc not a single line of text about that), it was removed with 6c37563f924b8b268f779725322ebe387c65b8cf
So, any particular reason this was removed from staging? Anyone know?
It is ofc no huge issue at all, but is it so that you need to be on some random 1990'ies mailing list thingy, or hang around at IRC (from the -90'ies) to get information of wine stuff these days?
Just a question, while i do understand the notion of "We coders do not like to talk to peasants" attitude is healthy in a way that it wont hamper development time, it is somewhat user unfriendly :)
https://bugs.winehq.org/show_bug.cgi?id=46470
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #27 from Zebediah Figura z.figura12@gmail.com --- (In reply to Sveinar Søpler from comment #26)
@Nakarin Thank you for the patchset
This WAS included in wine-staging-3d9797093dfa54699835b3ab193d5109fa34b4cb , but for some reason (ofc not a single line of text about that), it was removed with 6c37563f924b8b268f779725322ebe387c65b8cf
So, any particular reason this was removed from staging? Anyone know?
It is ofc no huge issue at all, but is it so that you need to be on some random 1990'ies mailing list thingy, or hang around at IRC (from the -90'ies) to get information of wine stuff these days?
Just a question, while i do understand the notion of "We coders do not like to talk to peasants" attitude is healthy in a way that it wont hamper development time, it is somewhat user unfriendly :)
Compilation on Mac was broken. Sorry, I should have made that clearer. We'll restore it as soon as that's fixed.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #28 from Sveinar Søpler cybermax@dexter.no --- (In reply to Zebediah Figura from comment #27)
Compilation on Mac was broken. Sorry, I should have made that clearer. We'll restore it as soon as that's fixed.
No problem. Sometimes info gets lost in the heat :)
https://bugs.winehq.org/show_bug.cgi?id=46470
James Baker odhinn@odhinnsrunes.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |odhinn@odhinnsrunes.com
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/opencl-version_1 | |_2 Status|REOPENED |STAGED
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #29 from Amruth Aradhya a.amruth@gmail.com --- good news for linux wine-staging users
Now OpenCL 1.2 patch is now included in wine-4.5 (Staging) version. daz studio dForce clothing simulation was found working on this version.
thanks again to everyone.
https://bugs.winehq.org/show_bug.cgi?id=46470
scott.anecito@linux.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |scott.anecito@linux.com
--- Comment #30 from scott.anecito@linux.com --- Point of clarification, does this patch include OpenCL 1.2 (32bit) support? I ask because ChromaCam throws an error about AVX instruction set and OpenCL 1.2 (32bit) support missing on wine 4.17-staging
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #31 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Scott from comment #30)
Point of clarification, does this patch include OpenCL 1.2 (32bit) support? I ask because ChromaCam throws an error about AVX instruction set and OpenCL 1.2 (32bit) support missing on wine 4.17-staging
Do you have the 32bit version of the OpneCL library installed?
https://bugs.winehq.org/show_bug.cgi?id=46470
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #32 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-5.13?
https://bugs.winehq.org/show_bug.cgi?id=46470
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|OpenCL 1.2 version support |Daz Studio "dForce" needs |required |OpenCL 1.2 support
--- Comment #33 from Zebediah Figura z.figura12@gmail.com --- OpenCL 1.2 support is implemented upstream now, in https://source.winehq.org/git/wine.git/commitdiff/a292001da28d9741b98dd7e1b0fc10ed831d88c8.
Please test the affected programs. clinfo.exe works for me and correctly reports OpenCL 1.1, but my driver doesn't support OpenCL 1.2, so I can't test Daz Studio.
https://bugs.winehq.org/show_bug.cgi?id=46470
Roger Zoellner zoellner.roger@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zoellner.roger@gmail.com
--- Comment #34 from Roger Zoellner zoellner.roger@gmail.com --- Native clinfo and wine clinfo.exe both show my cpu and gpu as compatible devices.
Up to wine-staging 6.4 the devices were listed by DAZ Studio too. However, since wine(-staging) 6.5 DAZ Studio does not list them anymore.
https://bugs.winehq.org/show_bug.cgi?id=46470
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |NEW
--- Comment #35 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Roger Zoellner from comment #34)
Native clinfo and wine clinfo.exe both show my cpu and gpu as compatible devices.
Up to wine-staging 6.4 the devices were listed by DAZ Studio too. However, since wine(-staging) 6.5 DAZ Studio does not list them anymore.
Can you please provide a +opencl log?
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #36 from Roger Zoellner zoellner.roger@gmail.com --- Created attachment 71103 --> https://bugs.winehq.org/attachment.cgi?id=71103 Output of clinfo.exe with wine 6.21
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #37 from Roger Zoellner zoellner.roger@gmail.com --- Created attachment 71104 --> https://bugs.winehq.org/attachment.cgi?id=71104 Wine log for Daz Studio with wine-staging-6.3 (WINEDEBUG=-all,+opencl)
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #38 from Roger Zoellner zoellner.roger@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #35)
(In reply to Roger Zoellner from comment #34)
Native clinfo and wine clinfo.exe both show my cpu and gpu as compatible devices.
Up to wine-staging 6.4 the devices were listed by DAZ Studio too. However, since wine(-staging) 6.5 DAZ Studio does not list them anymore.
Can you please provide a +opencl log?
I've added two logs.
1. Output of clinfo.exe using wine-6.21 2. Wine log for DazStudio using wine-staging-6.3 with WINEDEBUG=-all,+opencl
DazStudio with wine-6.21 and WINEDEBUG=-all,+opencl doesn't produce any output at all. After digging deeper into the issue, i figured that opencl.dll is loaded correctly. But DazStudio doesn't call any cl function after this point for some reason.
https://bugs.winehq.org/show_bug.cgi?id=46470
Moté automates+bugwine@lepouete.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |automates+bugwine@lepouete. | |fr
--- Comment #39 from Moté automates+bugwine@lepouete.fr --- Hello guys,
Is there any news on this? As a user, is there something I can do to help?
Thank you
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #40 from Moté automates+bugwine@lepouete.fr --- Looking at the commits, it’s when OpenCL 1.2 was pushed into upstream that the functionality broke. It seems this implementation must have broken something?
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #41 from Sveinar Søpler cybermax@dexter.no --- (In reply to Moté from comment #40)
Looking at the commits, it’s when OpenCL 1.2 was pushed into upstream that the functionality broke. It seems this implementation must have broken something?
That or maybe the change with __wine_unix_call interface. Not sure if something goes wrong when this new function tries to load opencl icd from the os?
https://bugs.winehq.org/show_bug.cgi?id=46470
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #42 from Sveinar Søpler cybermax@dexter.no --- Reverted the following patches on wine-staging-7.0-rc5: 37c40316457255053614d76d8704ad4e0651631f f91c009786fa09723976dce0233592f69df5cead 4f58d8144c5c1d3b86e988f925de7eb02c848e6f (Dependency for the 2 others)
OpenCL seems to work with the info page and CL demo's in GPU Caps Viewer after reverting those 3.
So, it seems as something is up with that __wine_unix_call thing perhaps? Something makes it not work with native icd loader somehow?
Still does not seem to work with DAZ Studio "dForce" functions tho.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #43 from Zebediah Figura z.figura12@gmail.com --- (In reply to Sveinar Søpler from comment #42)
Reverted the following patches on wine-staging-7.0-rc5: 37c40316457255053614d76d8704ad4e0651631f f91c009786fa09723976dce0233592f69df5cead 4f58d8144c5c1d3b86e988f925de7eb02c848e6f (Dependency for the 2 others)
OpenCL seems to work with the info page and CL demo's in GPU Caps Viewer after reverting those 3.
So, it seems as something is up with that __wine_unix_call thing perhaps? Something makes it not work with native icd loader somehow?
Still does not seem to work with DAZ Studio "dForce" functions tho.
That sounds like there's two different bugs then; would you mind filing a separate bug for the regression?
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #44 from Sveinar Søpler cybermax@dexter.no --- (In reply to Zebediah Figura from comment #43)
That sounds like there's two different bugs then; would you mind filing a separate bug for the regression?
https://bugs.winehq.org/show_bug.cgi?id=52389
https://bugs.winehq.org/show_bug.cgi?id=46470
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |opencl
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #45 from Sveinar Søpler cybermax@dexter.no --- Created attachment 71625 --> https://bugs.winehq.org/attachment.cgi?id=71625 OpenCL stubs
Afaik DAZ uses its own "opencl loader .dll" in the DAZ installed folder, and even tho DAZ sais it only requires OpenCL 1.2, it might load system opencl.dll checking for export symbols > 1.2, and fail if it is not found.
The reason for concluding this is that after reverting ref. to bug #52389, i added stubs to wine's opencl.spec file up-to what i found when comparing with Win10 OpenCL Platform 3.0 (/windows/system32/opencl.dll), and my device was then detected and used in DAZ.
I will test this further once bug #52389 is resolved (i have seen the PR posted, and if its not upstreamed by the time i get home, i will test that).
Does it sound too far-fetched that DAZ's loader somehow loads symbols from the system opencl.dll and only pass this if certain symbol is found? The opencl.dll in windows system folders are from Khronos, and i think i read someplace that this gets updated by Windows update automatically regardless of drivers installed as this is kind of the "OpenCL ICD loader" for windows.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #46 from Moté automates+bugwine@lepouete.fr --- Hello, I’ve tested the patch, and confirms that it solves the problem. However, I had 2 OpenCL drivers installed, nvidia and portable OpenCL. While I had the second installed, Daz Studio would hang at startup. When I removed it, everything was ok.
https://bugs.winehq.org/show_bug.cgi?id=46470
Sveinar Søpler cybermax@dexter.no changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #71625|0 |1 is obsolete| |
--- Comment #47 from Sveinar Søpler cybermax@dexter.no --- Created attachment 71628 --> https://bugs.winehq.org/attachment.cgi?id=71628 OpenCL 1.2 stubs
It seems OpenCL 1.2 also have these symbols:
clCreateFromGLBuffer clCreateFromGLRenderbuffer clCreateFromGLTexture clCreateFromGLTexture2D clCreateFromGLTexture3D clCreateSubDevicesEXT clEnqueueAcquireGLObjects clEnqueueReleaseGLObjects clGetGLContextInfoKHR clGetGLObjectInfo clGetGLTextureInfo clReleaseDeviceEXT clRetainDeviceEXT
Found these in the ocl-icd-libopencl1_1.2.1-1 archive for Debian. Adding these is enough to make DAZ enable dForce with OpenCL.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #48 from Zebediah Figura z.figura12@gmail.com --- (In reply to Sveinar Søpler from comment #47)
Created attachment 71628 [details] OpenCL 1.2 stubs
It seems OpenCL 1.2 also have these symbols:
clCreateFromGLBuffer clCreateFromGLRenderbuffer clCreateFromGLTexture clCreateFromGLTexture2D clCreateFromGLTexture3D clCreateSubDevicesEXT clEnqueueAcquireGLObjects clEnqueueReleaseGLObjects clGetGLContextInfoKHR clGetGLObjectInfo clGetGLTextureInfo clReleaseDeviceEXT clRetainDeviceEXT
Found these in the ocl-icd-libopencl1_1.2.1-1 archive for Debian. Adding these is enough to make DAZ enable dForce with OpenCL.
Apparently the unsuffixed KHR_gl_sharing functions (i.e. everything except clGetGLContextInfoKHR) are exported from the loader on Windows even though they're not core. I'll write a patch after code freeze.
https://bugs.winehq.org/show_bug.cgi?id=46470
--- Comment #49 from Moté automates+bugwine@lepouete.fr --- Hello, I’m just asking for a quick update on this. Need any help? :) The community is already happy with the work done for Daz Studio, and can’t wait to have dforce working!
https://bugs.winehq.org/show_bug.cgi?id=46470
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch