设备地址空间
device 地址空间修饰符用来表示一块从设备内存池分配的可读写的内存对象.
内存对象可以是指针或者引用, 该指针或引用指向的可以是标量, 矢量或者用户定义结构体. 内存对象的大小由Host代码中使用Metal framework API 时指定, 代码实例如下:
// an array of a float vector with 4 components
device float4 *color;
struct Foo {
float a[3];
int b[2];
};
// an array of Foo elements
device Foo *my_info;
纹理一定是从设备内存空间分配的, 所以你不需要用device 修饰符来标示一个纹理. 你无法直接访问纹理数据,但是你仍然可以用metal 标准函数库所提供的API来读写纹理数据. 请参见Texture Function.