From 5c7d9d01bae7b279b7d95a37577f782c51847d5b Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Sun, 22 Dec 2024 10:11:21 -0800 Subject: [PATCH] [Impeller] fix device buffer nullptr on Intel macOS. (#160645) Fixes https://github.com/flutter/flutter/issues/159278 macOS intel devices uses MTLResourceStorageModeManaged which is still host visible --- .../impeller/renderer/backend/metal/device_buffer_mtl.mm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/engine/src/flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm b/engine/src/flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm index 4d0e053fc6..6d5d846ace 100644 --- a/engine/src/flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm +++ b/engine/src/flutter/impeller/renderer/backend/metal/device_buffer_mtl.mm @@ -23,9 +23,17 @@ id DeviceBufferMTL::GetMTLBuffer() const { } uint8_t* DeviceBufferMTL::OnGetContents() const { +#if !FML_OS_IOS + if (storage_mode_ != MTLStorageModeShared && + storage_mode_ != MTLResourceStorageModeManaged) { + return nullptr; + } +#else if (storage_mode_ != MTLStorageModeShared) { return nullptr; } +#endif // !FML_OS_IOS + return reinterpret_cast(buffer_.contents); }