I get this strength issues from ODROID
drivers for Mali-400 don't support
eglCreateImageKHR with EGL_LINUX_DMA_BUF_EXT
?
but drivers internaly use DMA_BUF
any reason or workaround for this for this?
And why UMP is supported and DMA_BUF isn't?
Hi dsd,
Discussions are ongoing internally, I've been pointed to some test code which exercises this path and I've raised that with the appropriate team to hopefully feed you back some simple instructions.
Thanks,
Chris
m][sko and I are using the X11 version so we'll be very interested in the results of your investigation.
Very promising to see that there is a way to do it with the fbdev version at least. Thanks for sharing!
So the answer to that question depends on whether you're using FBDEV or X11... My understanding (potentially wrong!) for FBDEV...
eglCreateImageKHR(dpy, ctx, EGL_NATIVE_PIXMAP_KHR, (EGLClientBuffer)ump_handle, attrib_list);
We basically hijack the EGL_NATIVE_PIXMAP_KHR type because FBDEV doesn't have anything defined for that, and you just pass the ump handle For X11 I'll have to reply once I understand it.
Hth,
Oh, OK. Still, similar dilemma.
Lets say I have image data in a dma-buf. I write an interface to give me a UMP handle for that dma-buf. OK so far.
Now I have an appropriate UMP handle in my application. How can I get a GL texture that refers to that UMP memory? What is the API for that?
I think Pete was suggesting the opposite, creating a ump handle for a dma_buf and passing that to GLES as it supports UMP images. Not sure if this is possible everywhere but its a potential workaround.
I don't think Pete's suggestion can be used to achieve the equivalent of EGL_LINUX_DMA_BUF_EXT.
Sure, we could invent some API that lets us create a dma-buf from a UMP handle.
But then how can we pass that "fake" dma-buf into the Mali-400 libEGL/libGLESv2 implementation if it does not support the EXT_image_dma_buf_import API at all?
Thanks for the clarification m][sko.
I can confirm that the extension that allows EGL_LINUX_DMA_BUF_EXT, which is EGL_EXT_image_dma_buf_import, is not currently supported on Utgard devices, only Midgard devices.
I will look into whether there are plans for this, however in the mean time, could you look into Pete's suggestion of wrapping a dma_buf into a UMP handle, and use that instead?
If I hear any further news, I will let you know.
Kind Regards,
Michael McGeagh
But eglCreateImageKHR with EGL_LINUX_DMA_BUF_EXT
is not supported in mali400 drivers only mali600+ drivers support it
mali 400 support eglCreateImageKHR with UMP
but latest drivers internally use DMA_BUF.
This is how I understand Peter response
Hi m][sko,
I am a little confused by your last statement.
Can you confirm what exactly you meant by "this feature"?
Assuming I understood correctly, the Utgard range of GPU's (Mali-400/450 for example) do indeed support UMP.
I hope that helps, please let us know if you have any further questions.
If I understand this right
You added this feature to mali 600 drivers but not to mali 400 right ?
Can you add this feature as nice to backport, thx
as mali 450 is pretty new product for example
but drivers internaly use DMA_BUF any reason or workaround for this for this?
No specific reason - mostly history. Workaround wise - DMA BUFF and UMP achieve very similar things - it is generally possible to wrap a UMP memory resource in a DMA BUFF wrapper, and visa-versa.
... because UMP pre-dates DMA_BUF by about 8 years.
HTH,
Pete
View all questions in Graphics and Gaming forum