diff --git a/wgpu-hal/src/metal/adapter.rs b/wgpu-hal/src/metal/adapter.rs index 2c3700bd8..cddba472b 100644 --- a/wgpu-hal/src/metal/adapter.rs +++ b/wgpu-hal/src/metal/adapter.rs @@ -817,6 +817,10 @@ impl super::PrivateCapabilities { && (device.supports_family(MTLGPUFamily::Metal3) || device.supports_family(MTLGPUFamily::Mac2) || device.supports_family(MTLGPUFamily::Apple7)), + // https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf#page=5 + int64: family_check + && (device.supports_family(MTLGPUFamily::Apple3) + || device.supports_family(MTLGPUFamily::Metal3)), } } @@ -890,7 +894,7 @@ impl super::PrivateCapabilities { } features.set( F::SHADER_INT64, - self.msl_version >= MTLLanguageVersion::V2_3, + self.int64 && self.msl_version >= MTLLanguageVersion::V2_3, ); features.set( diff --git a/wgpu-hal/src/metal/mod.rs b/wgpu-hal/src/metal/mod.rs index bf2b6d8a5..72a19b2fc 100644 --- a/wgpu-hal/src/metal/mod.rs +++ b/wgpu-hal/src/metal/mod.rs @@ -270,6 +270,7 @@ struct PrivateCapabilities { has_unified_memory: Option, timestamp_query_support: TimestampQuerySupport, supports_simd_scoped_operations: bool, + int64: bool, } #[derive(Clone, Debug)]