测试托管缓冲区的最佳实践?

tro*_*foe 7 testing macos xcode metal apple-m1

在配备独立显卡的 Mac 上,应使用托管缓冲区而不是共享缓冲区,但是使用[MTLBuffer:didModifyRange:]保持同步还有其他要求。

然而,在 Apple Silicon 上,如果我通过假装[MTLDevice hasUnifiedMemory]​​返回NO并删除对 的调用来强制使用托管缓冲区didModifyRange:,则渲染工作正常。

在 GPU 内存统一的 Apple Silicon 上测试托管缓冲区的最佳方法是什么,以便我可以确保我的代码可以在较旧的 Mac 上运行?

Jes*_*ock 3

测试硬件兼容性的最佳实践是在您要测试兼容性的实际硬件上。如果您计划支持独立 GPU(与 Apple Silicon 有很大不同),最好能够使用一款进行测试。

您可能会近似行为,但请记住,这只是一种模拟,无法确保实际硬件能够以相同的方式工作。

这类似于仅使用模拟器进行开发,这根本不是一个好的做法。

更新:有许多服务可以租用裸机 Mac。MacInCloud服务允许您配置具有外部 GPU(例如 AMD RX 580)的计算机前 24 小时仅需 0.99 美元。

那里有许多类似的服务,但这是我能够验证独立 GPU 是一种选择的第一个服务。