Skip to content

Crash Fix#18127

Draft
freakmaxi wants to merge 3 commits intoRPCS3:masterfrom
freakmaxi:Crash-Fix
Draft

Crash Fix#18127
freakmaxi wants to merge 3 commits intoRPCS3:masterfrom
freakmaxi:Crash-Fix

Conversation

@freakmaxi
Copy link
Contributor

This fixes a crash that occurs on unsupported (or falsely detected as supported) GPUs when Allow Host GPU Labels (Experimental) is enabled. In my case, it happens on an Apple MacBook with Apple Silicon.

RPCS3: RSX [0x0014afc]: SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT) (in file /Users/tunacelik/Projects/rpcs3/rpcs3/Emu/RSX/VK/vkutils/buffer_object.cpp:111[:64], in function 'vk::buffer::buffer(const vk::render_device &, VkBufferUsageFlags, void *, u64)') (errno=60=Operation timed out) (in file /Users/tunacelik/Projects/rpcs3/rpcs3/Emu/RSX/VK/vkutils/shared.cpp:205[:4], in function 'void vk::die_with_error(VkResult, std::string, std::source_location)') (errno=60=Operation timed out)

@AniLeo
Copy link
Member

AniLeo commented Jan 30, 2026

Doesn't make sense. You get VK_ERROR_FEATURE_NOT_PRESENT from the driver. The driver is properly reporting it doesn't support something. Just check for the feature and disable the setting if it is not supported.

@freakmaxi
Copy link
Contributor Author

Doesn't make sense. You get VK_ERROR_FEATURE_NOT_PRESENT from the driver. The driver is properly reporting it doesn't support something. Just check for the feature and disable the setting if it is not supported.

Yes and no. The emulator incorrectly detects my GPU as supported and continues execution, but because this is a false positive, it crashes. My fix prevents that false positive and, even if the option is enabled, disables it on the fly to avoid the crash.

@schm1dtmac
Copy link
Contributor

schm1dtmac commented Jan 31, 2026

The PR seems like crap to me, testing on latest unaltered master (which uses MoltenVK 1.4.1 with private Metal API support exposed), the 'Allow Host GPU Labels' option works perfectly fine and doesn't crash on an M4 Pro MBP on macOS 15.7.4. We already do an extension support check here: https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/vkutils/device.cpp#L123, adding a bloated & unnecessary test-case to check for support is the complete wrong way to do things here. If some older AS hardware really needs this feature disabled, raise it up with MoltenVK and not us.

@freakmaxi
Copy link
Contributor Author

The PR seems like crap to me, testing on latest unaltered master (which uses MoltenVK 1.4.1 with private Metal API support exposed), the 'Allow Host GPU Labels' option works perfectly fine and doesn't crash on an M4 Pro MBP on macOS 15.7.4. We already do an extension support check here: https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/vkutils/device.cpp#L123, adding a bloated & unnecessary test-case to check for support is the complete wrong way to do things here. If some older AS hardware really needs this feature disabled, raise it up with MoltenVK and not us.

I tested this on four different MacBooks using the official release build, and it crashes on all of them:

  • Apple M1
  • Apple M3 Pro
  • Apple M3 Max
  • Apple M4

So whatever is working on your M4 Pro / macOS 15.7.4 / MoltenVK 1.4.1 (private Metal API exposed) setup is not representative of what we’re seeing in the wild.

Also, calling the PR “crap” is not helpful. The change isn’t “bloated” for the sake of it. It’s a practical guardrail for a real, repeatable crash across multiple Apple Silicon machines. An extension support check in code doesn’t automatically mean the feature is safe/stable in every runtime scenario.

If you can point to a specific technical issue with the approach (or propose a simpler guard that still prevents the crash on M1/M3/M4), I’m happy to adjust it but dismissing it outright doesn’t match the actual behavior we’re observing.

const u64 vram_allocation_limit = g_cfg.video.vk.vram_allocation_limit * 0x100000ull;
memory_map.device_local_total_bytes = std::min(memory_map.device_local_total_bytes, vram_allocation_limit);

// Runtime validation for external_memory_host - some drivers advertise but don't fully support it
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a driver bug. Please report to upstream.
For actual internal issues like general incompatibility (quirks) that is handled in rpcs3 layer not the driver wrapper layer. Consider vkuitls to not be part of the emulator if you need a mental model to work with. See VKHelpers and VKGSRender for quirks handling.

  1. https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/VKGSRender.cpp#L672-L720
  2. https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/VKHelpers.cpp#L86-L154

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In emergency situations (lets say AMD or NV have a driver regression) we allow turning off the feature on pgpu status and reporting it to the vendor. You can turn off the feature for apple here using a basic preprocessor macro: https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/vkutils/device.cpp#L123

To clarify - this piece of code here is not correct vulkan behavior by any means. If the spec means nothing we would have to check every extension like this.

@schm1dtmac
Copy link
Contributor

The PR seems like crap to me, testing on latest unaltered master (which uses MoltenVK 1.4.1 with private Metal API support exposed), the 'Allow Host GPU Labels' option works perfectly fine and doesn't crash on an M4 Pro MBP on macOS 15.7.4. We already do an extension support check here: https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/vkutils/device.cpp#L123, adding a bloated & unnecessary test-case to check for support is the complete wrong way to do things here. If some older AS hardware really needs this feature disabled, raise it up with MoltenVK and not us.

I tested this on four different MacBooks using the official release build, and it crashes on all of them:

  • Apple M1
  • Apple M3 Pro
  • Apple M3 Max
  • Apple M4

So whatever is working on your M4 Pro / macOS 15.7.4 / MoltenVK 1.4.1 (private Metal API exposed) setup is not representative of what we’re seeing in the wild.

Also, calling the PR “crap” is not helpful. The change isn’t “bloated” for the sake of it. It’s a practical guardrail for a real, repeatable crash across multiple Apple Silicon machines. An extension support check in code doesn’t automatically mean the feature is safe/stable in every runtime scenario.

If you can point to a specific technical issue with the approach (or propose a simpler guard that still prevents the crash on M1/M3/M4), I’m happy to adjust it but dismissing it outright doesn’t match the actual behavior we’re observing.

I don't really have anything to suggest beyond: post full & complete logs for the exact crashes you're seeing, with the games in question stated explicitly. Testing the latest master build (unmodified, I'm not running a fancy setup here, MVK 1.4.1 w/privateapi is standard in the current releases) I have been unable to repro this behaviour in GTA IV and God of War 3 on my hardware.

@kd-11
Copy link
Contributor

kd-11 commented Jan 31, 2026

The emulator incorrectly detects my GPU as supported and continues execution, but because this is a false positive, it crashes.

I think you have edited your files somehow, this should be impossible. If it is incorrectly detecting your GPU, why not fix the GPU detection? We detect apple devices by driver, not chip class so anything running on moltenvk would be classified correctly. As for host GPU labels not working correctly, it would have made more sense to report it as a bug.

@kd-11
Copy link
Contributor

kd-11 commented Jan 31, 2026

Btw wouldn't simply setting "supports_passthrough_dma = false" here fix it?https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/VK/VKGSRender.cpp#L709

EDIT: Nvm, it wouldn't if it crashes on startup. That is a driver issue or incorrect library being used somehow.

@schm1dtmac
Copy link
Contributor

@kd-11 I did a test since I had a little theory as to what was up: swapped in the old MoltenVK 1.3.0 ICD into the latest master build and boom, got the same feature error, whilst the stock 1.4.1 w/privateapi ICD works fine. Clearly @freakmaxi somehow is having an older MoltenVK version load into their builds, either via custom building with the wrong MVK version, or by having an older Vulkan SDK/MVK version installed elsewhere on the system (homebrew or otherwise).

@kd-11
Copy link
Contributor

kd-11 commented Jan 31, 2026

@freakmaxi Please confirm if using the 1.4 ICD resolves the problem.

@freakmaxi
Copy link
Contributor Author

Let me share the full log with you, so you can identify the problem

Debugger: 0
objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /opt/homebrew/Cellar/molten-vk/1.4.0/lib/libMoltenVK.dylib (0x16833e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed.
objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /usr/local/lib/libMoltenVK.dylib (0x16938e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed.
[mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334.
The following 153 Vulkan extensions are supported:
VK_KHR_16bit_storage v1
VK_KHR_8bit_storage v1
VK_KHR_bind_memory2 v1
VK_KHR_buffer_device_address v1
VK_KHR_calibrated_timestamps v1
VK_KHR_copy_commands2 v1
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_deferred_host_operations v4
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_dynamic_rendering_local_read 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_format_feature_flags2 v2
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_global_priority v1
VK_KHR_image_format_list v1
VK_KHR_imageless_framebuffer v1
VK_KHR_incremental_present v2
VK_KHR_index_type_uint8 v1
VK_KHR_line_rasterization v1
VK_KHR_load_store_op_none v1
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_maintenance4 v2
VK_KHR_maintenance5 v1
VK_KHR_maintenance6 v1
VK_KHR_maintenance7 v1
VK_KHR_maintenance8 v1
VK_KHR_maintenance9 v1
VK_KHR_map_memory2 v1
VK_KHR_multiview v1
VK_KHR_portability_subset v1
VK_KHR_present_id v1
VK_KHR_present_id2 v1
VK_KHR_present_wait v1
VK_KHR_present_wait2 v1
VK_KHR_push_descriptor v2
VK_KHR_relaxed_block_layout v1
VK_KHR_robustness2 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_expect_assume v1
VK_KHR_shader_float_controls v4
VK_KHR_shader_float_controls2 v1
VK_KHR_shader_float16_int8 v1
VK_KHR_shader_fma v1
VK_KHR_shader_integer_dot_product v1
VK_KHR_shader_maximal_reconvergence v1
VK_KHR_shader_non_semantic_info v1
VK_KHR_shader_quad_control v1
VK_KHR_shader_relaxed_extended_instruction v1
VK_KHR_shader_subgroup_extended_types v1
VK_KHR_shader_subgroup_rotate v2
VK_KHR_shader_subgroup_uniform_control_flow v1
VK_KHR_shader_terminate_invocation v1
VK_KHR_spirv_1_4 v1
VK_KHR_storage_buffer_storage_class v1
VK_KHR_surface v25
VK_KHR_surface_maintenance1 v1
VK_KHR_surface_protected_capabilities v1
VK_KHR_swapchain v70
VK_KHR_swapchain_maintenance1 v1
VK_KHR_swapchain_mutable_format v1
VK_KHR_synchronization2 v1
VK_KHR_timeline_semaphore v2
VK_KHR_uniform_buffer_standard_layout v1
VK_KHR_variable_pointers v1
VK_KHR_vertex_attribute_divisor v1
VK_KHR_vulkan_memory_model v3
VK_KHR_zero_initialize_workgroup_memory v1
VK_EXT_4444_formats v1
VK_EXT_buffer_device_address v2
VK_EXT_calibrated_timestamps v2
VK_EXT_debug_marker v4
VK_EXT_debug_report v10
VK_EXT_debug_utils v2
VK_EXT_depth_clip_control v1
VK_EXT_descriptor_indexing v2
VK_EXT_extended_dynamic_state v1
VK_EXT_extended_dynamic_state2 v1
VK_EXT_extended_dynamic_state3 v2
VK_EXT_external_memory_host v1
VK_EXT_external_memory_metal v1
VK_EXT_fragment_shader_interlock v1
VK_EXT_global_priority v2
VK_EXT_global_priority_query v1
VK_EXT_hdr_metadata v3
VK_EXT_headless_surface v1
VK_EXT_host_image_copy v1
VK_EXT_host_query_reset v1
VK_EXT_image_2d_view_of_3d v1
VK_EXT_image_robustness v1
VK_EXT_index_type_uint8 v1
VK_EXT_inline_uniform_block v1
VK_EXT_layer_settings v2
VK_EXT_legacy_dithering v2
VK_EXT_line_rasterization v1
VK_EXT_load_store_op_none v1
VK_EXT_memory_budget v1
VK_EXT_metal_objects v2
VK_EXT_metal_surface v1
VK_EXT_non_seamless_cube_map v1
VK_EXT_pipeline_creation_cache_control v3
VK_EXT_pipeline_creation_feedback v1
VK_EXT_pipeline_robustness v1
VK_EXT_post_depth_coverage v1
VK_EXT_primitive_topology_list_restart v1
VK_EXT_private_data v1
VK_EXT_provoking_vertex 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_atomic_float v1
VK_EXT_shader_demote_to_helper_invocation v1
VK_EXT_shader_stencil_export v1
VK_EXT_shader_subgroup_ballot v1
VK_EXT_shader_subgroup_vote v1
VK_EXT_shader_viewport_index_layer v1
VK_EXT_subgroup_size_control v2
VK_EXT_surface_maintenance1 v1
VK_EXT_swapchain_colorspace v5
VK_EXT_swapchain_maintenance1 v1
VK_EXT_texel_buffer_alignment v1
VK_EXT_texture_compression_astc_hdr v1
VK_EXT_tooling_info 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_GOOGLE_display_timing v1
VK_IMG_format_pvrtc v1
VK_INTEL_shader_integer_functions2 v1
VK_MVK_macos_surface v3
VK_MVK_moltenvk v37
VK_NV_fragment_shader_barycentric v1
[mvk-info] GPU device:
model: Apple M3 Max
type: Integrated
vendorID: 0x106b
deviceID: 0x1a020209
pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000
GPU memory available: 110100 MB
GPU memory used: 0 MB
Metal Shading Language 3.2
supports the following GPU Features:
GPU Family Metal 3
GPU Family Apple 9
GPU Family Mac 2
Read-Write Texture Tier 2
[mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 1 Vulkan extensions enabled:
VK_KHR_get_physical_device_properties2 v2
RPCS3: Vulkan Device Enumeration Thread: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161
[mvk-info] Destroyed VkPhysicalDevice for GPU Apple M3 Max with 0 MB of GPU memory still allocated.
[mvk-info] Destroying VkInstance for Vulkan version 1.2.334 with 1 Vulkan extensions enabled.
RPCS3: SYS: LLVM version: 21.1.8
RPCS3: SYS: Firmware version: 4.92
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.2 LGPL version 2.1 or later
[mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334.
The following 153 Vulkan extensions are supported:
VK_KHR_16bit_storage v1
VK_KHR_8bit_storage v1
VK_KHR_bind_memory2 v1
VK_KHR_buffer_device_address v1
VK_KHR_calibrated_timestamps v1
VK_KHR_copy_commands2 v1
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_deferred_host_operations v4
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_dynamic_rendering_local_read 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_format_feature_flags2 v2
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_global_priority v1
VK_KHR_image_format_list v1
VK_KHR_imageless_framebuffer v1
VK_KHR_incremental_present v2
VK_KHR_index_type_uint8 v1
VK_KHR_line_rasterization v1
VK_KHR_load_store_op_none v1
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_maintenance4 v2
VK_KHR_maintenance5 v1
VK_KHR_maintenance6 v1
VK_KHR_maintenance7 v1
VK_KHR_maintenance8 v1
VK_KHR_maintenance9 v1
VK_KHR_map_memory2 v1
VK_KHR_multiview v1
VK_KHR_portability_subset v1
VK_KHR_present_id v1
VK_KHR_present_id2 v1
VK_KHR_present_wait v1
VK_KHR_present_wait2 v1
VK_KHR_push_descriptor v2
VK_KHR_relaxed_block_layout v1
VK_KHR_robustness2 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_expect_assume v1
VK_KHR_shader_float_controls v4
VK_KHR_shader_float_controls2 v1
VK_KHR_shader_float16_int8 v1
VK_KHR_shader_fma v1
VK_KHR_shader_integer_dot_product v1
VK_KHR_shader_maximal_reconvergence v1
VK_KHR_shader_non_semantic_info v1
VK_KHR_shader_quad_control v1
VK_KHR_shader_relaxed_extended_instruction v1
VK_KHR_shader_subgroup_extended_types v1
VK_KHR_shader_subgroup_rotate v2
VK_KHR_shader_subgroup_uniform_control_flow v1
VK_KHR_shader_terminate_invocation v1
VK_KHR_spirv_1_4 v1
VK_KHR_storage_buffer_storage_class v1
VK_KHR_surface v25
VK_KHR_surface_maintenance1 v1
VK_KHR_surface_protected_capabilities v1
VK_KHR_swapchain v70
VK_KHR_swapchain_maintenance1 v1
VK_KHR_swapchain_mutable_format v1
VK_KHR_synchronization2 v1
VK_KHR_timeline_semaphore v2
VK_KHR_uniform_buffer_standard_layout v1
VK_KHR_variable_pointers v1
VK_KHR_vertex_attribute_divisor v1
VK_KHR_vulkan_memory_model v3
VK_KHR_zero_initialize_workgroup_memory v1
VK_EXT_4444_formats v1
VK_EXT_buffer_device_address v2
VK_EXT_calibrated_timestamps v2
VK_EXT_debug_marker v4
VK_EXT_debug_report v10
VK_EXT_debug_utils v2
VK_EXT_depth_clip_control v1
VK_EXT_descriptor_indexing v2
VK_EXT_extended_dynamic_state v1
VK_EXT_extended_dynamic_state2 v1
VK_EXT_extended_dynamic_state3 v2
VK_EXT_external_memory_host v1
VK_EXT_external_memory_metal v1
VK_EXT_fragment_shader_interlock v1
VK_EXT_global_priority v2
VK_EXT_global_priority_query v1
VK_EXT_hdr_metadata v3
VK_EXT_headless_surface v1
VK_EXT_host_image_copy v1
VK_EXT_host_query_reset v1
VK_EXT_image_2d_view_of_3d v1
VK_EXT_image_robustness v1
VK_EXT_index_type_uint8 v1
VK_EXT_inline_uniform_block v1
VK_EXT_layer_settings v2
VK_EXT_legacy_dithering v2
VK_EXT_line_rasterization v1
VK_EXT_load_store_op_none v1
VK_EXT_memory_budget v1
VK_EXT_metal_objects v2
VK_EXT_metal_surface v1
VK_EXT_non_seamless_cube_map v1
VK_EXT_pipeline_creation_cache_control v3
VK_EXT_pipeline_creation_feedback v1
VK_EXT_pipeline_robustness v1
VK_EXT_post_depth_coverage v1
VK_EXT_primitive_topology_list_restart v1
VK_EXT_private_data v1
VK_EXT_provoking_vertex 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_atomic_float v1
VK_EXT_shader_demote_to_helper_invocation v1
VK_EXT_shader_stencil_export v1
VK_EXT_shader_subgroup_ballot v1
VK_EXT_shader_subgroup_vote v1
VK_EXT_shader_viewport_index_layer v1
VK_EXT_subgroup_size_control v2
VK_EXT_surface_maintenance1 v1
VK_EXT_swapchain_colorspace v5
VK_EXT_swapchain_maintenance1 v1
VK_EXT_texel_buffer_alignment v1
VK_EXT_texture_compression_astc_hdr v1
VK_EXT_tooling_info 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_GOOGLE_display_timing v1
VK_IMG_format_pvrtc v1
VK_INTEL_shader_integer_functions2 v1
VK_MVK_macos_surface v3
VK_MVK_moltenvk v37
VK_NV_fragment_shader_barycentric v1
[mvk-info] GPU device:
model: Apple M3 Max
type: Integrated
vendorID: 0x106b
deviceID: 0x1a020209
pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000
GPU memory available: 110100 MB
GPU memory used: 0 MB
Metal Shading Language 3.2
supports the following GPU Features:
GPU Family Metal 3
GPU Family Apple 9
GPU Family Mac 2
Read-Write Texture Tier 2
[mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 6 Vulkan extensions enabled:
VK_KHR_get_physical_device_properties2 v2
VK_KHR_get_surface_capabilities2 v1
VK_KHR_surface v25
VK_EXT_debug_report v10
VK_EXT_layer_settings v2
VK_EXT_metal_surface v1
RPCS3: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161
[mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateBuffer(): Only external memory handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT and VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT are supported.
RPCS3: RSX [0x0014afc]: SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT)
(in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/buffer_object.cpp:111[:64], in function 'vk::buffer::buffer(const vk::render_device &, VkBufferUsageFlags, void *, u64)') (errno=60=Operation timed out)
(in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/shared.cpp:205[:4], in function 'void vk::die_with_error(VkResult, std::string, std::source_location)') (errno=60=Operation timed out)
zsh: trace trap ./RPCS3.app/Contents/MacOS/rpcs3


Apple's crash report is the following: https://sharetext.io/fnbafjli

@schm1dtmac
Copy link
Contributor

schm1dtmac commented Jan 31, 2026

Let me share the full log with you, so you can identify the problem

Debugger: 0 objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /opt/homebrew/Cellar/molten-vk/1.4.0/lib/libMoltenVK.dylib (0x16833e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /usr/local/lib/libMoltenVK.dylib (0x16938e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. [mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334. The following 153 Vulkan extensions are supported: VK_KHR_16bit_storage v1 VK_KHR_8bit_storage v1 VK_KHR_bind_memory2 v1 VK_KHR_buffer_device_address v1 VK_KHR_calibrated_timestamps v1 VK_KHR_copy_commands2 v1 VK_KHR_create_renderpass2 v1 VK_KHR_dedicated_allocation v3 VK_KHR_deferred_host_operations v4 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_dynamic_rendering_local_read 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_format_feature_flags2 v2 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_global_priority v1 VK_KHR_image_format_list v1 VK_KHR_imageless_framebuffer v1 VK_KHR_incremental_present v2 VK_KHR_index_type_uint8 v1 VK_KHR_line_rasterization v1 VK_KHR_load_store_op_none v1 VK_KHR_maintenance1 v2 VK_KHR_maintenance2 v1 VK_KHR_maintenance3 v1 VK_KHR_maintenance4 v2 VK_KHR_maintenance5 v1 VK_KHR_maintenance6 v1 VK_KHR_maintenance7 v1 VK_KHR_maintenance8 v1 VK_KHR_maintenance9 v1 VK_KHR_map_memory2 v1 VK_KHR_multiview v1 VK_KHR_portability_subset v1 VK_KHR_present_id v1 VK_KHR_present_id2 v1 VK_KHR_present_wait v1 VK_KHR_present_wait2 v1 VK_KHR_push_descriptor v2 VK_KHR_relaxed_block_layout v1 VK_KHR_robustness2 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_expect_assume v1 VK_KHR_shader_float_controls v4 VK_KHR_shader_float_controls2 v1 VK_KHR_shader_float16_int8 v1 VK_KHR_shader_fma v1 VK_KHR_shader_integer_dot_product v1 VK_KHR_shader_maximal_reconvergence v1 VK_KHR_shader_non_semantic_info v1 VK_KHR_shader_quad_control v1 VK_KHR_shader_relaxed_extended_instruction v1 VK_KHR_shader_subgroup_extended_types v1 VK_KHR_shader_subgroup_rotate v2 VK_KHR_shader_subgroup_uniform_control_flow v1 VK_KHR_shader_terminate_invocation v1 VK_KHR_spirv_1_4 v1 VK_KHR_storage_buffer_storage_class v1 VK_KHR_surface v25 VK_KHR_surface_maintenance1 v1 VK_KHR_surface_protected_capabilities v1 VK_KHR_swapchain v70 VK_KHR_swapchain_maintenance1 v1 VK_KHR_swapchain_mutable_format v1 VK_KHR_synchronization2 v1 VK_KHR_timeline_semaphore v2 VK_KHR_uniform_buffer_standard_layout v1 VK_KHR_variable_pointers v1 VK_KHR_vertex_attribute_divisor v1 VK_KHR_vulkan_memory_model v3 VK_KHR_zero_initialize_workgroup_memory v1 VK_EXT_4444_formats v1 VK_EXT_buffer_device_address v2 VK_EXT_calibrated_timestamps v2 VK_EXT_debug_marker v4 VK_EXT_debug_report v10 VK_EXT_debug_utils v2 VK_EXT_depth_clip_control v1 VK_EXT_descriptor_indexing v2 VK_EXT_extended_dynamic_state v1 VK_EXT_extended_dynamic_state2 v1 VK_EXT_extended_dynamic_state3 v2 VK_EXT_external_memory_host v1 VK_EXT_external_memory_metal v1 VK_EXT_fragment_shader_interlock v1 VK_EXT_global_priority v2 VK_EXT_global_priority_query v1 VK_EXT_hdr_metadata v3 VK_EXT_headless_surface v1 VK_EXT_host_image_copy v1 VK_EXT_host_query_reset v1 VK_EXT_image_2d_view_of_3d v1 VK_EXT_image_robustness v1 VK_EXT_index_type_uint8 v1 VK_EXT_inline_uniform_block v1 VK_EXT_layer_settings v2 VK_EXT_legacy_dithering v2 VK_EXT_line_rasterization v1 VK_EXT_load_store_op_none v1 VK_EXT_memory_budget v1 VK_EXT_metal_objects v2 VK_EXT_metal_surface v1 VK_EXT_non_seamless_cube_map v1 VK_EXT_pipeline_creation_cache_control v3 VK_EXT_pipeline_creation_feedback v1 VK_EXT_pipeline_robustness v1 VK_EXT_post_depth_coverage v1 VK_EXT_primitive_topology_list_restart v1 VK_EXT_private_data v1 VK_EXT_provoking_vertex 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_atomic_float v1 VK_EXT_shader_demote_to_helper_invocation v1 VK_EXT_shader_stencil_export v1 VK_EXT_shader_subgroup_ballot v1 VK_EXT_shader_subgroup_vote v1 VK_EXT_shader_viewport_index_layer v1 VK_EXT_subgroup_size_control v2 VK_EXT_surface_maintenance1 v1 VK_EXT_swapchain_colorspace v5 VK_EXT_swapchain_maintenance1 v1 VK_EXT_texel_buffer_alignment v1 VK_EXT_texture_compression_astc_hdr v1 VK_EXT_tooling_info 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_GOOGLE_display_timing v1 VK_IMG_format_pvrtc v1 VK_INTEL_shader_integer_functions2 v1 VK_MVK_macos_surface v3 VK_MVK_moltenvk v37 VK_NV_fragment_shader_barycentric v1 [mvk-info] GPU device: model: Apple M3 Max type: Integrated vendorID: 0x106b deviceID: 0x1a020209 pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000 GPU memory available: 110100 MB GPU memory used: 0 MB Metal Shading Language 3.2 supports the following GPU Features: GPU Family Metal 3 GPU Family Apple 9 GPU Family Mac 2 Read-Write Texture Tier 2 [mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 1 Vulkan extensions enabled: VK_KHR_get_physical_device_properties2 v2 RPCS3: Vulkan Device Enumeration Thread: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161 [mvk-info] Destroyed VkPhysicalDevice for GPU Apple M3 Max with 0 MB of GPU memory still allocated. [mvk-info] Destroying VkInstance for Vulkan version 1.2.334 with 1 Vulkan extensions enabled. RPCS3: SYS: LLVM version: 21.1.8 RPCS3: SYS: Firmware version: 4.92 qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.2 LGPL version 2.1 or later [mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334. The following 153 Vulkan extensions are supported: VK_KHR_16bit_storage v1 VK_KHR_8bit_storage v1 VK_KHR_bind_memory2 v1 VK_KHR_buffer_device_address v1 VK_KHR_calibrated_timestamps v1 VK_KHR_copy_commands2 v1 VK_KHR_create_renderpass2 v1 VK_KHR_dedicated_allocation v3 VK_KHR_deferred_host_operations v4 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_dynamic_rendering_local_read 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_format_feature_flags2 v2 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_global_priority v1 VK_KHR_image_format_list v1 VK_KHR_imageless_framebuffer v1 VK_KHR_incremental_present v2 VK_KHR_index_type_uint8 v1 VK_KHR_line_rasterization v1 VK_KHR_load_store_op_none v1 VK_KHR_maintenance1 v2 VK_KHR_maintenance2 v1 VK_KHR_maintenance3 v1 VK_KHR_maintenance4 v2 VK_KHR_maintenance5 v1 VK_KHR_maintenance6 v1 VK_KHR_maintenance7 v1 VK_KHR_maintenance8 v1 VK_KHR_maintenance9 v1 VK_KHR_map_memory2 v1 VK_KHR_multiview v1 VK_KHR_portability_subset v1 VK_KHR_present_id v1 VK_KHR_present_id2 v1 VK_KHR_present_wait v1 VK_KHR_present_wait2 v1 VK_KHR_push_descriptor v2 VK_KHR_relaxed_block_layout v1 VK_KHR_robustness2 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_expect_assume v1 VK_KHR_shader_float_controls v4 VK_KHR_shader_float_controls2 v1 VK_KHR_shader_float16_int8 v1 VK_KHR_shader_fma v1 VK_KHR_shader_integer_dot_product v1 VK_KHR_shader_maximal_reconvergence v1 VK_KHR_shader_non_semantic_info v1 VK_KHR_shader_quad_control v1 VK_KHR_shader_relaxed_extended_instruction v1 VK_KHR_shader_subgroup_extended_types v1 VK_KHR_shader_subgroup_rotate v2 VK_KHR_shader_subgroup_uniform_control_flow v1 VK_KHR_shader_terminate_invocation v1 VK_KHR_spirv_1_4 v1 VK_KHR_storage_buffer_storage_class v1 VK_KHR_surface v25 VK_KHR_surface_maintenance1 v1 VK_KHR_surface_protected_capabilities v1 VK_KHR_swapchain v70 VK_KHR_swapchain_maintenance1 v1 VK_KHR_swapchain_mutable_format v1 VK_KHR_synchronization2 v1 VK_KHR_timeline_semaphore v2 VK_KHR_uniform_buffer_standard_layout v1 VK_KHR_variable_pointers v1 VK_KHR_vertex_attribute_divisor v1 VK_KHR_vulkan_memory_model v3 VK_KHR_zero_initialize_workgroup_memory v1 VK_EXT_4444_formats v1 VK_EXT_buffer_device_address v2 VK_EXT_calibrated_timestamps v2 VK_EXT_debug_marker v4 VK_EXT_debug_report v10 VK_EXT_debug_utils v2 VK_EXT_depth_clip_control v1 VK_EXT_descriptor_indexing v2 VK_EXT_extended_dynamic_state v1 VK_EXT_extended_dynamic_state2 v1 VK_EXT_extended_dynamic_state3 v2 VK_EXT_external_memory_host v1 VK_EXT_external_memory_metal v1 VK_EXT_fragment_shader_interlock v1 VK_EXT_global_priority v2 VK_EXT_global_priority_query v1 VK_EXT_hdr_metadata v3 VK_EXT_headless_surface v1 VK_EXT_host_image_copy v1 VK_EXT_host_query_reset v1 VK_EXT_image_2d_view_of_3d v1 VK_EXT_image_robustness v1 VK_EXT_index_type_uint8 v1 VK_EXT_inline_uniform_block v1 VK_EXT_layer_settings v2 VK_EXT_legacy_dithering v2 VK_EXT_line_rasterization v1 VK_EXT_load_store_op_none v1 VK_EXT_memory_budget v1 VK_EXT_metal_objects v2 VK_EXT_metal_surface v1 VK_EXT_non_seamless_cube_map v1 VK_EXT_pipeline_creation_cache_control v3 VK_EXT_pipeline_creation_feedback v1 VK_EXT_pipeline_robustness v1 VK_EXT_post_depth_coverage v1 VK_EXT_primitive_topology_list_restart v1 VK_EXT_private_data v1 VK_EXT_provoking_vertex 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_atomic_float v1 VK_EXT_shader_demote_to_helper_invocation v1 VK_EXT_shader_stencil_export v1 VK_EXT_shader_subgroup_ballot v1 VK_EXT_shader_subgroup_vote v1 VK_EXT_shader_viewport_index_layer v1 VK_EXT_subgroup_size_control v2 VK_EXT_surface_maintenance1 v1 VK_EXT_swapchain_colorspace v5 VK_EXT_swapchain_maintenance1 v1 VK_EXT_texel_buffer_alignment v1 VK_EXT_texture_compression_astc_hdr v1 VK_EXT_tooling_info 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_GOOGLE_display_timing v1 VK_IMG_format_pvrtc v1 VK_INTEL_shader_integer_functions2 v1 VK_MVK_macos_surface v3 VK_MVK_moltenvk v37 VK_NV_fragment_shader_barycentric v1 [mvk-info] GPU device: model: Apple M3 Max type: Integrated vendorID: 0x106b deviceID: 0x1a020209 pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000 GPU memory available: 110100 MB GPU memory used: 0 MB Metal Shading Language 3.2 supports the following GPU Features: GPU Family Metal 3 GPU Family Apple 9 GPU Family Mac 2 Read-Write Texture Tier 2 [mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 6 Vulkan extensions enabled: VK_KHR_get_physical_device_properties2 v2 VK_KHR_get_surface_capabilities2 v1 VK_KHR_surface v25 VK_EXT_debug_report v10 VK_EXT_layer_settings v2 VK_EXT_metal_surface v1 RPCS3: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161 [mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateBuffer(): Only external memory handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT and VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT are supported. RPCS3: RSX [0x0014afc]: SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT) (in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/buffer_object.cpp:111[:64], in function 'vk::buffer::buffer(const vk::render_device &, VkBufferUsageFlags, void *, u64)') (errno=60=Operation timed out) (in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/shared.cpp:205[:4], in function 'void vk::die_with_error(VkResult, std::string, std::source_location)') (errno=60=Operation timed out) zsh: trace trap ./RPCS3.app/Contents/MacOS/rpcs3

Apple's crash report is the following: https://sharetext.io/fnbafjli

Homebrew's interfering, remove the homebrew MoltenVK installation entirely and test again, ideally via a clean unmodified download of the emulator from rpcs3.net and NOT from a custom compile of your own.

@freakmaxi
Copy link
Contributor Author

Let me share the full log with you, so you can identify the problem
Debugger: 0 objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /opt/homebrew/Cellar/molten-vk/1.4.0/lib/libMoltenVK.dylib (0x16833e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[30176]: Class MVKBlockObserver is implemented in both /Users/tunacelik/.System/Vault/ps3/emu/RPCS3.app/Contents/Frameworks/libMoltenVK.dylib (0x1678be5e8) and /usr/local/lib/libMoltenVK.dylib (0x16938e890). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. [mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334. The following 153 Vulkan extensions are supported: VK_KHR_16bit_storage v1 VK_KHR_8bit_storage v1 VK_KHR_bind_memory2 v1 VK_KHR_buffer_device_address v1 VK_KHR_calibrated_timestamps v1 VK_KHR_copy_commands2 v1 VK_KHR_create_renderpass2 v1 VK_KHR_dedicated_allocation v3 VK_KHR_deferred_host_operations v4 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_dynamic_rendering_local_read 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_format_feature_flags2 v2 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_global_priority v1 VK_KHR_image_format_list v1 VK_KHR_imageless_framebuffer v1 VK_KHR_incremental_present v2 VK_KHR_index_type_uint8 v1 VK_KHR_line_rasterization v1 VK_KHR_load_store_op_none v1 VK_KHR_maintenance1 v2 VK_KHR_maintenance2 v1 VK_KHR_maintenance3 v1 VK_KHR_maintenance4 v2 VK_KHR_maintenance5 v1 VK_KHR_maintenance6 v1 VK_KHR_maintenance7 v1 VK_KHR_maintenance8 v1 VK_KHR_maintenance9 v1 VK_KHR_map_memory2 v1 VK_KHR_multiview v1 VK_KHR_portability_subset v1 VK_KHR_present_id v1 VK_KHR_present_id2 v1 VK_KHR_present_wait v1 VK_KHR_present_wait2 v1 VK_KHR_push_descriptor v2 VK_KHR_relaxed_block_layout v1 VK_KHR_robustness2 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_expect_assume v1 VK_KHR_shader_float_controls v4 VK_KHR_shader_float_controls2 v1 VK_KHR_shader_float16_int8 v1 VK_KHR_shader_fma v1 VK_KHR_shader_integer_dot_product v1 VK_KHR_shader_maximal_reconvergence v1 VK_KHR_shader_non_semantic_info v1 VK_KHR_shader_quad_control v1 VK_KHR_shader_relaxed_extended_instruction v1 VK_KHR_shader_subgroup_extended_types v1 VK_KHR_shader_subgroup_rotate v2 VK_KHR_shader_subgroup_uniform_control_flow v1 VK_KHR_shader_terminate_invocation v1 VK_KHR_spirv_1_4 v1 VK_KHR_storage_buffer_storage_class v1 VK_KHR_surface v25 VK_KHR_surface_maintenance1 v1 VK_KHR_surface_protected_capabilities v1 VK_KHR_swapchain v70 VK_KHR_swapchain_maintenance1 v1 VK_KHR_swapchain_mutable_format v1 VK_KHR_synchronization2 v1 VK_KHR_timeline_semaphore v2 VK_KHR_uniform_buffer_standard_layout v1 VK_KHR_variable_pointers v1 VK_KHR_vertex_attribute_divisor v1 VK_KHR_vulkan_memory_model v3 VK_KHR_zero_initialize_workgroup_memory v1 VK_EXT_4444_formats v1 VK_EXT_buffer_device_address v2 VK_EXT_calibrated_timestamps v2 VK_EXT_debug_marker v4 VK_EXT_debug_report v10 VK_EXT_debug_utils v2 VK_EXT_depth_clip_control v1 VK_EXT_descriptor_indexing v2 VK_EXT_extended_dynamic_state v1 VK_EXT_extended_dynamic_state2 v1 VK_EXT_extended_dynamic_state3 v2 VK_EXT_external_memory_host v1 VK_EXT_external_memory_metal v1 VK_EXT_fragment_shader_interlock v1 VK_EXT_global_priority v2 VK_EXT_global_priority_query v1 VK_EXT_hdr_metadata v3 VK_EXT_headless_surface v1 VK_EXT_host_image_copy v1 VK_EXT_host_query_reset v1 VK_EXT_image_2d_view_of_3d v1 VK_EXT_image_robustness v1 VK_EXT_index_type_uint8 v1 VK_EXT_inline_uniform_block v1 VK_EXT_layer_settings v2 VK_EXT_legacy_dithering v2 VK_EXT_line_rasterization v1 VK_EXT_load_store_op_none v1 VK_EXT_memory_budget v1 VK_EXT_metal_objects v2 VK_EXT_metal_surface v1 VK_EXT_non_seamless_cube_map v1 VK_EXT_pipeline_creation_cache_control v3 VK_EXT_pipeline_creation_feedback v1 VK_EXT_pipeline_robustness v1 VK_EXT_post_depth_coverage v1 VK_EXT_primitive_topology_list_restart v1 VK_EXT_private_data v1 VK_EXT_provoking_vertex 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_atomic_float v1 VK_EXT_shader_demote_to_helper_invocation v1 VK_EXT_shader_stencil_export v1 VK_EXT_shader_subgroup_ballot v1 VK_EXT_shader_subgroup_vote v1 VK_EXT_shader_viewport_index_layer v1 VK_EXT_subgroup_size_control v2 VK_EXT_surface_maintenance1 v1 VK_EXT_swapchain_colorspace v5 VK_EXT_swapchain_maintenance1 v1 VK_EXT_texel_buffer_alignment v1 VK_EXT_texture_compression_astc_hdr v1 VK_EXT_tooling_info 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_GOOGLE_display_timing v1 VK_IMG_format_pvrtc v1 VK_INTEL_shader_integer_functions2 v1 VK_MVK_macos_surface v3 VK_MVK_moltenvk v37 VK_NV_fragment_shader_barycentric v1 [mvk-info] GPU device: model: Apple M3 Max type: Integrated vendorID: 0x106b deviceID: 0x1a020209 pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000 GPU memory available: 110100 MB GPU memory used: 0 MB Metal Shading Language 3.2 supports the following GPU Features: GPU Family Metal 3 GPU Family Apple 9 GPU Family Mac 2 Read-Write Texture Tier 2 [mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 1 Vulkan extensions enabled: VK_KHR_get_physical_device_properties2 v2 RPCS3: Vulkan Device Enumeration Thread: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161 [mvk-info] Destroyed VkPhysicalDevice for GPU Apple M3 Max with 0 MB of GPU memory still allocated. [mvk-info] Destroying VkInstance for Vulkan version 1.2.334 with 1 Vulkan extensions enabled. RPCS3: SYS: LLVM version: 21.1.8 RPCS3: SYS: Firmware version: 4.92 qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.2 LGPL version 2.1 or later [mvk-info] MoltenVK version 1.4.1, supporting Vulkan version 1.4.334. The following 153 Vulkan extensions are supported: VK_KHR_16bit_storage v1 VK_KHR_8bit_storage v1 VK_KHR_bind_memory2 v1 VK_KHR_buffer_device_address v1 VK_KHR_calibrated_timestamps v1 VK_KHR_copy_commands2 v1 VK_KHR_create_renderpass2 v1 VK_KHR_dedicated_allocation v3 VK_KHR_deferred_host_operations v4 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_dynamic_rendering_local_read 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_format_feature_flags2 v2 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_global_priority v1 VK_KHR_image_format_list v1 VK_KHR_imageless_framebuffer v1 VK_KHR_incremental_present v2 VK_KHR_index_type_uint8 v1 VK_KHR_line_rasterization v1 VK_KHR_load_store_op_none v1 VK_KHR_maintenance1 v2 VK_KHR_maintenance2 v1 VK_KHR_maintenance3 v1 VK_KHR_maintenance4 v2 VK_KHR_maintenance5 v1 VK_KHR_maintenance6 v1 VK_KHR_maintenance7 v1 VK_KHR_maintenance8 v1 VK_KHR_maintenance9 v1 VK_KHR_map_memory2 v1 VK_KHR_multiview v1 VK_KHR_portability_subset v1 VK_KHR_present_id v1 VK_KHR_present_id2 v1 VK_KHR_present_wait v1 VK_KHR_present_wait2 v1 VK_KHR_push_descriptor v2 VK_KHR_relaxed_block_layout v1 VK_KHR_robustness2 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_expect_assume v1 VK_KHR_shader_float_controls v4 VK_KHR_shader_float_controls2 v1 VK_KHR_shader_float16_int8 v1 VK_KHR_shader_fma v1 VK_KHR_shader_integer_dot_product v1 VK_KHR_shader_maximal_reconvergence v1 VK_KHR_shader_non_semantic_info v1 VK_KHR_shader_quad_control v1 VK_KHR_shader_relaxed_extended_instruction v1 VK_KHR_shader_subgroup_extended_types v1 VK_KHR_shader_subgroup_rotate v2 VK_KHR_shader_subgroup_uniform_control_flow v1 VK_KHR_shader_terminate_invocation v1 VK_KHR_spirv_1_4 v1 VK_KHR_storage_buffer_storage_class v1 VK_KHR_surface v25 VK_KHR_surface_maintenance1 v1 VK_KHR_surface_protected_capabilities v1 VK_KHR_swapchain v70 VK_KHR_swapchain_maintenance1 v1 VK_KHR_swapchain_mutable_format v1 VK_KHR_synchronization2 v1 VK_KHR_timeline_semaphore v2 VK_KHR_uniform_buffer_standard_layout v1 VK_KHR_variable_pointers v1 VK_KHR_vertex_attribute_divisor v1 VK_KHR_vulkan_memory_model v3 VK_KHR_zero_initialize_workgroup_memory v1 VK_EXT_4444_formats v1 VK_EXT_buffer_device_address v2 VK_EXT_calibrated_timestamps v2 VK_EXT_debug_marker v4 VK_EXT_debug_report v10 VK_EXT_debug_utils v2 VK_EXT_depth_clip_control v1 VK_EXT_descriptor_indexing v2 VK_EXT_extended_dynamic_state v1 VK_EXT_extended_dynamic_state2 v1 VK_EXT_extended_dynamic_state3 v2 VK_EXT_external_memory_host v1 VK_EXT_external_memory_metal v1 VK_EXT_fragment_shader_interlock v1 VK_EXT_global_priority v2 VK_EXT_global_priority_query v1 VK_EXT_hdr_metadata v3 VK_EXT_headless_surface v1 VK_EXT_host_image_copy v1 VK_EXT_host_query_reset v1 VK_EXT_image_2d_view_of_3d v1 VK_EXT_image_robustness v1 VK_EXT_index_type_uint8 v1 VK_EXT_inline_uniform_block v1 VK_EXT_layer_settings v2 VK_EXT_legacy_dithering v2 VK_EXT_line_rasterization v1 VK_EXT_load_store_op_none v1 VK_EXT_memory_budget v1 VK_EXT_metal_objects v2 VK_EXT_metal_surface v1 VK_EXT_non_seamless_cube_map v1 VK_EXT_pipeline_creation_cache_control v3 VK_EXT_pipeline_creation_feedback v1 VK_EXT_pipeline_robustness v1 VK_EXT_post_depth_coverage v1 VK_EXT_primitive_topology_list_restart v1 VK_EXT_private_data v1 VK_EXT_provoking_vertex 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_atomic_float v1 VK_EXT_shader_demote_to_helper_invocation v1 VK_EXT_shader_stencil_export v1 VK_EXT_shader_subgroup_ballot v1 VK_EXT_shader_subgroup_vote v1 VK_EXT_shader_viewport_index_layer v1 VK_EXT_subgroup_size_control v2 VK_EXT_surface_maintenance1 v1 VK_EXT_swapchain_colorspace v5 VK_EXT_swapchain_maintenance1 v1 VK_EXT_texel_buffer_alignment v1 VK_EXT_texture_compression_astc_hdr v1 VK_EXT_tooling_info 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_GOOGLE_display_timing v1 VK_IMG_format_pvrtc v1 VK_INTEL_shader_integer_functions2 v1 VK_MVK_macos_surface v3 VK_MVK_moltenvk v37 VK_NV_fragment_shader_barycentric v1 [mvk-info] GPU device: model: Apple M3 Max type: Integrated vendorID: 0x106b deviceID: 0x1a020209 pipelineCacheUUID: DB445FF2-1A02-0209-0000-000100000000 GPU memory available: 110100 MB GPU memory used: 0 MB Metal Shading Language 3.2 supports the following GPU Features: GPU Family Metal 3 GPU Family Apple 9 GPU Family Mac 2 Read-Write Texture Tier 2 [mvk-info] Created VkInstance for Vulkan version 1.2.334, as requested by app, with the following 6 Vulkan extensions enabled: VK_KHR_get_physical_device_properties2 v2 VK_KHR_get_surface_capabilities2 v1 VK_KHR_surface v25 VK_EXT_debug_report v10 VK_EXT_layer_settings v2 VK_EXT_metal_surface v1 RPCS3: RSX: Found Vulkan-compatible GPU: 'Apple M3 Max' running on driver 0.2.161 [mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateBuffer(): Only external memory handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT and VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT are supported. RPCS3: RSX [0x0014afc]: SIG: Thread terminated due to fatal error: Assertion Failed! Vulkan API call failed with unrecoverable error: Requested feature not available (VK_ERROR_FEATURE_NOT_PRESENT) (in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/buffer_object.cpp:111[:64], in function 'vk::buffer::buffer(const vk::render_device &, VkBufferUsageFlags, void *, u64)') (errno=60=Operation timed out) (in file /Users/runner/work/rpcs3/rpcs3/rpcs3/Emu/RSX/VK/vkutils/shared.cpp:205[:4], in function 'void vk::die_with_error(VkResult, std::string, std::source_location)') (errno=60=Operation timed out) zsh: trace trap ./RPCS3.app/Contents/MacOS/rpcs3
Apple's crash report is the following: https://sharetext.io/fnbafjli

Homebrew's interfering, remove the homebrew MoltenVK installation entirely and test again.

Nope, it didn't help.

@freakmaxi
Copy link
Contributor Author

by the way, it is not my build. It is exactly what I've downloaded from the web

@kd-11
Copy link
Contributor

kd-11 commented Jan 31, 2026

@freakmaxi Move this to a bug report. For log file, we need the actual file, not just console output from the emulator. Tag @schm1dtmac once you open the ticket, we'll check why that could be happening.

@kd-11 kd-11 marked this pull request as draft January 31, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants