[Piglit] [PATCH] EGL_EXT_image_dma_buf_import: add P10 format support
Tapani Pälli
tapani.palli at intel.com
Thu Feb 7 10:59:21 UTC 2019
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Signed-off-by: Harish Krupo <harish.krupo.kps at intel.com>
---
I also made MR of this but only then realized MR's are not used with
Piglit just yet!
tests/opengl.py | 2 ++
.../spec/ext_image_dma_buf_import/sample_common.c | 1 +
.../spec/ext_image_dma_buf_import/sample_common.h | 1 +
tests/spec/ext_image_dma_buf_import/sample_yuv.c | 14 ++++++++++++++
.../util/piglit-framework-gl/piglit_drm_dma_buf.c | 5 +++++
.../util/piglit-framework-gl/piglit_drm_dma_buf.h | 4 ++++
6 files changed, 27 insertions(+)
diff --git a/tests/opengl.py b/tests/opengl.py
index 97dfbf984..8676e231c 100644
--- a/tests/opengl.py
+++ b/tests/opengl.py
@@ -3030,6 +3030,8 @@ with profile.test_list.group_manager(
'ext_image_dma_buf_import-sample_yvu420', run_concurrent=False)
g(['ext_image_dma_buf_import-sample_yuv', '-fmt=AYUV'],
'ext_image_dma_buf_import-sample_ayuv', run_concurrent=False)
+ g(['ext_image_dma_buf_import-sample_yuv', '-fmt=P010'],
+ 'ext_image_dma_buf_import-sample_p010', run_concurrent=False)
g(['ext_image_dma_buf_import-transcode-nv12-as-r8-gr88'],
'ext_image_dma_buf_import-transcode-nv12-as-r8-gr88',
run_concurrent=False)
diff --git a/tests/spec/ext_image_dma_buf_import/sample_common.c b/tests/spec/ext_image_dma_buf_import/sample_common.c
index 2f586c774..426f4cc52 100644
--- a/tests/spec/ext_image_dma_buf_import/sample_common.c
+++ b/tests/spec/ext_image_dma_buf_import/sample_common.c
@@ -153,6 +153,7 @@ egl_image_for_dma_buf_fd(struct piglit_dma_buf *buf, int fd, int fourcc, EGLImag
EGLint *attr;
switch (fourcc) {
case DRM_FORMAT_NV12:
+ case DRM_FORMAT_P010:
attr = attr_nv12;
break;
case DRM_FORMAT_YUV420:
diff --git a/tests/spec/ext_image_dma_buf_import/sample_common.h b/tests/spec/ext_image_dma_buf_import/sample_common.h
index 36a5bb584..155301250 100644
--- a/tests/spec/ext_image_dma_buf_import/sample_common.h
+++ b/tests/spec/ext_image_dma_buf_import/sample_common.h
@@ -25,6 +25,7 @@
#include "piglit-util-egl.h"
#include "piglit-util-gl.h"
+#include "piglit-framework-gl/piglit_drm_dma_buf.h"
/**
* Create a dma buffer with format 'fourcc' setting the given pixels as its
diff --git a/tests/spec/ext_image_dma_buf_import/sample_yuv.c b/tests/spec/ext_image_dma_buf_import/sample_yuv.c
index ed9f87e0f..35564049e 100644
--- a/tests/spec/ext_image_dma_buf_import/sample_yuv.c
+++ b/tests/spec/ext_image_dma_buf_import/sample_yuv.c
@@ -45,6 +45,17 @@ static int fourcc = -1;
enum piglit_result
piglit_display(void)
{
+ static const uint16_t p010[] = {
+ /* Y */
+ 12850, 17990, 23130, 28270,
+ 12850, 17990, 23130, 28270,
+ 12850, 17990, 23130, 28270,
+ 12850, 17990, 23130, 28270,
+ /* UV */
+ 30840, 33410, 35980, 33410,
+ 30840, 41120, 35980, 41120,
+ };
+
static const unsigned char nv12[] = {
/* Y */
50, 70, 90, 110,
@@ -127,6 +138,9 @@ piglit_display(void)
enum piglit_result res;
switch (fourcc) {
+ case DRM_FORMAT_P010:
+ t = (unsigned char *) p010;
+ break;
case DRM_FORMAT_NV12:
t = nv12;
break;
diff --git a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
index 13bf883f2..7f7420b23 100644
--- a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
+++ b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.c
@@ -163,6 +163,10 @@ piglit_intel_buf_create(unsigned w, unsigned h, unsigned fourcc,
cpp = 1;
buf_h = h * 3 / 2;
break;
+ case DRM_FORMAT_P010:
+ cpp = 2;
+ buf_h = h * 3 / 2;
+ break;
default:
fprintf(stderr, "invalid fourcc: %.4s\n", (char *)&fourcc);
return false;
@@ -192,6 +196,7 @@ piglit_intel_buf_create(unsigned w, unsigned h, unsigned fourcc,
switch (fourcc) {
case DRM_FORMAT_NV12:
+ case DRM_FORMAT_P010:
buf->offset[1] = stride * h;
buf->stride[1] = stride;
break;
diff --git a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.h b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.h
index b8a4e485d..b57ffa484 100644
--- a/tests/util/piglit-framework-gl/piglit_drm_dma_buf.h
+++ b/tests/util/piglit-framework-gl/piglit_drm_dma_buf.h
@@ -40,6 +40,10 @@
#define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
#endif
+#ifndef DRM_FORMAT_P010
+#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cb:Cr plane 10 bits per channel */
+#endif
+
/* added in libdrm 2.4.95 */
#ifndef DRM_FORMAT_INVALID
#define DRM_FORMAT_INVALID 0
--
2.20.1
More information about the Piglit
mailing list