diff options
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 |
commit | cf9c894a9b7523cd5ec707218b89517f67caa047 (patch) | |
tree | 188f2bc1a68393bd3a23aeaaac5dbcd830f29e9e /rs | |
parent | b75c27e8704f3933601afba5a9f719de2b927355 (diff) | |
download | frameworks_base-cf9c894a9b7523cd5ec707218b89517f67caa047.zip frameworks_base-cf9c894a9b7523cd5ec707218b89517f67caa047.tar.gz frameworks_base-cf9c894a9b7523cd5ec707218b89517f67caa047.tar.bz2 |
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
Diffstat (limited to 'rs')
-rw-r--r-- | rs/java/android/renderscript/Script.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/rs/java/android/renderscript/Script.java b/rs/java/android/renderscript/Script.java index 5ab18f7..a1f2287 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); |