[英]Metal in-place operation for `MTLComputeCommandEncoder ` on iOS
[英]in-place processing of a Metal texture
是否有可能来处理MTLTexture
原地不osx_ReadWriteTextureTier2
?
看来我可以将两个纹理参数设置为相同的纹理。 这是受支持的行为吗?
具体来说,我不介意写后不更新纹理缓存。 我只想就地(稀疏地)修改3d纹理。 具有两个纹理是内存禁止的。 复制整个纹理在计算上是昂贵的,尤其是当我可能只更新它的一小部分时。
根据文档,无论功能是否可用,在函数签名中声明两个单独的纹理参数(一次读,一次写),然后为两者设置相同的纹理是无效的。
任何支持osx_GPUFamily1_v2
Mac osx_GPUFamily1_v2
支持函数纹理读写(通过使用access::read_write
osx_GPUFamily1_v2
声明纹理)。
“第1层”(没有显式常量)与osx_ReadWriteTextureTier2
之间的区别在于,后者支持用于读写纹理的其他像素格式。
如果确定目标Mac不支持所需的纹理读写(因为您需要部署到OS X 10.11,或者因为您要部署到的计算机层使用了不兼容的像素格式, ),您可以一次在一个平面上对纹理进行操作,从3D纹理读取,写入2D纹理,然后将结果回写到3D纹理中的相应区域。 这需要更多的工作,但是所使用的内存将少于两倍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.