mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 17:30:20 +01:00
auxiliary/vl: use vl_*_screen_create stubs when building w/o platform
Provide a dummy stub when the user has opted w/o said platform, thus
we can build the binaries without unnecessarily requiring X11/other
headers.
In order to avoid build and link-time issues, we remove the HAVE_DRI3
guards in the VA and VDPAU state-trackers.
With this change st/va will return VA_STATUS_ERROR_ALLOCATION_FAILED
instead of VA_STATUS_ERROR_UNIMPLEMENTED. That is fine since upstream
users of libva such as vlc and mpv do little error checking, let
alone distinguish between the two.
Cc: Leo Liu <leo.liu@amd.com>
Cc: Guttula, Suresh <Suresh.Guttula@amd.com>
Cc: mesa-stable@lists.freedesktop.org
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
(cherry picked from commit 369e5dd939)
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
This commit is contained in:
parent
023b1da8c0
commit
1e8e12e09c
5 changed files with 36 additions and 20 deletions
|
|
@ -88,22 +88,23 @@ if NEED_GALLIUM_VL_WINSYS
|
|||
|
||||
noinst_LTLIBRARIES += libgalliumvlwinsys.la
|
||||
|
||||
libgalliumvlwinsys_la_CFLAGS = \
|
||||
$(COMMON_VL_CFLAGS)
|
||||
libgalliumvlwinsys_la_CFLAGS = $(COMMON_VL_CFLAGS)
|
||||
libgalliumvlwinsys_la_SOURCES = $(VL_WINSYS_SOURCES)
|
||||
|
||||
libgalliumvlwinsys_la_SOURCES = \
|
||||
$(VL_WINSYS_SOURCES)
|
||||
if HAVE_PLATFORM_X11
|
||||
libgalliumvlwinsys_la_SOURCES += $(VL_WINSYS_DRI2_SOURCES)
|
||||
|
||||
if HAVE_DRI3
|
||||
|
||||
libgalliumvlwinsys_la_SOURCES += \
|
||||
$(VL_WINSYS_DRI3_SOURCES)
|
||||
|
||||
libgalliumvlwinsys_la_SOURCES += $(VL_WINSYS_DRI3_SOURCES)
|
||||
endif
|
||||
endif
|
||||
|
||||
if HAVE_PLATFORM_DRM
|
||||
libgalliumvlwinsys_la_SOURCES += $(VL_WINSYS_DRM_SOURCES)
|
||||
endif
|
||||
|
||||
endif
|
||||
endif # NEED_GALLIUM_VL_WINSYS
|
||||
endif # NEED_GALLIUM_VL
|
||||
|
||||
EXTRA_DIST = \
|
||||
SConscript \
|
||||
|
|
|
|||
|
|
@ -345,18 +345,22 @@ VL_SOURCES := \
|
|||
vl/vl_video_buffer.c \
|
||||
vl/vl_video_buffer.h \
|
||||
vl/vl_vlc.h \
|
||||
vl/vl_winsys.h \
|
||||
vl/vl_zscan.c \
|
||||
vl/vl_zscan.h
|
||||
|
||||
# XXX: Nuke this as our dri targets no longer depend on VL.
|
||||
VL_WINSYS_SOURCES := \
|
||||
vl/vl_winsys_dri.c \
|
||||
vl/vl_winsys_drm.c
|
||||
vl/vl_winsys.h
|
||||
|
||||
VL_WINSYS_DRI2_SOURCES := \
|
||||
vl/vl_winsys_dri.c
|
||||
|
||||
VL_WINSYS_DRI3_SOURCES := \
|
||||
vl/vl_winsys_dri3.c
|
||||
|
||||
VL_WINSYS_DRM_SOURCES := \
|
||||
vl/vl_winsys_drm.c
|
||||
|
||||
VL_STUB_SOURCES := \
|
||||
vl/vl_stubs.c
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@
|
|||
#ifndef vl_winsys_h
|
||||
#define vl_winsys_h
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
#include <X11/Xlib.h>
|
||||
#endif
|
||||
#include "pipe/p_defines.h"
|
||||
#include "pipe/p_format.h"
|
||||
|
||||
|
|
@ -68,15 +70,28 @@ struct vl_screen
|
|||
struct pipe_loader_device *dev;
|
||||
};
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
struct vl_screen *
|
||||
vl_dri2_screen_create(Display *display, int screen);
|
||||
#else
|
||||
static inline struct vl_screen *
|
||||
vl_dri2_screen_create(void *display, int screen) { return NULL; };
|
||||
#endif
|
||||
|
||||
struct vl_screen *
|
||||
vl_drm_screen_create(int fd);
|
||||
|
||||
#if defined(HAVE_DRI3)
|
||||
#if defined(HAVE_X11_PLATFORM) && defined(HAVE_DRI3)
|
||||
struct vl_screen *
|
||||
vl_dri3_screen_create(Display *display, int screen);
|
||||
#else
|
||||
static inline struct vl_screen *
|
||||
vl_dri3_screen_create(void *display, int screen) { return NULL; };
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
struct vl_screen *
|
||||
vl_drm_screen_create(int fd);
|
||||
#else
|
||||
static inline struct vl_screen *
|
||||
vl_drm_screen_create(int fd) { return NULL; };
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -118,9 +118,7 @@ VA_DRIVER_INIT_FUNC(VADriverContextP ctx)
|
|||
return VA_STATUS_ERROR_UNIMPLEMENTED;
|
||||
case VA_DISPLAY_GLX:
|
||||
case VA_DISPLAY_X11:
|
||||
#if defined(HAVE_DRI3)
|
||||
drv->vscreen = vl_dri3_screen_create(ctx->native_dpy, ctx->x11_screen);
|
||||
#endif
|
||||
if (!drv->vscreen)
|
||||
drv->vscreen = vl_dri2_screen_create(ctx->native_dpy, ctx->x11_screen);
|
||||
if (!drv->vscreen)
|
||||
|
|
|
|||
|
|
@ -63,9 +63,7 @@ vdp_imp_device_create_x11(Display *display, int screen, VdpDevice *device,
|
|||
|
||||
pipe_reference_init(&dev->reference, 1);
|
||||
|
||||
#if defined(HAVE_DRI3)
|
||||
dev->vscreen = vl_dri3_screen_create(display, screen);
|
||||
#endif
|
||||
if (!dev->vscreen)
|
||||
dev->vscreen = vl_dri2_screen_create(display, screen);
|
||||
if (!dev->vscreen) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue