Tool/software: Linux
Hi All,
We use custom h/w and software based on DRA74X and PROCESSOR-SDK-VISION 3.02, and we modify the SDK code to make the display route to Linux.
We are using SgxFrmcpyLink and with this we can get the offline rendered frame by DMABUF. However the solution return error because of eglChooseConfig() return 0 matching config, and eglCreateContext() failed with error code (0x3005). The reason for the problem is that there is no matching config for Specific attributes.
We found a total of 22 configs, below is the details.
EGL: version 1.4 EGL: INFO: eglGetConfigs 22 configs success. EGL: INFO: eglGetConfigs success... EGL: INFO: CONFIG: 0: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 1: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 2: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 3: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 4: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 5: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 6: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 7: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 8: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 1 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 9: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 1 success... EGL: INFO: EGL_RENDERABLE_TYPE: 3 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 10: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 1 success... EGL: INFO: EGL_RENDERABLE_TYPE: 3 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 11: ---> EGL: INFO: EGL_RED_SIZE: 4 success... EGL: INFO: EGL_GREEN_SIZE: 4 success... EGL: INFO: EGL_BLUE_SIZE: 4 success... EGL: INFO: EGL_ALPHA_SIZE: 4 success... EGL: INFO: EGL_SURFACE_TYPE: 1 success... EGL: INFO: EGL_RENDERABLE_TYPE: 3 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 12: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 5 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 1 success... EGL: INFO: EGL_SURFACE_TYPE: 1 success... EGL: INFO: EGL_RENDERABLE_TYPE: 3 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 13: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 14: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 15: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 8 success... EGL: INFO: EGL_SURFACE_TYPE: 4 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 16: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 17: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 18: ---> EGL: INFO: EGL_RED_SIZE: 8 success... EGL: INFO: EGL_GREEN_SIZE: 8 success... EGL: INFO: EGL_BLUE_SIZE: 8 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 4 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 19: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success... EGL: INFO: CONFIG: 20: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 5 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 0 success... EGL: INFO: CONFIG: 21: ---> EGL: INFO: EGL_RED_SIZE: 5 success... EGL: INFO: EGL_GREEN_SIZE: 6 success... EGL: INFO: EGL_BLUE_SIZE: 5 success... EGL: INFO: EGL_ALPHA_SIZE: 0 success... EGL: INFO: EGL_SURFACE_TYPE: 4 success... EGL: INFO: EGL_RENDERABLE_TYPE: 4 success... EGL: INFO: EGL_DEPTH_SIZE: 24 success...
The attribute is below.
const EGLint attribs[] = {
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_ALPHA_SIZE, 0,
EGL_SURFACE_TYPE, EGL_PIXMAP_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_DEPTH_SIZE, 8,
EGL_NONE
};
#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ #define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ #define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ #define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ #define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */
We do a little test on demo board(DRA7XXEVM) with running PROCESSOR-SDK-VISION3.02 or PROCESSOR-SDK-LINUX3.04. eglChooseConfig() return 3 matching configs successfully.
We have compared the kernel code and the graphics driver, they are the same. Only a little bit because of different h/w differences on device tree.
Is there anyone who can tell me how to solve this problem?
regards, Jaye.