[Mesa-dev] [PATCH 05/11] gbm: Pull out FourCC <-> DRIimage format table

Emil Velikov emil.l.velikov at gmail.com
Mon Jul 3 11:11:20 UTC 2017


On 28 June 2017 at 16:02, Lucas Stach <l.stach at pengutronix.de> wrote:
> Am Freitag, den 16.06.2017, 18:14 +0100 schrieb Daniel Stone:
>> Rather than duplicated (yet asymmetric) open-coded tables, pull them out
>> to a common structure.
>>
>> Signed-off-by: Daniel Stone <daniels at collabora.com>
>> ---
>>  src/gbm/Makefile.am            |   1 +
>>  src/gbm/backends/dri/gbm_dri.c | 105 ++++++++++++++++++-----------------------
>>  2 files changed, 46 insertions(+), 60 deletions(-)
>>
>> diff --git a/src/gbm/Makefile.am b/src/gbm/Makefile.am
>> index 60b0924506..de8396000b 100644
>> --- a/src/gbm/Makefile.am
>> +++ b/src/gbm/Makefile.am
>> @@ -5,6 +5,7 @@ pkgconfig_DATA = main/gbm.pc
>>
>>  AM_CFLAGS = \
>>       -I$(top_srcdir)/include \
>> +     -I$(top_srcdir)/src \
>>       -I$(top_srcdir)/src/loader \
>>       -I$(top_srcdir)/src/gbm/main \
>>       $(DLOPEN_CFLAGS) \
>> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
>> index 84f37d4cf5..3cdd7d505c 100644
>> --- a/src/gbm/backends/dri/gbm_dri.c
>> +++ b/src/gbm/backends/dri/gbm_dri.c
>> @@ -48,6 +48,7 @@
>>
>>  #include "gbmint.h"
>>  #include "loader.h"
>> +#include "util/macros.h"
>>
>>  /* For importing wl_buffer */
>>  #if HAVE_WAYLAND_PLATFORM
>> @@ -550,6 +551,48 @@ dri_screen_create_sw(struct gbm_dri_device *dri)
>>     return dri_screen_create_swrast(dri);
>>  }
>>
>> +static const struct {
>> +   uint32_t gbm_format;
>> +   int dri_image_format;
>> +} gbm_to_dri_image_formats[] = {
>> +   { GBM_FORMAT_R8, __DRI_IMAGE_FORMAT_R8 },
>> +   { GBM_FORMAT_GR88, __DRI_IMAGE_FORMAT_GR88 },
>> +   { GBM_FORMAT_RGB565, __DRI_IMAGE_FORMAT_RGB565 },
>> +   { GBM_FORMAT_XRGB8888, __DRI_IMAGE_FORMAT_XRGB8888 },
>> +   { GBM_FORMAT_ARGB8888, __DRI_IMAGE_FORMAT_ARGB8888 },
>> +   { GBM_FORMAT_XBGR8888, __DRI_IMAGE_FORMAT_XBGR8888 },
>> +   { GBM_FORMAT_ABGR8888, __DRI_IMAGE_FORMAT_ABGR8888 },
>> +   { GBM_FORMAT_XRGB2101010, __DRI_IMAGE_FORMAT_XRGB2101010 },
>> +   { GBM_FORMAT_ARGB2101010, __DRI_IMAGE_FORMAT_ARGB2101010 },
>> +};
>
> This drops the GBM_BO_FORMAT_XRGB8888 and GBM_BO_FORMAT_ARGB8888
> handling present in the gbm_dri_bo_import() conversion function. I'm not
> sure if/how this is still in-use, but I would prefer to keep those for
> the sake of backwards compatibility.
>
I think it's good idea to keep support for GBM_BO_FORMAT_*. We could
even static inline a helper that converts them to GBM_FORMAT_... ;-)

-Emil


More information about the mesa-dev mailing list