gbm: track buffer format through DRI drivers
[mesa.git] / src / gallium / state_trackers / dri / drm / dri2.c
index 4c08a025ed22d7f5c8e4d8040acf3f55173d6cde..cc8023d02d573c6026cf8aacbbd8e0a5f119c2ec 100644 (file)
@@ -440,6 +440,8 @@ dri2_create_image_from_name(__DRIscreen *_screen,
 
    tex_usage = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
 
+   img->dri_format = format;
+
    switch (format) {
    case __DRI_IMAGE_FORMAT_RGB565:
       pf = PIPE_FORMAT_B5G6R5_UNORM;
@@ -569,6 +571,7 @@ dri2_create_image(__DRIscreen *_screen,
 
    img->level = 0;
    img->layer = 0;
+   img->dri_format = format;
 
    img->loader_private = loaderPrivate;
    return img;
@@ -598,6 +601,9 @@ dri2_query_image(__DRIimage *image, int attrib, int *value)
          image->texture, &whandle);
       *value = whandle.handle;
       return GL_TRUE;
+   case __DRI_IMAGE_ATTRIB_FORMAT:
+      *value = image->dri_format;
+      return GL_TRUE;
    default:
       return GL_FALSE;
    }