diff --git a/wgpu-hal/src/dx12/adapter.rs b/wgpu-hal/src/dx12/adapter.rs index 0f5b40ce5ce..95da9bb9c83 100644 --- a/wgpu-hal/src/dx12/adapter.rs +++ b/wgpu-hal/src/dx12/adapter.rs @@ -364,7 +364,9 @@ impl super::Adapter { mem::size_of::() as _, ) }; - hr == 0 && features9.AtomicInt64OnGroupSharedSupported != 0 + hr == 0 + && features9.AtomicInt64OnGroupSharedSupported != 0 + && features9.AtomicInt64OnTypedResourceSupported != 0 }; features.set( wgt::Features::SHADER_INT64_ATOMIC_ALL_OPS | wgt::Features::SHADER_INT64_ATOMIC_MIN_MAX, diff --git a/wgpu-hal/src/vulkan/adapter.rs b/wgpu-hal/src/vulkan/adapter.rs index 0831e463d9c..dc0eaf0bb2f 100644 --- a/wgpu-hal/src/vulkan/adapter.rs +++ b/wgpu-hal/src/vulkan/adapter.rs @@ -585,7 +585,8 @@ impl PhysicalDeviceFeatures { if let Some(ref shader_atomic_int64) = self.shader_atomic_int64 { features.set( F::SHADER_INT64_ATOMIC_ALL_OPS | F::SHADER_INT64_ATOMIC_MIN_MAX, - shader_atomic_int64.shader_buffer_int64_atomics != 0, + shader_atomic_int64.shader_buffer_int64_atomics != 0 + && shader_atomic_int64.shader_shared_int64_atomics != 0, ); }