I want to use eglCreateImageKHR api by using egl_khr_image_pixmap extension but my platform(linux 3.10, T628 fbdev r4p0 driver) can not support this egl extension.
Following are my egl extension string.
EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_ARM_pixmap_multisample_discard EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image
As you can see, this platform has no egl_khr_image_pixmap extension.
My question is
1. Why fbdev driver can not support egl_khr_image_pixmap. When porting driver, it needs additional work?
2. Can latest version of driver support egl_khr_image_pixmap?
Thanks !
Thanks Michael
Currently, I am not concerned about X11.
And about DMA_BUF, I try following code already.
EGLint attrs[] = {
EGL_WIDTH, width,
EGL_HEIGHT, height,
EGL_LINUX_DRM_FOURCC_EXT, DRM_FORMAT_RGB565,
EGL_DMA_BUF_PLANE0_FD_EXT, fd,
EGL_DMA_BUF_PLANE0_OFFSET_EXT, 0,
EGL_DMA_BUF_PLANE0_PITCH_EXT, stride,
EGL_NONE
};
EGLImageKHR image = eglCreateImageKHR(dpy, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT,
(EGLClientBuffer)0, attrs);
but I got "0x300C, EGL_BAD_PARAMTER". I knew already my platform has no EGL_EXT_image_dma_buf_import but i tried anyway.
Regarding EGL_EXT_image_dma_buf_import, Need additional work on kernel driver?
Frankly speaking, I'm not expert about kernel and kernel driver.
Hi cappy,
Just to clarify.
This extension currently only works for X11 in our production drivers.
FBDEV version requires additional work. If you are using the binaries on our website, as opposed to ones from your OEM, (http://malideveloper.arm.com/resources/drivers/arm-mali-midgard-gpu-user-space-drivers/) then we have this implemented from version r6p0 onwards. However this currently requires further work from the integrator on the kernel side to implement the ioctls that the driver will be calling to make this work correctly.
We cannot give you an ETA when this will be in both sides by default, but it is likely to not happen until at least r10p0 version of our drivers.
If you cannot wait until then, and you are unable to use X11, then I would recommend using the drivers from malideveloper (r6p0 onwards) and implement the kernel side changes neccessary to make this work yourself.
EDIT: For further information on this subject, please read this blog post from guillaume.tucker!
Improving ARM® Mali™ drivers on fbdev
I hope that helps explain the current situation.
Kind Regards,
Michael McGeagh
Thanks Michael !
I implemented kernel side changes already and checked very good rendering performance caused by zero-copy.
In addition, I added ion device driver, dma_buf and some code for frame buffer's sources.
But your recommended subject seems to have no relationship with EGL_EXT_image_dma_buf_import.
If I'm wrong, please tell me about the further work for this subject.
Is there any other way? For example, ump way?
What I really want is sharing texture memory between CPU and GPU. So i asked about egl_khr_image pixmap and EGL_EXT_image_dma_buf_import extension. Because my platform's EGL does not support these extensions string.
Anyway, Resolving performance issues is good thing.
Thank you,