From c212abf99af494f024b0b981a83350f7ac9821ef Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 30 Jun 2005 16:00:48 +0000 Subject: Replace add_newer_entrypoints (src/mesa/main/context.c) with device-specific code. A new Python script (src/mesa/glapi/extension_helper.py) generates a list of all entry-points for all known extensions. Each driver the selects only the extensions that it needs and enables the via either driInitExtensions or driInitSingleExtension. This code has been compile-tested on a drivers, but has only been run-tested on mga and i915 (on i830 hardware). These changes were discussed at length on the mesa3d-dev mailing list. http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2 --- src/mesa/drivers/dri/i915/i830_context.c | 6 +- src/mesa/drivers/dri/i915/i915_context.c | 15 ++--- src/mesa/drivers/dri/i915/intel_context.c | 97 ++++++++++++++++++------------- 3 files changed, 67 insertions(+), 51 deletions(-) (limited to 'src/mesa/drivers/dri/i915') diff --git a/src/mesa/drivers/dri/i915/i830_context.c b/src/mesa/drivers/dri/i915/i830_context.c index fa19e3104f..c817397db5 100644 --- a/src/mesa/drivers/dri/i915/i830_context.c +++ b/src/mesa/drivers/dri/i915/i830_context.c @@ -38,10 +38,10 @@ * Mesa's Driver Functions ***************************************/ -static const char * const card_extensions[] = +static const struct dri_extension card_extensions[] = { - "GL_ARB_texture_env_crossbar", - NULL + { "GL_ARB_texture_env_crossbar", NULL }, + { NULL, NULL } }; diff --git a/src/mesa/drivers/dri/i915/i915_context.c b/src/mesa/drivers/dri/i915/i915_context.c index eb33b1f1c3..66628365a6 100644 --- a/src/mesa/drivers/dri/i915/i915_context.c +++ b/src/mesa/drivers/dri/i915/i915_context.c @@ -45,14 +45,15 @@ * Mesa's Driver Functions ***************************************/ -static const char * const card_extensions[] = +static const struct dri_extension card_extensions[] = { - "GL_ARB_depth_texture", /* New: alanh 06-Jan-2005 */ - "GL_ARB_fragment_program", - "GL_ARB_shadow", /* New: alanh 06-Jan-2005 */ - "GL_EXT_shadow_funcs", /* New: alanh 06-Jan-2005 */ - "GL_SGIX_depth_texture", /* ARB extn won't work if not enabled */ - NULL + { "GL_ARB_depth_texture", NULL }, + { "GL_ARB_fragment_program", NULL }, + { "GL_ARB_shadow", NULL }, + { "GL_EXT_shadow_funcs", NULL }, + /* ARB extn won't work if not enabled */ + { "GL_SGIX_depth_texture", NULL }, + { NULL, NULL } }; /* Override intel default. diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c index c042111996..d30136a7d5 100644 --- a/src/mesa/drivers/dri/i915/intel_context.c +++ b/src/mesa/drivers/dri/i915/intel_context.c @@ -60,6 +60,23 @@ int INTEL_DEBUG = (0); #endif +#define need_GL_ARB_multisample +#define need_GL_ARB_point_parameters +#define need_GL_ARB_texture_compression +#define need_GL_ARB_vertex_buffer_object +#define need_GL_ARB_vertex_program +#define need_GL_ARB_window_pos +#define need_GL_EXT_blend_color +#define need_GL_EXT_blend_equation_separate +#define need_GL_EXT_blend_func_separate +#define need_GL_EXT_blend_minmax +#define need_GL_EXT_cull_vertex +#define need_GL_EXT_fog_coord +#define need_GL_EXT_multi_draw_arrays +#define need_GL_EXT_secondary_color +#define need_GL_NV_vertex_program +#include "extension_helper.h" + #ifndef VERBOSE int VERBOSE = 0; #endif @@ -136,48 +153,46 @@ static void intelBufferSize(GLframebuffer *buffer, * It appears that ARB_texture_env_crossbar has "disappeared" compared to the * old i830-specific driver. */ -static const char * const card_extensions[] = +static const struct dri_extension card_extensions[] = { - "GL_ARB_multisample", - "GL_ARB_multitexture", - "GL_ARB_point_parameters", - "GL_ARB_texture_border_clamp", - "GL_ARB_texture_compression", - "GL_ARB_texture_cube_map", - "GL_ARB_texture_env_add", - "GL_ARB_texture_env_combine", - "GL_ARB_texture_env_dot3", - "GL_ARB_texture_mirrored_repeat", - "GL_ARB_texture_rectangle", - "GL_ARB_vertex_buffer_object", - "GL_ARB_vertex_program", - "GL_ARB_window_pos", - "GL_EXT_abgr", - "GL_EXT_bgra", - "GL_EXT_blend_color", - "GL_EXT_blend_equation_separate", - "GL_EXT_blend_func_separate", - "GL_EXT_blend_minmax", - "GL_EXT_blend_subtract", - "GL_EXT_cull_vertex", /* New: alanh 06-Jan-2005 */ - "GL_EXT_fog_coord", - "GL_EXT_multi_draw_arrays", - "GL_EXT_secondary_color", - "GL_EXT_stencil_wrap", - "GL_EXT_texture_edge_clamp", - "GL_EXT_texture_env_combine", - "GL_EXT_texture_env_dot3", - "GL_EXT_texture_filter_anisotropic", - "GL_EXT_texture_lod_bias", - "GL_3DFX_texture_compression_FXT1", - "GL_APPLE_client_storage", - "GL_MESA_pack_invert", - "GL_MESA_ycbcr_texture", - "GL_NV_blend_square", - "GL_NV_vertex_program", - "GL_NV_vertex_program1_1", - "GL_SGIS_generate_mipmap", - NULL + { "GL_ARB_multisample", GL_ARB_multisample_functions }, + { "GL_ARB_multitexture", NULL }, + { "GL_ARB_point_parameters", GL_ARB_point_parameters_functions }, + { "GL_ARB_texture_border_clamp", NULL }, + { "GL_ARB_texture_compression", GL_ARB_texture_compression_functions }, + { "GL_ARB_texture_cube_map", NULL }, + { "GL_ARB_texture_env_add", NULL }, + { "GL_ARB_texture_env_combine", NULL }, + { "GL_ARB_texture_env_dot3", NULL }, + { "GL_ARB_texture_mirrored_repeat", NULL }, + { "GL_ARB_texture_rectangle", NULL }, + { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions }, + { "GL_ARB_vertex_program", GL_ARB_vertex_program_functions }, + { "GL_ARB_window_pos", GL_ARB_window_pos_functions }, + { "GL_EXT_blend_color", GL_EXT_blend_color_functions }, + { "GL_EXT_blend_equation_separate", GL_EXT_blend_equation_separate_functions }, + { "GL_EXT_blend_func_separate", GL_EXT_blend_func_separate_functions }, + { "GL_EXT_blend_minmax", GL_EXT_blend_minmax_functions }, + { "GL_EXT_blend_subtract", NULL }, + { "GL_EXT_cull_vertex", GL_EXT_cull_vertex_functions }, + { "GL_EXT_fog_coord", GL_EXT_fog_coord_functions }, + { "GL_EXT_multi_draw_arrays", GL_EXT_multi_draw_arrays_functions }, + { "GL_EXT_secondary_color", GL_EXT_secondary_color_functions }, + { "GL_EXT_stencil_wrap", NULL }, + { "GL_EXT_texture_edge_clamp", NULL }, + { "GL_EXT_texture_env_combine", NULL }, + { "GL_EXT_texture_env_dot3", NULL }, + { "GL_EXT_texture_filter_anisotropic", NULL }, + { "GL_EXT_texture_lod_bias", NULL }, + { "GL_3DFX_texture_compression_FXT1", NULL }, + { "GL_APPLE_client_storage", NULL }, + { "GL_MESA_pack_invert", NULL }, + { "GL_MESA_ycbcr_texture", NULL }, + { "GL_NV_blend_square", NULL }, + { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, + { "GL_NV_vertex_program1_1", NULL }, + { "GL_SGIS_generate_mipmap", NULL }, + { NULL, NULL } }; extern const struct tnl_pipeline_stage _intel_render_stage; -- cgit v1.2.3