【问题标题】:Can you pass array types to CIFilter kernels written in Metal?你可以将数组类型传递给用 Metal 编写的 CIFilter 内核吗?
【发布时间】:2020-01-01 09:21:35
【问题描述】:

这个问题真的说明了一切。我正在尝试找出正确的方法来在用 Metal 编写的 CIFilter 的函数声明中声明一个值数组(float 类型)。但是,到目前为止,我尝试过的所有方法都无法正常运行,我开始怀疑这是否可能。当我尝试实例化内核时,大多数只是抛出错误的访问。

例子:

#include <metal_stdlib>
using namespace metal;
#include <CoreImage/CoreImage.h>

extern "C" { namespace coreimage {    
    float4 sampleCode(device float* array, destination dest) {
        /// Do Something here
    }
}}

【问题讨论】:

    标签: ios swift metal cifilter


    【解决方案1】:

    恐怕金属内核不支持任意大小的数组参数。您要么必须在编译期间知道数组的最大容量(例如float array[12]),要么必须将数据放入缓冲区中,然后将其作为采样器(纹理)传递给内核。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      相关资源
      最近更新 更多