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>tags/10.3-branchpoint
@@ -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); | |||