hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.2k stars 2.17k forks source link

Vulkan DEVICE_LOST on mobile - let's try to find some patterns #17426

Open hrydgard opened 1 year ago

hrydgard commented 1 year ago

This doesn't fit in the mystery thread, so making it its own issue.

There's no good way to statistically aggregate these in the dashboard. Might later look into using the Play Console API to fetch these, but in the meantime I'm just gonna paste a bunch of device losses here. Maybe some game triggers something, or some driver version is exceptionally bad.

Initial learnings:

Sample attributes:
motorola caprip (moto g(30))
Android 12 (SDK 31)
Version: 115020000 (1.15.2)Occurred: 2 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10345 Star Wars: The Force Unleashed) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
OPPO OP4F11L1 (CPH2219)
Android 13 (SDK 33)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (NPHG00092 God of War™: Ghost of Sparta) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
realme RMX2185 (realme C11)
Android 10 (SDK 29)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (ULUS10466 TEKKEN 6) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY
*

Sample attributes:
samsung m23xq (Galaxy F23 5G)
Android 13 (SDK 33)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (UCUS98737 God of War®: Ghost of Sparta) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan
*

Sample attributes:
realme RED8C1L1 (realme 9i)][Android 12 (SDK 31)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (NPJB40001 MONSTER HUNTER PORTABLE 3rd HD Ver.) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
OPPO OP4B80L1 (A9 2020)
Android 11 (SDK 30)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10509 METAL GEAR SOLID PEACE WALKER) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan
*

Sample attributes:
[Lenovo X606F (Lenovo Tab M10 FHD Plus)](#)
[Android 10 (SDK 29)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (ULES01347 Grand Theft Auto: Chinatown Wars) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY
*

Sample attributes:
OPPO OP4F2F (CPH2185)
Android 10 (SDK 29)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (ULUS10582 NARUTO SHIPPUDEN: Ultimate Ninja Impact) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY

Sample attributes:
[motorola astro (motorola one fusion)](#)
[Android 11 (SDK 30)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10021 Midnight Club 3: DUB Edition) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan
*

Sample attributes:
vivo 2026 (V2043)
Android 11 (SDK 30)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (ULUS10155 Lego Star Wars II: The Original Trilogy) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY
**

Sample attributes:
vivo 2015 (vivo 2015)
Android 10 (SDK 29)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (NPHG00092 God of War™: Ghost of Sparta) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY
***

Sample attributes:
[Redmi lime (Redmi 9T)](#)
[Android 12 (SDK 31)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10563 GODS EATER BURST) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan
*

Sample attributes:
[samsung a23 (Galaxy A23)](#)
[Android 12 (SDK 31)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (EQGAMER4 PES FL 2022) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
[POCO vayu (POCO X3 Pro)](#)
[Android 12 (SDK 31)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10466 TEKKEN 6) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
[OPPO OP533FL1 (OPPO Reno7/F21 Pro)](#)
[Android 13 (SDK 33)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (ULUS10490 Grand Theft Auto: Chinatown Wars) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan

Sample attributes:
[OPPO OP4F2F (CPH2185)](#)
[Android 10 (SDK 29)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:159): [res == VK_SUCCESS] (ULUS10582 NARUTO SHIPPUDEN: Ultimate Ninja Impact) vkEndCommandBuffer failed (main)! result=VK_ERROR_OUT_OF_DEVICE_MEMORY

Sample attributes:
[motorola guamp (moto g(9) play)](#)
[Android 11 (SDK 30)](#)
Version: 115020000 (1.15.2)Occurred: 3 hours ago
Thread
(VulkanFrameData.cpp:SubmitPending:209): [false] (NPEH00029 Assassin's Creed: Bloodlines™) Lost the Vulkan device in vkQueueSubmit! If this happens again, switch Graphics Backend away from Vulkan
unknownbrackets commented 1 year ago

VK_ERROR_OUT_OF_DEVICE_MEMORY is surprisingly common. Wonder if we have a leak.

Definitely possible, in some way. Might also be settings/HD textures/cache ISO in RAM, etc. Reporting has historically often shown people running out of VRAM (and when reporting happens, I get some aggregated statistical data about config settings used, etc.)

I've previously felt like people were often using settings/texture packs beyond the limits of their device based on reports, but some of these devices should have like 6GB of unified RAM, which doesn't seem so bad. Most of the reports I'd seen were <= 2GB VRAM situations.

VMA has ways to interrogate memory usage, right? Maybe we should have a common func that is called whenever we get VK_ERROR_OUT_OF_DEVICE_MEMORY anywhere that:

-[Unknown]