我'm writing a program that'在Metal中使用压缩纹理 . 我在使用MTLTexture的 replaceRegion()
函数时遇到了一些麻烦 . 参数 bytesPerRow
似乎没有意义 . 它表示对于压缩纹理,“ bytesPerRow
是从一行块的开头到下一行的开头的字节数 . ”
现在我使用ASTC和4x4块,这意味着我有8 bpp . 那么4 * 4是16,而8位是一个字节 . 所以我猜每个块大小是16个字节 . 但是,当我输入16时,我得到一个失败的断言,要求最小值为4096.发生了什么?
非常感谢你 .
1 回答
bytesPerRow = texelsPerRow / blockFootprint.x * 16