我想在我的着色器中将图像浮动数据存储在未格式化的内存位置,而MTLBuffer似乎就是答案。首先,这可能吗?我在MTLBuffer的apple文档中看到,可以访问指向缓冲区的指针。是否可以在着色器中使用该指针来填充分配的内存?其次,我希望了解这项行动的速度有多快;用Textures操作会快速有效吗?
我问这个问题,因为如果确认MTLBuffer的访问速度与使用MTLTexture的速度相当,我需要重新设计很多代码。
答案 0 :(得分:1)
首先,了解几个restrictions:
非常重要因此,如果您使用这些着色器类型中的任何一种,则无论性能如何,您都无法在纹理写入和缓冲区写入之间进行选择。
如果您正在使用计算着色器并且您的写入模式相对简单(即1对1线程ID到像素对应),我希望缓冲区写入更快。也就是说,没有一个好的一般建议,所以最好的解决方案是尝试两者并进行简介。