金属纹理read()vs sample()性能

时间:2017-01-06 00:24:05

标签: ios gpu metal

在片段着色器中尝试优化我的金属渲染性能时,我注意到有几种方法可以从纹理中读取,具体取决于场景。我想知道纹理读取方法是否具有性能影响。

以下是我尝试的三种不同选择:

  1. 在没有采样器的情况下使用tex2D.read()(使用uint2坐标)。
  2. tex2D.sample()与像素坐标一起使用(使用float2坐标)
  3. tex2D.sample()与规范化坐标一起使用(使用float2坐标)。
  4. 我是否应该期望iOS在这些选项之间存在性能差异?

1 个答案:

答案 0 :(得分:2)

它们通常相似。有人可能需要比另一个更多的工作来在uint2 / float2之间转换坐标,但这个效果应该是次要的。

读取具有未定义的行为,用于在图像外部进行读取,因此需要考虑这一点。