This is needed during the layer composition planning phase to determine if a
layer is protected and therefore needs to be in its own overlay.
BUG=chrome-os-partner:43674
Change-Id: I33510a5a56b57aaaf55732149ae3e3d2f92ada79
struct DrmHwcLayer {
buffer_handle_t sf_handle = NULL;
+ int gralloc_buffer_usage = 0;
DrmHwcBuffer buffer;
DrmHwcNativeHandle handle;
DrmHwcTransform transform = DrmHwcTransform::kIdentity;
* void **priv);
*/
GRALLOC_MODULE_PERFORM_GET_IMPORTER_PRIVATE = 0xffeeff02,
+
+ /* perform(const struct gralloc_module_t *mod,
+ * int op,
+ * buffer_handle_t buffer,
+ * int *usage);
+ */
+ GRALLOC_MODULE_PERFORM_GET_USAGE = 0xffeeff03,
};
typedef struct hwc_drm_bo {
if (ret)
return ret;
+ ret = gralloc->perform(gralloc, GRALLOC_MODULE_PERFORM_GET_USAGE,
+ handle.get(), &gralloc_buffer_usage);
+ if (ret) {
+ // TODO(zachr): Once GRALLOC_MODULE_PERFORM_GET_USAGE is implemented, remove
+ // "ret = 0" and enable the error logging code.
+ ret = 0;
+#if 0
+ ALOGE("Failed to get usage for buffer %p (%d)", handle.get(), ret);
+ return ret;
+#endif
+ }
+
return 0;
}