aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i915
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2005-06-30 16:00:48 +0000
committerIan Romanick <[email protected]>2005-06-30 16:00:48 +0000
commitc212abf99af494f024b0b981a83350f7ac9821ef (patch)
treecd96ba38b82a5ecaccb7a7f28fc65168688fc2ce /src/mesa/drivers/dri/i915
parent1ac8ae446af753ec1bdbb789d7b575a72ff56e8f (diff)
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
Diffstat (limited to 'src/mesa/drivers/dri/i915')
-rw-r--r--src/mesa/drivers/dri/i915/i830_context.c6
-rw-r--r--src/mesa/drivers/dri/i915/i915_context.c15
-rw-r--r--src/mesa/drivers/dri/i915/intel_context.c97
3 files changed, 67 insertions, 51 deletions
diff --git a/src/mesa/drivers/dri/i915/i830_context.c b/src/mesa/drivers/dri/i915/i830_context.c
index fa19e3104fb..c817397db57 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 eb33b1f1c38..66628365a66 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 c042111996c..d30136a7d5d 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;