summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiao Wang <miaowang@google.com>2018-04-17 10:41:17 -0700
committerMiao Wang <miaowang@google.com>2018-04-20 18:58:09 +0000
commit987d1e472015692fdd2eb6dc19a52888e5c61ef7 (patch)
tree042b2c09078feb8253afd6dc275e25d44ca1eda0
parentfe79bccaec70d01f7ff69e91f8239e69def68b70 (diff)
downloadrs-pie-qpr1-s3-release.tar.gz
- To allow a output buffer accessible by GPU, the ANativeWindow should have AHARDWAREBUFFER_USAGE_CPU_READ_RARELY and AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN flags. Bug: 78172985 Test: mm Test: RenderScript CTS tests pass Test: ImageProcessingJB works fine with USAGE_IO_OUTPUT on walleye. Change-Id: Ic5f9f5d423ba3b720a7d0e27e0f9543a139bae99
-rw-r--r--driver/rsdAllocation.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 6b59d1c7..ad926a88 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -764,6 +764,15 @@ void rsdAllocationSetSurface(const Context *rsc, Allocation *alloc, ANativeWindo
return;
}
+ if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT) {
+ r = ANativeWindow_setUsage(nw,
+ AHARDWAREBUFFER_USAGE_CPU_READ_RARELY | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN);
+ if (r) {
+ rsc->setError(RS_ERROR_DRIVER, "Error setting IO output buffer usage.");
+ return;
+ }
+ }
+
IoGetBuffer(rsc, alloc, nw);
drv->wndSurface = nw;
}