在iOS上读/写相同的MTLTexture

时间:2016-12-14 07:42:01

标签: ios metal

texture2d access::read_write限定符似乎仅适用于OSX。有没有办法在kernel(或其他)金属函数中读取/写入相同的纹理?

原因是书写的纹理值可能不是最终的,可以由其他线程更新。

1 个答案:

答案 0 :(得分:1)

感谢@warrenm的提示。它使用原子缓冲区

device atomic_uint *buf [[ buffer(0) ]]

执行以下步骤:

  1. 我在一个单独的kernel函数中初始化我的原子缓冲区,该函数在操作
  2. 之前运行
  3. 下一个kernel使用atomic_fetch_min_explicit(buf[pos], val, memory_order_relaxed)
  4. 计算特定坐标的最小值