[Cogl] [PATCH 1/2] renderer: Only check certain constraints when selecting a driver

Robert Bragg robert at sixbynine.org
Thu Jun 27 05:55:37 PDT 2013


This looks good to land to me:

Reviewed-by: Robert Bragg <robert at linux.intel.com>

thanks,
- Robert


On Thu, Jun 27, 2013 at 10:05 AM, Neil Roberts <neil at linux.intel.com> wrote:
> Only COGL_RENDERER_CONSTRAINT_SUPPORTS_COGL_GLES2 affects the driver
> selection and all of the the other constraints are only relevant to
> the winsys selection. However Cogl was trying to apply all of the
> constraints to the driver selection which meant that if any other
> constraint was specified then it would always fail. This patch makes
> the driver selection filter out all other constraints based on a mask
> defined in cogl-renderer-private.h.
> ---
>  cogl/cogl-renderer-private.h | 5 +++++
>  cogl/cogl-renderer.c         | 5 +++++
>  2 files changed, 10 insertions(+)
>
> diff --git a/cogl/cogl-renderer-private.h b/cogl/cogl-renderer-private.h
> index 1816588..b5ebd7b 100644
> --- a/cogl/cogl-renderer-private.h
> +++ b/cogl/cogl-renderer-private.h
> @@ -91,6 +91,11 @@ struct _CoglRenderer
>    void *winsys;
>  };
>
> +/* Mask of constraints that effect driver selection. All of the other
> + * constraints effect only the winsys selection */
> +#define COGL_RENDERER_DRIVER_CONSTRAINTS \
> +  COGL_RENDERER_CONSTRAINT_SUPPORTS_COGL_GLES2
> +
>  typedef CoglFilterReturn (* CoglNativeFilterFunc) (void *native_event,
>                                                     void *data);
>
> diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c
> index c5a2940..ecbf8bd 100644
> --- a/cogl/cogl-renderer.c
> +++ b/cogl/cogl-renderer.c
> @@ -465,6 +465,11 @@ satisfy_constraints (CoglDriverDescription *description,
>      {
>        CoglRendererConstraint constraint = GPOINTER_TO_UINT (l->data);
>
> +      /* Most of the constraints only affect the winsys selection so
> +       * we'll filter them out */
> +      if (!(constraint & COGL_RENDERER_DRIVER_CONSTRAINTS))
> +        continue;
> +
>        /* If the driver doesn't satisfy any constraint then continue
>         * to the next driver description */
>        if (!(constraint & description->constraints))
> --
> 1.7.11.3.g3c3efa5
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl


More information about the Cogl mailing list