Skip to content

Instantly share code, notes, and snippets.

@xc-racer99
Last active December 31, 2019 03:20
Show Gist options
  • Save xc-racer99/8c00bb80d6eaf8b9a7a34854e8497b5b to your computer and use it in GitHub Desktop.
Save xc-racer99/8c00bb80d6eaf8b9a7a34854e8497b5b to your computer and use it in GitHub Desktop.
hybris powervr phosh pmOS errors
failed to load driver: exynos
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.317: [render/glapi.c:32] Unable to load eglGetPlatformDisplayEXT
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.364: [render/wlr_renderer.c:208] Could not initialize EGL
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.365: [backend/drm/renderer.c:41] Failed to create EGL/WLR renderer
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.368: [backend/drm/backend.c:196] Failed to initialize renderer
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.392: [backend/backend.c:198] Failed to open DRM device 9
(process:1543): phoc-wlroots-CRITICAL **: 13:21:26.392: [backend/backend.c:339] Failed to open any DRM device
(process:1543): phoc-server-ERROR **: 13:21:26.472: Could not start backend
From Android logcat:
I/SurfaceFlinger( 96): EGL informations:
I/SurfaceFlinger( 96): vendor : Android
I/SurfaceFlinger( 96): version : 1.4 Android META-EGL
I/SurfaceFlinger( 96): extensions: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer EGL_ANDROID_recordable
I/SurfaceFlinger( 96): Client API: OpenGL_ES
I/SurfaceFlinger( 96): EGLSurface: 8-8-8-8, config=0x2
I/SurfaceFlinger( 96): OpenGL ES informations:
I/SurfaceFlinger( 96): vendor : Imagination Technologies
I/SurfaceFlinger( 96): renderer : PowerVR SGX 540
I/SurfaceFlinger( 96): version : OpenGL ES-CM 1.1
I/SurfaceFlinger( 96): extensions: GL_EXT_debug_marker GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_point_sprite GL_OES_point_size_array GL_OES_matrix_palette GL_OES_draw_texture GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_texture_cube_map GL_OES_blend_subtract GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_stencil8 GL_OES_compressed_ETC1_RGB8_texture GL_OES_mapbuffer GL_OES_EGL_image GL_OES_EGL_image_external GL_EXT_multi_draw_arrays GL_OES_required_internalformat GL_IMG_read_format GL_IMG_texture_compression_pvrtc GL_IMG_texture_format_BGRA8888 GL_EXT_texture_format_BGRA8888 GL_OES_egl_sync GL_IMG_vertex_array_object
I/SurfaceFlinger( 96): GL_MAX_TEXTURE_SIZE = 2048
I/SurfaceFlinger( 96): GL_MAX_VIEWPORT_DIMS = 2048
samsung-aries:~$ cat .xsession-errors.old
MESA-LOADER: failed to open exynos (search paths /usr/lib/xorg/modules/dri)
failed to load driver: exynos
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.419: [render/egl.c:41] no valid egl config found
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.438: [render/egl.c:168] Failed to get EGL config
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.514: [render/wlr_renderer.c:208] Could not initialize EGL
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.514: [backend/drm/renderer.c:41] Failed to create EGL/WLR renderer
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.515: [backend/drm/backend.c:196] Failed to initialize renderer
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.533: [backend/backend.c:198] Failed to open DRM device 9
(process:1539): phoc-wlroots-CRITICAL **: 19:18:35.533: [backend/backend.c:339] Failed to open any DRM device
(process:1539): phoc-server-ERROR **: 19:18:35.599: Could not start backend
diff --git a/hybris/egl/egl.c b/hybris/egl/egl.c
index 4c02ebf..16adb5b 100644
--- a/hybris/egl/egl.c
+++ b/hybris/egl/egl.c
@@ -185,6 +185,54 @@ struct _EGLDisplay *hybris_egl_display_get_mapping(EGLDisplay display)
return EGL_NO_DISPLAY;
}
+EGLSurface eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config,
+ EGLNativeWindowType win, const EGLint *attrib_list)
+{
+ HYBRIS_DLSYSM(egl, &_eglCreateWindowSurface, "eglCreateWindowSurface");
+
+ HYBRIS_TRACE_BEGIN("hybris-egl", "eglCreatePlatformWindowSurfaceEXT", "");
+ struct _EGLDisplay *display = hybris_egl_display_get_mapping(dpy);
+ win = ws_CreateWindow(win, display);
+
+ assert(((struct ANativeWindowBuffer *) win)->common.magic == ANDROID_NATIVE_WINDOW_MAGIC);
+
+ HYBRIS_TRACE_BEGIN("native-egl", "eglCreatePlatformWindowSurfaceEXT", "");
+ EGLSurface result = (*_eglCreateWindowSurface)(dpy, config, win, attrib_list);
+
+ HYBRIS_TRACE_END("native-egl", "eglCreatePlatformWindowSurfaceEXT", "");
+
+ if (result != EGL_NO_SURFACE)
+ egl_helper_push_mapping(result, win);
+
+ HYBRIS_TRACE_END("hybris-egl", "eglCreatePlatformWindowSurfaceEXT", "");
+ return result;
+}
+
+EGLDisplay eglGetPlatformDisplayEXT(EGLenum platform, void *native_display,
+ const EGLint *attrib_list)
+{
+ HYBRIS_DLSYSM(egl, &_eglGetDisplay, "eglGetDisplay");
+ EGLNativeDisplayType real_display;
+
+ real_display = (*_eglGetDisplay)(EGL_DEFAULT_DISPLAY);
+ if (real_display == EGL_NO_DISPLAY)
+ {
+ return EGL_NO_DISPLAY;
+ }
+
+ struct _EGLDisplay *dpy = hybris_egl_display_get_mapping(real_display);
+ if (!dpy) {
+ dpy = ws_GetDisplay(platform + native_display);
+ if (!dpy) {
+ return EGL_NO_DISPLAY;
+ }
+ dpy->dpy = real_display;
+ _addMapping(dpy);
+ }
+
+ return real_display;
+}
+
EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id)
{
HYBRIS_DLSYSM(egl, &_eglGetDisplay, "eglGetDisplay");
@@ -413,6 +461,14 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
{
return (__eglMustCastToProperFunctionPointerType) _my_glEGLImageTargetTexture2DOES;
}
+ else if (strcmp(procname, "eglGetPlatformDisplayEXT") == 0)
+ {
+ return (__eglMustCastToProperFunctionPointerType) eglGetPlatformDisplayEXT;
+ }
+ else if (strcmp(procname, "eglCreatePlatformWindowSurfaceEXT") == 0)
+ {
+ return (__eglMustCastToProperFunctionPointerType) eglCreatePlatformWindowSurfaceEXT;
+ }
__eglMustCastToProperFunctionPointerType ret = NULL;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment