summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <[email protected]>2014-05-10 03:41:44 +0100
committerEmil Velikov <[email protected]>2014-05-25 23:21:46 +0100
commitb52a530ce2aada1967bc8fefa83ab53e6a737dae (patch)
treeb80e97672d2409299621c319295bb4b8b6757038
parenta9afdcc3a144f5fa4998891b2f63061e38db293a (diff)
gallium/egl: st_profiles are build time decision, treat them as such
The profiles are present depending on the defines at build time. Drop the extra functions and feed the defines directly into the state-tracker at build time. v2: Drop unused variable i. Acked-by: Chia-I Wu <[email protected]> (v1) Signed-off-by: Emil Velikov <[email protected]>
-rw-r--r--src/gallium/state_trackers/egl/Android.mk5
-rw-r--r--src/gallium/state_trackers/egl/SConscript12
-rw-r--r--src/gallium/state_trackers/egl/common/egl_g3d.c20
-rw-r--r--src/gallium/state_trackers/egl/common/egl_g3d_loader.h1
-rw-r--r--src/gallium/targets/egl-static/Android.mk2
-rw-r--r--src/gallium/targets/egl-static/SConscript6
-rw-r--r--src/gallium/targets/egl-static/egl.c5
-rw-r--r--src/gallium/targets/egl-static/egl_st.c29
-rw-r--r--src/gallium/targets/egl-static/egl_st.h3
9 files changed, 28 insertions, 55 deletions
diff --git a/src/gallium/state_trackers/egl/Android.mk b/src/gallium/state_trackers/egl/Android.mk
index b27e14b1f06..7c4c93669c1 100644
--- a/src/gallium/state_trackers/egl/Android.mk
+++ b/src/gallium/state_trackers/egl/Android.mk
@@ -32,7 +32,10 @@ LOCAL_SRC_FILES := \
$(common_FILES) \
$(android_FILES)
-LOCAL_CFLAGS := -DHAVE_ANDROID_BACKEND
+LOCAL_CFLAGS := \
+ -DFEATURE_ES1=1 \
+ -DFEATURE_ES2=1 \
+ -DHAVE_ANDROID_BACKEND
LOCAL_C_INCLUDES := \
$(GALLIUM_TOP)/state_trackers/egl \
diff --git a/src/gallium/state_trackers/egl/SConscript b/src/gallium/state_trackers/egl/SConscript
index 3ddf0bca489..3727fb2b047 100644
--- a/src/gallium/state_trackers/egl/SConscript
+++ b/src/gallium/state_trackers/egl/SConscript
@@ -14,6 +14,18 @@ env.Append(CPPPATH = [
sources = env.ParseSourceList('Makefile.sources', 'common_FILES')
+# OpenGL ES and OpenGL
+if env['gles']:
+ env.Append(CPPDEFINES = [
+ 'FEATURE_GL=1',
+ 'FEATURE_ES1=1',
+ 'FEATURE_ES2=1'
+ ])
+
+# OpenVG
+if True:
+ env.Append(CPPDEFINES = ['FEATURE_VG=1'])
+
if env['platform'] == 'windows':
env.Append(CPPDEFINES = ['HAVE_GDI_BACKEND'])
sources.append(env.ParseSourceList('Makefile.sources', 'gdi_FILES'))
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c
index 7cc4e8f6cba..d3f5e929d19 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -548,14 +548,18 @@ egl_g3d_initialize(_EGLDriver *drv, _EGLDisplay *dpy)
goto fail;
}
- if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_DEFAULT_MASK)
- dpy->ClientAPIs |= EGL_OPENGL_BIT;
- if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_OPENGL_ES1_MASK)
- dpy->ClientAPIs |= EGL_OPENGL_ES_BIT;
- if (gdpy->loader->profile_masks[ST_API_OPENGL] & ST_PROFILE_OPENGL_ES2_MASK)
- dpy->ClientAPIs |= EGL_OPENGL_ES2_BIT;
- if (gdpy->loader->profile_masks[ST_API_OPENVG] & ST_PROFILE_DEFAULT_MASK)
- dpy->ClientAPIs |= EGL_OPENVG_BIT;
+#if FEATURE_GL
+ dpy->ClientAPIs |= EGL_OPENGL_BIT;
+#endif
+#if FEATURE_ES1
+ dpy->ClientAPIs |= EGL_OPENGL_ES_BIT;
+#endif
+#if FEATURE_ES2
+ dpy->ClientAPIs |= EGL_OPENGL_ES2_BIT;
+#endif
+#if FEATURE_VG
+ dpy->ClientAPIs |= EGL_OPENVG_BIT;
+#endif
gdpy->smapi = egl_g3d_create_st_manager(dpy);
if (!gdpy->smapi) {
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_loader.h b/src/gallium/state_trackers/egl/common/egl_g3d_loader.h
index 51b4d19e0c8..03db15321ba 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_loader.h
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_loader.h
@@ -36,7 +36,6 @@ struct pipe_screen;
struct sw_winsys;
struct egl_g3d_loader {
- uint profile_masks[ST_API_COUNT];
struct st_api *(*get_st_api)(enum st_api_type api);
struct pipe_screen *(*create_drm_screen)(const char *name, int fd);
diff --git a/src/gallium/targets/egl-static/Android.mk b/src/gallium/targets/egl-static/Android.mk
index 37244b5443a..01408a7cb18 100644
--- a/src/gallium/targets/egl-static/Android.mk
+++ b/src/gallium/targets/egl-static/Android.mk
@@ -31,8 +31,6 @@ LOCAL_SRC_FILES := \
egl_st.c
LOCAL_CFLAGS := \
- -DFEATURE_ES1=1 \
- -DFEATURE_ES2=1 \
-D_EGL_MAIN=_eglBuiltInDriverGALLIUM
LOCAL_C_INCLUDES := \
diff --git a/src/gallium/targets/egl-static/SConscript b/src/gallium/targets/egl-static/SConscript
index 83937fe61ad..f879cc36de4 100644
--- a/src/gallium/targets/egl-static/SConscript
+++ b/src/gallium/targets/egl-static/SConscript
@@ -63,11 +63,6 @@ if env['platform'] == 'windows':
# OpenGL ES and OpenGL
if env['gles']:
- env.Append(CPPDEFINES = [
- 'FEATURE_GL=1',
- 'FEATURE_ES1=1',
- 'FEATURE_ES2=1'
- ])
env.Prepend(LIBPATH = [shared_glapi.dir])
# manually add LIBPREFIX on windows
glapi_name = 'glapi' if env['platform'] != 'windows' else 'libglapi'
@@ -75,7 +70,6 @@ if env['gles']:
# OpenVG
if True:
- env.Append(CPPDEFINES = ['FEATURE_VG=1'])
env.Prepend(LIBPATH = [openvg.dir])
# manually add LIBPREFIX on windows
openvg_name = 'OpenVG' if env['platform'] != 'windows' else 'libOpenVG'
diff --git a/src/gallium/targets/egl-static/egl.c b/src/gallium/targets/egl-static/egl.c
index f19f024b93b..552fae2f9ce 100644
--- a/src/gallium/targets/egl-static/egl.c
+++ b/src/gallium/targets/egl-static/egl.c
@@ -87,11 +87,6 @@ create_sw_screen(struct sw_winsys *ws)
static const struct egl_g3d_loader *
loader_init(void)
{
- int i;
-
- for (i = 0; i < ST_API_COUNT; i++)
- egl_g3d_loader.profile_masks[i] = egl_st_get_profile_mask(i);
-
egl_g3d_loader.get_st_api = get_st_api;
egl_g3d_loader.create_drm_screen = create_drm_screen;
egl_g3d_loader.create_sw_screen = create_sw_screen;
diff --git a/src/gallium/targets/egl-static/egl_st.c b/src/gallium/targets/egl-static/egl_st.c
index da0cd5b8bbf..656135b05aa 100644
--- a/src/gallium/targets/egl-static/egl_st.c
+++ b/src/gallium/targets/egl-static/egl_st.c
@@ -165,32 +165,3 @@ egl_st_destroy_api(struct st_api *stapi)
stapi->destroy(stapi);
#endif
}
-
-uint
-egl_st_get_profile_mask(enum st_api_type api)
-{
- uint mask = 0x0;
-
- switch (api) {
- case ST_API_OPENGL:
-#if FEATURE_GL
- mask |= ST_PROFILE_DEFAULT_MASK;
-#endif
-#if FEATURE_ES1
- mask |= ST_PROFILE_OPENGL_ES1_MASK;
-#endif
-#if FEATURE_ES2
- mask |= ST_PROFILE_OPENGL_ES2_MASK;
-#endif
- break;
- case ST_API_OPENVG:
-#if FEATURE_VG
- mask |= ST_PROFILE_DEFAULT_MASK;
-#endif
- break;
- default:
- break;
- }
-
- return mask;
-}
diff --git a/src/gallium/targets/egl-static/egl_st.h b/src/gallium/targets/egl-static/egl_st.h
index f17e85b19ff..1d947b22164 100644
--- a/src/gallium/targets/egl-static/egl_st.h
+++ b/src/gallium/targets/egl-static/egl_st.h
@@ -36,7 +36,4 @@ egl_st_create_api(enum st_api_type api);
void
egl_st_destroy_api(struct st_api *stapi);
-uint
-egl_st_get_profile_mask(enum st_api_type api);
-
#endif /* _EGL_ST_H_ */