summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Sams <jsams@google.com> 2014-01-14 16:18:14 -0800
committer Tim Murray <timmurray@google.com> 2014-01-31 12:35:19 -0800
commitcf9c894a9b7523cd5ec707218b89517f67caa047 (patch)
tree188f2bc1a68393bd3a23aeaaac5dbcd830f29e9e
parentb75c27e8704f3933601afba5a9f719de2b927355 (diff)
Check that bound allocations are 1D
We do not support higher order bound allocations. The stride is not available to the script so they cannot walk the allocation correctly. Change-Id: I9447a5d43c3ae1b88fc9522628a17bd5a317ffc6
-rw-r--r--rs/java/android/renderscript/Script.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/rs/java/android/renderscript/Script.java b/rs/java/android/renderscript/Script.java
index 5ab18f744c2b..a1f228718436 100644
--- a/rs/java/android/renderscript/Script.java
+++ b/rs/java/android/renderscript/Script.java
@@ -188,6 +188,13 @@ public class Script extends BaseObj {
public void bindAllocation(Allocation va, int slot) {
mRS.validate();
if (va != null) {
+ if (mRS.getApplicationContext().getApplicationInfo().targetSdkVersion >= 20) {
+ final Type t = va.mType;
+ if (t.hasMipmaps() || t.hasFaces() || (t.getY() != 0) || (t.getZ() != 0)) {
+ throw new RSIllegalArgumentException(
+ "API 20+ only allows simple 1D allocations to be used with bind.");
+ }
+ }
mRS.nScriptBindAllocation(getID(mRS), va.getID(mRS), slot);
} else {
mRS.nScriptBindAllocation(getID(mRS), 0, slot);