Closed avafinger closed 2 years ago
Here is the culprit: https://github.com/libsdl-org/SDL/blob/main/src/core/linux/SDL_udev.c#L255
So not being able to load the symbol udev_device_get_action without the udev library being loaded is expected, if we can't find it in the running application, we then load the udev library and get the symbol from that.
It looks like what's happening is the video driver initialization is failing for some other reason which is not setting the SDL error value. Can you debug and see what's happening?
if we can't find it in the running application, we then load the udev library and get the symbol from that.
Looks like this is not happening. I removed that line and then https://github.com/libsdl-org/SDL/blob/main/src/core/linux/SDL_udev.c#L261 make sure udev is loaded and all things are fine.
the video driver initialization is failing for some other reason which is not setting the SDL error value. Can you debug and see what's happening?
If I recall correctly libGLESv2.so.2 was not loaded at all. I will try to debug but it can take some time, my platform uses xserver (glamor) which is HW accelerated (GLES2) and I will need to rebuild the image from scratch.
Actually, can you attach the SDL_config.h that was generated during the SDL build? I'm pretty sure the SDL build environment didn't find X11 development headers and libraries.
Here is the SDL_config.h before glamor was set on my Desktop (which installs some rockchip wrappers). I inserted some "printf" and run the build again with these wrappers installed and to my surprise, "libudev" is not called anymore, and gbm also.
Since udev is not called with this new setup I can't reproduce the error. But now LIBUNWIND is detected and breaks the /test linkage (not the SDL2 per si, only some test apps):
gcc -o testfilesystem testfilesystem.c -I/usr/src/linux-headers-4.19.193/include -D_REENTRANT -I/usr/local/include/SDL2 -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_OPENGL -g -lSDL2_test -L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2
/usr/bin/ld: /usr/local/lib/libSDL2_test.a(SDL_test_memory.o): in function `SDL_TrackAllocation':
SDL_test_memory.c:(.text+0x1bc): undefined reference to `_Uaarch64_init_local'
/usr/bin/ld: SDL_test_memory.c:(.text+0x1e4): undefined reference to `_Uaarch64_get_reg'
/usr/bin/ld: SDL_test_memory.c:(.text+0x224): undefined reference to `_Uaarch64_get_proc_name'
/usr/bin/ld: SDL_test_memory.c:(.text+0x2a0): undefined reference to `_Uaarch64_step'
collect2: error: ld returned 1 exit status
make: *** [Makefile:319: testcustomcursor] Error 1
make: *** Waiting for unfinished jobs....
I have to edit SDL_config.h and manually undef the LIBUWIND to be able to fix the linking process (for the test programs).
dpkg -l |grep libunw
ii libunwind-dev:arm64 1.2.1-10~deb10u1 arm64 library to determine the call-chain of a program - development
ii libunwind8:arm64 1.2.1-10~deb10u1 arm64 library to determine the call-chain of a program - runtime
My understanding is if udev is called it stops the SO loading at that point, set the error, and exit. With the new setup, it does not call udev and then loads the remaining SO.
attached files: SDL_config.h (before the glamor setup). SDL_config_glamor.h (with rockchip wrappers)
log from current setup:
./testgles2
SDL_LoadObject: libdbus-1.so.3
SDL_LoadFunction: dbus_bus_get_private - handle: 0x5565a618e0
SDL_LoadFunction: dbus_bus_register - handle: 0x5565a618e0
SDL_LoadFunction: dbus_bus_add_match - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_open_private - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_set_exit_on_disconnect - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_get_is_connected - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_add_filter - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_try_register_object_path - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_send - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_send_with_reply_and_block - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_close - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_unref - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_flush - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_read_write - handle: 0x5565a618e0
SDL_LoadFunction: dbus_connection_dispatch - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_is_signal - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_new_method_call - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_append_args - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_append_args_valist - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_init_append - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_open_container - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_append_basic - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_close_container - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_get_args - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_get_args_valist - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_init - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_next - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_get_basic - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_get_arg_type - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_iter_recurse - handle: 0x5565a618e0
SDL_LoadFunction: dbus_message_unref - handle: 0x5565a618e0
SDL_LoadFunction: dbus_threads_init_default - handle: 0x5565a618e0
SDL_LoadFunction: dbus_error_init - handle: 0x5565a618e0
SDL_LoadFunction: dbus_error_is_set - handle: 0x5565a618e0
SDL_LoadFunction: dbus_error_free - handle: 0x5565a618e0
SDL_LoadFunction: dbus_get_local_machine_id - handle: 0x5565a618e0
SDL_LoadFunction: dbus_free - handle: 0x5565a618e0
SDL_LoadFunction: dbus_free_string_array - handle: 0x5565a618e0
SDL_LoadFunction: dbus_shutdown - handle: 0x5565a618e0
SDL_LoadObject: libX11.so.6
SDL_LoadObject: libXext.so.6
SDL_LoadObject: libXcursor.so.1
SDL_LoadObject: libXinerama.so.1
SDL_LoadObject: libXi.so.6
SDL_LoadObject: libXrandr.so.2
SDL_LoadObject: libXss.so.1
SDL_LoadObject: libXxf86vm.so.1
SDL_LoadFunction: XAllocSizeHints - handle: 0x5565a694e0
SDL_LoadFunction: XAllocWMHints - handle: 0x5565a694e0
SDL_LoadFunction: XAllocClassHint - handle: 0x5565a694e0
SDL_LoadFunction: XAutoRepeatOn - handle: 0x5565a694e0
SDL_LoadFunction: XAutoRepeatOff - handle: 0x5565a694e0
SDL_LoadFunction: XChangePointerControl - handle: 0x5565a694e0
SDL_LoadFunction: XChangeProperty - handle: 0x5565a694e0
SDL_LoadFunction: XCheckIfEvent - handle: 0x5565a694e0
SDL_LoadFunction: XClearWindow - handle: 0x5565a694e0
SDL_LoadFunction: XCloseDisplay - handle: 0x5565a694e0
SDL_LoadFunction: XConvertSelection - handle: 0x5565a694e0
SDL_LoadFunction: XCreateBitmapFromData - handle: 0x5565a694e0
SDL_LoadFunction: XCreateColormap - handle: 0x5565a694e0
SDL_LoadFunction: XCreatePixmapCursor - handle: 0x5565a694e0
SDL_LoadFunction: XCreateFontCursor - handle: 0x5565a694e0
SDL_LoadFunction: XCreateFontSet - handle: 0x5565a694e0
SDL_LoadFunction: XCreateGC - handle: 0x5565a694e0
SDL_LoadFunction: XCreateImage - handle: 0x5565a694e0
SDL_LoadFunction: XCreateWindow - handle: 0x5565a694e0
SDL_LoadFunction: XDefineCursor - handle: 0x5565a694e0
SDL_LoadFunction: XDeleteProperty - handle: 0x5565a694e0
SDL_LoadFunction: XDestroyWindow - handle: 0x5565a694e0
SDL_LoadFunction: XDisplayKeycodes - handle: 0x5565a694e0
SDL_LoadFunction: XDrawRectangle - handle: 0x5565a694e0
SDL_LoadFunction: XDisplayName - handle: 0x5565a694e0
SDL_LoadFunction: XDrawString - handle: 0x5565a694e0
SDL_LoadFunction: XEventsQueued - handle: 0x5565a694e0
SDL_LoadFunction: XFillRectangle - handle: 0x5565a694e0
SDL_LoadFunction: XFilterEvent - handle: 0x5565a694e0
SDL_LoadFunction: XFlush - handle: 0x5565a694e0
SDL_LoadFunction: XFree - handle: 0x5565a694e0
SDL_LoadFunction: XFreeCursor - handle: 0x5565a694e0
SDL_LoadFunction: XFreeFontSet - handle: 0x5565a694e0
SDL_LoadFunction: XFreeGC - handle: 0x5565a694e0
SDL_LoadFunction: XFreeFont - handle: 0x5565a694e0
SDL_LoadFunction: XFreeModifiermap - handle: 0x5565a694e0
SDL_LoadFunction: XFreePixmap - handle: 0x5565a694e0
SDL_LoadFunction: XFreeStringList - handle: 0x5565a694e0
SDL_LoadFunction: XGetAtomName - handle: 0x5565a694e0
SDL_LoadFunction: XGetInputFocus - handle: 0x5565a694e0
SDL_LoadFunction: XGetErrorDatabaseText - handle: 0x5565a694e0
SDL_LoadFunction: XGetModifierMapping - handle: 0x5565a694e0
SDL_LoadFunction: XGetKeyboardControl - handle: 0x5565a694e0
SDL_LoadFunction: XGetPointerControl - handle: 0x5565a694e0
SDL_LoadFunction: XGetSelectionOwner - handle: 0x5565a694e0
SDL_LoadFunction: XGetVisualInfo - handle: 0x5565a694e0
SDL_LoadFunction: XGetWindowAttributes - handle: 0x5565a694e0
SDL_LoadFunction: XGetWindowProperty - handle: 0x5565a694e0
SDL_LoadFunction: XGetWMHints - handle: 0x5565a694e0
SDL_LoadFunction: XGetWMNormalHints - handle: 0x5565a694e0
SDL_LoadFunction: XIfEvent - handle: 0x5565a694e0
SDL_LoadFunction: XGrabKeyboard - handle: 0x5565a694e0
SDL_LoadFunction: XGrabPointer - handle: 0x5565a694e0
SDL_LoadFunction: XGrabServer - handle: 0x5565a694e0
SDL_LoadFunction: XIconifyWindow - handle: 0x5565a694e0
SDL_LoadFunction: XKeysymToKeycode - handle: 0x5565a694e0
SDL_LoadFunction: XKeysymToString - handle: 0x5565a694e0
SDL_LoadFunction: XInstallColormap - handle: 0x5565a694e0
SDL_LoadFunction: XInternAtom - handle: 0x5565a694e0
SDL_LoadFunction: XListPixmapFormats - handle: 0x5565a694e0
SDL_LoadFunction: XLoadQueryFont - handle: 0x5565a694e0
SDL_LoadFunction: XLookupKeysym - handle: 0x5565a694e0
SDL_LoadFunction: XLookupString - handle: 0x5565a694e0
SDL_LoadFunction: XMapRaised - handle: 0x5565a694e0
SDL_LoadFunction: XMatchVisualInfo - handle: 0x5565a694e0
SDL_LoadFunction: XMissingExtension - handle: 0x5565a694e0
SDL_LoadFunction: XMissingExtension - handle: 0x5565a6b250
SDL_LoadFunction: XMoveWindow - handle: 0x5565a694e0
SDL_LoadFunction: XNextEvent - handle: 0x5565a694e0
SDL_LoadFunction: XOpenDisplay - handle: 0x5565a694e0
SDL_LoadFunction: XInitThreads - handle: 0x5565a694e0
SDL_LoadFunction: XPeekEvent - handle: 0x5565a694e0
SDL_LoadFunction: XPending - handle: 0x5565a694e0
SDL_LoadFunction: XPutImage - handle: 0x5565a694e0
SDL_LoadFunction: XQueryKeymap - handle: 0x5565a694e0
SDL_LoadFunction: XQueryPointer - handle: 0x5565a694e0
SDL_LoadFunction: XRaiseWindow - handle: 0x5565a694e0
SDL_LoadFunction: XReparentWindow - handle: 0x5565a694e0
SDL_LoadFunction: XResetScreenSaver - handle: 0x5565a694e0
SDL_LoadFunction: XResizeWindow - handle: 0x5565a694e0
SDL_LoadFunction: XScreenNumberOfScreen - handle: 0x5565a694e0
SDL_LoadFunction: XSelectInput - handle: 0x5565a694e0
SDL_LoadFunction: XSendEvent - handle: 0x5565a694e0
SDL_LoadFunction: XSetErrorHandler - handle: 0x5565a694e0
SDL_LoadFunction: XSetForeground - handle: 0x5565a694e0
SDL_LoadFunction: XSetIOErrorHandler - handle: 0x5565a694e0
SDL_LoadFunction: XSetInputFocus - handle: 0x5565a694e0
SDL_LoadFunction: XSetSelectionOwner - handle: 0x5565a694e0
SDL_LoadFunction: XSetTransientForHint - handle: 0x5565a694e0
SDL_LoadFunction: XSetTextProperty - handle: 0x5565a694e0
SDL_LoadFunction: XSetWindowBackground - handle: 0x5565a694e0
SDL_LoadFunction: XSetWMHints - handle: 0x5565a694e0
SDL_LoadFunction: XSetWMNormalHints - handle: 0x5565a694e0
SDL_LoadFunction: XSetWMProperties - handle: 0x5565a694e0
SDL_LoadFunction: XSetWMProtocols - handle: 0x5565a694e0
SDL_LoadFunction: XStoreColors - handle: 0x5565a694e0
SDL_LoadFunction: XStoreName - handle: 0x5565a694e0
SDL_LoadFunction: XStringListToTextProperty - handle: 0x5565a694e0
SDL_LoadFunction: XSync - handle: 0x5565a694e0
SDL_LoadFunction: XTextExtents - handle: 0x5565a694e0
SDL_LoadFunction: XTranslateCoordinates - handle: 0x5565a694e0
SDL_LoadFunction: XUndefineCursor - handle: 0x5565a694e0
SDL_LoadFunction: XUngrabKeyboard - handle: 0x5565a694e0
SDL_LoadFunction: XUngrabPointer - handle: 0x5565a694e0
SDL_LoadFunction: XUngrabServer - handle: 0x5565a694e0
SDL_LoadFunction: XUninstallColormap - handle: 0x5565a694e0
SDL_LoadFunction: XUnloadFont - handle: 0x5565a694e0
SDL_LoadFunction: XWarpPointer - handle: 0x5565a694e0
SDL_LoadFunction: XWindowEvent - handle: 0x5565a694e0
SDL_LoadFunction: XWithdrawWindow - handle: 0x5565a694e0
SDL_LoadFunction: XVisualIDFromVisual - handle: 0x5565a694e0
SDL_LoadFunction: XGetDefault - handle: 0x5565a694e0
SDL_LoadFunction: XQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XDisplayString - handle: 0x5565a694e0
SDL_LoadFunction: XGetErrorText - handle: 0x5565a694e0
SDL_LoadFunction: _XEatData - handle: 0x5565a694e0
SDL_LoadFunction: _XFlush - handle: 0x5565a694e0
SDL_LoadFunction: _XFlushGCCache - handle: 0x5565a694e0
SDL_LoadFunction: _XRead - handle: 0x5565a694e0
SDL_LoadFunction: _XReadPad - handle: 0x5565a694e0
SDL_LoadFunction: _XSend - handle: 0x5565a694e0
SDL_LoadFunction: _XReply - handle: 0x5565a694e0
SDL_LoadFunction: _XSetLastRequestRead - handle: 0x5565a694e0
SDL_LoadFunction: XSynchronize - handle: 0x5565a694e0
SDL_LoadFunction: XESetWireToEvent - handle: 0x5565a694e0
SDL_LoadFunction: XESetEventToWire - handle: 0x5565a694e0
SDL_LoadFunction: XRefreshKeyboardMapping - handle: 0x5565a694e0
SDL_LoadFunction: XQueryTree - handle: 0x5565a694e0
SDL_LoadFunction: XGetEventData - handle: 0x5565a694e0
SDL_LoadFunction: XFreeEventData - handle: 0x5565a694e0
SDL_LoadFunction: XkbQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XkbKeycodeToKeysym - handle: 0x5565a694e0
SDL_LoadFunction: XkbGetState - handle: 0x5565a694e0
SDL_LoadFunction: XkbGetUpdatedMap - handle: 0x5565a694e0
SDL_LoadFunction: XkbGetMap - handle: 0x5565a694e0
SDL_LoadFunction: XkbFreeClientMap - handle: 0x5565a694e0
SDL_LoadFunction: XkbFreeKeyboard - handle: 0x5565a694e0
SDL_LoadFunction: XkbSetDetectableAutoRepeat - handle: 0x5565a694e0
SDL_LoadFunction: XkbSelectEvents - handle: 0x5565a694e0
SDL_LoadFunction: XKeycodeToKeysym - handle: 0x5565a694e0
SDL_LoadFunction: Xutf8TextListToTextProperty - handle: 0x5565a694e0
SDL_LoadFunction: Xutf8LookupString - handle: 0x5565a694e0
SDL_LoadFunction: XDestroyIC - handle: 0x5565a694e0
SDL_LoadFunction: XSetICFocus - handle: 0x5565a694e0
SDL_LoadFunction: XUnsetICFocus - handle: 0x5565a694e0
SDL_LoadFunction: XOpenIM - handle: 0x5565a694e0
SDL_LoadFunction: XCloseIM - handle: 0x5565a694e0
SDL_LoadFunction: Xutf8DrawString - handle: 0x5565a694e0
SDL_LoadFunction: Xutf8TextExtents - handle: 0x5565a694e0
SDL_LoadFunction: XSetLocaleModifiers - handle: 0x5565a694e0
SDL_LoadFunction: Xutf8ResetIC - handle: 0x5565a694e0
SDL_LoadFunction: XShmAttach - handle: 0x5565a694e0
SDL_LoadFunction: XShmAttach - handle: 0x5565a6b250
SDL_LoadFunction: XShmDetach - handle: 0x5565a694e0
SDL_LoadFunction: XShmDetach - handle: 0x5565a6b250
SDL_LoadFunction: XShmPutImage - handle: 0x5565a694e0
SDL_LoadFunction: XShmPutImage - handle: 0x5565a6b250
SDL_LoadFunction: XShmCreateImage - handle: 0x5565a694e0
SDL_LoadFunction: XShmCreateImage - handle: 0x5565a6b250
SDL_LoadFunction: XShmCreatePixmap - handle: 0x5565a694e0
SDL_LoadFunction: XShmCreatePixmap - handle: 0x5565a6b250
SDL_LoadFunction: XShmQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XShmQueryExtension - handle: 0x5565a6b250
SDL_LoadFunction: _XData32 - handle: 0x5565a694e0
SDL_LoadFunction: _XRead32 - handle: 0x5565a694e0
SDL_LoadFunction: XcursorImageCreate - handle: 0x5565a694e0
SDL_LoadFunction: XcursorImageCreate - handle: 0x5565a6b250
SDL_LoadFunction: XcursorImageCreate - handle: 0x5565a6b890
SDL_LoadFunction: XcursorImageDestroy - handle: 0x5565a694e0
SDL_LoadFunction: XcursorImageDestroy - handle: 0x5565a6b250
SDL_LoadFunction: XcursorImageDestroy - handle: 0x5565a6b890
SDL_LoadFunction: XcursorImageLoadCursor - handle: 0x5565a694e0
SDL_LoadFunction: XcursorImageLoadCursor - handle: 0x5565a6b250
SDL_LoadFunction: XcursorImageLoadCursor - handle: 0x5565a6b890
SDL_LoadFunction: XdbeQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XdbeQueryExtension - handle: 0x5565a6b250
SDL_LoadFunction: XdbeAllocateBackBufferName - handle: 0x5565a694e0
SDL_LoadFunction: XdbeAllocateBackBufferName - handle: 0x5565a6b250
SDL_LoadFunction: XdbeDeallocateBackBufferName - handle: 0x5565a694e0
SDL_LoadFunction: XdbeDeallocateBackBufferName - handle: 0x5565a6b250
SDL_LoadFunction: XdbeSwapBuffers - handle: 0x5565a694e0
SDL_LoadFunction: XdbeSwapBuffers - handle: 0x5565a6b250
SDL_LoadFunction: XdbeBeginIdiom - handle: 0x5565a694e0
SDL_LoadFunction: XdbeBeginIdiom - handle: 0x5565a6b250
SDL_LoadFunction: XdbeEndIdiom - handle: 0x5565a694e0
SDL_LoadFunction: XdbeEndIdiom - handle: 0x5565a6b250
SDL_LoadFunction: XdbeGetVisualInfo - handle: 0x5565a694e0
SDL_LoadFunction: XdbeGetVisualInfo - handle: 0x5565a6b250
SDL_LoadFunction: XdbeFreeVisualInfo - handle: 0x5565a694e0
SDL_LoadFunction: XdbeFreeVisualInfo - handle: 0x5565a6b250
SDL_LoadFunction: XdbeGetBackBufferAttributes - handle: 0x5565a694e0
SDL_LoadFunction: XdbeGetBackBufferAttributes - handle: 0x5565a6b250
SDL_LoadFunction: XineramaIsActive - handle: 0x5565a694e0
SDL_LoadFunction: XineramaIsActive - handle: 0x5565a6b250
SDL_LoadFunction: XineramaIsActive - handle: 0x5565a6b890
SDL_LoadFunction: XineramaIsActive - handle: 0x5565a6cc20
SDL_LoadFunction: XineramaQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XineramaQueryExtension - handle: 0x5565a6b250
SDL_LoadFunction: XineramaQueryExtension - handle: 0x5565a6b890
SDL_LoadFunction: XineramaQueryExtension - handle: 0x5565a6cc20
SDL_LoadFunction: XineramaQueryVersion - handle: 0x5565a694e0
SDL_LoadFunction: XineramaQueryVersion - handle: 0x5565a6b250
SDL_LoadFunction: XineramaQueryVersion - handle: 0x5565a6b890
SDL_LoadFunction: XineramaQueryVersion - handle: 0x5565a6cc20
SDL_LoadFunction: XineramaQueryScreens - handle: 0x5565a694e0
SDL_LoadFunction: XineramaQueryScreens - handle: 0x5565a6b250
SDL_LoadFunction: XineramaQueryScreens - handle: 0x5565a6b890
SDL_LoadFunction: XineramaQueryScreens - handle: 0x5565a6cc20
SDL_LoadFunction: XIQueryDevice - handle: 0x5565a694e0
SDL_LoadFunction: XIQueryDevice - handle: 0x5565a6b250
SDL_LoadFunction: XIQueryDevice - handle: 0x5565a6b890
SDL_LoadFunction: XIQueryDevice - handle: 0x5565a6cc20
SDL_LoadFunction: XIQueryDevice - handle: 0x5565a6d270
SDL_LoadFunction: XIFreeDeviceInfo - handle: 0x5565a694e0
SDL_LoadFunction: XIFreeDeviceInfo - handle: 0x5565a6b250
SDL_LoadFunction: XIFreeDeviceInfo - handle: 0x5565a6b890
SDL_LoadFunction: XIFreeDeviceInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XIFreeDeviceInfo - handle: 0x5565a6d270
SDL_LoadFunction: XISelectEvents - handle: 0x5565a694e0
SDL_LoadFunction: XISelectEvents - handle: 0x5565a6b250
SDL_LoadFunction: XISelectEvents - handle: 0x5565a6b890
SDL_LoadFunction: XISelectEvents - handle: 0x5565a6cc20
SDL_LoadFunction: XISelectEvents - handle: 0x5565a6d270
SDL_LoadFunction: XIGrabTouchBegin - handle: 0x5565a694e0
SDL_LoadFunction: XIGrabTouchBegin - handle: 0x5565a6b250
SDL_LoadFunction: XIGrabTouchBegin - handle: 0x5565a6b890
SDL_LoadFunction: XIGrabTouchBegin - handle: 0x5565a6cc20
SDL_LoadFunction: XIGrabTouchBegin - handle: 0x5565a6d270
SDL_LoadFunction: XIUngrabTouchBegin - handle: 0x5565a694e0
SDL_LoadFunction: XIUngrabTouchBegin - handle: 0x5565a6b250
SDL_LoadFunction: XIUngrabTouchBegin - handle: 0x5565a6b890
SDL_LoadFunction: XIUngrabTouchBegin - handle: 0x5565a6cc20
SDL_LoadFunction: XIUngrabTouchBegin - handle: 0x5565a6d270
SDL_LoadFunction: XIQueryVersion - handle: 0x5565a694e0
SDL_LoadFunction: XIQueryVersion - handle: 0x5565a6b250
SDL_LoadFunction: XIQueryVersion - handle: 0x5565a6b890
SDL_LoadFunction: XIQueryVersion - handle: 0x5565a6cc20
SDL_LoadFunction: XIQueryVersion - handle: 0x5565a6d270
SDL_LoadFunction: XIGetSelectedEvents - handle: 0x5565a694e0
SDL_LoadFunction: XIGetSelectedEvents - handle: 0x5565a6b250
SDL_LoadFunction: XIGetSelectedEvents - handle: 0x5565a6b890
SDL_LoadFunction: XIGetSelectedEvents - handle: 0x5565a6cc20
SDL_LoadFunction: XIGetSelectedEvents - handle: 0x5565a6d270
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a694e0
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a6b250
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a6b890
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a6cc20
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a6d270
SDL_LoadFunction: XRRQueryVersion - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetScreenInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a694e0
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a6b250
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a6b890
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a6cc20
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a6d270
SDL_LoadFunction: XRRConfigCurrentConfiguration - handle: 0x5565a6d910
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a694e0
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a6b250
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a6b890
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a6cc20
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a6d270
SDL_LoadFunction: XRRConfigCurrentRate - handle: 0x5565a6d910
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a694e0
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a6b250
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a6b890
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a6cc20
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a6d270
SDL_LoadFunction: XRRConfigRates - handle: 0x5565a6d910
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a694e0
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a6b250
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a6b890
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a6cc20
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a6d270
SDL_LoadFunction: XRRConfigSizes - handle: 0x5565a6d910
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a694e0
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a6b250
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a6b890
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a6cc20
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a6d270
SDL_LoadFunction: XRRSetScreenConfigAndRate - handle: 0x5565a6d910
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRFreeScreenConfigInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a694e0
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a6b250
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a6b890
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a6cc20
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a6d270
SDL_LoadFunction: XRRSetScreenSize - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetScreenSizeRange - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetScreenResources - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetScreenResourcesCurrent - handle: 0x5565a6d910
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a694e0
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a6b250
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a6b890
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a6cc20
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a6d270
SDL_LoadFunction: XRRFreeScreenResources - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetOutputInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRFreeOutputInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetCrtcInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a694e0
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a6b250
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a6b890
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a6cc20
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a6d270
SDL_LoadFunction: XRRFreeCrtcInfo - handle: 0x5565a6d910
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a694e0
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a6b250
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a6b890
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a6cc20
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a6d270
SDL_LoadFunction: XRRSetCrtcConfig - handle: 0x5565a6d910
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a694e0
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a6b250
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a6b890
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a6cc20
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a6d270
SDL_LoadFunction: XRRListOutputProperties - handle: 0x5565a6d910
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a694e0
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a6b250
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a6b890
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a6cc20
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a6d270
SDL_LoadFunction: XRRQueryOutputProperty - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetOutputProperty - handle: 0x5565a6d910
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a694e0
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a6b250
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a6b890
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a6cc20
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a6d270
SDL_LoadFunction: XRRGetOutputPrimary - handle: 0x5565a6d910
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6b250
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6b890
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6cc20
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6d270
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6d910
SDL_LoadFunction: XScreenSaverQueryExtension - handle: 0x5565a6df70
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a694e0
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6b250
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6b890
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6cc20
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6d270
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6d910
SDL_LoadFunction: XScreenSaverQueryVersion - handle: 0x5565a6df70
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a694e0
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6b250
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6b890
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6cc20
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6d270
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6d910
SDL_LoadFunction: XScreenSaverSuspend - handle: 0x5565a6df70
SDL_LoadFunction: XShapeCombineMask - handle: 0x5565a694e0
SDL_LoadFunction: XShapeCombineMask - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeGetAllModeLines - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeGetModeLine - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeGetViewPort - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeQueryExtension - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeQueryVersion - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeSwitchToMode - handle: 0x5565a6e890
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a694e0
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6b250
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6b890
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6cc20
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6d270
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6d910
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6df70
SDL_LoadFunction: XF86VidModeLockModeSwitch - handle: 0x5565a6e890
SDL_LoadFunction: XCreateIC - handle: 0x5565a694e0
SDL_LoadFunction: XGetICValues - handle: 0x5565a694e0
SDL_LoadObject: libGLESv2.so.2
SDL_LoadObject: libEGL.so.1
SDL_LoadFunction: eglChooseConfig - handle: 0x5565ad2c70
SDL_LoadFunction: eglGetDisplay - handle: 0x5565ad2c70
SDL_LoadFunction: eglInitialize - handle: 0x5565ad2c70
SDL_LoadFunction: eglTerminate - handle: 0x5565ad2c70
SDL_LoadFunction: eglGetProcAddress - handle: 0x5565ad2c70
SDL_LoadFunction: eglChooseConfig - handle: 0x5565ad2c70
SDL_LoadFunction: eglGetConfigAttrib - handle: 0x5565ad2c70
SDL_LoadFunction: eglCreateContext - handle: 0x5565ad2c70
SDL_LoadFunction: eglDestroyContext - handle: 0x5565ad2c70
SDL_LoadFunction: eglCreatePbufferSurface - handle: 0x5565ad2c70
SDL_LoadFunction: eglCreateWindowSurface - handle: 0x5565ad2c70
SDL_LoadFunction: eglDestroySurface - handle: 0x5565ad2c70
SDL_LoadFunction: eglMakeCurrent - handle: 0x5565ad2c70
SDL_LoadFunction: eglSwapBuffers - handle: 0x5565ad2c70
SDL_LoadFunction: eglSwapInterval - handle: 0x5565ad2c70
SDL_LoadFunction: eglWaitNative - handle: 0x5565ad2c70
SDL_LoadFunction: eglWaitGL - handle: 0x5565ad2c70
SDL_LoadFunction: eglBindAPI - handle: 0x5565ad2c70
SDL_LoadFunction: eglQueryAPI - handle: 0x5565ad2c70
SDL_LoadFunction: eglQueryString - handle: 0x5565ad2c70
SDL_LoadFunction: eglGetError - handle: 0x5565ad2c70
***NO platform!
arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.SDL_LoadFunction: glGetString - handle: 0x5565aa31f0
SDL_LoadFunction: glGetString - handle: 0x5565aa31f0
SDL_LoadObject: libGLESv2.so.2
SDL_LoadObject: libEGL.so.1
SDL_LoadFunction: eglChooseConfig - handle: 0x5565b0db10
SDL_LoadFunction: eglGetDisplay - handle: 0x5565b0db10
SDL_LoadFunction: eglInitialize - handle: 0x5565b0db10
SDL_LoadFunction: eglTerminate - handle: 0x5565b0db10
SDL_LoadFunction: eglGetProcAddress - handle: 0x5565b0db10
SDL_LoadFunction: eglChooseConfig - handle: 0x5565b0db10
SDL_LoadFunction: eglGetConfigAttrib - handle: 0x5565b0db10
SDL_LoadFunction: eglCreateContext - handle: 0x5565b0db10
SDL_LoadFunction: eglDestroyContext - handle: 0x5565b0db10
SDL_LoadFunction: eglCreatePbufferSurface - handle: 0x5565b0db10
SDL_LoadFunction: eglCreateWindowSurface - handle: 0x5565b0db10
SDL_LoadFunction: eglDestroySurface - handle: 0x5565b0db10
SDL_LoadFunction: eglMakeCurrent - handle: 0x5565b0db10
SDL_LoadFunction: eglSwapBuffers - handle: 0x5565b0db10
SDL_LoadFunction: eglSwapInterval - handle: 0x5565b0db10
SDL_LoadFunction: eglWaitNative - handle: 0x5565b0db10
SDL_LoadFunction: eglWaitGL - handle: 0x5565b0db10
SDL_LoadFunction: eglBindAPI - handle: 0x5565b0db10
SDL_LoadFunction: eglQueryAPI - handle: 0x5565b0db10
SDL_LoadFunction: eglQueryString - handle: 0x5565b0db10
SDL_LoadFunction: eglGetError - handle: 0x5565b0db10
***NO platform!
arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glActiveTexture - handle: 0x5565ad2c70
SDL_LoadFunction: glAttachShader - handle: 0x5565ad2c70
SDL_LoadFunction: glBindAttribLocation - handle: 0x5565ad2c70
SDL_LoadFunction: glBindTexture - handle: 0x5565ad2c70
SDL_LoadFunction: glBlendEquationSeparate - handle: 0x5565ad2c70
SDL_LoadFunction: glBlendFuncSeparate - handle: 0x5565ad2c70
SDL_LoadFunction: glClear - handle: 0x5565ad2c70
SDL_LoadFunction: glClearColor - handle: 0x5565ad2c70
SDL_LoadFunction: glCompileShader - handle: 0x5565ad2c70
SDL_LoadFunction: glCreateProgram - handle: 0x5565ad2c70
SDL_LoadFunction: glCreateShader - handle: 0x5565ad2c70
SDL_LoadFunction: glDeleteProgram - handle: 0x5565ad2c70
SDL_LoadFunction: glDeleteShader - handle: 0x5565ad2c70
SDL_LoadFunction: glDeleteTextures - handle: 0x5565ad2c70
SDL_LoadFunction: glDisable - handle: 0x5565ad2c70
SDL_LoadFunction: glDisableVertexAttribArray - handle: 0x5565ad2c70
SDL_LoadFunction: glDrawArrays - handle: 0x5565ad2c70
SDL_LoadFunction: glEnable - handle: 0x5565ad2c70
SDL_LoadFunction: glEnableVertexAttribArray - handle: 0x5565ad2c70
SDL_LoadFunction: glFinish - handle: 0x5565ad2c70
SDL_LoadFunction: glGenFramebuffers - handle: 0x5565ad2c70
SDL_LoadFunction: glGenTextures - handle: 0x5565ad2c70
SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glGetError - handle: 0x5565ad2c70
SDL_LoadFunction: glGetIntegerv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetProgramiv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetShaderInfoLog - handle: 0x5565ad2c70
SDL_LoadFunction: glGetShaderiv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetUniformLocation - handle: 0x5565ad2c70
SDL_LoadFunction: glLinkProgram - handle: 0x5565ad2c70
SDL_LoadFunction: glPixelStorei - handle: 0x5565ad2c70
SDL_LoadFunction: glReadPixels - handle: 0x5565ad2c70
SDL_LoadFunction: glScissor - handle: 0x5565ad2c70
SDL_LoadFunction: glShaderBinary - handle: 0x5565ad2c70
SDL_LoadFunction: glShaderSource - handle: 0x5565ad2c70
SDL_LoadFunction: glTexImage2D - handle: 0x5565ad2c70
SDL_LoadFunction: glTexParameteri - handle: 0x5565ad2c70
SDL_LoadFunction: glTexSubImage2D - handle: 0x5565ad2c70
SDL_LoadFunction: glUniform1i - handle: 0x5565ad2c70
SDL_LoadFunction: glUniform4f - handle: 0x5565ad2c70
SDL_LoadFunction: glUniformMatrix4fv - handle: 0x5565ad2c70
SDL_LoadFunction: glUseProgram - handle: 0x5565ad2c70
SDL_LoadFunction: glVertexAttribPointer - handle: 0x5565ad2c70
SDL_LoadFunction: glViewport - handle: 0x5565ad2c70
SDL_LoadFunction: glBindFramebuffer - handle: 0x5565ad2c70
SDL_LoadFunction: glFramebufferTexture2D - handle: 0x5565ad2c70
SDL_LoadFunction: glCheckFramebufferStatus - handle: 0x5565ad2c70
SDL_LoadFunction: glDeleteFramebuffers - handle: 0x5565ad2c70
SDL_LoadFunction: glGetAttribLocation - handle: 0x5565ad2c70
SDL_LoadFunction: glGetProgramInfoLog - handle: 0x5565ad2c70
SDL_LoadFunction: glGenBuffers - handle: 0x5565ad2c70
SDL_LoadFunction: glDeleteBuffers - handle: 0x5565ad2c70
SDL_LoadFunction: glBindBuffer - handle: 0x5565ad2c70
SDL_LoadFunction: glBufferData - handle: 0x5565ad2c70
SDL_LoadFunction: glBufferSubData - handle: 0x5565ad2c70
INFO: Screen bpp: 24
INFO:
INFO: Vendor : ARM
INFO: Renderer : Mali-T860
INFO: Version : OpenGL ES 3.2 v1.r18p0-01rel0.5cb5681058e8e076ff89747c20c32578
INFO: Extensions : GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex
INFO:
SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glGetIntegerv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetError - handle: 0x5565ad2c70
INFO: SDL_GL_RED_SIZE: requested 5, got 8
SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glGetIntegerv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetError - handle: 0x5565ad2c70
INFO: SDL_GL_GREEN_SIZE: requested 5, got 8
SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glGetIntegerv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetError - handle: 0x5565ad2c70
INFO: SDL_GL_BLUE_SIZE: requested 5, got 8
SDL_LoadFunction: glGetString - handle: 0x5565ad2c70
SDL_LoadFunction: glGetIntegerv - handle: 0x5565ad2c70
SDL_LoadFunction: glGetError - handle: 0x5565ad2c70
INFO: SDL_GL_DEPTH_SIZE: requested 16, got 24
INFO: 59.23 frames per second
It looks like this might be the issue: SDL_LoadFunction: eglGetError - handle: 0x5565ad2c70 ***NO platform! arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.
You might have to debug this and potentially contact your SOC provider for help. The rockchip SDL driver isn't something I've seen before and not included with the main line SDL build. Please let them know that I'm happy to coordinate if they want to have it included in the future.
Do you mean ***NO platform! ? :) That's my inserted printf.
In GBM (CLI) it loads SDL_EGL_LoadLibrary( .... EGLenum platform)
if (platform) {
// CLI GBM <= CLI
}
In X11 (xserver) it loads SDL_EGL_LoadLibrary( .... EGLenum platform)
if (platform) {
} else {
printf("***NO platform!\n"); <= X11
}
FYI In mainline with the latest Mesa, there is no need to change anything in SDL. (Tested OpenGLES2 on CLI only, not X11) For the legacy kernel, I have some Hacks that might not be needed after the rockchip's wrapper was installed. The wrapper is provided by the rockchip engineers, rockchip and ARM does not provide support for a non-business account.
Maybe it was not clear but SDL (OpenGLES2) is working on both, X11 and GBM.
If you are happy with some Hacks I can provide a patch for you to accept or not.
Sure, you can provide the hacks, they may help us understand what's going on.
@slouken ,
Attached is the patch.
A few notes:
A few important notes:
What I have found with your latest SDL:
The assumption about SDL working without any changes with mainline kernel + panfrost (the mali opensource) is from the and old commit, several days ago... :)
with GLX enabled (SW acceleration):
./testgles2
libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip
libGL error: unable to load driver: rockchip_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: rockchip
INFO: Screen bpp: 24
INFO:
INFO: Vendor : VMware, Inc.
INFO: Renderer : llvmpipe (LLVM 7.0, 128 bits)
INFO: Version : OpenGL ES 3.0 Mesa 18.3.6
INFO: Extensions : GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_compression_s3tc GL_EXT_occlusion_query_boolean GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_separate_shader_objects GL_EXT_shader_integer_mix GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_polygon_offset_clamp GL_EXT_texture_border_clamp GL_KHR_context_flush_control GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_texture_border_clamp GL_OES_texture_stencil8 GL_EXT_blend_func_extended GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3 GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_MESA_shader_integer_functions
INFO:
INFO: SDL_GL_RED_SIZE: requested 5, got 8
INFO: SDL_GL_GREEN_SIZE: requested 5, got 8
INFO: SDL_GL_BLUE_SIZE: requested 5, got 8
INFO: SDL_GL_DEPTH_SIZE: requested 16, got 32
INFO: 260.47 frames per second
with HW acceleration:
./testgles2
INFO: Screen bpp: 24
INFO:
INFO: Vendor : ARM
INFO: Renderer : Mali-T860
INFO: Version : OpenGL ES 3.2 v1.r18p0-01rel0.5cb5681058e8e076ff89747c20c32578
INFO: Extensions : GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex
INFO:
INFO: SDL_GL_RED_SIZE: requested 5, got 8
INFO: SDL_GL_GREEN_SIZE: requested 5, got 8
INFO: SDL_GL_BLUE_SIZE: requested 5, got 8
INFO: SDL_GL_DEPTH_SIZE: requested 16, got 24
^[INFO: 57.87 frames per second
arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'
The missing SDL_hdiapi.h
In file included from controllermap.c:20:
/usr/local/include/SDL2/SDL.h:45:10: fatal error: SDL_hidapi.h: No such file or directory
#include "SDL_hidapi.h"
@avafinger awesome patch, thank you for this. It helps a lot. It appears there may still a regression in SDL 2.0.18 in some cases. I’m seeing a segfault sometimes when calling gbm_bo_get_user_data with the Mali blobs.
My test programs run fine but KODI segfaults when calling this from the Mali blob. The xbmc code calls it from here: https://github.com/xbmc/xbmc/blob/master/xbmc/windowing/gbm/drm/DRMUtils.cpp#L63
Kodi starts reliably with older SDL versions fine and oddly it also worked the first time I tried it but now I cannot get passed the segfault even after a power cycle. I’ve seen other issues that are opened stating inconsistent results like this as well. I believe the issue isn’t within this function but that it’s being passed an invalid bo pointer. Perhaps a timing issue somewhere. In any event - same commit of Kodi with same commit of rockchip Mali both work with older SDL versions.
Any thoughts or advice would be greatly helpful.
KODI segfaults when calling this from the Mali blob
I pushed the patch to https://github.com/avafinger/SDL Are you running Kodi with SDL and X11? My experience with KODI is only with GBM, not X11 or Wayland. So SDL was not used and KODI 18.9 worked just fine but I tested ffplay with GBM and SDL, and that worked great. I don't use the Rockchip mali wrapper!
Regarding KODI, I was not able to run KODI 19, only KODI 18.9. KODI 19 leaks badly using mail blobs, and in a few minutes, you get OOPs. I tried to figure out what the problem might be, but I didn't have enough time and motivation... :)
So the advice would be:
Tested on RK3399 and RK3568.
Just for reference:
Kodi GBM https://forum.radxa.com/t/rock-3a-sound-quality/7276/10 ffplay + SDL https://mega.nz/file/EaIy3L4L#6JNMdKwIjZ0aLYmE2RGv8vE076wS09tyFP1aFGsLYZk
Thank you greatly for the quick reply and feedback!!
It’s true I have had to patch kodi quite a bit to get it to work properly. But I do have 19.3 working reliably with SDL 2.0.12 with GBM GLES. I’m compiling rockchip’s libmali repo directly. The GDB log doesn’t show any SDL calls so I’m confused why SDL would even be causing this. But nothing else changed so I have to assume it’s somehow involved. Perhaps it’s actually a header that’s been changed which kodi uses at compile time.
I’ll continue investigating. Thanks again!
Sent from my iPhone
On Dec 31, 2021, at 7:43 AM, avafinger @.***> wrote:
KODI segfaults when calling this from the Mali blob
I pushed the patch to https://github.com/avafinger/SDL Are you running Kodi with SDL and X11? My experience with KODI is only with GBM, not X11 or Wayland. So SDL was not used and KODI 18.9 worked just fine but I tested ffplay with GBM and SDL, and that worked great. I don't use the Rockchip mali wrapper!
Regarding KODI, I was not able to run KODI 19, only KODI 18.9. KODI 19 leaks badly using mail blobs, and in a few minutes, you get OOPs. I tried to figure out what the problem might be, but I didn't have enough time and motivation... :)
So the advice would be:
try with KODI 18.9 don't use the gbm wrapper lib (if you can) Tested on RK3399 and RK3568.
Just for reference:
Kodi GBM https://forum.radxa.com/t/rock-3a-sound-quality/7276/10 ffplay + SDL https://mega.nz/file/EaIy3L4L#6JNMdKwIjZ0aLYmE2RGv8vE076wS09tyFP1aFGsLYZk
— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you commented.
Just to provide an update. I can confirm kodi.bin doesn't have any dependency on SDL library - both by using LDD as well as by deleting the library itself and ending up with the same segfault. I also can confirm I've build kodi without using HAS_GBM_MODIFIERS. So it can't be SDL2.
Can you disclose your platform and mali blob?
For this build I'm using ARM RK3328 Mali 450 - blob directly from rockchip's repo: https://github.com/rockchip-linux/libmali
You are using libmali-utgard-450-r7p0-gbm.so, right? , if i recall correctly some people had random crashes and I think they blamed the Memory Frequency for that. I think the board was Rock64.
One thing you could try is to lower the dram freq. Not sure it is related to the problem. Maybe wrong GPU freq?
Another thing, in RK3399 platform they have updated the mail blobs, maybe the same occurred for RK3328. If you still have an old blob around, try to use that old one and see what happens.
@avafinger some interesting updates for you... first, I'm actually testing on a Rock64 :) Second, everything's been working fine before updating to the latest buildroot release (and therefore latest SDL)... but after confirming it wasn't SDL I started digging into the dependencies for KODI. I did a full recompile with reverting glibc back to 2.34-9 and now magically KODI works. So there's something not quite right with compiling KODI's dependencies with the latest glibc.
That being said... now that I've recompiled with glic 2.34-9 KODI starts, but now SDL 2.0.18 is failing lol I literally used the exact same patch. Crazy right? I'm getting "No available video device" when trying to start SDL apps.
I'm getting "No available video device" when trying to start SDL apps
Configure and build for X11 export CFLAGS="-I/usr/src/linux-headers-$(uname -r)/include" rm ./include/SDL_config.h ./autogen.sh ./configure --enable-video-kmsdrm --enable-video-rockchip --enable-video-x11 --disable-video-vulkan --disable-video-wayland make -j4 sudo make install cd test ./configure make -j4 ./testgles2 --log all
@avafinger thank you again for your quick and detailed responses!
So I'm not building locally on the Rock64, I'm cross compiling using packages in the buildroot toolchain. So the build process is slightly different that what you've outlined, but I did compile your repo just now and received the same result. I should mention that to allow buildroot to properly enable the rockchip code it also requires me to patch configure, not just configure.ac. Here is how I've done that, might be something to consider adding for good measure:
--- a/configure
+++ b/configure
@@ -886,6 +886,7 @@
enable_video_directfb
enable_directfb_shared
enable_video_kmsdrm
+enable_video_rockchip
enable_kmsdrm_shared
enable_video_dummy
enable_video_offscreen
@@ -22228,6 +22229,10 @@
video_kmsdrm=no
+ if test x$enable_video_rockchip = xyes; then
+$as_echo "#define SDL_VIDEO_DRIVER_ROCKCHIP 1" >>confdefs.h
+ SUMMARY_video="${SUMMARY_video} rockchip"
+ fi
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdrm >= 1.4.82" >&5
Here is the complete configure and build output from my cross compile on your repo. Everything seems to tick and tock. Rockchip shows in the video drivers. But I continue to see that same error.
Just to re-iterate... the patch worked perfectly before I reverted glibc :\
As I am skimming that log with a fine toothed comb I noticed it didn't find a good gbm version. checking for gbm >= 11.1.0... no
Looking at this, I see that rockchip's libmali made a change to their meson build file this year that sets the version down to 10.4.0 if I don't compile with the wrapper (which the preference is NOT to use).
I've patched that now and everything is working.
So be aware - if users compile the latest libmali repo for rockchip without the wrapper, the GBM version won't match SDL requirements without a patch. Perhaps you'll want to also wrap that version check in the rockchip change.
As an aside - quick question - the patch you've made to SDL_EGL_LoadLibrary that involves major and minor don't seem to be required? Everything works without that. What's the purpose of passing eglInitialize these pointers if they aren't used?
It was for debugging purposes, harmless.
So now that you guys have it working, are there any changes needed for the latest SDL release?
@slouken I have my repo https://github.com/avafinger/SDL synced with your main branch (https://github.com/libsdl-org/SDL). If not for the useless code mentioned by @mrfixit2001 I will try to push the changes with a pull request.
He mention about a patch for the 'configure' but that is done by autogen.sh.
What you think?
Sounds good. I'll be happy to review it.
Just a quick comment - if you are going to leave the updates to configure to autogen, you'll want to submit a PR to the buildroot repo also, as their package doesn't run autogen first. Otherwise thank you for your help and work on this!
Quick question for clarity - the patch clearly applies to GLES2 (and resolves an issue), but what affect will it have on GLES3?
you'll want to submit a PR to the buildroot repo also, as their package doesn't run autogen firs
Maybe you or @slouken or someone else can provide the configure file and SDL_config.h already patched to be ready and compatible with all platforms?
the patch clearly applies to GLES2 (and resolves an issue), but what affect will it have on GLES3?
No problem with GLES3, tested on RK3568 with OpenGLES 3.1
I tried to summarize it here: https://github.com/libsdl-org/SDL/pull/5170
Actually is OpenGLES 3.2
@mrfixit2001 Can you please review the configure file changes? Did you have to patch "SDL_config.h" ?
Can you test the latest changes and report your findings? I have not patched SDL_config.h. I think there is a regression in 2.0.19 , while ./testgles2 (SDL) works just fine it breaks my X11 ffplay implementation somehow if compiling with rockchip wrapper. It complaints about GLX. Maybe there is something related to the wrapper and blob version in use.
hmm, i confused the version numbering. configure.ac states SDL_MICRO_VERSION=19 but actually links with libSDL2-2.0.so.0.18.1
I did not have to patch SDL_config.h for 2.0.18.
I can confirm that yes - that your fork (and SDL master commit) compiles 0.18.1, correct, not 0.19.
I don't use X11 in my environment so I can't provide much insight there or to the requirement for SDL_HINT_VIDEO_X11_FORCE_EGL. Perhaps it also needs EGL_NO_X11?
I can also confirm that even without the wrapper I needed to remove the sym for gbm_bo_get_offset from SDL_kmsdrmsym.h, but I think I saw you did that in your PR already.
I haven't tested your PR yet, but at a glance I don't think it will call CheckRockchip?
I don't use X11 in my environment
Please, build for cli as you have done. SDL_HINT_VIDEO_X11_FORCE_EGL = 1 did not work as intended, ./testgles2 worked without HW 3d accel, so no go.
I needed to remove the sym for gbm_bo_get_offset from SDL_kmsdrmsym.h
Yes, they removed and I removed as well.
but at a glance I don't think it will call CheckRockchip?
If that is true, my assertion of SDL_HINT_VIDEO_X11_FORCE_EGL=1 did not work is wrong.
Adding some comments to your PR for you, I don't think it's being picked up
SDL has undergone a lot of changes recently and I am no more able to reproduce the error with the latest version.
Enable virtual joystick APIs : YES
Using libsamplerate : YES
Using libudev : YES
Using dbus : YES
Using ime : YES
Using ibus : YES
Using fcitx : YES
I consider this fixed. Closing it, for now, if I hit the error again I reopen it.
For any further info, we can use the PR.
I have built SDL2 from git (latest version) but it fails to load sdl2 with X11 Desktop, while it works with CLI (GBM). For some reason, running with X11, it tries to load the libudev symbols before the SO libudev.so.1 is loaded!.
I can't figure out where or who is calling the "SDL_LoadFunction" prior to loading the real SO. The handle is NULL and SDL2 fails to load the symbol.
Here is the log, running the test: