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.

TDA2EVM5777: PROCESSOR_SDK_VISION_03_00_00_00 eglCreateContext failed

Part Number: TDA2EVM5777

Hi,

I test 3d surround view use case in Processor-Vison 3.0. Please see the work flow  for the use case at the last.

But eglCreateContext return fail. The following is the output.

[HOST] [HOST  ]     62.464649 s:  EGL: version 1.4

EGL: after eglCreateContext() eglError (0x3005)

[HOST] [HOST  ]     62.815714 s:  EGL: eglCreateContext() failed !!!

The following is the function which calls eglCreateContext. So is there a way to figure out the reason why eglCreateContext failed? 

int System_eglOpen(System_EglObj *pEglObj, struct control_srv_egl_ctx *eglInfo)
{
EGLint num_configs;
EGLint majorVersion;
EGLint minorVersion;
int ret, count;
System_Buffer *nextBuf;
int status;
System_EglPixmapVideoFrameBuffer *eglBuf;
EGLCompatBuffer eglCBuf;
UInt32 flags = pEglObj->chInfo.flags;

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
};
EGLint context_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };

memcpy(&(pEglObj->eglInfo), eglInfo, sizeof(pEglObj->eglInfo));

pEglObj->nativeDisplay = pEglObj->eglInfo.get_egl_native_display();
pEglObj->display = eglGetDisplay((EGLNativeDisplayType)pEglObj->nativeDisplay);
System_eglCheckEglError("eglGetDisplay", EGL_TRUE);
if (pEglObj->display == EGL_NO_DISPLAY) {
Vps_printf(" EGL: ERROR: eglGetDisplay() returned EGL_NO_DISPLAY !!!\n");
return -1;
}

ret = eglInitialize(pEglObj->display, &majorVersion, &minorVersion);
System_eglCheckEglError("eglInitialize", ret);
Vps_printf(" EGL: version %d.%d\n", majorVersion, minorVersion);
if (ret != EGL_TRUE) {
Vps_printf(" EGL: eglInitialize() failed !!!\n");
return -1;
}

if (!eglBindAPI(EGL_OPENGL_ES_API)) { // Shiju - add in VSDK
Vps_printf(" EGL: ERROR - failed to bind api EGL_OPENGL_ES_API\n");
return -1;
}

if (!eglChooseConfig(pEglObj->display, attribs, &pEglObj->config, 1, &num_configs))
{
Vps_printf(" EGL: ERROR: eglChooseConfig() failed. Couldn't get an EGL visual config !!!\n");
return -1;
}

pEglObj->context = eglCreateContext(pEglObj->display, pEglObj->config, EGL_NO_CONTEXT, context_attribs);
System_eglCheckEglError("eglCreateContext", EGL_TRUE);
if (pEglObj->context == EGL_NO_CONTEXT) {
Vps_printf(" EGL: eglCreateContext() failed !!!\n");
return -1;
}

#ifdef QNX_BUILD
egl_config_verbose(pEglObj->display, pEglObj->config);
#else
ret = eglMakeCurrent(pEglObj->display, EGL_NO_SURFACE, EGL_NO_SURFACE, pEglObj->context);
System_eglCheckEglError("eglMakeCurrent", ret);
if (ret != EGL_TRUE) {
Vps_printf(" EGL: eglMakeCurrent() failed !!!\n");
return -1;
}

System_eglPrintGLString("Version", GL_VERSION);
System_eglPrintGLString("Vendor", GL_VENDOR);
System_eglPrintGLString("Renderer", GL_RENDERER);
System_eglPrintGLString("Extensions", GL_EXTENSIONS);
#endif

status = OSA_queCreate(&(pEglObj->eglEmptyBufQue), SYSTEM_MAXNUM_EGL_BUFFERS);
OSA_assert(status == SYSTEM_LINK_STATUS_SOK);

status = OSA_queCreate(&(pEglObj->eglFullBufQue), SYSTEM_MAXNUM_EGL_BUFFERS);
OSA_assert(status == SYSTEM_LINK_STATUS_SOK);

for (count = 0; count < SYSTEM_MAXNUM_EGL_BUFFERS; count++)
{
nextBuf = OSA_memAlloc(sizeof(System_Buffer));
OSA_assert(nextBuf != NULL);

nextBuf->payload = OSA_memAlloc(sizeof(System_EglPixmapVideoFrameBuffer));
OSA_assert(nextBuf->payload != NULL);

nextBuf->payloadSize = sizeof(System_EglPixmapVideoFrameBuffer);
nextBuf->bufType = SYSTEM_BUFFER_TYPE_EGLPIXMAP_VIDEO_FRAME;
nextBuf->chNum = 0;
nextBuf->frameId = 0;

eglBuf = nextBuf->payload;
eglCBuf = pEglObj->eglInfo.get_egl_native_buffer(pEglObj->width, pEglObj->height);
eglBuf->eglPixmap = eglCBuf.eglPixmap;
eglBuf->pixmapNative = eglCBuf.pixmapNative;
eglBuf->bufAddr[0] = eglCBuf.pixmapNative;
eglBuf->eglSurface = (UInt32)eglCreatePixmapSurface(pEglObj->display, pEglObj->config, eglBuf->eglPixmap, NULL);
OSA_assert(eglBuf->eglSurface != (UInt32)EGL_NO_SURFACE);

eglBuf->chInfo.flags = System_Link_Ch_Info_Set_Flag_Data_Format(flags, SYSTEM_DF_ABGR32_8888);
eglBuf->chInfo.pitch[0] = eglCBuf.stride;
eglBuf->chInfo.pitch[1] = eglCBuf.stride;
eglBuf->chInfo.pitch[2] = eglCBuf.stride;
eglBuf->chInfo.width = eglCBuf.width;
eglBuf->chInfo.height= eglCBuf.height;
eglBuf->chInfo.startX= 0;
eglBuf->chInfo.startY= 0;
eglBuf->flags = System_Link_Ch_Info_Set_Flag_Data_Format(flags, SYSTEM_DF_ABGR32_8888);

pEglObj->chInfo.width = eglCBuf.width;
pEglObj->chInfo.height= eglCBuf.height;
pEglObj->chInfo.pitch[0] = eglCBuf.stride;
pEglObj->chInfo.pitch[1] = eglCBuf.stride;
pEglObj->chInfo.pitch[2] = eglCBuf.stride;
pEglObj->chInfo.startX = 0;
pEglObj->chInfo.startY = 0;
pEglObj->chInfo.flags = System_Link_Ch_Info_Set_Flag_Data_Format(flags, SYSTEM_DF_ABGR32_8888);

//Vps_printf("System Buffer created = %p, contains = %p (eglpixmap = %p)\n", nextBuf, eglBuf, eglBuf->eglPixmap);

OSA_quePut(&(pEglObj->eglEmptyBufQue), (Int32)nextBuf, OSA_TIMEOUT_FOREVER);
pEglObj->eglBuffers[count] = nextBuf;
}
#ifdef QNX_BUILD
eglBuf = pEglObj->eglBuffers[0]->payload;
ret = eglMakeCurrent(pEglObj->display, (EGLSurface)eglBuf->eglSurface, (EGLSurface)eglBuf->eglSurface, pEglObj->context);
OSA_assert(ret != 0);

egl_config_verbose2();
#endif

return 0;
}

Mason Su

Best Regards

  • Hi Mason,

    Could you give additional details on the issue? Is this not working out of the box? Or were some changes done on top of VisionSDK release?

    If changes were done, what were the changes?

    Regards,
    Anand
  • Hi Anand,

    Thanks for the reply.

    We use kernel 4.4.84 from Processor SDK Linux Automotive Release 3.01.00.03 to run this use case. Because we have used this kernel to develop the system and we want to test this 3d surround view use case.

    Mason Su

    Best regards

  • Hi Mason Su,

    Can you download the latest Vision SDK and check? The latest version is 03_02_00_00 released in Dec 2017. The version you are using 03_00_00_00 is very old.

    This release should be using the latest kernel 4.4:
    software-dl.ti.com/.../index_FDS.html

    Regards,
    Anand
  • Hi Anand,

     My colleague have test the sdk.

    We found the following demos works.

    OGLES2ChameleonMan  OGLES2ExampleUI     OGLES2MagicLantern

    OGLES2Coverflow     OGLES2FilmTV        OGLES2Navigation

    But we still can not run this surround view demo. 

    The following is our environment.

    Kernel:                                       4.4.84 

    GPU:                                           omap5-sgx-ddk-linux  3699939

    SDK:                                            PROCESSOR_SDK_VISION_03_02_00_00

    We get the following error.

    EGL: after eglCreateContext() eglError (0x3005)

    EGL: eglCreateContext() failed !!!

    Also we tested the attached code, it failed. I uploaded the log for this code as well.

    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <assert.h>
    #include <drm.h>
    #include <omap_drmif.h>
    
    #include <xf86drm.h>
    #include <xf86drmMode.h>
    #include <gbm.h>
    
    
    #include <EGL/egl.h>
    #include <EGL/eglext.h>
    #include <GLES2/gl2.h>
    #include <GLES2/gl2ext.h>
    
    
    int fd = -1;
    struct gbm_device *dev = NULL;
    
    
    void eglCheckError(const char* op, EGLBoolean returnVal) {
       EGLint error;
    
       if (returnVal != EGL_TRUE) {
           fprintf(stderr, " EGL: %s() returned %d\n", op, returnVal);
       }
    
       for (error = eglGetError(); error != EGL_SUCCESS; error = eglGetError()) {
           fprintf(stderr, " EGL: after %s() eglError (0x%x)\n", op, error);
       }
    }
    
    
    int search_display(int drmFd)
    {
    #define SYSTEM_DRM_MAX_DISPLAYS     (4)
    #define SYSTEM_DRM_MAX_PLANES       (4)
    
    	drmModeRes *resources;
    	drmModeConnector *connector = NULL;
    	drmModeEncoder *encoder = NULL;
    	int i, j;
    	int display_found = 0;
    	int displayWidth = 1280;
    	int displayHeight = 720;
    
    	uint32_t resource_id;
    	uint32_t numDisplays;
        uint32_t curDisplay;
        drmModeModeInfo *mode[SYSTEM_DRM_MAX_DISPLAYS];
        uint32_t crtc_id[SYSTEM_DRM_MAX_DISPLAYS];
        uint32_t connector_id[SYSTEM_DRM_MAX_DISPLAYS];
        uint32_t encoders[SYSTEM_DRM_MAX_DISPLAYS];
    	drmModeConnector *connectors[SYSTEM_DRM_MAX_DISPLAYS];
    	uint32_t plane_id[SYSTEM_DRM_MAX_PLANES];
    	int numPlanes;
    	int grpx_plane_id;
    	int fc_plane_id;
    	int canUsePlanes;
    
    	resources = drmModeGetResources(drmFd);
    	if (resources==NULL) {
    		fprintf(stderr, " DRM: ERROR: drmModeGetResources() failed (%s) !!!\n", strerror(errno));
    		return -1;
    	}
    	resource_id = (uint32_t) resources;
    
    	/* find a connected connector: */
    	numDisplays = 0;
    	curDisplay  = 0;
    	for (i = 0; i < resources->count_connectors; i++) {
    		connector = drmModeGetConnector(drmFd, resources->connectors[i]);
    		if (connector->connection == DRM_MODE_CONNECTED) {
    			/* choose the first supported mode */
    			mode[numDisplays] = &connector->modes[0];
    			connector_id[numDisplays] = connector->connector_id;
    
    			for (j=0; j<resources->count_encoders; j++) {
    				encoder = drmModeGetEncoder(drmFd, resources->encoders[j]);
    				if (encoder->encoder_id == connector->encoder_id)
    				   break;
    
    				drmModeFreeEncoder(encoder);
    				encoder = NULL;
    			}
    
    			if (encoder==NULL) {
    				fprintf(stderr, " DRM: ERROR: drmModeGetEncoder() did not find any "
    						  "encoder connected to connector ID [%d] !!!\n",
    						  connector->connector_id
    						  );
    				return -1;
    			}
    
    			encoders[numDisplays]	= (uint32_t) encoder;
    			crtc_id[numDisplays]	= encoder->crtc_id;
    			connectors[numDisplays] = connector;
    
    
    			/*Lets see what folks tell about this. currently a security check*/
    			assert(displayWidth != 0 && displayHeight != 0);
    
    		   /*No connector based selection supported. we dont use it anyway.*/
    		   /*if (display_found == FALSE && (pPrm->connector_id != -1) && (pPrm->connector_id == pObj->connector_id[pObj->numDisplays]))
    		   {
    			   pObj->curDisplay = pObj->numDisplays;
    			   display_found = TRUE;
    		   }*/
    		   if(display_found == 0 && (displayWidth != 0 || displayHeight != 0))
    		   
    			   for (j = 0; j < connector->count_modes; j++) {
    				   if(connector->modes[j].hdisplay == displayWidth &&
    						   connector->modes[j].vdisplay == displayHeight)
    				   {
    					   curDisplay = numDisplays;
    					   mode[curDisplay] = &connector->modes[j];
    					   display_found = 1;
    					   break;
    				   }
    			   }
    
    		}
    
    		if(display_found == 1) {
    			break;
    
    		/*if we go on and choose the highest display, Who knows, it can be a 4K as well.*/
    		/*We dont have that big a buffer incoming.										*/
    
    		/*
    		if(pPrm->connector_id==-1 &&  pPrm->displayWidth == 0 && pPrm->displayHeight == 0)
    		{
    			maxRes = pObj->mode[pObj->curDisplay]->vdisplay * pObj->mode[pObj->curDisplay]->hdisplay;
    			curRes = pObj->mode[pObj->numDisplays]->vdisplay * pObj->mode[pObj->numDisplays]->hdisplay;
    			if (curRes > maxRes)
    			{
    				pObj->curDisplay = pObj->numDisplays;
    			}
    		}
    		*/
    
    
    			numDisplays++;
    		}
    		else
    		{
    		   drmModeFreeConnector(connector);
    		}
    	}
    
    
    	if (display_found == 0) {
    		fprintf(stderr, " DRM: ERROR: No connected connector found !!!\n");
    		return -1;
    	}
    	else {
    			fprintf(stdout, "### Encoder [%d]: RESC = %d, Connector = %d\n", encoders[curDisplay], resource_id, connectors[curDisplay]->connector_id);
    			fprintf(stdout, "### Display [%d]: CRTC = %d, Connector = %d/%d\n", curDisplay, crtc_id[curDisplay], connector_id[curDisplay]);
    			fprintf(stdout, "   Mode chosen [%s] : Clock => %d, Vertical refresh => %d, Type => %d\n", mode[curDisplay]->name, mode[curDisplay]->clock, mode[curDisplay]->vrefresh, mode[curDisplay]->type);
    			fprintf(stdout, "   Horizontal => %d, %d, %d, %d, %d\n", mode[curDisplay]->hdisplay, mode[curDisplay]->hsync_start, mode[curDisplay]->hsync_end, mode[curDisplay]->htotal, mode[curDisplay]->hskew);
    			fprintf(stdout, "   Vertical => %d, %d, %d, %d, %d\n", mode[curDisplay]->vdisplay, mode[curDisplay]->vsync_start, mode[curDisplay]->vsync_end, mode[curDisplay]->vtotal, mode[curDisplay]->vscan);
    	}
    
    	canUsePlanes = 0;
    	drmModePlaneRes *plane_resource_id = drmModeGetPlaneResources(drmFd);
    	if(plane_resource_id)
    		canUsePlanes = 1;
    	numPlanes = 0;
    	assert(canUsePlanes);
    
    	int pcount;
    	unsigned int curr_crtc = 0;
    	for (pcount = 0; pcount < plane_resource_id->count_planes; pcount++) {
    		int ccount;
    		drmModePlane *ovr = drmModeGetPlane(drmFd, plane_resource_id->planes[pcount]);
    		for (ccount = 0; ccount < resources->count_crtcs; ccount++) {
    			if (crtc_id[curDisplay] == resources->crtcs[ccount]) {
    				curr_crtc = (1 << ccount);
    				break;
    			}
    		}
    
    		if (ovr->possible_crtcs & curr_crtc) {
    			plane_id[numPlanes] = ovr->plane_id;
    			numPlanes++;
    		}
    
    		drmModeFreePlane(ovr);
    	}
    
    	assert(numPlanes >= 2);
    	grpx_plane_id    = plane_id[0];
    	fc_plane_id	   = plane_id[1];
    
    	drmModeFreePlaneResources (plane_resource_id);
    	/*this is also too much hardcoding*/
    	drmModeObjectSetProperty(drmFd, grpx_plane_id, DRM_MODE_OBJECT_PLANE , 7, 3);
    	drmModeObjectSetProperty(drmFd, fc_plane_id, DRM_MODE_OBJECT_PLANE , 7, 2);
    
    	drmModeObjectSetProperty(drmFd, crtc_id[curDisplay], DRM_MODE_OBJECT_CRTC , 7, 0);
    
    	drmModeObjectSetProperty(drmFd, crtc_id[curDisplay], DRM_MODE_OBJECT_CRTC , 12, 0x00000000);
    	drmModeObjectSetProperty(drmFd, crtc_id[curDisplay], DRM_MODE_OBJECT_CRTC , 11, 2);
    
    	return 0;
    }
    
    
    
    EGLNativeDisplayType get_native_display ()
    {
    	if(fd == -1) {
    		fd = drmOpen("omapdrm", NULL);//open("/dev/dri/card0", O_RDWR);//
    	}
    	if(fd > 0 && dev == NULL) {
            search_display(fd);
            
    		dev = gbm_create_device(fd);
    	}
    
    	return (EGLNativeDisplayType)dev;
    }
    
    int main(int argc, char *argv[])
    {
        EGLNativeDisplayType nativeDisplay;
        EGLDisplay display;
        EGLContext context;
        EGLConfig config;
        EGLBoolean retVal = EGL_FALSE;
        EGLint majorVersion;
        EGLint minorVersion;
    
        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
        };
        EGLint context_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
    
        nativeDisplay = get_native_display();
        display = eglGetDisplay(nativeDisplay);
        eglCheckError("eglGetDisplay", EGL_TRUE);
        if (display == EGL_NO_DISPLAY) {
           fprintf(stderr, " EGL: ERROR: eglGetDisplay() returned EGL_NO_DISPLAY !!!\n");
           return -1;
        }
        
        retVal = eglInitialize(display, &majorVersion, &minorVersion);
        eglCheckError("eglInitialize", retVal);
        fprintf(stdout, " EGL: version %d.%d\n", majorVersion, minorVersion);
        if (retVal != EGL_TRUE) {
           fprintf(stderr, " EGL: eglInitialize() failed !!!\n");
           return -1;
        }
    
        if (!eglBindAPI(EGL_OPENGL_ES_API)) {
            fprintf(stderr, " EGL: ERROR - failed to bind api EGL_OPENGL_ES_API\n");
            return -1;
        }
        
    	EGLint numConfigs = 0;
    	EGLConfig configs[32];
    	EGLint configSize;
    	EGLint numChooseconfigs = 0;
    	if (!eglGetConfigs(display, NULL, 0, &numConfigs))
    	{
            fprintf(stderr, " EGL: ERROR - failed to eglGetConfigs\n");
    	}
    	else
    	{
            fprintf(stdout, " EGL: INFO: eglGetConfigs %d configs success.\n", numConfigs);
    		configSize = numConfigs;
    		if (!eglGetConfigs(display, configs, configSize, &numConfigs))
    		{
    	        fprintf(stderr, " EGL: ERROR: eglGetConfigs failed...\n");
    		}
    		else
    		{
    	        fprintf(stdout, " EGL: INFO: eglGetConfigs success...\n");
    	        
    			int j;
    			EGLint val;
    			for ( j = 0 ; j < configSize; j++ )
    			{
    	        	fprintf(stdout, " EGL: INFO: CONFIG: %d: --->\n", j);
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_RED_SIZE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_RED_SIZE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_RED_SIZE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_GREEN_SIZE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_GREEN_SIZE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_GREEN_SIZE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_BLUE_SIZE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_BLUE_SIZE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_BLUE_SIZE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_ALPHA_SIZE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_ALPHA_SIZE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_ALPHA_SIZE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_SURFACE_TYPE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_SURFACE_TYPE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_SURFACE_TYPE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_RENDERABLE_TYPE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_RENDERABLE_TYPE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_RENDERABLE_TYPE: failed.\n");
    			    }
    			    
    				val = -1;
    			    if (eglGetConfigAttrib(display, configs[j], EGL_DEPTH_SIZE, &val))
    			    {
    			    	fprintf(stdout, " EGL: INFO: EGL_DEPTH_SIZE: %d success...\n", val);
    			    }
    			    else
    			    {
    			    	fprintf(stderr, " EGL: ERROR: EGL_DEPTH_SIZE: failed.\n");
    			    }
    
    			}
    		}
    
    		numChooseconfigs = 1;
        	if (!eglChooseConfig(display, attribs, NULL, 0, &numChooseconfigs))
        	{
                fprintf(stderr, " EGL: ERROR: eglChooseConfig() failed. Couldn't get an EGL visual config !!!\n");
                return -1;
        	}
    
        	fprintf(stdout, " EGL: INFO: eglChooseConfig() success. Get %d configs... !!!\n", numChooseconfigs);
    
        	context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attribs);
            eglCheckError("eglCreateContext", EGL_TRUE);
            if (context == EGL_NO_CONTEXT) {
                fprintf(stderr, " EGL: eglCreateContext() failed !!!\n");
                return -1;
            }
    	}
        return 0;
    }
    
    
    

    ### Encoder [143600]: RESC = 143544, Connector = 32
    ### Display [0]: CRTC = 34, Connector = 32/-1225031240
       Mode chosen [1280x720] : Clock => 65500, Vertical refresh => 59, Type => 72
       Horizontal => 1280, 1328, 1360, 1404, 0
       Vertical => 720, 741, 765, 794, 0
    failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory
    failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory
    loaded module : gbm_pvr.so
    found valid GBM backend : gbm_pvr.so
    PVR:(Error): Couldn't load WS module libpvrws_WAYLAND.so [0, ]
     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...
     EGL: INFO: eglChooseConfig() success. Get 0 configs... !!!
     EGL: after eglCreateContext() eglError (0x3005)
     EGL: eglCreateContext() failed !!!

    Mason Su

    Best Regards

  • Hi Mason Su,

    I think there are some missing patches on your setup. The VisionSDK code is based on M4 display. Hence, the KMS driver on Linux is disabled and display is routed to M4. The GLES test applications should not work as-is.

    There are some kernel changes / patches that are packaged with VisionSDK release. Have you applied them to your kernel branch?

    Regards,
    Anand
  • Hi Anand,

    Can you give me the links for these patches?

    Best regards

    Mason Su

  • Hi Mason Su,

    The patches for kernel and other Linux SDK components are included as part of VisionSDK package. Can you check the user guide that came along with installer?

    Regards,
    Anand
  • Hi Anand,

    My colleague has created another thread. Because my colleague described the question more clearly. Can you see the other thread insteadly?

    https://e2e.ti.com/support/arm/automotive_processors/f/1021/t/679641

    Mason Su

    Best regards,

  • My colleague has checked the patches and he still can not solve the problem. And he has created another thread.
    e2e.ti.com/.../679641
  • Hi,

    I will close this thread. The discussion can continue there:
    e2e.ti.com/.../679641

    Regards,
    Yordan