On 04/24/2012 07:49 AM, Sean V Kelley wrote: > Enabled MESA_FORMAT_RGBX8888_REV for RGBX. Android software > requires RGBX8888 format to be supported for software rendering. > That requires EGL to be capable of generating images from this > format. > > Signed-off-by: Sean V Kelley <sean.v.kel...@linux.intel.com> > --- > src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 2 ++ > src/mesa/drivers/dri/intel/intel_screen.c | 10 ++++++++++ > 2 files changed, 12 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > index 69af0ee..8983195 100644 > --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c > @@ -291,6 +291,8 @@ brw_format_for_mesa_format(gl_format mesa_format) > [MESA_FORMAT_RGBA8888_REV] = BRW_SURFACEFORMAT_R8G8B8A8_UNORM, > [MESA_FORMAT_ARGB8888] = BRW_SURFACEFORMAT_B8G8R8A8_UNORM, > [MESA_FORMAT_ARGB8888_REV] = 0, > + [MESA_FORMAT_RGBX8888] = 0, > + [MESA_FORMAT_RGBX8888_REV] = BRW_SURFACEFORMAT_R8G8B8X8_UNORM, > [MESA_FORMAT_XRGB8888] = BRW_SURFACEFORMAT_B8G8R8X8_UNORM, > [MESA_FORMAT_XRGB8888_REV] = 0, > [MESA_FORMAT_RGB888] = 0, > diff --git a/src/mesa/drivers/dri/intel/intel_screen.c > b/src/mesa/drivers/dri/intel/intel_screen.c > index e823792..7edf5c1 100644 > --- a/src/mesa/drivers/dri/intel/intel_screen.c > +++ b/src/mesa/drivers/dri/intel/intel_screen.c > @@ -209,6 +209,11 @@ intel_create_image_from_name(__DRIscreen *screen, > image->internal_format = GL_RGBA; > image->data_type = GL_UNSIGNED_BYTE; > break; > + case __DRI_IMAGE_FORMAT_XBGR8888: > + image->format = MESA_FORMAT_RGBX8888_REV; > + image->internal_format = GL_RGB; > + image->data_type = GL_UNSIGNED_BYTE; > + break; > default: > free(image); > return NULL; > @@ -310,6 +315,11 @@ intel_create_image(__DRIscreen *screen, > image->internal_format = GL_RGBA; > image->data_type = GL_UNSIGNED_BYTE; > break; > + case __DRI_IMAGE_FORMAT_XBGR8888: > + image->format = MESA_FORMAT_RGBX8888_REV; > + image->internal_format = GL_RGB; > + image->data_type = GL_UNSIGNED_BYTE; > + break; > default: > free(image); > return NULL;
This looks good to me, but I want to see a comment from Ken or Eric before committing because they are more familiar with the format code. Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> I wish we had a test for this new format, but I don't see a way to easily write one. One possiblity is that we write a test using EGL_PLATFORM=drm; add a new gbm format, GBM_FORMAT_XBGR888; allocate a buffer with the new format and pass it to the driver with GLEGLImageTargetRenderbufferStorageOES. (I don't know much about GBM, so I'm climbing out on a limb here). Ken or Eric, any ideas? ---- Chad Versace chad.vers...@linux.intel.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev