This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux framebuffers and EGL/GL

 

I have the ti-ezsdk_c6a816x-evm_5_01_00_52 installed for the C6A818 EVM under Linux. By default, there are 3 Linux framebuffers available,  /dev/fb0 (HDMI), /dev/fb1 (HDCOMP) and /dev/fb2 (SDVENC). All of these displays work (verified interactively on the command line through the HDVPSS driver).

 

My application, based on the OGLESInitialization_NullWS.cpp template i.e.

 

eglDisplay = eglGetDisplay((NativeDisplayType)0);
eglInitialize(eglDisplay, &iMajorVersion, &iMinorVersion);
eglChooseConfig(eglDisplay, pi32ConfigAttribs, &eglConfig, 1, &iConfigs);
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, (NativeWindowType)0, NULL);
eglContext = eglCreateContext(eglDisplay, eglConfig, NULL, NULL);
eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);


can successfully render to what is obviously /dev/fb0 and the output appears correctly on the monitor attached to the HDMI port. Making the assumption that an EGL display is equivalent to a Linux framebuffer, I then modified the code to use:

 

eglDisplay = eglGetDisplay((NativeDisplayType)1);

 

but ended up with EGL_NO_DISPLAY being returned. Is this a bug with the EGL, a failing of the underlying Linux implementation or a mis-understanding on my part trying to make a (non-existent) connection between a display and a Linux framebuffer? What would be the correct way of using EGL to obtain the necessary contexts to allow rendering into different Linux framebuffers? Or is this dependent on the Linux implementation itself? Ultimately I'd like to be able to render independently to multiple framebuffers

 

Regards,

Gary