TLDR: Is there a workaround for this issue that doesn’t involve turning off Vulkan? Vulkan works for all of my other cores and standalone emulators on my device. Thanks for developing this emulator!
More context: Mupen64plus with ParaLLEl-RDP crashes for me also on same “does not support 8/16-bit storage” error, requiring config file edit or delete to open roms again with that core. I understand this to be caused by a GPU driver not supporting a required Vulkan feature, normally fixed by updating drives. In my case, I’m using the AArch64 version of Retroarch on a Nintendo Switch using Android 11 via the Switchroot. Switchroot devs say Switch “can’t be updated to Vulkan” because “our libraries from Nvidia do not support vk 1.2.” (More switchrood discord chatter gets into the weeds as to why, but it’s over my head. Suffice to say, can’t be done.)
However, Vulkan does work on every other core on the device using PPSSPP Standalone, NES, SNES, Final Burn Neo, Genesis, and many others. N64 cores are the only ones that crash with Vulkan. N64 emulation is quite complex, so it wouldn’t suprise me if it requires a more complete Vulkan implementation than the other emus that aren’t crashing, but I wonder if there is a workaround or old version that supports Vulkan but perhaps doesn’t implement the Vulkan features that are causing this crash on my device?
--libretro argument "mupen64plus_next_gles3_libretro_android.so" matches core file "/data/user/0/com.retroarch.aarch64/cores/mupen64plus_next_gles3_libretro_android.so".
RetroArch 1.16.0 (Git 14cb373)
=== Build =======================================
Capabilities: ASIMD
[INFO] Version: 1.16.0
[INFO] Git: 14cb373
[INFO] Built: Oct 2 2023
[INFO] =================================================
[Input]: Found input driver: "android".
[Core]: Loading dynamic libretro core from: "/data/user/0/com.retroarch.aarch64/cores/mupen64plus_next_gles3_libretro_android.so"
[Environ]: GET_CORE_OPTIONS_VERSION.
[Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2.
[Environ]: SET_CONTROLLER_INFO.
[Overrides]: Redirecting save file to "/storage/emulated/0/Saves/Mario Kart 64 (USA).srm".
[Overrides]: Redirecting save state to "/storage/emulated/0/RetroArch/states/Mupen64Plus-Next/Mario Kart 64 (USA).state".
[Environ]: SYSTEM_DIRECTORY: "/storage/emulated/0/RetroArch/system".
[Environ]: SYSTEM_DIRECTORY: "/storage/emulated/0/RetroArch/system".
[Environ]: GET_LOG_INTERFACE.
[Environ]: GET_PERF_INTERFACE.
[Environ]: SET_PIXEL_FORMAT: XRGB8888.
[Environ]: GET_RUMBLE_INTERFACE.
mupen64plus: Using full mem base
[Environ]: SYSTEM_DIRECTORY: "/storage/emulated/0/RetroArch/system".
[Content]: Loading content file: "/storage/emulated/0/ROMs/N64/Mario Kart 64 (USA).zip#Mario Kart 64 (USA).z64".
[Content]: CRC32: 0x434389c1.
Selected HLE RSP with Angrylion, falling back to Parallel RSP!
[Environ]: GET_VARIABLE: mupen64plus-EnableN64DepthCompare - Invalid value.
[Environ]: GET_VARIABLE: mupen64plus-EnableShadersStorage - Invalid value.
[Environ]: SET_HW_RENDER, context type: vulkan.
Requesting Vulkan context.
[Environ]: SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE.
mupen64plus: Goodname: Mario Kart 64 (U) [!]
mupen64plus: Name: MARIOKART64
mupen64plus: MD5: 3A67D9986F54EB282924FCA4CD5F6DFF
mupen64plus: CRC: 3E5055B6 2E92DA52
mupen64plus: Imagetype: .z64 (native)
mupen64plus: Rom size: 12582912 bytes (or 12 Mb or 96 Megabits)
mupen64plus: ClockRate = F
mupen64plus: Version: 1446
mupen64plus: Manufacturer: Nintendo
mupen64plus: Cartridge_ID: 544B
mupen64plus: Country: USA
mupen64plus: PC = 80000400
mupen64plus: Save type: 0
[State]: found_last_state_slot: #0
[Replay]: Found last replay slot: #0
[Core]: Version of libretro API: 1, Compiled against API: 1
[Core]: Geometry: 640x480, Aspect: 1.333, FPS: 60.00, Sample rate: 44100.00 Hz.
[Audio]: Set audio input rate to: 44100.00 Hz.
[Video]: Set video size to: 1440x1080.
[Video]: Using HW render, vulkan driver forced.
[Vulkan]: Vulkan dynamic library loaded.
[Vulkan]: Found vulkan context: "vk_android".
[Vulkan]: Detecting screen resolution: 0x0.
[Vulkan]: Created Android surface: 201666369632
[Vulkan]: Got HW context negotiation interface 2.
[Vulkan]: Found GPU at index 0: "NVIDIA Tegra X1 (nvgpu)".
[Vulkan]: Using GPU index 0.
[Vulkan]: Using semaphores for WSI acquire.
[Vulkan]: Using GPU: "NVIDIA Tegra X1 (nvgpu)".
[Vulkan]: Got 4 swapchain images.
[Android]: Native window size: 1280 x 720.
[Vulkan]: Using resolution 1280x720.
[Vulkan]: Using BGRA8888 format.
[Vulkan]: Loading stock shader.
[Joypad]: Found joypad driver: "android".
[Video]: Found display server: "android".
[Environ]: SET_INPUT_DESCRIPTORS:
[OpenSL]: Requested audio latency: 128 ms.
[OpenSL]: Setting audio latency: Block size = 4096, Blocks = 6, Total = 24576 ...
[Audio]: Started synchronous audio driver.
[Display]: Found display driver: "vulkan".
[Environ]: SET_SUBSYSTEM_INFO.
[Playlist]: Loading history file: "/storage/emulated/0/Android/data/com.retroarch.aarch64/files/content_history.lpl".
[Playlist]: Loading history file: "/storage/emulated/0/Android/data/com.retroarch.aarch64/files/content_music_history.lpl".
[Playlist]: Loading history file: "/storage/emulated/0/Android/data/com.retroarch.aarch64/files/content_image_history.lpl".
[Playlist]: Loading favorites file: "/storage/emulated/0/Android/data/com.retroarch.aarch64/files/content_favorites.lpl".
[Environ]: SYSTEM_DIRECTORY: "/storage/emulated/0/RetroArch/system".
mupen64plus: Game controller 0 (Standard controller) has a Memory pak plugged in
mupen64plus: Game controller 1 (Standard controller) has nothing plugged in
mupen64plus: Game controller 2 (Standard controller) has nothing plugged in
mupen64plus: Game controller 3 (Standard controller) has nothing plugged in
mupen64plus: Using CIC type X102
Using 4 sync frames for parallel-RDP.
VK_EXT_external_memory_host is not supported by this device. Application might run slower because of this.
paraLLEl-RDP: Using RDRAM size of 8388608 bytes.
This device probably does not support 8/16-bit storage. Make sure you're using up-to-date drivers!