Open clort81 opened 4 years ago
That's strange:
https://github.com/hrydgard/ppsspp/blob/c9c060fcdbd222f7c64fd47a3f70a54fefa3a874/Core/Dialog/SavedataParam.cpp#L30 https://github.com/hrydgard/ppsspp/blob/fe1807b2ecc2558ea951e81396a7e9e19d23d299/Core/HLE/sceKernelMemory.h#L61
sceKernelGetCompiledSdkVersion()
should be perfectly well defined in scope. It's not using any floats so it ought not be affected by hard float or otherwise. Does git status
show no differences?
-[Unknown]
A fresh clone built fine up to final link!
On aarch64 (jetson nano)
[100%] Linking CXX executable PPSSPPSDL
/usr/bin/ld: ffmpeg/linux/aarch64/lib/libavformat.a(avienc.o): relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `__stack_chk_guard@@GLIBC_2.17' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: ffmpeg/linux/aarch64/lib/libavformat.a(avienc.o)(.text+0xc): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `__stack_chk_guard@@GLIBC_2.17'
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/PPSSPPSDL.dir/build.make:582: PPSSPPSDL] Error 1
make[2]: Leaving directory '/media/sd/pcbak2/Projects/Emulators/ppsspp'
make[1]: *** [CMakeFiles/Makefile2:680: CMakeFiles/PPSSPPSDL.dir/all] Error 2
make[1]: Leaving directory '/media/sd/pcbak2/Projects/Emulators/ppsspp'
make: *** [Makefile:130: all] Error 2
On aarch64 i solved by
On armhf it was just
the armhf build is using LIBGL by default and segfaulting with
user@ml1:/big/src/ppsspp$ ./PPSSPPSDL
LIBGL: Initialising gl4es
LIBGL: v1.1.4 built on Jul 7 2020 21:45:49
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Error): PVRSRVAllocDeviceMem: Error 1 returned [934, /bridged_pvr_glue.c]
PVR:(Error): ERROR - Failed to alloc mem for CCB! [114, /sgxutils_client.c]
PVR:(Error): Couldn't create render context [193, /srv_sgx.c]
PVR:(Error): SGXDestroyTransferContext: Called with NULL context. Ignoring [1958, /sgxtransfer_context.c]
PVR:(Error): SGXDestroyRenderContext: NULL handle [52, /sgxrender_context.c]
PVR:(Error): Couldn't destroy render context [247, /srv_sgx.c]
LIBGL: Error while gathering supported extension (eglInitialize: EGL_BAD_ALLOC), default to none
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
Segmentation fault
Maybe i can force an opengl-es build, ignoring ptitseb's gl4es libraries?
Do you have both USING_EGL and USING_GLES2? What was your full cmake command?
-[Unknown]
managed to force the glesv2 by moving-out my libGL.so
USING_EGL and USING_GLES2 are both ON
cmake was cmake /big/src/ppsspp
Running gets me.
user@ml1:/big/src/ppsspp$ ./PPSSPPSDL
I: VulkanLoader.cpp:268: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:275: VulkanMayBeAvailable: Library loaded ('libvulkan.so')
I: VulkanLoader.cpp:328: VulkanMayBeAvailable: Enumerating instance extensions
I: VulkanLoader.cpp:339: VulkanMayBeAvailable: Instance extension count: 2
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
E: VulkanLoader.cpp:365: Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
LIBGL: Initialising gl4es
LIBGL: v1.1.4 built on Jul 7 2020 21:45:49
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Error): PVRSRVAllocDeviceMem: Error 1 returned [934, /bridged_pvr_glue.c]
PVR:(Error): ERROR - Failed to alloc mem for CCB! [114, /sgxutils_client.c]
PVR:(Error): Couldn't create render context [193, /srv_sgx.c]
PVR:(Error): SGXDestroyTransferContext: Called with NULL context. Ignoring [1958, /sgxtransfer_context.c]
PVR:(Error): SGXDestroyRenderContext: NULL handle [52, /sgxrender_context.c]
PVR:(Error): Couldn't destroy render context [247, /srv_sgx.c]
LIBGL: Error while gathering supported extension (eglInitialize: EGL_BAD_ALLOC), default to none
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
Segmentation fault
The ccmake settings now are:
Page 1 of 1
ARM ON
ARMIPS_REGEXP OFF
ARMV7 ON
BUILD_EXTERNAL ON
BUILD_SHARED_LIBS OFF
BUILD_TESTING ON
CCACHE_FOUND /usr/bin/ccache
CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX /usr/local
ENABLE_CTEST ON
ENABLE_GLSLANG_BINARIES OFF
ENABLE_GLSLANG_JS OFF
ENABLE_HLSL ON
ENABLE_OPT ON
ENABLE_PCH ON
ENABLE_RTTI OFF
ENABLE_SPVREMAPPER ON
FFmpeg_INCLUDE_avcodec /big/src/ppsspp/ffmpeg/linux/armv7/include
FFmpeg_INCLUDE_avdevice FFmpeg_INCLUDE_avdevice-NOTFOUND
FFmpeg_INCLUDE_avfilter FFmpeg_INCLUDE_avfilter-NOTFOUND
FFmpeg_INCLUDE_avformat /big/src/ppsspp/ffmpeg/linux/armv7/include
FFmpeg_INCLUDE_avutil /big/src/ppsspp/ffmpeg/linux/armv7/include
FFmpeg_INCLUDE_postproc FFmpeg_INCLUDE_postproc-NOTFOUND
FFmpeg_INCLUDE_swresample /big/src/ppsspp/ffmpeg/linux/armv7/include
FFmpeg_INCLUDE_swscale /big/src/ppsspp/ffmpeg/linux/armv7/include
FFmpeg_LIBRARY_avcodec /big/src/ppsspp/ffmpeg/linux/armv7/lib/libavcodec.a
FFmpeg_LIBRARY_avdevice FFmpeg_LIBRARY_avdevice-NOTFOUND
FFmpeg_LIBRARY_avfilter FFmpeg_LIBRARY_avfilter-NOTFOUND
FFmpeg_LIBRARY_avformat /big/src/ppsspp/ffmpeg/linux/armv7/lib/libavformat.a
FFmpeg_LIBRARY_avutil /big/src/ppsspp/ffmpeg/linux/armv7/lib/libavutil.a
FFmpeg_LIBRARY_postproc FFmpeg_LIBRARY_postproc-NOTFOUND
FFmpeg_LIBRARY_swresample /big/src/ppsspp/ffmpeg/linux/armv7/lib/libswresample.a
FFmpeg_LIBRARY_swscale /big/src/ppsspp/ffmpeg/linux/armv7/lib/libswscale.a
HEADLESS OFF
LIBRETRO OFF
LIBZIP_INCLUDE_DIR /usr/include
LIBZIP_LIBRARY /usr/lib/arm-linux-gnueabihf/libzip.so
MIPS OFF
MOBILE_DEVICE OFF
SIMULATOR OFF
SKIP_GLSLANG_INSTALL OFF
SPIRV_CROSS_EXCEPTIONS_TO_ASSE ON
UNITTEST OFF
USE_ADDRESS_SANITIZER OFF
USE_CCACHE OFF
USE_DISCORD ON
USE_FFMPEG ON
USE_SYSTEM_FFMPEG OFF
USE_SYSTEM_LIBZIP OFF
USE_SYSTEM_SNAPPY OFF
USE_WAYLAND_WSI OFF
USING_EGL ON
USING_FBDEV OFF
USING_GLES2 ON
USING_QT_UI OFF
USING_X11_VULKAN OFF
X86 OFF
X86_64 OFF
pkgcfg_lib_SDL2PC_SDL2 /usr/lib/arm-linux-gnueabihf/libSDL2.so
running in GDB gets me following backtrace:
(gdb) run
Starting program: /big/src/ppsspp/PPSSPPSDL
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
I: VulkanLoader.cpp:268: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:275: VulkanMayBeAvailable: Library loaded ('libvulkan.so')
I: VulkanLoader.cpp:328: VulkanMayBeAvailable: Enumerating instance extensions
I: VulkanLoader.cpp:339: VulkanMayBeAvailable: Instance extension count: 2
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
E: VulkanLoader.cpp:365: Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
LIBGL: Initialising gl4es
LIBGL: v1.1.4 built on Jul 7 2020 21:45:49
LIBGL: Using GLES 2.0 backend
LIBGL: loaded: libGLESv2.so
LIBGL: loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Error): PVRSRVAllocDeviceMem: Error 1 returned [934, /bridged_pvr_glue.c]
PVR:(Error): ERROR - Failed to alloc mem for CCB! [114, /sgxutils_client.c]
PVR:(Error): Couldn't create render context [193, /srv_sgx.c]
PVR:(Error): SGXDestroyTransferContext: Called with NULL context. Ignoring [1958, /sgxtransfer_context.c]
PVR:(Error): SGXDestroyRenderContext: NULL handle [52, /sgxrender_context.c]
PVR:(Error): Couldn't destroy render context [247, /srv_sgx.c]
LIBGL: Error while gathering supported extension (eglInitialize: EGL_BAD_ALLOC), default to none
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
Program received signal SIGSEGV, Segmentation fault.
0xb660eca4 in omap_device_del () from /usr/lib/arm-linux-gnueabihf/libdrm_omap.so.1
(gdb) bt
#0 0xb660eca4 in omap_device_del () from /usr/lib/arm-linux-gnueabihf/libdrm_omap.so.1
#1 0xb67cd016 in IMGeglTerminate () from /usr/lib/arm-linux-gnueabihf/libIMGegl.so
#2 0xb55b0d32 in ?? () from /usr/lib/arm-linux-gnueabihf/libGL.so.1
#3 0xb54edc74 in ?? () from /usr/lib/arm-linux-gnueabihf/libGL.so.1
#4 0xb6fe1580 in call_init (l=<optimized out>, argc=1, argv=0xbefff294, env=0x1107ce0) at dl-init.c:72
#5 0xb6fe1632 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>)
at dl-init.c:30
#6 _dl_init (main_map=main_map@entry=0x1135548, argc=1, argv=0xbefff294, env=0x1107ce0) at dl-init.c:119
#7 0xb6fe3ff8 in dl_open_worker (a=<optimized out>) at dl-open.c:517
#8 0xb6af2dbc in __GI__dl_catch_exception (exception=0xbeffcf84, operate=0xb6fe3d8d <dl_open_worker>, args=0xbeffcf90)
at dl-error-skeleton.c:196
#9 0xb6fe3afc in _dl_open (file=0xb6f9033c "libGL.so.1", mode=-2147483390, caller_dlopen=0xb6f67d95,
nsid=<optimized out>, argc=1, argv=0xbefff294, env=0x1107ce0) at dl-open.c:599
#10 0xb6cffb58 in dlopen_doit (a=0xbeffd20c) at dlopen.c:66
#11 0xb6af2dbc in __GI__dl_catch_exception (exception=exception@entry=0xbeffd1c0, operate=0xb6cffb09 <dlopen_doit>,
args=args@entry=0xbeffd20c) at dl-error-skeleton.c:196
#12 0xb6af2e34 in __GI__dl_catch_error (objname=0x11081dc, errstring=0x11081e0, mallocedp=0x11081d8,
operate=<optimized out>, args=0xbeffd20c) at dl-error-skeleton.c:215
#13 0xb6d000b8 in _dlerror_run (operate=0xb6cffb09 <dlopen_doit>, args=args@entry=0xbeffd20c) at dlerror.c:163
#14 0xb6cffbd4 in __dlopen (file=0xb6f9033c "libGL.so.1", mode=<optimized out>) at dlopen.c:87
#15 0xb6f67d94 in ?? () from /usr/lib/arm-linux-gnueabihf/libSDL2-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
I rebuilt libSDL2 entirely without OpenGL support (only opengles1 and opengles2) and am getting rather interesting results now
user@ml1:/big/src/ppsspp$ ./PPSSPPSDL
I: VulkanLoader.cpp:268: VulkanMayBeAvailable: Device allowed ('SDL:Linux')
I: VulkanLoader.cpp:275: VulkanMayBeAvailable: Library loaded ('libvulkan.so')
I: VulkanLoader.cpp:328: VulkanMayBeAvailable: Enumerating instance extensions
I: VulkanLoader.cpp:339: VulkanMayBeAvailable: Instance extension count: 2
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
I: VulkanLoader.cpp:347: VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
E: VulkanLoader.cpp:365: Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
Info: We compiled against SDL version 2.0.9 and we are linking against SDL version 2.0.9. :)
I: Config.cpp:527: Longest display side: -1 pixels. Choosing scale 1
28:26:098 UI/NativeApp.cpp:402 E[LOADER]: Failed graphics backends: OPENGL,ALL,ALL,ALL,ALL
28:26:098 Core/Config.cpp:609 E[LOADER]: Graphics backend failed for 0, trying another
28:26:099 Core/Config.cpp:634 E[LOADER]: All graphics backends failed
Pixels: 960 x 544
Virtual pixels: 960 x 544
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Error): PVRSRVAllocDeviceMem: Error 1 returned [934, /bridged_pvr_glue.c]
PVR:(Error): ERROR - Failed to alloc mem for CCB! [114, /sgxutils_client.c]
PVR:(Error): Couldn't create render context [193, /srv_sgx.c]
PVR:(Error): SGXDestroyTransferContext: Called with NULL context. Ignoring [1958, /sgxtransfer_context.c]
PVR:(Error): SGXDestroyRenderContext: NULL handle [52, /sgxrender_context.c]
PVR:(Error): Couldn't destroy render context [247, /srv_sgx.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
Segmentation fault
screen resolution is 960x540, not 544, so maybe i could set things to single scaled 480x272 ? My
/var/log/messages also indicates driver issues:
Jul 18 12:30:49 ml1 kernel: [214102.065460] PVR_K:(Error): PVRSRVOpenDCDeviceKM: no devnode matching index 0 [837, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/deviceclass.c]
Jul 18 12:30:50 ml1 kernel: [214102.133392] PVR_K:(Error): MMU_Alloc: RA_Alloc of VMArena failed [3111, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/devices/sgx/mmu.c]
Jul 18 12:30:50 ml1 kernel: [214102.133453] PVR_K:(Error): MMU_Alloc: Alloc of DevVAddr failed from heap KernelData ID117440515 [3114, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/devices/sgx/mmu.c]
Jul 18 12:30:50 ml1 kernel: [214102.133453] PVR_K:(Error): DevMemoryAlloc ERROR MMU_Alloc [2304, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/buffer_manager.c]
Jul 18 12:30:50 ml1 kernel: [214102.133483] PVR_K:(Error): BM_ImportMemory: DevMemoryAlloc(0x11000) failed [3128, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/buffer_manager.c]
Jul 18 12:30:50 ml1 kernel: [214102.133483] PVR_K:(Error): AllocMemory: RA_Alloc(0x10674) FAILED [245, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/buffer_manager.c]
Jul 18 12:30:50 ml1 kernel: [214102.133483] PVR_K:(Error): BM_Alloc: AllocMemory FAILED [1616, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/buffer_manager.c]
Jul 18 12:30:50 ml1 kernel: [214102.133544] PVR_K:(Error): AllocDeviceMem: BM_Alloc Failed [537, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/common/devicemem.c]
Has this gotten any better with updated drivers?
-[Unknown]
Sorry for lack of reply unknownbrackets: better drivers not forthcoming. We have no active driver development. Amazingly i did get a build that runs - sometimes. My brain has turned to mush though - I should have really gotten a d-dimer clotting test.
video proof! playable fps (for rpg)!!
I'll try to figure it out - maybe this patch will help. force sdl2 to use gles Perhaps someone with another omap4 device could give it a shot? Cheers!
so that build above which did run, and my latest compile with is RelWithDebInfo, fail as follows
./PPSSPPSDL
VulkanMayBeAvailable: Device allowed ('SDL:Linux')
VulkanMayBeAvailable: Library loaded ('libvulkan.so.1')
VulkanMayBeAvailable: Enumerating instance extensions
VulkanMayBeAvailable: Instance extension count: 2
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
Info: We compiled against SDL version 2.0.9, but we are linking against SDL version 2.0.14., be aware that this can lead to unexpected behaviors
25:05:072 Core/Config.cpp:615 I[G3D]: Longest display side: -1 pixels. Choosing scale 1
25:05:151 UI/NativeApp.cpp:405 E[LOADER]: Failed graphics backends: OPENGL
25:05:152 Core/Config.cpp:697 E[LOADER]: Graphics backend failed for 0, trying another
25:05:153 Core/Config.cpp:722 E[LOADER]: All graphics backends failed
Pixels: 960 x 544
Virtual pixels: 960 x 544
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
PVR:(Error): PVRSRVUnloadLibrary, invalid hExtDrv [182, /osfunc_um.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
malloc(): smallbin double linked list corrupted
And under gdb
gdb ./PPSSPPSDL
GNU gdb (Debian 8.2.1-2+b3) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./PPSSPPSDL...done.
(gdb)
(gdb) run
Starting program: /data/psp/ppsspp/build/PPSSPPSDL
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
0xb5fea966 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
(gdb) bt
#0 0xb5fea966 in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
#1 0xb5fe50ee in ?? () from /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
internet says 'this is normal' so i apply handle SIGILL nostop
(gdb) handle SIGILL nostop
Signal Stop Print Pass to program Description
SIGILL No Yes Yes Illegal instruction
(gdb) cont
Continuing.
VulkanMayBeAvailable: Device allowed ('SDL:Linux')
VulkanMayBeAvailable: Library loaded ('libvulkan.so.1')
VulkanMayBeAvailable: Enumerating instance extensions
VulkanMayBeAvailable: Instance extension count: 2
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (00000009)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000001)
Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
[New Thread 0xb4e533a0 (LWP 729)]
Info: We compiled against SDL version 2.0.9, but we are linking against SDL version 2.0.14., be aware that this can lead to unexpected behaviors
**30:32:549 Core/Config.cpp:615 I[G3D]: Longest display side: -1 pixels. Choosing scale 1**
[New Thread 0xb0ba23a0 (LWP 730)]
[New Thread 0xb03a13a0 (LWP 731)]
[New Thread 0xafba03a0 (LWP 732)]
[New Thread 0xaf39f3a0 (LWP 733)]
[New Thread 0xaeb9e3a0 (LWP 734)]
[New Thread 0xae39d3a0 (LWP 735)]
30:32:605 UI/NativeApp.cpp:405 E[LOADER]: Failed graphics backends: OPENGL,ALL
30:32:605 Core/Config.cpp:697 E[LOADER]: Graphics backend failed for 0, trying another
30:32:605 Core/Config.cpp:722 E[LOADER]: All graphics backends failed
Pixels: 960 x 544
Virtual pixels: 960 x 544
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
PVR:(Error): PVRSRVUnloadLibrary, invalid hExtDrv [182, /osfunc_um.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
malloc(): smallbin double linked list corrupted
Thread 1 "PPSSPPSDL" received signal SIGABRT, Aborted.
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
47 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
[EDIT] Forcing pixel_xres and pixel_yres to 960x540 results in Pixels: 960 x 540, Virtual pixels: 960 x 544 and same
I seem to recall getting this intermittently in previous OS revisions, now it's consistent. The backtrace shows
3639 malloc.c: No such file or directory.
(gdb) bt
#0 _int_malloc (av=av@entry=0xb64447f4 <main_arena>, bytes=bytes@entry=8) at malloc.c:3639
#1 0xb63a42d0 in __GI___libc_malloc (bytes=8) at malloc.c:3057
#2 0xb5ef1acc in ?? () from /usr/lib/arm-linux-gnueabihf/libxcb.so.1
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
At this point, would i want to see what parameters libxcb is being invoked with? Corrupt stack prevents introspection with gdb?
[EDIT2] This doesn't look right: 30:32:549 Core/Config.cpp:615 I[G3D]: Longest display side: -1 pixels. Choosing scale 1 This gets set in Config.cpp
int longestDisplaySide = std::max(System_GetPropertyInt(SYSPROP_DISPLAY_XRES), System_GetPropertyInt(SYSPROP_DISPLAY_YRES));
int scale = longestDisplaySide >= 1000 ? 2 : 1;
I'll try force setting SYSPROP_DISPLAY_XRES and YRES now. As an aside.. Seems to me that a Display of 960 would be enough for scale=2
[EDIT3] Forcing int longestDisplaySide = std::max(960, 540); still results in malloc(): smallbin double linked list corrupted
After installing gnulib (containing maloc.c) gdb backtrace shows more output:
malloc(): smallbin double linked list corrupted
Thread 1 "PPSSPPSDL" received signal SIGABRT, Aborted.
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
47 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) bt
#0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
#1 0xb63730ae in __libc_signal_restore_set (set=0xbeffcd54) at ../sysdeps/unix/sysv/linux/internal-signals.h:84
#2 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3 0xb63651f2 in __GI_abort () at abort.c:79
#4 0xb639c494 in __libc_message (action=action@entry=do_abort, fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:181
#5 0xb63a09c2 in malloc_printerr (str=<optimized out>) at malloc.c:5341
#6 0xb63a3290 in _int_malloc (av=av@entry=0xb64447f4 <main_arena>, bytes=bytes@entry=8) at malloc.c:3640
#7 0xb63a4bd0 in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3428
#8 0xb6cf3544 in _XlcOpenConverter () from /usr/lib/arm-linux-gnueabihf/libX11.so.6
#9 0xb6cf798c in ?? () from /usr/lib/arm-linux-gnueabihf/libX11.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Oh hm dmesg shows:
[23592.937622] PVR_K:(Error): OSFreePages(ui32AllocFlags=0x02014200, ui32Bytes=10342400, pvCpuVAddr=00000000, hOSMemHandle=a2defd5d) FAILED! [327, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/env/linux/osfunc.c]
[23592.937652] PVR_K:(Error): PVRMMapRemoveRegisteredArea: psOffsetStruct 0x1469965d for memory area 0x0x6fdec8bd is still mapped; psOffsetStruct->ui32Mapped 1 [1754, rivers/gpu/drm/pvrsgx/1.9.2253347/services4/srvkm/env/linux/mmap.c]
[23592.940246] [<bf383e3c>] (PVRSRV_BridgeDispatchKM [pvrsrvkm_omap4_sgx540_120]) from [<bf24be58>] (drm_ioctl_kernel+0xa4/0xe8 [drm])
[23592.940612] [<bf24be58>] (drm_ioctl_kernel [drm]) from [<bf24c078>] (drm_ioctl+0x1dc/0x3bc [drm])
[23592.940887] [<bf24c078>] (drm_ioctl [drm]) from [<c02eed58>] (sys_ioctl+0x19c/0xa54)
æ1 /data/psp/ppsspp#
Another run under gdb yields:
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
malloc(): smallbin double linked list corrupted
Thread 1 "PPSSPPSDL" received signal SIGABRT, Aborted.
__libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
47 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory.
(gdb) bt
#0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
#1 0xb63730ae in __libc_signal_restore_set (set=0xbeffccf4) at ../sysdeps/unix/sysv/linux/internal-signals.h:84
#2 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#3 0xb63651f2 in __GI_abort () at abort.c:79
#4 0xb639c494 in __libc_message (action=action@entry=do_abort, fmt=<optimized out>) at ../sysdeps/posix/libc_fatal.c:181
#5 0xb63a09c2 in malloc_printerr (str=<optimized out>) at malloc.c:5341
#6 0xb63a3290 in _int_malloc (av=av@entry=0xb64447f4 <main_arena>, bytes=bytes@entry=12) at malloc.c:3640
#7 0xb63a4bd0 in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3428
#8 0xb5dbf428 in drmHashInsert () from /usr/lib/arm-linux-gnueabihf/libdrm.so.2
#9 0xb5dbc4f2 in drmGetEntry () from /usr/lib/arm-linux-gnueabihf/libdrm.so.2
#10 0xb5dbcb0a in drmClose () from /usr/lib/arm-linux-gnueabihf/libdrm.so.2
#11 0xb5f6b7e2 in ?? () from /usr/lib/arm-linux-gnueabihf/libsrv_um.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
This is looking like a driver issue that I cannot work around playing with ppsspp itself.
Has this gotten any better in the latest git build? We fixed a bug that was causing another GL driver to crash, so it's possible it could be related.
-[Unknown]
What happens?
Build fails.
hardware, Motorola Droid 4, armhf, cortex-a9
operating syste, devuan + maemo-leste
PPSSPP version, git master
gcc version 8.3.0 (Debian 8.3.0-6) cmake version 3.13.4
libsdl2-dev is already the newest version (2.0.9+dfsg1-1). libvulkan-dev is already the newest version (1.1.97-2). libgl1-mesa-dev is already the newest version (20.2.0-1+2m7.1)
uname -a, Linux ml1 5.7.0 #1 SMP PREEMPT Sun Jul 12 18:58:38 UTC 2020 armv7l GNU/Linux
a plain 'following instructions' build fails with