Skip to content

Commit 920f3d1

Browse files
committed
hal/mtl: disable fragment r/w buffers in fragment shaders on macOS 10.11 (gfx-rs#2102)
1 parent ef36e2d commit 920f3d1

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

wgpu-hal/src/metal/adapter.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,8 @@ impl super::PrivateCapabilities {
580580
} else {
581581
MTLLanguageVersion::V1_0
582582
},
583-
exposed_queues: 1,
583+
// macOS 10.11 doesn't support read-write resources
584+
fragment_rw_storage: !os_is_mac || Self::version_at_least(major, minor, 10, 12),
584585
read_write_texture_tier: if os_is_mac {
585586
if Self::version_at_least(major, minor, 10, 13) {
586587
device.read_write_texture_support()
@@ -901,6 +902,10 @@ impl super::PrivateCapabilities {
901902

902903
pub fn capabilities(&self) -> crate::Capabilities {
903904
let mut downlevel = wgt::DownlevelCapabilities::default();
905+
downlevel.flags.set(
906+
wgt::DownlevelFlags::FRAGMENT_WRITABLE_STORAGE,
907+
self.fragment_rw_storage,
908+
);
904909
downlevel.flags.set(
905910
wgt::DownlevelFlags::CUBE_ARRAY_TEXTURES,
906911
self.texture_cube_array,

wgpu-hal/src/metal/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ impl crate::Instance<Api> for Instance {
141141
struct PrivateCapabilities {
142142
family_check: bool,
143143
msl_version: mtl::MTLLanguageVersion,
144-
exposed_queues: usize,
144+
fragment_rw_storage: bool,
145145
read_write_texture_tier: mtl::MTLReadWriteTextureTier,
146146
resource_heaps: bool,
147147
argument_buffers: bool,

0 commit comments

Comments
 (0)