This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is it possible to benefit from DMA in r6p0 using DRM + GPU?

Hi,

I own an odroid XU3 wich runs currently with the newest mali driver (r6p0) on ubuntu 15.01 without X.

I spend the last days in trying to pass the drm buffer using gbm into the mali gpu, until now with no success.

Problem is, that I'm not able to set up a renderable surface, I tried several extensions (MESA_GBM for example) but they all fail.

Can you pls. provide me with the information if its possible or not?

If it should be possible - are there any resources / samples where to look or the key?

Thanks!

Markus

Parents
  • I walked now through the code of Chrome's ozone gbm platform and learned that they choose another way wich seems also not to work:

    eglCreateImageKHR in with EGL_LINUX_DMA_BUF_EXT.

    In my testcase I use following attributes:

    EGLint attrs[] = {
       EGL_WIDTH,
       drm.mode->hdisplay,
       EGL_HEIGHT,
       drm.mode->vdisplay,
       EGL_LINUX_DRM_FOURCC_EXT,
       DRM_FORMAT_XRGB8888,
       EGL_DMA_BUF_PLANE0_FD_EXT,
       gbm.dma_fd,
       EGL_DMA_BUF_PLANE0_OFFSET_EXT,
       0,
       EGL_DMA_BUF_PLANE0_PITCH_EXT,
       gbm.dma_stride,
       EGL_NONE

        };

    before I call

    gl.image = eglCreateImageKHR(gl.display,

            EGL_NO_CONTEXT,

            EGL_LINUX_DMA_BUF_EXT,

            0,

            attrs);

    But unfortunately it is answerd with EGL_BAD_PARAMETER.

    dma_fd and pith have valid values.

    My question is: Is this way correct with the r6p0 fbdev driver?

    Maybe only something missing?

Reply
  • I walked now through the code of Chrome's ozone gbm platform and learned that they choose another way wich seems also not to work:

    eglCreateImageKHR in with EGL_LINUX_DMA_BUF_EXT.

    In my testcase I use following attributes:

    EGLint attrs[] = {
       EGL_WIDTH,
       drm.mode->hdisplay,
       EGL_HEIGHT,
       drm.mode->vdisplay,
       EGL_LINUX_DRM_FOURCC_EXT,
       DRM_FORMAT_XRGB8888,
       EGL_DMA_BUF_PLANE0_FD_EXT,
       gbm.dma_fd,
       EGL_DMA_BUF_PLANE0_OFFSET_EXT,
       0,
       EGL_DMA_BUF_PLANE0_PITCH_EXT,
       gbm.dma_stride,
       EGL_NONE

        };

    before I call

    gl.image = eglCreateImageKHR(gl.display,

            EGL_NO_CONTEXT,

            EGL_LINUX_DMA_BUF_EXT,

            0,

            attrs);

    But unfortunately it is answerd with EGL_BAD_PARAMETER.

    dma_fd and pith have valid values.

    My question is: Is this way correct with the r6p0 fbdev driver?

    Maybe only something missing?

Children