0035-gbm-add-some-new-GBM-formats.patch 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. From 7d5e378bf6fb2c000d17805032cb044b38d1218d Mon Sep 17 00:00:00 2001
  2. From: Silvestrs Timofejevs <silvestrs.timofejevs@imgtec.com>
  3. Date: Thu, 30 Aug 2018 13:48:53 +0100
  4. Subject: [PATCH] gbm: add some new GBM formats
  5. GBM_FORMAT_ARGB4444
  6. GBM_FORMAT_BGR888
  7. GBM_FORMAT_YUYV
  8. GBM_FORMAT_YVU444_PACK10_IMG
  9. ---
  10. src/gbm/backends/dri/gbm_dri.c | 16 ++++++++++++++++
  11. src/gbm/main/gbm.h | 2 ++
  12. 2 files changed, 18 insertions(+)
  13. diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
  14. index 2aa9c7c..5acb15b 100644
  15. --- a/src/gbm/backends/dri/gbm_dri.c
  16. +++ b/src/gbm/backends/dri/gbm_dri.c
  17. @@ -514,11 +514,21 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
  18. { 10, 5, 0, 11 },
  19. { 5, 5, 5, 1 },
  20. },
  21. + {
  22. + GBM_FORMAT_ARGB4444, __DRI_IMAGE_FORMAT_ARGB4444,
  23. + { 8, 4, 0, 12 },
  24. + { 4, 4, 4, 4 },
  25. + },
  26. {
  27. GBM_FORMAT_RGB565, __DRI_IMAGE_FORMAT_RGB565,
  28. { 11, 5, 0, -1 },
  29. { 5, 6, 5, 0 },
  30. },
  31. + {
  32. + GBM_FORMAT_BGR888, __DRI_IMAGE_FORMAT_BGR888,
  33. + { 0, 8, 16, -1 },
  34. + { 8, 8, 8, 0 },
  35. + },
  36. {
  37. GBM_FORMAT_XRGB8888, __DRI_IMAGE_FORMAT_XRGB8888,
  38. { 16, 8, 0, -1 },
  39. @@ -571,6 +581,12 @@ static const struct gbm_dri_visual gbm_dri_visuals_table[] = {
  40. { 16, 16, 16, 16 },
  41. true,
  42. },
  43. + {
  44. + GBM_FORMAT_YUYV, __DRI_IMAGE_FORMAT_YUYV,
  45. + },
  46. + {
  47. + GBM_FORMAT_YVU444_PACK10_IMG, __DRI_IMAGE_FORMAT_YVU444_PACK10_IMG,
  48. + },
  49. };
  50. static int
  51. diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h
  52. index 7c82cd6..81308ab 100644
  53. --- a/src/gbm/main/gbm.h
  54. +++ b/src/gbm/main/gbm.h
  55. @@ -167,6 +167,8 @@ enum gbm_bo_format {
  56. #define GBM_FORMAT_AYUV __gbm_fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
  57. +#define GBM_FORMAT_YVU444_PACK10_IMG __gbm_fourcc_code('I', 'M', 'G', '2') /* [31:0] unused:Y:Cr:Cb 2:10:10:10 little endian */
  58. +
  59. /*
  60. * 2 plane YCbCr
  61. * index 0 = Y plane, [7:0] Y