mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
targets/egl-static: use inline_drm_helper and Automake.inc helpers
Update all three build systems, and add freedreno to the android build. Pending future work on the ST we can convert egl-static to provide either static or dynamic access to the pipe-drivers. There is no functional change with this patch. v2: Don't add freedreno to android build, drop the wrapper winsys. Cc: Chia-I Wu <olv@lunarg.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
parent
7689aa28cd
commit
ce1a137228
8 changed files with 55 additions and 268 deletions
|
|
@ -1317,6 +1317,7 @@ if test "x$enable_gallium_egl" = xyes; then
|
|||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
|
||||
# enable_gallium_loader=yes
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes)
|
||||
|
||||
|
|
|
|||
|
|
@ -25,12 +25,13 @@ AUTOMAKE_OPTIONS = subdir-objects
|
|||
include Makefile.sources
|
||||
include $(top_srcdir)/src/gallium/Automake.inc
|
||||
|
||||
AM_CFLAGS = $(GALLIUM_CFLAGS)
|
||||
AM_CFLAGS = \
|
||||
$(GALLIUM_CFLAGS) \
|
||||
$(VISIBILITY_CFLAGS)
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
-I$(top_srcdir)/src/egl/main \
|
||||
-I$(top_builddir)/src/egl/wayland/wayland-drm/ \
|
||||
-I$(top_srcdir)/include
|
||||
-I$(top_builddir)/src/egl/wayland/wayland-drm/
|
||||
|
||||
noinst_LTLIBRARIES = libegl.la
|
||||
libegl_la_SOURCES = $(common_FILES)
|
||||
|
|
|
|||
|
|
@ -53,25 +53,25 @@ LOCAL_C_INCLUDES += \
|
|||
endif
|
||||
|
||||
ifneq ($(filter i915g, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_I915=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_I915
|
||||
endif
|
||||
ifneq ($(filter ilo, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_ILO=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_ILO
|
||||
endif
|
||||
ifneq ($(filter nouveau, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_NOUVEAU=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_NOUVEAU
|
||||
endif
|
||||
ifneq ($(filter r300g, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_R300=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_R300
|
||||
endif
|
||||
ifneq ($(filter r600g, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_R600=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_R600
|
||||
endif
|
||||
ifneq ($(filter radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_RADEONSI=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_RADEONSI
|
||||
endif
|
||||
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
|
||||
LOCAL_CFLAGS += -D_EGL_PIPE_VMWGFX=1
|
||||
LOCAL_CFLAGS += -DGALLIUM_VMWGFX
|
||||
endif
|
||||
|
||||
LOCAL_MODULE := libmesa_egl_gallium
|
||||
|
|
|
|||
|
|
@ -30,18 +30,14 @@
|
|||
#
|
||||
include $(top_srcdir)/src/gallium/Automake.inc
|
||||
|
||||
AM_CFLAGS = $(PTHREAD_CFLAGS)
|
||||
AM_CFLAGS = \
|
||||
$(GALLIUM_TARGET_CFLAGS)
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
$(GALLIUM_CFLAGS) \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/loader \
|
||||
-I$(top_srcdir)/src/gallium/drivers \
|
||||
-I$(top_srcdir)/src/gallium/winsys \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gallium/state_trackers/egl \
|
||||
-I$(top_srcdir)/src/egl/main \
|
||||
-DGALLIUM_TRACE \
|
||||
-DGALLIUM_RBUG \
|
||||
-D_EGL_MAIN=_eglMain
|
||||
|
||||
AM_LDFLAGS = \
|
||||
|
|
@ -75,10 +71,6 @@ egl_gallium_la_LIBADD = \
|
|||
$(top_builddir)/src/egl/main/libEGL.la \
|
||||
$(GALLIUM_COMMON_LIB_DEPS)
|
||||
|
||||
if HAVE_MESA_LLVM
|
||||
AM_LDFLAGS += $(LLVM_LDFLAGS)
|
||||
endif
|
||||
|
||||
if HAVE_EGL_PLATFORM_X11
|
||||
AM_CPPFLAGS += $(LIBDRM_CFLAGS)
|
||||
egl_gallium_la_LIBADD += \
|
||||
|
|
@ -131,6 +123,7 @@ egl_LTLIBRARIES += st_GL.la
|
|||
nodist_EXTRA_st_GL_la_SOURCES = dummy.cpp
|
||||
st_GL_la_SOURCES = st_GL.c
|
||||
|
||||
st_GL_la_LDFLAGS = $(AM_LDFLAGS)
|
||||
# st_GL, built only when shared glapi is not enabled
|
||||
st_GL_la_LIBADD = \
|
||||
$(top_builddir)/src/mesa/libmesagallium.la \
|
||||
|
|
@ -159,8 +152,13 @@ egl_gallium_la_LIBADD += \
|
|||
$(top_builddir)/src/mapi/vgapi/libOpenVG.la
|
||||
endif
|
||||
|
||||
#if HAVE_GALLIUM_STATIC_TARGETS
|
||||
|
||||
egl_gallium_la_LDFLAGS = $(AM_LDFLAGS)
|
||||
egl_gallium_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||
|
||||
if HAVE_GALLIUM_I915
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_I915=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_I915
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
|
||||
$(top_builddir)/src/gallium/drivers/i915/libi915.la \
|
||||
|
|
@ -168,7 +166,7 @@ egl_gallium_la_LIBADD += \
|
|||
endif
|
||||
|
||||
if HAVE_GALLIUM_ILO
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_ILO=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_ILO
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/intel/drm/libintelwinsys.la \
|
||||
$(top_builddir)/src/gallium/drivers/ilo/libilo.la \
|
||||
|
|
@ -176,7 +174,7 @@ egl_gallium_la_LIBADD += \
|
|||
endif
|
||||
|
||||
if HAVE_GALLIUM_NOUVEAU
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_NOUVEAU=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_NOUVEAU
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
|
||||
$(top_builddir)/src/gallium/drivers/nouveau/libnouveau.la \
|
||||
|
|
@ -194,35 +192,40 @@ egl_gallium_la_LIBADD += \
|
|||
endif
|
||||
|
||||
if HAVE_GALLIUM_R300
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_R300=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_R300
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/r300/libr300.la \
|
||||
$(RADEON_LIBS)
|
||||
|
||||
if !HAVE_OPENGL
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/r300/libr300-helper.la
|
||||
endif
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_R600
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_R600=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_R600
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/r600/libr600.la \
|
||||
$(RADEON_LIBS)
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_RADEONSI
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_RADEONSI=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_RADEONSI
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
|
||||
$(RADEON_LIBS)
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_SVGA
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_VMWGFX=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_VMWGFX
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
|
||||
$(top_builddir)/src/gallium/drivers/svga/libsvga.la
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_FREEDRENO
|
||||
AM_CPPFLAGS += -D_EGL_PIPE_FREEDRENO=1
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_FREEDRENO
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/freedreno/drm/libfreedrenodrm.la \
|
||||
$(top_builddir)/src/gallium/drivers/freedreno/libfreedreno.la \
|
||||
|
|
@ -231,25 +234,37 @@ egl_gallium_la_LIBADD += \
|
|||
endif
|
||||
|
||||
if HAVE_GALLIUM_SOFTPIPE
|
||||
AM_CPPFLAGS += -DGALLIUM_SOFTPIPE -DGALLIUM_RBUG -DGALLIUM_TRACE
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_SOFTPIPE
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_LLVMPIPE
|
||||
AM_CPPFLAGS += -DGALLIUM_LLVMPIPE
|
||||
if NEED_GALLIUM_LLVMPIPE_DRIVER
|
||||
egl_gallium_la_CPPFLAGS += -DGALLIUM_LLVMPIPE
|
||||
egl_gallium_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/drivers/llvmpipe/libllvmpipe.la
|
||||
endif
|
||||
|
||||
#else # HAVE_GALLIUM_STATIC_TARGETS
|
||||
|
||||
#egl_gallium_la_LIBADD += \
|
||||
# $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
|
||||
# $(GALLIUM_PIPE_LOADER_WINSYS_LIBS) \
|
||||
# $(GALLIUM_PIPE_LOADER_LIBS)
|
||||
#endif
|
||||
|
||||
if HAVE_MESA_LLVM
|
||||
|
||||
egl_gallium_la_LDFLAGS += $(LLVM_LDFLAGS)
|
||||
egl_gallium_la_LIBADD += $(LLVM_LIBS)
|
||||
|
||||
if HAVE_OPENGL
|
||||
if !HAVE_SHARED_GLAPI
|
||||
st_GL_la_LDFLAGS += $(LLVM_LDFLAGS)
|
||||
st_GL_la_LIBADD += $(LLVM_LIBS)
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
include $(top_srcdir)/install-gallium-links.mk
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ if env['HAVE_X11']:
|
|||
if env['HAVE_DRM']:
|
||||
env.PkgUseModules('DRM')
|
||||
|
||||
env.Append(CPPDEFINES = ['_EGL_PIPE_VMWGFX'])
|
||||
env.Append(CPPDEFINES = ['GALLIUM_VMWGFX'])
|
||||
env.Prepend(LIBS = [
|
||||
svgadrm,
|
||||
svga,
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "egl_pipe.h"
|
||||
#include "egl_st.h"
|
||||
#include "target-helpers/inline_drm_helper.h"
|
||||
|
||||
static struct egl_g3d_loader egl_g3d_loader;
|
||||
|
||||
|
|
@ -57,25 +58,7 @@ get_st_api(enum st_api_type api)
|
|||
static struct pipe_screen *
|
||||
create_drm_screen(const char *constname, int fd)
|
||||
{
|
||||
struct pipe_screen *screen;
|
||||
char *name = (char *)constname;
|
||||
|
||||
if (!name) {
|
||||
name = loader_get_driver_for_fd(fd, _LOADER_GALLIUM);
|
||||
if (!name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
screen = egl_pipe_create_drm_screen(name, fd);
|
||||
if (screen)
|
||||
_eglLog(_EGL_INFO, "created a pipe screen for %s", name);
|
||||
else
|
||||
_eglLog(_EGL_WARNING, "failed to create a pipe screen for %s", name);
|
||||
|
||||
if (name != constname)
|
||||
free(name);
|
||||
|
||||
return screen;
|
||||
return dd_create_screen(fd);
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
|
|
|
|||
|
|
@ -28,216 +28,6 @@
|
|||
#include "target-helpers/inline_sw_helper.h"
|
||||
#include "egl_pipe.h"
|
||||
|
||||
/* for i915 */
|
||||
#if _EGL_PIPE_I915
|
||||
#include "i915/drm/i915_drm_public.h"
|
||||
#include "i915/i915_public.h"
|
||||
#include "target-helpers/inline_wrapper_sw_helper.h"
|
||||
#endif
|
||||
/* for ilo */
|
||||
#if _EGL_PIPE_ILO
|
||||
#include "intel/intel_winsys.h"
|
||||
#include "ilo/ilo_public.h"
|
||||
#endif
|
||||
/* for nouveau */
|
||||
#if _EGL_PIPE_NOUVEAU
|
||||
#include "nouveau/drm/nouveau_drm_public.h"
|
||||
#endif
|
||||
/* for r300 */
|
||||
#if _EGL_PIPE_R300
|
||||
#include "radeon/drm/radeon_winsys.h"
|
||||
#include "radeon/drm/radeon_drm_public.h"
|
||||
#include "r300/r300_public.h"
|
||||
#endif
|
||||
/* for r600 */
|
||||
#if _EGL_PIPE_R600
|
||||
#include "radeon/drm/radeon_winsys.h"
|
||||
#include "radeon/drm/radeon_drm_public.h"
|
||||
#include "r600/r600_public.h"
|
||||
#endif
|
||||
/* for radeonsi */
|
||||
#if _EGL_PIPE_RADEONSI
|
||||
#include "radeon/drm/radeon_winsys.h"
|
||||
#include "radeon/drm/radeon_drm_public.h"
|
||||
#include "radeonsi/si_public.h"
|
||||
#endif
|
||||
/* for vmwgfx */
|
||||
#if _EGL_PIPE_VMWGFX
|
||||
#include "svga/drm/svga_drm_public.h"
|
||||
#include "svga/svga_public.h"
|
||||
#endif
|
||||
/* for freedreno */
|
||||
#if _EGL_PIPE_FREEDRENO
|
||||
#include "freedreno/drm/freedreno_drm_public.h"
|
||||
#endif
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_i915_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_I915
|
||||
struct i915_winsys *iws;
|
||||
struct pipe_screen *screen;
|
||||
|
||||
iws = i915_drm_winsys_create(fd);
|
||||
if (!iws)
|
||||
return NULL;
|
||||
|
||||
screen = i915_screen_create(iws);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_ilo_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_ILO
|
||||
struct intel_winsys *iws;
|
||||
struct pipe_screen *screen;
|
||||
|
||||
iws = intel_winsys_create_for_fd(fd);
|
||||
if (!iws)
|
||||
return NULL;
|
||||
|
||||
screen = ilo_screen_create(iws);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_nouveau_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_NOUVEAU
|
||||
struct pipe_screen *screen;
|
||||
|
||||
screen = nouveau_drm_screen_create(fd);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_r300_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_R300
|
||||
struct radeon_winsys *sws;
|
||||
|
||||
sws = radeon_drm_winsys_create(fd, r300_screen_create);
|
||||
return sws ? debug_screen_wrap(sws->screen) : NULL;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_r600_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_R600
|
||||
struct radeon_winsys *rw;
|
||||
|
||||
rw = radeon_drm_winsys_create(fd, r600_screen_create);
|
||||
return rw ? debug_screen_wrap(rw->screen) : NULL;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_radeonsi_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_RADEONSI
|
||||
struct radeon_winsys *rw;
|
||||
|
||||
rw = radeon_drm_winsys_create(fd, radeonsi_screen_create);
|
||||
return rw ? debug_screen_wrap(rw->screen) : NULL;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_vmwgfx_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_VMWGFX
|
||||
struct svga_winsys_screen *sws;
|
||||
struct pipe_screen *screen;
|
||||
|
||||
sws = svga_drm_winsys_screen_create(fd);
|
||||
if (!sws)
|
||||
return NULL;
|
||||
|
||||
screen = svga_screen_create(sws);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct pipe_screen *
|
||||
pipe_freedreno_create_screen(int fd)
|
||||
{
|
||||
#if _EGL_PIPE_FREEDRENO
|
||||
struct pipe_screen *screen;
|
||||
|
||||
screen = fd_drm_screen_create(fd);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
struct pipe_screen *
|
||||
egl_pipe_create_drm_screen(const char *name, int fd)
|
||||
{
|
||||
if (strcmp(name, "i915") == 0)
|
||||
return pipe_i915_create_screen(fd);
|
||||
else if (strcmp(name, "i965") == 0)
|
||||
return pipe_ilo_create_screen(fd);
|
||||
else if (strcmp(name, "nouveau") == 0)
|
||||
return pipe_nouveau_create_screen(fd);
|
||||
else if (strcmp(name, "r300") == 0)
|
||||
return pipe_r300_create_screen(fd);
|
||||
else if (strcmp(name, "r600") == 0)
|
||||
return pipe_r600_create_screen(fd);
|
||||
else if (strcmp(name, "radeonsi") == 0)
|
||||
return pipe_radeonsi_create_screen(fd);
|
||||
else if (strcmp(name, "vmwgfx") == 0)
|
||||
return pipe_vmwgfx_create_screen(fd);
|
||||
else if ((strcmp(name, "kgsl") == 0) || (strcmp(name, "msm") == 0))
|
||||
return pipe_freedreno_create_screen(fd);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct pipe_screen *
|
||||
egl_pipe_create_swrast_screen(struct sw_winsys *ws)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,9 +30,6 @@
|
|||
struct pipe_screen;
|
||||
struct sw_winsys;
|
||||
|
||||
struct pipe_screen *
|
||||
egl_pipe_create_drm_screen(const char *name, int fd);
|
||||
|
||||
struct pipe_screen *
|
||||
egl_pipe_create_swrast_screen(struct sw_winsys *ws);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue