diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 82d87c2..ef3a707 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -283,9 +283,24 @@
 
     uint8_t * ptr = NULL;
     if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT) {
+    } else if (alloc->mHal.state.userProvidedPtr != NULL) {
+        // user-provided allocation
+        // limitations: no faces, no LOD, USAGE_SCRIPT only
+        if (alloc->mHal.state.usageFlags != RS_ALLOCATION_USAGE_SCRIPT) {
+            ALOGE("Can't use user-allocated buffers if usage is not USAGE_SCRIPT");
+            return false;
+        }
+        if (alloc->getType()->getDimLOD() || alloc->getType()->getDimFaces()) {
+            ALOGE("User-allocated buffers must not have multiple faces or LODs");
+            return false;
+        }
+        ptr = (uint8_t*)alloc->mHal.state.userProvidedPtr;
     } else {
-
-        ptr = (uint8_t *)malloc(allocSize);
+        if (forceZero) {
+            ptr = (uint8_t *)calloc(1, allocSize);
+        } else {
+            ptr = (uint8_t *)malloc(allocSize);
+        }
         if (!ptr) {
             free(drv);
             return false;
@@ -313,10 +328,6 @@
     drv->glType = rsdTypeToGLType(alloc->mHal.state.type->getElement()->getComponent().getType());
     drv->glFormat = rsdKindToGLFormat(alloc->mHal.state.type->getElement()->getComponent().getKind());
 
-    if (forceZero && ptr) {
-        memset(ptr, 0, alloc->mHal.state.type->getSizeBytes());
-    }
-
     if (alloc->mHal.state.usageFlags & ~RS_ALLOCATION_USAGE_SCRIPT) {
         drv->uploadDeferred = true;
     }
@@ -346,7 +357,10 @@
     }
 
     if (alloc->mHal.drvState.lod[0].mallocPtr) {
-        free(alloc->mHal.drvState.lod[0].mallocPtr);
+        // don't free user-allocated ptrs
+        if (!alloc->mHal.state.userProvidedPtr) {
+            free(alloc->mHal.drvState.lod[0].mallocPtr);
+        }
         alloc->mHal.drvState.lod[0].mallocPtr = NULL;
     }
     if (drv->readBackFBO != NULL) {
diff --git a/rsAllocation.cpp b/rsAllocation.cpp
index df0a79e..f4f6d95 100644
--- a/rsAllocation.cpp
+++ b/rsAllocation.cpp
@@ -33,6 +33,7 @@
     mHal.state.mipmapControl = RS_ALLOCATION_MIPMAP_NONE;
     mHal.state.usageFlags = usages;
     mHal.state.mipmapControl = mc;
+    mHal.state.userProvidedPtr = ptr;
 
     setType(type);
     updateCache();
diff --git a/rsAllocation.h b/rsAllocation.h
index b552ca3..5ee9afb 100644
--- a/rsAllocation.h
+++ b/rsAllocation.h
@@ -61,7 +61,7 @@
             bool hasMipmaps;
             bool hasFaces;
             bool hasReferences;
-            void * unused_01;
+            void * userProvidedPtr;
             int32_t surfaceTextureID;
             ANativeWindow *wndSurface;
             SurfaceTexture *surfaceTexture;
