[Intel-gfx] [PATCH] glXReleaseTexImageEXT should release reference to storage for the pixmap

Julien Cristau jcristau at debian.org
Mon Jun 1 10:40:31 CEST 2009


On Mon, Jun  1, 2009 at 11:22:19 +0800, Shuang He wrote:

> According to GLX_EXT_texture_from_pixmap spec, "The storage for the GLX pixmap will be freed when it is not current to any client and all color buffers that are bound to a texture object have been released."
> ---
>  include/GL/internal/dri_interface.h          |    8 +++++
>  src/glx/x11/glxcmds.c                        |   18 ++++++++++-
>  src/mesa/drivers/dri/intel/intel_screen.c    |    2 +
>  src/mesa/drivers/dri/intel/intel_tex.h       |    7 ++++
>  src/mesa/drivers/dri/intel/intel_tex_image.c |   42 ++++++++++++++++++++++++++
>  5 files changed, 76 insertions(+), 1 deletions(-)
> 
> diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
> index 910c916..e4cb308 100644
> --- a/include/GL/internal/dri_interface.h
> +++ b/include/GL/internal/dri_interface.h
> @@ -245,6 +245,10 @@ struct __DRItexBufferExtensionRec {
>      void (*setTexBuffer)(__DRIcontext *pDRICtx,
>  			 GLint target,
>  			 __DRIdrawable *pDraw);
> +    void (*unsetTexBuffer)(__DRIcontext *pDRICtx,
> +			 GLint target,
> +			 __DRIdrawable *pDraw);
> +
>  
Adding this in the middle of the struct looks like it breaks binary
compat.  I think what you want is to add one unsetTexBuffer hook at the
end, and bump the interface version to 3, no?

>      /**
>       * Method to override base texture image with the contents of a
> @@ -256,6 +260,10 @@ struct __DRItexBufferExtensionRec {
>  			  GLint target,
>  			  GLint format,
>  			  __DRIdrawable *pDraw);
> +    void (*unsetTexBuffer2)(__DRIcontext *pDRICtx,
> +			  GLint target,
> +			  __DRIdrawable *pDraw);
> +
>  };
>  
>  /**

Cheers,
Julien



More information about the Intel-gfx mailing list