[Mesa-dev] [PATCH 05/16] i965: Implement EGL_EXT_image_implicit_sync_control

Jason Ekstrand jason at jlekstrand.net
Fri Feb 9 23:48:23 UTC 2018


On Fri, Feb 9, 2018 at 3:43 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:

> From: Daniel Stone <daniels at collabora.com>
>
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
>

Ugh... I meant to take that off before sending...


> ---
>  src/mesa/drivers/dri/i965/intel_screen.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c
> b/src/mesa/drivers/dri/i965/intel_screen.c
> index 92d9e28..9a54f27 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -1369,8 +1369,14 @@ intel_from_planar(__DRIimage *parent, int plane,
> void *loaderPrivate)
>      return image;
>  }
>
> -static const __DRIimageExtension intelImageExtension = {
> -    .base = { __DRI_IMAGE, 16 },
> +static void
> +intel_image_suppress_implicit_sync(__DRIimage *image)
> +{
> +    image->bo->kflags |= EXEC_OBJECT_ASYNC;
> +}
> +
> +static __DRIimageExtension intelImageExtension = {
> +    .base = { __DRI_IMAGE, 18 },
>
>      .createImageFromName                = intel_create_image_from_name,
>      .createImageFromRenderbuffer        = intel_create_image_from_
> renderbuffer,
> @@ -1393,6 +1399,8 @@ static const __DRIimageExtension intelImageExtension
> = {
>      .queryDmaBufFormats                 = intel_query_dma_buf_formats,
>      .queryDmaBufModifiers               = intel_query_dma_buf_modifiers,
>      .queryDmaBufFormatModifierAttribs   = intel_query_format_modifier_
> attribs,
> +    .createImageFromRenderbuffer2       = NULL,
> +    .suppressImplicitSync               = NULL,
>  };
>
>  static uint64_t
> @@ -2683,6 +2691,11 @@ __DRIconfig **intelInitScreen2(__DRIscreen
> *dri_screen)
>           (ret != -1 || errno != EINVAL);
>     }
>
> +   if (intel_get_boolean(screen, I915_PARAM_HAS_EXEC_ASYNC)) {
> +      intelImageExtension.suppressImplicitSync =
> +         intel_image_suppress_implicit_sync;
>

I really don't like this.  Structs of function pointers really should be
static const.  That said, the screen is basically a singleton so maybe it
doesn't matter.

Another option would be to claim to always support and it just does nothing
on old kernels.  Prior to the scheduler landing, i915 was a FIFO anyway....


> +   }
> +
>     dri_screen->extensions = !screen->has_context_reset_notification
>        ? screenExtensions : intelRobustScreenExtensions;
>
> --
> 2.5.0.400.gff86faf
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180209/1b3d1fe9/attachment-0001.html>


More information about the mesa-dev mailing list