2017-10-26 30 views
0

ScriptIntrinsicBlur의 입력과 출력에 실제로 동일한 할당을 사용할 수 있습니다. 필터링되지 않은 할당에 관심이 없으므로이 방법은 다른 할당을 만들 필요가 없으므로 메모리가 더 좋습니다.RenderScript 내장 함수의 입력 및 출력에 대해 동일한 할당이 사용됩니까?

그러나 안전합니까? 나는 문서에서 아무것도 찾을 수 없었다.

ScriptIntrinsicResize와 같은 다른 내장 함수는 출력 할당이 입력과 동일해서는 안되며 예외가 있으면 예외를 throw한다고 명시합니다. 그래서, 이것이 언급되지 않았을 때 출력이 입력과 같을 수 있다고 가정하는 것이 안전하다고 생각합니다.

구현 측면에서 궁금한 점이 있습니까? Renderscript가 문제없이 동일한 할당에서 읽고 쓰는 것이 어떻게 가능합니까?

+0

'temp'할당이 있다고 의심되는 동안 1 CPU 참조 구현에서 직접 확인하실 수 있습니다 : https://android.googlesource.com/platform/frameworks/rs/+/master/cpu_ref/rsCpuIntrinsicBlur. cpp –

답변

0

일반적으로 입력을 출력으로 다시 사용하는 것은 안전하지 않습니다. 그렇게 할 때 아티팩트/오류가 표시 될 수 있습니다. 실제 결과는 CPU 또는 GPU에서 실행중인 스레드 수, 스레드 수, 할당에 대한 사용 플래그는 여러 요소에 따라 달라집니다.

별도의 출력 버퍼를 사용하는 것이 좋습니다.