2017-10-26 10 views
0

Ich habe festgestellt, dass ich tatsächlich die gleiche Zuordnung für die Eingabe und Ausgabe von ScriptIntrinsicBlur verwenden kann. Da ich mich nicht für die ungefilterte Zuweisung interessiere, erfordert dieser Ansatz keine weitere Zuweisung und ist besser speicherfähig.Gleiche Zuordnung für die Eingabe und Ausgabe eines RenderScript intrinsic?

Aber ist es sicher? Ich konnte nichts in der Dokumentation finden.

Andere Intrinsics, wie ScriptIntrinsicResize, erwähnen ausdrücklich, dass die Ausgabezuweisung nicht mit der Eingabe identisch sein und eine Ausnahme auslösen soll, wenn dies der Fall ist. Also, ich denke, wenn dies nicht erwähnt wird, ist es sicher anzunehmen, dass die Ausgabe die gleiche wie die Eingabe sein kann.

Ich bin auch neugierig aus einer Implementierung Perspektive, wie ist es möglich für Renderscript zu lesen und schreiben von/auf die gleiche Zuordnung ohne ein Problem?

+0

Während ich vermute, dass es eine 'temporäre' Zuweisung gibt, können Sie sich in der 1 CPU-Referenzimplementierung überprüfen: https://android.googlesource.com/platform/frameworks/rs/+/master/cpu_ref/rsCpuIntrinsicBlur. cpp –

Antwort

0

Im Allgemeinen ist es nicht sicher, den Eingang als Ausgang wiederzuverwenden. Artefakte/Fehler können dabei auftreten. Die tatsächlichen Ergebnisse hängen von mehreren Faktoren ab, z. B. auf CPU oder GPU, wie viele Threads gibt es, was ist die Verwendung Flags für die Zuordnungen.

Ich würde sehr empfehlen, einen separaten Ausgabepuffer zu verwenden.

Verwandte Themen