草庐IT

metallic

全部标签

swift - Metal 中的混合模式

这是我在OpenGL中使用的两种混合模式什么是IOS中的Metal转换glEnable(GL_BLEND);glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_ONE,GL_ONE_MINUS_SRC_ALPHA);glBlendFuncSeparate(GL_SRC_ALPHA,GL_ONE,GL_SRC_ALPHA,GL_ONE); 最佳答案 您在渲染管道描述符上配置混合。我相信您的GL代码的等效配置是://glEnable(GL_BLEND)renderPipe

swift - Metal 内核在新款 MacBook Pro(2016 年末)GPU 上无法正常运行

我正在研究使用Swift和Metal在GPU上进行图像处理的macOS项目。上周,我收到了我的新15英寸MacBookPro(2016年末)并注意到我的代码有些奇怪:应该写入纹理的内核似乎没有这样做......经过大量挖掘,我发现问题与Metal(AMDRadeonPro455或Intel(R)HDGraphics530)使用哪个GPU进行计算有关。使用MTLCopyAllDevices()初始化MTLDevice返回代表Radeon和IntelGPU的设备数组(而MTLCreateSystemDefaultDevice()返回默认设备是Radeon)。在任何情况下,代码在IntelG

ios - 有效地将 Swift 数组复制到 iOS Metal 的内存缓冲区

我正在使用Apple的新Metal框架编写一个iOS应用程序。我有一个Matrix4对象数组(参见RayWenderlich'stutorial),我需要通过MTLDevice.newBufferWithLength()方法将其传递给着色器。Matrix4对象利用了Apple的GLKit(它包含一个GLKMatrix4对象)。我正在利用GPU调用的实例化。我稍后会将其更改为每个实例包含更多数据的结构(不仅仅是Matrix4对象。如何有效地将[Matrix4]对象数组复制到此缓冲区中?有更好的方法吗?同样,我将在未来扩展它以使用包含更多数据的结构。下面是我的代码的一个子集:letsize

ios - 我可以使用 Metal 在 GPU 上运行算法吗?

我使用最小编辑距离算法来确定两个字符串的相关程度。我已经将它实现为在CPU上运行,并且当您有数百个字符串时它工作得很好,但是当您多次比较数千个字符串时它会降低速度。所以我认为将负载卸载到GPU上可能会有用,因为它可以一次执行多个比较。这可能吗?我遇到的Metal资源主要用于没有帮助的图形。或者他们可能是? 最佳答案 您想要做的事情是可能的,至少对于某些问题规模而言是这样,但这并不是特别简单。您需要做的是以一种可以在GPU和iOS上运行的方式表达算法,这可能意味着使用Metal。具体来说,您需要使用实现最小编辑距离算法的Metal着色

Mac OS 使用Metal渲染NV12、YUV420、CMSampleBufferRef视频

MacOS使用Metal渲染NV12、YUV420、CMSampleBufferRef视频需求MTKView初始化摄像头采集CMSampleBufferRef渲染CMSampleBufferRefyuv420转NV12渲染NV12END资料较少,整合后仅作为记录学习使用。需求yuv420原始视频数据使用metal渲染。MTKView初始化vector_uint2viewportSize;MTKView*mMtkview;idMTLDevice>mDevice;idMTLCommandQueue>mCmdQueue;idMTLRenderPipelineState>mPipeline;idMTL

iOS Metal 计算管道比搜索任务的 CPU 实现慢

我做了一个简单的实验,通过在CPU和GPU(使用iOS8Metal计算管道)上实现搜索1.000.000行每行50个字符(5000万字符映射)的朴素字符搜索算法。CPU实现使用简单的循环,Metal实现给每个内核1行来处理(下面的源代码)。令我惊讶的是,Metal实现平均比简单的线性CPU(如果我使用1个内核)慢2-3倍,如果我使用2个内核(每个内核搜索一半的数据库)则慢3-4倍!我尝试了每组不同的线程(16、32、64、128、512),但仍然得到非常相似的结果。iPhone6:CPU1core:approx0.12secCPU2cores:approx0.075secGPU:app

iOS Metal 计算管道比搜索任务的 CPU 实现慢

我做了一个简单的实验,通过在CPU和GPU(使用iOS8Metal计算管道)上实现搜索1.000.000行每行50个字符(5000万字符映射)的朴素字符搜索算法。CPU实现使用简单的循环,Metal实现给每个内核1行来处理(下面的源代码)。令我惊讶的是,Metal实现平均比简单的线性CPU(如果我使用1个内核)慢2-3倍,如果我使用2个内核(每个内核搜索一半的数据库)则慢3-4倍!我尝试了每组不同的线程(16、32、64、128、512),但仍然得到非常相似的结果。iPhone6:CPU1core:approx0.12secCPU2cores:approx0.075secGPU:app

ios - Metal (iOS) 中的多重采样/锯齿状边缘

我目前正在尝试绘制一个图形,该图形将在Swift中使用Metal进行动画处理。我已经成功地绘制了我的图形的单个框架。图形很简单,正如您从这张图片中看到的那样。我想不通的是如何对绘图进行多重采样。一般而言,似乎很少有关于Metal的引用,尤其是在Swift语法方面。self.metalLayer=CAMetalLayer()self.metalLayer.device=self.deviceself.metalLayer.pixelFormat=.BGRA8Unormself.metalLayer.framebufferOnly=trueself.metalLayer.frame=sel

ios - Metal (iOS) 中的多重采样/锯齿状边缘

我目前正在尝试绘制一个图形,该图形将在Swift中使用Metal进行动画处理。我已经成功地绘制了我的图形的单个框架。图形很简单,正如您从这张图片中看到的那样。我想不通的是如何对绘图进行多重采样。一般而言,似乎很少有关于Metal的引用,尤其是在Swift语法方面。self.metalLayer=CAMetalLayer()self.metalLayer.device=self.deviceself.metalLayer.pixelFormat=.BGRA8Unormself.metalLayer.framebufferOnly=trueself.metalLayer.frame=sel

xcode - 你如何在 Swift 中导入 Metal?

每当我尝试在我的Swift文件或playground中导入Metal时,Xcode都会提示“没有这样的模块‘Metal’”。这是Beta1错误吗? 最佳答案 这是一个平台问题,而不是Swift问题。如果您手动检查Xcode中的平台SDK,您会看到Metal.framework仅存在于iOS8SDK中。这意味着您只能在您的代码要在实际iOS设备上运行时链接到框架,并且由于playgrounds不在设备上运行,因此无法链接到框架。 关于xcode-你如何在Swift中导入Metal?,我们在