From e9be326dea142eba0eb7e188f581012ad657a468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Thu, 14 May 2026 08:11:13 +0300 Subject: [PATCH] [Metal] Restrict residency set support to Apple6+ GPUs. --- drivers/metal/metal_device_properties.cpp | 6 ++---- drivers/metal/rendering_device_driver_metal.cpp | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/metal/metal_device_properties.cpp b/drivers/metal/metal_device_properties.cpp index 234a09d8d6..627a5bd0fd 100644 --- a/drivers/metal/metal_device_properties.cpp +++ b/drivers/metal/metal_device_properties.cpp @@ -164,10 +164,8 @@ void MetalDeviceProperties::init_features(MTL::Device *p_device) { features.supports_native_image_atomics = false; } - if (OS::get_singleton()->get_processor_name().contains("Virtual")) { - features.supports_residency_sets = false; - } else if (__builtin_available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { - features.supports_residency_sets = true; + if (__builtin_available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 2.0, *)) { + features.supports_residency_sets = p_device->supportsFamily(MTL::GPUFamilyApple6); } else { features.supports_residency_sets = false; } diff --git a/drivers/metal/rendering_device_driver_metal.cpp b/drivers/metal/rendering_device_driver_metal.cpp index 505b4547ac..90dae10222 100644 --- a/drivers/metal/rendering_device_driver_metal.cpp +++ b/drivers/metal/rendering_device_driver_metal.cpp @@ -2519,7 +2519,7 @@ Error RenderingDeviceDriverMetal::_copy_queue_initialize() { copy_queue_buffer.get()->setLabel(MTLSTR("Copy Command Scratch Buffer")); if (__builtin_available(macOS 15.0, iOS 18.0, tvOS 18.0, visionOS 1.0, *)) { - if (!OS::get_singleton()->get_processor_name().contains("Virtual")) { + if (device_properties->features.supports_residency_sets) { MTL::ResidencySetDescriptor *rs_desc = MTL::ResidencySetDescriptor::alloc()->init(); rs_desc->setInitialCapacity(2); rs_desc->setLabel(MTLSTR("Copy Queue Residency Set"));