[Mesa-dev] [PATCH 2/3] egl: Wrap dri3 surface primitive around dri2 egl surface

Eric Engestrom eric.engestrom at imgtec.com
Fri Sep 15 13:43:12 UTC 2017


On Friday, 2017-09-15 12:06:57 +0530, yogesh.marathe at intel.com wrote:
> From: Yogesh Marathe <yogesh.marathe at intel.com>
> 
> Originally dri3 egl surface was wrapped around _EGLSurface. To support
> explicit sync, new variables (e.g. enable_out_fence) were added to
> dri2_egl_surface. As we reference these new variables we write on to
> dri3 loader bits. These get toggled later in execution due to dri3
> loader. This results in enable_out_fence to have garbage value and
> further triggers an assert on dri3 platforms even where fences are not
> supported in kernel.
> 
> Thanks to Rafael Antognolli, Emil Velikov and Mark Janes for catching
> and root causing this.
> 
> Tested with Intel Mesa CI.

I assume you only tested the result of the 3 patches combined, because
I'm pretty sure mesa can't compile after patches 1/3 and 2/3: 1/3 makes
use of the s/base/surf.base/ change before this patch does that change,
and with this patch (2/3) the changes in 3/3 are needed as well.

Please run
$ git rebase --interactive --exec make origin/master
on your branch to make sure each commit compiles.

> 
> Signed-off-by: Yogesh Marathe <yogesh.marathe at intel.com>
> ---
>  src/egl/drivers/dri2/platform_x11_dri3.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/egl/drivers/dri2/platform_x11_dri3.h b/src/egl/drivers/dri2/platform_x11_dri3.h
> index 13d8572..96e7ee9 100644
> --- a/src/egl/drivers/dri2/platform_x11_dri3.h
> +++ b/src/egl/drivers/dri2/platform_x11_dri3.h
> @@ -28,7 +28,7 @@
>  _EGL_DRIVER_TYPECAST(dri3_egl_surface, _EGLSurface, obj)
>  
>  struct dri3_egl_surface {
> -   _EGLSurface base;
> +   struct dri2_egl_surface surf;
>     struct loader_dri3_drawable loader_drawable;
>  };
>  
> -- 
> 2.7.4
> 


More information about the mesa-dev mailing list