[Mesa-dev] [PATCH] st/mesa: conditionally enable GL_NV_vdpau_interop

Ilia Mirkin imirkin at alum.mit.edu
Thu Jan 21 08:09:21 PST 2016


I wonder if something more robust is needed. Let's say a distro builds
with vdpau and everything else enabled, but then ships the libraries
separately...

On Thu, Jan 21, 2016 at 11:05 AM, Christian König
<deathsimple at vodafone.de> wrote:
> From: Christian König <christian.koenig at amd.com>
>
> Only enable it when we compile the state tracker as well.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  configure.ac                           | 1 +
>  src/mesa/state_tracker/st_extensions.c | 2 ++
>  src/mesa/state_tracker/st_vdpau.c      | 6 ++++++
>  3 files changed, 9 insertions(+)
>
> diff --git a/configure.ac b/configure.ac
> index 8d19dab..a92f707 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1741,6 +1741,7 @@ AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
>  if test "x$enable_vdpau" = xyes; then
>      PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
>      gallium_st="$gallium_st vdpau"
> +    DEFINES="$DEFINES -DHAVE_ST_VDPAU"
>  fi
>  AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 2a3e523..25e88ea 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -959,12 +959,14 @@ void st_init_extensions(struct pipe_screen *screen,
>        extensions->ARB_ES3_compatibility = GL_TRUE;
>     }
>
> +#ifdef HAVE_ST_VDPAU
>     if (screen->get_video_param &&
>         screen->get_video_param(screen, PIPE_VIDEO_PROFILE_UNKNOWN,
>                                 PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
>                                 PIPE_VIDEO_CAP_SUPPORTS_INTERLACED)) {
>        extensions->NV_vdpau_interop = GL_TRUE;
>     }
> +#endif
>
>     if (screen->get_shader_param(screen, PIPE_SHADER_VERTEX,
>                                  PIPE_SHADER_CAP_DOUBLES) &&
> diff --git a/src/mesa/state_tracker/st_vdpau.c b/src/mesa/state_tracker/st_vdpau.c
> index 63af119..71dd15b 100644
> --- a/src/mesa/state_tracker/st_vdpau.c
> +++ b/src/mesa/state_tracker/st_vdpau.c
> @@ -49,6 +49,8 @@
>  #include "st_format.h"
>  #include "st_cb_flush.h"
>
> +#ifdef HAVE_ST_VDPAU
> +
>  static void
>  st_vdpau_map_surface(struct gl_context *ctx, GLenum target, GLenum access,
>                       GLboolean output, struct gl_texture_object *texObj,
> @@ -180,9 +182,13 @@ st_vdpau_unmap_surface(struct gl_context *ctx, GLenum target, GLenum access,
>     st_flush(st, NULL, 0);
>  }
>
> +#endif
> +
>  void
>  st_init_vdpau_functions(struct dd_function_table *functions)
>  {
> +#ifdef HAVE_ST_VDPAU
>     functions->VDPAUMapSurface = st_vdpau_map_surface;
>     functions->VDPAUUnmapSurface = st_vdpau_unmap_surface;
> +#endif
>  }
> --
> 2.5.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list