Metal 着色语言编程指南 二一

变量和参数的地址空间修饰符

     Metal 着色语言使用地址空间修饰符来辨识函数的变量或者参数是分配在哪块地址空间的.  下面的修饰符就是Metal着色语言所支持的的不同的地址空间类型:
  • device
  • threadgroup
  • constant
  • thread
     Graphics函数(vertex或者fragment)和并行运算函数(kernel)的参数,如果是指针或者引用的话, 必须用地址空间修饰符加以声明.  Graphics函数的指针或者饮用参数必须被声明为device或者constant类型.   kernel 函数的指针或者引用参数必须被声明为device, threadgroup或者constant类型.  下面就是一个不同的地址空间修饰符的使用例子(例子中的函数参数l_data是用threadgroup修饰的,因此这个函数只能是并行计算函数):
void foo(device int *g_data,
         threadgroup int *l_data,
         constant float *c_data)
{
    ...
}


在程序域(program scope)声明的变量只能用constant来修饰.   所有的指针或者引用变量都必须用地址空间修饰符来声明, 否则会引发编译错误. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值