Merge "Add texturing support for USAGE_SHARED." into jb-mr2-dev
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 1cce12f..231ce12 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -375,9 +375,10 @@
// in getSurface
} 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 | RS_ALLOCATION_USAGE_SHARED)) {
- ALOGE("Can't use user-allocated buffers if usage is not USAGE_SCRIPT and USAGE_SHARED");
+ // limitations: no faces, no LOD, USAGE_SCRIPT or SCRIPT+TEXTURE only
+ if (!(alloc->mHal.state.usageFlags == (RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED) ||
+ alloc->mHal.state.usageFlags == (RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED | RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE))) {
+ ALOGE("Can't use user-allocated buffers if usage is not USAGE_SCRIPT | USAGE_SHARED or USAGE_SCRIPT | USAGE_SHARED | USAGE_GRAPHICS_TEXTURE");
return false;
}
if (alloc->getType()->getDimLOD() || alloc->getType()->getDimFaces()) {
@@ -599,6 +600,10 @@
UploadToBufferObject(rsc, alloc);
}
+ if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SHARED) {
+ // NOP in CPU driver for now
+ }
+
drv->uploadDeferred = false;
}