gralloc_drm_bo_lock: add special usage for GRALLOC_USAGE_HW_TEXTURE
The BO 'usage' can be different from the 'usage' passed to lock.
For example when the BO is created by SurfaceMediaSource, having set GRALLOC_USAGE_HW_TEXTURE
while the CPU locks it with GRALLOC_USAGE_SW_WRITE_OFTEN
Change-Id: I4ba0ac05f1833439299e7fd694208076e66f8dfd
Signed-off-by: Adrian Marius Negreanu <adrian.m.negreanu@intel.com>
diff --git a/gralloc_drm.c b/gralloc_drm.c
index 63b5217..5912ba6 100644
--- a/gralloc_drm.c
+++ b/gralloc_drm.c
@@ -357,8 +357,13 @@
{
if ((bo->handle->usage & usage) != usage) {
/* make FB special for testing software renderer with */
- if (!(bo->handle->usage & GRALLOC_USAGE_HW_FB))
+
+ if (!(bo->handle->usage & GRALLOC_USAGE_HW_FB)
+ && !(bo->handle->usage & GRALLOC_USAGE_HW_TEXTURE)) {
+ ALOGE("bo.usage:x%X/usage:x%X is not GRALLOC_USAGE_HW_FB or GRALLOC_USAGE_HW_TEXTURE"
+ ,bo->handle->usage,usage);
return -EINVAL;
+ }
}
/* allow multiple locks with compatible usages */