--- src/gbm/backends/dri/gbm_dri.c | 6 +++++- src/gbm/main/gbm.c | 14 ++++++++++++++ src/gbm/main/gbm.h | 3 +++ src/gbm/main/gbmint.h | 1 + 4 files changed, 23 insertions(+), 1 deletions(-) mode change 100644 => 100755 src/gbm/main/gbm.c mode change 100644 => 100755 src/gbm/main/gbm.h mode change 100644 => 100755 src/gbm/main/gbmint.h
diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index 32cde66..383a5a5 100755 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -389,6 +389,8 @@ gbm_dri_bo_create_from_egl_image(struct gbm_device *gbm, (int *) &bo->base.base.pitch); dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FORMAT, &dri_format); + dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_NAME, + (uint32_t *) &bo->base.base.handle2.u32); bo->base.base.format = gbm_dri_to_gbm_format(dri_format); @@ -457,7 +459,9 @@ gbm_dri_bo_create(struct gbm_device *gbm, &bo->base.base.handle.s32); dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE, (int *) &bo->base.base.pitch); - + dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_NAME, + (uint32_t *) &bo->base.base.handle2.u32); + return &bo->base.base; } diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c old mode 100644 new mode 100755 index 3994f86..f445bb1 --- a/src/gbm/main/gbm.c +++ b/src/gbm/main/gbm.c @@ -231,6 +231,20 @@ gbm_bo_get_handle(struct gbm_bo *bo) return bo->handle; } +/** Get handle2 (buffer region name) of the buffer object + * + * This is stored in the platform generic union gbm_bo_handle type. However + * the format of this handle is platform specific. + * + * \param bo The buffer object + * \return Returns the handle of the allocated buffer object + */ +GBM_EXPORT union gbm_bo_handle +gbm_bo_get_handle2(struct gbm_bo *bo) +{ + return bo->handle2; +} + /** Write data into the buffer object * * If the buffer object was created with the GBM_BO_USE_WRITE flag, diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h old mode 100644 new mode 100755 index af5dc5a..b7a2ffa --- a/src/gbm/main/gbm.h +++ b/src/gbm/main/gbm.h @@ -254,6 +254,9 @@ gbm_bo_get_device(struct gbm_bo *bo); union gbm_bo_handle gbm_bo_get_handle(struct gbm_bo *bo); +union gbm_bo_handle +gbm_bo_get_handle2(struct gbm_bo *bo); + int gbm_bo_write(struct gbm_bo *bo, const void *buf, size_t count); diff --git a/src/gbm/main/gbmint.h b/src/gbm/main/gbmint.h old mode 100644 new mode 100755 index 8eb8671..5e48e89 --- a/src/gbm/main/gbmint.h +++ b/src/gbm/main/gbmint.h @@ -95,6 +95,7 @@ struct gbm_bo { uint32_t pitch; uint32_t format; union gbm_bo_handle handle; + union gbm_bo_handle handle2; void *user_data; void (*destroy_user_data)(struct gbm_bo *, void *); }; -- 1.7.5.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev