mesa: Remove GLES overlay.
With core mesa doing runtime API checks, GLES overlay is no longer needed. Make --enable-gles-overlay equivalent to --enable-gles[12]. There may still be places where compile-time checks are done. They could be fixed case by case.
This commit is contained in:
@@ -15,7 +15,6 @@ ASM_FLAGS = @ASM_FLAGS@
|
||||
PIC_FLAGS = @PIC_FLAGS@
|
||||
DEFINES = @DEFINES@
|
||||
API_DEFINES = @API_DEFINES@
|
||||
GLES_OVERLAY = @GLES_OVERLAY@
|
||||
CFLAGS = @CPPFLAGS@ @CFLAGS@ \
|
||||
$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
|
||||
CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \
|
||||
|
33
configure.ac
33
configure.ac
@@ -483,9 +483,9 @@ AC_ARG_ENABLE([gles2],
|
||||
[enable_gles2=no])
|
||||
AC_ARG_ENABLE([gles-overlay],
|
||||
[AS_HELP_STRING([--enable-gles-overlay],
|
||||
[build separate OpenGL ES only libraries @<:@default=no@:>@])],
|
||||
[enable_gles_overlay="$enableval"],
|
||||
[enable_gles_overlay=no])
|
||||
[DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
|
||||
[enable_gles1="$enableval"; enable_gles2="$enableval"],
|
||||
[])
|
||||
|
||||
AC_ARG_ENABLE([openvg],
|
||||
[AS_HELP_STRING([--enable-openvg],
|
||||
@@ -506,13 +506,11 @@ fi
|
||||
if test "x$enable_opengl" = xno -a \
|
||||
"x$enable_gles1" = xno -a \
|
||||
"x$enable_gles2" = xno -a \
|
||||
"x$enable_gles_overlay" = xno -a \
|
||||
"x$enable_openvg" = xno; then
|
||||
AC_MSG_ERROR([at least one API should be enabled])
|
||||
fi
|
||||
|
||||
API_DEFINES=""
|
||||
GLES_OVERLAY=0
|
||||
if test "x$enable_opengl" = xno; then
|
||||
API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
|
||||
else
|
||||
@@ -524,11 +522,7 @@ fi
|
||||
if test "x$enable_gles2" = xyes; then
|
||||
API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
|
||||
fi
|
||||
if test "x$enable_gles_overlay" = xyes; then
|
||||
GLES_OVERLAY=1
|
||||
fi
|
||||
AC_SUBST([API_DEFINES])
|
||||
AC_SUBST([GLES_OVERLAY])
|
||||
|
||||
dnl
|
||||
dnl Driver configuration. Options are xlib, dri and osmesa right now.
|
||||
@@ -596,12 +590,15 @@ if test "x$enable_opengl" = xyes; then
|
||||
CORE_DIRS="$CORE_DIRS mapi/glapi"
|
||||
fi
|
||||
|
||||
# build es1api and es2api if OpenGL ES is enabled
|
||||
case "x$enable_gles1$enable_gles2$enable_gles_overlay" in
|
||||
x*yes*)
|
||||
CORE_DIRS="$CORE_DIRS mapi/es1api mapi/es2api"
|
||||
;;
|
||||
esac
|
||||
# build es1api if OpenGL ES 1.x is enabled
|
||||
if test "x$enable_gles1" = xyes; then
|
||||
CORE_DIRS="$CORE_DIRS mapi/es1api"
|
||||
fi
|
||||
|
||||
# build es2api if OpenGL ES 2.x is enabled
|
||||
if test "x$enable_gles2" = xyes; then
|
||||
CORE_DIRS="$CORE_DIRS mapi/es2api"
|
||||
fi
|
||||
|
||||
# build vgapi if OpenVG is enabled
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
@@ -609,7 +606,7 @@ if test "x$enable_openvg" = xyes; then
|
||||
fi
|
||||
|
||||
# build glsl and mesa if OpenGL or OpenGL ES is enabled
|
||||
case "x$enable_opengl$enable_gles1$enable_gles2$enable_gles_overlay" in
|
||||
case "x$enable_opengl$enable_gles1$enable_gles2" in
|
||||
x*yes*)
|
||||
CORE_DIRS="$CORE_DIRS glsl mesa"
|
||||
;;
|
||||
@@ -1451,9 +1448,6 @@ x*yes*)
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
|
||||
;;
|
||||
esac
|
||||
if test "x$enable_gles_overlay" = xyes; then
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
|
||||
fi
|
||||
if test "x$enable_openvg" = xyes; then
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
|
||||
VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
|
||||
@@ -1746,7 +1740,6 @@ echo " includedir: $includedir"
|
||||
dnl API info
|
||||
echo ""
|
||||
echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
|
||||
echo " GLES overlay: $enable_gles_overlay"
|
||||
echo " OpenVG: $enable_openvg"
|
||||
|
||||
dnl Driver info
|
||||
|
@@ -88,17 +88,6 @@ internal library that supports multiple APIs.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--enable-gles-overlay</code>
|
||||
|
||||
<p>This option enables OpenGL ES as separate internal libraries. This is an
|
||||
alternative approach to enable OpenGL ES.</p>
|
||||
|
||||
<p>This is only supported by <code>egl_gallium</code>. For systems using DRI
|
||||
drivers, <code>--enable-gles1</code> and <code>--enable-gles2</code> are
|
||||
suggested instead as all drivers will benefit.</p>
|
||||
|
||||
</li>
|
||||
|
||||
<li><code>--enable-openvg</code>
|
||||
|
||||
<p>OpenVG must be explicitly enabled by this option.</p>
|
||||
|
@@ -17,7 +17,7 @@ target="_parent"> http://www.khronos.org/opengles/</a>.</p>
|
||||
|
||||
<h2>Build the Libraries</h2>
|
||||
<ol>
|
||||
<li>Run <code>configure</code> with <code>--enable-gles-overlay</code> and enable the Gallium driver for your hardware.</li>
|
||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code> and enable the Gallium driver for your hardware.</li>
|
||||
<li>Build and install Mesa as usual.</li>
|
||||
</ol>
|
||||
|
||||
@@ -53,8 +53,6 @@ your build. For example,</p>
|
||||
<tr><td>Library Name</td><td>Used By</td><td>Enabled</td><td>OpenGL</td><td>OpenGL ES 1.x</td><td>OpenGL ES 2.x</td></tr>
|
||||
<tr><td><code>libmesa.a</td><td>Classic DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
|
||||
<tr><td><code>libmesagallium.a</td><td>Gallium EGL and DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
|
||||
<tr><td><code>libes1gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>y</td><td>n</td></tr>
|
||||
<tr><td><code>libes2gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>n</td><td>y</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>Dispatch Table</h3>
|
||||
|
@@ -57,12 +57,6 @@ endif
|
||||
ifneq ($(filter $(GL_LIB), $(EGL_CLIENT_APIS)),)
|
||||
egl_CPPFLAGS += $(API_DEFINES)
|
||||
endif
|
||||
ifneq ($(filter $(GLESv1_CM_LIB), $(EGL_CLIENT_APIS)),)
|
||||
egl_CPPFLAGS += -DFEATURE_ES1=1
|
||||
endif
|
||||
ifneq ($(filter $(GLESv2_LIB), $(EGL_CLIENT_APIS)),)
|
||||
egl_CPPFLAGS += -DFEATURE_ES2=1
|
||||
endif
|
||||
ifneq ($(filter $(VG_LIB), $(EGL_CLIENT_APIS)),)
|
||||
egl_CPPFLAGS += -DFEATURE_VG=1
|
||||
endif
|
||||
@@ -128,20 +122,10 @@ endif
|
||||
|
||||
# OpenGL state tracker
|
||||
GL_CPPFLAGS := -I$(TOP)/src/mesa $(API_DEFINES)
|
||||
# do not link to $(GL_LIB) as the it supports GLES too
|
||||
# cannot not link to $(GL_LIB) as the app might want GLES
|
||||
GL_SYS := $(DRI_LIB_DEPS)
|
||||
GL_LIBS := $(TOP)/src/mesa/libmesagallium.a
|
||||
|
||||
# OpenGL ES 1.x state tracker
|
||||
GLESv1_CM_CPPFLAGS := -I$(TOP)/src/mesa
|
||||
GLESv1_CM_SYS := $(DRI_LIB_DEPS) -l$(GLESv1_CM_LIB)
|
||||
GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a
|
||||
|
||||
# OpenGL ES 2.x state tracker
|
||||
GLESv2_CPPFLAGS := -I$(TOP)/src/mesa
|
||||
GLESv2_SYS := $(DRI_LIB_DEPS) -l$(GLESv2_LIB)
|
||||
GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a
|
||||
|
||||
# OpenVG state tracker
|
||||
OpenVG_CPPFLAGS := -I$(TOP)/src/gallium/state_trackers/vega
|
||||
OpenVG_SYS := -lm -l$(VG_LIB)
|
||||
@@ -226,12 +210,6 @@ $(OUTPUT_PATH)/$(PIPE_PREFIX)swrast.so: pipe_swrast.o $(swrast_LIBS)
|
||||
$(OUTPUT_PATH)/$(ST_PREFIX)$(GL_LIB).so: st_GL.o $(GL_LIBS)
|
||||
$(call mklib-cxx,GL)
|
||||
|
||||
$(OUTPUT_PATH)/$(ST_PREFIX)$(GLESv1_CM_LIB).so: st_GLESv1_CM.o $(GLESv1_CM_LIBS)
|
||||
$(call mklib-cxx,GLESv1_CM)
|
||||
|
||||
$(OUTPUT_PATH)/$(ST_PREFIX)$(GLESv2_LIB).so: st_GLESv2.o $(GLESv2_LIBS)
|
||||
$(call mklib-cxx,GLESv2)
|
||||
|
||||
$(OUTPUT_PATH)/$(ST_PREFIX)$(VG_LIB).so: st_OpenVG.o $(OpenVG_LIBS)
|
||||
$(call mklib,OpenVG)
|
||||
|
||||
|
@@ -205,19 +205,7 @@ get_st_api_full(enum st_api_type api, enum st_profile_type profile)
|
||||
switch (api) {
|
||||
case ST_API_OPENGL:
|
||||
symbol = ST_CREATE_OPENGL_SYMBOL;
|
||||
switch (profile) {
|
||||
case ST_PROFILE_OPENGL_ES1:
|
||||
names[count++] = "GLESv1_CM";
|
||||
names[count++] = "GL";
|
||||
break;
|
||||
case ST_PROFILE_OPENGL_ES2:
|
||||
names[count++] = "GLESv2";
|
||||
names[count++] = "GL";
|
||||
break;
|
||||
default:
|
||||
names[count++] = "GL";
|
||||
break;
|
||||
}
|
||||
names[count++] = "GL";
|
||||
break;
|
||||
case ST_API_OPENVG:
|
||||
symbol = ST_CREATE_OPENVG_SYMBOL;
|
||||
|
@@ -1,8 +0,0 @@
|
||||
#include "state_tracker/st_gl_api.h"
|
||||
#include "egl.h"
|
||||
|
||||
PUBLIC struct st_api *
|
||||
st_api_create_OpenGL(void)
|
||||
{
|
||||
return st_gl_api_create();
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
#include "state_tracker/st_gl_api.h"
|
||||
#include "egl.h"
|
||||
|
||||
PUBLIC struct st_api *
|
||||
st_api_create_OpenGL(void)
|
||||
{
|
||||
return st_gl_api_create();
|
||||
}
|
@@ -6,37 +6,20 @@ include $(TOP)/configs/current
|
||||
MESA_LIBS := libmesa.a libmesagallium.a
|
||||
DEPENDS := depend
|
||||
|
||||
ifeq ($(GLES_OVERLAY),1)
|
||||
ES1_LIBS := libes1gallium.a
|
||||
ES2_LIBS := libes2gallium.a
|
||||
DEPENDS += depend.es1 depend.es2
|
||||
endif
|
||||
|
||||
MESA_OBJ_DIR := .
|
||||
ES1_OBJ_DIR := objs-es1
|
||||
ES2_OBJ_DIR := objs-es2
|
||||
|
||||
|
||||
include sources.mak
|
||||
|
||||
# adjust object dirs
|
||||
ES1_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_OBJECTS))
|
||||
ES2_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_OBJECTS))
|
||||
MESA_OBJECTS := $(addprefix $(MESA_OBJ_DIR)/, $(MESA_OBJECTS))
|
||||
|
||||
ES1_GALLIUM_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS))
|
||||
ES2_GALLIUM_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS))
|
||||
MESA_GALLIUM_OBJECTS := $(addprefix $(MESA_OBJ_DIR)/, $(MESA_GALLIUM_OBJECTS))
|
||||
|
||||
# define preprocessor flags
|
||||
MESA_CPPFLAGS := $(API_DEFINES) $(DEFINES)
|
||||
ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES)
|
||||
ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES)
|
||||
|
||||
# append include dirs
|
||||
MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
|
||||
ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
|
||||
ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
|
||||
|
||||
# tidy compiler flags
|
||||
CFLAGS := $(filter-out $(DEFINES), $(CFLAGS))
|
||||
@@ -44,8 +27,6 @@ CXXFLAGS := $(filter-out $(DEFINES), $(CXXFLAGS))
|
||||
|
||||
# LLVM is needed for the state tracker
|
||||
MESA_CFLAGS := $(LLVM_CFLAGS)
|
||||
ES1_CFLAGS := $(LLVM_CFLAGS)
|
||||
ES2_CFLAGS := $(LLVM_CFLAGS)
|
||||
|
||||
define mesa-cc-c
|
||||
@mkdir -p $(dir $@)
|
||||
@@ -66,29 +47,9 @@ $(MESA_OBJ_DIR)/%.o: %.cpp
|
||||
$(MESA_OBJ_DIR)/%.o: %.S
|
||||
$(call mesa-cc-c,MESA)
|
||||
|
||||
$(ES1_OBJ_DIR)/%.o: %.c
|
||||
$(call mesa-cc-c,ES1)
|
||||
|
||||
$(ES1_OBJ_DIR)/%.o: %.cpp
|
||||
$(call mesa-cxx-c,ES1)
|
||||
|
||||
$(ES1_OBJ_DIR)/%.o: %.S
|
||||
$(call mesa-cc-c,ES1)
|
||||
|
||||
$(ES2_OBJ_DIR)/%.o: %.c
|
||||
$(call mesa-cc-c,ES2)
|
||||
|
||||
$(ES2_OBJ_DIR)/%.o: %.cpp
|
||||
$(call mesa-cxx-c,ES2)
|
||||
|
||||
$(ES2_OBJ_DIR)/%.o: %.S
|
||||
$(call mesa-cc-c,ES2)
|
||||
|
||||
|
||||
# Default: build dependencies, then asm_subdirs, GLSL built-in lib,
|
||||
# then convenience libs (.a) and finally the device drivers:
|
||||
default: $(DEPENDS) asm_subdirs \
|
||||
$(MESA_LIBS) $(ES1_LIBS) $(ES2_LIBS) driver_subdirs
|
||||
default: $(DEPENDS) asm_subdirs $(MESA_LIBS) driver_subdirs
|
||||
|
||||
main/api_exec_es1.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py main/APIspec.py
|
||||
$(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V GLES1.1 > $@
|
||||
@@ -103,22 +64,10 @@ main/api_exec_es2.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py m
|
||||
libmesa.a: $(MESA_OBJECTS) $(GLSL_LIBS)
|
||||
@ $(MKLIB) -o mesa -static $(MESA_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
libes1.a: $(ES1_OBJECTS) $(GLSL_LIBS)
|
||||
@$(MKLIB) -o es1 -static $(ES1_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
libes2.a: $(ES2_OBJECTS) $(GLSL_LIBS)
|
||||
@$(MKLIB) -o es2 -static $(ES2_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
# Make archive of subset of core mesa object files for gallium
|
||||
libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
@ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
libes1gallium.a: $(ES1_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
@$(MKLIB) -o es1gallium -static $(ES1_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
libes2gallium.a: $(ES2_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
@$(MKLIB) -o es2gallium -static $(ES2_GALLIUM_OBJECTS) $(GLSL_LIBS)
|
||||
|
||||
######################################################################
|
||||
# Device drivers
|
||||
driver_subdirs: $(MESA_LIBS)
|
||||
@@ -146,18 +95,6 @@ depend: $(ALL_SOURCES)
|
||||
@$(MKDEP) $(MKDEP_OPTIONS) -p$(MESA_OBJ_DIR)/ $(MESA_CPPFLAGS) \
|
||||
$(ALL_SOURCES) > /dev/null 2>/dev/null
|
||||
|
||||
depend.es1: $(ALL_SOURCES)
|
||||
@echo "running $(MKDEP) for ES1"
|
||||
@touch $@
|
||||
@$(MKDEP) $(MKDEP_OPTIONS) -f$@ -p$(ES1_OBJ_DIR)/ $(ES1_CPPFLAGS) \
|
||||
$(ALL_SOURCES) > /dev/null 2>/dev/null
|
||||
|
||||
depend.es2: $(ALL_SOURCES)
|
||||
@echo "running $(MKDEP) for ES2"
|
||||
@touch $@
|
||||
@$(MKDEP) $(MKDEP_OPTIONS) -f$@ -p$(ES2_OBJ_DIR)/ $(ES2_CPPFLAGS) \
|
||||
$(ALL_SOURCES) > /dev/null 2>/dev/null
|
||||
|
||||
######################################################################
|
||||
# Installation rules
|
||||
|
||||
@@ -234,17 +171,7 @@ install-dri: default
|
||||
tags:
|
||||
etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h
|
||||
|
||||
clean-es1:
|
||||
-rm -f $(ES1_LIBS)
|
||||
-rm -rf $(ES1_OBJ_DIR)
|
||||
-rm -f depend.es1 depend.es1.bak
|
||||
|
||||
clean-es2:
|
||||
-rm -f $(ES2_LIBS)
|
||||
-rm -rf $(ES2_OBJ_DIR)
|
||||
-rm -f depend.es2 depend.es2.bak
|
||||
|
||||
clean: clean-es1 clean-es2
|
||||
clean:
|
||||
-rm -f */*.o
|
||||
-rm -f */*/*.o
|
||||
-rm -f depend depend.bak libmesa.a libmesagallium.a
|
||||
|
Reference in New Issue
Block a user