gbm: Create a gbm_device getter for stride
authorBen Widawsky <ben@bwidawsk.net>
Wed, 26 Oct 2016 19:26:51 +0000 (12:26 -0700)
committerBen Widawsky <ben@bwidawsk.net>
Thu, 9 Mar 2017 23:35:44 +0000 (15:35 -0800)
This will be used so we can query information per plane.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Cc: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
src/gbm/backends/dri/gbm_dri.c
src/gbm/main/gbm.c
src/gbm/main/gbmint.h

index e058361e4d108ccec707db363e8c1eb2c3df8f78..6a834182b5baf77509f78bad8da4018a5d8f9e80 100644 (file)
@@ -662,6 +662,12 @@ gbm_dri_bo_get_handle_for_plane(struct gbm_bo *_bo, int plane)
    return ret;
 }
 
+static uint32_t
+gbm_dri_bo_get_stride(struct gbm_bo *_bo, int plane)
+{
+   return _bo->stride;
+}
+
 static void
 gbm_dri_bo_destroy(struct gbm_bo *_bo)
 {
@@ -1156,6 +1162,7 @@ dri_device_create(int fd)
    dri->base.base.bo_get_fd = gbm_dri_bo_get_fd;
    dri->base.base.bo_get_planes = gbm_dri_bo_get_planes;
    dri->base.base.bo_get_handle = gbm_dri_bo_get_handle_for_plane;
+   dri->base.base.bo_get_stride = gbm_dri_bo_get_stride;
    dri->base.base.bo_destroy = gbm_dri_bo_destroy;
    dri->base.base.destroy = dri_destroy;
    dri->base.base.surface_create = gbm_dri_surface_create;
index 066ceffc0a377e48248215d806606739c692a36a..7462e90c4c5e8cd6c4f27f63468e7e8f67ee8e16 100644 (file)
@@ -165,7 +165,7 @@ gbm_bo_get_height(struct gbm_bo *bo)
 GBM_EXPORT uint32_t
 gbm_bo_get_stride(struct gbm_bo *bo)
 {
-   return bo->stride;
+   return bo->gbm->bo_get_stride(bo, 0);
 }
 
 /** Get the format of the buffer object
index 0ec531d09916fc4ad627b87da6b644dfd2ee0242..26d18bab6bf48e7fba8f483c24769284d080fe9b 100644 (file)
@@ -78,6 +78,7 @@ struct gbm_device {
    int (*bo_get_fd)(struct gbm_bo *bo);
    int (*bo_get_planes)(struct gbm_bo *bo);
    union gbm_bo_handle (*bo_get_handle)(struct gbm_bo *bo, int plane);
+   uint32_t (*bo_get_stride)(struct gbm_bo *bo, int plane);
    void (*bo_destroy)(struct gbm_bo *bo);
 
    struct gbm_surface *(*surface_create)(struct gbm_device *gbm,