st/dri: track if image is created by a dmabuf
Will be used by EXT_EGL_image_storage later. Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3375>
This commit is contained in:
parent
2629cb627c
commit
be347863ba
|
@ -182,6 +182,8 @@ struct st_egl_image
|
|||
|
||||
unsigned level;
|
||||
unsigned layer;
|
||||
/* GL internal format. */
|
||||
unsigned internalformat;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -938,6 +938,7 @@ dri2_create_image_from_fd(__DRIscreen *_screen,
|
|||
img->dri_components = map->dri_components;
|
||||
img->dri_fourcc = fourcc;
|
||||
img->dri_format = map->dri_format;
|
||||
img->imported_dmabuf = TRUE;
|
||||
|
||||
exit:
|
||||
if (error)
|
||||
|
|
|
@ -473,6 +473,14 @@ dri_get_egl_image(struct st_manager *smapi,
|
|||
stimg->level = img->level;
|
||||
stimg->layer = img->layer;
|
||||
|
||||
if (img->imported_dmabuf && map) {
|
||||
/* Guess sized internal format for dma-bufs. Could be used
|
||||
* by EXT_EGL_image_storage.
|
||||
*/
|
||||
mesa_format mesa_format = driImageFormatToGLFormat(map->dri_format);
|
||||
stimg->internalformat = driGLFormatToSizedInternalGLFormat(mesa_format);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -109,6 +109,7 @@ struct __DRIimageRec {
|
|||
|
||||
void *loader_private;
|
||||
|
||||
boolean imported_dmabuf;
|
||||
/**
|
||||
* Provided by EGL_EXT_image_dma_buf_import.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue