Renderscript 内核方法签名

Renderscript kernel method signature

我正在写问题,主要是希望 Tim Murray 或 Stephen Hines 看到我们并提供一些知识。

自从 Honeycomb 以来,Renderscript 发生了相当多的变化,因为实际渲染被弃用并推动了通用计算,一些 pragma 和内核发生了变化,因此我对最新的内容感到困惑 "official way"编写内核。

在示例、博客 post 或 Google I/O 演示文稿中,网络主要有两种方式,它们是:

void root(const uchar4 *v_in, uchar4 *v_out, const void *usrData, uint32_t x, uint32_t y) {

uchar4 __attribute__((kernel)) root(uchar4 v_in, uint32_t x, uint32_t y) {

作为第二个签名的主要区别,您必须 return 输出值。还有一些变体,您可以在其中使用其他方法名称(而不是 root)。

所以主要问题:

定义内核的最新"correct"方法是什么?

第二个是首选签名。按值传递允许编译器进行更好的优化。您可以为内核使用任何您想要的名称。 "root" 是图形的遗留问题,总是调用它来刷新屏幕。

坐标参数是可选的。如果不需要,可以省略 X & Y。