Mesa (master): gallium/egl: st_profiles are build time decision, treat them as such

Emil Velikov evelikov at kemper.freedesktop.org
Sun May 25 22:22:41 UTC 2014


Module: Mesa
Branch: master
Commit: b52a530ce2aada1967bc8fefa83ab53e6a737dae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b52a530ce2aada1967bc8fefa83ab53e6a737dae

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Sat May 10 03:41:44 2014 +0100

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 <olvaffe at gmail.com> (v1)
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

---

 src/gallium/state_trackers/egl/Android.mk          |    5 +++-
 src/gallium/state_trackers/egl/SConscript          |   12 ++++++++
 src/gallium/state_trackers/egl/common/egl_g3d.c    |   20 ++++++++------
 .../state_trackers/egl/common/egl_g3d_loader.h     |    1 -
 src/gallium/targets/egl-static/Android.mk          |    2 --
 src/gallium/targets/egl-static/SConscript          |    6 ----
 src/gallium/targets/egl-static/egl.c               |    5 ----
 src/gallium/targets/egl-static/egl_st.c            |   29 --------------------
 src/gallium/targets/egl-static/egl_st.h            |    3 --
 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 b27e14b..7c4c936 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 3ddf0bc..3727fb2 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 7cc4e8f..d3f5e92 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 51b4d19..03db153 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 37244b5..01408a7 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 83937fe..f879cc3 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 f19f024..552fae2 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 da0cd5b..656135b 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 f17e85b..1d947b2 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_ */




More information about the mesa-commit mailing list