From: Emil Velikov Date: Sat, 10 May 2014 02:41:44 +0000 (+0100) Subject: gallium/egl: st_profiles are build time decision, treat them as such X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b52a530ce2aada1967bc8fefa83ab53e6a737dae;p=mesa.git 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 (v1) Signed-off-by: Emil Velikov --- 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_ */