8得票1回答
在主线程上绘制MTKView或CAMetalLayer是否是必须的?

众所周知,在更新AppKit或UIKit用户界面时,必须在主线程上进行。当涉及到呈现drawable时,Metal是否有相同的要求? 在我玩耍的一个层主持的NSView中,我注意到我可以从不是main_queue的dispatch_queue中调用[CAMetalLayer nextDraw...

11得票2回答
新建计算管线状态与函数失败。

我正在尝试在Metal上运行神经网络。 基本思想是数据复制。每个GPU线程为随机数据点运行一个版本的网络。 我已经编写了其他工作良好的着色器。 我还尝试在C++命令行应用程序中运行我的代码。那里没有错误。 我使用苹果文档将代码转换为Metal C ++,因为不支持来自C ++ 11的所...

13得票3回答
编译和运行Metal示例

我已经有一段时间没有使用XCode了,但自从苹果发布了XCode 6和新的Metal API后,我不得不去试一下。 他们发布了示例,例如转换版本的Basic3D示例。然而,我在编译和运行时遇到了问题。我必须添加Quatz和Metal框架的路径才能使编译和链接正常工作 - 虽然这应该是与内置库...

7得票2回答
如何加速iOS/Mac OS的Metal代码

我正在尝试在Metal中实现一段代码,用于执行两个长度向量之间的一维卷积。我已经实现了以下代码,并且它可以正确工作。 kernel void convolve(const device float *dataVector [[ buffer(0) ]], ...

7得票3回答
为什么在将SCNProgram应用于SceneKit节点时,金属着色器渐变会比在MTKView中表现出来的更浅?

我有一个渐变,由我应用于平面几何定义的SCNNode的Metal片段着色器生成。 它看起来像这样: 使用相同的着色器(Shader)应用于在Xcode Playground中渲染的MTKView时,颜色会变暗。 造成SceneKit版本颜色较浅的原因是什么? 这是金属着色器和Ga...

8得票1回答
H.264编码的BT.709矩阵视频是否包含任何伽马调整?

我已经多次阅读了BT.709规范,唯一不清楚的是编码后的H.264比特流是否应该对编码数据应用任何伽马曲线?注意BT.709规范中关于伽马公式的具体提及。苹果提供了OpenGL或Metal着色器的示例,这些着色器从CoreVideo提供的缓冲区读取YUV数据时不会进行任何形式的伽马调整。YUV...

12得票2回答
iOS的Metal计算流水线在搜索任务方面比CPU实现慢

我做了一个简单的实验,通过实现朴素字符搜索算法在CPU和GPU上(使用iOS8的Metal计算管道)搜索1,000,000行每行50个字符的简单数据(共5,000万个字符映射)。 CPU实现使用简单循环,Metal实现为每个内核提供1行进行处理(以下是源代码)。 令我惊讶的是,如果我只使用...

12得票2回答
在构建iOS模拟器目标时忽略.metal文件

每当我构建一个包含金属着色器的项目到 x86_64 目标 (iOS 模拟器) 时,都会收到依赖分析警告: 警告: 没有处理源代码类型为 sourcecode.metal 的文件 '[文件路径]/Shaders.metal' 以供架构 x86_64 使用。 我知道这不是一个重大问题,但我希望...

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

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

10得票1回答
如何创建一个由CVPixelBuffer支持的MTLTexture

如何正确生成由CVPixelBuffer支持的MTLTexture? 我有以下代码,但似乎会导致内存泄漏: func PixelBufferToMTLTexture(pixelBuffer:CVPixelBuffer) -> MTLTexture { var texture:...