Hi,

I'm developing gl sharing for Open Cl 1.1 implementation. My current solution 
is to
use the existing interface and extension to export a gl texture/buffer object 
to the
OpenCL domain, and create an cl memory object from the same buffer object(drm 
level).
But I met some gaps with current mesa implementation.

First, I want to talk about the gl 2d/3d texture sharing problem.
The basic idea is to use EGL_KHR_gl_texture_3D_image and 
EGL_KHR_gl_texture_2D_image
extension to create an EGL image from the 2d/3d textures, then use EGL API to 
get the
image's attribute and the image's bo's name. But I found there is no way to get 
the
image's detail attributes which are width/height/format/... . I also found that 
this
is as desgiend according KHR_image_base spec:

    3.  Should attributes (width, height, format, etc.) for EGLImages
        be queriable?

        SUGGESTION:  No.  Given the wealth of attributes that we would
        need to specify all possible EGLImages (and possible
        memory layout optimizations performed by implementations), we
        can dramatically simplify the API without loss of key
        functionality by making EGLImages opaque and allowing
        implementations to make the correct decisions internally.

But we do need to query these attributes when we want to create a CL memory 
object
from a gl texture/egl image. Another reason is that GLES doesn't provide APIs to
get a texture's width/height/internal format neighter.

I just wonder is there any possibility to provide such functions at the image 
extensions layer?
If no, then one alternative solution is to leverage gbm's capability. And we do 
need to
extent the GBM's interface to create a GBM device from a existing egl  dri2 
display. Then
we can use GBM's API to query those attributes. Current GBM only support to 
create a new
GBM device as a new dri loader. Thus it can't be used to access the images 
created from
the existing EGL context. Is it doable/acceptable to add a new way to create a 
GBM device
from an existing egl dri2 display?

Or is there any other way to achieve the same goal more gracefully?

Second, back to the gl buffer object sharing problem.
If either the above two issues get fixed(extent EGL image extension or extent 
gbm
library), we can achieve the goal to share a gl 2d/3d texutres with Open CL. But
we still can't achieve the same goal with buffer object. As there is no any 
extension to export
a buffer object. I don't have any good idea about this point. Is there any 
suggestion
for the buffer object sharing with OpenCL in mesa?

Looking forward to your valuable suggestion/feedback.

- Zhigang
Thanks.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to