19得票1回答
MTLVertexAttributeDescriptors是否必要?为什么需要它们?

我一直在学习iOS/OSX的Metal,最开始是通过跟随Ray Wenderlich的教程来学习。这个教程很好,但它没有提到MTLVertexAttributeDescriptors。 现在我正在开发自己的应用程序时,出现了奇怪的故障,我想知道我不使用MTLVertexAttributeDe...

18得票1回答
将UInt8组件类型的纹理传递给Metal计算着色器

我有一张程序生成的图像,我想将此图像作为纹理发送给计算着色器。我生成这张图片的方式是分别计算每个RGBA颜色通道的UInt8值,并将其组合成UInt32并存储在图像的缓冲区中。我使用以下代码进行此操作:guard let cgContext = CGContext(data: nil, ...

18得票2回答
当alpha值不为1或0时,Metal MTLTexture会用黑色替换半透明区域。

在使用苹果纹理导入器或其他导入器时,一个在软件中绘制的带有白色柔边圆圈(透明背景)或在Photoshop中保存为PNG格式的图像,当被渲染后,它的半透明颜色在Metal中会被替换为黑色。 下面是从Xcode的Metal调试器中截图,你可以看到发送到着色器之前的纹理。 图片位于此处(我没有足...

18得票3回答
iOS框架中的Metal文件

我正在尝试创建一个与METAL Api (iOS)配合使用的框架。对于这个平台我还很陌生,我想知道如何构建框架以便可以使用.metal文件(我正在构建一个静态库,而不是动态的)。它们应该作为.a文件的一部分,还是作为框架包中的资源文件呢?或者有其他的方法可以做到这一点吗?谢谢。 更新: 对于...

18得票1回答
CoreML / MLModelConfig的preferredMetalDevice - 理解设备放置启发式算法

是否有任何公共文件清楚地说明了在macOS上运行推断模型时,CoreML的GPU设备放置策略?它如何决定是否在集成、独立或CPU上运行?一个人能否可靠地“强制”一条路径?对于像新的Mac Pro那样具有多个独立GPU以及多个eGPU的系统,这会发生什么变化? 我在我的rMBP上进行的测试表明,...

17得票3回答
iOS的Metal编译错误

import UIKit import Metal import QuartzCore class ViewController: UIViewController { var device: MTLDevice! = nil var metalLayer: CAMetalLayer! =...

16得票1回答
在iPhone上使用GPU(metal)和CPU(OpenCV)处理相机数据流

我正在 iOS 上进行 120 帧实时视频处理,并希望首先在 GPU 上预处理图像(降采样、转换颜色等),然后使用 OpenCV 在 CPU 上后处理帧。 使用 Metal,分享相机数据流在 GPU 和 CPU 之间的最快方法是什么? 换句话说,管道将如下所示:CMSampleBufferRe...

16得票2回答
解释 Metal 和 SIMD 中的不同类型

当我在使用Metal时,发现有很多类型,但并不总是清楚该在哪种情况下使用哪种类型。 在苹果的Metal着色语言规范中,有一个相当清晰的表格列出了在Metal着色器文件中支持哪些类型。然而,还有很多可用的示例代码似乎使用了SIMD的其他类型。在macOS(Objective-C)方面,Meta...

16得票1回答
默认的Metal库未找到。

我尝试在一个简单的应用程序中使用Metal,但是当我调用device.newDefaultLibrary()函数时,运行时出现错误: /BuildRoot/Library/Caches/com.apple.xbs/Sources/Metal/Metal-56.7/Framework/MTL...

15得票5回答
从ARKit中获取RGB“CVPixelBuffer”

我正在尝试从苹果的 ARKit 中获取一个 RGB 颜色空间的 CVPixelBuffer。在 ARSessionDelegate 的 func session(_ session: ARSession, didUpdate frame: ARFrame) 方法中,我获取到了一个 ARFram...