繁体   English   中英

RenderScript ScriptGroups-在第二个内核中从脚本全局获取输出

[英]RenderScript ScriptGroups - getting Output from script global in second Kernel

我想将两个Renderscript脚本合并到一个scriptGroup中。 第一个是ScriptIntrinsicBlur。 根据输入的模糊U8分配,第二个脚本计算两件事:渐变和渐变方向。 后者是第二个内核的正式Out-Allocation。 第一个是通过rsSetElementAt_float()填充的全局分配。 现在,我发现第二个分配在执行scriptGroup之后返回为空。

问题:我的假设是否正确,即使用scriptGroup不能使用脚本全局变量-或至少不能通过rsSetElementAt _(...)更改它们?

更新:我意识到通过使用U8作为ScriptIntrinsicBlur的输出和作为专有内核的输入的性能提升已经令人满意,即使在两个脚本的简单顺序设置中也是如此。 这主要是因为它避免了先将CopyIn ScriptIntrinsicBlur的外分配复制到Java数组中,然后再将其作为单独的输入分配传递给第二个内核。

以前,我使用U8_4(即等效于位图)作为ScriptIntrinsicBlur的输出,然后将其转换为一维灰度int []数组,然后将其作为in-Allocation传递给专有内核...现在,我转换为灰度字节[](即U8)在将分配输入到ScriptIntrinsicBlur之前已经使用,并且也将U8用作第二个内核的输入。

这是我在使用RS时一次又一次地意识到的:尽可能简化数据流确实是值得的,速度的提高是惊人的。 (也许稍后我会检查脚本组问题,因为现在我对结果感到满意)。

使用这样的全局脚本应该没有问题。 它不如输出分配有效,但有可能。 您提到out分配为空,您在全局脚本中看到了什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM