libMoltenVK Black Screen on Mac (x86, Radeon Pro 560 4 GB)
Game or games this happens in
None
What area of the game / PPSSPP
Mac OS big sur iMac (Retina 4K, 21.5-inch, 2017)
PPSSPP Latest Action/Git version black screen of PPSSPP/Emu menu but if I replease the libMoltenVK in the app contents framework folder to release version https://github.com/hrydgard/ppsspp/releases/tag/v1.12.3 it works fine I can see the ppsspp menu and play games etc
I want to use the latest git version but evey time I have to replace the older libMoltenVK to work ok
What should happen
It shold show menu but shows black screen
Logs
No response
Platform
macOS
Mobile phone model or graphics card
Retina 4K, 21.5-inch, 2017 / Radeon Pro 560 4 GB
PPSSPP version affected
Every Git version after 1.12.3 (oct/release version)
Last working version
v1.12.3 (oct/release version/
Graphics backend (3D API)
Vulkan
Checklist
- [X] Test in the latest git build in case it's already fixed.
- [X] Search for other reports of the same issue.
- [ ] Try resetting settings or older versions and include if the issue is related.
- [ ] Try without any cheats and without loading any save states.
- [ ] Include logs or screenshots of issue.
I have the same problem. Has anyone found a solution?
Don't really know what might be going on here. Will try to look into it in the near future.
On Macbook Air M1, this problem doesn't happen, for whatever reason...
I'm having a similar issue on two machines running Monterey 12.6.1. Problem is present on all versions from 1.13 to 1.14.1.
The last fully functioning version is 1.12.3. Also, swapping the 1.12.3 libMoltenVK dylib into 1.14.1 does not solve the issue. However, launching 1.12.3 and then switching the graphics backend mode to OpenGL instead of Vulkan then allows 1.14.1 to operate correctly.
My systems are as follows: MacBook Pro 2019 with i9 processor and AMD Radeon Pro 5500M 8 GB. Hackintosh running an i9-10900 with 128GB memory and a Radeon 5700XT.
Both machines are running Monterey 12.6.1.
Issue #15744 may be a duplicate of this issue.
Does switching to OpenGL only help because it's then using OpenGL (and not MoltenVK)? Or do you mean that after it starts it OpenGL, it can switch to Vulkan/MoltenVK and works?
From the duplicate, it seems like this is happening only on Intel based macOS. Maybe there's a problem with the MoltenVK dylib and it is only setup properly for M1?
The last MoltenVK update was in #15186, over a year ago. Maybe simply updating to the latest would help.
Does it help to use a newer one? I assume the SDK from https://www.lunarg.com/vulkan-sdk/ contains it for macOS, or maybe you could use https://www.lwjgl.org/browse/nightly/macosx/x64. Or else you could build a fresh one: https://github.com/KhronosGroup/MoltenVK#building
-[Unknown]
Does switching to OpenGL only help because it's then using OpenGL (and not MoltenVK)? Or do you mean that after it starts it OpenGL, it can switch to Vulkan/MoltenVK and works?
Switching to OpenGL and then back to Vulkan/MoltenVK does not help, no.
From the duplicate, it seems like this is happening only on Intel based macOS. Maybe there's a problem with the MoltenVK dylib and it is only setup properly for M1?
I do not have access to an M1 mac at the moment, but I will in about a week. I will test on one of those.
Does it help to use a newer one? I assume the SDK from https://www.lunarg.com/vulkan-sdk/ contains it for macOS, or maybe you could use https://www.lwjgl.org/browse/nightly/macosx/x64. Or else you could build a fresh one: https://github.com/KhronosGroup/MoltenVK#building
I've just now tested by swapping in the libMoltenVK.dylib file from https://www.lwjgl.org/browse/nightly/macosx/x64 into the 1.14.1 app. It unfortunately did not help the problem.
It might be an AMD exclusive issue when using PPSSPP with MoltenVK
Vulkan backend with the following versions: 1.14.3-28-gcd535263c MacOS 1.14.4 Windows + wineskin
Both resulted in a black screen on AMD RX580, but not Intel UHD 617, with Monterey 12.6.2
Despite the black screen, emulation seems to function otherwise, game audio would play if one manages to fumble/click to a game launch
Edit: Bit of an update Using wineskin with https://github.com/The-Wineskin-Project/MoltenVK/releases/tag/v1.1.11 (macos-1.1.11-gc2e9f1d-pr1678-pr1735-UE4hack-zeroinit.tar.xz), 1.12.3 windows works, but black screen on 1.13 and 1.14.4 windows
So some Vulkan backend changes on PPSSPP after 1.12.3 seems to have broken Moltenvk+AMD
That might be when we removed the hack that made AMD use a single thread on Vulkan... but there are plenty of other changes, our releases tend to have a lot of improvements, bugfixes, speedups, etc. in them. It'd be better to try more builds, but I realize those are a bit gone from the buildbot now.
-[Unknown]
Bisect attempt on AMD RX580
Downgrading moltenvk?
- fee3b7144952fbfa4f90b33387e00fac357678c2 is when the black screen is first observed, but at this point one can still get video back by downgrading moltenvk to the last commit
- 0c3c89a0939d4bd36030977d9de6f6472d777bdc, one commit before, would not black screen, but would backscreen once mvk is updated to fee3b7144952fbfa4f90b33387e00fac357678c2; it also has the same moltenvk as v1.12.3
- v1.12.3, ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7, would not black screen with it's current moltenvk nor with mvk in fee3b7144952fbfa4f90b33387e00fac357678c2
- v1.13.2, 9fe6338e3bf397f8a009a51a282c139dfa180eb6, would black screen with it's current moltenvk, but works fine with moltenvk from v1.12.3
- v1.14, aad5d7542e1f8e805121df4713317eda3ba9eb02, would black screen with it's current moltenvk, splash screen would flash then black screen with moltenvk from v1.12.3
First version that downgrading mvk does not work (black screen/flashing)
v1.13.2 .. v1.14
- d66c5c11c1532c2850552e8eb2095994021d055c freezes with vulkan backend
- 97ca40530b5c87d56dccb0ffd17d569b0cd79033 behaves like v1.14
First version that would blackscreen with newer moltenvk
v1.12.3 .. fee3b7144952fbfa4f90b33387e00fac357678c2
- v1.14.4 and fee3b7144952fbfa4f90b33387e00fac357678c2 has the same moltenvk library, it was not changed since
- 8f29d9542c729d04db44d6974ab5f401ffe95515 shows a black screen with updated moltenvk
- 8f9ce03a8d61ea7e384e4a6ca403dc6ff522699a .. 2cbadefb29e4c8637d5f8fd4a8bd737872bc689e does not build due to linking error, vulkan related undefined symbols
- eceb691f92aa52da998fa12bbbbd8e55e653d716 works fine with moltenvk from fee3b7144952fbfa4f90b33387e00fac357678c2
I've just merged a new MoltenVK upgrade, #17839 .
If it doesn't help, please try setting "Buffer graphics commands" to off, since that will prevent use of the extra thread, which might be a factor.
I'm going to assume that the upgrade fixed it unless reported otherwise, closing.
@hrydgard When I select Vulkan, there is a black screen. This problem has not been fixed
macbook pro 2016 (radeon pro 455)
I really don't know what is going on there, I don't have an AMD macbook to investigate on and it's not so easy to find one these days.
If you run PPSSPP from the command line, do you see anything interesting in the log output?
(You can do this by navigating to the folder with the app, and running this command:
build/PPSSPPSDL.app/Contents/MacOS/PPSSPPSDL
I really don't know what is going on there, I don't have an AMD macbook to investigate on and it's not so easy to find one these days.
If you run PPSSPP from the command line, do you see anything interesting in the log output?
(You can do this by navigating to the folder with the app, and running this command:
build/PPSSPPSDL.app/Contents/MacOS/PPSSPPSDL
Here it is, I censored personal information with ***.
Terminal Output
~ % /*****/***/Applications/PPSSPPSDL.app/Contents/MacOS/PPSSPPSDL
VulkanMayBeAvailable: Device allowed ('SDL:macOS')
VulkanMayBeAvailable: Library loaded ('@executable_path/../Frameworks/libMoltenVK.dylib')
VulkanMayBeAvailable: Enumerating instance extensions
VulkanMayBeAvailable: Instance extension count: 14
VulkanMaybeAvailable: Instance extension found: VK_KHR_device_group_creation (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_fence_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_memory_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_semaphore_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_physical_device_properties2 (00000002)
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_surface_capabilities2 (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_surface (00000019)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_report (0000000a)
VulkanMaybeAvailable: Instance extension found: VK_EXT_debug_utils (00000002)
VulkanMaybeAvailable: Instance extension found: VK_EXT_metal_surface (00000001)
VulkanMayBeAvailable: Found platform surface extension 'VK_EXT_metal_surface'
VulkanMayBeAvailable: Calling vkCreateInstance
[mvk-info] MoltenVK version 1.2.4, supporting Vulkan version 1.2.250.
The following 87 Vulkan extensions are supported:
VK_KHR_16bit_storage v1
VK_KHR_8bit_storage v1
VK_KHR_bind_memory2 v1
VK_KHR_copy_commands2 v1
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_depth_stencil_resolve v1
VK_KHR_descriptor_update_template v1
VK_KHR_device_group v4
VK_KHR_device_group_creation v1
VK_KHR_driver_properties v1
VK_KHR_dynamic_rendering v1
VK_KHR_external_fence v1
VK_KHR_external_fence_capabilities v1
VK_KHR_external_memory v1
VK_KHR_external_memory_capabilities v1
VK_KHR_external_semaphore v1
VK_KHR_external_semaphore_capabilities v1
VK_KHR_fragment_shader_barycentric v1
VK_KHR_get_memory_requirements2 v1
VK_KHR_get_physical_device_properties2 v2
VK_KHR_get_surface_capabilities2 v1
VK_KHR_imageless_framebuffer v1
VK_KHR_image_format_list v1
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_map_memory2 v1
VK_KHR_multiview v1
VK_KHR_portability_subset v1
VK_KHR_push_descriptor v2
VK_KHR_relaxed_block_layout v1
VK_KHR_sampler_mirror_clamp_to_edge v3
VK_KHR_sampler_ycbcr_conversion v14
VK_KHR_separate_depth_stencil_layouts v1
VK_KHR_shader_draw_parameters v1
VK_KHR_shader_float_controls v4
VK_KHR_shader_float16_int8 v1
VK_KHR_shader_subgroup_extended_types v1
VK_KHR_spirv_1_4 v1
VK_KHR_storage_buffer_storage_class v1
VK_KHR_surface v25
VK_KHR_swapchain v70
VK_KHR_swapchain_mutable_format v1
VK_KHR_timeline_semaphore v2
VK_KHR_uniform_buffer_standard_layout v1
VK_KHR_variable_pointers v1
VK_EXT_debug_marker v4
VK_EXT_debug_report v10
VK_EXT_debug_utils v2
VK_EXT_descriptor_indexing v2
VK_EXT_external_memory_host v1
VK_EXT_fragment_shader_interlock v1
VK_EXT_hdr_metadata v2
VK_EXT_host_query_reset v1
VK_EXT_image_robustness v1
VK_EXT_inline_uniform_block v1
VK_EXT_memory_budget v1
VK_EXT_metal_objects v1
VK_EXT_metal_surface v1
VK_EXT_pipeline_creation_cache_control v3
VK_EXT_post_depth_coverage v1
VK_EXT_private_data v1
VK_EXT_robustness2 v1
VK_EXT_sample_locations v1
VK_EXT_scalar_block_layout v1
VK_EXT_separate_stencil_usage v1
VK_EXT_shader_stencil_export v1
VK_EXT_shader_viewport_index_layer v1
VK_EXT_subgroup_size_control v2
VK_EXT_surface_maintenance1 v1
VK_EXT_swapchain_colorspace v4
VK_EXT_swapchain_maintenance1 v1
VK_EXT_texel_buffer_alignment v1
VK_EXT_texture_compression_astc_hdr v1
VK_EXT_vertex_attribute_divisor v3
VK_AMD_gpu_shader_half_float v2
VK_AMD_negative_viewport_height v1
VK_AMD_shader_image_load_store_lod v1
VK_AMD_shader_trinary_minmax v1
VK_IMG_format_pvrtc v1
VK_INTEL_shader_integer_functions2 v1
VK_GOOGLE_display_timing v1
VK_MVK_macos_surface v3
VK_MVK_moltenvk v37
VK_NV_fragment_shader_barycentric v1
VK_NV_glsl_shader v1
[mvk-info] GPU device:
model: AMD Radeon Pro 455
type: Discrete
vendorID: 0x1002
deviceID: 0x67ef
pipelineCacheUUID: 4C6BFBEB-0C07-07D2-0000-000000000000
supports the following Metal Versions, GPU's and Feature Sets:
Metal Shading Language 2.4
GPU Family Mac 2
GPU Family Mac 1
GPU Family Common 3
GPU Family Common 2
GPU Family Common 1
macOS GPU Family 2 v1
macOS GPU Family 1 v4
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
macOS Read-Write Texture Tier 2
[mvk-info] GPU device:
model: Intel(R) HD Graphics 530
type: Integrated
vendorID: 0x8086
deviceID: 0x191b
pipelineCacheUUID: 4C6BFBEB-0C07-07D2-0000-000000000000
supports the following Metal Versions, GPU's and Feature Sets:
Metal Shading Language 2.4
GPU Family Mac 2
GPU Family Mac 1
GPU Family Common 3
GPU Family Common 2
GPU Family Common 1
macOS GPU Family 2 v1
macOS GPU Family 1 v4
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.0.0, as requested by app, with the following 2 Vulkan extensions enabled:
VK_KHR_surface v25
VK_EXT_metal_surface v1
VulkanMayBeAvailable: Vulkan test instance created successfully.
VulkanMayBeAvailable: Eligible device found: 'AMD Radeon Pro 455'
VulkanMayBeAvailable: Eligible device found: 'Intel(R) HD Graphics 530'
VulkanMayBeAvailable: Found working Vulkan API!
VulkanMayBeAvailable: Destroying instance
DEBUG: Vulkan might be available.
Info: We compiled against SDL version 2.26.5 and we are linking against SDL version 2.26.5. :)
ThreadManager::Init(compute threads: 8, all: 16)
53:46:089 Core/Config.cpp:329 I[G3D]: Longest display side: 1680 pixels. Choosing scale 2
53:46:099 UI/BackgroundAudio.cpp:521 E[SYSTEM]: Failed to load the default sample for UI sound 5
53:46:099 UI/BackgroundAudio.cpp:521 E[SYSTEM]: Failed to load the default sample for UI sound 6
[mvk-info] MoltenVK version 1.2.4, supporting Vulkan version 1.2.250.
The following 87 Vulkan extensions are supported:
VK_KHR_16bit_storage v1
VK_KHR_8bit_storage v1
VK_KHR_bind_memory2 v1
VK_KHR_copy_commands2 v1
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_depth_stencil_resolve v1
VK_KHR_descriptor_update_template v1
VK_KHR_device_group v4
VK_KHR_device_group_creation v1
VK_KHR_driver_properties v1
VK_KHR_dynamic_rendering v1
VK_KHR_external_fence v1
VK_KHR_external_fence_capabilities v1
VK_KHR_external_memory v1
VK_KHR_external_memory_capabilities v1
VK_KHR_external_semaphore v1
VK_KHR_external_semaphore_capabilities v1
VK_KHR_fragment_shader_barycentric v1
VK_KHR_get_memory_requirements2 v1
VK_KHR_get_physical_device_properties2 v2
VK_KHR_get_surface_capabilities2 v1
VK_KHR_imageless_framebuffer v1
VK_KHR_image_format_list v1
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_map_memory2 v1
VK_KHR_multiview v1
VK_KHR_portability_subset v1
VK_KHR_push_descriptor v2
VK_KHR_relaxed_block_layout v1
VK_KHR_sampler_mirror_clamp_to_edge v3
VK_KHR_sampler_ycbcr_conversion v14
VK_KHR_separate_depth_stencil_layouts v1
VK_KHR_shader_draw_parameters v1
VK_KHR_shader_float_controls v4
VK_KHR_shader_float16_int8 v1
VK_KHR_shader_subgroup_extended_types v1
VK_KHR_spirv_1_4 v1
VK_KHR_storage_buffer_storage_class v1
VK_KHR_surface v25
VK_KHR_swapchain v70
VK_KHR_swapchain_mutable_format v1
VK_KHR_timeline_semaphore v2
VK_KHR_uniform_buffer_standard_layout v1
VK_KHR_variable_pointers v1
VK_EXT_debug_marker v4
VK_EXT_debug_report v10
VK_EXT_debug_utils v2
VK_EXT_descriptor_indexing v2
VK_EXT_external_memory_host v1
VK_EXT_fragment_shader_interlock v1
VK_EXT_hdr_metadata v2
VK_EXT_host_query_reset v1
VK_EXT_image_robustness v1
VK_EXT_inline_uniform_block v1
VK_EXT_memory_budget v1
VK_EXT_metal_objects v1
VK_EXT_metal_surface v1
VK_EXT_pipeline_creation_cache_control v3
VK_EXT_post_depth_coverage v1
VK_EXT_private_data v1
VK_EXT_robustness2 v1
VK_EXT_sample_locations v1
VK_EXT_scalar_block_layout v1
VK_EXT_separate_stencil_usage v1
VK_EXT_shader_stencil_export v1
VK_EXT_shader_viewport_index_layer v1
VK_EXT_subgroup_size_control v2
VK_EXT_surface_maintenance1 v1
VK_EXT_swapchain_colorspace v4
VK_EXT_swapchain_maintenance1 v1
VK_EXT_texel_buffer_alignment v1
VK_EXT_texture_compression_astc_hdr v1
VK_EXT_vertex_attribute_divisor v3
VK_AMD_gpu_shader_half_float v2
VK_AMD_negative_viewport_height v1
VK_AMD_shader_image_load_store_lod v1
VK_AMD_shader_trinary_minmax v1
VK_IMG_format_pvrtc v1
VK_INTEL_shader_integer_functions2 v1
VK_GOOGLE_display_timing v1
VK_MVK_macos_surface v3
VK_MVK_moltenvk v37
VK_NV_fragment_shader_barycentric v1
VK_NV_glsl_shader v1
[mvk-info] GPU device:
model: AMD Radeon Pro 455
type: Discrete
vendorID: 0x1002
deviceID: 0x67ef
pipelineCacheUUID: 4C6BFBEB-0C07-07D2-0000-000000000000
supports the following Metal Versions, GPU's and Feature Sets:
Metal Shading Language 2.4
GPU Family Mac 2
GPU Family Mac 1
GPU Family Common 3
GPU Family Common 2
GPU Family Common 1
macOS GPU Family 2 v1
macOS GPU Family 1 v4
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
macOS Read-Write Texture Tier 2
[mvk-info] GPU device:
model: Intel(R) HD Graphics 530
type: Integrated
vendorID: 0x8086
deviceID: 0x191b
pipelineCacheUUID: 4C6BFBEB-0C07-07D2-0000-000000000000
supports the following Metal Versions, GPU's and Feature Sets:
Metal Shading Language 2.4
GPU Family Mac 2
GPU Family Mac 1
GPU Family Common 3
GPU Family Common 2
GPU Family Common 1
macOS GPU Family 2 v1
macOS GPU Family 1 v4
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.2.0, as requested by app, with the following 4 Vulkan extensions enabled:
VK_KHR_get_physical_device_properties2 v2
VK_KHR_surface v25
VK_EXT_metal_surface v1
VK_EXT_swapchain_colorspace v4
[mvk-info] Vulkan semaphores using MTLEvent.
[mvk-info] Created VkDevice to run on GPU AMD Radeon Pro 455 with the following 10 Vulkan extensions enabled:
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_depth_stencil_resolve v1
VK_KHR_get_memory_requirements2 v1
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_multiview v1
VK_KHR_swapchain v70
VK_EXT_shader_stencil_export v1
[mvk-info] Created 3 swapchain images with initial size (555, 221) and contents scale 1.0 for screen Built-in Retina Display.
loading control pad mappings from gamecontrollerdb.txt: SUCCESS!
[mvk-info] Created 3 swapchain images with initial size (555, 221) and contents scale 1.0 for screen Built-in Retina Display.
/Users/****/Documents/****.iso
/Users/****/Documents/****.iso
Vulkan submission thread joined. Frame=0
Vulkan compiler thread joined.
Backbuffers destroyed
VulkanRenderManager destructor
VulkanQueueRunner::DestroyDeviceObjects
VulkanContext::DestroyDevice (performing deletes)
Leaving main
~ %
Hm, that's odd, it all looks pretty normal, don't see any errors.
What if you go into ~/.config/ppsspp/PSP/SYSTEM/ppsspp.ini, and change all the levels under [Log] to 4, and the enables to True, then run again?
Hm, that's odd, it all looks pretty normal, don't see any errors.
What if you go into ~/.config/ppsspp/PSP/SYSTEM/ppsspp.ini, and change all the levels under [Log] to 4, and the enables to True, then run again?