[Beignet] clCreateFromGLTexture working?

Pan, Xiuli xiuli.pan at intel.com
Wed Mar 30 02:21:18 UTC 2016


Hi Sean,

Yes, we support those apis  (you can find what we support from src/cl_api.c), but it seems there are some problems with the src/cl_khr_icd.c. I will send a patch about this and you can just remove the macro before this apis in cl_khr_icd.c and maybe they can work with pyopencl.

I see that your final target is to run on Android, and we have tried to build on Android and you can find the patchset here https://lists.freedesktop.org/archives/beignet/2015-November/006638.html

Thanks
Xiuli


From: Sean Lynch [mailto:seanl at literati.org]
Sent: Tuesday, March 29, 2016 9:41 PM
To: Pan, Xiuli <xiuli.pan at intel.com>
Cc: beignet at lists.freedesktop.org
Subject: RE: [Beignet] clCreateFromGLTexture working?


Thanks for the pointer to that file. That's helpful. I'm using ocl-icd to load Beignet, because the Beignet package on Arch requires "libcl" and assumes you will be using an ICD loader. If I try to use Beignet's libcl.so directly, PyOpenCL fails to load with missing symbols for clCreateGLBuffer and friends. I think all the extension checking happens at compile time, not runtime, but with ocl-icd one would obviously need some runtime checking.

My goal is realtime raytracing, so having to copy back and forth to main memory is not an attractive option. Is there any other option available to me besides cl_khr_gl_sharing? I'd prefer not to have to use GLSL, but that's starting to look like my only option. It may well be the better approach if I want any hope of having my code eventually run on Android anyway.

The docs claim clCreateFromGLTexture works[1], so they should probably be updated:

"Currently, the working APIs are clCreateFromGLTexture,clCreateFromGLTexture2D."

[1] https://www.freedesktop.org/wiki/Software/Beignet/
On Mar 28, 2016 23:28, "Pan, Xiuli" <xiuli.pan at intel.com<mailto:xiuli.pan at intel.com>> wrote:
Hi Sean,

It seems we do not support API clCreateFromGLTexture in beignet, you can get what api we support from the file src/cl_khr_icd.c.
If PyOpenCL can run into this maybe there is something wrong with the device extension check either for them or for beignet. I will recheck about this and give you a clear reply then.

Thanks
Xiuli

From: Beignet [mailto:beignet-bounces at lists.freedesktop.org<mailto:beignet-bounces at lists.freedesktop.org>] On Behalf Of Sean Lynch
Sent: Tuesday, March 29, 2016 2:15 PM
To: beignet at lists.freedesktop.org<mailto:beignet at lists.freedesktop.org>
Subject: [Beignet] clCreateFromGLTexture working?

I'm getting a segfault with the following stack when trying to call clCreateFromGLTexture from PyOpenCL (which just got preliminary support for it):

#0  0x0000000000000000 in ?? ()
#1  0x00007f8b6af995bd in clCreateFromGLTexture () from /usr/lib/libOpenCL.so.1
#2  0x00007f8b6b1f3a78 in create_from_gl_texture () from /home/seanl/project/voxel/pyenv/lib/python3.5/site-packages/pyopencl-2015.2.4-py3.5-linux-x86_64.egg/pyopencl/_cffi.cpython-35m-x86_64-linux-gnu.so<http://cffi.cpython-35m-x86_64-linux-gnu.so>
#3  0x00007f8b6b1cb10b in _cffi_f_create_from_gl_texture(_object*, _object*) () from /home/seanl/project/voxel/pyenv/lib/python3.5/site-packages/pyopencl-2015.2.4-py3.5-linux-x86_64.egg/pyopencl/_cffi.cpython-35m-x86_64-linux-gnu.so<http://cffi.cpython-35m-x86_64-linux-gnu.so>
#4  0x00007f8b75f755e9 in PyCFunction_Call () from /usr/lib/libpython3.5m.so.1.0
#5  0x00007f8b75fed5f1 in PyEval_EvalFrameEx () from /usr/lib/libpython3.5m.so.1.0
#6  0x00007f8b75fee9e2 in ?? () from /usr/lib/libpython3.5m.so.1.0
#7  0x00007f8b75feeac3 in PyEval_EvalCodeEx () from /usr/lib/libpython3.5m.so.1.0
#8  0x00007f8b75f58b98 in ?? () from /usr/lib/libpython3.5m.so.1.0
#9  0x00007f8b75f2e0da in PyObject_Call () from /usr/lib/libpython3.5m.so.1.0
#10 0x00007f8b75f44d64 in ?? () from /usr/lib/libpython3.5m.so.1.0
#11 0x00007f8b75f2e0da in PyObject_Call () from /usr/lib/libpython3.5m.so.1.0
#12 0x00007f8b75f8aa10 in ?? () from /usr/lib/libpython3.5m.so.1.0
#13 0x00007f8b75f88de6 in ?? () from /usr/lib/libpython3.5m.so.1.0
#14 0x00007f8b75f2e0da in PyObject_Call () from /usr/lib/libpython3.5m.so.1.0
#15 0x00007f8b75fe74bc in PyEval_EvalFrameEx () from /usr/lib/libpython3.5m.so.1.0
#16 0x00007f8b75fed942 in PyEval_EvalFrameEx () from /usr/lib/libpython3.5m.so.1.0
#17 0x00007f8b75fee9e2 in ?? () from /usr/lib/libpython3.5m.so.1.0
#18 0x00007f8b75feeac3 in PyEval_EvalCodeEx () from /usr/lib/libpython3.5m.so.1.0
#19 0x00007f8b75feeaeb in PyEval_EvalCode () from /usr/lib/libpython3.5m.so.1.0
#20 0x00007f8b7600dc64 in ?? () from /usr/lib/libpython3.5m.so.1.0
#21 0x00007f8b76010175 in PyRun_FileExFlags () from /usr/lib/libpython3.5m.so.1.0
#22 0x00007f8b760102e6 in PyRun_SimpleFileExFlags () from /usr/lib/libpython3.5m.so.1.0
#23 0x00007f8b760270f4 in Py_Main () from /usr/lib/libpython3.5m.so.1.0
#24 0x0000000000400af7 in main ()

Should this work with current Beignet master?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/beignet/attachments/20160330/2bc5f13e/attachment-0001.html>


More information about the Beignet mailing list