Thanks Paul, I have updated the patch as following. Another colleague is working on texture support of YUYV format, patches will come soon.
>From c036437ab676f26f8f1b788cbfafaca4b4b6005a Mon Sep 17 00:00:00 2001 From: Zhao Halley <halley.z...@intel.com> Date: Fri, 25 May 2012 11:36:48 +0800 Subject: [PATCH 02/10] intel: add YUYV format for dri images YUYV image works for overlay now YUYV image works for texture will come soon --- src/mesa/drivers/dri/intel/intel_screen.c | 10 ++++++++++ src/mesa/drivers/dri/intel/intel_tex_image.c | 6 ++++++ 2 files changed, 16 insertions(+), 0 deletions(-) mode change 100644 => 100755 src/mesa/drivers/dri/intel/intel_screen.c mode change 100644 => 100755 src/mesa/drivers/dri/intel/intel_tex_image.c diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c old mode 100644 new mode 100755 index 458178f..3b8f81e --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -216,6 +216,11 @@ intel_create_image_from_name(__DRIscreen *screen, image->internal_format = GL_RGB; image->data_type = GL_UNSIGNED_BYTE; break; + case __DRI_IMAGE_FORMAT_YUYV: + image->format = MESA_FORMAT_YCBCR; + image->internal_format = GL_YCBCR_MESA; + image->data_type = GL_UNSIGNED_BYTE; + break; default: free(image); return NULL; @@ -343,6 +348,11 @@ intel_create_image(__DRIscreen *screen, image->internal_format = GL_RGB; image->data_type = GL_UNSIGNED_BYTE; break; + case __DRI_IMAGE_FORMAT_YUYV: + image->format = MESA_FORMAT_YCBCR; + image->internal_format = GL_YCBCR_MESA; + image->data_type = GL_UNSIGNED_BYTE; + break; default: free(image); return NULL; diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c old mode 100644 new mode 100755 index 094d3cd..643e688 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -388,6 +388,12 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target, if (image == NULL) return; + if (image->format == MESA_FORMAT_YCBCR) { + _mesa_error(&intel->ctx, GL_INVALID_OPERATION, + "glEGLImageTargetTexture2DOES, YUYV format isn't supported yet"); + return; + } + intel_set_texture_image_region(ctx, texImage, image->region, target, image->internal_format, image->format); } -- 1.7.5.4 On Thu, 2012-06-14 at 08:37 -0600, Brian Paul wrote: > On 06/14/2012 04:32 AM, Zhao Halley wrote: > > add YUYV format for dri image > > Minor nit: the first line of the patch comment should be something > like: "intel: add YUYV format for dri images" > > > YUYV image doesn't use for texture > > ?? Can you rewrite/clarify that? > > > > --- > > src/mesa/drivers/dri/intel/intel_screen.c | 10 ++++++++++ > > src/mesa/drivers/dri/intel/intel_tex_image.c | 6 ++++++ > > 2 files changed, 16 insertions(+), 0 deletions(-) > > mode change 100644 => 100755 src/mesa/drivers/dri/intel/intel_screen.c > > mode change 100644 => 100755 src/mesa/drivers/dri/intel/intel_tex_image.c > > > > diff --git a/src/mesa/drivers/dri/intel/intel_screen.c > > b/src/mesa/drivers/dri/intel/intel_screen.c > > old mode 100644 > > new mode 100755 > > index 458178f..3b8f81e > > --- a/src/mesa/drivers/dri/intel/intel_screen.c > > +++ b/src/mesa/drivers/dri/intel/intel_screen.c > > @@ -216,6 +216,11 @@ intel_create_image_from_name(__DRIscreen *screen, > > image->internal_format = GL_RGB; > > image->data_type = GL_UNSIGNED_BYTE; > > break; > > + case __DRI_IMAGE_FORMAT_YUYV: > > + image->format = MESA_FORMAT_YCBCR; > > + image->internal_format = GL_YCBCR_MESA; > > + image->data_type = GL_UNSIGNED_BYTE; > > + break; > > default: > > free(image); > > return NULL; > > @@ -343,6 +348,11 @@ intel_create_image(__DRIscreen *screen, > > image->internal_format = GL_RGB; > > image->data_type = GL_UNSIGNED_BYTE; > > break; > > + case __DRI_IMAGE_FORMAT_YUYV: > > + image->format = MESA_FORMAT_YCBCR; > > + image->internal_format = GL_YCBCR_MESA; > > + image->data_type = GL_UNSIGNED_BYTE; > > + break; > > default: > > free(image); > > return NULL; > > diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c > > b/src/mesa/drivers/dri/intel/intel_tex_image.c > > old mode 100644 > > new mode 100755 > > index 094d3cd..8b94cb1 > > --- a/src/mesa/drivers/dri/intel/intel_tex_image.c > > +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c > > @@ -388,6 +388,12 @@ intel_image_target_texture_2d(struct gl_context *ctx, > > GLenum target, > > if (image == NULL) > > return; > > > > + if (image->format == MESA_FORMAT_YCBCR) { > > + _mesa_error(&intel->ctx, > > + GL_INVALID_OPERATION, "glEGLImageTargetTexture2DOES, attach > > YUYV region to texture is not supported"); > > Can you wrap that call to 80 columns? > > > > + return; > > + } > > + > > intel_set_texture_image_region(ctx, texImage, image->region, > > target, image->internal_format, > > image->format); > > } > > > -Brian > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev