[Piglit] [PATCH 4/4] ext_image_dma_buf_import: Fix build with mesa < 9.2

Pohjolainen, Topi topi.pohjolainen at intel.com
Thu Sep 12 10:26:41 PDT 2013


On Thu, Sep 12, 2013 at 10:11:41AM -0700, Chad Versace wrote:
> On 09/11/2013 05:34 AM, Pohjolainen, Topi wrote:
> >On Tue, Sep 10, 2013 at 11:07:54AM -0700, Chad Versace wrote:
> >>The extension EGL_EXT_image_dma_buf_import is a recent extension,
> >>published 2013-02-09, and therefore the eglext.h on many systems do not
> >>define it.  The first Mesa version in which eglext.h defined the
> >>extension was was Mesa 9.2.
> >>
> >>To fix the build on such systems, define the extension's enums in
> >>image_common.h.
> >
> >Is there any way we could use the 'EGL_EGLEXT_VERSION' found in the "eglext.h"?
> >I'm just thinking that if the header is too old than the EGL stack is too old
> >to support the tests anyway.
> 
> Yes, it's possible to verify header information during CMake configuration with
> check_c_source_compiles(). But, I'm not convinced that's the right thing to do here.
> I have often seen people build Piglit in a way that the GL and EGL headers and libraries
> that get used during compilation and linking are those located in /usr, but the
> libraries used when running tests are those located in the Mesa build directory.
> If Piglit were to base its decision to build the dma_buf tests on the contents
> of /usr/include/EGL/eglext.h, then many users would not run the dma_buf tests
> despite that their local Mesa build is capable.

That makes sense to me. I suspected that you had thought about it already :)

> 
> >
> >>
> >>Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
> >>---
> >>  tests/spec/ext_image_dma_buf_import/image_common.h | 30 ++++++++++++++++++++++
> >>  .../spec/ext_image_dma_buf_import/sample_common.c  |  4 +--
> >>  2 files changed, 31 insertions(+), 3 deletions(-)
> >>
> >>diff --git a/tests/spec/ext_image_dma_buf_import/image_common.h b/tests/spec/ext_image_dma_buf_import/image_common.h
> >>index 29338c0..a9a1715 100644
> >>--- a/tests/spec/ext_image_dma_buf_import/image_common.h
> >>+++ b/tests/spec/ext_image_dma_buf_import/image_common.h
> >>@@ -35,6 +35,36 @@
> >>  #define EGL_EGLEXT_PROTOTYPES 1
> >>  #include <EGL/eglext.h>
> >>
> >>+/* We define here the enums for EGL_EXT_image_dma_buf_import because, as of
> >>+ * today (2013-09-10), the eglext.h on many systems lack them.  The first Mesa
> >>+ * version in which eglext.h defined the enums was Mesa 9.2 (2013-08-27).
> >>+ */
> >>+#ifndef EGL_EXT_image_dma_buf_import
> >>+#define EGL_EXT_image_dma_buf_import 1
> >>+#define EGL_LINUX_DMA_BUF_EXT			0x3270
> >>+#define EGL_LINUX_DRM_FOURCC_EXT		0x3271
> >>+#define EGL_DMA_BUF_PLANE0_FD_EXT		0x3272
> >>+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT		0x3273
> >>+#define EGL_DMA_BUF_PLANE0_PITCH_EXT		0x3274
> >>+#define EGL_DMA_BUF_PLANE1_FD_EXT		0x3275
> >>+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT		0x3276
> >>+#define EGL_DMA_BUF_PLANE1_PITCH_EXT		0x3277
> >>+#define EGL_DMA_BUF_PLANE2_FD_EXT		0x3278
> >>+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT		0x3279
> >>+#define EGL_DMA_BUF_PLANE2_PITCH_EXT		0x327A
> >>+#define EGL_YUV_COLOR_SPACE_HINT_EXT		0x327B
> >>+#define EGL_SAMPLE_RANGE_HINT_EXT		0x327C
> >>+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
> >>+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
> >>+#define EGL_ITU_REC601_EXT			0x327F
> >>+#define EGL_ITU_REC709_EXT			0x3280
> >>+#define EGL_ITU_REC2020_EXT			0x3281
> >>+#define EGL_YUV_FULL_RANGE_EXT			0x3282
> >>+#define EGL_YUV_NARROW_RANGE_EXT		0x3283
> >>+#define EGL_YUV_CHROMA_SITING_0_EXT		0x3284
> >>+#define EGL_YUV_CHROMA_SITING_0_5_EXT		0x3285
> >>+#endif
> >>+
> >>  extern PFNEGLCREATEIMAGEKHRPROC image_common_dispatch_eglCreateImageKHR;
> >>  #define eglCreateImageKHR image_common_dispatch_eglCreateImageKHR
> >>
> >>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 29877be..44dec39 100644
> >>--- a/tests/spec/ext_image_dma_buf_import/sample_common.c
> >>+++ b/tests/spec/ext_image_dma_buf_import/sample_common.c
> >>@@ -22,9 +22,7 @@
> >>   */
> >>
> >>  #include "sample_common.h"
> >>-#include "piglit-util-egl.h"
> >>-#define EGL_EGLEXT_PROTOTYPES 1
> >>-#include <EGL/eglext.h>
> >>+#include "image_common.h"
> >>  #include <unistd.h>
> >>
> >>  static const char fs_src[] =
> >>--
> >>1.8.3.1
> >>
> >
> 


More information about the Piglit mailing list