簡體   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