jorio / Nanosaur2

Pangea Software’s Nanosaur II for modern systems
https://jorio.itch.io/nanosaur2
Other
60 stars 7 forks source link

Freezing visuals when breaking items or crashing the player #1

Closed orazioedoardo closed 1 year ago

orazioedoardo commented 1 year ago

Whenever the player destroys the turret and the metallic balloons tethered to the ground, or crashes into the terrain, the visual freezes. It seems to occur the instant a breaking animation is about to occur. Note that the game is actually progressing because you can hear the ambient sound, and in the example video the dinosaur can be heard eventually crashing into a tree and respawning. Occurs 100% of the time, debian system, gcc, arm64.

https://user-images.githubusercontent.com/22700499/206662373-6db06eae-5093-43e9-8ddd-844602b46bd3.mp4

jorio commented 1 year ago

Thanks for reporting this! I can't reproduce this issue on my arm64 machine (Asahi Linux, gcc 12) so I took a guess at what might be going wrong and attempted a blindfix (8421cbb). If you have time to try this fix, I'd love to know if it works for you.

And if the fix doesn't work...

orazioedoardo commented 1 year ago

https://github.com/jorio/Nanosaur2/commit/8421cbbc48f5c943f4624fabfccd3cbebfb752f9 didn't work. I will try the CI build and also the AppImage via the build script later.

orazioedoardo commented 1 year ago

what is your exact gcc version?

$ gcc --version
gcc (Debian 10.2.1-6) 10.2.1 20210110

do you mind trying out this arm64 build?

Didn't work. Also when running both the CI AppImage as well as the python generated one from the command line they complain about a lot of missing symbols, but other than those errors, the game run as usual (but still freezes).

$ ./dist/Nanosaur2-2.1.0-linux-aarch64.AppImage 
DEBUG: Failed loading XMissingExtension: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XMissingExtension
DEBUG: Failed loading XFixesCreatePointerBarrier: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XFixesCreatePointerBarrier
DEBUG: Failed loading XFixesCreatePointerBarrier: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XFixesCreatePointerBarrier
DEBUG: Failed loading XFixesDestroyPointerBarrier: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XFixesDestroyPointerBarrier
DEBUG: Failed loading XFixesDestroyPointerBarrier: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XFixesDestroyPointerBarrier
DEBUG: Failed loading XIBarrierReleasePointer: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIBarrierReleasePointer
DEBUG: Failed loading XIBarrierReleasePointer: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIBarrierReleasePointer
DEBUG: Failed loading XIBarrierReleasePointer: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIBarrierReleasePointer
DEBUG: Failed loading XFixesQueryVersion: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XFixesQueryVersion
DEBUG: Failed loading XFixesQueryVersion: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XFixesQueryVersion
DEBUG: Failed loading XShmAttach: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmAttach
DEBUG: Failed loading XShmDetach: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmDetach
DEBUG: Failed loading XShmPutImage: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmPutImage
DEBUG: Failed loading XShmCreateImage: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmCreateImage
DEBUG: Failed loading XShmCreatePixmap: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmCreatePixmap
DEBUG: Failed loading XShmQueryExtension: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShmQueryExtension
DEBUG: Failed loading XcursorImageCreate: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XcursorImageCreate
DEBUG: Failed loading XcursorImageCreate: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XcursorImageCreate
DEBUG: Failed loading XcursorImageDestroy: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XcursorImageDestroy
DEBUG: Failed loading XcursorImageDestroy: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XcursorImageDestroy
DEBUG: Failed loading XcursorImageLoadCursor: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XcursorImageLoadCursor
DEBUG: Failed loading XcursorImageLoadCursor: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XcursorImageLoadCursor
DEBUG: Failed loading XdbeQueryExtension: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeQueryExtension
DEBUG: Failed loading XdbeAllocateBackBufferName: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeAllocateBackBufferName
DEBUG: Failed loading XdbeDeallocateBackBufferName: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeDeallocateBackBufferName
DEBUG: Failed loading XdbeSwapBuffers: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeSwapBuffers
DEBUG: Failed loading XdbeBeginIdiom: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeBeginIdiom
DEBUG: Failed loading XdbeEndIdiom: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeEndIdiom
DEBUG: Failed loading XdbeGetVisualInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeGetVisualInfo
DEBUG: Failed loading XdbeFreeVisualInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeFreeVisualInfo
DEBUG: Failed loading XdbeGetBackBufferAttributes: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XdbeGetBackBufferAttributes
DEBUG: Failed loading XIQueryDevice: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIQueryDevice
DEBUG: Failed loading XIQueryDevice: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIQueryDevice
DEBUG: Failed loading XIQueryDevice: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIQueryDevice
DEBUG: Failed loading XIFreeDeviceInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIFreeDeviceInfo
DEBUG: Failed loading XIFreeDeviceInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIFreeDeviceInfo
DEBUG: Failed loading XIFreeDeviceInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIFreeDeviceInfo
DEBUG: Failed loading XISelectEvents: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XISelectEvents
DEBUG: Failed loading XISelectEvents: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XISelectEvents
DEBUG: Failed loading XISelectEvents: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XISelectEvents
DEBUG: Failed loading XIGrabTouchBegin: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIGrabTouchBegin
DEBUG: Failed loading XIGrabTouchBegin: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIGrabTouchBegin
DEBUG: Failed loading XIGrabTouchBegin: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIGrabTouchBegin
DEBUG: Failed loading XIUngrabTouchBegin: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIUngrabTouchBegin
DEBUG: Failed loading XIUngrabTouchBegin: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIUngrabTouchBegin
DEBUG: Failed loading XIUngrabTouchBegin: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIUngrabTouchBegin
DEBUG: Failed loading XIQueryVersion: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIQueryVersion
DEBUG: Failed loading XIQueryVersion: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIQueryVersion
DEBUG: Failed loading XIQueryVersion: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIQueryVersion
DEBUG: Failed loading XIGetSelectedEvents: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIGetSelectedEvents
DEBUG: Failed loading XIGetSelectedEvents: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIGetSelectedEvents
DEBUG: Failed loading XIGetSelectedEvents: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIGetSelectedEvents
DEBUG: Failed loading XIGetClientPointer: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIGetClientPointer
DEBUG: Failed loading XIGetClientPointer: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIGetClientPointer
DEBUG: Failed loading XIGetClientPointer: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIGetClientPointer
DEBUG: Failed loading XIWarpPointer: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XIWarpPointer
DEBUG: Failed loading XIWarpPointer: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XIWarpPointer
DEBUG: Failed loading XIWarpPointer: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XIWarpPointer
DEBUG: Failed loading XRRQueryVersion: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRQueryVersion
DEBUG: Failed loading XRRQueryVersion: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRQueryVersion
DEBUG: Failed loading XRRQueryVersion: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRQueryVersion
DEBUG: Failed loading XRRQueryVersion: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRQueryVersion
DEBUG: Failed loading XRRQueryVersion: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRQueryVersion
DEBUG: Failed loading XRRQueryExtension: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRQueryExtension
DEBUG: Failed loading XRRQueryExtension: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRQueryExtension
DEBUG: Failed loading XRRQueryExtension: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRQueryExtension
DEBUG: Failed loading XRRQueryExtension: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRQueryExtension
DEBUG: Failed loading XRRQueryExtension: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRQueryExtension
DEBUG: Failed loading XRRGetScreenInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetScreenInfo
DEBUG: Failed loading XRRGetScreenInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetScreenInfo
DEBUG: Failed loading XRRGetScreenInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetScreenInfo
DEBUG: Failed loading XRRGetScreenInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetScreenInfo
DEBUG: Failed loading XRRGetScreenInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetScreenInfo
DEBUG: Failed loading XRRConfigCurrentConfiguration: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRConfigCurrentConfiguration
DEBUG: Failed loading XRRConfigCurrentConfiguration: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRConfigCurrentConfiguration
DEBUG: Failed loading XRRConfigCurrentConfiguration: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRConfigCurrentConfiguration
DEBUG: Failed loading XRRConfigCurrentConfiguration: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRConfigCurrentConfiguration
DEBUG: Failed loading XRRConfigCurrentConfiguration: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRConfigCurrentConfiguration
DEBUG: Failed loading XRRConfigCurrentRate: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRConfigCurrentRate
DEBUG: Failed loading XRRConfigCurrentRate: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRConfigCurrentRate
DEBUG: Failed loading XRRConfigCurrentRate: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRConfigCurrentRate
DEBUG: Failed loading XRRConfigCurrentRate: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRConfigCurrentRate
DEBUG: Failed loading XRRConfigCurrentRate: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRConfigCurrentRate
DEBUG: Failed loading XRRConfigRates: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRConfigRates
DEBUG: Failed loading XRRConfigRates: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRConfigRates
DEBUG: Failed loading XRRConfigRates: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRConfigRates
DEBUG: Failed loading XRRConfigRates: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRConfigRates
DEBUG: Failed loading XRRConfigRates: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRConfigRates
DEBUG: Failed loading XRRConfigSizes: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRConfigSizes
DEBUG: Failed loading XRRConfigSizes: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRConfigSizes
DEBUG: Failed loading XRRConfigSizes: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRConfigSizes
DEBUG: Failed loading XRRConfigSizes: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRConfigSizes
DEBUG: Failed loading XRRConfigSizes: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRConfigSizes
DEBUG: Failed loading XRRSetScreenConfigAndRate: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRSetScreenConfigAndRate
DEBUG: Failed loading XRRSetScreenConfigAndRate: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRSetScreenConfigAndRate
DEBUG: Failed loading XRRSetScreenConfigAndRate: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRSetScreenConfigAndRate
DEBUG: Failed loading XRRSetScreenConfigAndRate: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRSetScreenConfigAndRate
DEBUG: Failed loading XRRSetScreenConfigAndRate: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRSetScreenConfigAndRate
DEBUG: Failed loading XRRFreeScreenConfigInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRFreeScreenConfigInfo
DEBUG: Failed loading XRRFreeScreenConfigInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRFreeScreenConfigInfo
DEBUG: Failed loading XRRFreeScreenConfigInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRFreeScreenConfigInfo
DEBUG: Failed loading XRRFreeScreenConfigInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRFreeScreenConfigInfo
DEBUG: Failed loading XRRFreeScreenConfigInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRFreeScreenConfigInfo
DEBUG: Failed loading XRRSetScreenSize: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRSetScreenSize
DEBUG: Failed loading XRRSetScreenSize: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRSetScreenSize
DEBUG: Failed loading XRRSetScreenSize: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRSetScreenSize
DEBUG: Failed loading XRRSetScreenSize: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRSetScreenSize
DEBUG: Failed loading XRRSetScreenSize: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRSetScreenSize
DEBUG: Failed loading XRRGetScreenSizeRange: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetScreenSizeRange
DEBUG: Failed loading XRRGetScreenSizeRange: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetScreenSizeRange
DEBUG: Failed loading XRRGetScreenSizeRange: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetScreenSizeRange
DEBUG: Failed loading XRRGetScreenSizeRange: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetScreenSizeRange
DEBUG: Failed loading XRRGetScreenSizeRange: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetScreenSizeRange
DEBUG: Failed loading XRRGetScreenResources: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetScreenResources
DEBUG: Failed loading XRRGetScreenResources: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetScreenResources
DEBUG: Failed loading XRRGetScreenResources: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetScreenResources
DEBUG: Failed loading XRRGetScreenResources: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetScreenResources
DEBUG: Failed loading XRRGetScreenResources: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetScreenResources
DEBUG: Failed loading XRRGetScreenResourcesCurrent: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetScreenResourcesCurrent
DEBUG: Failed loading XRRGetScreenResourcesCurrent: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetScreenResourcesCurrent
DEBUG: Failed loading XRRGetScreenResourcesCurrent: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetScreenResourcesCurrent
DEBUG: Failed loading XRRGetScreenResourcesCurrent: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetScreenResourcesCurrent
DEBUG: Failed loading XRRGetScreenResourcesCurrent: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetScreenResourcesCurrent
DEBUG: Failed loading XRRFreeScreenResources: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRFreeScreenResources
DEBUG: Failed loading XRRFreeScreenResources: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRFreeScreenResources
DEBUG: Failed loading XRRFreeScreenResources: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRFreeScreenResources
DEBUG: Failed loading XRRFreeScreenResources: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRFreeScreenResources
DEBUG: Failed loading XRRFreeScreenResources: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRFreeScreenResources
DEBUG: Failed loading XRRGetOutputInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetOutputInfo
DEBUG: Failed loading XRRGetOutputInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetOutputInfo
DEBUG: Failed loading XRRGetOutputInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetOutputInfo
DEBUG: Failed loading XRRGetOutputInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetOutputInfo
DEBUG: Failed loading XRRGetOutputInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetOutputInfo
DEBUG: Failed loading XRRFreeOutputInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRFreeOutputInfo
DEBUG: Failed loading XRRFreeOutputInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRFreeOutputInfo
DEBUG: Failed loading XRRFreeOutputInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRFreeOutputInfo
DEBUG: Failed loading XRRFreeOutputInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRFreeOutputInfo
DEBUG: Failed loading XRRFreeOutputInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRFreeOutputInfo
DEBUG: Failed loading XRRGetCrtcInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetCrtcInfo
DEBUG: Failed loading XRRGetCrtcInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetCrtcInfo
DEBUG: Failed loading XRRGetCrtcInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetCrtcInfo
DEBUG: Failed loading XRRGetCrtcInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetCrtcInfo
DEBUG: Failed loading XRRGetCrtcInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetCrtcInfo
DEBUG: Failed loading XRRFreeCrtcInfo: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRFreeCrtcInfo
DEBUG: Failed loading XRRFreeCrtcInfo: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRFreeCrtcInfo
DEBUG: Failed loading XRRFreeCrtcInfo: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRFreeCrtcInfo
DEBUG: Failed loading XRRFreeCrtcInfo: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRFreeCrtcInfo
DEBUG: Failed loading XRRFreeCrtcInfo: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRFreeCrtcInfo
DEBUG: Failed loading XRRSetCrtcConfig: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRSetCrtcConfig
DEBUG: Failed loading XRRSetCrtcConfig: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRSetCrtcConfig
DEBUG: Failed loading XRRSetCrtcConfig: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRSetCrtcConfig
DEBUG: Failed loading XRRSetCrtcConfig: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRSetCrtcConfig
DEBUG: Failed loading XRRSetCrtcConfig: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRSetCrtcConfig
DEBUG: Failed loading XRRListOutputProperties: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRListOutputProperties
DEBUG: Failed loading XRRListOutputProperties: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRListOutputProperties
DEBUG: Failed loading XRRListOutputProperties: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRListOutputProperties
DEBUG: Failed loading XRRListOutputProperties: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRListOutputProperties
DEBUG: Failed loading XRRListOutputProperties: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRListOutputProperties
DEBUG: Failed loading XRRQueryOutputProperty: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRQueryOutputProperty
DEBUG: Failed loading XRRQueryOutputProperty: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRQueryOutputProperty
DEBUG: Failed loading XRRQueryOutputProperty: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRQueryOutputProperty
DEBUG: Failed loading XRRQueryOutputProperty: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRQueryOutputProperty
DEBUG: Failed loading XRRQueryOutputProperty: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRQueryOutputProperty
DEBUG: Failed loading XRRGetOutputProperty: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetOutputProperty
DEBUG: Failed loading XRRGetOutputProperty: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetOutputProperty
DEBUG: Failed loading XRRGetOutputProperty: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetOutputProperty
DEBUG: Failed loading XRRGetOutputProperty: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetOutputProperty
DEBUG: Failed loading XRRGetOutputProperty: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetOutputProperty
DEBUG: Failed loading XRRGetOutputPrimary: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRGetOutputPrimary
DEBUG: Failed loading XRRGetOutputPrimary: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRGetOutputPrimary
DEBUG: Failed loading XRRGetOutputPrimary: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRGetOutputPrimary
DEBUG: Failed loading XRRGetOutputPrimary: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRGetOutputPrimary
DEBUG: Failed loading XRRGetOutputPrimary: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRGetOutputPrimary
DEBUG: Failed loading XRRSelectInput: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XRRSelectInput
DEBUG: Failed loading XRRSelectInput: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XRRSelectInput
DEBUG: Failed loading XRRSelectInput: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XRRSelectInput
DEBUG: Failed loading XRRSelectInput: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XRRSelectInput
DEBUG: Failed loading XRRSelectInput: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XRRSelectInput
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryExtension: /lib/aarch64-linux-gnu/libXrandr.so.2: undefined symbol: _XScreenSaverQueryExtension
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverQueryVersion: /lib/aarch64-linux-gnu/libXrandr.so.2: undefined symbol: _XScreenSaverQueryVersion
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libXext.so.6: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libXcursor.so.1: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libXi.so.6: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libXfixes.so.3: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XScreenSaverSuspend: /lib/aarch64-linux-gnu/libXrandr.so.2: undefined symbol: _XScreenSaverSuspend
DEBUG: Failed loading XShapeCombineMask: /lib/aarch64-linux-gnu/libX11.so.6: undefined symbol: _XShapeCombineMask
DEBUG: setpriority() failed
[...]

I can't reproduce this issue on my arm64 machine (Asahi Linux, gcc 12)

You don't have GPU acceleration there, do you? Because if I disable GPU acceleration in the VM I'm using, no freezing, even without the attempted fix (so at this point in history), although I need to lower the resolution a lot and the game is not as smooth.

I also get this additional output from the command line:

$ ./build/Nanosaur2 
DEBUG: setpriority() failed
DEBUG: Failed loading udev_device_get_action: /lib/aarch64-linux-gnu/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action
DEBUG: Using udev for joystick device discovery
DEBUG: That operation is not supported <--- Appears as soon as the binary is executed
DEBUG: That operation is not supported <--- This line and the following appear during the loading level screen
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
DEBUG: That operation is not supported
LoadLevelArt: 597 ms
jorio commented 1 year ago

I managed to reproduce this in a Debian Bullseye ARM64 VM running in QEMU with the “virtio-ramfb-gl” emulated display card.

It turns out that the GL driver chokes on glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE) in DrawShards and DrawConfettiGroups.

The effect of two-sided lighting on “shards” is barely noticeable so I could just zap it.

But I wonder if it might be a graphics driver bug. Are you getting this issue on the bare metal, or just in a VM? If bare metal— can you share what machine it is, and also the little piece of text that shows up at the bottom of the “Graphics” menu?


Re: tangential stuff:

You don't have GPU acceleration there, do you?

Their GPU driver came out recently and Nanosaur 2 runs great on it!

a lot of missing symbols

The appimage is statically linked against a full-fat SDL that supports a ton of X11 bells and whistles. So I think SDL is simply probing your system’s capabilities here.

DEBUG: That operation is not supported

I’ve also gotten this warning when loading terrain textures without hardware acceleration but that hasn’t prevented the game from running in my experience. Didn’t investigate exactly what’s causing it, though.

orazioedoardo commented 1 year ago

It turns out that the GL driver chokes on glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE) in DrawShards and DrawConfettiGroups.

If I comment those lines, It doesn't freeze anymore (I just played for a minute though).

Are you getting this issue on the bare metal, or just in a VM?

Just QEMU VM via https://github.com/utmapp/UTM

But I wonder if it might be a graphics driver bug.

It might, 3D acceleration is marked as experimental, although has worked quite well with previous Pangea ports and in general, It should be this https://docs.mesa3d.org/drivers/virgl.html.

the little piece of text that shows up at the bottom of the “Graphics” menu?

virtio-ramfb: LLVMPIPE <LLVM 11.0.1, 128 BITS>, OPENGL 3.1 MESA 20.3.5, X11

virtio-ramfb-gl: VIRGL, OPENGL 2.1 MESA 20.3.5, X11

Their GPU driver came out recently and Nanosaur 2 runs great on it!

Wow cool, what a progress from the Asahi devs!

jorio commented 1 year ago

It might, 3D acceleration is marked as experimental, although has worked quite well with previous Pangea ports and in general, It should be this https://docs.mesa3d.org/drivers/virgl.html.

Billy Frontier also hangs with virgl. It’s the only other Pangea port to date that also makes use of GL_LIGHT_MODEL_TWO_SIDE.

Since I’ve never seen this issue on actual hardware, I think I’ll leave GL_LIGHT_MODEL_TWO_SIDE for the Nano 2 release. We should probably file a bug with virgl.

Thanks again for the help in troubleshooting this!

orazioedoardo commented 1 year ago

I think I’ll leave GL_LIGHT_MODEL_TWO_SIDE for the Nano 2 release.

Makes sense to keep the port as faithful as possible to the original.

I will disable the calls on my side. It kinda bugs me a bit, but I don't notice any difference, and I'm sure on those old low resolution displays from the Mac OS X Panther days it was impossible!

We should probably file a bug with virgl.

Can you do that, in case?

Anyway, I will do a speedrun of the game to test and close the issue if that's all.