使用“压缩”顶点结构是否有速度损失?

时间:2019-10-26 19:29:27

标签: ios metal metalkit

我的金属着色器实现中有以下声明:

    struct InVertex {
      packed_float3 pos;
      packed_float2 textureCoord;
      packed_uchar4 color;
    };

使用包装声明是否有速度限制?如果是,如何测量?

1 个答案:

答案 0 :(得分:1)

基于此Metal Shading Language Specification

  • 您不能使用 stage_in 属性来声明打包的结构成员 向量,矩阵,结构,位域,类型的引用或指针或标量数组, 向量或矩阵。

  • MSL函数和参数具有以下附加限制:  顶点或片段函数的返回类型不能包含 压缩向量类型,矩阵类型,结构类型, 引用或类型的指针。

  • 您可以使用数组索引来访问压缩矢量数据类型的组件。但是你 无法使用.xyzw或.rgba选择语法访问压缩矢量数据的组件 类型。

  

使用压缩顶点结构是否有速度损失?

answer中对它的描述非常好,总之,从速度方面,您会从中受益,尤其是在传递大量数据时。