summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/common/driverfuncs.c3
-rw-r--r--src/mesa/drivers/common/meta.c28
-rw-r--r--src/mesa/drivers/dri/i915/i830_texstate.c26
-rw-r--r--src/mesa/drivers/dri/i915/i915_texstate.c40
-rw-r--r--src/mesa/drivers/dri/i965/Makefile1
-rw-r--r--src/mesa/drivers/dri/i965/brw_cc.c39
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip.c15
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip_state.c157
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c8
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h55
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw.c36
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu.h9
-rw-r--r--src/mesa/drivers/dri/i965/brw_eu_emit.c7
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp591
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.h19
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp56
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp47
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs.c13
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs_state.c127
-rw-r--r--src/mesa/drivers/dri/i965/brw_misc_state.c51
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf.c13
-rw-r--r--src/mesa/drivers/dri/i965/brw_sf_state.c9
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.c49
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.h28
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_cache.c165
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_dump.c129
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_upload.c10
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs.c13
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_emit.c35
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_state.c130
-rw-r--r--src/mesa/drivers/dri/i965/brw_vtbl.c16
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c36
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.h15
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_emit.c17
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_fp.c53
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_sampler_state.c295
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_state.c303
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_surface_state.c14
-rw-r--r--src/mesa/drivers/dri/i965/gen6_cc.c252
-rw-r--r--src/mesa/drivers/dri/i965/gen6_depthstencil.c154
-rw-r--r--src/mesa/drivers/dri/i965/gen6_sampler_state.c14
-rw-r--r--src/mesa/drivers/dri/i965/gen6_scissor_state.c70
-rw-r--r--src/mesa/drivers/dri/i965/gen6_viewport_state.c57
-rw-r--r--src/mesa/drivers/dri/i965/gen6_vs_state.c93
-rw-r--r--src/mesa/drivers/dri/i965/gen6_wm_state.c46
-rw-r--r--src/mesa/drivers/dri/intel/intel_batchbuffer.c5
-rw-r--r--src/mesa/drivers/dri/intel/intel_clear.c4
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c22
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.h1
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c3
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_bitmap.c6
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_copy.c4
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c33
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.h1
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_validate.c11
-rw-r--r--src/mesa/drivers/dri/r300/compiler/Makefile4
-rwxr-xr-xsrc/mesa/drivers/dri/r300/compiler/SConscript4
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c2
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c14
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h1
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c4
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r500_fragprog.c2
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c27
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c353
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h40
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c270
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h24
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_list.c90
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_list.h46
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c28
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_optimize.c12
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_dead_sources.c62
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c778
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c5
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program.h3
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h1
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c14
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h5
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c2
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c3
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_variable.c484
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_variable.h84
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_chipset.h5
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_screen.c5
-rw-r--r--src/mesa/drivers/windows/fx/fx.rc39
-rw-r--r--src/mesa/drivers/windows/fx/fxopengl.def953
-rw-r--r--src/mesa/drivers/windows/fx/fxwgl.c1307
-rw-r--r--src/mesa/drivers/windows/gdi/InitCritSections.cpp33
-rw-r--r--src/mesa/drivers/windows/gdi/wgl.c2
-rw-r--r--src/mesa/drivers/windows/gdi/wmesa.c263
-rw-r--r--src/mesa/drivers/windows/gdi/wmesadef.h4
-rw-r--r--src/mesa/drivers/x11/xm_dd.c10
-rw-r--r--src/mesa/main/.gitignore2
-rw-r--r--src/mesa/main/api_exec.c9
-rw-r--r--src/mesa/main/colortab.c18
-rw-r--r--src/mesa/main/context.c4
-rw-r--r--src/mesa/main/convolve.c31
-rw-r--r--src/mesa/main/dlist.c4
-rw-r--r--src/mesa/main/drawpix.c14
-rw-r--r--src/mesa/main/enable.c7
-rw-r--r--src/mesa/main/enums.c6668
-rw-r--r--src/mesa/main/eval.c95
-rw-r--r--src/mesa/main/extensions.c5
-rw-r--r--src/mesa/main/fbobject.c13
-rw-r--r--src/mesa/main/formats.c30
-rw-r--r--src/mesa/main/formats.h3
-rw-r--r--src/mesa/main/get.c5
-rw-r--r--src/mesa/main/get.h4
-rw-r--r--src/mesa/main/getstring.c17
-rw-r--r--src/mesa/main/glapidispatch.h1252
-rw-r--r--src/mesa/main/histogram.c26
-rw-r--r--src/mesa/main/image.c22
-rw-r--r--src/mesa/main/macros.h4
-rw-r--r--src/mesa/main/mipmap.c177
-rw-r--r--src/mesa/main/mtypes.h16
-rw-r--r--src/mesa/main/pack.c155
-rw-r--r--src/mesa/main/pbo.c108
-rw-r--r--src/mesa/main/pbo.h11
-rw-r--r--src/mesa/main/pixel.c74
-rw-r--r--src/mesa/main/polygon.c16
-rw-r--r--src/mesa/main/polygon.h3
-rw-r--r--src/mesa/main/readpix.c37
-rw-r--r--src/mesa/main/readpix.h4
-rw-r--r--src/mesa/main/remap_helper.h4168
-rw-r--r--src/mesa/main/restart.c68
-rw-r--r--src/mesa/main/restart.h41
-rw-r--r--src/mesa/main/samplerobj.c58
-rw-r--r--src/mesa/main/samplerobj.h8
-rw-r--r--src/mesa/main/shaderapi.c10
-rw-r--r--src/mesa/main/texcompress_s3tc.c16
-rw-r--r--src/mesa/main/texfetch.c16
-rw-r--r--src/mesa/main/texfetch_tmp.h42
-rw-r--r--src/mesa/main/texformat.c28
-rw-r--r--src/mesa/main/texgetimage.c84
-rw-r--r--src/mesa/main/texgetimage.h7
-rw-r--r--src/mesa/main/texobj.c2
-rw-r--r--src/mesa/main/texparam.c40
-rw-r--r--src/mesa/main/texrender.c7
-rw-r--r--src/mesa/main/texstore.c113
-rw-r--r--src/mesa/main/transformfeedback.c18
-rw-r--r--src/mesa/main/uniforms.c106
-rw-r--r--src/mesa/main/uniforms.h17
-rw-r--r--src/mesa/main/varray.c23
-rw-r--r--src/mesa/program/hash_table.c19
-rw-r--r--src/mesa/program/hash_table.h7
-rw-r--r--src/mesa/program/ir_to_mesa.cpp5
-rw-r--r--src/mesa/program/prog_print.c7
-rw-r--r--src/mesa/program/prog_statevars.c4
-rw-r--r--src/mesa/program/prog_statevars.h2
-rw-r--r--src/mesa/program/program_parse.y17
-rw-r--r--src/mesa/program/register_allocate.c94
-rw-r--r--src/mesa/program/register_allocate.h1
-rw-r--r--src/mesa/state_tracker/st_atom_pixeltransfer.c10
-rw-r--r--src/mesa/state_tracker/st_atom_sampler.c7
-rw-r--r--src/mesa/state_tracker/st_atom_texture.c4
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c10
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c4
-rw-r--r--src/mesa/state_tracker/st_draw.c2
-rw-r--r--src/mesa/state_tracker/st_extensions.c35
-rw-r--r--src/mesa/state_tracker/st_format.c47
-rw-r--r--src/mesa/state_tracker/st_mesa_to_tgsi.c110
-rw-r--r--src/mesa/state_tracker/st_texture.h15
-rw-r--r--src/mesa/swrast/s_accum.c4
-rw-r--r--src/mesa/swrast/s_context.c1
-rw-r--r--src/mesa/swrast/s_context.h1
-rw-r--r--src/mesa/swrast/s_fog.c2
166 files changed, 11610 insertions, 10921 deletions
diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c
index 854dea94504..0dbc7c3e853 100644
--- a/src/mesa/drivers/common/driverfuncs.c
+++ b/src/mesa/drivers/common/driverfuncs.c
@@ -41,6 +41,7 @@
#include "main/bufferobj.h"
#include "main/fbobject.h"
#include "main/texrender.h"
+#include "main/samplerobj.h"
#include "main/syncobj.h"
#include "main/texturebarrier.h"
#include "main/transformfeedback.h"
@@ -200,6 +201,8 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
_mesa_init_transform_feedback_functions(driver);
+ _mesa_init_sampler_object_functions(driver);
+
/* T&L stuff */
driver->NeedValidate = GL_FALSE;
driver->ValidateTnlModule = NULL;
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 6c35fa10d8a..08b6024639f 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -40,6 +40,7 @@
#include "main/bufferobj.h"
#include "main/buffers.h"
#include "main/colortab.h"
+#include "main/condrender.h"
#include "main/depth.h"
#include "main/enable.h"
#include "main/fbobject.h"
@@ -94,6 +95,7 @@
#define META_VIEWPORT 0x4000
#define META_CLAMP_FRAGMENT_COLOR 0x8000
#define META_CLAMP_VERTEX_COLOR 0x10000
+#define META_CONDITIONAL_RENDER 0x20000
/*@}*/
@@ -188,6 +190,10 @@ struct save_state
/** META_CLAMP_VERTEX_COLOR */
GLenum ClampVertexColor;
+ /** META_CONDITIONAL_RENDER */
+ struct gl_query_object *CondRenderQuery;
+ GLenum CondRenderMode;
+
/** Miscellaneous (always disabled) */
GLboolean Lighting;
};
@@ -597,6 +603,14 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
_mesa_ClampColorARB(GL_CLAMP_VERTEX_COLOR, GL_FALSE);
}
+ if (state & META_CONDITIONAL_RENDER) {
+ save->CondRenderQuery = ctx->Query.CondRenderQuery;
+ save->CondRenderMode = ctx->Query.CondRenderMode;
+
+ if (ctx->Query.CondRenderQuery)
+ _mesa_EndConditionalRender();
+ }
+
/* misc */
{
save->Lighting = ctx->Light.Enabled;
@@ -869,6 +883,12 @@ _mesa_meta_end(struct gl_context *ctx)
_mesa_ClampColorARB(GL_CLAMP_VERTEX_COLOR, save->ClampVertexColor);
}
+ if (state & META_CONDITIONAL_RENDER) {
+ if (save->CondRenderQuery)
+ _mesa_BeginConditionalRender(save->CondRenderQuery->Id,
+ save->CondRenderMode);
+ }
+
/* misc */
if (save->Lighting) {
_mesa_set_enable(ctx, GL_LIGHTING, GL_TRUE);
@@ -1442,7 +1462,10 @@ _mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers)
};
struct vertex verts[4];
/* save all state but scissor, pixel pack/unpack */
- GLbitfield metaSave = META_ALL - META_SCISSOR - META_PIXEL_STORE;
+ GLbitfield metaSave = (META_ALL -
+ META_SCISSOR -
+ META_PIXEL_STORE -
+ META_CONDITIONAL_RENDER);
const GLuint stencilMax = (1 << ctx->DrawBuffer->Visual.stencilBits) - 1;
if (buffers & BUFFER_BITS_COLOR) {
@@ -1848,7 +1871,8 @@ _mesa_meta_DrawPixels(struct gl_context *ctx,
* just going for the matching set of channels, in floating
* point.
*/
- if (ctx->Color.ClampFragmentColor != GL_TRUE)
+ if (ctx->Color.ClampFragmentColor != GL_TRUE &&
+ ctx->Extensions.ARB_texture_float)
texIntFormat = GL_RGBA32F;
}
else if (_mesa_is_stencil_format(format)) {
diff --git a/src/mesa/drivers/dri/i915/i830_texstate.c b/src/mesa/drivers/dri/i915/i830_texstate.c
index 7554bd5e7b9..3298dbb69f5 100644
--- a/src/mesa/drivers/dri/i915/i830_texstate.c
+++ b/src/mesa/drivers/dri/i915/i830_texstate.c
@@ -29,6 +29,7 @@
#include "main/enums.h"
#include "main/colormac.h"
#include "main/macros.h"
+#include "main/samplerobj.h"
#include "intel_mipmap_tree.h"
#include "intel_tex.h"
@@ -120,6 +121,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
struct gl_texture_object *tObj = tUnit->_Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
struct gl_texture_image *firstImage;
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
GLuint *state = i830->state.Tex[unit], format, pitch;
GLint lodbias;
GLubyte border[4];
@@ -193,7 +195,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
float maxlod;
uint32_t minlod_fixed, maxlod_fixed;
- switch (tObj->Sampler.MinFilter) {
+ switch (sampler->MinFilter) {
case GL_NEAREST:
minFilt = FILTER_NEAREST;
mipFilt = MIPFILTER_NONE;
@@ -222,12 +224,12 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
return GL_FALSE;
}
- if (tObj->Sampler.MaxAnisotropy > 1.0) {
+ if (sampler->MaxAnisotropy > 1.0) {
minFilt = FILTER_ANISOTROPIC;
magFilt = FILTER_ANISOTROPIC;
}
else {
- switch (tObj->Sampler.MagFilter) {
+ switch (sampler->MagFilter) {
case GL_NEAREST:
magFilt = FILTER_NEAREST;
break;
@@ -239,7 +241,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
}
- lodbias = (int) ((tUnit->LodBias + tObj->Sampler.LodBias) * 16.0);
+ lodbias = (int) ((tUnit->LodBias + sampler->LodBias) * 16.0);
if (lodbias < -64)
lodbias = -64;
if (lodbias > 63)
@@ -259,8 +261,8 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
* addressable (smallest resolution) LOD. Use it to cover both
* MAX_LEVEL and MAX_LOD.
*/
- minlod_fixed = U_FIXED(CLAMP(tObj->Sampler.MinLod, 0.0, 11), 4);
- maxlod = MIN2(tObj->Sampler.MaxLod, tObj->_MaxLevel - tObj->BaseLevel);
+ minlod_fixed = U_FIXED(CLAMP(sampler->MinLod, 0.0, 11), 4);
+ maxlod = MIN2(sampler->MaxLod, tObj->_MaxLevel - tObj->BaseLevel);
if (intel->intelScreen->deviceID == PCI_CHIP_I855_GM ||
intel->intelScreen->deviceID == PCI_CHIP_I865_G) {
maxlod_fixed = U_FIXED(CLAMP(maxlod, 0.0, 11.75), 2);
@@ -279,8 +281,8 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
{
- GLenum ws = tObj->Sampler.WrapS;
- GLenum wt = tObj->Sampler.WrapT;
+ GLenum ws = sampler->WrapS;
+ GLenum wt = sampler->WrapT;
/* 3D textures not available on i830
@@ -300,10 +302,10 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
/* convert border color from float to ubyte */
- CLAMPED_FLOAT_TO_UBYTE(border[0], tObj->Sampler.BorderColor.f[0]);
- CLAMPED_FLOAT_TO_UBYTE(border[1], tObj->Sampler.BorderColor.f[1]);
- CLAMPED_FLOAT_TO_UBYTE(border[2], tObj->Sampler.BorderColor.f[2]);
- CLAMPED_FLOAT_TO_UBYTE(border[3], tObj->Sampler.BorderColor.f[3]);
+ CLAMPED_FLOAT_TO_UBYTE(border[0], sampler->BorderColor.f[0]);
+ CLAMPED_FLOAT_TO_UBYTE(border[1], sampler->BorderColor.f[1]);
+ CLAMPED_FLOAT_TO_UBYTE(border[2], sampler->BorderColor.f[2]);
+ CLAMPED_FLOAT_TO_UBYTE(border[3], sampler->BorderColor.f[3]);
state[I830_TEXREG_TM0S4] = PACK_COLOR_8888(border[3],
border[0],
diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c b/src/mesa/drivers/dri/i915/i915_texstate.c
index 742bb994adb..5aa2ea18048 100644
--- a/src/mesa/drivers/dri/i915/i915_texstate.c
+++ b/src/mesa/drivers/dri/i915/i915_texstate.c
@@ -29,6 +29,7 @@
#include "main/enums.h"
#include "main/macros.h"
#include "main/colormac.h"
+#include "main/samplerobj.h"
#include "intel_mipmap_tree.h"
#include "intel_tex.h"
@@ -136,6 +137,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
struct gl_texture_object *tObj = tUnit->_Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
struct gl_texture_image *firstImage;
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
GLuint *state = i915->state.Tex[unit], format, pitch;
GLint lodbias, aniso = 0;
GLubyte border[4];
@@ -164,7 +166,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
format = translate_texture_format(firstImage->TexFormat,
firstImage->InternalFormat,
- tObj->Sampler.DepthMode);
+ sampler->DepthMode);
pitch = intelObj->mt->region->pitch * intelObj->mt->cpp;
state[I915_TEXREG_MS3] =
@@ -181,7 +183,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
* (lowest resolution) LOD. Use it to cover both MAX_LEVEL and
* MAX_LOD.
*/
- maxlod = MIN2(tObj->Sampler.MaxLod, tObj->_MaxLevel - tObj->BaseLevel);
+ maxlod = MIN2(sampler->MaxLod, tObj->_MaxLevel - tObj->BaseLevel);
state[I915_TEXREG_MS4] =
((((pitch / 4) - 1) << MS4_PITCH_SHIFT) |
MS4_CUBE_FACE_ENA_MASK |
@@ -192,7 +194,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
{
GLuint minFilt, mipFilt, magFilt;
- switch (tObj->Sampler.MinFilter) {
+ switch (sampler->MinFilter) {
case GL_NEAREST:
minFilt = FILTER_NEAREST;
mipFilt = MIPFILTER_NONE;
@@ -221,16 +223,16 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
return GL_FALSE;
}
- if (tObj->Sampler.MaxAnisotropy > 1.0) {
+ if (sampler->MaxAnisotropy > 1.0) {
minFilt = FILTER_ANISOTROPIC;
magFilt = FILTER_ANISOTROPIC;
- if (tObj->Sampler.MaxAnisotropy > 2.0)
+ if (sampler->MaxAnisotropy > 2.0)
aniso = SS2_MAX_ANISO_4;
else
aniso = SS2_MAX_ANISO_2;
}
else {
- switch (tObj->Sampler.MagFilter) {
+ switch (sampler->MagFilter) {
case GL_NEAREST:
magFilt = FILTER_NEAREST;
break;
@@ -242,7 +244,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
}
- lodbias = (int) ((tUnit->LodBias + tObj->Sampler.LodBias) * 16.0);
+ lodbias = (int) ((tUnit->LodBias + sampler->LodBias) * 16.0);
if (lodbias < -256)
lodbias = -256;
if (lodbias > 255)
@@ -258,14 +260,14 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
/* Shadow:
*/
- if (tObj->Sampler.CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB &&
+ if (sampler->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB &&
tObj->Target != GL_TEXTURE_3D) {
if (tObj->Target == GL_TEXTURE_1D)
return GL_FALSE;
state[I915_TEXREG_SS2] |=
(SS2_SHADOW_ENABLE |
- intel_translate_shadow_compare_func(tObj->Sampler.CompareFunc));
+ intel_translate_shadow_compare_func(sampler->CompareFunc));
minFilt = FILTER_4X4_FLAT;
magFilt = FILTER_4X4_FLAT;
@@ -278,9 +280,9 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
{
- GLenum ws = tObj->Sampler.WrapS;
- GLenum wt = tObj->Sampler.WrapT;
- GLenum wr = tObj->Sampler.WrapR;
+ GLenum ws = sampler->WrapS;
+ GLenum wt = sampler->WrapT;
+ GLenum wr = sampler->WrapR;
float minlod;
/* We program 1D textures as 2D textures, so the 2D texcoord could
@@ -298,8 +300,8 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
* clamp_to_border.
*/
if (tObj->Target == GL_TEXTURE_3D &&
- (tObj->Sampler.MinFilter != GL_NEAREST ||
- tObj->Sampler.MagFilter != GL_NEAREST) &&
+ (sampler->MinFilter != GL_NEAREST ||
+ sampler->MagFilter != GL_NEAREST) &&
(ws == GL_CLAMP ||
wt == GL_CLAMP ||
wr == GL_CLAMP ||
@@ -322,7 +324,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
(translate_wrap_mode(wt) << SS3_TCY_ADDR_MODE_SHIFT) |
(translate_wrap_mode(wr) << SS3_TCZ_ADDR_MODE_SHIFT));
- minlod = MIN2(tObj->Sampler.MinLod, tObj->_MaxLevel - tObj->BaseLevel);
+ minlod = MIN2(sampler->MinLod, tObj->_MaxLevel - tObj->BaseLevel);
state[I915_TEXREG_SS3] |= (unit << SS3_TEXTUREMAP_INDEX_SHIFT);
state[I915_TEXREG_SS3] |= (U_FIXED(CLAMP(minlod, 0.0, 11.0), 4) <<
SS3_MIN_LOD_SHIFT);
@@ -330,10 +332,10 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
}
/* convert border color from float to ubyte */
- CLAMPED_FLOAT_TO_UBYTE(border[0], tObj->Sampler.BorderColor.f[0]);
- CLAMPED_FLOAT_TO_UBYTE(border[1], tObj->Sampler.BorderColor.f[1]);
- CLAMPED_FLOAT_TO_UBYTE(border[2], tObj->Sampler.BorderColor.f[2]);
- CLAMPED_FLOAT_TO_UBYTE(border[3], tObj->Sampler.BorderColor.f[3]);
+ CLAMPED_FLOAT_TO_UBYTE(border[0], sampler->BorderColor.f[0]);
+ CLAMPED_FLOAT_TO_UBYTE(border[1], sampler->BorderColor.f[1]);
+ CLAMPED_FLOAT_TO_UBYTE(border[2], sampler->BorderColor.f[2]);
+ CLAMPED_FLOAT_TO_UBYTE(border[3], sampler->BorderColor.f[3]);
if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
/* GL specs that border color for depth textures is taken from the
diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile
index b05ba35d65f..849018b74ae 100644
--- a/src/mesa/drivers/dri/i965/Makefile
+++ b/src/mesa/drivers/dri/i965/Makefile
@@ -61,7 +61,6 @@ DRIVER_SOURCES = \
brw_sf.c \
brw_sf_emit.c \
brw_sf_state.c \
- brw_state.c \
brw_state_batch.c \
brw_state_cache.c \
brw_state_dump.c \
diff --git a/src/mesa/drivers/dri/i965/brw_cc.c b/src/mesa/drivers/dri/i965/brw_cc.c
index 74a66af31a5..94b8c20b019 100644
--- a/src/mesa/drivers/dri/i965/brw_cc.c
+++ b/src/mesa/drivers/dri/i965/brw_cc.c
@@ -37,28 +37,36 @@
#include "main/macros.h"
#include "intel_batchbuffer.h"
-void
-brw_update_cc_vp(struct brw_context *brw)
+static void
+prepare_cc_vp(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
- struct brw_cc_viewport ccv;
+ struct brw_cc_viewport *ccv;
- memset(&ccv, 0, sizeof(ccv));
+ ccv = brw_state_batch(brw, sizeof(*ccv), 32, &brw->cc.vp_offset);
/* _NEW_TRANSOFORM */
if (ctx->Transform.DepthClamp) {
/* _NEW_VIEWPORT */
- ccv.min_depth = MIN2(ctx->Viewport.Near, ctx->Viewport.Far);
- ccv.max_depth = MAX2(ctx->Viewport.Near, ctx->Viewport.Far);
+ ccv->min_depth = MIN2(ctx->Viewport.Near, ctx->Viewport.Far);
+ ccv->max_depth = MAX2(ctx->Viewport.Near, ctx->Viewport.Far);
} else {
- ccv.min_depth = 0.0;
- ccv.max_depth = 1.0;
+ ccv->min_depth = 0.0;
+ ccv->max_depth = 1.0;
}
- drm_intel_bo_unreference(brw->cc.vp_bo);
- brw->cc.vp_bo = brw_cache_data(&brw->cache, BRW_CC_VP, &ccv, sizeof(ccv));
+ brw->state.dirty.cache |= CACHE_NEW_CC_VP;
}
+const struct brw_tracked_state brw_cc_vp = {
+ .dirty = {
+ .mesa = _NEW_VIEWPORT | _NEW_TRANSFORM,
+ .brw = BRW_NEW_BATCH,
+ .cache = 0
+ },
+ .prepare = prepare_cc_vp
+};
+
/**
* Modify blend function to force destination alpha to 1.0
*
@@ -81,11 +89,6 @@ fix_xRGB_alpha(GLenum function)
return function;
}
-static void prepare_cc_unit(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->cc.vp_bo);
-}
-
/**
* Creates the state cache entry for the given CC unit key.
*/
@@ -209,7 +212,8 @@ static void upload_cc_unit(struct brw_context *brw)
cc->cc5.statistics_enable = 1;
/* CACHE_NEW_CC_VP */
- cc->cc4.cc_viewport_state_offset = brw->cc.vp_bo->offset >> 5; /* reloc */
+ cc->cc4.cc_viewport_state_offset = (intel->batch.bo->offset +
+ brw->cc.vp_offset) >> 5; /* reloc */
brw->state.dirty.cache |= CACHE_NEW_CC_UNIT;
@@ -217,7 +221,7 @@ static void upload_cc_unit(struct brw_context *brw)
drm_intel_bo_emit_reloc(brw->intel.batch.bo,
(brw->cc.state_offset +
offsetof(struct brw_cc_unit_state, cc4)),
- brw->cc.vp_bo, 0,
+ intel->batch.bo, brw->cc.vp_offset,
I915_GEM_DOMAIN_INSTRUCTION, 0);
}
@@ -227,7 +231,6 @@ const struct brw_tracked_state brw_cc_unit = {
.brw = BRW_NEW_BATCH,
.cache = CACHE_NEW_CC_VP
},
- .prepare = prepare_cc_unit,
.emit = upload_cc_unit,
};
diff --git a/src/mesa/drivers/dri/i965/brw_clip.c b/src/mesa/drivers/dri/i965/brw_clip.c
index 1be165cc9a1..3c175515408 100644
--- a/src/mesa/drivers/dri/i965/brw_clip.c
+++ b/src/mesa/drivers/dri/i965/brw_clip.c
@@ -144,14 +144,12 @@ static void compile_clip_prog( struct brw_context *brw,
/* Upload
*/
drm_intel_bo_unreference(brw->clip.prog_bo);
- brw->clip.prog_bo = brw_upload_cache_with_auxdata(&brw->cache,
- BRW_CLIP_PROG,
- &c.key, sizeof(c.key),
- NULL, 0,
- program, program_size,
- &c.prog_data,
- sizeof(c.prog_data),
- &brw->clip.prog_data);
+ brw->clip.prog_bo = brw_upload_cache(&brw->cache,
+ BRW_CLIP_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->clip.prog_data);
}
/* Calculate interpolants for triangle and line rasterization.
@@ -270,7 +268,6 @@ static void upload_clip_prog(struct brw_context *brw)
drm_intel_bo_unreference(brw->clip.prog_bo);
brw->clip.prog_bo = brw_search_cache(&brw->cache, BRW_CLIP_PROG,
&key, sizeof(key),
- NULL, 0,
&brw->clip.prog_data);
if (brw->clip.prog_bo == NULL)
compile_clip_prog( brw, &key );
diff --git a/src/mesa/drivers/dri/i965/brw_clip_state.c b/src/mesa/drivers/dri/i965/brw_clip_state.c
index 60fd5fa7d9e..6015c8cbe9f 100644
--- a/src/mesa/drivers/dri/i965/brw_clip_state.c
+++ b/src/mesa/drivers/dri/i965/brw_clip_state.c
@@ -33,148 +33,101 @@
#include "brw_state.h"
#include "brw_defines.h"
-struct brw_clip_unit_key {
- unsigned int total_grf;
- unsigned int urb_entry_read_length;
- unsigned int curb_entry_read_length;
- unsigned int clip_mode;
-
- unsigned int curbe_offset;
-
- unsigned int nr_urb_entries, urb_size;
-
- GLboolean depth_clamp;
-};
-
static void
-clip_unit_populate_key(struct brw_context *brw, struct brw_clip_unit_key *key)
-{
- struct gl_context *ctx = &brw->intel.ctx;
- memset(key, 0, sizeof(*key));
-
- /* CACHE_NEW_CLIP_PROG */
- key->total_grf = brw->clip.prog_data->total_grf;
- key->urb_entry_read_length = brw->clip.prog_data->urb_read_length;
- key->curb_entry_read_length = brw->clip.prog_data->curb_read_length;
- key->clip_mode = brw->clip.prog_data->clip_mode;
-
- /* BRW_NEW_CURBE_OFFSETS */
- key->curbe_offset = brw->curbe.clip_start;
-
- /* BRW_NEW_URB_FENCE */
- key->nr_urb_entries = brw->urb.nr_clip_entries;
- key->urb_size = brw->urb.vsize;
-
- /* _NEW_TRANSOFORM */
- key->depth_clamp = ctx->Transform.DepthClamp;
-}
-
-static drm_intel_bo *
-clip_unit_create_from_key(struct brw_context *brw,
- struct brw_clip_unit_key *key)
+brw_prepare_clip_unit(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
- struct brw_clip_unit_state clip;
- drm_intel_bo *bo;
+ struct gl_context *ctx = &intel->ctx;
+ struct brw_clip_unit_state *clip;
- memset(&clip, 0, sizeof(clip));
+ clip = brw_state_batch(brw, sizeof(*clip), 32, &brw->clip.state_offset);
+ memset(clip, 0, sizeof(*clip));
- clip.thread0.grf_reg_count = ALIGN(key->total_grf, 16) / 16 - 1;
+ /* CACHE_NEW_CLIP_PROG */
+ clip->thread0.grf_reg_count = (ALIGN(brw->clip.prog_data->total_grf, 16) /
+ 16 - 1);
/* reloc */
- clip.thread0.kernel_start_pointer = brw->clip.prog_bo->offset >> 6;
+ clip->thread0.kernel_start_pointer = brw->clip.prog_bo->offset >> 6;
- clip.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
- clip.thread1.single_program_flow = 1;
+ clip->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
+ clip->thread1.single_program_flow = 1;
- clip.thread3.urb_entry_read_length = key->urb_entry_read_length;
- clip.thread3.const_urb_entry_read_length = key->curb_entry_read_length;
- clip.thread3.const_urb_entry_read_offset = key->curbe_offset * 2;
- clip.thread3.dispatch_grf_start_reg = 1;
- clip.thread3.urb_entry_read_offset = 0;
+ clip->thread3.urb_entry_read_length = brw->clip.prog_data->urb_read_length;
+ clip->thread3.const_urb_entry_read_length =
+ brw->clip.prog_data->curb_read_length;
+
+ /* BRW_NEW_CURBE_OFFSETS */
+ clip->thread3.const_urb_entry_read_offset = brw->curbe.clip_start * 2;
+ clip->thread3.dispatch_grf_start_reg = 1;
+ clip->thread3.urb_entry_read_offset = 0;
- clip.thread4.nr_urb_entries = key->nr_urb_entries;
- clip.thread4.urb_entry_allocation_size = key->urb_size - 1;
+ /* BRW_NEW_URB_FENCE */
+ clip->thread4.nr_urb_entries = brw->urb.nr_clip_entries;
+ clip->thread4.urb_entry_allocation_size = brw->urb.vsize - 1;
/* If we have enough clip URB entries to run two threads, do so.
*/
- if (key->nr_urb_entries >= 10) {
+ if (brw->urb.nr_clip_entries >= 10) {
/* Half of the URB entries go to each thread, and it has to be an
* even number.
*/
- assert(key->nr_urb_entries % 2 == 0);
+ assert(brw->urb.nr_clip_entries % 2 == 0);
/* Although up to 16 concurrent Clip threads are allowed on Ironlake,
* only 2 threads can output VUEs at a time.
*/
if (intel->gen == 5)
- clip.thread4.max_threads = 16 - 1;
+ clip->thread4.max_threads = 16 - 1;
else
- clip.thread4.max_threads = 2 - 1;
+ clip->thread4.max_threads = 2 - 1;
} else {
- assert(key->nr_urb_entries >= 5);
- clip.thread4.max_threads = 1 - 1;
+ assert(brw->urb.nr_clip_entries >= 5);
+ clip->thread4.max_threads = 1 - 1;
}
if (unlikely(INTEL_DEBUG & DEBUG_SINGLE_THREAD))
- clip.thread4.max_threads = 0;
+ clip->thread4.max_threads = 0;
if (unlikely(INTEL_DEBUG & DEBUG_STATS))
- clip.thread4.stats_enable = 1;
-
- clip.clip5.userclip_enable_flags = 0x7f;
- clip.clip5.userclip_must_clip = 1;
- clip.clip5.guard_band_enable = 0;
- if (!key->depth_clamp)
- clip.clip5.viewport_z_clip_enable = 1;
- clip.clip5.viewport_xy_clip_enable = 1;
- clip.clip5.vertex_position_space = BRW_CLIP_NDCSPACE;
- clip.clip5.api_mode = BRW_CLIP_API_OGL;
- clip.clip5.clip_mode = key->clip_mode;
+ clip->thread4.stats_enable = 1;
- if (intel->is_g4x)
- clip.clip5.negative_w_clip_test = 1;
+ clip->clip5.userclip_enable_flags = 0x7f;
+ clip->clip5.userclip_must_clip = 1;
+ clip->clip5.guard_band_enable = 0;
+ /* _NEW_TRANSOFORM */
+ if (!ctx->Transform.DepthClamp)
+ clip->clip5.viewport_z_clip_enable = 1;
+ clip->clip5.viewport_xy_clip_enable = 1;
+ clip->clip5.vertex_position_space = BRW_CLIP_NDCSPACE;
+ clip->clip5.api_mode = BRW_CLIP_API_OGL;
+ clip->clip5.clip_mode = brw->clip.prog_data->clip_mode;
- clip.clip6.clipper_viewport_state_ptr = 0;
- clip.viewport_xmin = -1;
- clip.viewport_xmax = 1;
- clip.viewport_ymin = -1;
- clip.viewport_ymax = 1;
+ if (intel->is_g4x)
+ clip->clip5.negative_w_clip_test = 1;
- bo = brw_upload_cache(&brw->cache, BRW_CLIP_UNIT,
- key, sizeof(*key),
- &brw->clip.prog_bo, 1,
- &clip, sizeof(clip));
+ clip->clip6.clipper_viewport_state_ptr = 0;
+ clip->viewport_xmin = -1;
+ clip->viewport_xmax = 1;
+ clip->viewport_ymin = -1;
+ clip->viewport_ymax = 1;
/* Emit clip program relocation */
assert(brw->clip.prog_bo);
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_clip_unit_state, thread0),
- brw->clip.prog_bo, clip.thread0.grf_reg_count << 1,
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ (brw->clip.state_offset +
+ offsetof(struct brw_clip_unit_state, thread0)),
+ brw->clip.prog_bo, clip->thread0.grf_reg_count << 1,
I915_GEM_DOMAIN_INSTRUCTION, 0);
- return bo;
-}
-
-static void upload_clip_unit( struct brw_context *brw )
-{
- struct brw_clip_unit_key key;
-
- clip_unit_populate_key(brw, &key);
-
- drm_intel_bo_unreference(brw->clip.state_bo);
- brw->clip.state_bo = brw_search_cache(&brw->cache, BRW_CLIP_UNIT,
- &key, sizeof(key),
- &brw->clip.prog_bo, 1,
- NULL);
- if (brw->clip.state_bo == NULL) {
- brw->clip.state_bo = clip_unit_create_from_key(brw, &key);
- }
+ brw->state.dirty.cache |= CACHE_NEW_CLIP_UNIT;
}
const struct brw_tracked_state brw_clip_unit = {
.dirty = {
.mesa = _NEW_TRANSFORM,
- .brw = (BRW_NEW_CURBE_OFFSETS |
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_CURBE_OFFSETS |
BRW_NEW_URB_FENCE),
.cache = CACHE_NEW_CLIP_PROG
},
- .prepare = upload_clip_unit,
+ .prepare = brw_prepare_clip_unit,
};
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 230d326fa12..db6466ff1ae 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -51,9 +51,6 @@ static void brwInitDriverFunctions( struct dd_function_table *functions )
brwInitFragProgFuncs( functions );
brw_init_queryobj_functions(functions);
-
- functions->Enable = brw_enable;
- functions->DepthRange = brw_depth_range;
}
GLboolean brwCreateContext( int api,
@@ -232,11 +229,6 @@ GLboolean brwCreateContext( int api,
brw_draw_init( brw );
- /* Now that most driver functions are hooked up, initialize some of the
- * immediate state.
- */
- brw_update_cc_vp(brw);
-
return GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 1daa49abfb3..26cd8209c65 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -204,13 +204,16 @@ struct brw_wm_prog_data {
GLuint urb_read_length;
GLuint first_curbe_grf;
+ GLuint first_curbe_grf_16;
GLuint total_grf;
+ GLuint total_grf_16;
GLuint total_scratch;
GLuint nr_params; /**< number of float params/constants */
GLuint nr_pull_params;
GLboolean error;
int dispatch_width;
+ uint32_t prog_offset_16;
/* Pointer to tracked values (only valid once
* _mesa_load_state_parameters has been called at runtime).
@@ -308,7 +311,6 @@ enum brw_cache_id {
BRW_CC_VP,
BRW_CC_UNIT,
BRW_WM_PROG,
- BRW_SAMPLER_DEFAULT_COLOR,
BRW_SAMPLER,
BRW_WM_UNIT,
BRW_SF_PROG,
@@ -336,8 +338,6 @@ struct brw_cache_item {
GLuint hash;
GLuint key_size; /* for variable-sized keys */
const void *key;
- drm_intel_bo **reloc_bufs;
- GLuint nr_reloc_bufs;
drm_intel_bo *bo;
@@ -381,7 +381,6 @@ struct brw_tracked_state {
#define CACHE_NEW_CC_VP (1<<BRW_CC_VP)
#define CACHE_NEW_CC_UNIT (1<<BRW_CC_UNIT)
#define CACHE_NEW_WM_PROG (1<<BRW_WM_PROG)
-#define CACHE_NEW_SAMPLER_DEFAULT_COLOR (1<<BRW_SAMPLER_DEFAULT_COLOR)
#define CACHE_NEW_SAMPLER (1<<BRW_SAMPLER)
#define CACHE_NEW_WM_UNIT (1<<BRW_WM_UNIT)
#define CACHE_NEW_SF_PROG (1<<BRW_SF_PROG)
@@ -630,29 +629,38 @@ struct brw_context
int8_t *constant_map; /* variable array following prog_data */
drm_intel_bo *prog_bo;
- drm_intel_bo *state_bo;
drm_intel_bo *const_bo;
+ uint32_t state_offset;
/** Binding table of pointers to surf_bo entries */
uint32_t bind_bo_offset;
uint32_t surf_offset[BRW_VS_MAX_SURF];
GLuint nr_surfaces;
+
+ uint32_t push_const_offset; /* Offset in the batchbuffer */
+ int push_const_size; /* in 256-bit register increments */
} vs;
struct {
struct brw_gs_prog_data *prog_data;
GLboolean prog_active;
+ uint32_t state_offset;
drm_intel_bo *prog_bo;
- drm_intel_bo *state_bo;
} gs;
struct {
struct brw_clip_prog_data *prog_data;
drm_intel_bo *prog_bo;
- drm_intel_bo *state_bo;
- drm_intel_bo *vp_bo;
+
+ /* Offset in the batch to the CLIP state on pre-gen6. */
+ uint32_t state_offset;
+
+ /* As of gen6, this is the offset in the batch to the CLIP VP,
+ * instead of vp_bo.
+ */
+ uint32_t vp_offset;
} clip;
@@ -660,9 +668,7 @@ struct brw_context
struct brw_sf_prog_data *prog_data;
drm_intel_bo *prog_bo;
- drm_intel_bo *state_bo;
uint32_t state_offset;
- drm_intel_bo *vp_bo;
uint32_t vp_offset;
} sf;
@@ -675,8 +681,9 @@ struct brw_context
*/
GLbitfield input_size_masks[4];
- /** Array of surface default colors (texture border color) */
- drm_intel_bo *sdc_bo[BRW_MAX_TEX_UNIT];
+ /** offsets in the batch to sampler default colors (texture border color)
+ */
+ uint32_t sdc_offset[BRW_MAX_TEX_UNIT];
GLuint render_surf;
GLuint nr_surfaces;
@@ -685,35 +692,32 @@ struct brw_context
drm_intel_bo *scratch_bo;
GLuint sampler_count;
- drm_intel_bo *sampler_bo;
+ uint32_t sampler_offset;
/** Binding table of pointers to surf_bo entries */
uint32_t bind_bo_offset;
uint32_t surf_offset[BRW_WM_MAX_SURF];
+ uint32_t state_offset; /* offset in batchbuffer to pre-gen6 WM state */
drm_intel_bo *prog_bo;
- drm_intel_bo *state_bo;
drm_intel_bo *const_bo; /* pull constant buffer. */
/**
- * This is the push constant BO on gen6.
+ * This is offset in the batch to the push constants on gen6.
*
* Pre-gen6, push constants live in the CURBE.
*/
- drm_intel_bo *push_const_bo;
+ uint32_t push_const_offset;
} wm;
struct {
/* gen4 */
drm_intel_bo *prog_bo;
- drm_intel_bo *vp_bo;
-
- /* gen6 */
- drm_intel_bo *blend_state_bo;
- drm_intel_bo *depth_stencil_state_bo;
- drm_intel_bo *color_calc_state_bo;
uint32_t state_offset;
+ uint32_t blend_state_offset;
+ uint32_t depth_stencil_state_offset;
+ uint32_t vp_offset;
} cc;
struct {
@@ -783,9 +787,6 @@ void brwInitFragProgFuncs( struct dd_function_table *functions );
*/
void brw_upload_urb_fence(struct brw_context *brw);
-/* brw_cc.c */
-void brw_update_cc_vp(struct brw_context *brw);
-
/* brw_curbe.c
*/
void brw_upload_cs_urb_state(struct brw_context *brw);
@@ -793,10 +794,6 @@ void brw_upload_cs_urb_state(struct brw_context *brw);
/* brw_disasm.c */
int brw_disasm (FILE *file, struct brw_instruction *inst, int gen);
-/* brw_state.c */
-void brw_enable(struct gl_context * ctx, GLenum cap, GLboolean state);
-void brw_depth_range(struct gl_context *ctx, GLclampd nearval, GLclampd farval);
-
/*======================================================================
* Inline conversion functions. These are better-typed than the
* macros used previously:
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
index 2db70c543ea..9ab533179b8 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -28,6 +28,8 @@
#include "main/glheader.h"
#include "main/context.h"
+#include "main/condrender.h"
+#include "main/samplerobj.h"
#include "main/state.h"
#include "main/enums.h"
#include "tnl/tnl.h"
@@ -278,22 +280,25 @@ static GLboolean check_fallbacks( struct brw_context *brw,
int u;
for (u = 0; u < ctx->Const.MaxTextureCoordUnits; u++) {
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[u];
+
if (texUnit->Enabled) {
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, u);
+
if (texUnit->Enabled & TEXTURE_1D_BIT) {
- if (texUnit->CurrentTex[TEXTURE_1D_INDEX]->Sampler.WrapS == GL_CLAMP) {
+ if (sampler->WrapS == GL_CLAMP) {
return GL_TRUE;
}
}
if (texUnit->Enabled & TEXTURE_2D_BIT) {
- if (texUnit->CurrentTex[TEXTURE_2D_INDEX]->Sampler.WrapS == GL_CLAMP ||
- texUnit->CurrentTex[TEXTURE_2D_INDEX]->Sampler.WrapT == GL_CLAMP) {
+ if (sampler->WrapS == GL_CLAMP ||
+ sampler->WrapT == GL_CLAMP) {
return GL_TRUE;
}
}
if (texUnit->Enabled & TEXTURE_3D_BIT) {
- if (texUnit->CurrentTex[TEXTURE_3D_INDEX]->Sampler.WrapS == GL_CLAMP ||
- texUnit->CurrentTex[TEXTURE_3D_INDEX]->Sampler.WrapT == GL_CLAMP ||
- texUnit->CurrentTex[TEXTURE_3D_INDEX]->Sampler.WrapR == GL_CLAMP) {
+ if (sampler->WrapS == GL_CLAMP ||
+ sampler->WrapT == GL_CLAMP ||
+ sampler->WrapR == GL_CLAMP) {
return GL_TRUE;
}
}
@@ -359,15 +364,21 @@ static GLboolean brw_try_draw_prims( struct gl_context *ctx,
for (i = 0; i < nr_prims; i++) {
uint32_t hw_prim;
+ int estimated_max_prim_size;
+
+ estimated_max_prim_size = 512; /* batchbuffer commands */
+ estimated_max_prim_size += (BRW_MAX_TEX_UNIT *
+ (sizeof(struct brw_sampler_state) +
+ sizeof(struct gen5_sampler_default_color)));
+ estimated_max_prim_size += 1024; /* gen6 VS push constants */
+ estimated_max_prim_size += 1024; /* gen6 WM push constants */
+ estimated_max_prim_size += 512; /* misc. pad */
/* Flush the batch if it's approaching full, so that we don't wrap while
* we've got validated state that needs to be in the same batch as the
- * primitives. This fraction is just a guess (minimal full state plus
- * a primitive is around 512 bytes), and would be better if we had
- * an upper bound of how much we might emit in a single
- * brw_try_draw_prims().
+ * primitives.
*/
- intel_batchbuffer_require_space(intel, 1024, false);
+ intel_batchbuffer_require_space(intel, estimated_max_prim_size, false);
hw_prim = brw_set_prim(brw, &prim[i]);
if (brw->state.dirty.brw) {
@@ -438,6 +449,9 @@ void brw_draw_prims( struct gl_context *ctx,
{
GLboolean retval;
+ if (!_mesa_check_conditional_render(ctx))
+ return;
+
if (!vbo_all_varyings_in_vbos(arrays)) {
if (!index_bounds_valid)
vbo_get_minmax_index(ctx, prim, ib, &min_index, &max_index);
diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h
index 718b3800423..4eb67d57a5a 100644
--- a/src/mesa/drivers/dri/i965/brw_eu.h
+++ b/src/mesa/drivers/dri/i965/brw_eu.h
@@ -293,6 +293,14 @@ static INLINE struct brw_reg retype( struct brw_reg reg,
return reg;
}
+static inline struct brw_reg
+sechalf(struct brw_reg reg)
+{
+ if (reg.vstride)
+ reg.nr++;
+ return reg;
+}
+
static INLINE struct brw_reg suboffset( struct brw_reg reg,
GLuint delta )
{
@@ -856,7 +864,6 @@ void brw_ff_sync(struct brw_compile *p,
void brw_fb_WRITE(struct brw_compile *p,
int dispatch_width,
- struct brw_reg dest,
GLuint msg_reg_nr,
struct brw_reg src0,
GLuint binding_table_index,
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c
index 71485cd1f71..859068ec4eb 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
@@ -1871,7 +1871,6 @@ void brw_dp_READ_4_vs_relative(struct brw_compile *p,
void brw_fb_WRITE(struct brw_compile *p,
int dispatch_width,
- struct brw_reg dest,
GLuint msg_reg_nr,
struct brw_reg src0,
GLuint binding_table_index,
@@ -1883,6 +1882,12 @@ void brw_fb_WRITE(struct brw_compile *p,
struct intel_context *intel = &p->brw->intel;
struct brw_instruction *insn;
GLuint msg_control, msg_type;
+ struct brw_reg dest;
+
+ if (dispatch_width == 16)
+ dest = retype(vec16(brw_null_reg()), BRW_REGISTER_TYPE_UW);
+ else
+ dest = retype(vec8(brw_null_reg()), BRW_REGISTER_TYPE_UW);
if (intel->gen >= 6 && binding_table_index == 0) {
insn = next_insn(p, BRW_OPCODE_SENDC);
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 5426925e372..21eb9e4e5e1 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -194,6 +194,32 @@ fs_visitor::fail(const char *format, ...)
}
}
+void
+fs_visitor::push_force_uncompressed()
+{
+ force_uncompressed_stack++;
+}
+
+void
+fs_visitor::pop_force_uncompressed()
+{
+ force_uncompressed_stack--;
+ assert(force_uncompressed_stack >= 0);
+}
+
+void
+fs_visitor::push_force_sechalf()
+{
+ force_sechalf_stack++;
+}
+
+void
+fs_visitor::pop_force_sechalf()
+{
+ force_sechalf_stack--;
+ assert(force_sechalf_stack >= 0);
+}
+
/**
* Returns how many MRFs an FS opcode will write over.
*
@@ -214,9 +240,9 @@ fs_visitor::implied_mrf_writes(fs_inst *inst)
case FS_OPCODE_LOG2:
case FS_OPCODE_SIN:
case FS_OPCODE_COS:
- return 1;
+ return 1 * c->dispatch_width / 8;
case FS_OPCODE_POW:
- return 2;
+ return 2 * c->dispatch_width / 8;
case FS_OPCODE_TEX:
case FS_OPCODE_TXB:
case FS_OPCODE_TXD:
@@ -313,6 +339,31 @@ fs_visitor::variable_storage(ir_variable *var)
return (fs_reg *)hash_table_find(this->variable_ht, var);
}
+void
+import_uniforms_callback(const void *key,
+ void *data,
+ void *closure)
+{
+ struct hash_table *dst_ht = (struct hash_table *)closure;
+ const fs_reg *reg = (const fs_reg *)data;
+
+ if (reg->file != UNIFORM)
+ return;
+
+ hash_table_insert(dst_ht, data, key);
+}
+
+/* For 16-wide, we need to follow from the uniform setup of 8-wide dispatch.
+ * This brings in those uniform definitions
+ */
+void
+fs_visitor::import_uniforms(struct hash_table *src_variable_ht)
+{
+ hash_table_call_foreach(src_variable_ht,
+ import_uniforms_callback,
+ variable_ht);
+}
+
/* Our support for uniforms is piggy-backed on the struct
* gl_fragment_program, because that's where the values actually
* get stored, rather than in some global gl_shader_program uniform
@@ -614,7 +665,7 @@ fs_visitor::emit_math(fs_opcodes opcode, fs_reg dst, fs_reg src)
if (intel->gen < 6) {
inst->base_mrf = 2;
- inst->mlen = 1;
+ inst->mlen = c->dispatch_width / 8;
}
return inst;
@@ -652,7 +703,7 @@ fs_visitor::emit_math(fs_opcodes opcode, fs_reg dst, fs_reg src0, fs_reg src1)
inst = emit(opcode, dst, src0, reg_null_f);
inst->base_mrf = base_mrf;
- inst->mlen = 2;
+ inst->mlen = 2 * c->dispatch_width / 8;
}
return inst;
}
@@ -689,6 +740,13 @@ fs_visitor::visit(ir_variable *ir)
if (ir->mode == ir_var_uniform) {
int param_index = c->prog_data.nr_params;
+ if (c->dispatch_width == 16) {
+ if (!variable_storage(ir)) {
+ fail("Failed to find uniform '%s' in 16-wide\n", ir->name);
+ }
+ return;
+ }
+
if (!strncmp(ir->name, "gl_", 3)) {
setup_builtin_uniform_values(ir);
} else {
@@ -1233,32 +1291,34 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate)
return inst;
}
+/* gen5's sampler has slots for u, v, r, array index, then optional
+ * parameters like shadow comparitor or LOD bias. If optional
+ * parameters aren't present, those base slots are optional and don't
+ * need to be included in the message.
+ *
+ * We don't fill in the unnecessary slots regardless, which may look
+ * surprising in the disassembly.
+ */
fs_inst *
fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate)
{
- /* gen5's SIMD8 sampler has slots for u, v, r, array index, then
- * optional parameters like shadow comparitor or LOD bias. If
- * optional parameters aren't present, those base slots are
- * optional and don't need to be included in the message.
- *
- * We don't fill in the unnecessary slots regardless, which may
- * look surprising in the disassembly.
- */
int mlen = 1; /* g0 header always present. */
int base_mrf = 1;
+ int reg_width = c->dispatch_width / 8;
for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
- emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i), coordinate);
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i * reg_width),
+ coordinate);
coordinate.reg_offset++;
}
- mlen += ir->coordinate->type->vector_elements;
+ mlen += ir->coordinate->type->vector_elements * reg_width;
if (ir->shadow_comparitor) {
- mlen = MAX2(mlen, 5);
+ mlen = MAX2(mlen, 1 + 4 * reg_width);
ir->shadow_comparitor->accept(this);
emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result);
- mlen++;
+ mlen += reg_width;
}
fs_inst *inst = NULL;
@@ -1268,17 +1328,18 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate)
break;
case ir_txb:
ir->lod_info.bias->accept(this);
- mlen = MAX2(mlen, 5);
+ mlen = MAX2(mlen, 1 + 4 * reg_width);
emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result);
- mlen++;
+ mlen += reg_width;
inst = emit(FS_OPCODE_TXB, dst);
+
break;
case ir_txl:
ir->lod_info.lod->accept(this);
- mlen = MAX2(mlen, 5);
+ mlen = MAX2(mlen, 1 + 4 * reg_width);
emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result);
- mlen++;
+ mlen += reg_width;
inst = emit(FS_OPCODE_TXL, dst);
break;
@@ -1290,6 +1351,10 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate)
inst->base_mrf = base_mrf;
inst->mlen = mlen;
+ if (mlen > 11) {
+ fail("Message length >11 disallowed by hardware\n");
+ }
+
return inst;
}
@@ -1355,6 +1420,12 @@ fs_visitor::visit(ir_texture *ir)
0
};
+ if (c->dispatch_width == 16) {
+ fail("rectangle scale uniform setup not supported on 16-wide\n");
+ this->result = fs_reg(this, ir->type);
+ return;
+ }
+
c->prog_data.param_convert[c->prog_data.nr_params] =
PARAM_NO_CONVERT;
c->prog_data.param_convert[c->prog_data.nr_params + 1] =
@@ -1731,6 +1802,10 @@ fs_visitor::visit(ir_if *ir)
{
fs_inst *inst;
+ if (c->dispatch_width == 16) {
+ fail("Can't support (non-uniform) control flow on 16-wide\n");
+ }
+
/* Don't point the annotation at the if statement, because then it plus
* the then and else blocks get printed.
*/
@@ -1771,6 +1846,10 @@ fs_visitor::visit(ir_loop *ir)
{
fs_reg counter = reg_undef;
+ if (c->dispatch_width == 16) {
+ fail("Can't support (non-uniform) control flow on 16-wide\n");
+ }
+
if (ir->counter) {
this->base_ir = ir->counter;
ir->counter->accept(this);
@@ -1874,6 +1953,11 @@ fs_visitor::emit(fs_inst inst)
fs_inst *list_inst = new(mem_ctx) fs_inst;
*list_inst = inst;
+ if (force_uncompressed_stack > 0)
+ list_inst->force_uncompressed = true;
+ else if (force_sechalf_stack > 0)
+ list_inst->force_sechalf = true;
+
list_inst->annotation = this->current_annotation;
list_inst->ir = this->base_ir;
@@ -1916,21 +2000,14 @@ fs_visitor::interp_reg(int location, int channel)
void
fs_visitor::emit_interpolation_setup_gen4()
{
- struct brw_reg g1_uw = retype(brw_vec1_grf(1, 0), BRW_REGISTER_TYPE_UW);
-
this->current_annotation = "compute pixel centers";
this->pixel_x = fs_reg(this, glsl_type::uint_type);
this->pixel_y = fs_reg(this, glsl_type::uint_type);
this->pixel_x.type = BRW_REGISTER_TYPE_UW;
this->pixel_y.type = BRW_REGISTER_TYPE_UW;
- emit(BRW_OPCODE_ADD,
- this->pixel_x,
- fs_reg(stride(suboffset(g1_uw, 4), 2, 4, 0)),
- fs_reg(brw_imm_v(0x10101010)));
- emit(BRW_OPCODE_ADD,
- this->pixel_y,
- fs_reg(stride(suboffset(g1_uw, 5), 2, 4, 0)),
- fs_reg(brw_imm_v(0x11001100)));
+
+ emit(FS_OPCODE_PIXEL_X, this->pixel_x);
+ emit(FS_OPCODE_PIXEL_Y, this->pixel_y);
this->current_annotation = "compute pixel deltas from v0";
if (brw->has_pln) {
@@ -2001,11 +2078,69 @@ fs_visitor::emit_interpolation_setup_gen6()
}
void
+fs_visitor::emit_color_write(int index, int first_color_mrf, fs_reg color)
+{
+ int reg_width = c->dispatch_width / 8;
+
+ if (c->dispatch_width == 8 || intel->gen == 6) {
+ /* SIMD8 write looks like:
+ * m + 0: r0
+ * m + 1: r1
+ * m + 2: g0
+ * m + 3: g1
+ *
+ * gen6 SIMD16 DP write looks like:
+ * m + 0: r0
+ * m + 1: r1
+ * m + 2: g0
+ * m + 3: g1
+ * m + 4: b0
+ * m + 5: b1
+ * m + 6: a0
+ * m + 7: a1
+ */
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, first_color_mrf + index * reg_width),
+ color);
+ } else {
+ /* pre-gen6 SIMD16 single source DP write looks like:
+ * m + 0: r0
+ * m + 1: g0
+ * m + 2: b0
+ * m + 3: a0
+ * m + 4: r1
+ * m + 5: g1
+ * m + 6: b1
+ * m + 7: a1
+ */
+ if (brw->has_compr4) {
+ /* By setting the high bit of the MRF register number, we
+ * indicate that we want COMPR4 mode - instead of doing the
+ * usual destination + 1 for the second half we get
+ * destination + 4.
+ */
+ emit(BRW_OPCODE_MOV,
+ fs_reg(MRF, BRW_MRF_COMPR4 + first_color_mrf + index), color);
+ } else {
+ push_force_uncompressed();
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, first_color_mrf + index), color);
+ pop_force_uncompressed();
+
+ push_force_sechalf();
+ color.sechalf = true;
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, first_color_mrf + index + 4), color);
+ pop_force_sechalf();
+ color.sechalf = false;
+ }
+ }
+}
+
+void
fs_visitor::emit_fb_writes()
{
this->current_annotation = "FB write header";
GLboolean header_present = GL_TRUE;
int nr = 0;
+ int reg_width = c->dispatch_width / 8;
if (intel->gen >= 6 &&
!this->kill_emitted &&
@@ -2019,31 +2154,44 @@ fs_visitor::emit_fb_writes()
}
if (c->aa_dest_stencil_reg) {
+ push_force_uncompressed();
emit(BRW_OPCODE_MOV, fs_reg(MRF, nr++),
fs_reg(brw_vec8_grf(c->aa_dest_stencil_reg, 0)));
+ pop_force_uncompressed();
}
/* Reserve space for color. It'll be filled in per MRT below. */
int color_mrf = nr;
- nr += 4;
+ nr += 4 * reg_width;
if (c->source_depth_to_render_target) {
+ if (intel->gen == 6 && c->dispatch_width == 16) {
+ /* For outputting oDepth on gen6, SIMD8 writes have to be
+ * used. This would require 8-wide moves of each half to
+ * message regs, kind of like pre-gen5 SIMD16 FB writes.
+ * Just bail on doing so for now.
+ */
+ fail("Missing support for simd16 depth writes on gen6\n");
+ }
+
if (c->computes_depth) {
/* Hand over gl_FragDepth. */
assert(this->frag_depth);
fs_reg depth = *(variable_storage(this->frag_depth));
- emit(BRW_OPCODE_MOV, fs_reg(MRF, nr++), depth);
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, nr), depth);
} else {
/* Pass through the payload depth. */
- emit(BRW_OPCODE_MOV, fs_reg(MRF, nr++),
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, nr),
fs_reg(brw_vec8_grf(c->source_depth_reg, 0)));
}
+ nr += reg_width;
}
if (c->dest_depth_reg) {
- emit(BRW_OPCODE_MOV, fs_reg(MRF, nr++),
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, nr),
fs_reg(brw_vec8_grf(c->dest_depth_reg, 0)));
+ nr += reg_width;
}
fs_reg color = reg_undef;
@@ -2060,7 +2208,7 @@ fs_visitor::emit_fb_writes()
target);
if (this->frag_color || this->frag_data) {
for (int i = 0; i < 4; i++) {
- emit(BRW_OPCODE_MOV, fs_reg(MRF, color_mrf + i), color);
+ emit_color_write(i, color_mrf, color);
color.reg_offset++;
}
}
@@ -2084,7 +2232,7 @@ fs_visitor::emit_fb_writes()
* renderbuffer.
*/
color.reg_offset += 3;
- emit(BRW_OPCODE_MOV, fs_reg(MRF, color_mrf + 3), color);
+ emit_color_write(3, color_mrf, color);
}
fs_inst *inst = emit(FS_OPCODE_FB_WRITE);
@@ -2144,8 +2292,7 @@ fs_visitor::generate_fb_write(fs_inst *inst)
brw_pop_insn_state(p);
brw_fb_WRITE(p,
- 8, /* dispatch_width */
- retype(vec8(brw_null_reg()), BRW_REGISTER_TYPE_UW),
+ c->dispatch_width,
inst->base_mrf,
implied_header,
inst->target,
@@ -2155,6 +2302,40 @@ fs_visitor::generate_fb_write(fs_inst *inst)
inst->header_present);
}
+/* Computes the integer pixel x,y values from the origin.
+ *
+ * This is the basis of gl_FragCoord computation, but is also used
+ * pre-gen6 for computing the deltas from v0 for computing
+ * interpolation.
+ */
+void
+fs_visitor::generate_pixel_xy(struct brw_reg dst, bool is_x)
+{
+ struct brw_reg g1_uw = retype(brw_vec1_grf(1, 0), BRW_REGISTER_TYPE_UW);
+ struct brw_reg src;
+ struct brw_reg deltas;
+
+ if (is_x) {
+ src = stride(suboffset(g1_uw, 4), 2, 4, 0);
+ deltas = brw_imm_v(0x10101010);
+ } else {
+ src = stride(suboffset(g1_uw, 5), 2, 4, 0);
+ deltas = brw_imm_v(0x11001100);
+ }
+
+ if (c->dispatch_width == 16) {
+ dst = vec16(dst);
+ }
+
+ /* We do this 8 or 16-wide, but since the destination is UW we
+ * don't do compression in the 16-wide case.
+ */
+ brw_push_insn_state(p);
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
+ brw_ADD(p, dst, src, deltas);
+ brw_pop_insn_state(p);
+}
+
void
fs_visitor::generate_linterp(fs_inst *inst,
struct brw_reg dst, struct brw_reg *src)
@@ -2214,8 +2395,16 @@ fs_visitor::generate_math(fs_inst *inst,
assert(inst->mlen == 0);
if (inst->opcode == FS_OPCODE_POW) {
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math2(p, dst, op, src[0], src[1]);
+
+ if (c->dispatch_width == 16) {
+ brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
+ brw_math2(p, sechalf(dst), op, sechalf(src[0]), sechalf(src[1]));
+ brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED);
+ }
} else {
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p, dst,
op,
inst->saturate ? BRW_MATH_SATURATE_SATURATE :
@@ -2223,10 +2412,23 @@ fs_visitor::generate_math(fs_inst *inst,
0, src[0],
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
+
+ if (c->dispatch_width == 16) {
+ brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
+ brw_math(p, sechalf(dst),
+ op,
+ inst->saturate ? BRW_MATH_SATURATE_SATURATE :
+ BRW_MATH_SATURATE_NONE,
+ 0, sechalf(src[0]),
+ BRW_MATH_DATA_VECTOR,
+ BRW_MATH_PRECISION_FULL);
+ brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED);
+ }
}
- } else {
+ } else /* gen <= 5 */{
assert(inst->mlen >= 1);
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_math(p, dst,
op,
inst->saturate ? BRW_MATH_SATURATE_SATURATE :
@@ -2234,6 +2436,19 @@ fs_visitor::generate_math(fs_inst *inst,
inst->base_mrf, src[0],
BRW_MATH_DATA_VECTOR,
BRW_MATH_PRECISION_FULL);
+
+ if (c->dispatch_width == 16) {
+ brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
+ brw_math(p, sechalf(dst),
+ op,
+ inst->saturate ? BRW_MATH_SATURATE_SATURATE :
+ BRW_MATH_SATURATE_NONE,
+ inst->base_mrf + 1, sechalf(src[0]),
+ BRW_MATH_DATA_VECTOR,
+ BRW_MATH_PRECISION_FULL);
+
+ brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED);
+ }
}
}
@@ -2244,6 +2459,12 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
int rlen = 4;
uint32_t simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8;
+ if (c->dispatch_width == 16) {
+ rlen = 8;
+ dst = vec16(dst);
+ simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
+ }
+
if (intel->gen >= 5) {
switch (inst->opcode) {
case FS_OPCODE_TEX:
@@ -2311,11 +2532,6 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
}
assert(msg_type != -1);
- if (simd_mode == BRW_SAMPLER_SIMD_MODE_SIMD16) {
- rlen = 8;
- dst = vec16(dst);
- }
-
brw_SAMPLE(p,
retype(dst, BRW_REGISTER_TYPE_UW),
inst->base_mrf,
@@ -2408,6 +2624,7 @@ fs_visitor::generate_discard_not(fs_inst *inst, struct brw_reg mask)
} else {
brw_push_insn_state(p);
brw_set_mask_control(p, BRW_MASK_DISABLE);
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_NOT(p, mask, brw_mask_reg(1)); /* IMASK */
brw_pop_insn_state(p);
}
@@ -2432,6 +2649,7 @@ fs_visitor::generate_discard_and(fs_inst *inst, struct brw_reg mask)
brw_push_insn_state(p);
brw_set_mask_control(p, BRW_MASK_DISABLE);
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_AND(p, g1, f0, g1);
brw_pop_insn_state(p);
} else {
@@ -2441,6 +2659,7 @@ fs_visitor::generate_discard_and(fs_inst *inst, struct brw_reg mask)
brw_push_insn_state(p);
brw_set_mask_control(p, BRW_MASK_DISABLE);
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
brw_AND(p, g0, mask, g0);
brw_pop_insn_state(p);
}
@@ -2527,6 +2746,9 @@ fs_visitor::generate_pull_constant_load(fs_inst *inst, struct brw_reg dst)
void
fs_visitor::setup_paramvalues_refs()
{
+ if (c->dispatch_width != 8)
+ return;
+
/* Set up the pointers to ParamValues now that that array is finalized. */
for (unsigned int i = 0; i < c->prog_data.nr_params; i++) {
c->prog_data.param[i] =
@@ -2538,8 +2760,12 @@ fs_visitor::setup_paramvalues_refs()
void
fs_visitor::assign_curb_setup()
{
- c->prog_data.first_curbe_grf = c->nr_payload_regs;
c->prog_data.curb_read_length = ALIGN(c->prog_data.nr_params, 8) / 8;
+ if (c->dispatch_width == 8) {
+ c->prog_data.first_curbe_grf = c->nr_payload_regs;
+ } else {
+ c->prog_data.first_curbe_grf_16 = c->nr_payload_regs;
+ }
/* Map the offsets in the UNIFORM file to fixed HW regs. */
foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -2548,7 +2774,7 @@ fs_visitor::assign_curb_setup()
for (unsigned int i = 0; i < 3; i++) {
if (inst->src[i].file == UNIFORM) {
int constant_nr = inst->src[i].hw_reg + inst->src[i].reg_offset;
- struct brw_reg brw_reg = brw_vec1_grf(c->prog_data.first_curbe_grf +
+ struct brw_reg brw_reg = brw_vec1_grf(c->nr_payload_regs +
constant_nr / 8,
constant_nr % 8);
@@ -2600,7 +2826,7 @@ fs_visitor::calculate_urb_setup()
void
fs_visitor::assign_urb_setup()
{
- int urb_start = c->prog_data.first_curbe_grf + c->prog_data.curb_read_length;
+ int urb_start = c->nr_payload_regs + c->prog_data.curb_read_length;
/* Offset all the urb_setup[] index by the actual position of the
* setup regs, now that the location of the constants has been chosen.
@@ -2725,6 +2951,11 @@ fs_visitor::setup_pull_constants()
if (c->prog_data.nr_params <= max_uniform_components)
return;
+ if (c->dispatch_width == 16) {
+ fail("Pull constants not supported in 16-wide\n");
+ return;
+ }
+
/* Just demote the end of the list. We could probably do better
* here, demoting things that are rarely used in the program first.
*/
@@ -2884,7 +3115,9 @@ fs_visitor::propagate_constants()
if (inst->opcode != BRW_OPCODE_MOV ||
inst->predicated ||
inst->dst.file != GRF || inst->src[0].file != IMM ||
- inst->dst.type != inst->src[0].type)
+ inst->dst.type != inst->src[0].type ||
+ (c->dispatch_width == 16 &&
+ (inst->force_uncompressed || inst->force_sechalf)))
continue;
/* Don't bother with cases where we should have had the
@@ -3152,6 +3385,20 @@ fs_visitor::compute_to_mrf()
inst->src[0].abs || inst->src[0].negate || inst->src[0].smear != -1)
continue;
+ /* Work out which hardware MRF registers are written by this
+ * instruction.
+ */
+ int mrf_low = inst->dst.hw_reg & ~BRW_MRF_COMPR4;
+ int mrf_high;
+ if (inst->dst.hw_reg & BRW_MRF_COMPR4) {
+ mrf_high = mrf_low + 4;
+ } else if (c->dispatch_width == 16 &&
+ (!inst->force_uncompressed && !inst->force_sechalf)) {
+ mrf_high = mrf_low + 1;
+ } else {
+ mrf_high = mrf_low;
+ }
+
/* Can't compute-to-MRF this GRF if someone else was going to
* read it later.
*/
@@ -3179,11 +3426,21 @@ fs_visitor::compute_to_mrf()
}
/* If it's predicated, it (probably) didn't populate all
- * the channels.
+ * the channels. We might be able to rewrite everything
+ * that writes that reg, but it would require smarter
+ * tracking to delay the rewriting until complete success.
*/
if (scan_inst->predicated)
break;
+ /* If it's half of register setup and not the same half as
+ * our MOV we're trying to remove, bail for now.
+ */
+ if (scan_inst->force_uncompressed != inst->force_uncompressed ||
+ scan_inst->force_sechalf != inst->force_sechalf) {
+ break;
+ }
+
/* SEND instructions can't have MRF as a destination. */
if (scan_inst->mlen)
break;
@@ -3233,12 +3490,29 @@ fs_visitor::compute_to_mrf()
if (interfered)
break;
- if (scan_inst->dst.file == MRF &&
- scan_inst->dst.hw_reg == inst->dst.hw_reg) {
- /* Somebody else wrote our MRF here, so we can't can't
+ if (scan_inst->dst.file == MRF) {
+ /* If somebody else writes our MRF here, we can't
* compute-to-MRF before that.
*/
- break;
+ int scan_mrf_low = scan_inst->dst.hw_reg & ~BRW_MRF_COMPR4;
+ int scan_mrf_high;
+
+ if (scan_inst->dst.hw_reg & BRW_MRF_COMPR4) {
+ scan_mrf_high = scan_mrf_low + 4;
+ } else if (c->dispatch_width == 16 &&
+ (!scan_inst->force_uncompressed &&
+ !scan_inst->force_sechalf)) {
+ scan_mrf_high = scan_mrf_low + 1;
+ } else {
+ scan_mrf_high = scan_mrf_low;
+ }
+
+ if (mrf_low == scan_mrf_low ||
+ mrf_low == scan_mrf_high ||
+ mrf_high == scan_mrf_low ||
+ mrf_high == scan_mrf_high) {
+ break;
+ }
}
if (scan_inst->mlen > 0) {
@@ -3247,8 +3521,12 @@ fs_visitor::compute_to_mrf()
* scan_inst->mlen - 1. Don't go pushing our MRF write up
* above it.
*/
- if (inst->dst.hw_reg >= scan_inst->base_mrf &&
- inst->dst.hw_reg < scan_inst->base_mrf + scan_inst->mlen) {
+ if (mrf_low >= scan_inst->base_mrf &&
+ mrf_low < scan_inst->base_mrf + scan_inst->mlen) {
+ break;
+ }
+ if (mrf_high >= scan_inst->base_mrf &&
+ mrf_high < scan_inst->base_mrf + scan_inst->mlen) {
break;
}
}
@@ -3268,6 +3546,10 @@ fs_visitor::remove_duplicate_mrf_writes()
fs_inst *last_mrf_move[16];
bool progress = false;
+ /* Need to update the MRF tracking for compressed instructions. */
+ if (c->dispatch_width == 16)
+ return false;
+
memset(last_mrf_move, 0, sizeof(last_mrf_move));
foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -3347,6 +3629,29 @@ fs_visitor::virtual_grf_interferes(int a, int b)
(this->virtual_grf_use[b] != -1 ||
this->virtual_grf_def[b] == MAX_INSTRUCTION));
+ /* If the register is used to store 16 values of less than float
+ * size (only the case for pixel_[xy]), then we can't allocate
+ * another dword-sized thing to that register that would be used in
+ * the same instruction. This is because when the GPU decodes (for
+ * example):
+ *
+ * (declare (in ) vec4 gl_FragCoord@0x97766a0)
+ * add(16) g6<1>F g6<8,8,1>UW 0.5F { align1 compr };
+ *
+ * it's actually processed as:
+ * add(8) g6<1>F g6<8,8,1>UW 0.5F { align1 };
+ * add(8) g7<1>F g6.8<8,8,1>UW 0.5F { align1 sechalf };
+ *
+ * so our second half values in g6 got overwritten in the first
+ * half.
+ */
+ if (c->dispatch_width == 16 && (this->pixel_x.reg == a ||
+ this->pixel_x.reg == b ||
+ this->pixel_y.reg == a ||
+ this->pixel_y.reg == b)) {
+ return start <= end;
+ }
+
return start < end;
}
@@ -3366,6 +3671,8 @@ static struct brw_reg brw_reg_from_fs_reg(fs_reg *reg)
reg->hw_reg, reg->smear);
}
brw_reg = retype(brw_reg, reg->type);
+ if (reg->sechalf)
+ brw_reg = sechalf(brw_reg);
break;
case IMM:
switch (reg->type) {
@@ -3411,7 +3718,7 @@ static struct brw_reg brw_reg_from_fs_reg(fs_reg *reg)
void
fs_visitor::generate_code()
{
- int last_native_inst = 0;
+ int last_native_inst = p->nr_insn;
const char *last_annotation_string = NULL;
ir_instruction *last_annotation_ir = NULL;
@@ -3427,8 +3734,8 @@ fs_visitor::generate_code()
if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
- printf("Native code for fragment shader %d:\n",
- ctx->Shader.CurrentFragmentProgram->Name);
+ printf("Native code for fragment shader %d (%d-wide dispatch):\n",
+ ctx->Shader.CurrentFragmentProgram->Name, c->dispatch_width);
}
foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -3461,6 +3768,14 @@ fs_visitor::generate_code()
brw_set_predicate_inverse(p, inst->predicate_inverse);
brw_set_saturate(p, inst->saturate);
+ if (inst->force_uncompressed || c->dispatch_width == 8) {
+ brw_set_compression_control(p, BRW_COMPRESSION_NONE);
+ } else if (inst->force_sechalf) {
+ brw_set_compression_control(p, BRW_COMPRESSION_2NDHALF);
+ } else {
+ brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED);
+ }
+
switch (inst->opcode) {
case BRW_OPCODE_MOV:
brw_MOV(p, dst, src[0]);
@@ -3602,6 +3917,12 @@ fs_visitor::generate_code()
case FS_OPCODE_COS:
generate_math(inst, dst, src);
break;
+ case FS_OPCODE_PIXEL_X:
+ generate_pixel_xy(dst, true);
+ break;
+ case FS_OPCODE_PIXEL_Y:
+ generate_pixel_xy(dst, false);
+ break;
case FS_OPCODE_CINTERP:
brw_MOV(p, dst, src[0]);
break;
@@ -3668,6 +3989,10 @@ fs_visitor::generate_code()
last_native_inst = p->nr_insn;
}
+ if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
+ printf("\n");
+ }
+
ralloc_free(if_stack);
ralloc_free(loop_stack);
ralloc_free(if_depth_in_loop);
@@ -3693,108 +4018,146 @@ fs_visitor::generate_code()
}
}
-GLboolean
-brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c)
+bool
+fs_visitor::run()
{
- struct intel_context *intel = &brw->intel;
- struct gl_context *ctx = &intel->ctx;
- struct gl_shader_program *prog = ctx->Shader.CurrentFragmentProgram;
+ uint32_t prog_offset_16 = 0;
+ uint32_t orig_nr_params = c->prog_data.nr_params;
- if (!prog)
- return GL_FALSE;
+ brw_wm_payload_setup(brw, c);
- struct brw_shader *shader =
- (brw_shader *) prog->_LinkedShaders[MESA_SHADER_FRAGMENT];
- if (!shader)
- return GL_FALSE;
+ if (c->dispatch_width == 16) {
+ /* align to 64 byte boundary. */
+ while ((c->func.nr_insn * sizeof(struct brw_instruction)) % 64) {
+ brw_NOP(p);
+ }
- /* We always use 8-wide mode, at least for now. For one, flow
- * control only works in 8-wide. Also, when we're fragment shader
- * bound, we're almost always under register pressure as well, so
- * 8-wide would save us from the performance cliff of spilling
- * regs.
- */
- c->dispatch_width = 8;
+ /* Save off the start of this 16-wide program in case we succeed. */
+ prog_offset_16 = c->func.nr_insn * sizeof(struct brw_instruction);
- if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
- printf("GLSL IR for native fragment shader %d:\n", prog->Name);
- _mesa_print_ir(shader->ir, NULL);
- printf("\n");
+ brw_set_compression_control(p, BRW_COMPRESSION_COMPRESSED);
}
- /* Now the main event: Visit the shader IR and generate our FS IR for it.
- */
- fs_visitor v(c, shader);
-
if (0) {
- v.emit_dummy_fs();
+ emit_dummy_fs();
} else {
- v.calculate_urb_setup();
+ calculate_urb_setup();
if (intel->gen < 6)
- v.emit_interpolation_setup_gen4();
+ emit_interpolation_setup_gen4();
else
- v.emit_interpolation_setup_gen6();
+ emit_interpolation_setup_gen6();
/* Generate FS IR for main(). (the visitor only descends into
* functions called "main").
*/
foreach_iter(exec_list_iterator, iter, *shader->ir) {
ir_instruction *ir = (ir_instruction *)iter.get();
- v.base_ir = ir;
- ir->accept(&v);
+ base_ir = ir;
+ ir->accept(this);
}
- v.emit_fb_writes();
+ emit_fb_writes();
- v.split_virtual_grfs();
+ split_virtual_grfs();
- v.setup_paramvalues_refs();
- v.setup_pull_constants();
+ setup_paramvalues_refs();
+ setup_pull_constants();
bool progress;
do {
progress = false;
- progress = v.remove_duplicate_mrf_writes() || progress;
+ progress = remove_duplicate_mrf_writes() || progress;
- progress = v.propagate_constants() || progress;
- progress = v.register_coalesce() || progress;
- progress = v.compute_to_mrf() || progress;
- progress = v.dead_code_eliminate() || progress;
+ progress = propagate_constants() || progress;
+ progress = register_coalesce() || progress;
+ progress = compute_to_mrf() || progress;
+ progress = dead_code_eliminate() || progress;
} while (progress);
- v.schedule_instructions();
+ schedule_instructions();
- v.assign_curb_setup();
- v.assign_urb_setup();
+ assign_curb_setup();
+ assign_urb_setup();
if (0) {
/* Debug of register spilling: Go spill everything. */
- int virtual_grf_count = v.virtual_grf_next;
+ int virtual_grf_count = virtual_grf_next;
for (int i = 1; i < virtual_grf_count; i++) {
- v.spill_reg(i);
+ spill_reg(i);
}
}
if (0)
- v.assign_regs_trivial();
+ assign_regs_trivial();
else {
- while (!v.assign_regs()) {
- if (v.failed)
+ while (!assign_regs()) {
+ if (failed)
break;
}
}
}
+ assert(force_uncompressed_stack == 0);
+ assert(force_sechalf_stack == 0);
- if (!v.failed)
- v.generate_code();
+ if (failed)
+ return false;
- assert(!v.failed); /* FINISHME: Cleanly fail, tested at link time, etc. */
+ generate_code();
- if (v.failed)
- return GL_FALSE;
+ if (c->dispatch_width == 8) {
+ c->prog_data.total_grf = grf_used;
+ } else {
+ c->prog_data.total_grf_16 = grf_used;
+ c->prog_data.prog_offset_16 = prog_offset_16;
- c->prog_data.total_grf = v.grf_used;
+ /* Make sure we didn't try to sneak in an extra uniform */
+ assert(orig_nr_params == c->prog_data.nr_params);
+ }
- return GL_TRUE;
+ return !failed;
+}
+
+bool
+brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c)
+{
+ struct intel_context *intel = &brw->intel;
+ struct gl_context *ctx = &intel->ctx;
+ struct gl_shader_program *prog = ctx->Shader.CurrentFragmentProgram;
+
+ if (!prog)
+ return false;
+
+ struct brw_shader *shader =
+ (brw_shader *) prog->_LinkedShaders[MESA_SHADER_FRAGMENT];
+ if (!shader)
+ return false;
+
+ if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
+ printf("GLSL IR for native fragment shader %d:\n", prog->Name);
+ _mesa_print_ir(shader->ir, NULL);
+ printf("\n\n");
+ }
+
+ /* Now the main event: Visit the shader IR and generate our FS IR for it.
+ */
+ c->dispatch_width = 8;
+
+ fs_visitor v(c, shader);
+ if (!v.run()) {
+ /* FINISHME: Cleanly fail, test at link time, etc. */
+ assert(!"not reached");
+ return false;
+ }
+
+ if (intel->gen >= 5 && c->prog_data.nr_pull_params == 0) {
+ c->dispatch_width = 16;
+ fs_visitor v2(c, shader);
+ v2.import_uniforms(v.variable_ht);
+ v2.run();
+ }
+
+ c->prog_data.dispatch_width = 8;
+
+ return true;
}
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index f792906cfe7..518d09180c4 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -67,6 +67,8 @@ enum fs_opcodes {
FS_OPCODE_COS,
FS_OPCODE_DDX,
FS_OPCODE_DDY,
+ FS_OPCODE_PIXEL_X,
+ FS_OPCODE_PIXEL_Y,
FS_OPCODE_CINTERP,
FS_OPCODE_LINTERP,
FS_OPCODE_TEX,
@@ -176,6 +178,7 @@ public:
int type;
bool negate;
bool abs;
+ bool sechalf;
struct brw_reg fixed_hw_reg;
int smear; /* -1, or a channel of the reg to smear to all channels. */
@@ -341,6 +344,8 @@ public:
bool eot;
bool header_present;
bool shadow_compare;
+ bool force_uncompressed;
+ bool force_sechalf;
uint32_t offset; /* spill/unspill offset */
/** @{
@@ -403,6 +408,8 @@ public:
this->live_intervals_valid = false;
this->kill_emitted = false;
+ this->force_uncompressed_stack = 0;
+ this->force_sechalf_stack = 0;
}
~fs_visitor()
@@ -413,6 +420,7 @@ public:
fs_reg *variable_storage(ir_variable *var);
int virtual_grf_alloc(int size);
+ void import_uniforms(struct hash_table *src_variable_ht);
void visit(ir_variable *ir);
void visit(ir_assignment *ir);
@@ -459,6 +467,7 @@ public:
return emit(fs_inst(opcode, dst, src0, src1, src2));
}
+ bool run();
void setup_paramvalues_refs();
void assign_curb_setup();
void calculate_urb_setup();
@@ -479,8 +488,14 @@ public:
void schedule_instructions();
void fail(const char *msg, ...);
+ void push_force_uncompressed();
+ void pop_force_uncompressed();
+ void push_force_sechalf();
+ void pop_force_sechalf();
+
void generate_code();
void generate_fb_write(fs_inst *inst);
+ void generate_pixel_xy(struct brw_reg dst, bool is_x);
void generate_linterp(fs_inst *inst, struct brw_reg dst,
struct brw_reg *src);
void generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src);
@@ -508,6 +523,7 @@ public:
void emit_if_gen6(ir_if *ir);
void emit_unspill(fs_inst *inst, fs_reg reg, uint32_t spill_offset);
+ void emit_color_write(int index, int first_color_mrf, fs_reg color);
void emit_fb_writes();
void emit_assignment_writes(fs_reg &l, fs_reg &r,
const glsl_type *type, bool predicated);
@@ -565,6 +581,9 @@ public:
fs_reg reg_null_cmp;
int grf_used;
+
+ int force_uncompressed_stack;
+ int force_sechalf_stack;
};
GLboolean brw_do_channel_expressions(struct exec_list *instructions);
diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 67f29ce1816..1e2cf917116 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -48,11 +48,11 @@ extern "C" {
#include "../glsl/ir_print_visitor.h"
static void
-assign_reg(int *reg_hw_locations, fs_reg *reg)
+assign_reg(int *reg_hw_locations, fs_reg *reg, int reg_width)
{
if (reg->file == GRF && reg->reg != 0) {
assert(reg->reg_offset >= 0);
- reg->hw_reg = reg_hw_locations[reg->reg] + reg->reg_offset;
+ reg->hw_reg = reg_hw_locations[reg->reg] + reg->reg_offset * reg_width;
reg->reg = 0;
}
}
@@ -63,32 +63,48 @@ fs_visitor::assign_regs_trivial()
int last_grf = 0;
int hw_reg_mapping[this->virtual_grf_next];
int i;
+ int reg_width = c->dispatch_width / 8;
hw_reg_mapping[0] = 0;
- hw_reg_mapping[1] = this->first_non_payload_grf;
+ /* Note that compressed instructions require alignment to 2 registers. */
+ hw_reg_mapping[1] = ALIGN(this->first_non_payload_grf, reg_width);
for (i = 2; i < this->virtual_grf_next; i++) {
hw_reg_mapping[i] = (hw_reg_mapping[i - 1] +
- this->virtual_grf_sizes[i - 1]);
+ this->virtual_grf_sizes[i - 1] * reg_width);
}
- last_grf = hw_reg_mapping[i - 1] + this->virtual_grf_sizes[i - 1];
+ last_grf = hw_reg_mapping[i - 1] + (this->virtual_grf_sizes[i - 1] *
+ reg_width);
foreach_iter(exec_list_iterator, iter, this->instructions) {
fs_inst *inst = (fs_inst *)iter.get();
- assign_reg(hw_reg_mapping, &inst->dst);
- assign_reg(hw_reg_mapping, &inst->src[0]);
- assign_reg(hw_reg_mapping, &inst->src[1]);
+ assign_reg(hw_reg_mapping, &inst->dst, reg_width);
+ assign_reg(hw_reg_mapping, &inst->src[0], reg_width);
+ assign_reg(hw_reg_mapping, &inst->src[1], reg_width);
}
- this->grf_used = last_grf + 1;
+ if (last_grf >= BRW_MAX_GRF) {
+ fail("Ran out of regs on trivial allocator (%d/%d)\n",
+ last_grf, BRW_MAX_GRF);
+ }
+
+ this->grf_used = last_grf + reg_width;
}
bool
fs_visitor::assign_regs()
{
+ /* Most of this allocation was written for a reg_width of 1
+ * (dispatch_width == 8). In extending to 16-wide, the code was
+ * left in place and it was converted to have the hardware
+ * registers it's allocating be contiguous physical pairs of regs
+ * for reg_width == 2.
+ */
+ int reg_width = c->dispatch_width / 8;
int last_grf = 0;
int hw_reg_mapping[this->virtual_grf_next + 1];
- int base_reg_count = BRW_MAX_GRF - this->first_non_payload_grf;
+ int first_assigned_grf = ALIGN(this->first_non_payload_grf, reg_width);
+ int base_reg_count = (BRW_MAX_GRF - first_assigned_grf) / reg_width;
int class_sizes[base_reg_count];
int class_count = 0;
int aligned_pair_class = -1;
@@ -157,8 +173,8 @@ fs_visitor::assign_regs()
if (0) {
printf("%d/%d conflicts %d/%d\n",
- class_sizes[i], this->first_non_payload_grf + i_r,
- class_sizes[c], this->first_non_payload_grf + c_r);
+ class_sizes[i], first_assigned_grf + i_r,
+ class_sizes[c], first_assigned_grf + c_r);
}
ra_add_reg_conflict(regs,
@@ -172,7 +188,7 @@ fs_visitor::assign_regs()
/* Add a special class for aligned pairs, which we'll put delta_x/y
* in on gen5 so that we can do PLN.
*/
- if (brw->has_pln && intel->gen < 6) {
+ if (brw->has_pln && reg_width == 1 && intel->gen < 6) {
int reg_count = (base_reg_count - 1) / 2;
int unaligned_pair_class = 1;
assert(class_sizes[unaligned_pair_class] == 2);
@@ -182,7 +198,7 @@ fs_visitor::assign_regs()
class_sizes[aligned_pair_class] = 2;
class_base_reg[aligned_pair_class] = 0;
class_reg_count[aligned_pair_class] = 0;
- int start = (this->first_non_payload_grf & 1) ? 1 : 0;
+ int start = (first_assigned_grf & 1) ? 1 : 0;
for (int i = 0; i < reg_count; i++) {
ra_class_add_reg(regs, classes[aligned_pair_class],
@@ -228,6 +244,8 @@ fs_visitor::assign_regs()
if (reg == -1) {
fail("no register to spill\n");
+ } else if (c->dispatch_width == 16) {
+ fail("no spilling support on 16-wide yet\n");
} else {
spill_reg(reg);
}
@@ -257,7 +275,7 @@ fs_visitor::assign_regs()
}
assert(hw_reg >= 0);
- hw_reg_mapping[i] = this->first_non_payload_grf + hw_reg;
+ hw_reg_mapping[i] = first_assigned_grf + hw_reg * reg_width;
last_grf = MAX2(last_grf,
hw_reg_mapping[i] + this->virtual_grf_sizes[i] - 1);
}
@@ -265,12 +283,12 @@ fs_visitor::assign_regs()
foreach_iter(exec_list_iterator, iter, this->instructions) {
fs_inst *inst = (fs_inst *)iter.get();
- assign_reg(hw_reg_mapping, &inst->dst);
- assign_reg(hw_reg_mapping, &inst->src[0]);
- assign_reg(hw_reg_mapping, &inst->src[1]);
+ assign_reg(hw_reg_mapping, &inst->dst, reg_width);
+ assign_reg(hw_reg_mapping, &inst->src[0], reg_width);
+ assign_reg(hw_reg_mapping, &inst->src[1], reg_width);
}
- this->grf_used = last_grf + 1;
+ this->grf_used = last_grf + reg_width;
ralloc_free(g);
ralloc_free(regs);
diff --git a/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp b/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
index bff8f82f3f7..fb1192c810a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
@@ -145,6 +145,8 @@ public:
void calculate_deps();
void schedule_instructions(fs_inst *next_block_header);
+ bool is_compressed(fs_inst *inst);
+
void *mem_ctx;
int instructions_to_schedule;
@@ -234,6 +236,17 @@ instruction_scheduler::add_barrier_deps(schedule_node *n)
}
}
+/* instruction scheduling needs to be aware of when an MRF write
+ * actually writes 2 MRFs.
+ */
+bool
+instruction_scheduler::is_compressed(fs_inst *inst)
+{
+ return (v->c->dispatch_width == 16 &&
+ !inst->force_uncompressed &&
+ !inst->force_sechalf);
+}
+
void
instruction_scheduler::calculate_deps()
{
@@ -297,11 +310,24 @@ instruction_scheduler::calculate_deps()
}
last_grf_write[inst->dst.reg] = n;
} else if (inst->dst.file == MRF) {
- if (last_mrf_write[inst->dst.hw_reg]) {
- add_dep(last_mrf_write[inst->dst.hw_reg], n,
- last_mrf_write[inst->dst.hw_reg]->latency);
+ int reg = inst->dst.hw_reg & ~BRW_MRF_COMPR4;
+
+ if (last_mrf_write[reg]) {
+ add_dep(last_mrf_write[reg], n,
+ last_mrf_write[reg]->latency);
+ }
+ last_mrf_write[reg] = n;
+ if (is_compressed(inst)) {
+ if (inst->dst.hw_reg & BRW_MRF_COMPR4)
+ reg += 4;
+ else
+ reg++;
+ if (last_mrf_write[reg]) {
+ add_dep(last_mrf_write[reg], n,
+ last_mrf_write[reg]->latency);
+ }
+ last_mrf_write[reg] = n;
}
- last_mrf_write[inst->dst.hw_reg] = n;
} else if (inst->dst.file != BAD_FILE) {
add_barrier_deps(n);
}
@@ -369,7 +395,18 @@ instruction_scheduler::calculate_deps()
if (inst->dst.file == GRF) {
last_grf_write[inst->dst.reg] = n;
} else if (inst->dst.file == MRF) {
- last_mrf_write[inst->dst.hw_reg] = n;
+ int reg = inst->dst.hw_reg & ~BRW_MRF_COMPR4;
+
+ last_mrf_write[reg] = n;
+
+ if (is_compressed(inst)) {
+ if (inst->dst.hw_reg & BRW_MRF_COMPR4)
+ reg += 4;
+ else
+ reg++;
+
+ last_mrf_write[reg] = n;
+ }
} else if (inst->dst.file != BAD_FILE) {
add_barrier_deps(n);
}
diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index 14ee6767cd5..f213ae20acd 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -121,13 +121,11 @@ static void compile_gs_prog( struct brw_context *brw,
/* Upload
*/
drm_intel_bo_unreference(brw->gs.prog_bo);
- brw->gs.prog_bo = brw_upload_cache_with_auxdata(&brw->cache, BRW_GS_PROG,
- &c.key, sizeof(c.key),
- NULL, 0,
- program, program_size,
- &c.prog_data,
- sizeof(c.prog_data),
- &brw->gs.prog_data);
+ brw->gs.prog_bo = brw_upload_cache(&brw->cache, BRW_GS_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->gs.prog_data);
}
static const GLenum gs_prim[GL_POLYGON+1] = {
@@ -193,7 +191,6 @@ static void prepare_gs_prog(struct brw_context *brw)
if (brw->gs.prog_active) {
brw->gs.prog_bo = brw_search_cache(&brw->cache, BRW_GS_PROG,
&key, sizeof(key),
- NULL, 0,
&brw->gs.prog_data);
if (brw->gs.prog_bo == NULL)
compile_gs_prog( brw, &key );
diff --git a/src/mesa/drivers/dri/i965/brw_gs_state.c b/src/mesa/drivers/dri/i965/brw_gs_state.c
index 69a5f7a6667..542874b7706 100644
--- a/src/mesa/drivers/dri/i965/brw_gs_state.c
+++ b/src/mesa/drivers/dri/i965/brw_gs_state.c
@@ -35,112 +35,65 @@
#include "brw_state.h"
#include "brw_defines.h"
-struct brw_gs_unit_key {
- unsigned int total_grf;
- unsigned int urb_entry_read_length;
-
- unsigned int curbe_offset;
-
- unsigned int nr_urb_entries, urb_size;
- GLboolean prog_active;
-};
-
static void
-gs_unit_populate_key(struct brw_context *brw, struct brw_gs_unit_key *key)
-{
- memset(key, 0, sizeof(*key));
-
- /* CACHE_NEW_GS_PROG */
- key->prog_active = brw->gs.prog_active;
- if (key->prog_active) {
- key->total_grf = brw->gs.prog_data->total_grf;
- key->urb_entry_read_length = brw->gs.prog_data->urb_read_length;
- } else {
- key->total_grf = 1;
- key->urb_entry_read_length = 1;
- }
-
- /* BRW_NEW_CURBE_OFFSETS */
- key->curbe_offset = brw->curbe.clip_start;
-
- /* BRW_NEW_URB_FENCE */
- key->nr_urb_entries = brw->urb.nr_gs_entries;
- key->urb_size = brw->urb.vsize;
-}
-
-static drm_intel_bo *
-gs_unit_create_from_key(struct brw_context *brw, struct brw_gs_unit_key *key)
+brw_prepare_gs_unit(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
- struct brw_gs_unit_state gs;
- drm_intel_bo *bo;
-
- memset(&gs, 0, sizeof(gs));
-
- gs.thread0.grf_reg_count = ALIGN(key->total_grf, 16) / 16 - 1;
- if (key->prog_active) /* reloc */
- gs.thread0.kernel_start_pointer = brw->gs.prog_bo->offset >> 6;
+ struct brw_gs_unit_state *gs;
- gs.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
- gs.thread1.single_program_flow = 1;
+ gs = brw_state_batch(brw, sizeof(*gs), 32, &brw->gs.state_offset);
- gs.thread3.dispatch_grf_start_reg = 1;
- gs.thread3.const_urb_entry_read_offset = 0;
- gs.thread3.const_urb_entry_read_length = 0;
- gs.thread3.urb_entry_read_offset = 0;
- gs.thread3.urb_entry_read_length = key->urb_entry_read_length;
+ memset(gs, 0, sizeof(*gs));
- gs.thread4.nr_urb_entries = key->nr_urb_entries;
- gs.thread4.urb_entry_allocation_size = key->urb_size - 1;
-
- if (key->nr_urb_entries >= 8)
- gs.thread4.max_threads = 1;
- else
- gs.thread4.max_threads = 0;
-
- if (intel->gen == 5)
- gs.thread4.rendering_enable = 1;
-
- if (unlikely(INTEL_DEBUG & DEBUG_STATS))
- gs.thread4.stats_enable = 1;
-
- bo = brw_upload_cache(&brw->cache, BRW_GS_UNIT,
- key, sizeof(*key),
- &brw->gs.prog_bo, 1,
- &gs, sizeof(gs));
+ /* CACHE_NEW_GS_PROG */
+ if (brw->gs.prog_active) {
+ gs->thread0.grf_reg_count = (ALIGN(brw->gs.prog_data->total_grf, 16) /
+ 16 - 1);
+ /* reloc */
+ gs->thread0.kernel_start_pointer = brw->gs.prog_bo->offset >> 6;
+
+ gs->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
+ gs->thread1.single_program_flow = 1;
+
+ gs->thread3.dispatch_grf_start_reg = 1;
+ gs->thread3.const_urb_entry_read_offset = 0;
+ gs->thread3.const_urb_entry_read_length = 0;
+ gs->thread3.urb_entry_read_offset = 0;
+ gs->thread3.urb_entry_read_length = brw->gs.prog_data->urb_read_length;
+
+ /* BRW_NEW_URB_FENCE */
+ gs->thread4.nr_urb_entries = brw->urb.nr_gs_entries;
+ gs->thread4.urb_entry_allocation_size = brw->urb.vsize - 1;
+
+ if (brw->urb.nr_gs_entries >= 8)
+ gs->thread4.max_threads = 1;
+ else
+ gs->thread4.max_threads = 0;
- if (key->prog_active) {
/* Emit GS program relocation */
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_gs_unit_state, thread0),
- brw->gs.prog_bo, gs.thread0.grf_reg_count << 1,
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ (brw->gs.state_offset +
+ offsetof(struct brw_gs_unit_state, thread0)),
+ brw->gs.prog_bo, gs->thread0.grf_reg_count << 1,
I915_GEM_DOMAIN_INSTRUCTION, 0);
}
- return bo;
-}
-
-static void prepare_gs_unit(struct brw_context *brw)
-{
- struct brw_gs_unit_key key;
+ if (intel->gen == 5)
+ gs->thread4.rendering_enable = 1;
- gs_unit_populate_key(brw, &key);
+ if (unlikely(INTEL_DEBUG & DEBUG_STATS))
+ gs->thread4.stats_enable = 1;
- drm_intel_bo_unreference(brw->gs.state_bo);
- brw->gs.state_bo = brw_search_cache(&brw->cache, BRW_GS_UNIT,
- &key, sizeof(key),
- &brw->gs.prog_bo, 1,
- NULL);
- if (brw->gs.state_bo == NULL) {
- brw->gs.state_bo = gs_unit_create_from_key(brw, &key);
- }
+ brw->state.dirty.cache |= CACHE_NEW_GS_UNIT;
}
const struct brw_tracked_state brw_gs_unit = {
.dirty = {
.mesa = 0,
- .brw = (BRW_NEW_CURBE_OFFSETS |
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_CURBE_OFFSETS |
BRW_NEW_URB_FENCE),
.cache = CACHE_NEW_GS_PROG
},
- .prepare = prepare_gs_unit,
+ .prepare = brw_prepare_gs_unit,
};
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 19eea07ebc6..7119786de42 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -143,15 +143,19 @@ static void upload_pipelined_state_pointers(struct brw_context *brw )
BEGIN_BATCH(7);
OUT_BATCH(_3DSTATE_PIPELINED_POINTERS << 16 | (7 - 2));
- OUT_RELOC(brw->vs.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ brw->vs.state_offset);
if (brw->gs.prog_active)
- OUT_RELOC(brw->gs.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+ OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ brw->gs.state_offset | 1);
else
OUT_BATCH(0);
- OUT_RELOC(brw->clip.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+ OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ brw->clip.state_offset | 1);
OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
brw->sf.state_offset);
- OUT_RELOC(brw->wm.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ brw->wm.state_offset);
OUT_RELOC(brw->intel.batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
brw->cc.state_offset);
ADVANCE_BATCH();
@@ -159,16 +163,6 @@ static void upload_pipelined_state_pointers(struct brw_context *brw )
brw->state.dirty.brw |= BRW_NEW_PSP;
}
-
-static void prepare_psp_urb_cbs(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->vs.state_bo);
- brw_add_validated_bo(brw, brw->gs.state_bo);
- brw_add_validated_bo(brw, brw->clip.state_bo);
- brw_add_validated_bo(brw, brw->sf.state_bo);
- brw_add_validated_bo(brw, brw->wm.state_bo);
-}
-
static void upload_psp_urb_cbs(struct brw_context *brw )
{
upload_pipelined_state_pointers(brw);
@@ -188,7 +182,6 @@ const struct brw_tracked_state brw_psp_urb_cbs = {
CACHE_NEW_WM_UNIT |
CACHE_NEW_CC_UNIT)
},
- .prepare = prepare_psp_urb_cbs,
.emit = upload_psp_urb_cbs,
};
@@ -551,12 +544,28 @@ static void upload_state_base_address( struct brw_context *brw )
if (intel->gen >= 6) {
BEGIN_BATCH(10);
OUT_BATCH(CMD_STATE_BASE_ADDRESS << 16 | (10 - 2));
- OUT_BATCH(1); /* General state base address */
- OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_SAMPLER, 0,
- 1); /* Surface state base address */
- OUT_BATCH(1); /* Dynamic state base address */
- OUT_BATCH(1); /* Indirect object base address */
- OUT_BATCH(1); /* Instruction base address */
+ /* General state base address: stateless DP read/write requests */
+ OUT_BATCH(1);
+ /* Surface state base address:
+ * BINDING_TABLE_STATE
+ * SURFACE_STATE
+ */
+ OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_SAMPLER, 0, 1);
+ /* Dynamic state base address:
+ * SAMPLER_STATE
+ * SAMPLER_BORDER_COLOR_STATE
+ * CLIP, SF, WM/CC viewport state
+ * COLOR_CALC_STATE
+ * DEPTH_STENCIL_STATE
+ * BLEND_STATE
+ * Push constants (when INSTPM: CONSTANT_BUFFER Address Offset
+ * Disable is clear, which we rely on)
+ */
+ OUT_RELOC(intel->batch.bo, (I915_GEM_DOMAIN_RENDER |
+ I915_GEM_DOMAIN_INSTRUCTION), 0, 1);
+
+ OUT_BATCH(1); /* Indirect object base address: MEDIA_OBJECT data */
+ OUT_BATCH(1); /* Instruction base address: shader kernels (incl. SIP) */
OUT_BATCH(1); /* General state upper bound */
OUT_BATCH(1); /* Dynamic state upper bound */
OUT_BATCH(1); /* Indirect object upper bound */
diff --git a/src/mesa/drivers/dri/i965/brw_sf.c b/src/mesa/drivers/dri/i965/brw_sf.c
index 6da155b1a9b..5a03851b8e6 100644
--- a/src/mesa/drivers/dri/i965/brw_sf.c
+++ b/src/mesa/drivers/dri/i965/brw_sf.c
@@ -119,13 +119,11 @@ static void compile_sf_prog( struct brw_context *brw,
/* Upload
*/
drm_intel_bo_unreference(brw->sf.prog_bo);
- brw->sf.prog_bo = brw_upload_cache_with_auxdata(&brw->cache, BRW_SF_PROG,
- &c.key, sizeof(c.key),
- NULL, 0,
- program, program_size,
- &c.prog_data,
- sizeof(c.prog_data),
- &brw->sf.prog_data);
+ brw->sf.prog_bo = brw_upload_cache(&brw->cache, BRW_SF_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->sf.prog_data);
}
/* Calculate interpolants for triangle and line rasterization.
@@ -194,7 +192,6 @@ static void upload_sf_prog(struct brw_context *brw)
drm_intel_bo_unreference(brw->sf.prog_bo);
brw->sf.prog_bo = brw_search_cache(&brw->cache, BRW_SF_PROG,
&key, sizeof(key),
- NULL, 0,
&brw->sf.prog_data);
if (brw->sf.prog_bo == NULL)
compile_sf_prog( brw, &key );
diff --git a/src/mesa/drivers/dri/i965/brw_sf_state.c b/src/mesa/drivers/dri/i965/brw_sf_state.c
index 66d91a0bde7..78b22c4df3d 100644
--- a/src/mesa/drivers/dri/i965/brw_sf_state.c
+++ b/src/mesa/drivers/dri/i965/brw_sf_state.c
@@ -39,7 +39,7 @@
static void upload_sf_vp(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
- struct gl_context *ctx = &brw->intel.ctx;
+ struct gl_context *ctx = &intel->ctx;
const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF;
struct brw_sf_viewport *sfv;
GLfloat y_scale, y_bias;
@@ -106,11 +106,6 @@ static void upload_sf_vp(struct brw_context *brw)
sfv->scissor.ymax = ctx->DrawBuffer->Height - ctx->DrawBuffer->_Ymin - 1;
}
- /* Keep a pointer to it for brw_state_dump.c */
- drm_intel_bo_unreference(brw->sf.vp_bo);
- drm_intel_bo_reference(intel->batch.bo);
- brw->sf.vp_bo = intel->batch.bo;
-
brw->state.dirty.cache |= CACHE_NEW_SF_VP;
}
@@ -177,7 +172,7 @@ static void upload_sf_unit( struct brw_context *brw )
sf->thread4.stats_enable = 1;
/* CACHE_NEW_SF_VP */
- sf->sf5.sf_viewport_state_offset = (brw->sf.vp_bo->offset +
+ sf->sf5.sf_viewport_state_offset = (intel->batch.bo->offset +
brw->sf.vp_offset) >> 5; /* reloc */
sf->sf5.viewport_transform = 1;
diff --git a/src/mesa/drivers/dri/i965/brw_state.c b/src/mesa/drivers/dri/i965/brw_state.c
deleted file mode 100644
index 13b231d5cf5..00000000000
--- a/src/mesa/drivers/dri/i965/brw_state.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright © 2010 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Eric Anholt <[email protected]>
- *
- */
-
-#include "brw_context.h"
-
-void
-brw_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
-{
- struct brw_context *brw = brw_context(ctx);
-
- switch (cap) {
- case GL_DEPTH_CLAMP:
- brw_update_cc_vp(brw);
- break;
- }
-}
-
-void
-brw_depth_range(struct gl_context *ctx, GLclampd nearval, GLclampd farval)
-{
- struct brw_context *brw = brw_context(ctx);
-
- if (ctx->Transform.DepthClamp)
- brw_update_cc_vp(brw);
-}
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index 86b0caa4a4e..8b9e3a4ec5d 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -47,6 +47,7 @@ brw_add_validated_bo(struct brw_context *brw, drm_intel_bo *bo)
};
extern const struct brw_tracked_state brw_blend_constant_color;
+extern const struct brw_tracked_state brw_cc_vp;
extern const struct brw_tracked_state brw_cc_unit;
extern const struct brw_tracked_state brw_check_fallback;
extern const struct brw_tracked_state brw_clip_prog;
@@ -102,11 +103,11 @@ extern const struct brw_tracked_state gen6_depth_stencil_state;
extern const struct brw_tracked_state gen6_gs_state;
extern const struct brw_tracked_state gen6_sampler_state;
extern const struct brw_tracked_state gen6_scissor_state;
-extern const struct brw_tracked_state gen6_scissor_state_pointers;
extern const struct brw_tracked_state gen6_sf_state;
extern const struct brw_tracked_state gen6_sf_vp;
extern const struct brw_tracked_state gen6_urb;
extern const struct brw_tracked_state gen6_viewport_state;
+extern const struct brw_tracked_state gen6_vs_constants;
extern const struct brw_tracked_state gen6_vs_state;
extern const struct brw_tracked_state gen6_wm_constants;
extern const struct brw_tracked_state gen6_wm_state;
@@ -123,38 +124,21 @@ void brw_clear_validated_bos(struct brw_context *brw);
/***********************************************************************
* brw_state_cache.c
*/
-drm_intel_bo *brw_cache_data(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *data,
- GLuint size);
drm_intel_bo *brw_upload_cache(struct brw_cache *cache,
enum brw_cache_id cache_id,
const void *key,
GLuint key_sz,
- drm_intel_bo **reloc_bufs,
- GLuint nr_reloc_bufs,
const void *data,
- GLuint data_sz);
-
-drm_intel_bo *brw_upload_cache_with_auxdata(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *key,
- GLuint key_sz,
- drm_intel_bo **reloc_bufs,
- GLuint nr_reloc_bufs,
- const void *data,
- GLuint data_sz,
- const void *aux,
- GLuint aux_sz,
- void *aux_return);
+ GLuint data_sz,
+ const void *aux,
+ GLuint aux_sz,
+ void *aux_return);
drm_intel_bo *brw_search_cache( struct brw_cache *cache,
enum brw_cache_id cache_id,
const void *key,
GLuint key_size,
- drm_intel_bo **reloc_bufs,
- GLuint nr_reloc_bufs,
void *aux_return);
void brw_state_cache_check_size( struct brw_context *brw );
diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c b/src/mesa/drivers/dri/i965/brw_state_cache.c
index 01eeb19a684..f13a41fa7cc 100644
--- a/src/mesa/drivers/dri/i965/brw_state_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_state_cache.c
@@ -31,29 +31,17 @@
/** @file brw_state_cache.c
*
- * This file implements a simple static state cache for 965. The consumers
- * can query the hash table of state using a cache_id, opaque key data,
- * and list of buffers that will be used in relocations, and receive the
- * corresponding state buffer object of state (plus associated auxiliary
- * data) in return.
+ * This file implements a simple static state cache for 965. The
+ * consumers can query the hash table of state using a cache_id,
+ * opaque key data, and receive the corresponding state buffer object
+ * of state (plus associated auxiliary data) in return. Objects in
+ * the cache may not have relocations (pointers to other BOs) in them.
*
- * The inner workings are a simple hash table based on a CRC of the key data.
- * The cache_id and relocation target buffers associated with the state
- * buffer are included as auxiliary key data, but are not part of the hash
- * value (this should be fixed, but will likely be fixed instead by making
- * consumers use structured keys).
+ * The inner workings are a simple hash table based on a CRC of the
+ * key data.
*
- * Replacement is not implemented. Instead, when the cache gets too big, at
- * a safe point (unlock) we throw out all of the cache data and let it
- * regenerate for the next rendering operation.
- *
- * The reloc_buf pointers need to be included as key data, otherwise the
- * non-unique values stuffed in the offset in key data through
- * brw_cache_data() may result in successful probe for state buffers
- * even when the buffer being referenced doesn't match. The result would be
- * that the same state cache entry is used twice for different buffers,
- * only one of the two buffers referenced gets put into the offset, and the
- * incorrect program is run for the other instance.
+ * Replacement is not implemented. Instead, when the cache gets too
+ * big we throw out all of the cache data and let it get regenerated.
*/
#include "main/imports.h"
@@ -76,13 +64,6 @@ hash_key(struct brw_cache_item *item)
hash = (hash << 5) | (hash >> 27);
}
- /* Include the BO pointers as key data as well */
- ikey = (GLuint *)item->reloc_bufs;
- for (i = 0; i < item->nr_reloc_bufs * sizeof(drm_intel_bo *) / 4; i++) {
- hash ^= ikey[i];
- hash = (hash << 5) | (hash >> 27);
- }
-
return hash;
}
@@ -110,10 +91,7 @@ brw_cache_item_equals(const struct brw_cache_item *a,
return a->cache_id == b->cache_id &&
a->hash == b->hash &&
a->key_size == b->key_size &&
- (memcmp(a->key, b->key, a->key_size) == 0) &&
- a->nr_reloc_bufs == b->nr_reloc_bufs &&
- (memcmp(a->reloc_bufs, b->reloc_bufs,
- a->nr_reloc_bufs * sizeof(drm_intel_bo *)) == 0);
+ (memcmp(a->key, b->key, a->key_size) == 0);
}
static struct brw_cache_item *
@@ -170,9 +148,7 @@ rehash(struct brw_cache *cache)
drm_intel_bo *
brw_search_cache(struct brw_cache *cache,
enum brw_cache_id cache_id,
- const void *key,
- GLuint key_size,
- drm_intel_bo **reloc_bufs, GLuint nr_reloc_bufs,
+ const void *key, GLuint key_size,
void *aux_return)
{
struct brw_cache_item *item;
@@ -182,8 +158,6 @@ brw_search_cache(struct brw_cache *cache,
lookup.cache_id = cache_id;
lookup.key = key;
lookup.key_size = key_size;
- lookup.reloc_bufs = reloc_bufs;
- lookup.nr_reloc_bufs = nr_reloc_bufs;
hash = hash_key(&lookup);
lookup.hash = hash;
@@ -203,30 +177,24 @@ brw_search_cache(struct brw_cache *cache,
drm_intel_bo *
-brw_upload_cache_with_auxdata(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *key,
- GLuint key_size,
- drm_intel_bo **reloc_bufs,
- GLuint nr_reloc_bufs,
- const void *data,
- GLuint data_size,
- const void *aux,
- GLuint aux_size,
- void *aux_return)
+brw_upload_cache(struct brw_cache *cache,
+ enum brw_cache_id cache_id,
+ const void *key,
+ GLuint key_size,
+ const void *data,
+ GLuint data_size,
+ const void *aux,
+ GLuint aux_size,
+ void *aux_return)
{
struct brw_cache_item *item = CALLOC_STRUCT(brw_cache_item);
GLuint hash;
- GLuint relocs_size = nr_reloc_bufs * sizeof(drm_intel_bo *);
void *tmp;
drm_intel_bo *bo;
- int i;
item->cache_id = cache_id;
item->key = key;
item->key_size = key_size;
- item->reloc_bufs = reloc_bufs;
- item->nr_reloc_bufs = nr_reloc_bufs;
hash = hash_key(item);
item->hash = hash;
@@ -235,19 +203,13 @@ brw_upload_cache_with_auxdata(struct brw_cache *cache,
cache->name[cache_id], data_size, 1 << 6);
- /* Set up the memory containing the key, aux_data, and reloc_bufs */
- tmp = malloc(key_size + aux_size + relocs_size);
+ /* Set up the memory containing the key and aux_data */
+ tmp = malloc(key_size + aux_size);
memcpy(tmp, key, key_size);
memcpy(tmp + key_size, aux, aux_size);
- memcpy(tmp + key_size + aux_size, reloc_bufs, relocs_size);
- for (i = 0; i < nr_reloc_bufs; i++) {
- if (reloc_bufs[i] != NULL)
- drm_intel_bo_reference(reloc_bufs[i]);
- }
item->key = tmp;
- item->reloc_bufs = tmp + key_size + aux_size;
item->bo = bo;
drm_intel_bo_reference(bo);
@@ -276,73 +238,6 @@ brw_upload_cache_with_auxdata(struct brw_cache *cache,
return bo;
}
-drm_intel_bo *
-brw_upload_cache(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *key,
- GLuint key_size,
- drm_intel_bo **reloc_bufs,
- GLuint nr_reloc_bufs,
- const void *data,
- GLuint data_size)
-{
- return brw_upload_cache_with_auxdata(cache, cache_id,
- key, key_size,
- reloc_bufs, nr_reloc_bufs,
- data, data_size,
- NULL, 0,
- NULL);
-}
-
-/**
- * Wrapper around brw_cache_data_sz using the cache_id's canonical key size.
- *
- * If nr_reloc_bufs is nonzero, brw_search_cache()/brw_upload_cache() would be
- * better to use, as the potentially changing offsets in the data-used-as-key
- * will result in excessive cache misses.
- *
- * If aux data is involved, use search/upload instead.
-
- */
-drm_intel_bo *
-brw_cache_data(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *data,
- GLuint data_size)
-{
- drm_intel_bo *bo;
- struct brw_cache_item *item, lookup;
- GLuint hash;
-
- lookup.cache_id = cache_id;
- lookup.key = data;
- lookup.key_size = data_size;
- lookup.reloc_bufs = NULL;
- lookup.nr_reloc_bufs = 0;
- hash = hash_key(&lookup);
- lookup.hash = hash;
-
- item = search_cache(cache, hash, &lookup);
- if (item) {
- update_cache_last(cache, cache_id, item->bo);
- drm_intel_bo_reference(item->bo);
- return item->bo;
- }
-
- bo = brw_upload_cache(cache, cache_id,
- data, data_size,
- NULL, 0,
- data, data_size);
-
- return bo;
-}
-
-enum pool_type {
- DW_SURFACE_STATE,
- DW_GENERAL_STATE
-};
-
-
static void
brw_init_cache_id(struct brw_cache *cache,
const char *name,
@@ -352,8 +247,8 @@ brw_init_cache_id(struct brw_cache *cache,
}
-static void
-brw_init_non_surface_cache(struct brw_context *brw)
+void
+brw_init_caches(struct brw_context *brw)
{
struct brw_cache *cache = &brw->cache;
@@ -367,7 +262,6 @@ brw_init_non_surface_cache(struct brw_context *brw)
brw_init_cache_id(cache, "CC_VP", BRW_CC_VP);
brw_init_cache_id(cache, "CC_UNIT", BRW_CC_UNIT);
brw_init_cache_id(cache, "WM_PROG", BRW_WM_PROG);
- brw_init_cache_id(cache, "SAMPLER_DEFAULT_COLOR", BRW_SAMPLER_DEFAULT_COLOR);
brw_init_cache_id(cache, "SAMPLER", BRW_SAMPLER);
brw_init_cache_id(cache, "WM_UNIT", BRW_WM_UNIT);
brw_init_cache_id(cache, "SF_PROG", BRW_SF_PROG);
@@ -392,13 +286,6 @@ brw_init_non_surface_cache(struct brw_context *brw)
brw_init_cache_id(cache, "DEPTH_STENCIL_STATE", BRW_DEPTH_STENCIL_STATE);
}
-void
-brw_init_caches(struct brw_context *brw)
-{
- brw_init_non_surface_cache(brw);
-}
-
-
static void
brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
{
@@ -409,11 +296,7 @@ brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
for (i = 0; i < cache->size; i++) {
for (c = cache->items[i]; c; c = next) {
- int j;
-
next = c->next;
- for (j = 0; j < c->nr_reloc_bufs; j++)
- drm_intel_bo_unreference(c->reloc_bufs[j]);
drm_intel_bo_unreference(c->bo);
free((void *)c->key);
free(c);
diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c b/src/mesa/drivers/dri/i965/brw_state_dump.c
index b393259c915..3a3aa8c0346 100644
--- a/src/mesa/drivers/dri/i965/brw_state_dump.c
+++ b/src/mesa/drivers/dri/i965/brw_state_dump.c
@@ -140,19 +140,15 @@ static void dump_wm_surface_state(struct brw_context *brw)
static void dump_wm_sampler_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
struct gl_context *ctx = &brw->intel.ctx;
int i;
- if (!brw->wm.sampler_bo) {
- fprintf(stderr, "WM_SAMPLER: NULL\n");
- return;
- }
-
- drm_intel_bo_map(brw->wm.sampler_bo, GL_FALSE);
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
for (i = 0; i < BRW_MAX_TEX_UNIT; i++) {
unsigned int offset;
+ uint32_t sdc_offset;
struct brw_sampler_state *samp;
- struct brw_sampler_default_color *sdc;
char name[20];
if (!ctx->Texture.Unit[i]._ReallyEnabled) {
@@ -160,9 +156,11 @@ static void dump_wm_sampler_state(struct brw_context *brw)
continue;
}
- offset = brw->wm.sampler_bo->offset +
- i * sizeof(struct brw_sampler_state);
- samp = (struct brw_sampler_state *)(brw->wm.sampler_bo->virtual +
+ offset = (intel->batch.bo->offset +
+ brw->wm.sampler_offset +
+ i * sizeof(struct brw_sampler_state));
+ samp = (struct brw_sampler_state *)(intel->batch.bo->virtual +
+ brw->wm.sampler_offset +
i * sizeof(struct brw_sampler_state));
sprintf(name, "WM SAMP%d", i);
@@ -173,30 +171,45 @@ static void dump_wm_sampler_state(struct brw_context *brw)
sprintf(name, " WM SDC%d", i);
- drm_intel_bo_map(brw->wm.sdc_bo[i], GL_FALSE);
- sdc = (struct brw_sampler_default_color *)(brw->wm.sdc_bo[i]->virtual);
- state_out(name, sdc, brw->wm.sdc_bo[i]->offset, 0, "r\n");
- state_out(name, sdc, brw->wm.sdc_bo[i]->offset, 1, "g\n");
- state_out(name, sdc, brw->wm.sdc_bo[i]->offset, 2, "b\n");
- state_out(name, sdc, brw->wm.sdc_bo[i]->offset, 3, "a\n");
- drm_intel_bo_unmap(brw->wm.sdc_bo[i]);
+ sdc_offset = intel->batch.bo->offset + brw->wm.sdc_offset[i];
+ if (intel->gen >= 5) {
+ struct gen5_sampler_default_color *sdc = (intel->batch.bo->virtual +
+ brw->wm.sdc_offset[i]);
+ state_out(name, sdc, sdc_offset, 0, "unorm rgba\n");
+ state_out(name, sdc, sdc_offset, 1, "r %f\n", sdc->f[0]);
+ state_out(name, sdc, sdc_offset, 2, "b %f\n", sdc->f[1]);
+ state_out(name, sdc, sdc_offset, 3, "g %f\n", sdc->f[2]);
+ state_out(name, sdc, sdc_offset, 4, "a %f\n", sdc->f[3]);
+ state_out(name, sdc, sdc_offset, 5, "half float rg\n");
+ state_out(name, sdc, sdc_offset, 6, "half float ba\n");
+ state_out(name, sdc, sdc_offset, 7, "u16 rg\n");
+ state_out(name, sdc, sdc_offset, 8, "u16 ba\n");
+ state_out(name, sdc, sdc_offset, 9, "s16 rg\n");
+ state_out(name, sdc, sdc_offset, 10, "s16 ba\n");
+ state_out(name, sdc, sdc_offset, 11, "s8 rgba\n");
+ } else {
+ struct brw_sampler_default_color *sdc = (intel->batch.bo->virtual +
+ brw->wm.sdc_offset[i]);
+ state_out(name, sdc, sdc_offset, 0, "r %f\n", sdc->color[0]);
+ state_out(name, sdc, sdc_offset, 1, "g %f\n", sdc->color[1]);
+ state_out(name, sdc, sdc_offset, 2, "b %f\n", sdc->color[2]);
+ state_out(name, sdc, sdc_offset, 3, "a %f\n", sdc->color[3]);
+ }
}
- drm_intel_bo_unmap(brw->wm.sampler_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
static void dump_sf_viewport_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
const char *name = "SF VP";
struct brw_sf_viewport *vp;
uint32_t vp_off;
- if (brw->sf.vp_bo == NULL)
- return;
-
- drm_intel_bo_map(brw->sf.vp_bo, GL_FALSE);
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
- vp = brw->sf.vp_bo->virtual + brw->sf.vp_offset;
- vp_off = brw->sf.vp_bo->offset + brw->sf.vp_offset;
+ vp = intel->batch.bo->virtual + brw->sf.vp_offset;
+ vp_off = intel->batch.bo->offset + brw->sf.vp_offset;
state_out(name, vp, vp_off, 0, "m00 = %f\n", vp->viewport.m00);
state_out(name, vp, vp_off, 1, "m11 = %f\n", vp->viewport.m11);
@@ -210,62 +223,56 @@ static void dump_sf_viewport_state(struct brw_context *brw)
state_out(name, vp, vp_off, 7, "bottom right = %d,%d\n",
vp->scissor.xmax, vp->scissor.ymax);
- drm_intel_bo_unmap(brw->sf.vp_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
static void dump_clip_viewport_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
const char *name = "CLIP VP";
struct brw_clipper_viewport *vp;
uint32_t vp_off;
- if (brw->clip.vp_bo == NULL)
- return;
-
- drm_intel_bo_map(brw->clip.vp_bo, GL_FALSE);
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
- vp = brw->clip.vp_bo->virtual;
- vp_off = brw->clip.vp_bo->offset;
+ vp = intel->batch.bo->virtual + brw->clip.vp_offset;
+ vp_off = intel->batch.bo->offset + brw->clip.vp_offset;
state_out(name, vp, vp_off, 0, "xmin = %f\n", vp->xmin);
state_out(name, vp, vp_off, 1, "xmax = %f\n", vp->xmax);
state_out(name, vp, vp_off, 2, "ymin = %f\n", vp->ymin);
state_out(name, vp, vp_off, 3, "ymax = %f\n", vp->ymax);
- drm_intel_bo_unmap(brw->clip.vp_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
static void dump_cc_viewport_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
const char *name = "CC VP";
struct brw_cc_viewport *vp;
uint32_t vp_off;
- if (brw->cc.vp_bo == NULL)
- return;
-
- drm_intel_bo_map(brw->cc.vp_bo, GL_FALSE);
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
- vp = brw->cc.vp_bo->virtual;
- vp_off = brw->cc.vp_bo->offset;
+ vp = intel->batch.bo->virtual + brw->cc.vp_offset;
+ vp_off = intel->batch.bo->offset + brw->cc.vp_offset;
state_out(name, vp, vp_off, 0, "min_depth = %f\n", vp->min_depth);
state_out(name, vp, vp_off, 1, "max_depth = %f\n", vp->max_depth);
- drm_intel_bo_unmap(brw->cc.vp_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
static void dump_depth_stencil_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
const char *name = "DEPTH STENCIL";
struct gen6_depth_stencil_state *ds;
uint32_t ds_off;
- if (brw->cc.depth_stencil_state_bo == NULL)
- return;
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
- drm_intel_bo_map(brw->cc.depth_stencil_state_bo, GL_FALSE);
-
- ds = brw->cc.depth_stencil_state_bo->virtual;
- ds_off = brw->cc.depth_stencil_state_bo->offset;
+ ds = intel->batch.bo->virtual + brw->cc.depth_stencil_state_offset;
+ ds_off = intel->batch.bo->offset + brw->cc.depth_stencil_state_offset;
state_out(name, ds, ds_off, 0, "stencil %sable, func %d, write %sable\n",
ds->ds0.stencil_enable ? "en" : "dis",
@@ -277,7 +284,7 @@ static void dump_depth_stencil_state(struct brw_context *brw)
ds->ds2.depth_test_enable ? "en" : "dis",
ds->ds2.depth_test_func,
ds->ds2.depth_write_enable ? "en" : "dis");
- drm_intel_bo_unmap(brw->cc.depth_stencil_state_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
static void dump_cc_state(struct brw_context *brw)
@@ -291,8 +298,8 @@ static void dump_cc_state(struct brw_context *brw)
return;
drm_intel_bo_map(bo, GL_FALSE);
- cc = bo->virtual;
- cc_off = bo->offset;
+ cc = bo->virtual + brw->cc.state_offset;
+ cc_off = bo->offset + brw->cc.state_offset;
state_out(name, cc, cc_off, 0, "alpha test format %s, round disable %d, stencil ref %d,"
"bf stencil ref %d\n",
@@ -312,22 +319,20 @@ static void dump_cc_state(struct brw_context *brw)
static void dump_blend_state(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
const char *name = "BLEND";
struct gen6_blend_state *blend;
uint32_t blend_off;
- if (brw->cc.blend_state_bo == NULL)
- return;
-
- drm_intel_bo_map(brw->cc.blend_state_bo, GL_FALSE);
+ drm_intel_bo_map(intel->batch.bo, GL_FALSE);
- blend = brw->cc.blend_state_bo->virtual;
- blend_off = brw->cc.blend_state_bo->offset;
+ blend = intel->batch.bo->virtual + brw->cc.blend_state_offset;
+ blend_off = intel->batch.bo->offset + brw->cc.blend_state_offset;
state_out(name, blend, blend_off, 0, "\n");
state_out(name, blend, blend_off, 1, "\n");
- drm_intel_bo_unmap(brw->cc.blend_state_bo);
+ drm_intel_bo_unmap(intel->batch.bo);
}
@@ -383,21 +388,25 @@ void brw_debug_batch(struct intel_context *intel)
dump_wm_sampler_state(brw);
if (intel->gen < 6)
- state_struct_out("VS", brw->vs.state_bo, 0, sizeof(struct brw_vs_unit_state));
+ state_struct_out("VS", intel->batch.bo, brw->vs.state_offset,
+ sizeof(struct brw_vs_unit_state));
brw_debug_prog("VS prog", brw->vs.prog_bo);
if (intel->gen < 6)
- state_struct_out("GS", brw->gs.state_bo, 0, sizeof(struct brw_gs_unit_state));
+ state_struct_out("GS", intel->batch.bo, brw->gs.state_offset,
+ sizeof(struct brw_gs_unit_state));
brw_debug_prog("GS prog", brw->gs.prog_bo);
if (intel->gen < 6) {
- state_struct_out("SF", brw->sf.state_bo, 0, sizeof(struct brw_sf_unit_state));
- brw_debug_prog("SF prog", brw->sf.prog_bo);
+ state_struct_out("SF", intel->batch.bo, brw->sf.state_offset,
+ sizeof(struct brw_sf_unit_state));
+ brw_debug_prog("SF prog", brw->sf.prog_bo);
}
dump_sf_viewport_state(brw);
if (intel->gen < 6)
- state_struct_out("WM", brw->wm.state_bo, 0, sizeof(struct brw_wm_unit_state));
+ state_struct_out("WM", intel->batch.bo, brw->wm.state_offset,
+ sizeof(struct brw_wm_unit_state));
brw_debug_prog("WM prog", brw->wm.prog_bo);
if (intel->gen >= 6) {
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 6f521be6599..008aceb222b 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -60,6 +60,7 @@ static const struct brw_tracked_state *gen4_atoms[] =
&brw_curbe_offsets,
&brw_recalculate_urb_fence,
+ &brw_cc_vp,
&brw_cc_unit,
&brw_vs_constants, /* Before vs_surfaces and constant_buffer */
@@ -119,6 +120,10 @@ static const struct brw_tracked_state *gen6_atoms[] =
/* Command packets: */
&brw_invarient_state,
+ /* must do before binding table pointers, cc state ptrs */
+ &brw_state_base_address,
+
+ &brw_cc_vp,
&gen6_viewport_state, /* must do after *_vp stages */
&gen6_urb,
@@ -129,6 +134,7 @@ static const struct brw_tracked_state *gen6_atoms[] =
&brw_vs_constants, /* Before vs_surfaces and constant_buffer */
&brw_wm_constants, /* Before wm_surfaces and constant_buffer */
+ &gen6_vs_constants, /* Before vs_state */
&gen6_wm_constants, /* Before wm_state */
&brw_vs_surfaces, /* must do before unit */
@@ -146,9 +152,6 @@ static const struct brw_tracked_state *gen6_atoms[] =
&gen6_wm_state,
&gen6_scissor_state,
- &gen6_scissor_state_pointers,
-
- &brw_state_base_address,
&gen6_binding_table_pointers,
@@ -314,7 +317,6 @@ static struct dirty_bit_map cache_bits[] = {
DEFINE_BIT(CACHE_NEW_CC_VP),
DEFINE_BIT(CACHE_NEW_CC_UNIT),
DEFINE_BIT(CACHE_NEW_WM_PROG),
- DEFINE_BIT(CACHE_NEW_SAMPLER_DEFAULT_COLOR),
DEFINE_BIT(CACHE_NEW_SAMPLER),
DEFINE_BIT(CACHE_NEW_WM_UNIT),
DEFINE_BIT(CACHE_NEW_SF_PROG),
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index 63ae13191f9..31a2b518c40 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -103,13 +103,11 @@ static void do_vs_prog( struct brw_context *brw,
aux_size += c.vp->program.Base.Parameters->NumParameters;
drm_intel_bo_unreference(brw->vs.prog_bo);
- brw->vs.prog_bo = brw_upload_cache_with_auxdata(&brw->cache, BRW_VS_PROG,
- &c.key, sizeof(c.key),
- NULL, 0,
- program, program_size,
- &c.prog_data,
- aux_size,
- &brw->vs.prog_data);
+ brw->vs.prog_bo = brw_upload_cache(&brw->cache, BRW_VS_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, aux_size,
+ &brw->vs.prog_data);
}
@@ -148,7 +146,6 @@ static void brw_upload_vs_prog(struct brw_context *brw)
drm_intel_bo_unreference(brw->vs.prog_bo);
brw->vs.prog_bo = brw_search_cache(&brw->cache, BRW_VS_PROG,
&key, sizeof(key),
- NULL, 0,
&brw->vs.prog_data);
if (brw->vs.prog_bo == NULL)
do_vs_prog(brw, vp, &key);
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index dd4e1e6c6ad..a28cdc0bfe9 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -1553,6 +1553,26 @@ static void emit_swz( struct brw_vs_compile *c,
}
}
+static int
+align_interleaved_urb_mlen(struct brw_context *brw, int mlen)
+{
+ struct intel_context *intel = &brw->intel;
+
+ if (intel->gen >= 6) {
+ /* URB data written (does not include the message header reg) must
+ * be a multiple of 256 bits, or 2 VS registers. See vol5c.5,
+ * section 5.4.3.2.2: URB_INTERLEAVED.
+ *
+ * URB entries are allocated on a multiple of 1024 bits, so an
+ * extra 128 bits written here to make the end align to 256 is
+ * no problem.
+ */
+ if ((mlen % 2) != 1)
+ mlen++;
+ }
+
+ return mlen;
+}
/**
* Post-vertex-program processing. Send the results to the URB.
@@ -1734,12 +1754,11 @@ static void emit_vertex_write( struct brw_vs_compile *c)
eot = (c->first_overflow_output == 0);
- msg_len = c->nr_outputs + 2 + len_vertex_header;
- if (intel->gen >= 6) {
- /* interleaved urb write message length for gen6 should be multiple of 2 */
- if ((msg_len % 2) != 0)
- msg_len++;
- }
+ /* Message header, plus VUE header, plus the (first set of) outputs. */
+ msg_len = 1 + len_vertex_header + c->nr_outputs;
+ msg_len = align_interleaved_urb_mlen(brw, msg_len);
+ /* Any outputs beyond BRW_MAX_MRF should be past first_overflow_output */
+ msg_len = MIN2(msg_len, (BRW_MAX_MRF - 1)),
brw_urb_WRITE(p,
brw_null_reg(), /* dest */
@@ -1747,7 +1766,7 @@ static void emit_vertex_write( struct brw_vs_compile *c)
c->r0, /* src */
0, /* allocate */
1, /* used */
- MIN2(msg_len - 1, (BRW_MAX_MRF - 1)), /* msg len */
+ msg_len,
0, /* response len */
eot, /* eot */
eot, /* writes complete */
@@ -1774,7 +1793,7 @@ static void emit_vertex_write( struct brw_vs_compile *c)
c->r0, /* src */
0, /* allocate */
1, /* used */
- mrf, /* msg len */
+ align_interleaved_urb_mlen(brw, mrf),
0, /* response len */
1, /* eot */
1, /* writes complete */
diff --git a/src/mesa/drivers/dri/i965/brw_vs_state.c b/src/mesa/drivers/dri/i965/brw_vs_state.c
index c3a7cc247c5..1eee5b7e5de 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_state.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_state.c
@@ -49,48 +49,19 @@ struct brw_vs_unit_key {
};
static void
-vs_unit_populate_key(struct brw_context *brw, struct brw_vs_unit_key *key)
-{
- struct gl_context *ctx = &brw->intel.ctx;
-
- memset(key, 0, sizeof(*key));
-
- /* CACHE_NEW_VS_PROG */
- key->total_grf = brw->vs.prog_data->total_grf;
- key->urb_entry_read_length = brw->vs.prog_data->urb_read_length;
- key->curb_entry_read_length = brw->vs.prog_data->curb_read_length;
-
- /* BRW_NEW_URB_FENCE */
- key->nr_urb_entries = brw->urb.nr_vs_entries;
- key->urb_size = brw->urb.vsize;
-
- /* BRW_NEW_NR_VS_SURFACES */
- key->nr_surfaces = brw->vs.nr_surfaces;
-
- /* BRW_NEW_CURBE_OFFSETS, _NEW_TRANSFORM */
- if (ctx->Transform.ClipPlanesEnabled) {
- /* Note that we read in the userclip planes as well, hence
- * clip_start:
- */
- key->curbe_offset = brw->curbe.clip_start;
- }
- else {
- key->curbe_offset = brw->curbe.vs_start;
- }
-}
-
-static drm_intel_bo *
-vs_unit_create_from_key(struct brw_context *brw, struct brw_vs_unit_key *key)
+brw_prepare_vs_unit(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
- struct brw_vs_unit_state vs;
- drm_intel_bo *bo;
+ struct gl_context *ctx = &intel->ctx;
+ struct brw_vs_unit_state *vs;
- memset(&vs, 0, sizeof(vs));
+ vs = brw_state_batch(brw, sizeof(*vs), 32, &brw->vs.state_offset);
+ memset(vs, 0, sizeof(*vs));
- vs.thread0.kernel_start_pointer = brw->vs.prog_bo->offset >> 6; /* reloc */
- vs.thread0.grf_reg_count = ALIGN(key->total_grf, 16) / 16 - 1;
- vs.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
+ /* CACHE_NEW_VS_PROG */
+ vs->thread0.kernel_start_pointer = brw->vs.prog_bo->offset >> 6; /* reloc */
+ vs->thread0.grf_reg_count = ALIGN(brw->vs.prog_data->total_grf, 16) / 16 - 1;
+ vs->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
/* Choosing multiple program flow means that we may get 2-vertex threads,
* which will have the channel mask for dwords 4-7 enabled in the thread,
* and those dwords will be written to the second URB handle when we
@@ -103,21 +74,34 @@ vs_unit_create_from_key(struct brw_context *brw, struct brw_vs_unit_key *key)
* The most notable and reliably failing application is the Humus
* demo "CelShading"
*/
- vs.thread1.single_program_flow = (intel->gen == 5);
+ vs->thread1.single_program_flow = (intel->gen == 5);
+ /* BRW_NEW_NR_VS_SURFACES */
if (intel->gen == 5)
- vs.thread1.binding_table_entry_count = 0; /* hardware requirement */
+ vs->thread1.binding_table_entry_count = 0; /* hardware requirement */
else
- vs.thread1.binding_table_entry_count = key->nr_surfaces;
+ vs->thread1.binding_table_entry_count = brw->vs.nr_surfaces;
+
+ vs->thread3.urb_entry_read_length = brw->vs.prog_data->urb_read_length;
+ vs->thread3.const_urb_entry_read_length = brw->vs.prog_data->curb_read_length;
+ vs->thread3.dispatch_grf_start_reg = 1;
+ vs->thread3.urb_entry_read_offset = 0;
- vs.thread3.urb_entry_read_length = key->urb_entry_read_length;
- vs.thread3.const_urb_entry_read_length = key->curb_entry_read_length;
- vs.thread3.dispatch_grf_start_reg = 1;
- vs.thread3.urb_entry_read_offset = 0;
- vs.thread3.const_urb_entry_read_offset = key->curbe_offset * 2;
+ /* BRW_NEW_CURBE_OFFSETS, _NEW_TRANSFORM */
+ if (ctx->Transform.ClipPlanesEnabled) {
+ /* Note that we read in the userclip planes as well, hence
+ * clip_start:
+ */
+ vs->thread3.const_urb_entry_read_offset = brw->curbe.clip_start * 2;
+ }
+ else {
+ vs->thread3.const_urb_entry_read_offset = brw->curbe.vs_start * 2;
+ }
+
+ /* BRW_NEW_URB_FENCE */
if (intel->gen == 5) {
- switch (key->nr_urb_entries) {
+ switch (brw->urb.nr_vs_entries) {
case 8:
case 12:
case 16:
@@ -129,13 +113,13 @@ vs_unit_create_from_key(struct brw_context *brw, struct brw_vs_unit_key *key)
case 192:
case 224:
case 256:
- vs.thread4.nr_urb_entries = key->nr_urb_entries >> 2;
+ vs->thread4.nr_urb_entries = brw->urb.nr_vs_entries >> 2;
break;
default:
assert(0);
}
} else {
- switch (key->nr_urb_entries) {
+ switch (brw->urb.nr_vs_entries) {
case 8:
case 12:
case 16:
@@ -147,63 +131,45 @@ vs_unit_create_from_key(struct brw_context *brw, struct brw_vs_unit_key *key)
default:
assert(0);
}
- vs.thread4.nr_urb_entries = key->nr_urb_entries;
+ vs->thread4.nr_urb_entries = brw->urb.nr_vs_entries;
}
- vs.thread4.urb_entry_allocation_size = key->urb_size - 1;
+ vs->thread4.urb_entry_allocation_size = brw->urb.vsize - 1;
- vs.thread4.max_threads = CLAMP(key->nr_urb_entries / 2,
- 1, brw->vs_max_threads) - 1;
+ vs->thread4.max_threads = CLAMP(brw->urb.nr_vs_entries / 2,
+ 1, brw->vs_max_threads) - 1;
/* No samplers for ARB_vp programs:
*/
/* It has to be set to 0 for Ironlake
*/
- vs.vs5.sampler_count = 0;
+ vs->vs5.sampler_count = 0;
if (unlikely(INTEL_DEBUG & DEBUG_STATS))
- vs.thread4.stats_enable = 1;
+ vs->thread4.stats_enable = 1;
/* Vertex program always enabled:
*/
- vs.vs6.vs_enable = 1;
-
- bo = brw_upload_cache(&brw->cache, BRW_VS_UNIT,
- key, sizeof(*key),
- &brw->vs.prog_bo, 1,
- &vs, sizeof(vs));
+ vs->vs6.vs_enable = 1;
/* Emit VS program relocation */
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_vs_unit_state, thread0),
- brw->vs.prog_bo, vs.thread0.grf_reg_count << 1,
+ drm_intel_bo_emit_reloc(intel->batch.bo, (brw->vs.state_offset +
+ offsetof(struct brw_vs_unit_state,
+ thread0)),
+ brw->vs.prog_bo, vs->thread0.grf_reg_count << 1,
I915_GEM_DOMAIN_INSTRUCTION, 0);
- return bo;
-}
-
-static void prepare_vs_unit(struct brw_context *brw)
-{
- struct brw_vs_unit_key key;
-
- vs_unit_populate_key(brw, &key);
-
- drm_intel_bo_unreference(brw->vs.state_bo);
- brw->vs.state_bo = brw_search_cache(&brw->cache, BRW_VS_UNIT,
- &key, sizeof(key),
- &brw->vs.prog_bo, 1,
- NULL);
- if (brw->vs.state_bo == NULL) {
- brw->vs.state_bo = vs_unit_create_from_key(brw, &key);
- }
+ brw->state.dirty.cache |= CACHE_NEW_VS_UNIT;
}
const struct brw_tracked_state brw_vs_unit = {
.dirty = {
.mesa = _NEW_TRANSFORM,
- .brw = (BRW_NEW_CURBE_OFFSETS |
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_CURBE_OFFSETS |
BRW_NEW_NR_VS_SURFACES |
BRW_NEW_URB_FENCE),
.cache = CACHE_NEW_VS_PROG
},
- .prepare = prepare_vs_unit,
+ .prepare = brw_prepare_vs_unit,
};
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index ce8712a260f..f2c417d8a81 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -60,7 +60,6 @@ dri_bo_release(drm_intel_bo **bo)
static void brw_destroy_context( struct intel_context *intel )
{
struct brw_context *brw = brw_context(&intel->ctx);
- int i;
brw_destroy_state(brw);
brw_draw_destroy( brw );
@@ -77,28 +76,13 @@ static void brw_destroy_context( struct intel_context *intel )
dri_bo_release(&brw->curbe.curbe_bo);
dri_bo_release(&brw->vs.prog_bo);
- dri_bo_release(&brw->vs.state_bo);
dri_bo_release(&brw->vs.const_bo);
dri_bo_release(&brw->gs.prog_bo);
- dri_bo_release(&brw->gs.state_bo);
dri_bo_release(&brw->clip.prog_bo);
- dri_bo_release(&brw->clip.state_bo);
- dri_bo_release(&brw->clip.vp_bo);
dri_bo_release(&brw->sf.prog_bo);
- dri_bo_release(&brw->sf.state_bo);
- dri_bo_release(&brw->sf.vp_bo);
- for (i = 0; i < BRW_MAX_TEX_UNIT; i++)
- dri_bo_release(&brw->wm.sdc_bo[i]);
- dri_bo_release(&brw->wm.sampler_bo);
dri_bo_release(&brw->wm.prog_bo);
- dri_bo_release(&brw->wm.state_bo);
dri_bo_release(&brw->wm.const_bo);
- dri_bo_release(&brw->wm.push_const_bo);
dri_bo_release(&brw->cc.prog_bo);
- dri_bo_release(&brw->cc.vp_bo);
- dri_bo_release(&brw->cc.blend_state_bo);
- dri_bo_release(&brw->cc.depth_stencil_state_bo);
- dri_bo_release(&brw->cc.color_calc_state_bo);
free(brw->curbe.last_buf);
free(brw->curbe.next_buf);
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 65af227d831..06512de940f 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -33,6 +33,7 @@
#include "brw_wm.h"
#include "brw_state.h"
#include "main/formats.h"
+#include "main/samplerobj.h"
/** Return number of src args for given instruction */
GLuint brw_wm_nr_args( GLuint opcode )
@@ -119,7 +120,7 @@ brw_wm_non_glsl_emit(struct brw_context *brw, struct brw_wm_compile *c)
brw_wm_emit(c);
}
-static void
+void
brw_wm_payload_setup(struct brw_context *brw,
struct brw_wm_compile *c)
{
@@ -224,18 +225,13 @@ static void do_wm_prog( struct brw_context *brw,
brw_init_compile(brw, &c->func);
- brw_wm_payload_setup(brw, c);
-
if (!brw_wm_fs_emit(brw, c)) {
- /*
- * Shader which use GLSL features such as flow control are handled
- * differently from "simple" shaders.
- */
+ /* Fallback for fixed function and ARB_fp shaders. */
c->dispatch_width = 16;
brw_wm_payload_setup(brw, c);
brw_wm_non_glsl_emit(brw, c);
+ c->prog_data.dispatch_width = 16;
}
- c->prog_data.dispatch_width = c->dispatch_width;
/* Scratch space is used for register spilling */
if (c->last_scratch) {
@@ -272,13 +268,11 @@ static void do_wm_prog( struct brw_context *brw,
program = brw_get_program(&c->func, &program_size);
drm_intel_bo_unreference(brw->wm.prog_bo);
- brw->wm.prog_bo = brw_upload_cache_with_auxdata(&brw->cache, BRW_WM_PROG,
- &c->key, sizeof(c->key),
- NULL, 0,
- program, program_size,
- &c->prog_data,
- sizeof(c->prog_data),
- &brw->wm.prog_data);
+ brw->wm.prog_bo = brw_upload_cache(&brw->cache, BRW_WM_PROG,
+ &c->key, sizeof(c->key),
+ program, program_size,
+ &c->prog_data, sizeof(c->prog_data),
+ &brw->wm.prog_data);
}
@@ -373,6 +367,7 @@ static void brw_wm_populate_key( struct brw_context *brw,
if (unit->_ReallyEnabled) {
const struct gl_texture_object *t = unit->_Current;
const struct gl_texture_image *img = t->Image[0][t->BaseLevel];
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, i);
int swizzles[SWIZZLE_NIL + 1] = {
SWIZZLE_X,
SWIZZLE_Y,
@@ -388,14 +383,14 @@ static void brw_wm_populate_key( struct brw_context *brw,
* well and our shadow compares always return the result in
* all 4 channels.
*/
- if (t->Sampler.CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) {
- if (t->Sampler.DepthMode == GL_ALPHA) {
+ if (sampler->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) {
+ if (sampler->DepthMode == GL_ALPHA) {
swizzles[0] = SWIZZLE_ZERO;
swizzles[1] = SWIZZLE_ZERO;
swizzles[2] = SWIZZLE_ZERO;
- } else if (t->Sampler.DepthMode == GL_LUMINANCE) {
+ } else if (sampler->DepthMode == GL_LUMINANCE) {
swizzles[3] = SWIZZLE_ONE;
- } else if (t->Sampler.DepthMode == GL_RED) {
+ } else if (sampler->DepthMode == GL_RED) {
/* See table 3.23 of the GL 3.0 spec. */
swizzles[1] = SWIZZLE_ZERO;
swizzles[2] = SWIZZLE_ZERO;
@@ -465,7 +460,7 @@ static void brw_prepare_wm_prog(struct brw_context *brw)
struct brw_wm_prog_key key;
struct brw_fragment_program *fp = (struct brw_fragment_program *)
brw->fragment_program;
-
+
brw_wm_populate_key(brw, &key);
/* Make an early check for the key.
@@ -473,7 +468,6 @@ static void brw_prepare_wm_prog(struct brw_context *brw)
drm_intel_bo_unreference(brw->wm.prog_bo);
brw->wm.prog_bo = brw_search_cache(&brw->cache, BRW_WM_PROG,
&key, sizeof(key),
- NULL, 0,
&brw->wm.prog_data);
if (brw->wm.prog_bo == NULL)
do_wm_prog(brw, fp, &key);
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h
index 40659f26025..a5f99a0a657 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -201,11 +201,11 @@ struct brw_wm_compile {
PASS2_DONE
} state;
- GLuint source_depth_reg:3;
- GLuint source_w_reg:3;
- GLuint aa_dest_stencil_reg:3;
- GLuint dest_depth_reg:3;
- GLuint nr_payload_regs:4;
+ uint8_t source_depth_reg;
+ uint8_t source_w_reg;
+ uint8_t aa_dest_stencil_reg;
+ uint8_t dest_depth_reg;
+ uint8_t nr_payload_regs;
GLuint computes_depth:1; /* could be derived from program string */
GLuint source_depth_to_render_target:1;
GLuint runtime_check_aads_emit:1;
@@ -218,7 +218,6 @@ struct brw_wm_compile {
GLuint nr_fp_insns;
GLuint fp_temp;
GLuint fp_interp_emitted;
- GLuint fp_fragcolor_emitted;
struct prog_src_register pixel_xy;
struct prog_src_register delta_xy;
@@ -315,7 +314,7 @@ void brw_wm_print_program( struct brw_wm_compile *c,
void brw_wm_lookup_iz(struct intel_context *intel,
struct brw_wm_compile *c);
-GLboolean brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c);
+bool brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c);
/* brw_wm_emit.c */
void emit_alu1(struct brw_compile *p,
@@ -475,5 +474,7 @@ struct gl_shader_program *brw_new_shader_program(struct gl_context *ctx, GLuint
bool brw_color_buffer_write_enabled(struct brw_context *brw);
bool brw_render_target_supported(gl_format format);
+void brw_wm_payload_setup(struct brw_context *brw,
+ struct brw_wm_compile *c);
#endif
diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index cdc1f367e5c..fd4cd892f41 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -51,16 +51,6 @@ static GLboolean can_do_pln(struct intel_context *intel,
return GL_TRUE;
}
-/* Not quite sure how correct this is - need to understand horiz
- * vs. vertical strides a little better.
- */
-static INLINE struct brw_reg sechalf( struct brw_reg reg )
-{
- if (reg.vstride)
- reg.nr++;
- return reg;
-}
-
/* Return the SrcReg index of the channels that can be immediate float operands
* instead of usage of PROGRAM_CONSTANT values through push/pull.
*/
@@ -1325,12 +1315,6 @@ static void fire_fb_write( struct brw_wm_compile *c,
{
struct brw_compile *p = &c->func;
struct intel_context *intel = &p->brw->intel;
- struct brw_reg dst;
-
- if (c->dispatch_width == 16)
- dst = retype(vec16(brw_null_reg()), BRW_REGISTER_TYPE_UW);
- else
- dst = retype(vec8(brw_null_reg()), BRW_REGISTER_TYPE_UW);
/* Pass through control information:
*
@@ -1352,7 +1336,6 @@ static void fire_fb_write( struct brw_wm_compile *c,
/* send (16) null.0<1>:uw m0 r0.0<8;8,1>:uw 0x85a04000:ud { Align1 EOT } */
brw_fb_WRITE(p,
c->dispatch_width,
- dst,
base_reg,
retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW),
target,
diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c
index 4759b289a0c..9ddbee2edf4 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_fp.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_fp.c
@@ -961,35 +961,31 @@ static void emit_render_target_writes( struct brw_wm_compile *c )
struct prog_src_register outcolor;
GLuint i;
- struct prog_instruction *inst, *last_inst = NULL;
+ struct prog_instruction *inst = NULL;
/* The inst->Aux field is used for FB write target and the EOT marker */
- if (c->key.nr_color_regions > 1) {
- for (i = 0 ; i < c->key.nr_color_regions; i++) {
- outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i);
- last_inst = inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
- 0, outcolor, payload_r0_depth, outdepth);
- inst->Aux = INST_AUX_TARGET(i);
- if (c->fp_fragcolor_emitted) {
- outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLOR);
- last_inst = inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
- 0, outcolor, payload_r0_depth, outdepth);
- inst->Aux = INST_AUX_TARGET(i);
- }
+ for (i = 0; i < c->key.nr_color_regions; i++) {
+ if (c->fp->program.Base.OutputsWritten & (1 << FRAG_RESULT_COLOR)) {
+ outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLOR);
+ } else {
+ outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i);
}
- last_inst->Aux |= INST_AUX_EOT;
+ inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
+ 0, outcolor, payload_r0_depth, outdepth);
+ inst->Aux = INST_AUX_TARGET(i);
}
- else {
- /* if gl_FragData[0] is written, use it, else use gl_FragColor */
- if (c->fp->program.Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DATA0))
- outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_DATA0);
- else
- outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLOR);
- inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(),0),
- 0, outcolor, payload_r0_depth, outdepth);
- inst->Aux = INST_AUX_EOT | INST_AUX_TARGET(0);
+ /* Mark the last FB write as final, or emit a dummy write if we had
+ * no render targets bound.
+ */
+ if (c->key.nr_color_regions != 0) {
+ inst->Aux |= INST_AUX_EOT;
+ } else {
+ inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
+ 0, src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLOR),
+ payload_r0_depth, outdepth);
+ inst->Aux = INST_AUX_TARGET(0) | INST_AUX_EOT;
}
}
@@ -1015,16 +1011,6 @@ static void validate_src_regs( struct brw_wm_compile *c,
}
}
}
-
-static void validate_dst_regs( struct brw_wm_compile *c,
- const struct prog_instruction *inst )
-{
- if (inst->DstReg.File == PROGRAM_OUTPUT) {
- GLuint idx = inst->DstReg.Index;
- if (idx == FRAG_RESULT_COLOR)
- c->fp_fragcolor_emitted = 1;
- }
-}
static void print_insns( const struct prog_instruction *insn,
GLuint nr )
@@ -1083,7 +1069,6 @@ void brw_wm_pass_fp( struct brw_wm_compile *c )
for (insn = 0; insn < fp->program.Base.NumInstructions; insn++) {
const struct prog_instruction *inst = &fp->program.Base.Instructions[insn];
validate_src_regs(c, inst);
- validate_dst_regs(c, inst);
}
/* Loop over all instructions doing assorted simplifications and
diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
index cfc30d8613f..7b93bf90241 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
@@ -35,7 +35,7 @@
#include "brw_defines.h"
#include "main/macros.h"
-
+#include "main/samplerobj.h"
/* Samplers aren't strictly wm state from the hardware's perspective,
@@ -66,81 +66,93 @@ static GLuint translate_wrap_mode( GLenum wrap )
}
}
-static drm_intel_bo *upload_default_color( struct brw_context *brw,
- const GLfloat *color )
+static void
+upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler,
+ int unit)
{
struct intel_context *intel = &brw->intel;
+ struct gl_context *ctx = &intel->ctx;
+ struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
+ struct gl_texture_object *texObj = texUnit->_Current;
+ struct gl_texture_image *firstImage = texObj->Image[0][texObj->BaseLevel];
+ float color[4];
+
+ if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
+ /* GL specs that border color for depth textures is taken from the
+ * R channel, while the hardware uses A. Spam R into all the
+ * channels for safety.
+ */
+ color[0] = sampler->BorderColor.f[0];
+ color[1] = sampler->BorderColor.f[0];
+ color[2] = sampler->BorderColor.f[0];
+ color[3] = sampler->BorderColor.f[0];
+ } else {
+ color[0] = sampler->BorderColor.f[0];
+ color[1] = sampler->BorderColor.f[1];
+ color[2] = sampler->BorderColor.f[2];
+ color[3] = sampler->BorderColor.f[3];
+ }
if (intel->gen >= 5) {
- struct gen5_sampler_default_color sdc;
+ struct gen5_sampler_default_color *sdc;
+
+ sdc = brw_state_batch(brw, sizeof(*sdc), 32, &brw->wm.sdc_offset[unit]);
- memset(&sdc, 0, sizeof(sdc));
+ memset(sdc, 0, sizeof(*sdc));
- UNCLAMPED_FLOAT_TO_UBYTE(sdc.ub[0], color[0]);
- UNCLAMPED_FLOAT_TO_UBYTE(sdc.ub[1], color[1]);
- UNCLAMPED_FLOAT_TO_UBYTE(sdc.ub[2], color[2]);
- UNCLAMPED_FLOAT_TO_UBYTE(sdc.ub[3], color[3]);
+ UNCLAMPED_FLOAT_TO_UBYTE(sdc->ub[0], color[0]);
+ UNCLAMPED_FLOAT_TO_UBYTE(sdc->ub[1], color[1]);
+ UNCLAMPED_FLOAT_TO_UBYTE(sdc->ub[2], color[2]);
+ UNCLAMPED_FLOAT_TO_UBYTE(sdc->ub[3], color[3]);
- UNCLAMPED_FLOAT_TO_USHORT(sdc.us[0], color[0]);
- UNCLAMPED_FLOAT_TO_USHORT(sdc.us[1], color[1]);
- UNCLAMPED_FLOAT_TO_USHORT(sdc.us[2], color[2]);
- UNCLAMPED_FLOAT_TO_USHORT(sdc.us[3], color[3]);
+ UNCLAMPED_FLOAT_TO_USHORT(sdc->us[0], color[0]);
+ UNCLAMPED_FLOAT_TO_USHORT(sdc->us[1], color[1]);
+ UNCLAMPED_FLOAT_TO_USHORT(sdc->us[2], color[2]);
+ UNCLAMPED_FLOAT_TO_USHORT(sdc->us[3], color[3]);
- UNCLAMPED_FLOAT_TO_SHORT(sdc.s[0], color[0]);
- UNCLAMPED_FLOAT_TO_SHORT(sdc.s[1], color[1]);
- UNCLAMPED_FLOAT_TO_SHORT(sdc.s[2], color[2]);
- UNCLAMPED_FLOAT_TO_SHORT(sdc.s[3], color[3]);
+ UNCLAMPED_FLOAT_TO_SHORT(sdc->s[0], color[0]);
+ UNCLAMPED_FLOAT_TO_SHORT(sdc->s[1], color[1]);
+ UNCLAMPED_FLOAT_TO_SHORT(sdc->s[2], color[2]);
+ UNCLAMPED_FLOAT_TO_SHORT(sdc->s[3], color[3]);
- /* XXX: Fill in half floats */
- /* XXX: Fill in signed bytes */
+ sdc->hf[0] = _mesa_float_to_half(color[0]);
+ sdc->hf[1] = _mesa_float_to_half(color[1]);
+ sdc->hf[2] = _mesa_float_to_half(color[2]);
+ sdc->hf[3] = _mesa_float_to_half(color[3]);
- COPY_4V(sdc.f, color);
+ sdc->b[0] = sdc->s[0] >> 8;
+ sdc->b[1] = sdc->s[1] >> 8;
+ sdc->b[2] = sdc->s[2] >> 8;
+ sdc->b[3] = sdc->s[3] >> 8;
- return brw_cache_data(&brw->cache, BRW_SAMPLER_DEFAULT_COLOR,
- &sdc, sizeof(sdc));
+ sdc->f[0] = color[0];
+ sdc->f[1] = color[1];
+ sdc->f[2] = color[2];
+ sdc->f[3] = color[3];
} else {
- struct brw_sampler_default_color sdc;
+ struct brw_sampler_default_color *sdc;
- COPY_4V(sdc.color, color);
+ sdc = brw_state_batch(brw, sizeof(*sdc), 32, &brw->wm.sdc_offset[unit]);
- return brw_cache_data(&brw->cache, BRW_SAMPLER_DEFAULT_COLOR,
- &sdc, sizeof(sdc));
+ COPY_4V(sdc->color, color);
}
}
-
-struct wm_sampler_key {
- int sampler_count;
-
- struct wm_sampler_entry {
- GLenum tex_target;
- GLenum wrap_r, wrap_s, wrap_t;
- float maxlod, minlod;
- float lod_bias;
- float max_aniso;
- GLenum minfilter, magfilter;
- GLenum comparemode, comparefunc;
-
- /** If target is cubemap, take context setting.
- */
- GLboolean seamless_cube_map;
- } sampler[BRW_MAX_TEX_UNIT];
-};
-
/**
* Sets the sampler state for a single unit based off of the sampler key
* entry.
*/
static void brw_update_sampler_state(struct brw_context *brw,
- struct wm_sampler_entry *key,
- drm_intel_bo *sdc_bo,
+ int unit,
struct brw_sampler_state *sampler)
{
struct intel_context *intel = &brw->intel;
+ struct gl_context *ctx = &intel->ctx;
+ struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
+ struct gl_texture_object *texObj = texUnit->_Current;
+ struct gl_sampler_object *gl_sampler = _mesa_get_samplerobj(ctx, unit);
- memset(sampler, 0, sizeof(*sampler));
-
- switch (key->minfilter) {
+ switch (gl_sampler->MinFilter) {
case GL_NEAREST:
sampler->ss0.min_filter = BRW_MAPFILTER_NEAREST;
sampler->ss0.mip_filter = BRW_MIPFILTER_NONE;
@@ -171,17 +183,17 @@ static void brw_update_sampler_state(struct brw_context *brw,
/* Set Anisotropy:
*/
- if (key->max_aniso > 1.0) {
+ if (gl_sampler->MaxAnisotropy > 1.0) {
sampler->ss0.min_filter = BRW_MAPFILTER_ANISOTROPIC;
sampler->ss0.mag_filter = BRW_MAPFILTER_ANISOTROPIC;
- if (key->max_aniso > 2.0) {
- sampler->ss3.max_aniso = MIN2((key->max_aniso - 2) / 2,
+ if (gl_sampler->MaxAnisotropy > 2.0) {
+ sampler->ss3.max_aniso = MIN2((gl_sampler->MaxAnisotropy - 2) / 2,
BRW_ANISORATIO_16);
}
}
else {
- switch (key->magfilter) {
+ switch (gl_sampler->MagFilter) {
case GL_NEAREST:
sampler->ss0.mag_filter = BRW_MAPFILTER_NEAREST;
break;
@@ -193,9 +205,9 @@ static void brw_update_sampler_state(struct brw_context *brw,
}
}
- sampler->ss1.r_wrap_mode = translate_wrap_mode(key->wrap_r);
- sampler->ss1.s_wrap_mode = translate_wrap_mode(key->wrap_s);
- sampler->ss1.t_wrap_mode = translate_wrap_mode(key->wrap_t);
+ sampler->ss1.r_wrap_mode = translate_wrap_mode(gl_sampler->WrapR);
+ sampler->ss1.s_wrap_mode = translate_wrap_mode(gl_sampler->WrapS);
+ sampler->ss1.t_wrap_mode = translate_wrap_mode(gl_sampler->WrapT);
if (intel->gen >= 6 &&
sampler->ss0.min_filter != sampler->ss0.mag_filter)
@@ -204,9 +216,10 @@ static void brw_update_sampler_state(struct brw_context *brw,
/* Cube-maps on 965 and later must use the same wrap mode for all 3
* coordinate dimensions. Futher, only CUBE and CLAMP are valid.
*/
- if (key->tex_target == GL_TEXTURE_CUBE_MAP) {
- if (key->seamless_cube_map &&
- (key->minfilter != GL_NEAREST || key->magfilter != GL_NEAREST)) {
+ if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
+ if (ctx->Texture.CubeMapSeamless &&
+ (gl_sampler->MinFilter != GL_NEAREST ||
+ gl_sampler->MagFilter != GL_NEAREST)) {
sampler->ss1.r_wrap_mode = BRW_TEXCOORDMODE_CUBE;
sampler->ss1.s_wrap_mode = BRW_TEXCOORDMODE_CUBE;
sampler->ss1.t_wrap_mode = BRW_TEXCOORDMODE_CUBE;
@@ -215,7 +228,7 @@ static void brw_update_sampler_state(struct brw_context *brw,
sampler->ss1.s_wrap_mode = BRW_TEXCOORDMODE_CLAMP;
sampler->ss1.t_wrap_mode = BRW_TEXCOORDMODE_CLAMP;
}
- } else if (key->tex_target == GL_TEXTURE_1D) {
+ } else if (texObj->Target == GL_TEXTURE_1D) {
/* There's a bug in 1D texture sampling - it actually pays
* attention to the wrap_t value, though it should not.
* Override the wrap_t value here to GL_REPEAT to keep
@@ -227,18 +240,19 @@ static void brw_update_sampler_state(struct brw_context *brw,
/* Set shadow function:
*/
- if (key->comparemode == GL_COMPARE_R_TO_TEXTURE_ARB) {
+ if (gl_sampler->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) {
/* Shadowing is "enabled" by emitting a particular sampler
* message (sample_c). So need to recompile WM program when
* shadow comparison is enabled on each/any texture unit.
*/
sampler->ss0.shadow_function =
- intel_translate_shadow_compare_func(key->comparefunc);
+ intel_translate_shadow_compare_func(gl_sampler->CompareFunc);
}
/* Set LOD bias:
*/
- sampler->ss0.lod_bias = S_FIXED(CLAMP(key->lod_bias, -16, 15), 6);
+ sampler->ss0.lod_bias = S_FIXED(CLAMP(texUnit->LodBias +
+ gl_sampler->LodBias, -16, 15), 6);
sampler->ss0.lod_preclamp = 1; /* OpenGL mode */
sampler->ss0.default_color_mode = 0; /* OpenGL/DX10 mode */
@@ -252,150 +266,67 @@ static void brw_update_sampler_state(struct brw_context *brw,
*/
sampler->ss0.base_level = U_FIXED(0, 1);
- sampler->ss1.max_lod = U_FIXED(CLAMP(key->maxlod, 0, 13), 6);
- sampler->ss1.min_lod = U_FIXED(CLAMP(key->minlod, 0, 13), 6);
-
- sampler->ss2.default_color_pointer = sdc_bo->offset >> 5; /* reloc */
-}
+ sampler->ss1.max_lod = U_FIXED(CLAMP(gl_sampler->MaxLod, 0, 13), 6);
+ sampler->ss1.min_lod = U_FIXED(CLAMP(gl_sampler->MinLod, 0, 13), 6);
+ upload_default_color(brw, gl_sampler, unit);
-/** Sets up the cache key for sampler state for all texture units */
-static void
-brw_wm_sampler_populate_key(struct brw_context *brw,
- struct wm_sampler_key *key)
-{
- struct gl_context *ctx = &brw->intel.ctx;
- int unit;
- char *last_entry_end = ((char*)&key->sampler_count) +
- sizeof(key->sampler_count);
-
- key->sampler_count = 0;
-
- for (unit = 0; unit < BRW_MAX_TEX_UNIT; unit++) {
- if (ctx->Texture.Unit[unit]._ReallyEnabled) {
- struct wm_sampler_entry *entry = &key->sampler[unit];
- struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
- struct gl_texture_object *texObj = texUnit->_Current;
- struct gl_texture_image *firstImage =
- texObj->Image[0][texObj->BaseLevel];
-
- memset(last_entry_end, 0,
- (char*)entry - last_entry_end + sizeof(*entry));
- last_entry_end = ((char*)entry) + sizeof(*entry);
-
- entry->tex_target = texObj->Target;
-
- entry->seamless_cube_map = (texObj->Target == GL_TEXTURE_CUBE_MAP)
- ? ctx->Texture.CubeMapSeamless : GL_FALSE;
-
- entry->wrap_r = texObj->Sampler.WrapR;
- entry->wrap_s = texObj->Sampler.WrapS;
- entry->wrap_t = texObj->Sampler.WrapT;
-
- entry->maxlod = texObj->Sampler.MaxLod;
- entry->minlod = texObj->Sampler.MinLod;
- entry->lod_bias = texUnit->LodBias + texObj->Sampler.LodBias;
- entry->max_aniso = texObj->Sampler.MaxAnisotropy;
- entry->minfilter = texObj->Sampler.MinFilter;
- entry->magfilter = texObj->Sampler.MagFilter;
- entry->comparemode = texObj->Sampler.CompareMode;
- entry->comparefunc = texObj->Sampler.CompareFunc;
-
- drm_intel_bo_unreference(brw->wm.sdc_bo[unit]);
- if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
- float bordercolor[4] = {
- texObj->Sampler.BorderColor.f[0],
- texObj->Sampler.BorderColor.f[0],
- texObj->Sampler.BorderColor.f[0],
- texObj->Sampler.BorderColor.f[0]
- };
- /* GL specs that border color for depth textures is taken from the
- * R channel, while the hardware uses A. Spam R into all the
- * channels for safety.
- */
- brw->wm.sdc_bo[unit] = upload_default_color(brw, bordercolor);
- } else {
- brw->wm.sdc_bo[unit] = upload_default_color(brw,
- texObj->Sampler.BorderColor.f);
- }
- key->sampler_count = unit + 1;
- }
+ if (intel->gen >= 6) {
+ sampler->ss2.default_color_pointer = brw->wm.sdc_offset[unit] >> 5;
+ } else {
+ /* reloc */
+ sampler->ss2.default_color_pointer = (intel->batch.bo->offset +
+ brw->wm.sdc_offset[unit]) >> 5;
+
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ brw->wm.sampler_offset +
+ unit * sizeof(struct brw_sampler_state) +
+ offsetof(struct brw_sampler_state, ss2),
+ intel->batch.bo, brw->wm.sdc_offset[unit],
+ I915_GEM_DOMAIN_SAMPLER, 0);
}
- struct wm_sampler_entry *entry = &key->sampler[key->sampler_count];
- memset(last_entry_end, 0, (char*)entry - last_entry_end);
}
+
/* All samplers must be uploaded in a single contiguous array, which
* complicates various things. However, this is still too confusing -
* FIXME: simplify all the different new texture state flags.
*/
-static void upload_wm_samplers( struct brw_context *brw )
+static void
+prepare_wm_samplers(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
- struct wm_sampler_key key;
- int i, sampler_key_size;
-
- brw_wm_sampler_populate_key(brw, &key);
+ struct brw_sampler_state *samplers;
+ int i;
- if (brw->wm.sampler_count != key.sampler_count) {
- brw->wm.sampler_count = key.sampler_count;
- brw->state.dirty.cache |= CACHE_NEW_SAMPLER;
+ brw->wm.sampler_count = 0;
+ for (i = 0; i < BRW_MAX_TEX_UNIT; i++) {
+ if (ctx->Texture.Unit[i]._ReallyEnabled)
+ brw->wm.sampler_count = i + 1;
}
- drm_intel_bo_unreference(brw->wm.sampler_bo);
- brw->wm.sampler_bo = NULL;
if (brw->wm.sampler_count == 0)
return;
- /* Only include the populated portion of the key in the search. */
- sampler_key_size = offsetof(struct wm_sampler_key,
- sampler[key.sampler_count]);
- brw->wm.sampler_bo = brw_search_cache(&brw->cache, BRW_SAMPLER,
- &key, sampler_key_size,
- brw->wm.sdc_bo, key.sampler_count,
- NULL);
+ samplers = brw_state_batch(brw, brw->wm.sampler_count * sizeof(*samplers),
+ 32, &brw->wm.sampler_offset);
+ memset(samplers, 0, brw->wm.sampler_count * sizeof(*samplers));
- /* If we didnt find it in the cache, compute the state and put it in the
- * cache.
- */
- if (brw->wm.sampler_bo == NULL) {
- struct brw_sampler_state sampler[BRW_MAX_TEX_UNIT];
-
- memset(sampler, 0, sizeof(sampler));
- for (i = 0; i < key.sampler_count; i++) {
- if (brw->wm.sdc_bo[i] == NULL)
- continue;
-
- brw_update_sampler_state(brw, &key.sampler[i], brw->wm.sdc_bo[i],
- &sampler[i]);
- }
-
- brw->wm.sampler_bo = brw_upload_cache(&brw->cache, BRW_SAMPLER,
- &key, sampler_key_size,
- brw->wm.sdc_bo, key.sampler_count,
- &sampler, sizeof(sampler));
-
- /* Emit SDC relocations */
- for (i = 0; i < BRW_MAX_TEX_UNIT; i++) {
- if (!ctx->Texture.Unit[i]._ReallyEnabled)
- continue;
-
- drm_intel_bo_emit_reloc(brw->wm.sampler_bo,
- i * sizeof(struct brw_sampler_state) +
- offsetof(struct brw_sampler_state, ss2),
- brw->wm.sdc_bo[i], 0,
- I915_GEM_DOMAIN_SAMPLER, 0);
- }
+ for (i = 0; i < brw->wm.sampler_count; i++) {
+ if (ctx->Texture.Unit[i]._ReallyEnabled)
+ brw_update_sampler_state(brw, i, &samplers[i]);
}
+
+ brw->state.dirty.cache |= CACHE_NEW_SAMPLER;
}
const struct brw_tracked_state brw_wm_samplers = {
.dirty = {
.mesa = _NEW_TEXTURE,
- .brw = 0,
+ .brw = BRW_NEW_BATCH,
.cache = 0
},
- .prepare = upload_wm_samplers,
+ .prepare = prepare_wm_samplers,
};
diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c
index be4b260a5ff..a91ae511b7f 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_state.c
@@ -40,21 +40,6 @@
* WM unit - fragment programs and rasterization
*/
-struct brw_wm_unit_key {
- unsigned int total_grf, total_scratch;
- unsigned int urb_entry_read_length;
- unsigned int curb_entry_read_length;
- unsigned int dispatch_grf_start_reg;
-
- unsigned int curbe_offset;
-
- unsigned int nr_surfaces, sampler_count;
- GLboolean uses_depth, computes_depth, uses_kill, is_glsl;
- GLboolean polygon_stipple, stats_wm, line_stipple, offset_enable;
- GLboolean color_write_enable;
- GLfloat offset_units, offset_factor;
-};
-
bool
brw_color_buffer_write_enabled(struct brw_context *brw)
{
@@ -81,219 +66,192 @@ brw_color_buffer_write_enabled(struct brw_context *brw)
return false;
}
+/**
+ * Setup wm hardware state. See page 225 of Volume 2
+ */
static void
-wm_unit_populate_key(struct brw_context *brw, struct brw_wm_unit_key *key)
+brw_prepare_wm_unit(struct brw_context *brw)
{
- struct gl_context *ctx = &brw->intel.ctx;
- const struct gl_fragment_program *fp = brw->fragment_program;
struct intel_context *intel = &brw->intel;
+ struct gl_context *ctx = &intel->ctx;
+ const struct gl_fragment_program *fp = brw->fragment_program;
+ struct brw_wm_unit_state *wm;
- memset(key, 0, sizeof(*key));
+ wm = brw_state_batch(brw, sizeof(*wm), 32, &brw->wm.state_offset);
+ memset(wm, 0, sizeof(*wm));
+
+ if (brw->wm.prog_data->prog_offset_16) {
+ /* These two fields should be the same pre-gen6, which is why we
+ * only have one hardware field to program for both dispatch
+ * widths.
+ */
+ assert(brw->wm.prog_data->first_curbe_grf ==
+ brw->wm.prog_data->first_curbe_grf_16);
+ }
/* CACHE_NEW_WM_PROG */
- key->total_grf = brw->wm.prog_data->total_grf;
- key->urb_entry_read_length = brw->wm.prog_data->urb_read_length;
- key->curb_entry_read_length = brw->wm.prog_data->curb_read_length;
- key->dispatch_grf_start_reg = brw->wm.prog_data->first_curbe_grf;
- key->total_scratch = brw->wm.prog_data->total_scratch;
+ wm->thread0.grf_reg_count = ALIGN(brw->wm.prog_data->total_grf, 16) / 16 - 1;
+ wm->wm9.grf_reg_count_2 = ALIGN(brw->wm.prog_data->total_grf_16, 16) / 16 - 1;
+ wm->thread0.kernel_start_pointer = brw->wm.prog_bo->offset >> 6; /* reloc */
+ /* reloc */
+ wm->wm9.kernel_start_pointer_2 = (brw->wm.prog_bo->offset +
+ brw->wm.prog_data->prog_offset_16) >> 6;
+ wm->thread1.depth_coef_urb_read_offset = 1;
+ wm->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
- /* BRW_NEW_CURBE_OFFSETS */
- key->curbe_offset = brw->curbe.wm_start;
+ if (intel->gen == 5)
+ wm->thread1.binding_table_entry_count = 0; /* hardware requirement */
+ else {
+ /* BRW_NEW_NR_SURFACES */
+ wm->thread1.binding_table_entry_count = brw->wm.nr_surfaces;
+ }
- /* BRW_NEW_NR_SURFACEs */
- key->nr_surfaces = brw->wm.nr_surfaces;
+ if (brw->wm.prog_data->total_scratch != 0) {
+ wm->thread2.scratch_space_base_pointer =
+ brw->wm.scratch_bo->offset >> 10; /* reloc */
+ wm->thread2.per_thread_scratch_space =
+ ffs(brw->wm.prog_data->total_scratch) - 11;
+ } else {
+ wm->thread2.scratch_space_base_pointer = 0;
+ wm->thread2.per_thread_scratch_space = 0;
+ }
- /* CACHE_NEW_SAMPLER */
- key->sampler_count = brw->wm.sampler_count;
+ wm->thread3.dispatch_grf_start_reg = brw->wm.prog_data->first_curbe_grf;
+ wm->thread3.urb_entry_read_length = brw->wm.prog_data->urb_read_length;
+ wm->thread3.urb_entry_read_offset = 0;
+ wm->thread3.const_urb_entry_read_length =
+ brw->wm.prog_data->curb_read_length;
+ /* BRW_NEW_CURBE_OFFSETS */
+ wm->thread3.const_urb_entry_read_offset = brw->curbe.wm_start * 2;
- /* _NEW_POLYGONSTIPPLE */
- key->polygon_stipple = ctx->Polygon.StippleFlag;
+ if (intel->gen == 5)
+ wm->wm4.sampler_count = 0; /* hardware requirement */
+ else {
+ /* CACHE_NEW_SAMPLER */
+ wm->wm4.sampler_count = (brw->wm.sampler_count + 1) / 4;
+ }
- /* BRW_NEW_FRAGMENT_PROGRAM */
- key->uses_depth = (fp->Base.InputsRead & (1 << FRAG_ATTRIB_WPOS)) != 0;
+ if (brw->wm.sampler_count) {
+ /* reloc */
+ wm->wm4.sampler_state_pointer = (intel->batch.bo->offset +
+ brw->wm.sampler_offset) >> 5;
+ } else {
+ wm->wm4.sampler_state_pointer = 0;
+ }
- /* as far as we can tell */
- key->computes_depth =
- (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) != 0;
+ /* BRW_NEW_FRAGMENT_PROGRAM */
+ wm->wm5.program_uses_depth = (fp->Base.InputsRead &
+ (1 << FRAG_ATTRIB_WPOS)) != 0;
+ wm->wm5.program_computes_depth = (fp->Base.OutputsWritten &
+ BITFIELD64_BIT(FRAG_RESULT_DEPTH)) != 0;
/* BRW_NEW_DEPTH_BUFFER
* Override for NULL depthbuffer case, required by the Pixel Shader Computed
* Depth field.
*/
if (brw->state.depth_region == NULL)
- key->computes_depth = 0;
-
- /* _NEW_BUFFERS | _NEW_COLOR */
- key->color_write_enable = brw_color_buffer_write_enabled(brw);
+ wm->wm5.program_computes_depth = 0;
/* _NEW_COLOR */
- key->uses_kill = fp->UsesKill || ctx->Color.AlphaEnabled;
+ wm->wm5.program_uses_killpixel = fp->UsesKill || ctx->Color.AlphaEnabled;
- /* If using the fragment shader backend, the program is always
- * 8-wide.
+
+ /* BRW_NEW_FRAGMENT_PROGRAM
+ *
+ * If using the fragment shader backend, the program is always
+ * 8-wide. If not, it's always 16.
*/
if (ctx->Shader.CurrentFragmentProgram) {
struct brw_shader *shader = (struct brw_shader *)
ctx->Shader.CurrentFragmentProgram->_LinkedShaders[MESA_SHADER_FRAGMENT];
if (shader != NULL && shader->ir != NULL) {
- key->is_glsl = GL_TRUE;
+ wm->wm5.enable_8_pix = 1;
+ if (brw->wm.prog_data->prog_offset_16)
+ wm->wm5.enable_16_pix = 1;
}
}
+ if (!wm->wm5.enable_8_pix)
+ wm->wm5.enable_16_pix = 1;
- /* _NEW_DEPTH */
- key->stats_wm = intel->stats_wm;
+ wm->wm5.max_threads = brw->wm_max_threads - 1;
- /* _NEW_LINE */
- key->line_stipple = ctx->Line.StippleFlag;
-
- /* _NEW_POLYGON */
- key->offset_enable = ctx->Polygon.OffsetFill;
- key->offset_units = ctx->Polygon.OffsetUnits;
- key->offset_factor = ctx->Polygon.OffsetFactor;
-}
-
-/**
- * Setup wm hardware state. See page 225 of Volume 2
- */
-static drm_intel_bo *
-wm_unit_create_from_key(struct brw_context *brw, struct brw_wm_unit_key *key,
- drm_intel_bo **reloc_bufs)
-{
- struct intel_context *intel = &brw->intel;
- struct brw_wm_unit_state wm;
- drm_intel_bo *bo;
-
- memset(&wm, 0, sizeof(wm));
-
- wm.thread0.grf_reg_count = ALIGN(key->total_grf, 16) / 16 - 1;
- wm.thread0.kernel_start_pointer = brw->wm.prog_bo->offset >> 6; /* reloc */
- wm.thread1.depth_coef_urb_read_offset = 1;
- wm.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
-
- if (intel->gen == 5)
- wm.thread1.binding_table_entry_count = 0; /* hardware requirement */
- else
- wm.thread1.binding_table_entry_count = key->nr_surfaces;
-
- if (key->total_scratch != 0) {
- wm.thread2.scratch_space_base_pointer =
- brw->wm.scratch_bo->offset >> 10; /* reloc */
- wm.thread2.per_thread_scratch_space = ffs(key->total_scratch) - 11;
- } else {
- wm.thread2.scratch_space_base_pointer = 0;
- wm.thread2.per_thread_scratch_space = 0;
- }
-
- wm.thread3.dispatch_grf_start_reg = key->dispatch_grf_start_reg;
- wm.thread3.urb_entry_read_length = key->urb_entry_read_length;
- wm.thread3.urb_entry_read_offset = 0;
- wm.thread3.const_urb_entry_read_length = key->curb_entry_read_length;
- wm.thread3.const_urb_entry_read_offset = key->curbe_offset * 2;
-
- if (intel->gen == 5)
- wm.wm4.sampler_count = 0; /* hardware requirement */
- else
- wm.wm4.sampler_count = (key->sampler_count + 1) / 4;
-
- if (brw->wm.sampler_bo != NULL) {
- /* reloc */
- wm.wm4.sampler_state_pointer = brw->wm.sampler_bo->offset >> 5;
- } else {
- wm.wm4.sampler_state_pointer = 0;
- }
-
- wm.wm5.program_uses_depth = key->uses_depth;
- wm.wm5.program_computes_depth = key->computes_depth;
- wm.wm5.program_uses_killpixel = key->uses_kill;
-
- if (key->is_glsl)
- wm.wm5.enable_8_pix = 1;
- else
- wm.wm5.enable_16_pix = 1;
-
- wm.wm5.max_threads = brw->wm_max_threads - 1;
-
- if (key->color_write_enable ||
- key->uses_kill ||
- key->computes_depth) {
- wm.wm5.thread_dispatch_enable = 1;
+ /* _NEW_BUFFERS | _NEW_COLOR */
+ if (brw_color_buffer_write_enabled(brw) ||
+ wm->wm5.program_uses_killpixel ||
+ wm->wm5.program_computes_depth) {
+ wm->wm5.thread_dispatch_enable = 1;
}
- wm.wm5.legacy_line_rast = 0;
- wm.wm5.legacy_global_depth_bias = 0;
- wm.wm5.early_depth_test = 1; /* never need to disable */
- wm.wm5.line_aa_region_width = 0;
- wm.wm5.line_endcap_aa_region_width = 1;
+ wm->wm5.legacy_line_rast = 0;
+ wm->wm5.legacy_global_depth_bias = 0;
+ wm->wm5.early_depth_test = 1; /* never need to disable */
+ wm->wm5.line_aa_region_width = 0;
+ wm->wm5.line_endcap_aa_region_width = 1;
- wm.wm5.polygon_stipple = key->polygon_stipple;
+ /* _NEW_POLYGONSTIPPLE */
+ wm->wm5.polygon_stipple = ctx->Polygon.StippleFlag;
- if (key->offset_enable) {
- wm.wm5.depth_offset = 1;
+ /* _NEW_POLYGON */
+ if (ctx->Polygon.OffsetFill) {
+ wm->wm5.depth_offset = 1;
/* Something wierd going on with legacy_global_depth_bias,
* offset_constant, scaling and MRD. This value passes glean
* but gives some odd results elsewere (eg. the
* quad-offset-units test).
*/
- wm.global_depth_offset_constant = key->offset_units * 2;
+ wm->global_depth_offset_constant = ctx->Polygon.OffsetUnits * 2;
/* This is the only value that passes glean:
*/
- wm.global_depth_offset_scale = key->offset_factor;
+ wm->global_depth_offset_scale = ctx->Polygon.OffsetFactor;
}
- wm.wm5.line_stipple = key->line_stipple;
-
- if (unlikely(INTEL_DEBUG & DEBUG_STATS) || key->stats_wm)
- wm.wm4.stats_enable = 1;
+ /* _NEW_LINE */
+ wm->wm5.line_stipple = ctx->Line.StippleFlag;
- bo = brw_upload_cache(&brw->cache, BRW_WM_UNIT,
- key, sizeof(*key),
- reloc_bufs, 3,
- &wm, sizeof(wm));
+ /* _NEW_DEPTH */
+ if (unlikely(INTEL_DEBUG & DEBUG_STATS) || intel->stats_wm)
+ wm->wm4.stats_enable = 1;
/* Emit WM program relocation */
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_wm_unit_state, thread0),
- brw->wm.prog_bo, wm.thread0.grf_reg_count << 1,
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, thread0),
+ brw->wm.prog_bo, wm->thread0.grf_reg_count << 1,
I915_GEM_DOMAIN_INSTRUCTION, 0);
+ if (brw->wm.prog_data->prog_offset_16) {
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, wm9),
+ brw->wm.prog_bo,
+ ((wm->wm9.grf_reg_count_2 << 1) +
+ brw->wm.prog_data->prog_offset_16),
+ I915_GEM_DOMAIN_INSTRUCTION, 0);
+ }
+
/* Emit scratch space relocation */
- if (key->total_scratch != 0) {
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_wm_unit_state, thread2),
+ if (brw->wm.prog_data->total_scratch != 0) {
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, thread2),
brw->wm.scratch_bo,
- wm.thread2.per_thread_scratch_space,
+ wm->thread2.per_thread_scratch_space,
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER);
}
/* Emit sampler state relocation */
- if (key->sampler_count != 0) {
- drm_intel_bo_emit_reloc(bo, offsetof(struct brw_wm_unit_state, wm4),
- brw->wm.sampler_bo, (wm.wm4.stats_enable |
- (wm.wm4.sampler_count << 2)),
+ if (brw->wm.sampler_count != 0) {
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, wm4),
+ intel->batch.bo, (brw->wm.sampler_offset |
+ wm->wm4.stats_enable |
+ (wm->wm4.sampler_count << 2)),
I915_GEM_DOMAIN_INSTRUCTION, 0);
}
- return bo;
-}
-
-
-static void upload_wm_unit( struct brw_context *brw )
-{
- struct brw_wm_unit_key key;
- drm_intel_bo *reloc_bufs[3];
- wm_unit_populate_key(brw, &key);
-
- reloc_bufs[0] = brw->wm.prog_bo;
- reloc_bufs[1] = brw->wm.scratch_bo;
- reloc_bufs[2] = brw->wm.sampler_bo;
-
- drm_intel_bo_unreference(brw->wm.state_bo);
- brw->wm.state_bo = brw_search_cache(&brw->cache, BRW_WM_UNIT,
- &key, sizeof(key),
- reloc_bufs, 3,
- NULL);
- if (brw->wm.state_bo == NULL) {
- brw->wm.state_bo = wm_unit_create_from_key(brw, &key, reloc_bufs);
- }
+ brw->state.dirty.cache |= CACHE_NEW_WM_UNIT;
}
const struct brw_tracked_state brw_wm_unit = {
@@ -305,7 +263,8 @@ const struct brw_tracked_state brw_wm_unit = {
_NEW_DEPTH |
_NEW_BUFFERS),
- .brw = (BRW_NEW_FRAGMENT_PROGRAM |
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_DEPTH_BUFFER |
BRW_NEW_NR_WM_SURFACES),
@@ -313,6 +272,6 @@ const struct brw_tracked_state brw_wm_unit = {
.cache = (CACHE_NEW_WM_PROG |
CACHE_NEW_SAMPLER)
},
- .prepare = upload_wm_unit,
+ .prepare = brw_prepare_wm_unit,
};
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index e3396a3cbd4..47b8b511f05 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -31,6 +31,7 @@
#include "main/mtypes.h"
+#include "main/samplerobj.h"
#include "main/texstore.h"
#include "program/prog_parameter.h"
@@ -112,6 +113,10 @@ static uint32_t brw_format_for_mesa_format[MESA_FORMAT_COUNT] =
[MESA_FORMAT_LUMINANCE_FLOAT32] = BRW_SURFACEFORMAT_L32_FLOAT,
[MESA_FORMAT_ALPHA_FLOAT32] = BRW_SURFACEFORMAT_A32_FLOAT,
[MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32] = BRW_SURFACEFORMAT_L32A32_FLOAT,
+ [MESA_FORMAT_RED_RGTC1] = BRW_SURFACEFORMAT_BC4_UNORM,
+ [MESA_FORMAT_SIGNED_RED_RGTC1] = BRW_SURFACEFORMAT_BC4_SNORM,
+ [MESA_FORMAT_RG_RGTC2] = BRW_SURFACEFORMAT_BC5_UNORM,
+ [MESA_FORMAT_SIGNED_RG_RGTC2] = BRW_SURFACEFORMAT_BC5_SNORM,
};
bool
@@ -213,6 +218,7 @@ brw_update_texture_surface( struct gl_context *ctx, GLuint unit )
struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
struct gl_texture_image *firstImage = tObj->Image[0][tObj->BaseLevel];
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
const GLuint surf_index = SURF_INDEX_TEXTURE(unit);
struct brw_surface_state *surf;
@@ -224,8 +230,8 @@ brw_update_texture_surface( struct gl_context *ctx, GLuint unit )
surf->ss0.surface_type = translate_tex_target(tObj->Target);
surf->ss0.surface_format = translate_tex_format(firstImage->TexFormat,
firstImage->InternalFormat,
- tObj->Sampler.DepthMode,
- tObj->Sampler.sRGBDecode);
+ sampler->DepthMode,
+ sampler->sRGBDecode);
/* This is ok for all textures with channel width 8bit or less:
*/
@@ -309,7 +315,7 @@ brw_create_constant_surface(struct brw_context *brw,
* state atom.
*/
static void
-prepare_wm_constants(struct brw_context *brw)
+prepare_wm_pull_constants(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
struct intel_context *intel = &brw->intel;
@@ -353,7 +359,7 @@ const struct brw_tracked_state brw_wm_constants = {
.brw = (BRW_NEW_FRAGMENT_PROGRAM),
.cache = 0
},
- .prepare = prepare_wm_constants,
+ .prepare = prepare_wm_pull_constants,
};
/**
diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c b/src/mesa/drivers/dri/i965/gen6_cc.c
index 1b935fb5e70..66357f00fa6 100644
--- a/src/mesa/drivers/dri/i965/gen6_cc.c
+++ b/src/mesa/drivers/dri/i965/gen6_cc.c
@@ -32,82 +32,39 @@
#include "intel_batchbuffer.h"
#include "main/macros.h"
-struct gen6_blend_state_key {
- GLboolean color_blend, alpha_enabled;
- GLboolean dither;
- GLboolean color_mask[BRW_MAX_DRAW_BUFFERS][4];
-
- GLenum logic_op;
-
- GLenum blend_eq_rgb, blend_eq_a;
- GLenum blend_src_rgb, blend_src_a;
- GLenum blend_dst_rgb, blend_dst_a;
-
- GLenum alpha_func;
-};
-
static void
-blend_state_populate_key(struct brw_context *brw,
- struct gen6_blend_state_key *key)
+prepare_blend_state(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
-
- memset(key, 0, sizeof(*key));
-
- /* _NEW_COLOR */
- memcpy(key->color_mask, ctx->Color.ColorMask, sizeof(key->color_mask));
-
- /* _NEW_COLOR */
- if (ctx->Color._LogicOpEnabled)
- key->logic_op = ctx->Color.LogicOp;
- else
- key->logic_op = GL_COPY;
-
- /* _NEW_COLOR */
- key->color_blend = ctx->Color.BlendEnabled;
- if (key->color_blend) {
- key->blend_eq_rgb = ctx->Color.Blend[0].EquationRGB;
- key->blend_eq_a = ctx->Color.Blend[0].EquationA;
- key->blend_src_rgb = ctx->Color.Blend[0].SrcRGB;
- key->blend_dst_rgb = ctx->Color.Blend[0].DstRGB;
- key->blend_src_a = ctx->Color.Blend[0].SrcA;
- key->blend_dst_a = ctx->Color.Blend[0].DstA;
- }
-
- /* _NEW_COLOR */
- key->alpha_enabled = ctx->Color.AlphaEnabled;
- if (key->alpha_enabled) {
- key->alpha_func = ctx->Color.AlphaFunc;
- }
-
- /* _NEW_COLOR */
- key->dither = ctx->Color.DitherFlag;
-}
-
-/**
- * Creates the state cache entry for the given CC unit key.
- */
-static drm_intel_bo *
-blend_state_create_from_key(struct brw_context *brw,
- struct gen6_blend_state_key *key)
-{
- struct gen6_blend_state blend[BRW_MAX_DRAW_BUFFERS];
- drm_intel_bo *bo;
+ struct gen6_blend_state *blend;
int b;
-
- memset(&blend, 0, sizeof(blend));
-
- for (b = 0; b < BRW_MAX_DRAW_BUFFERS; b++) {
- if (key->logic_op != GL_COPY) {
- blend[b].blend1.logic_op_enable = 1;
- blend[b].blend1.logic_op_func = intel_translate_logic_op(key->logic_op);
- } else if (key->color_blend & (1 << b)) {
- GLenum eqRGB = key->blend_eq_rgb;
- GLenum eqA = key->blend_eq_a;
- GLenum srcRGB = key->blend_src_rgb;
- GLenum dstRGB = key->blend_dst_rgb;
- GLenum srcA = key->blend_src_a;
- GLenum dstA = key->blend_dst_a;
+ int nr_draw_buffers = ctx->DrawBuffer->_NumColorDrawBuffers;
+ int size = sizeof(*blend) * nr_draw_buffers;
+
+ blend = brw_state_batch(brw, size, 64, &brw->cc.blend_state_offset);
+
+ memset(blend, 0, size);
+
+ for (b = 0; b < nr_draw_buffers; b++) {
+ /* _NEW_COLOR */
+ if (ctx->Color._LogicOpEnabled) {
+ struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[b];
+ /* _NEW_BUFFERS */
+ /* Floating point RTs should have no effect from LogicOp,
+ * except for disabling of blending
+ */
+ if (_mesa_get_format_datatype(rb->Format) != GL_FLOAT) {
+ blend[b].blend1.logic_op_enable = 1;
+ blend[b].blend1.logic_op_func =
+ intel_translate_logic_op(ctx->Color.LogicOp);
+ }
+ } else if (ctx->Color.BlendEnabled & (1 << b)) {
+ GLenum eqRGB = ctx->Color.Blend[0].EquationRGB;
+ GLenum eqA = ctx->Color.Blend[0].EquationA;
+ GLenum srcRGB = ctx->Color.Blend[0].SrcRGB;
+ GLenum dstRGB = ctx->Color.Blend[0].DstRGB;
+ GLenum srcA = ctx->Color.Blend[0].SrcA;
+ GLenum dstA = ctx->Color.Blend[0].DstA;
if (eqRGB == GL_MIN || eqRGB == GL_MAX) {
srcRGB = dstRGB = GL_ONE;
@@ -131,146 +88,74 @@ blend_state_create_from_key(struct brw_context *brw,
eqA != eqRGB);
}
- if (key->alpha_enabled) {
+
+ /* _NEW_COLOR */
+ if (ctx->Color.AlphaEnabled) {
blend[b].blend1.alpha_test_enable = 1;
- blend[b].blend1.alpha_test_func = intel_translate_compare_func(key->alpha_func);
+ blend[b].blend1.alpha_test_func =
+ intel_translate_compare_func(ctx->Color.AlphaFunc);
}
- if (key->dither) {
+ /* _NEW_COLOR */
+ if (ctx->Color.DitherFlag) {
blend[b].blend1.dither_enable = 1;
blend[b].blend1.y_dither_offset = 0;
blend[b].blend1.x_dither_offset = 0;
}
- blend[b].blend1.write_disable_r = !key->color_mask[b][0];
- blend[b].blend1.write_disable_g = !key->color_mask[b][1];
- blend[b].blend1.write_disable_b = !key->color_mask[b][2];
- blend[b].blend1.write_disable_a = !key->color_mask[b][3];
+ blend[b].blend1.write_disable_r = !ctx->Color.ColorMask[b][0];
+ blend[b].blend1.write_disable_g = !ctx->Color.ColorMask[b][1];
+ blend[b].blend1.write_disable_b = !ctx->Color.ColorMask[b][2];
+ blend[b].blend1.write_disable_a = !ctx->Color.ColorMask[b][3];
}
- bo = brw_upload_cache(&brw->cache, BRW_BLEND_STATE,
- key, sizeof(*key),
- NULL, 0,
- &blend, sizeof(blend));
-
- return bo;
-}
-
-static void
-prepare_blend_state(struct brw_context *brw)
-{
- struct gen6_blend_state_key key;
-
- blend_state_populate_key(brw, &key);
-
- drm_intel_bo_unreference(brw->cc.blend_state_bo);
- brw->cc.blend_state_bo = brw_search_cache(&brw->cache, BRW_BLEND_STATE,
- &key, sizeof(key),
- NULL, 0,
- NULL);
-
- if (brw->cc.blend_state_bo == NULL)
- brw->cc.blend_state_bo = blend_state_create_from_key(brw, &key);
+ brw->state.dirty.cache |= CACHE_NEW_BLEND_STATE;
}
const struct brw_tracked_state gen6_blend_state = {
.dirty = {
- .mesa = _NEW_COLOR,
- .brw = 0,
+ .mesa = (_NEW_COLOR |
+ _NEW_BUFFERS),
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
.prepare = prepare_blend_state,
};
-struct gen6_color_calc_state_key {
- float blend_constant_color[4];
- GLclampf alpha_ref;
- GLubyte stencil_ref[2];
-};
-
static void
-color_calc_state_populate_key(struct brw_context *brw,
- struct gen6_color_calc_state_key *key)
+gen6_prepare_color_calc_state(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
+ struct gen6_color_calc_state *cc;
- memset(key, 0, sizeof(*key));
-
- /* _NEW_STENCIL */
- if (ctx->Stencil._Enabled) {
- const unsigned back = ctx->Stencil._BackFace;
-
- key->stencil_ref[0] = ctx->Stencil.Ref[0];
- if (ctx->Stencil._TestTwoSide)
- key->stencil_ref[1] = ctx->Stencil.Ref[back];
- }
+ cc = brw_state_batch(brw, sizeof(*cc), 64, &brw->cc.state_offset);
+ memset(cc, 0, sizeof(*cc));
/* _NEW_COLOR */
- if (ctx->Color.AlphaEnabled)
- key->alpha_ref = ctx->Color.AlphaRef;
-
- key->blend_constant_color[0] = ctx->Color.BlendColorUnclamped[0];
- key->blend_constant_color[1] = ctx->Color.BlendColorUnclamped[1];
- key->blend_constant_color[2] = ctx->Color.BlendColorUnclamped[2];
- key->blend_constant_color[3] = ctx->Color.BlendColorUnclamped[3];
-}
-
-/**
- * Creates the state cache entry for the given CC state key.
- */
-static drm_intel_bo *
-color_calc_state_create_from_key(struct brw_context *brw,
- struct gen6_color_calc_state_key *key)
-{
- struct gen6_color_calc_state cc;
- drm_intel_bo *bo;
-
- memset(&cc, 0, sizeof(cc));
+ cc->cc0.alpha_test_format = BRW_ALPHATEST_FORMAT_UNORM8;
+ UNCLAMPED_FLOAT_TO_UBYTE(cc->cc1.alpha_ref_fi.ui, ctx->Color.AlphaRef);
- cc.cc0.alpha_test_format = BRW_ALPHATEST_FORMAT_UNORM8;
- UNCLAMPED_FLOAT_TO_UBYTE(cc.cc1.alpha_ref_fi.ui, key->alpha_ref);
-
- cc.cc0.stencil_ref = key->stencil_ref[0];
- cc.cc0.bf_stencil_ref = key->stencil_ref[1];
-
- cc.constant_r = key->blend_constant_color[0];
- cc.constant_g = key->blend_constant_color[1];
- cc.constant_b = key->blend_constant_color[2];
- cc.constant_a = key->blend_constant_color[3];
-
- bo = brw_upload_cache(&brw->cache, BRW_COLOR_CALC_STATE,
- key, sizeof(*key),
- NULL, 0,
- &cc, sizeof(cc));
-
- return bo;
-}
-
-static void
-prepare_color_calc_state(struct brw_context *brw)
-{
- struct gen6_color_calc_state_key key;
-
- color_calc_state_populate_key(brw, &key);
+ /* _NEW_STENCIL */
+ cc->cc0.stencil_ref = ctx->Stencil.Ref[0];
+ cc->cc0.bf_stencil_ref = ctx->Stencil.Ref[ctx->Stencil._BackFace];
- drm_intel_bo_unreference(brw->cc.color_calc_state_bo);
- brw->cc.color_calc_state_bo = brw_search_cache(&brw->cache, BRW_COLOR_CALC_STATE,
- &key, sizeof(key),
- NULL, 0,
- NULL);
+ /* _NEW_COLOR */
+ cc->constant_r = ctx->Color.BlendColorUnclamped[0];
+ cc->constant_g = ctx->Color.BlendColorUnclamped[1];
+ cc->constant_b = ctx->Color.BlendColorUnclamped[2];
+ cc->constant_a = ctx->Color.BlendColorUnclamped[3];
- if (brw->cc.color_calc_state_bo == NULL)
- brw->cc.color_calc_state_bo = color_calc_state_create_from_key(brw, &key);
+ brw->state.dirty.cache |= CACHE_NEW_COLOR_CALC_STATE;
}
const struct brw_tracked_state gen6_color_calc_state = {
.dirty = {
.mesa = _NEW_COLOR | _NEW_STENCIL,
- .brw = 0,
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
- .prepare = prepare_color_calc_state,
+ .prepare = gen6_prepare_color_calc_state,
};
static void upload_cc_state_pointers(struct brw_context *brw)
@@ -279,20 +164,12 @@ static void upload_cc_state_pointers(struct brw_context *brw)
BEGIN_BATCH(4);
OUT_BATCH(_3DSTATE_CC_STATE_POINTERS << 16 | (4 - 2));
- OUT_RELOC(brw->cc.blend_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
- OUT_RELOC(brw->cc.depth_stencil_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
- OUT_RELOC(brw->cc.color_calc_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+ OUT_BATCH(brw->cc.blend_state_offset | 1);
+ OUT_BATCH(brw->cc.depth_stencil_state_offset | 1);
+ OUT_BATCH(brw->cc.state_offset | 1);
ADVANCE_BATCH();
}
-
-static void prepare_cc_state_pointers(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->cc.color_calc_state_bo);
- brw_add_validated_bo(brw, brw->cc.blend_state_bo);
- brw_add_validated_bo(brw, brw->cc.depth_stencil_state_bo);
-}
-
const struct brw_tracked_state gen6_cc_state_pointers = {
.dirty = {
.mesa = 0,
@@ -301,6 +178,5 @@ const struct brw_tracked_state gen6_cc_state_pointers = {
CACHE_NEW_COLOR_CALC_STATE |
CACHE_NEW_DEPTH_STENCIL_STATE)
},
- .prepare = prepare_cc_state_pointers,
.emit = upload_cc_state_pointers,
};
diff --git a/src/mesa/drivers/dri/i965/gen6_depthstencil.c b/src/mesa/drivers/dri/i965/gen6_depthstencil.c
index 96e6eade6b7..775e1ce2c9c 100644
--- a/src/mesa/drivers/dri/i965/gen6_depthstencil.c
+++ b/src/mesa/drivers/dri/i965/gen6_depthstencil.c
@@ -28,138 +28,68 @@
#include "brw_context.h"
#include "brw_state.h"
-struct brw_depth_stencil_state_key {
- GLenum depth_func;
- GLboolean depth_test, depth_write;
- GLboolean stencil, stencil_two_side;
- GLenum stencil_func[2], stencil_fail_op[2];
- GLenum stencil_pass_depth_fail_op[2], stencil_pass_depth_pass_op[2];
- GLubyte stencil_write_mask[2], stencil_test_mask[2];
-};
-
static void
-depth_stencil_state_populate_key(struct brw_context *brw,
- struct brw_depth_stencil_state_key *key)
+gen6_prepare_depth_stencil_state(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
- const unsigned back = ctx->Stencil._BackFace;
+ struct gen6_depth_stencil_state *ds;
- memset(key, 0, sizeof(*key));
+ ds = brw_state_batch(brw, sizeof(*ds), 64,
+ &brw->cc.depth_stencil_state_offset);
+ memset(ds, 0, sizeof(*ds));
/* _NEW_STENCIL */
- key->stencil = ctx->Stencil._Enabled;
- key->stencil_two_side = ctx->Stencil._TestTwoSide;
-
- if (key->stencil) {
- key->stencil_func[0] = ctx->Stencil.Function[0];
- key->stencil_fail_op[0] = ctx->Stencil.FailFunc[0];
- key->stencil_pass_depth_fail_op[0] = ctx->Stencil.ZFailFunc[0];
- key->stencil_pass_depth_pass_op[0] = ctx->Stencil.ZPassFunc[0];
- key->stencil_write_mask[0] = ctx->Stencil.WriteMask[0];
- key->stencil_test_mask[0] = ctx->Stencil.ValueMask[0];
- }
- if (key->stencil_two_side) {
- key->stencil_func[1] = ctx->Stencil.Function[back];
- key->stencil_fail_op[1] = ctx->Stencil.FailFunc[back];
- key->stencil_pass_depth_fail_op[1] = ctx->Stencil.ZFailFunc[back];
- key->stencil_pass_depth_pass_op[1] = ctx->Stencil.ZPassFunc[back];
- key->stencil_write_mask[1] = ctx->Stencil.WriteMask[back];
- key->stencil_test_mask[1] = ctx->Stencil.ValueMask[back];
- }
-
- key->depth_test = ctx->Depth.Test;
- if (key->depth_test) {
- key->depth_func = ctx->Depth.Func;
- key->depth_write = ctx->Depth.Mask;
- }
-}
-
-/**
- * Creates the state cache entry for the given DEPTH_STENCIL_STATE state key.
- */
-static drm_intel_bo *
-depth_stencil_state_create_from_key(struct brw_context *brw,
- struct brw_depth_stencil_state_key *key)
-{
- struct gen6_depth_stencil_state ds;
- drm_intel_bo *bo;
-
- memset(&ds, 0, sizeof(ds));
-
- /* _NEW_STENCIL */
- if (key->stencil) {
- ds.ds0.stencil_enable = 1;
- ds.ds0.stencil_func =
- intel_translate_compare_func(key->stencil_func[0]);
- ds.ds0.stencil_fail_op =
- intel_translate_stencil_op(key->stencil_fail_op[0]);
- ds.ds0.stencil_pass_depth_fail_op =
- intel_translate_stencil_op(key->stencil_pass_depth_fail_op[0]);
- ds.ds0.stencil_pass_depth_pass_op =
- intel_translate_stencil_op(key->stencil_pass_depth_pass_op[0]);
- ds.ds1.stencil_write_mask = key->stencil_write_mask[0];
- ds.ds1.stencil_test_mask = key->stencil_test_mask[0];
-
- if (key->stencil_two_side) {
- ds.ds0.bf_stencil_enable = 1;
- ds.ds0.bf_stencil_func =
- intel_translate_compare_func(key->stencil_func[1]);
- ds.ds0.bf_stencil_fail_op =
- intel_translate_stencil_op(key->stencil_fail_op[1]);
- ds.ds0.bf_stencil_pass_depth_fail_op =
- intel_translate_stencil_op(key->stencil_pass_depth_fail_op[1]);
- ds.ds0.bf_stencil_pass_depth_pass_op =
- intel_translate_stencil_op(key->stencil_pass_depth_pass_op[1]);
- ds.ds1.bf_stencil_write_mask = key->stencil_write_mask[1];
- ds.ds1.bf_stencil_test_mask = key->stencil_test_mask[1];
+ if (ctx->Stencil._Enabled) {
+ int back = ctx->Stencil._BackFace;
+
+ ds->ds0.stencil_enable = 1;
+ ds->ds0.stencil_func =
+ intel_translate_compare_func(ctx->Stencil.Function[0]);
+ ds->ds0.stencil_fail_op =
+ intel_translate_stencil_op(ctx->Stencil.FailFunc[0]);
+ ds->ds0.stencil_pass_depth_fail_op =
+ intel_translate_stencil_op(ctx->Stencil.ZFailFunc[0]);
+ ds->ds0.stencil_pass_depth_pass_op =
+ intel_translate_stencil_op(ctx->Stencil.ZPassFunc[0]);
+ ds->ds1.stencil_write_mask = ctx->Stencil.WriteMask[0];
+ ds->ds1.stencil_test_mask = ctx->Stencil.ValueMask[0];
+
+ if (ctx->Stencil._TestTwoSide) {
+ ds->ds0.bf_stencil_enable = 1;
+ ds->ds0.bf_stencil_func =
+ intel_translate_compare_func(ctx->Stencil.Function[back]);
+ ds->ds0.bf_stencil_fail_op =
+ intel_translate_stencil_op(ctx->Stencil.FailFunc[back]);
+ ds->ds0.bf_stencil_pass_depth_fail_op =
+ intel_translate_stencil_op(ctx->Stencil.ZFailFunc[back]);
+ ds->ds0.bf_stencil_pass_depth_pass_op =
+ intel_translate_stencil_op(ctx->Stencil.ZPassFunc[back]);
+ ds->ds1.bf_stencil_write_mask = ctx->Stencil.WriteMask[back];
+ ds->ds1.bf_stencil_test_mask = ctx->Stencil.ValueMask[back];
}
/* Not really sure about this:
*/
- if (key->stencil_write_mask[0] ||
- (key->stencil_two_side && key->stencil_write_mask[1]))
- ds.ds0.stencil_write_enable = 1;
+ if (ctx->Stencil.WriteMask[0] ||
+ (ctx->Stencil._TestTwoSide && ctx->Stencil.WriteMask[back]))
+ ds->ds0.stencil_write_enable = 1;
}
/* _NEW_DEPTH */
- if (key->depth_test) {
- ds.ds2.depth_test_enable = 1;
- ds.ds2.depth_test_func = intel_translate_compare_func(key->depth_func);
- ds.ds2.depth_write_enable = key->depth_write;
+ if (ctx->Depth.Test) {
+ ds->ds2.depth_test_enable = 1;
+ ds->ds2.depth_test_func = intel_translate_compare_func(ctx->Depth.Func);
+ ds->ds2.depth_write_enable = ctx->Depth.Mask;
}
- bo = brw_upload_cache(&brw->cache, BRW_DEPTH_STENCIL_STATE,
- key, sizeof(*key),
- NULL, 0,
- &ds, sizeof(ds));
-
- return bo;
-}
-
-static void
-prepare_depth_stencil_state(struct brw_context *brw)
-{
- struct brw_depth_stencil_state_key key;
-
- depth_stencil_state_populate_key(brw, &key);
-
- drm_intel_bo_unreference(brw->cc.depth_stencil_state_bo);
- brw->cc.depth_stencil_state_bo = brw_search_cache(&brw->cache,
- BRW_DEPTH_STENCIL_STATE,
- &key, sizeof(key),
- NULL, 0,
- NULL);
-
- if (brw->cc.depth_stencil_state_bo == NULL)
- brw->cc.depth_stencil_state_bo =
- depth_stencil_state_create_from_key(brw, &key);
+ brw->state.dirty.cache |= CACHE_NEW_DEPTH_STENCIL_STATE;
}
const struct brw_tracked_state gen6_depth_stencil_state = {
.dirty = {
.mesa = _NEW_DEPTH | _NEW_STENCIL,
- .brw = 0,
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
- .prepare = prepare_depth_stencil_state,
+ .prepare = gen6_prepare_depth_stencil_state,
};
diff --git a/src/mesa/drivers/dri/i965/gen6_sampler_state.c b/src/mesa/drivers/dri/i965/gen6_sampler_state.c
index f65c651bdff..4cdec699df6 100644
--- a/src/mesa/drivers/dri/i965/gen6_sampler_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sampler_state.c
@@ -43,27 +43,15 @@ upload_sampler_state_pointers(struct brw_context *brw)
(4 - 2));
OUT_BATCH(0); /* VS */
OUT_BATCH(0); /* GS */
- if (brw->wm.sampler_bo)
- OUT_RELOC(brw->wm.sampler_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
- else
- OUT_BATCH(0);
-
+ OUT_BATCH(brw->wm.sampler_offset);
ADVANCE_BATCH();
}
-
-static void
-prepare_sampler_state_pointers(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->wm.sampler_bo);
-}
-
const struct brw_tracked_state gen6_sampler_state = {
.dirty = {
.mesa = 0,
.brw = BRW_NEW_BATCH,
.cache = CACHE_NEW_SAMPLER
},
- .prepare = prepare_sampler_state_pointers,
.emit = upload_sampler_state_pointers,
};
diff --git a/src/mesa/drivers/dri/i965/gen6_scissor_state.c b/src/mesa/drivers/dri/i965/gen6_scissor_state.c
index 12b65826ae9..fad3ca0dd04 100644
--- a/src/mesa/drivers/dri/i965/gen6_scissor_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_scissor_state.c
@@ -31,11 +31,15 @@
#include "intel_batchbuffer.h"
static void
-prepare_scissor_state(struct brw_context *brw)
+gen6_prepare_scissor_state(struct brw_context *brw)
{
- struct gl_context *ctx = &brw->intel.ctx;
+ struct intel_context *intel = &brw->intel;
+ struct gl_context *ctx = &intel->ctx;
const GLboolean render_to_fbo = (ctx->DrawBuffer->Name != 0);
- struct gen6_scissor_rect scissor;
+ struct gen6_scissor_rect *scissor;
+ uint32_t scissor_state_offset;
+
+ scissor = brw_state_batch(brw, sizeof(*scissor), 32, &scissor_state_offset);
/* _NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT */
@@ -54,62 +58,36 @@ prepare_scissor_state(struct brw_context *brw)
* anything. Instead, just provide a min > max scissor inside
* the bounds, which produces the expected no rendering.
*/
- scissor.xmin = 1;
- scissor.xmax = 0;
- scissor.ymin = 1;
- scissor.ymax = 0;
+ scissor->xmin = 1;
+ scissor->xmax = 0;
+ scissor->ymin = 1;
+ scissor->ymax = 0;
} else if (render_to_fbo) {
/* texmemory: Y=0=bottom */
- scissor.xmin = ctx->DrawBuffer->_Xmin;
- scissor.xmax = ctx->DrawBuffer->_Xmax - 1;
- scissor.ymin = ctx->DrawBuffer->_Ymin;
- scissor.ymax = ctx->DrawBuffer->_Ymax - 1;
+ scissor->xmin = ctx->DrawBuffer->_Xmin;
+ scissor->xmax = ctx->DrawBuffer->_Xmax - 1;
+ scissor->ymin = ctx->DrawBuffer->_Ymin;
+ scissor->ymax = ctx->DrawBuffer->_Ymax - 1;
}
else {
/* memory: Y=0=top */
- scissor.xmin = ctx->DrawBuffer->_Xmin;
- scissor.xmax = ctx->DrawBuffer->_Xmax - 1;
- scissor.ymin = ctx->DrawBuffer->Height - ctx->DrawBuffer->_Ymax;
- scissor.ymax = ctx->DrawBuffer->Height - ctx->DrawBuffer->_Ymin - 1;
+ scissor->xmin = ctx->DrawBuffer->_Xmin;
+ scissor->xmax = ctx->DrawBuffer->_Xmax - 1;
+ scissor->ymin = ctx->DrawBuffer->Height - ctx->DrawBuffer->_Ymax;
+ scissor->ymax = ctx->DrawBuffer->Height - ctx->DrawBuffer->_Ymin - 1;
}
- drm_intel_bo_unreference(brw->sf.state_bo);
- brw->sf.state_bo = brw_cache_data(&brw->cache, BRW_SF_UNIT,
- &scissor, sizeof(scissor));
-}
-
-const struct brw_tracked_state gen6_scissor_state = {
- .dirty = {
- .mesa = _NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT,
- .brw = 0,
- .cache = 0,
- },
- .prepare = prepare_scissor_state,
-};
-
-static void upload_scissor_state_pointers(struct brw_context *brw)
-{
- struct intel_context *intel = &brw->intel;
-
BEGIN_BATCH(2);
OUT_BATCH(_3DSTATE_SCISSOR_STATE_POINTERS << 16 | (2 - 2));
- OUT_RELOC(brw->sf.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(scissor_state_offset);
ADVANCE_BATCH();
-
}
-
-static void prepare_scissor_state_pointers(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->sf.state_bo);
-}
-
-const struct brw_tracked_state gen6_scissor_state_pointers = {
+const struct brw_tracked_state gen6_scissor_state = {
.dirty = {
- .mesa = 0,
+ .mesa = _NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT,
.brw = BRW_NEW_BATCH,
- .cache = CACHE_NEW_SF_UNIT
+ .cache = 0,
},
- .prepare = prepare_scissor_state_pointers,
- .emit = upload_scissor_state_pointers,
+ .prepare = gen6_prepare_scissor_state,
};
diff --git a/src/mesa/drivers/dri/i965/gen6_viewport_state.c b/src/mesa/drivers/dri/i965/gen6_viewport_state.c
index cd7d209e3ea..4116bdb96de 100644
--- a/src/mesa/drivers/dri/i965/gen6_viewport_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_viewport_state.c
@@ -41,22 +41,22 @@
static void
prepare_clip_vp(struct brw_context *brw)
{
- struct brw_clipper_viewport vp;
+ struct brw_clipper_viewport *vp;
- vp.xmin = -1.0;
- vp.xmax = 1.0;
- vp.ymin = -1.0;
- vp.ymax = 1.0;
+ vp = brw_state_batch(brw, sizeof(*vp), 32, &brw->clip.vp_offset);
- drm_intel_bo_unreference(brw->clip.vp_bo);
- brw->clip.vp_bo = brw_cache_data(&brw->cache, BRW_CLIP_VP,
- &vp, sizeof(vp));
+ vp->xmin = -1.0;
+ vp->xmax = 1.0;
+ vp->ymin = -1.0;
+ vp->ymax = 1.0;
+
+ brw->state.dirty.cache |= CACHE_NEW_CLIP_VP;
}
const struct brw_tracked_state gen6_clip_vp = {
.dirty = {
- .mesa = _NEW_VIEWPORT, /* XXX: not really, but we need nonzero */
- .brw = 0,
+ .mesa = 0,
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
.prepare = prepare_clip_vp,
@@ -67,12 +67,13 @@ prepare_sf_vp(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF;
- struct brw_sf_viewport sfv;
+ struct brw_sf_viewport *sfv;
GLfloat y_scale, y_bias;
const GLboolean render_to_fbo = (ctx->DrawBuffer->Name != 0);
const GLfloat *v = ctx->Viewport._WindowMap.m;
- memset(&sfv, 0, sizeof(sfv));
+ sfv = brw_state_batch(brw, sizeof(*sfv), 32, &brw->sf.vp_offset);
+ memset(sfv, 0, sizeof(*sfv));
/* _NEW_BUFFERS */
if (render_to_fbo) {
@@ -84,34 +85,25 @@ prepare_sf_vp(struct brw_context *brw)
}
/* _NEW_VIEWPORT */
- sfv.viewport.m00 = v[MAT_SX];
- sfv.viewport.m11 = v[MAT_SY] * y_scale;
- sfv.viewport.m22 = v[MAT_SZ] * depth_scale;
- sfv.viewport.m30 = v[MAT_TX];
- sfv.viewport.m31 = v[MAT_TY] * y_scale + y_bias;
- sfv.viewport.m32 = v[MAT_TZ] * depth_scale;
+ sfv->viewport.m00 = v[MAT_SX];
+ sfv->viewport.m11 = v[MAT_SY] * y_scale;
+ sfv->viewport.m22 = v[MAT_SZ] * depth_scale;
+ sfv->viewport.m30 = v[MAT_TX];
+ sfv->viewport.m31 = v[MAT_TY] * y_scale + y_bias;
+ sfv->viewport.m32 = v[MAT_TZ] * depth_scale;
- drm_intel_bo_unreference(brw->sf.vp_bo);
- brw->sf.vp_bo = brw_cache_data(&brw->cache, BRW_SF_VP,
- &sfv, sizeof(sfv));
+ brw->state.dirty.cache |= CACHE_NEW_SF_VP;
}
const struct brw_tracked_state gen6_sf_vp = {
.dirty = {
.mesa = _NEW_VIEWPORT | _NEW_BUFFERS,
- .brw = 0,
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
.prepare = prepare_sf_vp,
};
-static void prepare_viewport_state_pointers(struct brw_context *brw)
-{
- brw_add_validated_bo(brw, brw->clip.vp_bo);
- brw_add_validated_bo(brw, brw->sf.vp_bo);
- brw_add_validated_bo(brw, brw->cc.vp_bo);
-}
-
static void upload_viewport_state_pointers(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
@@ -121,9 +113,9 @@ static void upload_viewport_state_pointers(struct brw_context *brw)
GEN6_CC_VIEWPORT_MODIFY |
GEN6_SF_VIEWPORT_MODIFY |
GEN6_CLIP_VIEWPORT_MODIFY);
- OUT_RELOC(brw->clip.vp_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
- OUT_RELOC(brw->sf.vp_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
- OUT_RELOC(brw->cc.vp_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(brw->clip.vp_offset);
+ OUT_BATCH(brw->sf.vp_offset);
+ OUT_BATCH(brw->cc.vp_offset);
ADVANCE_BATCH();
}
@@ -135,6 +127,5 @@ const struct brw_tracked_state gen6_viewport_state = {
CACHE_NEW_SF_VP |
CACHE_NEW_CC_VP)
},
- .prepare = prepare_viewport_state_pointers,
.emit = upload_viewport_state_pointers,
};
diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c
index a10cec318d6..b46368e36e2 100644
--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
@@ -34,43 +34,36 @@
#include "intel_batchbuffer.h"
static void
-upload_vs_state(struct brw_context *brw)
+gen6_prepare_vs_push_constants(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
struct gl_context *ctx = &intel->ctx;
+ /* _BRW_NEW_VERTEX_PROGRAM */
const struct brw_vertex_program *vp =
brw_vertex_program_const(brw->vertex_program);
unsigned int nr_params = brw->vs.prog_data->nr_params / 4;
- drm_intel_bo *constant_bo;
- int i;
+ if (brw->vertex_program->IsNVProgram)
+ _mesa_load_tracked_matrices(ctx);
+
+ /* Updates the ParamaterValues[i] pointers for all parameters of the
+ * basic type of PROGRAM_STATE_VAR.
+ */
+ /* XXX: Should this happen somewhere before to get our state flag set? */
+ _mesa_load_state_parameters(ctx, vp->program.Base.Parameters);
+
+ /* CACHE_NEW_VS_PROG | _NEW_TRANSFORM */
if (brw->vs.prog_data->nr_params == 0 && !ctx->Transform.ClipPlanesEnabled) {
- /* Disable the push constant buffers. */
- BEGIN_BATCH(5);
- OUT_BATCH(_3DSTATE_CONSTANT_VS << 16 | (5 - 2));
- OUT_BATCH(0);
- OUT_BATCH(0);
- OUT_BATCH(0);
- OUT_BATCH(0);
- ADVANCE_BATCH();
+ brw->vs.push_const_size = 0;
} else {
- int params_uploaded = 0, param_regs;
+ int params_uploaded = 0;
float *param;
+ int i;
- if (brw->vertex_program->IsNVProgram)
- _mesa_load_tracked_matrices(ctx);
-
- /* Updates the ParamaterValues[i] pointers for all parameters of the
- * basic type of PROGRAM_STATE_VAR.
- */
- _mesa_load_state_parameters(ctx, vp->program.Base.Parameters);
-
- constant_bo = drm_intel_bo_alloc(intel->bufmgr, "VS constant_bo",
- (MAX_CLIP_PLANES + nr_params) *
- 4 * sizeof(float),
- 4096);
- drm_intel_gem_bo_map_gtt(constant_bo);
- param = constant_bo->virtual;
+ param = brw_state_batch(brw,
+ (MAX_CLIP_PLANES + nr_params) *
+ 4 * sizeof(float),
+ 32, &brw->vs.push_const_offset);
/* This should be loaded like any other param, but it's ad-hoc
* until we redo the VS backend.
@@ -100,30 +93,56 @@ upload_vs_state(struct brw_context *brw)
if (0) {
printf("VS constant buffer:\n");
for (i = 0; i < params_uploaded; i++) {
- float *buf = (float *)constant_bo->virtual + i * 4;
+ float *buf = param + i * 4;
printf("%d: %f %f %f %f\n",
i, buf[0], buf[1], buf[2], buf[3]);
}
}
- drm_intel_gem_bo_unmap_gtt(constant_bo);
+ brw->vs.push_const_size = (params_uploaded + 1) / 2;
+ /* We can only push 32 registers of constants at a time. */
+ assert(brw->vs.push_const_size <= 32);
+ }
+}
+
+const struct brw_tracked_state gen6_vs_constants = {
+ .dirty = {
+ .mesa = _NEW_TRANSFORM | _NEW_PROGRAM_CONSTANTS,
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_VERTEX_PROGRAM),
+ .cache = 0,
+ },
+ .prepare = gen6_prepare_vs_push_constants,
+};
- param_regs = (params_uploaded + 1) / 2;
- assert(param_regs <= 32);
+static void
+upload_vs_state(struct brw_context *brw)
+{
+ struct intel_context *intel = &brw->intel;
+ if (brw->vs.push_const_size == 0) {
+ /* Disable the push constant buffers. */
+ BEGIN_BATCH(5);
+ OUT_BATCH(_3DSTATE_CONSTANT_VS << 16 | (5 - 2));
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ ADVANCE_BATCH();
+ } else {
BEGIN_BATCH(5);
OUT_BATCH(_3DSTATE_CONSTANT_VS << 16 |
GEN6_CONSTANT_BUFFER_0_ENABLE |
(5 - 2));
- OUT_RELOC(constant_bo,
- I915_GEM_DOMAIN_RENDER, 0, /* XXX: bad domain */
- param_regs - 1);
+ /* Pointer to the VS constant buffer. Covered by the set of
+ * state flags from gen6_prepare_wm_constants
+ */
+ OUT_BATCH(brw->vs.push_const_offset +
+ brw->vs.push_const_size - 1);
OUT_BATCH(0);
OUT_BATCH(0);
OUT_BATCH(0);
ADVANCE_BATCH();
-
- drm_intel_bo_unreference(constant_bo);
}
BEGIN_BATCH(6);
@@ -149,7 +168,9 @@ const struct brw_tracked_state gen6_vs_state = {
.brw = (BRW_NEW_CURBE_OFFSETS |
BRW_NEW_NR_VS_SURFACES |
BRW_NEW_URB_FENCE |
- BRW_NEW_CONTEXT),
+ BRW_NEW_CONTEXT |
+ BRW_NEW_VERTEX_PROGRAM |
+ BRW_NEW_BATCH),
.cache = CACHE_NEW_VS_PROG
},
.emit = upload_vs_state,
diff --git a/src/mesa/drivers/dri/i965/gen6_wm_state.c b/src/mesa/drivers/dri/i965/gen6_wm_state.c
index 8215cb15a9c..33b233414c6 100644
--- a/src/mesa/drivers/dri/i965/gen6_wm_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_wm_state.c
@@ -35,16 +35,13 @@
#include "intel_batchbuffer.h"
static void
-prepare_wm_constants(struct brw_context *brw)
+gen6_prepare_wm_push_constants(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
struct gl_context *ctx = &intel->ctx;
const struct brw_fragment_program *fp =
brw_fragment_program_const(brw->fragment_program);
- drm_intel_bo_unreference(brw->wm.push_const_bo);
- brw->wm.push_const_bo = NULL;
-
/* Updates the ParamaterValues[i] pointers for all parameters of the
* basic type of PROGRAM_STATE_VAR.
*/
@@ -55,13 +52,11 @@ prepare_wm_constants(struct brw_context *brw)
float *constants;
unsigned int i;
- brw->wm.push_const_bo = drm_intel_bo_alloc(intel->bufmgr,
- "WM constant_bo",
- brw->wm.prog_data->nr_params *
- sizeof(float),
- 4096);
- drm_intel_gem_bo_map_gtt(brw->wm.push_const_bo);
- constants = brw->wm.push_const_bo->virtual;
+ constants = brw_state_batch(brw,
+ brw->wm.prog_data->nr_params *
+ sizeof(float),
+ 32, &brw->wm.push_const_offset);
+
for (i = 0; i < brw->wm.prog_data->nr_params; i++) {
constants[i] = convert_param(brw->wm.prog_data->param_convert[i],
*brw->wm.prog_data->param[i]);
@@ -80,18 +75,17 @@ prepare_wm_constants(struct brw_context *brw)
printf("\n");
printf("\n");
}
-
- drm_intel_gem_bo_unmap_gtt(brw->wm.push_const_bo);
}
}
const struct brw_tracked_state gen6_wm_constants = {
.dirty = {
.mesa = _NEW_PROGRAM_CONSTANTS,
- .brw = BRW_NEW_FRAGMENT_PROGRAM,
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_FRAGMENT_PROGRAM),
.cache = 0,
},
- .prepare = prepare_wm_constants,
+ .prepare = gen6_prepare_wm_push_constants,
};
static void
@@ -118,8 +112,10 @@ upload_wm_state(struct brw_context *brw)
OUT_BATCH(_3DSTATE_CONSTANT_PS << 16 |
GEN6_CONSTANT_BUFFER_0_ENABLE |
(5 - 2));
- OUT_RELOC(brw->wm.push_const_bo,
- I915_GEM_DOMAIN_RENDER, 0, /* XXX: bad domain */
+ /* Pointer to the WM constant buffer. Covered by the set of
+ * state flags from gen6_prepare_wm_constants
+ */
+ OUT_BATCH(brw->wm.push_const_offset +
ALIGN(brw->wm.prog_data->nr_params,
brw->wm.prog_data->dispatch_width) / 8 - 1);
OUT_BATCH(0);
@@ -143,14 +139,19 @@ upload_wm_state(struct brw_context *brw)
dw2 |= (ALIGN(brw->wm.sampler_count, 4) / 4) << GEN6_WM_SAMPLER_COUNT_SHIFT;
dw4 |= (brw->wm.prog_data->first_curbe_grf <<
GEN6_WM_DISPATCH_START_GRF_SHIFT_0);
+ dw4 |= (brw->wm.prog_data->first_curbe_grf_16 <<
+ GEN6_WM_DISPATCH_START_GRF_SHIFT_2);
dw5 |= (brw->wm_max_threads - 1) << GEN6_WM_MAX_THREADS_SHIFT;
/* CACHE_NEW_WM_PROG */
- if (brw->wm.prog_data->dispatch_width == 8)
+ if (brw->wm.prog_data->dispatch_width == 8) {
dw5 |= GEN6_WM_8_DISPATCH_ENABLE;
- else
+ if (brw->wm.prog_data->prog_offset_16)
+ dw5 |= GEN6_WM_16_DISPATCH_ENABLE;
+ } else {
dw5 |= GEN6_WM_16_DISPATCH_ENABLE;
+ }
/* _NEW_LINE */
if (ctx->Line.StippleFlag)
@@ -194,7 +195,12 @@ upload_wm_state(struct brw_context *brw)
OUT_BATCH(dw5);
OUT_BATCH(dw6);
OUT_BATCH(0); /* kernel 1 pointer */
- OUT_BATCH(0); /* kernel 2 pointer */
+ if (brw->wm.prog_data->prog_offset_16) {
+ OUT_RELOC(brw->wm.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ brw->wm.prog_data->prog_offset_16);
+ } else {
+ OUT_BATCH(0); /* kernel 2 pointer */
+ }
ADVANCE_BATCH();
}
diff --git a/src/mesa/drivers/dri/intel/intel_batchbuffer.c b/src/mesa/drivers/dri/intel/intel_batchbuffer.c
index 53d6e7c6acc..377989bcc14 100644
--- a/src/mesa/drivers/dri/intel/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/intel/intel_batchbuffer.c
@@ -128,6 +128,11 @@ _intel_batchbuffer_flush(struct intel_context *intel,
if (intel->batch.used == 0)
return;
+ if (intel->first_post_swapbuffers_batch == NULL) {
+ intel->first_post_swapbuffers_batch = intel->batch.bo;
+ drm_intel_bo_reference(intel->first_post_swapbuffers_batch);
+ }
+
if (unlikely(INTEL_DEBUG & DEBUG_BATCH))
fprintf(stderr, "%s:%d: Batchbuffer flush with %db used\n", file, line,
4*intel->batch.used);
diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c
index 82d29e76712..5a96232107e 100644
--- a/src/mesa/drivers/dri/intel/intel_clear.c
+++ b/src/mesa/drivers/dri/intel/intel_clear.c
@@ -28,6 +28,7 @@
#include "main/glheader.h"
#include "main/mtypes.h"
+#include "main/condrender.h"
#include "swrast/swrast.h"
#include "drivers/common/meta.h"
@@ -88,6 +89,9 @@ intelClear(struct gl_context *ctx, GLbitfield mask)
struct intel_renderbuffer *irb;
int i;
+ if (!_mesa_check_conditional_render(ctx))
+ return;
+
if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_FRONT_RIGHT)) {
intel->front_buffer_dirty = GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 02e7f7717fc..acdf35fc71b 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -466,9 +466,11 @@ intel_prepare_render(struct intel_context *intel)
* the swap, and getting our hands on that doesn't seem worth it,
* so we just us the first batch we emitted after the last swap.
*/
- if (intel->need_throttle) {
- drmCommandNone(intel->driFd, DRM_I915_GEM_THROTTLE);
- intel->need_throttle = GL_FALSE;
+ if (intel->need_throttle && intel->first_post_swapbuffers_batch) {
+ drm_intel_bo_wait_rendering(intel->first_post_swapbuffers_batch);
+ drm_intel_bo_unreference(intel->first_post_swapbuffers_batch);
+ intel->first_post_swapbuffers_batch = NULL;
+ intel->need_throttle = GL_FALSE;
}
}
@@ -650,27 +652,23 @@ intelInitContext(struct intel_context *intel,
intel->driFd = sPriv->fd;
intel->has_xrgb_textures = GL_TRUE;
+ intel->gen = intelScreen->gen;
if (IS_GEN6(intel->intelScreen->deviceID)) {
- intel->gen = 6;
intel->needs_ff_sync = GL_TRUE;
intel->has_luminance_srgb = GL_TRUE;
} else if (IS_GEN5(intel->intelScreen->deviceID)) {
- intel->gen = 5;
intel->needs_ff_sync = GL_TRUE;
intel->has_luminance_srgb = GL_TRUE;
} else if (IS_965(intel->intelScreen->deviceID)) {
- intel->gen = 4;
if (IS_G4X(intel->intelScreen->deviceID)) {
intel->has_luminance_srgb = GL_TRUE;
intel->is_g4x = GL_TRUE;
}
} else if (IS_9XX(intel->intelScreen->deviceID)) {
- intel->gen = 3;
if (IS_945(intel->intelScreen->deviceID)) {
intel->is_945 = GL_TRUE;
}
} else {
- intel->gen = 2;
if (intel->intelScreen->deviceID == PCI_CHIP_I830_M ||
intel->intelScreen->deviceID == PCI_CHIP_845_G) {
intel->has_xrgb_textures = GL_FALSE;
@@ -718,6 +716,12 @@ intelInitContext(struct intel_context *intel,
ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT5] = GL_TRUE;
#ifndef I915
+ /* GL_ARB_texture_compression_rgtc */
+ ctx->TextureFormatSupported[MESA_FORMAT_RED_RGTC1] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_SIGNED_RED_RGTC1] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_RGTC2] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_SIGNED_RG_RGTC2] = GL_TRUE;
+
/* GL_ARB_texture_rg */
ctx->TextureFormatSupported[MESA_FORMAT_R8] = GL_TRUE;
ctx->TextureFormatSupported[MESA_FORMAT_R16] = GL_TRUE;
@@ -936,6 +940,8 @@ intelDestroyContext(__DRIcontext * driContextPriv)
intel->prim.vb = NULL;
drm_intel_bo_unreference(intel->prim.vb_bo);
intel->prim.vb_bo = NULL;
+ drm_intel_bo_unreference(intel->first_post_swapbuffers_batch);
+ intel->first_post_swapbuffers_batch = NULL;
driDestroyOptionCache(&intel->optionCache);
diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h
index c59119373da..d3a8a659caa 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -182,6 +182,7 @@ struct intel_context
bool is_blit;
} batch;
+ drm_intel_bo *first_post_swapbuffers_batch;
GLboolean need_throttle;
GLboolean no_batch_wrap;
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index e107534a4da..3fd987abd8c 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -91,6 +91,7 @@ static const struct dri_extension card_extensions[] = {
{ "GL_ARB_pixel_buffer_object", NULL },
{ "GL_ARB_point_parameters", GL_ARB_point_parameters_functions },
{ "GL_ARB_point_sprite", NULL },
+ { "GL_ARB_sampler_objects", NULL },
{ "GL_ARB_shader_objects", GL_ARB_shader_objects_functions },
{ "GL_ARB_shading_language_100", GL_VERSION_2_0_functions },
{ "GL_ARB_sync", GL_ARB_sync_functions },
@@ -176,6 +177,7 @@ static const struct dri_extension brw_extensions[] = {
{ "GL_ARB_texture_float", NULL },
#endif
{ "GL_MESA_texture_signed_rgba", NULL },
+ { "GL_ARB_texture_compression_rgtc", NULL },
{ "GL_ARB_texture_non_power_of_two", NULL },
{ "GL_ARB_texture_rg", NULL },
{ "GL_EXT_draw_buffers2", GL_EXT_draw_buffers2_functions },
@@ -189,6 +191,7 @@ static const struct dri_extension brw_extensions[] = {
{ "GL_ATI_envmap_bumpmap", GL_ATI_envmap_bumpmap_functions },
{ "GL_ATI_separate_stencil", GL_ATI_separate_stencil_functions },
{ "GL_ATI_texture_env_combine3", NULL },
+ { "GL_NV_conditional_render", NULL },
{ "GL_NV_texture_env_combine4", NULL },
{ NULL, NULL }
};
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
index 43cdd0d2bac..64c7acce1e9 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
@@ -29,6 +29,7 @@
#include "main/enums.h"
#include "main/image.h"
#include "main/colormac.h"
+#include "main/condrender.h"
#include "main/mtypes.h"
#include "main/macros.h"
#include "main/pbo.h"
@@ -68,7 +69,7 @@ static const GLubyte *map_pbo( struct gl_context *ctx,
if (!_mesa_validate_pbo_access(2, unpack, width, height, 1,
GL_COLOR_INDEX, GL_BITMAP,
- (GLvoid *) bitmap)) {
+ INT_MAX, (const GLvoid *) bitmap)) {
_mesa_error(ctx, GL_INVALID_OPERATION,"glBitmap(invalid PBO access)");
return NULL;
}
@@ -329,6 +330,9 @@ intelBitmap(struct gl_context * ctx,
{
struct intel_context *intel = intel_context(ctx);
+ if (!_mesa_check_conditional_render(ctx))
+ return;
+
if (do_blit_bitmap(ctx, x, y, width, height,
unpack, pixels))
return;
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
index a7ca780e944..e83f1bfab94 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
@@ -29,6 +29,7 @@
#include "main/image.h"
#include "main/state.h"
#include "main/mtypes.h"
+#include "main/condrender.h"
#include "drivers/common/meta.h"
#include "intel_context.h"
@@ -204,6 +205,9 @@ intelCopyPixels(struct gl_context * ctx,
{
DBG("%s\n", __FUNCTION__);
+ if (!_mesa_check_conditional_render(ctx))
+ return;
+
if (do_blit_copypixels(ctx, srcx, srcy, width, height, destx, desty, type))
return;
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 64a21a147f0..5dacbb06633 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -216,8 +216,16 @@ intel_create_image(__DRIscreen *screen,
{
__DRIimage *image;
struct intel_screen *intelScreen = screen->private;
+ uint32_t tiling;
int cpp;
+ tiling = I915_TILING_X;
+ if (use & __DRI_IMAGE_USE_CURSOR) {
+ if (width != 64 || height != 64)
+ return NULL;
+ tiling = I915_TILING_NONE;
+ }
+
image = CALLOC(sizeof *image);
if (image == NULL)
return NULL;
@@ -247,7 +255,7 @@ intel_create_image(__DRIscreen *screen,
cpp = _mesa_get_format_bytes(image->format);
image->region =
- intel_region_alloc(intelScreen, I915_TILING_NONE,
+ intel_region_alloc(intelScreen, tiling,
cpp, width, height, GL_TRUE);
if (image->region == NULL) {
FREE(image);
@@ -548,6 +556,18 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
intelScreen->deviceID = strtod(devid_override, NULL);
}
+ if (IS_GEN6(intelScreen->deviceID)) {
+ intelScreen->gen = 6;
+ } else if (IS_GEN5(intelScreen->deviceID)) {
+ intelScreen->gen = 5;
+ } else if (IS_965(intelScreen->deviceID)) {
+ intelScreen->gen = 4;
+ } else if (IS_9XX(intelScreen->deviceID)) {
+ intelScreen->gen = 3;
+ } else {
+ intelScreen->gen = 2;
+ }
+
api_mask = (1 << __DRI_API_OPENGL);
#if FEATURE_ES1
api_mask |= (1 << __DRI_API_GLES);
@@ -660,12 +680,21 @@ intelAllocateBuffer(__DRIscreen *screen,
{
struct intel_buffer *intelBuffer;
struct intel_screen *intelScreen = screen->private;
+ uint32_t tiling;
intelBuffer = CALLOC(sizeof *intelBuffer);
if (intelBuffer == NULL)
return NULL;
- intelBuffer->region = intel_region_alloc(intelScreen, I915_TILING_NONE,
+ if ((attachment == __DRI_BUFFER_DEPTH ||
+ attachment == __DRI_BUFFER_STENCIL ||
+ attachment == __DRI_BUFFER_DEPTH_STENCIL) &&
+ intelScreen->gen >= 4)
+ tiling = I915_TILING_Y;
+ else
+ tiling = I915_TILING_X;
+
+ intelBuffer->region = intel_region_alloc(intelScreen, tiling,
format / 8, width, height, GL_TRUE);
if (intelBuffer->region == NULL) {
diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h
index 0f0b5be56dc..4613c9858c4 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.h
+++ b/src/mesa/drivers/dri/intel/intel_screen.h
@@ -37,6 +37,7 @@
struct intel_screen
{
int deviceID;
+ int gen;
int logTextureGranularity;
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index 5e705c93619..27f2646ebf5 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -1,5 +1,6 @@
#include "main/mtypes.h"
#include "main/macros.h"
+#include "main/samplerobj.h"
#include "intel_context.h"
#include "intel_mipmap_tree.h"
@@ -14,11 +15,13 @@
*/
static void
intel_update_max_level(struct intel_context *intel,
- struct intel_texture_object *intelObj)
+ struct intel_texture_object *intelObj,
+ struct gl_sampler_object *sampler)
{
struct gl_texture_object *tObj = &intelObj->base;
- if (tObj->Sampler.MinFilter == GL_NEAREST || tObj->Sampler.MinFilter == GL_LINEAR) {
+ if (sampler->MinFilter == GL_NEAREST ||
+ sampler->MinFilter == GL_LINEAR) {
intelObj->_MaxLevel = tObj->BaseLevel;
} else {
intelObj->_MaxLevel = tObj->_MaxLevel;
@@ -70,8 +73,10 @@ copy_image_data_to_tree(struct intel_context *intel,
GLuint
intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
{
+ struct gl_context *ctx = &intel->ctx;
struct gl_texture_object *tObj = intel->ctx.Texture.Unit[unit]._Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
+ struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
int comp_byte = 0;
int cpp;
GLuint face, i;
@@ -84,7 +89,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
/* What levels must the tree include at a minimum?
*/
- intel_update_max_level(intel, intelObj);
+ intel_update_max_level(intel, intelObj, sampler);
firstImage = intel_texture_image(tObj->Image[0][tObj->BaseLevel]);
/* Fallback case:
diff --git a/src/mesa/drivers/dri/r300/compiler/Makefile b/src/mesa/drivers/dri/r300/compiler/Makefile
index 51b896ae91f..5c9f57b4eac 100644
--- a/src/mesa/drivers/dri/r300/compiler/Makefile
+++ b/src/mesa/drivers/dri/r300/compiler/Makefile
@@ -20,12 +20,15 @@ C_SOURCES = \
radeon_pair_translate.c \
radeon_pair_schedule.c \
radeon_pair_regalloc.c \
+ radeon_pair_dead_sources.c \
radeon_dataflow.c \
radeon_dataflow_deadcode.c \
radeon_dataflow_swizzles.c \
+ radeon_list.c \
radeon_optimize.c \
radeon_remove_constants.c \
radeon_rename_regs.c \
+ radeon_variable.c \
r3xx_fragprog.c \
r300_fragprog.c \
r300_fragprog_swizzle.c \
@@ -48,6 +51,7 @@ INCLUDES = \
-I. \
-I$(TOP)/include \
-I$(TOP)/src/mesa \
+ -I$(TOP)/src/glsl \
##### TARGETS #####
diff --git a/src/mesa/drivers/dri/r300/compiler/SConscript b/src/mesa/drivers/dri/r300/compiler/SConscript
index 2b4bce1c08c..9931537492e 100755
--- a/src/mesa/drivers/dri/r300/compiler/SConscript
+++ b/src/mesa/drivers/dri/r300/compiler/SConscript
@@ -3,6 +3,7 @@ Import('*')
env = env.Clone()
env.Append(CPPPATH = '#/include')
env.Append(CPPPATH = '#/src/mesa')
+env.Append(CPPPATH = '#/src/glsl')
# temporary fix
env['CFLAGS'] = str(env['CFLAGS']).replace('-Werror=declaration-after-statement', '')
@@ -22,6 +23,7 @@ r300compiler = env.ConvenienceLibrary(
'radeon_pair_translate.c',
'radeon_pair_schedule.c',
'radeon_pair_regalloc.c',
+ 'radeon_pair_dead_sources.c',
'radeon_optimize.c',
'radeon_remove_constants.c',
'radeon_rename_regs.c',
@@ -30,6 +32,8 @@ r300compiler = env.ConvenienceLibrary(
'radeon_dataflow.c',
'radeon_dataflow_deadcode.c',
'radeon_dataflow_swizzles.c',
+ 'radeon_variable.c',
+ 'radeon_list.c',
'r3xx_fragprog.c',
'r300_fragprog.c',
'r300_fragprog_swizzle.c',
diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c
index 8b73409136f..e6fd1fde62d 100644
--- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c
+++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c
@@ -93,7 +93,7 @@ static unsigned int use_source(struct r300_fragment_program_code* code, struct r
if (src.File == RC_FILE_CONSTANT) {
return src.Index | (1 << 5);
- } else if (src.File == RC_FILE_TEMPORARY) {
+ } else if (src.File == RC_FILE_TEMPORARY || src.File == RC_FILE_INPUT) {
use_temporary(code, src.Index);
return src.Index & 0x1f;
}
diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c
index 5223aaa71a4..b7bca8c0cfa 100644
--- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c
+++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c
@@ -87,6 +87,18 @@ static const struct swizzle_data* lookup_native_swizzle(unsigned int swizzle)
return 0;
}
+/**
+ * Determines if the given swizzle is valid for r300/r400. In most situations
+ * it is better to use r300_swizzle_is_native() which can be accesed via
+ * struct radeon_compiler *c; c->SwizzleCaps->IsNative().
+ */
+int r300_swizzle_is_native_basic(unsigned int swizzle)
+{
+ if(lookup_native_swizzle(swizzle))
+ return 1;
+ else
+ return 0;
+}
/**
* Check whether the given instruction supports the swizzle and negate
@@ -140,7 +152,6 @@ static void r300_swizzle_split(
split->NumPhases = 0;
while(mask) {
- const struct swizzle_data *best_swizzle = 0;
unsigned int best_matchcount = 0;
unsigned int best_matchmask = 0;
int i, comp;
@@ -167,7 +178,6 @@ static void r300_swizzle_split(
}
}
if (matchcount > best_matchcount) {
- best_swizzle = sd;
best_matchcount = matchcount;
best_matchmask = matchmask;
if (matchmask == (mask & RC_MASK_XYZ))
diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h
index 118476af132..f2635be140d 100644
--- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h
+++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.h
@@ -34,5 +34,6 @@ extern struct rc_swizzle_caps r300_swizzle_caps;
unsigned int r300FPTranslateRGBSwizzle(unsigned int src, unsigned int swizzle);
unsigned int r300FPTranslateAlphaSwizzle(unsigned int src, unsigned int swizzle);
+int r300_swizzle_is_native_basic(unsigned int swizzle);
#endif /* __R300_FRAGPROG_SWIZZLE_H_ */
diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
index 9286733635f..e2441e97d87 100644
--- a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
+++ b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
@@ -148,8 +148,8 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
{"register rename", 1, !is_r500, rc_rename_regs, NULL},
{"pair translate", 1, 1, rc_pair_translate, NULL},
{"pair scheduling", 1, 1, rc_pair_schedule, NULL},
- {"register allocation", 1, opt, rc_pair_regalloc, NULL},
- {"dumb register allocation", 1, !opt, rc_pair_regalloc_inputs_only, NULL},
+ {"dead sources", 1, 1, rc_pair_remove_dead_sources, NULL},
+ {"register allocation", 1, 1, rc_pair_regalloc, &opt},
{"final code validation", 0, 1, rc_validate_final_shader, NULL},
{"machine code generation", 0, is_r500, r500BuildFragmentProgramHwCode, NULL},
{"machine code generation", 0, !is_r500, r300BuildFragmentProgramHwCode, NULL},
diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c
index 140eeed3de3..5e0be6b8881 100644
--- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c
+++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c
@@ -70,6 +70,8 @@ static int r500_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg)
if (opcode == RC_OPCODE_TEX ||
opcode == RC_OPCODE_TXB ||
opcode == RC_OPCODE_TXP ||
+ opcode == RC_OPCODE_TXD ||
+ opcode == RC_OPCODE_TXL ||
opcode == RC_OPCODE_KIL) {
if (reg.Abs)
return 0;
diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
index c7f79bc53c7..c30cd753d15 100644
--- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
+++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
@@ -207,7 +207,7 @@ static unsigned int use_source(struct r500_fragment_program_code* code, struct r
if (src.File == RC_FILE_CONSTANT) {
return src.Index | R500_RGB_ADDR0_CONST;
- } else if (src.File == RC_FILE_TEMPORARY) {
+ } else if (src.File == RC_FILE_TEMPORARY || src.File == RC_FILE_INPUT) {
use_temporary(code, src.Index);
return src.Index;
}
@@ -396,6 +396,12 @@ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_inst
case RC_OPCODE_TXP:
code->inst[ip].inst1 |= R500_TEX_INST_PROJ;
break;
+ case RC_OPCODE_TXD:
+ code->inst[ip].inst1 |= R500_TEX_INST_DXDY;
+ break;
+ case RC_OPCODE_TXL:
+ code->inst[ip].inst1 |= R500_TEX_INST_LOD;
+ break;
default:
error("emit_tex can't handle opcode %s\n", rc_get_opcode_info(inst->Opcode)->Name);
}
@@ -407,8 +413,23 @@ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_inst
code->inst[ip].inst2 = R500_TEX_SRC_ADDR(inst->SrcReg[0].Index)
| (translate_strq_swizzle(inst->SrcReg[0].Swizzle) << 8)
| R500_TEX_DST_ADDR(inst->DstReg.Index)
- | R500_TEX_DST_R_SWIZ_R | R500_TEX_DST_G_SWIZ_G
- | R500_TEX_DST_B_SWIZ_B | R500_TEX_DST_A_SWIZ_A;
+ | (GET_SWZ(inst->TexSwizzle, 0) << 24)
+ | (GET_SWZ(inst->TexSwizzle, 1) << 26)
+ | (GET_SWZ(inst->TexSwizzle, 2) << 28)
+ | (GET_SWZ(inst->TexSwizzle, 3) << 30)
+ ;
+
+ if (inst->Opcode == RC_OPCODE_TXD) {
+ use_temporary(code, inst->SrcReg[1].Index);
+ use_temporary(code, inst->SrcReg[2].Index);
+
+ /* DX and DY parameters are specified in a separate register. */
+ code->inst[ip].inst3 =
+ R500_DX_ADDR(inst->SrcReg[1].Index) |
+ (translate_strq_swizzle(inst->SrcReg[1].Swizzle) << 8) |
+ R500_DY_ADDR(inst->SrcReg[2].Index) |
+ (translate_strq_swizzle(inst->SrcReg[2].Swizzle) << 24);
+ }
return 1;
}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c
index 15ec4418cb8..b077e7b7d65 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c
@@ -124,6 +124,165 @@ unsigned swizzle_mask(unsigned swizzle, unsigned mask)
return ret;
}
+static unsigned int srcs_need_rewrite(const struct rc_opcode_info * info)
+{
+ if (info->HasTexture) {
+ return 0;
+ }
+ switch (info->Opcode) {
+ case RC_OPCODE_DP2:
+ case RC_OPCODE_DP3:
+ case RC_OPCODE_DP4:
+ case RC_OPCODE_DDX:
+ case RC_OPCODE_DDY:
+ return 0;
+ default:
+ return 1;
+ }
+}
+
+/**
+ * @return A swizzle the results from converting old_swizzle using
+ * conversion_swizzle
+ */
+unsigned int rc_adjust_channels(
+ unsigned int old_swizzle,
+ unsigned int conversion_swizzle)
+{
+ unsigned int i;
+ unsigned int new_swizzle = rc_init_swizzle(RC_SWIZZLE_UNUSED, 0);
+ for (i = 0; i < 4; i++) {
+ unsigned int new_chan = get_swz(conversion_swizzle, i);
+ if (new_chan == RC_SWIZZLE_UNUSED) {
+ continue;
+ }
+ SET_SWZ(new_swizzle, new_chan, GET_SWZ(old_swizzle, i));
+ }
+ return new_swizzle;
+}
+
+static unsigned int rewrite_writemask(
+ unsigned int old_mask,
+ unsigned int conversion_swizzle)
+{
+ unsigned int new_mask = 0;
+ unsigned int i;
+
+ for (i = 0; i < 4; i++) {
+ if (!GET_BIT(old_mask, i)
+ || GET_SWZ(conversion_swizzle, i) == RC_SWIZZLE_UNUSED) {
+ continue;
+ }
+ new_mask |= (1 << GET_SWZ(conversion_swizzle, i));
+ }
+
+ return new_mask;
+}
+
+/**
+ * This function rewrites the writemask of sub and adjusts the swizzles
+ * of all its source registers based on the conversion_swizzle.
+ * conversion_swizzle represents a mapping of the old writemask to the
+ * new writemask. For a detailed description of how conversion swizzles
+ * work see rc_rewrite_swizzle().
+ */
+void rc_pair_rewrite_writemask(
+ struct rc_pair_sub_instruction * sub,
+ unsigned int conversion_swizzle)
+{
+ const struct rc_opcode_info * info = rc_get_opcode_info(sub->Opcode);
+ unsigned int i;
+
+ sub->WriteMask = rewrite_writemask(sub->WriteMask, conversion_swizzle);
+
+ if (!srcs_need_rewrite(info)) {
+ return ;
+ }
+
+ for (i = 0; i < info->NumSrcRegs; i++) {
+ sub->Arg[i].Swizzle =
+ rc_adjust_channels(sub->Arg[i].Swizzle,
+ conversion_swizzle);
+ }
+}
+
+static void normal_rewrite_writemask_cb(
+ void * userdata,
+ struct rc_instruction * inst,
+ struct rc_src_register * src)
+{
+ unsigned int * new_mask = (unsigned int *)userdata;
+ src->Swizzle = rc_adjust_channels(src->Swizzle, *new_mask);
+}
+
+/**
+ * This function is the same as rc_pair_rewrite_writemask() except it
+ * operates on normal instructions.
+ */
+void rc_normal_rewrite_writemask(
+ struct rc_instruction * inst,
+ unsigned int conversion_swizzle)
+{
+ unsigned int new_mask;
+ struct rc_sub_instruction * sub = &inst->U.I;
+ const struct rc_opcode_info * info = rc_get_opcode_info(sub->Opcode);
+ sub->DstReg.WriteMask =
+ rewrite_writemask(sub->DstReg.WriteMask, conversion_swizzle);
+
+ if (info->HasTexture) {
+ unsigned int i;
+ assert(sub->TexSwizzle == RC_SWIZZLE_XYZW);
+ for (i = 0; i < 4; i++) {
+ unsigned int swz = GET_SWZ(conversion_swizzle, i);
+ if (swz > 3)
+ continue;
+ SET_SWZ(sub->TexSwizzle, swz, i);
+ }
+ }
+
+ if (!srcs_need_rewrite(info)) {
+ return;
+ }
+
+ new_mask = sub->DstReg.WriteMask;
+ rc_for_all_reads_src(inst, normal_rewrite_writemask_cb, &new_mask);
+}
+
+/**
+ * This function replaces each value 'swz' in swizzle with the value of
+ * GET_SWZ(conversion_swizzle, swz). So, if you want to change all the X's
+ * in swizzle to Y, then conversion_swizzle should be Y___ (0xff9). If you want
+ * to change all the Y's in swizzle to X, then conversion_swizzle should be
+ * _X__ (0xfc7). If you want to change the Y's to X and the X's to Y, then
+ * conversion swizzle should be YX__ (0xfc1).
+ * @param swizzle The swizzle to change
+ * @param conversion_swizzle Describes the conversion to perform on the swizzle
+ * @return A converted swizzle
+ */
+unsigned int rc_rewrite_swizzle(
+ unsigned int swizzle,
+ unsigned int conversion_swizzle)
+{
+ unsigned int chan;
+ unsigned int out_swizzle = swizzle;
+
+ for (chan = 0; chan < 4; chan++) {
+ unsigned int swz = GET_SWZ(swizzle, chan);
+ unsigned int new_swz;
+ if (swz > 3) {
+ SET_SWZ(out_swizzle, chan, swz);
+ } else {
+ new_swz = GET_SWZ(conversion_swizzle, swz);
+ if (new_swz != RC_SWIZZLE_UNUSED) {
+ SET_SWZ(out_swizzle, chan, new_swz);
+ } else {
+ SET_SWZ(out_swizzle, chan, swz);
+ }
+ }
+ }
+ return out_swizzle;
+}
+
/**
* Left multiplication of a register with a swizzle
*/
@@ -281,3 +440,197 @@ unsigned int rc_inst_can_use_presub(
return 1;
}
+struct max_data {
+ unsigned int Max;
+ unsigned int HasFileType;
+ rc_register_file File;
+};
+
+static void max_callback(
+ void * userdata,
+ struct rc_instruction * inst,
+ rc_register_file file,
+ unsigned int index,
+ unsigned int mask)
+{
+ struct max_data * d = (struct max_data*)userdata;
+ if (file == d->File && (!d->HasFileType || index > d->Max)) {
+ d->Max = index;
+ d->HasFileType = 1;
+ }
+}
+
+/**
+ * @return The maximum index of the specified register file used by the
+ * program.
+ */
+int rc_get_max_index(
+ struct radeon_compiler * c,
+ rc_register_file file)
+{
+ struct max_data data;
+ data.Max = 0;
+ data.HasFileType = 0;
+ data.File = file;
+ struct rc_instruction * inst;
+ for (inst = c->Program.Instructions.Next;
+ inst != &c->Program.Instructions;
+ inst = inst->Next) {
+ rc_for_all_reads_mask(inst, max_callback, &data);
+ rc_for_all_writes_mask(inst, max_callback, &data);
+ }
+ if (!data.HasFileType) {
+ return -1;
+ } else {
+ return data.Max;
+ }
+}
+
+static unsigned int get_source_readmask(
+ struct rc_pair_sub_instruction * sub,
+ unsigned int source,
+ unsigned int src_type)
+{
+ unsigned int i;
+ unsigned int readmask = 0;
+ const struct rc_opcode_info * info = rc_get_opcode_info(sub->Opcode);
+
+ for (i = 0; i < info->NumSrcRegs; i++) {
+ if (sub->Arg[i].Source != source
+ || src_type != rc_source_type_swz(sub->Arg[i].Swizzle)) {
+ continue;
+ }
+ readmask |= rc_swizzle_to_writemask(sub->Arg[i].Swizzle);
+ }
+ return readmask;
+}
+
+/**
+ * This function attempts to remove a source from a pair instructions.
+ * @param inst
+ * @param src_type RC_SOURCE_RGB, RC_SOURCE_ALPHA, or both bitwise or'd
+ * @param source The index of the source to remove
+ * @param new_readmask A mask representing the components that are read by
+ * the source that is intended to replace the one you are removing. If you
+ * want to remove a source only and not replace it, this parameter should be
+ * zero.
+ * @return 1 if the source was successfully removed, 0 if it was not
+ */
+unsigned int rc_pair_remove_src(
+ struct rc_instruction * inst,
+ unsigned int src_type,
+ unsigned int source,
+ unsigned int new_readmask)
+{
+ unsigned int readmask = 0;
+
+ readmask |= get_source_readmask(&inst->U.P.RGB, source, src_type);
+ readmask |= get_source_readmask(&inst->U.P.Alpha, source, src_type);
+
+ if ((new_readmask & readmask) != readmask)
+ return 0;
+
+ if (src_type & RC_SOURCE_RGB) {
+ memset(&inst->U.P.RGB.Src[source], 0,
+ sizeof(struct rc_pair_instruction_source));
+ }
+
+ if (src_type & RC_SOURCE_ALPHA) {
+ memset(&inst->U.P.Alpha.Src[source], 0,
+ sizeof(struct rc_pair_instruction_source));
+ }
+
+ return 1;
+}
+
+/**
+ * @return RC_OPCODE_NOOP if inst is not a flow control instruction.
+ * @return The opcode of inst if it is a flow control instruction.
+ */
+rc_opcode rc_get_flow_control_inst(struct rc_instruction * inst)
+{
+ const struct rc_opcode_info * info;
+ if (inst->Type == RC_INSTRUCTION_NORMAL) {
+ info = rc_get_opcode_info(inst->U.I.Opcode);
+ } else {
+ info = rc_get_opcode_info(inst->U.P.RGB.Opcode);
+ /*A flow control instruction shouldn't have an alpha
+ * instruction.*/
+ assert(!info->IsFlowControl ||
+ inst->U.P.Alpha.Opcode == RC_OPCODE_NOP);
+ }
+
+ if (info->IsFlowControl)
+ return info->Opcode;
+ else
+ return RC_OPCODE_NOP;
+
+}
+
+/**
+ * @return The BGNLOOP instruction that starts the loop ended by endloop.
+ */
+struct rc_instruction * rc_match_endloop(struct rc_instruction * endloop)
+{
+ unsigned int endloop_count = 0;
+ struct rc_instruction * inst;
+ for (inst = endloop->Prev; inst != endloop; inst = inst->Prev) {
+ rc_opcode op = rc_get_flow_control_inst(inst);
+ if (op == RC_OPCODE_ENDLOOP) {
+ endloop_count++;
+ } else if (op == RC_OPCODE_BGNLOOP) {
+ if (endloop_count == 0) {
+ return inst;
+ } else {
+ endloop_count--;
+ }
+ }
+ }
+ return NULL;
+}
+
+/**
+ * @return The ENDLOOP instruction that ends the loop started by bgnloop.
+ */
+struct rc_instruction * rc_match_bgnloop(struct rc_instruction * bgnloop)
+{
+ unsigned int bgnloop_count = 0;
+ struct rc_instruction * inst;
+ for (inst = bgnloop->Next; inst!=bgnloop; inst = inst->Next) {
+ rc_opcode op = rc_get_flow_control_inst(inst);
+ if (op == RC_OPCODE_BGNLOOP) {
+ bgnloop_count++;
+ } else if (op == RC_OPCODE_ENDLOOP) {
+ if (bgnloop_count == 0) {
+ return inst;
+ } else {
+ bgnloop_count--;
+ }
+ }
+ }
+ return NULL;
+}
+
+/**
+ * @return A conversion swizzle for converting from old_mask->new_mask
+ */
+unsigned int rc_make_conversion_swizzle(
+ unsigned int old_mask,
+ unsigned int new_mask)
+{
+ unsigned int conversion_swizzle = rc_init_swizzle(RC_SWIZZLE_UNUSED, 0);
+ unsigned int old_idx;
+ unsigned int new_idx = 0;
+ for (old_idx = 0; old_idx < 4; old_idx++) {
+ if (!GET_BIT(old_mask, old_idx))
+ continue;
+ for ( ; new_idx < 4; new_idx++) {
+ if (GET_BIT(new_mask, new_idx)) {
+ SET_SWZ(conversion_swizzle, old_idx, new_idx);
+ new_idx++;
+ break;
+ }
+ }
+ }
+ return conversion_swizzle;
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h
index dd0f6c66156..2af289dfabd 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h
@@ -3,7 +3,12 @@
#ifndef RADEON_PROGRAM_UTIL_H
#define RADEON_PROGRAM_UTIL_H
+#include "radeon_opcodes.h"
+
+struct radeon_compiler;
struct rc_instruction;
+struct rc_pair_instruction;
+struct rc_pair_sub_instruction;
struct rc_src_register;
unsigned int rc_swizzle_to_writemask(unsigned int swz);
@@ -22,6 +27,22 @@ rc_swizzle rc_mask_to_swizzle(unsigned int mask);
unsigned swizzle_mask(unsigned swizzle, unsigned mask);
+unsigned int rc_adjust_channels(
+ unsigned int old_swizzle,
+ unsigned int conversion_swizzle);
+
+void rc_pair_rewrite_writemask(
+ struct rc_pair_sub_instruction * sub,
+ unsigned int conversion_swizzle);
+
+void rc_normal_rewrite_writemask(
+ struct rc_instruction * inst,
+ unsigned int conversion_swizzle);
+
+unsigned int rc_rewrite_swizzle(
+ unsigned int swizzle,
+ unsigned int new_mask);
+
struct rc_src_register lmul_swizzle(unsigned int swizzle, struct rc_src_register srcreg);
void reset_srcreg(struct rc_src_register* reg);
@@ -46,4 +67,23 @@ unsigned int rc_inst_can_use_presub(
struct rc_src_register presub_src0,
struct rc_src_register presub_src1);
+int rc_get_max_index(
+ struct radeon_compiler * c,
+ rc_register_file file);
+
+unsigned int rc_pair_remove_src(
+ struct rc_instruction * inst,
+ unsigned int src_type,
+ unsigned int source,
+ unsigned int new_readmask);
+
+rc_opcode rc_get_flow_control_inst(struct rc_instruction * inst);
+
+struct rc_instruction * rc_match_endloop(struct rc_instruction * endloop);
+struct rc_instruction * rc_match_bgnloop(struct rc_instruction * bgnloop);
+
+unsigned int rc_make_conversion_swizzle(
+ unsigned int old_mask,
+ unsigned int new_mask);
+
#endif /* RADEON_PROGRAM_UTIL_H */
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
index d1a7eab50f7..b0deb751be0 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
@@ -151,6 +151,7 @@ static void pair_sub_for_all_args(
unsigned int presub_src_count;
struct rc_pair_instruction_source * src_array;
unsigned int j;
+
if (src_type & RC_SOURCE_RGB) {
presub_type = fullinst->
U.P.RGB.Src[RC_PAIR_PRESUB_SRC].Index;
@@ -446,30 +447,6 @@ void rc_remap_registers(struct rc_instruction * inst, rc_remap_register_fn cb, v
remap_pair_instruction(inst, cb, userdata);
}
-/**
- * @return RC_OPCODE_NOOP if inst is not a flow control instruction.
- * @return The opcode of inst if it is a flow control instruction.
- */
-static rc_opcode get_flow_control_inst(struct rc_instruction * inst)
-{
- const struct rc_opcode_info * info;
- if (inst->Type == RC_INSTRUCTION_NORMAL) {
- info = rc_get_opcode_info(inst->U.I.Opcode);
- } else {
- info = rc_get_opcode_info(inst->U.P.RGB.Opcode);
- /*A flow control instruction shouldn't have an alpha
- * instruction.*/
- assert(!info->IsFlowControl ||
- inst->U.P.Alpha.Opcode == RC_OPCODE_NOP);
- }
-
- if (info->IsFlowControl)
- return info->Opcode;
- else
- return RC_OPCODE_NOP;
-
-}
-
struct branch_write_mask {
unsigned int IfWriteMask:4;
unsigned int ElseWriteMask:4;
@@ -495,12 +472,11 @@ struct get_readers_callback_data {
struct branch_write_mask BranchMasks[R500_PFS_MAX_BRANCH_DEPTH_FULL + 1];
};
-static void add_reader(
+static struct rc_reader * add_reader(
struct memory_pool * pool,
struct rc_reader_data * data,
struct rc_instruction * inst,
- unsigned int mask,
- void * arg_or_src)
+ unsigned int mask)
{
struct rc_reader * new;
memory_pool_array_reserve(pool, struct rc_reader, data->Readers,
@@ -508,11 +484,32 @@ static void add_reader(
new = &data->Readers[data->ReaderCount++];
new->Inst = inst;
new->WriteMask = mask;
- if (inst->Type == RC_INSTRUCTION_NORMAL) {
- new->U.Src = arg_or_src;
- } else {
- new->U.Arg = arg_or_src;
- }
+ return new;
+}
+
+static void add_reader_normal(
+ struct memory_pool * pool,
+ struct rc_reader_data * data,
+ struct rc_instruction * inst,
+ unsigned int mask,
+ struct rc_src_register * src)
+{
+ struct rc_reader * new = add_reader(pool, data, inst, mask);
+ new->U.I.Src = src;
+}
+
+
+static void add_reader_pair(
+ struct memory_pool * pool,
+ struct rc_reader_data * data,
+ struct rc_instruction * inst,
+ unsigned int mask,
+ struct rc_pair_instruction_arg * arg,
+ struct rc_pair_instruction_source * src)
+{
+ struct rc_reader * new = add_reader(pool, data, inst, mask);
+ new->U.P.Src = src;
+ new->U.P.Arg = arg;
}
static unsigned int get_readers_read_callback(
@@ -544,6 +541,11 @@ static unsigned int get_readers_read_callback(
return shared_mask;
}
+ if (cb_data->ReaderData->LoopDepth > 0) {
+ cb_data->ReaderData->AbortOnWrite |=
+ (read_mask & cb_data->AliveWriteMask);
+ }
+
/* XXX The behavior in this case should be configurable. */
if ((read_mask & cb_data->AliveWriteMask) != read_mask) {
cb_data->ReaderData->Abort = 1;
@@ -572,10 +574,10 @@ static void get_readers_pair_read_callback(
if (d->ReadPairCB)
d->ReadPairCB(d->ReaderData, inst, arg, src);
- if (d->ReaderData->Abort)
+ if (d->ReaderData->ExitOnAbort && d->ReaderData->Abort)
return;
- add_reader(&d->C->Pool, d->ReaderData, inst, shared_mask, arg);
+ add_reader_pair(&d->C->Pool, d->ReaderData, inst, shared_mask, arg, src);
}
/**
@@ -600,10 +602,10 @@ static void get_readers_normal_read_callback(
if (d->ReadNormalCB)
d->ReadNormalCB(d->ReaderData, inst, src);
- if (d->ReaderData->Abort)
+ if (d->ReaderData->ExitOnAbort && d->ReaderData->Abort)
return;
- add_reader(&d->C->Pool, d->ReaderData, inst, shared_mask, src);
+ add_reader_normal(&d->C->Pool, d->ReaderData, inst, shared_mask, src);
}
/**
@@ -624,12 +626,57 @@ static void get_readers_write_callback(
unsigned int shared_mask = mask & d->DstMask;
d->ReaderData->AbortOnRead &= ~shared_mask;
d->AliveWriteMask &= ~shared_mask;
+ if (d->ReaderData->AbortOnWrite & shared_mask) {
+ d->ReaderData->Abort = 1;
+ }
}
if(d->WriteCB)
d->WriteCB(d->ReaderData, inst, file, index, mask);
}
+static void push_branch_mask(
+ struct get_readers_callback_data * d,
+ unsigned int * branch_depth)
+{
+ (*branch_depth)++;
+ if (*branch_depth > R500_PFS_MAX_BRANCH_DEPTH_FULL) {
+ d->ReaderData->Abort = 1;
+ return;
+ }
+ d->BranchMasks[*branch_depth].IfWriteMask =
+ d->AliveWriteMask;
+}
+
+static void pop_branch_mask(
+ struct get_readers_callback_data * d,
+ unsigned int * branch_depth)
+{
+ struct branch_write_mask * masks = &d->BranchMasks[*branch_depth];
+
+ if (masks->HasElse) {
+ /* Abort on read for components that were written in the IF
+ * block. */
+ d->ReaderData->AbortOnRead |=
+ masks->IfWriteMask & ~masks->ElseWriteMask;
+ /* Abort on read for components that were written in the ELSE
+ * block. */
+ d->ReaderData->AbortOnRead |=
+ masks->ElseWriteMask & ~d->AliveWriteMask;
+
+ d->AliveWriteMask = masks->IfWriteMask
+ ^ ((masks->IfWriteMask ^ masks->ElseWriteMask)
+ & (masks->IfWriteMask ^ d->AliveWriteMask));
+ } else {
+ d->ReaderData->AbortOnRead |=
+ masks->IfWriteMask & ~d->AliveWriteMask;
+ d->AliveWriteMask = masks->IfWriteMask;
+
+ }
+ memset(masks, 0, sizeof(struct branch_write_mask));
+ (*branch_depth)--;
+}
+
static void get_readers_for_single_write(
void * userdata,
struct rc_instruction * writer,
@@ -639,10 +686,14 @@ static void get_readers_for_single_write(
{
struct rc_instruction * tmp;
unsigned int branch_depth = 0;
+ struct rc_instruction * endloop = NULL;
+ unsigned int abort_on_read_at_endloop;
struct get_readers_callback_data * d = userdata;
d->ReaderData->Writer = writer;
d->ReaderData->AbortOnRead = 0;
+ d->ReaderData->AbortOnWrite = 0;
+ d->ReaderData->LoopDepth = 0;
d->ReaderData->InElse = 0;
d->DstFile = dst_file;
d->DstIndex = dst_index;
@@ -655,32 +706,43 @@ static void get_readers_for_single_write(
for(tmp = writer->Next; tmp != &d->C->Program.Instructions;
tmp = tmp->Next){
- rc_opcode opcode = get_flow_control_inst(tmp);
+ rc_opcode opcode = rc_get_flow_control_inst(tmp);
switch(opcode) {
case RC_OPCODE_BGNLOOP:
- /* XXX We can do better when we see a BGNLOOP if we
- * add a flag called AbortOnWrite to struct
- * rc_reader_data and leave it set until the next
- * ENDLOOP. */
+ d->ReaderData->LoopDepth++;
+ push_branch_mask(d, &branch_depth);
+ break;
case RC_OPCODE_ENDLOOP:
- /* XXX We can do better when we see an ENDLOOP by
- * searching backwards from writer and looking for
- * readers of writer's destination index. If we find a
- * reader before we get to the BGNLOOP, we must abort
- * unless there is another writer between that reader
- * and the BGNLOOP. */
- case RC_OPCODE_BRK:
- case RC_OPCODE_CONT:
- d->ReaderData->Abort = 1;
- return;
- case RC_OPCODE_IF:
- branch_depth++;
- if (branch_depth > R500_PFS_MAX_BRANCH_DEPTH_FULL) {
- d->ReaderData->Abort = 1;
- return;
+ if (d->ReaderData->LoopDepth > 0) {
+ d->ReaderData->LoopDepth--;
+ if (d->ReaderData->LoopDepth == 0) {
+ d->ReaderData->AbortOnWrite = 0;
+ }
+ pop_branch_mask(d, &branch_depth);
+ } else {
+ /* Here we have reached an ENDLOOP without
+ * seeing its BGNLOOP. These means that
+ * the writer was written inside of a loop,
+ * so it could have readers that are above it
+ * (i.e. they have a lower IP). To find these
+ * readers we jump to the BGNLOOP instruction
+ * and check each instruction until we get
+ * back to the writer.
+ */
+ endloop = tmp;
+ tmp = rc_match_endloop(tmp);
+ if (!tmp) {
+ rc_error(d->C, "Failed to match endloop.\n");
+ d->ReaderData->Abort = 1;
+ return;
+ }
+ abort_on_read_at_endloop = d->ReaderData->AbortOnRead;
+ d->ReaderData->AbortOnRead |= d->AliveWriteMask;
+ continue;
}
- d->BranchMasks[branch_depth].IfWriteMask =
- d->AliveWriteMask;
+ break;
+ case RC_OPCODE_IF:
+ push_branch_mask(d, &branch_depth);
break;
case RC_OPCODE_ELSE:
if (branch_depth == 0) {
@@ -700,35 +762,7 @@ static void get_readers_for_single_write(
d->ReaderData->InElse = 0;
}
else {
- struct branch_write_mask * masks =
- &d->BranchMasks[branch_depth];
-
- if (masks->HasElse) {
- /* Abort on read for components that
- * were written in the IF block. */
- d->ReaderData->AbortOnRead |=
- masks->IfWriteMask
- & ~masks->ElseWriteMask;
- /* Abort on read for components that
- * were written in the ELSE block. */
- d->ReaderData->AbortOnRead |=
- masks->ElseWriteMask
- & ~d->AliveWriteMask;
- d->AliveWriteMask = masks->IfWriteMask
- ^ ((masks->IfWriteMask ^
- masks->ElseWriteMask)
- & (masks->IfWriteMask
- ^ d->AliveWriteMask));
- } else {
- d->ReaderData->AbortOnRead |=
- masks->IfWriteMask
- & ~d->AliveWriteMask;
- d->AliveWriteMask = masks->IfWriteMask;
-
- }
- memset(masks, 0,
- sizeof(struct branch_write_mask));
- branch_depth--;
+ pop_branch_mask(d, &branch_depth);
}
break;
default:
@@ -745,9 +779,17 @@ static void get_readers_for_single_write(
rc_pair_for_all_reads_arg(tmp,
get_readers_pair_read_callback, d);
}
+
+ /* This can happen when we jump from an ENDLOOP to BGNLOOP */
+ if (tmp == writer) {
+ tmp = endloop;
+ endloop = NULL;
+ d->ReaderData->AbortOnRead = abort_on_read_at_endloop;
+ continue;
+ }
rc_for_all_writes_mask(tmp, get_readers_write_callback, d);
- if (d->ReaderData->Abort)
+ if (d->ReaderData->ExitOnAbort && d->ReaderData->Abort)
return;
if (branch_depth == 0 && !d->AliveWriteMask)
@@ -755,6 +797,26 @@ static void get_readers_for_single_write(
}
}
+static void init_get_readers_callback_data(
+ struct get_readers_callback_data * d,
+ struct rc_reader_data * reader_data,
+ struct radeon_compiler * c,
+ rc_read_src_fn read_normal_cb,
+ rc_pair_read_arg_fn read_pair_cb,
+ rc_read_write_mask_fn write_cb)
+{
+ reader_data->Abort = 0;
+ reader_data->ReaderCount = 0;
+ reader_data->ReadersReserved = 0;
+ reader_data->Readers = NULL;
+
+ d->C = c;
+ d->ReaderData = reader_data;
+ d->ReadNormalCB = read_normal_cb;
+ d->ReadPairCB = read_pair_cb;
+ d->WriteCB = write_cb;
+}
+
/**
* This function will create a list of readers via the rc_reader_data struct.
* This function will abort (set the flag data->Abort) and return if it
@@ -803,16 +865,28 @@ void rc_get_readers(
{
struct get_readers_callback_data d;
- data->Abort = 0;
- data->ReaderCount = 0;
- data->ReadersReserved = 0;
- data->Readers = NULL;
-
- d.C = c;
- d.ReaderData = data;
- d.ReadNormalCB = read_normal_cb;
- d.ReadPairCB = read_pair_cb;
- d.WriteCB = write_cb;
+ init_get_readers_callback_data(&d, data, c, read_normal_cb,
+ read_pair_cb, write_cb);
rc_for_all_writes_mask(writer, get_readers_for_single_write, &d);
}
+
+void rc_get_readers_sub(
+ struct radeon_compiler * c,
+ struct rc_instruction * writer,
+ struct rc_pair_sub_instruction * sub_writer,
+ struct rc_reader_data * data,
+ rc_read_src_fn read_normal_cb,
+ rc_pair_read_arg_fn read_pair_cb,
+ rc_read_write_mask_fn write_cb)
+{
+ struct get_readers_callback_data d;
+
+ init_get_readers_callback_data(&d, data, c, read_normal_cb,
+ read_pair_cb, write_cb);
+
+ if (sub_writer->WriteMask) {
+ get_readers_for_single_write(&d, writer, RC_FILE_TEMPORARY,
+ sub_writer->DestIndex, sub_writer->WriteMask);
+ }
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h
index ef971c5b234..d8a627258ea 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h
@@ -37,6 +37,7 @@ struct rc_swizzle_caps;
struct rc_src_register;
struct rc_pair_instruction_arg;
struct rc_pair_instruction_source;
+struct rc_pair_sub_instruction;
struct rc_compiler;
@@ -74,14 +75,21 @@ struct rc_reader {
struct rc_instruction * Inst;
unsigned int WriteMask;
union {
- struct rc_src_register * Src;
- struct rc_pair_instruction_arg * Arg;
+ struct {
+ struct rc_src_register * Src;
+ } I;
+ struct {
+ struct rc_pair_instruction_arg * Arg;
+ struct rc_pair_instruction_source * Src;
+ } P;
} U;
};
struct rc_reader_data {
unsigned int Abort;
unsigned int AbortOnRead;
+ unsigned int AbortOnWrite;
+ unsigned int LoopDepth;
unsigned int InElse;
struct rc_instruction * Writer;
@@ -89,6 +97,9 @@ struct rc_reader_data {
unsigned int ReadersReserved;
struct rc_reader * Readers;
+ /* If this flag is enabled, rc_get_readers will exit as soon possbile
+ * after the Abort flag is set.*/
+ unsigned int ExitOnAbort;
void * CbData;
};
@@ -99,6 +110,15 @@ void rc_get_readers(
rc_read_src_fn read_normal_cb,
rc_pair_read_arg_fn read_pair_cb,
rc_read_write_mask_fn write_cb);
+
+void rc_get_readers_sub(
+ struct radeon_compiler * c,
+ struct rc_instruction * writer,
+ struct rc_pair_sub_instruction * sub_writer,
+ struct rc_reader_data * data,
+ rc_read_src_fn read_normal_cb,
+ rc_pair_read_arg_fn read_pair_cb,
+ rc_read_write_mask_fn write_cb);
/**
* Compiler passes based on dataflow analysis.
*/
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_list.c b/src/mesa/drivers/dri/r300/compiler/radeon_list.c
new file mode 100644
index 00000000000..811c908a81a
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_list.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2011 Tom Stellard <[email protected]>
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include "radeon_list.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "memory_pool.h"
+
+struct rc_list * rc_list(struct memory_pool * pool, void * item)
+{
+ struct rc_list * new = memory_pool_malloc(pool, sizeof(struct rc_list));
+ new->Item = item;
+ new->Next = NULL;
+ new->Prev = NULL;
+
+ return new;
+}
+
+void rc_list_add(struct rc_list ** list, struct rc_list * new_value)
+{
+ struct rc_list * temp;
+
+ if (*list == NULL) {
+ *list = new_value;
+ return;
+ }
+
+ for (temp = *list; temp->Next; temp = temp->Next);
+
+ temp->Next = new_value;
+ new_value->Prev = temp;
+}
+
+void rc_list_remove(struct rc_list ** list, struct rc_list * rm_value)
+{
+ if (*list == rm_value) {
+ *list = rm_value->Next;
+ return;
+ }
+
+ rm_value->Prev->Next = rm_value->Next;
+ if (rm_value->Next) {
+ rm_value->Next->Prev = rm_value->Prev;
+ }
+}
+
+unsigned int rc_list_count(struct rc_list * list)
+{
+ unsigned int count = 0;
+ while (list) {
+ count++;
+ list = list->Next;
+ }
+ return count;
+}
+
+void rc_list_print(struct rc_list * list)
+{
+ while(list) {
+ fprintf(stderr, "%p->", list->Item);
+ list = list->Next;
+ }
+ fprintf(stderr, "\n");
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_list.h b/src/mesa/drivers/dri/r300/compiler/radeon_list.h
new file mode 100644
index 00000000000..b3c8f89cc68
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_list.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2011 Tom Stellard <[email protected]>
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef RADEON_LIST_H
+#define RADEON_LIST_H
+
+struct memory_pool;
+
+struct rc_list {
+ void * Item;
+ struct rc_list * Prev;
+ struct rc_list * Next;
+};
+
+struct rc_list * rc_list(struct memory_pool * pool, void * item);
+void rc_list_add(struct rc_list ** list, struct rc_list * new_value);
+void rc_list_remove(struct rc_list ** list, struct rc_list * rm_value);
+unsigned int rc_list_count(struct rc_list * list);
+void rc_list_print(struct rc_list * list);
+
+#endif /* RADEON_LIST_H */
+
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c b/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c
index e3e498e8fb4..afd78ad79dd 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_opcodes.c
@@ -481,6 +481,7 @@ void rc_compute_sources_for_writemask(
break;
case RC_OPCODE_TXB:
case RC_OPCODE_TXP:
+ case RC_OPCODE_TXL:
srcmasks[0] |= RC_MASK_W;
/* Fall through */
case RC_OPCODE_TEX:
@@ -500,6 +501,33 @@ void rc_compute_sources_for_writemask(
break;
}
break;
+ case RC_OPCODE_TXD:
+ switch (inst->U.I.TexSrcTarget) {
+ case RC_TEXTURE_1D_ARRAY:
+ srcmasks[0] |= RC_MASK_Y;
+ /* Fall through. */
+ case RC_TEXTURE_1D:
+ srcmasks[0] |= RC_MASK_X;
+ srcmasks[1] |= RC_MASK_X;
+ srcmasks[2] |= RC_MASK_X;
+ break;
+ case RC_TEXTURE_2D_ARRAY:
+ srcmasks[0] |= RC_MASK_Z;
+ /* Fall through. */
+ case RC_TEXTURE_2D:
+ case RC_TEXTURE_RECT:
+ srcmasks[0] |= RC_MASK_XY;
+ srcmasks[1] |= RC_MASK_XY;
+ srcmasks[2] |= RC_MASK_XY;
+ break;
+ case RC_TEXTURE_3D:
+ case RC_TEXTURE_CUBE:
+ srcmasks[0] |= RC_MASK_XYZ;
+ srcmasks[1] |= RC_MASK_XYZ;
+ srcmasks[2] |= RC_MASK_XYZ;
+ break;
+ }
+ break;
case RC_OPCODE_DST:
srcmasks[0] |= RC_MASK_Y | RC_MASK_Z;
srcmasks[1] |= RC_MASK_Y | RC_MASK_W;
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
index 79898e1047e..5b4fba80873 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
@@ -91,6 +91,8 @@ static void copy_propagate_scan_read(void * data, struct rc_instruction * inst,
(inst->U.I.Opcode == RC_OPCODE_TEX ||
inst->U.I.Opcode == RC_OPCODE_TXB ||
inst->U.I.Opcode == RC_OPCODE_TXP ||
+ inst->U.I.Opcode == RC_OPCODE_TXD ||
+ inst->U.I.Opcode == RC_OPCODE_TXL ||
inst->U.I.Opcode == RC_OPCODE_KIL)){
reader_data->Abort = 1;
return;
@@ -144,6 +146,7 @@ static void copy_propagate(struct radeon_compiler * c, struct rc_instruction * i
return;
/* Get a list of all the readers of this MOV instruction. */
+ reader_data.ExitOnAbort = 1;
rc_get_readers(c, inst_mov, &reader_data,
copy_propagate_scan_read, NULL,
is_src_clobbered_scan_write);
@@ -154,7 +157,7 @@ static void copy_propagate(struct radeon_compiler * c, struct rc_instruction * i
/* Propagate the MOV instruction. */
for (i = 0; i < reader_data.ReaderCount; i++) {
struct rc_instruction * inst = reader_data.Readers[i].Inst;
- *reader_data.Readers[i].U.Src = chain_srcregs(*reader_data.Readers[i].U.Src, inst_mov->U.I.SrcReg[0]);
+ *reader_data.Readers[i].U.I.Src = chain_srcregs(*reader_data.Readers[i].U.I.Src, inst_mov->U.I.SrcReg[0]);
if (inst_mov->U.I.SrcReg[0].File == RC_FILE_PRESUB)
inst->U.I.PreSub = inst_mov->U.I.PreSub;
@@ -453,6 +456,7 @@ static int presub_helper(
rc_presubtract_op cb_op = presub_opcode;
reader_data.CbData = &cb_op;
+ reader_data.ExitOnAbort = 1;
rc_get_readers(c, inst_add, &reader_data, presub_scan_read, NULL,
is_src_clobbered_scan_write);
@@ -466,7 +470,7 @@ static int presub_helper(
rc_get_opcode_info(reader.Inst->U.I.Opcode);
for (src_index = 0; src_index < info->NumSrcRegs; src_index++) {
- if (&reader.Inst->U.I.SrcReg[src_index] == reader.U.Src)
+ if (&reader.Inst->U.I.SrcReg[src_index] == reader.U.I.Src)
presub_replace(inst_add, reader.Inst, src_index);
}
}
@@ -619,13 +623,11 @@ static int peephole_add_presub_inv(
struct radeon_compiler * c,
struct rc_instruction * inst_add)
{
- unsigned int i, swz, mask;
+ unsigned int i, swz;
if (!is_presub_candidate(c, inst_add))
return 0;
- mask = inst_add->U.I.DstReg.WriteMask;
-
/* Check if src0 is 1. */
/* XXX It would be nice to use is_src_uniform_constant here, but that
* function only works if the register's file is RC_FILE_NONE */
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_dead_sources.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_dead_sources.c
new file mode 100644
index 00000000000..1e9a2c09d44
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_dead_sources.c
@@ -0,0 +1,62 @@
+
+#include "radeon_compiler.h"
+#include "radeon_compiler_util.h"
+#include "radeon_opcodes.h"
+#include "radeon_program_pair.h"
+
+static void mark_used_presub(struct rc_pair_sub_instruction * sub)
+{
+ if (sub->Src[RC_PAIR_PRESUB_SRC].Used) {
+ unsigned int presub_reg_count = rc_presubtract_src_reg_count(
+ sub->Src[RC_PAIR_PRESUB_SRC].Index);
+ unsigned int i;
+ for (i = 0; i < presub_reg_count; i++) {
+ sub->Src[i].Used = 1;
+ }
+ }
+}
+
+static void mark_used(
+ struct rc_instruction * inst,
+ struct rc_pair_sub_instruction * sub)
+{
+ unsigned int i;
+ const struct rc_opcode_info * info = rc_get_opcode_info(sub->Opcode);
+ for (i = 0; i < info->NumSrcRegs; i++) {
+ unsigned int src_type = rc_source_type_swz(sub->Arg[i].Swizzle);
+ if (src_type & RC_SOURCE_RGB) {
+ inst->U.P.RGB.Src[sub->Arg[i].Source].Used = 1;
+ }
+
+ if (src_type & RC_SOURCE_ALPHA) {
+ inst->U.P.Alpha.Src[sub->Arg[i].Source].Used = 1;
+ }
+ }
+}
+
+/**
+ * This pass finds sources that are not used by their instruction and marks
+ * them as unused.
+ */
+void rc_pair_remove_dead_sources(struct radeon_compiler * c, void *user)
+{
+ struct rc_instruction * inst;
+ for (inst = c->Program.Instructions.Next;
+ inst != &c->Program.Instructions;
+ inst = inst->Next) {
+ unsigned int i;
+ if (inst->Type == RC_INSTRUCTION_NORMAL)
+ continue;
+
+ /* Mark all sources as unused */
+ for (i = 0; i < 4; i++) {
+ inst->U.P.RGB.Src[i].Used = 0;
+ inst->U.P.Alpha.Src[i].Used = 0;
+ }
+ mark_used(inst, &inst->U.P.RGB);
+ mark_used(inst, &inst->U.P.Alpha);
+
+ mark_used_presub(&inst->U.P.RGB);
+ mark_used_presub(&inst->U.P.Alpha);
+ }
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c
index d53181e1f75..49983d6ce75 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009 Nicolai Haehnle.
+ * Copyright 2011 Tom Stellard <[email protected]>
*
* All Rights Reserved.
*
@@ -29,125 +30,126 @@
#include <stdio.h>
+#include "main/glheader.h"
+#include "program/register_allocate.h"
+#include "ralloc.h"
+
+#include "r300_fragprog_swizzle.h"
#include "radeon_compiler.h"
+#include "radeon_compiler_util.h"
#include "radeon_dataflow.h"
-
+#include "radeon_list.h"
+#include "radeon_variable.h"
#define VERBOSE 0
#define DBG(...) do { if (VERBOSE) fprintf(stderr, __VA_ARGS__); } while(0)
-struct live_intervals {
- int Start;
- int End;
- struct live_intervals * Next;
-};
struct register_info {
- struct live_intervals Live;
+ struct live_intervals Live[4];
unsigned int Used:1;
unsigned int Allocated:1;
unsigned int File:3;
unsigned int Index:RC_REGISTER_INDEX_BITS;
-};
-
-struct hardware_register {
- struct live_intervals * Used;
+ unsigned int Writemask;
};
struct regalloc_state {
struct radeon_compiler * C;
- struct register_info Input[RC_REGISTER_MAX_INDEX];
- struct register_info Temporary[RC_REGISTER_MAX_INDEX];
-
- struct hardware_register * HwTemporary;
- unsigned int NumHwTemporaries;
- /**
- * If an instruction is inside of a loop, EndLoop will be the
- * IP of the ENDLOOP instruction, and BeginLoop will be the IP
- * of the BGNLOOP instruction. Otherwise, EndLoop and BeginLoop
- * will be -1.
- */
- int EndLoop;
- int BeginLoop;
+ struct register_info * Input;
+ unsigned int NumInputs;
+
+ struct register_info * Temporary;
+ unsigned int NumTemporaries;
+
+ unsigned int Simple;
+ int LoopEnd;
+};
+
+enum rc_reg_class {
+ RC_REG_CLASS_SINGLE,
+ RC_REG_CLASS_DOUBLE,
+ RC_REG_CLASS_TRIPLE,
+ RC_REG_CLASS_ALPHA,
+ RC_REG_CLASS_SINGLE_PLUS_ALPHA,
+ RC_REG_CLASS_DOUBLE_PLUS_ALPHA,
+ RC_REG_CLASS_TRIPLE_PLUS_ALPHA,
+ RC_REG_CLASS_X,
+ RC_REG_CLASS_Y,
+ RC_REG_CLASS_Z,
+ RC_REG_CLASS_XY,
+ RC_REG_CLASS_YZ,
+ RC_REG_CLASS_XZ,
+ RC_REG_CLASS_XW,
+ RC_REG_CLASS_YW,
+ RC_REG_CLASS_ZW,
+ RC_REG_CLASS_XYW,
+ RC_REG_CLASS_YZW,
+ RC_REG_CLASS_XZW,
+ RC_REG_CLASS_COUNT
+};
+
+struct rc_class {
+ enum rc_reg_class Class;
+
+ unsigned int WritemaskCount;
+
+ /** This is 1 if this class is being used by the register allocator
+ * and 0 otherwise */
+ unsigned int Used;
+
+ /** This is the ID number assigned to this class by ra. */
+ unsigned int Id;
+
+ /** List of writemasks that belong to this class */
+ unsigned int Writemasks[3];
+
+
};
static void print_live_intervals(struct live_intervals * src)
{
- if (!src) {
+ if (!src || !src->Used) {
DBG("(null)");
return;
}
- while(src) {
- DBG("(%i,%i)", src->Start, src->End);
- src = src->Next;
- }
+ DBG("(%i,%i)", src->Start, src->End);
}
-static void add_live_intervals(struct regalloc_state * s,
- struct live_intervals ** dst, struct live_intervals * src)
+static int overlap_live_intervals(struct live_intervals * a, struct live_intervals * b)
{
- struct live_intervals ** dst_backup = dst;
-
if (VERBOSE) {
- DBG("add_live_intervals: ");
- print_live_intervals(*dst);
+ DBG("overlap_live_intervals: ");
+ print_live_intervals(a);
DBG(" to ");
- print_live_intervals(src);
- DBG("\n");
- }
-
- while(src) {
- if (*dst && (*dst)->End < src->Start) {
- dst = &(*dst)->Next;
- } else if (!*dst || (*dst)->Start > src->End) {
- struct live_intervals * li = memory_pool_malloc(&s->C->Pool, sizeof(*li));
- li->Start = src->Start;
- li->End = src->End;
- li->Next = *dst;
- *dst = li;
- src = src->Next;
- } else {
- if (src->End > (*dst)->End)
- (*dst)->End = src->End;
- if (src->Start < (*dst)->Start)
- (*dst)->Start = src->Start;
- src = src->Next;
- }
- }
-
- if (VERBOSE) {
- DBG(" result: ");
- print_live_intervals(*dst_backup);
+ print_live_intervals(b);
DBG("\n");
}
-}
-static int overlap_live_intervals(struct live_intervals * dst, struct live_intervals * src)
-{
- if (VERBOSE) {
- DBG("overlap_live_intervals: ");
- print_live_intervals(dst);
- DBG(" to ");
- print_live_intervals(src);
- DBG("\n");
+ if (!a->Used || !b->Used) {
+ DBG(" unused interval\n");
+ return 0;
}
- while(src && dst) {
- if (dst->End <= src->Start) {
- dst = dst->Next;
- } else if (dst->End <= src->End) {
+ if (a->Start > b->Start) {
+ if (a->Start < b->End) {
+ DBG(" overlap\n");
+ return 1;
+ }
+ } else if (b->Start > a->Start) {
+ if (b->Start < a->End) {
DBG(" overlap\n");
return 1;
- } else if (dst->Start < src->End) {
+ }
+ } else { /* a->Start == b->Start */
+ if (a->Start != a->End && b->Start != b->End) {
DBG(" overlap\n");
return 1;
- } else {
- src = src->Next;
}
}
@@ -156,92 +158,27 @@ static int overlap_live_intervals(struct live_intervals * dst, struct live_inter
return 0;
}
-static int try_add_live_intervals(struct regalloc_state * s,
- struct live_intervals ** dst, struct live_intervals * src)
-{
- if (overlap_live_intervals(*dst, src))
- return 0;
-
- add_live_intervals(s, dst, src);
- return 1;
-}
-
-static void scan_callback(void * data, struct rc_instruction * inst,
+static void scan_read_callback(void * data, struct rc_instruction * inst,
rc_register_file file, unsigned int index, unsigned int mask)
{
struct regalloc_state * s = data;
struct register_info * reg;
+ unsigned int i;
- if (file == RC_FILE_TEMPORARY)
- reg = &s->Temporary[index];
- else if (file == RC_FILE_INPUT)
- reg = &s->Input[index];
- else
+ if (file != RC_FILE_INPUT)
return;
- if (!reg->Used) {
- reg->Used = 1;
- if (file == RC_FILE_INPUT)
- reg->Live.Start = -1;
- else if (s->BeginLoop >= 0)
- reg->Live.Start = s->BeginLoop;
- else
- reg->Live.Start = inst->IP;
- reg->Live.End = inst->IP;
- } else if (s->EndLoop >= 0)
- reg->Live.End = s->EndLoop;
- else if (inst->IP > reg->Live.End)
- reg->Live.End = inst->IP;
-}
+ s->Input[index].Used = 1;
+ reg = &s->Input[index];
-static void compute_live_intervals(struct radeon_compiler *c,
- struct regalloc_state *s)
-{
- memset(s, 0, sizeof(*s));
- s->C = c;
- s->NumHwTemporaries = c->max_temp_regs;
- s->BeginLoop = -1;
- s->EndLoop = -1;
- s->HwTemporary =
- memory_pool_malloc(&c->Pool,
- s->NumHwTemporaries * sizeof(struct hardware_register));
- memset(s->HwTemporary, 0, s->NumHwTemporaries * sizeof(struct hardware_register));
-
- rc_recompute_ips(s->C);
-
- for(struct rc_instruction * inst = s->C->Program.Instructions.Next;
- inst != &s->C->Program.Instructions;
- inst = inst->Next) {
-
- /* For all instructions inside of a loop, the ENDLOOP
- * instruction is used as the end of the live interval and
- * the BGNLOOP instruction is used as the beginning. */
- if (inst->U.I.Opcode == RC_OPCODE_BGNLOOP && s->EndLoop < 0) {
- int loops = 1;
- struct rc_instruction * tmp;
- s->BeginLoop = inst->IP;
- for(tmp = inst->Next;
- tmp != &s->C->Program.Instructions;
- tmp = tmp->Next) {
- if (tmp->U.I.Opcode == RC_OPCODE_BGNLOOP) {
- loops++;
- } else if (tmp->U.I.Opcode
- == RC_OPCODE_ENDLOOP) {
- if(!--loops) {
- s->EndLoop = tmp->IP;
- break;
- }
- }
- }
- }
-
- if (inst->IP == s->EndLoop) {
- s->EndLoop = -1;
- s->BeginLoop = -1;
+ for (i = 0; i < 4; i++) {
+ if (!((mask >> i) & 0x1)) {
+ continue;
}
-
- rc_for_all_reads_mask(inst, scan_callback, s);
- rc_for_all_writes_mask(inst, scan_callback, s);
+ reg->Live[i].Used = 1;
+ reg->Live[i].Start = 0;
+ reg->Live[i].End =
+ s->LoopEnd > inst->IP ? s->LoopEnd : inst->IP;
}
}
@@ -251,7 +188,7 @@ static void remap_register(void * data, struct rc_instruction * inst,
struct regalloc_state * s = data;
const struct register_info * reg;
- if (*file == RC_FILE_TEMPORARY)
+ if (*file == RC_FILE_TEMPORARY && s->Simple)
reg = &s->Temporary[*index];
else if (*file == RC_FILE_INPUT)
reg = &s->Input[*index];
@@ -259,106 +196,511 @@ static void remap_register(void * data, struct rc_instruction * inst,
return;
if (reg->Allocated) {
- *file = reg->File;
*index = reg->Index;
}
}
-static void do_regalloc(struct regalloc_state * s)
+static void alloc_input_simple(void * data, unsigned int input,
+ unsigned int hwreg)
+{
+ struct regalloc_state * s = data;
+
+ if (input >= s->NumInputs)
+ return;
+
+ s->Input[input].Allocated = 1;
+ s->Input[input].File = RC_FILE_TEMPORARY;
+ s->Input[input].Index = hwreg;
+}
+
+/* This functions offsets the temporary register indices by the number
+ * of input registers, because input registers are actually temporaries and
+ * should not occupy the same space.
+ *
+ * This pass is supposed to be used to maintain correct allocation of inputs
+ * if the standard register allocation is disabled. */
+static void do_regalloc_inputs_only(struct regalloc_state * s)
+{
+ for (unsigned i = 0; i < s->NumTemporaries; i++) {
+ s->Temporary[i].Allocated = 1;
+ s->Temporary[i].File = RC_FILE_TEMPORARY;
+ s->Temporary[i].Index = i + s->NumInputs;
+ }
+}
+
+static unsigned int is_derivative(rc_opcode op)
{
- /* Simple and stupid greedy register allocation */
- for(unsigned int index = 0; index < RC_REGISTER_MAX_INDEX; ++index) {
- struct register_info * reg = &s->Temporary[index];
+ return (op == RC_OPCODE_DDX || op == RC_OPCODE_DDY);
+}
- if (!reg->Used)
+static int find_class(
+ struct rc_class * classes,
+ unsigned int writemask,
+ unsigned int max_writemask_count)
+{
+ unsigned int i;
+ for (i = 0; i < RC_REG_CLASS_COUNT; i++) {
+ unsigned int j;
+ if (classes[i].WritemaskCount > max_writemask_count) {
continue;
+ }
+ for (j = 0; j < 3; j++) {
+ if (classes[i].Writemasks[j] == writemask) {
+ return i;
+ }
+ }
+ }
+ return -1;
+}
+
+static enum rc_reg_class variable_get_class(
+ struct rc_variable * variable,
+ struct rc_class * classes)
+{
+ unsigned int i;
+ unsigned int can_change_writemask= 1;
+ unsigned int writemask = rc_variable_writemask_sum(variable);
+ struct rc_list * readers = rc_variable_readers_union(variable);
+ int class_index;
+
+ if (!variable->C->is_r500) {
+ struct rc_class c;
+ /* The assumption here is that if an instruction has type
+ * RC_INSTRUCTION_NORMAL then it is a TEX instruction.
+ * r300 and r400 can't swizzle the result of a TEX lookup. */
+ if (variable->Inst->Type == RC_INSTRUCTION_NORMAL) {
+ writemask = RC_MASK_XYZW;
+ }
- for(unsigned int hwreg = 0; hwreg < s->NumHwTemporaries; ++hwreg) {
- if (try_add_live_intervals(s, &s->HwTemporary[hwreg].Used, &reg->Live)) {
- reg->Allocated = 1;
- reg->File = RC_FILE_TEMPORARY;
- reg->Index = hwreg;
- goto success;
+ /* Check if it is possible to do swizzle packing for r300/r400
+ * without creating non-native swizzles. */
+ class_index = find_class(classes, writemask, 3);
+ if (class_index < 0) {
+ goto error;
+ }
+ c = classes[class_index];
+ for (i = 0; i < c.WritemaskCount; i++) {
+ int j;
+ unsigned int conversion_swizzle =
+ rc_make_conversion_swizzle(
+ writemask, c.Writemasks[i]);
+ for (j = 0; j < variable->ReaderCount; j++) {
+ unsigned int old_swizzle;
+ unsigned int new_swizzle;
+ struct rc_reader r = variable->Readers[j];
+ if (r.Inst->Type == RC_INSTRUCTION_PAIR ) {
+ old_swizzle = r.U.P.Arg->Swizzle;
+ } else {
+ old_swizzle = r.U.I.Src->Swizzle;
+ }
+ new_swizzle = rc_adjust_channels(
+ old_swizzle, conversion_swizzle);
+ if (!r300_swizzle_is_native_basic(new_swizzle)) {
+ can_change_writemask = 0;
+ break;
+ }
+ }
+ if (!can_change_writemask) {
+ break;
}
}
+ }
- rc_error(s->C, "Ran out of hardware temporaries\n");
- return;
+ if (variable->Inst->Type == RC_INSTRUCTION_PAIR) {
+ /* DDX/DDY seem to always fail when their writemasks are
+ * changed.*/
+ if (is_derivative(variable->Inst->U.P.RGB.Opcode)
+ || is_derivative(variable->Inst->U.P.Alpha.Opcode)) {
+ can_change_writemask = 0;
+ }
+ }
+ for ( ; readers; readers = readers->Next) {
+ struct rc_reader * r = readers->Item;
+ if (r->Inst->Type == RC_INSTRUCTION_PAIR) {
+ if (r->U.P.Arg->Source == RC_PAIR_PRESUB_SRC) {
+ can_change_writemask = 0;
+ break;
+ }
+ /* DDX/DDY also fail when their swizzles are changed. */
+ if (is_derivative(r->Inst->U.P.RGB.Opcode)
+ || is_derivative(r->Inst->U.P.Alpha.Opcode)) {
+ can_change_writemask = 0;
+ break;
+ }
+ }
+ }
- success:;
+ class_index = find_class(classes, writemask,
+ can_change_writemask ? 3 : 1);
+ if (class_index > -1) {
+ return classes[class_index].Class;
+ } else {
+error:
+ rc_error(variable->C,
+ "Could not find class for index=%u mask=%u\n",
+ variable->Dst.Index, writemask);
+ return 0;
}
+}
- /* Rewrite all instructions based on the translation table we built */
- for(struct rc_instruction * inst = s->C->Program.Instructions.Next;
- inst != &s->C->Program.Instructions;
- inst = inst->Next) {
- rc_remap_registers(inst, &remap_register, s);
+static unsigned int overlap_live_intervals_array(
+ struct live_intervals * a,
+ struct live_intervals * b)
+{
+ unsigned int a_chan, b_chan;
+ for (a_chan = 0; a_chan < 4; a_chan++) {
+ for (b_chan = 0; b_chan < 4; b_chan++) {
+ if (overlap_live_intervals(&a[a_chan], &b[b_chan])) {
+ return 1;
+ }
+ }
}
+ return 0;
}
-static void alloc_input(void * data, unsigned int input, unsigned int hwreg)
+static unsigned int reg_get_index(int reg)
{
- struct regalloc_state * s = data;
+ return reg / RC_MASK_XYZW;
+}
- if (!s->Input[input].Used)
- return;
+static unsigned int reg_get_writemask(int reg)
+{
+ return (reg % RC_MASK_XYZW) + 1;
+}
- add_live_intervals(s, &s->HwTemporary[hwreg].Used, &s->Input[input].Live);
+static int get_reg_id(unsigned int index, unsigned int writemask)
+{
+ assert(writemask);
+ if (writemask == 0) {
+ return 0;
+ }
+ return (index * RC_MASK_XYZW) + (writemask - 1);
+}
- s->Input[input].Allocated = 1;
- s->Input[input].File = RC_FILE_TEMPORARY;
- s->Input[input].Index = hwreg;
+#if VERBOSE
+static void print_reg(int reg)
+{
+ unsigned int index = reg_get_index(reg);
+ unsigned int mask = reg_get_writemask(reg);
+ fprintf(stderr, "Temp[%u].%c%c%c%c", index,
+ mask & RC_MASK_X ? 'x' : '_',
+ mask & RC_MASK_Y ? 'y' : '_',
+ mask & RC_MASK_Z ? 'z' : '_',
+ mask & RC_MASK_W ? 'w' : '_');
+}
+#endif
+static void add_register_conflicts(
+ struct ra_regs * regs,
+ unsigned int max_temp_regs)
+{
+ unsigned int index, a_mask, b_mask;
+ for (index = 0; index < max_temp_regs; index++) {
+ for(a_mask = 1; a_mask <= RC_MASK_XYZW; a_mask++) {
+ for (b_mask = a_mask + 1; b_mask <= RC_MASK_XYZW;
+ b_mask++) {
+ if (a_mask & b_mask) {
+ ra_add_reg_conflict(regs,
+ get_reg_id(index, a_mask),
+ get_reg_id(index, b_mask));
+ }
+ }
+ }
+ }
}
-void rc_pair_regalloc(struct radeon_compiler *cc, void *user)
+static void do_advanced_regalloc(struct regalloc_state * s)
{
- struct r300_fragment_program_compiler *c = (struct r300_fragment_program_compiler*)cc;
- struct regalloc_state s;
+ struct rc_class rc_class_list [] = {
+ {RC_REG_CLASS_SINGLE, 3, 0, 0,
+ {RC_MASK_X,
+ RC_MASK_Y,
+ RC_MASK_Z}},
+ {RC_REG_CLASS_DOUBLE, 3, 0, 0,
+ {RC_MASK_X | RC_MASK_Y,
+ RC_MASK_X | RC_MASK_Z,
+ RC_MASK_Y | RC_MASK_Z}},
+ {RC_REG_CLASS_TRIPLE, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Y | RC_MASK_Z,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_ALPHA, 1, 0, 0,
+ {RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_SINGLE_PLUS_ALPHA, 3, 0, 0,
+ {RC_MASK_X | RC_MASK_W,
+ RC_MASK_Y | RC_MASK_W,
+ RC_MASK_Z | RC_MASK_W}},
+ {RC_REG_CLASS_DOUBLE_PLUS_ALPHA, 3, 0, 0,
+ {RC_MASK_X | RC_MASK_Y | RC_MASK_W,
+ RC_MASK_X | RC_MASK_Z | RC_MASK_W,
+ RC_MASK_Y | RC_MASK_Z | RC_MASK_W}},
+ {RC_REG_CLASS_TRIPLE_PLUS_ALPHA, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Y | RC_MASK_Z | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_X, 1, 0, 0,
+ {RC_MASK_X,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_Y, 1, 0, 0,
+ {RC_MASK_Y,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_Z, 1, 0, 0,
+ {RC_MASK_Z,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_XY, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Y,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_YZ, 1, 0, 0,
+ {RC_MASK_Y | RC_MASK_Z,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_XZ, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Z,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_XW, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_YW, 1, 0, 0,
+ {RC_MASK_Y | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_ZW, 1, 0, 0,
+ {RC_MASK_Z | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_XYW, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Y | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_YZW, 1, 0, 0,
+ {RC_MASK_Y | RC_MASK_Z | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}},
+ {RC_REG_CLASS_XZW, 1, 0, 0,
+ {RC_MASK_X | RC_MASK_Z | RC_MASK_W,
+ RC_MASK_NONE,
+ RC_MASK_NONE}}
+ };
+
+ unsigned int i, j, index, input_node, node_count, node_index;
+ unsigned int * node_classes;
+ unsigned int * input_classes;
+ struct rc_instruction * inst;
+ struct rc_list * var_ptr;
+ struct rc_list * variables;
+ struct ra_regs * regs;
+ struct ra_graph * graph;
+
+ /* Allocate the main ra data structure */
+ regs = ra_alloc_reg_set(s->C->max_temp_regs * RC_MASK_XYZW);
+
+ /* Get list of program variables */
+ variables = rc_get_variables(s->C);
+ node_count = rc_list_count(variables);
+ node_classes = memory_pool_malloc(&s->C->Pool,
+ node_count * sizeof(unsigned int));
+ input_classes = memory_pool_malloc(&s->C->Pool,
+ s->NumInputs * sizeof(unsigned int));
+
+ for (var_ptr = variables, node_index = 0; var_ptr;
+ var_ptr = var_ptr->Next, node_index++) {
+ unsigned int class_index;
+ /* Compute the live intervals */
+ rc_variable_compute_live_intervals(var_ptr->Item);
+
+ class_index = variable_get_class(var_ptr->Item, rc_class_list);
+
+ /* If we haven't used this register class yet, mark it
+ * as used and allocate space for it. */
+ if (!rc_class_list[class_index].Used) {
+ rc_class_list[class_index].Used = 1;
+ rc_class_list[class_index].Id = ra_alloc_reg_class(regs);
+ }
- compute_live_intervals(cc, &s);
+ node_classes[node_index] = rc_class_list[class_index].Id;
+ }
- c->AllocateHwInputs(c, &alloc_input, &s);
- do_regalloc(&s);
-}
+ /* Assign registers to the classes */
+ for (i = 0; i < RC_REG_CLASS_COUNT; i++) {
+ struct rc_class class = rc_class_list[i];
+ if (!class.Used) {
+ continue;
+ }
-/* This functions offsets the temporary register indices by the number
- * of input registers, because input registers are actually temporaries and
- * should not occupy the same space.
- *
- * This pass is supposed to be used to maintain correct allocation of inputs
- * if the standard register allocation is disabled. */
-void rc_pair_regalloc_inputs_only(struct radeon_compiler *cc, void *user)
-{
- struct r300_fragment_program_compiler *c = (struct r300_fragment_program_compiler*)cc;
- struct regalloc_state s;
- int temp_reg_offset;
+ for (index = 0; index < s->C->max_temp_regs; index++) {
+ for (j = 0; j < class.WritemaskCount; j++) {
+ int reg_id = get_reg_id(index,
+ class.Writemasks[j]);
+ ra_class_add_reg(regs, class.Id, reg_id);
+ }
+ }
+ }
+
+ /* Add register conflicts */
+ add_register_conflicts(regs, s->C->max_temp_regs);
+
+ /* Calculate live intervals for input registers */
+ for (inst = s->C->Program.Instructions.Next;
+ inst != &s->C->Program.Instructions;
+ inst = inst->Next) {
+ rc_opcode op = rc_get_flow_control_inst(inst);
+ if (op == RC_OPCODE_BGNLOOP) {
+ struct rc_instruction * endloop =
+ rc_match_bgnloop(inst);
+ if (endloop->IP > s->LoopEnd) {
+ s->LoopEnd = endloop->IP;
+ }
+ }
+ rc_for_all_reads_mask(inst, scan_read_callback, s);
+ }
- compute_live_intervals(cc, &s);
+ /* Create classes for input registers */
+ for (i = 0; i < s->NumInputs; i++) {
+ unsigned int chan, class_id, writemask = 0;
+ for (chan = 0; chan < 4; chan++) {
+ if (s->Input[i].Live[chan].Used) {
+ writemask |= (1 << chan);
+ }
+ }
+ s->Input[i].Writemask = writemask;
+ if (!writemask) {
+ continue;
+ }
+
+ class_id = ra_alloc_reg_class(regs);
+ input_classes[i] = class_id;
+ ra_class_add_reg(regs, class_id,
+ get_reg_id(s->Input[i].Index, writemask));
+ }
- c->AllocateHwInputs(c, &alloc_input, &s);
+ ra_set_finalize(regs);
- temp_reg_offset = 0;
- for (unsigned i = 0; i < RC_REGISTER_MAX_INDEX; i++) {
- if (s.Input[i].Allocated && temp_reg_offset <= s.Input[i].Index)
- temp_reg_offset = s.Input[i].Index + 1;
+ graph = ra_alloc_interference_graph(regs, node_count + s->NumInputs);
+
+ /* Build the interference graph */
+ for (var_ptr = variables, node_index = 0; var_ptr;
+ var_ptr = var_ptr->Next,node_index++) {
+ struct rc_list * a, * b;
+ unsigned int b_index;
+
+ ra_set_node_class(graph, node_index, node_classes[node_index]);
+
+ for (a = var_ptr, b = var_ptr->Next, b_index = node_index + 1;
+ b; b = b->Next, b_index++) {
+ struct rc_variable * var_a = a->Item;
+ while (var_a) {
+ struct rc_variable * var_b = b->Item;
+ while (var_b) {
+ if (overlap_live_intervals_array(var_a->Live, var_b->Live)) {
+ ra_add_node_interference(graph,
+ node_index, b_index);
+ }
+ var_b = var_b->Friend;
+ }
+ var_a = var_a->Friend;
+ }
+ }
}
- if (temp_reg_offset) {
- for (unsigned i = 0; i < RC_REGISTER_MAX_INDEX; i++) {
- if (s.Temporary[i].Used) {
- s.Temporary[i].Allocated = 1;
- s.Temporary[i].File = RC_FILE_TEMPORARY;
- s.Temporary[i].Index = i + temp_reg_offset;
+ /* Add input registers to the interference graph */
+ for (i = 0, input_node = 0; i< s->NumInputs; i++) {
+ if (!s->Input[i].Writemask) {
+ continue;
+ }
+ ra_set_node_class(graph, node_count + input_node,
+ input_classes[i]);
+ for (var_ptr = variables, node_index = 0;
+ var_ptr; var_ptr = var_ptr->Next, node_index++) {
+ struct rc_variable * var = var_ptr->Item;
+ if (overlap_live_intervals_array(s->Input[i].Live,
+ var->Live)) {
+ ra_add_node_interference(graph, node_index,
+ node_count + input_node);
}
}
+ /* Manually allocate a register for this input */
+ ra_set_node_reg(graph, node_count + input_node, get_reg_id(
+ s->Input[i].Index, s->Input[i].Writemask));
+ input_node++;
+ }
+
+ if (!ra_allocate_no_spills(graph)) {
+ rc_error(s->C, "Ran out of hardware temporaries\n");
+ return;
+ }
+
+ /* Rewrite the registers */
+ for (var_ptr = variables, node_index = 0; var_ptr;
+ var_ptr = var_ptr->Next, node_index++) {
+ int reg = ra_get_node_reg(graph, node_index);
+ unsigned int writemask = reg_get_writemask(reg);
+ unsigned int index = reg_get_index(reg);
+ struct rc_variable * var = var_ptr->Item;
+
+ if (!s->C->is_r500 && var->Inst->Type == RC_INSTRUCTION_NORMAL) {
+ writemask = rc_variable_writemask_sum(var);
+ }
- /* Rewrite all registers. */
- for (struct rc_instruction *inst = cc->Program.Instructions.Next;
- inst != &cc->Program.Instructions;
- inst = inst->Next) {
- rc_remap_registers(inst, &remap_register, &s);
+ if (var->Dst.File == RC_FILE_INPUT) {
+ continue;
}
+ rc_variable_change_dst(var, index, writemask);
+ }
+
+ ralloc_free(graph);
+ ralloc_free(regs);
+}
+
+/**
+ * @param user This parameter should be a pointer to an integer value. If this
+ * integer value is zero, then a simple register allocator will be used that
+ * only allocates space for input registers (\sa do_regalloc_inputs_only). If
+ * user is non-zero, then the regular register allocator will be used
+ * (\sa do_regalloc).
+ */
+void rc_pair_regalloc(struct radeon_compiler *cc, void *user)
+{
+ struct r300_fragment_program_compiler *c =
+ (struct r300_fragment_program_compiler*)cc;
+ struct regalloc_state s;
+ int * do_full_regalloc = (int*)user;
+
+ memset(&s, 0, sizeof(s));
+ s.C = cc;
+ s.NumInputs = rc_get_max_index(cc, RC_FILE_INPUT) + 1;
+ s.Input = memory_pool_malloc(&cc->Pool,
+ s.NumInputs * sizeof(struct register_info));
+ memset(s.Input, 0, s.NumInputs * sizeof(struct register_info));
+
+ s.NumTemporaries = rc_get_max_index(cc, RC_FILE_TEMPORARY) + 1;
+ s.Temporary = memory_pool_malloc(&cc->Pool,
+ s.NumTemporaries * sizeof(struct register_info));
+ memset(s.Temporary, 0, s.NumTemporaries * sizeof(struct register_info));
+
+ rc_recompute_ips(s.C);
+
+ c->AllocateHwInputs(c, &alloc_input_simple, &s);
+ if (*do_full_regalloc) {
+ do_advanced_regalloc(&s);
+ } else {
+ s.Simple = 1;
+ do_regalloc_inputs_only(&s);
+ }
+
+ /* Rewrite inputs and if we are doing the simple allocation, rewrite
+ * temporaries too. */
+ for (struct rc_instruction *inst = s.C->Program.Instructions.Next;
+ inst != &s.C->Program.Instructions;
+ inst = inst->Next) {
+ rc_remap_registers(inst, &remap_register, &s);
}
}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
index 8e10813ff06..25cd52c9cd4 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c
@@ -709,7 +709,7 @@ static int convert_rgb_to_alpha(
pair_inst->Alpha.Opcode = pair_inst->RGB.Opcode;
pair_inst->Alpha.DestIndex = new_index;
- pair_inst->Alpha.WriteMask = 1;
+ pair_inst->Alpha.WriteMask = RC_MASK_W;
pair_inst->Alpha.Target = pair_inst->RGB.Target;
pair_inst->Alpha.OutputWriteMask = pair_inst->RGB.OutputWriteMask;
pair_inst->Alpha.DepthWriteMask = pair_inst->RGB.DepthWriteMask;
@@ -739,7 +739,7 @@ static int convert_rgb_to_alpha(
for(i = 0; i < sched_inst->GlobalReaders.ReaderCount; i++) {
struct rc_reader reader = sched_inst->GlobalReaders.Readers[i];
- rgb_to_alpha_remap(reader.Inst, reader.U.Arg,
+ rgb_to_alpha_remap(reader.Inst, reader.U.P.Arg,
RC_FILE_TEMPORARY, old_swz, new_index);
}
return 1;
@@ -952,6 +952,7 @@ static void schedule_block(struct r300_fragment_program_compiler * c,
instruction_ready(&s, s.Current);
/* Get global readers for possible RGB->Alpha conversion. */
+ s.Current->GlobalReaders.ExitOnAbort = 1;
rc_get_readers(s.C, inst, &s.Current->GlobalReaders,
is_rgb_to_alpha_possible_normal,
is_rgb_to_alpha_possible, NULL);
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program.h b/src/mesa/drivers/dri/r300/compiler/radeon_program.h
index a07f6b63c6e..b899eccbf53 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program.h
@@ -108,6 +108,9 @@ struct rc_sub_instruction {
/** True if tex instruction should do shadow comparison */
unsigned int TexShadow:1;
+
+ /**R500 Only. How to swizzle the result of a TEX lookup*/
+ unsigned int TexSwizzle:12;
/*@}*/
/** This holds information about the presubtract operation used by
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h b/src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h
index 45f79ece5ba..24577333450 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_constants.h
@@ -129,6 +129,7 @@ typedef enum {
#define RC_SWIZZLE_0000 RC_MAKE_SWIZZLE_SMEAR(RC_SWIZZLE_ZERO)
#define RC_SWIZZLE_1111 RC_MAKE_SWIZZLE_SMEAR(RC_SWIZZLE_ONE)
#define RC_SWIZZLE_HHHH RC_MAKE_SWIZZLE_SMEAR(RC_SWIZZLE_HALF)
+#define RC_SWIZZLE_UUUU RC_MAKE_SWIZZLE_SMEAR(RC_SWIZZLE_UNUSED)
/**
* \name Bitmasks for components of vectors.
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c
index 68874795b8a..52315957520 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c
@@ -223,3 +223,17 @@ struct rc_pair_instruction_source * rc_pair_get_src(
return NULL;
}
}
+
+int rc_pair_get_src_index(
+ struct rc_pair_instruction * pair_inst,
+ struct rc_pair_instruction_source * src)
+{
+ int i;
+ for (i = 0; i < 3; i++) {
+ if (&pair_inst->RGB.Src[i] == src
+ || &pair_inst->Alpha.Src[i] == src) {
+ return i;
+ }
+ }
+ return -1;
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h
index d1a435fc530..a957ea9f7a0 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h
@@ -114,6 +114,10 @@ void rc_pair_foreach_source_that_rgb_reads(
struct rc_pair_instruction_source * rc_pair_get_src(
struct rc_pair_instruction * pair_inst,
struct rc_pair_instruction_arg * arg);
+
+int rc_pair_get_src_index(
+ struct rc_pair_instruction * pair_inst,
+ struct rc_pair_instruction_source * src);
/*@}*/
@@ -127,6 +131,7 @@ void rc_pair_translate(struct radeon_compiler *cc, void *user);
void rc_pair_schedule(struct radeon_compiler *cc, void *user);
void rc_pair_regalloc(struct radeon_compiler *cc, void *user);
void rc_pair_regalloc_inputs_only(struct radeon_compiler *cc, void *user);
+void rc_pair_remove_dead_sources(struct radeon_compiler *c, void *user);
/*@}*/
#endif /* __RADEON_PROGRAM_PAIR_H_ */
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c b/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
index cef448ee4e1..8d16b2cf9ec 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
@@ -142,6 +142,8 @@ int radeonTransformTEX(
if (inst->U.I.Opcode != RC_OPCODE_TEX &&
inst->U.I.Opcode != RC_OPCODE_TXB &&
inst->U.I.Opcode != RC_OPCODE_TXP &&
+ inst->U.I.Opcode != RC_OPCODE_TXD &&
+ inst->U.I.Opcode != RC_OPCODE_TXL &&
inst->U.I.Opcode != RC_OPCODE_KIL)
return 0;
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c b/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c
index 5bd19c0b9c6..cafa0579734 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c
@@ -71,6 +71,7 @@ void rc_rename_regs(struct radeon_compiler *c, void *user)
if (inst->U.I.DstReg.File != RC_FILE_TEMPORARY)
continue;
+ reader_data.ExitOnAbort = 1;
rc_get_readers(c, inst, &reader_data, NULL, NULL, NULL);
if (reader_data.Abort || reader_data.ReaderCount == 0)
@@ -85,7 +86,7 @@ void rc_rename_regs(struct radeon_compiler *c, void *user)
reader_data.Writer->U.I.DstReg.Index = new_index;
for(i = 0; i < reader_data.ReaderCount; i++) {
- reader_data.Readers[i].U.Src->Index = new_index;
+ reader_data.Readers[i].U.I.Src->Index = new_index;
}
}
}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_variable.c b/src/mesa/drivers/dri/r300/compiler/radeon_variable.c
new file mode 100644
index 00000000000..16fa5d28902
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_variable.c
@@ -0,0 +1,484 @@
+/*
+ * Copyright 2011 Tom Stellard <[email protected]>
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#include "radeon_variable.h"
+
+#include "memory_pool.h"
+#include "radeon_compiler_util.h"
+#include "radeon_dataflow.h"
+#include "radeon_list.h"
+#include "radeon_opcodes.h"
+#include "radeon_program.h"
+
+/**
+ * Rewrite the index and writemask for the destination register of var
+ * and its friends to new_index and new_writemask. This function also takes
+ * care of rewriting the swizzles for the sources of var.
+ */
+void rc_variable_change_dst(
+ struct rc_variable * var,
+ unsigned int new_index,
+ unsigned int new_writemask)
+{
+ struct rc_variable * var_ptr;
+ struct rc_list * readers;
+ unsigned int old_mask = rc_variable_writemask_sum(var);
+ unsigned int conversion_swizzle =
+ rc_make_conversion_swizzle(old_mask, new_writemask);
+
+ for (var_ptr = var; var_ptr; var_ptr = var_ptr->Friend) {
+ if (var_ptr->Inst->Type == RC_INSTRUCTION_NORMAL) {
+ rc_normal_rewrite_writemask(var_ptr->Inst,
+ conversion_swizzle);
+ var_ptr->Inst->U.I.DstReg.Index = new_index;
+ } else {
+ struct rc_pair_sub_instruction * sub;
+ if (var_ptr->Dst.WriteMask == RC_MASK_W) {
+ assert(new_writemask & RC_MASK_W);
+ sub = &var_ptr->Inst->U.P.Alpha;
+ } else {
+ sub = &var_ptr->Inst->U.P.RGB;
+ rc_pair_rewrite_writemask(sub,
+ conversion_swizzle);
+ }
+ sub->DestIndex = new_index;
+ }
+ }
+
+ readers = rc_variable_readers_union(var);
+
+ for ( ; readers; readers = readers->Next) {
+ struct rc_reader * reader = readers->Item;
+ if (reader->Inst->Type == RC_INSTRUCTION_NORMAL) {
+ reader->U.I.Src->Index = new_index;
+ reader->U.I.Src->Swizzle = rc_rewrite_swizzle(
+ reader->U.I.Src->Swizzle, conversion_swizzle);
+ } else {
+ struct rc_pair_instruction * pair_inst =
+ &reader->Inst->U.P;
+ unsigned int src_type = rc_source_type_swz(
+ reader->U.P.Arg->Swizzle);
+
+ int src_index = reader->U.P.Arg->Source;
+ if (src_index == RC_PAIR_PRESUB_SRC) {
+ src_index = rc_pair_get_src_index(
+ pair_inst, reader->U.P.Src);
+ }
+ /* Try to delete the old src, it is OK if this fails,
+ * because rc_pair_alloc_source might be able to
+ * find a source the ca be reused.
+ */
+ if (rc_pair_remove_src(reader->Inst, src_type,
+ src_index, old_mask)) {
+ /* Reuse the source index of the source that
+ * was just deleted and set its register
+ * index. We can't use rc_pair_alloc_source
+ * for this becuase it might return a source
+ * index that is already being used. */
+ if (src_type & RC_SOURCE_RGB) {
+ pair_inst->RGB.Src[src_index]
+ .Used = 1;
+ pair_inst->RGB.Src[src_index]
+ .Index = new_index;
+ pair_inst->RGB.Src[src_index]
+ .File = RC_FILE_TEMPORARY;
+ }
+ if (src_type & RC_SOURCE_ALPHA) {
+ pair_inst->Alpha.Src[src_index]
+ .Used = 1;
+ pair_inst->Alpha.Src[src_index]
+ .Index = new_index;
+ pair_inst->Alpha.Src[src_index]
+ .File = RC_FILE_TEMPORARY;
+ }
+ } else {
+ src_index = rc_pair_alloc_source(
+ &reader->Inst->U.P,
+ src_type & RC_SOURCE_RGB,
+ src_type & RC_SOURCE_ALPHA,
+ RC_FILE_TEMPORARY,
+ new_index);
+ if (src_index < 0) {
+ rc_error(var->C, "Rewrite of inst %u failed "
+ "Can't allocate source for "
+ "Inst %u src_type=%x "
+ "new_index=%u new_mask=%u\n",
+ var->Inst->IP, reader->Inst->IP, src_type, new_index, new_writemask);
+ continue;
+ }
+ }
+ reader->U.P.Arg->Swizzle = rc_rewrite_swizzle(
+ reader->U.P.Arg->Swizzle, conversion_swizzle);
+ if (reader->U.P.Arg->Source != RC_PAIR_PRESUB_SRC) {
+ reader->U.P.Arg->Source = src_index;
+ }
+ }
+ }
+}
+
+/**
+ * Compute the live intervals for var and its friends.
+ */
+void rc_variable_compute_live_intervals(struct rc_variable * var)
+{
+ while(var) {
+ unsigned int i;
+ unsigned int start = var->Inst->IP;
+
+ for (i = 0; i < var->ReaderCount; i++) {
+ unsigned int chan;
+ unsigned int chan_start = start;
+ unsigned int chan_end = var->Readers[i].Inst->IP;
+ unsigned int mask = var->Readers[i].WriteMask;
+ struct rc_instruction * inst;
+
+ /* Extend the live interval of T0 to the start of the
+ * loop for sequences like:
+ * BGNLOOP
+ * read T0
+ * ...
+ * write T0
+ * ENDLOOP
+ */
+ if (var->Readers[i].Inst->IP < start) {
+ struct rc_instruction * bgnloop =
+ rc_match_endloop(var->Readers[i].Inst);
+ chan_start = bgnloop->IP;
+ }
+
+ /* Extend the live interval of T0 to the start of the
+ * loop in case there is a BRK instruction in the loop
+ * (we don't actually check for a BRK instruction we
+ * assume there is one somewhere in the loop, which
+ * there usually is) for sequences like:
+ * BGNLOOP
+ * ...
+ * conditional BRK
+ * ...
+ * write T0
+ * ENDLOOP
+ * read T0
+ ***************************************************
+ * Extend the live interval of T0 to the end of the
+ * loop for sequences like:
+ * write T0
+ * BGNLOOP
+ * ...
+ * read T0
+ * ENDLOOP
+ */
+ for (inst = var->Inst; inst != var->Readers[i].Inst;
+ inst = inst->Next) {
+ rc_opcode op = rc_get_flow_control_inst(inst);
+ if (op == RC_OPCODE_ENDLOOP) {
+ struct rc_instruction * bgnloop =
+ rc_match_endloop(inst);
+ if (bgnloop->IP < chan_start) {
+ chan_start = bgnloop->IP;
+ }
+ } else if (op == RC_OPCODE_BGNLOOP) {
+ struct rc_instruction * endloop =
+ rc_match_bgnloop(inst);
+ if (endloop->IP > chan_end) {
+ chan_end = endloop->IP;
+ }
+ }
+ }
+
+ for (chan = 0; chan < 4; chan++) {
+ if ((mask >> chan) & 0x1) {
+ if (!var->Live[chan].Used
+ || chan_start < var->Live[chan].Start) {
+ var->Live[chan].Start =
+ chan_start;
+ }
+ if (!var->Live[chan].Used
+ || chan_end > var->Live[chan].End) {
+ var->Live[chan].End = chan_end;
+ }
+ var->Live[chan].Used = 1;
+ }
+ }
+ }
+ var = var->Friend;
+ }
+}
+
+/**
+ * @return 1 if a and b share a reader
+ * @return 0 if they do not
+ */
+static unsigned int readers_intersect(
+ struct rc_variable * a,
+ struct rc_variable * b)
+{
+ unsigned int a_index, b_index;
+ for (a_index = 0; a_index < a->ReaderCount; a_index++) {
+ struct rc_reader reader_a = a->Readers[a_index];
+ for (b_index = 0; b_index < b->ReaderCount; b_index++) {
+ struct rc_reader reader_b = b->Readers[b_index];
+ if (reader_a.Inst->Type == RC_INSTRUCTION_NORMAL
+ && reader_b.Inst->Type == RC_INSTRUCTION_NORMAL
+ && reader_a.U.I.Src == reader_b.U.I.Src) {
+
+ return 1;
+ }
+ if (reader_a.Inst->Type == RC_INSTRUCTION_PAIR
+ && reader_b.Inst->Type == RC_INSTRUCTION_PAIR
+ && reader_a.U.P.Src == reader_b.U.P.Src) {
+
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+void rc_variable_add_friend(
+ struct rc_variable * var,
+ struct rc_variable * friend)
+{
+ assert(var->Dst.Index == friend->Dst.Index);
+ while(var->Friend) {
+ var = var->Friend;
+ }
+ var->Friend = friend;
+}
+
+struct rc_variable * rc_variable(
+ struct radeon_compiler * c,
+ unsigned int DstFile,
+ unsigned int DstIndex,
+ unsigned int DstWriteMask,
+ struct rc_reader_data * reader_data)
+{
+ struct rc_variable * new =
+ memory_pool_malloc(&c->Pool, sizeof(struct rc_variable));
+ memset(new, 0, sizeof(struct rc_variable));
+ new->C = c;
+ new->Dst.File = DstFile;
+ new->Dst.Index = DstIndex;
+ new->Dst.WriteMask = DstWriteMask;
+ if (reader_data) {
+ new->Inst = reader_data->Writer;
+ new->ReaderCount = reader_data->ReaderCount;
+ new->Readers = reader_data->Readers;
+ }
+ return new;
+}
+
+static void get_variable_helper(
+ struct rc_list ** aborted_list,
+ struct rc_list ** variable_list,
+ unsigned int aborted,
+ struct rc_variable * variable)
+{
+ if (aborted) {
+ rc_list_add(aborted_list, rc_list(&variable->C->Pool, variable));
+ } else {
+ rc_list_add(variable_list, rc_list(&variable->C->Pool, variable));
+ }
+}
+
+static void get_variable_pair_helper(
+ struct rc_list ** aborted_list,
+ struct rc_list ** variable_list,
+ struct radeon_compiler * c,
+ struct rc_instruction * inst,
+ struct rc_pair_sub_instruction * sub_inst)
+{
+ struct rc_reader_data reader_data;
+ struct rc_variable * new_var;
+ rc_register_file file;
+ unsigned int writemask;
+
+ if (sub_inst->Opcode == RC_OPCODE_NOP) {
+ return;
+ }
+ memset(&reader_data, 0, sizeof(struct rc_reader_data));
+ rc_get_readers_sub(c, inst, sub_inst, &reader_data, NULL, NULL, NULL);
+
+ if (reader_data.ReaderCount == 0) {
+ return;
+ }
+
+ if (sub_inst->WriteMask) {
+ file = RC_FILE_TEMPORARY;
+ writemask = sub_inst->WriteMask;
+ } else if (sub_inst->OutputWriteMask) {
+ file = RC_FILE_OUTPUT;
+ writemask = sub_inst->OutputWriteMask;
+ } else {
+ writemask = 0;
+ file = RC_FILE_NONE;
+ }
+ new_var = rc_variable(c, file, sub_inst->DestIndex, writemask,
+ &reader_data);
+ get_variable_helper(aborted_list, variable_list, reader_data.Abort,
+ new_var);
+}
+
+/**
+ * Generate a list of variables used by the shader program. Each instruction
+ * that writes to a register is considered a variable. The struct rc_variable
+ * data structure includes a list of readers and is essentially a
+ * definition-use chain. Any two variables that share a reader are considered
+ * "friends" and they are linked together via the Friend attribute.
+ */
+struct rc_list * rc_get_variables(struct radeon_compiler * c)
+{
+ struct rc_instruction * inst;
+ struct rc_list * aborted_list = NULL;
+ struct rc_list * variable_list = NULL;
+ struct rc_list * var_ptr;
+ struct rc_list * search_ptr;
+
+ for (inst = c->Program.Instructions.Next;
+ inst != &c->Program.Instructions;
+ inst = inst->Next) {
+ struct rc_reader_data reader_data;
+ struct rc_variable * new_var;
+ memset(&reader_data, 0, sizeof(reader_data));
+
+ if (inst->Type == RC_INSTRUCTION_NORMAL) {
+ rc_get_readers(c, inst, &reader_data, NULL, NULL, NULL);
+ if (reader_data.ReaderCount == 0) {
+ continue;
+ }
+ new_var = rc_variable(c, inst->U.I.DstReg.File,
+ inst->U.I.DstReg.Index,
+ inst->U.I.DstReg.WriteMask, &reader_data);
+ get_variable_helper(&aborted_list, &variable_list,
+ reader_data.Abort, new_var);
+ } else {
+ get_variable_pair_helper(&aborted_list, &variable_list,
+ c, inst, &inst->U.P.RGB);
+ get_variable_pair_helper(&aborted_list, &variable_list,
+ c, inst, &inst->U.P.Alpha);
+ }
+ }
+
+ /* The aborted_list contains a list of variables that might share a
+ * reader with another variable. We need to search through this list
+ * and pair together variables that do share the same reader.
+ */
+ while (aborted_list) {
+ struct rc_list * search_ptr_next;
+ var_ptr = aborted_list;
+
+ search_ptr = var_ptr->Next;
+ while(search_ptr) {
+ search_ptr_next = search_ptr->Next;
+ if (readers_intersect(var_ptr->Item, search_ptr->Item)){
+ rc_list_remove(&aborted_list, search_ptr);
+ rc_variable_add_friend(var_ptr->Item,
+ search_ptr->Item);
+ }
+ search_ptr = search_ptr_next;
+ }
+ rc_list_remove(&aborted_list, var_ptr);
+ rc_list_add(&variable_list, rc_list(
+ &((struct rc_variable*)(var_ptr->Item))->C->Pool,
+ var_ptr->Item));
+ }
+ return variable_list;
+}
+
+/**
+ * @return The bitwise or of the writemasks of a variable and all of its
+ * friends.
+ */
+unsigned int rc_variable_writemask_sum(struct rc_variable * var)
+{
+ unsigned int writemask = 0;
+ while(var) {
+ writemask |= var->Dst.WriteMask;
+ var = var->Friend;
+ }
+ return writemask;
+}
+
+/*
+ * @return A list of readers for a variable and its friends. Readers
+ * that read from two different variable friends are only included once in
+ * this list.
+ */
+struct rc_list * rc_variable_readers_union(struct rc_variable * var)
+{
+ struct rc_list * list = NULL;
+ while (var) {
+ unsigned int i;
+ for (i = 0; i < var->ReaderCount; i++) {
+ struct rc_list * temp;
+ struct rc_reader * a = &var->Readers[i];
+ unsigned int match = 0;
+ for (temp = list; temp; temp = temp->Next) {
+ struct rc_reader * b = temp->Item;
+ if (a->Inst->Type != b->Inst->Type) {
+ continue;
+ }
+ if (a->Inst->Type == RC_INSTRUCTION_NORMAL) {
+ if (a->U.I.Src == b->U.I.Src) {
+ match = 1;
+ break;
+ }
+ }
+ if (a->Inst->Type == RC_INSTRUCTION_PAIR) {
+ if (a->U.P.Arg == b->U.P.Arg
+ && a->U.P.Src == b->U.P.Src) {
+ match = 1;
+ break;
+ }
+ }
+ }
+ if (match) {
+ continue;
+ }
+ rc_list_add(&list, rc_list(&var->C->Pool, a));
+ }
+ var = var->Friend;
+ }
+ return list;
+}
+
+void rc_variable_print(struct rc_variable * var)
+{
+ unsigned int i;
+ while (var) {
+ fprintf(stderr, "%u: TEMP[%u].%u: ",
+ var->Inst->IP, var->Dst.Index, var->Dst.WriteMask);
+ for (i = 0; i < 4; i++) {
+ fprintf(stderr, "chan %u: start=%u end=%u ", i,
+ var->Live[i].Start, var->Live[i].End);
+ }
+ fprintf(stderr, "%u readers\n", var->ReaderCount);
+ if (var->Friend) {
+ fprintf(stderr, "Friend: \n\t");
+ }
+ var = var->Friend;
+ }
+}
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_variable.h b/src/mesa/drivers/dri/r300/compiler/radeon_variable.h
new file mode 100644
index 00000000000..b8fbcaa4029
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_variable.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2011 Tom Stellard <[email protected]>
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef RADEON_VARIABLE_H
+#define RADEON_VARIABLE_H
+
+#include "radeon_compiler.h"
+
+struct radeon_compiler;
+struct rc_list;
+struct rc_reader_data;
+struct rc_readers;
+
+struct live_intervals {
+ int Start;
+ int End;
+ int Used;
+};
+
+struct rc_variable {
+ struct radeon_compiler * C;
+ struct rc_dst_register Dst;
+
+ struct rc_instruction * Inst;
+ unsigned int ReaderCount;
+ struct rc_reader * Readers;
+ struct live_intervals Live[4];
+
+ /* A friend is a variable that shares a reader with another variable.
+ */
+ struct rc_variable * Friend;
+};
+
+void rc_variable_change_dst(
+ struct rc_variable * var,
+ unsigned int new_index,
+ unsigned int new_writemask);
+
+void rc_variable_compute_live_intervals(struct rc_variable * var);
+
+void rc_variable_add_friend(
+ struct rc_variable * var,
+ struct rc_variable * friend);
+
+struct rc_variable * rc_variable(
+ struct radeon_compiler * c,
+ unsigned int DstFile,
+ unsigned int DstIndex,
+ unsigned int DstWriteMask,
+ struct rc_reader_data * reader_data);
+
+struct rc_list * rc_get_variables(struct radeon_compiler * c);
+
+unsigned int rc_variable_writemask_sum(struct rc_variable * var);
+
+struct rc_list * rc_variable_readers_union(struct rc_variable * var);
+
+void rc_variable_print(struct rc_variable * var);
+
+#endif /* RADEON_VARIABLE_H */
diff --git a/src/mesa/drivers/dri/radeon/radeon_chipset.h b/src/mesa/drivers/dri/radeon/radeon_chipset.h
index 88b68e3d191..9145023826e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_chipset.h
+++ b/src/mesa/drivers/dri/radeon/radeon_chipset.h
@@ -406,6 +406,7 @@
#define PCI_CHIP_CEDAR_68E8 0x68E8
#define PCI_CHIP_CEDAR_68E9 0x68E9
#define PCI_CHIP_CEDAR_68F1 0x68F1
+#define PCI_CHIP_CEDAR_68F2 0x68F2
#define PCI_CHIP_CEDAR_68F8 0x68F8
#define PCI_CHIP_CEDAR_68F9 0x68F9
#define PCI_CHIP_CEDAR_68FE 0x68FE
@@ -426,7 +427,9 @@
#define PCI_CHIP_JUNIPER_68B0 0x68B0
#define PCI_CHIP_JUNIPER_68B8 0x68B8
#define PCI_CHIP_JUNIPER_68B9 0x68B9
+#define PCI_CHIP_JUNIPER_68BA 0x68BA
#define PCI_CHIP_JUNIPER_68BE 0x68BE
+#define PCI_CHIP_JUNIPER_68BF 0x68BF
#define PCI_CHIP_CYPRESS_6880 0x6880
#define PCI_CHIP_CYPRESS_6888 0x6888
@@ -434,6 +437,7 @@
#define PCI_CHIP_CYPRESS_688A 0x688A
#define PCI_CHIP_CYPRESS_6898 0x6898
#define PCI_CHIP_CYPRESS_6899 0x6899
+#define PCI_CHIP_CYPRESS_689B 0x689B
#define PCI_CHIP_CYPRESS_689E 0x689E
#define PCI_CHIP_HEMLOCK_689C 0x689C
@@ -458,6 +462,7 @@
#define PCI_CHIP_BARTS_6729 0x6729
#define PCI_CHIP_BARTS_6738 0x6738
#define PCI_CHIP_BARTS_6739 0x6739
+#define PCI_CHIP_BARTS_673E 0x673E
#define PCI_CHIP_TURKS_6740 0x6740
#define PCI_CHIP_TURKS_6741 0x6741
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index 732efe8bd85..6449229e088 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -1106,6 +1106,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
case PCI_CHIP_CEDAR_68E8:
case PCI_CHIP_CEDAR_68E9:
case PCI_CHIP_CEDAR_68F1:
+ case PCI_CHIP_CEDAR_68F2:
case PCI_CHIP_CEDAR_68F8:
case PCI_CHIP_CEDAR_68F9:
case PCI_CHIP_CEDAR_68FE:
@@ -1132,7 +1133,9 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
case PCI_CHIP_JUNIPER_68B0:
case PCI_CHIP_JUNIPER_68B8:
case PCI_CHIP_JUNIPER_68B9:
+ case PCI_CHIP_JUNIPER_68BA:
case PCI_CHIP_JUNIPER_68BE:
+ case PCI_CHIP_JUNIPER_68BF:
screen->chip_family = CHIP_FAMILY_JUNIPER;
screen->chip_flags = RADEON_CHIPSET_TCL;
break;
@@ -1143,6 +1146,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
case PCI_CHIP_CYPRESS_688A:
case PCI_CHIP_CYPRESS_6898:
case PCI_CHIP_CYPRESS_6899:
+ case PCI_CHIP_CYPRESS_689B:
case PCI_CHIP_CYPRESS_689E:
screen->chip_family = CHIP_FAMILY_CYPRESS;
screen->chip_flags = RADEON_CHIPSET_TCL;
@@ -1176,6 +1180,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
case PCI_CHIP_BARTS_6729:
case PCI_CHIP_BARTS_6738:
case PCI_CHIP_BARTS_6739:
+ case PCI_CHIP_BARTS_673E:
screen->chip_family = CHIP_FAMILY_BARTS;
screen->chip_flags = RADEON_CHIPSET_TCL;
break;
diff --git a/src/mesa/drivers/windows/fx/fx.rc b/src/mesa/drivers/windows/fx/fx.rc
deleted file mode 100644
index f920b8768dd..00000000000
--- a/src/mesa/drivers/windows/fx/fx.rc
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <windows.h>
-
-#define PRODNAME "Mesa 6.x"
-#define CONTACTSTR "http://www.mesa3d.org"
-#define HWSTR "3dfx Voodoo Graphics, Voodoo Rush, Voodoo^2, Voodoo Banshee, Velocity 100/200, Voodoo3, Voodoo4, Voodoo5"
-#define COPYRIGHTSTR "Copyright \251 Brian E. Paul"
-
-#define VERSIONSTR "6.3.0.1"
-#define MANVERSION 6
-#define MANREVISION 3
-#define BUILD_NUMBER 1
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION MANVERSION, MANREVISION, 0, BUILD_NUMBER
- PRODUCTVERSION MANVERSION, MANREVISION, 0, BUILD_NUMBER
- FILEFLAGSMASK 0x0030003FL
-
- FILEOS VOS_DOS_WINDOWS32
- FILETYPE VFT_DRV
- FILESUBTYPE VFT2_DRV_INSTALLABLE
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904E4"
- BEGIN
- VALUE "FileDescription", PRODNAME
- VALUE "FileVersion", VERSIONSTR
- VALUE "LegalCopyright", COPYRIGHTSTR
- VALUE "ProductName", PRODNAME
- VALUE "Graphics Subsystem", HWSTR
- VALUE "Contact", CONTACTSTR
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- /* the following line should be extended for localized versions */
- VALUE "Translation", 0x409, 1252
- END
-END
diff --git a/src/mesa/drivers/windows/fx/fxopengl.def b/src/mesa/drivers/windows/fx/fxopengl.def
deleted file mode 100644
index bc615e93ae6..00000000000
--- a/src/mesa/drivers/windows/fx/fxopengl.def
+++ /dev/null
@@ -1,953 +0,0 @@
-LIBRARY OpenGL32
-DESCRIPTION "Mesa 5.1"
-EXPORTS
- glAccum
- glActiveStencilFaceEXT
- glActiveTexture
- glActiveTextureARB
- glAlphaFunc
- glAreProgramsResidentNV
- glAreTexturesResident
- glAreTexturesResidentEXT
- glArrayElement
- glArrayElementEXT
- glBegin
- glBeginQueryARB
- glBindBufferARB
- glBindProgramARB
- glBindProgramNV
- glBindTexture
- glBindTextureEXT
- glBitmap
-;glBlendColor
-;glBlendColorEXT
- glBlendEquation
- glBlendEquationEXT
- glBlendFunc
- glBlendFuncSeparate
- glBlendFuncSeparateEXT
- glBlendFuncSeparateINGR
- glBufferDataARB
- glBufferSubDataARB
- glCallList
- glCallLists
- glClear
- glClearAccum
- glClearColor
- glClearDepth
- glClearIndex
- glClearStencil
- glClientActiveTexture
- glClientActiveTextureARB
- glClipPlane
- glColorMask
- glColorMaterial
- glColorPointer
- glColorPointerEXT
- glColorSubTable
- glColorSubTableEXT
- glColorTable
- glColorTableEXT
- glColorTableParameterfv
- glColorTableParameterfvSGI
- glColorTableParameteriv
- glColorTableParameterivSGI
- glColorTableSGI
- glColor3b
- glColor3bv
- glColor3d
- glColor3dv
- glColor3f
- glColor3fv
- glColor3i
- glColor3iv
- glColor3s
- glColor3sv
- glColor3ub
- glColor3ubv
- glColor3ui
- glColor3uiv
- glColor3us
- glColor3usv
- glColor4b
- glColor4bv
- glColor4d
- glColor4dv
- glColor4f
- glColor4fv
- glColor4i
- glColor4iv
- glColor4s
- glColor4sv
- glColor4ub
- glColor4ubv
- glColor4ui
- glColor4uiv
- glColor4us
- glColor4usv
- glCombinerInputNV
- glCombinerOutputNV
- glCombinerParameterfNV
- glCombinerParameterfvNV
- glCombinerParameteriNV
- glCombinerParameterivNV
- glCompressedTexImage1D
- glCompressedTexImage1DARB
- glCompressedTexImage2D
- glCompressedTexImage2DARB
- glCompressedTexImage3D
- glCompressedTexImage3DARB
- glCompressedTexSubImage1D
- glCompressedTexSubImage1DARB
- glCompressedTexSubImage2D
- glCompressedTexSubImage2DARB
- glCompressedTexSubImage3D
- glCompressedTexSubImage3DARB
- glConvolutionFilter1D
- glConvolutionFilter1DEXT
- glConvolutionFilter2D
- glConvolutionFilter2DEXT
- glConvolutionParameterf
- glConvolutionParameterfEXT
- glConvolutionParameterfv
- glConvolutionParameterfvEXT
- glConvolutionParameteri
- glConvolutionParameteriEXT
- glConvolutionParameteriv
- glConvolutionParameterivEXT
- glCopyColorSubTable
- glCopyColorSubTableEXT
- glCopyColorTable
- glCopyColorTableSGI
- glCopyConvolutionFilter1D
- glCopyConvolutionFilter1DEXT
- glCopyConvolutionFilter2D
- glCopyConvolutionFilter2DEXT
- glCopyPixels
- glCopyTexImage1D
- glCopyTexImage1DEXT
- glCopyTexImage2D
- glCopyTexImage2DEXT
- glCopyTexSubImage1D
- glCopyTexSubImage1DEXT
- glCopyTexSubImage2D
- glCopyTexSubImage2DEXT
- glCopyTexSubImage3D
- glCopyTexSubImage3DEXT
- glCullFace
- glDeleteBuffersARB
- glDeleteFencesNV
- glDeleteLists
- glDeleteProgramsARB
- glDeleteProgramsNV
- glDeleteQueriesARB
- glDeleteTextures
- glDeleteTexturesEXT
- glDepthBoundsEXT
- glDepthFunc
- glDepthMask
- glDepthRange
- glDetailTexFuncSGIS
- glDisable
- glDisableClientState
- glDisableVertexAttribArrayARB
- glDrawArrays
- glDrawArraysEXT
- glDrawBuffer
- glDrawElements
- glDrawPixels
- glDrawRangeElements
- glDrawRangeElementsEXT
- glEdgeFlag
- glEdgeFlagPointer
- glEdgeFlagPointerEXT
- glEdgeFlagv
- glEnable
- glEnableClientState
- glEnableVertexAttribArrayARB
- glEnd
- glEndList
- glEndQueryARB
- glEvalCoord1d
- glEvalCoord1dv
- glEvalCoord1f
- glEvalCoord1fv
- glEvalCoord2d
- glEvalCoord2dv
- glEvalCoord2f
- glEvalCoord2fv
- glEvalMesh1
- glEvalMesh2
- glEvalPoint1
- glEvalPoint2
- glExecuteProgramNV
- glFeedbackBuffer
- glFinalCombinerInputNV
- glFinish
- glFinishFenceNV
- glFlush
- glFlushRasterSGIX
- glFlushVertexArrayRangeNV
- glFogCoordd
- glFogCoorddEXT
- glFogCoorddv
- glFogCoorddvEXT
- glFogCoordf
- glFogCoordfEXT
- glFogCoordfv
- glFogCoordfvEXT
- glFogCoordPointer
- glFogCoordPointerEXT
- glFogf
- glFogfv
- glFogi
- glFogiv
- glFragmentColorMaterialSGIX
- glFragmentLightfSGIX
- glFragmentLightfvSGIX
- glFragmentLightiSGIX
- glFragmentLightivSGIX
- glFragmentLightModelfSGIX
- glFragmentLightModelfvSGIX
- glFragmentLightModeliSGIX
- glFragmentLightModelivSGIX
- glFragmentMaterialfSGIX
- glFragmentMaterialfvSGIX
- glFragmentMaterialiSGIX
- glFragmentMaterialivSGIX
- glFrameZoomSGIX
- glFrontFace
- glFrustum
- glGenBuffersARB
- glGenFencesNV
- glGenLists
- glGenProgramsARB
- glGenProgramsNV
- glGenQueriesARB
- glGenTextures
- glGenTexturesEXT
- glGetBooleanv
- glGetBufferParameterivARB
- glGetBufferPointervARB
- glGetBufferSubDataARB
- glGetClipPlane
- glGetColorTable
- glGetColorTableEXT
- glGetColorTableParameterfv
- glGetColorTableParameterfvEXT
- glGetColorTableParameterfvSGI
- glGetColorTableParameteriv
- glGetColorTableParameterivEXT
- glGetColorTableParameterivSGI
- glGetColorTableSGI
- glGetCombinerInputParameterfvNV
- glGetCombinerInputParameterivNV
- glGetCombinerOutputParameterfvNV
- glGetCombinerOutputParameterivNV
- glGetCompressedTexImage
- glGetCompressedTexImageARB
- glGetConvolutionFilter
- glGetConvolutionFilterEXT
- glGetConvolutionParameterfv
- glGetConvolutionParameterfvEXT
- glGetConvolutionParameteriv
- glGetConvolutionParameterivEXT
- glGetDetailTexFuncSGIS
- glGetDoublev
- glGetError
- glGetFenceivNV
- glGetFinalCombinerInputParameterfvNV
- glGetFinalCombinerInputParameterivNV
- glGetFloatv
- glGetFragmentLightfvSGIX
- glGetFragmentLightivSGIX
- glGetFragmentMaterialfvSGIX
- glGetFragmentMaterialivSGIX
- glGetHistogram
- glGetHistogramEXT
- glGetHistogramParameterfv
- glGetHistogramParameterfvEXT
- glGetHistogramParameteriv
- glGetHistogramParameterivEXT
- glGetInstrumentsSGIX
- glGetIntegerv
- glGetLightfv
- glGetLightiv
- glGetListParameterfvSGIX
- glGetListParameterivSGIX
- glGetMapdv
- glGetMapfv
- glGetMapiv
- glGetMaterialfv
- glGetMaterialiv
- glGetMinmax
- glGetMinmaxEXT
- glGetMinmaxParameterfv
- glGetMinmaxParameterfvEXT
- glGetMinmaxParameteriv
- glGetMinmaxParameterivEXT
- glGetPixelMapfv
- glGetPixelMapuiv
- glGetPixelMapusv
- glGetPixelTexGenParameterfvSGIS
- glGetPixelTexGenParameterivSGIS
- glGetPointerv
- glGetPointervEXT
- glGetPolygonStipple
- glGetProgramEnvParameterdvARB
- glGetProgramEnvParameterfvARB
- glGetProgramivARB
- glGetProgramivNV
- glGetProgramLocalParameterdvARB
- glGetProgramLocalParameterfvARB
- glGetProgramNamedParameterdvNV
- glGetProgramNamedParameterfvNV
- glGetProgramParameterdvNV
- glGetProgramParameterfvNV
- glGetProgramStringARB
- glGetProgramStringNV
- glGetQueryivARB
- glGetQueryObjectivARB
- glGetQueryObjectuivARB
- glGetSeparableFilter
- glGetSeparableFilterEXT
- glGetSharpenTexFuncSGIS
- glGetString
- glGetTexEnvfv
- glGetTexEnviv
- glGetTexFilterFuncSGIS
- glGetTexGendv
- glGetTexGenfv
- glGetTexGeniv
- glGetTexImage
- glGetTexLevelParameterfv
- glGetTexLevelParameteriv
- glGetTexParameterfv
- glGetTexParameteriv
- glGetTrackMatrixivNV
- glGetVertexAttribdvARB
- glGetVertexAttribdvNV
- glGetVertexAttribfvARB
- glGetVertexAttribfvNV
- glGetVertexAttribivARB
- glGetVertexAttribivNV
- glGetVertexAttribPointervARB
- glGetVertexAttribPointervNV
- glHint
- glHintPGI
- glHistogram
- glHistogramEXT
- glIndexd
- glIndexdv
- glIndexf
- glIndexFuncEXT
- glIndexfv
- glIndexi
- glIndexiv
- glIndexMask
- glIndexMaterialEXT
- glIndexPointer
- glIndexPointerEXT
- glIndexs
- glIndexsv
- glIndexub
- glIndexubv
- glInitNames
- glInstrumentsBufferSGIX
- glInterleavedArrays
- glIsBufferARB
- glIsEnabled
- glIsFenceNV
- glIsList
- glIsProgramARB
- glIsProgramNV
- glIsQueryARB
- glIsTexture
- glIsTextureEXT
- glLightEnviSGIX
- glLightf
- glLightfv
- glLighti
- glLightiv
- glLightModelf
- glLightModelfv
- glLightModeli
- glLightModeliv
- glLineStipple
- glLineWidth
- glListBase
- glListParameterfSGIX
- glListParameterfvSGIX
- glListParameteriSGIX
- glListParameterivSGIX
- glLoadIdentity
- glLoadMatrixd
- glLoadMatrixf
- glLoadName
- glLoadProgramNV
- glLoadTransposeMatrixd
- glLoadTransposeMatrixdARB
- glLoadTransposeMatrixf
- glLoadTransposeMatrixfARB
- glLockArraysEXT
- glLogicOp
- glMapBufferARB
- glMapGrid1d
- glMapGrid1f
- glMapGrid2d
- glMapGrid2f
- glMap1d
- glMap1f
- glMap2d
- glMap2f
- glMaterialf
- glMaterialfv
- glMateriali
- glMaterialiv
- glMatrixMode
- glMinmax
- glMinmaxEXT
- glMultiDrawArrays
- glMultiDrawArraysEXT
- glMultiDrawElements
- glMultiDrawElementsEXT
- glMultiModeDrawArraysIBM
- glMultiModeDrawElementsIBM
- glMultiTexCoord1d
- glMultiTexCoord1dARB
- glMultiTexCoord1dv
- glMultiTexCoord1dvARB
- glMultiTexCoord1f
- glMultiTexCoord1fARB
- glMultiTexCoord1fv
- glMultiTexCoord1fvARB
- glMultiTexCoord1i
- glMultiTexCoord1iARB
- glMultiTexCoord1iv
- glMultiTexCoord1ivARB
- glMultiTexCoord1s
- glMultiTexCoord1sARB
- glMultiTexCoord1sv
- glMultiTexCoord1svARB
- glMultiTexCoord2d
- glMultiTexCoord2dARB
- glMultiTexCoord2dv
- glMultiTexCoord2dvARB
- glMultiTexCoord2f
- glMultiTexCoord2fARB
- glMultiTexCoord2fv
- glMultiTexCoord2fvARB
- glMultiTexCoord2i
- glMultiTexCoord2iARB
- glMultiTexCoord2iv
- glMultiTexCoord2ivARB
- glMultiTexCoord2s
- glMultiTexCoord2sARB
- glMultiTexCoord2sv
- glMultiTexCoord2svARB
- glMultiTexCoord3d
- glMultiTexCoord3dARB
- glMultiTexCoord3dv
- glMultiTexCoord3dvARB
- glMultiTexCoord3f
- glMultiTexCoord3fARB
- glMultiTexCoord3fv
- glMultiTexCoord3fvARB
- glMultiTexCoord3i
- glMultiTexCoord3iARB
- glMultiTexCoord3iv
- glMultiTexCoord3ivARB
- glMultiTexCoord3s
- glMultiTexCoord3sARB
- glMultiTexCoord3sv
- glMultiTexCoord3svARB
- glMultiTexCoord4d
- glMultiTexCoord4dARB
- glMultiTexCoord4dv
- glMultiTexCoord4dvARB
- glMultiTexCoord4f
- glMultiTexCoord4fARB
- glMultiTexCoord4fv
- glMultiTexCoord4fvARB
- glMultiTexCoord4i
- glMultiTexCoord4iARB
- glMultiTexCoord4iv
- glMultiTexCoord4ivARB
- glMultiTexCoord4s
- glMultiTexCoord4sARB
- glMultiTexCoord4sv
- glMultiTexCoord4svARB
- glMultMatrixd
- glMultMatrixf
- glMultTransposeMatrixd
- glMultTransposeMatrixdARB
- glMultTransposeMatrixf
- glMultTransposeMatrixfARB
- glNewList
- glNormalPointer
- glNormalPointerEXT
- glNormal3b
- glNormal3bv
- glNormal3d
- glNormal3dv
- glNormal3f
- glNormal3fv
- glNormal3i
- glNormal3iv
- glNormal3s
- glNormal3sv
- glOrtho
- glPassThrough
- glPixelMapfv
- glPixelMapuiv
- glPixelMapusv
- glPixelStoref
- glPixelStorei
- glPixelTexGenParameterfSGIS
- glPixelTexGenParameterfvSGIS
- glPixelTexGenParameteriSGIS
- glPixelTexGenParameterivSGIS
- glPixelTexGenSGIX
- glPixelTransferf
- glPixelTransferi
- glPixelZoom
- glPointParameterf
- glPointParameterfARB
- glPointParameterfEXT
- glPointParameterfSGIS
- glPointParameterfv
- glPointParameterfvARB
- glPointParameterfvEXT
- glPointParameterfvSGIS
- glPointParameteri
- glPointParameteriNV
- glPointParameteriv
- glPointParameterivNV
- glPointSize
- glPollInstrumentsSGIX
- glPolygonMode
- glPolygonOffset
- glPolygonOffsetEXT
- glPolygonStipple
- glPopAttrib
- glPopClientAttrib
- glPopMatrix
- glPopName
- glPrioritizeTextures
- glPrioritizeTexturesEXT
- glProgramEnvParameter4dARB
- glProgramEnvParameter4dvARB
- glProgramEnvParameter4fARB
- glProgramEnvParameter4fvARB
- glProgramLocalParameter4dARB
- glProgramLocalParameter4dvARB
- glProgramLocalParameter4fARB
- glProgramLocalParameter4fvARB
- glProgramNamedParameter4dNV
- glProgramNamedParameter4dvNV
- glProgramNamedParameter4fNV
- glProgramNamedParameter4fvNV
- glProgramParameters4dvNV
- glProgramParameters4fvNV
- glProgramParameter4dNV
- glProgramParameter4dvNV
- glProgramParameter4fNV
- glProgramParameter4fvNV
- glProgramStringARB
- glPushAttrib
- glPushClientAttrib
- glPushMatrix
- glPushName
- glRasterPos2d
- glRasterPos2dv
- glRasterPos2f
- glRasterPos2fv
- glRasterPos2i
- glRasterPos2iv
- glRasterPos2s
- glRasterPos2sv
- glRasterPos3d
- glRasterPos3dv
- glRasterPos3f
- glRasterPos3fv
- glRasterPos3i
- glRasterPos3iv
- glRasterPos3s
- glRasterPos3sv
- glRasterPos4d
- glRasterPos4dv
- glRasterPos4f
- glRasterPos4fv
- glRasterPos4i
- glRasterPos4iv
- glRasterPos4s
- glRasterPos4sv
- glReadBuffer
- glReadInstrumentsSGIX
- glReadPixels
- glRectd
- glRectdv
- glRectf
- glRectfv
- glRecti
- glRectiv
- glRects
- glRectsv
- glReferencePlaneSGIX
- glRenderMode
- glRequestResidentProgramsNV
- glResetHistogram
- glResetHistogramEXT
- glResetMinmax
- glResetMinmaxEXT
- glResizeBuffersMESA
- glRotated
- glRotatef
- glSampleCoverage
- glSampleCoverageARB
- glSampleMaskEXT
- glSampleMaskSGIS
- glSamplePatternEXT
- glSamplePatternSGIS
- glScaled
- glScalef
- glScissor
- glSecondaryColorPointer
- glSecondaryColorPointerEXT
- glSecondaryColor3b
- glSecondaryColor3bEXT
- glSecondaryColor3bv
- glSecondaryColor3bvEXT
- glSecondaryColor3d
- glSecondaryColor3dEXT
- glSecondaryColor3dv
- glSecondaryColor3dvEXT
- glSecondaryColor3f
- glSecondaryColor3fEXT
- glSecondaryColor3fv
- glSecondaryColor3fvEXT
- glSecondaryColor3i
- glSecondaryColor3iEXT
- glSecondaryColor3iv
- glSecondaryColor3ivEXT
- glSecondaryColor3s
- glSecondaryColor3sEXT
- glSecondaryColor3sv
- glSecondaryColor3svEXT
- glSecondaryColor3ub
- glSecondaryColor3ubEXT
- glSecondaryColor3ubv
- glSecondaryColor3ubvEXT
- glSecondaryColor3ui
- glSecondaryColor3uiEXT
- glSecondaryColor3uiv
- glSecondaryColor3uivEXT
- glSecondaryColor3us
- glSecondaryColor3usEXT
- glSecondaryColor3usv
- glSecondaryColor3usvEXT
- glSelectBuffer
- glSeparableFilter2D
- glSeparableFilter2DEXT
- glSetFenceNV
- glShadeModel
- glSharpenTexFuncSGIS
- glSpriteParameterfSGIX
- glSpriteParameterfvSGIX
- glSpriteParameteriSGIX
- glSpriteParameterivSGIX
- glStartInstrumentsSGIX
- glStencilFunc
- glStencilMask
- glStencilOp
- glStopInstrumentsSGIX
- glTagSampleBufferSGIX
- glTbufferMask3DFX
- glTestFenceNV
- glTexCoordPointer
- glTexCoordPointerEXT
- glTexCoord1d
- glTexCoord1dv
- glTexCoord1f
- glTexCoord1fv
- glTexCoord1i
- glTexCoord1iv
- glTexCoord1s
- glTexCoord1sv
- glTexCoord2d
- glTexCoord2dv
- glTexCoord2f
- glTexCoord2fv
- glTexCoord2i
- glTexCoord2iv
- glTexCoord2s
- glTexCoord2sv
- glTexCoord3d
- glTexCoord3dv
- glTexCoord3f
- glTexCoord3fv
- glTexCoord3i
- glTexCoord3iv
- glTexCoord3s
- glTexCoord3sv
- glTexCoord4d
- glTexCoord4dv
- glTexCoord4f
- glTexCoord4fv
- glTexCoord4i
- glTexCoord4iv
- glTexCoord4s
- glTexCoord4sv
- glTexEnvf
- glTexEnvfv
- glTexEnvi
- glTexEnviv
- glTexFilterFuncSGIS
- glTexGend
- glTexGendv
- glTexGenf
- glTexGenfv
- glTexGeni
- glTexGeniv
- glTexImage1D
- glTexImage2D
- glTexImage3D
- glTexImage3DEXT
- glTexImage4DSGIS
- glTexParameterf
- glTexParameterfv
- glTexParameteri
- glTexParameteriv
- glTexSubImage1D
- glTexSubImage1DEXT
- glTexSubImage2D
- glTexSubImage2DEXT
- glTexSubImage3D
- glTexSubImage3DEXT
- glTexSubImage4DSGIS
- glTrackMatrixNV
- glTranslated
- glTranslatef
- glUnlockArraysEXT
- glUnmapBufferARB
- glVertexArrayRangeNV
- glVertexAttribPointerARB
- glVertexAttribPointerNV
- glVertexAttribs1dvNV
- glVertexAttribs1fvNV
- glVertexAttribs1svNV
- glVertexAttribs2dvNV
- glVertexAttribs2fvNV
- glVertexAttribs2svNV
- glVertexAttribs3dvNV
- glVertexAttribs3fvNV
- glVertexAttribs3svNV
- glVertexAttribs4dvNV
- glVertexAttribs4fvNV
- glVertexAttribs4svNV
- glVertexAttribs4ubvNV
- glVertexAttrib1dARB
- glVertexAttrib1dNV
- glVertexAttrib1dvARB
- glVertexAttrib1dvNV
- glVertexAttrib1fARB
- glVertexAttrib1fNV
- glVertexAttrib1fvARB
- glVertexAttrib1fvNV
- glVertexAttrib1sARB
- glVertexAttrib1sNV
- glVertexAttrib1svARB
- glVertexAttrib1svNV
- glVertexAttrib2dARB
- glVertexAttrib2dNV
- glVertexAttrib2dvARB
- glVertexAttrib2dvNV
- glVertexAttrib2fARB
- glVertexAttrib2fNV
- glVertexAttrib2fvARB
- glVertexAttrib2fvNV
- glVertexAttrib2sARB
- glVertexAttrib2sNV
- glVertexAttrib2svARB
- glVertexAttrib2svNV
- glVertexAttrib3dARB
- glVertexAttrib3dNV
- glVertexAttrib3dvARB
- glVertexAttrib3dvNV
- glVertexAttrib3fARB
- glVertexAttrib3fNV
- glVertexAttrib3fvARB
- glVertexAttrib3fvNV
- glVertexAttrib3sARB
- glVertexAttrib3sNV
- glVertexAttrib3svARB
- glVertexAttrib3svNV
- glVertexAttrib4bvARB
- glVertexAttrib4dARB
- glVertexAttrib4dNV
- glVertexAttrib4dvARB
- glVertexAttrib4dvNV
- glVertexAttrib4fARB
- glVertexAttrib4fNV
- glVertexAttrib4fvARB
- glVertexAttrib4fvNV
- glVertexAttrib4ivARB
- glVertexAttrib4NbvARB
- glVertexAttrib4NivARB
- glVertexAttrib4NsvARB
- glVertexAttrib4NubARB
- glVertexAttrib4NubvARB
- glVertexAttrib4NuivARB
- glVertexAttrib4NusvARB
- glVertexAttrib4sARB
- glVertexAttrib4sNV
- glVertexAttrib4svARB
- glVertexAttrib4svNV
- glVertexAttrib4ubNV
- glVertexAttrib4ubvARB
- glVertexAttrib4ubvNV
- glVertexAttrib4uivARB
- glVertexAttrib4usvARB
- glVertexPointer
- glVertexPointerEXT
- glVertexWeightfEXT
- glVertexWeightfvEXT
- glVertexWeightPointerEXT
- glVertex2d
- glVertex2dv
- glVertex2f
- glVertex2fv
- glVertex2i
- glVertex2iv
- glVertex2s
- glVertex2sv
- glVertex3d
- glVertex3dv
- glVertex3f
- glVertex3fv
- glVertex3i
- glVertex3iv
- glVertex3s
- glVertex3sv
- glVertex4d
- glVertex4dv
- glVertex4f
- glVertex4fv
- glVertex4i
- glVertex4iv
- glVertex4s
- glVertex4sv
- glViewport
- glWindowPos2d
- glWindowPos2dARB
- glWindowPos2dMESA
- glWindowPos2dv
- glWindowPos2dvARB
- glWindowPos2dvMESA
- glWindowPos2f
- glWindowPos2fARB
- glWindowPos2fMESA
- glWindowPos2fv
- glWindowPos2fvARB
- glWindowPos2fvMESA
- glWindowPos2i
- glWindowPos2iARB
- glWindowPos2iMESA
- glWindowPos2iv
- glWindowPos2ivARB
- glWindowPos2ivMESA
- glWindowPos2s
- glWindowPos2sARB
- glWindowPos2sMESA
- glWindowPos2sv
- glWindowPos2svARB
- glWindowPos2svMESA
- glWindowPos3d
- glWindowPos3dARB
- glWindowPos3dMESA
- glWindowPos3dv
- glWindowPos3dvARB
- glWindowPos3dvMESA
- glWindowPos3f
- glWindowPos3fARB
- glWindowPos3fMESA
- glWindowPos3fv
- glWindowPos3fvARB
- glWindowPos3fvMESA
- glWindowPos3i
- glWindowPos3iARB
- glWindowPos3iMESA
- glWindowPos3iv
- glWindowPos3ivARB
- glWindowPos3ivMESA
- glWindowPos3s
- glWindowPos3sARB
- glWindowPos3sMESA
- glWindowPos3sv
- glWindowPos3svARB
- glWindowPos3svMESA
- glWindowPos4dMESA
- glWindowPos4dvMESA
- glWindowPos4fMESA
- glWindowPos4fvMESA
- glWindowPos4iMESA
- glWindowPos4ivMESA
- glWindowPos4sMESA
- glWindowPos4svMESA
- fxCloseHardware
-;fxGetScreenGeometry
- fxMesaCreateBestContext
- fxMesaCreateContext
- fxMesaDestroyContext
- fxMesaGetCurrentContext
- fxMesaMakeCurrent
- fxMesaSelectCurrentBoard
-;fxMesaSetNearFar
- fxMesaSwapBuffers
- fxMesaUpdateScreenSize
- wglChoosePixelFormat
- wglCopyContext
- wglCreateContext
- wglCreateLayerContext
- wglDeleteContext
- wglDescribeLayerPlane
- wglDescribePixelFormat
- wglGetCurrentContext
- wglGetCurrentDC
- wglGetDefaultProcAddress
- wglGetLayerPaletteEntries
- wglGetPixelFormat
- wglGetProcAddress
- wglMakeCurrent
- wglRealizeLayerPalette
- wglSetLayerPaletteEntries
- wglSetPixelFormat
- wglShareLists
- wglSwapBuffers
- wglSwapLayerBuffers
- wglUseFontBitmapsA
- wglUseFontBitmapsW
- wglUseFontOutlinesA
- wglUseFontOutlinesW
- ChoosePixelFormat
- DescribePixelFormat
- GetPixelFormat
- SetPixelFormat
- SwapBuffers
- DrvCopyContext
- DrvCreateContext
- DrvCreateLayerContext
- DrvDeleteContext
- DrvDescribeLayerPlane
- DrvDescribePixelFormat
- DrvGetLayerPaletteEntries
- DrvGetProcAddress
- DrvReleaseContext
- DrvRealizeLayerPalette
- DrvSetContext
- DrvSetLayerPaletteEntries
- DrvSetPixelFormat
- DrvShareLists
- DrvSwapBuffers
- DrvSwapLayerBuffers
- DrvValidateVersion
diff --git a/src/mesa/drivers/windows/fx/fxwgl.c b/src/mesa/drivers/windows/fx/fxwgl.c
deleted file mode 100644
index ce76ecd1568..00000000000
--- a/src/mesa/drivers/windows/fx/fxwgl.c
+++ /dev/null
@@ -1,1307 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 4.0
- *
- * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/* Authors:
- * David Bucciarelli
- * Brian Paul
- * Keith Whitwell
- * Hiroshi Morii
- * Daniel Borca
- */
-
-/* fxwgl.c - Microsoft wgl functions emulation for
- * 3Dfx VooDoo/Mesa interface
- */
-
-
-#ifdef _WIN32
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <windows.h>
-#define GL_GLEXT_PROTOTYPES
-#include "GL/gl.h"
-#include "GL/glext.h"
-
-#ifdef __cplusplus
-}
-#endif
-
-#include "GL/fxmesa.h"
-#include "glheader.h"
-#include "glapi.h"
-#include "imports.h"
-#include "../../glide/fxdrv.h"
-
-#define MAX_MESA_ATTRS 20
-
-#if (_MSC_VER >= 1200)
-#pragma warning( push )
-#pragma warning( disable : 4273 )
-#endif
-
-struct __extensions__ {
- PROC proc;
- char *name;
-};
-
-struct __pixelformat__ {
- PIXELFORMATDESCRIPTOR pfd;
- GLint mesaAttr[MAX_MESA_ATTRS];
-};
-
-WINGDIAPI void GLAPIENTRY gl3DfxSetPaletteEXT(GLuint *);
-static GLushort gammaTable[3 * 256];
-
-struct __pixelformat__ pix[] = {
- /* 16bit RGB565 single buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL,
- PFD_TYPE_RGBA,
- 16,
- 5, 0, 6, 5, 5, 11, 0, 0,
- 0, 0, 0, 0, 0,
- 16,
- 0,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 16,
- FXMESA_ALPHA_SIZE, 0,
- FXMESA_DEPTH_SIZE, 16,
- FXMESA_STENCIL_SIZE, 0,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
- ,
- /* 16bit RGB565 double buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
- PFD_DOUBLEBUFFER | PFD_SWAP_COPY,
- PFD_TYPE_RGBA,
- 16,
- 5, 0, 6, 5, 5, 11, 0, 0,
- 0, 0, 0, 0, 0,
- 16,
- 0,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 16,
- FXMESA_DOUBLEBUFFER,
- FXMESA_ALPHA_SIZE, 0,
- FXMESA_DEPTH_SIZE, 16,
- FXMESA_STENCIL_SIZE, 0,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
- ,
- /* 16bit ARGB1555 single buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL,
- PFD_TYPE_RGBA,
- 16,
- 5, 0, 5, 5, 5, 10, 1, 15,
- 0, 0, 0, 0, 0,
- 16,
- 0,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 15,
- FXMESA_ALPHA_SIZE, 1,
- FXMESA_DEPTH_SIZE, 16,
- FXMESA_STENCIL_SIZE, 0,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
- ,
- /* 16bit ARGB1555 double buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
- PFD_DOUBLEBUFFER | PFD_SWAP_COPY,
- PFD_TYPE_RGBA,
- 16,
- 5, 0, 5, 5, 5, 10, 1, 15,
- 0, 0, 0, 0, 0,
- 16,
- 0,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 15,
- FXMESA_DOUBLEBUFFER,
- FXMESA_ALPHA_SIZE, 1,
- FXMESA_DEPTH_SIZE, 16,
- FXMESA_STENCIL_SIZE, 0,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
- ,
- /* 32bit ARGB8888 single buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL,
- PFD_TYPE_RGBA,
- 32,
- 8, 0, 8, 8, 8, 16, 8, 24,
- 0, 0, 0, 0, 0,
- 24,
- 8,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 32,
- FXMESA_ALPHA_SIZE, 8,
- FXMESA_DEPTH_SIZE, 24,
- FXMESA_STENCIL_SIZE, 8,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
- ,
- /* 32bit ARGB8888 double buffer with depth */
- {
- {sizeof(PIXELFORMATDESCRIPTOR), 1,
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
- PFD_DOUBLEBUFFER | PFD_SWAP_COPY,
- PFD_TYPE_RGBA,
- 32,
- 8, 0, 8, 8, 8, 16, 8, 24,
- 0, 0, 0, 0, 0,
- 24,
- 8,
- 0,
- PFD_MAIN_PLANE,
- 0, 0, 0, 0}
- ,
- {FXMESA_COLORDEPTH, 32,
- FXMESA_DOUBLEBUFFER,
- FXMESA_ALPHA_SIZE, 8,
- FXMESA_DEPTH_SIZE, 24,
- FXMESA_STENCIL_SIZE, 8,
- FXMESA_ACCUM_SIZE, 0,
- FXMESA_NONE}
- }
-};
-
-static fxMesaContext ctx = NULL;
-static WNDPROC hWNDOldProc;
-static int curPFD = 0;
-static HDC hDC;
-static HWND hWND;
-
-static GLboolean haveDualHead;
-
-/* For the in-window-rendering hack */
-
-#ifndef GR_CONTROL_RESIZE
-/* Apparently GR_CONTROL_RESIZE can be ignored. OK? */
-#define GR_CONTROL_RESIZE -1
-#endif
-
-static GLboolean gdiWindowHack;
-static void *dibSurfacePtr;
-static BITMAPINFO *dibBMI;
-static HBITMAP dibHBM;
-static HWND dibWnd;
-
-static int
-env_check (const char *var, int val)
-{
- const char *env = getenv(var);
- return (env && (env[0] == val));
-}
-
-static LRESULT APIENTRY
-__wglMonitor (HWND hwnd, UINT message, UINT wParam, LONG lParam)
-{
- long ret; /* Now gives the resized window at the end to hWNDOldProc */
-
- if (ctx && hwnd == hWND) {
- switch (message) {
- case WM_PAINT:
- case WM_MOVE:
- break;
- case WM_DISPLAYCHANGE:
- case WM_SIZE:
-#if 0
- if (wParam != SIZE_MINIMIZED) {
- static int moving = 0;
- if (!moving) {
- if (!FX_grSstControl(GR_CONTROL_RESIZE)) {
- moving = 1;
- SetWindowPos(hwnd, 0, 0, 0, 300, 300, SWP_NOMOVE | SWP_NOZORDER);
- moving = 0;
- if (!FX_grSstControl(GR_CONTROL_RESIZE)) {
- /*MessageBox(0,_T("Error changing windowsize"),_T("fxMESA"),MB_OK);*/
- PostMessage(hWND, WM_CLOSE, 0, 0);
- }
- }
- /* Do the clipping in the glide library */
- grClipWindow(0, 0, FX_grSstScreenWidth(), FX_grSstScreenHeight());
- /* And let the new size set in the context */
- fxMesaUpdateScreenSize(ctx);
- }
- }
-#endif
- break;
- case WM_ACTIVATE:
- break;
- case WM_SHOWWINDOW:
- break;
- case WM_SYSKEYDOWN:
- case WM_SYSCHAR:
- break;
- }
- }
-
- /* Finally call the hWNDOldProc, which handles the resize with the
- * now changed window sizes */
- ret = CallWindowProc(hWNDOldProc, hwnd, message, wParam, lParam);
-
- return ret;
-}
-
-static void
-wgl_error (long error)
-{
-#define WGL_INVALID_PIXELFORMAT ERROR_INVALID_PIXEL_FORMAT
- SetLastError(0xC0000000 /* error severity */
- |0x00070000 /* error facility (who we are) */
- |error);
-}
-
-GLAPI BOOL GLAPIENTRY
-wglCopyContext (HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask)
-{
- return FALSE;
-}
-
-GLAPI HGLRC GLAPIENTRY
-wglCreateContext (HDC hdc)
-{
- HWND hWnd;
- WNDPROC oldProc;
- int error;
-
- if (ctx) {
- SetLastError(0);
- return NULL;
- }
-
- if (!(hWnd = WindowFromDC(hdc))) {
- SetLastError(0);
- return NULL;
- }
-
- if (curPFD == 0) {
- wgl_error(WGL_INVALID_PIXELFORMAT);
- return NULL;
- }
-
- if ((oldProc = (WNDPROC)GetWindowLong(hWnd, GWL_WNDPROC)) != __wglMonitor) {
- hWNDOldProc = oldProc;
- SetWindowLong(hWnd, GWL_WNDPROC, (LONG)__wglMonitor);
- }
-
- /* always log when debugging, or if user demands */
- if (TDFX_DEBUG || env_check("MESA_FX_INFO", 'r')) {
- freopen("MESA.LOG", "w", stderr);
- }
-
- {
- RECT cliRect;
- ShowWindow(hWnd, SW_SHOWNORMAL);
- SetForegroundWindow(hWnd);
- Sleep(100); /* a hack for win95 */
- if (env_check("MESA_GLX_FX", 'w') && !(GetWindowLong(hWnd, GWL_STYLE) & WS_POPUP)) {
- /* XXX todo - windowed modes */
- error = !(ctx = fxMesaCreateContext((GLuint) hWnd, GR_RESOLUTION_NONE, GR_REFRESH_NONE, pix[curPFD - 1].mesaAttr));
- } else {
- GetClientRect(hWnd, &cliRect);
- error = !(ctx = fxMesaCreateBestContext((GLuint) hWnd, cliRect.right, cliRect.bottom, pix[curPFD - 1].mesaAttr));
- }
- }
-
- /*if (getenv("SST_DUALHEAD"))
- haveDualHead =
- ((atoi(getenv("SST_DUALHEAD")) == 1) ? GL_TRUE : GL_FALSE);
- else
- haveDualHead = GL_FALSE;*/
-
- if (error) {
- SetLastError(0);
- return NULL;
- }
-
- hDC = hdc;
- hWND = hWnd;
-
- /* Required by the OpenGL Optimizer 1.1 (is it a Optimizer bug ?) */
- wglMakeCurrent(hdc, (HGLRC)1);
-
- return (HGLRC)1;
-}
-
-GLAPI HGLRC GLAPIENTRY
-wglCreateLayerContext (HDC hdc, int iLayerPlane)
-{
- SetLastError(0);
- return NULL;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglDeleteContext (HGLRC hglrc)
-{
- if (ctx && hglrc == (HGLRC)1) {
-
- fxMesaDestroyContext(ctx);
-
- SetWindowLong(WindowFromDC(hDC), GWL_WNDPROC, (LONG) hWNDOldProc);
-
- ctx = NULL;
- hDC = 0;
- return TRUE;
- }
-
- SetLastError(0);
-
- return FALSE;
-}
-
-GLAPI HGLRC GLAPIENTRY
-wglGetCurrentContext (VOID)
-{
- if (ctx)
- return (HGLRC)1;
-
- SetLastError(0);
- return NULL;
-}
-
-GLAPI HDC GLAPIENTRY
-wglGetCurrentDC (VOID)
-{
- if (ctx)
- return hDC;
-
- SetLastError(0);
- return NULL;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglSwapIntervalEXT (int interval)
-{
- if (ctx == NULL) {
- return FALSE;
- }
- if (interval < 0) {
- interval = 0;
- } else if (interval > 3) {
- interval = 3;
- }
- ctx->swapInterval = interval;
- return TRUE;
-}
-
-GLAPI int GLAPIENTRY
-wglGetSwapIntervalEXT (void)
-{
- return (ctx == NULL) ? -1 : ctx->swapInterval;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglGetDeviceGammaRamp3DFX (HDC hdc, LPVOID arrays)
-{
- /* gammaTable should be per-context */
- memcpy(arrays, gammaTable, 3 * 256 * sizeof(GLushort));
- return TRUE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglSetDeviceGammaRamp3DFX (HDC hdc, LPVOID arrays)
-{
- GLint i, tableSize, inc, index;
- GLushort *red, *green, *blue;
- FxU32 gammaTableR[256], gammaTableG[256], gammaTableB[256];
-
- /* gammaTable should be per-context */
- memcpy(gammaTable, arrays, 3 * 256 * sizeof(GLushort));
-
- tableSize = FX_grGetInteger(GR_GAMMA_TABLE_ENTRIES);
- inc = 256 / tableSize;
- red = (GLushort *)arrays;
- green = (GLushort *)arrays + 256;
- blue = (GLushort *)arrays + 512;
- for (i = 0, index = 0; i < tableSize; i++, index += inc) {
- gammaTableR[i] = red[index] >> 8;
- gammaTableG[i] = green[index] >> 8;
- gammaTableB[i] = blue[index] >> 8;
- }
-
- grLoadGammaTable(tableSize, gammaTableR, gammaTableG, gammaTableB);
-
- return TRUE;
-}
-
-typedef void *HPBUFFERARB;
-
-/* WGL_ARB_pixel_format */
-GLAPI BOOL GLAPIENTRY
-wglGetPixelFormatAttribivARB (HDC hdc,
- int iPixelFormat,
- int iLayerPlane,
- UINT nAttributes,
- const int *piAttributes,
- int *piValues)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglGetPixelFormatAttribfvARB (HDC hdc,
- int iPixelFormat,
- int iLayerPlane,
- UINT nAttributes,
- const int *piAttributes,
- FLOAT *pfValues)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglChoosePixelFormatARB (HDC hdc,
- const int *piAttribIList,
- const FLOAT *pfAttribFList,
- UINT nMaxFormats,
- int *piFormats,
- UINT *nNumFormats)
-{
- SetLastError(0);
- return FALSE;
-}
-
-/* WGL_ARB_render_texture */
-GLAPI BOOL GLAPIENTRY
-wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglSetPbufferAttribARB (HPBUFFERARB hPbuffer,
- const int *piAttribList)
-{
- SetLastError(0);
- return FALSE;
-}
-
-/* WGL_ARB_pbuffer */
-GLAPI HPBUFFERARB GLAPIENTRY
-wglCreatePbufferARB (HDC hDC,
- int iPixelFormat,
- int iWidth,
- int iHeight,
- const int *piAttribList)
-{
- SetLastError(0);
- return NULL;
-}
-
-GLAPI HDC GLAPIENTRY
-wglGetPbufferDCARB (HPBUFFERARB hPbuffer)
-{
- SetLastError(0);
- return NULL;
-}
-
-GLAPI int GLAPIENTRY
-wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC)
-{
- SetLastError(0);
- return -1;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglDestroyPbufferARB (HPBUFFERARB hPbuffer)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglQueryPbufferARB (HPBUFFERARB hPbuffer,
- int iAttribute,
- int *piValue)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI const char * GLAPIENTRY
-wglGetExtensionsStringEXT (void)
-{
- return "WGL_3DFX_gamma_control "
- "WGL_EXT_swap_control "
- "WGL_EXT_extensions_string WGL_ARB_extensions_string"
- /*WGL_ARB_pixel_format WGL_ARB_render_texture WGL_ARB_pbuffer*/;
-}
-
-GLAPI const char * GLAPIENTRY
-wglGetExtensionsStringARB (HDC hdc)
-{
- return wglGetExtensionsStringEXT();
-}
-
-static struct {
- const char *name;
- PROC func;
-} wgl_ext[] = {
- {"wglGetExtensionsStringARB", (PROC)wglGetExtensionsStringARB},
- {"wglGetExtensionsStringEXT", (PROC)wglGetExtensionsStringEXT},
- {"wglSwapIntervalEXT", (PROC)wglSwapIntervalEXT},
- {"wglGetSwapIntervalEXT", (PROC)wglGetSwapIntervalEXT},
- {"wglGetDeviceGammaRamp3DFX", (PROC)wglGetDeviceGammaRamp3DFX},
- {"wglSetDeviceGammaRamp3DFX", (PROC)wglSetDeviceGammaRamp3DFX},
- /* WGL_ARB_pixel_format */
- {"wglGetPixelFormatAttribivARB", (PROC)wglGetPixelFormatAttribivARB},
- {"wglGetPixelFormatAttribfvARB", (PROC)wglGetPixelFormatAttribfvARB},
- {"wglChoosePixelFormatARB", (PROC)wglChoosePixelFormatARB},
- /* WGL_ARB_render_texture */
- {"wglBindTexImageARB", (PROC)wglBindTexImageARB},
- {"wglReleaseTexImageARB", (PROC)wglReleaseTexImageARB},
- {"wglSetPbufferAttribARB", (PROC)wglSetPbufferAttribARB},
- /* WGL_ARB_pbuffer */
- {"wglCreatePbufferARB", (PROC)wglCreatePbufferARB},
- {"wglGetPbufferDCARB", (PROC)wglGetPbufferDCARB},
- {"wglReleasePbufferDCARB", (PROC)wglReleasePbufferDCARB},
- {"wglDestroyPbufferARB", (PROC)wglDestroyPbufferARB},
- {"wglQueryPbufferARB", (PROC)wglQueryPbufferARB},
- {NULL, NULL}
-};
-
-GLAPI PROC GLAPIENTRY
-wglGetProcAddress (LPCSTR lpszProc)
-{
- int i;
- PROC p = (PROC)_glapi_get_proc_address((const char *)lpszProc);
-
- /* we can't BlendColor. work around buggy applications */
- if (p && strcmp(lpszProc, "glBlendColor")
- && strcmp(lpszProc, "glBlendColorEXT"))
- return p;
-
- for (i = 0; wgl_ext[i].name; i++) {
- if (!strcmp(lpszProc, wgl_ext[i].name)) {
- return wgl_ext[i].func;
- }
- }
-
- SetLastError(0);
- return NULL;
-}
-
-GLAPI PROC GLAPIENTRY
-wglGetDefaultProcAddress (LPCSTR lpszProc)
-{
- SetLastError(0);
- return NULL;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglMakeCurrent (HDC hdc, HGLRC hglrc)
-{
- if ((hdc == NULL) && (hglrc == NULL))
- return TRUE;
-
- if (!ctx || hglrc != (HGLRC)1 || WindowFromDC(hdc) != hWND) {
- SetLastError(0);
- return FALSE;
- }
-
- hDC = hdc;
-
- fxMesaMakeCurrent(ctx);
-
- return TRUE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglShareLists (HGLRC hglrc1, HGLRC hglrc2)
-{
- if (!ctx || hglrc1 != (HGLRC)1 || hglrc1 != hglrc2) {
- SetLastError(0);
- return FALSE;
- }
-
- return TRUE;
-}
-
-static BOOL
-wglUseFontBitmaps_FX (HDC fontDevice, DWORD firstChar, DWORD numChars,
- DWORD listBase)
-{
- TEXTMETRIC metric;
- BITMAPINFO *dibInfo;
- HDC bitDevice;
- COLORREF tempColor;
- int i;
-
- GetTextMetrics(fontDevice, &metric);
-
- dibInfo = (BITMAPINFO *)calloc(sizeof(BITMAPINFO) + sizeof(RGBQUAD), 1);
- dibInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- dibInfo->bmiHeader.biPlanes = 1;
- dibInfo->bmiHeader.biBitCount = 1;
- dibInfo->bmiHeader.biCompression = BI_RGB;
-
- bitDevice = CreateCompatibleDC(fontDevice);
-
- /* Swap fore and back colors so the bitmap has the right polarity */
- tempColor = GetBkColor(bitDevice);
- SetBkColor(bitDevice, GetTextColor(bitDevice));
- SetTextColor(bitDevice, tempColor);
-
- /* Place chars based on base line */
- SetTextAlign(bitDevice, TA_BASELINE);
-
- for (i = 0; i < (int)numChars; i++) {
- SIZE size;
- char curChar;
- int charWidth, charHeight, bmapWidth, bmapHeight, numBytes, res;
- HBITMAP bitObject;
- HGDIOBJ origBmap;
- unsigned char *bmap;
-
- curChar = (char)(i + firstChar); /* [koolsmoky] explicit cast */
-
- /* Find how high/wide this character is */
- GetTextExtentPoint32(bitDevice, &curChar, 1, &size);
-
- /* Create the output bitmap */
- charWidth = size.cx;
- charHeight = size.cy;
- bmapWidth = ((charWidth + 31) / 32) * 32; /* Round up to the next multiple of 32 bits */
- bmapHeight = charHeight;
- bitObject = CreateCompatibleBitmap(bitDevice, bmapWidth, bmapHeight);
- /*VERIFY(bitObject);*/
-
- /* Assign the output bitmap to the device */
- origBmap = SelectObject(bitDevice, bitObject);
-
- PatBlt(bitDevice, 0, 0, bmapWidth, bmapHeight, BLACKNESS);
-
- /* Use our source font on the device */
- SelectObject(bitDevice, GetCurrentObject(fontDevice, OBJ_FONT));
-
- /* Draw the character */
- TextOut(bitDevice, 0, metric.tmAscent, &curChar, 1);
-
- /* Unselect our bmap object */
- SelectObject(bitDevice, origBmap);
-
- /* Convert the display dependant representation to a 1 bit deep DIB */
- numBytes = (bmapWidth * bmapHeight) / 8;
- bmap = MALLOC(numBytes);
- dibInfo->bmiHeader.biWidth = bmapWidth;
- dibInfo->bmiHeader.biHeight = bmapHeight;
- res = GetDIBits(bitDevice, bitObject, 0, bmapHeight, bmap,
- dibInfo, DIB_RGB_COLORS);
-
- /* Create the GL object */
- glNewList(i + listBase, GL_COMPILE);
- glBitmap(bmapWidth, bmapHeight, 0.0, metric.tmDescent,
- charWidth, 0.0, bmap);
- glEndList();
- /* CheckGL(); */
-
- /* Destroy the bmap object */
- DeleteObject(bitObject);
-
- /* Deallocate the bitmap data */
- FREE(bmap);
- }
-
- /* Destroy the DC */
- DeleteDC(bitDevice);
-
- FREE(dibInfo);
-
- return TRUE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglUseFontBitmapsW (HDC hdc, DWORD first, DWORD count, DWORD listBase)
-{
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglUseFontOutlinesA (HDC hdc, DWORD first, DWORD count,
- DWORD listBase, FLOAT deviation,
- FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglUseFontOutlinesW (HDC hdc, DWORD first, DWORD count,
- DWORD listBase, FLOAT deviation,
- FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf)
-{
- SetLastError(0);
- return FALSE;
-}
-
-
-GLAPI BOOL GLAPIENTRY
-wglSwapLayerBuffers (HDC hdc, UINT fuPlanes)
-{
- if (ctx && WindowFromDC(hdc) == hWND) {
- fxMesaSwapBuffers();
-
- return TRUE;
- }
-
- SetLastError(0);
- return FALSE;
-}
-
-static int
-pfd_tablen (void)
-{
- /* we should take an envvar for `fxMesaSelectCurrentBoard' */
- return (fxMesaSelectCurrentBoard(0) < GR_SSTTYPE_Voodoo4)
- ? 2 /* only 16bit entries */
- : sizeof(pix) / sizeof(pix[0]); /* full table */
-}
-
-GLAPI int GLAPIENTRY
-wglChoosePixelFormat (HDC hdc, const PIXELFORMATDESCRIPTOR *ppfd)
-{
- int i, best = -1, qt_valid_pix;
- PIXELFORMATDESCRIPTOR pfd = *ppfd;
-
- qt_valid_pix = pfd_tablen();
-
-#if 1 || QUAKE2 || GORE
- /* QUAKE2: 24+32 */
- /* GORE : 24+16 */
- if ((pfd.cColorBits == 24) || (pfd.cColorBits == 32)) {
- /* the first 2 entries are 16bit */
- pfd.cColorBits = (qt_valid_pix > 2) ? 32 : 16;
- }
- if (pfd.cColorBits == 32) {
- pfd.cDepthBits = 24;
- } else if (pfd.cColorBits == 16) {
- pfd.cDepthBits = 16;
- }
-#endif
-
- if (pfd.nSize != sizeof(PIXELFORMATDESCRIPTOR) || pfd.nVersion != 1) {
- SetLastError(0);
- return 0;
- }
-
- for (i = 0; i < qt_valid_pix; i++) {
- if (pfd.cColorBits > 0 && pix[i].pfd.cColorBits != pfd.cColorBits)
- continue;
-
- if ((pfd.dwFlags & PFD_DRAW_TO_WINDOW)
- && !(pix[i].pfd.dwFlags & PFD_DRAW_TO_WINDOW)) continue;
- if ((pfd.dwFlags & PFD_DRAW_TO_BITMAP)
- && !(pix[i].pfd.dwFlags & PFD_DRAW_TO_BITMAP)) continue;
- if ((pfd.dwFlags & PFD_SUPPORT_GDI)
- && !(pix[i].pfd.dwFlags & PFD_SUPPORT_GDI)) continue;
- if ((pfd.dwFlags & PFD_SUPPORT_OPENGL)
- && !(pix[i].pfd.dwFlags & PFD_SUPPORT_OPENGL)) continue;
- if (!(pfd.dwFlags & PFD_DOUBLEBUFFER_DONTCARE)
- && ((pfd.dwFlags & PFD_DOUBLEBUFFER) !=
- (pix[i].pfd.dwFlags & PFD_DOUBLEBUFFER))) continue;
-#if 1 /* Doom3 fails here! */
- if (!(pfd.dwFlags & PFD_STEREO_DONTCARE)
- && ((pfd.dwFlags & PFD_STEREO) !=
- (pix[i].pfd.dwFlags & PFD_STEREO))) continue;
-#endif
-
- if (pfd.cDepthBits > 0 && pix[i].pfd.cDepthBits == 0)
- continue; /* need depth buffer */
-
- if (pfd.cAlphaBits > 0 && pix[i].pfd.cAlphaBits == 0)
- continue; /* need alpha buffer */
-
-#if 0 /* regression bug? */
- if (pfd.cStencilBits > 0 && pix[i].pfd.cStencilBits == 0)
- continue; /* need stencil buffer */
-#endif
-
- if (pfd.iPixelType == pix[i].pfd.iPixelType) {
- best = i + 1;
- break;
- }
- }
-
- if (best == -1) {
- FILE *err = fopen("MESA.LOG", "w");
- if (err != NULL) {
- fprintf(err, "wglChoosePixelFormat failed\n");
- fprintf(err, "\tnSize = %d\n", ppfd->nSize);
- fprintf(err, "\tnVersion = %d\n", ppfd->nVersion);
- fprintf(err, "\tdwFlags = %lu\n", ppfd->dwFlags);
- fprintf(err, "\tiPixelType = %d\n", ppfd->iPixelType);
- fprintf(err, "\tcColorBits = %d\n", ppfd->cColorBits);
- fprintf(err, "\tcRedBits = %d\n", ppfd->cRedBits);
- fprintf(err, "\tcRedShift = %d\n", ppfd->cRedShift);
- fprintf(err, "\tcGreenBits = %d\n", ppfd->cGreenBits);
- fprintf(err, "\tcGreenShift = %d\n", ppfd->cGreenShift);
- fprintf(err, "\tcBlueBits = %d\n", ppfd->cBlueBits);
- fprintf(err, "\tcBlueShift = %d\n", ppfd->cBlueShift);
- fprintf(err, "\tcAlphaBits = %d\n", ppfd->cAlphaBits);
- fprintf(err, "\tcAlphaShift = %d\n", ppfd->cAlphaShift);
- fprintf(err, "\tcAccumBits = %d\n", ppfd->cAccumBits);
- fprintf(err, "\tcAccumRedBits = %d\n", ppfd->cAccumRedBits);
- fprintf(err, "\tcAccumGreenBits = %d\n", ppfd->cAccumGreenBits);
- fprintf(err, "\tcAccumBlueBits = %d\n", ppfd->cAccumBlueBits);
- fprintf(err, "\tcAccumAlphaBits = %d\n", ppfd->cAccumAlphaBits);
- fprintf(err, "\tcDepthBits = %d\n", ppfd->cDepthBits);
- fprintf(err, "\tcStencilBits = %d\n", ppfd->cStencilBits);
- fprintf(err, "\tcAuxBuffers = %d\n", ppfd->cAuxBuffers);
- fprintf(err, "\tiLayerType = %d\n", ppfd->iLayerType);
- fprintf(err, "\tbReserved = %d\n", ppfd->bReserved);
- fprintf(err, "\tdwLayerMask = %lu\n", ppfd->dwLayerMask);
- fprintf(err, "\tdwVisibleMask = %lu\n", ppfd->dwVisibleMask);
- fprintf(err, "\tdwDamageMask = %lu\n", ppfd->dwDamageMask);
- fclose(err);
- }
-
- SetLastError(0);
- return 0;
- }
-
- return best;
-}
-
-GLAPI int GLAPIENTRY
-ChoosePixelFormat (HDC hdc, const PIXELFORMATDESCRIPTOR *ppfd)
-{
-
- return wglChoosePixelFormat(hdc, ppfd);
-}
-
-GLAPI int GLAPIENTRY
-wglDescribePixelFormat (HDC hdc, int iPixelFormat, UINT nBytes,
- LPPIXELFORMATDESCRIPTOR ppfd)
-{
- int qt_valid_pix;
-
- qt_valid_pix = pfd_tablen();
-
- if (iPixelFormat < 1 || iPixelFormat > qt_valid_pix ||
- ((nBytes != sizeof(PIXELFORMATDESCRIPTOR)) && (nBytes != 0))) {
- SetLastError(0);
- return qt_valid_pix;
- }
-
- if (nBytes != 0)
- *ppfd = pix[iPixelFormat - 1].pfd;
-
- return qt_valid_pix;
-}
-
-GLAPI int GLAPIENTRY
-DescribePixelFormat (HDC hdc, int iPixelFormat, UINT nBytes,
- LPPIXELFORMATDESCRIPTOR ppfd)
-{
- return wglDescribePixelFormat(hdc, iPixelFormat, nBytes, ppfd);
-}
-
-GLAPI int GLAPIENTRY
-wglGetPixelFormat (HDC hdc)
-{
- if (curPFD == 0) {
- SetLastError(0);
- return 0;
- }
-
- return curPFD;
-}
-
-GLAPI int GLAPIENTRY
-GetPixelFormat (HDC hdc)
-{
- return wglGetPixelFormat(hdc);
-}
-
-GLAPI BOOL GLAPIENTRY
-wglSetPixelFormat (HDC hdc, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd)
-{
- int qt_valid_pix;
-
- qt_valid_pix = pfd_tablen();
-
- if (iPixelFormat < 1 || iPixelFormat > qt_valid_pix) {
- if (ppfd == NULL) {
- PIXELFORMATDESCRIPTOR my_pfd;
- if (!wglDescribePixelFormat(hdc, iPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &my_pfd)) {
- SetLastError(0);
- return FALSE;
- }
- } else if (ppfd->nSize != sizeof(PIXELFORMATDESCRIPTOR)) {
- SetLastError(0);
- return FALSE;
- }
- }
- curPFD = iPixelFormat;
-
- return TRUE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglSwapBuffers (HDC hdc)
-{
- if (!ctx) {
- SetLastError(0);
- return FALSE;
- }
-
- fxMesaSwapBuffers();
-
- return TRUE;
-}
-
-GLAPI BOOL GLAPIENTRY
-SetPixelFormat (HDC hdc, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd)
-{
- return wglSetPixelFormat(hdc, iPixelFormat, ppfd);
-}
-
-GLAPI BOOL GLAPIENTRY
-SwapBuffers(HDC hdc)
-{
- return wglSwapBuffers(hdc);
-}
-
-static FIXED
-FixedFromDouble (double d)
-{
- struct {
- FIXED f;
- long l;
- } pun;
- pun.l = (long)(d * 65536L);
- return pun.f;
-}
-
-/*
-** This was yanked from windows/gdi/wgl.c
-*/
-GLAPI BOOL GLAPIENTRY
-wglUseFontBitmapsA (HDC hdc, DWORD first, DWORD count, DWORD listBase)
-{
- int i;
- GLuint font_list;
- DWORD size;
- GLYPHMETRICS gm;
- HANDLE hBits;
- LPSTR lpBits;
- MAT2 mat;
- int success = TRUE;
-
- font_list = listBase;
-
- mat.eM11 = FixedFromDouble(1);
- mat.eM12 = FixedFromDouble(0);
- mat.eM21 = FixedFromDouble(0);
- mat.eM22 = FixedFromDouble(-1);
-
- memset(&gm, 0, sizeof(gm));
-
- /*
- ** If we can't get the glyph outline, it may be because this is a fixed
- ** font. Try processing it that way.
- */
- if (GetGlyphOutline(hdc, first, GGO_BITMAP, &gm, 0, NULL, &mat) == GDI_ERROR) {
- return wglUseFontBitmaps_FX(hdc, first, count, listBase);
- }
-
- /*
- ** Otherwise process all desired characters.
- */
- for (i = 0; i < count; i++) {
- DWORD err;
-
- glNewList(font_list + i, GL_COMPILE);
-
- /* allocate space for the bitmap/outline */
- size = GetGlyphOutline(hdc, first + i, GGO_BITMAP, &gm, 0, NULL, &mat);
- if (size == GDI_ERROR) {
- glEndList();
- err = GetLastError();
- success = FALSE;
- continue;
- }
-
- hBits = GlobalAlloc(GHND, size + 1);
- lpBits = GlobalLock(hBits);
-
- err = GetGlyphOutline(hdc, /* handle to device context */
- first + i, /* character to query */
- GGO_BITMAP, /* format of data to return */
- &gm, /* pointer to structure for metrics */
- size, /* size of buffer for data */
- lpBits, /* pointer to buffer for data */
- &mat /* pointer to transformation */
- /* matrix structure */
- );
-
- if (err == GDI_ERROR) {
- GlobalUnlock(hBits);
- GlobalFree(hBits);
-
- glEndList();
- err = GetLastError();
- success = FALSE;
- continue;
- }
-
- glBitmap(gm.gmBlackBoxX, gm.gmBlackBoxY,
- -gm.gmptGlyphOrigin.x,
- gm.gmptGlyphOrigin.y,
- gm.gmCellIncX, gm.gmCellIncY,
- (const GLubyte *)lpBits);
-
- GlobalUnlock(hBits);
- GlobalFree(hBits);
-
- glEndList();
- }
-
- return success;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglDescribeLayerPlane (HDC hdc, int iPixelFormat, int iLayerPlane,
- UINT nBytes, LPLAYERPLANEDESCRIPTOR ppfd)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI int GLAPIENTRY
-wglGetLayerPaletteEntries (HDC hdc, int iLayerPlane, int iStart,
- int cEntries, COLORREF *pcr)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI BOOL GLAPIENTRY
-wglRealizeLayerPalette (HDC hdc, int iLayerPlane, BOOL bRealize)
-{
- SetLastError(0);
- return FALSE;
-}
-
-GLAPI int GLAPIENTRY
-wglSetLayerPaletteEntries (HDC hdc, int iLayerPlane, int iStart,
- int cEntries, CONST COLORREF *pcr)
-{
- SetLastError(0);
- return FALSE;
-}
-
-
-/***************************************************************************
- * [dBorca] simplistic ICD implementation, based on ICD code by Gregor Anich
- */
-
-typedef struct _icdTable {
- DWORD size;
- PROC table[336];
-} ICDTABLE, *PICDTABLE;
-
-#ifdef USE_MGL_NAMESPACE
-#define GL_FUNC(func) mgl##func
-#else
-#define GL_FUNC(func) gl##func
-#endif
-
-static ICDTABLE icdTable = { 336, {
-#define ICD_ENTRY(func) (PROC)GL_FUNC(func),
-#include "../icd/icdlist.h"
-#undef ICD_ENTRY
-} };
-
-
-GLAPI BOOL GLAPIENTRY
-DrvCopyContext (HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask)
-{
- return wglCopyContext(hglrcSrc, hglrcDst, mask);
-}
-
-
-GLAPI HGLRC GLAPIENTRY
-DrvCreateContext (HDC hdc)
-{
- return wglCreateContext(hdc);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvDeleteContext (HGLRC hglrc)
-{
- return wglDeleteContext(hglrc);
-}
-
-
-GLAPI HGLRC GLAPIENTRY
-DrvCreateLayerContext (HDC hdc, int iLayerPlane)
-{
- return wglCreateContext(hdc);
-}
-
-
-GLAPI PICDTABLE GLAPIENTRY
-DrvSetContext (HDC hdc, HGLRC hglrc, void *callback)
-{
- return wglMakeCurrent(hdc, hglrc) ? &icdTable : NULL;
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvReleaseContext (HGLRC hglrc)
-{
- return TRUE;
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvShareLists (HGLRC hglrc1, HGLRC hglrc2)
-{
- return wglShareLists(hglrc1, hglrc2);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvDescribeLayerPlane (HDC hdc, int iPixelFormat,
- int iLayerPlane, UINT nBytes,
- LPLAYERPLANEDESCRIPTOR plpd)
-{
- return wglDescribeLayerPlane(hdc, iPixelFormat, iLayerPlane, nBytes, plpd);
-}
-
-
-GLAPI int GLAPIENTRY
-DrvSetLayerPaletteEntries (HDC hdc, int iLayerPlane,
- int iStart, int cEntries, CONST COLORREF *pcr)
-{
- return wglSetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
-}
-
-
-GLAPI int GLAPIENTRY
-DrvGetLayerPaletteEntries (HDC hdc, int iLayerPlane,
- int iStart, int cEntries, COLORREF *pcr)
-{
- return wglGetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvRealizeLayerPalette (HDC hdc, int iLayerPlane, BOOL bRealize)
-{
- return wglRealizeLayerPalette(hdc, iLayerPlane, bRealize);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvSwapLayerBuffers (HDC hdc, UINT fuPlanes)
-{
- return wglSwapLayerBuffers(hdc, fuPlanes);
-}
-
-GLAPI int GLAPIENTRY
-DrvDescribePixelFormat (HDC hdc, int iPixelFormat, UINT nBytes,
- LPPIXELFORMATDESCRIPTOR ppfd)
-{
- return wglDescribePixelFormat(hdc, iPixelFormat, nBytes, ppfd);
-}
-
-
-GLAPI PROC GLAPIENTRY
-DrvGetProcAddress (LPCSTR lpszProc)
-{
- return wglGetProcAddress(lpszProc);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvSetPixelFormat (HDC hdc, int iPixelFormat)
-{
- return wglSetPixelFormat(hdc, iPixelFormat, NULL);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvSwapBuffers (HDC hdc)
-{
- return wglSwapBuffers(hdc);
-}
-
-
-GLAPI BOOL GLAPIENTRY
-DrvValidateVersion (DWORD version)
-{
- (void)version;
- return TRUE;
-}
-
-
-#if (_MSC_VER >= 1200)
-#pragma warning( pop )
-#endif
-
-#endif /* FX */
diff --git a/src/mesa/drivers/windows/gdi/InitCritSections.cpp b/src/mesa/drivers/windows/gdi/InitCritSections.cpp
deleted file mode 100644
index 69f03b8e47c..00000000000
--- a/src/mesa/drivers/windows/gdi/InitCritSections.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "glapi.h"
-#include "glThread.h"
-
-#ifdef WIN32
-
-extern "C" _glthread_Mutex OneTimeLock;
-extern "C" _glthread_Mutex GenTexturesLock;
-
-extern "C" void FreeAllTSD(void);
-
-class _CriticalSectionInit
-{
-public:
- static _CriticalSectionInit m_inst;
-
- _CriticalSectionInit()
- {
- _glthread_INIT_MUTEX(OneTimeLock);
- _glthread_INIT_MUTEX(GenTexturesLock);
- }
-
- ~_CriticalSectionInit()
- {
- _glthread_DESTROY_MUTEX(OneTimeLock);
- _glthread_DESTROY_MUTEX(GenTexturesLock);
- FreeAllTSD();
- }
-};
-
-_CriticalSectionInit _CriticalSectionInit::m_inst;
-
-
-#endif /* WIN32 */
diff --git a/src/mesa/drivers/windows/gdi/wgl.c b/src/mesa/drivers/windows/gdi/wgl.c
index 1dafe6e2952..bf4ca9c908f 100644
--- a/src/mesa/drivers/windows/gdi/wgl.c
+++ b/src/mesa/drivers/windows/gdi/wgl.c
@@ -390,7 +390,7 @@ static FIXED FixedFromDouble(double d)
static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
DWORD numChars, DWORD listBase)
{
-#define VERIFY(a) a
+#define VERIFY(a) (void)(a)
TEXTMETRIC metric;
BITMAPINFO *dibInfo;
diff --git a/src/mesa/drivers/windows/gdi/wmesa.c b/src/mesa/drivers/windows/gdi/wmesa.c
index e3a37eb1ace..35a150d0687 100644
--- a/src/mesa/drivers/windows/gdi/wmesa.c
+++ b/src/mesa/drivers/windows/gdi/wmesa.c
@@ -5,7 +5,7 @@
#include "wmesadef.h"
#include "colors.h"
-#include <GL/wmesa.h>
+#include "GL/wmesa.h"
#include <winuser.h>
#include "main/context.h"
#include "main/extensions.h"
@@ -30,7 +30,7 @@ static WMesaFramebuffer FirstFramebuffer = NULL;
* Create a new WMesaFramebuffer object which will correspond to the
* given HDC (Window handle).
*/
-WMesaFramebuffer
+static WMesaFramebuffer
wmesa_new_framebuffer(HDC hdc, struct gl_config *visual)
{
WMesaFramebuffer pwfb
@@ -48,7 +48,7 @@ wmesa_new_framebuffer(HDC hdc, struct gl_config *visual)
/**
* Given an hdc, free the corresponding WMesaFramebuffer
*/
-void
+static void
wmesa_free_framebuffer(HDC hdc)
{
WMesaFramebuffer pwfb, prev;
@@ -71,7 +71,7 @@ wmesa_free_framebuffer(HDC hdc)
/**
* Given an hdc, return the corresponding WMesaFramebuffer
*/
-WMesaFramebuffer
+static WMesaFramebuffer
wmesa_lookup_framebuffer(HDC hdc)
{
WMesaFramebuffer pwfb;
@@ -147,9 +147,8 @@ static void wmSetPixelFormat(WMesaFramebuffer pwfb, HDC hDC)
* We write into this memory with the span routines and then blit it
* to the window on a buffer swap.
*/
-BOOL wmCreateBackingStore(WMesaFramebuffer pwfb, long lxSize, long lySize)
+static BOOL wmCreateBackingStore(WMesaFramebuffer pwfb, long lxSize, long lySize)
{
- HDC hdc = pwfb->hDC;
LPBITMAPINFO pbmi = &(pwfb->bmi);
HDC hic;
@@ -227,7 +226,6 @@ wmesa_get_buffer_size(struct gl_framebuffer *buffer, GLuint *width, GLuint *heig
static void wmesa_flush(struct gl_context *ctx)
{
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->WinSysDrawBuffer);
if (ctx->Visual.doubleBufferMode == 1) {
@@ -254,9 +252,7 @@ static void wmesa_flush(struct gl_context *ctx)
static void clear_color(struct gl_context *ctx, const GLfloat color[4])
{
WMesaContext pwc = wmesa_context(ctx);
- WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLubyte col[3];
- UINT bytesPerPixel = pwfb->cColorBits / 8;
CLAMPED_FLOAT_TO_UBYTE(col[0], color[0]);
CLAMPED_FLOAT_TO_UBYTE(col[1], color[1]);
@@ -448,21 +444,15 @@ static void clear(struct gl_context *ctx, GLbitfield mask)
**/
/* Write a horizontal span of RGBA color pixels with a boolean mask. */
-static void write_rgba_span_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4],
- const GLubyte mask[] )
+static void write_rgba_span_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n, GLint x, GLint y,
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_lookup_framebuffer(pwc->hDC);
- CONST BITMAPINFO bmi=
- {
- {
- sizeof(BITMAPINFOHEADER),
- n, 1, 1, 32, BI_RGB, 0, 1, 1, 0, 0
- }
- };
HBITMAP bmp=0;
HDC mdc=0;
typedef union
@@ -535,12 +525,13 @@ static void write_rgba_span_front(const struct gl_context *ctx,
}
/* Write a horizontal span of RGB color pixels with a boolean mask. */
-static void write_rgb_span_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3],
- const GLubyte mask[] )
+static void write_rgb_span_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n, GLint x, GLint y,
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaContext pwc = wmesa_context(ctx);
GLuint i;
@@ -564,12 +555,13 @@ static void write_rgb_span_front(const struct gl_context *ctx,
* Write a horizontal span of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_span_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n, GLint x, GLint y,
- const GLchan color[4],
- const GLubyte mask[])
+static void write_mono_rgba_span_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n, GLint x, GLint y,
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
GLuint i;
WMesaContext pwc = wmesa_context(ctx);
COLORREF colorref;
@@ -589,13 +581,14 @@ static void write_mono_rgba_span_front(const struct gl_context *ctx,
}
/* Write an array of RGBA pixels with a boolean mask. */
-static void write_rgba_pixels_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n,
- const GLint x[], const GLint y[],
- const GLubyte rgba[][4],
- const GLubyte mask[] )
+static void write_rgba_pixels_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n,
+ const GLint x[], const GLint y[],
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
GLuint i;
WMesaContext pwc = wmesa_context(ctx);
(void) ctx;
@@ -612,13 +605,14 @@ static void write_rgba_pixels_front(const struct gl_context *ctx,
* Write an array of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_pixels_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n,
- const GLint x[], const GLint y[],
- const GLchan color[4],
- const GLubyte mask[] )
+static void write_mono_rgba_pixels_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n,
+ const GLint x[], const GLint y[],
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
GLuint i;
WMesaContext pwc = wmesa_context(ctx);
COLORREF colorref;
@@ -630,11 +624,12 @@ static void write_mono_rgba_pixels_front(const struct gl_context *ctx,
}
/* Read a horizontal span of color pixels. */
-static void read_rgba_span_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n, GLint x, GLint y,
- GLubyte rgba[][4] )
+static void read_rgba_span_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n, GLint x, GLint y,
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
WMesaContext pwc = wmesa_context(ctx);
GLuint i;
COLORREF Color;
@@ -650,11 +645,12 @@ static void read_rgba_span_front(const struct gl_context *ctx,
/* Read an array of color pixels. */
-static void read_rgba_pixels_front(const struct gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4])
+static void read_rgba_pixels_front(struct gl_context *ctx,
+ struct gl_renderbuffer *rb,
+ GLuint n, const GLint x[], const GLint y[],
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
WMesaContext pwc = wmesa_context(ctx);
GLuint i;
COLORREF Color;
@@ -679,13 +675,13 @@ LPDWORD lpdw = ((LPDWORD)((pwc)->pbPixels + (pwc)->ScanWidth * (y)) + (x)); \
/* Write a horizontal span of RGBA color pixels with a boolean mask. */
-static void write_rgba_span_32(const struct gl_context *ctx,
+static void write_rgba_span_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPDWORD lpdw;
@@ -709,13 +705,13 @@ static void write_rgba_span_32(const struct gl_context *ctx,
/* Write a horizontal span of RGB color pixels with a boolean mask. */
-static void write_rgb_span_32(const struct gl_context *ctx,
+static void write_rgb_span_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPDWORD lpdw;
@@ -741,16 +737,16 @@ static void write_rgb_span_32(const struct gl_context *ctx,
* Write a horizontal span of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_span_32(const struct gl_context *ctx,
+static void write_mono_rgba_span_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
LPDWORD lpdw;
DWORD pixel;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
lpdw = ((LPDWORD)(pwfb->pbPixels + pwfb->ScanWidth * y)) + x;
y=FLIP(y);
@@ -767,14 +763,14 @@ static void write_mono_rgba_span_32(const struct gl_context *ctx,
}
/* Write an array of RGBA pixels with a boolean mask. */
-static void write_rgba_pixels_32(const struct gl_context *ctx,
+static void write_rgba_pixels_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- const GLubyte rgba[][4],
- const GLubyte mask[])
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++)
if (mask[i])
@@ -786,15 +782,15 @@ static void write_rgba_pixels_32(const struct gl_context *ctx,
* Write an array of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_pixels_32(const struct gl_context *ctx,
+static void write_mono_rgba_pixels_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n,
const GLint x[], const GLint y[],
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++)
if (mask[i])
@@ -803,15 +799,15 @@ static void write_mono_rgba_pixels_32(const struct gl_context *ctx,
}
/* Read a horizontal span of color pixels. */
-static void read_rgba_span_32(const struct gl_context *ctx,
+static void read_rgba_span_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- GLubyte rgba[][4] )
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i;
DWORD pixel;
LPDWORD lpdw;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
y = FLIP(y);
@@ -827,15 +823,15 @@ static void read_rgba_span_32(const struct gl_context *ctx,
/* Read an array of color pixels. */
-static void read_rgba_pixels_32(const struct gl_context *ctx,
+static void read_rgba_pixels_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4])
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i;
DWORD pixel;
LPDWORD lpdw;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++) {
@@ -861,13 +857,13 @@ lpb[1] = (g); \
lpb[2] = (r); }
/* Write a horizontal span of RGBA color pixels with a boolean mask. */
-static void write_rgba_span_24(const struct gl_context *ctx,
+static void write_rgba_span_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPBYTE lpb;
@@ -895,13 +891,13 @@ static void write_rgba_span_24(const struct gl_context *ctx,
/* Write a horizontal span of RGB color pixels with a boolean mask. */
-static void write_rgb_span_24(const struct gl_context *ctx,
+static void write_rgb_span_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPBYTE lpb;
@@ -931,15 +927,15 @@ static void write_rgb_span_24(const struct gl_context *ctx,
* Write a horizontal span of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_span_24(const struct gl_context *ctx,
+static void write_mono_rgba_span_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
LPBYTE lpb;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
lpb = ((LPBYTE)(pwfb->pbPixels + pwfb->ScanWidth * y)) + (3 * x);
y=FLIP(y);
@@ -960,14 +956,14 @@ static void write_mono_rgba_span_24(const struct gl_context *ctx,
}
/* Write an array of RGBA pixels with a boolean mask. */
-static void write_rgba_pixels_24(const struct gl_context *ctx,
+static void write_rgba_pixels_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- const GLubyte rgba[][4],
- const GLubyte mask[])
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++)
if (mask[i])
@@ -979,15 +975,15 @@ static void write_rgba_pixels_24(const struct gl_context *ctx,
* Write an array of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_pixels_24(const struct gl_context *ctx,
+static void write_mono_rgba_pixels_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n,
const GLint x[], const GLint y[],
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++)
if (mask[i])
@@ -996,14 +992,14 @@ static void write_mono_rgba_pixels_24(const struct gl_context *ctx,
}
/* Read a horizontal span of color pixels. */
-static void read_rgba_span_24(const struct gl_context *ctx,
+static void read_rgba_span_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- GLubyte rgba[][4] )
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i;
LPBYTE lpb;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
y = FLIP(y);
@@ -1018,14 +1014,14 @@ static void read_rgba_span_24(const struct gl_context *ctx,
/* Read an array of color pixels. */
-static void read_rgba_pixels_24(const struct gl_context *ctx,
+static void read_rgba_pixels_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4])
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i;
LPBYTE lpb;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++) {
@@ -1050,13 +1046,13 @@ LPWORD lpw = ((LPWORD)((pwc)->pbPixels + (pwc)->ScanWidth * (y)) + (x)); \
/* Write a horizontal span of RGBA color pixels with a boolean mask. */
-static void write_rgba_span_16(const struct gl_context *ctx,
+static void write_rgba_span_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPWORD lpw;
@@ -1080,13 +1076,13 @@ static void write_rgba_span_16(const struct gl_context *ctx,
/* Write a horizontal span of RGB color pixels with a boolean mask. */
-static void write_rgb_span_16(const struct gl_context *ctx,
+static void write_rgb_span_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3],
- const GLubyte mask[] )
+ const void *values,
+ const GLubyte *mask)
{
- WMesaContext pwc = wmesa_context(ctx);
+ const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPWORD lpw;
@@ -1112,16 +1108,16 @@ static void write_rgb_span_16(const struct gl_context *ctx,
* Write a horizontal span of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_span_16(const struct gl_context *ctx,
+static void write_mono_rgba_span_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
LPWORD lpw;
WORD pixel;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
(void) ctx;
lpw = ((LPWORD)(pwfb->pbPixels + pwfb->ScanWidth * y)) + x;
@@ -1139,14 +1135,14 @@ static void write_mono_rgba_span_16(const struct gl_context *ctx,
}
/* Write an array of RGBA pixels with a boolean mask. */
-static void write_rgba_pixels_16(const struct gl_context *ctx,
+static void write_rgba_pixels_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- const GLubyte rgba[][4],
- const GLubyte mask[])
+ const void *values,
+ const GLubyte *mask)
{
+ const GLubyte (*rgba)[4] = (const GLubyte (*)[4])values;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
(void) ctx;
for (i=0; i<n; i++)
@@ -1159,15 +1155,15 @@ static void write_rgba_pixels_16(const struct gl_context *ctx,
* Write an array of pixels with a boolean mask. The current color
* is used for all pixels.
*/
-static void write_mono_rgba_pixels_16(const struct gl_context *ctx,
+static void write_mono_rgba_pixels_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n,
const GLint x[], const GLint y[],
- const GLchan color[4],
- const GLubyte mask[])
+ const void *value,
+ const GLubyte *mask)
{
+ const GLchan *color = (const GLchan *)value;
GLuint i;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
(void) ctx;
for (i=0; i<n; i++)
@@ -1177,14 +1173,14 @@ static void write_mono_rgba_pixels_16(const struct gl_context *ctx,
}
/* Read a horizontal span of color pixels. */
-static void read_rgba_span_16(const struct gl_context *ctx,
+static void read_rgba_span_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
- GLubyte rgba[][4] )
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i, pixel;
LPWORD lpw;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
y = FLIP(y);
@@ -1201,14 +1197,14 @@ static void read_rgba_span_16(const struct gl_context *ctx,
/* Read an array of color pixels. */
-static void read_rgba_pixels_16(const struct gl_context *ctx,
+static void read_rgba_pixels_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4])
+ void *values)
{
+ GLubyte (*rgba)[4] = (GLubyte (*)[4])values;
GLuint i, pixel;
LPWORD lpw;
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
for (i=0; i<n; i++) {
@@ -1261,8 +1257,9 @@ wmesa_renderbuffer_storage(struct gl_context *ctx,
* Plug in the Get/PutRow/Values functions for a renderbuffer depending
* on if we're drawing to the front or back color buffer.
*/
-void wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
- int cColorBits, int double_buffer)
+static void
+wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
+ int cColorBits, int double_buffer)
{
if (double_buffer) {
/* back buffer */
@@ -1324,7 +1321,6 @@ static void
wmesa_resize_buffers(struct gl_context *ctx, struct gl_framebuffer *buffer,
GLuint width, GLuint height)
{
- WMesaContext pwc = wmesa_context(ctx);
WMesaFramebuffer pwfb = wmesa_framebuffer(buffer);
if (pwfb->Base.Width != width || pwfb->Base.Height != height) {
@@ -1353,7 +1349,6 @@ static void wmesa_viewport(struct gl_context *ctx,
GLint x, GLint y,
GLsizei width, GLsizei height)
{
- WMesaContext pwc = wmesa_context(ctx);
GLuint new_width, new_height;
wmesa_get_buffer_size(ctx->WinSysDrawBuffer, &new_width, &new_height);
@@ -1553,7 +1548,7 @@ void WMesaDestroyContext( WMesaContext pwc )
/**
* Create a new color renderbuffer.
*/
-struct gl_renderbuffer *
+static struct gl_renderbuffer *
wmesa_new_renderbuffer(void)
{
struct gl_renderbuffer *rb = CALLOC_STRUCT(gl_renderbuffer);
diff --git a/src/mesa/drivers/windows/gdi/wmesadef.h b/src/mesa/drivers/windows/gdi/wmesadef.h
index 32289ebc700..9fda8839014 100644
--- a/src/mesa/drivers/windows/gdi/wmesadef.h
+++ b/src/mesa/drivers/windows/gdi/wmesadef.h
@@ -1,8 +1,8 @@
#ifndef WMESADEF_H
#define WMESADEF_H
-#ifdef __MINGW32__
+
#include <windows.h>
-#endif
+
#include "main/context.h"
diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c
index 3031b7b3273..81f48f9d95a 100644
--- a/src/mesa/drivers/x11/xm_dd.c
+++ b/src/mesa/drivers/x11/xm_dd.c
@@ -445,11 +445,11 @@ xmesa_DrawPixels_8R8G8B( struct gl_context *ctx,
if (swrast->NewState)
_swrast_validate_derived( ctx );
- if (unpack->BufferObj->Name) {
+ if (_mesa_is_bufferobj(unpack->BufferObj)) {
/* unpack from PBO */
GLubyte *buf;
if (!_mesa_validate_pbo_access(2, unpack, width, height, 1,
- format, type, pixels)) {
+ format, type, INT_MAX, pixels)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawPixels(invalid PBO access)");
return;
@@ -507,7 +507,7 @@ xmesa_DrawPixels_8R8G8B( struct gl_context *ctx,
XPutImage(dpy, xrb->pixmap, gc, &ximage, 0, 0, dstX, dstY, w, h);
}
- if (unpack->BufferObj->Name) {
+ if (_mesa_is_bufferobj(unpack->BufferObj)) {
ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
unpack->BufferObj);
}
@@ -580,11 +580,11 @@ xmesa_DrawPixels_5R6G5B( struct gl_context *ctx,
if (swrast->NewState)
_swrast_validate_derived( ctx );
- if (unpack->BufferObj->Name) {
+ if (_mesa_is_bufferobj(unpack->BufferObj)) {
/* unpack from PBO */
GLubyte *buf;
if (!_mesa_validate_pbo_access(2, unpack, width, height, 1,
- format, type, pixels)) {
+ format, type, INT_MAX, pixels)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawPixels(invalid PBO access)");
return;
diff --git a/src/mesa/main/.gitignore b/src/mesa/main/.gitignore
index 391c334ab71..2575f44df4a 100644
--- a/src/mesa/main/.gitignore
+++ b/src/mesa/main/.gitignore
@@ -2,3 +2,5 @@ api_exec_es1.c
api_exec_es2.c
get_es1.c
get_es2.c
+git_sha1.h
+git_sha1.h.tmp
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index d0298df20cb..93214dd0ba6 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -502,6 +502,9 @@ _mesa_create_exec_table(void)
SET_CompressedTexSubImage2DARB(exec, _mesa_CompressedTexSubImage2DARB);
SET_CompressedTexSubImage1DARB(exec, _mesa_CompressedTexSubImage1DARB);
SET_GetCompressedTexImageARB(exec, _mesa_GetCompressedTexImageARB);
+
+ /* ARB 104. GL_ARB_robustness */
+ SET_GetnCompressedTexImageARB(exec, _mesa_GetnCompressedTexImageARB);
#endif
/* ARB 14. GL_ARB_point_parameters */
@@ -597,6 +600,12 @@ _mesa_create_exec_table(void)
SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB);
#endif
+ /* ARB 104. GL_ARB_robustness */
+ SET_GetGraphicsResetStatusARB(exec, _mesa_GetGraphicsResetStatusARB);
+ SET_GetnPolygonStippleARB(exec, _mesa_GetnPolygonStippleARB);
+ SET_GetnTexImageARB(exec, _mesa_GetnTexImageARB);
+ SET_ReadnPixelsARB(exec, _mesa_ReadnPixelsARB);
+
/* GL_ARB_sync */
_mesa_init_sync_dispatch(exec);
diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c
index 35b3096f650..ddb0f1f6579 100644
--- a/src/mesa/main/colortab.c
+++ b/src/mesa/main/colortab.c
@@ -190,7 +190,7 @@ store_colortable_entries(struct gl_context *ctx, struct gl_color_table *table,
{
data = _mesa_map_validate_pbo_source(ctx,
1, &ctx->Unpack, count, 1, 1,
- format, type, data,
+ format, type, INT_MAX, data,
"glColor[Sub]Table");
if (!data)
return;
@@ -509,8 +509,8 @@ _mesa_CopyColorSubTable(GLenum target, GLsizei start,
static void GLAPIENTRY
-_mesa_GetColorTable( GLenum target, GLenum format,
- GLenum type, GLvoid *data )
+_mesa_GetnColorTableARB( GLenum target, GLenum format, GLenum type,
+ GLsizei bufSize, GLvoid *data )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
@@ -614,7 +614,7 @@ _mesa_GetColorTable( GLenum target, GLenum format,
data = _mesa_map_validate_pbo_dest(ctx,
1, &ctx->Pack, table->Size, 1, 1,
- format, type, data,
+ format, type, bufSize, data,
"glGetColorTable");
if (!data)
return;
@@ -630,6 +630,13 @@ _mesa_GetColorTable( GLenum target, GLenum format,
}
+static void GLAPIENTRY
+_mesa_GetColorTable( GLenum target, GLenum format,
+ GLenum type, GLvoid *data )
+{
+ _mesa_GetnColorTableARB(target, format, type, INT_MAX, data);
+}
+
static void GLAPIENTRY
_mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params)
@@ -790,6 +797,9 @@ _mesa_init_colortable_dispatch(struct _glapi_table *disp)
SET_GetColorTable(disp, _mesa_GetColorTable);
SET_GetColorTableParameterfv(disp, _mesa_GetColorTableParameterfv);
SET_GetColorTableParameteriv(disp, _mesa_GetColorTableParameteriv);
+
+ /* GL_ARB_robustness */
+ SET_GetnColorTableARB(disp, _mesa_GetnColorTableARB);
}
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 8053edc23b2..ea13bdd6835 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -658,6 +658,9 @@ _mesa_init_constants(struct gl_context *ctx)
/** GL_EXT_gpu_shader4 */
ctx->Const.MinProgramTexelOffset = -8;
ctx->Const.MaxProgramTexelOffset = 7;
+
+ /* GL_ARB_robustness */
+ ctx->Const.ResetStrategy = GL_NO_RESET_NOTIFICATION_ARB;
}
@@ -793,6 +796,7 @@ init_attrib_groups(struct gl_context *ctx)
/* Miscellaneous */
ctx->NewState = _NEW_ALL;
ctx->ErrorValue = (GLenum) GL_NO_ERROR;
+ ctx->ResetStatus = (GLenum) GL_NO_ERROR;
ctx->varying_vp_inputs = ~0;
return GL_TRUE;
diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c
index 5d286eb316b..74f28da87ee 100644
--- a/src/mesa/main/convolve.c
+++ b/src/mesa/main/convolve.c
@@ -115,8 +115,8 @@ _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLi
static void GLAPIENTRY
-_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
- GLvoid *image)
+_mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type,
+ GLsizei bufSize, GLvoid *image)
{
GET_CURRENT_CONTEXT(ctx);
@@ -125,6 +125,14 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
static void GLAPIENTRY
+_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
+ GLvoid *image)
+{
+ _mesa_GetnConvolutionFilterARB(target, format, type, INT_MAX, image);
+}
+
+
+static void GLAPIENTRY
_mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params)
{
GET_CURRENT_CONTEXT(ctx);
@@ -143,8 +151,10 @@ _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params)
static void GLAPIENTRY
-_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
- GLvoid *row, GLvoid *column, GLvoid *span)
+_mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type,
+ GLsizei rowBufSize, GLvoid *row,
+ GLsizei columnBufSize, GLvoid *column,
+ GLvoid *span)
{
GET_CURRENT_CONTEXT(ctx);
@@ -153,6 +163,15 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
static void GLAPIENTRY
+_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
+ GLvoid *row, GLvoid *column, GLvoid *span)
+{
+ _mesa_GetnSeparableFilterARB(target, format, type, INT_MAX, row,
+ INT_MAX, column, span);
+}
+
+
+static void GLAPIENTRY
_mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
{
GET_CURRENT_CONTEXT(ctx);
@@ -176,6 +195,10 @@ _mesa_init_convolve_dispatch(struct _glapi_table *disp)
SET_GetConvolutionParameteriv(disp, _mesa_GetConvolutionParameteriv);
SET_SeparableFilter2D(disp, _mesa_SeparableFilter2D);
SET_GetSeparableFilter(disp, _mesa_GetSeparableFilter);
+
+ /* GL_ARB_robustness */
+ SET_GetnConvolutionFilterARB(disp, _mesa_GetnConvolutionFilterARB);
+ SET_GetnSeparableFilterARB(disp, _mesa_GetnSeparableFilterARB);
}
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index f66082e7fce..63653df4502 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -859,8 +859,8 @@ unpack_image(struct gl_context *ctx, GLuint dimensions,
}
return image;
}
- else if (_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
- format, type, pixels)) {
+ else if (_mesa_validate_pbo_access(dimensions, unpack, width, height,
+ depth, format, type, INT_MAX, pixels)) {
const GLubyte *map, *src;
GLvoid *image;
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c
index ee379f71bf5..89c2b26973c 100644
--- a/src/mesa/main/drawpix.c
+++ b/src/mesa/main/drawpix.c
@@ -90,10 +90,10 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
GLint x = IROUND(ctx->Current.RasterPos[0]);
GLint y = IROUND(ctx->Current.RasterPos[1]);
- if (ctx->Unpack.BufferObj->Name) {
+ if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
/* unpack from PBO */
- if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
- format, type, pixels)) {
+ if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height,
+ 1, format, type, INT_MAX, pixels)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawPixels(invalid PBO access)");
goto end;
@@ -249,11 +249,11 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig);
GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig);
- if (ctx->Unpack.BufferObj->Name) {
+ if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
/* unpack from PBO */
- if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
- GL_COLOR_INDEX, GL_BITMAP,
- (GLvoid *) bitmap)) {
+ if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height,
+ 1, GL_COLOR_INDEX, GL_BITMAP,
+ INT_MAX, (const GLvoid *) bitmap)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glBitmap(invalid PBO access)");
return;
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 2ec19c8afbd..aac8b9c5eaf 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -885,15 +885,18 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
CHECK_EXTENSION(ARB_seamless_cube_map, cap);
- ctx->Texture.CubeMapSeamless = state;
+ if (ctx->Texture.CubeMapSeamless != state) {
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+ ctx->Texture.CubeMapSeamless = state;
+ }
break;
#if FEATURE_EXT_transform_feedback
case GL_RASTERIZER_DISCARD:
CHECK_EXTENSION(EXT_transform_feedback, cap);
if (ctx->TransformFeedback.RasterDiscard != state) {
- ctx->TransformFeedback.RasterDiscard = state;
FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
+ ctx->TransformFeedback.RasterDiscard = state;
}
break;
#endif
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 98cbbf53b85..8a50e26569c 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -366,6 +366,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_CONTEXT_CORE_PROFILE_BIT\0"
"GL_CONTEXT_FLAGS\0"
"GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT\0"
+ "GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB\0"
"GL_CONTEXT_PROFILE_MASK\0"
"GL_CONVOLUTION_1D\0"
"GL_CONVOLUTION_2D\0"
@@ -739,6 +740,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_GREEN_INTEGER\0"
"GL_GREEN_INTEGER_EXT\0"
"GL_GREEN_SCALE\0"
+ "GL_GUILTY_CONTEXT_RESET_ARB\0"
"GL_HALF_FLOAT\0"
"GL_HALF_FLOAT_OES\0"
"GL_HIGH_FLOAT\0"
@@ -786,6 +788,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_INDEX_SHIFT\0"
"GL_INDEX_WRITEMASK\0"
"GL_INFO_LOG_LENGTH\0"
+ "GL_INNOCENT_CONTEXT_RESET_ARB\0"
"GL_INT\0"
"GL_INTENSITY\0"
"GL_INTENSITY12\0"
@@ -894,6 +897,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_LOAD\0"
"GL_LOGIC_OP\0"
"GL_LOGIC_OP_MODE\0"
+ "GL_LOSE_CONTEXT_ON_RESET_ARB\0"
"GL_LOWER_LEFT\0"
"GL_LOW_FLOAT\0"
"GL_LOW_INT\0"
@@ -1277,6 +1281,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_NORMAL_MAP_OES\0"
"GL_NOTEQUAL\0"
"GL_NO_ERROR\0"
+ "GL_NO_RESET_NOTIFICATION_ARB\0"
"GL_NUM_COMPRESSED_TEXTURE_FORMATS\0"
"GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB\0"
"GL_NUM_EXTENSIONS\0"
@@ -1637,6 +1642,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_REPLICATE_BORDER_HP\0"
"GL_RESCALE_NORMAL\0"
"GL_RESCALE_NORMAL_EXT\0"
+ "GL_RESET_NOTIFICATION_STRATEGY_ARB\0"
"GL_RETAINED_APPLE\0"
"GL_RETURN\0"
"GL_RG16_SNORM\0"
@@ -2193,6 +2199,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_TRIANGLE_STRIP_ADJACENCY_ARB\0"
"GL_TRUE\0"
"GL_UNDEFINED_APPLE\0"
+ "GL_UNKNOWN_CONTEXT_RESET_ARB\0"
"GL_UNPACK_ALIGNMENT\0"
"GL_UNPACK_IMAGE_HEIGHT\0"
"GL_UNPACK_LSB_FIRST\0"
@@ -2345,7 +2352,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[2306] =
+static const enum_elt all_enums[2313] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -2676,2408 +2683,2415 @@ static const enum_elt all_enums[2306] =
{ 6607, 0x00000001 }, /* GL_CONTEXT_CORE_PROFILE_BIT */
{ 6635, 0x0000821E }, /* GL_CONTEXT_FLAGS */
{ 6652, 0x00000001 }, /* GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */
- { 6691, 0x00009126 }, /* GL_CONTEXT_PROFILE_MASK */
- { 6715, 0x00008010 }, /* GL_CONVOLUTION_1D */
- { 6733, 0x00008011 }, /* GL_CONVOLUTION_2D */
- { 6751, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
- { 6779, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
- { 6810, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
- { 6837, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
- { 6868, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
- { 6895, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
- { 6926, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
- { 6954, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
- { 6986, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
- { 7008, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
- { 7034, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
- { 7056, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
- { 7082, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
- { 7103, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
- { 7128, 0x00008862 }, /* GL_COORD_REPLACE */
- { 7145, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
- { 7166, 0x00008862 }, /* GL_COORD_REPLACE_NV */
- { 7186, 0x00008862 }, /* GL_COORD_REPLACE_OES */
- { 7207, 0x00001503 }, /* GL_COPY */
- { 7215, 0x0000150C }, /* GL_COPY_INVERTED */
- { 7232, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
- { 7252, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
- { 7272, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
- { 7293, 0x00000B44 }, /* GL_CULL_FACE */
- { 7306, 0x00000B45 }, /* GL_CULL_FACE_MODE */
- { 7324, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
- { 7343, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- { 7375, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- { 7410, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
- { 7431, 0x00000001 }, /* GL_CURRENT_BIT */
- { 7446, 0x00000B00 }, /* GL_CURRENT_COLOR */
- { 7463, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
- { 7484, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
- { 7510, 0x00000B01 }, /* GL_CURRENT_INDEX */
- { 7527, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
- { 7549, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
- { 7577, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
- { 7598, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- { 7632, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
- { 7665, 0x00000B02 }, /* GL_CURRENT_NORMAL */
- { 7683, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- { 7713, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_OES */
- { 7743, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
- { 7762, 0x00008865 }, /* GL_CURRENT_QUERY */
- { 7779, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
- { 7800, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
- { 7824, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
- { 7851, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
- { 7875, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
- { 7902, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
- { 7935, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
- { 7969, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- { 8002, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
- { 8029, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
- { 8055, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
- { 8080, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
- { 8109, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
- { 8131, 0x00000900 }, /* GL_CW */
- { 8137, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
- { 8158, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
- { 8179, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
- { 8199, 0x00002101 }, /* GL_DECAL */
- { 8208, 0x00001E03 }, /* GL_DECR */
- { 8216, 0x00008508 }, /* GL_DECR_WRAP */
- { 8229, 0x00008508 }, /* GL_DECR_WRAP_EXT */
- { 8246, 0x00008B80 }, /* GL_DELETE_STATUS */
- { 8263, 0x00001801 }, /* GL_DEPTH */
- { 8272, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
- { 8292, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */
- { 8316, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_OES */
- { 8340, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
- { 8360, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
- { 8384, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_OES */
- { 8408, 0x00000D1F }, /* GL_DEPTH_BIAS */
- { 8422, 0x00000D56 }, /* GL_DEPTH_BITS */
- { 8436, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
- { 8456, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
- { 8481, 0x00008223 }, /* GL_DEPTH_BUFFER */
- { 8497, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
- { 8517, 0x0000864F }, /* GL_DEPTH_CLAMP */
- { 8532, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
- { 8550, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
- { 8571, 0x00001902 }, /* GL_DEPTH_COMPONENT */
- { 8590, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
- { 8611, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
- { 8636, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_OES */
- { 8661, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
- { 8687, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
- { 8708, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
- { 8733, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_OES */
- { 8758, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
- { 8784, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
- { 8805, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
- { 8830, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_OES */
- { 8855, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
- { 8881, 0x00000B74 }, /* GL_DEPTH_FUNC */
- { 8895, 0x00000B70 }, /* GL_DEPTH_RANGE */
- { 8910, 0x00000D1E }, /* GL_DEPTH_SCALE */
- { 8925, 0x000084F9 }, /* GL_DEPTH_STENCIL */
- { 8942, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
- { 8970, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */
- { 8991, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
- { 9011, 0x000084F9 }, /* GL_DEPTH_STENCIL_OES */
- { 9032, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- { 9060, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- { 9088, 0x00000B71 }, /* GL_DEPTH_TEST */
- { 9102, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
- { 9124, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
- { 9150, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
- { 9169, 0x00001201 }, /* GL_DIFFUSE */
- { 9180, 0x00000BD0 }, /* GL_DITHER */
- { 9190, 0x00000A02 }, /* GL_DOMAIN */
- { 9200, 0x00001100 }, /* GL_DONT_CARE */
- { 9213, 0x000086AE }, /* GL_DOT3_RGB */
- { 9225, 0x000086AF }, /* GL_DOT3_RGBA */
- { 9238, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
- { 9255, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
- { 9272, 0x000086AE }, /* GL_DOT3_RGB_ARB */
- { 9288, 0x00008740 }, /* GL_DOT3_RGB_EXT */
- { 9304, 0x0000140A }, /* GL_DOUBLE */
- { 9314, 0x00000C32 }, /* GL_DOUBLEBUFFER */
- { 9330, 0x00000C01 }, /* GL_DRAW_BUFFER */
- { 9345, 0x00008825 }, /* GL_DRAW_BUFFER0 */
- { 9361, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
- { 9381, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
- { 9401, 0x00008826 }, /* GL_DRAW_BUFFER1 */
- { 9417, 0x0000882F }, /* GL_DRAW_BUFFER10 */
- { 9434, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
- { 9455, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
- { 9476, 0x00008830 }, /* GL_DRAW_BUFFER11 */
- { 9493, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
- { 9514, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
- { 9535, 0x00008831 }, /* GL_DRAW_BUFFER12 */
- { 9552, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
- { 9573, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
- { 9594, 0x00008832 }, /* GL_DRAW_BUFFER13 */
- { 9611, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
- { 9632, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
- { 9653, 0x00008833 }, /* GL_DRAW_BUFFER14 */
- { 9670, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
- { 9691, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
- { 9712, 0x00008834 }, /* GL_DRAW_BUFFER15 */
- { 9729, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
- { 9750, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
- { 9771, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
- { 9791, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
- { 9811, 0x00008827 }, /* GL_DRAW_BUFFER2 */
- { 9827, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
- { 9847, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
- { 9867, 0x00008828 }, /* GL_DRAW_BUFFER3 */
- { 9883, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
- { 9903, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
- { 9923, 0x00008829 }, /* GL_DRAW_BUFFER4 */
- { 9939, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
- { 9959, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
- { 9979, 0x0000882A }, /* GL_DRAW_BUFFER5 */
- { 9995, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
- { 10015, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
- { 10035, 0x0000882B }, /* GL_DRAW_BUFFER6 */
- { 10051, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
- { 10071, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
- { 10091, 0x0000882C }, /* GL_DRAW_BUFFER7 */
- { 10107, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
- { 10127, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
- { 10147, 0x0000882D }, /* GL_DRAW_BUFFER8 */
- { 10163, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
- { 10183, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
- { 10203, 0x0000882E }, /* GL_DRAW_BUFFER9 */
- { 10219, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
- { 10239, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
- { 10259, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
- { 10279, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */
- { 10307, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- { 10339, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
- { 10363, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
- { 10383, 0x00000304 }, /* GL_DST_ALPHA */
- { 10396, 0x00000306 }, /* GL_DST_COLOR */
- { 10409, 0x0000877A }, /* GL_DU8DV8_ATI */
- { 10423, 0x00008779 }, /* GL_DUDV_ATI */
- { 10435, 0x000088EA }, /* GL_DYNAMIC_COPY */
- { 10451, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
- { 10471, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
- { 10487, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
- { 10507, 0x000088E9 }, /* GL_DYNAMIC_READ */
- { 10523, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
- { 10543, 0x00000B43 }, /* GL_EDGE_FLAG */
- { 10556, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
- { 10575, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- { 10609, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
- { 10647, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
- { 10674, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- { 10700, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
- { 10724, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- { 10756, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
- { 10792, 0x00001600 }, /* GL_EMISSION */
- { 10804, 0x00002000 }, /* GL_ENABLE_BIT */
- { 10818, 0x00000202 }, /* GL_EQUAL */
- { 10827, 0x00001509 }, /* GL_EQUIV */
- { 10836, 0x00010000 }, /* GL_EVAL_BIT */
- { 10848, 0x00000800 }, /* GL_EXP */
- { 10855, 0x00000801 }, /* GL_EXP2 */
- { 10863, 0x00001F03 }, /* GL_EXTENSIONS */
- { 10877, 0x00002400 }, /* GL_EYE_LINEAR */
- { 10891, 0x00002502 }, /* GL_EYE_PLANE */
- { 10904, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
- { 10929, 0x0000855B }, /* GL_EYE_RADIAL_NV */
- { 10946, 0x00000000 }, /* GL_FALSE */
- { 10955, 0x00001101 }, /* GL_FASTEST */
- { 10966, 0x00001C01 }, /* GL_FEEDBACK */
- { 10978, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
- { 11005, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
- { 11029, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
- { 11053, 0x00001B02 }, /* GL_FILL */
- { 11061, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */
- { 11088, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
- { 11119, 0x0000140C }, /* GL_FIXED */
- { 11128, 0x0000140C }, /* GL_FIXED_OES */
- { 11141, 0x0000891D }, /* GL_FIXED_ONLY */
- { 11155, 0x0000891D }, /* GL_FIXED_ONLY_ARB */
- { 11173, 0x00001D00 }, /* GL_FLAT */
- { 11181, 0x00001406 }, /* GL_FLOAT */
- { 11190, 0x00008B5A }, /* GL_FLOAT_MAT2 */
- { 11204, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
- { 11222, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
- { 11238, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
- { 11254, 0x00008B5B }, /* GL_FLOAT_MAT3 */
- { 11268, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
- { 11286, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
- { 11302, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
- { 11318, 0x00008B5C }, /* GL_FLOAT_MAT4 */
- { 11332, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
- { 11350, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
- { 11366, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
- { 11382, 0x00008B50 }, /* GL_FLOAT_VEC2 */
- { 11396, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
- { 11414, 0x00008B51 }, /* GL_FLOAT_VEC3 */
- { 11428, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
- { 11446, 0x00008B52 }, /* GL_FLOAT_VEC4 */
- { 11460, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
- { 11478, 0x00000B60 }, /* GL_FOG */
- { 11485, 0x00000080 }, /* GL_FOG_BIT */
- { 11496, 0x00000B66 }, /* GL_FOG_COLOR */
- { 11509, 0x00008451 }, /* GL_FOG_COORD */
- { 11522, 0x00008451 }, /* GL_FOG_COORDINATE */
- { 11540, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
- { 11564, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- { 11603, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
- { 11646, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- { 11678, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- { 11709, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- { 11738, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
- { 11763, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
- { 11782, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
- { 11816, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
- { 11843, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
- { 11869, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
- { 11893, 0x00008450 }, /* GL_FOG_COORD_SRC */
- { 11910, 0x00000B62 }, /* GL_FOG_DENSITY */
- { 11925, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
- { 11949, 0x00000B64 }, /* GL_FOG_END */
- { 11960, 0x00000C54 }, /* GL_FOG_HINT */
- { 11972, 0x00000B61 }, /* GL_FOG_INDEX */
- { 11985, 0x00000B65 }, /* GL_FOG_MODE */
- { 11997, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
- { 12016, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
- { 12041, 0x00000B63 }, /* GL_FOG_START */
- { 12054, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
- { 12072, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
- { 12096, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
- { 12115, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
- { 12138, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- { 12173, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES */
- { 12212, 0x00008D40 }, /* GL_FRAMEBUFFER */
- { 12227, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- { 12264, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- { 12300, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- { 12341, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- { 12382, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- { 12419, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- { 12456, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */
- { 12490, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */
- { 12528, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- { 12566, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- { 12608, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */
- { 12650, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- { 12688, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- { 12730, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */
- { 12772, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- { 12807, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- { 12846, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- { 12895, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */
- { 12944, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- { 12992, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- { 13044, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */
- { 13096, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- { 13136, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
- { 13180, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- { 13220, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- { 13264, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */
- { 13308, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */
- { 13331, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
- { 13358, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */
- { 13385, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
- { 13409, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- { 13437, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */
- { 13465, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
- { 13488, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
- { 13507, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- { 13544, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- { 13585, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */
- { 13626, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */
- { 13663, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- { 13704, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */
- { 13745, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- { 13783, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- { 13825, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */
- { 13867, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- { 13918, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- { 13956, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */
- { 13994, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */
- { 14036, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */
- { 14076, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */
- { 14120, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- { 14165, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- { 14214, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */
- { 14263, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- { 14301, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */
- { 14343, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- { 14381, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- { 14423, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */
- { 14465, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */
- { 14484, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- { 14516, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
- { 14541, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
- { 14568, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- { 14599, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */
- { 14630, 0x00000404 }, /* GL_FRONT */
- { 14639, 0x00000408 }, /* GL_FRONT_AND_BACK */
- { 14657, 0x00000B46 }, /* GL_FRONT_FACE */
- { 14671, 0x00000400 }, /* GL_FRONT_LEFT */
- { 14685, 0x00000401 }, /* GL_FRONT_RIGHT */
- { 14700, 0x00008006 }, /* GL_FUNC_ADD */
- { 14712, 0x00008006 }, /* GL_FUNC_ADD_EXT */
- { 14728, 0x00008006 }, /* GL_FUNC_ADD_OES */
- { 14744, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
- { 14769, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
- { 14798, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */
- { 14827, 0x0000800A }, /* GL_FUNC_SUBTRACT */
- { 14844, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
- { 14865, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */
- { 14886, 0x00008191 }, /* GL_GENERATE_MIPMAP */
- { 14905, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
- { 14929, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
- { 14958, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
- { 14982, 0x00008917 }, /* GL_GEOMETRY_INPUT_TYPE */
- { 15005, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */
- { 15032, 0x00008918 }, /* GL_GEOMETRY_OUTPUT_TYPE */
- { 15056, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */
- { 15084, 0x00008DD9 }, /* GL_GEOMETRY_SHADER */
- { 15103, 0x00008DD9 }, /* GL_GEOMETRY_SHADER_ARB */
- { 15126, 0x00008916 }, /* GL_GEOMETRY_VERTICES_OUT */
- { 15151, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */
- { 15180, 0x00000206 }, /* GL_GEQUAL */
- { 15190, 0x00000204 }, /* GL_GREATER */
- { 15201, 0x00001904 }, /* GL_GREEN */
- { 15210, 0x00000D19 }, /* GL_GREEN_BIAS */
- { 15224, 0x00000D53 }, /* GL_GREEN_BITS */
- { 15238, 0x00008D95 }, /* GL_GREEN_INTEGER */
- { 15255, 0x00008D95 }, /* GL_GREEN_INTEGER_EXT */
- { 15276, 0x00000D18 }, /* GL_GREEN_SCALE */
- { 15291, 0x0000140B }, /* GL_HALF_FLOAT */
- { 15305, 0x00008D61 }, /* GL_HALF_FLOAT_OES */
- { 15323, 0x00008DF2 }, /* GL_HIGH_FLOAT */
- { 15337, 0x00008DF5 }, /* GL_HIGH_INT */
- { 15349, 0x00008000 }, /* GL_HINT_BIT */
- { 15361, 0x00008024 }, /* GL_HISTOGRAM */
- { 15374, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
- { 15398, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
- { 15426, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
- { 15449, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
- { 15476, 0x00008024 }, /* GL_HISTOGRAM_EXT */
- { 15493, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
- { 15513, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
- { 15537, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
- { 15561, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
- { 15589, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- { 15617, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
- { 15649, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
- { 15671, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
- { 15697, 0x0000802D }, /* GL_HISTOGRAM_SINK */
- { 15715, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
- { 15737, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
- { 15756, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
- { 15779, 0x0000862A }, /* GL_IDENTITY_NV */
- { 15794, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
- { 15814, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
- { 15850, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- { 15890, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
- { 15924, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- { 15962, 0x00001E02 }, /* GL_INCR */
- { 15970, 0x00008507 }, /* GL_INCR_WRAP */
- { 15983, 0x00008507 }, /* GL_INCR_WRAP_EXT */
- { 16000, 0x00008222 }, /* GL_INDEX */
- { 16009, 0x00008077 }, /* GL_INDEX_ARRAY */
- { 16024, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- { 16054, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
- { 16088, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
- { 16111, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
- { 16133, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
- { 16153, 0x00000D51 }, /* GL_INDEX_BITS */
- { 16167, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
- { 16188, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
- { 16206, 0x00000C30 }, /* GL_INDEX_MODE */
- { 16220, 0x00000D13 }, /* GL_INDEX_OFFSET */
- { 16236, 0x00000D12 }, /* GL_INDEX_SHIFT */
- { 16251, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
- { 16270, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
- { 16289, 0x00001404 }, /* GL_INT */
- { 16296, 0x00008049 }, /* GL_INTENSITY */
- { 16309, 0x0000804C }, /* GL_INTENSITY12 */
- { 16324, 0x0000804C }, /* GL_INTENSITY12_EXT */
- { 16343, 0x0000804D }, /* GL_INTENSITY16 */
- { 16358, 0x00008D8B }, /* GL_INTENSITY16I_EXT */
- { 16378, 0x00008D79 }, /* GL_INTENSITY16UI_EXT */
- { 16399, 0x0000804D }, /* GL_INTENSITY16_EXT */
- { 16418, 0x00008D85 }, /* GL_INTENSITY32I_EXT */
- { 16438, 0x00008D73 }, /* GL_INTENSITY32UI_EXT */
- { 16459, 0x0000804A }, /* GL_INTENSITY4 */
- { 16473, 0x0000804A }, /* GL_INTENSITY4_EXT */
- { 16491, 0x0000804B }, /* GL_INTENSITY8 */
- { 16505, 0x00008D91 }, /* GL_INTENSITY8I_EXT */
- { 16524, 0x00008D7F }, /* GL_INTENSITY8UI_EXT */
- { 16544, 0x0000804B }, /* GL_INTENSITY8_EXT */
- { 16562, 0x00008049 }, /* GL_INTENSITY_EXT */
- { 16579, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS */
- { 16602, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */
- { 16629, 0x00008575 }, /* GL_INTERPOLATE */
- { 16644, 0x00008575 }, /* GL_INTERPOLATE_ARB */
- { 16663, 0x00008575 }, /* GL_INTERPOLATE_EXT */
- { 16682, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */
- { 16704, 0x00008DC9 }, /* GL_INT_SAMPLER_1D */
- { 16722, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY */
- { 16746, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY_EXT */
- { 16774, 0x00008DC9 }, /* GL_INT_SAMPLER_1D_EXT */
- { 16796, 0x00008DCA }, /* GL_INT_SAMPLER_2D */
- { 16814, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY */
- { 16838, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY_EXT */
- { 16866, 0x00008DCA }, /* GL_INT_SAMPLER_2D_EXT */
- { 16888, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT */
- { 16911, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT_EXT */
- { 16938, 0x00008DCB }, /* GL_INT_SAMPLER_3D */
- { 16956, 0x00008DCB }, /* GL_INT_SAMPLER_3D_EXT */
- { 16978, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER */
- { 17000, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER_EXT */
- { 17026, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE */
- { 17046, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE_EXT */
- { 17070, 0x00008B53 }, /* GL_INT_VEC2 */
- { 17082, 0x00008B53 }, /* GL_INT_VEC2_ARB */
- { 17098, 0x00008B54 }, /* GL_INT_VEC3 */
- { 17110, 0x00008B54 }, /* GL_INT_VEC3_ARB */
- { 17126, 0x00008B55 }, /* GL_INT_VEC4 */
- { 17138, 0x00008B55 }, /* GL_INT_VEC4_ARB */
- { 17154, 0x00000500 }, /* GL_INVALID_ENUM */
- { 17170, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
- { 17203, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
- { 17240, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */
- { 17277, 0x00000502 }, /* GL_INVALID_OPERATION */
- { 17298, 0x00000501 }, /* GL_INVALID_VALUE */
- { 17315, 0x0000862B }, /* GL_INVERSE_NV */
- { 17329, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
- { 17353, 0x0000150A }, /* GL_INVERT */
- { 17363, 0x00001E00 }, /* GL_KEEP */
- { 17371, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */
- { 17397, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
- { 17427, 0x00000406 }, /* GL_LEFT */
- { 17435, 0x00000203 }, /* GL_LEQUAL */
- { 17445, 0x00000201 }, /* GL_LESS */
- { 17453, 0x00004000 }, /* GL_LIGHT0 */
- { 17463, 0x00004001 }, /* GL_LIGHT1 */
- { 17473, 0x00004002 }, /* GL_LIGHT2 */
- { 17483, 0x00004003 }, /* GL_LIGHT3 */
- { 17493, 0x00004004 }, /* GL_LIGHT4 */
- { 17503, 0x00004005 }, /* GL_LIGHT5 */
- { 17513, 0x00004006 }, /* GL_LIGHT6 */
- { 17523, 0x00004007 }, /* GL_LIGHT7 */
- { 17533, 0x00000B50 }, /* GL_LIGHTING */
- { 17545, 0x00000040 }, /* GL_LIGHTING_BIT */
- { 17561, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
- { 17584, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- { 17613, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
- { 17646, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- { 17674, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
- { 17698, 0x00001B01 }, /* GL_LINE */
- { 17706, 0x00002601 }, /* GL_LINEAR */
- { 17716, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
- { 17738, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- { 17768, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- { 17799, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
- { 17823, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
- { 17848, 0x00000001 }, /* GL_LINES */
- { 17857, 0x0000000A }, /* GL_LINES_ADJACENCY */
- { 17876, 0x0000000A }, /* GL_LINES_ADJACENCY_ARB */
- { 17899, 0x00000004 }, /* GL_LINE_BIT */
- { 17911, 0x00000002 }, /* GL_LINE_LOOP */
- { 17924, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
- { 17944, 0x00000B20 }, /* GL_LINE_SMOOTH */
- { 17959, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
- { 17979, 0x00000B24 }, /* GL_LINE_STIPPLE */
- { 17995, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
- { 18019, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
- { 18042, 0x00000003 }, /* GL_LINE_STRIP */
- { 18056, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY */
- { 18080, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY_ARB */
- { 18108, 0x00000702 }, /* GL_LINE_TOKEN */
- { 18122, 0x00000B21 }, /* GL_LINE_WIDTH */
- { 18136, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
- { 18162, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
- { 18182, 0x00008B82 }, /* GL_LINK_STATUS */
- { 18197, 0x00000B32 }, /* GL_LIST_BASE */
- { 18210, 0x00020000 }, /* GL_LIST_BIT */
- { 18222, 0x00000B33 }, /* GL_LIST_INDEX */
- { 18236, 0x00000B30 }, /* GL_LIST_MODE */
- { 18249, 0x00000101 }, /* GL_LOAD */
- { 18257, 0x00000BF1 }, /* GL_LOGIC_OP */
- { 18269, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
- { 18286, 0x00008CA1 }, /* GL_LOWER_LEFT */
- { 18300, 0x00008DF0 }, /* GL_LOW_FLOAT */
- { 18313, 0x00008DF3 }, /* GL_LOW_INT */
- { 18324, 0x00001909 }, /* GL_LUMINANCE */
- { 18337, 0x00008041 }, /* GL_LUMINANCE12 */
- { 18352, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
- { 18375, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
- { 18402, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
- { 18424, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
- { 18450, 0x00008041 }, /* GL_LUMINANCE12_EXT */
- { 18469, 0x00008042 }, /* GL_LUMINANCE16 */
- { 18484, 0x00008D8C }, /* GL_LUMINANCE16I_EXT */
- { 18504, 0x00008D7A }, /* GL_LUMINANCE16UI_EXT */
- { 18525, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
- { 18548, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
- { 18575, 0x00008042 }, /* GL_LUMINANCE16_EXT */
- { 18594, 0x00008D86 }, /* GL_LUMINANCE32I_EXT */
- { 18614, 0x00008D74 }, /* GL_LUMINANCE32UI_EXT */
- { 18635, 0x0000803F }, /* GL_LUMINANCE4 */
- { 18649, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
- { 18670, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
- { 18695, 0x0000803F }, /* GL_LUMINANCE4_EXT */
- { 18713, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
- { 18734, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
- { 18759, 0x00008040 }, /* GL_LUMINANCE8 */
- { 18773, 0x00008D92 }, /* GL_LUMINANCE8I_EXT */
- { 18792, 0x00008D80 }, /* GL_LUMINANCE8UI_EXT */
- { 18812, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
- { 18833, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
- { 18858, 0x00008040 }, /* GL_LUMINANCE8_EXT */
- { 18876, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
- { 18895, 0x00008D8D }, /* GL_LUMINANCE_ALPHA16I_EXT */
- { 18921, 0x00008D7B }, /* GL_LUMINANCE_ALPHA16UI_EXT */
- { 18948, 0x00008D87 }, /* GL_LUMINANCE_ALPHA32I_EXT */
- { 18974, 0x00008D75 }, /* GL_LUMINANCE_ALPHA32UI_EXT */
- { 19001, 0x00008D93 }, /* GL_LUMINANCE_ALPHA8I_EXT */
- { 19026, 0x00008D81 }, /* GL_LUMINANCE_ALPHA8UI_EXT */
- { 19052, 0x00008D9D }, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */
- { 19083, 0x00008D9C }, /* GL_LUMINANCE_INTEGER_EXT */
- { 19108, 0x0000821B }, /* GL_MAJOR_VERSION */
- { 19125, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
- { 19141, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
- { 19161, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
- { 19183, 0x00000D91 }, /* GL_MAP1_INDEX */
- { 19197, 0x00000D92 }, /* GL_MAP1_NORMAL */
- { 19212, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
- { 19236, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
- { 19260, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
- { 19284, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
- { 19308, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
- { 19325, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
- { 19342, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- { 19370, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- { 19399, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- { 19428, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- { 19457, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- { 19486, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- { 19515, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- { 19544, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- { 19572, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- { 19600, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- { 19628, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- { 19656, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- { 19684, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- { 19712, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- { 19740, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- { 19768, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- { 19796, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
- { 19812, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
- { 19832, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
- { 19854, 0x00000DB1 }, /* GL_MAP2_INDEX */
- { 19868, 0x00000DB2 }, /* GL_MAP2_NORMAL */
- { 19883, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
- { 19907, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
- { 19931, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
- { 19955, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
- { 19979, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
- { 19996, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
- { 20013, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- { 20041, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- { 20070, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- { 20099, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- { 20128, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- { 20157, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- { 20186, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- { 20215, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- { 20243, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- { 20271, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- { 20299, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- { 20327, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- { 20355, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- { 20383, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
- { 20411, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- { 20439, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- { 20467, 0x00000D10 }, /* GL_MAP_COLOR */
- { 20480, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
- { 20506, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
- { 20535, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
- { 20563, 0x00000001 }, /* GL_MAP_READ_BIT */
- { 20579, 0x00000D11 }, /* GL_MAP_STENCIL */
- { 20594, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
- { 20620, 0x00000002 }, /* GL_MAP_WRITE_BIT */
- { 20637, 0x000088C0 }, /* GL_MATRIX0_ARB */
- { 20652, 0x00008630 }, /* GL_MATRIX0_NV */
- { 20666, 0x000088CA }, /* GL_MATRIX10_ARB */
- { 20682, 0x000088CB }, /* GL_MATRIX11_ARB */
- { 20698, 0x000088CC }, /* GL_MATRIX12_ARB */
- { 20714, 0x000088CD }, /* GL_MATRIX13_ARB */
- { 20730, 0x000088CE }, /* GL_MATRIX14_ARB */
- { 20746, 0x000088CF }, /* GL_MATRIX15_ARB */
- { 20762, 0x000088D0 }, /* GL_MATRIX16_ARB */
- { 20778, 0x000088D1 }, /* GL_MATRIX17_ARB */
- { 20794, 0x000088D2 }, /* GL_MATRIX18_ARB */
- { 20810, 0x000088D3 }, /* GL_MATRIX19_ARB */
- { 20826, 0x000088C1 }, /* GL_MATRIX1_ARB */
- { 20841, 0x00008631 }, /* GL_MATRIX1_NV */
- { 20855, 0x000088D4 }, /* GL_MATRIX20_ARB */
- { 20871, 0x000088D5 }, /* GL_MATRIX21_ARB */
- { 20887, 0x000088D6 }, /* GL_MATRIX22_ARB */
- { 20903, 0x000088D7 }, /* GL_MATRIX23_ARB */
- { 20919, 0x000088D8 }, /* GL_MATRIX24_ARB */
- { 20935, 0x000088D9 }, /* GL_MATRIX25_ARB */
- { 20951, 0x000088DA }, /* GL_MATRIX26_ARB */
- { 20967, 0x000088DB }, /* GL_MATRIX27_ARB */
- { 20983, 0x000088DC }, /* GL_MATRIX28_ARB */
- { 20999, 0x000088DD }, /* GL_MATRIX29_ARB */
- { 21015, 0x000088C2 }, /* GL_MATRIX2_ARB */
- { 21030, 0x00008632 }, /* GL_MATRIX2_NV */
- { 21044, 0x000088DE }, /* GL_MATRIX30_ARB */
- { 21060, 0x000088DF }, /* GL_MATRIX31_ARB */
- { 21076, 0x000088C3 }, /* GL_MATRIX3_ARB */
- { 21091, 0x00008633 }, /* GL_MATRIX3_NV */
- { 21105, 0x000088C4 }, /* GL_MATRIX4_ARB */
- { 21120, 0x00008634 }, /* GL_MATRIX4_NV */
- { 21134, 0x000088C5 }, /* GL_MATRIX5_ARB */
- { 21149, 0x00008635 }, /* GL_MATRIX5_NV */
- { 21163, 0x000088C6 }, /* GL_MATRIX6_ARB */
- { 21178, 0x00008636 }, /* GL_MATRIX6_NV */
- { 21192, 0x000088C7 }, /* GL_MATRIX7_ARB */
- { 21207, 0x00008637 }, /* GL_MATRIX7_NV */
- { 21221, 0x000088C8 }, /* GL_MATRIX8_ARB */
- { 21236, 0x000088C9 }, /* GL_MATRIX9_ARB */
- { 21251, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
- { 21277, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
- { 21318, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */
- { 21344, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- { 21378, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */
- { 21412, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- { 21443, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */
- { 21474, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- { 21507, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */
- { 21540, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- { 21571, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */
- { 21602, 0x00000BA0 }, /* GL_MATRIX_MODE */
- { 21617, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
- { 21639, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */
- { 21661, 0x00008008 }, /* GL_MAX */
- { 21668, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
- { 21691, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */
- { 21718, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS */
- { 21746, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- { 21778, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
- { 21804, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- { 21837, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- { 21863, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 21897, 0x00000D32 }, /* GL_MAX_CLIP_DISTANCES */
- { 21919, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
- { 21938, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */
- { 21963, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- { 21992, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- { 22024, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 22060, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- { 22096, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
- { 22136, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
- { 22162, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
- { 22192, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
- { 22217, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
- { 22246, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- { 22275, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
- { 22308, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */
- { 22341, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
- { 22361, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
- { 22385, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
- { 22409, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
- { 22433, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
- { 22458, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
- { 22476, 0x00008008 }, /* GL_MAX_EXT */
- { 22487, 0x00009125 }, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */
- { 22520, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- { 22555, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
- { 22594, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
- { 22626, 0x00009123 }, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */
- { 22659, 0x00009124 }, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */
- { 22693, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */
- { 22725, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */
- { 22761, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */
- { 22797, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */
- { 22837, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */
- { 22877, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */
- { 22921, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */
- { 22956, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */
- { 22995, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */
- { 23034, 0x00000D31 }, /* GL_MAX_LIGHTS */
- { 23048, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
- { 23068, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- { 23106, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- { 23135, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
- { 23159, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
- { 23187, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */
- { 23215, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
- { 23238, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 23275, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 23311, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- { 23338, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- { 23367, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- { 23401, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- { 23437, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- { 23464, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- { 23496, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- { 23532, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- { 23561, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- { 23590, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
- { 23618, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- { 23656, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 23700, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 23743, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 23777, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 23816, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 23853, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 23891, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 23934, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 23977, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- { 24007, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- { 24038, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET */
- { 24066, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET_EXT */
- { 24098, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 24134, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 24170, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
- { 24200, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */
- { 24230, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- { 24264, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
- { 24297, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */
- { 24322, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- { 24351, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */
- { 24380, 0x00008D57 }, /* GL_MAX_SAMPLES */
- { 24395, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */
- { 24414, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- { 24441, 0x00008504 }, /* GL_MAX_SHININESS_NV */
- { 24461, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
- { 24485, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE */
- { 24512, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE_ARB */
- { 24543, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
- { 24565, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
- { 24591, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- { 24618, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
- { 24649, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
- { 24673, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */
- { 24701, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- { 24735, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
- { 24755, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
- { 24782, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
- { 24803, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
- { 24828, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
- { 24853, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
- { 24888, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */
- { 24937, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
- { 24990, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */
- { 25033, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
- { 25080, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */
- { 25126, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
- { 25176, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */
- { 25202, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
- { 25224, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
- { 25250, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */
- { 25273, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
- { 25295, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
- { 25321, 0x00009122 }, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */
- { 25353, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- { 25387, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
- { 25425, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- { 25458, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
- { 25495, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
- { 25525, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
- { 25549, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */
- { 25573, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */
- { 25610, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
- { 25631, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */
- { 25647, 0x00008DF4 }, /* GL_MEDIUM_INT */
- { 25661, 0x00008007 }, /* GL_MIN */
- { 25668, 0x0000802E }, /* GL_MINMAX */
- { 25678, 0x0000802E }, /* GL_MINMAX_EXT */
- { 25692, 0x0000802F }, /* GL_MINMAX_FORMAT */
- { 25709, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
- { 25730, 0x00008030 }, /* GL_MINMAX_SINK */
- { 25745, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
- { 25764, 0x0000821C }, /* GL_MINOR_VERSION */
- { 25781, 0x00008007 }, /* GL_MIN_EXT */
- { 25792, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET */
- { 25820, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET_EXT */
- { 25852, 0x00008370 }, /* GL_MIRRORED_REPEAT */
- { 25871, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
- { 25894, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
- { 25917, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
- { 25937, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
- { 25957, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- { 25987, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
- { 26015, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- { 26043, 0x00001700 }, /* GL_MODELVIEW */
- { 26056, 0x00001700 }, /* GL_MODELVIEW0_ARB */
- { 26074, 0x0000872A }, /* GL_MODELVIEW10_ARB */
- { 26093, 0x0000872B }, /* GL_MODELVIEW11_ARB */
- { 26112, 0x0000872C }, /* GL_MODELVIEW12_ARB */
- { 26131, 0x0000872D }, /* GL_MODELVIEW13_ARB */
- { 26150, 0x0000872E }, /* GL_MODELVIEW14_ARB */
- { 26169, 0x0000872F }, /* GL_MODELVIEW15_ARB */
- { 26188, 0x00008730 }, /* GL_MODELVIEW16_ARB */
- { 26207, 0x00008731 }, /* GL_MODELVIEW17_ARB */
- { 26226, 0x00008732 }, /* GL_MODELVIEW18_ARB */
- { 26245, 0x00008733 }, /* GL_MODELVIEW19_ARB */
- { 26264, 0x0000850A }, /* GL_MODELVIEW1_ARB */
- { 26282, 0x00008734 }, /* GL_MODELVIEW20_ARB */
- { 26301, 0x00008735 }, /* GL_MODELVIEW21_ARB */
- { 26320, 0x00008736 }, /* GL_MODELVIEW22_ARB */
- { 26339, 0x00008737 }, /* GL_MODELVIEW23_ARB */
- { 26358, 0x00008738 }, /* GL_MODELVIEW24_ARB */
- { 26377, 0x00008739 }, /* GL_MODELVIEW25_ARB */
- { 26396, 0x0000873A }, /* GL_MODELVIEW26_ARB */
- { 26415, 0x0000873B }, /* GL_MODELVIEW27_ARB */
- { 26434, 0x0000873C }, /* GL_MODELVIEW28_ARB */
- { 26453, 0x0000873D }, /* GL_MODELVIEW29_ARB */
- { 26472, 0x00008722 }, /* GL_MODELVIEW2_ARB */
- { 26490, 0x0000873E }, /* GL_MODELVIEW30_ARB */
- { 26509, 0x0000873F }, /* GL_MODELVIEW31_ARB */
- { 26528, 0x00008723 }, /* GL_MODELVIEW3_ARB */
- { 26546, 0x00008724 }, /* GL_MODELVIEW4_ARB */
- { 26564, 0x00008725 }, /* GL_MODELVIEW5_ARB */
- { 26582, 0x00008726 }, /* GL_MODELVIEW6_ARB */
- { 26600, 0x00008727 }, /* GL_MODELVIEW7_ARB */
- { 26618, 0x00008728 }, /* GL_MODELVIEW8_ARB */
- { 26636, 0x00008729 }, /* GL_MODELVIEW9_ARB */
- { 26654, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
- { 26674, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 26716, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
- { 26743, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
- { 26768, 0x00002100 }, /* GL_MODULATE */
- { 26780, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
- { 26800, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
- { 26827, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
- { 26852, 0x00000103 }, /* GL_MULT */
- { 26860, 0x0000809D }, /* GL_MULTISAMPLE */
- { 26875, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
- { 26895, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
- { 26914, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
- { 26933, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
- { 26957, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
- { 26980, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- { 27010, 0x00002A25 }, /* GL_N3F_V3F */
- { 27021, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
- { 27041, 0x0000150E }, /* GL_NAND */
- { 27049, 0x00002600 }, /* GL_NEAREST */
- { 27060, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- { 27091, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- { 27123, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
- { 27148, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
- { 27174, 0x00000200 }, /* GL_NEVER */
- { 27183, 0x00001102 }, /* GL_NICEST */
- { 27193, 0x00000000 }, /* GL_NONE */
- { 27201, 0x00000000 }, /* GL_NONE_OES */
- { 27213, 0x00001505 }, /* GL_NOOP */
- { 27221, 0x00001508 }, /* GL_NOR */
- { 27228, 0x00000BA1 }, /* GL_NORMALIZE */
- { 27241, 0x00008075 }, /* GL_NORMAL_ARRAY */
- { 27257, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- { 27288, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
- { 27323, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
- { 27347, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
- { 27370, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
- { 27391, 0x00008511 }, /* GL_NORMAL_MAP */
- { 27405, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
- { 27423, 0x00008511 }, /* GL_NORMAL_MAP_NV */
- { 27440, 0x00008511 }, /* GL_NORMAL_MAP_OES */
- { 27458, 0x00000205 }, /* GL_NOTEQUAL */
- { 27470, 0x00000000 }, /* GL_NO_ERROR */
- { 27482, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- { 27516, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
- { 27554, 0x0000821D }, /* GL_NUM_EXTENSIONS */
- { 27572, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
- { 27606, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */
- { 27635, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
- { 27667, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
- { 27709, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
- { 27739, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
- { 27779, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
- { 27810, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
- { 27839, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
- { 27867, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
- { 27897, 0x00002401 }, /* GL_OBJECT_LINEAR */
- { 27914, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
- { 27940, 0x00002501 }, /* GL_OBJECT_PLANE */
- { 27956, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
- { 27991, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
- { 28013, 0x00009112 }, /* GL_OBJECT_TYPE */
- { 28028, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
- { 28047, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
- { 28077, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
- { 28098, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
- { 28126, 0x00000001 }, /* GL_ONE */
- { 28133, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- { 28161, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
- { 28193, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
- { 28221, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
- { 28253, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
- { 28276, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
- { 28299, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
- { 28322, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
- { 28345, 0x00008598 }, /* GL_OPERAND0_ALPHA */
- { 28363, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
- { 28385, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
- { 28407, 0x00008590 }, /* GL_OPERAND0_RGB */
- { 28423, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
- { 28443, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
- { 28463, 0x00008599 }, /* GL_OPERAND1_ALPHA */
- { 28481, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
- { 28503, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
- { 28525, 0x00008591 }, /* GL_OPERAND1_RGB */
- { 28541, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
- { 28561, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
- { 28581, 0x0000859A }, /* GL_OPERAND2_ALPHA */
- { 28599, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
- { 28621, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
- { 28643, 0x00008592 }, /* GL_OPERAND2_RGB */
- { 28659, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
- { 28679, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
- { 28699, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
- { 28720, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
- { 28739, 0x00001507 }, /* GL_OR */
- { 28745, 0x00000A01 }, /* GL_ORDER */
- { 28754, 0x0000150D }, /* GL_OR_INVERTED */
- { 28769, 0x0000150B }, /* GL_OR_REVERSE */
- { 28783, 0x00000505 }, /* GL_OUT_OF_MEMORY */
- { 28800, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
- { 28818, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
- { 28839, 0x00008758 }, /* GL_PACK_INVERT_MESA */
- { 28859, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
- { 28877, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
- { 28896, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
- { 28916, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
- { 28936, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
- { 28954, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
- { 28973, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
- { 28998, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
- { 29022, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
- { 29043, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
- { 29065, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
- { 29087, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
- { 29112, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
- { 29136, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
- { 29157, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
- { 29179, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
- { 29201, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
- { 29223, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
- { 29254, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
- { 29274, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- { 29299, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
- { 29319, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- { 29344, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
- { 29364, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- { 29389, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
- { 29409, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- { 29434, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
- { 29454, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- { 29479, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
- { 29499, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- { 29524, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
- { 29544, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- { 29569, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
- { 29589, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- { 29614, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
- { 29634, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- { 29659, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
- { 29679, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- { 29704, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
- { 29722, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
- { 29743, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
- { 29772, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
- { 29805, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
- { 29830, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
- { 29853, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- { 29884, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
- { 29919, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
- { 29946, 0x00001B00 }, /* GL_POINT */
- { 29955, 0x00000000 }, /* GL_POINTS */
- { 29965, 0x00000002 }, /* GL_POINT_BIT */
- { 29978, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
- { 30008, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
- { 30042, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
- { 30076, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
- { 30111, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
- { 30140, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
- { 30173, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
- { 30206, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
- { 30240, 0x00000B11 }, /* GL_POINT_SIZE */
- { 30254, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
- { 30293, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */
- { 30317, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
- { 30349, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
- { 30380, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
- { 30409, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
- { 30435, 0x00008127 }, /* GL_POINT_SIZE_MAX */
- { 30453, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
- { 30475, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
- { 30497, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
- { 30520, 0x00008126 }, /* GL_POINT_SIZE_MIN */
- { 30538, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
- { 30560, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
- { 30582, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
- { 30605, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
- { 30625, 0x00000B10 }, /* GL_POINT_SMOOTH */
- { 30641, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
- { 30662, 0x00008861 }, /* GL_POINT_SPRITE */
- { 30678, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
- { 30698, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
- { 30727, 0x00008861 }, /* GL_POINT_SPRITE_NV */
- { 30746, 0x00008861 }, /* GL_POINT_SPRITE_OES */
- { 30766, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
- { 30792, 0x00000701 }, /* GL_POINT_TOKEN */
- { 30807, 0x00000009 }, /* GL_POLYGON */
- { 30818, 0x00000008 }, /* GL_POLYGON_BIT */
- { 30833, 0x00000B40 }, /* GL_POLYGON_MODE */
- { 30849, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
- { 30872, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
- { 30897, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
- { 30920, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
- { 30943, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
- { 30967, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
- { 30991, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
- { 31009, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
- { 31032, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
- { 31051, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
- { 31074, 0x00000703 }, /* GL_POLYGON_TOKEN */
- { 31091, 0x00001203 }, /* GL_POSITION */
- { 31103, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- { 31135, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
- { 31171, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- { 31204, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
- { 31241, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- { 31272, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
- { 31307, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- { 31339, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
- { 31375, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- { 31408, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- { 31440, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
- { 31476, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- { 31509, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
- { 31546, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- { 31576, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
- { 31610, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- { 31641, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
- { 31676, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- { 31707, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
- { 31742, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- { 31774, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
- { 31810, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- { 31840, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
- { 31874, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- { 31905, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
- { 31940, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- { 31972, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- { 32003, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
- { 32038, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- { 32070, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
- { 32106, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
- { 32135, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
- { 32168, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
- { 32198, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
- { 32232, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- { 32271, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- { 32304, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- { 32344, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- { 32378, 0x00008578 }, /* GL_PREVIOUS */
- { 32390, 0x00008578 }, /* GL_PREVIOUS_ARB */
- { 32406, 0x00008578 }, /* GL_PREVIOUS_EXT */
- { 32422, 0x00008577 }, /* GL_PRIMARY_COLOR */
- { 32439, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
- { 32460, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
- { 32481, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED */
- { 32505, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */
- { 32533, 0x00008F9D }, /* GL_PRIMITIVE_RESTART */
- { 32554, 0x00008F9E }, /* GL_PRIMITIVE_RESTART_INDEX */
- { 32581, 0x00008559 }, /* GL_PRIMITIVE_RESTART_INDEX_NV */
- { 32611, 0x00008558 }, /* GL_PRIMITIVE_RESTART_NV */
- { 32635, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 32668, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 32700, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
- { 32723, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */
- { 32753, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */
- { 32782, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
- { 32805, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
- { 32835, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
- { 32864, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
- { 32892, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
- { 32914, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- { 32942, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- { 32970, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
- { 32992, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
- { 33013, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 33053, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 33092, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 33122, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 33157, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 33190, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 33224, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 33263, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 33302, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
- { 33324, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
- { 33350, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
- { 33374, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE */
- { 33396, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE_ARB */
- { 33422, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
- { 33445, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
- { 33467, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
- { 33488, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
- { 33509, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
- { 33536, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 33568, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 33600, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- { 33635, 0x00001701 }, /* GL_PROJECTION */
- { 33649, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
- { 33670, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 33713, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
- { 33739, 0x00008E4F }, /* GL_PROVOKING_VERTEX */
- { 33759, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
- { 33783, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
- { 33804, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
- { 33823, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
- { 33846, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- { 33885, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- { 33923, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
- { 33943, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY */
- { 33969, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- { 33999, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
- { 34023, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
- { 34043, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY */
- { 34069, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- { 34099, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
- { 34123, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
- { 34143, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- { 34176, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
- { 34202, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
- { 34232, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE */
- { 34259, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- { 34290, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
- { 34320, 0x00008A1D }, /* GL_PURGEABLE_APPLE */
- { 34339, 0x00002003 }, /* GL_Q */
- { 34344, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
- { 34369, 0x00000007 }, /* GL_QUADS */
- { 34378, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
- { 34422, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
- { 34470, 0x00008614 }, /* GL_QUAD_MESH_SUN */
- { 34487, 0x00000008 }, /* GL_QUAD_STRIP */
- { 34501, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT */
- { 34528, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
- { 34558, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT */
- { 34582, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */
- { 34609, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
- { 34631, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
- { 34657, 0x00008E14 }, /* GL_QUERY_NO_WAIT */
- { 34674, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */
- { 34694, 0x00008866 }, /* GL_QUERY_RESULT */
- { 34710, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
- { 34730, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
- { 34756, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
- { 34786, 0x00008E13 }, /* GL_QUERY_WAIT */
- { 34800, 0x00008E13 }, /* GL_QUERY_WAIT_NV */
- { 34817, 0x00002002 }, /* GL_R */
- { 34822, 0x00008C3A }, /* GL_R11F_G11F_B10F */
- { 34840, 0x00008F98 }, /* GL_R16_SNORM */
- { 34853, 0x00002A10 }, /* GL_R3_G3_B2 */
- { 34865, 0x00008F94 }, /* GL_R8_SNORM */
- { 34877, 0x00008C89 }, /* GL_RASTERIZER_DISCARD */
- { 34899, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */
- { 34925, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- { 34958, 0x00000C02 }, /* GL_READ_BUFFER */
- { 34973, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
- { 34993, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */
- { 35021, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- { 35053, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
- { 35077, 0x000088B8 }, /* GL_READ_ONLY */
- { 35090, 0x000088B8 }, /* GL_READ_ONLY_ARB */
- { 35107, 0x000088BA }, /* GL_READ_WRITE */
- { 35121, 0x000088BA }, /* GL_READ_WRITE_ARB */
- { 35139, 0x00001903 }, /* GL_RED */
- { 35146, 0x00008016 }, /* GL_REDUCE */
- { 35156, 0x00008016 }, /* GL_REDUCE_EXT */
- { 35170, 0x00000D15 }, /* GL_RED_BIAS */
- { 35182, 0x00000D52 }, /* GL_RED_BITS */
- { 35194, 0x00008D94 }, /* GL_RED_INTEGER */
- { 35209, 0x00008D94 }, /* GL_RED_INTEGER_EXT */
- { 35228, 0x00000D14 }, /* GL_RED_SCALE */
- { 35241, 0x00008F90 }, /* GL_RED_SNORM */
- { 35254, 0x00008512 }, /* GL_REFLECTION_MAP */
- { 35272, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
- { 35294, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
- { 35315, 0x00008512 }, /* GL_REFLECTION_MAP_OES */
- { 35337, 0x00008A19 }, /* GL_RELEASED_APPLE */
- { 35355, 0x00001C00 }, /* GL_RENDER */
- { 35365, 0x00008D41 }, /* GL_RENDERBUFFER */
- { 35381, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
- { 35408, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */
- { 35439, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */
- { 35463, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
- { 35491, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */
- { 35519, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
- { 35545, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */
- { 35575, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
- { 35602, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */
- { 35633, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
- { 35653, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
- { 35680, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */
- { 35711, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
- { 35734, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
- { 35761, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */
- { 35788, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- { 35820, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- { 35856, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
- { 35892, 0x00008D41 }, /* GL_RENDERBUFFER_OES */
- { 35912, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
- { 35937, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */
- { 35966, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
- { 35990, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */
- { 36018, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
- { 36047, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */
- { 36080, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
- { 36102, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
- { 36128, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */
- { 36154, 0x00001F01 }, /* GL_RENDERER */
- { 36166, 0x00000C40 }, /* GL_RENDER_MODE */
- { 36181, 0x00002901 }, /* GL_REPEAT */
- { 36191, 0x00001E01 }, /* GL_REPLACE */
- { 36202, 0x00008062 }, /* GL_REPLACE_EXT */
- { 36217, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
- { 36240, 0x0000803A }, /* GL_RESCALE_NORMAL */
- { 36258, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
- { 36280, 0x00008A1B }, /* GL_RETAINED_APPLE */
- { 36298, 0x00000102 }, /* GL_RETURN */
- { 36308, 0x00008F99 }, /* GL_RG16_SNORM */
- { 36322, 0x00008F95 }, /* GL_RG8_SNORM */
- { 36335, 0x00001907 }, /* GL_RGB */
- { 36342, 0x00008052 }, /* GL_RGB10 */
- { 36351, 0x00008059 }, /* GL_RGB10_A2 */
- { 36363, 0x00008059 }, /* GL_RGB10_A2_EXT */
- { 36379, 0x00008052 }, /* GL_RGB10_EXT */
- { 36392, 0x00008053 }, /* GL_RGB12 */
- { 36401, 0x00008053 }, /* GL_RGB12_EXT */
- { 36414, 0x00008054 }, /* GL_RGB16 */
- { 36423, 0x0000881B }, /* GL_RGB16F */
- { 36433, 0x00008D89 }, /* GL_RGB16I */
- { 36443, 0x00008D89 }, /* GL_RGB16I_EXT */
- { 36457, 0x00008D77 }, /* GL_RGB16UI */
- { 36468, 0x00008D77 }, /* GL_RGB16UI_EXT */
- { 36483, 0x00008054 }, /* GL_RGB16_EXT */
- { 36496, 0x00008F9A }, /* GL_RGB16_SNORM */
- { 36511, 0x0000804E }, /* GL_RGB2_EXT */
- { 36523, 0x00008815 }, /* GL_RGB32F */
- { 36533, 0x00008D83 }, /* GL_RGB32I */
- { 36543, 0x00008D83 }, /* GL_RGB32I_EXT */
- { 36557, 0x00008D71 }, /* GL_RGB32UI */
- { 36568, 0x00008D71 }, /* GL_RGB32UI_EXT */
- { 36583, 0x0000804F }, /* GL_RGB4 */
- { 36591, 0x0000804F }, /* GL_RGB4_EXT */
- { 36603, 0x000083A1 }, /* GL_RGB4_S3TC */
- { 36616, 0x00008050 }, /* GL_RGB5 */
- { 36624, 0x00008D62 }, /* GL_RGB565 */
- { 36634, 0x00008D62 }, /* GL_RGB565_OES */
- { 36648, 0x00008057 }, /* GL_RGB5_A1 */
- { 36659, 0x00008057 }, /* GL_RGB5_A1_EXT */
- { 36674, 0x00008057 }, /* GL_RGB5_A1_OES */
- { 36689, 0x00008050 }, /* GL_RGB5_EXT */
- { 36701, 0x00008051 }, /* GL_RGB8 */
- { 36709, 0x00008D8F }, /* GL_RGB8I */
- { 36718, 0x00008D8F }, /* GL_RGB8I_EXT */
- { 36731, 0x00008D7D }, /* GL_RGB8UI */
- { 36741, 0x00008D7D }, /* GL_RGB8UI_EXT */
- { 36755, 0x00008051 }, /* GL_RGB8_EXT */
- { 36767, 0x00008051 }, /* GL_RGB8_OES */
- { 36779, 0x00008F96 }, /* GL_RGB8_SNORM */
- { 36793, 0x00008C3D }, /* GL_RGB9_E5 */
- { 36804, 0x00001908 }, /* GL_RGBA */
- { 36812, 0x0000805A }, /* GL_RGBA12 */
- { 36822, 0x0000805A }, /* GL_RGBA12_EXT */
- { 36836, 0x0000805B }, /* GL_RGBA16 */
- { 36846, 0x0000881A }, /* GL_RGBA16F */
- { 36857, 0x00008D88 }, /* GL_RGBA16I */
- { 36868, 0x00008D88 }, /* GL_RGBA16I_EXT */
- { 36883, 0x00008D76 }, /* GL_RGBA16UI */
- { 36895, 0x00008D76 }, /* GL_RGBA16UI_EXT */
- { 36911, 0x0000805B }, /* GL_RGBA16_EXT */
- { 36925, 0x00008F9B }, /* GL_RGBA16_SNORM */
- { 36941, 0x00008055 }, /* GL_RGBA2 */
- { 36950, 0x00008055 }, /* GL_RGBA2_EXT */
- { 36963, 0x00008814 }, /* GL_RGBA32F */
- { 36974, 0x00008D82 }, /* GL_RGBA32I */
- { 36985, 0x00008D82 }, /* GL_RGBA32I_EXT */
- { 37000, 0x00008D70 }, /* GL_RGBA32UI */
- { 37012, 0x00008D70 }, /* GL_RGBA32UI_EXT */
- { 37028, 0x00008056 }, /* GL_RGBA4 */
- { 37037, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
- { 37056, 0x00008056 }, /* GL_RGBA4_EXT */
- { 37069, 0x00008056 }, /* GL_RGBA4_OES */
- { 37082, 0x000083A3 }, /* GL_RGBA4_S3TC */
- { 37096, 0x00008058 }, /* GL_RGBA8 */
- { 37105, 0x00008D8E }, /* GL_RGBA8I */
- { 37115, 0x00008D8E }, /* GL_RGBA8I_EXT */
- { 37129, 0x00008D7C }, /* GL_RGBA8UI */
- { 37140, 0x00008D7C }, /* GL_RGBA8UI_EXT */
- { 37155, 0x00008058 }, /* GL_RGBA8_EXT */
- { 37168, 0x00008058 }, /* GL_RGBA8_OES */
- { 37181, 0x00008F97 }, /* GL_RGBA8_SNORM */
- { 37196, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
- { 37214, 0x00008820 }, /* GL_RGBA_FLOAT_MODE_ARB */
- { 37237, 0x00008D99 }, /* GL_RGBA_INTEGER */
- { 37253, 0x00008D99 }, /* GL_RGBA_INTEGER_EXT */
- { 37273, 0x00008D9E }, /* GL_RGBA_INTEGER_MODE_EXT */
- { 37298, 0x00000C31 }, /* GL_RGBA_MODE */
- { 37311, 0x000083A2 }, /* GL_RGBA_S3TC */
- { 37324, 0x00008F93 }, /* GL_RGBA_SNORM */
- { 37338, 0x00008D98 }, /* GL_RGB_INTEGER */
- { 37353, 0x00008D98 }, /* GL_RGB_INTEGER_EXT */
- { 37372, 0x000083A0 }, /* GL_RGB_S3TC */
- { 37384, 0x00008573 }, /* GL_RGB_SCALE */
- { 37397, 0x00008573 }, /* GL_RGB_SCALE_ARB */
- { 37414, 0x00008573 }, /* GL_RGB_SCALE_EXT */
- { 37431, 0x00008F92 }, /* GL_RGB_SNORM */
- { 37444, 0x00008F91 }, /* GL_RG_SNORM */
- { 37456, 0x00000407 }, /* GL_RIGHT */
- { 37465, 0x00002000 }, /* GL_S */
- { 37470, 0x00008B5D }, /* GL_SAMPLER_1D */
- { 37484, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY */
- { 37504, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY_EXT */
- { 37528, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW */
- { 37555, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW_EXT */
- { 37586, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
- { 37607, 0x00008B5E }, /* GL_SAMPLER_2D */
- { 37621, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY */
- { 37641, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY_EXT */
- { 37665, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW */
- { 37692, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW_EXT */
- { 37723, 0x00008B63 }, /* GL_SAMPLER_2D_RECT */
- { 37742, 0x00008B64 }, /* GL_SAMPLER_2D_RECT_SHADOW */
- { 37768, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
- { 37789, 0x00008B5F }, /* GL_SAMPLER_3D */
- { 37803, 0x00008B5F }, /* GL_SAMPLER_3D_OES */
- { 37821, 0x00008919 }, /* GL_SAMPLER_BINDING */
- { 37840, 0x00008DC2 }, /* GL_SAMPLER_BUFFER */
- { 37858, 0x00008DC2 }, /* GL_SAMPLER_BUFFER_EXT */
- { 37880, 0x00008B60 }, /* GL_SAMPLER_CUBE */
- { 37896, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW */
- { 37919, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW_EXT */
- { 37946, 0x000080A9 }, /* GL_SAMPLES */
- { 37957, 0x000086B4 }, /* GL_SAMPLES_3DFX */
- { 37973, 0x000080A9 }, /* GL_SAMPLES_ARB */
- { 37988, 0x00008914 }, /* GL_SAMPLES_PASSED */
- { 38006, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
- { 38028, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- { 38056, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
- { 38088, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
- { 38111, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
- { 38138, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
- { 38156, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
- { 38179, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
- { 38201, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
- { 38220, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
- { 38243, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
- { 38269, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
- { 38299, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
- { 38324, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
- { 38353, 0x00080000 }, /* GL_SCISSOR_BIT */
- { 38368, 0x00000C10 }, /* GL_SCISSOR_BOX */
- { 38383, 0x00000C11 }, /* GL_SCISSOR_TEST */
- { 38399, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
- { 38424, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- { 38464, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 38508, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- { 38541, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- { 38571, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- { 38603, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- { 38633, 0x00001C02 }, /* GL_SELECT */
- { 38643, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
- { 38671, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
- { 38696, 0x00008012 }, /* GL_SEPARABLE_2D */
- { 38712, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS */
- { 38732, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */
- { 38756, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
- { 38783, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
- { 38814, 0x0000150F }, /* GL_SET */
- { 38821, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */
- { 38846, 0x00008DFA }, /* GL_SHADER_COMPILER */
- { 38865, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
- { 38886, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
- { 38910, 0x00008B4F }, /* GL_SHADER_TYPE */
- { 38925, 0x00000B54 }, /* GL_SHADE_MODEL */
- { 38940, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
- { 38968, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
- { 38991, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- { 39021, 0x00001601 }, /* GL_SHININESS */
- { 39034, 0x00001402 }, /* GL_SHORT */
- { 39043, 0x00009119 }, /* GL_SIGNALED */
- { 39055, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
- { 39076, 0x000081F9 }, /* GL_SINGLE_COLOR */
- { 39092, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
- { 39112, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
- { 39131, 0x00008C46 }, /* GL_SLUMINANCE */
- { 39145, 0x00008C47 }, /* GL_SLUMINANCE8 */
- { 39160, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
- { 39182, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
- { 39202, 0x00001D01 }, /* GL_SMOOTH */
- { 39212, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
- { 39245, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
- { 39272, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
- { 39305, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
- { 39332, 0x00008588 }, /* GL_SOURCE0_ALPHA */
- { 39349, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
- { 39370, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
- { 39391, 0x00008580 }, /* GL_SOURCE0_RGB */
- { 39406, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
- { 39425, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
- { 39444, 0x00008589 }, /* GL_SOURCE1_ALPHA */
- { 39461, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
- { 39482, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
- { 39503, 0x00008581 }, /* GL_SOURCE1_RGB */
- { 39518, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
- { 39537, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
- { 39556, 0x0000858A }, /* GL_SOURCE2_ALPHA */
- { 39573, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
- { 39594, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
- { 39615, 0x00008582 }, /* GL_SOURCE2_RGB */
- { 39630, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
- { 39649, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
- { 39668, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
- { 39688, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
- { 39706, 0x00001202 }, /* GL_SPECULAR */
- { 39718, 0x00002402 }, /* GL_SPHERE_MAP */
- { 39732, 0x00001206 }, /* GL_SPOT_CUTOFF */
- { 39747, 0x00001204 }, /* GL_SPOT_DIRECTION */
- { 39765, 0x00001205 }, /* GL_SPOT_EXPONENT */
- { 39782, 0x00008588 }, /* GL_SRC0_ALPHA */
- { 39796, 0x00008580 }, /* GL_SRC0_RGB */
- { 39808, 0x00008589 }, /* GL_SRC1_ALPHA */
- { 39822, 0x00008581 }, /* GL_SRC1_RGB */
- { 39834, 0x0000858A }, /* GL_SRC2_ALPHA */
- { 39848, 0x00008582 }, /* GL_SRC2_RGB */
- { 39860, 0x00000302 }, /* GL_SRC_ALPHA */
- { 39873, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
- { 39895, 0x00000300 }, /* GL_SRC_COLOR */
- { 39908, 0x00008C40 }, /* GL_SRGB */
- { 39916, 0x00008C41 }, /* GL_SRGB8 */
- { 39925, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
- { 39941, 0x00008C42 }, /* GL_SRGB_ALPHA */
- { 39955, 0x00000503 }, /* GL_STACK_OVERFLOW */
- { 39973, 0x00000504 }, /* GL_STACK_UNDERFLOW */
- { 39992, 0x000088E6 }, /* GL_STATIC_COPY */
- { 40007, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
- { 40026, 0x000088E4 }, /* GL_STATIC_DRAW */
- { 40041, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
- { 40060, 0x000088E5 }, /* GL_STATIC_READ */
- { 40075, 0x000088E5 }, /* GL_STATIC_READ_ARB */
- { 40094, 0x00001802 }, /* GL_STENCIL */
- { 40105, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
- { 40127, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
- { 40153, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */
- { 40179, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 40200, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
- { 40225, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 40246, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
- { 40271, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 40303, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
- { 40339, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 40371, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
- { 40407, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 40427, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 40454, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 40480, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 40496, 0x00008224 }, /* GL_STENCIL_BUFFER */
- { 40514, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 40536, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 40559, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 40575, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 40591, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 40608, 0x00008D46 }, /* GL_STENCIL_INDEX1 */
- { 40626, 0x00008D49 }, /* GL_STENCIL_INDEX16 */
- { 40645, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 40668, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 40690, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */
- { 40712, 0x00008D47 }, /* GL_STENCIL_INDEX4 */
- { 40730, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 40752, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */
- { 40774, 0x00008D48 }, /* GL_STENCIL_INDEX8 */
- { 40792, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 40814, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */
- { 40836, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 40857, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 40884, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 40911, 0x00000B97 }, /* GL_STENCIL_REF */
- { 40926, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 40942, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 40971, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 40993, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 41014, 0x00000C33 }, /* GL_STEREO */
- { 41024, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
- { 41048, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
- { 41073, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
- { 41097, 0x000088E2 }, /* GL_STREAM_COPY */
- { 41112, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 41131, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 41146, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 41165, 0x000088E1 }, /* GL_STREAM_READ */
- { 41180, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 41199, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 41216, 0x000084E7 }, /* GL_SUBTRACT */
- { 41228, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 41244, 0x00009113 }, /* GL_SYNC_CONDITION */
- { 41262, 0x00009116 }, /* GL_SYNC_FENCE */
- { 41276, 0x00009115 }, /* GL_SYNC_FLAGS */
- { 41290, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
- { 41317, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- { 41347, 0x00009114 }, /* GL_SYNC_STATUS */
- { 41362, 0x00002001 }, /* GL_T */
- { 41367, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 41382, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 41401, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 41417, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 41432, 0x00002A27 }, /* GL_T2F_V3F */
- { 41443, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 41462, 0x00002A28 }, /* GL_T4F_V4F */
- { 41473, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 41496, 0x00001702 }, /* GL_TEXTURE */
- { 41507, 0x000084C0 }, /* GL_TEXTURE0 */
- { 41519, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 41535, 0x000084C1 }, /* GL_TEXTURE1 */
- { 41547, 0x000084CA }, /* GL_TEXTURE10 */
- { 41560, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 41577, 0x000084CB }, /* GL_TEXTURE11 */
- { 41590, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 41607, 0x000084CC }, /* GL_TEXTURE12 */
- { 41620, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 41637, 0x000084CD }, /* GL_TEXTURE13 */
- { 41650, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 41667, 0x000084CE }, /* GL_TEXTURE14 */
- { 41680, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 41697, 0x000084CF }, /* GL_TEXTURE15 */
- { 41710, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 41727, 0x000084D0 }, /* GL_TEXTURE16 */
- { 41740, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 41757, 0x000084D1 }, /* GL_TEXTURE17 */
- { 41770, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 41787, 0x000084D2 }, /* GL_TEXTURE18 */
- { 41800, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 41817, 0x000084D3 }, /* GL_TEXTURE19 */
- { 41830, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 41847, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 41863, 0x000084C2 }, /* GL_TEXTURE2 */
- { 41875, 0x000084D4 }, /* GL_TEXTURE20 */
- { 41888, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 41905, 0x000084D5 }, /* GL_TEXTURE21 */
- { 41918, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 41935, 0x000084D6 }, /* GL_TEXTURE22 */
- { 41948, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 41965, 0x000084D7 }, /* GL_TEXTURE23 */
- { 41978, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 41995, 0x000084D8 }, /* GL_TEXTURE24 */
- { 42008, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 42025, 0x000084D9 }, /* GL_TEXTURE25 */
- { 42038, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 42055, 0x000084DA }, /* GL_TEXTURE26 */
- { 42068, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 42085, 0x000084DB }, /* GL_TEXTURE27 */
- { 42098, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 42115, 0x000084DC }, /* GL_TEXTURE28 */
- { 42128, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 42145, 0x000084DD }, /* GL_TEXTURE29 */
- { 42158, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 42175, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 42191, 0x000084C3 }, /* GL_TEXTURE3 */
- { 42203, 0x000084DE }, /* GL_TEXTURE30 */
- { 42216, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 42233, 0x000084DF }, /* GL_TEXTURE31 */
- { 42246, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 42263, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 42279, 0x000084C4 }, /* GL_TEXTURE4 */
- { 42291, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 42307, 0x000084C5 }, /* GL_TEXTURE5 */
- { 42319, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 42335, 0x000084C6 }, /* GL_TEXTURE6 */
- { 42347, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 42363, 0x000084C7 }, /* GL_TEXTURE7 */
- { 42375, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 42391, 0x000084C8 }, /* GL_TEXTURE8 */
- { 42403, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 42419, 0x000084C9 }, /* GL_TEXTURE9 */
- { 42431, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 42447, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 42461, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY */
- { 42481, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
- { 42505, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 42519, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY */
- { 42539, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
- { 42563, 0x0000806F }, /* GL_TEXTURE_3D */
- { 42577, 0x0000806F }, /* GL_TEXTURE_3D_OES */
- { 42595, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 42617, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 42643, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 42665, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 42687, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY */
- { 42715, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- { 42747, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 42769, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY */
- { 42797, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- { 42829, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 42851, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */
- { 42877, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER */
- { 42903, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER_ARB */
- { 42933, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 42961, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 42993, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */
- { 43025, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE */
- { 43054, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 43087, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 43119, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 43134, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 43155, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 43180, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 43198, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 43222, 0x00008C2A }, /* GL_TEXTURE_BUFFER */
- { 43240, 0x00008C2A }, /* GL_TEXTURE_BUFFER_ARB */
- { 43262, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */
- { 43299, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB */
- { 43340, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT */
- { 43365, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT_ARB */
- { 43394, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 43425, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 43455, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 43485, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 43520, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 43551, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 43589, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 43616, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 43648, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 43682, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 43706, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 43734, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 43758, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 43786, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 43819, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 43843, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 43865, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 43887, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 43913, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 43947, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 43980, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 44017, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 44045, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 44077, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 44100, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 44138, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 44180, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 44211, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 44239, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 44269, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 44297, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */
- { 44322, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 44342, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 44366, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 44397, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 44432, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */
- { 44467, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 44498, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 44533, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */
- { 44568, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 44599, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 44634, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */
- { 44669, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */
- { 44693, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 44724, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 44759, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */
- { 44794, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 44825, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 44860, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */
- { 44895, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 44926, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 44961, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */
- { 44996, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- { 45025, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 45042, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 45064, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 45090, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 45105, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 45126, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 45146, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 45172, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */
- { 45202, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 45222, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */
- { 45246, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 45263, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 45280, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 45297, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */
- { 45320, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 45337, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 45362, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 45384, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 45410, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 45428, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 45454, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 45480, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 45510, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 45537, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 45562, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 45582, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 45606, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 45633, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 45660, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 45687, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 45713, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 45743, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 45765, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 45783, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
- { 45823, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 45853, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 45881, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 45909, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 45937, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 45958, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 45977, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 45999, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 46018, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 46038, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- { 46068, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- { 46099, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE */
- { 46120, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 46145, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 46169, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 46189, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 46213, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 46233, 0x00008C3F }, /* GL_TEXTURE_SHARED_SIZE */
- { 46256, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 46279, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
- { 46303, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */
- { 46331, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- { 46361, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 46386, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 46420, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 46437, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 46455, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */
- { 46477, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 46495, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 46513, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
- { 46532, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 46552, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 46571, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 46600, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 46617, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */
- { 46639, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */
- { 46669, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER */
- { 46698, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
- { 46734, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */
- { 46771, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
- { 46812, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
- { 46845, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */
- { 46879, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
- { 46917, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
- { 46953, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */
- { 46987, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
- { 47025, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */
- { 47060, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
- { 47099, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */
- { 47140, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
- { 47185, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS */
- { 47216, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
- { 47251, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */
- { 47292, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
- { 47337, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 47363, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 47393, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 47425, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 47455, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 47489, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 47505, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 47536, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 47571, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 47599, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 47631, 0x00000004 }, /* GL_TRIANGLES */
- { 47644, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY */
- { 47667, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY_ARB */
- { 47694, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 47710, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 47731, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 47749, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY */
- { 47777, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */
- { 47809, 0x00000001 }, /* GL_TRUE */
- { 47817, 0x00008A1C }, /* GL_UNDEFINED_APPLE */
- { 47836, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 47856, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 47879, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 47899, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 47920, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 47942, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 47964, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 47984, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 48005, 0x00009118 }, /* GL_UNSIGNALED */
- { 48019, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 48036, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 48063, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 48086, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 48102, 0x00008C3B }, /* GL_UNSIGNED_INT_10F_11F_11F_REV */
- { 48134, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 48161, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */
- { 48192, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
- { 48213, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
- { 48238, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 48262, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */
- { 48287, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 48318, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */
- { 48353, 0x00008C3E }, /* GL_UNSIGNED_INT_5_9_9_9_REV */
- { 48381, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 48405, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 48433, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D */
- { 48460, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */
- { 48493, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT */
- { 48530, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D_EXT */
- { 48561, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D */
- { 48588, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */
- { 48621, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT */
- { 48658, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D_EXT */
- { 48689, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */
- { 48721, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT */
- { 48757, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D */
- { 48784, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D_EXT */
- { 48815, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */
- { 48846, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT */
- { 48881, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE */
- { 48910, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE_EXT */
- { 48943, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2 */
- { 48964, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2_EXT */
- { 48989, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3 */
- { 49010, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3_EXT */
- { 49035, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4 */
- { 49056, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4_EXT */
- { 49081, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
- { 49104, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 49122, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 49152, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */
- { 49186, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 49212, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 49242, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */
- { 49276, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 49302, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 49326, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 49354, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 49382, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 49409, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 49441, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 49472, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 49486, 0x00002A20 }, /* GL_V2F */
- { 49493, 0x00002A21 }, /* GL_V3F */
- { 49500, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 49519, 0x00001F00 }, /* GL_VENDOR */
- { 49529, 0x00001F02 }, /* GL_VERSION */
- { 49540, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 49556, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
- { 49580, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 49610, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 49641, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 49676, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 49700, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 49721, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 49744, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 49765, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 49792, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 49820, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 49848, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 49876, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 49904, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 49932, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 49960, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 49987, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 50014, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 50041, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 50068, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 50095, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 50122, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 50149, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 50176, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 50203, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 50241, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 50283, 0x000088FE }, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB */
- { 50318, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 50349, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 50384, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */
- { 50415, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT */
- { 50450, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 50484, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 50522, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 50553, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 50588, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 50616, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 50648, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 50678, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 50712, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 50740, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 50772, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 50792, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 50814, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 50843, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 50864, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 50893, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 50926, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 50958, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 50985, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 51016, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 51046, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 51063, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 51084, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 51111, 0x00000BA2 }, /* GL_VIEWPORT */
- { 51123, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 51139, 0x00008A1A }, /* GL_VOLATILE_APPLE */
- { 51157, 0x0000911D }, /* GL_WAIT_FAILED */
- { 51172, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 51192, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 51223, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 51258, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */
- { 51293, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */
- { 51313, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 51341, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */
- { 51369, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 51394, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */
- { 51419, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 51446, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */
- { 51473, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 51498, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */
- { 51523, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 51547, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 51566, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 51580, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 51598, 0x000088B9 }, /* GL_WRITE_ONLY_OES */
- { 51616, 0x00001506 }, /* GL_XOR */
- { 51623, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 51642, 0x00008757 }, /* GL_YCBCR_MESA */
- { 51656, 0x00000000 }, /* GL_ZERO */
- { 51664, 0x00000D16 }, /* GL_ZOOM_X */
- { 51674, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 6691, 0x00000004 }, /* GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB */
+ { 6729, 0x00009126 }, /* GL_CONTEXT_PROFILE_MASK */
+ { 6753, 0x00008010 }, /* GL_CONVOLUTION_1D */
+ { 6771, 0x00008011 }, /* GL_CONVOLUTION_2D */
+ { 6789, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
+ { 6817, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
+ { 6848, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
+ { 6875, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
+ { 6906, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
+ { 6933, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
+ { 6964, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
+ { 6992, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
+ { 7024, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
+ { 7046, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
+ { 7072, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
+ { 7094, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
+ { 7120, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
+ { 7141, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
+ { 7166, 0x00008862 }, /* GL_COORD_REPLACE */
+ { 7183, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
+ { 7204, 0x00008862 }, /* GL_COORD_REPLACE_NV */
+ { 7224, 0x00008862 }, /* GL_COORD_REPLACE_OES */
+ { 7245, 0x00001503 }, /* GL_COPY */
+ { 7253, 0x0000150C }, /* GL_COPY_INVERTED */
+ { 7270, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
+ { 7290, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
+ { 7310, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
+ { 7331, 0x00000B44 }, /* GL_CULL_FACE */
+ { 7344, 0x00000B45 }, /* GL_CULL_FACE_MODE */
+ { 7362, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
+ { 7381, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ { 7413, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ { 7448, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
+ { 7469, 0x00000001 }, /* GL_CURRENT_BIT */
+ { 7484, 0x00000B00 }, /* GL_CURRENT_COLOR */
+ { 7501, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
+ { 7522, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
+ { 7548, 0x00000B01 }, /* GL_CURRENT_INDEX */
+ { 7565, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
+ { 7587, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ { 7615, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
+ { 7636, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ { 7670, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
+ { 7703, 0x00000B02 }, /* GL_CURRENT_NORMAL */
+ { 7721, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ { 7751, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_OES */
+ { 7781, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
+ { 7800, 0x00008865 }, /* GL_CURRENT_QUERY */
+ { 7817, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
+ { 7838, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
+ { 7862, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
+ { 7889, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
+ { 7913, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
+ { 7940, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
+ { 7973, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ { 8007, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ { 8040, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
+ { 8067, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
+ { 8093, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
+ { 8118, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
+ { 8147, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
+ { 8169, 0x00000900 }, /* GL_CW */
+ { 8175, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
+ { 8196, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
+ { 8217, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
+ { 8237, 0x00002101 }, /* GL_DECAL */
+ { 8246, 0x00001E03 }, /* GL_DECR */
+ { 8254, 0x00008508 }, /* GL_DECR_WRAP */
+ { 8267, 0x00008508 }, /* GL_DECR_WRAP_EXT */
+ { 8284, 0x00008B80 }, /* GL_DELETE_STATUS */
+ { 8301, 0x00001801 }, /* GL_DEPTH */
+ { 8310, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
+ { 8330, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */
+ { 8354, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_OES */
+ { 8378, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
+ { 8398, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
+ { 8422, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_OES */
+ { 8446, 0x00000D1F }, /* GL_DEPTH_BIAS */
+ { 8460, 0x00000D56 }, /* GL_DEPTH_BITS */
+ { 8474, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
+ { 8494, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ { 8519, 0x00008223 }, /* GL_DEPTH_BUFFER */
+ { 8535, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
+ { 8555, 0x0000864F }, /* GL_DEPTH_CLAMP */
+ { 8570, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
+ { 8588, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
+ { 8609, 0x00001902 }, /* GL_DEPTH_COMPONENT */
+ { 8628, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
+ { 8649, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
+ { 8674, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_OES */
+ { 8699, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
+ { 8725, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
+ { 8746, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
+ { 8771, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_OES */
+ { 8796, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
+ { 8822, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
+ { 8843, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
+ { 8868, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_OES */
+ { 8893, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
+ { 8919, 0x00000B74 }, /* GL_DEPTH_FUNC */
+ { 8933, 0x00000B70 }, /* GL_DEPTH_RANGE */
+ { 8948, 0x00000D1E }, /* GL_DEPTH_SCALE */
+ { 8963, 0x000084F9 }, /* GL_DEPTH_STENCIL */
+ { 8980, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ { 9008, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */
+ { 9029, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
+ { 9049, 0x000084F9 }, /* GL_DEPTH_STENCIL_OES */
+ { 9070, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ { 9098, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ { 9126, 0x00000B71 }, /* GL_DEPTH_TEST */
+ { 9140, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
+ { 9162, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
+ { 9188, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
+ { 9207, 0x00001201 }, /* GL_DIFFUSE */
+ { 9218, 0x00000BD0 }, /* GL_DITHER */
+ { 9228, 0x00000A02 }, /* GL_DOMAIN */
+ { 9238, 0x00001100 }, /* GL_DONT_CARE */
+ { 9251, 0x000086AE }, /* GL_DOT3_RGB */
+ { 9263, 0x000086AF }, /* GL_DOT3_RGBA */
+ { 9276, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
+ { 9293, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
+ { 9310, 0x000086AE }, /* GL_DOT3_RGB_ARB */
+ { 9326, 0x00008740 }, /* GL_DOT3_RGB_EXT */
+ { 9342, 0x0000140A }, /* GL_DOUBLE */
+ { 9352, 0x00000C32 }, /* GL_DOUBLEBUFFER */
+ { 9368, 0x00000C01 }, /* GL_DRAW_BUFFER */
+ { 9383, 0x00008825 }, /* GL_DRAW_BUFFER0 */
+ { 9399, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
+ { 9419, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
+ { 9439, 0x00008826 }, /* GL_DRAW_BUFFER1 */
+ { 9455, 0x0000882F }, /* GL_DRAW_BUFFER10 */
+ { 9472, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
+ { 9493, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
+ { 9514, 0x00008830 }, /* GL_DRAW_BUFFER11 */
+ { 9531, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
+ { 9552, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
+ { 9573, 0x00008831 }, /* GL_DRAW_BUFFER12 */
+ { 9590, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
+ { 9611, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
+ { 9632, 0x00008832 }, /* GL_DRAW_BUFFER13 */
+ { 9649, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
+ { 9670, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
+ { 9691, 0x00008833 }, /* GL_DRAW_BUFFER14 */
+ { 9708, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
+ { 9729, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
+ { 9750, 0x00008834 }, /* GL_DRAW_BUFFER15 */
+ { 9767, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
+ { 9788, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
+ { 9809, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
+ { 9829, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
+ { 9849, 0x00008827 }, /* GL_DRAW_BUFFER2 */
+ { 9865, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
+ { 9885, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
+ { 9905, 0x00008828 }, /* GL_DRAW_BUFFER3 */
+ { 9921, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
+ { 9941, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
+ { 9961, 0x00008829 }, /* GL_DRAW_BUFFER4 */
+ { 9977, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
+ { 9997, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
+ { 10017, 0x0000882A }, /* GL_DRAW_BUFFER5 */
+ { 10033, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
+ { 10053, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
+ { 10073, 0x0000882B }, /* GL_DRAW_BUFFER6 */
+ { 10089, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
+ { 10109, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
+ { 10129, 0x0000882C }, /* GL_DRAW_BUFFER7 */
+ { 10145, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
+ { 10165, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
+ { 10185, 0x0000882D }, /* GL_DRAW_BUFFER8 */
+ { 10201, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
+ { 10221, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
+ { 10241, 0x0000882E }, /* GL_DRAW_BUFFER9 */
+ { 10257, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
+ { 10277, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
+ { 10297, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
+ { 10317, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */
+ { 10345, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ { 10377, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
+ { 10401, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
+ { 10421, 0x00000304 }, /* GL_DST_ALPHA */
+ { 10434, 0x00000306 }, /* GL_DST_COLOR */
+ { 10447, 0x0000877A }, /* GL_DU8DV8_ATI */
+ { 10461, 0x00008779 }, /* GL_DUDV_ATI */
+ { 10473, 0x000088EA }, /* GL_DYNAMIC_COPY */
+ { 10489, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
+ { 10509, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
+ { 10525, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
+ { 10545, 0x000088E9 }, /* GL_DYNAMIC_READ */
+ { 10561, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
+ { 10581, 0x00000B43 }, /* GL_EDGE_FLAG */
+ { 10594, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
+ { 10613, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ { 10647, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
+ { 10685, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ { 10712, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ { 10738, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
+ { 10762, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ { 10794, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
+ { 10830, 0x00001600 }, /* GL_EMISSION */
+ { 10842, 0x00002000 }, /* GL_ENABLE_BIT */
+ { 10856, 0x00000202 }, /* GL_EQUAL */
+ { 10865, 0x00001509 }, /* GL_EQUIV */
+ { 10874, 0x00010000 }, /* GL_EVAL_BIT */
+ { 10886, 0x00000800 }, /* GL_EXP */
+ { 10893, 0x00000801 }, /* GL_EXP2 */
+ { 10901, 0x00001F03 }, /* GL_EXTENSIONS */
+ { 10915, 0x00002400 }, /* GL_EYE_LINEAR */
+ { 10929, 0x00002502 }, /* GL_EYE_PLANE */
+ { 10942, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ { 10967, 0x0000855B }, /* GL_EYE_RADIAL_NV */
+ { 10984, 0x00000000 }, /* GL_FALSE */
+ { 10993, 0x00001101 }, /* GL_FASTEST */
+ { 11004, 0x00001C01 }, /* GL_FEEDBACK */
+ { 11016, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
+ { 11043, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
+ { 11067, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
+ { 11091, 0x00001B02 }, /* GL_FILL */
+ { 11099, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */
+ { 11126, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
+ { 11157, 0x0000140C }, /* GL_FIXED */
+ { 11166, 0x0000140C }, /* GL_FIXED_OES */
+ { 11179, 0x0000891D }, /* GL_FIXED_ONLY */
+ { 11193, 0x0000891D }, /* GL_FIXED_ONLY_ARB */
+ { 11211, 0x00001D00 }, /* GL_FLAT */
+ { 11219, 0x00001406 }, /* GL_FLOAT */
+ { 11228, 0x00008B5A }, /* GL_FLOAT_MAT2 */
+ { 11242, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
+ { 11260, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
+ { 11276, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
+ { 11292, 0x00008B5B }, /* GL_FLOAT_MAT3 */
+ { 11306, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
+ { 11324, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
+ { 11340, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
+ { 11356, 0x00008B5C }, /* GL_FLOAT_MAT4 */
+ { 11370, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
+ { 11388, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
+ { 11404, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
+ { 11420, 0x00008B50 }, /* GL_FLOAT_VEC2 */
+ { 11434, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
+ { 11452, 0x00008B51 }, /* GL_FLOAT_VEC3 */
+ { 11466, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
+ { 11484, 0x00008B52 }, /* GL_FLOAT_VEC4 */
+ { 11498, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
+ { 11516, 0x00000B60 }, /* GL_FOG */
+ { 11523, 0x00000080 }, /* GL_FOG_BIT */
+ { 11534, 0x00000B66 }, /* GL_FOG_COLOR */
+ { 11547, 0x00008451 }, /* GL_FOG_COORD */
+ { 11560, 0x00008451 }, /* GL_FOG_COORDINATE */
+ { 11578, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
+ { 11602, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ { 11641, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
+ { 11684, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ { 11716, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ { 11747, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ { 11776, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
+ { 11801, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
+ { 11820, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
+ { 11854, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
+ { 11881, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
+ { 11907, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
+ { 11931, 0x00008450 }, /* GL_FOG_COORD_SRC */
+ { 11948, 0x00000B62 }, /* GL_FOG_DENSITY */
+ { 11963, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
+ { 11987, 0x00000B64 }, /* GL_FOG_END */
+ { 11998, 0x00000C54 }, /* GL_FOG_HINT */
+ { 12010, 0x00000B61 }, /* GL_FOG_INDEX */
+ { 12023, 0x00000B65 }, /* GL_FOG_MODE */
+ { 12035, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
+ { 12054, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
+ { 12079, 0x00000B63 }, /* GL_FOG_START */
+ { 12092, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
+ { 12110, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
+ { 12134, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
+ { 12153, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
+ { 12176, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ { 12211, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES */
+ { 12250, 0x00008D40 }, /* GL_FRAMEBUFFER */
+ { 12265, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ { 12302, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ { 12338, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ { 12379, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ { 12420, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ { 12457, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ { 12494, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */
+ { 12528, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB */
+ { 12566, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ { 12604, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
+ { 12646, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */
+ { 12688, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ { 12726, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
+ { 12768, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */
+ { 12810, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ { 12845, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ { 12884, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
+ { 12933, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */
+ { 12982, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ { 13030, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
+ { 13082, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */
+ { 13134, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ { 13174, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
+ { 13218, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ { 13258, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
+ { 13302, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */
+ { 13346, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */
+ { 13369, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
+ { 13396, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */
+ { 13423, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
+ { 13447, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
+ { 13475, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */
+ { 13503, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
+ { 13526, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
+ { 13545, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ { 13582, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
+ { 13623, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */
+ { 13664, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */
+ { 13701, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ { 13742, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */
+ { 13783, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
+ { 13821, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ { 13863, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */
+ { 13905, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ { 13956, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ { 13994, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */
+ { 14032, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */
+ { 14074, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */
+ { 14114, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB */
+ { 14158, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ { 14203, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
+ { 14252, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */
+ { 14301, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ { 14339, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */
+ { 14381, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
+ { 14419, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ { 14461, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */
+ { 14503, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */
+ { 14522, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ { 14554, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
+ { 14579, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ { 14606, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
+ { 14637, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */
+ { 14668, 0x00000404 }, /* GL_FRONT */
+ { 14677, 0x00000408 }, /* GL_FRONT_AND_BACK */
+ { 14695, 0x00000B46 }, /* GL_FRONT_FACE */
+ { 14709, 0x00000400 }, /* GL_FRONT_LEFT */
+ { 14723, 0x00000401 }, /* GL_FRONT_RIGHT */
+ { 14738, 0x00008006 }, /* GL_FUNC_ADD */
+ { 14750, 0x00008006 }, /* GL_FUNC_ADD_EXT */
+ { 14766, 0x00008006 }, /* GL_FUNC_ADD_OES */
+ { 14782, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
+ { 14807, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
+ { 14836, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */
+ { 14865, 0x0000800A }, /* GL_FUNC_SUBTRACT */
+ { 14882, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
+ { 14903, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */
+ { 14924, 0x00008191 }, /* GL_GENERATE_MIPMAP */
+ { 14943, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
+ { 14967, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
+ { 14996, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
+ { 15020, 0x00008917 }, /* GL_GEOMETRY_INPUT_TYPE */
+ { 15043, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */
+ { 15070, 0x00008918 }, /* GL_GEOMETRY_OUTPUT_TYPE */
+ { 15094, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */
+ { 15122, 0x00008DD9 }, /* GL_GEOMETRY_SHADER */
+ { 15141, 0x00008DD9 }, /* GL_GEOMETRY_SHADER_ARB */
+ { 15164, 0x00008916 }, /* GL_GEOMETRY_VERTICES_OUT */
+ { 15189, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */
+ { 15218, 0x00000206 }, /* GL_GEQUAL */
+ { 15228, 0x00000204 }, /* GL_GREATER */
+ { 15239, 0x00001904 }, /* GL_GREEN */
+ { 15248, 0x00000D19 }, /* GL_GREEN_BIAS */
+ { 15262, 0x00000D53 }, /* GL_GREEN_BITS */
+ { 15276, 0x00008D95 }, /* GL_GREEN_INTEGER */
+ { 15293, 0x00008D95 }, /* GL_GREEN_INTEGER_EXT */
+ { 15314, 0x00000D18 }, /* GL_GREEN_SCALE */
+ { 15329, 0x00008253 }, /* GL_GUILTY_CONTEXT_RESET_ARB */
+ { 15357, 0x0000140B }, /* GL_HALF_FLOAT */
+ { 15371, 0x00008D61 }, /* GL_HALF_FLOAT_OES */
+ { 15389, 0x00008DF2 }, /* GL_HIGH_FLOAT */
+ { 15403, 0x00008DF5 }, /* GL_HIGH_INT */
+ { 15415, 0x00008000 }, /* GL_HINT_BIT */
+ { 15427, 0x00008024 }, /* GL_HISTOGRAM */
+ { 15440, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
+ { 15464, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
+ { 15492, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
+ { 15515, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
+ { 15542, 0x00008024 }, /* GL_HISTOGRAM_EXT */
+ { 15559, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
+ { 15579, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
+ { 15603, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
+ { 15627, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
+ { 15655, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ { 15683, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
+ { 15715, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
+ { 15737, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
+ { 15763, 0x0000802D }, /* GL_HISTOGRAM_SINK */
+ { 15781, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
+ { 15803, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
+ { 15822, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
+ { 15845, 0x0000862A }, /* GL_IDENTITY_NV */
+ { 15860, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
+ { 15880, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
+ { 15916, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ { 15956, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
+ { 15990, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ { 16028, 0x00001E02 }, /* GL_INCR */
+ { 16036, 0x00008507 }, /* GL_INCR_WRAP */
+ { 16049, 0x00008507 }, /* GL_INCR_WRAP_EXT */
+ { 16066, 0x00008222 }, /* GL_INDEX */
+ { 16075, 0x00008077 }, /* GL_INDEX_ARRAY */
+ { 16090, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ { 16120, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
+ { 16154, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
+ { 16177, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
+ { 16199, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
+ { 16219, 0x00000D51 }, /* GL_INDEX_BITS */
+ { 16233, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
+ { 16254, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
+ { 16272, 0x00000C30 }, /* GL_INDEX_MODE */
+ { 16286, 0x00000D13 }, /* GL_INDEX_OFFSET */
+ { 16302, 0x00000D12 }, /* GL_INDEX_SHIFT */
+ { 16317, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
+ { 16336, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
+ { 16355, 0x00008254 }, /* GL_INNOCENT_CONTEXT_RESET_ARB */
+ { 16385, 0x00001404 }, /* GL_INT */
+ { 16392, 0x00008049 }, /* GL_INTENSITY */
+ { 16405, 0x0000804C }, /* GL_INTENSITY12 */
+ { 16420, 0x0000804C }, /* GL_INTENSITY12_EXT */
+ { 16439, 0x0000804D }, /* GL_INTENSITY16 */
+ { 16454, 0x00008D8B }, /* GL_INTENSITY16I_EXT */
+ { 16474, 0x00008D79 }, /* GL_INTENSITY16UI_EXT */
+ { 16495, 0x0000804D }, /* GL_INTENSITY16_EXT */
+ { 16514, 0x00008D85 }, /* GL_INTENSITY32I_EXT */
+ { 16534, 0x00008D73 }, /* GL_INTENSITY32UI_EXT */
+ { 16555, 0x0000804A }, /* GL_INTENSITY4 */
+ { 16569, 0x0000804A }, /* GL_INTENSITY4_EXT */
+ { 16587, 0x0000804B }, /* GL_INTENSITY8 */
+ { 16601, 0x00008D91 }, /* GL_INTENSITY8I_EXT */
+ { 16620, 0x00008D7F }, /* GL_INTENSITY8UI_EXT */
+ { 16640, 0x0000804B }, /* GL_INTENSITY8_EXT */
+ { 16658, 0x00008049 }, /* GL_INTENSITY_EXT */
+ { 16675, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS */
+ { 16698, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */
+ { 16725, 0x00008575 }, /* GL_INTERPOLATE */
+ { 16740, 0x00008575 }, /* GL_INTERPOLATE_ARB */
+ { 16759, 0x00008575 }, /* GL_INTERPOLATE_EXT */
+ { 16778, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */
+ { 16800, 0x00008DC9 }, /* GL_INT_SAMPLER_1D */
+ { 16818, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY */
+ { 16842, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY_EXT */
+ { 16870, 0x00008DC9 }, /* GL_INT_SAMPLER_1D_EXT */
+ { 16892, 0x00008DCA }, /* GL_INT_SAMPLER_2D */
+ { 16910, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY */
+ { 16934, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY_EXT */
+ { 16962, 0x00008DCA }, /* GL_INT_SAMPLER_2D_EXT */
+ { 16984, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT */
+ { 17007, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT_EXT */
+ { 17034, 0x00008DCB }, /* GL_INT_SAMPLER_3D */
+ { 17052, 0x00008DCB }, /* GL_INT_SAMPLER_3D_EXT */
+ { 17074, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER */
+ { 17096, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER_EXT */
+ { 17122, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE */
+ { 17142, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE_EXT */
+ { 17166, 0x00008B53 }, /* GL_INT_VEC2 */
+ { 17178, 0x00008B53 }, /* GL_INT_VEC2_ARB */
+ { 17194, 0x00008B54 }, /* GL_INT_VEC3 */
+ { 17206, 0x00008B54 }, /* GL_INT_VEC3_ARB */
+ { 17222, 0x00008B55 }, /* GL_INT_VEC4 */
+ { 17234, 0x00008B55 }, /* GL_INT_VEC4_ARB */
+ { 17250, 0x00000500 }, /* GL_INVALID_ENUM */
+ { 17266, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ { 17299, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
+ { 17336, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */
+ { 17373, 0x00000502 }, /* GL_INVALID_OPERATION */
+ { 17394, 0x00000501 }, /* GL_INVALID_VALUE */
+ { 17411, 0x0000862B }, /* GL_INVERSE_NV */
+ { 17425, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
+ { 17449, 0x0000150A }, /* GL_INVERT */
+ { 17459, 0x00001E00 }, /* GL_KEEP */
+ { 17467, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */
+ { 17493, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
+ { 17523, 0x00000406 }, /* GL_LEFT */
+ { 17531, 0x00000203 }, /* GL_LEQUAL */
+ { 17541, 0x00000201 }, /* GL_LESS */
+ { 17549, 0x00004000 }, /* GL_LIGHT0 */
+ { 17559, 0x00004001 }, /* GL_LIGHT1 */
+ { 17569, 0x00004002 }, /* GL_LIGHT2 */
+ { 17579, 0x00004003 }, /* GL_LIGHT3 */
+ { 17589, 0x00004004 }, /* GL_LIGHT4 */
+ { 17599, 0x00004005 }, /* GL_LIGHT5 */
+ { 17609, 0x00004006 }, /* GL_LIGHT6 */
+ { 17619, 0x00004007 }, /* GL_LIGHT7 */
+ { 17629, 0x00000B50 }, /* GL_LIGHTING */
+ { 17641, 0x00000040 }, /* GL_LIGHTING_BIT */
+ { 17657, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
+ { 17680, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ { 17709, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
+ { 17742, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ { 17770, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
+ { 17794, 0x00001B01 }, /* GL_LINE */
+ { 17802, 0x00002601 }, /* GL_LINEAR */
+ { 17812, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
+ { 17834, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ { 17864, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ { 17895, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
+ { 17919, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
+ { 17944, 0x00000001 }, /* GL_LINES */
+ { 17953, 0x0000000A }, /* GL_LINES_ADJACENCY */
+ { 17972, 0x0000000A }, /* GL_LINES_ADJACENCY_ARB */
+ { 17995, 0x00000004 }, /* GL_LINE_BIT */
+ { 18007, 0x00000002 }, /* GL_LINE_LOOP */
+ { 18020, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
+ { 18040, 0x00000B20 }, /* GL_LINE_SMOOTH */
+ { 18055, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
+ { 18075, 0x00000B24 }, /* GL_LINE_STIPPLE */
+ { 18091, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
+ { 18115, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
+ { 18138, 0x00000003 }, /* GL_LINE_STRIP */
+ { 18152, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY */
+ { 18176, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY_ARB */
+ { 18204, 0x00000702 }, /* GL_LINE_TOKEN */
+ { 18218, 0x00000B21 }, /* GL_LINE_WIDTH */
+ { 18232, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
+ { 18258, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
+ { 18278, 0x00008B82 }, /* GL_LINK_STATUS */
+ { 18293, 0x00000B32 }, /* GL_LIST_BASE */
+ { 18306, 0x00020000 }, /* GL_LIST_BIT */
+ { 18318, 0x00000B33 }, /* GL_LIST_INDEX */
+ { 18332, 0x00000B30 }, /* GL_LIST_MODE */
+ { 18345, 0x00000101 }, /* GL_LOAD */
+ { 18353, 0x00000BF1 }, /* GL_LOGIC_OP */
+ { 18365, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
+ { 18382, 0x00008252 }, /* GL_LOSE_CONTEXT_ON_RESET_ARB */
+ { 18411, 0x00008CA1 }, /* GL_LOWER_LEFT */
+ { 18425, 0x00008DF0 }, /* GL_LOW_FLOAT */
+ { 18438, 0x00008DF3 }, /* GL_LOW_INT */
+ { 18449, 0x00001909 }, /* GL_LUMINANCE */
+ { 18462, 0x00008041 }, /* GL_LUMINANCE12 */
+ { 18477, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
+ { 18500, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
+ { 18527, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
+ { 18549, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
+ { 18575, 0x00008041 }, /* GL_LUMINANCE12_EXT */
+ { 18594, 0x00008042 }, /* GL_LUMINANCE16 */
+ { 18609, 0x00008D8C }, /* GL_LUMINANCE16I_EXT */
+ { 18629, 0x00008D7A }, /* GL_LUMINANCE16UI_EXT */
+ { 18650, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
+ { 18673, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
+ { 18700, 0x00008042 }, /* GL_LUMINANCE16_EXT */
+ { 18719, 0x00008D86 }, /* GL_LUMINANCE32I_EXT */
+ { 18739, 0x00008D74 }, /* GL_LUMINANCE32UI_EXT */
+ { 18760, 0x0000803F }, /* GL_LUMINANCE4 */
+ { 18774, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
+ { 18795, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
+ { 18820, 0x0000803F }, /* GL_LUMINANCE4_EXT */
+ { 18838, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
+ { 18859, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
+ { 18884, 0x00008040 }, /* GL_LUMINANCE8 */
+ { 18898, 0x00008D92 }, /* GL_LUMINANCE8I_EXT */
+ { 18917, 0x00008D80 }, /* GL_LUMINANCE8UI_EXT */
+ { 18937, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
+ { 18958, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
+ { 18983, 0x00008040 }, /* GL_LUMINANCE8_EXT */
+ { 19001, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
+ { 19020, 0x00008D8D }, /* GL_LUMINANCE_ALPHA16I_EXT */
+ { 19046, 0x00008D7B }, /* GL_LUMINANCE_ALPHA16UI_EXT */
+ { 19073, 0x00008D87 }, /* GL_LUMINANCE_ALPHA32I_EXT */
+ { 19099, 0x00008D75 }, /* GL_LUMINANCE_ALPHA32UI_EXT */
+ { 19126, 0x00008D93 }, /* GL_LUMINANCE_ALPHA8I_EXT */
+ { 19151, 0x00008D81 }, /* GL_LUMINANCE_ALPHA8UI_EXT */
+ { 19177, 0x00008D9D }, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */
+ { 19208, 0x00008D9C }, /* GL_LUMINANCE_INTEGER_EXT */
+ { 19233, 0x0000821B }, /* GL_MAJOR_VERSION */
+ { 19250, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
+ { 19266, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
+ { 19286, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
+ { 19308, 0x00000D91 }, /* GL_MAP1_INDEX */
+ { 19322, 0x00000D92 }, /* GL_MAP1_NORMAL */
+ { 19337, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
+ { 19361, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
+ { 19385, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
+ { 19409, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
+ { 19433, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
+ { 19450, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
+ { 19467, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ { 19495, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ { 19524, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ { 19553, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ { 19582, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ { 19611, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ { 19640, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ { 19669, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ { 19697, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ { 19725, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ { 19753, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ { 19781, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ { 19809, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ { 19837, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ { 19865, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ { 19893, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ { 19921, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
+ { 19937, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
+ { 19957, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
+ { 19979, 0x00000DB1 }, /* GL_MAP2_INDEX */
+ { 19993, 0x00000DB2 }, /* GL_MAP2_NORMAL */
+ { 20008, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
+ { 20032, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
+ { 20056, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
+ { 20080, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
+ { 20104, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
+ { 20121, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
+ { 20138, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ { 20166, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ { 20195, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ { 20224, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ { 20253, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ { 20282, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ { 20311, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ { 20340, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ { 20368, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ { 20396, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ { 20424, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ { 20452, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ { 20480, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ { 20508, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
+ { 20536, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ { 20564, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ { 20592, 0x00000D10 }, /* GL_MAP_COLOR */
+ { 20605, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
+ { 20631, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
+ { 20660, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
+ { 20688, 0x00000001 }, /* GL_MAP_READ_BIT */
+ { 20704, 0x00000D11 }, /* GL_MAP_STENCIL */
+ { 20719, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
+ { 20745, 0x00000002 }, /* GL_MAP_WRITE_BIT */
+ { 20762, 0x000088C0 }, /* GL_MATRIX0_ARB */
+ { 20777, 0x00008630 }, /* GL_MATRIX0_NV */
+ { 20791, 0x000088CA }, /* GL_MATRIX10_ARB */
+ { 20807, 0x000088CB }, /* GL_MATRIX11_ARB */
+ { 20823, 0x000088CC }, /* GL_MATRIX12_ARB */
+ { 20839, 0x000088CD }, /* GL_MATRIX13_ARB */
+ { 20855, 0x000088CE }, /* GL_MATRIX14_ARB */
+ { 20871, 0x000088CF }, /* GL_MATRIX15_ARB */
+ { 20887, 0x000088D0 }, /* GL_MATRIX16_ARB */
+ { 20903, 0x000088D1 }, /* GL_MATRIX17_ARB */
+ { 20919, 0x000088D2 }, /* GL_MATRIX18_ARB */
+ { 20935, 0x000088D3 }, /* GL_MATRIX19_ARB */
+ { 20951, 0x000088C1 }, /* GL_MATRIX1_ARB */
+ { 20966, 0x00008631 }, /* GL_MATRIX1_NV */
+ { 20980, 0x000088D4 }, /* GL_MATRIX20_ARB */
+ { 20996, 0x000088D5 }, /* GL_MATRIX21_ARB */
+ { 21012, 0x000088D6 }, /* GL_MATRIX22_ARB */
+ { 21028, 0x000088D7 }, /* GL_MATRIX23_ARB */
+ { 21044, 0x000088D8 }, /* GL_MATRIX24_ARB */
+ { 21060, 0x000088D9 }, /* GL_MATRIX25_ARB */
+ { 21076, 0x000088DA }, /* GL_MATRIX26_ARB */
+ { 21092, 0x000088DB }, /* GL_MATRIX27_ARB */
+ { 21108, 0x000088DC }, /* GL_MATRIX28_ARB */
+ { 21124, 0x000088DD }, /* GL_MATRIX29_ARB */
+ { 21140, 0x000088C2 }, /* GL_MATRIX2_ARB */
+ { 21155, 0x00008632 }, /* GL_MATRIX2_NV */
+ { 21169, 0x000088DE }, /* GL_MATRIX30_ARB */
+ { 21185, 0x000088DF }, /* GL_MATRIX31_ARB */
+ { 21201, 0x000088C3 }, /* GL_MATRIX3_ARB */
+ { 21216, 0x00008633 }, /* GL_MATRIX3_NV */
+ { 21230, 0x000088C4 }, /* GL_MATRIX4_ARB */
+ { 21245, 0x00008634 }, /* GL_MATRIX4_NV */
+ { 21259, 0x000088C5 }, /* GL_MATRIX5_ARB */
+ { 21274, 0x00008635 }, /* GL_MATRIX5_NV */
+ { 21288, 0x000088C6 }, /* GL_MATRIX6_ARB */
+ { 21303, 0x00008636 }, /* GL_MATRIX6_NV */
+ { 21317, 0x000088C7 }, /* GL_MATRIX7_ARB */
+ { 21332, 0x00008637 }, /* GL_MATRIX7_NV */
+ { 21346, 0x000088C8 }, /* GL_MATRIX8_ARB */
+ { 21361, 0x000088C9 }, /* GL_MATRIX9_ARB */
+ { 21376, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ { 21402, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
+ { 21443, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */
+ { 21469, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ { 21503, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */
+ { 21537, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ { 21568, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */
+ { 21599, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ { 21632, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */
+ { 21665, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ { 21696, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */
+ { 21727, 0x00000BA0 }, /* GL_MATRIX_MODE */
+ { 21742, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
+ { 21764, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */
+ { 21786, 0x00008008 }, /* GL_MAX */
+ { 21793, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
+ { 21816, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */
+ { 21843, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS */
+ { 21871, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ { 21903, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ { 21929, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ { 21962, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ { 21988, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 22022, 0x00000D32 }, /* GL_MAX_CLIP_DISTANCES */
+ { 22044, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
+ { 22063, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */
+ { 22088, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ { 22117, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ { 22149, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 22185, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ { 22221, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
+ { 22261, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
+ { 22287, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
+ { 22317, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
+ { 22342, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
+ { 22371, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ { 22400, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
+ { 22433, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */
+ { 22466, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
+ { 22486, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
+ { 22510, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
+ { 22534, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
+ { 22558, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
+ { 22583, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
+ { 22601, 0x00008008 }, /* GL_MAX_EXT */
+ { 22612, 0x00009125 }, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */
+ { 22645, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ { 22680, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
+ { 22719, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
+ { 22751, 0x00009123 }, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */
+ { 22784, 0x00009124 }, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */
+ { 22818, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */
+ { 22850, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB */
+ { 22886, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */
+ { 22922, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB */
+ { 22962, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */
+ { 23002, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB */
+ { 23046, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */
+ { 23081, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB */
+ { 23120, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */
+ { 23159, 0x00000D31 }, /* GL_MAX_LIGHTS */
+ { 23173, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
+ { 23193, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ { 23231, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ { 23260, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
+ { 23284, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
+ { 23312, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */
+ { 23340, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
+ { 23363, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 23400, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 23436, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ { 23463, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ { 23492, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ { 23526, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
+ { 23562, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ { 23589, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ { 23621, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ { 23657, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ { 23686, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ { 23715, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ { 23743, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ { 23781, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 23825, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 23868, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 23902, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 23941, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 23978, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 24016, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 24059, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 24102, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ { 24132, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ { 24163, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET */
+ { 24191, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET_EXT */
+ { 24223, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 24259, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 24295, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ { 24325, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */
+ { 24355, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ { 24389, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
+ { 24422, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */
+ { 24447, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ { 24476, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */
+ { 24505, 0x00008D57 }, /* GL_MAX_SAMPLES */
+ { 24520, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */
+ { 24539, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ { 24566, 0x00008504 }, /* GL_MAX_SHININESS_NV */
+ { 24586, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
+ { 24610, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE */
+ { 24637, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE_ARB */
+ { 24668, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
+ { 24690, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
+ { 24716, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ { 24743, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
+ { 24774, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
+ { 24798, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */
+ { 24826, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 24860, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
+ { 24880, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ { 24907, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
+ { 24928, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
+ { 24953, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
+ { 24978, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
+ { 25013, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */
+ { 25062, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
+ { 25115, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */
+ { 25158, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
+ { 25205, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */
+ { 25251, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
+ { 25301, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */
+ { 25327, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
+ { 25349, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
+ { 25375, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */
+ { 25398, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
+ { 25420, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
+ { 25446, 0x00009122 }, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */
+ { 25478, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ { 25512, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
+ { 25550, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ { 25583, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
+ { 25620, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
+ { 25650, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
+ { 25674, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */
+ { 25698, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */
+ { 25735, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
+ { 25756, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */
+ { 25772, 0x00008DF4 }, /* GL_MEDIUM_INT */
+ { 25786, 0x00008007 }, /* GL_MIN */
+ { 25793, 0x0000802E }, /* GL_MINMAX */
+ { 25803, 0x0000802E }, /* GL_MINMAX_EXT */
+ { 25817, 0x0000802F }, /* GL_MINMAX_FORMAT */
+ { 25834, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
+ { 25855, 0x00008030 }, /* GL_MINMAX_SINK */
+ { 25870, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
+ { 25889, 0x0000821C }, /* GL_MINOR_VERSION */
+ { 25906, 0x00008007 }, /* GL_MIN_EXT */
+ { 25917, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET */
+ { 25945, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET_EXT */
+ { 25977, 0x00008370 }, /* GL_MIRRORED_REPEAT */
+ { 25996, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
+ { 26019, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
+ { 26042, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
+ { 26062, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
+ { 26082, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ { 26112, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
+ { 26140, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ { 26168, 0x00001700 }, /* GL_MODELVIEW */
+ { 26181, 0x00001700 }, /* GL_MODELVIEW0_ARB */
+ { 26199, 0x0000872A }, /* GL_MODELVIEW10_ARB */
+ { 26218, 0x0000872B }, /* GL_MODELVIEW11_ARB */
+ { 26237, 0x0000872C }, /* GL_MODELVIEW12_ARB */
+ { 26256, 0x0000872D }, /* GL_MODELVIEW13_ARB */
+ { 26275, 0x0000872E }, /* GL_MODELVIEW14_ARB */
+ { 26294, 0x0000872F }, /* GL_MODELVIEW15_ARB */
+ { 26313, 0x00008730 }, /* GL_MODELVIEW16_ARB */
+ { 26332, 0x00008731 }, /* GL_MODELVIEW17_ARB */
+ { 26351, 0x00008732 }, /* GL_MODELVIEW18_ARB */
+ { 26370, 0x00008733 }, /* GL_MODELVIEW19_ARB */
+ { 26389, 0x0000850A }, /* GL_MODELVIEW1_ARB */
+ { 26407, 0x00008734 }, /* GL_MODELVIEW20_ARB */
+ { 26426, 0x00008735 }, /* GL_MODELVIEW21_ARB */
+ { 26445, 0x00008736 }, /* GL_MODELVIEW22_ARB */
+ { 26464, 0x00008737 }, /* GL_MODELVIEW23_ARB */
+ { 26483, 0x00008738 }, /* GL_MODELVIEW24_ARB */
+ { 26502, 0x00008739 }, /* GL_MODELVIEW25_ARB */
+ { 26521, 0x0000873A }, /* GL_MODELVIEW26_ARB */
+ { 26540, 0x0000873B }, /* GL_MODELVIEW27_ARB */
+ { 26559, 0x0000873C }, /* GL_MODELVIEW28_ARB */
+ { 26578, 0x0000873D }, /* GL_MODELVIEW29_ARB */
+ { 26597, 0x00008722 }, /* GL_MODELVIEW2_ARB */
+ { 26615, 0x0000873E }, /* GL_MODELVIEW30_ARB */
+ { 26634, 0x0000873F }, /* GL_MODELVIEW31_ARB */
+ { 26653, 0x00008723 }, /* GL_MODELVIEW3_ARB */
+ { 26671, 0x00008724 }, /* GL_MODELVIEW4_ARB */
+ { 26689, 0x00008725 }, /* GL_MODELVIEW5_ARB */
+ { 26707, 0x00008726 }, /* GL_MODELVIEW6_ARB */
+ { 26725, 0x00008727 }, /* GL_MODELVIEW7_ARB */
+ { 26743, 0x00008728 }, /* GL_MODELVIEW8_ARB */
+ { 26761, 0x00008729 }, /* GL_MODELVIEW9_ARB */
+ { 26779, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
+ { 26799, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 26841, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
+ { 26868, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
+ { 26893, 0x00002100 }, /* GL_MODULATE */
+ { 26905, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
+ { 26925, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
+ { 26952, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
+ { 26977, 0x00000103 }, /* GL_MULT */
+ { 26985, 0x0000809D }, /* GL_MULTISAMPLE */
+ { 27000, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
+ { 27020, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
+ { 27039, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
+ { 27058, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
+ { 27082, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
+ { 27105, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ { 27135, 0x00002A25 }, /* GL_N3F_V3F */
+ { 27146, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
+ { 27166, 0x0000150E }, /* GL_NAND */
+ { 27174, 0x00002600 }, /* GL_NEAREST */
+ { 27185, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ { 27216, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ { 27248, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
+ { 27273, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
+ { 27299, 0x00000200 }, /* GL_NEVER */
+ { 27308, 0x00001102 }, /* GL_NICEST */
+ { 27318, 0x00000000 }, /* GL_NONE */
+ { 27326, 0x00000000 }, /* GL_NONE_OES */
+ { 27338, 0x00001505 }, /* GL_NOOP */
+ { 27346, 0x00001508 }, /* GL_NOR */
+ { 27353, 0x00000BA1 }, /* GL_NORMALIZE */
+ { 27366, 0x00008075 }, /* GL_NORMAL_ARRAY */
+ { 27382, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ { 27413, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
+ { 27448, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
+ { 27472, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
+ { 27495, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
+ { 27516, 0x00008511 }, /* GL_NORMAL_MAP */
+ { 27530, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
+ { 27548, 0x00008511 }, /* GL_NORMAL_MAP_NV */
+ { 27565, 0x00008511 }, /* GL_NORMAL_MAP_OES */
+ { 27583, 0x00000205 }, /* GL_NOTEQUAL */
+ { 27595, 0x00000000 }, /* GL_NO_ERROR */
+ { 27607, 0x00008261 }, /* GL_NO_RESET_NOTIFICATION_ARB */
+ { 27636, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ { 27670, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
+ { 27708, 0x0000821D }, /* GL_NUM_EXTENSIONS */
+ { 27726, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
+ { 27760, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */
+ { 27789, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
+ { 27821, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
+ { 27863, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
+ { 27893, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
+ { 27933, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
+ { 27964, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
+ { 27993, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
+ { 28021, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
+ { 28051, 0x00002401 }, /* GL_OBJECT_LINEAR */
+ { 28068, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
+ { 28094, 0x00002501 }, /* GL_OBJECT_PLANE */
+ { 28110, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
+ { 28145, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
+ { 28167, 0x00009112 }, /* GL_OBJECT_TYPE */
+ { 28182, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
+ { 28201, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
+ { 28231, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
+ { 28252, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
+ { 28280, 0x00000001 }, /* GL_ONE */
+ { 28287, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ { 28315, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
+ { 28347, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ { 28375, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
+ { 28407, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
+ { 28430, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
+ { 28453, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
+ { 28476, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
+ { 28499, 0x00008598 }, /* GL_OPERAND0_ALPHA */
+ { 28517, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
+ { 28539, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
+ { 28561, 0x00008590 }, /* GL_OPERAND0_RGB */
+ { 28577, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
+ { 28597, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
+ { 28617, 0x00008599 }, /* GL_OPERAND1_ALPHA */
+ { 28635, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
+ { 28657, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
+ { 28679, 0x00008591 }, /* GL_OPERAND1_RGB */
+ { 28695, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
+ { 28715, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
+ { 28735, 0x0000859A }, /* GL_OPERAND2_ALPHA */
+ { 28753, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
+ { 28775, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
+ { 28797, 0x00008592 }, /* GL_OPERAND2_RGB */
+ { 28813, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
+ { 28833, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
+ { 28853, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
+ { 28874, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
+ { 28893, 0x00001507 }, /* GL_OR */
+ { 28899, 0x00000A01 }, /* GL_ORDER */
+ { 28908, 0x0000150D }, /* GL_OR_INVERTED */
+ { 28923, 0x0000150B }, /* GL_OR_REVERSE */
+ { 28937, 0x00000505 }, /* GL_OUT_OF_MEMORY */
+ { 28954, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
+ { 28972, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
+ { 28993, 0x00008758 }, /* GL_PACK_INVERT_MESA */
+ { 29013, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
+ { 29031, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
+ { 29050, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
+ { 29070, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
+ { 29090, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
+ { 29108, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
+ { 29127, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
+ { 29152, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
+ { 29176, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
+ { 29197, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
+ { 29219, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
+ { 29241, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
+ { 29266, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
+ { 29290, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
+ { 29311, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
+ { 29333, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
+ { 29355, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
+ { 29377, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ { 29408, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
+ { 29428, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ { 29453, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
+ { 29473, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ { 29498, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
+ { 29518, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ { 29543, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
+ { 29563, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ { 29588, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
+ { 29608, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ { 29633, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
+ { 29653, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ { 29678, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
+ { 29698, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ { 29723, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
+ { 29743, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ { 29768, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
+ { 29788, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ { 29813, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
+ { 29833, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ { 29858, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
+ { 29876, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
+ { 29897, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ { 29926, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
+ { 29959, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
+ { 29984, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
+ { 30007, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ { 30038, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
+ { 30073, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
+ { 30100, 0x00001B00 }, /* GL_POINT */
+ { 30109, 0x00000000 }, /* GL_POINTS */
+ { 30119, 0x00000002 }, /* GL_POINT_BIT */
+ { 30132, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
+ { 30162, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
+ { 30196, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
+ { 30230, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
+ { 30265, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ { 30294, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
+ { 30327, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
+ { 30360, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
+ { 30394, 0x00000B11 }, /* GL_POINT_SIZE */
+ { 30408, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
+ { 30447, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */
+ { 30471, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
+ { 30503, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
+ { 30534, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
+ { 30563, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
+ { 30589, 0x00008127 }, /* GL_POINT_SIZE_MAX */
+ { 30607, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
+ { 30629, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
+ { 30651, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
+ { 30674, 0x00008126 }, /* GL_POINT_SIZE_MIN */
+ { 30692, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
+ { 30714, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
+ { 30736, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
+ { 30759, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
+ { 30779, 0x00000B10 }, /* GL_POINT_SMOOTH */
+ { 30795, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
+ { 30816, 0x00008861 }, /* GL_POINT_SPRITE */
+ { 30832, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
+ { 30852, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ { 30881, 0x00008861 }, /* GL_POINT_SPRITE_NV */
+ { 30900, 0x00008861 }, /* GL_POINT_SPRITE_OES */
+ { 30920, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
+ { 30946, 0x00000701 }, /* GL_POINT_TOKEN */
+ { 30961, 0x00000009 }, /* GL_POLYGON */
+ { 30972, 0x00000008 }, /* GL_POLYGON_BIT */
+ { 30987, 0x00000B40 }, /* GL_POLYGON_MODE */
+ { 31003, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
+ { 31026, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
+ { 31051, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
+ { 31074, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
+ { 31097, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
+ { 31121, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
+ { 31145, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
+ { 31163, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
+ { 31186, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
+ { 31205, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
+ { 31228, 0x00000703 }, /* GL_POLYGON_TOKEN */
+ { 31245, 0x00001203 }, /* GL_POSITION */
+ { 31257, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ { 31289, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
+ { 31325, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ { 31358, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
+ { 31395, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ { 31426, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
+ { 31461, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ { 31493, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
+ { 31529, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 31562, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ { 31594, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
+ { 31630, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ { 31663, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
+ { 31700, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ { 31730, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
+ { 31764, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ { 31795, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
+ { 31830, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ { 31861, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
+ { 31896, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ { 31928, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
+ { 31964, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ { 31994, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
+ { 32028, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ { 32059, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
+ { 32094, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ { 32126, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ { 32157, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
+ { 32192, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ { 32224, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
+ { 32260, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
+ { 32289, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
+ { 32322, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
+ { 32352, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
+ { 32386, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ { 32425, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ { 32458, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ { 32498, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ { 32532, 0x00008578 }, /* GL_PREVIOUS */
+ { 32544, 0x00008578 }, /* GL_PREVIOUS_ARB */
+ { 32560, 0x00008578 }, /* GL_PREVIOUS_EXT */
+ { 32576, 0x00008577 }, /* GL_PRIMARY_COLOR */
+ { 32593, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
+ { 32614, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
+ { 32635, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED */
+ { 32659, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */
+ { 32687, 0x00008F9D }, /* GL_PRIMITIVE_RESTART */
+ { 32708, 0x00008F9E }, /* GL_PRIMITIVE_RESTART_INDEX */
+ { 32735, 0x00008559 }, /* GL_PRIMITIVE_RESTART_INDEX_NV */
+ { 32765, 0x00008558 }, /* GL_PRIMITIVE_RESTART_NV */
+ { 32789, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 32822, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 32854, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
+ { 32877, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */
+ { 32907, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */
+ { 32936, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
+ { 32959, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ { 32989, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
+ { 33018, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
+ { 33046, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
+ { 33068, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ { 33096, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ { 33124, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
+ { 33146, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
+ { 33167, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 33207, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 33246, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 33276, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 33311, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 33344, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 33378, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 33417, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 33456, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
+ { 33478, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
+ { 33504, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
+ { 33528, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE */
+ { 33550, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE_ARB */
+ { 33576, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
+ { 33599, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
+ { 33621, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
+ { 33642, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
+ { 33663, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
+ { 33690, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 33722, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 33754, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ { 33789, 0x00001701 }, /* GL_PROJECTION */
+ { 33803, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
+ { 33824, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 33867, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
+ { 33893, 0x00008E4F }, /* GL_PROVOKING_VERTEX */
+ { 33913, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
+ { 33937, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
+ { 33958, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
+ { 33977, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
+ { 34000, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 34039, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ { 34077, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
+ { 34097, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY */
+ { 34123, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ { 34153, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
+ { 34177, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
+ { 34197, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY */
+ { 34223, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ { 34253, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
+ { 34277, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
+ { 34297, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ { 34330, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ { 34356, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
+ { 34386, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE */
+ { 34413, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ { 34444, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
+ { 34474, 0x00008A1D }, /* GL_PURGEABLE_APPLE */
+ { 34493, 0x00002003 }, /* GL_Q */
+ { 34498, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
+ { 34523, 0x00000007 }, /* GL_QUADS */
+ { 34532, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
+ { 34576, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
+ { 34624, 0x00008614 }, /* GL_QUAD_MESH_SUN */
+ { 34641, 0x00000008 }, /* GL_QUAD_STRIP */
+ { 34655, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT */
+ { 34682, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
+ { 34712, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT */
+ { 34736, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */
+ { 34763, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
+ { 34785, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
+ { 34811, 0x00008E14 }, /* GL_QUERY_NO_WAIT */
+ { 34828, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */
+ { 34848, 0x00008866 }, /* GL_QUERY_RESULT */
+ { 34864, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
+ { 34884, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
+ { 34910, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
+ { 34940, 0x00008E13 }, /* GL_QUERY_WAIT */
+ { 34954, 0x00008E13 }, /* GL_QUERY_WAIT_NV */
+ { 34971, 0x00002002 }, /* GL_R */
+ { 34976, 0x00008C3A }, /* GL_R11F_G11F_B10F */
+ { 34994, 0x00008F98 }, /* GL_R16_SNORM */
+ { 35007, 0x00002A10 }, /* GL_R3_G3_B2 */
+ { 35019, 0x00008F94 }, /* GL_R8_SNORM */
+ { 35031, 0x00008C89 }, /* GL_RASTERIZER_DISCARD */
+ { 35053, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */
+ { 35079, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ { 35112, 0x00000C02 }, /* GL_READ_BUFFER */
+ { 35127, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
+ { 35147, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */
+ { 35175, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ { 35207, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
+ { 35231, 0x000088B8 }, /* GL_READ_ONLY */
+ { 35244, 0x000088B8 }, /* GL_READ_ONLY_ARB */
+ { 35261, 0x000088BA }, /* GL_READ_WRITE */
+ { 35275, 0x000088BA }, /* GL_READ_WRITE_ARB */
+ { 35293, 0x00001903 }, /* GL_RED */
+ { 35300, 0x00008016 }, /* GL_REDUCE */
+ { 35310, 0x00008016 }, /* GL_REDUCE_EXT */
+ { 35324, 0x00000D15 }, /* GL_RED_BIAS */
+ { 35336, 0x00000D52 }, /* GL_RED_BITS */
+ { 35348, 0x00008D94 }, /* GL_RED_INTEGER */
+ { 35363, 0x00008D94 }, /* GL_RED_INTEGER_EXT */
+ { 35382, 0x00000D14 }, /* GL_RED_SCALE */
+ { 35395, 0x00008F90 }, /* GL_RED_SNORM */
+ { 35408, 0x00008512 }, /* GL_REFLECTION_MAP */
+ { 35426, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
+ { 35448, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
+ { 35469, 0x00008512 }, /* GL_REFLECTION_MAP_OES */
+ { 35491, 0x00008A19 }, /* GL_RELEASED_APPLE */
+ { 35509, 0x00001C00 }, /* GL_RENDER */
+ { 35519, 0x00008D41 }, /* GL_RENDERBUFFER */
+ { 35535, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ { 35562, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */
+ { 35593, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */
+ { 35617, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
+ { 35645, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */
+ { 35673, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
+ { 35699, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */
+ { 35729, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ { 35756, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */
+ { 35787, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
+ { 35807, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
+ { 35834, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */
+ { 35865, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
+ { 35888, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
+ { 35915, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */
+ { 35942, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ { 35974, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
+ { 36010, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
+ { 36046, 0x00008D41 }, /* GL_RENDERBUFFER_OES */
+ { 36066, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
+ { 36091, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */
+ { 36120, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
+ { 36144, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */
+ { 36172, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ { 36201, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */
+ { 36234, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
+ { 36256, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
+ { 36282, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */
+ { 36308, 0x00001F01 }, /* GL_RENDERER */
+ { 36320, 0x00000C40 }, /* GL_RENDER_MODE */
+ { 36335, 0x00002901 }, /* GL_REPEAT */
+ { 36345, 0x00001E01 }, /* GL_REPLACE */
+ { 36356, 0x00008062 }, /* GL_REPLACE_EXT */
+ { 36371, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
+ { 36394, 0x0000803A }, /* GL_RESCALE_NORMAL */
+ { 36412, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
+ { 36434, 0x00008256 }, /* GL_RESET_NOTIFICATION_STRATEGY_ARB */
+ { 36469, 0x00008A1B }, /* GL_RETAINED_APPLE */
+ { 36487, 0x00000102 }, /* GL_RETURN */
+ { 36497, 0x00008F99 }, /* GL_RG16_SNORM */
+ { 36511, 0x00008F95 }, /* GL_RG8_SNORM */
+ { 36524, 0x00001907 }, /* GL_RGB */
+ { 36531, 0x00008052 }, /* GL_RGB10 */
+ { 36540, 0x00008059 }, /* GL_RGB10_A2 */
+ { 36552, 0x00008059 }, /* GL_RGB10_A2_EXT */
+ { 36568, 0x00008052 }, /* GL_RGB10_EXT */
+ { 36581, 0x00008053 }, /* GL_RGB12 */
+ { 36590, 0x00008053 }, /* GL_RGB12_EXT */
+ { 36603, 0x00008054 }, /* GL_RGB16 */
+ { 36612, 0x0000881B }, /* GL_RGB16F */
+ { 36622, 0x00008D89 }, /* GL_RGB16I */
+ { 36632, 0x00008D89 }, /* GL_RGB16I_EXT */
+ { 36646, 0x00008D77 }, /* GL_RGB16UI */
+ { 36657, 0x00008D77 }, /* GL_RGB16UI_EXT */
+ { 36672, 0x00008054 }, /* GL_RGB16_EXT */
+ { 36685, 0x00008F9A }, /* GL_RGB16_SNORM */
+ { 36700, 0x0000804E }, /* GL_RGB2_EXT */
+ { 36712, 0x00008815 }, /* GL_RGB32F */
+ { 36722, 0x00008D83 }, /* GL_RGB32I */
+ { 36732, 0x00008D83 }, /* GL_RGB32I_EXT */
+ { 36746, 0x00008D71 }, /* GL_RGB32UI */
+ { 36757, 0x00008D71 }, /* GL_RGB32UI_EXT */
+ { 36772, 0x0000804F }, /* GL_RGB4 */
+ { 36780, 0x0000804F }, /* GL_RGB4_EXT */
+ { 36792, 0x000083A1 }, /* GL_RGB4_S3TC */
+ { 36805, 0x00008050 }, /* GL_RGB5 */
+ { 36813, 0x00008D62 }, /* GL_RGB565 */
+ { 36823, 0x00008D62 }, /* GL_RGB565_OES */
+ { 36837, 0x00008057 }, /* GL_RGB5_A1 */
+ { 36848, 0x00008057 }, /* GL_RGB5_A1_EXT */
+ { 36863, 0x00008057 }, /* GL_RGB5_A1_OES */
+ { 36878, 0x00008050 }, /* GL_RGB5_EXT */
+ { 36890, 0x00008051 }, /* GL_RGB8 */
+ { 36898, 0x00008D8F }, /* GL_RGB8I */
+ { 36907, 0x00008D8F }, /* GL_RGB8I_EXT */
+ { 36920, 0x00008D7D }, /* GL_RGB8UI */
+ { 36930, 0x00008D7D }, /* GL_RGB8UI_EXT */
+ { 36944, 0x00008051 }, /* GL_RGB8_EXT */
+ { 36956, 0x00008051 }, /* GL_RGB8_OES */
+ { 36968, 0x00008F96 }, /* GL_RGB8_SNORM */
+ { 36982, 0x00008C3D }, /* GL_RGB9_E5 */
+ { 36993, 0x00001908 }, /* GL_RGBA */
+ { 37001, 0x0000805A }, /* GL_RGBA12 */
+ { 37011, 0x0000805A }, /* GL_RGBA12_EXT */
+ { 37025, 0x0000805B }, /* GL_RGBA16 */
+ { 37035, 0x0000881A }, /* GL_RGBA16F */
+ { 37046, 0x00008D88 }, /* GL_RGBA16I */
+ { 37057, 0x00008D88 }, /* GL_RGBA16I_EXT */
+ { 37072, 0x00008D76 }, /* GL_RGBA16UI */
+ { 37084, 0x00008D76 }, /* GL_RGBA16UI_EXT */
+ { 37100, 0x0000805B }, /* GL_RGBA16_EXT */
+ { 37114, 0x00008F9B }, /* GL_RGBA16_SNORM */
+ { 37130, 0x00008055 }, /* GL_RGBA2 */
+ { 37139, 0x00008055 }, /* GL_RGBA2_EXT */
+ { 37152, 0x00008814 }, /* GL_RGBA32F */
+ { 37163, 0x00008D82 }, /* GL_RGBA32I */
+ { 37174, 0x00008D82 }, /* GL_RGBA32I_EXT */
+ { 37189, 0x00008D70 }, /* GL_RGBA32UI */
+ { 37201, 0x00008D70 }, /* GL_RGBA32UI_EXT */
+ { 37217, 0x00008056 }, /* GL_RGBA4 */
+ { 37226, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
+ { 37245, 0x00008056 }, /* GL_RGBA4_EXT */
+ { 37258, 0x00008056 }, /* GL_RGBA4_OES */
+ { 37271, 0x000083A3 }, /* GL_RGBA4_S3TC */
+ { 37285, 0x00008058 }, /* GL_RGBA8 */
+ { 37294, 0x00008D8E }, /* GL_RGBA8I */
+ { 37304, 0x00008D8E }, /* GL_RGBA8I_EXT */
+ { 37318, 0x00008D7C }, /* GL_RGBA8UI */
+ { 37329, 0x00008D7C }, /* GL_RGBA8UI_EXT */
+ { 37344, 0x00008058 }, /* GL_RGBA8_EXT */
+ { 37357, 0x00008058 }, /* GL_RGBA8_OES */
+ { 37370, 0x00008F97 }, /* GL_RGBA8_SNORM */
+ { 37385, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
+ { 37403, 0x00008820 }, /* GL_RGBA_FLOAT_MODE_ARB */
+ { 37426, 0x00008D99 }, /* GL_RGBA_INTEGER */
+ { 37442, 0x00008D99 }, /* GL_RGBA_INTEGER_EXT */
+ { 37462, 0x00008D9E }, /* GL_RGBA_INTEGER_MODE_EXT */
+ { 37487, 0x00000C31 }, /* GL_RGBA_MODE */
+ { 37500, 0x000083A2 }, /* GL_RGBA_S3TC */
+ { 37513, 0x00008F93 }, /* GL_RGBA_SNORM */
+ { 37527, 0x00008D98 }, /* GL_RGB_INTEGER */
+ { 37542, 0x00008D98 }, /* GL_RGB_INTEGER_EXT */
+ { 37561, 0x000083A0 }, /* GL_RGB_S3TC */
+ { 37573, 0x00008573 }, /* GL_RGB_SCALE */
+ { 37586, 0x00008573 }, /* GL_RGB_SCALE_ARB */
+ { 37603, 0x00008573 }, /* GL_RGB_SCALE_EXT */
+ { 37620, 0x00008F92 }, /* GL_RGB_SNORM */
+ { 37633, 0x00008F91 }, /* GL_RG_SNORM */
+ { 37645, 0x00000407 }, /* GL_RIGHT */
+ { 37654, 0x00002000 }, /* GL_S */
+ { 37659, 0x00008B5D }, /* GL_SAMPLER_1D */
+ { 37673, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY */
+ { 37693, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY_EXT */
+ { 37717, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW */
+ { 37744, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW_EXT */
+ { 37775, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
+ { 37796, 0x00008B5E }, /* GL_SAMPLER_2D */
+ { 37810, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY */
+ { 37830, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY_EXT */
+ { 37854, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW */
+ { 37881, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW_EXT */
+ { 37912, 0x00008B63 }, /* GL_SAMPLER_2D_RECT */
+ { 37931, 0x00008B64 }, /* GL_SAMPLER_2D_RECT_SHADOW */
+ { 37957, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
+ { 37978, 0x00008B5F }, /* GL_SAMPLER_3D */
+ { 37992, 0x00008B5F }, /* GL_SAMPLER_3D_OES */
+ { 38010, 0x00008919 }, /* GL_SAMPLER_BINDING */
+ { 38029, 0x00008DC2 }, /* GL_SAMPLER_BUFFER */
+ { 38047, 0x00008DC2 }, /* GL_SAMPLER_BUFFER_EXT */
+ { 38069, 0x00008B60 }, /* GL_SAMPLER_CUBE */
+ { 38085, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW */
+ { 38108, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW_EXT */
+ { 38135, 0x000080A9 }, /* GL_SAMPLES */
+ { 38146, 0x000086B4 }, /* GL_SAMPLES_3DFX */
+ { 38162, 0x000080A9 }, /* GL_SAMPLES_ARB */
+ { 38177, 0x00008914 }, /* GL_SAMPLES_PASSED */
+ { 38195, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
+ { 38217, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ { 38245, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
+ { 38277, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
+ { 38300, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
+ { 38327, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
+ { 38345, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
+ { 38368, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
+ { 38390, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
+ { 38409, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
+ { 38432, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
+ { 38458, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
+ { 38488, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
+ { 38513, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
+ { 38542, 0x00080000 }, /* GL_SCISSOR_BIT */
+ { 38557, 0x00000C10 }, /* GL_SCISSOR_BOX */
+ { 38572, 0x00000C11 }, /* GL_SCISSOR_TEST */
+ { 38588, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
+ { 38613, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ { 38653, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 38697, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ { 38730, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ { 38760, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ { 38792, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ { 38822, 0x00001C02 }, /* GL_SELECT */
+ { 38832, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
+ { 38860, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
+ { 38885, 0x00008012 }, /* GL_SEPARABLE_2D */
+ { 38901, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS */
+ { 38921, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */
+ { 38945, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
+ { 38972, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
+ { 39003, 0x0000150F }, /* GL_SET */
+ { 39010, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */
+ { 39035, 0x00008DFA }, /* GL_SHADER_COMPILER */
+ { 39054, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
+ { 39075, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
+ { 39099, 0x00008B4F }, /* GL_SHADER_TYPE */
+ { 39114, 0x00000B54 }, /* GL_SHADE_MODEL */
+ { 39129, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
+ { 39157, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
+ { 39180, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ { 39210, 0x00001601 }, /* GL_SHININESS */
+ { 39223, 0x00001402 }, /* GL_SHORT */
+ { 39232, 0x00009119 }, /* GL_SIGNALED */
+ { 39244, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
+ { 39265, 0x000081F9 }, /* GL_SINGLE_COLOR */
+ { 39281, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
+ { 39301, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
+ { 39320, 0x00008C46 }, /* GL_SLUMINANCE */
+ { 39334, 0x00008C47 }, /* GL_SLUMINANCE8 */
+ { 39349, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
+ { 39371, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
+ { 39391, 0x00001D01 }, /* GL_SMOOTH */
+ { 39401, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
+ { 39434, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
+ { 39461, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
+ { 39494, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
+ { 39521, 0x00008588 }, /* GL_SOURCE0_ALPHA */
+ { 39538, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
+ { 39559, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
+ { 39580, 0x00008580 }, /* GL_SOURCE0_RGB */
+ { 39595, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
+ { 39614, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
+ { 39633, 0x00008589 }, /* GL_SOURCE1_ALPHA */
+ { 39650, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
+ { 39671, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
+ { 39692, 0x00008581 }, /* GL_SOURCE1_RGB */
+ { 39707, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
+ { 39726, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
+ { 39745, 0x0000858A }, /* GL_SOURCE2_ALPHA */
+ { 39762, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
+ { 39783, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
+ { 39804, 0x00008582 }, /* GL_SOURCE2_RGB */
+ { 39819, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
+ { 39838, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
+ { 39857, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
+ { 39877, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
+ { 39895, 0x00001202 }, /* GL_SPECULAR */
+ { 39907, 0x00002402 }, /* GL_SPHERE_MAP */
+ { 39921, 0x00001206 }, /* GL_SPOT_CUTOFF */
+ { 39936, 0x00001204 }, /* GL_SPOT_DIRECTION */
+ { 39954, 0x00001205 }, /* GL_SPOT_EXPONENT */
+ { 39971, 0x00008588 }, /* GL_SRC0_ALPHA */
+ { 39985, 0x00008580 }, /* GL_SRC0_RGB */
+ { 39997, 0x00008589 }, /* GL_SRC1_ALPHA */
+ { 40011, 0x00008581 }, /* GL_SRC1_RGB */
+ { 40023, 0x0000858A }, /* GL_SRC2_ALPHA */
+ { 40037, 0x00008582 }, /* GL_SRC2_RGB */
+ { 40049, 0x00000302 }, /* GL_SRC_ALPHA */
+ { 40062, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
+ { 40084, 0x00000300 }, /* GL_SRC_COLOR */
+ { 40097, 0x00008C40 }, /* GL_SRGB */
+ { 40105, 0x00008C41 }, /* GL_SRGB8 */
+ { 40114, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
+ { 40130, 0x00008C42 }, /* GL_SRGB_ALPHA */
+ { 40144, 0x00000503 }, /* GL_STACK_OVERFLOW */
+ { 40162, 0x00000504 }, /* GL_STACK_UNDERFLOW */
+ { 40181, 0x000088E6 }, /* GL_STATIC_COPY */
+ { 40196, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
+ { 40215, 0x000088E4 }, /* GL_STATIC_DRAW */
+ { 40230, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
+ { 40249, 0x000088E5 }, /* GL_STATIC_READ */
+ { 40264, 0x000088E5 }, /* GL_STATIC_READ_ARB */
+ { 40283, 0x00001802 }, /* GL_STENCIL */
+ { 40294, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
+ { 40316, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
+ { 40342, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */
+ { 40368, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
+ { 40389, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
+ { 40414, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
+ { 40435, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
+ { 40460, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ { 40492, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
+ { 40528, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ { 40560, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
+ { 40596, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
+ { 40616, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
+ { 40643, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
+ { 40669, 0x00000D57 }, /* GL_STENCIL_BITS */
+ { 40685, 0x00008224 }, /* GL_STENCIL_BUFFER */
+ { 40703, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
+ { 40725, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
+ { 40748, 0x00000B94 }, /* GL_STENCIL_FAIL */
+ { 40764, 0x00000B92 }, /* GL_STENCIL_FUNC */
+ { 40780, 0x00001901 }, /* GL_STENCIL_INDEX */
+ { 40797, 0x00008D46 }, /* GL_STENCIL_INDEX1 */
+ { 40815, 0x00008D49 }, /* GL_STENCIL_INDEX16 */
+ { 40834, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
+ { 40857, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
+ { 40879, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */
+ { 40901, 0x00008D47 }, /* GL_STENCIL_INDEX4 */
+ { 40919, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
+ { 40941, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */
+ { 40963, 0x00008D48 }, /* GL_STENCIL_INDEX8 */
+ { 40981, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
+ { 41003, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */
+ { 41025, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
+ { 41046, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ { 41073, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
+ { 41100, 0x00000B97 }, /* GL_STENCIL_REF */
+ { 41115, 0x00000B90 }, /* GL_STENCIL_TEST */
+ { 41131, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ { 41160, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
+ { 41182, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
+ { 41203, 0x00000C33 }, /* GL_STEREO */
+ { 41213, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
+ { 41237, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
+ { 41262, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
+ { 41286, 0x000088E2 }, /* GL_STREAM_COPY */
+ { 41301, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
+ { 41320, 0x000088E0 }, /* GL_STREAM_DRAW */
+ { 41335, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
+ { 41354, 0x000088E1 }, /* GL_STREAM_READ */
+ { 41369, 0x000088E1 }, /* GL_STREAM_READ_ARB */
+ { 41388, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
+ { 41405, 0x000084E7 }, /* GL_SUBTRACT */
+ { 41417, 0x000084E7 }, /* GL_SUBTRACT_ARB */
+ { 41433, 0x00009113 }, /* GL_SYNC_CONDITION */
+ { 41451, 0x00009116 }, /* GL_SYNC_FENCE */
+ { 41465, 0x00009115 }, /* GL_SYNC_FLAGS */
+ { 41479, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
+ { 41506, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ { 41536, 0x00009114 }, /* GL_SYNC_STATUS */
+ { 41551, 0x00002001 }, /* GL_T */
+ { 41556, 0x00002A2A }, /* GL_T2F_C3F_V3F */
+ { 41571, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
+ { 41590, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
+ { 41606, 0x00002A2B }, /* GL_T2F_N3F_V3F */
+ { 41621, 0x00002A27 }, /* GL_T2F_V3F */
+ { 41632, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
+ { 41651, 0x00002A28 }, /* GL_T4F_V4F */
+ { 41662, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
+ { 41685, 0x00001702 }, /* GL_TEXTURE */
+ { 41696, 0x000084C0 }, /* GL_TEXTURE0 */
+ { 41708, 0x000084C0 }, /* GL_TEXTURE0_ARB */
+ { 41724, 0x000084C1 }, /* GL_TEXTURE1 */
+ { 41736, 0x000084CA }, /* GL_TEXTURE10 */
+ { 41749, 0x000084CA }, /* GL_TEXTURE10_ARB */
+ { 41766, 0x000084CB }, /* GL_TEXTURE11 */
+ { 41779, 0x000084CB }, /* GL_TEXTURE11_ARB */
+ { 41796, 0x000084CC }, /* GL_TEXTURE12 */
+ { 41809, 0x000084CC }, /* GL_TEXTURE12_ARB */
+ { 41826, 0x000084CD }, /* GL_TEXTURE13 */
+ { 41839, 0x000084CD }, /* GL_TEXTURE13_ARB */
+ { 41856, 0x000084CE }, /* GL_TEXTURE14 */
+ { 41869, 0x000084CE }, /* GL_TEXTURE14_ARB */
+ { 41886, 0x000084CF }, /* GL_TEXTURE15 */
+ { 41899, 0x000084CF }, /* GL_TEXTURE15_ARB */
+ { 41916, 0x000084D0 }, /* GL_TEXTURE16 */
+ { 41929, 0x000084D0 }, /* GL_TEXTURE16_ARB */
+ { 41946, 0x000084D1 }, /* GL_TEXTURE17 */
+ { 41959, 0x000084D1 }, /* GL_TEXTURE17_ARB */
+ { 41976, 0x000084D2 }, /* GL_TEXTURE18 */
+ { 41989, 0x000084D2 }, /* GL_TEXTURE18_ARB */
+ { 42006, 0x000084D3 }, /* GL_TEXTURE19 */
+ { 42019, 0x000084D3 }, /* GL_TEXTURE19_ARB */
+ { 42036, 0x000084C1 }, /* GL_TEXTURE1_ARB */
+ { 42052, 0x000084C2 }, /* GL_TEXTURE2 */
+ { 42064, 0x000084D4 }, /* GL_TEXTURE20 */
+ { 42077, 0x000084D4 }, /* GL_TEXTURE20_ARB */
+ { 42094, 0x000084D5 }, /* GL_TEXTURE21 */
+ { 42107, 0x000084D5 }, /* GL_TEXTURE21_ARB */
+ { 42124, 0x000084D6 }, /* GL_TEXTURE22 */
+ { 42137, 0x000084D6 }, /* GL_TEXTURE22_ARB */
+ { 42154, 0x000084D7 }, /* GL_TEXTURE23 */
+ { 42167, 0x000084D7 }, /* GL_TEXTURE23_ARB */
+ { 42184, 0x000084D8 }, /* GL_TEXTURE24 */
+ { 42197, 0x000084D8 }, /* GL_TEXTURE24_ARB */
+ { 42214, 0x000084D9 }, /* GL_TEXTURE25 */
+ { 42227, 0x000084D9 }, /* GL_TEXTURE25_ARB */
+ { 42244, 0x000084DA }, /* GL_TEXTURE26 */
+ { 42257, 0x000084DA }, /* GL_TEXTURE26_ARB */
+ { 42274, 0x000084DB }, /* GL_TEXTURE27 */
+ { 42287, 0x000084DB }, /* GL_TEXTURE27_ARB */
+ { 42304, 0x000084DC }, /* GL_TEXTURE28 */
+ { 42317, 0x000084DC }, /* GL_TEXTURE28_ARB */
+ { 42334, 0x000084DD }, /* GL_TEXTURE29 */
+ { 42347, 0x000084DD }, /* GL_TEXTURE29_ARB */
+ { 42364, 0x000084C2 }, /* GL_TEXTURE2_ARB */
+ { 42380, 0x000084C3 }, /* GL_TEXTURE3 */
+ { 42392, 0x000084DE }, /* GL_TEXTURE30 */
+ { 42405, 0x000084DE }, /* GL_TEXTURE30_ARB */
+ { 42422, 0x000084DF }, /* GL_TEXTURE31 */
+ { 42435, 0x000084DF }, /* GL_TEXTURE31_ARB */
+ { 42452, 0x000084C3 }, /* GL_TEXTURE3_ARB */
+ { 42468, 0x000084C4 }, /* GL_TEXTURE4 */
+ { 42480, 0x000084C4 }, /* GL_TEXTURE4_ARB */
+ { 42496, 0x000084C5 }, /* GL_TEXTURE5 */
+ { 42508, 0x000084C5 }, /* GL_TEXTURE5_ARB */
+ { 42524, 0x000084C6 }, /* GL_TEXTURE6 */
+ { 42536, 0x000084C6 }, /* GL_TEXTURE6_ARB */
+ { 42552, 0x000084C7 }, /* GL_TEXTURE7 */
+ { 42564, 0x000084C7 }, /* GL_TEXTURE7_ARB */
+ { 42580, 0x000084C8 }, /* GL_TEXTURE8 */
+ { 42592, 0x000084C8 }, /* GL_TEXTURE8_ARB */
+ { 42608, 0x000084C9 }, /* GL_TEXTURE9 */
+ { 42620, 0x000084C9 }, /* GL_TEXTURE9_ARB */
+ { 42636, 0x00000DE0 }, /* GL_TEXTURE_1D */
+ { 42650, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY */
+ { 42670, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
+ { 42694, 0x00000DE1 }, /* GL_TEXTURE_2D */
+ { 42708, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY */
+ { 42728, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
+ { 42752, 0x0000806F }, /* GL_TEXTURE_3D */
+ { 42766, 0x0000806F }, /* GL_TEXTURE_3D_OES */
+ { 42784, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
+ { 42806, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
+ { 42832, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
+ { 42854, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
+ { 42876, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY */
+ { 42904, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ { 42936, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
+ { 42958, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY */
+ { 42986, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ { 43018, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
+ { 43040, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */
+ { 43066, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER */
+ { 43092, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER_ARB */
+ { 43122, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ { 43150, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
+ { 43182, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */
+ { 43214, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE */
+ { 43243, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ { 43276, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
+ { 43308, 0x00040000 }, /* GL_TEXTURE_BIT */
+ { 43323, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
+ { 43344, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
+ { 43369, 0x00001005 }, /* GL_TEXTURE_BORDER */
+ { 43387, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
+ { 43411, 0x00008C2A }, /* GL_TEXTURE_BUFFER */
+ { 43429, 0x00008C2A }, /* GL_TEXTURE_BUFFER_ARB */
+ { 43451, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */
+ { 43488, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB */
+ { 43529, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT */
+ { 43554, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT_ARB */
+ { 43583, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ { 43614, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ { 43644, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ { 43674, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ { 43709, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ { 43740, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 43778, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ { 43805, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ { 43837, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ { 43871, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
+ { 43895, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
+ { 43923, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
+ { 43947, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
+ { 43975, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ { 44008, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
+ { 44032, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
+ { 44054, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
+ { 44076, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
+ { 44102, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
+ { 44136, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ { 44169, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
+ { 44206, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
+ { 44234, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
+ { 44266, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
+ { 44289, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ { 44327, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
+ { 44369, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ { 44400, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ { 44428, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ { 44458, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ { 44486, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */
+ { 44511, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
+ { 44531, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
+ { 44555, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ { 44586, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
+ { 44621, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */
+ { 44656, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ { 44687, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
+ { 44722, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */
+ { 44757, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ { 44788, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
+ { 44823, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */
+ { 44858, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */
+ { 44882, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ { 44913, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
+ { 44948, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */
+ { 44983, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ { 45014, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
+ { 45049, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */
+ { 45084, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ { 45115, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
+ { 45150, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */
+ { 45185, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ { 45214, 0x00008071 }, /* GL_TEXTURE_DEPTH */
+ { 45231, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
+ { 45253, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
+ { 45279, 0x00002300 }, /* GL_TEXTURE_ENV */
+ { 45294, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
+ { 45315, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
+ { 45335, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
+ { 45361, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */
+ { 45391, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
+ { 45411, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */
+ { 45435, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
+ { 45452, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
+ { 45469, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
+ { 45486, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */
+ { 45509, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
+ { 45526, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ { 45551, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
+ { 45573, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
+ { 45599, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
+ { 45617, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ { 45643, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
+ { 45669, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
+ { 45699, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
+ { 45726, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ { 45751, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
+ { 45771, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
+ { 45795, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ { 45822, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ { 45849, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ { 45876, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
+ { 45902, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
+ { 45932, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
+ { 45954, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
+ { 45972, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 46012, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 46042, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ { 46070, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ { 46098, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ { 46126, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
+ { 46147, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
+ { 46166, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
+ { 46188, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
+ { 46207, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
+ { 46227, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ { 46257, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ { 46288, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE */
+ { 46309, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
+ { 46334, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
+ { 46358, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
+ { 46378, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
+ { 46402, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
+ { 46422, 0x00008C3F }, /* GL_TEXTURE_SHARED_SIZE */
+ { 46445, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
+ { 46468, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
+ { 46492, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */
+ { 46520, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ { 46550, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
+ { 46575, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ { 46609, 0x00001000 }, /* GL_TEXTURE_WIDTH */
+ { 46626, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
+ { 46644, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */
+ { 46666, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
+ { 46684, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
+ { 46702, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
+ { 46721, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 46741, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 46760, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 46789, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 46806, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */
+ { 46828, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */
+ { 46858, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER */
+ { 46887, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
+ { 46923, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */
+ { 46960, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
+ { 47001, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
+ { 47034, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */
+ { 47068, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
+ { 47106, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
+ { 47142, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */
+ { 47176, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
+ { 47214, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */
+ { 47249, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
+ { 47288, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */
+ { 47329, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
+ { 47374, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS */
+ { 47405, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
+ { 47440, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */
+ { 47481, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
+ { 47526, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 47552, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 47582, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 47614, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 47644, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 47678, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 47694, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 47725, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 47760, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 47788, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 47820, 0x00000004 }, /* GL_TRIANGLES */
+ { 47833, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY */
+ { 47856, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY_ARB */
+ { 47883, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 47899, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 47920, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 47938, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY */
+ { 47966, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY_ARB */
+ { 47998, 0x00000001 }, /* GL_TRUE */
+ { 48006, 0x00008A1C }, /* GL_UNDEFINED_APPLE */
+ { 48025, 0x00008255 }, /* GL_UNKNOWN_CONTEXT_RESET_ARB */
+ { 48054, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 48074, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 48097, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 48117, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 48138, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 48160, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 48182, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 48202, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 48223, 0x00009118 }, /* GL_UNSIGNALED */
+ { 48237, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 48254, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 48281, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 48304, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 48320, 0x00008C3B }, /* GL_UNSIGNED_INT_10F_11F_11F_REV */
+ { 48352, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 48379, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */
+ { 48410, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
+ { 48431, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
+ { 48456, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 48480, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */
+ { 48505, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 48536, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */
+ { 48571, 0x00008C3E }, /* GL_UNSIGNED_INT_5_9_9_9_REV */
+ { 48599, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 48623, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 48651, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D */
+ { 48678, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */
+ { 48711, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT */
+ { 48748, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D_EXT */
+ { 48779, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D */
+ { 48806, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */
+ { 48839, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT */
+ { 48876, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D_EXT */
+ { 48907, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */
+ { 48939, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT */
+ { 48975, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D */
+ { 49002, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D_EXT */
+ { 49033, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */
+ { 49064, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT */
+ { 49099, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE */
+ { 49128, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE_EXT */
+ { 49161, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2 */
+ { 49182, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2_EXT */
+ { 49207, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3 */
+ { 49228, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3_EXT */
+ { 49253, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4 */
+ { 49274, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4_EXT */
+ { 49299, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
+ { 49322, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 49340, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 49370, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */
+ { 49404, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 49430, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 49460, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */
+ { 49494, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 49520, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 49544, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 49572, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 49600, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 49627, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 49659, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 49690, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 49704, 0x00002A20 }, /* GL_V2F */
+ { 49711, 0x00002A21 }, /* GL_V3F */
+ { 49718, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 49737, 0x00001F00 }, /* GL_VENDOR */
+ { 49747, 0x00001F02 }, /* GL_VERSION */
+ { 49758, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 49774, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
+ { 49798, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 49828, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 49859, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 49894, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 49918, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 49939, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 49962, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 49983, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 50010, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 50038, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 50066, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 50094, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 50122, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 50150, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 50178, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 50205, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 50232, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 50259, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 50286, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 50313, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 50340, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 50367, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 50394, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 50421, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 50459, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 50501, 0x000088FE }, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB */
+ { 50536, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 50567, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 50602, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */
+ { 50633, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT */
+ { 50668, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 50702, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 50740, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 50771, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 50806, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 50834, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 50866, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 50896, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 50930, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 50958, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 50990, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 51010, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 51032, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 51061, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 51082, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 51111, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 51144, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 51176, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 51203, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 51234, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 51264, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 51281, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 51302, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 51329, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 51341, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 51357, 0x00008A1A }, /* GL_VOLATILE_APPLE */
+ { 51375, 0x0000911D }, /* GL_WAIT_FAILED */
+ { 51390, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 51410, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 51441, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 51476, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */
+ { 51511, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */
+ { 51531, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 51559, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */
+ { 51587, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 51612, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */
+ { 51637, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 51664, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */
+ { 51691, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 51716, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */
+ { 51741, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 51765, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 51784, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 51798, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 51816, 0x000088B9 }, /* GL_WRITE_ONLY_OES */
+ { 51834, 0x00001506 }, /* GL_XOR */
+ { 51841, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 51860, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 51874, 0x00000000 }, /* GL_ZERO */
+ { 51882, 0x00000D16 }, /* GL_ZOOM_X */
+ { 51892, 0x00000D17 }, /* GL_ZOOM_Y */
};
-static const unsigned reduced_enums[1556] =
+static const unsigned reduced_enums[1562] =
{
- 538, /* GL_FALSE */
- 831, /* GL_LINES */
- 835, /* GL_LINE_LOOP */
- 842, /* GL_LINE_STRIP */
- 2146, /* GL_TRIANGLES */
- 2151, /* GL_TRIANGLE_STRIP */
- 2149, /* GL_TRIANGLE_FAN */
- 1512, /* GL_QUADS */
- 1516, /* GL_QUAD_STRIP */
- 1383, /* GL_POLYGON */
- 832, /* GL_LINES_ADJACENCY */
- 843, /* GL_LINE_STRIP_ADJACENCY */
- 2147, /* GL_TRIANGLES_ADJACENCY */
- 2152, /* GL_TRIANGLE_STRIP_ADJACENCY */
- 1395, /* GL_POLYGON_STIPPLE_BIT */
- 1338, /* GL_PIXEL_MODE_BIT */
- 818, /* GL_LIGHTING_BIT */
- 572, /* GL_FOG_BIT */
+ 539, /* GL_FALSE */
+ 834, /* GL_LINES */
+ 838, /* GL_LINE_LOOP */
+ 845, /* GL_LINE_STRIP */
+ 2152, /* GL_TRIANGLES */
+ 2157, /* GL_TRIANGLE_STRIP */
+ 2155, /* GL_TRIANGLE_FAN */
+ 1517, /* GL_QUADS */
+ 1521, /* GL_QUAD_STRIP */
+ 1388, /* GL_POLYGON */
+ 835, /* GL_LINES_ADJACENCY */
+ 846, /* GL_LINE_STRIP_ADJACENCY */
+ 2153, /* GL_TRIANGLES_ADJACENCY */
+ 2158, /* GL_TRIANGLE_STRIP_ADJACENCY */
+ 1400, /* GL_POLYGON_STIPPLE_BIT */
+ 1343, /* GL_PIXEL_MODE_BIT */
+ 821, /* GL_LIGHTING_BIT */
+ 573, /* GL_FOG_BIT */
8, /* GL_ACCUM */
- 854, /* GL_LOAD */
- 1601, /* GL_RETURN */
- 1205, /* GL_MULT */
+ 857, /* GL_LOAD */
+ 1607, /* GL_RETURN */
+ 1209, /* GL_MULT */
24, /* GL_ADD */
- 1221, /* GL_NEVER */
- 808, /* GL_LESS */
- 528, /* GL_EQUAL */
- 807, /* GL_LEQUAL */
- 695, /* GL_GREATER */
- 1238, /* GL_NOTEQUAL */
- 694, /* GL_GEQUAL */
+ 1225, /* GL_NEVER */
+ 811, /* GL_LESS */
+ 529, /* GL_EQUAL */
+ 810, /* GL_LEQUAL */
+ 696, /* GL_GREATER */
+ 1242, /* GL_NOTEQUAL */
+ 695, /* GL_GEQUAL */
55, /* GL_ALWAYS */
- 1810, /* GL_SRC_COLOR */
- 1271, /* GL_ONE_MINUS_SRC_COLOR */
- 1808, /* GL_SRC_ALPHA */
- 1270, /* GL_ONE_MINUS_SRC_ALPHA */
- 507, /* GL_DST_ALPHA */
- 1268, /* GL_ONE_MINUS_DST_ALPHA */
- 508, /* GL_DST_COLOR */
- 1269, /* GL_ONE_MINUS_DST_COLOR */
- 1809, /* GL_SRC_ALPHA_SATURATE */
- 671, /* GL_FRONT_LEFT */
- 672, /* GL_FRONT_RIGHT */
+ 1816, /* GL_SRC_COLOR */
+ 1276, /* GL_ONE_MINUS_SRC_COLOR */
+ 1814, /* GL_SRC_ALPHA */
+ 1275, /* GL_ONE_MINUS_SRC_ALPHA */
+ 508, /* GL_DST_ALPHA */
+ 1273, /* GL_ONE_MINUS_DST_ALPHA */
+ 509, /* GL_DST_COLOR */
+ 1274, /* GL_ONE_MINUS_DST_COLOR */
+ 1815, /* GL_SRC_ALPHA_SATURATE */
+ 672, /* GL_FRONT_LEFT */
+ 673, /* GL_FRONT_RIGHT */
77, /* GL_BACK_LEFT */
78, /* GL_BACK_RIGHT */
- 668, /* GL_FRONT */
+ 669, /* GL_FRONT */
76, /* GL_BACK */
- 806, /* GL_LEFT */
- 1691, /* GL_RIGHT */
- 669, /* GL_FRONT_AND_BACK */
+ 809, /* GL_LEFT */
+ 1697, /* GL_RIGHT */
+ 670, /* GL_FRONT_AND_BACK */
71, /* GL_AUX0 */
72, /* GL_AUX1 */
73, /* GL_AUX2 */
74, /* GL_AUX3 */
- 794, /* GL_INVALID_ENUM */
- 799, /* GL_INVALID_VALUE */
- 798, /* GL_INVALID_OPERATION */
- 1815, /* GL_STACK_OVERFLOW */
- 1816, /* GL_STACK_UNDERFLOW */
- 1296, /* GL_OUT_OF_MEMORY */
- 795, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ 797, /* GL_INVALID_ENUM */
+ 802, /* GL_INVALID_VALUE */
+ 801, /* GL_INVALID_OPERATION */
+ 1821, /* GL_STACK_OVERFLOW */
+ 1822, /* GL_STACK_UNDERFLOW */
+ 1301, /* GL_OUT_OF_MEMORY */
+ 798, /* GL_INVALID_FRAMEBUFFER_OPERATION */
0, /* GL_2D */
2, /* GL_3D */
3, /* GL_3D_COLOR */
4, /* GL_3D_COLOR_TEXTURE */
6, /* GL_4D_COLOR_TEXTURE */
- 1316, /* GL_PASS_THROUGH_TOKEN */
- 1382, /* GL_POINT_TOKEN */
- 845, /* GL_LINE_TOKEN */
- 1396, /* GL_POLYGON_TOKEN */
+ 1321, /* GL_PASS_THROUGH_TOKEN */
+ 1387, /* GL_POINT_TOKEN */
+ 848, /* GL_LINE_TOKEN */
+ 1401, /* GL_POLYGON_TOKEN */
87, /* GL_BITMAP_TOKEN */
- 506, /* GL_DRAW_PIXEL_TOKEN */
- 352, /* GL_COPY_PIXEL_TOKEN */
- 836, /* GL_LINE_RESET_TOKEN */
- 531, /* GL_EXP */
- 532, /* GL_EXP2 */
- 389, /* GL_CW */
+ 507, /* GL_DRAW_PIXEL_TOKEN */
+ 353, /* GL_COPY_PIXEL_TOKEN */
+ 839, /* GL_LINE_RESET_TOKEN */
+ 532, /* GL_EXP */
+ 533, /* GL_EXP2 */
+ 390, /* GL_CW */
154, /* GL_CCW */
187, /* GL_COEFF */
- 1293, /* GL_ORDER */
- 443, /* GL_DOMAIN */
- 362, /* GL_CURRENT_COLOR */
- 365, /* GL_CURRENT_INDEX */
- 371, /* GL_CURRENT_NORMAL */
- 385, /* GL_CURRENT_TEXTURE_COORDS */
- 377, /* GL_CURRENT_RASTER_COLOR */
- 379, /* GL_CURRENT_RASTER_INDEX */
- 383, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- 380, /* GL_CURRENT_RASTER_POSITION */
- 381, /* GL_CURRENT_RASTER_POSITION_VALID */
- 378, /* GL_CURRENT_RASTER_DISTANCE */
- 1374, /* GL_POINT_SMOOTH */
- 1358, /* GL_POINT_SIZE */
- 1373, /* GL_POINT_SIZE_RANGE */
- 1364, /* GL_POINT_SIZE_GRANULARITY */
- 837, /* GL_LINE_SMOOTH */
- 846, /* GL_LINE_WIDTH */
- 848, /* GL_LINE_WIDTH_RANGE */
- 847, /* GL_LINE_WIDTH_GRANULARITY */
- 839, /* GL_LINE_STIPPLE */
- 840, /* GL_LINE_STIPPLE_PATTERN */
- 841, /* GL_LINE_STIPPLE_REPEAT */
- 853, /* GL_LIST_MODE */
- 1060, /* GL_MAX_LIST_NESTING */
- 850, /* GL_LIST_BASE */
- 852, /* GL_LIST_INDEX */
- 1385, /* GL_POLYGON_MODE */
- 1392, /* GL_POLYGON_SMOOTH */
- 1394, /* GL_POLYGON_STIPPLE */
- 517, /* GL_EDGE_FLAG */
- 355, /* GL_CULL_FACE */
- 356, /* GL_CULL_FACE_MODE */
- 670, /* GL_FRONT_FACE */
- 817, /* GL_LIGHTING */
- 822, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- 823, /* GL_LIGHT_MODEL_TWO_SIDE */
- 819, /* GL_LIGHT_MODEL_AMBIENT */
- 1757, /* GL_SHADE_MODEL */
+ 1298, /* GL_ORDER */
+ 444, /* GL_DOMAIN */
+ 363, /* GL_CURRENT_COLOR */
+ 366, /* GL_CURRENT_INDEX */
+ 372, /* GL_CURRENT_NORMAL */
+ 386, /* GL_CURRENT_TEXTURE_COORDS */
+ 378, /* GL_CURRENT_RASTER_COLOR */
+ 380, /* GL_CURRENT_RASTER_INDEX */
+ 384, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ 381, /* GL_CURRENT_RASTER_POSITION */
+ 382, /* GL_CURRENT_RASTER_POSITION_VALID */
+ 379, /* GL_CURRENT_RASTER_DISTANCE */
+ 1379, /* GL_POINT_SMOOTH */
+ 1363, /* GL_POINT_SIZE */
+ 1378, /* GL_POINT_SIZE_RANGE */
+ 1369, /* GL_POINT_SIZE_GRANULARITY */
+ 840, /* GL_LINE_SMOOTH */
+ 849, /* GL_LINE_WIDTH */
+ 851, /* GL_LINE_WIDTH_RANGE */
+ 850, /* GL_LINE_WIDTH_GRANULARITY */
+ 842, /* GL_LINE_STIPPLE */
+ 843, /* GL_LINE_STIPPLE_PATTERN */
+ 844, /* GL_LINE_STIPPLE_REPEAT */
+ 856, /* GL_LIST_MODE */
+ 1064, /* GL_MAX_LIST_NESTING */
+ 853, /* GL_LIST_BASE */
+ 855, /* GL_LIST_INDEX */
+ 1390, /* GL_POLYGON_MODE */
+ 1397, /* GL_POLYGON_SMOOTH */
+ 1399, /* GL_POLYGON_STIPPLE */
+ 518, /* GL_EDGE_FLAG */
+ 356, /* GL_CULL_FACE */
+ 357, /* GL_CULL_FACE_MODE */
+ 671, /* GL_FRONT_FACE */
+ 820, /* GL_LIGHTING */
+ 825, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ 826, /* GL_LIGHT_MODEL_TWO_SIDE */
+ 822, /* GL_LIGHT_MODEL_AMBIENT */
+ 1763, /* GL_SHADE_MODEL */
235, /* GL_COLOR_MATERIAL_FACE */
236, /* GL_COLOR_MATERIAL_PARAMETER */
234, /* GL_COLOR_MATERIAL */
- 571, /* GL_FOG */
- 593, /* GL_FOG_INDEX */
- 589, /* GL_FOG_DENSITY */
- 597, /* GL_FOG_START */
- 591, /* GL_FOG_END */
- 594, /* GL_FOG_MODE */
- 573, /* GL_FOG_COLOR */
- 428, /* GL_DEPTH_RANGE */
- 437, /* GL_DEPTH_TEST */
- 440, /* GL_DEPTH_WRITEMASK */
- 413, /* GL_DEPTH_CLEAR_VALUE */
- 427, /* GL_DEPTH_FUNC */
+ 572, /* GL_FOG */
+ 594, /* GL_FOG_INDEX */
+ 590, /* GL_FOG_DENSITY */
+ 598, /* GL_FOG_START */
+ 592, /* GL_FOG_END */
+ 595, /* GL_FOG_MODE */
+ 574, /* GL_FOG_COLOR */
+ 429, /* GL_DEPTH_RANGE */
+ 438, /* GL_DEPTH_TEST */
+ 441, /* GL_DEPTH_WRITEMASK */
+ 414, /* GL_DEPTH_CLEAR_VALUE */
+ 428, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1860, /* GL_STENCIL_TEST */
- 1841, /* GL_STENCIL_CLEAR_VALUE */
- 1843, /* GL_STENCIL_FUNC */
- 1862, /* GL_STENCIL_VALUE_MASK */
- 1842, /* GL_STENCIL_FAIL */
- 1857, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1858, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1859, /* GL_STENCIL_REF */
- 1863, /* GL_STENCIL_WRITEMASK */
- 1010, /* GL_MATRIX_MODE */
- 1227, /* GL_NORMALIZE */
- 2278, /* GL_VIEWPORT */
- 1200, /* GL_MODELVIEW_STACK_DEPTH */
- 1486, /* GL_PROJECTION_STACK_DEPTH */
- 2100, /* GL_TEXTURE_STACK_DEPTH */
- 1197, /* GL_MODELVIEW_MATRIX */
- 1484, /* GL_PROJECTION_MATRIX */
- 2080, /* GL_TEXTURE_MATRIX */
+ 1866, /* GL_STENCIL_TEST */
+ 1847, /* GL_STENCIL_CLEAR_VALUE */
+ 1849, /* GL_STENCIL_FUNC */
+ 1868, /* GL_STENCIL_VALUE_MASK */
+ 1848, /* GL_STENCIL_FAIL */
+ 1863, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ 1864, /* GL_STENCIL_PASS_DEPTH_PASS */
+ 1865, /* GL_STENCIL_REF */
+ 1869, /* GL_STENCIL_WRITEMASK */
+ 1014, /* GL_MATRIX_MODE */
+ 1231, /* GL_NORMALIZE */
+ 2285, /* GL_VIEWPORT */
+ 1204, /* GL_MODELVIEW_STACK_DEPTH */
+ 1491, /* GL_PROJECTION_STACK_DEPTH */
+ 2106, /* GL_TEXTURE_STACK_DEPTH */
+ 1201, /* GL_MODELVIEW_MATRIX */
+ 1489, /* GL_PROJECTION_MATRIX */
+ 2086, /* GL_TEXTURE_MATRIX */
69, /* GL_ATTRIB_STACK_DEPTH */
169, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
51, /* GL_ALPHA_TEST */
52, /* GL_ALPHA_TEST_FUNC */
53, /* GL_ALPHA_TEST_REF */
- 442, /* GL_DITHER */
+ 443, /* GL_DITHER */
91, /* GL_BLEND_DST */
105, /* GL_BLEND_SRC */
88, /* GL_BLEND */
- 856, /* GL_LOGIC_OP_MODE */
- 743, /* GL_INDEX_LOGIC_OP */
+ 859, /* GL_LOGIC_OP_MODE */
+ 745, /* GL_INDEX_LOGIC_OP */
233, /* GL_COLOR_LOGIC_OP */
75, /* GL_AUX_BUFFERS */
- 453, /* GL_DRAW_BUFFER */
- 1539, /* GL_READ_BUFFER */
- 1734, /* GL_SCISSOR_BOX */
- 1735, /* GL_SCISSOR_TEST */
- 742, /* GL_INDEX_CLEAR_VALUE */
- 747, /* GL_INDEX_WRITEMASK */
+ 454, /* GL_DRAW_BUFFER */
+ 1544, /* GL_READ_BUFFER */
+ 1740, /* GL_SCISSOR_BOX */
+ 1741, /* GL_SCISSOR_TEST */
+ 744, /* GL_INDEX_CLEAR_VALUE */
+ 749, /* GL_INDEX_WRITEMASK */
230, /* GL_COLOR_CLEAR_VALUE */
272, /* GL_COLOR_WRITEMASK */
- 744, /* GL_INDEX_MODE */
- 1680, /* GL_RGBA_MODE */
- 452, /* GL_DOUBLEBUFFER */
- 1864, /* GL_STEREO */
- 1593, /* GL_RENDER_MODE */
- 1317, /* GL_PERSPECTIVE_CORRECTION_HINT */
- 1375, /* GL_POINT_SMOOTH_HINT */
- 838, /* GL_LINE_SMOOTH_HINT */
- 1393, /* GL_POLYGON_SMOOTH_HINT */
- 592, /* GL_FOG_HINT */
- 2060, /* GL_TEXTURE_GEN_S */
- 2062, /* GL_TEXTURE_GEN_T */
- 2059, /* GL_TEXTURE_GEN_R */
- 2058, /* GL_TEXTURE_GEN_Q */
- 1330, /* GL_PIXEL_MAP_I_TO_I */
- 1336, /* GL_PIXEL_MAP_S_TO_S */
- 1332, /* GL_PIXEL_MAP_I_TO_R */
- 1328, /* GL_PIXEL_MAP_I_TO_G */
- 1326, /* GL_PIXEL_MAP_I_TO_B */
- 1324, /* GL_PIXEL_MAP_I_TO_A */
- 1334, /* GL_PIXEL_MAP_R_TO_R */
- 1322, /* GL_PIXEL_MAP_G_TO_G */
- 1320, /* GL_PIXEL_MAP_B_TO_B */
- 1318, /* GL_PIXEL_MAP_A_TO_A */
- 1331, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- 1337, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- 1333, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- 1329, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- 1327, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- 1325, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- 1335, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- 1323, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- 1321, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- 1319, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 2163, /* GL_UNPACK_SWAP_BYTES */
- 2158, /* GL_UNPACK_LSB_FIRST */
- 2159, /* GL_UNPACK_ROW_LENGTH */
- 2162, /* GL_UNPACK_SKIP_ROWS */
- 2161, /* GL_UNPACK_SKIP_PIXELS */
- 2156, /* GL_UNPACK_ALIGNMENT */
- 1305, /* GL_PACK_SWAP_BYTES */
- 1300, /* GL_PACK_LSB_FIRST */
- 1301, /* GL_PACK_ROW_LENGTH */
- 1304, /* GL_PACK_SKIP_ROWS */
- 1303, /* GL_PACK_SKIP_PIXELS */
- 1297, /* GL_PACK_ALIGNMENT */
- 951, /* GL_MAP_COLOR */
- 956, /* GL_MAP_STENCIL */
- 746, /* GL_INDEX_SHIFT */
- 745, /* GL_INDEX_OFFSET */
- 1555, /* GL_RED_SCALE */
- 1551, /* GL_RED_BIAS */
- 2304, /* GL_ZOOM_X */
- 2305, /* GL_ZOOM_Y */
- 701, /* GL_GREEN_SCALE */
- 697, /* GL_GREEN_BIAS */
+ 746, /* GL_INDEX_MODE */
+ 1686, /* GL_RGBA_MODE */
+ 453, /* GL_DOUBLEBUFFER */
+ 1870, /* GL_STEREO */
+ 1598, /* GL_RENDER_MODE */
+ 1322, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ 1380, /* GL_POINT_SMOOTH_HINT */
+ 841, /* GL_LINE_SMOOTH_HINT */
+ 1398, /* GL_POLYGON_SMOOTH_HINT */
+ 593, /* GL_FOG_HINT */
+ 2066, /* GL_TEXTURE_GEN_S */
+ 2068, /* GL_TEXTURE_GEN_T */
+ 2065, /* GL_TEXTURE_GEN_R */
+ 2064, /* GL_TEXTURE_GEN_Q */
+ 1335, /* GL_PIXEL_MAP_I_TO_I */
+ 1341, /* GL_PIXEL_MAP_S_TO_S */
+ 1337, /* GL_PIXEL_MAP_I_TO_R */
+ 1333, /* GL_PIXEL_MAP_I_TO_G */
+ 1331, /* GL_PIXEL_MAP_I_TO_B */
+ 1329, /* GL_PIXEL_MAP_I_TO_A */
+ 1339, /* GL_PIXEL_MAP_R_TO_R */
+ 1327, /* GL_PIXEL_MAP_G_TO_G */
+ 1325, /* GL_PIXEL_MAP_B_TO_B */
+ 1323, /* GL_PIXEL_MAP_A_TO_A */
+ 1336, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ 1342, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ 1338, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ 1334, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ 1332, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ 1330, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ 1340, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ 1328, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ 1326, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ 1324, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ 2170, /* GL_UNPACK_SWAP_BYTES */
+ 2165, /* GL_UNPACK_LSB_FIRST */
+ 2166, /* GL_UNPACK_ROW_LENGTH */
+ 2169, /* GL_UNPACK_SKIP_ROWS */
+ 2168, /* GL_UNPACK_SKIP_PIXELS */
+ 2163, /* GL_UNPACK_ALIGNMENT */
+ 1310, /* GL_PACK_SWAP_BYTES */
+ 1305, /* GL_PACK_LSB_FIRST */
+ 1306, /* GL_PACK_ROW_LENGTH */
+ 1309, /* GL_PACK_SKIP_ROWS */
+ 1308, /* GL_PACK_SKIP_PIXELS */
+ 1302, /* GL_PACK_ALIGNMENT */
+ 955, /* GL_MAP_COLOR */
+ 960, /* GL_MAP_STENCIL */
+ 748, /* GL_INDEX_SHIFT */
+ 747, /* GL_INDEX_OFFSET */
+ 1560, /* GL_RED_SCALE */
+ 1556, /* GL_RED_BIAS */
+ 2311, /* GL_ZOOM_X */
+ 2312, /* GL_ZOOM_Y */
+ 702, /* GL_GREEN_SCALE */
+ 698, /* GL_GREEN_BIAS */
115, /* GL_BLUE_SCALE */
111, /* GL_BLUE_BIAS */
50, /* GL_ALPHA_SCALE */
47, /* GL_ALPHA_BIAS */
- 429, /* GL_DEPTH_SCALE */
- 405, /* GL_DEPTH_BIAS */
- 1042, /* GL_MAX_EVAL_ORDER */
- 1059, /* GL_MAX_LIGHTS */
- 1022, /* GL_MAX_CLIP_DISTANCES */
- 1115, /* GL_MAX_TEXTURE_SIZE */
- 1066, /* GL_MAX_PIXEL_MAP_TABLE */
- 1018, /* GL_MAX_ATTRIB_STACK_DEPTH */
- 1062, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- 1063, /* GL_MAX_NAME_STACK_DEPTH */
- 1094, /* GL_MAX_PROJECTION_STACK_DEPTH */
- 1116, /* GL_MAX_TEXTURE_STACK_DEPTH */
- 1142, /* GL_MAX_VIEWPORT_DIMS */
- 1019, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1874, /* GL_SUBPIXEL_BITS */
- 741, /* GL_INDEX_BITS */
- 1552, /* GL_RED_BITS */
- 698, /* GL_GREEN_BITS */
+ 430, /* GL_DEPTH_SCALE */
+ 406, /* GL_DEPTH_BIAS */
+ 1046, /* GL_MAX_EVAL_ORDER */
+ 1063, /* GL_MAX_LIGHTS */
+ 1026, /* GL_MAX_CLIP_DISTANCES */
+ 1119, /* GL_MAX_TEXTURE_SIZE */
+ 1070, /* GL_MAX_PIXEL_MAP_TABLE */
+ 1022, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ 1066, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ 1067, /* GL_MAX_NAME_STACK_DEPTH */
+ 1098, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ 1120, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ 1146, /* GL_MAX_VIEWPORT_DIMS */
+ 1023, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ 1880, /* GL_SUBPIXEL_BITS */
+ 743, /* GL_INDEX_BITS */
+ 1557, /* GL_RED_BITS */
+ 699, /* GL_GREEN_BITS */
112, /* GL_BLUE_BITS */
48, /* GL_ALPHA_BITS */
- 406, /* GL_DEPTH_BITS */
- 1838, /* GL_STENCIL_BITS */
+ 407, /* GL_DEPTH_BITS */
+ 1844, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
9, /* GL_ACCUM_ALPHA_BITS */
- 1214, /* GL_NAME_STACK_DEPTH */
+ 1218, /* GL_NAME_STACK_DEPTH */
70, /* GL_AUTO_NORMAL */
- 897, /* GL_MAP1_COLOR_4 */
- 900, /* GL_MAP1_INDEX */
- 901, /* GL_MAP1_NORMAL */
- 902, /* GL_MAP1_TEXTURE_COORD_1 */
- 903, /* GL_MAP1_TEXTURE_COORD_2 */
- 904, /* GL_MAP1_TEXTURE_COORD_3 */
- 905, /* GL_MAP1_TEXTURE_COORD_4 */
- 906, /* GL_MAP1_VERTEX_3 */
- 907, /* GL_MAP1_VERTEX_4 */
- 924, /* GL_MAP2_COLOR_4 */
- 927, /* GL_MAP2_INDEX */
- 928, /* GL_MAP2_NORMAL */
- 929, /* GL_MAP2_TEXTURE_COORD_1 */
- 930, /* GL_MAP2_TEXTURE_COORD_2 */
- 931, /* GL_MAP2_TEXTURE_COORD_3 */
- 932, /* GL_MAP2_TEXTURE_COORD_4 */
- 933, /* GL_MAP2_VERTEX_3 */
- 934, /* GL_MAP2_VERTEX_4 */
- 898, /* GL_MAP1_GRID_DOMAIN */
- 899, /* GL_MAP1_GRID_SEGMENTS */
- 925, /* GL_MAP2_GRID_DOMAIN */
- 926, /* GL_MAP2_GRID_SEGMENTS */
- 1957, /* GL_TEXTURE_1D */
- 1960, /* GL_TEXTURE_2D */
- 541, /* GL_FEEDBACK_BUFFER_POINTER */
- 542, /* GL_FEEDBACK_BUFFER_SIZE */
- 543, /* GL_FEEDBACK_BUFFER_TYPE */
- 1744, /* GL_SELECTION_BUFFER_POINTER */
- 1745, /* GL_SELECTION_BUFFER_SIZE */
- 2106, /* GL_TEXTURE_WIDTH */
- 2066, /* GL_TEXTURE_HEIGHT */
- 2010, /* GL_TEXTURE_COMPONENTS */
- 1988, /* GL_TEXTURE_BORDER_COLOR */
- 1987, /* GL_TEXTURE_BORDER */
- 444, /* GL_DONT_CARE */
- 539, /* GL_FASTEST */
- 1222, /* GL_NICEST */
+ 901, /* GL_MAP1_COLOR_4 */
+ 904, /* GL_MAP1_INDEX */
+ 905, /* GL_MAP1_NORMAL */
+ 906, /* GL_MAP1_TEXTURE_COORD_1 */
+ 907, /* GL_MAP1_TEXTURE_COORD_2 */
+ 908, /* GL_MAP1_TEXTURE_COORD_3 */
+ 909, /* GL_MAP1_TEXTURE_COORD_4 */
+ 910, /* GL_MAP1_VERTEX_3 */
+ 911, /* GL_MAP1_VERTEX_4 */
+ 928, /* GL_MAP2_COLOR_4 */
+ 931, /* GL_MAP2_INDEX */
+ 932, /* GL_MAP2_NORMAL */
+ 933, /* GL_MAP2_TEXTURE_COORD_1 */
+ 934, /* GL_MAP2_TEXTURE_COORD_2 */
+ 935, /* GL_MAP2_TEXTURE_COORD_3 */
+ 936, /* GL_MAP2_TEXTURE_COORD_4 */
+ 937, /* GL_MAP2_VERTEX_3 */
+ 938, /* GL_MAP2_VERTEX_4 */
+ 902, /* GL_MAP1_GRID_DOMAIN */
+ 903, /* GL_MAP1_GRID_SEGMENTS */
+ 929, /* GL_MAP2_GRID_DOMAIN */
+ 930, /* GL_MAP2_GRID_SEGMENTS */
+ 1963, /* GL_TEXTURE_1D */
+ 1966, /* GL_TEXTURE_2D */
+ 542, /* GL_FEEDBACK_BUFFER_POINTER */
+ 543, /* GL_FEEDBACK_BUFFER_SIZE */
+ 544, /* GL_FEEDBACK_BUFFER_TYPE */
+ 1750, /* GL_SELECTION_BUFFER_POINTER */
+ 1751, /* GL_SELECTION_BUFFER_SIZE */
+ 2112, /* GL_TEXTURE_WIDTH */
+ 2072, /* GL_TEXTURE_HEIGHT */
+ 2016, /* GL_TEXTURE_COMPONENTS */
+ 1994, /* GL_TEXTURE_BORDER_COLOR */
+ 1993, /* GL_TEXTURE_BORDER */
+ 445, /* GL_DONT_CARE */
+ 540, /* GL_FASTEST */
+ 1226, /* GL_NICEST */
56, /* GL_AMBIENT */
- 441, /* GL_DIFFUSE */
- 1797, /* GL_SPECULAR */
- 1397, /* GL_POSITION */
- 1800, /* GL_SPOT_DIRECTION */
- 1801, /* GL_SPOT_EXPONENT */
- 1799, /* GL_SPOT_CUTOFF */
+ 442, /* GL_DIFFUSE */
+ 1803, /* GL_SPECULAR */
+ 1402, /* GL_POSITION */
+ 1806, /* GL_SPOT_DIRECTION */
+ 1807, /* GL_SPOT_EXPONENT */
+ 1805, /* GL_SPOT_CUTOFF */
320, /* GL_CONSTANT_ATTENUATION */
- 826, /* GL_LINEAR_ATTENUATION */
- 1511, /* GL_QUADRATIC_ATTENUATION */
+ 829, /* GL_LINEAR_ATTENUATION */
+ 1516, /* GL_QUADRATIC_ATTENUATION */
287, /* GL_COMPILE */
288, /* GL_COMPILE_AND_EXECUTE */
149, /* GL_BYTE */
- 2165, /* GL_UNSIGNED_BYTE */
- 1762, /* GL_SHORT */
- 2204, /* GL_UNSIGNED_SHORT */
- 749, /* GL_INT */
- 2168, /* GL_UNSIGNED_INT */
- 552, /* GL_FLOAT */
+ 2172, /* GL_UNSIGNED_BYTE */
+ 1768, /* GL_SHORT */
+ 2211, /* GL_UNSIGNED_SHORT */
+ 752, /* GL_INT */
+ 2175, /* GL_UNSIGNED_INT */
+ 553, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
7, /* GL_4_BYTES */
- 451, /* GL_DOUBLE */
- 702, /* GL_HALF_FLOAT */
- 547, /* GL_FIXED */
+ 452, /* GL_DOUBLE */
+ 704, /* GL_HALF_FLOAT */
+ 548, /* GL_FIXED */
165, /* GL_CLEAR */
58, /* GL_AND */
60, /* GL_AND_REVERSE */
- 350, /* GL_COPY */
+ 351, /* GL_COPY */
59, /* GL_AND_INVERTED */
- 1225, /* GL_NOOP */
- 2300, /* GL_XOR */
- 1292, /* GL_OR */
- 1226, /* GL_NOR */
- 529, /* GL_EQUIV */
- 802, /* GL_INVERT */
- 1295, /* GL_OR_REVERSE */
- 351, /* GL_COPY_INVERTED */
- 1294, /* GL_OR_INVERTED */
- 1215, /* GL_NAND */
- 1751, /* GL_SET */
- 526, /* GL_EMISSION */
- 1761, /* GL_SHININESS */
+ 1229, /* GL_NOOP */
+ 2307, /* GL_XOR */
+ 1297, /* GL_OR */
+ 1230, /* GL_NOR */
+ 530, /* GL_EQUIV */
+ 805, /* GL_INVERT */
+ 1300, /* GL_OR_REVERSE */
+ 352, /* GL_COPY_INVERTED */
+ 1299, /* GL_OR_INVERTED */
+ 1219, /* GL_NAND */
+ 1757, /* GL_SET */
+ 527, /* GL_EMISSION */
+ 1767, /* GL_SHININESS */
57, /* GL_AMBIENT_AND_DIFFUSE */
232, /* GL_COLOR_INDEXES */
- 1164, /* GL_MODELVIEW */
- 1483, /* GL_PROJECTION */
- 1892, /* GL_TEXTURE */
+ 1168, /* GL_MODELVIEW */
+ 1488, /* GL_PROJECTION */
+ 1898, /* GL_TEXTURE */
188, /* GL_COLOR */
- 398, /* GL_DEPTH */
- 1823, /* GL_STENCIL */
+ 399, /* GL_DEPTH */
+ 1829, /* GL_STENCIL */
231, /* GL_COLOR_INDEX */
- 1844, /* GL_STENCIL_INDEX */
- 414, /* GL_DEPTH_COMPONENT */
- 1548, /* GL_RED */
- 696, /* GL_GREEN */
+ 1850, /* GL_STENCIL_INDEX */
+ 415, /* GL_DEPTH_COMPONENT */
+ 1553, /* GL_RED */
+ 697, /* GL_GREEN */
110, /* GL_BLUE */
32, /* GL_ALPHA */
- 1604, /* GL_RGB */
- 1644, /* GL_RGBA */
- 860, /* GL_LUMINANCE */
- 887, /* GL_LUMINANCE_ALPHA */
+ 1610, /* GL_RGB */
+ 1650, /* GL_RGBA */
+ 864, /* GL_LUMINANCE */
+ 891, /* GL_LUMINANCE_ALPHA */
86, /* GL_BITMAP */
- 1347, /* GL_POINT */
- 824, /* GL_LINE */
- 544, /* GL_FILL */
- 1562, /* GL_RENDER */
- 540, /* GL_FEEDBACK */
- 1743, /* GL_SELECT */
- 551, /* GL_FLAT */
- 1772, /* GL_SMOOTH */
- 803, /* GL_KEEP */
- 1595, /* GL_REPLACE */
- 731, /* GL_INCR */
- 394, /* GL_DECR */
- 2221, /* GL_VENDOR */
- 1592, /* GL_RENDERER */
- 2222, /* GL_VERSION */
- 533, /* GL_EXTENSIONS */
- 1692, /* GL_S */
- 1883, /* GL_T */
- 1531, /* GL_R */
- 1510, /* GL_Q */
- 1201, /* GL_MODULATE */
- 393, /* GL_DECAL */
- 2053, /* GL_TEXTURE_ENV_MODE */
- 2052, /* GL_TEXTURE_ENV_COLOR */
- 2051, /* GL_TEXTURE_ENV */
- 534, /* GL_EYE_LINEAR */
- 1253, /* GL_OBJECT_LINEAR */
- 1798, /* GL_SPHERE_MAP */
- 2056, /* GL_TEXTURE_GEN_MODE */
- 1255, /* GL_OBJECT_PLANE */
- 535, /* GL_EYE_PLANE */
- 1216, /* GL_NEAREST */
- 825, /* GL_LINEAR */
- 1220, /* GL_NEAREST_MIPMAP_NEAREST */
- 830, /* GL_LINEAR_MIPMAP_NEAREST */
- 1219, /* GL_NEAREST_MIPMAP_LINEAR */
- 829, /* GL_LINEAR_MIPMAP_LINEAR */
- 2079, /* GL_TEXTURE_MAG_FILTER */
- 2088, /* GL_TEXTURE_MIN_FILTER */
- 2109, /* GL_TEXTURE_WRAP_S */
- 2110, /* GL_TEXTURE_WRAP_T */
+ 1352, /* GL_POINT */
+ 827, /* GL_LINE */
+ 545, /* GL_FILL */
+ 1567, /* GL_RENDER */
+ 541, /* GL_FEEDBACK */
+ 1749, /* GL_SELECT */
+ 552, /* GL_FLAT */
+ 1778, /* GL_SMOOTH */
+ 806, /* GL_KEEP */
+ 1600, /* GL_REPLACE */
+ 733, /* GL_INCR */
+ 395, /* GL_DECR */
+ 2228, /* GL_VENDOR */
+ 1597, /* GL_RENDERER */
+ 2229, /* GL_VERSION */
+ 534, /* GL_EXTENSIONS */
+ 1698, /* GL_S */
+ 1889, /* GL_T */
+ 1536, /* GL_R */
+ 1515, /* GL_Q */
+ 1205, /* GL_MODULATE */
+ 394, /* GL_DECAL */
+ 2059, /* GL_TEXTURE_ENV_MODE */
+ 2058, /* GL_TEXTURE_ENV_COLOR */
+ 2057, /* GL_TEXTURE_ENV */
+ 535, /* GL_EYE_LINEAR */
+ 1258, /* GL_OBJECT_LINEAR */
+ 1804, /* GL_SPHERE_MAP */
+ 2062, /* GL_TEXTURE_GEN_MODE */
+ 1260, /* GL_OBJECT_PLANE */
+ 536, /* GL_EYE_PLANE */
+ 1220, /* GL_NEAREST */
+ 828, /* GL_LINEAR */
+ 1224, /* GL_NEAREST_MIPMAP_NEAREST */
+ 833, /* GL_LINEAR_MIPMAP_NEAREST */
+ 1223, /* GL_NEAREST_MIPMAP_LINEAR */
+ 832, /* GL_LINEAR_MIPMAP_LINEAR */
+ 2085, /* GL_TEXTURE_MAG_FILTER */
+ 2094, /* GL_TEXTURE_MIN_FILTER */
+ 2115, /* GL_TEXTURE_WRAP_S */
+ 2116, /* GL_TEXTURE_WRAP_T */
155, /* GL_CLAMP */
- 1594, /* GL_REPEAT */
- 1391, /* GL_POLYGON_OFFSET_UNITS */
- 1390, /* GL_POLYGON_OFFSET_POINT */
- 1389, /* GL_POLYGON_OFFSET_LINE */
- 1534, /* GL_R3_G3_B2 */
- 2218, /* GL_V2F */
- 2219, /* GL_V3F */
+ 1599, /* GL_REPEAT */
+ 1396, /* GL_POLYGON_OFFSET_UNITS */
+ 1395, /* GL_POLYGON_OFFSET_POINT */
+ 1394, /* GL_POLYGON_OFFSET_LINE */
+ 1539, /* GL_R3_G3_B2 */
+ 2225, /* GL_V2F */
+ 2226, /* GL_V3F */
152, /* GL_C4UB_V2F */
153, /* GL_C4UB_V3F */
150, /* GL_C3F_V3F */
- 1213, /* GL_N3F_V3F */
+ 1217, /* GL_N3F_V3F */
151, /* GL_C4F_N3F_V3F */
- 1888, /* GL_T2F_V3F */
- 1890, /* GL_T4F_V4F */
- 1886, /* GL_T2F_C4UB_V3F */
- 1884, /* GL_T2F_C3F_V3F */
- 1887, /* GL_T2F_N3F_V3F */
- 1885, /* GL_T2F_C4F_N3F_V3F */
- 1889, /* GL_T4F_C4F_N3F_V4F */
+ 1894, /* GL_T2F_V3F */
+ 1896, /* GL_T4F_V4F */
+ 1892, /* GL_T2F_C4UB_V3F */
+ 1890, /* GL_T2F_C3F_V3F */
+ 1893, /* GL_T2F_N3F_V3F */
+ 1891, /* GL_T2F_C4F_N3F_V3F */
+ 1895, /* GL_T4F_C4F_N3F_V4F */
172, /* GL_CLIP_DISTANCE0 */
173, /* GL_CLIP_DISTANCE1 */
174, /* GL_CLIP_DISTANCE2 */
@@ -5086,184 +5100,184 @@ static const unsigned reduced_enums[1556] =
177, /* GL_CLIP_DISTANCE5 */
178, /* GL_CLIP_DISTANCE6 */
179, /* GL_CLIP_DISTANCE7 */
- 809, /* GL_LIGHT0 */
- 810, /* GL_LIGHT1 */
- 811, /* GL_LIGHT2 */
- 812, /* GL_LIGHT3 */
- 813, /* GL_LIGHT4 */
- 814, /* GL_LIGHT5 */
- 815, /* GL_LIGHT6 */
- 816, /* GL_LIGHT7 */
- 706, /* GL_HINT_BIT */
+ 812, /* GL_LIGHT0 */
+ 813, /* GL_LIGHT1 */
+ 814, /* GL_LIGHT2 */
+ 815, /* GL_LIGHT3 */
+ 816, /* GL_LIGHT4 */
+ 817, /* GL_LIGHT5 */
+ 818, /* GL_LIGHT6 */
+ 819, /* GL_LIGHT7 */
+ 708, /* GL_HINT_BIT */
322, /* GL_CONSTANT_COLOR */
- 1266, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ 1271, /* GL_ONE_MINUS_CONSTANT_COLOR */
317, /* GL_CONSTANT_ALPHA */
- 1264, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ 1269, /* GL_ONE_MINUS_CONSTANT_ALPHA */
89, /* GL_BLEND_COLOR */
- 673, /* GL_FUNC_ADD */
- 1145, /* GL_MIN */
- 1013, /* GL_MAX */
+ 674, /* GL_FUNC_ADD */
+ 1149, /* GL_MIN */
+ 1017, /* GL_MAX */
96, /* GL_BLEND_EQUATION */
- 679, /* GL_FUNC_SUBTRACT */
- 676, /* GL_FUNC_REVERSE_SUBTRACT */
- 330, /* GL_CONVOLUTION_1D */
- 331, /* GL_CONVOLUTION_2D */
- 1746, /* GL_SEPARABLE_2D */
- 334, /* GL_CONVOLUTION_BORDER_MODE */
- 338, /* GL_CONVOLUTION_FILTER_SCALE */
- 336, /* GL_CONVOLUTION_FILTER_BIAS */
- 1549, /* GL_REDUCE */
- 340, /* GL_CONVOLUTION_FORMAT */
- 344, /* GL_CONVOLUTION_WIDTH */
- 342, /* GL_CONVOLUTION_HEIGHT */
- 1032, /* GL_MAX_CONVOLUTION_WIDTH */
- 1030, /* GL_MAX_CONVOLUTION_HEIGHT */
- 1430, /* GL_POST_CONVOLUTION_RED_SCALE */
- 1426, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- 1421, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- 1417, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- 1428, /* GL_POST_CONVOLUTION_RED_BIAS */
- 1424, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- 1419, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- 1415, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- 707, /* GL_HISTOGRAM */
- 1490, /* GL_PROXY_HISTOGRAM */
- 723, /* GL_HISTOGRAM_WIDTH */
- 713, /* GL_HISTOGRAM_FORMAT */
- 719, /* GL_HISTOGRAM_RED_SIZE */
- 715, /* GL_HISTOGRAM_GREEN_SIZE */
- 710, /* GL_HISTOGRAM_BLUE_SIZE */
- 708, /* GL_HISTOGRAM_ALPHA_SIZE */
- 717, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- 721, /* GL_HISTOGRAM_SINK */
- 1146, /* GL_MINMAX */
- 1148, /* GL_MINMAX_FORMAT */
- 1150, /* GL_MINMAX_SINK */
- 1891, /* GL_TABLE_TOO_LARGE_EXT */
- 2167, /* GL_UNSIGNED_BYTE_3_3_2 */
- 2207, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 2210, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 2179, /* GL_UNSIGNED_INT_8_8_8_8 */
- 2170, /* GL_UNSIGNED_INT_10_10_10_2 */
- 1388, /* GL_POLYGON_OFFSET_FILL */
- 1387, /* GL_POLYGON_OFFSET_FACTOR */
- 1386, /* GL_POLYGON_OFFSET_BIAS */
- 1598, /* GL_RESCALE_NORMAL */
+ 680, /* GL_FUNC_SUBTRACT */
+ 677, /* GL_FUNC_REVERSE_SUBTRACT */
+ 331, /* GL_CONVOLUTION_1D */
+ 332, /* GL_CONVOLUTION_2D */
+ 1752, /* GL_SEPARABLE_2D */
+ 335, /* GL_CONVOLUTION_BORDER_MODE */
+ 339, /* GL_CONVOLUTION_FILTER_SCALE */
+ 337, /* GL_CONVOLUTION_FILTER_BIAS */
+ 1554, /* GL_REDUCE */
+ 341, /* GL_CONVOLUTION_FORMAT */
+ 345, /* GL_CONVOLUTION_WIDTH */
+ 343, /* GL_CONVOLUTION_HEIGHT */
+ 1036, /* GL_MAX_CONVOLUTION_WIDTH */
+ 1034, /* GL_MAX_CONVOLUTION_HEIGHT */
+ 1435, /* GL_POST_CONVOLUTION_RED_SCALE */
+ 1431, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ 1426, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ 1422, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ 1433, /* GL_POST_CONVOLUTION_RED_BIAS */
+ 1429, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ 1424, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ 1420, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ 709, /* GL_HISTOGRAM */
+ 1495, /* GL_PROXY_HISTOGRAM */
+ 725, /* GL_HISTOGRAM_WIDTH */
+ 715, /* GL_HISTOGRAM_FORMAT */
+ 721, /* GL_HISTOGRAM_RED_SIZE */
+ 717, /* GL_HISTOGRAM_GREEN_SIZE */
+ 712, /* GL_HISTOGRAM_BLUE_SIZE */
+ 710, /* GL_HISTOGRAM_ALPHA_SIZE */
+ 719, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ 723, /* GL_HISTOGRAM_SINK */
+ 1150, /* GL_MINMAX */
+ 1152, /* GL_MINMAX_FORMAT */
+ 1154, /* GL_MINMAX_SINK */
+ 1897, /* GL_TABLE_TOO_LARGE_EXT */
+ 2174, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 2214, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 2217, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 2186, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 2177, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1393, /* GL_POLYGON_OFFSET_FILL */
+ 1392, /* GL_POLYGON_OFFSET_FACTOR */
+ 1391, /* GL_POLYGON_OFFSET_BIAS */
+ 1603, /* GL_RESCALE_NORMAL */
41, /* GL_ALPHA4 */
43, /* GL_ALPHA8 */
33, /* GL_ALPHA12 */
35, /* GL_ALPHA16 */
- 875, /* GL_LUMINANCE4 */
- 881, /* GL_LUMINANCE8 */
- 861, /* GL_LUMINANCE12 */
- 867, /* GL_LUMINANCE16 */
- 876, /* GL_LUMINANCE4_ALPHA4 */
- 879, /* GL_LUMINANCE6_ALPHA2 */
- 884, /* GL_LUMINANCE8_ALPHA8 */
- 864, /* GL_LUMINANCE12_ALPHA4 */
- 862, /* GL_LUMINANCE12_ALPHA12 */
- 870, /* GL_LUMINANCE16_ALPHA16 */
- 750, /* GL_INTENSITY */
- 759, /* GL_INTENSITY4 */
- 761, /* GL_INTENSITY8 */
- 751, /* GL_INTENSITY12 */
- 753, /* GL_INTENSITY16 */
- 1619, /* GL_RGB2_EXT */
- 1625, /* GL_RGB4 */
- 1628, /* GL_RGB5 */
- 1635, /* GL_RGB8 */
- 1605, /* GL_RGB10 */
- 1609, /* GL_RGB12 */
- 1611, /* GL_RGB16 */
- 1655, /* GL_RGBA2 */
- 1662, /* GL_RGBA4 */
- 1631, /* GL_RGB5_A1 */
- 1667, /* GL_RGBA8 */
- 1606, /* GL_RGB10_A2 */
- 1645, /* GL_RGBA12 */
- 1647, /* GL_RGBA16 */
- 2096, /* GL_TEXTURE_RED_SIZE */
- 2064, /* GL_TEXTURE_GREEN_SIZE */
- 1985, /* GL_TEXTURE_BLUE_SIZE */
- 1965, /* GL_TEXTURE_ALPHA_SIZE */
- 2077, /* GL_TEXTURE_LUMINANCE_SIZE */
- 2068, /* GL_TEXTURE_INTENSITY_SIZE */
- 1596, /* GL_REPLACE_EXT */
- 1494, /* GL_PROXY_TEXTURE_1D */
- 1498, /* GL_PROXY_TEXTURE_2D */
- 2104, /* GL_TEXTURE_TOO_LARGE_EXT */
- 2090, /* GL_TEXTURE_PRIORITY */
- 2098, /* GL_TEXTURE_RESIDENT */
- 1968, /* GL_TEXTURE_BINDING_1D */
- 1971, /* GL_TEXTURE_BINDING_2D */
- 1974, /* GL_TEXTURE_BINDING_3D */
- 1302, /* GL_PACK_SKIP_IMAGES */
- 1298, /* GL_PACK_IMAGE_HEIGHT */
- 2160, /* GL_UNPACK_SKIP_IMAGES */
- 2157, /* GL_UNPACK_IMAGE_HEIGHT */
- 1963, /* GL_TEXTURE_3D */
- 1502, /* GL_PROXY_TEXTURE_3D */
- 2048, /* GL_TEXTURE_DEPTH */
- 2107, /* GL_TEXTURE_WRAP_R */
- 1014, /* GL_MAX_3D_TEXTURE_SIZE */
- 2223, /* GL_VERTEX_ARRAY */
- 1228, /* GL_NORMAL_ARRAY */
+ 879, /* GL_LUMINANCE4 */
+ 885, /* GL_LUMINANCE8 */
+ 865, /* GL_LUMINANCE12 */
+ 871, /* GL_LUMINANCE16 */
+ 880, /* GL_LUMINANCE4_ALPHA4 */
+ 883, /* GL_LUMINANCE6_ALPHA2 */
+ 888, /* GL_LUMINANCE8_ALPHA8 */
+ 868, /* GL_LUMINANCE12_ALPHA4 */
+ 866, /* GL_LUMINANCE12_ALPHA12 */
+ 874, /* GL_LUMINANCE16_ALPHA16 */
+ 753, /* GL_INTENSITY */
+ 762, /* GL_INTENSITY4 */
+ 764, /* GL_INTENSITY8 */
+ 754, /* GL_INTENSITY12 */
+ 756, /* GL_INTENSITY16 */
+ 1625, /* GL_RGB2_EXT */
+ 1631, /* GL_RGB4 */
+ 1634, /* GL_RGB5 */
+ 1641, /* GL_RGB8 */
+ 1611, /* GL_RGB10 */
+ 1615, /* GL_RGB12 */
+ 1617, /* GL_RGB16 */
+ 1661, /* GL_RGBA2 */
+ 1668, /* GL_RGBA4 */
+ 1637, /* GL_RGB5_A1 */
+ 1673, /* GL_RGBA8 */
+ 1612, /* GL_RGB10_A2 */
+ 1651, /* GL_RGBA12 */
+ 1653, /* GL_RGBA16 */
+ 2102, /* GL_TEXTURE_RED_SIZE */
+ 2070, /* GL_TEXTURE_GREEN_SIZE */
+ 1991, /* GL_TEXTURE_BLUE_SIZE */
+ 1971, /* GL_TEXTURE_ALPHA_SIZE */
+ 2083, /* GL_TEXTURE_LUMINANCE_SIZE */
+ 2074, /* GL_TEXTURE_INTENSITY_SIZE */
+ 1601, /* GL_REPLACE_EXT */
+ 1499, /* GL_PROXY_TEXTURE_1D */
+ 1503, /* GL_PROXY_TEXTURE_2D */
+ 2110, /* GL_TEXTURE_TOO_LARGE_EXT */
+ 2096, /* GL_TEXTURE_PRIORITY */
+ 2104, /* GL_TEXTURE_RESIDENT */
+ 1974, /* GL_TEXTURE_BINDING_1D */
+ 1977, /* GL_TEXTURE_BINDING_2D */
+ 1980, /* GL_TEXTURE_BINDING_3D */
+ 1307, /* GL_PACK_SKIP_IMAGES */
+ 1303, /* GL_PACK_IMAGE_HEIGHT */
+ 2167, /* GL_UNPACK_SKIP_IMAGES */
+ 2164, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1969, /* GL_TEXTURE_3D */
+ 1507, /* GL_PROXY_TEXTURE_3D */
+ 2054, /* GL_TEXTURE_DEPTH */
+ 2113, /* GL_TEXTURE_WRAP_R */
+ 1018, /* GL_MAX_3D_TEXTURE_SIZE */
+ 2230, /* GL_VERTEX_ARRAY */
+ 1232, /* GL_NORMAL_ARRAY */
189, /* GL_COLOR_ARRAY */
- 735, /* GL_INDEX_ARRAY */
- 2018, /* GL_TEXTURE_COORD_ARRAY */
- 518, /* GL_EDGE_FLAG_ARRAY */
- 2229, /* GL_VERTEX_ARRAY_SIZE */
- 2231, /* GL_VERTEX_ARRAY_TYPE */
- 2230, /* GL_VERTEX_ARRAY_STRIDE */
- 1233, /* GL_NORMAL_ARRAY_TYPE */
- 1232, /* GL_NORMAL_ARRAY_STRIDE */
+ 737, /* GL_INDEX_ARRAY */
+ 2024, /* GL_TEXTURE_COORD_ARRAY */
+ 519, /* GL_EDGE_FLAG_ARRAY */
+ 2236, /* GL_VERTEX_ARRAY_SIZE */
+ 2238, /* GL_VERTEX_ARRAY_TYPE */
+ 2237, /* GL_VERTEX_ARRAY_STRIDE */
+ 1237, /* GL_NORMAL_ARRAY_TYPE */
+ 1236, /* GL_NORMAL_ARRAY_STRIDE */
193, /* GL_COLOR_ARRAY_SIZE */
195, /* GL_COLOR_ARRAY_TYPE */
194, /* GL_COLOR_ARRAY_STRIDE */
- 740, /* GL_INDEX_ARRAY_TYPE */
- 739, /* GL_INDEX_ARRAY_STRIDE */
- 2022, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 2024, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 2023, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- 522, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 2228, /* GL_VERTEX_ARRAY_POINTER */
- 1231, /* GL_NORMAL_ARRAY_POINTER */
+ 742, /* GL_INDEX_ARRAY_TYPE */
+ 741, /* GL_INDEX_ARRAY_STRIDE */
+ 2028, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ 2030, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ 2029, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ 523, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ 2235, /* GL_VERTEX_ARRAY_POINTER */
+ 1235, /* GL_NORMAL_ARRAY_POINTER */
192, /* GL_COLOR_ARRAY_POINTER */
- 738, /* GL_INDEX_ARRAY_POINTER */
- 2021, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- 521, /* GL_EDGE_FLAG_ARRAY_POINTER */
- 1206, /* GL_MULTISAMPLE */
- 1720, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- 1722, /* GL_SAMPLE_ALPHA_TO_ONE */
- 1727, /* GL_SAMPLE_COVERAGE */
- 1724, /* GL_SAMPLE_BUFFERS */
- 1715, /* GL_SAMPLES */
- 1731, /* GL_SAMPLE_COVERAGE_VALUE */
- 1729, /* GL_SAMPLE_COVERAGE_INVERT */
+ 740, /* GL_INDEX_ARRAY_POINTER */
+ 2027, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 522, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ 1210, /* GL_MULTISAMPLE */
+ 1726, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ 1728, /* GL_SAMPLE_ALPHA_TO_ONE */
+ 1733, /* GL_SAMPLE_COVERAGE */
+ 1730, /* GL_SAMPLE_BUFFERS */
+ 1721, /* GL_SAMPLES */
+ 1737, /* GL_SAMPLE_COVERAGE_VALUE */
+ 1735, /* GL_SAMPLE_COVERAGE_INVERT */
237, /* GL_COLOR_MATRIX */
239, /* GL_COLOR_MATRIX_STACK_DEPTH */
- 1026, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- 1413, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- 1409, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- 1404, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- 1400, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- 1411, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- 1407, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- 1402, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- 1398, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 2001, /* GL_TEXTURE_COLOR_TABLE_SGI */
- 1503, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 2003, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 1030, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ 1418, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ 1414, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ 1409, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ 1405, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ 1416, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ 1412, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ 1407, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ 1403, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ 2007, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ 1508, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ 2009, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
94, /* GL_BLEND_DST_RGB */
108, /* GL_BLEND_SRC_RGB */
92, /* GL_BLEND_DST_ALPHA */
106, /* GL_BLEND_SRC_ALPHA */
243, /* GL_COLOR_TABLE */
- 1423, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- 1406, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- 1489, /* GL_PROXY_COLOR_TABLE */
- 1493, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- 1492, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1428, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ 1411, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1494, /* GL_PROXY_COLOR_TABLE */
+ 1498, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ 1497, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
267, /* GL_COLOR_TABLE_SCALE */
247, /* GL_COLOR_TABLE_BIAS */
252, /* GL_COLOR_TABLE_FORMAT */
@@ -5276,748 +5290,754 @@ static const unsigned reduced_enums[1556] =
258, /* GL_COLOR_TABLE_INTENSITY_SIZE */
79, /* GL_BGR */
80, /* GL_BGRA */
- 1041, /* GL_MAX_ELEMENTS_VERTICES */
- 1040, /* GL_MAX_ELEMENTS_INDICES */
- 2067, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 1045, /* GL_MAX_ELEMENTS_VERTICES */
+ 1044, /* GL_MAX_ELEMENTS_INDICES */
+ 2073, /* GL_TEXTURE_INDEX_SIZE_EXT */
186, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- 1369, /* GL_POINT_SIZE_MIN */
- 1365, /* GL_POINT_SIZE_MAX */
- 1354, /* GL_POINT_FADE_THRESHOLD_SIZE */
- 1350, /* GL_POINT_DISTANCE_ATTENUATION */
+ 1374, /* GL_POINT_SIZE_MIN */
+ 1370, /* GL_POINT_SIZE_MAX */
+ 1359, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ 1355, /* GL_POINT_DISTANCE_ATTENUATION */
159, /* GL_CLAMP_TO_BORDER */
162, /* GL_CLAMP_TO_EDGE */
- 2089, /* GL_TEXTURE_MIN_LOD */
- 2087, /* GL_TEXTURE_MAX_LOD */
- 1967, /* GL_TEXTURE_BASE_LEVEL */
- 2086, /* GL_TEXTURE_MAX_LEVEL */
- 726, /* GL_IGNORE_BORDER_HP */
+ 2095, /* GL_TEXTURE_MIN_LOD */
+ 2093, /* GL_TEXTURE_MAX_LOD */
+ 1973, /* GL_TEXTURE_BASE_LEVEL */
+ 2092, /* GL_TEXTURE_MAX_LEVEL */
+ 728, /* GL_IGNORE_BORDER_HP */
321, /* GL_CONSTANT_BORDER_HP */
- 1597, /* GL_REPLICATE_BORDER_HP */
- 332, /* GL_CONVOLUTION_BORDER_COLOR */
- 1261, /* GL_OCCLUSION_TEST_HP */
- 1262, /* GL_OCCLUSION_TEST_RESULT_HP */
- 827, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1995, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1997, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1999, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 2000, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1998, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1996, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- 1020, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- 1021, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1433, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- 1435, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- 1432, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- 1434, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 2075, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 2076, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 2074, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- 682, /* GL_GENERATE_MIPMAP */
- 683, /* GL_GENERATE_MIPMAP_HINT */
- 595, /* GL_FOG_OFFSET_SGIX */
- 596, /* GL_FOG_OFFSET_VALUE_SGIX */
- 2009, /* GL_TEXTURE_COMPARE_SGIX */
- 2008, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 2071, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 2063, /* GL_TEXTURE_GEQUAL_R_SGIX */
- 415, /* GL_DEPTH_COMPONENT16 */
- 419, /* GL_DEPTH_COMPONENT24 */
- 423, /* GL_DEPTH_COMPONENT32 */
- 357, /* GL_CULL_VERTEX_EXT */
- 359, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- 358, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 2296, /* GL_WRAP_BORDER_SUN */
- 2002, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- 820, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- 1765, /* GL_SINGLE_COLOR */
- 1749, /* GL_SEPARATE_SPECULAR_COLOR */
- 1760, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- 607, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- 608, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- 619, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- 610, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- 606, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- 605, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- 609, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- 620, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- 637, /* GL_FRAMEBUFFER_DEFAULT */
- 664, /* GL_FRAMEBUFFER_UNDEFINED */
- 431, /* GL_DEPTH_STENCIL_ATTACHMENT */
- 896, /* GL_MAJOR_VERSION */
- 1152, /* GL_MINOR_VERSION */
- 1242, /* GL_NUM_EXTENSIONS */
+ 1602, /* GL_REPLICATE_BORDER_HP */
+ 333, /* GL_CONVOLUTION_BORDER_COLOR */
+ 1266, /* GL_OCCLUSION_TEST_HP */
+ 1267, /* GL_OCCLUSION_TEST_RESULT_HP */
+ 830, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ 2001, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ 2003, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ 2005, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ 2006, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 2004, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ 2002, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ 1024, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ 1025, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1438, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ 1440, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ 1437, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ 1439, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ 2081, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ 2082, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ 2080, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ 683, /* GL_GENERATE_MIPMAP */
+ 684, /* GL_GENERATE_MIPMAP_HINT */
+ 596, /* GL_FOG_OFFSET_SGIX */
+ 597, /* GL_FOG_OFFSET_VALUE_SGIX */
+ 2015, /* GL_TEXTURE_COMPARE_SGIX */
+ 2014, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ 2077, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ 2069, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ 416, /* GL_DEPTH_COMPONENT16 */
+ 420, /* GL_DEPTH_COMPONENT24 */
+ 424, /* GL_DEPTH_COMPONENT32 */
+ 358, /* GL_CULL_VERTEX_EXT */
+ 360, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ 359, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ 2303, /* GL_WRAP_BORDER_SUN */
+ 2008, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ 823, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ 1771, /* GL_SINGLE_COLOR */
+ 1755, /* GL_SEPARATE_SPECULAR_COLOR */
+ 1766, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ 608, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ 609, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ 620, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ 611, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ 607, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ 606, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ 610, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ 621, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ 638, /* GL_FRAMEBUFFER_DEFAULT */
+ 665, /* GL_FRAMEBUFFER_UNDEFINED */
+ 432, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ 900, /* GL_MAJOR_VERSION */
+ 1156, /* GL_MINOR_VERSION */
+ 1247, /* GL_NUM_EXTENSIONS */
327, /* GL_CONTEXT_FLAGS */
- 734, /* GL_INDEX */
- 409, /* GL_DEPTH_BUFFER */
- 1839, /* GL_STENCIL_BUFFER */
+ 736, /* GL_INDEX */
+ 410, /* GL_DEPTH_BUFFER */
+ 1845, /* GL_STENCIL_BUFFER */
298, /* GL_COMPRESSED_RED */
299, /* GL_COMPRESSED_RG */
- 2166, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 2211, /* GL_UNSIGNED_SHORT_5_6_5 */
- 2212, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 2208, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 2205, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 2180, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 2176, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 2084, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 2085, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 2083, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- 1156, /* GL_MIRRORED_REPEAT */
- 1685, /* GL_RGB_S3TC */
- 1627, /* GL_RGB4_S3TC */
- 1681, /* GL_RGBA_S3TC */
- 1666, /* GL_RGBA4_S3TC */
- 1675, /* GL_RGBA_DXT5_S3TC */
- 1663, /* GL_RGBA4_DXT5_S3TC */
+ 860, /* GL_LOSE_CONTEXT_ON_RESET_ARB */
+ 703, /* GL_GUILTY_CONTEXT_RESET_ARB */
+ 751, /* GL_INNOCENT_CONTEXT_RESET_ARB */
+ 2162, /* GL_UNKNOWN_CONTEXT_RESET_ARB */
+ 1605, /* GL_RESET_NOTIFICATION_STRATEGY_ARB */
+ 1244, /* GL_NO_RESET_NOTIFICATION_ARB */
+ 2173, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 2218, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 2219, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 2215, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 2212, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 2187, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 2183, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 2090, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ 2091, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ 2089, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ 1160, /* GL_MIRRORED_REPEAT */
+ 1691, /* GL_RGB_S3TC */
+ 1633, /* GL_RGB4_S3TC */
+ 1687, /* GL_RGBA_S3TC */
+ 1672, /* GL_RGBA4_S3TC */
+ 1681, /* GL_RGBA_DXT5_S3TC */
+ 1669, /* GL_RGBA4_DXT5_S3TC */
309, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
304, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
305, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
306, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- 1218, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- 1217, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- 828, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- 582, /* GL_FOG_COORDINATE_SOURCE */
- 574, /* GL_FOG_COORD */
- 598, /* GL_FRAGMENT_DEPTH */
- 363, /* GL_CURRENT_FOG_COORD */
- 581, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- 580, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- 579, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- 576, /* GL_FOG_COORDINATE_ARRAY */
+ 1222, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ 1221, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ 831, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ 583, /* GL_FOG_COORDINATE_SOURCE */
+ 575, /* GL_FOG_COORD */
+ 599, /* GL_FRAGMENT_DEPTH */
+ 364, /* GL_CURRENT_FOG_COORD */
+ 582, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ 581, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ 580, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ 577, /* GL_FOG_COORDINATE_ARRAY */
241, /* GL_COLOR_SUM */
- 384, /* GL_CURRENT_SECONDARY_COLOR */
- 1740, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- 1742, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- 1741, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- 1739, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- 1736, /* GL_SECONDARY_COLOR_ARRAY */
- 382, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ 385, /* GL_CURRENT_SECONDARY_COLOR */
+ 1746, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ 1748, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ 1747, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ 1745, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ 1742, /* GL_SECONDARY_COLOR_ARRAY */
+ 383, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
29, /* GL_ALIASED_POINT_SIZE_RANGE */
28, /* GL_ALIASED_LINE_WIDTH_RANGE */
- 1893, /* GL_TEXTURE0 */
- 1895, /* GL_TEXTURE1 */
- 1917, /* GL_TEXTURE2 */
- 1939, /* GL_TEXTURE3 */
- 1945, /* GL_TEXTURE4 */
- 1947, /* GL_TEXTURE5 */
- 1949, /* GL_TEXTURE6 */
- 1951, /* GL_TEXTURE7 */
- 1953, /* GL_TEXTURE8 */
- 1955, /* GL_TEXTURE9 */
- 1896, /* GL_TEXTURE10 */
- 1898, /* GL_TEXTURE11 */
- 1900, /* GL_TEXTURE12 */
- 1902, /* GL_TEXTURE13 */
- 1904, /* GL_TEXTURE14 */
- 1906, /* GL_TEXTURE15 */
- 1908, /* GL_TEXTURE16 */
- 1910, /* GL_TEXTURE17 */
- 1912, /* GL_TEXTURE18 */
- 1914, /* GL_TEXTURE19 */
- 1918, /* GL_TEXTURE20 */
- 1920, /* GL_TEXTURE21 */
- 1922, /* GL_TEXTURE22 */
- 1924, /* GL_TEXTURE23 */
- 1926, /* GL_TEXTURE24 */
- 1928, /* GL_TEXTURE25 */
- 1930, /* GL_TEXTURE26 */
- 1932, /* GL_TEXTURE27 */
- 1934, /* GL_TEXTURE28 */
- 1936, /* GL_TEXTURE29 */
- 1940, /* GL_TEXTURE30 */
- 1942, /* GL_TEXTURE31 */
+ 1899, /* GL_TEXTURE0 */
+ 1901, /* GL_TEXTURE1 */
+ 1923, /* GL_TEXTURE2 */
+ 1945, /* GL_TEXTURE3 */
+ 1951, /* GL_TEXTURE4 */
+ 1953, /* GL_TEXTURE5 */
+ 1955, /* GL_TEXTURE6 */
+ 1957, /* GL_TEXTURE7 */
+ 1959, /* GL_TEXTURE8 */
+ 1961, /* GL_TEXTURE9 */
+ 1902, /* GL_TEXTURE10 */
+ 1904, /* GL_TEXTURE11 */
+ 1906, /* GL_TEXTURE12 */
+ 1908, /* GL_TEXTURE13 */
+ 1910, /* GL_TEXTURE14 */
+ 1912, /* GL_TEXTURE15 */
+ 1914, /* GL_TEXTURE16 */
+ 1916, /* GL_TEXTURE17 */
+ 1918, /* GL_TEXTURE18 */
+ 1920, /* GL_TEXTURE19 */
+ 1924, /* GL_TEXTURE20 */
+ 1926, /* GL_TEXTURE21 */
+ 1928, /* GL_TEXTURE22 */
+ 1930, /* GL_TEXTURE23 */
+ 1932, /* GL_TEXTURE24 */
+ 1934, /* GL_TEXTURE25 */
+ 1936, /* GL_TEXTURE26 */
+ 1938, /* GL_TEXTURE27 */
+ 1940, /* GL_TEXTURE28 */
+ 1942, /* GL_TEXTURE29 */
+ 1946, /* GL_TEXTURE30 */
+ 1948, /* GL_TEXTURE31 */
19, /* GL_ACTIVE_TEXTURE */
166, /* GL_CLIENT_ACTIVE_TEXTURE */
- 1117, /* GL_MAX_TEXTURE_UNITS */
- 2139, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 2142, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 2144, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 2136, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1875, /* GL_SUBTRACT */
- 1098, /* GL_MAX_RENDERBUFFER_SIZE */
+ 1121, /* GL_MAX_TEXTURE_UNITS */
+ 2145, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 2148, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 2150, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 2142, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1881, /* GL_SUBTRACT */
+ 1102, /* GL_MAX_RENDERBUFFER_SIZE */
290, /* GL_COMPRESSED_ALPHA */
294, /* GL_COMPRESSED_LUMINANCE */
295, /* GL_COMPRESSED_LUMINANCE_ALPHA */
292, /* GL_COMPRESSED_INTENSITY */
300, /* GL_COMPRESSED_RGB */
301, /* GL_COMPRESSED_RGBA */
- 2016, /* GL_TEXTURE_COMPRESSION_HINT */
- 2093, /* GL_TEXTURE_RECTANGLE */
- 1981, /* GL_TEXTURE_BINDING_RECTANGLE */
- 1506, /* GL_PROXY_TEXTURE_RECTANGLE */
- 1095, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */
- 430, /* GL_DEPTH_STENCIL */
- 2172, /* GL_UNSIGNED_INT_24_8 */
- 1112, /* GL_MAX_TEXTURE_LOD_BIAS */
- 2082, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- 1114, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 2054, /* GL_TEXTURE_FILTER_CONTROL */
- 2072, /* GL_TEXTURE_LOD_BIAS */
+ 2022, /* GL_TEXTURE_COMPRESSION_HINT */
+ 2099, /* GL_TEXTURE_RECTANGLE */
+ 1987, /* GL_TEXTURE_BINDING_RECTANGLE */
+ 1511, /* GL_PROXY_TEXTURE_RECTANGLE */
+ 1099, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */
+ 431, /* GL_DEPTH_STENCIL */
+ 2179, /* GL_UNSIGNED_INT_24_8 */
+ 1116, /* GL_MAX_TEXTURE_LOD_BIAS */
+ 2088, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ 1118, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ 2060, /* GL_TEXTURE_FILTER_CONTROL */
+ 2078, /* GL_TEXTURE_LOD_BIAS */
274, /* GL_COMBINE4 */
- 1104, /* GL_MAX_SHININESS_NV */
- 1105, /* GL_MAX_SPOT_EXPONENT_NV */
- 732, /* GL_INCR_WRAP */
- 395, /* GL_DECR_WRAP */
- 1176, /* GL_MODELVIEW1_ARB */
- 1234, /* GL_NORMAL_MAP */
- 1557, /* GL_REFLECTION_MAP */
- 2026, /* GL_TEXTURE_CUBE_MAP */
- 1978, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 2038, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 2028, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 2041, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 2031, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 2044, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 2034, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- 1504, /* GL_PROXY_TEXTURE_CUBE_MAP */
- 1034, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- 1212, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- 1447, /* GL_PRIMITIVE_RESTART_NV */
- 1446, /* GL_PRIMITIVE_RESTART_INDEX_NV */
- 590, /* GL_FOG_DISTANCE_MODE_NV */
- 537, /* GL_EYE_RADIAL_NV */
- 536, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ 1108, /* GL_MAX_SHININESS_NV */
+ 1109, /* GL_MAX_SPOT_EXPONENT_NV */
+ 734, /* GL_INCR_WRAP */
+ 396, /* GL_DECR_WRAP */
+ 1180, /* GL_MODELVIEW1_ARB */
+ 1238, /* GL_NORMAL_MAP */
+ 1562, /* GL_REFLECTION_MAP */
+ 2032, /* GL_TEXTURE_CUBE_MAP */
+ 1984, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ 2044, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ 2034, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ 2047, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ 2037, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ 2050, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ 2040, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ 1509, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ 1038, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ 1216, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ 1452, /* GL_PRIMITIVE_RESTART_NV */
+ 1451, /* GL_PRIMITIVE_RESTART_INDEX_NV */
+ 591, /* GL_FOG_DISTANCE_MODE_NV */
+ 538, /* GL_EYE_RADIAL_NV */
+ 537, /* GL_EYE_PLANE_ABSOLUTE_NV */
273, /* GL_COMBINE */
280, /* GL_COMBINE_RGB */
275, /* GL_COMBINE_ALPHA */
- 1686, /* GL_RGB_SCALE */
+ 1692, /* GL_RGB_SCALE */
25, /* GL_ADD_SIGNED */
- 768, /* GL_INTERPOLATE */
+ 771, /* GL_INTERPOLATE */
316, /* GL_CONSTANT */
- 1439, /* GL_PRIMARY_COLOR */
- 1436, /* GL_PREVIOUS */
- 1780, /* GL_SOURCE0_RGB */
- 1786, /* GL_SOURCE1_RGB */
- 1792, /* GL_SOURCE2_RGB */
- 1796, /* GL_SOURCE3_RGB_NV */
- 1777, /* GL_SOURCE0_ALPHA */
- 1783, /* GL_SOURCE1_ALPHA */
- 1789, /* GL_SOURCE2_ALPHA */
- 1795, /* GL_SOURCE3_ALPHA_NV */
- 1275, /* GL_OPERAND0_RGB */
- 1281, /* GL_OPERAND1_RGB */
- 1287, /* GL_OPERAND2_RGB */
- 1291, /* GL_OPERAND3_RGB_NV */
- 1272, /* GL_OPERAND0_ALPHA */
- 1278, /* GL_OPERAND1_ALPHA */
- 1284, /* GL_OPERAND2_ALPHA */
- 1290, /* GL_OPERAND3_ALPHA_NV */
+ 1444, /* GL_PRIMARY_COLOR */
+ 1441, /* GL_PREVIOUS */
+ 1786, /* GL_SOURCE0_RGB */
+ 1792, /* GL_SOURCE1_RGB */
+ 1798, /* GL_SOURCE2_RGB */
+ 1802, /* GL_SOURCE3_RGB_NV */
+ 1783, /* GL_SOURCE0_ALPHA */
+ 1789, /* GL_SOURCE1_ALPHA */
+ 1795, /* GL_SOURCE2_ALPHA */
+ 1801, /* GL_SOURCE3_ALPHA_NV */
+ 1280, /* GL_OPERAND0_RGB */
+ 1286, /* GL_OPERAND1_RGB */
+ 1292, /* GL_OPERAND2_RGB */
+ 1296, /* GL_OPERAND3_RGB_NV */
+ 1277, /* GL_OPERAND0_ALPHA */
+ 1283, /* GL_OPERAND1_ALPHA */
+ 1289, /* GL_OPERAND2_ALPHA */
+ 1295, /* GL_OPERAND3_ALPHA_NV */
137, /* GL_BUFFER_OBJECT_APPLE */
- 2224, /* GL_VERTEX_ARRAY_BINDING */
- 2091, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- 2092, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- 2301, /* GL_YCBCR_422_APPLE */
- 2213, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 2215, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- 2103, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- 1866, /* GL_STORAGE_PRIVATE_APPLE */
- 1865, /* GL_STORAGE_CACHED_APPLE */
- 1867, /* GL_STORAGE_SHARED_APPLE */
- 1767, /* GL_SLICE_ACCUM_SUN */
- 1515, /* GL_QUAD_MESH_SUN */
- 2150, /* GL_TRIANGLE_MESH_SUN */
- 2266, /* GL_VERTEX_PROGRAM_ARB */
- 2277, /* GL_VERTEX_STATE_PROGRAM_NV */
- 2251, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 2259, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 2261, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 2263, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- 386, /* GL_CURRENT_VERTEX_ATTRIB */
- 1460, /* GL_PROGRAM_LENGTH_ARB */
- 1476, /* GL_PROGRAM_STRING_ARB */
- 1199, /* GL_MODELVIEW_PROJECTION_NV */
- 725, /* GL_IDENTITY_NV */
- 800, /* GL_INVERSE_NV */
- 2141, /* GL_TRANSPOSE_NV */
- 801, /* GL_INVERSE_TRANSPOSE_NV */
- 1079, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- 1078, /* GL_MAX_PROGRAM_MATRICES_ARB */
- 960, /* GL_MATRIX0_NV */
- 972, /* GL_MATRIX1_NV */
- 984, /* GL_MATRIX2_NV */
- 988, /* GL_MATRIX3_NV */
- 990, /* GL_MATRIX4_NV */
- 992, /* GL_MATRIX5_NV */
- 994, /* GL_MATRIX6_NV */
- 996, /* GL_MATRIX7_NV */
- 369, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- 366, /* GL_CURRENT_MATRIX_ARB */
- 1473, /* GL_PROGRAM_POINT_SIZE */
- 2272, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- 1472, /* GL_PROGRAM_PARAMETER_NV */
- 2257, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- 1478, /* GL_PROGRAM_TARGET_NV */
- 1475, /* GL_PROGRAM_RESIDENT_NV */
- 2113, /* GL_TRACK_MATRIX_NV */
- 2114, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 2267, /* GL_VERTEX_PROGRAM_BINDING_NV */
- 1454, /* GL_PROGRAM_ERROR_POSITION_ARB */
- 411, /* GL_DEPTH_CLAMP */
- 2232, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 2239, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 2240, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 2241, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 2242, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 2243, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 2244, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 2245, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 2246, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 2247, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 2233, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 2234, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 2235, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 2236, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 2237, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 2238, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- 908, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- 915, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- 916, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- 917, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- 918, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- 919, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- 920, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- 921, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- 922, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- 923, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- 909, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- 910, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- 911, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- 912, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- 913, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- 914, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- 935, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- 942, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- 943, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- 944, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- 945, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- 946, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- 947, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- 1453, /* GL_PROGRAM_BINDING_ARB */
- 949, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- 950, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- 936, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- 937, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- 938, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- 939, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- 940, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- 941, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 2014, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 2011, /* GL_TEXTURE_COMPRESSED */
- 1240, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ 2231, /* GL_VERTEX_ARRAY_BINDING */
+ 2097, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ 2098, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ 2308, /* GL_YCBCR_422_APPLE */
+ 2220, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 2222, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 2109, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ 1872, /* GL_STORAGE_PRIVATE_APPLE */
+ 1871, /* GL_STORAGE_CACHED_APPLE */
+ 1873, /* GL_STORAGE_SHARED_APPLE */
+ 1773, /* GL_SLICE_ACCUM_SUN */
+ 1520, /* GL_QUAD_MESH_SUN */
+ 2156, /* GL_TRIANGLE_MESH_SUN */
+ 2273, /* GL_VERTEX_PROGRAM_ARB */
+ 2284, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 2258, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 2266, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 2268, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 2270, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 387, /* GL_CURRENT_VERTEX_ATTRIB */
+ 1465, /* GL_PROGRAM_LENGTH_ARB */
+ 1481, /* GL_PROGRAM_STRING_ARB */
+ 1203, /* GL_MODELVIEW_PROJECTION_NV */
+ 727, /* GL_IDENTITY_NV */
+ 803, /* GL_INVERSE_NV */
+ 2147, /* GL_TRANSPOSE_NV */
+ 804, /* GL_INVERSE_TRANSPOSE_NV */
+ 1083, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ 1082, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ 964, /* GL_MATRIX0_NV */
+ 976, /* GL_MATRIX1_NV */
+ 988, /* GL_MATRIX2_NV */
+ 992, /* GL_MATRIX3_NV */
+ 994, /* GL_MATRIX4_NV */
+ 996, /* GL_MATRIX5_NV */
+ 998, /* GL_MATRIX6_NV */
+ 1000, /* GL_MATRIX7_NV */
+ 370, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ 367, /* GL_CURRENT_MATRIX_ARB */
+ 1478, /* GL_PROGRAM_POINT_SIZE */
+ 2279, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1477, /* GL_PROGRAM_PARAMETER_NV */
+ 2264, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1483, /* GL_PROGRAM_TARGET_NV */
+ 1480, /* GL_PROGRAM_RESIDENT_NV */
+ 2119, /* GL_TRACK_MATRIX_NV */
+ 2120, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 2274, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1459, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ 412, /* GL_DEPTH_CLAMP */
+ 2239, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 2246, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 2247, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 2248, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 2249, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 2250, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 2251, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 2252, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 2253, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 2254, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 2240, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 2241, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 2242, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 2243, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 2244, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 2245, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 912, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ 919, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ 920, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ 921, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ 922, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ 923, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ 924, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ 925, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ 926, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ 927, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ 913, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ 914, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ 915, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ 916, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ 917, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ 918, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ 939, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ 946, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ 947, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ 948, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ 949, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ 950, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ 951, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ 1458, /* GL_PROGRAM_BINDING_ARB */
+ 953, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ 954, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ 940, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ 941, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ 942, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ 943, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ 944, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ 945, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ 2020, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ 2017, /* GL_TEXTURE_COMPRESSED */
+ 1245, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
314, /* GL_COMPRESSED_TEXTURE_FORMATS */
- 1139, /* GL_MAX_VERTEX_UNITS_ARB */
+ 1143, /* GL_MAX_VERTEX_UNITS_ARB */
23, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 2295, /* GL_WEIGHT_SUM_UNITY_ARB */
- 2265, /* GL_VERTEX_BLEND_ARB */
- 388, /* GL_CURRENT_WEIGHT_ARB */
- 2293, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 2291, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 2289, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 2287, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 2282, /* GL_WEIGHT_ARRAY_ARB */
- 445, /* GL_DOT3_RGB */
- 446, /* GL_DOT3_RGBA */
+ 2302, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 2272, /* GL_VERTEX_BLEND_ARB */
+ 389, /* GL_CURRENT_WEIGHT_ARB */
+ 2300, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 2298, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 2296, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 2294, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 2289, /* GL_WEIGHT_ARRAY_ARB */
+ 446, /* GL_DOT3_RGB */
+ 447, /* GL_DOT3_RGBA */
308, /* GL_COMPRESSED_RGB_FXT1_3DFX */
303, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- 1207, /* GL_MULTISAMPLE_3DFX */
- 1725, /* GL_SAMPLE_BUFFERS_3DFX */
- 1716, /* GL_SAMPLES_3DFX */
- 1187, /* GL_MODELVIEW2_ARB */
- 1190, /* GL_MODELVIEW3_ARB */
- 1191, /* GL_MODELVIEW4_ARB */
- 1192, /* GL_MODELVIEW5_ARB */
- 1193, /* GL_MODELVIEW6_ARB */
- 1194, /* GL_MODELVIEW7_ARB */
- 1195, /* GL_MODELVIEW8_ARB */
- 1196, /* GL_MODELVIEW9_ARB */
- 1166, /* GL_MODELVIEW10_ARB */
- 1167, /* GL_MODELVIEW11_ARB */
- 1168, /* GL_MODELVIEW12_ARB */
- 1169, /* GL_MODELVIEW13_ARB */
- 1170, /* GL_MODELVIEW14_ARB */
- 1171, /* GL_MODELVIEW15_ARB */
- 1172, /* GL_MODELVIEW16_ARB */
- 1173, /* GL_MODELVIEW17_ARB */
- 1174, /* GL_MODELVIEW18_ARB */
- 1175, /* GL_MODELVIEW19_ARB */
- 1177, /* GL_MODELVIEW20_ARB */
- 1178, /* GL_MODELVIEW21_ARB */
- 1179, /* GL_MODELVIEW22_ARB */
- 1180, /* GL_MODELVIEW23_ARB */
- 1181, /* GL_MODELVIEW24_ARB */
- 1182, /* GL_MODELVIEW25_ARB */
- 1183, /* GL_MODELVIEW26_ARB */
- 1184, /* GL_MODELVIEW27_ARB */
- 1185, /* GL_MODELVIEW28_ARB */
- 1186, /* GL_MODELVIEW29_ARB */
- 1188, /* GL_MODELVIEW30_ARB */
- 1189, /* GL_MODELVIEW31_ARB */
- 450, /* GL_DOT3_RGB_EXT */
- 448, /* GL_DOT3_RGBA_EXT */
- 1160, /* GL_MIRROR_CLAMP_EXT */
- 1163, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- 1202, /* GL_MODULATE_ADD_ATI */
- 1203, /* GL_MODULATE_SIGNED_ADD_ATI */
- 1204, /* GL_MODULATE_SUBTRACT_ATI */
- 2302, /* GL_YCBCR_MESA */
- 1299, /* GL_PACK_INVERT_MESA */
- 391, /* GL_DEBUG_OBJECT_MESA */
- 392, /* GL_DEBUG_PRINT_MESA */
- 390, /* GL_DEBUG_ASSERT_MESA */
+ 1211, /* GL_MULTISAMPLE_3DFX */
+ 1731, /* GL_SAMPLE_BUFFERS_3DFX */
+ 1722, /* GL_SAMPLES_3DFX */
+ 1191, /* GL_MODELVIEW2_ARB */
+ 1194, /* GL_MODELVIEW3_ARB */
+ 1195, /* GL_MODELVIEW4_ARB */
+ 1196, /* GL_MODELVIEW5_ARB */
+ 1197, /* GL_MODELVIEW6_ARB */
+ 1198, /* GL_MODELVIEW7_ARB */
+ 1199, /* GL_MODELVIEW8_ARB */
+ 1200, /* GL_MODELVIEW9_ARB */
+ 1170, /* GL_MODELVIEW10_ARB */
+ 1171, /* GL_MODELVIEW11_ARB */
+ 1172, /* GL_MODELVIEW12_ARB */
+ 1173, /* GL_MODELVIEW13_ARB */
+ 1174, /* GL_MODELVIEW14_ARB */
+ 1175, /* GL_MODELVIEW15_ARB */
+ 1176, /* GL_MODELVIEW16_ARB */
+ 1177, /* GL_MODELVIEW17_ARB */
+ 1178, /* GL_MODELVIEW18_ARB */
+ 1179, /* GL_MODELVIEW19_ARB */
+ 1181, /* GL_MODELVIEW20_ARB */
+ 1182, /* GL_MODELVIEW21_ARB */
+ 1183, /* GL_MODELVIEW22_ARB */
+ 1184, /* GL_MODELVIEW23_ARB */
+ 1185, /* GL_MODELVIEW24_ARB */
+ 1186, /* GL_MODELVIEW25_ARB */
+ 1187, /* GL_MODELVIEW26_ARB */
+ 1188, /* GL_MODELVIEW27_ARB */
+ 1189, /* GL_MODELVIEW28_ARB */
+ 1190, /* GL_MODELVIEW29_ARB */
+ 1192, /* GL_MODELVIEW30_ARB */
+ 1193, /* GL_MODELVIEW31_ARB */
+ 451, /* GL_DOT3_RGB_EXT */
+ 449, /* GL_DOT3_RGBA_EXT */
+ 1164, /* GL_MIRROR_CLAMP_EXT */
+ 1167, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ 1206, /* GL_MODULATE_ADD_ATI */
+ 1207, /* GL_MODULATE_SIGNED_ADD_ATI */
+ 1208, /* GL_MODULATE_SUBTRACT_ATI */
+ 2309, /* GL_YCBCR_MESA */
+ 1304, /* GL_PACK_INVERT_MESA */
+ 392, /* GL_DEBUG_OBJECT_MESA */
+ 393, /* GL_DEBUG_PRINT_MESA */
+ 391, /* GL_DEBUG_ASSERT_MESA */
139, /* GL_BUFFER_SIZE */
141, /* GL_BUFFER_USAGE */
145, /* GL_BUMP_ROT_MATRIX_ATI */
146, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
144, /* GL_BUMP_NUM_TEX_UNITS_ATI */
148, /* GL_BUMP_TEX_UNITS_ATI */
- 510, /* GL_DUDV_ATI */
- 509, /* GL_DU8DV8_ATI */
+ 511, /* GL_DUDV_ATI */
+ 510, /* GL_DU8DV8_ATI */
143, /* GL_BUMP_ENVMAP_ATI */
147, /* GL_BUMP_TARGET_ATI */
- 1243, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
- 1451, /* GL_PROGRAM_BINARY_FORMATS_OES */
- 1829, /* GL_STENCIL_BACK_FUNC */
- 1827, /* GL_STENCIL_BACK_FAIL */
- 1831, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1833, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- 599, /* GL_FRAGMENT_PROGRAM_ARB */
- 1449, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1481, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1480, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1463, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1469, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1468, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 1068, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1093, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1092, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1081, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1087, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1086, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 1657, /* GL_RGBA32F */
- 1620, /* GL_RGB32F */
- 1648, /* GL_RGBA16F */
- 1612, /* GL_RGB16F */
- 1676, /* GL_RGBA_FLOAT_MODE_ARB */
- 1037, /* GL_MAX_DRAW_BUFFERS */
- 454, /* GL_DRAW_BUFFER0 */
- 457, /* GL_DRAW_BUFFER1 */
- 478, /* GL_DRAW_BUFFER2 */
- 481, /* GL_DRAW_BUFFER3 */
- 484, /* GL_DRAW_BUFFER4 */
- 487, /* GL_DRAW_BUFFER5 */
- 490, /* GL_DRAW_BUFFER6 */
- 493, /* GL_DRAW_BUFFER7 */
- 496, /* GL_DRAW_BUFFER8 */
- 499, /* GL_DRAW_BUFFER9 */
- 458, /* GL_DRAW_BUFFER10 */
- 461, /* GL_DRAW_BUFFER11 */
- 464, /* GL_DRAW_BUFFER12 */
- 467, /* GL_DRAW_BUFFER13 */
- 470, /* GL_DRAW_BUFFER14 */
- 473, /* GL_DRAW_BUFFER15 */
+ 1248, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
+ 1456, /* GL_PROGRAM_BINARY_FORMATS_OES */
+ 1835, /* GL_STENCIL_BACK_FUNC */
+ 1833, /* GL_STENCIL_BACK_FAIL */
+ 1837, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ 1839, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 600, /* GL_FRAGMENT_PROGRAM_ARB */
+ 1454, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 1486, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 1485, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 1468, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 1474, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 1473, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 1072, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 1097, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 1096, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 1085, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 1091, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 1090, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 1663, /* GL_RGBA32F */
+ 1626, /* GL_RGB32F */
+ 1654, /* GL_RGBA16F */
+ 1618, /* GL_RGB16F */
+ 1682, /* GL_RGBA_FLOAT_MODE_ARB */
+ 1041, /* GL_MAX_DRAW_BUFFERS */
+ 455, /* GL_DRAW_BUFFER0 */
+ 458, /* GL_DRAW_BUFFER1 */
+ 479, /* GL_DRAW_BUFFER2 */
+ 482, /* GL_DRAW_BUFFER3 */
+ 485, /* GL_DRAW_BUFFER4 */
+ 488, /* GL_DRAW_BUFFER5 */
+ 491, /* GL_DRAW_BUFFER6 */
+ 494, /* GL_DRAW_BUFFER7 */
+ 497, /* GL_DRAW_BUFFER8 */
+ 500, /* GL_DRAW_BUFFER9 */
+ 459, /* GL_DRAW_BUFFER10 */
+ 462, /* GL_DRAW_BUFFER11 */
+ 465, /* GL_DRAW_BUFFER12 */
+ 468, /* GL_DRAW_BUFFER13 */
+ 471, /* GL_DRAW_BUFFER14 */
+ 474, /* GL_DRAW_BUFFER15 */
97, /* GL_BLEND_EQUATION_ALPHA */
- 1011, /* GL_MATRIX_PALETTE_ARB */
- 1061, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- 1064, /* GL_MAX_PALETTE_MATRICES_ARB */
- 372, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- 999, /* GL_MATRIX_INDEX_ARRAY_ARB */
- 367, /* GL_CURRENT_MATRIX_INDEX_ARB */
- 1004, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- 1008, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- 1006, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- 1002, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 2049, /* GL_TEXTURE_DEPTH_SIZE */
- 438, /* GL_DEPTH_TEXTURE_MODE */
- 2006, /* GL_TEXTURE_COMPARE_MODE */
- 2004, /* GL_TEXTURE_COMPARE_FUNC */
+ 1015, /* GL_MATRIX_PALETTE_ARB */
+ 1065, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ 1068, /* GL_MAX_PALETTE_MATRICES_ARB */
+ 373, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ 1003, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ 368, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ 1008, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ 1012, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ 1010, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ 1006, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ 2055, /* GL_TEXTURE_DEPTH_SIZE */
+ 439, /* GL_DEPTH_TEXTURE_MODE */
+ 2012, /* GL_TEXTURE_COMPARE_MODE */
+ 2010, /* GL_TEXTURE_COMPARE_FUNC */
284, /* GL_COMPARE_REF_TO_TEXTURE */
- 1376, /* GL_POINT_SPRITE */
- 346, /* GL_COORD_REPLACE */
- 1381, /* GL_POINT_SPRITE_R_MODE_NV */
- 1521, /* GL_QUERY_COUNTER_BITS */
- 375, /* GL_CURRENT_QUERY */
- 1525, /* GL_QUERY_RESULT */
- 1527, /* GL_QUERY_RESULT_AVAILABLE */
- 1131, /* GL_MAX_VERTEX_ATTRIBS */
- 2255, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- 436, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- 435, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- 1108, /* GL_MAX_TEXTURE_COORDS */
- 1110, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- 1456, /* GL_PROGRAM_ERROR_STRING_ARB */
- 1458, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- 1457, /* GL_PROGRAM_FORMAT_ARB */
- 2105, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- 408, /* GL_DEPTH_BOUNDS_TEST_EXT */
- 407, /* GL_DEPTH_BOUNDS_EXT */
+ 1381, /* GL_POINT_SPRITE */
+ 347, /* GL_COORD_REPLACE */
+ 1386, /* GL_POINT_SPRITE_R_MODE_NV */
+ 1526, /* GL_QUERY_COUNTER_BITS */
+ 376, /* GL_CURRENT_QUERY */
+ 1530, /* GL_QUERY_RESULT */
+ 1532, /* GL_QUERY_RESULT_AVAILABLE */
+ 1135, /* GL_MAX_VERTEX_ATTRIBS */
+ 2262, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 437, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ 436, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ 1112, /* GL_MAX_TEXTURE_COORDS */
+ 1114, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ 1461, /* GL_PROGRAM_ERROR_STRING_ARB */
+ 1463, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ 1462, /* GL_PROGRAM_FORMAT_ARB */
+ 2111, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ 409, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ 408, /* GL_DEPTH_BOUNDS_EXT */
61, /* GL_ARRAY_BUFFER */
- 523, /* GL_ELEMENT_ARRAY_BUFFER */
+ 524, /* GL_ELEMENT_ARRAY_BUFFER */
62, /* GL_ARRAY_BUFFER_BINDING */
- 524, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 2226, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- 1229, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ 525, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ 2233, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1233, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
190, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- 736, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 2019, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- 519, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- 1737, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- 577, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 2283, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 2248, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- 1459, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- 1074, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- 1465, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1083, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1479, /* GL_PROGRAM_TEMPORARIES_ARB */
- 1089, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- 1467, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1085, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1471, /* GL_PROGRAM_PARAMETERS_ARB */
- 1088, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- 1466, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1084, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1450, /* GL_PROGRAM_ATTRIBS_ARB */
- 1069, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- 1464, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1082, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1448, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1067, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1462, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 1080, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 1075, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- 1071, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- 1482, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 2138, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- 1544, /* GL_READ_ONLY */
- 2297, /* GL_WRITE_ONLY */
- 1546, /* GL_READ_WRITE */
+ 738, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ 2025, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 520, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ 1743, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ 578, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ 2290, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 2255, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1464, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ 1078, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ 1470, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 1087, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 1484, /* GL_PROGRAM_TEMPORARIES_ARB */
+ 1093, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ 1472, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 1089, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 1476, /* GL_PROGRAM_PARAMETERS_ARB */
+ 1092, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ 1471, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 1088, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 1455, /* GL_PROGRAM_ATTRIBS_ARB */
+ 1073, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ 1469, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 1086, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 1453, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 1071, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 1467, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 1084, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 1079, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ 1075, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ 1487, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ 2144, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1549, /* GL_READ_ONLY */
+ 2304, /* GL_WRITE_ONLY */
+ 1551, /* GL_READ_WRITE */
124, /* GL_BUFFER_ACCESS */
129, /* GL_BUFFER_MAPPED */
134, /* GL_BUFFER_MAP_POINTER */
- 2112, /* GL_TIME_ELAPSED_EXT */
- 959, /* GL_MATRIX0_ARB */
- 971, /* GL_MATRIX1_ARB */
- 983, /* GL_MATRIX2_ARB */
- 987, /* GL_MATRIX3_ARB */
- 989, /* GL_MATRIX4_ARB */
- 991, /* GL_MATRIX5_ARB */
- 993, /* GL_MATRIX6_ARB */
- 995, /* GL_MATRIX7_ARB */
- 997, /* GL_MATRIX8_ARB */
- 998, /* GL_MATRIX9_ARB */
- 961, /* GL_MATRIX10_ARB */
- 962, /* GL_MATRIX11_ARB */
- 963, /* GL_MATRIX12_ARB */
- 964, /* GL_MATRIX13_ARB */
- 965, /* GL_MATRIX14_ARB */
- 966, /* GL_MATRIX15_ARB */
- 967, /* GL_MATRIX16_ARB */
- 968, /* GL_MATRIX17_ARB */
- 969, /* GL_MATRIX18_ARB */
- 970, /* GL_MATRIX19_ARB */
- 973, /* GL_MATRIX20_ARB */
- 974, /* GL_MATRIX21_ARB */
- 975, /* GL_MATRIX22_ARB */
- 976, /* GL_MATRIX23_ARB */
- 977, /* GL_MATRIX24_ARB */
- 978, /* GL_MATRIX25_ARB */
- 979, /* GL_MATRIX26_ARB */
- 980, /* GL_MATRIX27_ARB */
- 981, /* GL_MATRIX28_ARB */
- 982, /* GL_MATRIX29_ARB */
- 985, /* GL_MATRIX30_ARB */
- 986, /* GL_MATRIX31_ARB */
- 1870, /* GL_STREAM_DRAW */
- 1872, /* GL_STREAM_READ */
- 1868, /* GL_STREAM_COPY */
- 1819, /* GL_STATIC_DRAW */
- 1821, /* GL_STATIC_READ */
- 1817, /* GL_STATIC_COPY */
- 513, /* GL_DYNAMIC_DRAW */
- 515, /* GL_DYNAMIC_READ */
- 511, /* GL_DYNAMIC_COPY */
- 1339, /* GL_PIXEL_PACK_BUFFER */
- 1343, /* GL_PIXEL_UNPACK_BUFFER */
- 1340, /* GL_PIXEL_PACK_BUFFER_BINDING */
- 1344, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- 399, /* GL_DEPTH24_STENCIL8 */
- 2101, /* GL_TEXTURE_STENCIL_SIZE */
- 2047, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- 1070, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- 1073, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- 1077, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- 1076, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- 2253, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */
- 2250, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB */
- 1016, /* GL_MAX_ARRAY_TEXTURE_LAYERS */
- 1154, /* GL_MIN_PROGRAM_TEXEL_OFFSET */
- 1090, /* GL_MAX_PROGRAM_TEXEL_OFFSET */
- 1861, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 2118, /* GL_TIME_ELAPSED_EXT */
+ 963, /* GL_MATRIX0_ARB */
+ 975, /* GL_MATRIX1_ARB */
+ 987, /* GL_MATRIX2_ARB */
+ 991, /* GL_MATRIX3_ARB */
+ 993, /* GL_MATRIX4_ARB */
+ 995, /* GL_MATRIX5_ARB */
+ 997, /* GL_MATRIX6_ARB */
+ 999, /* GL_MATRIX7_ARB */
+ 1001, /* GL_MATRIX8_ARB */
+ 1002, /* GL_MATRIX9_ARB */
+ 965, /* GL_MATRIX10_ARB */
+ 966, /* GL_MATRIX11_ARB */
+ 967, /* GL_MATRIX12_ARB */
+ 968, /* GL_MATRIX13_ARB */
+ 969, /* GL_MATRIX14_ARB */
+ 970, /* GL_MATRIX15_ARB */
+ 971, /* GL_MATRIX16_ARB */
+ 972, /* GL_MATRIX17_ARB */
+ 973, /* GL_MATRIX18_ARB */
+ 974, /* GL_MATRIX19_ARB */
+ 977, /* GL_MATRIX20_ARB */
+ 978, /* GL_MATRIX21_ARB */
+ 979, /* GL_MATRIX22_ARB */
+ 980, /* GL_MATRIX23_ARB */
+ 981, /* GL_MATRIX24_ARB */
+ 982, /* GL_MATRIX25_ARB */
+ 983, /* GL_MATRIX26_ARB */
+ 984, /* GL_MATRIX27_ARB */
+ 985, /* GL_MATRIX28_ARB */
+ 986, /* GL_MATRIX29_ARB */
+ 989, /* GL_MATRIX30_ARB */
+ 990, /* GL_MATRIX31_ARB */
+ 1876, /* GL_STREAM_DRAW */
+ 1878, /* GL_STREAM_READ */
+ 1874, /* GL_STREAM_COPY */
+ 1825, /* GL_STATIC_DRAW */
+ 1827, /* GL_STATIC_READ */
+ 1823, /* GL_STATIC_COPY */
+ 514, /* GL_DYNAMIC_DRAW */
+ 516, /* GL_DYNAMIC_READ */
+ 512, /* GL_DYNAMIC_COPY */
+ 1344, /* GL_PIXEL_PACK_BUFFER */
+ 1348, /* GL_PIXEL_UNPACK_BUFFER */
+ 1345, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ 1349, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ 400, /* GL_DEPTH24_STENCIL8 */
+ 2107, /* GL_TEXTURE_STENCIL_SIZE */
+ 2053, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ 1074, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ 1077, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ 1081, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ 1080, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ 2260, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */
+ 2257, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB */
+ 1020, /* GL_MAX_ARRAY_TEXTURE_LAYERS */
+ 1158, /* GL_MIN_PROGRAM_TEXEL_OFFSET */
+ 1094, /* GL_MAX_PROGRAM_TEXEL_OFFSET */
+ 1867, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
18, /* GL_ACTIVE_STENCIL_FACE_EXT */
- 1161, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- 1718, /* GL_SAMPLES_PASSED */
- 692, /* GL_GEOMETRY_VERTICES_OUT */
- 686, /* GL_GEOMETRY_INPUT_TYPE */
- 688, /* GL_GEOMETRY_OUTPUT_TYPE */
- 1709, /* GL_SAMPLER_BINDING */
+ 1165, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ 1724, /* GL_SAMPLES_PASSED */
+ 693, /* GL_GEOMETRY_VERTICES_OUT */
+ 687, /* GL_GEOMETRY_INPUT_TYPE */
+ 689, /* GL_GEOMETRY_OUTPUT_TYPE */
+ 1715, /* GL_SAMPLER_BINDING */
164, /* GL_CLAMP_VERTEX_COLOR_ARB */
156, /* GL_CLAMP_FRAGMENT_COLOR_ARB */
157, /* GL_CLAMP_READ_COLOR */
- 549, /* GL_FIXED_ONLY */
- 1363, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
- 1362, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
- 1361, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
- 1198, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
- 1485, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
- 2081, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 550, /* GL_FIXED_ONLY */
+ 1368, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
+ 1367, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
+ 1366, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
+ 1202, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 1490, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 2087, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
138, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
128, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
- 1561, /* GL_RELEASED_APPLE */
- 2280, /* GL_VOLATILE_APPLE */
- 1600, /* GL_RETAINED_APPLE */
- 2155, /* GL_UNDEFINED_APPLE */
- 1509, /* GL_PURGEABLE_APPLE */
- 600, /* GL_FRAGMENT_SHADER */
- 2275, /* GL_VERTEX_SHADER */
- 1470, /* GL_PROGRAM_OBJECT_ARB */
- 1754, /* GL_SHADER_OBJECT_ARB */
- 1045, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- 1136, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- 1127, /* GL_MAX_VARYING_COMPONENTS */
- 1134, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- 1028, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- 1259, /* GL_OBJECT_TYPE_ARB */
- 1756, /* GL_SHADER_TYPE */
- 565, /* GL_FLOAT_VEC2 */
- 567, /* GL_FLOAT_VEC3 */
- 569, /* GL_FLOAT_VEC4 */
- 788, /* GL_INT_VEC2 */
- 790, /* GL_INT_VEC3 */
- 792, /* GL_INT_VEC4 */
+ 1566, /* GL_RELEASED_APPLE */
+ 2287, /* GL_VOLATILE_APPLE */
+ 1606, /* GL_RETAINED_APPLE */
+ 2161, /* GL_UNDEFINED_APPLE */
+ 1514, /* GL_PURGEABLE_APPLE */
+ 601, /* GL_FRAGMENT_SHADER */
+ 2282, /* GL_VERTEX_SHADER */
+ 1475, /* GL_PROGRAM_OBJECT_ARB */
+ 1760, /* GL_SHADER_OBJECT_ARB */
+ 1049, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ 1140, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ 1131, /* GL_MAX_VARYING_COMPONENTS */
+ 1138, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ 1032, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ 1264, /* GL_OBJECT_TYPE_ARB */
+ 1762, /* GL_SHADER_TYPE */
+ 566, /* GL_FLOAT_VEC2 */
+ 568, /* GL_FLOAT_VEC3 */
+ 570, /* GL_FLOAT_VEC4 */
+ 791, /* GL_INT_VEC2 */
+ 793, /* GL_INT_VEC3 */
+ 795, /* GL_INT_VEC4 */
116, /* GL_BOOL */
118, /* GL_BOOL_VEC2 */
120, /* GL_BOOL_VEC3 */
122, /* GL_BOOL_VEC4 */
- 553, /* GL_FLOAT_MAT2 */
- 557, /* GL_FLOAT_MAT3 */
- 561, /* GL_FLOAT_MAT4 */
- 1693, /* GL_SAMPLER_1D */
- 1699, /* GL_SAMPLER_2D */
- 1707, /* GL_SAMPLER_3D */
- 1712, /* GL_SAMPLER_CUBE */
- 1698, /* GL_SAMPLER_1D_SHADOW */
- 1706, /* GL_SAMPLER_2D_SHADOW */
- 1704, /* GL_SAMPLER_2D_RECT */
- 1705, /* GL_SAMPLER_2D_RECT_SHADOW */
- 555, /* GL_FLOAT_MAT2x3 */
- 556, /* GL_FLOAT_MAT2x4 */
- 559, /* GL_FLOAT_MAT3x2 */
- 560, /* GL_FLOAT_MAT3x4 */
- 563, /* GL_FLOAT_MAT4x2 */
- 564, /* GL_FLOAT_MAT4x3 */
- 397, /* GL_DELETE_STATUS */
+ 554, /* GL_FLOAT_MAT2 */
+ 558, /* GL_FLOAT_MAT3 */
+ 562, /* GL_FLOAT_MAT4 */
+ 1699, /* GL_SAMPLER_1D */
+ 1705, /* GL_SAMPLER_2D */
+ 1713, /* GL_SAMPLER_3D */
+ 1718, /* GL_SAMPLER_CUBE */
+ 1704, /* GL_SAMPLER_1D_SHADOW */
+ 1712, /* GL_SAMPLER_2D_SHADOW */
+ 1710, /* GL_SAMPLER_2D_RECT */
+ 1711, /* GL_SAMPLER_2D_RECT_SHADOW */
+ 556, /* GL_FLOAT_MAT2x3 */
+ 557, /* GL_FLOAT_MAT2x4 */
+ 560, /* GL_FLOAT_MAT3x2 */
+ 561, /* GL_FLOAT_MAT3x4 */
+ 564, /* GL_FLOAT_MAT4x2 */
+ 565, /* GL_FLOAT_MAT4x3 */
+ 398, /* GL_DELETE_STATUS */
289, /* GL_COMPILE_STATUS */
- 849, /* GL_LINK_STATUS */
- 2220, /* GL_VALIDATE_STATUS */
- 748, /* GL_INFO_LOG_LENGTH */
+ 852, /* GL_LINK_STATUS */
+ 2227, /* GL_VALIDATE_STATUS */
+ 750, /* GL_INFO_LOG_LENGTH */
64, /* GL_ATTACHED_SHADERS */
21, /* GL_ACTIVE_UNIFORMS */
22, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */
- 1755, /* GL_SHADER_SOURCE_LENGTH */
+ 1761, /* GL_SHADER_SOURCE_LENGTH */
15, /* GL_ACTIVE_ATTRIBUTES */
16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */
- 602, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- 1758, /* GL_SHADING_LANGUAGE_VERSION */
- 374, /* GL_CURRENT_PROGRAM */
- 1308, /* GL_PALETTE4_RGB8_OES */
- 1310, /* GL_PALETTE4_RGBA8_OES */
- 1306, /* GL_PALETTE4_R5_G6_B5_OES */
- 1309, /* GL_PALETTE4_RGBA4_OES */
- 1307, /* GL_PALETTE4_RGB5_A1_OES */
- 1313, /* GL_PALETTE8_RGB8_OES */
- 1315, /* GL_PALETTE8_RGBA8_OES */
- 1311, /* GL_PALETTE8_R5_G6_B5_OES */
- 1314, /* GL_PALETTE8_RGBA4_OES */
- 1312, /* GL_PALETTE8_RGB5_A1_OES */
- 729, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
- 727, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
- 1360, /* GL_POINT_SIZE_ARRAY_OES */
- 2025, /* GL_TEXTURE_CROP_RECT_OES */
- 1000, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
- 1359, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
- 2203, /* GL_UNSIGNED_NORMALIZED */
- 1958, /* GL_TEXTURE_1D_ARRAY */
- 1495, /* GL_PROXY_TEXTURE_1D_ARRAY */
- 1961, /* GL_TEXTURE_2D_ARRAY */
- 1499, /* GL_PROXY_TEXTURE_2D_ARRAY */
- 1969, /* GL_TEXTURE_BINDING_1D_ARRAY */
- 1972, /* GL_TEXTURE_BINDING_2D_ARRAY */
- 1052, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */
- 1989, /* GL_TEXTURE_BUFFER */
- 1106, /* GL_MAX_TEXTURE_BUFFER_SIZE */
- 1976, /* GL_TEXTURE_BINDING_BUFFER */
- 1991, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */
- 1993, /* GL_TEXTURE_BUFFER_FORMAT */
- 1532, /* GL_R11F_G11F_B10F */
- 2169, /* GL_UNSIGNED_INT_10F_11F_11F_REV */
- 1643, /* GL_RGB9_E5 */
- 2178, /* GL_UNSIGNED_INT_5_9_9_9_REV */
- 2099, /* GL_TEXTURE_SHARED_SIZE */
- 1811, /* GL_SRGB */
- 1812, /* GL_SRGB8 */
- 1814, /* GL_SRGB_ALPHA */
- 1813, /* GL_SRGB8_ALPHA8 */
- 1771, /* GL_SLUMINANCE_ALPHA */
- 1770, /* GL_SLUMINANCE8_ALPHA8 */
- 1768, /* GL_SLUMINANCE */
- 1769, /* GL_SLUMINANCE8 */
+ 603, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ 1764, /* GL_SHADING_LANGUAGE_VERSION */
+ 375, /* GL_CURRENT_PROGRAM */
+ 1313, /* GL_PALETTE4_RGB8_OES */
+ 1315, /* GL_PALETTE4_RGBA8_OES */
+ 1311, /* GL_PALETTE4_R5_G6_B5_OES */
+ 1314, /* GL_PALETTE4_RGBA4_OES */
+ 1312, /* GL_PALETTE4_RGB5_A1_OES */
+ 1318, /* GL_PALETTE8_RGB8_OES */
+ 1320, /* GL_PALETTE8_RGBA8_OES */
+ 1316, /* GL_PALETTE8_R5_G6_B5_OES */
+ 1319, /* GL_PALETTE8_RGBA4_OES */
+ 1317, /* GL_PALETTE8_RGB5_A1_OES */
+ 731, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
+ 729, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
+ 1365, /* GL_POINT_SIZE_ARRAY_OES */
+ 2031, /* GL_TEXTURE_CROP_RECT_OES */
+ 1004, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
+ 1364, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
+ 2210, /* GL_UNSIGNED_NORMALIZED */
+ 1964, /* GL_TEXTURE_1D_ARRAY */
+ 1500, /* GL_PROXY_TEXTURE_1D_ARRAY */
+ 1967, /* GL_TEXTURE_2D_ARRAY */
+ 1504, /* GL_PROXY_TEXTURE_2D_ARRAY */
+ 1975, /* GL_TEXTURE_BINDING_1D_ARRAY */
+ 1978, /* GL_TEXTURE_BINDING_2D_ARRAY */
+ 1056, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */
+ 1995, /* GL_TEXTURE_BUFFER */
+ 1110, /* GL_MAX_TEXTURE_BUFFER_SIZE */
+ 1982, /* GL_TEXTURE_BINDING_BUFFER */
+ 1997, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */
+ 1999, /* GL_TEXTURE_BUFFER_FORMAT */
+ 1537, /* GL_R11F_G11F_B10F */
+ 2176, /* GL_UNSIGNED_INT_10F_11F_11F_REV */
+ 1649, /* GL_RGB9_E5 */
+ 2185, /* GL_UNSIGNED_INT_5_9_9_9_REV */
+ 2105, /* GL_TEXTURE_SHARED_SIZE */
+ 1817, /* GL_SRGB */
+ 1818, /* GL_SRGB8 */
+ 1820, /* GL_SRGB_ALPHA */
+ 1819, /* GL_SRGB8_ALPHA8 */
+ 1777, /* GL_SLUMINANCE_ALPHA */
+ 1776, /* GL_SLUMINANCE8_ALPHA8 */
+ 1774, /* GL_SLUMINANCE */
+ 1775, /* GL_SLUMINANCE8 */
312, /* GL_COMPRESSED_SRGB */
313, /* GL_COMPRESSED_SRGB_ALPHA */
310, /* GL_COMPRESSED_SLUMINANCE */
311, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
- 2134, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */
- 2123, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */
- 1125, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */
- 2132, /* GL_TRANSFORM_FEEDBACK_VARYINGS */
- 2128, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */
- 2126, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */
- 1442, /* GL_PRIMITIVES_GENERATED */
- 2130, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */
- 1536, /* GL_RASTERIZER_DISCARD */
- 1121, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */
- 1123, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */
- 766, /* GL_INTERLEAVED_ATTRIBS */
- 1747, /* GL_SEPARATE_ATTRIBS */
- 2118, /* GL_TRANSFORM_FEEDBACK_BUFFER */
- 2120, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */
- 1378, /* GL_POINT_SPRITE_COORD_ORIGIN */
- 857, /* GL_LOWER_LEFT */
- 2217, /* GL_UPPER_LEFT */
- 1835, /* GL_STENCIL_BACK_REF */
- 1836, /* GL_STENCIL_BACK_VALUE_MASK */
- 1837, /* GL_STENCIL_BACK_WRITEMASK */
- 503, /* GL_DRAW_FRAMEBUFFER_BINDING */
- 1566, /* GL_RENDERBUFFER_BINDING */
- 1540, /* GL_READ_FRAMEBUFFER */
- 502, /* GL_DRAW_FRAMEBUFFER */
- 1541, /* GL_READ_FRAMEBUFFER_BINDING */
- 1585, /* GL_RENDERBUFFER_SAMPLES */
- 616, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- 613, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- 628, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- 623, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- 626, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- 634, /* GL_FRAMEBUFFER_COMPLETE */
- 639, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- 654, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- 648, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- 643, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- 649, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- 645, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- 659, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- 665, /* GL_FRAMEBUFFER_UNSUPPORTED */
- 663, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- 1024, /* GL_MAX_COLOR_ATTACHMENTS */
+ 2140, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */
+ 2129, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */
+ 1129, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */
+ 2138, /* GL_TRANSFORM_FEEDBACK_VARYINGS */
+ 2134, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */
+ 2132, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */
+ 1447, /* GL_PRIMITIVES_GENERATED */
+ 2136, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */
+ 1541, /* GL_RASTERIZER_DISCARD */
+ 1125, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */
+ 1127, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */
+ 769, /* GL_INTERLEAVED_ATTRIBS */
+ 1753, /* GL_SEPARATE_ATTRIBS */
+ 2124, /* GL_TRANSFORM_FEEDBACK_BUFFER */
+ 2126, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */
+ 1383, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ 861, /* GL_LOWER_LEFT */
+ 2224, /* GL_UPPER_LEFT */
+ 1841, /* GL_STENCIL_BACK_REF */
+ 1842, /* GL_STENCIL_BACK_VALUE_MASK */
+ 1843, /* GL_STENCIL_BACK_WRITEMASK */
+ 504, /* GL_DRAW_FRAMEBUFFER_BINDING */
+ 1571, /* GL_RENDERBUFFER_BINDING */
+ 1545, /* GL_READ_FRAMEBUFFER */
+ 503, /* GL_DRAW_FRAMEBUFFER */
+ 1546, /* GL_READ_FRAMEBUFFER_BINDING */
+ 1590, /* GL_RENDERBUFFER_SAMPLES */
+ 617, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ 614, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ 629, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ 624, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ 627, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ 635, /* GL_FRAMEBUFFER_COMPLETE */
+ 640, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ 655, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ 649, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ 644, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ 650, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ 646, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
+ 660, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
+ 666, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ 664, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ 1028, /* GL_MAX_COLOR_ATTACHMENTS */
196, /* GL_COLOR_ATTACHMENT0 */
199, /* GL_COLOR_ATTACHMENT1 */
213, /* GL_COLOR_ATTACHMENT2 */
@@ -6034,184 +6054,184 @@ static const unsigned reduced_enums[1556] =
206, /* GL_COLOR_ATTACHMENT13 */
208, /* GL_COLOR_ATTACHMENT14 */
210, /* GL_COLOR_ATTACHMENT15 */
- 402, /* GL_DEPTH_ATTACHMENT */
- 1824, /* GL_STENCIL_ATTACHMENT */
- 604, /* GL_FRAMEBUFFER */
- 1563, /* GL_RENDERBUFFER */
- 1589, /* GL_RENDERBUFFER_WIDTH */
- 1576, /* GL_RENDERBUFFER_HEIGHT */
- 1579, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- 1856, /* GL_STENCIL_INDEX_EXT */
- 1845, /* GL_STENCIL_INDEX1 */
- 1850, /* GL_STENCIL_INDEX4 */
- 1853, /* GL_STENCIL_INDEX8 */
- 1846, /* GL_STENCIL_INDEX16 */
- 1583, /* GL_RENDERBUFFER_RED_SIZE */
- 1574, /* GL_RENDERBUFFER_GREEN_SIZE */
- 1569, /* GL_RENDERBUFFER_BLUE_SIZE */
- 1564, /* GL_RENDERBUFFER_ALPHA_SIZE */
- 1571, /* GL_RENDERBUFFER_DEPTH_SIZE */
- 1587, /* GL_RENDERBUFFER_STENCIL_SIZE */
- 657, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- 1101, /* GL_MAX_SAMPLES */
- 2061, /* GL_TEXTURE_GEN_STR_OES */
- 703, /* GL_HALF_FLOAT_OES */
- 1630, /* GL_RGB565_OES */
- 1660, /* GL_RGBA32UI */
- 1623, /* GL_RGB32UI */
+ 403, /* GL_DEPTH_ATTACHMENT */
+ 1830, /* GL_STENCIL_ATTACHMENT */
+ 605, /* GL_FRAMEBUFFER */
+ 1568, /* GL_RENDERBUFFER */
+ 1594, /* GL_RENDERBUFFER_WIDTH */
+ 1581, /* GL_RENDERBUFFER_HEIGHT */
+ 1584, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ 1862, /* GL_STENCIL_INDEX_EXT */
+ 1851, /* GL_STENCIL_INDEX1 */
+ 1856, /* GL_STENCIL_INDEX4 */
+ 1859, /* GL_STENCIL_INDEX8 */
+ 1852, /* GL_STENCIL_INDEX16 */
+ 1588, /* GL_RENDERBUFFER_RED_SIZE */
+ 1579, /* GL_RENDERBUFFER_GREEN_SIZE */
+ 1574, /* GL_RENDERBUFFER_BLUE_SIZE */
+ 1569, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ 1576, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ 1592, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ 658, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ 1105, /* GL_MAX_SAMPLES */
+ 2067, /* GL_TEXTURE_GEN_STR_OES */
+ 705, /* GL_HALF_FLOAT_OES */
+ 1636, /* GL_RGB565_OES */
+ 1666, /* GL_RGBA32UI */
+ 1629, /* GL_RGB32UI */
40, /* GL_ALPHA32UI_EXT */
- 758, /* GL_INTENSITY32UI_EXT */
- 874, /* GL_LUMINANCE32UI_EXT */
- 891, /* GL_LUMINANCE_ALPHA32UI_EXT */
- 1651, /* GL_RGBA16UI */
- 1615, /* GL_RGB16UI */
+ 761, /* GL_INTENSITY32UI_EXT */
+ 878, /* GL_LUMINANCE32UI_EXT */
+ 895, /* GL_LUMINANCE_ALPHA32UI_EXT */
+ 1657, /* GL_RGBA16UI */
+ 1621, /* GL_RGB16UI */
37, /* GL_ALPHA16UI_EXT */
- 755, /* GL_INTENSITY16UI_EXT */
- 869, /* GL_LUMINANCE16UI_EXT */
- 889, /* GL_LUMINANCE_ALPHA16UI_EXT */
- 1670, /* GL_RGBA8UI */
- 1638, /* GL_RGB8UI */
+ 758, /* GL_INTENSITY16UI_EXT */
+ 873, /* GL_LUMINANCE16UI_EXT */
+ 893, /* GL_LUMINANCE_ALPHA16UI_EXT */
+ 1676, /* GL_RGBA8UI */
+ 1644, /* GL_RGB8UI */
45, /* GL_ALPHA8UI_EXT */
- 763, /* GL_INTENSITY8UI_EXT */
- 883, /* GL_LUMINANCE8UI_EXT */
- 893, /* GL_LUMINANCE_ALPHA8UI_EXT */
- 1658, /* GL_RGBA32I */
- 1621, /* GL_RGB32I */
+ 766, /* GL_INTENSITY8UI_EXT */
+ 887, /* GL_LUMINANCE8UI_EXT */
+ 897, /* GL_LUMINANCE_ALPHA8UI_EXT */
+ 1664, /* GL_RGBA32I */
+ 1627, /* GL_RGB32I */
39, /* GL_ALPHA32I_EXT */
- 757, /* GL_INTENSITY32I_EXT */
- 873, /* GL_LUMINANCE32I_EXT */
- 890, /* GL_LUMINANCE_ALPHA32I_EXT */
- 1649, /* GL_RGBA16I */
- 1613, /* GL_RGB16I */
+ 760, /* GL_INTENSITY32I_EXT */
+ 877, /* GL_LUMINANCE32I_EXT */
+ 894, /* GL_LUMINANCE_ALPHA32I_EXT */
+ 1655, /* GL_RGBA16I */
+ 1619, /* GL_RGB16I */
36, /* GL_ALPHA16I_EXT */
- 754, /* GL_INTENSITY16I_EXT */
- 868, /* GL_LUMINANCE16I_EXT */
- 888, /* GL_LUMINANCE_ALPHA16I_EXT */
- 1668, /* GL_RGBA8I */
- 1636, /* GL_RGB8I */
+ 757, /* GL_INTENSITY16I_EXT */
+ 872, /* GL_LUMINANCE16I_EXT */
+ 892, /* GL_LUMINANCE_ALPHA16I_EXT */
+ 1674, /* GL_RGBA8I */
+ 1642, /* GL_RGB8I */
44, /* GL_ALPHA8I_EXT */
- 762, /* GL_INTENSITY8I_EXT */
- 882, /* GL_LUMINANCE8I_EXT */
- 892, /* GL_LUMINANCE_ALPHA8I_EXT */
- 1553, /* GL_RED_INTEGER */
- 699, /* GL_GREEN_INTEGER */
+ 765, /* GL_INTENSITY8I_EXT */
+ 886, /* GL_LUMINANCE8I_EXT */
+ 896, /* GL_LUMINANCE_ALPHA8I_EXT */
+ 1558, /* GL_RED_INTEGER */
+ 700, /* GL_GREEN_INTEGER */
113, /* GL_BLUE_INTEGER */
49, /* GL_ALPHA_INTEGER_EXT */
- 1683, /* GL_RGB_INTEGER */
- 1677, /* GL_RGBA_INTEGER */
+ 1689, /* GL_RGB_INTEGER */
+ 1683, /* GL_RGBA_INTEGER */
84, /* GL_BGR_INTEGER */
82, /* GL_BGRA_INTEGER */
- 895, /* GL_LUMINANCE_INTEGER_EXT */
- 894, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */
- 1679, /* GL_RGBA_INTEGER_MODE_EXT */
- 611, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */
- 652, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */
- 651, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */
- 1694, /* GL_SAMPLER_1D_ARRAY */
- 1700, /* GL_SAMPLER_2D_ARRAY */
- 1710, /* GL_SAMPLER_BUFFER */
- 1696, /* GL_SAMPLER_1D_ARRAY_SHADOW */
- 1702, /* GL_SAMPLER_2D_ARRAY_SHADOW */
- 1713, /* GL_SAMPLER_CUBE_SHADOW */
- 2197, /* GL_UNSIGNED_INT_VEC2 */
- 2199, /* GL_UNSIGNED_INT_VEC3 */
- 2201, /* GL_UNSIGNED_INT_VEC4 */
- 772, /* GL_INT_SAMPLER_1D */
- 776, /* GL_INT_SAMPLER_2D */
- 782, /* GL_INT_SAMPLER_3D */
- 786, /* GL_INT_SAMPLER_CUBE */
- 780, /* GL_INT_SAMPLER_2D_RECT */
- 773, /* GL_INT_SAMPLER_1D_ARRAY */
- 777, /* GL_INT_SAMPLER_2D_ARRAY */
- 784, /* GL_INT_SAMPLER_BUFFER */
- 2181, /* GL_UNSIGNED_INT_SAMPLER_1D */
- 2185, /* GL_UNSIGNED_INT_SAMPLER_2D */
- 2191, /* GL_UNSIGNED_INT_SAMPLER_3D */
- 2195, /* GL_UNSIGNED_INT_SAMPLER_CUBE */
- 2189, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */
- 2182, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */
- 2186, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */
- 2193, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */
- 690, /* GL_GEOMETRY_SHADER */
- 693, /* GL_GEOMETRY_VERTICES_OUT_ARB */
- 687, /* GL_GEOMETRY_INPUT_TYPE_ARB */
- 689, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */
- 1058, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */
- 1141, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */
- 1056, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */
- 1050, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */
- 1054, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */
- 858, /* GL_LOW_FLOAT */
- 1143, /* GL_MEDIUM_FLOAT */
- 704, /* GL_HIGH_FLOAT */
- 859, /* GL_LOW_INT */
- 1144, /* GL_MEDIUM_INT */
- 705, /* GL_HIGH_INT */
- 2171, /* GL_UNSIGNED_INT_10_10_10_2_OES */
- 771, /* GL_INT_10_10_10_2_OES */
- 1752, /* GL_SHADER_BINARY_FORMATS */
- 1244, /* GL_NUM_SHADER_BINARY_FORMATS */
- 1753, /* GL_SHADER_COMPILER */
- 1138, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
- 1130, /* GL_MAX_VARYING_VECTORS */
- 1047, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
- 1529, /* GL_QUERY_WAIT */
- 1523, /* GL_QUERY_NO_WAIT */
- 1519, /* GL_QUERY_BY_REGION_WAIT */
- 1517, /* GL_QUERY_BY_REGION_NO_WAIT */
- 2116, /* GL_TRANSFORM_FEEDBACK */
- 2125, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
- 2119, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
- 2117, /* GL_TRANSFORM_FEEDBACK_BINDING */
- 1513, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
- 545, /* GL_FIRST_VERTEX_CONVENTION */
- 804, /* GL_LAST_VERTEX_CONVENTION */
- 1487, /* GL_PROVOKING_VERTEX */
- 353, /* GL_COPY_READ_BUFFER */
- 354, /* GL_COPY_WRITE_BUFFER */
- 1556, /* GL_RED_SNORM */
- 1690, /* GL_RG_SNORM */
- 1689, /* GL_RGB_SNORM */
- 1682, /* GL_RGBA_SNORM */
- 1535, /* GL_R8_SNORM */
- 1603, /* GL_RG8_SNORM */
- 1642, /* GL_RGB8_SNORM */
- 1674, /* GL_RGBA8_SNORM */
- 1533, /* GL_R16_SNORM */
- 1602, /* GL_RG16_SNORM */
- 1618, /* GL_RGB16_SNORM */
- 1654, /* GL_RGBA16_SNORM */
- 1764, /* GL_SIGNED_NORMALIZED */
- 1444, /* GL_PRIMITIVE_RESTART */
- 1445, /* GL_PRIMITIVE_RESTART_INDEX */
- 1103, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- 1258, /* GL_OBJECT_TYPE */
- 1877, /* GL_SYNC_CONDITION */
- 1882, /* GL_SYNC_STATUS */
- 1879, /* GL_SYNC_FLAGS */
- 1878, /* GL_SYNC_FENCE */
- 1881, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- 2164, /* GL_UNSIGNALED */
- 1763, /* GL_SIGNALED */
+ 899, /* GL_LUMINANCE_INTEGER_EXT */
+ 898, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */
+ 1685, /* GL_RGBA_INTEGER_MODE_EXT */
+ 612, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */
+ 653, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */
+ 652, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */
+ 1700, /* GL_SAMPLER_1D_ARRAY */
+ 1706, /* GL_SAMPLER_2D_ARRAY */
+ 1716, /* GL_SAMPLER_BUFFER */
+ 1702, /* GL_SAMPLER_1D_ARRAY_SHADOW */
+ 1708, /* GL_SAMPLER_2D_ARRAY_SHADOW */
+ 1719, /* GL_SAMPLER_CUBE_SHADOW */
+ 2204, /* GL_UNSIGNED_INT_VEC2 */
+ 2206, /* GL_UNSIGNED_INT_VEC3 */
+ 2208, /* GL_UNSIGNED_INT_VEC4 */
+ 775, /* GL_INT_SAMPLER_1D */
+ 779, /* GL_INT_SAMPLER_2D */
+ 785, /* GL_INT_SAMPLER_3D */
+ 789, /* GL_INT_SAMPLER_CUBE */
+ 783, /* GL_INT_SAMPLER_2D_RECT */
+ 776, /* GL_INT_SAMPLER_1D_ARRAY */
+ 780, /* GL_INT_SAMPLER_2D_ARRAY */
+ 787, /* GL_INT_SAMPLER_BUFFER */
+ 2188, /* GL_UNSIGNED_INT_SAMPLER_1D */
+ 2192, /* GL_UNSIGNED_INT_SAMPLER_2D */
+ 2198, /* GL_UNSIGNED_INT_SAMPLER_3D */
+ 2202, /* GL_UNSIGNED_INT_SAMPLER_CUBE */
+ 2196, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */
+ 2189, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */
+ 2193, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */
+ 2200, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */
+ 691, /* GL_GEOMETRY_SHADER */
+ 694, /* GL_GEOMETRY_VERTICES_OUT_ARB */
+ 688, /* GL_GEOMETRY_INPUT_TYPE_ARB */
+ 690, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */
+ 1062, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */
+ 1145, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */
+ 1060, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */
+ 1054, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */
+ 1058, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */
+ 862, /* GL_LOW_FLOAT */
+ 1147, /* GL_MEDIUM_FLOAT */
+ 706, /* GL_HIGH_FLOAT */
+ 863, /* GL_LOW_INT */
+ 1148, /* GL_MEDIUM_INT */
+ 707, /* GL_HIGH_INT */
+ 2178, /* GL_UNSIGNED_INT_10_10_10_2_OES */
+ 774, /* GL_INT_10_10_10_2_OES */
+ 1758, /* GL_SHADER_BINARY_FORMATS */
+ 1249, /* GL_NUM_SHADER_BINARY_FORMATS */
+ 1759, /* GL_SHADER_COMPILER */
+ 1142, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
+ 1134, /* GL_MAX_VARYING_VECTORS */
+ 1051, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
+ 1534, /* GL_QUERY_WAIT */
+ 1528, /* GL_QUERY_NO_WAIT */
+ 1524, /* GL_QUERY_BY_REGION_WAIT */
+ 1522, /* GL_QUERY_BY_REGION_NO_WAIT */
+ 2122, /* GL_TRANSFORM_FEEDBACK */
+ 2131, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */
+ 2125, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */
+ 2123, /* GL_TRANSFORM_FEEDBACK_BINDING */
+ 1518, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
+ 546, /* GL_FIRST_VERTEX_CONVENTION */
+ 807, /* GL_LAST_VERTEX_CONVENTION */
+ 1492, /* GL_PROVOKING_VERTEX */
+ 354, /* GL_COPY_READ_BUFFER */
+ 355, /* GL_COPY_WRITE_BUFFER */
+ 1561, /* GL_RED_SNORM */
+ 1696, /* GL_RG_SNORM */
+ 1695, /* GL_RGB_SNORM */
+ 1688, /* GL_RGBA_SNORM */
+ 1540, /* GL_R8_SNORM */
+ 1609, /* GL_RG8_SNORM */
+ 1648, /* GL_RGB8_SNORM */
+ 1680, /* GL_RGBA8_SNORM */
+ 1538, /* GL_R16_SNORM */
+ 1608, /* GL_RG16_SNORM */
+ 1624, /* GL_RGB16_SNORM */
+ 1660, /* GL_RGBA16_SNORM */
+ 1770, /* GL_SIGNED_NORMALIZED */
+ 1449, /* GL_PRIMITIVE_RESTART */
+ 1450, /* GL_PRIMITIVE_RESTART_INDEX */
+ 1107, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ 1263, /* GL_OBJECT_TYPE */
+ 1883, /* GL_SYNC_CONDITION */
+ 1888, /* GL_SYNC_STATUS */
+ 1885, /* GL_SYNC_FLAGS */
+ 1884, /* GL_SYNC_FENCE */
+ 1887, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ 2171, /* GL_UNSIGNALED */
+ 1769, /* GL_SIGNALED */
54, /* GL_ALREADY_SIGNALED */
- 2111, /* GL_TIMEOUT_EXPIRED */
+ 2117, /* GL_TIMEOUT_EXPIRED */
315, /* GL_CONDITION_SATISFIED */
- 2281, /* GL_WAIT_FAILED */
+ 2288, /* GL_WAIT_FAILED */
126, /* GL_BUFFER_ACCESS_FLAGS */
132, /* GL_BUFFER_MAP_LENGTH */
133, /* GL_BUFFER_MAP_OFFSET */
- 1133, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */
- 1048, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */
- 1049, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */
- 1044, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */
- 329, /* GL_CONTEXT_PROFILE_MASK */
- 530, /* GL_EVAL_BIT */
- 1538, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- 851, /* GL_LIST_BIT */
- 1984, /* GL_TEXTURE_BIT */
- 1733, /* GL_SCISSOR_BIT */
+ 1137, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */
+ 1052, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */
+ 1053, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */
+ 1048, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */
+ 330, /* GL_CONTEXT_PROFILE_MASK */
+ 531, /* GL_EVAL_BIT */
+ 1543, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ 854, /* GL_LIST_BIT */
+ 1990, /* GL_TEXTURE_BIT */
+ 1739, /* GL_SCISSOR_BIT */
30, /* GL_ALL_ATTRIB_BITS */
- 1209, /* GL_MULTISAMPLE_BIT */
+ 1213, /* GL_MULTISAMPLE_BIT */
31, /* GL_ALL_CLIENT_ATTRIB_BITS */
};
diff --git a/src/mesa/main/eval.c b/src/mesa/main/eval.c
index 9ab55072f00..e651715f788 100644
--- a/src/mesa/main/eval.c
+++ b/src/mesa/main/eval.c
@@ -545,7 +545,7 @@ _mesa_Map2d( GLenum target,
static void GLAPIENTRY
-_mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
+_mesa_GetnMapdvARB( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_1d_map *map1d;
@@ -553,6 +553,7 @@ _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
GLint i, n;
GLfloat *data;
GLuint comps;
+ GLsizei numBytes;
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -577,6 +578,9 @@ _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
n = map2d->Uorder * map2d->Vorder * comps;
}
if (data) {
+ numBytes = n * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
for (i=0;i<n;i++) {
v[i] = data[i];
}
@@ -584,19 +588,31 @@ _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
break;
case GL_ORDER:
if (map1d) {
+ numBytes = 1 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLdouble) map1d->Order;
}
else {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLdouble) map2d->Uorder;
v[1] = (GLdouble) map2d->Vorder;
}
break;
case GL_DOMAIN:
if (map1d) {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLdouble) map1d->u1;
v[1] = (GLdouble) map1d->u2;
}
else {
+ numBytes = 4 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLdouble) map2d->u1;
v[1] = (GLdouble) map2d->u2;
v[2] = (GLdouble) map2d->v1;
@@ -606,11 +622,22 @@ _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glGetMapdv(query)" );
}
+ return;
+
+overflow:
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnMapdvARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
}
+static void GLAPIENTRY
+_mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v )
+{
+ _mesa_GetnMapdvARB(target, query, INT_MAX, v);
+}
static void GLAPIENTRY
-_mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
+_mesa_GetnMapfvARB( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_1d_map *map1d;
@@ -618,6 +645,7 @@ _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
GLint i, n;
GLfloat *data;
GLuint comps;
+ GLsizei numBytes;
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -642,6 +670,9 @@ _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
n = map2d->Uorder * map2d->Vorder * comps;
}
if (data) {
+ numBytes = n * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
for (i=0;i<n;i++) {
v[i] = data[i];
}
@@ -649,19 +680,31 @@ _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
break;
case GL_ORDER:
if (map1d) {
+ numBytes = 1 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLfloat) map1d->Order;
}
else {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = (GLfloat) map2d->Uorder;
v[1] = (GLfloat) map2d->Vorder;
}
break;
case GL_DOMAIN:
if (map1d) {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = map1d->u1;
v[1] = map1d->u2;
}
else {
+ numBytes = 4 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = map2d->u1;
v[1] = map2d->u2;
v[2] = map2d->v1;
@@ -671,11 +714,24 @@ _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glGetMapfv(query)" );
}
+ return;
+
+overflow:
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnMapfvARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
}
static void GLAPIENTRY
-_mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
+_mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v )
+{
+ _mesa_GetnMapfvARB(target, query, INT_MAX, v);
+}
+
+
+static void GLAPIENTRY
+_mesa_GetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_1d_map *map1d;
@@ -683,6 +739,7 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
GLuint i, n;
GLfloat *data;
GLuint comps;
+ GLsizei numBytes;
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -707,6 +764,9 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
n = map2d->Uorder * map2d->Vorder * comps;
}
if (data) {
+ numBytes = n * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
for (i=0;i<n;i++) {
v[i] = IROUND(data[i]);
}
@@ -714,19 +774,31 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
break;
case GL_ORDER:
if (map1d) {
+ numBytes = 1 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = map1d->Order;
}
else {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = map2d->Uorder;
v[1] = map2d->Vorder;
}
break;
case GL_DOMAIN:
if (map1d) {
+ numBytes = 2 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = IROUND(map1d->u1);
v[1] = IROUND(map1d->u2);
}
else {
+ numBytes = 4 * sizeof *v;
+ if (bufSize < numBytes)
+ goto overflow;
v[0] = IROUND(map2d->u1);
v[1] = IROUND(map2d->u2);
v[2] = IROUND(map2d->v1);
@@ -736,9 +808,21 @@ _mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glGetMapiv(query)" );
}
+ return;
+
+overflow:
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnMapivARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
}
+static void GLAPIENTRY
+_mesa_GetMapiv( GLenum target, GLenum query, GLint *v )
+{
+ _mesa_GetnMapivARB(target, query, INT_MAX, v);
+}
+
static void GLAPIENTRY
_mesa_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 )
@@ -832,6 +916,11 @@ _mesa_init_eval_dispatch(struct _glapi_table *disp)
SET_MapGrid1f(disp, _mesa_MapGrid1f);
SET_MapGrid2d(disp, _mesa_MapGrid2d);
SET_MapGrid2f(disp, _mesa_MapGrid2f);
+
+ /* GL_ARB_robustness */
+ SET_GetnMapdvARB(disp, _mesa_GetnMapdvARB);
+ SET_GetnMapfvARB(disp, _mesa_GetnMapfvARB);
+ SET_GetnMapivARB(disp, _mesa_GetnMapivARB);
}
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 8a0ab961523..a9ef8fa4cb7 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -107,6 +107,7 @@ static const struct extension extension_table[] = {
{ "GL_ARB_point_parameters", o(EXT_point_parameters), GL, 1997 },
{ "GL_ARB_point_sprite", o(ARB_point_sprite), GL, 2003 },
{ "GL_ARB_provoking_vertex", o(EXT_provoking_vertex), GL, 2009 },
+ { "GL_ARB_robustness", o(dummy_true), GL, 2010 },
{ "GL_ARB_sampler_objects", o(ARB_sampler_objects), GL, 2009 },
{ "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 },
{ "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 },
@@ -258,6 +259,9 @@ static const struct extension extension_table[] = {
/* Vendor extensions */
{ "GL_3DFX_texture_compression_FXT1", o(TDFX_texture_compression_FXT1), GL, 1999 },
{ "GL_AMD_conservative_depth", o(AMD_conservative_depth), GL, 2009 },
+ { "GL_AMD_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 },
+ { "GL_AMD_seamless_cubemap_per_texture", o(AMD_seamless_cubemap_per_texture), GL, 2009 },
+ { "GL_AMD_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 },
{ "GL_APPLE_client_storage", o(APPLE_client_storage), GL, 2002 },
{ "GL_APPLE_object_purgeable", o(APPLE_object_purgeable), GL, 2006 },
{ "GL_APPLE_packed_pixels", o(APPLE_packed_pixels), GL, 2002 },
@@ -501,6 +505,7 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
ctx->Extensions.EXT_texture_env_dot3 = GL_TRUE;
ctx->Extensions.EXT_texture_mirror_clamp = GL_TRUE;
ctx->Extensions.EXT_texture_lod_bias = GL_TRUE;
+ ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE;
#if FEATURE_EXT_texture_sRGB
ctx->Extensions.EXT_texture_sRGB = GL_TRUE;
ctx->Extensions.EXT_texture_sRGB_decode = GL_TRUE;
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 1edb310ea13..64f135e21dd 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -418,6 +418,15 @@ _mesa_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
case GL_RG:
fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED;
return;
+ case GL_RGB:
+ switch (rb->Format) {
+ case MESA_FORMAT_RGB9_E5_FLOAT:
+ fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED;
+ return;
+ default:;
+ }
+ break;
+
default:
/* render buffer format is supported by software rendering */
;
@@ -1175,6 +1184,10 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
case GL_INTENSITY32F_ARB:
return ctx->Extensions.ARB_texture_float &&
ctx->Extensions.ARB_framebuffer_object ? GL_INTENSITY : 0;
+ case GL_RGB9_E5:
+ return ctx->Extensions.EXT_texture_shared_exponent ? GL_RGB : 0;
+ case GL_R11F_G11F_B10F:
+ return ctx->Extensions.EXT_packed_float ? GL_RGB : 0;
/* XXX add integer formats eventually */
default:
return 0;
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 4c31ccb763c..60e8ae390a5 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -1072,7 +1072,25 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] =
0, 0, 0, 0,
0, 16, 0, 0, 0,
1, 1, 2
- }
+ },
+ {
+ MESA_FORMAT_RGB9_E5_FLOAT,
+ "MESA_FORMAT_RGB9_E5",
+ GL_RGB,
+ GL_FLOAT,
+ 9, 9, 9, 0,
+ 0, 0, 0, 0, 0,
+ 1, 1, 4
+ },
+ {
+ MESA_FORMAT_R11_G11_B10_FLOAT,
+ "MESA_FORMAT_R11_G11_B10_FLOAT",
+ GL_RGB,
+ GL_FLOAT,
+ 11, 11, 10, 0,
+ 0, 0, 0, 0, 0,
+ 1, 1, 4
+ },
};
@@ -1803,6 +1821,16 @@ _mesa_format_to_type_and_comps(gl_format format,
*comps = 4;
return;
+ case MESA_FORMAT_RGB9_E5_FLOAT:
+ *datatype = GL_UNSIGNED_INT_5_9_9_9_REV;
+ *comps = 3;
+ return;
+
+ case MESA_FORMAT_R11_G11_B10_FLOAT:
+ *datatype = GL_UNSIGNED_INT_10F_11F_11F_REV;
+ *comps = 3;
+ return;
+
case MESA_FORMAT_COUNT:
assert(0);
return;
diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h
index 15ac62cfef9..df9ed70a3e0 100644
--- a/src/mesa/main/formats.h
+++ b/src/mesa/main/formats.h
@@ -206,6 +206,9 @@ typedef enum
MESA_FORMAT_SIGNED_AL1616, /* AAAA AAAA AAAA AAAA LLLL LLLL LLLL LLLL */
MESA_FORMAT_SIGNED_I16, /* IIII IIII IIII IIII */
+ MESA_FORMAT_RGB9_E5_FLOAT,
+ MESA_FORMAT_R11_G11_B10_FLOAT,
+
MESA_FORMAT_COUNT
} gl_format;
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index e18803280c1..0492e1585c3 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1163,7 +1163,7 @@ static const struct value_desc values[] = {
/* GL_EXT_provoking_vertex */
{ GL_PROVOKING_VERTEX_EXT,
- CONTEXT_BOOL(Light.ProvokingVertex), extra_EXT_provoking_vertex },
+ CONTEXT_ENUM(Light.ProvokingVertex), extra_EXT_provoking_vertex },
{ GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT,
CONTEXT_BOOL(Const.QuadsFollowProvokingVertexConvention),
extra_EXT_provoking_vertex },
@@ -1281,6 +1281,9 @@ static const struct value_desc values[] = {
/* GL 3.2 */
{ GL_CONTEXT_PROFILE_MASK, CONTEXT_INT(Const.ProfileMask),
extra_version_32 },
+
+ /* GL_ARB_robustness */
+ { GL_RESET_NOTIFICATION_STRATEGY_ARB, CONTEXT_ENUM(Const.ResetStrategy), NO_EXTRA },
#endif /* FEATURE_GL */
};
diff --git a/src/mesa/main/get.h b/src/mesa/main/get.h
index 99a004b71dd..9422efec565 100644
--- a/src/mesa/main/get.h
+++ b/src/mesa/main/get.h
@@ -74,4 +74,8 @@ _mesa_GetStringi(GLenum name, GLuint index);
extern GLenum GLAPIENTRY
_mesa_GetError( void );
+/* GL_ARB_robustness */
+extern GLenum GLAPIENTRY
+_mesa_GetGraphicsResetStatusARB( void );
+
#endif
diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index f8866f68581..c381fb2dfdf 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -251,3 +251,20 @@ _mesa_GetError( void )
ctx->ErrorDebugCount = 0;
return e;
}
+
+/**
+ * Returns an error code specified by GL_ARB_robustness, or GL_NO_ERROR.
+ * \return current context status
+ */
+GLenum GLAPIENTRY
+_mesa_GetGraphicsResetStatusARB( void )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLenum status = ctx->ResetStatus;
+
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(ctx, "glGetGraphicsResetStatusARB"
+ "(always returns GL_NO_ERROR)\n");
+
+ return status;
+}
diff --git a/src/mesa/main/glapidispatch.h b/src/mesa/main/glapidispatch.h
index c1cc6cb1254..93cc0122df0 100644
--- a/src/mesa/main/glapidispatch.h
+++ b/src/mesa/main/glapidispatch.h
@@ -59,7 +59,7 @@
} while(0)
/* total number of offsets below */
-#define _gloffset_COUNT 908
+#define _gloffset_COUNT 928
#define _gloffset_NewList 0
#define _gloffset_EndList 1
@@ -690,292 +690,312 @@
#define _gloffset_GetShaderPrecisionFormat 623
#define _gloffset_ReleaseShaderCompiler 624
#define _gloffset_ShaderBinary 625
-#define _gloffset_PolygonOffsetEXT 626
-#define _gloffset_GetPixelTexGenParameterfvSGIS 627
-#define _gloffset_GetPixelTexGenParameterivSGIS 628
-#define _gloffset_PixelTexGenParameterfSGIS 629
-#define _gloffset_PixelTexGenParameterfvSGIS 630
-#define _gloffset_PixelTexGenParameteriSGIS 631
-#define _gloffset_PixelTexGenParameterivSGIS 632
-#define _gloffset_SampleMaskSGIS 633
-#define _gloffset_SamplePatternSGIS 634
-#define _gloffset_ColorPointerEXT 635
-#define _gloffset_EdgeFlagPointerEXT 636
-#define _gloffset_IndexPointerEXT 637
-#define _gloffset_NormalPointerEXT 638
-#define _gloffset_TexCoordPointerEXT 639
-#define _gloffset_VertexPointerEXT 640
-#define _gloffset_PointParameterfEXT 641
-#define _gloffset_PointParameterfvEXT 642
-#define _gloffset_LockArraysEXT 643
-#define _gloffset_UnlockArraysEXT 644
-#define _gloffset_SecondaryColor3bEXT 645
-#define _gloffset_SecondaryColor3bvEXT 646
-#define _gloffset_SecondaryColor3dEXT 647
-#define _gloffset_SecondaryColor3dvEXT 648
-#define _gloffset_SecondaryColor3fEXT 649
-#define _gloffset_SecondaryColor3fvEXT 650
-#define _gloffset_SecondaryColor3iEXT 651
-#define _gloffset_SecondaryColor3ivEXT 652
-#define _gloffset_SecondaryColor3sEXT 653
-#define _gloffset_SecondaryColor3svEXT 654
-#define _gloffset_SecondaryColor3ubEXT 655
-#define _gloffset_SecondaryColor3ubvEXT 656
-#define _gloffset_SecondaryColor3uiEXT 657
-#define _gloffset_SecondaryColor3uivEXT 658
-#define _gloffset_SecondaryColor3usEXT 659
-#define _gloffset_SecondaryColor3usvEXT 660
-#define _gloffset_SecondaryColorPointerEXT 661
-#define _gloffset_MultiDrawArraysEXT 662
-#define _gloffset_MultiDrawElementsEXT 663
-#define _gloffset_FogCoordPointerEXT 664
-#define _gloffset_FogCoorddEXT 665
-#define _gloffset_FogCoorddvEXT 666
-#define _gloffset_FogCoordfEXT 667
-#define _gloffset_FogCoordfvEXT 668
-#define _gloffset_PixelTexGenSGIX 669
-#define _gloffset_BlendFuncSeparateEXT 670
-#define _gloffset_FlushVertexArrayRangeNV 671
-#define _gloffset_VertexArrayRangeNV 672
-#define _gloffset_CombinerInputNV 673
-#define _gloffset_CombinerOutputNV 674
-#define _gloffset_CombinerParameterfNV 675
-#define _gloffset_CombinerParameterfvNV 676
-#define _gloffset_CombinerParameteriNV 677
-#define _gloffset_CombinerParameterivNV 678
-#define _gloffset_FinalCombinerInputNV 679
-#define _gloffset_GetCombinerInputParameterfvNV 680
-#define _gloffset_GetCombinerInputParameterivNV 681
-#define _gloffset_GetCombinerOutputParameterfvNV 682
-#define _gloffset_GetCombinerOutputParameterivNV 683
-#define _gloffset_GetFinalCombinerInputParameterfvNV 684
-#define _gloffset_GetFinalCombinerInputParameterivNV 685
-#define _gloffset_ResizeBuffersMESA 686
-#define _gloffset_WindowPos2dMESA 687
-#define _gloffset_WindowPos2dvMESA 688
-#define _gloffset_WindowPos2fMESA 689
-#define _gloffset_WindowPos2fvMESA 690
-#define _gloffset_WindowPos2iMESA 691
-#define _gloffset_WindowPos2ivMESA 692
-#define _gloffset_WindowPos2sMESA 693
-#define _gloffset_WindowPos2svMESA 694
-#define _gloffset_WindowPos3dMESA 695
-#define _gloffset_WindowPos3dvMESA 696
-#define _gloffset_WindowPos3fMESA 697
-#define _gloffset_WindowPos3fvMESA 698
-#define _gloffset_WindowPos3iMESA 699
-#define _gloffset_WindowPos3ivMESA 700
-#define _gloffset_WindowPos3sMESA 701
-#define _gloffset_WindowPos3svMESA 702
-#define _gloffset_WindowPos4dMESA 703
-#define _gloffset_WindowPos4dvMESA 704
-#define _gloffset_WindowPos4fMESA 705
-#define _gloffset_WindowPos4fvMESA 706
-#define _gloffset_WindowPos4iMESA 707
-#define _gloffset_WindowPos4ivMESA 708
-#define _gloffset_WindowPos4sMESA 709
-#define _gloffset_WindowPos4svMESA 710
-#define _gloffset_MultiModeDrawArraysIBM 711
-#define _gloffset_MultiModeDrawElementsIBM 712
-#define _gloffset_DeleteFencesNV 713
-#define _gloffset_FinishFenceNV 714
-#define _gloffset_GenFencesNV 715
-#define _gloffset_GetFenceivNV 716
-#define _gloffset_IsFenceNV 717
-#define _gloffset_SetFenceNV 718
-#define _gloffset_TestFenceNV 719
-#define _gloffset_AreProgramsResidentNV 720
-#define _gloffset_BindProgramNV 721
-#define _gloffset_DeleteProgramsNV 722
-#define _gloffset_ExecuteProgramNV 723
-#define _gloffset_GenProgramsNV 724
-#define _gloffset_GetProgramParameterdvNV 725
-#define _gloffset_GetProgramParameterfvNV 726
-#define _gloffset_GetProgramStringNV 727
-#define _gloffset_GetProgramivNV 728
-#define _gloffset_GetTrackMatrixivNV 729
-#define _gloffset_GetVertexAttribPointervNV 730
-#define _gloffset_GetVertexAttribdvNV 731
-#define _gloffset_GetVertexAttribfvNV 732
-#define _gloffset_GetVertexAttribivNV 733
-#define _gloffset_IsProgramNV 734
-#define _gloffset_LoadProgramNV 735
-#define _gloffset_ProgramParameters4dvNV 736
-#define _gloffset_ProgramParameters4fvNV 737
-#define _gloffset_RequestResidentProgramsNV 738
-#define _gloffset_TrackMatrixNV 739
-#define _gloffset_VertexAttrib1dNV 740
-#define _gloffset_VertexAttrib1dvNV 741
-#define _gloffset_VertexAttrib1fNV 742
-#define _gloffset_VertexAttrib1fvNV 743
-#define _gloffset_VertexAttrib1sNV 744
-#define _gloffset_VertexAttrib1svNV 745
-#define _gloffset_VertexAttrib2dNV 746
-#define _gloffset_VertexAttrib2dvNV 747
-#define _gloffset_VertexAttrib2fNV 748
-#define _gloffset_VertexAttrib2fvNV 749
-#define _gloffset_VertexAttrib2sNV 750
-#define _gloffset_VertexAttrib2svNV 751
-#define _gloffset_VertexAttrib3dNV 752
-#define _gloffset_VertexAttrib3dvNV 753
-#define _gloffset_VertexAttrib3fNV 754
-#define _gloffset_VertexAttrib3fvNV 755
-#define _gloffset_VertexAttrib3sNV 756
-#define _gloffset_VertexAttrib3svNV 757
-#define _gloffset_VertexAttrib4dNV 758
-#define _gloffset_VertexAttrib4dvNV 759
-#define _gloffset_VertexAttrib4fNV 760
-#define _gloffset_VertexAttrib4fvNV 761
-#define _gloffset_VertexAttrib4sNV 762
-#define _gloffset_VertexAttrib4svNV 763
-#define _gloffset_VertexAttrib4ubNV 764
-#define _gloffset_VertexAttrib4ubvNV 765
-#define _gloffset_VertexAttribPointerNV 766
-#define _gloffset_VertexAttribs1dvNV 767
-#define _gloffset_VertexAttribs1fvNV 768
-#define _gloffset_VertexAttribs1svNV 769
-#define _gloffset_VertexAttribs2dvNV 770
-#define _gloffset_VertexAttribs2fvNV 771
-#define _gloffset_VertexAttribs2svNV 772
-#define _gloffset_VertexAttribs3dvNV 773
-#define _gloffset_VertexAttribs3fvNV 774
-#define _gloffset_VertexAttribs3svNV 775
-#define _gloffset_VertexAttribs4dvNV 776
-#define _gloffset_VertexAttribs4fvNV 777
-#define _gloffset_VertexAttribs4svNV 778
-#define _gloffset_VertexAttribs4ubvNV 779
-#define _gloffset_GetTexBumpParameterfvATI 780
-#define _gloffset_GetTexBumpParameterivATI 781
-#define _gloffset_TexBumpParameterfvATI 782
-#define _gloffset_TexBumpParameterivATI 783
-#define _gloffset_AlphaFragmentOp1ATI 784
-#define _gloffset_AlphaFragmentOp2ATI 785
-#define _gloffset_AlphaFragmentOp3ATI 786
-#define _gloffset_BeginFragmentShaderATI 787
-#define _gloffset_BindFragmentShaderATI 788
-#define _gloffset_ColorFragmentOp1ATI 789
-#define _gloffset_ColorFragmentOp2ATI 790
-#define _gloffset_ColorFragmentOp3ATI 791
-#define _gloffset_DeleteFragmentShaderATI 792
-#define _gloffset_EndFragmentShaderATI 793
-#define _gloffset_GenFragmentShadersATI 794
-#define _gloffset_PassTexCoordATI 795
-#define _gloffset_SampleMapATI 796
-#define _gloffset_SetFragmentShaderConstantATI 797
-#define _gloffset_PointParameteriNV 798
-#define _gloffset_PointParameterivNV 799
-#define _gloffset_ActiveStencilFaceEXT 800
-#define _gloffset_BindVertexArrayAPPLE 801
-#define _gloffset_DeleteVertexArraysAPPLE 802
-#define _gloffset_GenVertexArraysAPPLE 803
-#define _gloffset_IsVertexArrayAPPLE 804
-#define _gloffset_GetProgramNamedParameterdvNV 805
-#define _gloffset_GetProgramNamedParameterfvNV 806
-#define _gloffset_ProgramNamedParameter4dNV 807
-#define _gloffset_ProgramNamedParameter4dvNV 808
-#define _gloffset_ProgramNamedParameter4fNV 809
-#define _gloffset_ProgramNamedParameter4fvNV 810
-#define _gloffset_PrimitiveRestartIndexNV 811
-#define _gloffset_PrimitiveRestartNV 812
-#define _gloffset_DepthBoundsEXT 813
-#define _gloffset_BlendEquationSeparateEXT 814
-#define _gloffset_BindFramebufferEXT 815
-#define _gloffset_BindRenderbufferEXT 816
-#define _gloffset_CheckFramebufferStatusEXT 817
-#define _gloffset_DeleteFramebuffersEXT 818
-#define _gloffset_DeleteRenderbuffersEXT 819
-#define _gloffset_FramebufferRenderbufferEXT 820
-#define _gloffset_FramebufferTexture1DEXT 821
-#define _gloffset_FramebufferTexture2DEXT 822
-#define _gloffset_FramebufferTexture3DEXT 823
-#define _gloffset_GenFramebuffersEXT 824
-#define _gloffset_GenRenderbuffersEXT 825
-#define _gloffset_GenerateMipmapEXT 826
-#define _gloffset_GetFramebufferAttachmentParameterivEXT 827
-#define _gloffset_GetRenderbufferParameterivEXT 828
-#define _gloffset_IsFramebufferEXT 829
-#define _gloffset_IsRenderbufferEXT 830
-#define _gloffset_RenderbufferStorageEXT 831
-#define _gloffset_BlitFramebufferEXT 832
-#define _gloffset_BufferParameteriAPPLE 833
-#define _gloffset_FlushMappedBufferRangeAPPLE 834
-#define _gloffset_BindFragDataLocationEXT 835
-#define _gloffset_GetFragDataLocationEXT 836
-#define _gloffset_GetUniformuivEXT 837
-#define _gloffset_GetVertexAttribIivEXT 838
-#define _gloffset_GetVertexAttribIuivEXT 839
-#define _gloffset_Uniform1uiEXT 840
-#define _gloffset_Uniform1uivEXT 841
-#define _gloffset_Uniform2uiEXT 842
-#define _gloffset_Uniform2uivEXT 843
-#define _gloffset_Uniform3uiEXT 844
-#define _gloffset_Uniform3uivEXT 845
-#define _gloffset_Uniform4uiEXT 846
-#define _gloffset_Uniform4uivEXT 847
-#define _gloffset_VertexAttribI1iEXT 848
-#define _gloffset_VertexAttribI1ivEXT 849
-#define _gloffset_VertexAttribI1uiEXT 850
-#define _gloffset_VertexAttribI1uivEXT 851
-#define _gloffset_VertexAttribI2iEXT 852
-#define _gloffset_VertexAttribI2ivEXT 853
-#define _gloffset_VertexAttribI2uiEXT 854
-#define _gloffset_VertexAttribI2uivEXT 855
-#define _gloffset_VertexAttribI3iEXT 856
-#define _gloffset_VertexAttribI3ivEXT 857
-#define _gloffset_VertexAttribI3uiEXT 858
-#define _gloffset_VertexAttribI3uivEXT 859
-#define _gloffset_VertexAttribI4bvEXT 860
-#define _gloffset_VertexAttribI4iEXT 861
-#define _gloffset_VertexAttribI4ivEXT 862
-#define _gloffset_VertexAttribI4svEXT 863
-#define _gloffset_VertexAttribI4ubvEXT 864
-#define _gloffset_VertexAttribI4uiEXT 865
-#define _gloffset_VertexAttribI4uivEXT 866
-#define _gloffset_VertexAttribI4usvEXT 867
-#define _gloffset_VertexAttribIPointerEXT 868
-#define _gloffset_FramebufferTextureLayerEXT 869
-#define _gloffset_ColorMaskIndexedEXT 870
-#define _gloffset_DisableIndexedEXT 871
-#define _gloffset_EnableIndexedEXT 872
-#define _gloffset_GetBooleanIndexedvEXT 873
-#define _gloffset_GetIntegerIndexedvEXT 874
-#define _gloffset_IsEnabledIndexedEXT 875
-#define _gloffset_ClearColorIiEXT 876
-#define _gloffset_ClearColorIuiEXT 877
-#define _gloffset_GetTexParameterIivEXT 878
-#define _gloffset_GetTexParameterIuivEXT 879
-#define _gloffset_TexParameterIivEXT 880
-#define _gloffset_TexParameterIuivEXT 881
-#define _gloffset_BeginConditionalRenderNV 882
-#define _gloffset_EndConditionalRenderNV 883
-#define _gloffset_BeginTransformFeedbackEXT 884
-#define _gloffset_BindBufferBaseEXT 885
-#define _gloffset_BindBufferOffsetEXT 886
-#define _gloffset_BindBufferRangeEXT 887
-#define _gloffset_EndTransformFeedbackEXT 888
-#define _gloffset_GetTransformFeedbackVaryingEXT 889
-#define _gloffset_TransformFeedbackVaryingsEXT 890
-#define _gloffset_ProvokingVertexEXT 891
-#define _gloffset_GetTexParameterPointervAPPLE 892
-#define _gloffset_TextureRangeAPPLE 893
-#define _gloffset_GetObjectParameterivAPPLE 894
-#define _gloffset_ObjectPurgeableAPPLE 895
-#define _gloffset_ObjectUnpurgeableAPPLE 896
-#define _gloffset_ActiveProgramEXT 897
-#define _gloffset_CreateShaderProgramEXT 898
-#define _gloffset_UseShaderProgramEXT 899
-#define _gloffset_TextureBarrierNV 900
-#define _gloffset_StencilFuncSeparateATI 901
-#define _gloffset_ProgramEnvParameters4fvEXT 902
-#define _gloffset_ProgramLocalParameters4fvEXT 903
-#define _gloffset_GetQueryObjecti64vEXT 904
-#define _gloffset_GetQueryObjectui64vEXT 905
-#define _gloffset_EGLImageTargetRenderbufferStorageOES 906
-#define _gloffset_EGLImageTargetTexture2DOES 907
+#define _gloffset_GetGraphicsResetStatusARB 626
+#define _gloffset_GetnColorTableARB 627
+#define _gloffset_GetnCompressedTexImageARB 628
+#define _gloffset_GetnConvolutionFilterARB 629
+#define _gloffset_GetnHistogramARB 630
+#define _gloffset_GetnMapdvARB 631
+#define _gloffset_GetnMapfvARB 632
+#define _gloffset_GetnMapivARB 633
+#define _gloffset_GetnMinmaxARB 634
+#define _gloffset_GetnPixelMapfvARB 635
+#define _gloffset_GetnPixelMapuivARB 636
+#define _gloffset_GetnPixelMapusvARB 637
+#define _gloffset_GetnPolygonStippleARB 638
+#define _gloffset_GetnSeparableFilterARB 639
+#define _gloffset_GetnTexImageARB 640
+#define _gloffset_GetnUniformdvARB 641
+#define _gloffset_GetnUniformfvARB 642
+#define _gloffset_GetnUniformivARB 643
+#define _gloffset_GetnUniformuivARB 644
+#define _gloffset_ReadnPixelsARB 645
+#define _gloffset_PolygonOffsetEXT 646
+#define _gloffset_GetPixelTexGenParameterfvSGIS 647
+#define _gloffset_GetPixelTexGenParameterivSGIS 648
+#define _gloffset_PixelTexGenParameterfSGIS 649
+#define _gloffset_PixelTexGenParameterfvSGIS 650
+#define _gloffset_PixelTexGenParameteriSGIS 651
+#define _gloffset_PixelTexGenParameterivSGIS 652
+#define _gloffset_SampleMaskSGIS 653
+#define _gloffset_SamplePatternSGIS 654
+#define _gloffset_ColorPointerEXT 655
+#define _gloffset_EdgeFlagPointerEXT 656
+#define _gloffset_IndexPointerEXT 657
+#define _gloffset_NormalPointerEXT 658
+#define _gloffset_TexCoordPointerEXT 659
+#define _gloffset_VertexPointerEXT 660
+#define _gloffset_PointParameterfEXT 661
+#define _gloffset_PointParameterfvEXT 662
+#define _gloffset_LockArraysEXT 663
+#define _gloffset_UnlockArraysEXT 664
+#define _gloffset_SecondaryColor3bEXT 665
+#define _gloffset_SecondaryColor3bvEXT 666
+#define _gloffset_SecondaryColor3dEXT 667
+#define _gloffset_SecondaryColor3dvEXT 668
+#define _gloffset_SecondaryColor3fEXT 669
+#define _gloffset_SecondaryColor3fvEXT 670
+#define _gloffset_SecondaryColor3iEXT 671
+#define _gloffset_SecondaryColor3ivEXT 672
+#define _gloffset_SecondaryColor3sEXT 673
+#define _gloffset_SecondaryColor3svEXT 674
+#define _gloffset_SecondaryColor3ubEXT 675
+#define _gloffset_SecondaryColor3ubvEXT 676
+#define _gloffset_SecondaryColor3uiEXT 677
+#define _gloffset_SecondaryColor3uivEXT 678
+#define _gloffset_SecondaryColor3usEXT 679
+#define _gloffset_SecondaryColor3usvEXT 680
+#define _gloffset_SecondaryColorPointerEXT 681
+#define _gloffset_MultiDrawArraysEXT 682
+#define _gloffset_MultiDrawElementsEXT 683
+#define _gloffset_FogCoordPointerEXT 684
+#define _gloffset_FogCoorddEXT 685
+#define _gloffset_FogCoorddvEXT 686
+#define _gloffset_FogCoordfEXT 687
+#define _gloffset_FogCoordfvEXT 688
+#define _gloffset_PixelTexGenSGIX 689
+#define _gloffset_BlendFuncSeparateEXT 690
+#define _gloffset_FlushVertexArrayRangeNV 691
+#define _gloffset_VertexArrayRangeNV 692
+#define _gloffset_CombinerInputNV 693
+#define _gloffset_CombinerOutputNV 694
+#define _gloffset_CombinerParameterfNV 695
+#define _gloffset_CombinerParameterfvNV 696
+#define _gloffset_CombinerParameteriNV 697
+#define _gloffset_CombinerParameterivNV 698
+#define _gloffset_FinalCombinerInputNV 699
+#define _gloffset_GetCombinerInputParameterfvNV 700
+#define _gloffset_GetCombinerInputParameterivNV 701
+#define _gloffset_GetCombinerOutputParameterfvNV 702
+#define _gloffset_GetCombinerOutputParameterivNV 703
+#define _gloffset_GetFinalCombinerInputParameterfvNV 704
+#define _gloffset_GetFinalCombinerInputParameterivNV 705
+#define _gloffset_ResizeBuffersMESA 706
+#define _gloffset_WindowPos2dMESA 707
+#define _gloffset_WindowPos2dvMESA 708
+#define _gloffset_WindowPos2fMESA 709
+#define _gloffset_WindowPos2fvMESA 710
+#define _gloffset_WindowPos2iMESA 711
+#define _gloffset_WindowPos2ivMESA 712
+#define _gloffset_WindowPos2sMESA 713
+#define _gloffset_WindowPos2svMESA 714
+#define _gloffset_WindowPos3dMESA 715
+#define _gloffset_WindowPos3dvMESA 716
+#define _gloffset_WindowPos3fMESA 717
+#define _gloffset_WindowPos3fvMESA 718
+#define _gloffset_WindowPos3iMESA 719
+#define _gloffset_WindowPos3ivMESA 720
+#define _gloffset_WindowPos3sMESA 721
+#define _gloffset_WindowPos3svMESA 722
+#define _gloffset_WindowPos4dMESA 723
+#define _gloffset_WindowPos4dvMESA 724
+#define _gloffset_WindowPos4fMESA 725
+#define _gloffset_WindowPos4fvMESA 726
+#define _gloffset_WindowPos4iMESA 727
+#define _gloffset_WindowPos4ivMESA 728
+#define _gloffset_WindowPos4sMESA 729
+#define _gloffset_WindowPos4svMESA 730
+#define _gloffset_MultiModeDrawArraysIBM 731
+#define _gloffset_MultiModeDrawElementsIBM 732
+#define _gloffset_DeleteFencesNV 733
+#define _gloffset_FinishFenceNV 734
+#define _gloffset_GenFencesNV 735
+#define _gloffset_GetFenceivNV 736
+#define _gloffset_IsFenceNV 737
+#define _gloffset_SetFenceNV 738
+#define _gloffset_TestFenceNV 739
+#define _gloffset_AreProgramsResidentNV 740
+#define _gloffset_BindProgramNV 741
+#define _gloffset_DeleteProgramsNV 742
+#define _gloffset_ExecuteProgramNV 743
+#define _gloffset_GenProgramsNV 744
+#define _gloffset_GetProgramParameterdvNV 745
+#define _gloffset_GetProgramParameterfvNV 746
+#define _gloffset_GetProgramStringNV 747
+#define _gloffset_GetProgramivNV 748
+#define _gloffset_GetTrackMatrixivNV 749
+#define _gloffset_GetVertexAttribPointervNV 750
+#define _gloffset_GetVertexAttribdvNV 751
+#define _gloffset_GetVertexAttribfvNV 752
+#define _gloffset_GetVertexAttribivNV 753
+#define _gloffset_IsProgramNV 754
+#define _gloffset_LoadProgramNV 755
+#define _gloffset_ProgramParameters4dvNV 756
+#define _gloffset_ProgramParameters4fvNV 757
+#define _gloffset_RequestResidentProgramsNV 758
+#define _gloffset_TrackMatrixNV 759
+#define _gloffset_VertexAttrib1dNV 760
+#define _gloffset_VertexAttrib1dvNV 761
+#define _gloffset_VertexAttrib1fNV 762
+#define _gloffset_VertexAttrib1fvNV 763
+#define _gloffset_VertexAttrib1sNV 764
+#define _gloffset_VertexAttrib1svNV 765
+#define _gloffset_VertexAttrib2dNV 766
+#define _gloffset_VertexAttrib2dvNV 767
+#define _gloffset_VertexAttrib2fNV 768
+#define _gloffset_VertexAttrib2fvNV 769
+#define _gloffset_VertexAttrib2sNV 770
+#define _gloffset_VertexAttrib2svNV 771
+#define _gloffset_VertexAttrib3dNV 772
+#define _gloffset_VertexAttrib3dvNV 773
+#define _gloffset_VertexAttrib3fNV 774
+#define _gloffset_VertexAttrib3fvNV 775
+#define _gloffset_VertexAttrib3sNV 776
+#define _gloffset_VertexAttrib3svNV 777
+#define _gloffset_VertexAttrib4dNV 778
+#define _gloffset_VertexAttrib4dvNV 779
+#define _gloffset_VertexAttrib4fNV 780
+#define _gloffset_VertexAttrib4fvNV 781
+#define _gloffset_VertexAttrib4sNV 782
+#define _gloffset_VertexAttrib4svNV 783
+#define _gloffset_VertexAttrib4ubNV 784
+#define _gloffset_VertexAttrib4ubvNV 785
+#define _gloffset_VertexAttribPointerNV 786
+#define _gloffset_VertexAttribs1dvNV 787
+#define _gloffset_VertexAttribs1fvNV 788
+#define _gloffset_VertexAttribs1svNV 789
+#define _gloffset_VertexAttribs2dvNV 790
+#define _gloffset_VertexAttribs2fvNV 791
+#define _gloffset_VertexAttribs2svNV 792
+#define _gloffset_VertexAttribs3dvNV 793
+#define _gloffset_VertexAttribs3fvNV 794
+#define _gloffset_VertexAttribs3svNV 795
+#define _gloffset_VertexAttribs4dvNV 796
+#define _gloffset_VertexAttribs4fvNV 797
+#define _gloffset_VertexAttribs4svNV 798
+#define _gloffset_VertexAttribs4ubvNV 799
+#define _gloffset_GetTexBumpParameterfvATI 800
+#define _gloffset_GetTexBumpParameterivATI 801
+#define _gloffset_TexBumpParameterfvATI 802
+#define _gloffset_TexBumpParameterivATI 803
+#define _gloffset_AlphaFragmentOp1ATI 804
+#define _gloffset_AlphaFragmentOp2ATI 805
+#define _gloffset_AlphaFragmentOp3ATI 806
+#define _gloffset_BeginFragmentShaderATI 807
+#define _gloffset_BindFragmentShaderATI 808
+#define _gloffset_ColorFragmentOp1ATI 809
+#define _gloffset_ColorFragmentOp2ATI 810
+#define _gloffset_ColorFragmentOp3ATI 811
+#define _gloffset_DeleteFragmentShaderATI 812
+#define _gloffset_EndFragmentShaderATI 813
+#define _gloffset_GenFragmentShadersATI 814
+#define _gloffset_PassTexCoordATI 815
+#define _gloffset_SampleMapATI 816
+#define _gloffset_SetFragmentShaderConstantATI 817
+#define _gloffset_PointParameteriNV 818
+#define _gloffset_PointParameterivNV 819
+#define _gloffset_ActiveStencilFaceEXT 820
+#define _gloffset_BindVertexArrayAPPLE 821
+#define _gloffset_DeleteVertexArraysAPPLE 822
+#define _gloffset_GenVertexArraysAPPLE 823
+#define _gloffset_IsVertexArrayAPPLE 824
+#define _gloffset_GetProgramNamedParameterdvNV 825
+#define _gloffset_GetProgramNamedParameterfvNV 826
+#define _gloffset_ProgramNamedParameter4dNV 827
+#define _gloffset_ProgramNamedParameter4dvNV 828
+#define _gloffset_ProgramNamedParameter4fNV 829
+#define _gloffset_ProgramNamedParameter4fvNV 830
+#define _gloffset_PrimitiveRestartIndexNV 831
+#define _gloffset_PrimitiveRestartNV 832
+#define _gloffset_DepthBoundsEXT 833
+#define _gloffset_BlendEquationSeparateEXT 834
+#define _gloffset_BindFramebufferEXT 835
+#define _gloffset_BindRenderbufferEXT 836
+#define _gloffset_CheckFramebufferStatusEXT 837
+#define _gloffset_DeleteFramebuffersEXT 838
+#define _gloffset_DeleteRenderbuffersEXT 839
+#define _gloffset_FramebufferRenderbufferEXT 840
+#define _gloffset_FramebufferTexture1DEXT 841
+#define _gloffset_FramebufferTexture2DEXT 842
+#define _gloffset_FramebufferTexture3DEXT 843
+#define _gloffset_GenFramebuffersEXT 844
+#define _gloffset_GenRenderbuffersEXT 845
+#define _gloffset_GenerateMipmapEXT 846
+#define _gloffset_GetFramebufferAttachmentParameterivEXT 847
+#define _gloffset_GetRenderbufferParameterivEXT 848
+#define _gloffset_IsFramebufferEXT 849
+#define _gloffset_IsRenderbufferEXT 850
+#define _gloffset_RenderbufferStorageEXT 851
+#define _gloffset_BlitFramebufferEXT 852
+#define _gloffset_BufferParameteriAPPLE 853
+#define _gloffset_FlushMappedBufferRangeAPPLE 854
+#define _gloffset_BindFragDataLocationEXT 855
+#define _gloffset_GetFragDataLocationEXT 856
+#define _gloffset_GetUniformuivEXT 857
+#define _gloffset_GetVertexAttribIivEXT 858
+#define _gloffset_GetVertexAttribIuivEXT 859
+#define _gloffset_Uniform1uiEXT 860
+#define _gloffset_Uniform1uivEXT 861
+#define _gloffset_Uniform2uiEXT 862
+#define _gloffset_Uniform2uivEXT 863
+#define _gloffset_Uniform3uiEXT 864
+#define _gloffset_Uniform3uivEXT 865
+#define _gloffset_Uniform4uiEXT 866
+#define _gloffset_Uniform4uivEXT 867
+#define _gloffset_VertexAttribI1iEXT 868
+#define _gloffset_VertexAttribI1ivEXT 869
+#define _gloffset_VertexAttribI1uiEXT 870
+#define _gloffset_VertexAttribI1uivEXT 871
+#define _gloffset_VertexAttribI2iEXT 872
+#define _gloffset_VertexAttribI2ivEXT 873
+#define _gloffset_VertexAttribI2uiEXT 874
+#define _gloffset_VertexAttribI2uivEXT 875
+#define _gloffset_VertexAttribI3iEXT 876
+#define _gloffset_VertexAttribI3ivEXT 877
+#define _gloffset_VertexAttribI3uiEXT 878
+#define _gloffset_VertexAttribI3uivEXT 879
+#define _gloffset_VertexAttribI4bvEXT 880
+#define _gloffset_VertexAttribI4iEXT 881
+#define _gloffset_VertexAttribI4ivEXT 882
+#define _gloffset_VertexAttribI4svEXT 883
+#define _gloffset_VertexAttribI4ubvEXT 884
+#define _gloffset_VertexAttribI4uiEXT 885
+#define _gloffset_VertexAttribI4uivEXT 886
+#define _gloffset_VertexAttribI4usvEXT 887
+#define _gloffset_VertexAttribIPointerEXT 888
+#define _gloffset_FramebufferTextureLayerEXT 889
+#define _gloffset_ColorMaskIndexedEXT 890
+#define _gloffset_DisableIndexedEXT 891
+#define _gloffset_EnableIndexedEXT 892
+#define _gloffset_GetBooleanIndexedvEXT 893
+#define _gloffset_GetIntegerIndexedvEXT 894
+#define _gloffset_IsEnabledIndexedEXT 895
+#define _gloffset_ClearColorIiEXT 896
+#define _gloffset_ClearColorIuiEXT 897
+#define _gloffset_GetTexParameterIivEXT 898
+#define _gloffset_GetTexParameterIuivEXT 899
+#define _gloffset_TexParameterIivEXT 900
+#define _gloffset_TexParameterIuivEXT 901
+#define _gloffset_BeginConditionalRenderNV 902
+#define _gloffset_EndConditionalRenderNV 903
+#define _gloffset_BeginTransformFeedbackEXT 904
+#define _gloffset_BindBufferBaseEXT 905
+#define _gloffset_BindBufferOffsetEXT 906
+#define _gloffset_BindBufferRangeEXT 907
+#define _gloffset_EndTransformFeedbackEXT 908
+#define _gloffset_GetTransformFeedbackVaryingEXT 909
+#define _gloffset_TransformFeedbackVaryingsEXT 910
+#define _gloffset_ProvokingVertexEXT 911
+#define _gloffset_GetTexParameterPointervAPPLE 912
+#define _gloffset_TextureRangeAPPLE 913
+#define _gloffset_GetObjectParameterivAPPLE 914
+#define _gloffset_ObjectPurgeableAPPLE 915
+#define _gloffset_ObjectUnpurgeableAPPLE 916
+#define _gloffset_ActiveProgramEXT 917
+#define _gloffset_CreateShaderProgramEXT 918
+#define _gloffset_UseShaderProgramEXT 919
+#define _gloffset_TextureBarrierNV 920
+#define _gloffset_StencilFuncSeparateATI 921
+#define _gloffset_ProgramEnvParameters4fvEXT 922
+#define _gloffset_ProgramLocalParameters4fvEXT 923
+#define _gloffset_GetQueryObjecti64vEXT 924
+#define _gloffset_GetQueryObjectui64vEXT 925
+#define _gloffset_EGLImageTargetRenderbufferStorageOES 926
+#define _gloffset_EGLImageTargetTexture2DOES 927
#else /* !_GLAPI_USE_REMAP_TABLE */
-#define driDispatchRemapTable_size 500
+#define driDispatchRemapTable_size 520
extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define AttachShader_remap_index 0
@@ -1196,288 +1216,308 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define GetShaderPrecisionFormat_remap_index 215
#define ReleaseShaderCompiler_remap_index 216
#define ShaderBinary_remap_index 217
-#define PolygonOffsetEXT_remap_index 218
-#define GetPixelTexGenParameterfvSGIS_remap_index 219
-#define GetPixelTexGenParameterivSGIS_remap_index 220
-#define PixelTexGenParameterfSGIS_remap_index 221
-#define PixelTexGenParameterfvSGIS_remap_index 222
-#define PixelTexGenParameteriSGIS_remap_index 223
-#define PixelTexGenParameterivSGIS_remap_index 224
-#define SampleMaskSGIS_remap_index 225
-#define SamplePatternSGIS_remap_index 226
-#define ColorPointerEXT_remap_index 227
-#define EdgeFlagPointerEXT_remap_index 228
-#define IndexPointerEXT_remap_index 229
-#define NormalPointerEXT_remap_index 230
-#define TexCoordPointerEXT_remap_index 231
-#define VertexPointerEXT_remap_index 232
-#define PointParameterfEXT_remap_index 233
-#define PointParameterfvEXT_remap_index 234
-#define LockArraysEXT_remap_index 235
-#define UnlockArraysEXT_remap_index 236
-#define SecondaryColor3bEXT_remap_index 237
-#define SecondaryColor3bvEXT_remap_index 238
-#define SecondaryColor3dEXT_remap_index 239
-#define SecondaryColor3dvEXT_remap_index 240
-#define SecondaryColor3fEXT_remap_index 241
-#define SecondaryColor3fvEXT_remap_index 242
-#define SecondaryColor3iEXT_remap_index 243
-#define SecondaryColor3ivEXT_remap_index 244
-#define SecondaryColor3sEXT_remap_index 245
-#define SecondaryColor3svEXT_remap_index 246
-#define SecondaryColor3ubEXT_remap_index 247
-#define SecondaryColor3ubvEXT_remap_index 248
-#define SecondaryColor3uiEXT_remap_index 249
-#define SecondaryColor3uivEXT_remap_index 250
-#define SecondaryColor3usEXT_remap_index 251
-#define SecondaryColor3usvEXT_remap_index 252
-#define SecondaryColorPointerEXT_remap_index 253
-#define MultiDrawArraysEXT_remap_index 254
-#define MultiDrawElementsEXT_remap_index 255
-#define FogCoordPointerEXT_remap_index 256
-#define FogCoorddEXT_remap_index 257
-#define FogCoorddvEXT_remap_index 258
-#define FogCoordfEXT_remap_index 259
-#define FogCoordfvEXT_remap_index 260
-#define PixelTexGenSGIX_remap_index 261
-#define BlendFuncSeparateEXT_remap_index 262
-#define FlushVertexArrayRangeNV_remap_index 263
-#define VertexArrayRangeNV_remap_index 264
-#define CombinerInputNV_remap_index 265
-#define CombinerOutputNV_remap_index 266
-#define CombinerParameterfNV_remap_index 267
-#define CombinerParameterfvNV_remap_index 268
-#define CombinerParameteriNV_remap_index 269
-#define CombinerParameterivNV_remap_index 270
-#define FinalCombinerInputNV_remap_index 271
-#define GetCombinerInputParameterfvNV_remap_index 272
-#define GetCombinerInputParameterivNV_remap_index 273
-#define GetCombinerOutputParameterfvNV_remap_index 274
-#define GetCombinerOutputParameterivNV_remap_index 275
-#define GetFinalCombinerInputParameterfvNV_remap_index 276
-#define GetFinalCombinerInputParameterivNV_remap_index 277
-#define ResizeBuffersMESA_remap_index 278
-#define WindowPos2dMESA_remap_index 279
-#define WindowPos2dvMESA_remap_index 280
-#define WindowPos2fMESA_remap_index 281
-#define WindowPos2fvMESA_remap_index 282
-#define WindowPos2iMESA_remap_index 283
-#define WindowPos2ivMESA_remap_index 284
-#define WindowPos2sMESA_remap_index 285
-#define WindowPos2svMESA_remap_index 286
-#define WindowPos3dMESA_remap_index 287
-#define WindowPos3dvMESA_remap_index 288
-#define WindowPos3fMESA_remap_index 289
-#define WindowPos3fvMESA_remap_index 290
-#define WindowPos3iMESA_remap_index 291
-#define WindowPos3ivMESA_remap_index 292
-#define WindowPos3sMESA_remap_index 293
-#define WindowPos3svMESA_remap_index 294
-#define WindowPos4dMESA_remap_index 295
-#define WindowPos4dvMESA_remap_index 296
-#define WindowPos4fMESA_remap_index 297
-#define WindowPos4fvMESA_remap_index 298
-#define WindowPos4iMESA_remap_index 299
-#define WindowPos4ivMESA_remap_index 300
-#define WindowPos4sMESA_remap_index 301
-#define WindowPos4svMESA_remap_index 302
-#define MultiModeDrawArraysIBM_remap_index 303
-#define MultiModeDrawElementsIBM_remap_index 304
-#define DeleteFencesNV_remap_index 305
-#define FinishFenceNV_remap_index 306
-#define GenFencesNV_remap_index 307
-#define GetFenceivNV_remap_index 308
-#define IsFenceNV_remap_index 309
-#define SetFenceNV_remap_index 310
-#define TestFenceNV_remap_index 311
-#define AreProgramsResidentNV_remap_index 312
-#define BindProgramNV_remap_index 313
-#define DeleteProgramsNV_remap_index 314
-#define ExecuteProgramNV_remap_index 315
-#define GenProgramsNV_remap_index 316
-#define GetProgramParameterdvNV_remap_index 317
-#define GetProgramParameterfvNV_remap_index 318
-#define GetProgramStringNV_remap_index 319
-#define GetProgramivNV_remap_index 320
-#define GetTrackMatrixivNV_remap_index 321
-#define GetVertexAttribPointervNV_remap_index 322
-#define GetVertexAttribdvNV_remap_index 323
-#define GetVertexAttribfvNV_remap_index 324
-#define GetVertexAttribivNV_remap_index 325
-#define IsProgramNV_remap_index 326
-#define LoadProgramNV_remap_index 327
-#define ProgramParameters4dvNV_remap_index 328
-#define ProgramParameters4fvNV_remap_index 329
-#define RequestResidentProgramsNV_remap_index 330
-#define TrackMatrixNV_remap_index 331
-#define VertexAttrib1dNV_remap_index 332
-#define VertexAttrib1dvNV_remap_index 333
-#define VertexAttrib1fNV_remap_index 334
-#define VertexAttrib1fvNV_remap_index 335
-#define VertexAttrib1sNV_remap_index 336
-#define VertexAttrib1svNV_remap_index 337
-#define VertexAttrib2dNV_remap_index 338
-#define VertexAttrib2dvNV_remap_index 339
-#define VertexAttrib2fNV_remap_index 340
-#define VertexAttrib2fvNV_remap_index 341
-#define VertexAttrib2sNV_remap_index 342
-#define VertexAttrib2svNV_remap_index 343
-#define VertexAttrib3dNV_remap_index 344
-#define VertexAttrib3dvNV_remap_index 345
-#define VertexAttrib3fNV_remap_index 346
-#define VertexAttrib3fvNV_remap_index 347
-#define VertexAttrib3sNV_remap_index 348
-#define VertexAttrib3svNV_remap_index 349
-#define VertexAttrib4dNV_remap_index 350
-#define VertexAttrib4dvNV_remap_index 351
-#define VertexAttrib4fNV_remap_index 352
-#define VertexAttrib4fvNV_remap_index 353
-#define VertexAttrib4sNV_remap_index 354
-#define VertexAttrib4svNV_remap_index 355
-#define VertexAttrib4ubNV_remap_index 356
-#define VertexAttrib4ubvNV_remap_index 357
-#define VertexAttribPointerNV_remap_index 358
-#define VertexAttribs1dvNV_remap_index 359
-#define VertexAttribs1fvNV_remap_index 360
-#define VertexAttribs1svNV_remap_index 361
-#define VertexAttribs2dvNV_remap_index 362
-#define VertexAttribs2fvNV_remap_index 363
-#define VertexAttribs2svNV_remap_index 364
-#define VertexAttribs3dvNV_remap_index 365
-#define VertexAttribs3fvNV_remap_index 366
-#define VertexAttribs3svNV_remap_index 367
-#define VertexAttribs4dvNV_remap_index 368
-#define VertexAttribs4fvNV_remap_index 369
-#define VertexAttribs4svNV_remap_index 370
-#define VertexAttribs4ubvNV_remap_index 371
-#define GetTexBumpParameterfvATI_remap_index 372
-#define GetTexBumpParameterivATI_remap_index 373
-#define TexBumpParameterfvATI_remap_index 374
-#define TexBumpParameterivATI_remap_index 375
-#define AlphaFragmentOp1ATI_remap_index 376
-#define AlphaFragmentOp2ATI_remap_index 377
-#define AlphaFragmentOp3ATI_remap_index 378
-#define BeginFragmentShaderATI_remap_index 379
-#define BindFragmentShaderATI_remap_index 380
-#define ColorFragmentOp1ATI_remap_index 381
-#define ColorFragmentOp2ATI_remap_index 382
-#define ColorFragmentOp3ATI_remap_index 383
-#define DeleteFragmentShaderATI_remap_index 384
-#define EndFragmentShaderATI_remap_index 385
-#define GenFragmentShadersATI_remap_index 386
-#define PassTexCoordATI_remap_index 387
-#define SampleMapATI_remap_index 388
-#define SetFragmentShaderConstantATI_remap_index 389
-#define PointParameteriNV_remap_index 390
-#define PointParameterivNV_remap_index 391
-#define ActiveStencilFaceEXT_remap_index 392
-#define BindVertexArrayAPPLE_remap_index 393
-#define DeleteVertexArraysAPPLE_remap_index 394
-#define GenVertexArraysAPPLE_remap_index 395
-#define IsVertexArrayAPPLE_remap_index 396
-#define GetProgramNamedParameterdvNV_remap_index 397
-#define GetProgramNamedParameterfvNV_remap_index 398
-#define ProgramNamedParameter4dNV_remap_index 399
-#define ProgramNamedParameter4dvNV_remap_index 400
-#define ProgramNamedParameter4fNV_remap_index 401
-#define ProgramNamedParameter4fvNV_remap_index 402
-#define PrimitiveRestartIndexNV_remap_index 403
-#define PrimitiveRestartNV_remap_index 404
-#define DepthBoundsEXT_remap_index 405
-#define BlendEquationSeparateEXT_remap_index 406
-#define BindFramebufferEXT_remap_index 407
-#define BindRenderbufferEXT_remap_index 408
-#define CheckFramebufferStatusEXT_remap_index 409
-#define DeleteFramebuffersEXT_remap_index 410
-#define DeleteRenderbuffersEXT_remap_index 411
-#define FramebufferRenderbufferEXT_remap_index 412
-#define FramebufferTexture1DEXT_remap_index 413
-#define FramebufferTexture2DEXT_remap_index 414
-#define FramebufferTexture3DEXT_remap_index 415
-#define GenFramebuffersEXT_remap_index 416
-#define GenRenderbuffersEXT_remap_index 417
-#define GenerateMipmapEXT_remap_index 418
-#define GetFramebufferAttachmentParameterivEXT_remap_index 419
-#define GetRenderbufferParameterivEXT_remap_index 420
-#define IsFramebufferEXT_remap_index 421
-#define IsRenderbufferEXT_remap_index 422
-#define RenderbufferStorageEXT_remap_index 423
-#define BlitFramebufferEXT_remap_index 424
-#define BufferParameteriAPPLE_remap_index 425
-#define FlushMappedBufferRangeAPPLE_remap_index 426
-#define BindFragDataLocationEXT_remap_index 427
-#define GetFragDataLocationEXT_remap_index 428
-#define GetUniformuivEXT_remap_index 429
-#define GetVertexAttribIivEXT_remap_index 430
-#define GetVertexAttribIuivEXT_remap_index 431
-#define Uniform1uiEXT_remap_index 432
-#define Uniform1uivEXT_remap_index 433
-#define Uniform2uiEXT_remap_index 434
-#define Uniform2uivEXT_remap_index 435
-#define Uniform3uiEXT_remap_index 436
-#define Uniform3uivEXT_remap_index 437
-#define Uniform4uiEXT_remap_index 438
-#define Uniform4uivEXT_remap_index 439
-#define VertexAttribI1iEXT_remap_index 440
-#define VertexAttribI1ivEXT_remap_index 441
-#define VertexAttribI1uiEXT_remap_index 442
-#define VertexAttribI1uivEXT_remap_index 443
-#define VertexAttribI2iEXT_remap_index 444
-#define VertexAttribI2ivEXT_remap_index 445
-#define VertexAttribI2uiEXT_remap_index 446
-#define VertexAttribI2uivEXT_remap_index 447
-#define VertexAttribI3iEXT_remap_index 448
-#define VertexAttribI3ivEXT_remap_index 449
-#define VertexAttribI3uiEXT_remap_index 450
-#define VertexAttribI3uivEXT_remap_index 451
-#define VertexAttribI4bvEXT_remap_index 452
-#define VertexAttribI4iEXT_remap_index 453
-#define VertexAttribI4ivEXT_remap_index 454
-#define VertexAttribI4svEXT_remap_index 455
-#define VertexAttribI4ubvEXT_remap_index 456
-#define VertexAttribI4uiEXT_remap_index 457
-#define VertexAttribI4uivEXT_remap_index 458
-#define VertexAttribI4usvEXT_remap_index 459
-#define VertexAttribIPointerEXT_remap_index 460
-#define FramebufferTextureLayerEXT_remap_index 461
-#define ColorMaskIndexedEXT_remap_index 462
-#define DisableIndexedEXT_remap_index 463
-#define EnableIndexedEXT_remap_index 464
-#define GetBooleanIndexedvEXT_remap_index 465
-#define GetIntegerIndexedvEXT_remap_index 466
-#define IsEnabledIndexedEXT_remap_index 467
-#define ClearColorIiEXT_remap_index 468
-#define ClearColorIuiEXT_remap_index 469
-#define GetTexParameterIivEXT_remap_index 470
-#define GetTexParameterIuivEXT_remap_index 471
-#define TexParameterIivEXT_remap_index 472
-#define TexParameterIuivEXT_remap_index 473
-#define BeginConditionalRenderNV_remap_index 474
-#define EndConditionalRenderNV_remap_index 475
-#define BeginTransformFeedbackEXT_remap_index 476
-#define BindBufferBaseEXT_remap_index 477
-#define BindBufferOffsetEXT_remap_index 478
-#define BindBufferRangeEXT_remap_index 479
-#define EndTransformFeedbackEXT_remap_index 480
-#define GetTransformFeedbackVaryingEXT_remap_index 481
-#define TransformFeedbackVaryingsEXT_remap_index 482
-#define ProvokingVertexEXT_remap_index 483
-#define GetTexParameterPointervAPPLE_remap_index 484
-#define TextureRangeAPPLE_remap_index 485
-#define GetObjectParameterivAPPLE_remap_index 486
-#define ObjectPurgeableAPPLE_remap_index 487
-#define ObjectUnpurgeableAPPLE_remap_index 488
-#define ActiveProgramEXT_remap_index 489
-#define CreateShaderProgramEXT_remap_index 490
-#define UseShaderProgramEXT_remap_index 491
-#define TextureBarrierNV_remap_index 492
-#define StencilFuncSeparateATI_remap_index 493
-#define ProgramEnvParameters4fvEXT_remap_index 494
-#define ProgramLocalParameters4fvEXT_remap_index 495
-#define GetQueryObjecti64vEXT_remap_index 496
-#define GetQueryObjectui64vEXT_remap_index 497
-#define EGLImageTargetRenderbufferStorageOES_remap_index 498
-#define EGLImageTargetTexture2DOES_remap_index 499
+#define GetGraphicsResetStatusARB_remap_index 218
+#define GetnColorTableARB_remap_index 219
+#define GetnCompressedTexImageARB_remap_index 220
+#define GetnConvolutionFilterARB_remap_index 221
+#define GetnHistogramARB_remap_index 222
+#define GetnMapdvARB_remap_index 223
+#define GetnMapfvARB_remap_index 224
+#define GetnMapivARB_remap_index 225
+#define GetnMinmaxARB_remap_index 226
+#define GetnPixelMapfvARB_remap_index 227
+#define GetnPixelMapuivARB_remap_index 228
+#define GetnPixelMapusvARB_remap_index 229
+#define GetnPolygonStippleARB_remap_index 230
+#define GetnSeparableFilterARB_remap_index 231
+#define GetnTexImageARB_remap_index 232
+#define GetnUniformdvARB_remap_index 233
+#define GetnUniformfvARB_remap_index 234
+#define GetnUniformivARB_remap_index 235
+#define GetnUniformuivARB_remap_index 236
+#define ReadnPixelsARB_remap_index 237
+#define PolygonOffsetEXT_remap_index 238
+#define GetPixelTexGenParameterfvSGIS_remap_index 239
+#define GetPixelTexGenParameterivSGIS_remap_index 240
+#define PixelTexGenParameterfSGIS_remap_index 241
+#define PixelTexGenParameterfvSGIS_remap_index 242
+#define PixelTexGenParameteriSGIS_remap_index 243
+#define PixelTexGenParameterivSGIS_remap_index 244
+#define SampleMaskSGIS_remap_index 245
+#define SamplePatternSGIS_remap_index 246
+#define ColorPointerEXT_remap_index 247
+#define EdgeFlagPointerEXT_remap_index 248
+#define IndexPointerEXT_remap_index 249
+#define NormalPointerEXT_remap_index 250
+#define TexCoordPointerEXT_remap_index 251
+#define VertexPointerEXT_remap_index 252
+#define PointParameterfEXT_remap_index 253
+#define PointParameterfvEXT_remap_index 254
+#define LockArraysEXT_remap_index 255
+#define UnlockArraysEXT_remap_index 256
+#define SecondaryColor3bEXT_remap_index 257
+#define SecondaryColor3bvEXT_remap_index 258
+#define SecondaryColor3dEXT_remap_index 259
+#define SecondaryColor3dvEXT_remap_index 260
+#define SecondaryColor3fEXT_remap_index 261
+#define SecondaryColor3fvEXT_remap_index 262
+#define SecondaryColor3iEXT_remap_index 263
+#define SecondaryColor3ivEXT_remap_index 264
+#define SecondaryColor3sEXT_remap_index 265
+#define SecondaryColor3svEXT_remap_index 266
+#define SecondaryColor3ubEXT_remap_index 267
+#define SecondaryColor3ubvEXT_remap_index 268
+#define SecondaryColor3uiEXT_remap_index 269
+#define SecondaryColor3uivEXT_remap_index 270
+#define SecondaryColor3usEXT_remap_index 271
+#define SecondaryColor3usvEXT_remap_index 272
+#define SecondaryColorPointerEXT_remap_index 273
+#define MultiDrawArraysEXT_remap_index 274
+#define MultiDrawElementsEXT_remap_index 275
+#define FogCoordPointerEXT_remap_index 276
+#define FogCoorddEXT_remap_index 277
+#define FogCoorddvEXT_remap_index 278
+#define FogCoordfEXT_remap_index 279
+#define FogCoordfvEXT_remap_index 280
+#define PixelTexGenSGIX_remap_index 281
+#define BlendFuncSeparateEXT_remap_index 282
+#define FlushVertexArrayRangeNV_remap_index 283
+#define VertexArrayRangeNV_remap_index 284
+#define CombinerInputNV_remap_index 285
+#define CombinerOutputNV_remap_index 286
+#define CombinerParameterfNV_remap_index 287
+#define CombinerParameterfvNV_remap_index 288
+#define CombinerParameteriNV_remap_index 289
+#define CombinerParameterivNV_remap_index 290
+#define FinalCombinerInputNV_remap_index 291
+#define GetCombinerInputParameterfvNV_remap_index 292
+#define GetCombinerInputParameterivNV_remap_index 293
+#define GetCombinerOutputParameterfvNV_remap_index 294
+#define GetCombinerOutputParameterivNV_remap_index 295
+#define GetFinalCombinerInputParameterfvNV_remap_index 296
+#define GetFinalCombinerInputParameterivNV_remap_index 297
+#define ResizeBuffersMESA_remap_index 298
+#define WindowPos2dMESA_remap_index 299
+#define WindowPos2dvMESA_remap_index 300
+#define WindowPos2fMESA_remap_index 301
+#define WindowPos2fvMESA_remap_index 302
+#define WindowPos2iMESA_remap_index 303
+#define WindowPos2ivMESA_remap_index 304
+#define WindowPos2sMESA_remap_index 305
+#define WindowPos2svMESA_remap_index 306
+#define WindowPos3dMESA_remap_index 307
+#define WindowPos3dvMESA_remap_index 308
+#define WindowPos3fMESA_remap_index 309
+#define WindowPos3fvMESA_remap_index 310
+#define WindowPos3iMESA_remap_index 311
+#define WindowPos3ivMESA_remap_index 312
+#define WindowPos3sMESA_remap_index 313
+#define WindowPos3svMESA_remap_index 314
+#define WindowPos4dMESA_remap_index 315
+#define WindowPos4dvMESA_remap_index 316
+#define WindowPos4fMESA_remap_index 317
+#define WindowPos4fvMESA_remap_index 318
+#define WindowPos4iMESA_remap_index 319
+#define WindowPos4ivMESA_remap_index 320
+#define WindowPos4sMESA_remap_index 321
+#define WindowPos4svMESA_remap_index 322
+#define MultiModeDrawArraysIBM_remap_index 323
+#define MultiModeDrawElementsIBM_remap_index 324
+#define DeleteFencesNV_remap_index 325
+#define FinishFenceNV_remap_index 326
+#define GenFencesNV_remap_index 327
+#define GetFenceivNV_remap_index 328
+#define IsFenceNV_remap_index 329
+#define SetFenceNV_remap_index 330
+#define TestFenceNV_remap_index 331
+#define AreProgramsResidentNV_remap_index 332
+#define BindProgramNV_remap_index 333
+#define DeleteProgramsNV_remap_index 334
+#define ExecuteProgramNV_remap_index 335
+#define GenProgramsNV_remap_index 336
+#define GetProgramParameterdvNV_remap_index 337
+#define GetProgramParameterfvNV_remap_index 338
+#define GetProgramStringNV_remap_index 339
+#define GetProgramivNV_remap_index 340
+#define GetTrackMatrixivNV_remap_index 341
+#define GetVertexAttribPointervNV_remap_index 342
+#define GetVertexAttribdvNV_remap_index 343
+#define GetVertexAttribfvNV_remap_index 344
+#define GetVertexAttribivNV_remap_index 345
+#define IsProgramNV_remap_index 346
+#define LoadProgramNV_remap_index 347
+#define ProgramParameters4dvNV_remap_index 348
+#define ProgramParameters4fvNV_remap_index 349
+#define RequestResidentProgramsNV_remap_index 350
+#define TrackMatrixNV_remap_index 351
+#define VertexAttrib1dNV_remap_index 352
+#define VertexAttrib1dvNV_remap_index 353
+#define VertexAttrib1fNV_remap_index 354
+#define VertexAttrib1fvNV_remap_index 355
+#define VertexAttrib1sNV_remap_index 356
+#define VertexAttrib1svNV_remap_index 357
+#define VertexAttrib2dNV_remap_index 358
+#define VertexAttrib2dvNV_remap_index 359
+#define VertexAttrib2fNV_remap_index 360
+#define VertexAttrib2fvNV_remap_index 361
+#define VertexAttrib2sNV_remap_index 362
+#define VertexAttrib2svNV_remap_index 363
+#define VertexAttrib3dNV_remap_index 364
+#define VertexAttrib3dvNV_remap_index 365
+#define VertexAttrib3fNV_remap_index 366
+#define VertexAttrib3fvNV_remap_index 367
+#define VertexAttrib3sNV_remap_index 368
+#define VertexAttrib3svNV_remap_index 369
+#define VertexAttrib4dNV_remap_index 370
+#define VertexAttrib4dvNV_remap_index 371
+#define VertexAttrib4fNV_remap_index 372
+#define VertexAttrib4fvNV_remap_index 373
+#define VertexAttrib4sNV_remap_index 374
+#define VertexAttrib4svNV_remap_index 375
+#define VertexAttrib4ubNV_remap_index 376
+#define VertexAttrib4ubvNV_remap_index 377
+#define VertexAttribPointerNV_remap_index 378
+#define VertexAttribs1dvNV_remap_index 379
+#define VertexAttribs1fvNV_remap_index 380
+#define VertexAttribs1svNV_remap_index 381
+#define VertexAttribs2dvNV_remap_index 382
+#define VertexAttribs2fvNV_remap_index 383
+#define VertexAttribs2svNV_remap_index 384
+#define VertexAttribs3dvNV_remap_index 385
+#define VertexAttribs3fvNV_remap_index 386
+#define VertexAttribs3svNV_remap_index 387
+#define VertexAttribs4dvNV_remap_index 388
+#define VertexAttribs4fvNV_remap_index 389
+#define VertexAttribs4svNV_remap_index 390
+#define VertexAttribs4ubvNV_remap_index 391
+#define GetTexBumpParameterfvATI_remap_index 392
+#define GetTexBumpParameterivATI_remap_index 393
+#define TexBumpParameterfvATI_remap_index 394
+#define TexBumpParameterivATI_remap_index 395
+#define AlphaFragmentOp1ATI_remap_index 396
+#define AlphaFragmentOp2ATI_remap_index 397
+#define AlphaFragmentOp3ATI_remap_index 398
+#define BeginFragmentShaderATI_remap_index 399
+#define BindFragmentShaderATI_remap_index 400
+#define ColorFragmentOp1ATI_remap_index 401
+#define ColorFragmentOp2ATI_remap_index 402
+#define ColorFragmentOp3ATI_remap_index 403
+#define DeleteFragmentShaderATI_remap_index 404
+#define EndFragmentShaderATI_remap_index 405
+#define GenFragmentShadersATI_remap_index 406
+#define PassTexCoordATI_remap_index 407
+#define SampleMapATI_remap_index 408
+#define SetFragmentShaderConstantATI_remap_index 409
+#define PointParameteriNV_remap_index 410
+#define PointParameterivNV_remap_index 411
+#define ActiveStencilFaceEXT_remap_index 412
+#define BindVertexArrayAPPLE_remap_index 413
+#define DeleteVertexArraysAPPLE_remap_index 414
+#define GenVertexArraysAPPLE_remap_index 415
+#define IsVertexArrayAPPLE_remap_index 416
+#define GetProgramNamedParameterdvNV_remap_index 417
+#define GetProgramNamedParameterfvNV_remap_index 418
+#define ProgramNamedParameter4dNV_remap_index 419
+#define ProgramNamedParameter4dvNV_remap_index 420
+#define ProgramNamedParameter4fNV_remap_index 421
+#define ProgramNamedParameter4fvNV_remap_index 422
+#define PrimitiveRestartIndexNV_remap_index 423
+#define PrimitiveRestartNV_remap_index 424
+#define DepthBoundsEXT_remap_index 425
+#define BlendEquationSeparateEXT_remap_index 426
+#define BindFramebufferEXT_remap_index 427
+#define BindRenderbufferEXT_remap_index 428
+#define CheckFramebufferStatusEXT_remap_index 429
+#define DeleteFramebuffersEXT_remap_index 430
+#define DeleteRenderbuffersEXT_remap_index 431
+#define FramebufferRenderbufferEXT_remap_index 432
+#define FramebufferTexture1DEXT_remap_index 433
+#define FramebufferTexture2DEXT_remap_index 434
+#define FramebufferTexture3DEXT_remap_index 435
+#define GenFramebuffersEXT_remap_index 436
+#define GenRenderbuffersEXT_remap_index 437
+#define GenerateMipmapEXT_remap_index 438
+#define GetFramebufferAttachmentParameterivEXT_remap_index 439
+#define GetRenderbufferParameterivEXT_remap_index 440
+#define IsFramebufferEXT_remap_index 441
+#define IsRenderbufferEXT_remap_index 442
+#define RenderbufferStorageEXT_remap_index 443
+#define BlitFramebufferEXT_remap_index 444
+#define BufferParameteriAPPLE_remap_index 445
+#define FlushMappedBufferRangeAPPLE_remap_index 446
+#define BindFragDataLocationEXT_remap_index 447
+#define GetFragDataLocationEXT_remap_index 448
+#define GetUniformuivEXT_remap_index 449
+#define GetVertexAttribIivEXT_remap_index 450
+#define GetVertexAttribIuivEXT_remap_index 451
+#define Uniform1uiEXT_remap_index 452
+#define Uniform1uivEXT_remap_index 453
+#define Uniform2uiEXT_remap_index 454
+#define Uniform2uivEXT_remap_index 455
+#define Uniform3uiEXT_remap_index 456
+#define Uniform3uivEXT_remap_index 457
+#define Uniform4uiEXT_remap_index 458
+#define Uniform4uivEXT_remap_index 459
+#define VertexAttribI1iEXT_remap_index 460
+#define VertexAttribI1ivEXT_remap_index 461
+#define VertexAttribI1uiEXT_remap_index 462
+#define VertexAttribI1uivEXT_remap_index 463
+#define VertexAttribI2iEXT_remap_index 464
+#define VertexAttribI2ivEXT_remap_index 465
+#define VertexAttribI2uiEXT_remap_index 466
+#define VertexAttribI2uivEXT_remap_index 467
+#define VertexAttribI3iEXT_remap_index 468
+#define VertexAttribI3ivEXT_remap_index 469
+#define VertexAttribI3uiEXT_remap_index 470
+#define VertexAttribI3uivEXT_remap_index 471
+#define VertexAttribI4bvEXT_remap_index 472
+#define VertexAttribI4iEXT_remap_index 473
+#define VertexAttribI4ivEXT_remap_index 474
+#define VertexAttribI4svEXT_remap_index 475
+#define VertexAttribI4ubvEXT_remap_index 476
+#define VertexAttribI4uiEXT_remap_index 477
+#define VertexAttribI4uivEXT_remap_index 478
+#define VertexAttribI4usvEXT_remap_index 479
+#define VertexAttribIPointerEXT_remap_index 480
+#define FramebufferTextureLayerEXT_remap_index 481
+#define ColorMaskIndexedEXT_remap_index 482
+#define DisableIndexedEXT_remap_index 483
+#define EnableIndexedEXT_remap_index 484
+#define GetBooleanIndexedvEXT_remap_index 485
+#define GetIntegerIndexedvEXT_remap_index 486
+#define IsEnabledIndexedEXT_remap_index 487
+#define ClearColorIiEXT_remap_index 488
+#define ClearColorIuiEXT_remap_index 489
+#define GetTexParameterIivEXT_remap_index 490
+#define GetTexParameterIuivEXT_remap_index 491
+#define TexParameterIivEXT_remap_index 492
+#define TexParameterIuivEXT_remap_index 493
+#define BeginConditionalRenderNV_remap_index 494
+#define EndConditionalRenderNV_remap_index 495
+#define BeginTransformFeedbackEXT_remap_index 496
+#define BindBufferBaseEXT_remap_index 497
+#define BindBufferOffsetEXT_remap_index 498
+#define BindBufferRangeEXT_remap_index 499
+#define EndTransformFeedbackEXT_remap_index 500
+#define GetTransformFeedbackVaryingEXT_remap_index 501
+#define TransformFeedbackVaryingsEXT_remap_index 502
+#define ProvokingVertexEXT_remap_index 503
+#define GetTexParameterPointervAPPLE_remap_index 504
+#define TextureRangeAPPLE_remap_index 505
+#define GetObjectParameterivAPPLE_remap_index 506
+#define ObjectPurgeableAPPLE_remap_index 507
+#define ObjectUnpurgeableAPPLE_remap_index 508
+#define ActiveProgramEXT_remap_index 509
+#define CreateShaderProgramEXT_remap_index 510
+#define UseShaderProgramEXT_remap_index 511
+#define TextureBarrierNV_remap_index 512
+#define StencilFuncSeparateATI_remap_index 513
+#define ProgramEnvParameters4fvEXT_remap_index 514
+#define ProgramLocalParameters4fvEXT_remap_index 515
+#define GetQueryObjecti64vEXT_remap_index 516
+#define GetQueryObjectui64vEXT_remap_index 517
+#define EGLImageTargetRenderbufferStorageOES_remap_index 518
+#define EGLImageTargetTexture2DOES_remap_index 519
#define _gloffset_AttachShader driDispatchRemapTable[AttachShader_remap_index]
#define _gloffset_CreateProgram driDispatchRemapTable[CreateProgram_remap_index]
@@ -1697,6 +1737,26 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define _gloffset_GetShaderPrecisionFormat driDispatchRemapTable[GetShaderPrecisionFormat_remap_index]
#define _gloffset_ReleaseShaderCompiler driDispatchRemapTable[ReleaseShaderCompiler_remap_index]
#define _gloffset_ShaderBinary driDispatchRemapTable[ShaderBinary_remap_index]
+#define _gloffset_GetGraphicsResetStatusARB driDispatchRemapTable[GetGraphicsResetStatusARB_remap_index]
+#define _gloffset_GetnColorTableARB driDispatchRemapTable[GetnColorTableARB_remap_index]
+#define _gloffset_GetnCompressedTexImageARB driDispatchRemapTable[GetnCompressedTexImageARB_remap_index]
+#define _gloffset_GetnConvolutionFilterARB driDispatchRemapTable[GetnConvolutionFilterARB_remap_index]
+#define _gloffset_GetnHistogramARB driDispatchRemapTable[GetnHistogramARB_remap_index]
+#define _gloffset_GetnMapdvARB driDispatchRemapTable[GetnMapdvARB_remap_index]
+#define _gloffset_GetnMapfvARB driDispatchRemapTable[GetnMapfvARB_remap_index]
+#define _gloffset_GetnMapivARB driDispatchRemapTable[GetnMapivARB_remap_index]
+#define _gloffset_GetnMinmaxARB driDispatchRemapTable[GetnMinmaxARB_remap_index]
+#define _gloffset_GetnPixelMapfvARB driDispatchRemapTable[GetnPixelMapfvARB_remap_index]
+#define _gloffset_GetnPixelMapuivARB driDispatchRemapTable[GetnPixelMapuivARB_remap_index]
+#define _gloffset_GetnPixelMapusvARB driDispatchRemapTable[GetnPixelMapusvARB_remap_index]
+#define _gloffset_GetnPolygonStippleARB driDispatchRemapTable[GetnPolygonStippleARB_remap_index]
+#define _gloffset_GetnSeparableFilterARB driDispatchRemapTable[GetnSeparableFilterARB_remap_index]
+#define _gloffset_GetnTexImageARB driDispatchRemapTable[GetnTexImageARB_remap_index]
+#define _gloffset_GetnUniformdvARB driDispatchRemapTable[GetnUniformdvARB_remap_index]
+#define _gloffset_GetnUniformfvARB driDispatchRemapTable[GetnUniformfvARB_remap_index]
+#define _gloffset_GetnUniformivARB driDispatchRemapTable[GetnUniformivARB_remap_index]
+#define _gloffset_GetnUniformuivARB driDispatchRemapTable[GetnUniformuivARB_remap_index]
+#define _gloffset_ReadnPixelsARB driDispatchRemapTable[ReadnPixelsARB_remap_index]
#define _gloffset_PolygonOffsetEXT driDispatchRemapTable[PolygonOffsetEXT_remap_index]
#define _gloffset_GetPixelTexGenParameterfvSGIS driDispatchRemapTable[GetPixelTexGenParameterfvSGIS_remap_index]
#define _gloffset_GetPixelTexGenParameterivSGIS driDispatchRemapTable[GetPixelTexGenParameterivSGIS_remap_index]
@@ -3860,6 +3920,66 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define CALL_ShaderBinary(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei)), _gloffset_ShaderBinary, parameters)
#define GET_ShaderBinary(disp) GET_by_offset(disp, _gloffset_ShaderBinary)
#define SET_ShaderBinary(disp, fn) SET_by_offset(disp, _gloffset_ShaderBinary, fn)
+#define CALL_GetGraphicsResetStatusARB(disp, parameters) CALL_by_offset(disp, (GLenum (GLAPIENTRYP)(void)), _gloffset_GetGraphicsResetStatusARB, parameters)
+#define GET_GetGraphicsResetStatusARB(disp) GET_by_offset(disp, _gloffset_GetGraphicsResetStatusARB)
+#define SET_GetGraphicsResetStatusARB(disp, fn) SET_by_offset(disp, _gloffset_GetGraphicsResetStatusARB, fn)
+#define CALL_GetnColorTableARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_GetnColorTableARB, parameters)
+#define GET_GetnColorTableARB(disp) GET_by_offset(disp, _gloffset_GetnColorTableARB)
+#define SET_GetnColorTableARB(disp, fn) SET_by_offset(disp, _gloffset_GetnColorTableARB, fn)
+#define CALL_GetnCompressedTexImageARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLint, GLsizei, GLvoid *)), _gloffset_GetnCompressedTexImageARB, parameters)
+#define GET_GetnCompressedTexImageARB(disp) GET_by_offset(disp, _gloffset_GetnCompressedTexImageARB)
+#define SET_GetnCompressedTexImageARB(disp, fn) SET_by_offset(disp, _gloffset_GetnCompressedTexImageARB, fn)
+#define CALL_GetnConvolutionFilterARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_GetnConvolutionFilterARB, parameters)
+#define GET_GetnConvolutionFilterARB(disp) GET_by_offset(disp, _gloffset_GetnConvolutionFilterARB)
+#define SET_GetnConvolutionFilterARB(disp, fn) SET_by_offset(disp, _gloffset_GetnConvolutionFilterARB, fn)
+#define CALL_GetnHistogramARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_GetnHistogramARB, parameters)
+#define GET_GetnHistogramARB(disp) GET_by_offset(disp, _gloffset_GetnHistogramARB)
+#define SET_GetnHistogramARB(disp, fn) SET_by_offset(disp, _gloffset_GetnHistogramARB, fn)
+#define CALL_GetnMapdvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLsizei, GLdouble *)), _gloffset_GetnMapdvARB, parameters)
+#define GET_GetnMapdvARB(disp) GET_by_offset(disp, _gloffset_GetnMapdvARB)
+#define SET_GetnMapdvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnMapdvARB, fn)
+#define CALL_GetnMapfvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLsizei, GLfloat *)), _gloffset_GetnMapfvARB, parameters)
+#define GET_GetnMapfvARB(disp) GET_by_offset(disp, _gloffset_GetnMapfvARB)
+#define SET_GetnMapfvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnMapfvARB, fn)
+#define CALL_GetnMapivARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLsizei, GLint *)), _gloffset_GetnMapivARB, parameters)
+#define GET_GetnMapivARB(disp) GET_by_offset(disp, _gloffset_GetnMapivARB)
+#define SET_GetnMapivARB(disp, fn) SET_by_offset(disp, _gloffset_GetnMapivARB, fn)
+#define CALL_GetnMinmaxARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_GetnMinmaxARB, parameters)
+#define GET_GetnMinmaxARB(disp) GET_by_offset(disp, _gloffset_GetnMinmaxARB)
+#define SET_GetnMinmaxARB(disp, fn) SET_by_offset(disp, _gloffset_GetnMinmaxARB, fn)
+#define CALL_GetnPixelMapfvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLsizei, GLfloat *)), _gloffset_GetnPixelMapfvARB, parameters)
+#define GET_GetnPixelMapfvARB(disp) GET_by_offset(disp, _gloffset_GetnPixelMapfvARB)
+#define SET_GetnPixelMapfvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnPixelMapfvARB, fn)
+#define CALL_GetnPixelMapuivARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLsizei, GLuint *)), _gloffset_GetnPixelMapuivARB, parameters)
+#define GET_GetnPixelMapuivARB(disp) GET_by_offset(disp, _gloffset_GetnPixelMapuivARB)
+#define SET_GetnPixelMapuivARB(disp, fn) SET_by_offset(disp, _gloffset_GetnPixelMapuivARB, fn)
+#define CALL_GetnPixelMapusvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLsizei, GLushort *)), _gloffset_GetnPixelMapusvARB, parameters)
+#define GET_GetnPixelMapusvARB(disp) GET_by_offset(disp, _gloffset_GetnPixelMapusvARB)
+#define SET_GetnPixelMapusvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnPixelMapusvARB, fn)
+#define CALL_GetnPolygonStippleARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsizei, GLubyte *)), _gloffset_GetnPolygonStippleARB, parameters)
+#define GET_GetnPolygonStippleARB(disp) GET_by_offset(disp, _gloffset_GetnPolygonStippleARB)
+#define SET_GetnPolygonStippleARB(disp, fn) SET_by_offset(disp, _gloffset_GetnPolygonStippleARB, fn)
+#define CALL_GetnSeparableFilterARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLenum, GLsizei, GLvoid *, GLsizei, GLvoid *, GLvoid *)), _gloffset_GetnSeparableFilterARB, parameters)
+#define GET_GetnSeparableFilterARB(disp) GET_by_offset(disp, _gloffset_GetnSeparableFilterARB)
+#define SET_GetnSeparableFilterARB(disp, fn) SET_by_offset(disp, _gloffset_GetnSeparableFilterARB, fn)
+#define CALL_GetnTexImageARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLint, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_GetnTexImageARB, parameters)
+#define GET_GetnTexImageARB(disp) GET_by_offset(disp, _gloffset_GetnTexImageARB)
+#define SET_GetnTexImageARB(disp, fn) SET_by_offset(disp, _gloffset_GetnTexImageARB, fn)
+#define CALL_GetnUniformdvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLhandleARB, GLint, GLsizei, GLdouble *)), _gloffset_GetnUniformdvARB, parameters)
+#define GET_GetnUniformdvARB(disp) GET_by_offset(disp, _gloffset_GetnUniformdvARB)
+#define SET_GetnUniformdvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnUniformdvARB, fn)
+#define CALL_GetnUniformfvARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLhandleARB, GLint, GLsizei, GLfloat *)), _gloffset_GetnUniformfvARB, parameters)
+#define GET_GetnUniformfvARB(disp) GET_by_offset(disp, _gloffset_GetnUniformfvARB)
+#define SET_GetnUniformfvARB(disp, fn) SET_by_offset(disp, _gloffset_GetnUniformfvARB, fn)
+#define CALL_GetnUniformivARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLhandleARB, GLint, GLsizei, GLint *)), _gloffset_GetnUniformivARB, parameters)
+#define GET_GetnUniformivARB(disp) GET_by_offset(disp, _gloffset_GetnUniformivARB)
+#define SET_GetnUniformivARB(disp, fn) SET_by_offset(disp, _gloffset_GetnUniformivARB, fn)
+#define CALL_GetnUniformuivARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLhandleARB, GLint, GLsizei, GLuint *)), _gloffset_GetnUniformuivARB, parameters)
+#define GET_GetnUniformuivARB(disp) GET_by_offset(disp, _gloffset_GetnUniformuivARB)
+#define SET_GetnUniformuivARB(disp, fn) SET_by_offset(disp, _gloffset_GetnUniformuivARB, fn)
+#define CALL_ReadnPixelsARB(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, GLvoid *)), _gloffset_ReadnPixelsARB, parameters)
+#define GET_ReadnPixelsARB(disp) GET_by_offset(disp, _gloffset_ReadnPixelsARB)
+#define SET_ReadnPixelsARB(disp, fn) SET_by_offset(disp, _gloffset_ReadnPixelsARB, fn)
#define CALL_PolygonOffsetEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLfloat, GLfloat)), _gloffset_PolygonOffsetEXT, parameters)
#define GET_PolygonOffsetEXT(disp) GET_by_offset(disp, _gloffset_PolygonOffsetEXT)
#define SET_PolygonOffsetEXT(disp, fn) SET_by_offset(disp, _gloffset_PolygonOffsetEXT, fn)
diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c
index 75bb9259416..44fc1325ceb 100644
--- a/src/mesa/main/histogram.c
+++ b/src/mesa/main/histogram.c
@@ -44,7 +44,8 @@ static void GLAPIENTRY _mesa_ResetMinmax(GLenum target);
static void GLAPIENTRY
-_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
+_mesa_GetnMinmaxARB(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, GLsizei bufSize, GLvoid *values)
{
GET_CURRENT_CONTEXT(ctx);
@@ -53,7 +54,16 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvo
static void GLAPIENTRY
-_mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
+_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type,
+ GLvoid *values)
+{
+ _mesa_GetnMinmaxARB(target, reset, format, type, INT_MAX, values);
+}
+
+
+static void GLAPIENTRY
+_mesa_GetnHistogramARB(GLenum target, GLboolean reset, GLenum format,
+ GLenum type, GLsizei bufSize, GLvoid *values)
{
GET_CURRENT_CONTEXT(ctx);
@@ -62,6 +72,14 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, G
static void GLAPIENTRY
+_mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type,
+ GLvoid *values)
+{
+ _mesa_GetnHistogramARB(target, reset, format, type, INT_MAX, values);
+}
+
+
+static void GLAPIENTRY
_mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params)
{
GET_CURRENT_CONTEXT(ctx);
@@ -146,6 +164,10 @@ _mesa_init_histogram_dispatch(struct _glapi_table *disp)
SET_Minmax(disp, _mesa_Minmax);
SET_ResetHistogram(disp, _mesa_ResetHistogram);
SET_ResetMinmax(disp, _mesa_ResetMinmax);
+
+ /* GL_ARB_robustness */
+ SET_GetnHistogramARB(disp, _mesa_GetnHistogramARB);
+ SET_GetnMinmaxARB(disp, _mesa_GetnMinmaxARB);
}
#endif /* FEATURE_histogram */
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index 28841c25102..6d7bc735887 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -82,6 +82,8 @@ _mesa_type_is_packed(GLenum type)
case GL_UNSIGNED_SHORT_8_8_MESA:
case GL_UNSIGNED_SHORT_8_8_REV_MESA:
case GL_UNSIGNED_INT_24_8_EXT:
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
return GL_TRUE;
}
@@ -222,6 +224,10 @@ _mesa_sizeof_packed_type( GLenum type )
return sizeof(GLushort);
case GL_UNSIGNED_INT_24_8_EXT:
return sizeof(GLuint);
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ return sizeof(GLuint);
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ return sizeof(GLuint);
default:
return -1;
}
@@ -363,6 +369,16 @@ _mesa_bytes_per_pixel( GLenum format, GLenum type )
return sizeof(GLuint);
else
return -1;
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ if (format == GL_RGB)
+ return sizeof(GLuint);
+ else
+ return -1;
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ if (format == GL_RGB)
+ return sizeof(GLuint);
+ else
+ return -1;
default:
return -1;
}
@@ -458,6 +474,10 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
return GL_TRUE;
case GL_HALF_FLOAT_ARB:
return ctx->Extensions.ARB_half_float_pixel;
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ return ctx->Extensions.EXT_texture_shared_exponent;
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ return ctx->Extensions.EXT_packed_float;
default:
return GL_FALSE;
}
@@ -821,6 +841,8 @@ _mesa_is_color_format(GLenum format)
case GL_INTENSITY_SNORM:
case GL_INTENSITY8_SNORM:
case GL_INTENSITY16_SNORM:
+ case GL_RGB9_E5:
+ case GL_R11F_G11F_B10F:
return GL_TRUE;
case GL_YCBCR_MESA: /* not considered to be RGB */
/* fall-through */
diff --git a/src/mesa/main/macros.h b/src/mesa/main/macros.h
index 86a58cc6b43..01e4d20afbf 100644
--- a/src/mesa/main/macros.h
+++ b/src/mesa/main/macros.h
@@ -669,6 +669,10 @@ do { \
/** Maximum of two values: */
#define MAX2( A, B ) ( (A)>(B) ? (A) : (B) )
+/** Minimum and maximum of three values: */
+#define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C))
+#define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C))
+
/** Dot product of two 2-element vectors */
#define DOT2( a, b ) ( (a)[0]*(b)[0] + (a)[1]*(b)[1] )
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index e594160ad9e..e9fcb545a1e 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -34,6 +34,9 @@
#include "teximage.h"
#include "texstore.h"
#include "image.h"
+#include "macros.h"
+#include "../../gallium/auxiliary/util/u_format_rgb9e5.h"
+#include "../../gallium/auxiliary/util/u_format_r11g11b10f.h"
@@ -634,6 +637,75 @@ do_row(GLenum datatype, GLuint comps, GLint srcWidth,
}
}
+ else if (datatype == GL_UNSIGNED_INT_2_10_10_10_REV && comps == 4) {
+ GLuint i, j, k;
+ const GLuint *rowA = (const GLuint *) srcRowA;
+ const GLuint *rowB = (const GLuint *) srcRowB;
+ GLuint *dst = (GLuint *) dstRow;
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ const GLint rowAr0 = rowA[j] & 0x3ff;
+ const GLint rowAr1 = rowA[k] & 0x3ff;
+ const GLint rowBr0 = rowB[j] & 0x3ff;
+ const GLint rowBr1 = rowB[k] & 0x3ff;
+ const GLint rowAg0 = (rowA[j] >> 10) & 0x3ff;
+ const GLint rowAg1 = (rowA[k] >> 10) & 0x3ff;
+ const GLint rowBg0 = (rowB[j] >> 10) & 0x3ff;
+ const GLint rowBg1 = (rowB[k] >> 10) & 0x3ff;
+ const GLint rowAb0 = (rowA[j] >> 20) & 0x3ff;
+ const GLint rowAb1 = (rowA[k] >> 20) & 0x3ff;
+ const GLint rowBb0 = (rowB[j] >> 20) & 0x3ff;
+ const GLint rowBb1 = (rowB[k] >> 20) & 0x3ff;
+ const GLint rowAa0 = (rowA[j] >> 30) & 0x3;
+ const GLint rowAa1 = (rowA[k] >> 30) & 0x3;
+ const GLint rowBa0 = (rowB[j] >> 30) & 0x3;
+ const GLint rowBa1 = (rowB[k] >> 30) & 0x3;
+ const GLint red = (rowAr0 + rowAr1 + rowBr0 + rowBr1) >> 2;
+ const GLint green = (rowAg0 + rowAg1 + rowBg0 + rowBg1) >> 2;
+ const GLint blue = (rowAb0 + rowAb1 + rowBb0 + rowBb1) >> 2;
+ const GLint alpha = (rowAa0 + rowAa1 + rowBa0 + rowBa1) >> 2;
+ dst[i] = (alpha << 30) | (blue << 20) | (green << 10) | red;
+ }
+ }
+
+ else if (datatype == GL_UNSIGNED_INT_5_9_9_9_REV && comps == 3) {
+ GLuint i, j, k;
+ const GLuint *rowA = (const GLuint*) srcRowA;
+ const GLuint *rowB = (const GLuint*) srcRowB;
+ GLuint *dst = (GLuint*)dstRow;
+ GLfloat res[3], rowAj[3], rowBj[3], rowAk[3], rowBk[3];
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ rgb9e5_to_float3(rowA[j], rowAj);
+ rgb9e5_to_float3(rowB[j], rowBj);
+ rgb9e5_to_float3(rowA[k], rowAk);
+ rgb9e5_to_float3(rowB[k], rowBk);
+ res[0] = (rowAj[0] + rowAk[0] + rowBj[0] + rowBk[0]) * 0.25F;
+ res[1] = (rowAj[1] + rowAk[1] + rowBj[1] + rowBk[1]) * 0.25F;
+ res[2] = (rowAj[2] + rowAk[2] + rowBj[2] + rowBk[2]) * 0.25F;
+ dst[i] = float3_to_rgb9e5(res);
+ }
+ }
+
+ else if (datatype == GL_UNSIGNED_INT_10F_11F_11F_REV && comps == 3) {
+ GLuint i, j, k;
+ const GLuint *rowA = (const GLuint*) srcRowA;
+ const GLuint *rowB = (const GLuint*) srcRowB;
+ GLuint *dst = (GLuint*)dstRow;
+ GLfloat res[3], rowAj[3], rowBj[3], rowAk[3], rowBk[3];
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ r11g11b10f_to_float3(rowA[j], rowAj);
+ r11g11b10f_to_float3(rowB[j], rowBj);
+ r11g11b10f_to_float3(rowA[k], rowAk);
+ r11g11b10f_to_float3(rowB[k], rowBk);
+ res[0] = (rowAj[0] + rowAk[0] + rowBj[0] + rowBk[0]) * 0.25F;
+ res[1] = (rowAj[1] + rowAk[1] + rowBj[1] + rowBk[1]) * 0.25F;
+ res[2] = (rowAj[2] + rowAk[2] + rowBj[2] + rowBk[2]) * 0.25F;
+ dst[i] = float3_to_r11g11b10f(res);
+ }
+ }
+
else {
_mesa_problem(NULL, "bad format in do_row()");
}
@@ -1165,6 +1237,110 @@ do_row_3D(GLenum datatype, GLuint comps, GLint srcWidth,
dst[i] = (g << 4) | r;
}
}
+ else if ((datatype == GL_UNSIGNED_INT_2_10_10_10_REV) && (comps == 4)) {
+ DECLARE_ROW_POINTERS0(GLuint);
+
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ const GLint rowAr0 = rowA[j] & 0x3ff;
+ const GLint rowAr1 = rowA[k] & 0x3ff;
+ const GLint rowBr0 = rowB[j] & 0x3ff;
+ const GLint rowBr1 = rowB[k] & 0x3ff;
+ const GLint rowCr0 = rowC[j] & 0x3ff;
+ const GLint rowCr1 = rowC[k] & 0x3ff;
+ const GLint rowDr0 = rowD[j] & 0x3ff;
+ const GLint rowDr1 = rowD[k] & 0x3ff;
+ const GLint rowAg0 = (rowA[j] >> 10) & 0x3ff;
+ const GLint rowAg1 = (rowA[k] >> 10) & 0x3ff;
+ const GLint rowBg0 = (rowB[j] >> 10) & 0x3ff;
+ const GLint rowBg1 = (rowB[k] >> 10) & 0x3ff;
+ const GLint rowCg0 = (rowC[j] >> 10) & 0x3ff;
+ const GLint rowCg1 = (rowC[k] >> 10) & 0x3ff;
+ const GLint rowDg0 = (rowD[j] >> 10) & 0x3ff;
+ const GLint rowDg1 = (rowD[k] >> 10) & 0x3ff;
+ const GLint rowAb0 = (rowA[j] >> 20) & 0x3ff;
+ const GLint rowAb1 = (rowA[k] >> 20) & 0x3ff;
+ const GLint rowBb0 = (rowB[j] >> 20) & 0x3ff;
+ const GLint rowBb1 = (rowB[k] >> 20) & 0x3ff;
+ const GLint rowCb0 = (rowC[j] >> 20) & 0x3ff;
+ const GLint rowCb1 = (rowC[k] >> 20) & 0x3ff;
+ const GLint rowDb0 = (rowD[j] >> 20) & 0x3ff;
+ const GLint rowDb1 = (rowD[k] >> 20) & 0x3ff;
+ const GLint rowAa0 = (rowA[j] >> 30) & 0x3;
+ const GLint rowAa1 = (rowA[k] >> 30) & 0x3;
+ const GLint rowBa0 = (rowB[j] >> 30) & 0x3;
+ const GLint rowBa1 = (rowB[k] >> 30) & 0x3;
+ const GLint rowCa0 = (rowC[j] >> 30) & 0x3;
+ const GLint rowCa1 = (rowC[k] >> 30) & 0x3;
+ const GLint rowDa0 = (rowD[j] >> 30) & 0x3;
+ const GLint rowDa1 = (rowD[k] >> 30) & 0x3;
+ const GLint r = FILTER_SUM_3D(rowAr0, rowAr1, rowBr0, rowBr1,
+ rowCr0, rowCr1, rowDr0, rowDr1);
+ const GLint g = FILTER_SUM_3D(rowAg0, rowAg1, rowBg0, rowBg1,
+ rowCg0, rowCg1, rowDg0, rowDg1);
+ const GLint b = FILTER_SUM_3D(rowAb0, rowAb1, rowBb0, rowBb1,
+ rowCb0, rowCb1, rowDb0, rowDb1);
+ const GLint a = FILTER_SUM_3D(rowAa0, rowAa1, rowBa0, rowBa1,
+ rowCa0, rowCa1, rowDa0, rowDa1);
+
+ dst[i] = (a << 30) | (b << 20) | (g << 10) | r;
+ }
+ }
+
+ else if (datatype == GL_UNSIGNED_INT_5_9_9_9_REV && comps == 3) {
+ DECLARE_ROW_POINTERS0(GLuint);
+
+ GLfloat res[3];
+ GLfloat rowAj[3], rowBj[3], rowCj[3], rowDj[3];
+ GLfloat rowAk[3], rowBk[3], rowCk[3], rowDk[3];
+
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ rgb9e5_to_float3(rowA[j], rowAj);
+ rgb9e5_to_float3(rowB[j], rowBj);
+ rgb9e5_to_float3(rowC[j], rowCj);
+ rgb9e5_to_float3(rowD[j], rowDj);
+ rgb9e5_to_float3(rowA[k], rowAk);
+ rgb9e5_to_float3(rowB[k], rowBk);
+ rgb9e5_to_float3(rowC[k], rowCk);
+ rgb9e5_to_float3(rowD[k], rowDk);
+ res[0] = (rowAj[0] + rowAk[0] + rowBj[0] + rowBk[0] +
+ rowCj[0] + rowCk[0] + rowDj[0] + rowDk[0]) * 0.125F;
+ res[1] = (rowAj[1] + rowAk[1] + rowBj[1] + rowBk[1] +
+ rowCj[1] + rowCk[1] + rowDj[1] + rowDk[1]) * 0.125F;
+ res[2] = (rowAj[2] + rowAk[2] + rowBj[2] + rowBk[2] +
+ rowCj[2] + rowCk[2] + rowDj[2] + rowDk[2]) * 0.125F;
+ dst[i] = float3_to_rgb9e5(res);
+ }
+ }
+
+ else if (datatype == GL_UNSIGNED_INT_10F_11F_11F_REV && comps == 3) {
+ DECLARE_ROW_POINTERS0(GLuint);
+
+ GLfloat res[3];
+ GLfloat rowAj[3], rowBj[3], rowCj[3], rowDj[3];
+ GLfloat rowAk[3], rowBk[3], rowCk[3], rowDk[3];
+
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ r11g11b10f_to_float3(rowA[j], rowAj);
+ r11g11b10f_to_float3(rowB[j], rowBj);
+ r11g11b10f_to_float3(rowC[j], rowCj);
+ r11g11b10f_to_float3(rowD[j], rowDj);
+ r11g11b10f_to_float3(rowA[k], rowAk);
+ r11g11b10f_to_float3(rowB[k], rowBk);
+ r11g11b10f_to_float3(rowC[k], rowCk);
+ r11g11b10f_to_float3(rowD[k], rowDk);
+ res[0] = (rowAj[0] + rowAk[0] + rowBj[0] + rowBk[0] +
+ rowCj[0] + rowCk[0] + rowDj[0] + rowDk[0]) * 0.125F;
+ res[1] = (rowAj[1] + rowAk[1] + rowBj[1] + rowBk[1] +
+ rowCj[1] + rowCk[1] + rowDj[1] + rowDk[1]) * 0.125F;
+ res[2] = (rowAj[2] + rowAk[2] + rowBj[2] + rowBk[2] +
+ rowCj[2] + rowCk[2] + rowDj[2] + rowDk[2]) * 0.125F;
+ dst[i] = float3_to_r11g11b10f(res);
+ }
+ }
+
else {
_mesa_problem(NULL, "bad format in do_row()");
}
@@ -1896,7 +2072,6 @@ _mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
const GLenum srcFormat = _mesa_get_format_base_format(convertFormat);
GLint dstRowStride
= _mesa_format_row_stride(dstImage->TexFormat, dstWidth);
- ASSERT(srcFormat == GL_RGB || srcFormat == GL_RGBA);
_mesa_texstore(ctx, 2, dstImage->_BaseFormat,
dstImage->TexFormat,
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 160ae9d2622..29c8cfd2363 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -376,7 +376,15 @@ typedef enum
{
FRAG_RESULT_DEPTH = 0,
FRAG_RESULT_STENCIL = 1,
+ /* If a single color should be written to all render targets, this
+ * register is written. No FRAG_RESULT_DATAn will be written.
+ */
FRAG_RESULT_COLOR = 2,
+
+ /* FRAG_RESULT_DATAn are the per-render-target (GLSL gl_FragData[n]
+ * or ARB_fragment_program fragment.color[n]) color results. If
+ * any are written, FRAG_RESULT_COLOR will not be written.
+ */
FRAG_RESULT_DATA0 = 3,
FRAG_RESULT_MAX = (FRAG_RESULT_DATA0 + MAX_DRAW_BUFFERS)
} gl_frag_result;
@@ -1331,6 +1339,7 @@ struct gl_sampler_object
GLenum CompareFunc; /**< GL_ARB_shadow */
GLfloat CompareFailValue; /**< GL_ARB_shadow_ambient */
GLenum sRGBDecode; /**< GL_DECODE_EXT or GL_SKIP_DECODE_EXT */
+ GLboolean CubeMapSeamless; /**< GL_AMD_seamless_cubemap_per_texture */
/* deprecated sampler state */
GLenum DepthMode; /**< GL_ARB_depth_texture */
@@ -2738,6 +2747,9 @@ struct gl_constants
/* GL_EXT_framebuffer_sRGB */
GLboolean sRGBCapable; /* can enable sRGB blend/update on FBOs */
+
+ /* GL_ARB_robustness */
+ GLenum ResetStrategy;
};
@@ -2874,6 +2886,7 @@ struct gl_extensions
GLboolean OES_standard_derivatives;
/* vendor extensions */
GLboolean AMD_conservative_depth;
+ GLboolean AMD_seamless_cubemap_per_texture;
GLboolean APPLE_client_storage;
GLboolean APPLE_packed_pixels;
GLboolean APPLE_vertex_array_object;
@@ -3297,6 +3310,9 @@ struct gl_context
GLenum ErrorValue; /**< Last error code */
+ /* GL_ARB_robustness */
+ GLenum ResetStatus;
+
/**
* Recognize and silence repeated error debug messages in buggy apps.
*/
diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c
index 4bb0a90045e..d6470e351b8 100644
--- a/src/mesa/main/pack.c
+++ b/src/mesa/main/pack.c
@@ -38,6 +38,8 @@
#include "pack.h"
#include "pixeltransfer.h"
#include "imports.h"
+#include "../../gallium/auxiliary/util/u_format_rgb9e5.h"
+#include "../../gallium/auxiliary/util/u_format_r11g11b10f.h"
/**
@@ -1893,6 +1895,22 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
}
}
break;
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ {
+ GLuint *dst = (GLuint *) dstAddr;
+ for (i = 0; i < n; i++) {
+ dst[i] = float3_to_rgb9e5(rgba[i]);
+ }
+ }
+ break;
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ {
+ GLuint *dst = (GLuint *) dstAddr;
+ for (i = 0; i < n; i++) {
+ dst[i] = float3_to_r11g11b10f(rgba[i]);
+ }
+ }
+ break;
default:
_mesa_problem(ctx, "bad type in _mesa_pack_rgba_span_float");
return;
@@ -2331,7 +2349,9 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
srcType == GL_UNSIGNED_INT_10_10_10_2 ||
- srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV ||
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV ||
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV);
get_component_mapping(srcFormat,
&rSrc, &gSrc, &bSrc, &aSrc,
@@ -2801,6 +2821,62 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
}
}
break;
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ if (swapBytes) {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ GLfloat f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ SWAP4BYTE(p);
+ rgb9e5_to_float3(p, f);
+ rgba[i][rDst] = f[0];
+ rgba[i][gDst] = f[1];
+ rgba[i][bDst] = f[2];
+ rgba[i][aDst] = 1.0F;
+ }
+ }
+ else {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ GLfloat f[3];
+ for (i = 0; i < n; i ++) {
+ rgb9e5_to_float3(uisrc[i], f);
+ rgba[i][rDst] = f[0];
+ rgba[i][gDst] = f[1];
+ rgba[i][bDst] = f[2];
+ rgba[i][aDst] = 1.0F;
+ }
+ }
+ break;
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ if (swapBytes) {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ GLfloat f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ SWAP4BYTE(p);
+ r11g11b10f_to_float3(p, f);
+ rgba[i][rDst] = f[0];
+ rgba[i][gDst] = f[1];
+ rgba[i][bDst] = f[2];
+ rgba[i][aDst] = 1.0F;
+ }
+ }
+ else {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ GLfloat f[3];
+ for (i = 0; i < n; i ++) {
+ r11g11b10f_to_float3(uisrc[i], f);
+ rgba[i][rDst] = f[0];
+ rgba[i][gDst] = f[1];
+ rgba[i][bDst] = f[2];
+ rgba[i][aDst] = 1.0F;
+ }
+ }
+ break;
default:
_mesa_problem(NULL, "bad srcType in extract float data");
break;
@@ -2856,7 +2932,6 @@ extract_uint_rgba(GLuint n, GLuint rgba[][4],
GLint rSrc, gSrc, bSrc, aSrc;
GLint stride;
GLint rDst, bDst, gDst, aDst;
- GLboolean intFormat;
ASSERT(srcFormat == GL_RED ||
srcFormat == GL_GREEN ||
@@ -2903,7 +2978,9 @@ extract_uint_rgba(GLuint n, GLuint rgba[][4],
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
srcType == GL_UNSIGNED_INT_10_10_10_2 ||
- srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV ||
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV ||
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV);
get_component_mapping(srcFormat,
&rSrc, &gSrc, &bSrc, &aSrc,
@@ -2911,8 +2988,6 @@ extract_uint_rgba(GLuint n, GLuint rgba[][4],
stride = _mesa_components_in_format(srcFormat);
- intFormat = _mesa_is_integer_format(srcFormat);
-
#define PROCESS(SRC_INDEX, DST_INDEX, DEFAULT, TYPE, CONVERSION) \
if ((SRC_INDEX) < 0) { \
GLuint i; \
@@ -3267,6 +3342,64 @@ extract_uint_rgba(GLuint n, GLuint rgba[][4],
}
}
break;
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ if (swapBytes) {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ float f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ SWAP4BYTE(p);
+ rgb9e5_to_float3(p, f);
+ rgba[i][rDst] = clamp_float_to_uint(f[0]);
+ rgba[i][gDst] = clamp_float_to_uint(f[1]);
+ rgba[i][bDst] = clamp_float_to_uint(f[2]);
+ rgba[i][aDst] = 1;
+ }
+ }
+ else {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ float f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ rgb9e5_to_float3(p, f);
+ rgba[i][rDst] = clamp_float_to_uint(f[0]);
+ rgba[i][gDst] = clamp_float_to_uint(f[1]);
+ rgba[i][bDst] = clamp_float_to_uint(f[2]);
+ rgba[i][aDst] = 1;
+ }
+ }
+ break;
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ if (swapBytes) {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ float f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ SWAP4BYTE(p);
+ r11g11b10f_to_float3(p, f);
+ rgba[i][rDst] = clamp_float_to_uint(f[0]);
+ rgba[i][gDst] = clamp_float_to_uint(f[1]);
+ rgba[i][bDst] = clamp_float_to_uint(f[2]);
+ rgba[i][aDst] = 1;
+ }
+ }
+ else {
+ const GLuint *uisrc = (const GLuint *) src;
+ GLuint i;
+ float f[3];
+ for (i = 0; i < n; i ++) {
+ GLuint p = uisrc[i];
+ r11g11b10f_to_float3(p, f);
+ rgba[i][rDst] = clamp_float_to_uint(f[0]);
+ rgba[i][gDst] = clamp_float_to_uint(f[1]);
+ rgba[i][bDst] = clamp_float_to_uint(f[2]);
+ rgba[i][aDst] = 1;
+ }
+ }
+ break;
default:
_mesa_problem(NULL, "bad srcType in extract uint data");
break;
@@ -3346,7 +3479,9 @@ _mesa_unpack_color_span_chan( struct gl_context *ctx,
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
srcType == GL_UNSIGNED_INT_10_10_10_2 ||
- srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV ||
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV ||
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV);
/* Try simple cases first */
if (transferOps == 0) {
@@ -3668,7 +3803,9 @@ _mesa_unpack_color_span_float( struct gl_context *ctx,
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
srcType == GL_UNSIGNED_INT_10_10_10_2 ||
- srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV ||
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV ||
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV);
/* general solution, no special cases, yet */
{
@@ -3874,7 +4011,9 @@ _mesa_unpack_color_span_uint(struct gl_context *ctx,
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
srcType == GL_UNSIGNED_INT_10_10_10_2 ||
- srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV ||
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV ||
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV);
/* Extract image data as uint[4] pixels */
diff --git a/src/mesa/main/pbo.c b/src/mesa/main/pbo.c
index 56b26a954bd..15e0480e9f1 100644
--- a/src/mesa/main/pbo.c
+++ b/src/mesa/main/pbo.c
@@ -43,7 +43,7 @@
* When we're about to read pixel data out of a PBO (via glDrawPixels,
* glTexImage, etc) or write data into a PBO (via glReadPixels,
* glGetTexImage, etc) we call this function to check that we're not
- * going to read out of bounds.
+ * going to read/write out of bounds.
*
* XXX This would also be a convenient time to check that the PBO isn't
* currently mapped. Whoever calls this function should check for that.
@@ -56,43 +56,52 @@
* \param depth depth of image to read/write
* \param format format of image to read/write
* \param type datatype of image to read/write
+ * \param clientMemSize the maximum number of bytes to read/write
* \param ptr the user-provided pointer/offset
- * \return GL_TRUE if the PBO access is OK, GL_FALSE if the access would
+ * \return GL_TRUE if the buffer access is OK, GL_FALSE if the access would
* go out of bounds.
*/
GLboolean
_mesa_validate_pbo_access(GLuint dimensions,
const struct gl_pixelstore_attrib *pack,
GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, const GLvoid *ptr)
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ const GLvoid *ptr)
{
- GLvoid *start, *end;
+ const GLvoid *start, *end, *offset;
const GLubyte *sizeAddr; /* buffer size, cast to a pointer */
- if (!_mesa_is_bufferobj(pack->BufferObj))
- return GL_TRUE; /* no PBO, OK */
+ /* If no PBO is bound, 'ptr' is a pointer to client memory containing
+ 'clientMemSize' bytes.
+ If a PBO is bound, 'ptr' is an offset into the bound PBO.
+ In that case 'clientMemSize' is ignored: we just use the PBO's size.
+ */
+ if (!_mesa_is_bufferobj(pack->BufferObj)) {
+ offset = 0;
+ sizeAddr = ((const GLubyte *) 0) + clientMemSize;
+ } else {
+ offset = ptr;
+ sizeAddr = ((const GLubyte *) 0) + pack->BufferObj->Size;
+ }
- if (pack->BufferObj->Size == 0)
+ if (sizeAddr == 0)
/* no buffer! */
return GL_FALSE;
- /* get address of first pixel we'll read */
- start = _mesa_image_address(dimensions, pack, ptr, width, height,
+ /* get the offset to the first pixel we'll read/write */
+ start = _mesa_image_address(dimensions, pack, offset, width, height,
format, type, 0, 0, 0);
- /* get address just past the last pixel we'll read */
- end = _mesa_image_address(dimensions, pack, ptr, width, height,
- format, type, depth-1, height-1, width);
-
-
- sizeAddr = ((const GLubyte *) 0) + pack->BufferObj->Size;
+ /* get the offset to just past the last pixel we'll read/write */
+ end = _mesa_image_address(dimensions, pack, offset, width, height,
+ format, type, depth-1, height-1, width);
if ((const GLubyte *) start > sizeAddr) {
/* This will catch negative values / wrap-around */
return GL_FALSE;
}
if ((const GLubyte *) end > sizeAddr) {
- /* Image read goes beyond end of buffer */
+ /* Image read/write goes beyond end of buffer */
return GL_FALSE;
}
@@ -146,24 +155,30 @@ _mesa_map_pbo_source(struct gl_context *ctx,
*/
const GLvoid *
_mesa_map_validate_pbo_source(struct gl_context *ctx,
- GLuint dimensions,
- const struct gl_pixelstore_attrib *unpack,
- GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, const GLvoid *ptr,
- const char *where)
+ GLuint dimensions,
+ const struct gl_pixelstore_attrib *unpack,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ const GLvoid *ptr, const char *where)
{
ASSERT(dimensions == 1 || dimensions == 2 || dimensions == 3);
- if (!_mesa_is_bufferobj(unpack->BufferObj)) {
- /* non-PBO access: no validation to be done */
- return ptr;
+ if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
+ format, type, clientMemSize, ptr)) {
+ if (_mesa_is_bufferobj(unpack->BufferObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(out of bounds PBO access)", where);
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(out of bounds access: bufSize (%d) is too small)",
+ where, clientMemSize);
+ }
+ return NULL;
}
- if (!_mesa_validate_pbo_access(dimensions, unpack,
- width, height, depth, format, type, ptr)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(out of bounds PBO access)", where);
- return NULL;
+ if (!_mesa_is_bufferobj(unpack->BufferObj)) {
+ /* non-PBO access: no further validation to be done */
+ return ptr;
}
if (_mesa_bufferobj_mapped(unpack->BufferObj)) {
@@ -236,24 +251,30 @@ _mesa_map_pbo_dest(struct gl_context *ctx,
*/
GLvoid *
_mesa_map_validate_pbo_dest(struct gl_context *ctx,
- GLuint dimensions,
- const struct gl_pixelstore_attrib *unpack,
- GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, GLvoid *ptr,
- const char *where)
+ GLuint dimensions,
+ const struct gl_pixelstore_attrib *unpack,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ GLvoid *ptr, const char *where)
{
ASSERT(dimensions == 1 || dimensions == 2 || dimensions == 3);
- if (!_mesa_is_bufferobj(unpack->BufferObj)) {
- /* non-PBO access: no validation to be done */
- return ptr;
+ if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
+ format, type, clientMemSize, ptr)) {
+ if (_mesa_is_bufferobj(unpack->BufferObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(out of bounds PBO access)", where);
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(out of bounds access: bufSize (%d) is too small)",
+ where, clientMemSize);
+ }
+ return NULL;
}
- if (!_mesa_validate_pbo_access(dimensions, unpack,
- width, height, depth, format, type, ptr)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(out of bounds PBO access)", where);
- return NULL;
+ if (!_mesa_is_bufferobj(unpack->BufferObj)) {
+ /* non-PBO access: no further validation to be done */
+ return ptr;
}
if (_mesa_bufferobj_mapped(unpack->BufferObj)) {
@@ -281,7 +302,6 @@ _mesa_unmap_pbo_dest(struct gl_context *ctx,
}
-
/**
* Check if an unpack PBO is active prior to fetching a texture image.
* If so, do bounds checking and map the buffer into main memory.
@@ -302,7 +322,7 @@ _mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
return pixels;
}
if (!_mesa_validate_pbo_access(dimensions, unpack, width, height, depth,
- format, type, pixels)) {
+ format, type, INT_MAX, pixels)) {
_mesa_error(ctx, GL_INVALID_OPERATION, funcName, "(invalid PBO access)");
return NULL;
}
diff --git a/src/mesa/main/pbo.h b/src/mesa/main/pbo.h
index 0cddd72ba7f..00a6e617f22 100644
--- a/src/mesa/main/pbo.h
+++ b/src/mesa/main/pbo.h
@@ -34,7 +34,8 @@ extern GLboolean
_mesa_validate_pbo_access(GLuint dimensions,
const struct gl_pixelstore_attrib *pack,
GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, const GLvoid *ptr);
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ const GLvoid *ptr);
extern const GLvoid *
_mesa_map_pbo_source(struct gl_context *ctx,
@@ -46,8 +47,8 @@ _mesa_map_validate_pbo_source(struct gl_context *ctx,
GLuint dimensions,
const struct gl_pixelstore_attrib *unpack,
GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, const GLvoid *ptr,
- const char *where);
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ const GLvoid *ptr, const char *where);
extern void
_mesa_unmap_pbo_source(struct gl_context *ctx,
@@ -63,8 +64,8 @@ _mesa_map_validate_pbo_dest(struct gl_context *ctx,
GLuint dimensions,
const struct gl_pixelstore_attrib *unpack,
GLsizei width, GLsizei height, GLsizei depth,
- GLenum format, GLenum type, GLvoid *ptr,
- const char *where);
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ GLvoid *ptr, const char *where);
extern void
_mesa_unmap_pbo_dest(struct gl_context *ctx,
diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c
index da99c9b6f35..775746270d1 100644
--- a/src/mesa/main/pixel.c
+++ b/src/mesa/main/pixel.c
@@ -145,8 +145,9 @@ store_pixelmap(struct gl_context *ctx, GLenum map, GLsizei mapsize,
* Convenience wrapper for _mesa_validate_pbo_access() for gl[Get]PixelMap().
*/
static GLboolean
-validate_pbo_access(struct gl_context *ctx, struct gl_pixelstore_attrib *pack,
- GLsizei mapsize, GLenum format, GLenum type,
+validate_pbo_access(struct gl_context *ctx,
+ struct gl_pixelstore_attrib *pack, GLsizei mapsize,
+ GLenum format, GLenum type, GLsizei clientMemSize,
const GLvoid *ptr)
{
GLboolean ok;
@@ -157,7 +158,7 @@ validate_pbo_access(struct gl_context *ctx, struct gl_pixelstore_attrib *pack,
pack->BufferObj);
ok = _mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- format, type, ptr);
+ format, type, clientMemSize, ptr);
/* restore */
_mesa_reference_buffer_object(ctx,
@@ -165,8 +166,14 @@ validate_pbo_access(struct gl_context *ctx, struct gl_pixelstore_attrib *pack,
ctx->Shared->NullBufferObj);
if (!ok) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPixelMap(invalid PBO access)");
+ if (_mesa_is_bufferobj(pack->BufferObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "gl[Get]PixelMap*v(out of bounds PBO access)");
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetnPixelMap*vARB(out of bounds access:"
+ " bufSize (%d) is too small)", clientMemSize);
+ }
}
return ok;
}
@@ -194,8 +201,8 @@ _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
- GL_INTENSITY, GL_FLOAT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize, GL_INTENSITY,
+ GL_FLOAT, INT_MAX, values)) {
return;
}
@@ -236,8 +243,8 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
- GL_INTENSITY, GL_UNSIGNED_INT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize, GL_INTENSITY,
+ GL_UNSIGNED_INT, INT_MAX, values)) {
return;
}
@@ -292,8 +299,8 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
- GL_INTENSITY, GL_UNSIGNED_SHORT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize, GL_INTENSITY,
+ GL_UNSIGNED_SHORT, INT_MAX, values)) {
return;
}
@@ -327,10 +334,10 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
static void GLAPIENTRY
-_mesa_GetPixelMapfv( GLenum map, GLfloat *values )
+_mesa_GetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values )
{
GET_CURRENT_CONTEXT(ctx);
- GLuint mapsize, i;
+ GLint mapsize, i;
const struct gl_pixelmap *pm;
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -343,8 +350,8 @@ _mesa_GetPixelMapfv( GLenum map, GLfloat *values )
mapsize = pm->Size;
- if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
- GL_INTENSITY, GL_FLOAT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize, GL_INTENSITY,
+ GL_FLOAT, bufSize, values)) {
return;
}
@@ -372,7 +379,13 @@ _mesa_GetPixelMapfv( GLenum map, GLfloat *values )
static void GLAPIENTRY
-_mesa_GetPixelMapuiv( GLenum map, GLuint *values )
+_mesa_GetPixelMapfv( GLenum map, GLfloat *values )
+{
+ _mesa_GetnPixelMapfvARB(map, INT_MAX, values);
+}
+
+static void GLAPIENTRY
+_mesa_GetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values )
{
GET_CURRENT_CONTEXT(ctx);
GLint mapsize, i;
@@ -385,10 +398,11 @@ _mesa_GetPixelMapuiv( GLenum map, GLuint *values )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetPixelMapuiv(map)");
return;
}
+
mapsize = pm->Size;
- if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
- GL_INTENSITY, GL_UNSIGNED_INT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize, GL_INTENSITY,
+ GL_UNSIGNED_INT, bufSize, values)) {
return;
}
@@ -416,7 +430,13 @@ _mesa_GetPixelMapuiv( GLenum map, GLuint *values )
static void GLAPIENTRY
-_mesa_GetPixelMapusv( GLenum map, GLushort *values )
+_mesa_GetPixelMapuiv( GLenum map, GLuint *values )
+{
+ _mesa_GetnPixelMapuivARB(map, INT_MAX, values);
+}
+
+static void GLAPIENTRY
+_mesa_GetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values )
{
GET_CURRENT_CONTEXT(ctx);
GLint mapsize, i;
@@ -429,10 +449,11 @@ _mesa_GetPixelMapusv( GLenum map, GLushort *values )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetPixelMapusv(map)");
return;
}
+
mapsize = pm->Size;
- if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
- GL_INTENSITY, GL_UNSIGNED_SHORT, values)) {
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize, GL_INTENSITY,
+ GL_UNSIGNED_SHORT, bufSize, values)) {
return;
}
@@ -467,6 +488,12 @@ _mesa_GetPixelMapusv( GLenum map, GLushort *values )
}
+static void GLAPIENTRY
+_mesa_GetPixelMapusv( GLenum map, GLushort *values )
+{
+ _mesa_GetnPixelMapusvARB(map, INT_MAX, values);
+}
+
/**********************************************************************/
/***** glPixelTransfer *****/
@@ -634,6 +661,11 @@ _mesa_init_pixel_dispatch(struct _glapi_table *disp)
SET_PixelTransferf(disp, _mesa_PixelTransferf);
SET_PixelTransferi(disp, _mesa_PixelTransferi);
SET_PixelZoom(disp, _mesa_PixelZoom);
+
+ /* GL_ARB_robustness */
+ SET_GetnPixelMapfvARB(disp, _mesa_GetnPixelMapfvARB);
+ SET_GetnPixelMapuivARB(disp, _mesa_GetnPixelMapuivARB);
+ SET_GetnPixelMapusvARB(disp, _mesa_GetnPixelMapusvARB);
}
diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c
index ff4232ecc39..addca0228d5 100644
--- a/src/mesa/main/polygon.c
+++ b/src/mesa/main/polygon.c
@@ -195,7 +195,8 @@ _mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern)
{
pattern = _mesa_map_validate_pbo_source(ctx, 2,
&ctx->Unpack, 32, 32, 1,
- GL_COLOR_INDEX, GL_BITMAP, pattern,
+ GL_COLOR_INDEX, GL_BITMAP,
+ INT_MAX, pattern,
"glPolygonStipple");
if (!pattern)
return;
@@ -231,7 +232,7 @@ _mesa_PolygonStipple( const GLubyte *pattern )
* Called by glPolygonStipple.
*/
void GLAPIENTRY
-_mesa_GetPolygonStipple( GLubyte *dest )
+_mesa_GetnPolygonStippleARB( GLsizei bufSize, GLubyte *dest )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -241,8 +242,8 @@ _mesa_GetPolygonStipple( GLubyte *dest )
dest = _mesa_map_validate_pbo_dest(ctx, 2,
&ctx->Pack, 32, 32, 1,
- GL_COLOR_INDEX, GL_BITMAP, dest,
- "glGetPolygonStipple");
+ GL_COLOR_INDEX, GL_BITMAP,
+ bufSize, dest, "glGetPolygonStipple");
if (!dest)
return;
@@ -253,6 +254,13 @@ _mesa_GetPolygonStipple( GLubyte *dest )
void GLAPIENTRY
+_mesa_GetPolygonStipple( GLubyte *dest )
+{
+ _mesa_GetnPolygonStippleARB(INT_MAX, dest);
+}
+
+
+void GLAPIENTRY
_mesa_PolygonOffset( GLfloat factor, GLfloat units )
{
GET_CURRENT_CONTEXT(ctx);
diff --git a/src/mesa/main/polygon.h b/src/mesa/main/polygon.h
index 13f7c91ed07..35f222f269d 100644
--- a/src/mesa/main/polygon.h
+++ b/src/mesa/main/polygon.h
@@ -36,6 +36,9 @@
struct gl_context;
+extern void GLAPIENTRY
+_mesa_GetnPolygonStippleARB( GLsizei bufSize, GLubyte *dest );
+
extern void
_mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern);
diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index a172a0000f5..0331a8ca2fe 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -167,8 +167,9 @@ _mesa_error_check_format_type(struct gl_context *ctx, GLenum format,
void GLAPIENTRY
-_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
- GLenum format, GLenum type, GLvoid *pixels )
+_mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ GLvoid *pixels )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -224,21 +225,33 @@ _mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
if (width == 0 || height == 0)
return; /* nothing to do */
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1,
- format, type, pixels)) {
+ if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1,
+ format, type, bufSize, pixels)) {
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glReadPixels(invalid PBO access)");
- return;
+ "glReadPixels(out of bounds PBO access)");
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glReadnPixelsARB(out of bounds access:"
+ " bufSize (%d) is too small)", bufSize);
}
+ return;
+ }
- if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
- /* buffer is mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)");
- return;
- }
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj) &&
+ _mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
+ /* buffer is mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)");
+ return;
}
ctx->Driver.ReadPixels(ctx, x, y, width, height,
format, type, &ctx->Pack, pixels);
}
+
+void GLAPIENTRY
+_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLvoid *pixels )
+{
+ _mesa_ReadnPixelsARB(x, y, width, height, format, type, INT_MAX, pixels);
+}
diff --git a/src/mesa/main/readpix.h b/src/mesa/main/readpix.h
index fd25e703e04..f6bb3d6e273 100644
--- a/src/mesa/main/readpix.h
+++ b/src/mesa/main/readpix.h
@@ -39,5 +39,9 @@ extern void GLAPIENTRY
_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels );
+extern void GLAPIENTRY
+_mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize,
+ GLvoid *pixels );
#endif
diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h
index 72a2f1e0b81..fdb86d3e38a 100644
--- a/src/mesa/main/remap_helper.h
+++ b/src/mesa/main/remap_helper.h
@@ -70,4774 +70,4858 @@ static const char _mesa_function_pool[] =
"\0"
"glLoadIdentity\0"
"\0"
- /* _mesa_function_pool[216]: SampleCoverageARB (will be remapped) */
+ /* _mesa_function_pool[216]: GetCombinerOutputParameterfvNV (will be remapped) */
+ "iiip\0"
+ "glGetCombinerOutputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[255]: SampleCoverageARB (will be remapped) */
"fi\0"
"glSampleCoverage\0"
"glSampleCoverageARB\0"
"\0"
- /* _mesa_function_pool[257]: ConvolutionFilter1D (offset 348) */
+ /* _mesa_function_pool[296]: ConvolutionFilter1D (offset 348) */
"iiiiip\0"
"glConvolutionFilter1D\0"
"glConvolutionFilter1DEXT\0"
"\0"
- /* _mesa_function_pool[312]: BeginQueryARB (will be remapped) */
+ /* _mesa_function_pool[351]: BeginQueryARB (will be remapped) */
"ii\0"
"glBeginQuery\0"
"glBeginQueryARB\0"
"\0"
- /* _mesa_function_pool[345]: RasterPos3dv (offset 71) */
+ /* _mesa_function_pool[384]: RasterPos3dv (offset 71) */
"p\0"
"glRasterPos3dv\0"
"\0"
- /* _mesa_function_pool[363]: PointParameteriNV (will be remapped) */
+ /* _mesa_function_pool[402]: PointParameteriNV (will be remapped) */
"ii\0"
"glPointParameteri\0"
"glPointParameteriNV\0"
"\0"
- /* _mesa_function_pool[405]: GetProgramiv (will be remapped) */
+ /* _mesa_function_pool[444]: GetProgramiv (will be remapped) */
"iip\0"
"glGetProgramiv\0"
"\0"
- /* _mesa_function_pool[425]: MultiTexCoord3sARB (offset 398) */
+ /* _mesa_function_pool[464]: MultiTexCoord3sARB (offset 398) */
"iiii\0"
"glMultiTexCoord3s\0"
"glMultiTexCoord3sARB\0"
"\0"
- /* _mesa_function_pool[470]: SecondaryColor3iEXT (will be remapped) */
+ /* _mesa_function_pool[509]: SecondaryColor3iEXT (will be remapped) */
"iii\0"
"glSecondaryColor3i\0"
"glSecondaryColor3iEXT\0"
"\0"
- /* _mesa_function_pool[516]: WindowPos3fMESA (will be remapped) */
+ /* _mesa_function_pool[555]: WindowPos3fMESA (will be remapped) */
"fff\0"
"glWindowPos3f\0"
"glWindowPos3fARB\0"
"glWindowPos3fMESA\0"
"\0"
- /* _mesa_function_pool[570]: TexCoord1iv (offset 99) */
+ /* _mesa_function_pool[609]: TexCoord1iv (offset 99) */
"p\0"
"glTexCoord1iv\0"
"\0"
- /* _mesa_function_pool[587]: TexCoord4sv (offset 125) */
+ /* _mesa_function_pool[626]: TexCoord4sv (offset 125) */
"p\0"
"glTexCoord4sv\0"
"\0"
- /* _mesa_function_pool[604]: RasterPos4s (offset 84) */
+ /* _mesa_function_pool[643]: RasterPos4s (offset 84) */
"iiii\0"
"glRasterPos4s\0"
"\0"
- /* _mesa_function_pool[624]: PixelTexGenParameterfvSGIS (will be remapped) */
+ /* _mesa_function_pool[663]: PixelTexGenParameterfvSGIS (will be remapped) */
"ip\0"
"glPixelTexGenParameterfvSGIS\0"
"\0"
- /* _mesa_function_pool[657]: ActiveTextureARB (offset 374) */
+ /* _mesa_function_pool[696]: ActiveTextureARB (offset 374) */
"i\0"
"glActiveTexture\0"
"glActiveTextureARB\0"
"\0"
- /* _mesa_function_pool[695]: BlitFramebufferEXT (will be remapped) */
+ /* _mesa_function_pool[734]: BlitFramebufferEXT (will be remapped) */
"iiiiiiiiii\0"
"glBlitFramebuffer\0"
"glBlitFramebufferEXT\0"
"\0"
- /* _mesa_function_pool[746]: TexCoord1f (offset 96) */
+ /* _mesa_function_pool[785]: TexCoord1f (offset 96) */
"f\0"
"glTexCoord1f\0"
"\0"
- /* _mesa_function_pool[762]: TexCoord1d (offset 94) */
+ /* _mesa_function_pool[801]: TexCoord1d (offset 94) */
"d\0"
"glTexCoord1d\0"
"\0"
- /* _mesa_function_pool[778]: VertexAttrib4ubvNV (will be remapped) */
+ /* _mesa_function_pool[817]: VertexAttrib4ubvNV (will be remapped) */
"ip\0"
"glVertexAttrib4ubvNV\0"
"\0"
- /* _mesa_function_pool[803]: TexCoord1i (offset 98) */
+ /* _mesa_function_pool[842]: TexCoord1i (offset 98) */
"i\0"
"glTexCoord1i\0"
"\0"
- /* _mesa_function_pool[819]: GetProgramNamedParameterdvNV (will be remapped) */
+ /* _mesa_function_pool[858]: GetProgramNamedParameterdvNV (will be remapped) */
"iipp\0"
"glGetProgramNamedParameterdvNV\0"
"\0"
- /* _mesa_function_pool[856]: Histogram (offset 367) */
+ /* _mesa_function_pool[895]: Histogram (offset 367) */
"iiii\0"
"glHistogram\0"
"glHistogramEXT\0"
"\0"
- /* _mesa_function_pool[889]: TexCoord1s (offset 100) */
+ /* _mesa_function_pool[928]: TexCoord1s (offset 100) */
"i\0"
"glTexCoord1s\0"
"\0"
- /* _mesa_function_pool[905]: GetMapfv (offset 267) */
+ /* _mesa_function_pool[944]: GetMapfv (offset 267) */
"iip\0"
"glGetMapfv\0"
"\0"
- /* _mesa_function_pool[921]: EvalCoord1f (offset 230) */
+ /* _mesa_function_pool[960]: EvalCoord1f (offset 230) */
"f\0"
"glEvalCoord1f\0"
"\0"
- /* _mesa_function_pool[938]: FramebufferTexture (will be remapped) */
+ /* _mesa_function_pool[977]: FramebufferTexture (will be remapped) */
"iiii\0"
"glFramebufferTexture\0"
"\0"
- /* _mesa_function_pool[965]: VertexAttribI1ivEXT (will be remapped) */
- "ip\0"
- "glVertexAttribI1ivEXT\0"
- "glVertexAttribI1iv\0"
+ /* _mesa_function_pool[1004]: GetGraphicsResetStatusARB (will be remapped) */
"\0"
- /* _mesa_function_pool[1010]: TexImage4DSGIS (dynamic) */
+ "glGetGraphicsResetStatusARB\0"
+ "\0"
+ /* _mesa_function_pool[1034]: TexImage4DSGIS (dynamic) */
"iiiiiiiiiip\0"
"glTexImage4DSGIS\0"
"\0"
- /* _mesa_function_pool[1040]: PolygonStipple (offset 175) */
+ /* _mesa_function_pool[1064]: PolygonStipple (offset 175) */
"p\0"
"glPolygonStipple\0"
"\0"
- /* _mesa_function_pool[1060]: WindowPos2dvMESA (will be remapped) */
+ /* _mesa_function_pool[1084]: WindowPos2dvMESA (will be remapped) */
"p\0"
"glWindowPos2dv\0"
"glWindowPos2dvARB\0"
"glWindowPos2dvMESA\0"
"\0"
- /* _mesa_function_pool[1115]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[1139]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */
"ppp\0"
"glReplacementCodeuiColor3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[1159]: BlendEquationSeparateEXT (will be remapped) */
+ /* _mesa_function_pool[1183]: BlendEquationSeparateEXT (will be remapped) */
"ii\0"
"glBlendEquationSeparate\0"
"glBlendEquationSeparateEXT\0"
"glBlendEquationSeparateATI\0"
"\0"
- /* _mesa_function_pool[1241]: ListParameterfSGIX (dynamic) */
+ /* _mesa_function_pool[1265]: ListParameterfSGIX (dynamic) */
"iif\0"
"glListParameterfSGIX\0"
"\0"
- /* _mesa_function_pool[1267]: SecondaryColor3bEXT (will be remapped) */
+ /* _mesa_function_pool[1291]: SecondaryColor3bEXT (will be remapped) */
"iii\0"
"glSecondaryColor3b\0"
"glSecondaryColor3bEXT\0"
"\0"
- /* _mesa_function_pool[1313]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */
+ /* _mesa_function_pool[1337]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */
"pppp\0"
"glTexCoord4fColor4fNormal3fVertex4fvSUN\0"
"\0"
- /* _mesa_function_pool[1359]: GetPixelMapfv (offset 271) */
+ /* _mesa_function_pool[1383]: GetnPolygonStippleARB (will be remapped) */
+ "ip\0"
+ "glGetnPolygonStippleARB\0"
+ "\0"
+ /* _mesa_function_pool[1411]: GetPixelMapfv (offset 271) */
"ip\0"
"glGetPixelMapfv\0"
"\0"
- /* _mesa_function_pool[1379]: Color3uiv (offset 22) */
+ /* _mesa_function_pool[1431]: Color3uiv (offset 22) */
"p\0"
"glColor3uiv\0"
"\0"
- /* _mesa_function_pool[1394]: IsEnabled (offset 286) */
+ /* _mesa_function_pool[1446]: IsEnabled (offset 286) */
"i\0"
"glIsEnabled\0"
"\0"
- /* _mesa_function_pool[1409]: VertexAttrib4svNV (will be remapped) */
+ /* _mesa_function_pool[1461]: VertexAttrib4svNV (will be remapped) */
"ip\0"
"glVertexAttrib4svNV\0"
"\0"
- /* _mesa_function_pool[1433]: EvalCoord2fv (offset 235) */
+ /* _mesa_function_pool[1485]: EvalCoord2fv (offset 235) */
"p\0"
"glEvalCoord2fv\0"
"\0"
- /* _mesa_function_pool[1451]: GetBufferSubDataARB (will be remapped) */
+ /* _mesa_function_pool[1503]: GetBufferSubDataARB (will be remapped) */
"iiip\0"
"glGetBufferSubData\0"
"glGetBufferSubDataARB\0"
"\0"
- /* _mesa_function_pool[1498]: BufferSubDataARB (will be remapped) */
+ /* _mesa_function_pool[1550]: BufferSubDataARB (will be remapped) */
"iiip\0"
"glBufferSubData\0"
"glBufferSubDataARB\0"
"\0"
- /* _mesa_function_pool[1539]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[1591]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */
"ppp\0"
"glTexCoord2fColor4ubVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[1577]: AttachShader (will be remapped) */
+ /* _mesa_function_pool[1629]: AttachShader (will be remapped) */
"ii\0"
"glAttachShader\0"
"\0"
- /* _mesa_function_pool[1596]: VertexAttrib2fARB (will be remapped) */
+ /* _mesa_function_pool[1648]: GetCombinerInputParameterfvNV (will be remapped) */
+ "iiiip\0"
+ "glGetCombinerInputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[1687]: VertexAttrib2fARB (will be remapped) */
"iff\0"
"glVertexAttrib2f\0"
"glVertexAttrib2fARB\0"
"\0"
- /* _mesa_function_pool[1638]: GetDebugLogLengthMESA (dynamic) */
+ /* _mesa_function_pool[1729]: GetDebugLogLengthMESA (dynamic) */
"iii\0"
"glGetDebugLogLengthMESA\0"
"\0"
- /* _mesa_function_pool[1667]: GetMapiv (offset 268) */
+ /* _mesa_function_pool[1758]: GetMapiv (offset 268) */
"iip\0"
"glGetMapiv\0"
"\0"
- /* _mesa_function_pool[1683]: VertexAttrib3fARB (will be remapped) */
+ /* _mesa_function_pool[1774]: VertexAttrib3fARB (will be remapped) */
"ifff\0"
"glVertexAttrib3f\0"
"glVertexAttrib3fARB\0"
"\0"
- /* _mesa_function_pool[1726]: Indexubv (offset 316) */
+ /* _mesa_function_pool[1817]: Indexubv (offset 316) */
"p\0"
"glIndexubv\0"
"\0"
- /* _mesa_function_pool[1740]: GetQueryivARB (will be remapped) */
+ /* _mesa_function_pool[1831]: GetQueryivARB (will be remapped) */
"iip\0"
"glGetQueryiv\0"
"glGetQueryivARB\0"
"\0"
- /* _mesa_function_pool[1774]: TexImage3D (offset 371) */
+ /* _mesa_function_pool[1865]: TexImage3D (offset 371) */
"iiiiiiiiip\0"
"glTexImage3D\0"
"glTexImage3DEXT\0"
"\0"
- /* _mesa_function_pool[1815]: BindFragDataLocationEXT (will be remapped) */
+ /* _mesa_function_pool[1906]: BindFragDataLocationEXT (will be remapped) */
"iip\0"
"glBindFragDataLocationEXT\0"
"glBindFragDataLocation\0"
"\0"
- /* _mesa_function_pool[1869]: ReplacementCodeuiVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[1960]: ReplacementCodeuiVertex3fvSUN (dynamic) */
"pp\0"
"glReplacementCodeuiVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[1905]: EdgeFlagPointer (offset 312) */
+ /* _mesa_function_pool[1996]: EdgeFlagPointer (offset 312) */
"ip\0"
"glEdgeFlagPointer\0"
"\0"
- /* _mesa_function_pool[1927]: Color3ubv (offset 20) */
+ /* _mesa_function_pool[2018]: Color3ubv (offset 20) */
"p\0"
"glColor3ubv\0"
"\0"
- /* _mesa_function_pool[1942]: GetQueryObjectivARB (will be remapped) */
+ /* _mesa_function_pool[2033]: GetQueryObjectivARB (will be remapped) */
"iip\0"
"glGetQueryObjectiv\0"
"glGetQueryObjectivARB\0"
"\0"
- /* _mesa_function_pool[1988]: Vertex3dv (offset 135) */
+ /* _mesa_function_pool[2079]: Vertex3dv (offset 135) */
"p\0"
"glVertex3dv\0"
"\0"
- /* _mesa_function_pool[2003]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[2094]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */
"ppp\0"
"glReplacementCodeuiTexCoord2fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[2050]: CompressedTexSubImage2DARB (will be remapped) */
+ /* _mesa_function_pool[2141]: CompressedTexSubImage2DARB (will be remapped) */
"iiiiiiiip\0"
"glCompressedTexSubImage2D\0"
"glCompressedTexSubImage2DARB\0"
"\0"
- /* _mesa_function_pool[2116]: CombinerOutputNV (will be remapped) */
+ /* _mesa_function_pool[2207]: CombinerOutputNV (will be remapped) */
"iiiiiiiiii\0"
"glCombinerOutputNV\0"
"\0"
- /* _mesa_function_pool[2147]: VertexAttribs3fvNV (will be remapped) */
+ /* _mesa_function_pool[2238]: VertexAttribs3fvNV (will be remapped) */
"iip\0"
"glVertexAttribs3fvNV\0"
"\0"
- /* _mesa_function_pool[2173]: Uniform2fARB (will be remapped) */
+ /* _mesa_function_pool[2264]: GetnMapivARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapivARB\0"
+ "\0"
+ /* _mesa_function_pool[2285]: Uniform2fARB (will be remapped) */
"iff\0"
"glUniform2f\0"
"glUniform2fARB\0"
"\0"
- /* _mesa_function_pool[2205]: LightModeliv (offset 166) */
+ /* _mesa_function_pool[2317]: LightModeliv (offset 166) */
"ip\0"
"glLightModeliv\0"
"\0"
- /* _mesa_function_pool[2224]: VertexAttrib1svARB (will be remapped) */
+ /* _mesa_function_pool[2336]: VertexAttrib1svARB (will be remapped) */
"ip\0"
"glVertexAttrib1sv\0"
"glVertexAttrib1svARB\0"
"\0"
- /* _mesa_function_pool[2267]: VertexAttribs1dvNV (will be remapped) */
+ /* _mesa_function_pool[2379]: VertexAttribs1dvNV (will be remapped) */
"iip\0"
"glVertexAttribs1dvNV\0"
"\0"
- /* _mesa_function_pool[2293]: Uniform2ivARB (will be remapped) */
+ /* _mesa_function_pool[2405]: Uniform2ivARB (will be remapped) */
"iip\0"
"glUniform2iv\0"
"glUniform2ivARB\0"
"\0"
- /* _mesa_function_pool[2327]: GetImageTransformParameterfvHP (dynamic) */
+ /* _mesa_function_pool[2439]: GetImageTransformParameterfvHP (dynamic) */
"iip\0"
"glGetImageTransformParameterfvHP\0"
"\0"
- /* _mesa_function_pool[2365]: Normal3bv (offset 53) */
+ /* _mesa_function_pool[2477]: Normal3bv (offset 53) */
"p\0"
"glNormal3bv\0"
"\0"
- /* _mesa_function_pool[2380]: TexGeniv (offset 193) */
+ /* _mesa_function_pool[2492]: TexGeniv (offset 193) */
"iip\0"
"glTexGeniv\0"
"\0"
- /* _mesa_function_pool[2396]: WeightubvARB (dynamic) */
+ /* _mesa_function_pool[2508]: WeightubvARB (dynamic) */
"ip\0"
"glWeightubvARB\0"
"\0"
- /* _mesa_function_pool[2415]: VertexAttrib1fvNV (will be remapped) */
+ /* _mesa_function_pool[2527]: VertexAttrib1fvNV (will be remapped) */
"ip\0"
"glVertexAttrib1fvNV\0"
"\0"
- /* _mesa_function_pool[2439]: Vertex3iv (offset 139) */
+ /* _mesa_function_pool[2551]: Vertex3iv (offset 139) */
"p\0"
"glVertex3iv\0"
"\0"
- /* _mesa_function_pool[2454]: CopyConvolutionFilter1D (offset 354) */
+ /* _mesa_function_pool[2566]: CopyConvolutionFilter1D (offset 354) */
"iiiii\0"
"glCopyConvolutionFilter1D\0"
"glCopyConvolutionFilter1DEXT\0"
"\0"
- /* _mesa_function_pool[2516]: VertexAttribI1uiEXT (will be remapped) */
+ /* _mesa_function_pool[2628]: VertexAttribI1uiEXT (will be remapped) */
"ii\0"
"glVertexAttribI1uiEXT\0"
"glVertexAttribI1ui\0"
"\0"
- /* _mesa_function_pool[2561]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[2673]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */
"iffffff\0"
"glReplacementCodeuiNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[2609]: DeleteSync (will be remapped) */
+ /* _mesa_function_pool[2721]: DeleteSync (will be remapped) */
"i\0"
"glDeleteSync\0"
"\0"
- /* _mesa_function_pool[2625]: FragmentMaterialfvSGIX (dynamic) */
+ /* _mesa_function_pool[2737]: FragmentMaterialfvSGIX (dynamic) */
"iip\0"
"glFragmentMaterialfvSGIX\0"
"\0"
- /* _mesa_function_pool[2655]: BlendColor (offset 336) */
+ /* _mesa_function_pool[2767]: BlendColor (offset 336) */
"ffff\0"
"glBlendColor\0"
"glBlendColorEXT\0"
"\0"
- /* _mesa_function_pool[2690]: UniformMatrix4fvARB (will be remapped) */
+ /* _mesa_function_pool[2802]: UniformMatrix4fvARB (will be remapped) */
"iiip\0"
"glUniformMatrix4fv\0"
"glUniformMatrix4fvARB\0"
"\0"
- /* _mesa_function_pool[2737]: DeleteVertexArraysAPPLE (will be remapped) */
+ /* _mesa_function_pool[2849]: DeleteVertexArraysAPPLE (will be remapped) */
"ip\0"
"glDeleteVertexArrays\0"
"glDeleteVertexArraysAPPLE\0"
"\0"
- /* _mesa_function_pool[2788]: TexBuffer (will be remapped) */
+ /* _mesa_function_pool[2900]: TexBuffer (will be remapped) */
"iii\0"
"glTexBuffer\0"
"\0"
- /* _mesa_function_pool[2805]: ReadInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[2917]: ReadInstrumentsSGIX (dynamic) */
"i\0"
"glReadInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[2830]: CallLists (offset 3) */
+ /* _mesa_function_pool[2942]: CallLists (offset 3) */
"iip\0"
"glCallLists\0"
"\0"
- /* _mesa_function_pool[2847]: UniformMatrix2x4fv (will be remapped) */
+ /* _mesa_function_pool[2959]: DeformationMap3dSGIX (dynamic) */
+ "iddiiddiiddiip\0"
+ "glDeformationMap3dSGIX\0"
+ "\0"
+ /* _mesa_function_pool[2998]: UniformMatrix2x4fv (will be remapped) */
"iiip\0"
"glUniformMatrix2x4fv\0"
"\0"
- /* _mesa_function_pool[2874]: Color4ubVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[3025]: ReadnPixelsARB (will be remapped) */
+ "iiiiiiip\0"
+ "glReadnPixelsARB\0"
+ "\0"
+ /* _mesa_function_pool[3052]: Color4ubVertex3fvSUN (dynamic) */
"pp\0"
"glColor4ubVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[2901]: Normal3iv (offset 59) */
+ /* _mesa_function_pool[3079]: Normal3iv (offset 59) */
"p\0"
"glNormal3iv\0"
"\0"
- /* _mesa_function_pool[2916]: PassThrough (offset 199) */
+ /* _mesa_function_pool[3094]: PassThrough (offset 199) */
"f\0"
"glPassThrough\0"
"\0"
- /* _mesa_function_pool[2933]: GetVertexAttribIivEXT (will be remapped) */
+ /* _mesa_function_pool[3111]: GetnPixelMapusvARB (will be remapped) */
"iip\0"
- "glGetVertexAttribIivEXT\0"
- "glGetVertexAttribIiv\0"
+ "glGetnPixelMapusvARB\0"
"\0"
- /* _mesa_function_pool[2983]: TexParameterIivEXT (will be remapped) */
+ /* _mesa_function_pool[3137]: TexParameterIivEXT (will be remapped) */
"iip\0"
"glTexParameterIivEXT\0"
"glTexParameterIiv\0"
"\0"
- /* _mesa_function_pool[3027]: FramebufferTextureLayerEXT (will be remapped) */
+ /* _mesa_function_pool[3181]: FramebufferTextureLayerEXT (will be remapped) */
"iiiii\0"
"glFramebufferTextureLayer\0"
"glFramebufferTextureLayerEXT\0"
"\0"
- /* _mesa_function_pool[3089]: GetListParameterfvSGIX (dynamic) */
+ /* _mesa_function_pool[3243]: GetListParameterfvSGIX (dynamic) */
"iip\0"
"glGetListParameterfvSGIX\0"
"\0"
- /* _mesa_function_pool[3119]: Viewport (offset 305) */
+ /* _mesa_function_pool[3273]: Viewport (offset 305) */
"iiii\0"
"glViewport\0"
"\0"
- /* _mesa_function_pool[3136]: VertexAttrib4NusvARB (will be remapped) */
+ /* _mesa_function_pool[3290]: VertexAttrib4NusvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nusv\0"
"glVertexAttrib4NusvARB\0"
"\0"
- /* _mesa_function_pool[3183]: WindowPos4svMESA (will be remapped) */
+ /* _mesa_function_pool[3337]: WindowPos4svMESA (will be remapped) */
"p\0"
"glWindowPos4svMESA\0"
"\0"
- /* _mesa_function_pool[3205]: CreateProgramObjectARB (will be remapped) */
+ /* _mesa_function_pool[3359]: CreateProgramObjectARB (will be remapped) */
"\0"
"glCreateProgramObjectARB\0"
"\0"
- /* _mesa_function_pool[3232]: DeleteTransformFeedbacks (will be remapped) */
+ /* _mesa_function_pool[3386]: DeleteTransformFeedbacks (will be remapped) */
"ip\0"
"glDeleteTransformFeedbacks\0"
"\0"
- /* _mesa_function_pool[3263]: UniformMatrix4x3fv (will be remapped) */
+ /* _mesa_function_pool[3417]: UniformMatrix4x3fv (will be remapped) */
"iiip\0"
"glUniformMatrix4x3fv\0"
"\0"
- /* _mesa_function_pool[3290]: PrioritizeTextures (offset 331) */
+ /* _mesa_function_pool[3444]: PrioritizeTextures (offset 331) */
"ipp\0"
"glPrioritizeTextures\0"
"glPrioritizeTexturesEXT\0"
"\0"
- /* _mesa_function_pool[3340]: VertexAttribI3uiEXT (will be remapped) */
+ /* _mesa_function_pool[3494]: VertexAttribI3uiEXT (will be remapped) */
"iiii\0"
"glVertexAttribI3uiEXT\0"
"glVertexAttribI3ui\0"
"\0"
- /* _mesa_function_pool[3387]: AsyncMarkerSGIX (dynamic) */
+ /* _mesa_function_pool[3541]: AsyncMarkerSGIX (dynamic) */
"i\0"
"glAsyncMarkerSGIX\0"
"\0"
- /* _mesa_function_pool[3408]: GlobalAlphaFactorubSUN (dynamic) */
+ /* _mesa_function_pool[3562]: GlobalAlphaFactorubSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorubSUN\0"
"\0"
- /* _mesa_function_pool[3436]: ClearColorIuiEXT (will be remapped) */
+ /* _mesa_function_pool[3590]: ClearColorIuiEXT (will be remapped) */
"iiii\0"
"glClearColorIuiEXT\0"
"\0"
- /* _mesa_function_pool[3461]: ClearDebugLogMESA (dynamic) */
+ /* _mesa_function_pool[3615]: ClearDebugLogMESA (dynamic) */
"iii\0"
"glClearDebugLogMESA\0"
"\0"
- /* _mesa_function_pool[3486]: Uniform4uiEXT (will be remapped) */
+ /* _mesa_function_pool[3640]: Uniform4uiEXT (will be remapped) */
"iiiii\0"
"glUniform4uiEXT\0"
"glUniform4ui\0"
"\0"
- /* _mesa_function_pool[3522]: ResetHistogram (offset 369) */
+ /* _mesa_function_pool[3676]: ResetHistogram (offset 369) */
"i\0"
"glResetHistogram\0"
"glResetHistogramEXT\0"
"\0"
- /* _mesa_function_pool[3562]: GetProgramNamedParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[3716]: GetProgramNamedParameterfvNV (will be remapped) */
"iipp\0"
"glGetProgramNamedParameterfvNV\0"
"\0"
- /* _mesa_function_pool[3599]: PointParameterfEXT (will be remapped) */
+ /* _mesa_function_pool[3753]: PointParameterfEXT (will be remapped) */
"if\0"
"glPointParameterf\0"
"glPointParameterfARB\0"
"glPointParameterfEXT\0"
"glPointParameterfSGIS\0"
"\0"
- /* _mesa_function_pool[3685]: LoadIdentityDeformationMapSGIX (dynamic) */
+ /* _mesa_function_pool[3839]: LoadIdentityDeformationMapSGIX (dynamic) */
"i\0"
"glLoadIdentityDeformationMapSGIX\0"
"\0"
- /* _mesa_function_pool[3721]: GenFencesNV (will be remapped) */
+ /* _mesa_function_pool[3875]: GenFencesNV (will be remapped) */
"ip\0"
"glGenFencesNV\0"
"\0"
- /* _mesa_function_pool[3739]: ImageTransformParameterfHP (dynamic) */
+ /* _mesa_function_pool[3893]: ImageTransformParameterfHP (dynamic) */
"iif\0"
"glImageTransformParameterfHP\0"
"\0"
- /* _mesa_function_pool[3773]: MatrixIndexusvARB (dynamic) */
+ /* _mesa_function_pool[3927]: MatrixIndexusvARB (dynamic) */
"ip\0"
"glMatrixIndexusvARB\0"
"\0"
- /* _mesa_function_pool[3797]: DrawElementsBaseVertex (will be remapped) */
+ /* _mesa_function_pool[3951]: DrawElementsBaseVertex (will be remapped) */
"iiipi\0"
"glDrawElementsBaseVertex\0"
"\0"
- /* _mesa_function_pool[3829]: DisableVertexAttribArrayARB (will be remapped) */
+ /* _mesa_function_pool[3983]: DisableVertexAttribArrayARB (will be remapped) */
"i\0"
"glDisableVertexAttribArray\0"
"glDisableVertexAttribArrayARB\0"
"\0"
- /* _mesa_function_pool[3889]: TexCoord2sv (offset 109) */
+ /* _mesa_function_pool[4043]: VertexAttribI4ubvEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4ubvEXT\0"
+ "glVertexAttribI4ubv\0"
+ "\0"
+ /* _mesa_function_pool[4090]: GetnConvolutionFilterARB (will be remapped) */
+ "iiiip\0"
+ "glGetnConvolutionFilterARB\0"
+ "\0"
+ /* _mesa_function_pool[4124]: TexCoord2sv (offset 109) */
"p\0"
"glTexCoord2sv\0"
"\0"
- /* _mesa_function_pool[3906]: Vertex4dv (offset 143) */
+ /* _mesa_function_pool[4141]: Vertex4dv (offset 143) */
"p\0"
"glVertex4dv\0"
"\0"
- /* _mesa_function_pool[3921]: StencilMaskSeparate (will be remapped) */
+ /* _mesa_function_pool[4156]: StencilMaskSeparate (will be remapped) */
"ii\0"
"glStencilMaskSeparate\0"
"\0"
- /* _mesa_function_pool[3947]: ProgramLocalParameter4dARB (will be remapped) */
+ /* _mesa_function_pool[4182]: ProgramLocalParameter4dARB (will be remapped) */
"iidddd\0"
"glProgramLocalParameter4dARB\0"
"\0"
- /* _mesa_function_pool[3984]: CompressedTexImage3DARB (will be remapped) */
+ /* _mesa_function_pool[4219]: CompressedTexImage3DARB (will be remapped) */
"iiiiiiiip\0"
"glCompressedTexImage3D\0"
"glCompressedTexImage3DARB\0"
"\0"
- /* _mesa_function_pool[4044]: Color3sv (offset 18) */
+ /* _mesa_function_pool[4279]: Color3sv (offset 18) */
"p\0"
"glColor3sv\0"
"\0"
- /* _mesa_function_pool[4058]: GetConvolutionParameteriv (offset 358) */
+ /* _mesa_function_pool[4293]: GetConvolutionParameteriv (offset 358) */
"iip\0"
"glGetConvolutionParameteriv\0"
"glGetConvolutionParameterivEXT\0"
"\0"
- /* _mesa_function_pool[4122]: DeleteSamplers (will be remapped) */
+ /* _mesa_function_pool[4357]: DeleteSamplers (will be remapped) */
"ip\0"
"glDeleteSamplers\0"
"\0"
- /* _mesa_function_pool[4143]: VertexAttrib1fARB (will be remapped) */
+ /* _mesa_function_pool[4378]: VertexAttrib1fARB (will be remapped) */
"if\0"
"glVertexAttrib1f\0"
"glVertexAttrib1fARB\0"
"\0"
- /* _mesa_function_pool[4184]: Vertex2dv (offset 127) */
+ /* _mesa_function_pool[4419]: Vertex2dv (offset 127) */
"p\0"
"glVertex2dv\0"
"\0"
- /* _mesa_function_pool[4199]: TestFenceNV (will be remapped) */
+ /* _mesa_function_pool[4434]: TestFenceNV (will be remapped) */
"i\0"
"glTestFenceNV\0"
"\0"
- /* _mesa_function_pool[4216]: GetVertexAttribIuivEXT (will be remapped) */
- "iip\0"
- "glGetVertexAttribIuivEXT\0"
- "glGetVertexAttribIuiv\0"
- "\0"
- /* _mesa_function_pool[4268]: MultiTexCoord1fvARB (offset 379) */
+ /* _mesa_function_pool[4451]: MultiTexCoord1fvARB (offset 379) */
"ip\0"
"glMultiTexCoord1fv\0"
"glMultiTexCoord1fvARB\0"
"\0"
- /* _mesa_function_pool[4313]: TexCoord3iv (offset 115) */
+ /* _mesa_function_pool[4496]: TexCoord3iv (offset 115) */
"p\0"
"glTexCoord3iv\0"
"\0"
- /* _mesa_function_pool[4330]: Uniform2uivEXT (will be remapped) */
+ /* _mesa_function_pool[4513]: Uniform2uivEXT (will be remapped) */
"iip\0"
"glUniform2uivEXT\0"
"glUniform2uiv\0"
"\0"
- /* _mesa_function_pool[4366]: ColorFragmentOp2ATI (will be remapped) */
+ /* _mesa_function_pool[4549]: ColorFragmentOp2ATI (will be remapped) */
"iiiiiiiiii\0"
"glColorFragmentOp2ATI\0"
"\0"
- /* _mesa_function_pool[4400]: SecondaryColorPointerListIBM (dynamic) */
+ /* _mesa_function_pool[4583]: SecondaryColorPointerListIBM (dynamic) */
"iiipi\0"
"glSecondaryColorPointerListIBM\0"
"\0"
- /* _mesa_function_pool[4438]: GetPixelTexGenParameterivSGIS (will be remapped) */
+ /* _mesa_function_pool[4621]: GetPixelTexGenParameterivSGIS (will be remapped) */
"ip\0"
"glGetPixelTexGenParameterivSGIS\0"
"\0"
- /* _mesa_function_pool[4474]: Color3fv (offset 14) */
+ /* _mesa_function_pool[4657]: Color3fv (offset 14) */
"p\0"
"glColor3fv\0"
"\0"
- /* _mesa_function_pool[4488]: VertexAttrib4fNV (will be remapped) */
- "iffff\0"
- "glVertexAttrib4fNV\0"
+ /* _mesa_function_pool[4671]: GetnPixelMapfvARB (will be remapped) */
+ "iip\0"
+ "glGetnPixelMapfvARB\0"
"\0"
- /* _mesa_function_pool[4514]: ReplacementCodeubSUN (dynamic) */
+ /* _mesa_function_pool[4696]: ReplacementCodeubSUN (dynamic) */
"i\0"
"glReplacementCodeubSUN\0"
"\0"
- /* _mesa_function_pool[4540]: FinishAsyncSGIX (dynamic) */
+ /* _mesa_function_pool[4722]: FinishAsyncSGIX (dynamic) */
"p\0"
"glFinishAsyncSGIX\0"
"\0"
- /* _mesa_function_pool[4561]: GetDebugLogMESA (dynamic) */
+ /* _mesa_function_pool[4743]: GetnUniformfvARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformfvARB\0"
+ "\0"
+ /* _mesa_function_pool[4768]: GetDebugLogMESA (dynamic) */
"iiiipp\0"
"glGetDebugLogMESA\0"
"\0"
- /* _mesa_function_pool[4587]: FogCoorddEXT (will be remapped) */
+ /* _mesa_function_pool[4794]: FogCoorddEXT (will be remapped) */
"d\0"
"glFogCoordd\0"
"glFogCoorddEXT\0"
"\0"
- /* _mesa_function_pool[4617]: BeginConditionalRenderNV (will be remapped) */
+ /* _mesa_function_pool[4824]: BeginConditionalRenderNV (will be remapped) */
"ii\0"
"glBeginConditionalRenderNV\0"
"glBeginConditionalRender\0"
"\0"
- /* _mesa_function_pool[4673]: Color4ubVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[4880]: Color4ubVertex3fSUN (dynamic) */
"iiiifff\0"
"glColor4ubVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[4704]: FogCoordfEXT (will be remapped) */
+ /* _mesa_function_pool[4911]: FogCoordfEXT (will be remapped) */
"f\0"
"glFogCoordf\0"
"glFogCoordfEXT\0"
"\0"
- /* _mesa_function_pool[4734]: PointSize (offset 173) */
+ /* _mesa_function_pool[4941]: PointSize (offset 173) */
"f\0"
"glPointSize\0"
"\0"
- /* _mesa_function_pool[4749]: VertexAttribI2uivEXT (will be remapped) */
+ /* _mesa_function_pool[4956]: VertexAttribI2uivEXT (will be remapped) */
"ip\0"
"glVertexAttribI2uivEXT\0"
"glVertexAttribI2uiv\0"
"\0"
- /* _mesa_function_pool[4796]: TexCoord2fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[5003]: TexCoord2fVertex3fSUN (dynamic) */
"fffff\0"
"glTexCoord2fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[4827]: PopName (offset 200) */
+ /* _mesa_function_pool[5034]: PopName (offset 200) */
"\0"
"glPopName\0"
"\0"
- /* _mesa_function_pool[4839]: GetSamplerParameterfv (will be remapped) */
+ /* _mesa_function_pool[5046]: GetSamplerParameterfv (will be remapped) */
"iip\0"
"glGetSamplerParameterfv\0"
"\0"
- /* _mesa_function_pool[4868]: GlobalAlphaFactoriSUN (dynamic) */
+ /* _mesa_function_pool[5075]: GlobalAlphaFactoriSUN (dynamic) */
"i\0"
"glGlobalAlphaFactoriSUN\0"
"\0"
- /* _mesa_function_pool[4895]: VertexAttrib2dNV (will be remapped) */
+ /* _mesa_function_pool[5102]: VertexAttrib2dNV (will be remapped) */
"idd\0"
"glVertexAttrib2dNV\0"
"\0"
- /* _mesa_function_pool[4919]: GetProgramInfoLog (will be remapped) */
+ /* _mesa_function_pool[5126]: GetProgramInfoLog (will be remapped) */
"iipp\0"
"glGetProgramInfoLog\0"
"\0"
- /* _mesa_function_pool[4945]: VertexAttrib4NbvARB (will be remapped) */
+ /* _mesa_function_pool[5152]: VertexAttrib4NbvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nbv\0"
"glVertexAttrib4NbvARB\0"
"\0"
- /* _mesa_function_pool[4990]: GetActiveAttribARB (will be remapped) */
+ /* _mesa_function_pool[5197]: GetActiveAttribARB (will be remapped) */
"iiipppp\0"
"glGetActiveAttrib\0"
"glGetActiveAttribARB\0"
"\0"
- /* _mesa_function_pool[5038]: Vertex4sv (offset 149) */
+ /* _mesa_function_pool[5245]: Vertex4sv (offset 149) */
"p\0"
"glVertex4sv\0"
"\0"
- /* _mesa_function_pool[5053]: VertexAttrib4ubNV (will be remapped) */
+ /* _mesa_function_pool[5260]: VertexAttrib4ubNV (will be remapped) */
"iiiii\0"
"glVertexAttrib4ubNV\0"
"\0"
- /* _mesa_function_pool[5080]: ClampColor (will be remapped) */
+ /* _mesa_function_pool[5287]: VertexAttribI1ivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI1ivEXT\0"
+ "glVertexAttribI1iv\0"
+ "\0"
+ /* _mesa_function_pool[5332]: ClampColor (will be remapped) */
"ii\0"
"glClampColor\0"
"\0"
- /* _mesa_function_pool[5097]: TextureRangeAPPLE (will be remapped) */
+ /* _mesa_function_pool[5349]: TextureRangeAPPLE (will be remapped) */
"iip\0"
"glTextureRangeAPPLE\0"
"\0"
- /* _mesa_function_pool[5122]: GetTexEnvfv (offset 276) */
+ /* _mesa_function_pool[5374]: GetTexEnvfv (offset 276) */
"iip\0"
"glGetTexEnvfv\0"
"\0"
- /* _mesa_function_pool[5141]: BindTransformFeedback (will be remapped) */
+ /* _mesa_function_pool[5393]: BindTransformFeedback (will be remapped) */
"ii\0"
"glBindTransformFeedback\0"
"\0"
- /* _mesa_function_pool[5169]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[5421]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
"ffffffffffff\0"
"glTexCoord2fColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[5222]: Indexub (offset 315) */
+ /* _mesa_function_pool[5474]: Indexub (offset 315) */
"i\0"
"glIndexub\0"
"\0"
- /* _mesa_function_pool[5235]: TexEnvi (offset 186) */
+ /* _mesa_function_pool[5487]: VertexAttrib4fNV (will be remapped) */
+ "iffff\0"
+ "glVertexAttrib4fNV\0"
+ "\0"
+ /* _mesa_function_pool[5513]: TexEnvi (offset 186) */
"iii\0"
"glTexEnvi\0"
"\0"
- /* _mesa_function_pool[5250]: GetClipPlane (offset 259) */
+ /* _mesa_function_pool[5528]: GetClipPlane (offset 259) */
"ip\0"
"glGetClipPlane\0"
"\0"
- /* _mesa_function_pool[5269]: CombinerParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[5547]: CombinerParameterfvNV (will be remapped) */
"ip\0"
"glCombinerParameterfvNV\0"
"\0"
- /* _mesa_function_pool[5297]: VertexAttribs3dvNV (will be remapped) */
+ /* _mesa_function_pool[5575]: VertexAttribs3dvNV (will be remapped) */
"iip\0"
"glVertexAttribs3dvNV\0"
"\0"
- /* _mesa_function_pool[5323]: VertexAttribI2uiEXT (will be remapped) */
+ /* _mesa_function_pool[5601]: VertexAttribI2uiEXT (will be remapped) */
"iii\0"
"glVertexAttribI2uiEXT\0"
"glVertexAttribI2ui\0"
"\0"
- /* _mesa_function_pool[5369]: VertexAttribs4fvNV (will be remapped) */
+ /* _mesa_function_pool[5647]: VertexAttribs4fvNV (will be remapped) */
"iip\0"
"glVertexAttribs4fvNV\0"
"\0"
- /* _mesa_function_pool[5395]: VertexArrayRangeNV (will be remapped) */
+ /* _mesa_function_pool[5673]: VertexArrayRangeNV (will be remapped) */
"ip\0"
"glVertexArrayRangeNV\0"
"\0"
- /* _mesa_function_pool[5420]: FragmentLightiSGIX (dynamic) */
+ /* _mesa_function_pool[5698]: FragmentLightiSGIX (dynamic) */
"iii\0"
"glFragmentLightiSGIX\0"
"\0"
- /* _mesa_function_pool[5446]: PolygonOffsetEXT (will be remapped) */
+ /* _mesa_function_pool[5724]: PolygonOffsetEXT (will be remapped) */
"ff\0"
"glPolygonOffsetEXT\0"
"\0"
- /* _mesa_function_pool[5469]: VertexAttribI4uivEXT (will be remapped) */
+ /* _mesa_function_pool[5747]: VertexAttribI4uivEXT (will be remapped) */
"ip\0"
"glVertexAttribI4uivEXT\0"
"glVertexAttribI4uiv\0"
"\0"
- /* _mesa_function_pool[5516]: PollAsyncSGIX (dynamic) */
+ /* _mesa_function_pool[5794]: PollAsyncSGIX (dynamic) */
"p\0"
"glPollAsyncSGIX\0"
"\0"
- /* _mesa_function_pool[5535]: DeleteFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[5813]: DeleteFragmentShaderATI (will be remapped) */
"i\0"
"glDeleteFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[5564]: Scaled (offset 301) */
+ /* _mesa_function_pool[5842]: Scaled (offset 301) */
"ddd\0"
"glScaled\0"
"\0"
- /* _mesa_function_pool[5578]: ResumeTransformFeedback (will be remapped) */
+ /* _mesa_function_pool[5856]: ResumeTransformFeedback (will be remapped) */
"\0"
"glResumeTransformFeedback\0"
"\0"
- /* _mesa_function_pool[5606]: Scalef (offset 302) */
+ /* _mesa_function_pool[5884]: Scalef (offset 302) */
"fff\0"
"glScalef\0"
"\0"
- /* _mesa_function_pool[5620]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[5898]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glTexCoord2fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[5658]: ProgramEnvParameters4fvEXT (will be remapped) */
+ /* _mesa_function_pool[5936]: ProgramEnvParameters4fvEXT (will be remapped) */
"iiip\0"
"glProgramEnvParameters4fvEXT\0"
"\0"
- /* _mesa_function_pool[5693]: MultTransposeMatrixdARB (will be remapped) */
+ /* _mesa_function_pool[5971]: MultTransposeMatrixdARB (will be remapped) */
"p\0"
"glMultTransposeMatrixd\0"
"glMultTransposeMatrixdARB\0"
"\0"
- /* _mesa_function_pool[5745]: ColorMaskIndexedEXT (will be remapped) */
- "iiiii\0"
- "glColorMaskIndexedEXT\0"
- "glColorMaski\0"
- "\0"
- /* _mesa_function_pool[5787]: ObjectUnpurgeableAPPLE (will be remapped) */
+ /* _mesa_function_pool[6023]: ObjectUnpurgeableAPPLE (will be remapped) */
"iii\0"
"glObjectUnpurgeableAPPLE\0"
"\0"
- /* _mesa_function_pool[5817]: AlphaFunc (offset 240) */
+ /* _mesa_function_pool[6053]: AlphaFunc (offset 240) */
"if\0"
"glAlphaFunc\0"
"\0"
- /* _mesa_function_pool[5833]: WindowPos2svMESA (will be remapped) */
+ /* _mesa_function_pool[6069]: WindowPos2svMESA (will be remapped) */
"p\0"
"glWindowPos2sv\0"
"glWindowPos2svARB\0"
"glWindowPos2svMESA\0"
"\0"
- /* _mesa_function_pool[5888]: EdgeFlag (offset 41) */
+ /* _mesa_function_pool[6124]: EdgeFlag (offset 41) */
"i\0"
"glEdgeFlag\0"
"\0"
- /* _mesa_function_pool[5902]: TexCoord2iv (offset 107) */
+ /* _mesa_function_pool[6138]: TexCoord2iv (offset 107) */
"p\0"
"glTexCoord2iv\0"
"\0"
- /* _mesa_function_pool[5919]: CompressedTexImage1DARB (will be remapped) */
+ /* _mesa_function_pool[6155]: CompressedTexImage1DARB (will be remapped) */
"iiiiiip\0"
"glCompressedTexImage1D\0"
"glCompressedTexImage1DARB\0"
"\0"
- /* _mesa_function_pool[5977]: Rotated (offset 299) */
+ /* _mesa_function_pool[6213]: Rotated (offset 299) */
"dddd\0"
"glRotated\0"
"\0"
- /* _mesa_function_pool[5993]: GetTexParameterIuivEXT (will be remapped) */
+ /* _mesa_function_pool[6229]: GetTexParameterIuivEXT (will be remapped) */
"iip\0"
"glGetTexParameterIuivEXT\0"
"glGetTexParameterIuiv\0"
"\0"
- /* _mesa_function_pool[6045]: VertexAttrib2sNV (will be remapped) */
+ /* _mesa_function_pool[6281]: VertexAttrib2sNV (will be remapped) */
"iii\0"
"glVertexAttrib2sNV\0"
"\0"
- /* _mesa_function_pool[6069]: ReadPixels (offset 256) */
+ /* _mesa_function_pool[6305]: ReadPixels (offset 256) */
"iiiiiip\0"
"glReadPixels\0"
"\0"
- /* _mesa_function_pool[6091]: EdgeFlagv (offset 42) */
+ /* _mesa_function_pool[6327]: VertexAttribDivisorARB (will be remapped) */
+ "ii\0"
+ "glVertexAttribDivisorARB\0"
+ "\0"
+ /* _mesa_function_pool[6356]: EdgeFlagv (offset 42) */
"p\0"
"glEdgeFlagv\0"
"\0"
- /* _mesa_function_pool[6106]: NormalPointerListIBM (dynamic) */
+ /* _mesa_function_pool[6371]: NormalPointerListIBM (dynamic) */
"iipi\0"
"glNormalPointerListIBM\0"
"\0"
- /* _mesa_function_pool[6135]: IndexPointerEXT (will be remapped) */
+ /* _mesa_function_pool[6400]: IndexPointerEXT (will be remapped) */
"iiip\0"
"glIndexPointerEXT\0"
"\0"
- /* _mesa_function_pool[6159]: Color4iv (offset 32) */
+ /* _mesa_function_pool[6424]: Color4iv (offset 32) */
"p\0"
"glColor4iv\0"
"\0"
- /* _mesa_function_pool[6173]: TexParameterf (offset 178) */
+ /* _mesa_function_pool[6438]: TexParameterf (offset 178) */
"iif\0"
"glTexParameterf\0"
"\0"
- /* _mesa_function_pool[6194]: TexParameteri (offset 180) */
+ /* _mesa_function_pool[6459]: TexParameteri (offset 180) */
"iii\0"
"glTexParameteri\0"
"\0"
- /* _mesa_function_pool[6215]: NormalPointerEXT (will be remapped) */
+ /* _mesa_function_pool[6480]: NormalPointerEXT (will be remapped) */
"iiip\0"
"glNormalPointerEXT\0"
"\0"
- /* _mesa_function_pool[6240]: MultiTexCoord3dARB (offset 392) */
+ /* _mesa_function_pool[6505]: MultiTexCoord3dARB (offset 392) */
"iddd\0"
"glMultiTexCoord3d\0"
"glMultiTexCoord3dARB\0"
"\0"
- /* _mesa_function_pool[6285]: MultiTexCoord2iARB (offset 388) */
+ /* _mesa_function_pool[6550]: MultiTexCoord2iARB (offset 388) */
"iii\0"
"glMultiTexCoord2i\0"
"glMultiTexCoord2iARB\0"
"\0"
- /* _mesa_function_pool[6329]: DrawPixels (offset 257) */
+ /* _mesa_function_pool[6594]: DrawPixels (offset 257) */
"iiiip\0"
"glDrawPixels\0"
"\0"
- /* _mesa_function_pool[6349]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[6614]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */
"iffffffff\0"
"glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[6409]: MultiTexCoord2svARB (offset 391) */
+ /* _mesa_function_pool[6674]: MultiTexCoord2svARB (offset 391) */
"ip\0"
"glMultiTexCoord2sv\0"
"glMultiTexCoord2svARB\0"
"\0"
- /* _mesa_function_pool[6454]: ReplacementCodeubvSUN (dynamic) */
+ /* _mesa_function_pool[6719]: ReplacementCodeubvSUN (dynamic) */
"p\0"
"glReplacementCodeubvSUN\0"
"\0"
- /* _mesa_function_pool[6481]: Uniform3iARB (will be remapped) */
+ /* _mesa_function_pool[6746]: Uniform3iARB (will be remapped) */
"iiii\0"
"glUniform3i\0"
"glUniform3iARB\0"
"\0"
- /* _mesa_function_pool[6514]: DrawTransformFeedback (will be remapped) */
+ /* _mesa_function_pool[6779]: DrawTransformFeedback (will be remapped) */
"ii\0"
"glDrawTransformFeedback\0"
"\0"
- /* _mesa_function_pool[6542]: DrawElementsInstancedARB (will be remapped) */
+ /* _mesa_function_pool[6807]: DrawElementsInstancedARB (will be remapped) */
"iiipi\0"
"glDrawElementsInstancedARB\0"
"glDrawElementsInstancedEXT\0"
"glDrawElementsInstanced\0"
"\0"
- /* _mesa_function_pool[6627]: GetShaderInfoLog (will be remapped) */
+ /* _mesa_function_pool[6892]: GetShaderInfoLog (will be remapped) */
"iipp\0"
"glGetShaderInfoLog\0"
"\0"
- /* _mesa_function_pool[6652]: WeightivARB (dynamic) */
+ /* _mesa_function_pool[6917]: WeightivARB (dynamic) */
"ip\0"
"glWeightivARB\0"
"\0"
- /* _mesa_function_pool[6670]: PollInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[6935]: PollInstrumentsSGIX (dynamic) */
"p\0"
"glPollInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[6695]: GlobalAlphaFactordSUN (dynamic) */
+ /* _mesa_function_pool[6960]: GlobalAlphaFactordSUN (dynamic) */
"d\0"
"glGlobalAlphaFactordSUN\0"
"\0"
- /* _mesa_function_pool[6722]: GetFinalCombinerInputParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[6987]: GetFinalCombinerInputParameterfvNV (will be remapped) */
"iip\0"
"glGetFinalCombinerInputParameterfvNV\0"
"\0"
- /* _mesa_function_pool[6764]: GenerateMipmapEXT (will be remapped) */
+ /* _mesa_function_pool[7029]: GenerateMipmapEXT (will be remapped) */
"i\0"
"glGenerateMipmap\0"
"glGenerateMipmapEXT\0"
"\0"
- /* _mesa_function_pool[6804]: GenLists (offset 5) */
+ /* _mesa_function_pool[7069]: GenLists (offset 5) */
"i\0"
"glGenLists\0"
"\0"
- /* _mesa_function_pool[6818]: DepthRangef (will be remapped) */
+ /* _mesa_function_pool[7083]: DepthRangef (will be remapped) */
"ff\0"
"glDepthRangef\0"
"\0"
- /* _mesa_function_pool[6836]: GetMapAttribParameterivNV (dynamic) */
+ /* _mesa_function_pool[7101]: GetMapAttribParameterivNV (dynamic) */
"iiip\0"
"glGetMapAttribParameterivNV\0"
"\0"
- /* _mesa_function_pool[6870]: CreateShaderObjectARB (will be remapped) */
+ /* _mesa_function_pool[7135]: CreateShaderObjectARB (will be remapped) */
"i\0"
"glCreateShaderObjectARB\0"
"\0"
- /* _mesa_function_pool[6897]: GetSharpenTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[7162]: GetSharpenTexFuncSGIS (dynamic) */
"ip\0"
"glGetSharpenTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[6925]: BufferDataARB (will be remapped) */
+ /* _mesa_function_pool[7190]: BufferDataARB (will be remapped) */
"iipi\0"
"glBufferData\0"
"glBufferDataARB\0"
"\0"
- /* _mesa_function_pool[6960]: FlushVertexArrayRangeNV (will be remapped) */
+ /* _mesa_function_pool[7225]: FlushVertexArrayRangeNV (will be remapped) */
"\0"
"glFlushVertexArrayRangeNV\0"
"\0"
- /* _mesa_function_pool[6988]: MapGrid2d (offset 226) */
+ /* _mesa_function_pool[7253]: MapGrid2d (offset 226) */
"iddidd\0"
"glMapGrid2d\0"
"\0"
- /* _mesa_function_pool[7008]: MapGrid2f (offset 227) */
+ /* _mesa_function_pool[7273]: MapGrid2f (offset 227) */
"iffiff\0"
"glMapGrid2f\0"
"\0"
- /* _mesa_function_pool[7028]: SampleMapATI (will be remapped) */
+ /* _mesa_function_pool[7293]: SampleMapATI (will be remapped) */
"iii\0"
"glSampleMapATI\0"
"\0"
- /* _mesa_function_pool[7048]: VertexPointerEXT (will be remapped) */
+ /* _mesa_function_pool[7313]: VertexPointerEXT (will be remapped) */
"iiiip\0"
"glVertexPointerEXT\0"
"\0"
- /* _mesa_function_pool[7074]: GetTexFilterFuncSGIS (dynamic) */
+ /* _mesa_function_pool[7339]: GetTexFilterFuncSGIS (dynamic) */
"iip\0"
"glGetTexFilterFuncSGIS\0"
"\0"
- /* _mesa_function_pool[7102]: Scissor (offset 176) */
+ /* _mesa_function_pool[7367]: Scissor (offset 176) */
"iiii\0"
"glScissor\0"
"\0"
- /* _mesa_function_pool[7118]: Fogf (offset 153) */
+ /* _mesa_function_pool[7383]: Fogf (offset 153) */
"if\0"
"glFogf\0"
"\0"
- /* _mesa_function_pool[7129]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[7394]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */
"ppp\0"
"glReplacementCodeuiColor4ubVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[7174]: TexSubImage1D (offset 332) */
+ /* _mesa_function_pool[7439]: TexSubImage1D (offset 332) */
"iiiiiip\0"
"glTexSubImage1D\0"
"glTexSubImage1DEXT\0"
"\0"
- /* _mesa_function_pool[7218]: VertexAttrib1sARB (will be remapped) */
+ /* _mesa_function_pool[7483]: VertexAttrib1sARB (will be remapped) */
"ii\0"
"glVertexAttrib1s\0"
"glVertexAttrib1sARB\0"
"\0"
- /* _mesa_function_pool[7259]: FenceSync (will be remapped) */
+ /* _mesa_function_pool[7524]: FenceSync (will be remapped) */
"ii\0"
"glFenceSync\0"
"\0"
- /* _mesa_function_pool[7275]: Color4usv (offset 40) */
+ /* _mesa_function_pool[7540]: Color4usv (offset 40) */
"p\0"
"glColor4usv\0"
"\0"
- /* _mesa_function_pool[7290]: Fogi (offset 155) */
+ /* _mesa_function_pool[7555]: Fogi (offset 155) */
"ii\0"
"glFogi\0"
"\0"
- /* _mesa_function_pool[7301]: DepthRange (offset 288) */
+ /* _mesa_function_pool[7566]: DepthRange (offset 288) */
"dd\0"
"glDepthRange\0"
"\0"
- /* _mesa_function_pool[7318]: RasterPos3iv (offset 75) */
+ /* _mesa_function_pool[7583]: RasterPos3iv (offset 75) */
"p\0"
"glRasterPos3iv\0"
"\0"
- /* _mesa_function_pool[7336]: FinalCombinerInputNV (will be remapped) */
+ /* _mesa_function_pool[7601]: FinalCombinerInputNV (will be remapped) */
"iiii\0"
"glFinalCombinerInputNV\0"
"\0"
- /* _mesa_function_pool[7365]: TexCoord2i (offset 106) */
+ /* _mesa_function_pool[7630]: TexCoord2i (offset 106) */
"ii\0"
"glTexCoord2i\0"
"\0"
- /* _mesa_function_pool[7382]: PixelMapfv (offset 251) */
+ /* _mesa_function_pool[7647]: PixelMapfv (offset 251) */
"iip\0"
"glPixelMapfv\0"
"\0"
- /* _mesa_function_pool[7400]: Color4ui (offset 37) */
+ /* _mesa_function_pool[7665]: Color4ui (offset 37) */
"iiii\0"
"glColor4ui\0"
"\0"
- /* _mesa_function_pool[7417]: RasterPos3s (offset 76) */
+ /* _mesa_function_pool[7682]: RasterPos3s (offset 76) */
"iii\0"
"glRasterPos3s\0"
"\0"
- /* _mesa_function_pool[7436]: Color3usv (offset 24) */
+ /* _mesa_function_pool[7701]: Color3usv (offset 24) */
"p\0"
"glColor3usv\0"
"\0"
- /* _mesa_function_pool[7451]: FlushRasterSGIX (dynamic) */
+ /* _mesa_function_pool[7716]: FlushRasterSGIX (dynamic) */
"\0"
"glFlushRasterSGIX\0"
"\0"
- /* _mesa_function_pool[7471]: TexCoord2f (offset 104) */
+ /* _mesa_function_pool[7736]: TexCoord2f (offset 104) */
"ff\0"
"glTexCoord2f\0"
"\0"
- /* _mesa_function_pool[7488]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[7753]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */
"ifffff\0"
"glReplacementCodeuiTexCoord2fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[7537]: TexCoord2d (offset 102) */
+ /* _mesa_function_pool[7802]: TexCoord2d (offset 102) */
"dd\0"
"glTexCoord2d\0"
"\0"
- /* _mesa_function_pool[7554]: RasterPos3d (offset 70) */
+ /* _mesa_function_pool[7819]: RasterPos3d (offset 70) */
"ddd\0"
"glRasterPos3d\0"
"\0"
- /* _mesa_function_pool[7573]: RasterPos3f (offset 72) */
+ /* _mesa_function_pool[7838]: RasterPos3f (offset 72) */
"fff\0"
"glRasterPos3f\0"
"\0"
- /* _mesa_function_pool[7592]: Uniform1fARB (will be remapped) */
+ /* _mesa_function_pool[7857]: Uniform1fARB (will be remapped) */
"if\0"
"glUniform1f\0"
"glUniform1fARB\0"
"\0"
- /* _mesa_function_pool[7623]: AreTexturesResident (offset 322) */
+ /* _mesa_function_pool[7888]: AreTexturesResident (offset 322) */
"ipp\0"
"glAreTexturesResident\0"
"glAreTexturesResidentEXT\0"
"\0"
- /* _mesa_function_pool[7675]: TexCoord2s (offset 108) */
+ /* _mesa_function_pool[7940]: TexCoord2s (offset 108) */
"ii\0"
"glTexCoord2s\0"
"\0"
- /* _mesa_function_pool[7692]: StencilOpSeparate (will be remapped) */
+ /* _mesa_function_pool[7957]: StencilOpSeparate (will be remapped) */
"iiii\0"
"glStencilOpSeparate\0"
"glStencilOpSeparateATI\0"
"\0"
- /* _mesa_function_pool[7741]: ColorTableParameteriv (offset 341) */
+ /* _mesa_function_pool[8006]: ColorTableParameteriv (offset 341) */
"iip\0"
"glColorTableParameteriv\0"
"glColorTableParameterivSGI\0"
"\0"
- /* _mesa_function_pool[7797]: FogCoordPointerListIBM (dynamic) */
+ /* _mesa_function_pool[8062]: FogCoordPointerListIBM (dynamic) */
"iipi\0"
"glFogCoordPointerListIBM\0"
"\0"
- /* _mesa_function_pool[7828]: WindowPos3dMESA (will be remapped) */
+ /* _mesa_function_pool[8093]: WindowPos3dMESA (will be remapped) */
"ddd\0"
"glWindowPos3d\0"
"glWindowPos3dARB\0"
"glWindowPos3dMESA\0"
"\0"
- /* _mesa_function_pool[7882]: Color4us (offset 39) */
+ /* _mesa_function_pool[8147]: Color4us (offset 39) */
"iiii\0"
"glColor4us\0"
"\0"
- /* _mesa_function_pool[7899]: PointParameterfvEXT (will be remapped) */
+ /* _mesa_function_pool[8164]: PointParameterfvEXT (will be remapped) */
"ip\0"
"glPointParameterfv\0"
"glPointParameterfvARB\0"
"glPointParameterfvEXT\0"
"glPointParameterfvSGIS\0"
"\0"
- /* _mesa_function_pool[7989]: Color3bv (offset 10) */
+ /* _mesa_function_pool[8254]: Color3bv (offset 10) */
"p\0"
"glColor3bv\0"
"\0"
- /* _mesa_function_pool[8003]: WindowPos2fvMESA (will be remapped) */
+ /* _mesa_function_pool[8268]: GetnCompressedTexImageARB (will be remapped) */
+ "iiip\0"
+ "glGetnCompressedTexImageARB\0"
+ "\0"
+ /* _mesa_function_pool[8302]: WindowPos2fvMESA (will be remapped) */
"p\0"
"glWindowPos2fv\0"
"glWindowPos2fvARB\0"
"glWindowPos2fvMESA\0"
"\0"
- /* _mesa_function_pool[8058]: SecondaryColor3bvEXT (will be remapped) */
+ /* _mesa_function_pool[8357]: SecondaryColor3bvEXT (will be remapped) */
"p\0"
"glSecondaryColor3bv\0"
"glSecondaryColor3bvEXT\0"
"\0"
- /* _mesa_function_pool[8104]: VertexPointerListIBM (dynamic) */
+ /* _mesa_function_pool[8403]: VertexPointerListIBM (dynamic) */
"iiipi\0"
"glVertexPointerListIBM\0"
"\0"
- /* _mesa_function_pool[8134]: GetProgramLocalParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[8433]: GetProgramLocalParameterfvARB (will be remapped) */
"iip\0"
"glGetProgramLocalParameterfvARB\0"
"\0"
- /* _mesa_function_pool[8171]: FragmentMaterialfSGIX (dynamic) */
+ /* _mesa_function_pool[8470]: FragmentMaterialfSGIX (dynamic) */
"iif\0"
"glFragmentMaterialfSGIX\0"
"\0"
- /* _mesa_function_pool[8200]: BindSampler (will be remapped) */
+ /* _mesa_function_pool[8499]: BindSampler (will be remapped) */
"ii\0"
"glBindSampler\0"
"\0"
- /* _mesa_function_pool[8218]: RenderbufferStorageEXT (will be remapped) */
+ /* _mesa_function_pool[8517]: RenderbufferStorageEXT (will be remapped) */
"iiii\0"
"glRenderbufferStorage\0"
"glRenderbufferStorageEXT\0"
"\0"
- /* _mesa_function_pool[8271]: IsFenceNV (will be remapped) */
+ /* _mesa_function_pool[8570]: IsFenceNV (will be remapped) */
"i\0"
"glIsFenceNV\0"
"\0"
- /* _mesa_function_pool[8286]: AttachObjectARB (will be remapped) */
+ /* _mesa_function_pool[8585]: AttachObjectARB (will be remapped) */
"ii\0"
"glAttachObjectARB\0"
"\0"
- /* _mesa_function_pool[8308]: GetFragmentLightivSGIX (dynamic) */
+ /* _mesa_function_pool[8607]: GetFragmentLightivSGIX (dynamic) */
"iip\0"
"glGetFragmentLightivSGIX\0"
"\0"
- /* _mesa_function_pool[8338]: UniformMatrix2fvARB (will be remapped) */
+ /* _mesa_function_pool[8637]: UniformMatrix2fvARB (will be remapped) */
"iiip\0"
"glUniformMatrix2fv\0"
"glUniformMatrix2fvARB\0"
"\0"
- /* _mesa_function_pool[8385]: MultiTexCoord2fARB (offset 386) */
+ /* _mesa_function_pool[8684]: MultiTexCoord2fARB (offset 386) */
"iff\0"
"glMultiTexCoord2f\0"
"glMultiTexCoord2fARB\0"
"\0"
- /* _mesa_function_pool[8429]: ColorTable (offset 339) */
+ /* _mesa_function_pool[8728]: ColorTable (offset 339) */
"iiiiip\0"
"glColorTable\0"
"glColorTableSGI\0"
"glColorTableEXT\0"
"\0"
- /* _mesa_function_pool[8482]: IndexPointer (offset 314) */
+ /* _mesa_function_pool[8781]: IndexPointer (offset 314) */
"iip\0"
"glIndexPointer\0"
"\0"
- /* _mesa_function_pool[8502]: Accum (offset 213) */
+ /* _mesa_function_pool[8801]: Accum (offset 213) */
"if\0"
"glAccum\0"
"\0"
- /* _mesa_function_pool[8514]: GetTexImage (offset 281) */
+ /* _mesa_function_pool[8813]: GetTexImage (offset 281) */
"iiiip\0"
"glGetTexImage\0"
"\0"
- /* _mesa_function_pool[8535]: MapControlPointsNV (dynamic) */
+ /* _mesa_function_pool[8834]: MapControlPointsNV (dynamic) */
"iiiiiiiip\0"
"glMapControlPointsNV\0"
"\0"
- /* _mesa_function_pool[8567]: ConvolutionFilter2D (offset 349) */
+ /* _mesa_function_pool[8866]: ConvolutionFilter2D (offset 349) */
"iiiiiip\0"
"glConvolutionFilter2D\0"
"glConvolutionFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[8623]: Finish (offset 216) */
+ /* _mesa_function_pool[8922]: Finish (offset 216) */
"\0"
"glFinish\0"
"\0"
- /* _mesa_function_pool[8634]: MapParameterfvNV (dynamic) */
+ /* _mesa_function_pool[8933]: MapParameterfvNV (dynamic) */
"iip\0"
"glMapParameterfvNV\0"
"\0"
- /* _mesa_function_pool[8658]: ClearStencil (offset 207) */
+ /* _mesa_function_pool[8957]: ClearStencil (offset 207) */
"i\0"
"glClearStencil\0"
"\0"
- /* _mesa_function_pool[8676]: VertexAttrib3dvARB (will be remapped) */
+ /* _mesa_function_pool[8975]: VertexAttrib3dvARB (will be remapped) */
"ip\0"
"glVertexAttrib3dv\0"
"glVertexAttrib3dvARB\0"
"\0"
- /* _mesa_function_pool[8719]: Uniform4uivEXT (will be remapped) */
+ /* _mesa_function_pool[9018]: Uniform4uivEXT (will be remapped) */
"iip\0"
"glUniform4uivEXT\0"
"glUniform4uiv\0"
"\0"
- /* _mesa_function_pool[8755]: HintPGI (dynamic) */
+ /* _mesa_function_pool[9054]: HintPGI (dynamic) */
"ii\0"
"glHintPGI\0"
"\0"
- /* _mesa_function_pool[8769]: ConvolutionParameteriv (offset 353) */
+ /* _mesa_function_pool[9068]: ConvolutionParameteriv (offset 353) */
"iip\0"
"glConvolutionParameteriv\0"
"glConvolutionParameterivEXT\0"
"\0"
- /* _mesa_function_pool[8827]: Color4s (offset 33) */
+ /* _mesa_function_pool[9126]: Color4s (offset 33) */
"iiii\0"
"glColor4s\0"
"\0"
- /* _mesa_function_pool[8843]: InterleavedArrays (offset 317) */
+ /* _mesa_function_pool[9142]: InterleavedArrays (offset 317) */
"iip\0"
"glInterleavedArrays\0"
"\0"
- /* _mesa_function_pool[8868]: RasterPos2fv (offset 65) */
+ /* _mesa_function_pool[9167]: RasterPos2fv (offset 65) */
"p\0"
"glRasterPos2fv\0"
"\0"
- /* _mesa_function_pool[8886]: TexCoord1fv (offset 97) */
+ /* _mesa_function_pool[9185]: TexCoord1fv (offset 97) */
"p\0"
"glTexCoord1fv\0"
"\0"
- /* _mesa_function_pool[8903]: Vertex2d (offset 126) */
+ /* _mesa_function_pool[9202]: Vertex2d (offset 126) */
"dd\0"
"glVertex2d\0"
"\0"
- /* _mesa_function_pool[8918]: CullParameterdvEXT (dynamic) */
+ /* _mesa_function_pool[9217]: CullParameterdvEXT (dynamic) */
"ip\0"
"glCullParameterdvEXT\0"
"\0"
- /* _mesa_function_pool[8943]: ProgramNamedParameter4fNV (will be remapped) */
+ /* _mesa_function_pool[9242]: ProgramNamedParameter4fNV (will be remapped) */
"iipffff\0"
"glProgramNamedParameter4fNV\0"
"\0"
- /* _mesa_function_pool[8980]: Color3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[9279]: Color3fVertex3fSUN (dynamic) */
"ffffff\0"
"glColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[9009]: ProgramEnvParameter4fvARB (will be remapped) */
+ /* _mesa_function_pool[9308]: ProgramEnvParameter4fvARB (will be remapped) */
"iip\0"
"glProgramEnvParameter4fvARB\0"
"glProgramParameter4fvNV\0"
"\0"
- /* _mesa_function_pool[9066]: Color4i (offset 31) */
+ /* _mesa_function_pool[9365]: Color4i (offset 31) */
"iiii\0"
"glColor4i\0"
"\0"
- /* _mesa_function_pool[9082]: Color4f (offset 29) */
+ /* _mesa_function_pool[9381]: Color4f (offset 29) */
"ffff\0"
"glColor4f\0"
"\0"
- /* _mesa_function_pool[9098]: RasterPos4fv (offset 81) */
+ /* _mesa_function_pool[9397]: RasterPos4fv (offset 81) */
"p\0"
"glRasterPos4fv\0"
"\0"
- /* _mesa_function_pool[9116]: Color4d (offset 27) */
+ /* _mesa_function_pool[9415]: Color4d (offset 27) */
"dddd\0"
"glColor4d\0"
"\0"
- /* _mesa_function_pool[9132]: ClearIndex (offset 205) */
+ /* _mesa_function_pool[9431]: ClearIndex (offset 205) */
"f\0"
"glClearIndex\0"
"\0"
- /* _mesa_function_pool[9148]: Color4b (offset 25) */
+ /* _mesa_function_pool[9447]: Color4b (offset 25) */
"iiii\0"
"glColor4b\0"
"\0"
- /* _mesa_function_pool[9164]: LoadMatrixd (offset 292) */
+ /* _mesa_function_pool[9463]: LoadMatrixd (offset 292) */
"p\0"
"glLoadMatrixd\0"
"\0"
- /* _mesa_function_pool[9181]: FragmentLightModeliSGIX (dynamic) */
+ /* _mesa_function_pool[9480]: FragmentLightModeliSGIX (dynamic) */
"ii\0"
"glFragmentLightModeliSGIX\0"
"\0"
- /* _mesa_function_pool[9211]: RasterPos2dv (offset 63) */
+ /* _mesa_function_pool[9510]: RasterPos2dv (offset 63) */
"p\0"
"glRasterPos2dv\0"
"\0"
- /* _mesa_function_pool[9229]: ConvolutionParameterfv (offset 351) */
+ /* _mesa_function_pool[9528]: ConvolutionParameterfv (offset 351) */
"iip\0"
"glConvolutionParameterfv\0"
"glConvolutionParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[9287]: TbufferMask3DFX (dynamic) */
+ /* _mesa_function_pool[9586]: TbufferMask3DFX (dynamic) */
"i\0"
"glTbufferMask3DFX\0"
"\0"
- /* _mesa_function_pool[9308]: GetTexGendv (offset 278) */
+ /* _mesa_function_pool[9607]: GetTexGendv (offset 278) */
"iip\0"
"glGetTexGendv\0"
"\0"
- /* _mesa_function_pool[9327]: GetVertexAttribfvNV (will be remapped) */
+ /* _mesa_function_pool[9626]: GetVertexAttribfvNV (will be remapped) */
"iip\0"
"glGetVertexAttribfvNV\0"
"\0"
- /* _mesa_function_pool[9354]: BeginTransformFeedbackEXT (will be remapped) */
+ /* _mesa_function_pool[9653]: BeginTransformFeedbackEXT (will be remapped) */
"i\0"
"glBeginTransformFeedbackEXT\0"
"glBeginTransformFeedback\0"
"\0"
- /* _mesa_function_pool[9410]: LoadProgramNV (will be remapped) */
+ /* _mesa_function_pool[9709]: LoadProgramNV (will be remapped) */
"iiip\0"
"glLoadProgramNV\0"
"\0"
- /* _mesa_function_pool[9432]: WaitSync (will be remapped) */
+ /* _mesa_function_pool[9731]: WaitSync (will be remapped) */
"iii\0"
"glWaitSync\0"
"\0"
- /* _mesa_function_pool[9448]: EndList (offset 1) */
+ /* _mesa_function_pool[9747]: EndList (offset 1) */
"\0"
"glEndList\0"
"\0"
- /* _mesa_function_pool[9460]: VertexAttrib4fvNV (will be remapped) */
+ /* _mesa_function_pool[9759]: VertexAttrib4fvNV (will be remapped) */
"ip\0"
"glVertexAttrib4fvNV\0"
"\0"
- /* _mesa_function_pool[9484]: GetAttachedObjectsARB (will be remapped) */
+ /* _mesa_function_pool[9783]: GetAttachedObjectsARB (will be remapped) */
"iipp\0"
"glGetAttachedObjectsARB\0"
"\0"
- /* _mesa_function_pool[9514]: Uniform3fvARB (will be remapped) */
+ /* _mesa_function_pool[9813]: Uniform3fvARB (will be remapped) */
"iip\0"
"glUniform3fv\0"
"glUniform3fvARB\0"
"\0"
- /* _mesa_function_pool[9548]: EvalCoord1fv (offset 231) */
+ /* _mesa_function_pool[9847]: EvalCoord1fv (offset 231) */
"p\0"
"glEvalCoord1fv\0"
"\0"
- /* _mesa_function_pool[9566]: DrawRangeElements (offset 338) */
+ /* _mesa_function_pool[9865]: DrawRangeElements (offset 338) */
"iiiiip\0"
"glDrawRangeElements\0"
"glDrawRangeElementsEXT\0"
"\0"
- /* _mesa_function_pool[9617]: EvalMesh2 (offset 238) */
+ /* _mesa_function_pool[9916]: EvalMesh2 (offset 238) */
"iiiii\0"
"glEvalMesh2\0"
"\0"
- /* _mesa_function_pool[9636]: Vertex4fv (offset 145) */
+ /* _mesa_function_pool[9935]: Vertex4fv (offset 145) */
"p\0"
"glVertex4fv\0"
"\0"
- /* _mesa_function_pool[9651]: GenTransformFeedbacks (will be remapped) */
+ /* _mesa_function_pool[9950]: GenTransformFeedbacks (will be remapped) */
"ip\0"
"glGenTransformFeedbacks\0"
"\0"
- /* _mesa_function_pool[9679]: SpriteParameterfvSGIX (dynamic) */
+ /* _mesa_function_pool[9978]: SpriteParameterfvSGIX (dynamic) */
"ip\0"
"glSpriteParameterfvSGIX\0"
"\0"
- /* _mesa_function_pool[9707]: CheckFramebufferStatusEXT (will be remapped) */
+ /* _mesa_function_pool[10006]: CheckFramebufferStatusEXT (will be remapped) */
"i\0"
"glCheckFramebufferStatus\0"
"glCheckFramebufferStatusEXT\0"
"\0"
- /* _mesa_function_pool[9763]: GlobalAlphaFactoruiSUN (dynamic) */
+ /* _mesa_function_pool[10062]: GlobalAlphaFactoruiSUN (dynamic) */
"i\0"
"glGlobalAlphaFactoruiSUN\0"
"\0"
- /* _mesa_function_pool[9791]: GetHandleARB (will be remapped) */
+ /* _mesa_function_pool[10090]: GetHandleARB (will be remapped) */
"i\0"
"glGetHandleARB\0"
"\0"
- /* _mesa_function_pool[9809]: GetVertexAttribivARB (will be remapped) */
+ /* _mesa_function_pool[10108]: GetVertexAttribivARB (will be remapped) */
"iip\0"
"glGetVertexAttribiv\0"
"glGetVertexAttribivARB\0"
"\0"
- /* _mesa_function_pool[9857]: BlendFunciARB (will be remapped) */
+ /* _mesa_function_pool[10156]: BlendFunciARB (will be remapped) */
"iii\0"
"glBlendFunciARB\0"
+ "glBlendFuncIndexedAMD\0"
"\0"
- /* _mesa_function_pool[9878]: GetCombinerInputParameterfvNV (will be remapped) */
- "iiiip\0"
- "glGetCombinerInputParameterfvNV\0"
+ /* _mesa_function_pool[10199]: GetnUniformivARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformivARB\0"
"\0"
- /* _mesa_function_pool[9917]: GetTexParameterIivEXT (will be remapped) */
+ /* _mesa_function_pool[10224]: GetTexParameterIivEXT (will be remapped) */
"iip\0"
"glGetTexParameterIivEXT\0"
"glGetTexParameterIiv\0"
"\0"
- /* _mesa_function_pool[9967]: CreateProgram (will be remapped) */
+ /* _mesa_function_pool[10274]: CreateProgram (will be remapped) */
"\0"
"glCreateProgram\0"
"\0"
- /* _mesa_function_pool[9985]: LoadTransposeMatrixdARB (will be remapped) */
+ /* _mesa_function_pool[10292]: LoadTransposeMatrixdARB (will be remapped) */
"p\0"
"glLoadTransposeMatrixd\0"
"glLoadTransposeMatrixdARB\0"
"\0"
- /* _mesa_function_pool[10037]: ReleaseShaderCompiler (will be remapped) */
+ /* _mesa_function_pool[10344]: ReleaseShaderCompiler (will be remapped) */
"\0"
"glReleaseShaderCompiler\0"
"\0"
- /* _mesa_function_pool[10063]: GetMinmax (offset 364) */
+ /* _mesa_function_pool[10370]: GetMinmax (offset 364) */
"iiiip\0"
"glGetMinmax\0"
"glGetMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[10097]: StencilFuncSeparate (will be remapped) */
+ /* _mesa_function_pool[10404]: StencilFuncSeparate (will be remapped) */
"iiii\0"
"glStencilFuncSeparate\0"
"\0"
- /* _mesa_function_pool[10125]: SecondaryColor3sEXT (will be remapped) */
+ /* _mesa_function_pool[10432]: SecondaryColor3sEXT (will be remapped) */
"iii\0"
"glSecondaryColor3s\0"
"glSecondaryColor3sEXT\0"
"\0"
- /* _mesa_function_pool[10171]: Color3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[10478]: Color3fVertex3fvSUN (dynamic) */
"pp\0"
"glColor3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[10197]: GetInteger64i_v (will be remapped) */
+ /* _mesa_function_pool[10504]: GetInteger64i_v (will be remapped) */
"iip\0"
"glGetInteger64i_v\0"
"\0"
- /* _mesa_function_pool[10220]: Normal3fv (offset 57) */
+ /* _mesa_function_pool[10527]: GetVertexAttribdvNV (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribdvNV\0"
+ "\0"
+ /* _mesa_function_pool[10554]: Normal3fv (offset 57) */
"p\0"
"glNormal3fv\0"
"\0"
- /* _mesa_function_pool[10235]: GlobalAlphaFactorbSUN (dynamic) */
+ /* _mesa_function_pool[10569]: GlobalAlphaFactorbSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorbSUN\0"
"\0"
- /* _mesa_function_pool[10262]: Color3us (offset 23) */
+ /* _mesa_function_pool[10596]: Color3us (offset 23) */
"iii\0"
"glColor3us\0"
"\0"
- /* _mesa_function_pool[10278]: ImageTransformParameterfvHP (dynamic) */
+ /* _mesa_function_pool[10612]: ImageTransformParameterfvHP (dynamic) */
"iip\0"
"glImageTransformParameterfvHP\0"
"\0"
- /* _mesa_function_pool[10313]: VertexAttrib4ivARB (will be remapped) */
+ /* _mesa_function_pool[10647]: VertexAttrib4ivARB (will be remapped) */
"ip\0"
"glVertexAttrib4iv\0"
"glVertexAttrib4ivARB\0"
"\0"
- /* _mesa_function_pool[10356]: End (offset 43) */
+ /* _mesa_function_pool[10690]: End (offset 43) */
"\0"
"glEnd\0"
"\0"
- /* _mesa_function_pool[10364]: VertexAttrib3fNV (will be remapped) */
+ /* _mesa_function_pool[10698]: VertexAttrib3fNV (will be remapped) */
"ifff\0"
"glVertexAttrib3fNV\0"
"\0"
- /* _mesa_function_pool[10389]: VertexAttribs2dvNV (will be remapped) */
+ /* _mesa_function_pool[10723]: VertexAttribs2dvNV (will be remapped) */
"iip\0"
"glVertexAttribs2dvNV\0"
"\0"
- /* _mesa_function_pool[10415]: GetQueryObjectui64vEXT (will be remapped) */
+ /* _mesa_function_pool[10749]: GetQueryObjectui64vEXT (will be remapped) */
"iip\0"
"glGetQueryObjectui64vEXT\0"
"\0"
- /* _mesa_function_pool[10445]: MultiTexCoord3fvARB (offset 395) */
+ /* _mesa_function_pool[10779]: MultiTexCoord3fvARB (offset 395) */
"ip\0"
"glMultiTexCoord3fv\0"
"glMultiTexCoord3fvARB\0"
"\0"
- /* _mesa_function_pool[10490]: SecondaryColor3dEXT (will be remapped) */
+ /* _mesa_function_pool[10824]: SecondaryColor3dEXT (will be remapped) */
"ddd\0"
"glSecondaryColor3d\0"
"glSecondaryColor3dEXT\0"
"\0"
- /* _mesa_function_pool[10536]: Color3ub (offset 19) */
+ /* _mesa_function_pool[10870]: Color3ub (offset 19) */
"iii\0"
"glColor3ub\0"
"\0"
- /* _mesa_function_pool[10552]: GetProgramParameterfvNV (will be remapped) */
+ /* _mesa_function_pool[10886]: GetProgramParameterfvNV (will be remapped) */
"iiip\0"
"glGetProgramParameterfvNV\0"
"\0"
- /* _mesa_function_pool[10584]: TangentPointerEXT (dynamic) */
+ /* _mesa_function_pool[10918]: TangentPointerEXT (dynamic) */
"iip\0"
"glTangentPointerEXT\0"
"\0"
- /* _mesa_function_pool[10609]: Color4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[10943]: Color4fNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[10644]: GetInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[10978]: GetInstrumentsSGIX (dynamic) */
"\0"
"glGetInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[10667]: GetUniformuivEXT (will be remapped) */
+ /* _mesa_function_pool[11001]: GetUniformuivEXT (will be remapped) */
"iip\0"
"glGetUniformuivEXT\0"
"glGetUniformuiv\0"
"\0"
- /* _mesa_function_pool[10707]: Color3ui (offset 21) */
+ /* _mesa_function_pool[11041]: Color3ui (offset 21) */
"iii\0"
"glColor3ui\0"
"\0"
- /* _mesa_function_pool[10723]: EvalMapsNV (dynamic) */
+ /* _mesa_function_pool[11057]: EvalMapsNV (dynamic) */
"ii\0"
"glEvalMapsNV\0"
"\0"
- /* _mesa_function_pool[10740]: TexSubImage2D (offset 333) */
+ /* _mesa_function_pool[11074]: TexSubImage2D (offset 333) */
"iiiiiiiip\0"
"glTexSubImage2D\0"
"glTexSubImage2DEXT\0"
"\0"
- /* _mesa_function_pool[10786]: FragmentLightivSGIX (dynamic) */
+ /* _mesa_function_pool[11120]: FragmentLightivSGIX (dynamic) */
"iip\0"
"glFragmentLightivSGIX\0"
"\0"
- /* _mesa_function_pool[10813]: GetTexParameterPointervAPPLE (will be remapped) */
+ /* _mesa_function_pool[11147]: GetTexParameterPointervAPPLE (will be remapped) */
"iip\0"
"glGetTexParameterPointervAPPLE\0"
"\0"
- /* _mesa_function_pool[10849]: TexGenfv (offset 191) */
+ /* _mesa_function_pool[11183]: TexGenfv (offset 191) */
"iip\0"
"glTexGenfv\0"
"\0"
- /* _mesa_function_pool[10865]: GetTransformFeedbackVaryingEXT (will be remapped) */
+ /* _mesa_function_pool[11199]: GetTransformFeedbackVaryingEXT (will be remapped) */
"iiipppp\0"
"glGetTransformFeedbackVaryingEXT\0"
"glGetTransformFeedbackVarying\0"
"\0"
- /* _mesa_function_pool[10937]: VertexAttrib4bvARB (will be remapped) */
+ /* _mesa_function_pool[11271]: VertexAttrib4bvARB (will be remapped) */
"ip\0"
"glVertexAttrib4bv\0"
"glVertexAttrib4bvARB\0"
"\0"
- /* _mesa_function_pool[10980]: ShaderBinary (will be remapped) */
+ /* _mesa_function_pool[11314]: ShaderBinary (will be remapped) */
"ipipi\0"
"glShaderBinary\0"
"\0"
- /* _mesa_function_pool[11002]: GetIntegerIndexedvEXT (will be remapped) */
+ /* _mesa_function_pool[11336]: GetIntegerIndexedvEXT (will be remapped) */
"iip\0"
"glGetIntegerIndexedvEXT\0"
"glGetIntegeri_v\0"
"\0"
- /* _mesa_function_pool[11047]: MultiTexCoord4sARB (offset 406) */
+ /* _mesa_function_pool[11381]: MultiTexCoord4sARB (offset 406) */
"iiiii\0"
"glMultiTexCoord4s\0"
"glMultiTexCoord4sARB\0"
"\0"
- /* _mesa_function_pool[11093]: GetFragmentMaterialivSGIX (dynamic) */
+ /* _mesa_function_pool[11427]: GetFragmentMaterialivSGIX (dynamic) */
"iip\0"
"glGetFragmentMaterialivSGIX\0"
"\0"
- /* _mesa_function_pool[11126]: WindowPos4dMESA (will be remapped) */
+ /* _mesa_function_pool[11460]: WindowPos4dMESA (will be remapped) */
"dddd\0"
"glWindowPos4dMESA\0"
"\0"
- /* _mesa_function_pool[11150]: WeightPointerARB (dynamic) */
+ /* _mesa_function_pool[11484]: WeightPointerARB (dynamic) */
"iiip\0"
"glWeightPointerARB\0"
"\0"
- /* _mesa_function_pool[11175]: WindowPos2dMESA (will be remapped) */
+ /* _mesa_function_pool[11509]: WindowPos2dMESA (will be remapped) */
"dd\0"
"glWindowPos2d\0"
"glWindowPos2dARB\0"
"glWindowPos2dMESA\0"
"\0"
- /* _mesa_function_pool[11228]: FramebufferTexture3DEXT (will be remapped) */
+ /* _mesa_function_pool[11562]: FramebufferTexture3DEXT (will be remapped) */
"iiiiii\0"
"glFramebufferTexture3D\0"
"glFramebufferTexture3DEXT\0"
"\0"
- /* _mesa_function_pool[11285]: BlendEquation (offset 337) */
+ /* _mesa_function_pool[11619]: BlendEquation (offset 337) */
"i\0"
"glBlendEquation\0"
"glBlendEquationEXT\0"
"\0"
- /* _mesa_function_pool[11323]: VertexAttrib3dNV (will be remapped) */
+ /* _mesa_function_pool[11657]: VertexAttrib3dNV (will be remapped) */
"iddd\0"
"glVertexAttrib3dNV\0"
"\0"
- /* _mesa_function_pool[11348]: VertexAttrib3dARB (will be remapped) */
+ /* _mesa_function_pool[11682]: VertexAttrib3dARB (will be remapped) */
"iddd\0"
"glVertexAttrib3d\0"
"glVertexAttrib3dARB\0"
"\0"
- /* _mesa_function_pool[11391]: VertexAttribI4usvEXT (will be remapped) */
+ /* _mesa_function_pool[11725]: VertexAttribI4usvEXT (will be remapped) */
"ip\0"
"glVertexAttribI4usvEXT\0"
"glVertexAttribI4usv\0"
"\0"
- /* _mesa_function_pool[11438]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[11772]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
"ppppp\0"
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[11502]: VertexAttrib4fARB (will be remapped) */
+ /* _mesa_function_pool[11836]: VertexAttrib4fARB (will be remapped) */
"iffff\0"
"glVertexAttrib4f\0"
"glVertexAttrib4fARB\0"
"\0"
- /* _mesa_function_pool[11546]: GetError (offset 261) */
+ /* _mesa_function_pool[11880]: GetError (offset 261) */
"\0"
"glGetError\0"
"\0"
- /* _mesa_function_pool[11559]: IndexFuncEXT (dynamic) */
+ /* _mesa_function_pool[11893]: IndexFuncEXT (dynamic) */
"if\0"
"glIndexFuncEXT\0"
"\0"
- /* _mesa_function_pool[11578]: TexCoord3dv (offset 111) */
+ /* _mesa_function_pool[11912]: TexCoord3dv (offset 111) */
"p\0"
"glTexCoord3dv\0"
"\0"
- /* _mesa_function_pool[11595]: Indexdv (offset 45) */
+ /* _mesa_function_pool[11929]: Indexdv (offset 45) */
"p\0"
"glIndexdv\0"
"\0"
- /* _mesa_function_pool[11608]: FramebufferTexture2DEXT (will be remapped) */
+ /* _mesa_function_pool[11942]: FramebufferTexture2DEXT (will be remapped) */
"iiiii\0"
"glFramebufferTexture2D\0"
"glFramebufferTexture2DEXT\0"
"\0"
- /* _mesa_function_pool[11664]: Normal3s (offset 60) */
+ /* _mesa_function_pool[11998]: Normal3s (offset 60) */
"iii\0"
"glNormal3s\0"
"\0"
- /* _mesa_function_pool[11680]: GetObjectParameterivAPPLE (will be remapped) */
+ /* _mesa_function_pool[12014]: GetObjectParameterivAPPLE (will be remapped) */
"iiip\0"
"glGetObjectParameterivAPPLE\0"
"\0"
- /* _mesa_function_pool[11714]: PushName (offset 201) */
+ /* _mesa_function_pool[12048]: PushName (offset 201) */
"i\0"
"glPushName\0"
"\0"
- /* _mesa_function_pool[11728]: MultiTexCoord2dvARB (offset 385) */
+ /* _mesa_function_pool[12062]: MultiTexCoord2dvARB (offset 385) */
"ip\0"
"glMultiTexCoord2dv\0"
"glMultiTexCoord2dvARB\0"
"\0"
- /* _mesa_function_pool[11773]: CullParameterfvEXT (dynamic) */
+ /* _mesa_function_pool[12107]: CullParameterfvEXT (dynamic) */
"ip\0"
"glCullParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[11798]: Normal3i (offset 58) */
+ /* _mesa_function_pool[12132]: Normal3i (offset 58) */
"iii\0"
"glNormal3i\0"
"\0"
- /* _mesa_function_pool[11814]: ProgramNamedParameter4fvNV (will be remapped) */
+ /* _mesa_function_pool[12148]: ProgramNamedParameter4fvNV (will be remapped) */
"iipp\0"
"glProgramNamedParameter4fvNV\0"
"\0"
- /* _mesa_function_pool[11849]: SecondaryColorPointerEXT (will be remapped) */
+ /* _mesa_function_pool[12183]: SecondaryColorPointerEXT (will be remapped) */
"iiip\0"
"glSecondaryColorPointer\0"
"glSecondaryColorPointerEXT\0"
"\0"
- /* _mesa_function_pool[11906]: VertexAttrib4fvARB (will be remapped) */
+ /* _mesa_function_pool[12240]: VertexAttrib4fvARB (will be remapped) */
"ip\0"
"glVertexAttrib4fv\0"
"glVertexAttrib4fvARB\0"
"\0"
- /* _mesa_function_pool[11949]: PixelTexGenSGIX (will be remapped) */
+ /* _mesa_function_pool[12283]: PixelTexGenSGIX (will be remapped) */
"i\0"
"glPixelTexGenSGIX\0"
"\0"
- /* _mesa_function_pool[11970]: GetActiveUniformARB (will be remapped) */
+ /* _mesa_function_pool[12304]: GetActiveUniformARB (will be remapped) */
"iiipppp\0"
"glGetActiveUniform\0"
"glGetActiveUniformARB\0"
"\0"
- /* _mesa_function_pool[12020]: ImageTransformParameteriHP (dynamic) */
+ /* _mesa_function_pool[12354]: ImageTransformParameteriHP (dynamic) */
"iii\0"
"glImageTransformParameteriHP\0"
"\0"
- /* _mesa_function_pool[12054]: Normal3b (offset 52) */
+ /* _mesa_function_pool[12388]: Normal3b (offset 52) */
"iii\0"
"glNormal3b\0"
"\0"
- /* _mesa_function_pool[12070]: Normal3d (offset 54) */
+ /* _mesa_function_pool[12404]: Normal3d (offset 54) */
"ddd\0"
"glNormal3d\0"
"\0"
- /* _mesa_function_pool[12086]: Uniform1uiEXT (will be remapped) */
+ /* _mesa_function_pool[12420]: Uniform1uiEXT (will be remapped) */
"ii\0"
"glUniform1uiEXT\0"
"glUniform1ui\0"
"\0"
- /* _mesa_function_pool[12119]: Normal3f (offset 56) */
+ /* _mesa_function_pool[12453]: Normal3f (offset 56) */
"fff\0"
"glNormal3f\0"
"\0"
- /* _mesa_function_pool[12135]: MultiTexCoord1svARB (offset 383) */
+ /* _mesa_function_pool[12469]: MultiTexCoord1svARB (offset 383) */
"ip\0"
"glMultiTexCoord1sv\0"
"glMultiTexCoord1svARB\0"
"\0"
- /* _mesa_function_pool[12180]: Indexi (offset 48) */
+ /* _mesa_function_pool[12514]: Indexi (offset 48) */
"i\0"
"glIndexi\0"
"\0"
- /* _mesa_function_pool[12192]: EGLImageTargetTexture2DOES (will be remapped) */
+ /* _mesa_function_pool[12526]: EGLImageTargetTexture2DOES (will be remapped) */
"ip\0"
"glEGLImageTargetTexture2DOES\0"
"\0"
- /* _mesa_function_pool[12225]: EndQueryARB (will be remapped) */
+ /* _mesa_function_pool[12559]: EndQueryARB (will be remapped) */
"i\0"
"glEndQuery\0"
"glEndQueryARB\0"
"\0"
- /* _mesa_function_pool[12253]: DeleteFencesNV (will be remapped) */
+ /* _mesa_function_pool[12587]: DeleteFencesNV (will be remapped) */
"ip\0"
"glDeleteFencesNV\0"
"\0"
- /* _mesa_function_pool[12274]: ColorPointerListIBM (dynamic) */
+ /* _mesa_function_pool[12608]: ColorPointerListIBM (dynamic) */
"iiipi\0"
"glColorPointerListIBM\0"
"\0"
- /* _mesa_function_pool[12303]: BindBufferRangeEXT (will be remapped) */
+ /* _mesa_function_pool[12637]: BindBufferRangeEXT (will be remapped) */
"iiiii\0"
"glBindBufferRangeEXT\0"
"glBindBufferRange\0"
"\0"
- /* _mesa_function_pool[12349]: DepthMask (offset 211) */
+ /* _mesa_function_pool[12683]: DepthMask (offset 211) */
"i\0"
"glDepthMask\0"
"\0"
- /* _mesa_function_pool[12364]: IsShader (will be remapped) */
+ /* _mesa_function_pool[12698]: IsShader (will be remapped) */
"i\0"
"glIsShader\0"
"\0"
- /* _mesa_function_pool[12378]: Indexf (offset 46) */
+ /* _mesa_function_pool[12712]: Indexf (offset 46) */
"f\0"
"glIndexf\0"
"\0"
- /* _mesa_function_pool[12390]: GetImageTransformParameterivHP (dynamic) */
+ /* _mesa_function_pool[12724]: GetImageTransformParameterivHP (dynamic) */
"iip\0"
"glGetImageTransformParameterivHP\0"
"\0"
- /* _mesa_function_pool[12428]: Indexd (offset 44) */
+ /* _mesa_function_pool[12762]: Indexd (offset 44) */
"d\0"
"glIndexd\0"
"\0"
- /* _mesa_function_pool[12440]: GetMaterialiv (offset 270) */
+ /* _mesa_function_pool[12774]: GetMaterialiv (offset 270) */
"iip\0"
"glGetMaterialiv\0"
"\0"
- /* _mesa_function_pool[12461]: StencilOp (offset 244) */
+ /* _mesa_function_pool[12795]: StencilOp (offset 244) */
"iii\0"
"glStencilOp\0"
"\0"
- /* _mesa_function_pool[12478]: WindowPos4ivMESA (will be remapped) */
+ /* _mesa_function_pool[12812]: WindowPos4ivMESA (will be remapped) */
"p\0"
"glWindowPos4ivMESA\0"
"\0"
- /* _mesa_function_pool[12500]: FramebufferTextureLayer (dynamic) */
+ /* _mesa_function_pool[12834]: FramebufferTextureLayer (dynamic) */
"iiiii\0"
"glFramebufferTextureLayerARB\0"
"\0"
- /* _mesa_function_pool[12536]: MultiTexCoord3svARB (offset 399) */
+ /* _mesa_function_pool[12870]: MultiTexCoord3svARB (offset 399) */
"ip\0"
"glMultiTexCoord3sv\0"
"glMultiTexCoord3svARB\0"
"\0"
- /* _mesa_function_pool[12581]: TexEnvfv (offset 185) */
+ /* _mesa_function_pool[12915]: TexEnvfv (offset 185) */
"iip\0"
"glTexEnvfv\0"
"\0"
- /* _mesa_function_pool[12597]: MultiTexCoord4iARB (offset 404) */
+ /* _mesa_function_pool[12931]: MultiTexCoord4iARB (offset 404) */
"iiiii\0"
"glMultiTexCoord4i\0"
"glMultiTexCoord4iARB\0"
"\0"
- /* _mesa_function_pool[12643]: Indexs (offset 50) */
+ /* _mesa_function_pool[12977]: Indexs (offset 50) */
"i\0"
"glIndexs\0"
"\0"
- /* _mesa_function_pool[12655]: Binormal3ivEXT (dynamic) */
+ /* _mesa_function_pool[12989]: Binormal3ivEXT (dynamic) */
"p\0"
"glBinormal3ivEXT\0"
"\0"
- /* _mesa_function_pool[12675]: ResizeBuffersMESA (will be remapped) */
+ /* _mesa_function_pool[13009]: ResizeBuffersMESA (will be remapped) */
"\0"
"glResizeBuffersMESA\0"
"\0"
- /* _mesa_function_pool[12697]: BlendFuncSeparateiARB (will be remapped) */
+ /* _mesa_function_pool[13031]: BlendFuncSeparateiARB (will be remapped) */
"iiiii\0"
"glBlendFuncSeparateiARB\0"
+ "glBlendFuncSeparateIndexedAMD\0"
"\0"
- /* _mesa_function_pool[12728]: GetUniformivARB (will be remapped) */
+ /* _mesa_function_pool[13092]: GetUniformivARB (will be remapped) */
"iip\0"
"glGetUniformiv\0"
"glGetUniformivARB\0"
"\0"
- /* _mesa_function_pool[12766]: PixelTexGenParameteriSGIS (will be remapped) */
+ /* _mesa_function_pool[13130]: PixelTexGenParameteriSGIS (will be remapped) */
"ii\0"
"glPixelTexGenParameteriSGIS\0"
"\0"
- /* _mesa_function_pool[12798]: VertexPointervINTEL (dynamic) */
+ /* _mesa_function_pool[13162]: VertexPointervINTEL (dynamic) */
"iip\0"
"glVertexPointervINTEL\0"
"\0"
- /* _mesa_function_pool[12825]: Vertex2i (offset 130) */
+ /* _mesa_function_pool[13189]: Vertex2i (offset 130) */
"ii\0"
"glVertex2i\0"
"\0"
- /* _mesa_function_pool[12840]: LoadMatrixf (offset 291) */
+ /* _mesa_function_pool[13204]: LoadMatrixf (offset 291) */
"p\0"
"glLoadMatrixf\0"
"\0"
- /* _mesa_function_pool[12857]: VertexAttribI1uivEXT (will be remapped) */
+ /* _mesa_function_pool[13221]: VertexAttribI1uivEXT (will be remapped) */
"ip\0"
"glVertexAttribI1uivEXT\0"
"glVertexAttribI1uiv\0"
"\0"
- /* _mesa_function_pool[12904]: Vertex2f (offset 128) */
+ /* _mesa_function_pool[13268]: Vertex2f (offset 128) */
"ff\0"
"glVertex2f\0"
"\0"
- /* _mesa_function_pool[12919]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[13283]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[12972]: Color4bv (offset 26) */
+ /* _mesa_function_pool[13336]: Color4bv (offset 26) */
"p\0"
"glColor4bv\0"
"\0"
- /* _mesa_function_pool[12986]: VertexPointer (offset 321) */
+ /* _mesa_function_pool[13350]: VertexPointer (offset 321) */
"iiip\0"
"glVertexPointer\0"
"\0"
- /* _mesa_function_pool[13008]: SecondaryColor3uiEXT (will be remapped) */
+ /* _mesa_function_pool[13372]: SecondaryColor3uiEXT (will be remapped) */
"iii\0"
"glSecondaryColor3ui\0"
"glSecondaryColor3uiEXT\0"
"\0"
- /* _mesa_function_pool[13056]: StartInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[13420]: StartInstrumentsSGIX (dynamic) */
"\0"
"glStartInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[13081]: SecondaryColor3usvEXT (will be remapped) */
+ /* _mesa_function_pool[13445]: SecondaryColor3usvEXT (will be remapped) */
"p\0"
"glSecondaryColor3usv\0"
"glSecondaryColor3usvEXT\0"
"\0"
- /* _mesa_function_pool[13129]: VertexAttrib2fvNV (will be remapped) */
+ /* _mesa_function_pool[13493]: VertexAttrib2fvNV (will be remapped) */
"ip\0"
"glVertexAttrib2fvNV\0"
"\0"
- /* _mesa_function_pool[13153]: ProgramLocalParameter4dvARB (will be remapped) */
+ /* _mesa_function_pool[13517]: ProgramLocalParameter4dvARB (will be remapped) */
"iip\0"
"glProgramLocalParameter4dvARB\0"
"\0"
- /* _mesa_function_pool[13188]: DeleteLists (offset 4) */
+ /* _mesa_function_pool[13552]: DeleteLists (offset 4) */
"ii\0"
"glDeleteLists\0"
"\0"
- /* _mesa_function_pool[13206]: LogicOp (offset 242) */
+ /* _mesa_function_pool[13570]: LogicOp (offset 242) */
"i\0"
"glLogicOp\0"
"\0"
- /* _mesa_function_pool[13219]: MatrixIndexuivARB (dynamic) */
+ /* _mesa_function_pool[13583]: MatrixIndexuivARB (dynamic) */
"ip\0"
"glMatrixIndexuivARB\0"
"\0"
- /* _mesa_function_pool[13243]: Vertex2s (offset 132) */
+ /* _mesa_function_pool[13607]: Vertex2s (offset 132) */
"ii\0"
"glVertex2s\0"
"\0"
- /* _mesa_function_pool[13258]: RenderbufferStorageMultisample (will be remapped) */
+ /* _mesa_function_pool[13622]: RenderbufferStorageMultisample (will be remapped) */
"iiiii\0"
"glRenderbufferStorageMultisample\0"
"glRenderbufferStorageMultisampleEXT\0"
"\0"
- /* _mesa_function_pool[13334]: TexCoord4fv (offset 121) */
+ /* _mesa_function_pool[13698]: TexCoord4fv (offset 121) */
"p\0"
"glTexCoord4fv\0"
"\0"
- /* _mesa_function_pool[13351]: Tangent3sEXT (dynamic) */
+ /* _mesa_function_pool[13715]: Tangent3sEXT (dynamic) */
"iii\0"
"glTangent3sEXT\0"
"\0"
- /* _mesa_function_pool[13371]: GlobalAlphaFactorfSUN (dynamic) */
+ /* _mesa_function_pool[13735]: GlobalAlphaFactorfSUN (dynamic) */
"f\0"
"glGlobalAlphaFactorfSUN\0"
"\0"
- /* _mesa_function_pool[13398]: MultiTexCoord3iARB (offset 396) */
+ /* _mesa_function_pool[13762]: MultiTexCoord3iARB (offset 396) */
"iiii\0"
"glMultiTexCoord3i\0"
"glMultiTexCoord3iARB\0"
"\0"
- /* _mesa_function_pool[13443]: IsProgram (will be remapped) */
+ /* _mesa_function_pool[13807]: IsProgram (will be remapped) */
"i\0"
"glIsProgram\0"
"\0"
- /* _mesa_function_pool[13458]: TexCoordPointerListIBM (dynamic) */
+ /* _mesa_function_pool[13822]: TexCoordPointerListIBM (dynamic) */
"iiipi\0"
"glTexCoordPointerListIBM\0"
"\0"
- /* _mesa_function_pool[13490]: VertexAttribI4svEXT (will be remapped) */
+ /* _mesa_function_pool[13854]: VertexAttribI4svEXT (will be remapped) */
"ip\0"
"glVertexAttribI4svEXT\0"
"glVertexAttribI4sv\0"
"\0"
- /* _mesa_function_pool[13535]: GlobalAlphaFactorusSUN (dynamic) */
+ /* _mesa_function_pool[13899]: GlobalAlphaFactorusSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorusSUN\0"
"\0"
- /* _mesa_function_pool[13563]: VertexAttrib2dvNV (will be remapped) */
+ /* _mesa_function_pool[13927]: VertexAttrib2dvNV (will be remapped) */
"ip\0"
"glVertexAttrib2dvNV\0"
"\0"
- /* _mesa_function_pool[13587]: FramebufferRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[13951]: FramebufferRenderbufferEXT (will be remapped) */
"iiii\0"
"glFramebufferRenderbuffer\0"
"glFramebufferRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[13648]: ClearBufferuiv (will be remapped) */
+ /* _mesa_function_pool[14012]: ClearBufferuiv (will be remapped) */
"iip\0"
"glClearBufferuiv\0"
"\0"
- /* _mesa_function_pool[13670]: VertexAttrib1dvNV (will be remapped) */
+ /* _mesa_function_pool[14034]: VertexAttrib1dvNV (will be remapped) */
"ip\0"
"glVertexAttrib1dvNV\0"
"\0"
- /* _mesa_function_pool[13694]: GenTextures (offset 328) */
+ /* _mesa_function_pool[14058]: GenTextures (offset 328) */
"ip\0"
"glGenTextures\0"
"glGenTexturesEXT\0"
"\0"
- /* _mesa_function_pool[13729]: FramebufferTextureARB (will be remapped) */
+ /* _mesa_function_pool[14093]: FramebufferTextureARB (will be remapped) */
"iiii\0"
"glFramebufferTextureARB\0"
"\0"
- /* _mesa_function_pool[13759]: SetFenceNV (will be remapped) */
+ /* _mesa_function_pool[14123]: SetFenceNV (will be remapped) */
"ii\0"
"glSetFenceNV\0"
"\0"
- /* _mesa_function_pool[13776]: FramebufferTexture1DEXT (will be remapped) */
+ /* _mesa_function_pool[14140]: FramebufferTexture1DEXT (will be remapped) */
"iiiii\0"
"glFramebufferTexture1D\0"
"glFramebufferTexture1DEXT\0"
"\0"
- /* _mesa_function_pool[13832]: GetCombinerOutputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[14196]: GetCombinerOutputParameterivNV (will be remapped) */
"iiip\0"
"glGetCombinerOutputParameterivNV\0"
"\0"
- /* _mesa_function_pool[13871]: MultiModeDrawArraysIBM (will be remapped) */
- "pppii\0"
- "glMultiModeDrawArraysIBM\0"
- "\0"
- /* _mesa_function_pool[13903]: PixelTexGenParameterivSGIS (will be remapped) */
+ /* _mesa_function_pool[14235]: PixelTexGenParameterivSGIS (will be remapped) */
"ip\0"
"glPixelTexGenParameterivSGIS\0"
"\0"
- /* _mesa_function_pool[13936]: TextureNormalEXT (dynamic) */
+ /* _mesa_function_pool[14268]: TextureNormalEXT (dynamic) */
"i\0"
"glTextureNormalEXT\0"
"\0"
- /* _mesa_function_pool[13958]: IndexPointerListIBM (dynamic) */
+ /* _mesa_function_pool[14290]: IndexPointerListIBM (dynamic) */
"iipi\0"
"glIndexPointerListIBM\0"
"\0"
- /* _mesa_function_pool[13986]: WeightfvARB (dynamic) */
+ /* _mesa_function_pool[14318]: WeightfvARB (dynamic) */
"ip\0"
"glWeightfvARB\0"
"\0"
- /* _mesa_function_pool[14004]: GetCombinerOutputParameterfvNV (will be remapped) */
- "iiip\0"
- "glGetCombinerOutputParameterfvNV\0"
- "\0"
- /* _mesa_function_pool[14043]: RasterPos2sv (offset 69) */
+ /* _mesa_function_pool[14336]: RasterPos2sv (offset 69) */
"p\0"
"glRasterPos2sv\0"
"\0"
- /* _mesa_function_pool[14061]: Color4ubv (offset 36) */
+ /* _mesa_function_pool[14354]: Color4ubv (offset 36) */
"p\0"
"glColor4ubv\0"
"\0"
- /* _mesa_function_pool[14076]: DrawBuffer (offset 202) */
+ /* _mesa_function_pool[14369]: DrawBuffer (offset 202) */
"i\0"
"glDrawBuffer\0"
"\0"
- /* _mesa_function_pool[14092]: TexCoord2fv (offset 105) */
+ /* _mesa_function_pool[14385]: TexCoord2fv (offset 105) */
"p\0"
"glTexCoord2fv\0"
"\0"
- /* _mesa_function_pool[14109]: WindowPos4fMESA (will be remapped) */
+ /* _mesa_function_pool[14402]: WindowPos4fMESA (will be remapped) */
"ffff\0"
"glWindowPos4fMESA\0"
"\0"
- /* _mesa_function_pool[14133]: TexCoord1sv (offset 101) */
+ /* _mesa_function_pool[14426]: TexCoord1sv (offset 101) */
"p\0"
"glTexCoord1sv\0"
"\0"
- /* _mesa_function_pool[14150]: WindowPos3dvMESA (will be remapped) */
+ /* _mesa_function_pool[14443]: WindowPos3dvMESA (will be remapped) */
"p\0"
"glWindowPos3dv\0"
"glWindowPos3dvARB\0"
"glWindowPos3dvMESA\0"
"\0"
- /* _mesa_function_pool[14205]: DepthFunc (offset 245) */
+ /* _mesa_function_pool[14498]: DepthFunc (offset 245) */
"i\0"
"glDepthFunc\0"
"\0"
- /* _mesa_function_pool[14220]: PixelMapusv (offset 253) */
+ /* _mesa_function_pool[14513]: PixelMapusv (offset 253) */
"iip\0"
"glPixelMapusv\0"
"\0"
- /* _mesa_function_pool[14239]: GetQueryObjecti64vEXT (will be remapped) */
+ /* _mesa_function_pool[14532]: GetQueryObjecti64vEXT (will be remapped) */
"iip\0"
"glGetQueryObjecti64vEXT\0"
"\0"
- /* _mesa_function_pool[14268]: MultiTexCoord1dARB (offset 376) */
+ /* _mesa_function_pool[14561]: MultiTexCoord1dARB (offset 376) */
"id\0"
"glMultiTexCoord1d\0"
"glMultiTexCoord1dARB\0"
"\0"
- /* _mesa_function_pool[14311]: PointParameterivNV (will be remapped) */
+ /* _mesa_function_pool[14604]: PointParameterivNV (will be remapped) */
"ip\0"
"glPointParameteriv\0"
"glPointParameterivNV\0"
"\0"
- /* _mesa_function_pool[14355]: IsSampler (will be remapped) */
+ /* _mesa_function_pool[14648]: IsSampler (will be remapped) */
"i\0"
"glIsSampler\0"
"\0"
- /* _mesa_function_pool[14370]: BlendFunc (offset 241) */
+ /* _mesa_function_pool[14663]: BlendFunc (offset 241) */
"ii\0"
"glBlendFunc\0"
"\0"
- /* _mesa_function_pool[14386]: EndTransformFeedbackEXT (will be remapped) */
+ /* _mesa_function_pool[14679]: EndTransformFeedbackEXT (will be remapped) */
"\0"
"glEndTransformFeedbackEXT\0"
"glEndTransformFeedback\0"
"\0"
- /* _mesa_function_pool[14437]: Uniform2fvARB (will be remapped) */
+ /* _mesa_function_pool[14730]: Uniform2fvARB (will be remapped) */
"iip\0"
"glUniform2fv\0"
"glUniform2fvARB\0"
"\0"
- /* _mesa_function_pool[14471]: BufferParameteriAPPLE (will be remapped) */
+ /* _mesa_function_pool[14764]: BufferParameteriAPPLE (will be remapped) */
"iii\0"
"glBufferParameteriAPPLE\0"
"\0"
- /* _mesa_function_pool[14500]: MultiTexCoord3dvARB (offset 393) */
+ /* _mesa_function_pool[14793]: MultiTexCoord3dvARB (offset 393) */
"ip\0"
"glMultiTexCoord3dv\0"
"glMultiTexCoord3dvARB\0"
"\0"
- /* _mesa_function_pool[14545]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[14838]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[14601]: DeleteObjectARB (will be remapped) */
+ /* _mesa_function_pool[14894]: DeleteObjectARB (will be remapped) */
"i\0"
"glDeleteObjectARB\0"
"\0"
- /* _mesa_function_pool[14622]: GetShaderPrecisionFormat (will be remapped) */
+ /* _mesa_function_pool[14915]: GetShaderPrecisionFormat (will be remapped) */
"iipp\0"
"glGetShaderPrecisionFormat\0"
"\0"
- /* _mesa_function_pool[14655]: MatrixIndexPointerARB (dynamic) */
+ /* _mesa_function_pool[14948]: MatrixIndexPointerARB (dynamic) */
"iiip\0"
"glMatrixIndexPointerARB\0"
"\0"
- /* _mesa_function_pool[14685]: ProgramNamedParameter4dvNV (will be remapped) */
+ /* _mesa_function_pool[14978]: ProgramNamedParameter4dvNV (will be remapped) */
"iipp\0"
"glProgramNamedParameter4dvNV\0"
"\0"
- /* _mesa_function_pool[14720]: Tangent3fvEXT (dynamic) */
+ /* _mesa_function_pool[15013]: Tangent3fvEXT (dynamic) */
"p\0"
"glTangent3fvEXT\0"
"\0"
- /* _mesa_function_pool[14739]: Flush (offset 217) */
+ /* _mesa_function_pool[15032]: Flush (offset 217) */
"\0"
"glFlush\0"
"\0"
- /* _mesa_function_pool[14749]: Color4uiv (offset 38) */
+ /* _mesa_function_pool[15042]: Color4uiv (offset 38) */
"p\0"
"glColor4uiv\0"
"\0"
- /* _mesa_function_pool[14764]: VertexAttribI4iEXT (will be remapped) */
+ /* _mesa_function_pool[15057]: VertexAttribI4iEXT (will be remapped) */
"iiiii\0"
"glVertexAttribI4iEXT\0"
"glVertexAttribI4i\0"
"\0"
- /* _mesa_function_pool[14810]: GenVertexArrays (will be remapped) */
+ /* _mesa_function_pool[15103]: GenVertexArrays (will be remapped) */
"ip\0"
"glGenVertexArrays\0"
"\0"
- /* _mesa_function_pool[14832]: Uniform3uivEXT (will be remapped) */
+ /* _mesa_function_pool[15125]: Uniform3uivEXT (will be remapped) */
"iip\0"
"glUniform3uivEXT\0"
"glUniform3uiv\0"
"\0"
- /* _mesa_function_pool[14868]: RasterPos3sv (offset 77) */
+ /* _mesa_function_pool[15161]: RasterPos3sv (offset 77) */
"p\0"
"glRasterPos3sv\0"
"\0"
- /* _mesa_function_pool[14886]: BindFramebufferEXT (will be remapped) */
+ /* _mesa_function_pool[15179]: BindFramebufferEXT (will be remapped) */
"ii\0"
"glBindFramebuffer\0"
"glBindFramebufferEXT\0"
"\0"
- /* _mesa_function_pool[14929]: ReferencePlaneSGIX (dynamic) */
+ /* _mesa_function_pool[15222]: ReferencePlaneSGIX (dynamic) */
"p\0"
"glReferencePlaneSGIX\0"
"\0"
- /* _mesa_function_pool[14953]: PushAttrib (offset 219) */
+ /* _mesa_function_pool[15246]: PushAttrib (offset 219) */
"i\0"
"glPushAttrib\0"
"\0"
- /* _mesa_function_pool[14969]: RasterPos2i (offset 66) */
+ /* _mesa_function_pool[15262]: RasterPos2i (offset 66) */
"ii\0"
"glRasterPos2i\0"
"\0"
- /* _mesa_function_pool[14987]: ValidateProgramARB (will be remapped) */
+ /* _mesa_function_pool[15280]: ValidateProgramARB (will be remapped) */
"i\0"
"glValidateProgram\0"
"glValidateProgramARB\0"
"\0"
- /* _mesa_function_pool[15029]: TexParameteriv (offset 181) */
+ /* _mesa_function_pool[15322]: TexParameteriv (offset 181) */
"iip\0"
"glTexParameteriv\0"
"\0"
- /* _mesa_function_pool[15051]: UnlockArraysEXT (will be remapped) */
+ /* _mesa_function_pool[15344]: UnlockArraysEXT (will be remapped) */
"\0"
"glUnlockArraysEXT\0"
"\0"
- /* _mesa_function_pool[15071]: TexCoord2fColor3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[15364]: TexCoord2fColor3fVertex3fSUN (dynamic) */
"ffffffff\0"
"glTexCoord2fColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[15112]: WindowPos3fvMESA (will be remapped) */
+ /* _mesa_function_pool[15405]: WindowPos3fvMESA (will be remapped) */
"p\0"
"glWindowPos3fv\0"
"glWindowPos3fvARB\0"
"glWindowPos3fvMESA\0"
"\0"
- /* _mesa_function_pool[15167]: RasterPos2f (offset 64) */
+ /* _mesa_function_pool[15460]: RasterPos2f (offset 64) */
"ff\0"
"glRasterPos2f\0"
"\0"
- /* _mesa_function_pool[15185]: VertexAttrib1svNV (will be remapped) */
+ /* _mesa_function_pool[15478]: VertexAttrib1svNV (will be remapped) */
"ip\0"
"glVertexAttrib1svNV\0"
"\0"
- /* _mesa_function_pool[15209]: RasterPos2d (offset 62) */
+ /* _mesa_function_pool[15502]: RasterPos2d (offset 62) */
"dd\0"
"glRasterPos2d\0"
"\0"
- /* _mesa_function_pool[15227]: RasterPos3fv (offset 73) */
+ /* _mesa_function_pool[15520]: RasterPos3fv (offset 73) */
"p\0"
"glRasterPos3fv\0"
"\0"
- /* _mesa_function_pool[15245]: CopyTexSubImage3D (offset 373) */
+ /* _mesa_function_pool[15538]: CopyTexSubImage3D (offset 373) */
"iiiiiiiii\0"
"glCopyTexSubImage3D\0"
"glCopyTexSubImage3DEXT\0"
"\0"
- /* _mesa_function_pool[15299]: VertexAttrib2dARB (will be remapped) */
+ /* _mesa_function_pool[15592]: VertexAttrib2dARB (will be remapped) */
"idd\0"
"glVertexAttrib2d\0"
"glVertexAttrib2dARB\0"
"\0"
- /* _mesa_function_pool[15341]: Color4ub (offset 35) */
+ /* _mesa_function_pool[15634]: Color4ub (offset 35) */
"iiii\0"
"glColor4ub\0"
"\0"
- /* _mesa_function_pool[15358]: GetInteger64v (will be remapped) */
+ /* _mesa_function_pool[15651]: GetInteger64v (will be remapped) */
"ip\0"
"glGetInteger64v\0"
"\0"
- /* _mesa_function_pool[15378]: TextureColorMaskSGIS (dynamic) */
+ /* _mesa_function_pool[15671]: TextureColorMaskSGIS (dynamic) */
"iiii\0"
"glTextureColorMaskSGIS\0"
"\0"
- /* _mesa_function_pool[15407]: RasterPos2s (offset 68) */
+ /* _mesa_function_pool[15700]: RasterPos2s (offset 68) */
"ii\0"
"glRasterPos2s\0"
"\0"
- /* _mesa_function_pool[15425]: GetColorTable (offset 343) */
+ /* _mesa_function_pool[15718]: GetColorTable (offset 343) */
"iiip\0"
"glGetColorTable\0"
"glGetColorTableSGI\0"
"glGetColorTableEXT\0"
"\0"
- /* _mesa_function_pool[15485]: SelectBuffer (offset 195) */
+ /* _mesa_function_pool[15778]: SelectBuffer (offset 195) */
"ip\0"
"glSelectBuffer\0"
"\0"
- /* _mesa_function_pool[15504]: Indexiv (offset 49) */
+ /* _mesa_function_pool[15797]: Indexiv (offset 49) */
"p\0"
"glIndexiv\0"
"\0"
- /* _mesa_function_pool[15517]: TexCoord3i (offset 114) */
+ /* _mesa_function_pool[15810]: TexCoord3i (offset 114) */
"iii\0"
"glTexCoord3i\0"
"\0"
- /* _mesa_function_pool[15535]: CopyColorTable (offset 342) */
+ /* _mesa_function_pool[15828]: CopyColorTable (offset 342) */
"iiiii\0"
"glCopyColorTable\0"
"glCopyColorTableSGI\0"
"\0"
- /* _mesa_function_pool[15579]: GetHistogramParameterfv (offset 362) */
+ /* _mesa_function_pool[15872]: GetHistogramParameterfv (offset 362) */
"iip\0"
"glGetHistogramParameterfv\0"
"glGetHistogramParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[15639]: Frustum (offset 289) */
+ /* _mesa_function_pool[15932]: Frustum (offset 289) */
"dddddd\0"
"glFrustum\0"
"\0"
- /* _mesa_function_pool[15657]: GetString (offset 275) */
+ /* _mesa_function_pool[15950]: GetString (offset 275) */
"i\0"
"glGetString\0"
"\0"
- /* _mesa_function_pool[15672]: ColorPointervINTEL (dynamic) */
+ /* _mesa_function_pool[15965]: ColorPointervINTEL (dynamic) */
"iip\0"
"glColorPointervINTEL\0"
"\0"
- /* _mesa_function_pool[15698]: TexEnvf (offset 184) */
+ /* _mesa_function_pool[15991]: TexEnvf (offset 184) */
"iif\0"
"glTexEnvf\0"
"\0"
- /* _mesa_function_pool[15713]: TexCoord3d (offset 110) */
+ /* _mesa_function_pool[16006]: TexCoord3d (offset 110) */
"ddd\0"
"glTexCoord3d\0"
"\0"
- /* _mesa_function_pool[15731]: AlphaFragmentOp1ATI (will be remapped) */
+ /* _mesa_function_pool[16024]: AlphaFragmentOp1ATI (will be remapped) */
"iiiiii\0"
"glAlphaFragmentOp1ATI\0"
"\0"
- /* _mesa_function_pool[15761]: TexCoord3f (offset 112) */
+ /* _mesa_function_pool[16054]: TexCoord3f (offset 112) */
"fff\0"
"glTexCoord3f\0"
"\0"
- /* _mesa_function_pool[15779]: MultiTexCoord3ivARB (offset 397) */
+ /* _mesa_function_pool[16072]: MultiTexCoord3ivARB (offset 397) */
"ip\0"
"glMultiTexCoord3iv\0"
"glMultiTexCoord3ivARB\0"
"\0"
- /* _mesa_function_pool[15824]: MultiTexCoord2sARB (offset 390) */
+ /* _mesa_function_pool[16117]: MultiTexCoord2sARB (offset 390) */
"iii\0"
"glMultiTexCoord2s\0"
"glMultiTexCoord2sARB\0"
"\0"
- /* _mesa_function_pool[15868]: VertexAttrib1dvARB (will be remapped) */
+ /* _mesa_function_pool[16161]: VertexAttrib1dvARB (will be remapped) */
"ip\0"
"glVertexAttrib1dv\0"
"glVertexAttrib1dvARB\0"
"\0"
- /* _mesa_function_pool[15911]: DeleteTextures (offset 327) */
+ /* _mesa_function_pool[16204]: GetnHistogramARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnHistogramARB\0"
+ "\0"
+ /* _mesa_function_pool[16231]: DeleteTextures (offset 327) */
"ip\0"
"glDeleteTextures\0"
"glDeleteTexturesEXT\0"
"\0"
- /* _mesa_function_pool[15952]: TexCoordPointerEXT (will be remapped) */
+ /* _mesa_function_pool[16272]: TexCoordPointerEXT (will be remapped) */
"iiiip\0"
"glTexCoordPointerEXT\0"
"\0"
- /* _mesa_function_pool[15980]: TexSubImage4DSGIS (dynamic) */
+ /* _mesa_function_pool[16300]: TexSubImage4DSGIS (dynamic) */
"iiiiiiiiiiiip\0"
"glTexSubImage4DSGIS\0"
"\0"
- /* _mesa_function_pool[16015]: TexCoord3s (offset 116) */
+ /* _mesa_function_pool[16335]: TexCoord3s (offset 116) */
"iii\0"
"glTexCoord3s\0"
"\0"
- /* _mesa_function_pool[16033]: GetTexLevelParameteriv (offset 285) */
+ /* _mesa_function_pool[16353]: GetTexLevelParameteriv (offset 285) */
"iiip\0"
"glGetTexLevelParameteriv\0"
"\0"
- /* _mesa_function_pool[16064]: CombinerStageParameterfvNV (dynamic) */
+ /* _mesa_function_pool[16384]: CombinerStageParameterfvNV (dynamic) */
"iip\0"
"glCombinerStageParameterfvNV\0"
"\0"
- /* _mesa_function_pool[16098]: StopInstrumentsSGIX (dynamic) */
+ /* _mesa_function_pool[16418]: StopInstrumentsSGIX (dynamic) */
"i\0"
"glStopInstrumentsSGIX\0"
"\0"
- /* _mesa_function_pool[16123]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */
+ /* _mesa_function_pool[16443]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */
"fffffffffffffff\0"
"glTexCoord4fColor4fNormal3fVertex4fSUN\0"
"\0"
- /* _mesa_function_pool[16179]: ClearAccum (offset 204) */
+ /* _mesa_function_pool[16499]: ClearAccum (offset 204) */
"ffff\0"
"glClearAccum\0"
"\0"
- /* _mesa_function_pool[16198]: DeformSGIX (dynamic) */
+ /* _mesa_function_pool[16518]: DeformSGIX (dynamic) */
"i\0"
"glDeformSGIX\0"
"\0"
- /* _mesa_function_pool[16214]: GetVertexAttribfvARB (will be remapped) */
+ /* _mesa_function_pool[16534]: GetVertexAttribfvARB (will be remapped) */
"iip\0"
"glGetVertexAttribfv\0"
"glGetVertexAttribfvARB\0"
"\0"
- /* _mesa_function_pool[16262]: SecondaryColor3ivEXT (will be remapped) */
+ /* _mesa_function_pool[16582]: SecondaryColor3ivEXT (will be remapped) */
"p\0"
"glSecondaryColor3iv\0"
"glSecondaryColor3ivEXT\0"
"\0"
- /* _mesa_function_pool[16308]: TexCoord4iv (offset 123) */
+ /* _mesa_function_pool[16628]: TexCoord4iv (offset 123) */
"p\0"
"glTexCoord4iv\0"
"\0"
- /* _mesa_function_pool[16325]: VertexAttribI4uiEXT (will be remapped) */
+ /* _mesa_function_pool[16645]: VertexAttribI4uiEXT (will be remapped) */
"iiiii\0"
"glVertexAttribI4uiEXT\0"
"glVertexAttribI4ui\0"
"\0"
- /* _mesa_function_pool[16373]: GetFragmentMaterialfvSGIX (dynamic) */
+ /* _mesa_function_pool[16693]: GetFragmentMaterialfvSGIX (dynamic) */
"iip\0"
"glGetFragmentMaterialfvSGIX\0"
"\0"
- /* _mesa_function_pool[16406]: UniformMatrix4x2fv (will be remapped) */
+ /* _mesa_function_pool[16726]: UniformMatrix4x2fv (will be remapped) */
"iiip\0"
"glUniformMatrix4x2fv\0"
"\0"
- /* _mesa_function_pool[16433]: GetDetailTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[16753]: GetDetailTexFuncSGIS (dynamic) */
"ip\0"
"glGetDetailTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[16460]: GetCombinerStageParameterfvNV (dynamic) */
+ /* _mesa_function_pool[16780]: GetCombinerStageParameterfvNV (dynamic) */
"iip\0"
"glGetCombinerStageParameterfvNV\0"
"\0"
- /* _mesa_function_pool[16497]: SamplerParameterIiv (will be remapped) */
+ /* _mesa_function_pool[16817]: SamplerParameterIiv (will be remapped) */
"iip\0"
"glSamplerParameterIiv\0"
"\0"
- /* _mesa_function_pool[16524]: PolygonOffset (offset 319) */
+ /* _mesa_function_pool[16844]: PolygonOffset (offset 319) */
"ff\0"
"glPolygonOffset\0"
"\0"
- /* _mesa_function_pool[16544]: BindVertexArray (will be remapped) */
+ /* _mesa_function_pool[16864]: BindVertexArray (will be remapped) */
"i\0"
"glBindVertexArray\0"
"\0"
- /* _mesa_function_pool[16565]: Color4ubVertex2fvSUN (dynamic) */
+ /* _mesa_function_pool[16885]: Color4ubVertex2fvSUN (dynamic) */
"pp\0"
"glColor4ubVertex2fvSUN\0"
"\0"
- /* _mesa_function_pool[16592]: Rectd (offset 86) */
+ /* _mesa_function_pool[16912]: Rectd (offset 86) */
"dddd\0"
"glRectd\0"
"\0"
- /* _mesa_function_pool[16606]: TexFilterFuncSGIS (dynamic) */
+ /* _mesa_function_pool[16926]: TexFilterFuncSGIS (dynamic) */
"iiip\0"
"glTexFilterFuncSGIS\0"
"\0"
- /* _mesa_function_pool[16632]: TextureBarrierNV (will be remapped) */
+ /* _mesa_function_pool[16952]: TextureBarrierNV (will be remapped) */
"\0"
"glTextureBarrierNV\0"
"\0"
- /* _mesa_function_pool[16653]: SamplerParameterfv (will be remapped) */
+ /* _mesa_function_pool[16973]: SamplerParameterfv (will be remapped) */
"iip\0"
"glSamplerParameterfv\0"
"\0"
- /* _mesa_function_pool[16679]: VertexAttribI4ubvEXT (will be remapped) */
- "ip\0"
- "glVertexAttribI4ubvEXT\0"
- "glVertexAttribI4ubv\0"
+ /* _mesa_function_pool[16999]: ColorMaskIndexedEXT (will be remapped) */
+ "iiiii\0"
+ "glColorMaskIndexedEXT\0"
+ "glColorMaski\0"
"\0"
- /* _mesa_function_pool[16726]: GetAttribLocationARB (will be remapped) */
+ /* _mesa_function_pool[17041]: GetAttribLocationARB (will be remapped) */
"ip\0"
"glGetAttribLocation\0"
"glGetAttribLocationARB\0"
"\0"
- /* _mesa_function_pool[16773]: RasterPos3i (offset 74) */
+ /* _mesa_function_pool[17088]: RasterPos3i (offset 74) */
"iii\0"
"glRasterPos3i\0"
"\0"
- /* _mesa_function_pool[16792]: BlendEquationSeparateiARB (will be remapped) */
- "iii\0"
- "glBlendEquationSeparateiARB\0"
- "\0"
- /* _mesa_function_pool[16825]: VertexAttrib4ubvARB (will be remapped) */
+ /* _mesa_function_pool[17107]: VertexAttrib4ubvARB (will be remapped) */
"ip\0"
"glVertexAttrib4ubv\0"
"glVertexAttrib4ubvARB\0"
"\0"
- /* _mesa_function_pool[16870]: DetailTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[17152]: DetailTexFuncSGIS (dynamic) */
"iip\0"
"glDetailTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[16895]: Normal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[17177]: Normal3fVertex3fSUN (dynamic) */
"ffffff\0"
"glNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[16925]: CopyTexImage2D (offset 324) */
+ /* _mesa_function_pool[17207]: CopyTexImage2D (offset 324) */
"iiiiiiii\0"
"glCopyTexImage2D\0"
"glCopyTexImage2DEXT\0"
"\0"
- /* _mesa_function_pool[16972]: GetBufferPointervARB (will be remapped) */
+ /* _mesa_function_pool[17254]: GetBufferPointervARB (will be remapped) */
"iip\0"
"glGetBufferPointerv\0"
"glGetBufferPointervARB\0"
"\0"
- /* _mesa_function_pool[17020]: ProgramEnvParameter4fARB (will be remapped) */
+ /* _mesa_function_pool[17302]: ProgramEnvParameter4fARB (will be remapped) */
"iiffff\0"
"glProgramEnvParameter4fARB\0"
"glProgramParameter4fNV\0"
"\0"
- /* _mesa_function_pool[17078]: Uniform3ivARB (will be remapped) */
+ /* _mesa_function_pool[17360]: Uniform3ivARB (will be remapped) */
"iip\0"
"glUniform3iv\0"
"glUniform3ivARB\0"
"\0"
- /* _mesa_function_pool[17112]: Lightfv (offset 160) */
+ /* _mesa_function_pool[17394]: Lightfv (offset 160) */
"iip\0"
"glLightfv\0"
"\0"
- /* _mesa_function_pool[17127]: PrimitiveRestartIndexNV (will be remapped) */
+ /* _mesa_function_pool[17409]: PrimitiveRestartIndexNV (will be remapped) */
"i\0"
"glPrimitiveRestartIndexNV\0"
"glPrimitiveRestartIndex\0"
"\0"
- /* _mesa_function_pool[17180]: ClearDepth (offset 208) */
+ /* _mesa_function_pool[17462]: ClearDepth (offset 208) */
"d\0"
"glClearDepth\0"
"\0"
- /* _mesa_function_pool[17196]: GetFenceivNV (will be remapped) */
+ /* _mesa_function_pool[17478]: GetFenceivNV (will be remapped) */
"iip\0"
"glGetFenceivNV\0"
"\0"
- /* _mesa_function_pool[17216]: WindowPos4dvMESA (will be remapped) */
+ /* _mesa_function_pool[17498]: WindowPos4dvMESA (will be remapped) */
"p\0"
"glWindowPos4dvMESA\0"
"\0"
- /* _mesa_function_pool[17238]: ColorSubTable (offset 346) */
+ /* _mesa_function_pool[17520]: ColorSubTable (offset 346) */
"iiiiip\0"
"glColorSubTable\0"
"glColorSubTableEXT\0"
"\0"
- /* _mesa_function_pool[17281]: Color4fv (offset 30) */
+ /* _mesa_function_pool[17563]: Color4fv (offset 30) */
"p\0"
"glColor4fv\0"
"\0"
- /* _mesa_function_pool[17295]: MultiTexCoord4ivARB (offset 405) */
+ /* _mesa_function_pool[17577]: MultiTexCoord4ivARB (offset 405) */
"ip\0"
"glMultiTexCoord4iv\0"
"glMultiTexCoord4ivARB\0"
"\0"
- /* _mesa_function_pool[17340]: ProgramLocalParameters4fvEXT (will be remapped) */
+ /* _mesa_function_pool[17622]: GetnMinmaxARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnMinmaxARB\0"
+ "\0"
+ /* _mesa_function_pool[17646]: ProgramLocalParameters4fvEXT (will be remapped) */
"iiip\0"
"glProgramLocalParameters4fvEXT\0"
"\0"
- /* _mesa_function_pool[17377]: ColorPointer (offset 308) */
+ /* _mesa_function_pool[17683]: ColorPointer (offset 308) */
"iiip\0"
"glColorPointer\0"
"\0"
- /* _mesa_function_pool[17398]: Rects (offset 92) */
+ /* _mesa_function_pool[17704]: Rects (offset 92) */
"iiii\0"
"glRects\0"
"\0"
- /* _mesa_function_pool[17412]: GetMapAttribParameterfvNV (dynamic) */
+ /* _mesa_function_pool[17718]: GetMapAttribParameterfvNV (dynamic) */
"iiip\0"
"glGetMapAttribParameterfvNV\0"
"\0"
- /* _mesa_function_pool[17446]: CreateShaderProgramEXT (will be remapped) */
+ /* _mesa_function_pool[17752]: CreateShaderProgramEXT (will be remapped) */
"ip\0"
"glCreateShaderProgramEXT\0"
"\0"
- /* _mesa_function_pool[17475]: ActiveProgramEXT (will be remapped) */
+ /* _mesa_function_pool[17781]: ActiveProgramEXT (will be remapped) */
"i\0"
"glActiveProgramEXT\0"
"\0"
- /* _mesa_function_pool[17497]: Lightiv (offset 162) */
+ /* _mesa_function_pool[17803]: Lightiv (offset 162) */
"iip\0"
"glLightiv\0"
"\0"
- /* _mesa_function_pool[17512]: VertexAttrib4sARB (will be remapped) */
+ /* _mesa_function_pool[17818]: VertexAttrib4sARB (will be remapped) */
"iiiii\0"
"glVertexAttrib4s\0"
"glVertexAttrib4sARB\0"
"\0"
- /* _mesa_function_pool[17556]: GetQueryObjectuivARB (will be remapped) */
+ /* _mesa_function_pool[17862]: GetQueryObjectuivARB (will be remapped) */
"iip\0"
"glGetQueryObjectuiv\0"
"glGetQueryObjectuivARB\0"
"\0"
- /* _mesa_function_pool[17604]: GetTexParameteriv (offset 283) */
+ /* _mesa_function_pool[17910]: GetTexParameteriv (offset 283) */
"iip\0"
"glGetTexParameteriv\0"
"\0"
- /* _mesa_function_pool[17629]: MapParameterivNV (dynamic) */
+ /* _mesa_function_pool[17935]: MapParameterivNV (dynamic) */
"iip\0"
"glMapParameterivNV\0"
"\0"
- /* _mesa_function_pool[17653]: GenRenderbuffersEXT (will be remapped) */
+ /* _mesa_function_pool[17959]: GenRenderbuffersEXT (will be remapped) */
"ip\0"
"glGenRenderbuffers\0"
"glGenRenderbuffersEXT\0"
"\0"
- /* _mesa_function_pool[17698]: ClearBufferfv (will be remapped) */
+ /* _mesa_function_pool[18004]: ClearBufferfv (will be remapped) */
"iip\0"
"glClearBufferfv\0"
"\0"
- /* _mesa_function_pool[17719]: VertexAttrib2dvARB (will be remapped) */
+ /* _mesa_function_pool[18025]: VertexAttrib2dvARB (will be remapped) */
"ip\0"
"glVertexAttrib2dv\0"
"glVertexAttrib2dvARB\0"
"\0"
- /* _mesa_function_pool[17762]: EdgeFlagPointerEXT (will be remapped) */
+ /* _mesa_function_pool[18068]: EdgeFlagPointerEXT (will be remapped) */
"iip\0"
"glEdgeFlagPointerEXT\0"
"\0"
- /* _mesa_function_pool[17788]: VertexAttribs2svNV (will be remapped) */
+ /* _mesa_function_pool[18094]: VertexAttribs2svNV (will be remapped) */
"iip\0"
"glVertexAttribs2svNV\0"
"\0"
- /* _mesa_function_pool[17814]: WeightbvARB (dynamic) */
+ /* _mesa_function_pool[18120]: WeightbvARB (dynamic) */
"ip\0"
"glWeightbvARB\0"
"\0"
- /* _mesa_function_pool[17832]: VertexAttrib2fvARB (will be remapped) */
+ /* _mesa_function_pool[18138]: VertexAttrib2fvARB (will be remapped) */
"ip\0"
"glVertexAttrib2fv\0"
"glVertexAttrib2fvARB\0"
"\0"
- /* _mesa_function_pool[17875]: GetBufferParameterivARB (will be remapped) */
+ /* _mesa_function_pool[18181]: GetBufferParameterivARB (will be remapped) */
"iip\0"
"glGetBufferParameteriv\0"
"glGetBufferParameterivARB\0"
"\0"
- /* _mesa_function_pool[17929]: Rectdv (offset 87) */
+ /* _mesa_function_pool[18235]: Rectdv (offset 87) */
"pp\0"
"glRectdv\0"
"\0"
- /* _mesa_function_pool[17942]: ListParameteriSGIX (dynamic) */
+ /* _mesa_function_pool[18248]: ListParameteriSGIX (dynamic) */
"iii\0"
"glListParameteriSGIX\0"
"\0"
- /* _mesa_function_pool[17968]: BlendEquationiARB (will be remapped) */
+ /* _mesa_function_pool[18274]: BlendEquationiARB (will be remapped) */
"ii\0"
"glBlendEquationiARB\0"
+ "glBlendEquationIndexedAMD\0"
"\0"
- /* _mesa_function_pool[17992]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[18324]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */
"iffffffffff\0"
"glReplacementCodeuiColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[18051]: InstrumentsBufferSGIX (dynamic) */
+ /* _mesa_function_pool[18383]: InstrumentsBufferSGIX (dynamic) */
"ip\0"
"glInstrumentsBufferSGIX\0"
"\0"
- /* _mesa_function_pool[18079]: VertexAttrib4NivARB (will be remapped) */
+ /* _mesa_function_pool[18411]: VertexAttrib4NivARB (will be remapped) */
"ip\0"
"glVertexAttrib4Niv\0"
"glVertexAttrib4NivARB\0"
"\0"
- /* _mesa_function_pool[18124]: DrawArraysInstancedARB (will be remapped) */
+ /* _mesa_function_pool[18456]: DrawArraysInstancedARB (will be remapped) */
"iiii\0"
"glDrawArraysInstancedARB\0"
"glDrawArraysInstancedEXT\0"
"glDrawArraysInstanced\0"
"\0"
- /* _mesa_function_pool[18202]: GetAttachedShaders (will be remapped) */
+ /* _mesa_function_pool[18534]: GetAttachedShaders (will be remapped) */
"iipp\0"
"glGetAttachedShaders\0"
"\0"
- /* _mesa_function_pool[18229]: GenVertexArraysAPPLE (will be remapped) */
+ /* _mesa_function_pool[18561]: GenVertexArraysAPPLE (will be remapped) */
"ip\0"
"glGenVertexArraysAPPLE\0"
"\0"
- /* _mesa_function_pool[18256]: ClearBufferfi (will be remapped) */
+ /* _mesa_function_pool[18588]: ClearBufferfi (will be remapped) */
"iifi\0"
"glClearBufferfi\0"
"\0"
- /* _mesa_function_pool[18278]: Materialiv (offset 172) */
+ /* _mesa_function_pool[18610]: Materialiv (offset 172) */
"iip\0"
"glMaterialiv\0"
"\0"
- /* _mesa_function_pool[18296]: PushClientAttrib (offset 335) */
+ /* _mesa_function_pool[18628]: PushClientAttrib (offset 335) */
"i\0"
"glPushClientAttrib\0"
"\0"
- /* _mesa_function_pool[18318]: SamplerParameteriv (will be remapped) */
+ /* _mesa_function_pool[18650]: SamplerParameteriv (will be remapped) */
"iip\0"
"glSamplerParameteriv\0"
"\0"
- /* _mesa_function_pool[18344]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[18676]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
"pppp\0"
"glTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[18390]: WindowPos2iMESA (will be remapped) */
+ /* _mesa_function_pool[18722]: WindowPos2iMESA (will be remapped) */
"ii\0"
"glWindowPos2i\0"
"glWindowPos2iARB\0"
"glWindowPos2iMESA\0"
"\0"
- /* _mesa_function_pool[18443]: SampleMaskSGIS (will be remapped) */
+ /* _mesa_function_pool[18775]: SampleMaskSGIS (will be remapped) */
"fi\0"
"glSampleMaskSGIS\0"
"glSampleMaskEXT\0"
"\0"
- /* _mesa_function_pool[18480]: SecondaryColor3fvEXT (will be remapped) */
+ /* _mesa_function_pool[18812]: SecondaryColor3fvEXT (will be remapped) */
"p\0"
"glSecondaryColor3fv\0"
"glSecondaryColor3fvEXT\0"
"\0"
- /* _mesa_function_pool[18526]: PolygonMode (offset 174) */
+ /* _mesa_function_pool[18858]: PolygonMode (offset 174) */
"ii\0"
"glPolygonMode\0"
"\0"
- /* _mesa_function_pool[18544]: CompressedTexSubImage1DARB (will be remapped) */
+ /* _mesa_function_pool[18876]: CompressedTexSubImage1DARB (will be remapped) */
"iiiiiip\0"
"glCompressedTexSubImage1D\0"
"glCompressedTexSubImage1DARB\0"
"\0"
- /* _mesa_function_pool[18608]: VertexAttribI1iEXT (will be remapped) */
+ /* _mesa_function_pool[18940]: VertexAttribI1iEXT (will be remapped) */
"ii\0"
"glVertexAttribI1iEXT\0"
"glVertexAttribI1i\0"
"\0"
- /* _mesa_function_pool[18651]: TexCoord2fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[18983]: TexCoord2fNormal3fVertex3fSUN (dynamic) */
"ffffffff\0"
"glTexCoord2fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[18693]: GetVertexAttribivNV (will be remapped) */
+ /* _mesa_function_pool[19025]: GetVertexAttribivNV (will be remapped) */
"iip\0"
"glGetVertexAttribivNV\0"
"\0"
- /* _mesa_function_pool[18720]: GetProgramStringARB (will be remapped) */
+ /* _mesa_function_pool[19052]: GetProgramStringARB (will be remapped) */
"iip\0"
"glGetProgramStringARB\0"
"\0"
- /* _mesa_function_pool[18747]: VertexAttribIPointerEXT (will be remapped) */
+ /* _mesa_function_pool[19079]: GetnUniformdvARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformdvARB\0"
+ "\0"
+ /* _mesa_function_pool[19104]: VertexAttribIPointerEXT (will be remapped) */
"iiiip\0"
"glVertexAttribIPointerEXT\0"
"glVertexAttribIPointer\0"
"\0"
- /* _mesa_function_pool[18803]: TexBumpParameterfvATI (will be remapped) */
+ /* _mesa_function_pool[19160]: TexBumpParameterfvATI (will be remapped) */
"ip\0"
"glTexBumpParameterfvATI\0"
"\0"
- /* _mesa_function_pool[18831]: Tangent3ivEXT (dynamic) */
+ /* _mesa_function_pool[19188]: Tangent3ivEXT (dynamic) */
"p\0"
"glTangent3ivEXT\0"
"\0"
- /* _mesa_function_pool[18850]: CompileShaderARB (will be remapped) */
+ /* _mesa_function_pool[19207]: CompileShaderARB (will be remapped) */
"i\0"
"glCompileShader\0"
"glCompileShaderARB\0"
"\0"
- /* _mesa_function_pool[18888]: DeleteShader (will be remapped) */
+ /* _mesa_function_pool[19245]: DeleteShader (will be remapped) */
"i\0"
"glDeleteShader\0"
"\0"
- /* _mesa_function_pool[18906]: DisableClientState (offset 309) */
+ /* _mesa_function_pool[19263]: DisableClientState (offset 309) */
"i\0"
"glDisableClientState\0"
"\0"
- /* _mesa_function_pool[18930]: TexGeni (offset 192) */
+ /* _mesa_function_pool[19287]: TexGeni (offset 192) */
"iii\0"
"glTexGeni\0"
"\0"
- /* _mesa_function_pool[18945]: TexGenf (offset 190) */
+ /* _mesa_function_pool[19302]: TexGenf (offset 190) */
"iif\0"
"glTexGenf\0"
"\0"
- /* _mesa_function_pool[18960]: Uniform3fARB (will be remapped) */
+ /* _mesa_function_pool[19317]: Uniform3fARB (will be remapped) */
"ifff\0"
"glUniform3f\0"
"glUniform3fARB\0"
"\0"
- /* _mesa_function_pool[18993]: TexGend (offset 188) */
+ /* _mesa_function_pool[19350]: TexGend (offset 188) */
"iid\0"
"glTexGend\0"
"\0"
- /* _mesa_function_pool[19008]: ListParameterfvSGIX (dynamic) */
+ /* _mesa_function_pool[19365]: ListParameterfvSGIX (dynamic) */
"iip\0"
"glListParameterfvSGIX\0"
"\0"
- /* _mesa_function_pool[19035]: GetPolygonStipple (offset 274) */
+ /* _mesa_function_pool[19392]: GetPolygonStipple (offset 274) */
"p\0"
"glGetPolygonStipple\0"
"\0"
- /* _mesa_function_pool[19058]: Tangent3dvEXT (dynamic) */
+ /* _mesa_function_pool[19415]: Tangent3dvEXT (dynamic) */
"p\0"
"glTangent3dvEXT\0"
"\0"
- /* _mesa_function_pool[19077]: BindBufferOffsetEXT (will be remapped) */
+ /* _mesa_function_pool[19434]: BindBufferOffsetEXT (will be remapped) */
"iiii\0"
"glBindBufferOffsetEXT\0"
"\0"
- /* _mesa_function_pool[19105]: WindowPos3sMESA (will be remapped) */
+ /* _mesa_function_pool[19462]: WindowPos3sMESA (will be remapped) */
"iii\0"
"glWindowPos3s\0"
"glWindowPos3sARB\0"
"glWindowPos3sMESA\0"
"\0"
- /* _mesa_function_pool[19159]: VertexAttrib2svNV (will be remapped) */
+ /* _mesa_function_pool[19516]: VertexAttrib2svNV (will be remapped) */
"ip\0"
"glVertexAttrib2svNV\0"
"\0"
- /* _mesa_function_pool[19183]: DisableIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[19540]: DisableIndexedEXT (will be remapped) */
"ii\0"
"glDisableIndexedEXT\0"
"glDisablei\0"
"\0"
- /* _mesa_function_pool[19218]: BindBufferBaseEXT (will be remapped) */
+ /* _mesa_function_pool[19575]: BindBufferBaseEXT (will be remapped) */
"iii\0"
"glBindBufferBaseEXT\0"
"glBindBufferBase\0"
"\0"
- /* _mesa_function_pool[19260]: TexCoord2fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[19617]: TexCoord2fVertex3fvSUN (dynamic) */
"pp\0"
"glTexCoord2fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[19289]: WindowPos4sMESA (will be remapped) */
+ /* _mesa_function_pool[19646]: WindowPos4sMESA (will be remapped) */
"iiii\0"
"glWindowPos4sMESA\0"
"\0"
- /* _mesa_function_pool[19313]: VertexAttrib4NuivARB (will be remapped) */
+ /* _mesa_function_pool[19670]: GetnPixelMapuivARB (will be remapped) */
+ "iip\0"
+ "glGetnPixelMapuivARB\0"
+ "\0"
+ /* _mesa_function_pool[19696]: VertexAttrib4NuivARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nuiv\0"
"glVertexAttrib4NuivARB\0"
"\0"
- /* _mesa_function_pool[19360]: ClientActiveTextureARB (offset 375) */
+ /* _mesa_function_pool[19743]: ClientActiveTextureARB (offset 375) */
"i\0"
"glClientActiveTexture\0"
"glClientActiveTextureARB\0"
"\0"
- /* _mesa_function_pool[19410]: GetSamplerParameterIuiv (will be remapped) */
+ /* _mesa_function_pool[19793]: GetSamplerParameterIuiv (will be remapped) */
"iip\0"
"glGetSamplerParameterIuiv\0"
"\0"
- /* _mesa_function_pool[19441]: ReplacementCodeusvSUN (dynamic) */
+ /* _mesa_function_pool[19824]: ReplacementCodeusvSUN (dynamic) */
"p\0"
"glReplacementCodeusvSUN\0"
"\0"
- /* _mesa_function_pool[19468]: Uniform4fARB (will be remapped) */
+ /* _mesa_function_pool[19851]: Uniform4fARB (will be remapped) */
"iffff\0"
"glUniform4f\0"
"glUniform4fARB\0"
"\0"
- /* _mesa_function_pool[19502]: Color4sv (offset 34) */
+ /* _mesa_function_pool[19885]: Color4sv (offset 34) */
"p\0"
"glColor4sv\0"
"\0"
- /* _mesa_function_pool[19516]: FlushMappedBufferRange (will be remapped) */
+ /* _mesa_function_pool[19899]: FlushMappedBufferRange (will be remapped) */
"iii\0"
"glFlushMappedBufferRange\0"
"\0"
- /* _mesa_function_pool[19546]: IsProgramNV (will be remapped) */
+ /* _mesa_function_pool[19929]: IsProgramNV (will be remapped) */
"i\0"
"glIsProgramARB\0"
"glIsProgramNV\0"
"\0"
- /* _mesa_function_pool[19578]: FlushMappedBufferRangeAPPLE (will be remapped) */
+ /* _mesa_function_pool[19961]: FlushMappedBufferRangeAPPLE (will be remapped) */
"iii\0"
"glFlushMappedBufferRangeAPPLE\0"
"\0"
- /* _mesa_function_pool[19613]: PixelZoom (offset 246) */
+ /* _mesa_function_pool[19996]: PixelZoom (offset 246) */
"ff\0"
"glPixelZoom\0"
"\0"
- /* _mesa_function_pool[19629]: ReplacementCodePointerSUN (dynamic) */
+ /* _mesa_function_pool[20012]: ReplacementCodePointerSUN (dynamic) */
"iip\0"
"glReplacementCodePointerSUN\0"
"\0"
- /* _mesa_function_pool[19662]: ProgramEnvParameter4dARB (will be remapped) */
+ /* _mesa_function_pool[20045]: ProgramEnvParameter4dARB (will be remapped) */
"iidddd\0"
"glProgramEnvParameter4dARB\0"
"glProgramParameter4dNV\0"
"\0"
- /* _mesa_function_pool[19720]: ColorTableParameterfv (offset 340) */
+ /* _mesa_function_pool[20103]: ColorTableParameterfv (offset 340) */
"iip\0"
"glColorTableParameterfv\0"
"glColorTableParameterfvSGI\0"
"\0"
- /* _mesa_function_pool[19776]: FragmentLightModelfSGIX (dynamic) */
+ /* _mesa_function_pool[20159]: FragmentLightModelfSGIX (dynamic) */
"if\0"
"glFragmentLightModelfSGIX\0"
"\0"
- /* _mesa_function_pool[19806]: Binormal3bvEXT (dynamic) */
+ /* _mesa_function_pool[20189]: Binormal3bvEXT (dynamic) */
"p\0"
"glBinormal3bvEXT\0"
"\0"
- /* _mesa_function_pool[19826]: PixelMapuiv (offset 252) */
+ /* _mesa_function_pool[20209]: PixelMapuiv (offset 252) */
"iip\0"
"glPixelMapuiv\0"
"\0"
- /* _mesa_function_pool[19845]: Color3dv (offset 12) */
+ /* _mesa_function_pool[20228]: Color3dv (offset 12) */
"p\0"
"glColor3dv\0"
"\0"
- /* _mesa_function_pool[19859]: IsTexture (offset 330) */
+ /* _mesa_function_pool[20242]: IsTexture (offset 330) */
"i\0"
"glIsTexture\0"
"glIsTextureEXT\0"
"\0"
- /* _mesa_function_pool[19889]: GenSamplers (will be remapped) */
+ /* _mesa_function_pool[20272]: GenSamplers (will be remapped) */
"ip\0"
"glGenSamplers\0"
"\0"
- /* _mesa_function_pool[19907]: VertexWeightfvEXT (dynamic) */
+ /* _mesa_function_pool[20290]: VertexWeightfvEXT (dynamic) */
"p\0"
"glVertexWeightfvEXT\0"
"\0"
- /* _mesa_function_pool[19930]: VertexAttrib1dARB (will be remapped) */
+ /* _mesa_function_pool[20313]: VertexAttrib1dARB (will be remapped) */
"id\0"
"glVertexAttrib1d\0"
"glVertexAttrib1dARB\0"
"\0"
- /* _mesa_function_pool[19971]: ImageTransformParameterivHP (dynamic) */
+ /* _mesa_function_pool[20354]: ImageTransformParameterivHP (dynamic) */
"iip\0"
"glImageTransformParameterivHP\0"
"\0"
- /* _mesa_function_pool[20006]: TexCoord4i (offset 122) */
+ /* _mesa_function_pool[20389]: TexCoord4i (offset 122) */
"iiii\0"
"glTexCoord4i\0"
"\0"
- /* _mesa_function_pool[20025]: DeleteQueriesARB (will be remapped) */
+ /* _mesa_function_pool[20408]: DeleteQueriesARB (will be remapped) */
"ip\0"
"glDeleteQueries\0"
"glDeleteQueriesARB\0"
"\0"
- /* _mesa_function_pool[20064]: Color4ubVertex2fSUN (dynamic) */
+ /* _mesa_function_pool[20447]: Color4ubVertex2fSUN (dynamic) */
"iiiiff\0"
"glColor4ubVertex2fSUN\0"
"\0"
- /* _mesa_function_pool[20094]: FragmentColorMaterialSGIX (dynamic) */
+ /* _mesa_function_pool[20477]: FragmentColorMaterialSGIX (dynamic) */
"ii\0"
"glFragmentColorMaterialSGIX\0"
"\0"
- /* _mesa_function_pool[20126]: CurrentPaletteMatrixARB (dynamic) */
+ /* _mesa_function_pool[20509]: CurrentPaletteMatrixARB (dynamic) */
"i\0"
"glCurrentPaletteMatrixARB\0"
"\0"
- /* _mesa_function_pool[20155]: GetMapdv (offset 266) */
+ /* _mesa_function_pool[20538]: GetMapdv (offset 266) */
"iip\0"
"glGetMapdv\0"
"\0"
- /* _mesa_function_pool[20171]: ObjectPurgeableAPPLE (will be remapped) */
+ /* _mesa_function_pool[20554]: ObjectPurgeableAPPLE (will be remapped) */
"iii\0"
"glObjectPurgeableAPPLE\0"
"\0"
- /* _mesa_function_pool[20199]: GetStringi (will be remapped) */
+ /* _mesa_function_pool[20582]: GetStringi (will be remapped) */
"ii\0"
"glGetStringi\0"
"\0"
- /* _mesa_function_pool[20216]: SamplePatternSGIS (will be remapped) */
+ /* _mesa_function_pool[20599]: SamplePatternSGIS (will be remapped) */
"i\0"
"glSamplePatternSGIS\0"
"glSamplePatternEXT\0"
"\0"
- /* _mesa_function_pool[20258]: PixelStoref (offset 249) */
+ /* _mesa_function_pool[20641]: PixelStoref (offset 249) */
"if\0"
"glPixelStoref\0"
"\0"
- /* _mesa_function_pool[20276]: IsQueryARB (will be remapped) */
+ /* _mesa_function_pool[20659]: IsQueryARB (will be remapped) */
"i\0"
"glIsQuery\0"
"glIsQueryARB\0"
"\0"
- /* _mesa_function_pool[20302]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[20685]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */
"iiiiifff\0"
"glReplacementCodeuiColor4ubVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[20351]: PixelStorei (offset 250) */
+ /* _mesa_function_pool[20734]: PixelStorei (offset 250) */
"ii\0"
"glPixelStorei\0"
"\0"
- /* _mesa_function_pool[20369]: VertexAttrib4usvARB (will be remapped) */
+ /* _mesa_function_pool[20752]: VertexAttrib4usvARB (will be remapped) */
"ip\0"
"glVertexAttrib4usv\0"
"glVertexAttrib4usvARB\0"
"\0"
- /* _mesa_function_pool[20414]: LinkProgramARB (will be remapped) */
+ /* _mesa_function_pool[20797]: LinkProgramARB (will be remapped) */
"i\0"
"glLinkProgram\0"
"glLinkProgramARB\0"
"\0"
- /* _mesa_function_pool[20448]: VertexAttrib2fNV (will be remapped) */
+ /* _mesa_function_pool[20831]: VertexAttrib2fNV (will be remapped) */
"iff\0"
"glVertexAttrib2fNV\0"
"\0"
- /* _mesa_function_pool[20472]: ShaderSourceARB (will be remapped) */
+ /* _mesa_function_pool[20855]: ShaderSourceARB (will be remapped) */
"iipp\0"
"glShaderSource\0"
"glShaderSourceARB\0"
"\0"
- /* _mesa_function_pool[20511]: FragmentMaterialiSGIX (dynamic) */
+ /* _mesa_function_pool[20894]: FragmentMaterialiSGIX (dynamic) */
"iii\0"
"glFragmentMaterialiSGIX\0"
"\0"
- /* _mesa_function_pool[20540]: EvalCoord2dv (offset 233) */
+ /* _mesa_function_pool[20923]: EvalCoord2dv (offset 233) */
"p\0"
"glEvalCoord2dv\0"
"\0"
- /* _mesa_function_pool[20558]: VertexAttrib3svARB (will be remapped) */
+ /* _mesa_function_pool[20941]: VertexAttrib3svARB (will be remapped) */
"ip\0"
"glVertexAttrib3sv\0"
"glVertexAttrib3svARB\0"
"\0"
- /* _mesa_function_pool[20601]: ColorMaterial (offset 151) */
+ /* _mesa_function_pool[20984]: ColorMaterial (offset 151) */
"ii\0"
"glColorMaterial\0"
"\0"
- /* _mesa_function_pool[20621]: CompressedTexSubImage3DARB (will be remapped) */
+ /* _mesa_function_pool[21004]: CompressedTexSubImage3DARB (will be remapped) */
"iiiiiiiiiip\0"
"glCompressedTexSubImage3D\0"
"glCompressedTexSubImage3DARB\0"
"\0"
- /* _mesa_function_pool[20689]: WindowPos2ivMESA (will be remapped) */
+ /* _mesa_function_pool[21072]: WindowPos2ivMESA (will be remapped) */
"p\0"
"glWindowPos2iv\0"
"glWindowPos2ivARB\0"
"glWindowPos2ivMESA\0"
"\0"
- /* _mesa_function_pool[20744]: IsFramebufferEXT (will be remapped) */
+ /* _mesa_function_pool[21127]: IsFramebufferEXT (will be remapped) */
"i\0"
"glIsFramebuffer\0"
"glIsFramebufferEXT\0"
"\0"
- /* _mesa_function_pool[20782]: Uniform4ivARB (will be remapped) */
+ /* _mesa_function_pool[21165]: Uniform4ivARB (will be remapped) */
"iip\0"
"glUniform4iv\0"
"glUniform4ivARB\0"
"\0"
- /* _mesa_function_pool[20816]: GetVertexAttribdvARB (will be remapped) */
+ /* _mesa_function_pool[21199]: GetVertexAttribdvARB (will be remapped) */
"iip\0"
"glGetVertexAttribdv\0"
"glGetVertexAttribdvARB\0"
"\0"
- /* _mesa_function_pool[20864]: TexBumpParameterivATI (will be remapped) */
+ /* _mesa_function_pool[21247]: TexBumpParameterivATI (will be remapped) */
"ip\0"
"glTexBumpParameterivATI\0"
"\0"
- /* _mesa_function_pool[20892]: GetSeparableFilter (offset 359) */
+ /* _mesa_function_pool[21275]: GetSeparableFilter (offset 359) */
"iiippp\0"
"glGetSeparableFilter\0"
"glGetSeparableFilterEXT\0"
"\0"
- /* _mesa_function_pool[20945]: Binormal3dEXT (dynamic) */
+ /* _mesa_function_pool[21328]: Binormal3dEXT (dynamic) */
"ddd\0"
"glBinormal3dEXT\0"
"\0"
- /* _mesa_function_pool[20966]: SpriteParameteriSGIX (dynamic) */
+ /* _mesa_function_pool[21349]: SpriteParameteriSGIX (dynamic) */
"ii\0"
"glSpriteParameteriSGIX\0"
"\0"
- /* _mesa_function_pool[20993]: RequestResidentProgramsNV (will be remapped) */
+ /* _mesa_function_pool[21376]: RequestResidentProgramsNV (will be remapped) */
"ip\0"
"glRequestResidentProgramsNV\0"
"\0"
- /* _mesa_function_pool[21025]: TagSampleBufferSGIX (dynamic) */
+ /* _mesa_function_pool[21408]: TagSampleBufferSGIX (dynamic) */
"\0"
"glTagSampleBufferSGIX\0"
"\0"
- /* _mesa_function_pool[21049]: TransformFeedbackVaryingsEXT (will be remapped) */
+ /* _mesa_function_pool[21432]: TransformFeedbackVaryingsEXT (will be remapped) */
"iipi\0"
"glTransformFeedbackVaryingsEXT\0"
"glTransformFeedbackVaryings\0"
"\0"
- /* _mesa_function_pool[21114]: FeedbackBuffer (offset 194) */
+ /* _mesa_function_pool[21497]: FeedbackBuffer (offset 194) */
"iip\0"
"glFeedbackBuffer\0"
"\0"
- /* _mesa_function_pool[21136]: RasterPos2iv (offset 67) */
+ /* _mesa_function_pool[21519]: RasterPos2iv (offset 67) */
"p\0"
"glRasterPos2iv\0"
"\0"
- /* _mesa_function_pool[21154]: TexImage1D (offset 182) */
+ /* _mesa_function_pool[21537]: TexImage1D (offset 182) */
"iiiiiiip\0"
"glTexImage1D\0"
"\0"
- /* _mesa_function_pool[21177]: ListParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[21560]: ListParameterivSGIX (dynamic) */
"iip\0"
"glListParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[21204]: MultiDrawElementsEXT (will be remapped) */
+ /* _mesa_function_pool[21587]: MultiDrawElementsEXT (will be remapped) */
"ipipi\0"
"glMultiDrawElements\0"
"glMultiDrawElementsEXT\0"
"\0"
- /* _mesa_function_pool[21254]: Color3s (offset 17) */
+ /* _mesa_function_pool[21637]: Color3s (offset 17) */
"iii\0"
"glColor3s\0"
"\0"
- /* _mesa_function_pool[21269]: Uniform1ivARB (will be remapped) */
+ /* _mesa_function_pool[21652]: Uniform1ivARB (will be remapped) */
"iip\0"
"glUniform1iv\0"
"glUniform1ivARB\0"
"\0"
- /* _mesa_function_pool[21303]: WindowPos2sMESA (will be remapped) */
+ /* _mesa_function_pool[21686]: WindowPos2sMESA (will be remapped) */
"ii\0"
"glWindowPos2s\0"
"glWindowPos2sARB\0"
"glWindowPos2sMESA\0"
"\0"
- /* _mesa_function_pool[21356]: WeightusvARB (dynamic) */
+ /* _mesa_function_pool[21739]: WeightusvARB (dynamic) */
"ip\0"
"glWeightusvARB\0"
"\0"
- /* _mesa_function_pool[21375]: TexCoordPointer (offset 320) */
+ /* _mesa_function_pool[21758]: TexCoordPointer (offset 320) */
"iiip\0"
"glTexCoordPointer\0"
"\0"
- /* _mesa_function_pool[21399]: FogCoordPointerEXT (will be remapped) */
+ /* _mesa_function_pool[21782]: FogCoordPointerEXT (will be remapped) */
"iip\0"
"glFogCoordPointer\0"
"glFogCoordPointerEXT\0"
"\0"
- /* _mesa_function_pool[21443]: IndexMaterialEXT (dynamic) */
+ /* _mesa_function_pool[21826]: GetnSeparableFilterARB (will be remapped) */
+ "iiiipipp\0"
+ "glGetnSeparableFilterARB\0"
+ "\0"
+ /* _mesa_function_pool[21861]: IndexMaterialEXT (dynamic) */
"ii\0"
"glIndexMaterialEXT\0"
"\0"
- /* _mesa_function_pool[21466]: Color3i (offset 15) */
+ /* _mesa_function_pool[21884]: Color3i (offset 15) */
"iii\0"
"glColor3i\0"
"\0"
- /* _mesa_function_pool[21481]: FrontFace (offset 157) */
+ /* _mesa_function_pool[21899]: FrontFace (offset 157) */
"i\0"
"glFrontFace\0"
"\0"
- /* _mesa_function_pool[21496]: EvalCoord2d (offset 232) */
+ /* _mesa_function_pool[21914]: EvalCoord2d (offset 232) */
"dd\0"
"glEvalCoord2d\0"
"\0"
- /* _mesa_function_pool[21514]: SecondaryColor3ubvEXT (will be remapped) */
+ /* _mesa_function_pool[21932]: SecondaryColor3ubvEXT (will be remapped) */
"p\0"
"glSecondaryColor3ubv\0"
"glSecondaryColor3ubvEXT\0"
"\0"
- /* _mesa_function_pool[21562]: EvalCoord2f (offset 234) */
+ /* _mesa_function_pool[21980]: EvalCoord2f (offset 234) */
"ff\0"
"glEvalCoord2f\0"
"\0"
- /* _mesa_function_pool[21580]: VertexAttrib4dvARB (will be remapped) */
+ /* _mesa_function_pool[21998]: VertexAttrib4dvARB (will be remapped) */
"ip\0"
"glVertexAttrib4dv\0"
"glVertexAttrib4dvARB\0"
"\0"
- /* _mesa_function_pool[21623]: BindAttribLocationARB (will be remapped) */
+ /* _mesa_function_pool[22041]: BindAttribLocationARB (will be remapped) */
"iip\0"
"glBindAttribLocation\0"
"glBindAttribLocationARB\0"
"\0"
- /* _mesa_function_pool[21673]: Color3b (offset 9) */
+ /* _mesa_function_pool[22091]: Color3b (offset 9) */
"iii\0"
"glColor3b\0"
"\0"
- /* _mesa_function_pool[21688]: MultiTexCoord2dARB (offset 384) */
+ /* _mesa_function_pool[22106]: MultiTexCoord2dARB (offset 384) */
"idd\0"
"glMultiTexCoord2d\0"
"glMultiTexCoord2dARB\0"
"\0"
- /* _mesa_function_pool[21732]: ExecuteProgramNV (will be remapped) */
+ /* _mesa_function_pool[22150]: ExecuteProgramNV (will be remapped) */
"iip\0"
"glExecuteProgramNV\0"
"\0"
- /* _mesa_function_pool[21756]: Color3f (offset 13) */
+ /* _mesa_function_pool[22174]: Color3f (offset 13) */
"fff\0"
"glColor3f\0"
"\0"
- /* _mesa_function_pool[21771]: LightEnviSGIX (dynamic) */
+ /* _mesa_function_pool[22189]: LightEnviSGIX (dynamic) */
"ii\0"
"glLightEnviSGIX\0"
"\0"
- /* _mesa_function_pool[21791]: Color3d (offset 11) */
+ /* _mesa_function_pool[22209]: Color3d (offset 11) */
"ddd\0"
"glColor3d\0"
"\0"
- /* _mesa_function_pool[21806]: Normal3dv (offset 55) */
+ /* _mesa_function_pool[22224]: Normal3dv (offset 55) */
"p\0"
"glNormal3dv\0"
"\0"
- /* _mesa_function_pool[21821]: Lightf (offset 159) */
+ /* _mesa_function_pool[22239]: Lightf (offset 159) */
"iif\0"
"glLightf\0"
"\0"
- /* _mesa_function_pool[21835]: ReplacementCodeuiSUN (dynamic) */
+ /* _mesa_function_pool[22253]: ReplacementCodeuiSUN (dynamic) */
"i\0"
"glReplacementCodeuiSUN\0"
"\0"
- /* _mesa_function_pool[21861]: MatrixMode (offset 293) */
+ /* _mesa_function_pool[22279]: MatrixMode (offset 293) */
"i\0"
"glMatrixMode\0"
"\0"
- /* _mesa_function_pool[21877]: GetPixelMapusv (offset 273) */
+ /* _mesa_function_pool[22295]: GetPixelMapusv (offset 273) */
"ip\0"
"glGetPixelMapusv\0"
"\0"
- /* _mesa_function_pool[21898]: Lighti (offset 161) */
+ /* _mesa_function_pool[22316]: Lighti (offset 161) */
"iii\0"
"glLighti\0"
"\0"
- /* _mesa_function_pool[21912]: VertexAttribPointerNV (will be remapped) */
+ /* _mesa_function_pool[22330]: VertexAttribPointerNV (will be remapped) */
"iiiip\0"
"glVertexAttribPointerNV\0"
"\0"
- /* _mesa_function_pool[21943]: ClearDepthf (will be remapped) */
+ /* _mesa_function_pool[22361]: ClearDepthf (will be remapped) */
"f\0"
"glClearDepthf\0"
"\0"
- /* _mesa_function_pool[21960]: GetBooleanIndexedvEXT (will be remapped) */
+ /* _mesa_function_pool[22378]: GetBooleanIndexedvEXT (will be remapped) */
"iip\0"
"glGetBooleanIndexedvEXT\0"
"glGetBooleani_v\0"
"\0"
- /* _mesa_function_pool[22005]: GetFramebufferAttachmentParameterivEXT (will be remapped) */
+ /* _mesa_function_pool[22423]: GetFramebufferAttachmentParameterivEXT (will be remapped) */
"iiip\0"
"glGetFramebufferAttachmentParameteriv\0"
"glGetFramebufferAttachmentParameterivEXT\0"
"\0"
- /* _mesa_function_pool[22090]: PixelTransformParameterfEXT (dynamic) */
+ /* _mesa_function_pool[22508]: PixelTransformParameterfEXT (dynamic) */
"iif\0"
"glPixelTransformParameterfEXT\0"
"\0"
- /* _mesa_function_pool[22125]: MultiTexCoord4dvARB (offset 401) */
+ /* _mesa_function_pool[22543]: MultiTexCoord4dvARB (offset 401) */
"ip\0"
"glMultiTexCoord4dv\0"
"glMultiTexCoord4dvARB\0"
"\0"
- /* _mesa_function_pool[22170]: PixelTransformParameteriEXT (dynamic) */
+ /* _mesa_function_pool[22588]: PixelTransformParameteriEXT (dynamic) */
"iii\0"
"glPixelTransformParameteriEXT\0"
"\0"
- /* _mesa_function_pool[22205]: GetDoublev (offset 260) */
+ /* _mesa_function_pool[22623]: GetDoublev (offset 260) */
"ip\0"
"glGetDoublev\0"
"\0"
- /* _mesa_function_pool[22222]: MultMatrixd (offset 295) */
+ /* _mesa_function_pool[22640]: MultMatrixd (offset 295) */
"p\0"
"glMultMatrixd\0"
"\0"
- /* _mesa_function_pool[22239]: MultMatrixf (offset 294) */
+ /* _mesa_function_pool[22657]: MultMatrixf (offset 294) */
"p\0"
"glMultMatrixf\0"
"\0"
- /* _mesa_function_pool[22256]: VertexAttribI4bvEXT (will be remapped) */
+ /* _mesa_function_pool[22674]: VertexAttribI4bvEXT (will be remapped) */
"ip\0"
"glVertexAttribI4bvEXT\0"
"glVertexAttribI4bv\0"
"\0"
- /* _mesa_function_pool[22301]: TexCoord2fColor4ubVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[22719]: TexCoord2fColor4ubVertex3fSUN (dynamic) */
"ffiiiifff\0"
"glTexCoord2fColor4ubVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[22344]: Uniform1iARB (will be remapped) */
+ /* _mesa_function_pool[22762]: Uniform1iARB (will be remapped) */
"ii\0"
"glUniform1i\0"
"glUniform1iARB\0"
"\0"
- /* _mesa_function_pool[22375]: VertexAttribPointerARB (will be remapped) */
+ /* _mesa_function_pool[22793]: GetnMapfvARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapfvARB\0"
+ "\0"
+ /* _mesa_function_pool[22814]: VertexAttribPointerARB (will be remapped) */
"iiiiip\0"
"glVertexAttribPointer\0"
"glVertexAttribPointerARB\0"
"\0"
- /* _mesa_function_pool[22430]: VertexAttrib3sNV (will be remapped) */
+ /* _mesa_function_pool[22869]: VertexAttrib3sNV (will be remapped) */
"iiii\0"
"glVertexAttrib3sNV\0"
"\0"
- /* _mesa_function_pool[22455]: SharpenTexFuncSGIS (dynamic) */
+ /* _mesa_function_pool[22894]: SharpenTexFuncSGIS (dynamic) */
"iip\0"
"glSharpenTexFuncSGIS\0"
"\0"
- /* _mesa_function_pool[22481]: MultiTexCoord4fvARB (offset 403) */
+ /* _mesa_function_pool[22920]: MultiTexCoord4fvARB (offset 403) */
"ip\0"
"glMultiTexCoord4fv\0"
"glMultiTexCoord4fvARB\0"
"\0"
- /* _mesa_function_pool[22526]: Uniform2uiEXT (will be remapped) */
+ /* _mesa_function_pool[22965]: Uniform2uiEXT (will be remapped) */
"iii\0"
"glUniform2uiEXT\0"
"glUniform2ui\0"
"\0"
- /* _mesa_function_pool[22560]: UniformMatrix2x3fv (will be remapped) */
+ /* _mesa_function_pool[22999]: UniformMatrix2x3fv (will be remapped) */
"iiip\0"
"glUniformMatrix2x3fv\0"
"\0"
- /* _mesa_function_pool[22587]: SamplerParameteri (will be remapped) */
+ /* _mesa_function_pool[23026]: SamplerParameteri (will be remapped) */
"iii\0"
"glSamplerParameteri\0"
"\0"
- /* _mesa_function_pool[22612]: SamplerParameterf (will be remapped) */
+ /* _mesa_function_pool[23051]: SamplerParameterf (will be remapped) */
"iif\0"
"glSamplerParameterf\0"
"\0"
- /* _mesa_function_pool[22637]: CombinerParameteriNV (will be remapped) */
+ /* _mesa_function_pool[23076]: CombinerParameteriNV (will be remapped) */
"ii\0"
"glCombinerParameteriNV\0"
"\0"
- /* _mesa_function_pool[22664]: DeleteAsyncMarkersSGIX (dynamic) */
+ /* _mesa_function_pool[23103]: DeleteAsyncMarkersSGIX (dynamic) */
"ii\0"
"glDeleteAsyncMarkersSGIX\0"
"\0"
- /* _mesa_function_pool[22693]: ReplacementCodeusSUN (dynamic) */
+ /* _mesa_function_pool[23132]: ReplacementCodeusSUN (dynamic) */
"i\0"
"glReplacementCodeusSUN\0"
"\0"
- /* _mesa_function_pool[22719]: IsAsyncMarkerSGIX (dynamic) */
+ /* _mesa_function_pool[23158]: IsAsyncMarkerSGIX (dynamic) */
"i\0"
"glIsAsyncMarkerSGIX\0"
"\0"
- /* _mesa_function_pool[22742]: FrameZoomSGIX (dynamic) */
+ /* _mesa_function_pool[23181]: FrameZoomSGIX (dynamic) */
"i\0"
"glFrameZoomSGIX\0"
"\0"
- /* _mesa_function_pool[22761]: Normal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[23200]: Normal3fVertex3fvSUN (dynamic) */
"pp\0"
"glNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[22788]: RasterPos4sv (offset 85) */
+ /* _mesa_function_pool[23227]: GetnUniformuivARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformuivARB\0"
+ "\0"
+ /* _mesa_function_pool[23253]: RasterPos4sv (offset 85) */
"p\0"
"glRasterPos4sv\0"
"\0"
- /* _mesa_function_pool[22806]: VertexAttrib4NsvARB (will be remapped) */
+ /* _mesa_function_pool[23271]: VertexAttrib4NsvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nsv\0"
"glVertexAttrib4NsvARB\0"
"\0"
- /* _mesa_function_pool[22851]: VertexAttrib3fvARB (will be remapped) */
+ /* _mesa_function_pool[23316]: VertexAttrib3fvARB (will be remapped) */
"ip\0"
"glVertexAttrib3fv\0"
"glVertexAttrib3fvARB\0"
"\0"
- /* _mesa_function_pool[22894]: ClearColor (offset 206) */
+ /* _mesa_function_pool[23359]: ClearColor (offset 206) */
"ffff\0"
"glClearColor\0"
"\0"
- /* _mesa_function_pool[22913]: GetSynciv (will be remapped) */
+ /* _mesa_function_pool[23378]: GetSynciv (will be remapped) */
"iiipp\0"
"glGetSynciv\0"
"\0"
- /* _mesa_function_pool[22932]: ClearColorIiEXT (will be remapped) */
+ /* _mesa_function_pool[23397]: ClearColorIiEXT (will be remapped) */
"iiii\0"
"glClearColorIiEXT\0"
"\0"
- /* _mesa_function_pool[22956]: DeleteFramebuffersEXT (will be remapped) */
+ /* _mesa_function_pool[23421]: DeleteFramebuffersEXT (will be remapped) */
"ip\0"
"glDeleteFramebuffers\0"
"glDeleteFramebuffersEXT\0"
"\0"
- /* _mesa_function_pool[23005]: GlobalAlphaFactorsSUN (dynamic) */
+ /* _mesa_function_pool[23470]: GlobalAlphaFactorsSUN (dynamic) */
"i\0"
"glGlobalAlphaFactorsSUN\0"
"\0"
- /* _mesa_function_pool[23032]: IsEnabledIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[23497]: IsEnabledIndexedEXT (will be remapped) */
"ii\0"
"glIsEnabledIndexedEXT\0"
"glIsEnabledi\0"
"\0"
- /* _mesa_function_pool[23071]: TexEnviv (offset 187) */
+ /* _mesa_function_pool[23536]: TexEnviv (offset 187) */
"iip\0"
"glTexEnviv\0"
"\0"
- /* _mesa_function_pool[23087]: TexSubImage3D (offset 372) */
+ /* _mesa_function_pool[23552]: TexSubImage3D (offset 372) */
"iiiiiiiiiip\0"
"glTexSubImage3D\0"
"glTexSubImage3DEXT\0"
"\0"
- /* _mesa_function_pool[23135]: Tangent3fEXT (dynamic) */
+ /* _mesa_function_pool[23600]: Tangent3fEXT (dynamic) */
"fff\0"
"glTangent3fEXT\0"
"\0"
- /* _mesa_function_pool[23155]: SecondaryColor3uivEXT (will be remapped) */
+ /* _mesa_function_pool[23620]: SecondaryColor3uivEXT (will be remapped) */
"p\0"
"glSecondaryColor3uiv\0"
"glSecondaryColor3uivEXT\0"
"\0"
- /* _mesa_function_pool[23203]: MatrixIndexubvARB (dynamic) */
+ /* _mesa_function_pool[23668]: MatrixIndexubvARB (dynamic) */
"ip\0"
"glMatrixIndexubvARB\0"
"\0"
- /* _mesa_function_pool[23227]: Color4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[23692]: Color4fNormal3fVertex3fSUN (dynamic) */
"ffffffffff\0"
"glColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[23268]: PixelTexGenParameterfSGIS (will be remapped) */
+ /* _mesa_function_pool[23733]: PixelTexGenParameterfSGIS (will be remapped) */
"if\0"
"glPixelTexGenParameterfSGIS\0"
"\0"
- /* _mesa_function_pool[23300]: CreateShader (will be remapped) */
+ /* _mesa_function_pool[23765]: CreateShader (will be remapped) */
"i\0"
"glCreateShader\0"
"\0"
- /* _mesa_function_pool[23318]: GetColorTableParameterfv (offset 344) */
+ /* _mesa_function_pool[23783]: GetColorTableParameterfv (offset 344) */
"iip\0"
"glGetColorTableParameterfv\0"
"glGetColorTableParameterfvSGI\0"
"glGetColorTableParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[23410]: FragmentLightModelfvSGIX (dynamic) */
+ /* _mesa_function_pool[23875]: FragmentLightModelfvSGIX (dynamic) */
"ip\0"
"glFragmentLightModelfvSGIX\0"
"\0"
- /* _mesa_function_pool[23441]: Bitmap (offset 8) */
+ /* _mesa_function_pool[23906]: Bitmap (offset 8) */
"iiffffp\0"
"glBitmap\0"
"\0"
- /* _mesa_function_pool[23459]: MultiTexCoord3fARB (offset 394) */
+ /* _mesa_function_pool[23924]: MultiTexCoord3fARB (offset 394) */
"ifff\0"
"glMultiTexCoord3f\0"
"glMultiTexCoord3fARB\0"
"\0"
- /* _mesa_function_pool[23504]: GetTexLevelParameterfv (offset 284) */
+ /* _mesa_function_pool[23969]: GetTexLevelParameterfv (offset 284) */
"iiip\0"
"glGetTexLevelParameterfv\0"
"\0"
- /* _mesa_function_pool[23535]: GetPixelTexGenParameterfvSGIS (will be remapped) */
+ /* _mesa_function_pool[24000]: GetPixelTexGenParameterfvSGIS (will be remapped) */
"ip\0"
"glGetPixelTexGenParameterfvSGIS\0"
"\0"
- /* _mesa_function_pool[23571]: GenFramebuffersEXT (will be remapped) */
+ /* _mesa_function_pool[24036]: GenFramebuffersEXT (will be remapped) */
"ip\0"
"glGenFramebuffers\0"
"glGenFramebuffersEXT\0"
"\0"
- /* _mesa_function_pool[23614]: VertexAttribDivisor (will be remapped) */
+ /* _mesa_function_pool[24079]: VertexAttribDivisor (will be remapped) */
"ii\0"
"glVertexAttribDivisor\0"
"\0"
- /* _mesa_function_pool[23640]: GetProgramParameterdvNV (will be remapped) */
+ /* _mesa_function_pool[24105]: GetProgramParameterdvNV (will be remapped) */
"iiip\0"
"glGetProgramParameterdvNV\0"
"\0"
- /* _mesa_function_pool[23672]: Vertex2sv (offset 133) */
+ /* _mesa_function_pool[24137]: Vertex2sv (offset 133) */
"p\0"
"glVertex2sv\0"
"\0"
- /* _mesa_function_pool[23687]: GetIntegerv (offset 263) */
+ /* _mesa_function_pool[24152]: GetIntegerv (offset 263) */
"ip\0"
"glGetIntegerv\0"
"\0"
- /* _mesa_function_pool[23705]: IsVertexArrayAPPLE (will be remapped) */
+ /* _mesa_function_pool[24170]: IsVertexArrayAPPLE (will be remapped) */
"i\0"
"glIsVertexArray\0"
"glIsVertexArrayAPPLE\0"
"\0"
- /* _mesa_function_pool[23745]: FragmentLightfvSGIX (dynamic) */
+ /* _mesa_function_pool[24210]: FragmentLightfvSGIX (dynamic) */
"iip\0"
"glFragmentLightfvSGIX\0"
"\0"
- /* _mesa_function_pool[23772]: VertexAttribDivisorARB (will be remapped) */
- "ii\0"
- "glVertexAttribDivisorARB\0"
+ /* _mesa_function_pool[24237]: GetnMapdvARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapdvARB\0"
"\0"
- /* _mesa_function_pool[23801]: DetachShader (will be remapped) */
+ /* _mesa_function_pool[24258]: DetachShader (will be remapped) */
"ii\0"
"glDetachShader\0"
"\0"
- /* _mesa_function_pool[23820]: VertexAttrib4NubARB (will be remapped) */
+ /* _mesa_function_pool[24277]: VertexAttrib4NubARB (will be remapped) */
"iiiii\0"
"glVertexAttrib4Nub\0"
"glVertexAttrib4NubARB\0"
"\0"
- /* _mesa_function_pool[23868]: GetProgramEnvParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[24325]: GetProgramEnvParameterfvARB (will be remapped) */
"iip\0"
"glGetProgramEnvParameterfvARB\0"
"\0"
- /* _mesa_function_pool[23903]: GetTrackMatrixivNV (will be remapped) */
+ /* _mesa_function_pool[24360]: GetTrackMatrixivNV (will be remapped) */
"iiip\0"
"glGetTrackMatrixivNV\0"
"\0"
- /* _mesa_function_pool[23930]: VertexAttrib3svNV (will be remapped) */
+ /* _mesa_function_pool[24387]: VertexAttrib3svNV (will be remapped) */
"ip\0"
"glVertexAttrib3svNV\0"
"\0"
- /* _mesa_function_pool[23954]: Uniform4fvARB (will be remapped) */
+ /* _mesa_function_pool[24411]: Uniform4fvARB (will be remapped) */
"iip\0"
"glUniform4fv\0"
"glUniform4fvARB\0"
"\0"
- /* _mesa_function_pool[23988]: MultTransposeMatrixfARB (will be remapped) */
+ /* _mesa_function_pool[24445]: MultTransposeMatrixfARB (will be remapped) */
"p\0"
"glMultTransposeMatrixf\0"
"glMultTransposeMatrixfARB\0"
"\0"
- /* _mesa_function_pool[24040]: GetTexEnviv (offset 277) */
+ /* _mesa_function_pool[24497]: GetTexEnviv (offset 277) */
"iip\0"
"glGetTexEnviv\0"
"\0"
- /* _mesa_function_pool[24059]: ColorFragmentOp1ATI (will be remapped) */
+ /* _mesa_function_pool[24516]: ColorFragmentOp1ATI (will be remapped) */
"iiiiiii\0"
"glColorFragmentOp1ATI\0"
"\0"
- /* _mesa_function_pool[24090]: GetUniformfvARB (will be remapped) */
+ /* _mesa_function_pool[24547]: GetUniformfvARB (will be remapped) */
"iip\0"
"glGetUniformfv\0"
"glGetUniformfvARB\0"
"\0"
- /* _mesa_function_pool[24128]: EGLImageTargetRenderbufferStorageOES (will be remapped) */
+ /* _mesa_function_pool[24585]: EGLImageTargetRenderbufferStorageOES (will be remapped) */
"ip\0"
"glEGLImageTargetRenderbufferStorageOES\0"
"\0"
- /* _mesa_function_pool[24171]: VertexAttribI2ivEXT (will be remapped) */
+ /* _mesa_function_pool[24628]: VertexAttribI2ivEXT (will be remapped) */
"ip\0"
"glVertexAttribI2ivEXT\0"
"glVertexAttribI2iv\0"
"\0"
- /* _mesa_function_pool[24216]: PopClientAttrib (offset 334) */
+ /* _mesa_function_pool[24673]: PopClientAttrib (offset 334) */
"\0"
"glPopClientAttrib\0"
"\0"
- /* _mesa_function_pool[24236]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[24693]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
"iffffffffffff\0"
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[24307]: DetachObjectARB (will be remapped) */
+ /* _mesa_function_pool[24764]: DetachObjectARB (will be remapped) */
"ii\0"
"glDetachObjectARB\0"
"\0"
- /* _mesa_function_pool[24329]: VertexBlendARB (dynamic) */
+ /* _mesa_function_pool[24786]: VertexBlendARB (dynamic) */
"i\0"
"glVertexBlendARB\0"
"\0"
- /* _mesa_function_pool[24349]: WindowPos3iMESA (will be remapped) */
+ /* _mesa_function_pool[24806]: WindowPos3iMESA (will be remapped) */
"iii\0"
"glWindowPos3i\0"
"glWindowPos3iARB\0"
"glWindowPos3iMESA\0"
"\0"
- /* _mesa_function_pool[24403]: SeparableFilter2D (offset 360) */
+ /* _mesa_function_pool[24860]: SeparableFilter2D (offset 360) */
"iiiiiipp\0"
"glSeparableFilter2D\0"
"glSeparableFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[24456]: ProgramParameteriARB (will be remapped) */
+ /* _mesa_function_pool[24913]: ProgramParameteriARB (will be remapped) */
"iii\0"
"glProgramParameteriARB\0"
"\0"
- /* _mesa_function_pool[24484]: Map1d (offset 220) */
+ /* _mesa_function_pool[24941]: Map1d (offset 220) */
"iddiip\0"
"glMap1d\0"
"\0"
- /* _mesa_function_pool[24500]: Map1f (offset 221) */
+ /* _mesa_function_pool[24957]: Map1f (offset 221) */
"iffiip\0"
"glMap1f\0"
"\0"
- /* _mesa_function_pool[24516]: CompressedTexImage2DARB (will be remapped) */
+ /* _mesa_function_pool[24973]: CompressedTexImage2DARB (will be remapped) */
"iiiiiiip\0"
"glCompressedTexImage2D\0"
"glCompressedTexImage2DARB\0"
"\0"
- /* _mesa_function_pool[24575]: ArrayElement (offset 306) */
+ /* _mesa_function_pool[25032]: ArrayElement (offset 306) */
"i\0"
"glArrayElement\0"
"glArrayElementEXT\0"
"\0"
- /* _mesa_function_pool[24611]: TexImage2D (offset 183) */
+ /* _mesa_function_pool[25068]: TexImage2D (offset 183) */
"iiiiiiiip\0"
"glTexImage2D\0"
"\0"
- /* _mesa_function_pool[24635]: DepthBoundsEXT (will be remapped) */
+ /* _mesa_function_pool[25092]: DepthBoundsEXT (will be remapped) */
"dd\0"
"glDepthBoundsEXT\0"
"\0"
- /* _mesa_function_pool[24656]: ProgramParameters4fvNV (will be remapped) */
+ /* _mesa_function_pool[25113]: ProgramParameters4fvNV (will be remapped) */
"iiip\0"
"glProgramParameters4fvNV\0"
"\0"
- /* _mesa_function_pool[24687]: DeformationMap3fSGIX (dynamic) */
+ /* _mesa_function_pool[25144]: DeformationMap3fSGIX (dynamic) */
"iffiiffiiffiip\0"
"glDeformationMap3fSGIX\0"
"\0"
- /* _mesa_function_pool[24726]: GetProgramivNV (will be remapped) */
+ /* _mesa_function_pool[25183]: GetProgramivNV (will be remapped) */
"iip\0"
"glGetProgramivNV\0"
"\0"
- /* _mesa_function_pool[24748]: GetFragDataLocationEXT (will be remapped) */
+ /* _mesa_function_pool[25205]: GetFragDataLocationEXT (will be remapped) */
"ip\0"
"glGetFragDataLocationEXT\0"
"glGetFragDataLocation\0"
"\0"
- /* _mesa_function_pool[24799]: GetMinmaxParameteriv (offset 366) */
+ /* _mesa_function_pool[25256]: GetMinmaxParameteriv (offset 366) */
"iip\0"
"glGetMinmaxParameteriv\0"
"glGetMinmaxParameterivEXT\0"
"\0"
- /* _mesa_function_pool[24853]: PixelTransferf (offset 247) */
+ /* _mesa_function_pool[25310]: PixelTransferf (offset 247) */
"if\0"
"glPixelTransferf\0"
"\0"
- /* _mesa_function_pool[24874]: CopyTexImage1D (offset 323) */
+ /* _mesa_function_pool[25331]: CopyTexImage1D (offset 323) */
"iiiiiii\0"
"glCopyTexImage1D\0"
"glCopyTexImage1DEXT\0"
"\0"
- /* _mesa_function_pool[24920]: PushMatrix (offset 298) */
+ /* _mesa_function_pool[25377]: PushMatrix (offset 298) */
"\0"
"glPushMatrix\0"
"\0"
- /* _mesa_function_pool[24935]: Fogiv (offset 156) */
+ /* _mesa_function_pool[25392]: Fogiv (offset 156) */
"ip\0"
"glFogiv\0"
"\0"
- /* _mesa_function_pool[24947]: TexCoord1dv (offset 95) */
+ /* _mesa_function_pool[25404]: TexCoord1dv (offset 95) */
"p\0"
"glTexCoord1dv\0"
"\0"
- /* _mesa_function_pool[24964]: AlphaFragmentOp3ATI (will be remapped) */
+ /* _mesa_function_pool[25421]: AlphaFragmentOp3ATI (will be remapped) */
"iiiiiiiiiiii\0"
"glAlphaFragmentOp3ATI\0"
"\0"
- /* _mesa_function_pool[25000]: PixelTransferi (offset 248) */
+ /* _mesa_function_pool[25457]: PixelTransferi (offset 248) */
"ii\0"
"glPixelTransferi\0"
"\0"
- /* _mesa_function_pool[25021]: GetVertexAttribdvNV (will be remapped) */
- "iip\0"
- "glGetVertexAttribdvNV\0"
+ /* _mesa_function_pool[25478]: GetnColorTableARB (will be remapped) */
+ "iiiip\0"
+ "glGetnColorTableARB\0"
"\0"
- /* _mesa_function_pool[25048]: VertexAttrib3fvNV (will be remapped) */
+ /* _mesa_function_pool[25505]: VertexAttrib3fvNV (will be remapped) */
"ip\0"
"glVertexAttrib3fvNV\0"
"\0"
- /* _mesa_function_pool[25072]: Rotatef (offset 300) */
+ /* _mesa_function_pool[25529]: Rotatef (offset 300) */
"ffff\0"
"glRotatef\0"
"\0"
- /* _mesa_function_pool[25088]: GetFinalCombinerInputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[25545]: GetFinalCombinerInputParameterivNV (will be remapped) */
"iip\0"
"glGetFinalCombinerInputParameterivNV\0"
"\0"
- /* _mesa_function_pool[25130]: Vertex3i (offset 138) */
+ /* _mesa_function_pool[25587]: Vertex3i (offset 138) */
"iii\0"
"glVertex3i\0"
"\0"
- /* _mesa_function_pool[25146]: Vertex3f (offset 136) */
+ /* _mesa_function_pool[25603]: Vertex3f (offset 136) */
"fff\0"
"glVertex3f\0"
"\0"
- /* _mesa_function_pool[25162]: Clear (offset 203) */
+ /* _mesa_function_pool[25619]: Clear (offset 203) */
"i\0"
"glClear\0"
"\0"
- /* _mesa_function_pool[25173]: Vertex3d (offset 134) */
+ /* _mesa_function_pool[25630]: Vertex3d (offset 134) */
"ddd\0"
"glVertex3d\0"
"\0"
- /* _mesa_function_pool[25189]: GetMapParameterivNV (dynamic) */
+ /* _mesa_function_pool[25646]: GetMapParameterivNV (dynamic) */
"iip\0"
"glGetMapParameterivNV\0"
"\0"
- /* _mesa_function_pool[25216]: Uniform4iARB (will be remapped) */
+ /* _mesa_function_pool[25673]: Uniform4iARB (will be remapped) */
"iiiii\0"
"glUniform4i\0"
"glUniform4iARB\0"
"\0"
- /* _mesa_function_pool[25250]: ReadBuffer (offset 254) */
+ /* _mesa_function_pool[25707]: ReadBuffer (offset 254) */
"i\0"
"glReadBuffer\0"
"\0"
- /* _mesa_function_pool[25266]: ConvolutionParameteri (offset 352) */
+ /* _mesa_function_pool[25723]: ConvolutionParameteri (offset 352) */
"iii\0"
"glConvolutionParameteri\0"
"glConvolutionParameteriEXT\0"
"\0"
- /* _mesa_function_pool[25322]: Ortho (offset 296) */
+ /* _mesa_function_pool[25779]: Ortho (offset 296) */
"dddddd\0"
"glOrtho\0"
"\0"
- /* _mesa_function_pool[25338]: Binormal3sEXT (dynamic) */
+ /* _mesa_function_pool[25795]: Binormal3sEXT (dynamic) */
"iii\0"
"glBinormal3sEXT\0"
"\0"
- /* _mesa_function_pool[25359]: ListBase (offset 6) */
+ /* _mesa_function_pool[25816]: ListBase (offset 6) */
"i\0"
"glListBase\0"
"\0"
- /* _mesa_function_pool[25373]: VertexAttribI3ivEXT (will be remapped) */
+ /* _mesa_function_pool[25830]: VertexAttribI3ivEXT (will be remapped) */
"ip\0"
"glVertexAttribI3ivEXT\0"
"glVertexAttribI3iv\0"
"\0"
- /* _mesa_function_pool[25418]: Vertex3s (offset 140) */
+ /* _mesa_function_pool[25875]: Vertex3s (offset 140) */
"iii\0"
"glVertex3s\0"
"\0"
- /* _mesa_function_pool[25434]: ConvolutionParameterf (offset 350) */
+ /* _mesa_function_pool[25891]: ConvolutionParameterf (offset 350) */
"iif\0"
"glConvolutionParameterf\0"
"glConvolutionParameterfEXT\0"
"\0"
- /* _mesa_function_pool[25490]: GetColorTableParameteriv (offset 345) */
+ /* _mesa_function_pool[25947]: GetColorTableParameteriv (offset 345) */
"iip\0"
"glGetColorTableParameteriv\0"
"glGetColorTableParameterivSGI\0"
"glGetColorTableParameterivEXT\0"
"\0"
- /* _mesa_function_pool[25582]: ProgramEnvParameter4dvARB (will be remapped) */
+ /* _mesa_function_pool[26039]: ProgramEnvParameter4dvARB (will be remapped) */
"iip\0"
"glProgramEnvParameter4dvARB\0"
"glProgramParameter4dvNV\0"
"\0"
- /* _mesa_function_pool[25639]: ShadeModel (offset 177) */
+ /* _mesa_function_pool[26096]: ShadeModel (offset 177) */
"i\0"
"glShadeModel\0"
"\0"
- /* _mesa_function_pool[25655]: VertexAttribs2fvNV (will be remapped) */
+ /* _mesa_function_pool[26112]: VertexAttribs2fvNV (will be remapped) */
"iip\0"
"glVertexAttribs2fvNV\0"
"\0"
- /* _mesa_function_pool[25681]: Rectiv (offset 91) */
+ /* _mesa_function_pool[26138]: Rectiv (offset 91) */
"pp\0"
"glRectiv\0"
"\0"
- /* _mesa_function_pool[25694]: UseProgramObjectARB (will be remapped) */
+ /* _mesa_function_pool[26151]: UseProgramObjectARB (will be remapped) */
"i\0"
"glUseProgram\0"
"glUseProgramObjectARB\0"
"\0"
- /* _mesa_function_pool[25732]: GetMapParameterfvNV (dynamic) */
+ /* _mesa_function_pool[26189]: GetMapParameterfvNV (dynamic) */
"iip\0"
"glGetMapParameterfvNV\0"
"\0"
- /* _mesa_function_pool[25759]: EndConditionalRenderNV (will be remapped) */
+ /* _mesa_function_pool[26216]: EndConditionalRenderNV (will be remapped) */
"\0"
"glEndConditionalRenderNV\0"
"glEndConditionalRender\0"
"\0"
- /* _mesa_function_pool[25809]: PassTexCoordATI (will be remapped) */
+ /* _mesa_function_pool[26266]: PassTexCoordATI (will be remapped) */
"iii\0"
"glPassTexCoordATI\0"
"\0"
- /* _mesa_function_pool[25832]: DeleteProgram (will be remapped) */
+ /* _mesa_function_pool[26289]: DeleteProgram (will be remapped) */
"i\0"
"glDeleteProgram\0"
"\0"
- /* _mesa_function_pool[25851]: GetSamplerParameteriv (will be remapped) */
+ /* _mesa_function_pool[26308]: GetSamplerParameteriv (will be remapped) */
"iip\0"
"glGetSamplerParameteriv\0"
"\0"
- /* _mesa_function_pool[25880]: Tangent3dEXT (dynamic) */
+ /* _mesa_function_pool[26337]: Tangent3dEXT (dynamic) */
"ddd\0"
"glTangent3dEXT\0"
"\0"
- /* _mesa_function_pool[25900]: SecondaryColor3dvEXT (will be remapped) */
+ /* _mesa_function_pool[26357]: SecondaryColor3dvEXT (will be remapped) */
"p\0"
"glSecondaryColor3dv\0"
"glSecondaryColor3dvEXT\0"
"\0"
- /* _mesa_function_pool[25946]: AlphaFragmentOp2ATI (will be remapped) */
+ /* _mesa_function_pool[26403]: AlphaFragmentOp2ATI (will be remapped) */
"iiiiiiiii\0"
"glAlphaFragmentOp2ATI\0"
"\0"
- /* _mesa_function_pool[25979]: Vertex2fv (offset 129) */
+ /* _mesa_function_pool[26436]: Vertex2fv (offset 129) */
"p\0"
"glVertex2fv\0"
"\0"
- /* _mesa_function_pool[25994]: MultiDrawArraysEXT (will be remapped) */
+ /* _mesa_function_pool[26451]: MultiDrawArraysEXT (will be remapped) */
"ippi\0"
"glMultiDrawArrays\0"
"glMultiDrawArraysEXT\0"
"\0"
- /* _mesa_function_pool[26039]: BindRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[26496]: BindRenderbufferEXT (will be remapped) */
"ii\0"
"glBindRenderbuffer\0"
"glBindRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[26084]: MultiTexCoord4dARB (offset 400) */
+ /* _mesa_function_pool[26541]: MultiTexCoord4dARB (offset 400) */
"idddd\0"
"glMultiTexCoord4d\0"
"glMultiTexCoord4dARB\0"
"\0"
- /* _mesa_function_pool[26130]: FramebufferTextureFaceARB (will be remapped) */
+ /* _mesa_function_pool[26587]: FramebufferTextureFaceARB (will be remapped) */
"iiiii\0"
"glFramebufferTextureFaceARB\0"
"\0"
- /* _mesa_function_pool[26165]: Vertex3sv (offset 141) */
+ /* _mesa_function_pool[26622]: Vertex3sv (offset 141) */
"p\0"
"glVertex3sv\0"
"\0"
- /* _mesa_function_pool[26180]: SecondaryColor3usEXT (will be remapped) */
+ /* _mesa_function_pool[26637]: SecondaryColor3usEXT (will be remapped) */
"iii\0"
"glSecondaryColor3us\0"
"glSecondaryColor3usEXT\0"
"\0"
- /* _mesa_function_pool[26228]: ProgramLocalParameter4fvARB (will be remapped) */
+ /* _mesa_function_pool[26685]: ProgramLocalParameter4fvARB (will be remapped) */
"iip\0"
"glProgramLocalParameter4fvARB\0"
"\0"
- /* _mesa_function_pool[26263]: DeleteProgramsNV (will be remapped) */
+ /* _mesa_function_pool[26720]: DeleteProgramsNV (will be remapped) */
"ip\0"
"glDeleteProgramsARB\0"
"glDeleteProgramsNV\0"
"\0"
- /* _mesa_function_pool[26306]: EvalMesh1 (offset 236) */
+ /* _mesa_function_pool[26763]: EvalMesh1 (offset 236) */
"iii\0"
"glEvalMesh1\0"
"\0"
- /* _mesa_function_pool[26323]: PauseTransformFeedback (will be remapped) */
+ /* _mesa_function_pool[26780]: PauseTransformFeedback (will be remapped) */
"\0"
"glPauseTransformFeedback\0"
"\0"
- /* _mesa_function_pool[26350]: MultiTexCoord1sARB (offset 382) */
+ /* _mesa_function_pool[26807]: MultiTexCoord1sARB (offset 382) */
"ii\0"
"glMultiTexCoord1s\0"
"glMultiTexCoord1sARB\0"
"\0"
- /* _mesa_function_pool[26393]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[26850]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */
"iffffff\0"
"glReplacementCodeuiColor3fVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[26440]: GetVertexAttribPointervNV (will be remapped) */
+ /* _mesa_function_pool[26897]: GetVertexAttribPointervNV (will be remapped) */
"iip\0"
"glGetVertexAttribPointerv\0"
"glGetVertexAttribPointervARB\0"
"glGetVertexAttribPointervNV\0"
"\0"
- /* _mesa_function_pool[26528]: VertexAttribs1fvNV (will be remapped) */
+ /* _mesa_function_pool[26985]: VertexAttribs1fvNV (will be remapped) */
"iip\0"
"glVertexAttribs1fvNV\0"
"\0"
- /* _mesa_function_pool[26554]: MultiTexCoord1dvARB (offset 377) */
+ /* _mesa_function_pool[27011]: MultiTexCoord1dvARB (offset 377) */
"ip\0"
"glMultiTexCoord1dv\0"
"glMultiTexCoord1dvARB\0"
"\0"
- /* _mesa_function_pool[26599]: Uniform2iARB (will be remapped) */
+ /* _mesa_function_pool[27056]: Uniform2iARB (will be remapped) */
"iii\0"
"glUniform2i\0"
"glUniform2iARB\0"
"\0"
- /* _mesa_function_pool[26631]: Vertex2iv (offset 131) */
+ /* _mesa_function_pool[27088]: Vertex2iv (offset 131) */
"p\0"
"glVertex2iv\0"
"\0"
- /* _mesa_function_pool[26646]: GetProgramStringNV (will be remapped) */
+ /* _mesa_function_pool[27103]: GetProgramStringNV (will be remapped) */
"iip\0"
"glGetProgramStringNV\0"
"\0"
- /* _mesa_function_pool[26672]: ColorPointerEXT (will be remapped) */
+ /* _mesa_function_pool[27129]: ColorPointerEXT (will be remapped) */
"iiiip\0"
"glColorPointerEXT\0"
"\0"
- /* _mesa_function_pool[26697]: LineWidth (offset 168) */
+ /* _mesa_function_pool[27154]: LineWidth (offset 168) */
"f\0"
"glLineWidth\0"
"\0"
- /* _mesa_function_pool[26712]: MapBufferARB (will be remapped) */
+ /* _mesa_function_pool[27169]: MapBufferARB (will be remapped) */
"ii\0"
"glMapBuffer\0"
"glMapBufferARB\0"
"\0"
- /* _mesa_function_pool[26743]: MultiDrawElementsBaseVertex (will be remapped) */
+ /* _mesa_function_pool[27200]: MultiDrawElementsBaseVertex (will be remapped) */
"ipipip\0"
"glMultiDrawElementsBaseVertex\0"
"\0"
- /* _mesa_function_pool[26781]: TexParameterIuivEXT (will be remapped) */
+ /* _mesa_function_pool[27238]: TexParameterIuivEXT (will be remapped) */
"iip\0"
"glTexParameterIuivEXT\0"
"glTexParameterIuiv\0"
"\0"
- /* _mesa_function_pool[26827]: Binormal3svEXT (dynamic) */
+ /* _mesa_function_pool[27284]: Binormal3svEXT (dynamic) */
"p\0"
"glBinormal3svEXT\0"
"\0"
- /* _mesa_function_pool[26847]: ApplyTextureEXT (dynamic) */
+ /* _mesa_function_pool[27304]: ApplyTextureEXT (dynamic) */
"i\0"
"glApplyTextureEXT\0"
"\0"
- /* _mesa_function_pool[26868]: GetBufferParameteri64v (will be remapped) */
+ /* _mesa_function_pool[27325]: GetBufferParameteri64v (will be remapped) */
"iip\0"
"glGetBufferParameteri64v\0"
"\0"
- /* _mesa_function_pool[26898]: TexGendv (offset 189) */
+ /* _mesa_function_pool[27355]: TexGendv (offset 189) */
"iip\0"
"glTexGendv\0"
"\0"
- /* _mesa_function_pool[26914]: VertexAttribI3iEXT (will be remapped) */
+ /* _mesa_function_pool[27371]: VertexAttribI3iEXT (will be remapped) */
"iiii\0"
"glVertexAttribI3iEXT\0"
"glVertexAttribI3i\0"
"\0"
- /* _mesa_function_pool[26959]: EnableIndexedEXT (will be remapped) */
+ /* _mesa_function_pool[27416]: EnableIndexedEXT (will be remapped) */
"ii\0"
"glEnableIndexedEXT\0"
"glEnablei\0"
"\0"
- /* _mesa_function_pool[26992]: TextureMaterialEXT (dynamic) */
+ /* _mesa_function_pool[27449]: TextureMaterialEXT (dynamic) */
"ii\0"
"glTextureMaterialEXT\0"
"\0"
- /* _mesa_function_pool[27017]: TextureLightEXT (dynamic) */
+ /* _mesa_function_pool[27474]: TextureLightEXT (dynamic) */
"i\0"
"glTextureLightEXT\0"
"\0"
- /* _mesa_function_pool[27038]: ResetMinmax (offset 370) */
+ /* _mesa_function_pool[27495]: ResetMinmax (offset 370) */
"i\0"
"glResetMinmax\0"
"glResetMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[27072]: SpriteParameterfSGIX (dynamic) */
+ /* _mesa_function_pool[27529]: SpriteParameterfSGIX (dynamic) */
"if\0"
"glSpriteParameterfSGIX\0"
"\0"
- /* _mesa_function_pool[27099]: EnableClientState (offset 313) */
+ /* _mesa_function_pool[27556]: EnableClientState (offset 313) */
"i\0"
"glEnableClientState\0"
"\0"
- /* _mesa_function_pool[27122]: VertexAttrib4sNV (will be remapped) */
+ /* _mesa_function_pool[27579]: VertexAttrib4sNV (will be remapped) */
"iiiii\0"
"glVertexAttrib4sNV\0"
"\0"
- /* _mesa_function_pool[27148]: GetConvolutionParameterfv (offset 357) */
+ /* _mesa_function_pool[27605]: GetConvolutionParameterfv (offset 357) */
"iip\0"
"glGetConvolutionParameterfv\0"
"glGetConvolutionParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[27212]: VertexAttribs4dvNV (will be remapped) */
+ /* _mesa_function_pool[27669]: VertexAttribs4dvNV (will be remapped) */
"iip\0"
"glVertexAttribs4dvNV\0"
"\0"
- /* _mesa_function_pool[27238]: VertexAttrib4dARB (will be remapped) */
+ /* _mesa_function_pool[27695]: MultiModeDrawArraysIBM (will be remapped) */
+ "pppii\0"
+ "glMultiModeDrawArraysIBM\0"
+ "\0"
+ /* _mesa_function_pool[27727]: VertexAttrib4dARB (will be remapped) */
"idddd\0"
"glVertexAttrib4d\0"
"glVertexAttrib4dARB\0"
"\0"
- /* _mesa_function_pool[27282]: GetTexBumpParameterfvATI (will be remapped) */
+ /* _mesa_function_pool[27771]: GetTexBumpParameterfvATI (will be remapped) */
"ip\0"
"glGetTexBumpParameterfvATI\0"
"\0"
- /* _mesa_function_pool[27313]: ProgramNamedParameter4dNV (will be remapped) */
+ /* _mesa_function_pool[27802]: ProgramNamedParameter4dNV (will be remapped) */
"iipdddd\0"
"glProgramNamedParameter4dNV\0"
"\0"
- /* _mesa_function_pool[27350]: GetMaterialfv (offset 269) */
+ /* _mesa_function_pool[27839]: GetMaterialfv (offset 269) */
"iip\0"
"glGetMaterialfv\0"
"\0"
- /* _mesa_function_pool[27371]: VertexWeightfEXT (dynamic) */
+ /* _mesa_function_pool[27860]: VertexWeightfEXT (dynamic) */
"f\0"
"glVertexWeightfEXT\0"
"\0"
- /* _mesa_function_pool[27393]: SetFragmentShaderConstantATI (will be remapped) */
+ /* _mesa_function_pool[27882]: SetFragmentShaderConstantATI (will be remapped) */
"ip\0"
"glSetFragmentShaderConstantATI\0"
"\0"
- /* _mesa_function_pool[27428]: Binormal3fEXT (dynamic) */
+ /* _mesa_function_pool[27917]: Binormal3fEXT (dynamic) */
"fff\0"
"glBinormal3fEXT\0"
"\0"
- /* _mesa_function_pool[27449]: CallList (offset 2) */
+ /* _mesa_function_pool[27938]: CallList (offset 2) */
"i\0"
"glCallList\0"
"\0"
- /* _mesa_function_pool[27463]: Materialfv (offset 170) */
+ /* _mesa_function_pool[27952]: Materialfv (offset 170) */
"iip\0"
"glMaterialfv\0"
"\0"
- /* _mesa_function_pool[27481]: TexCoord3fv (offset 113) */
+ /* _mesa_function_pool[27970]: TexCoord3fv (offset 113) */
"p\0"
"glTexCoord3fv\0"
"\0"
- /* _mesa_function_pool[27498]: FogCoordfvEXT (will be remapped) */
+ /* _mesa_function_pool[27987]: FogCoordfvEXT (will be remapped) */
"p\0"
"glFogCoordfv\0"
"glFogCoordfvEXT\0"
"\0"
- /* _mesa_function_pool[27530]: MultiTexCoord1ivARB (offset 381) */
+ /* _mesa_function_pool[28019]: MultiTexCoord1ivARB (offset 381) */
"ip\0"
"glMultiTexCoord1iv\0"
"glMultiTexCoord1ivARB\0"
"\0"
- /* _mesa_function_pool[27575]: SecondaryColor3ubEXT (will be remapped) */
+ /* _mesa_function_pool[28064]: SecondaryColor3ubEXT (will be remapped) */
"iii\0"
"glSecondaryColor3ub\0"
"glSecondaryColor3ubEXT\0"
"\0"
- /* _mesa_function_pool[27623]: MultiTexCoord2ivARB (offset 389) */
+ /* _mesa_function_pool[28112]: MultiTexCoord2ivARB (offset 389) */
"ip\0"
"glMultiTexCoord2iv\0"
"glMultiTexCoord2ivARB\0"
"\0"
- /* _mesa_function_pool[27668]: FogFuncSGIS (dynamic) */
+ /* _mesa_function_pool[28157]: FogFuncSGIS (dynamic) */
"ip\0"
"glFogFuncSGIS\0"
"\0"
- /* _mesa_function_pool[27686]: CopyTexSubImage2D (offset 326) */
+ /* _mesa_function_pool[28175]: CopyTexSubImage2D (offset 326) */
"iiiiiiii\0"
"glCopyTexSubImage2D\0"
"glCopyTexSubImage2DEXT\0"
"\0"
- /* _mesa_function_pool[27739]: GetObjectParameterivARB (will be remapped) */
+ /* _mesa_function_pool[28228]: GetObjectParameterivARB (will be remapped) */
"iip\0"
"glGetObjectParameterivARB\0"
"\0"
- /* _mesa_function_pool[27770]: Color3iv (offset 16) */
+ /* _mesa_function_pool[28259]: Color3iv (offset 16) */
"p\0"
"glColor3iv\0"
"\0"
- /* _mesa_function_pool[27784]: TexCoord4fVertex4fSUN (dynamic) */
+ /* _mesa_function_pool[28273]: TexCoord4fVertex4fSUN (dynamic) */
"ffffffff\0"
"glTexCoord4fVertex4fSUN\0"
"\0"
- /* _mesa_function_pool[27818]: DrawElements (offset 311) */
+ /* _mesa_function_pool[28307]: DrawElements (offset 311) */
"iiip\0"
"glDrawElements\0"
"\0"
- /* _mesa_function_pool[27839]: BindVertexArrayAPPLE (will be remapped) */
+ /* _mesa_function_pool[28328]: BindVertexArrayAPPLE (will be remapped) */
"i\0"
"glBindVertexArrayAPPLE\0"
"\0"
- /* _mesa_function_pool[27865]: GetProgramLocalParameterdvARB (will be remapped) */
+ /* _mesa_function_pool[28354]: GetProgramLocalParameterdvARB (will be remapped) */
"iip\0"
"glGetProgramLocalParameterdvARB\0"
"\0"
- /* _mesa_function_pool[27902]: GetHistogramParameteriv (offset 363) */
+ /* _mesa_function_pool[28391]: GetHistogramParameteriv (offset 363) */
"iip\0"
"glGetHistogramParameteriv\0"
"glGetHistogramParameterivEXT\0"
"\0"
- /* _mesa_function_pool[27962]: MultiTexCoord1iARB (offset 380) */
+ /* _mesa_function_pool[28451]: MultiTexCoord1iARB (offset 380) */
"ii\0"
"glMultiTexCoord1i\0"
"glMultiTexCoord1iARB\0"
"\0"
- /* _mesa_function_pool[28005]: GetConvolutionFilter (offset 356) */
+ /* _mesa_function_pool[28494]: GetConvolutionFilter (offset 356) */
"iiip\0"
"glGetConvolutionFilter\0"
"glGetConvolutionFilterEXT\0"
"\0"
- /* _mesa_function_pool[28060]: GetProgramivARB (will be remapped) */
+ /* _mesa_function_pool[28549]: GetProgramivARB (will be remapped) */
"iip\0"
"glGetProgramivARB\0"
"\0"
- /* _mesa_function_pool[28083]: TexBufferARB (will be remapped) */
+ /* _mesa_function_pool[28572]: TexBufferARB (will be remapped) */
"iii\0"
"glTexBufferARB\0"
"\0"
- /* _mesa_function_pool[28103]: BlendFuncSeparateEXT (will be remapped) */
+ /* _mesa_function_pool[28592]: BlendFuncSeparateEXT (will be remapped) */
"iiii\0"
"glBlendFuncSeparate\0"
"glBlendFuncSeparateEXT\0"
"glBlendFuncSeparateINGR\0"
"\0"
- /* _mesa_function_pool[28176]: MapBufferRange (will be remapped) */
+ /* _mesa_function_pool[28665]: MapBufferRange (will be remapped) */
"iiii\0"
"glMapBufferRange\0"
"\0"
- /* _mesa_function_pool[28199]: ProgramParameters4dvNV (will be remapped) */
+ /* _mesa_function_pool[28688]: ProgramParameters4dvNV (will be remapped) */
"iiip\0"
"glProgramParameters4dvNV\0"
"\0"
- /* _mesa_function_pool[28230]: TexCoord2fColor3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[28719]: TexCoord2fColor3fVertex3fvSUN (dynamic) */
"ppp\0"
"glTexCoord2fColor3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[28267]: EvalPoint2 (offset 239) */
+ /* _mesa_function_pool[28756]: EvalPoint2 (offset 239) */
"ii\0"
"glEvalPoint2\0"
"\0"
- /* _mesa_function_pool[28284]: Uniform1uivEXT (will be remapped) */
+ /* _mesa_function_pool[28773]: Uniform1uivEXT (will be remapped) */
"iip\0"
"glUniform1uivEXT\0"
"glUniform1uiv\0"
"\0"
- /* _mesa_function_pool[28320]: EvalPoint1 (offset 237) */
+ /* _mesa_function_pool[28809]: EvalPoint1 (offset 237) */
"i\0"
"glEvalPoint1\0"
"\0"
- /* _mesa_function_pool[28336]: Binormal3dvEXT (dynamic) */
+ /* _mesa_function_pool[28825]: Binormal3dvEXT (dynamic) */
"p\0"
"glBinormal3dvEXT\0"
"\0"
- /* _mesa_function_pool[28356]: PopMatrix (offset 297) */
+ /* _mesa_function_pool[28845]: PopMatrix (offset 297) */
"\0"
"glPopMatrix\0"
"\0"
- /* _mesa_function_pool[28370]: FinishFenceNV (will be remapped) */
+ /* _mesa_function_pool[28859]: GetVertexAttribIuivEXT (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribIuivEXT\0"
+ "glGetVertexAttribIuiv\0"
+ "\0"
+ /* _mesa_function_pool[28911]: FinishFenceNV (will be remapped) */
"i\0"
"glFinishFenceNV\0"
"\0"
- /* _mesa_function_pool[28389]: GetFogFuncSGIS (dynamic) */
+ /* _mesa_function_pool[28930]: GetFogFuncSGIS (dynamic) */
"p\0"
"glGetFogFuncSGIS\0"
"\0"
- /* _mesa_function_pool[28409]: GetUniformLocationARB (will be remapped) */
+ /* _mesa_function_pool[28950]: GetUniformLocationARB (will be remapped) */
"ip\0"
"glGetUniformLocation\0"
"glGetUniformLocationARB\0"
"\0"
- /* _mesa_function_pool[28458]: SecondaryColor3fEXT (will be remapped) */
+ /* _mesa_function_pool[28999]: SecondaryColor3fEXT (will be remapped) */
"fff\0"
"glSecondaryColor3f\0"
"glSecondaryColor3fEXT\0"
"\0"
- /* _mesa_function_pool[28504]: GetTexGeniv (offset 280) */
+ /* _mesa_function_pool[29045]: GetTexGeniv (offset 280) */
"iip\0"
"glGetTexGeniv\0"
"\0"
- /* _mesa_function_pool[28523]: CombinerInputNV (will be remapped) */
+ /* _mesa_function_pool[29064]: CombinerInputNV (will be remapped) */
"iiiiii\0"
"glCombinerInputNV\0"
"\0"
- /* _mesa_function_pool[28549]: VertexAttrib3sARB (will be remapped) */
+ /* _mesa_function_pool[29090]: VertexAttrib3sARB (will be remapped) */
"iiii\0"
"glVertexAttrib3s\0"
"glVertexAttrib3sARB\0"
"\0"
- /* _mesa_function_pool[28592]: IsTransformFeedback (will be remapped) */
+ /* _mesa_function_pool[29133]: IsTransformFeedback (will be remapped) */
"i\0"
"glIsTransformFeedback\0"
"\0"
- /* _mesa_function_pool[28617]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */
+ /* _mesa_function_pool[29158]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */
"ppp\0"
"glReplacementCodeuiNormal3fVertex3fvSUN\0"
"\0"
- /* _mesa_function_pool[28662]: Map2d (offset 222) */
+ /* _mesa_function_pool[29203]: Map2d (offset 222) */
"iddiiddiip\0"
"glMap2d\0"
"\0"
- /* _mesa_function_pool[28682]: Map2f (offset 223) */
+ /* _mesa_function_pool[29223]: Map2f (offset 223) */
"iffiiffiip\0"
"glMap2f\0"
"\0"
- /* _mesa_function_pool[28702]: ProgramStringARB (will be remapped) */
+ /* _mesa_function_pool[29243]: ProgramStringARB (will be remapped) */
"iiip\0"
"glProgramStringARB\0"
"\0"
- /* _mesa_function_pool[28727]: Vertex4s (offset 148) */
+ /* _mesa_function_pool[29268]: Vertex4s (offset 148) */
"iiii\0"
"glVertex4s\0"
"\0"
- /* _mesa_function_pool[28744]: TexCoord4fVertex4fvSUN (dynamic) */
+ /* _mesa_function_pool[29285]: TexCoord4fVertex4fvSUN (dynamic) */
"pp\0"
"glTexCoord4fVertex4fvSUN\0"
"\0"
- /* _mesa_function_pool[28773]: FragmentLightModelivSGIX (dynamic) */
+ /* _mesa_function_pool[29314]: FragmentLightModelivSGIX (dynamic) */
"ip\0"
"glFragmentLightModelivSGIX\0"
"\0"
- /* _mesa_function_pool[28804]: VertexAttrib1fNV (will be remapped) */
+ /* _mesa_function_pool[29345]: VertexAttrib1fNV (will be remapped) */
"if\0"
"glVertexAttrib1fNV\0"
"\0"
- /* _mesa_function_pool[28827]: Vertex4f (offset 144) */
+ /* _mesa_function_pool[29368]: Vertex4f (offset 144) */
"ffff\0"
"glVertex4f\0"
"\0"
- /* _mesa_function_pool[28844]: EvalCoord1d (offset 228) */
+ /* _mesa_function_pool[29385]: EvalCoord1d (offset 228) */
"d\0"
"glEvalCoord1d\0"
"\0"
- /* _mesa_function_pool[28861]: Vertex4d (offset 142) */
+ /* _mesa_function_pool[29402]: Vertex4d (offset 142) */
"dddd\0"
"glVertex4d\0"
"\0"
- /* _mesa_function_pool[28878]: RasterPos4dv (offset 79) */
+ /* _mesa_function_pool[29419]: RasterPos4dv (offset 79) */
"p\0"
"glRasterPos4dv\0"
"\0"
- /* _mesa_function_pool[28896]: UseShaderProgramEXT (will be remapped) */
+ /* _mesa_function_pool[29437]: UseShaderProgramEXT (will be remapped) */
"ii\0"
"glUseShaderProgramEXT\0"
"\0"
- /* _mesa_function_pool[28922]: FragmentLightfSGIX (dynamic) */
+ /* _mesa_function_pool[29463]: FragmentLightfSGIX (dynamic) */
"iif\0"
"glFragmentLightfSGIX\0"
"\0"
- /* _mesa_function_pool[28948]: GetCompressedTexImageARB (will be remapped) */
+ /* _mesa_function_pool[29489]: GetCompressedTexImageARB (will be remapped) */
"iip\0"
"glGetCompressedTexImage\0"
"glGetCompressedTexImageARB\0"
"\0"
- /* _mesa_function_pool[29004]: GetTexGenfv (offset 279) */
+ /* _mesa_function_pool[29545]: GetTexGenfv (offset 279) */
"iip\0"
"glGetTexGenfv\0"
"\0"
- /* _mesa_function_pool[29023]: Vertex4i (offset 146) */
+ /* _mesa_function_pool[29564]: Vertex4i (offset 146) */
"iiii\0"
"glVertex4i\0"
"\0"
- /* _mesa_function_pool[29040]: VertexWeightPointerEXT (dynamic) */
+ /* _mesa_function_pool[29581]: VertexWeightPointerEXT (dynamic) */
"iiip\0"
"glVertexWeightPointerEXT\0"
"\0"
- /* _mesa_function_pool[29071]: GetHistogram (offset 361) */
+ /* _mesa_function_pool[29612]: GetHistogram (offset 361) */
"iiiip\0"
"glGetHistogram\0"
"glGetHistogramEXT\0"
"\0"
- /* _mesa_function_pool[29111]: ActiveStencilFaceEXT (will be remapped) */
+ /* _mesa_function_pool[29652]: ActiveStencilFaceEXT (will be remapped) */
"i\0"
"glActiveStencilFaceEXT\0"
"\0"
- /* _mesa_function_pool[29137]: StencilFuncSeparateATI (will be remapped) */
+ /* _mesa_function_pool[29678]: StencilFuncSeparateATI (will be remapped) */
"iiii\0"
"glStencilFuncSeparateATI\0"
"\0"
- /* _mesa_function_pool[29168]: Materialf (offset 169) */
+ /* _mesa_function_pool[29709]: Materialf (offset 169) */
"iif\0"
"glMaterialf\0"
"\0"
- /* _mesa_function_pool[29185]: GetShaderSourceARB (will be remapped) */
+ /* _mesa_function_pool[29726]: GetShaderSourceARB (will be remapped) */
"iipp\0"
"glGetShaderSource\0"
"glGetShaderSourceARB\0"
"\0"
- /* _mesa_function_pool[29230]: IglooInterfaceSGIX (dynamic) */
+ /* _mesa_function_pool[29771]: IglooInterfaceSGIX (dynamic) */
"ip\0"
"glIglooInterfaceSGIX\0"
"\0"
- /* _mesa_function_pool[29255]: Materiali (offset 171) */
+ /* _mesa_function_pool[29796]: Materiali (offset 171) */
"iii\0"
"glMateriali\0"
"\0"
- /* _mesa_function_pool[29272]: VertexAttrib4dNV (will be remapped) */
+ /* _mesa_function_pool[29813]: VertexAttrib4dNV (will be remapped) */
"idddd\0"
"glVertexAttrib4dNV\0"
"\0"
- /* _mesa_function_pool[29298]: MultiModeDrawElementsIBM (will be remapped) */
+ /* _mesa_function_pool[29839]: MultiModeDrawElementsIBM (will be remapped) */
"ppipii\0"
"glMultiModeDrawElementsIBM\0"
"\0"
- /* _mesa_function_pool[29333]: Indexsv (offset 51) */
+ /* _mesa_function_pool[29874]: Indexsv (offset 51) */
"p\0"
"glIndexsv\0"
"\0"
- /* _mesa_function_pool[29346]: MultiTexCoord4svARB (offset 407) */
+ /* _mesa_function_pool[29887]: MultiTexCoord4svARB (offset 407) */
"ip\0"
"glMultiTexCoord4sv\0"
"glMultiTexCoord4svARB\0"
"\0"
- /* _mesa_function_pool[29391]: LightModelfv (offset 164) */
+ /* _mesa_function_pool[29932]: LightModelfv (offset 164) */
"ip\0"
"glLightModelfv\0"
"\0"
- /* _mesa_function_pool[29410]: TexCoord2dv (offset 103) */
+ /* _mesa_function_pool[29951]: TexCoord2dv (offset 103) */
"p\0"
"glTexCoord2dv\0"
"\0"
- /* _mesa_function_pool[29427]: GenQueriesARB (will be remapped) */
+ /* _mesa_function_pool[29968]: GenQueriesARB (will be remapped) */
"ip\0"
"glGenQueries\0"
"glGenQueriesARB\0"
"\0"
- /* _mesa_function_pool[29460]: EvalCoord1dv (offset 229) */
+ /* _mesa_function_pool[30001]: EvalCoord1dv (offset 229) */
"p\0"
"glEvalCoord1dv\0"
"\0"
- /* _mesa_function_pool[29478]: ReplacementCodeuiVertex3fSUN (dynamic) */
+ /* _mesa_function_pool[30019]: ReplacementCodeuiVertex3fSUN (dynamic) */
"ifff\0"
"glReplacementCodeuiVertex3fSUN\0"
"\0"
- /* _mesa_function_pool[29515]: Translated (offset 303) */
+ /* _mesa_function_pool[30056]: Translated (offset 303) */
"ddd\0"
"glTranslated\0"
"\0"
- /* _mesa_function_pool[29533]: Translatef (offset 304) */
+ /* _mesa_function_pool[30074]: Translatef (offset 304) */
"fff\0"
"glTranslatef\0"
"\0"
- /* _mesa_function_pool[29551]: Uniform3uiEXT (will be remapped) */
+ /* _mesa_function_pool[30092]: Uniform3uiEXT (will be remapped) */
"iiii\0"
"glUniform3uiEXT\0"
"glUniform3ui\0"
"\0"
- /* _mesa_function_pool[29586]: StencilMask (offset 209) */
+ /* _mesa_function_pool[30127]: StencilMask (offset 209) */
"i\0"
"glStencilMask\0"
"\0"
- /* _mesa_function_pool[29603]: Tangent3iEXT (dynamic) */
+ /* _mesa_function_pool[30144]: Tangent3iEXT (dynamic) */
"iii\0"
"glTangent3iEXT\0"
"\0"
- /* _mesa_function_pool[29623]: ClampColorARB (will be remapped) */
+ /* _mesa_function_pool[30164]: ClampColorARB (will be remapped) */
"ii\0"
"glClampColorARB\0"
"\0"
- /* _mesa_function_pool[29643]: GetLightiv (offset 265) */
+ /* _mesa_function_pool[30184]: GetLightiv (offset 265) */
"iip\0"
"glGetLightiv\0"
"\0"
- /* _mesa_function_pool[29661]: GetSamplerParameterIiv (will be remapped) */
+ /* _mesa_function_pool[30202]: GetSamplerParameterIiv (will be remapped) */
"iip\0"
"glGetSamplerParameterIiv\0"
"\0"
- /* _mesa_function_pool[29691]: DrawMeshArraysSUN (dynamic) */
+ /* _mesa_function_pool[30232]: DrawMeshArraysSUN (dynamic) */
"iiii\0"
"glDrawMeshArraysSUN\0"
"\0"
- /* _mesa_function_pool[29717]: IsList (offset 287) */
+ /* _mesa_function_pool[30258]: IsList (offset 287) */
"i\0"
"glIsList\0"
"\0"
- /* _mesa_function_pool[29729]: IsSync (will be remapped) */
+ /* _mesa_function_pool[30270]: IsSync (will be remapped) */
"i\0"
"glIsSync\0"
"\0"
- /* _mesa_function_pool[29741]: RenderMode (offset 196) */
+ /* _mesa_function_pool[30282]: RenderMode (offset 196) */
"i\0"
"glRenderMode\0"
"\0"
- /* _mesa_function_pool[29757]: GetMapControlPointsNV (dynamic) */
+ /* _mesa_function_pool[30298]: GetMapControlPointsNV (dynamic) */
"iiiiiip\0"
"glGetMapControlPointsNV\0"
"\0"
- /* _mesa_function_pool[29790]: DrawBuffersARB (will be remapped) */
+ /* _mesa_function_pool[30331]: DrawBuffersARB (will be remapped) */
"ip\0"
"glDrawBuffers\0"
"glDrawBuffersARB\0"
"glDrawBuffersATI\0"
"\0"
- /* _mesa_function_pool[29842]: ClearBufferiv (will be remapped) */
+ /* _mesa_function_pool[30383]: ClearBufferiv (will be remapped) */
"iip\0"
"glClearBufferiv\0"
"\0"
- /* _mesa_function_pool[29863]: ProgramLocalParameter4fARB (will be remapped) */
+ /* _mesa_function_pool[30404]: ProgramLocalParameter4fARB (will be remapped) */
"iiffff\0"
"glProgramLocalParameter4fARB\0"
"\0"
- /* _mesa_function_pool[29900]: SpriteParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[30441]: SpriteParameterivSGIX (dynamic) */
"ip\0"
"glSpriteParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[29928]: ProvokingVertexEXT (will be remapped) */
+ /* _mesa_function_pool[30469]: ProvokingVertexEXT (will be remapped) */
"i\0"
"glProvokingVertexEXT\0"
"glProvokingVertex\0"
"\0"
- /* _mesa_function_pool[29970]: MultiTexCoord1fARB (offset 378) */
+ /* _mesa_function_pool[30511]: MultiTexCoord1fARB (offset 378) */
"if\0"
"glMultiTexCoord1f\0"
"glMultiTexCoord1fARB\0"
"\0"
- /* _mesa_function_pool[30013]: LoadName (offset 198) */
+ /* _mesa_function_pool[30554]: LoadName (offset 198) */
"i\0"
"glLoadName\0"
"\0"
- /* _mesa_function_pool[30027]: VertexAttribs4ubvNV (will be remapped) */
+ /* _mesa_function_pool[30568]: VertexAttribs4ubvNV (will be remapped) */
"iip\0"
"glVertexAttribs4ubvNV\0"
"\0"
- /* _mesa_function_pool[30054]: WeightsvARB (dynamic) */
+ /* _mesa_function_pool[30595]: WeightsvARB (dynamic) */
"ip\0"
"glWeightsvARB\0"
"\0"
- /* _mesa_function_pool[30072]: Uniform1fvARB (will be remapped) */
+ /* _mesa_function_pool[30613]: Uniform1fvARB (will be remapped) */
"iip\0"
"glUniform1fv\0"
"glUniform1fvARB\0"
"\0"
- /* _mesa_function_pool[30106]: CopyTexSubImage1D (offset 325) */
+ /* _mesa_function_pool[30647]: CopyTexSubImage1D (offset 325) */
"iiiiii\0"
"glCopyTexSubImage1D\0"
"glCopyTexSubImage1DEXT\0"
"\0"
- /* _mesa_function_pool[30157]: CullFace (offset 152) */
+ /* _mesa_function_pool[30698]: CullFace (offset 152) */
"i\0"
"glCullFace\0"
"\0"
- /* _mesa_function_pool[30171]: BindTexture (offset 307) */
+ /* _mesa_function_pool[30712]: BindTexture (offset 307) */
"ii\0"
"glBindTexture\0"
"glBindTextureEXT\0"
"\0"
- /* _mesa_function_pool[30206]: BeginFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[30747]: BeginFragmentShaderATI (will be remapped) */
"\0"
"glBeginFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[30233]: MultiTexCoord4fARB (offset 402) */
+ /* _mesa_function_pool[30774]: MultiTexCoord4fARB (offset 402) */
"iffff\0"
"glMultiTexCoord4f\0"
"glMultiTexCoord4fARB\0"
"\0"
- /* _mesa_function_pool[30279]: VertexAttribs3svNV (will be remapped) */
+ /* _mesa_function_pool[30820]: VertexAttribs3svNV (will be remapped) */
"iip\0"
"glVertexAttribs3svNV\0"
"\0"
- /* _mesa_function_pool[30305]: StencilFunc (offset 243) */
+ /* _mesa_function_pool[30846]: StencilFunc (offset 243) */
"iii\0"
"glStencilFunc\0"
"\0"
- /* _mesa_function_pool[30324]: CopyPixels (offset 255) */
+ /* _mesa_function_pool[30865]: CopyPixels (offset 255) */
"iiiii\0"
"glCopyPixels\0"
"\0"
- /* _mesa_function_pool[30344]: Rectsv (offset 93) */
+ /* _mesa_function_pool[30885]: Rectsv (offset 93) */
"pp\0"
"glRectsv\0"
"\0"
- /* _mesa_function_pool[30357]: ReplacementCodeuivSUN (dynamic) */
+ /* _mesa_function_pool[30898]: ReplacementCodeuivSUN (dynamic) */
"p\0"
"glReplacementCodeuivSUN\0"
"\0"
- /* _mesa_function_pool[30384]: EnableVertexAttribArrayARB (will be remapped) */
+ /* _mesa_function_pool[30925]: EnableVertexAttribArrayARB (will be remapped) */
"i\0"
"glEnableVertexAttribArray\0"
"glEnableVertexAttribArrayARB\0"
"\0"
- /* _mesa_function_pool[30442]: NormalPointervINTEL (dynamic) */
+ /* _mesa_function_pool[30983]: NormalPointervINTEL (dynamic) */
"ip\0"
"glNormalPointervINTEL\0"
"\0"
- /* _mesa_function_pool[30468]: CopyConvolutionFilter2D (offset 355) */
+ /* _mesa_function_pool[31009]: CopyConvolutionFilter2D (offset 355) */
"iiiiii\0"
"glCopyConvolutionFilter2D\0"
"glCopyConvolutionFilter2DEXT\0"
"\0"
- /* _mesa_function_pool[30531]: WindowPos3ivMESA (will be remapped) */
+ /* _mesa_function_pool[31072]: WindowPos3ivMESA (will be remapped) */
"p\0"
"glWindowPos3iv\0"
"glWindowPos3ivARB\0"
"glWindowPos3ivMESA\0"
"\0"
- /* _mesa_function_pool[30586]: CopyBufferSubData (will be remapped) */
+ /* _mesa_function_pool[31127]: CopyBufferSubData (will be remapped) */
"iiiii\0"
"glCopyBufferSubData\0"
"\0"
- /* _mesa_function_pool[30613]: NormalPointer (offset 318) */
+ /* _mesa_function_pool[31154]: NormalPointer (offset 318) */
"iip\0"
"glNormalPointer\0"
"\0"
- /* _mesa_function_pool[30634]: TexParameterfv (offset 179) */
+ /* _mesa_function_pool[31175]: TexParameterfv (offset 179) */
"iip\0"
"glTexParameterfv\0"
"\0"
- /* _mesa_function_pool[30656]: IsBufferARB (will be remapped) */
+ /* _mesa_function_pool[31197]: IsBufferARB (will be remapped) */
"i\0"
"glIsBuffer\0"
"glIsBufferARB\0"
"\0"
- /* _mesa_function_pool[30684]: WindowPos4iMESA (will be remapped) */
+ /* _mesa_function_pool[31225]: WindowPos4iMESA (will be remapped) */
"iiii\0"
"glWindowPos4iMESA\0"
"\0"
- /* _mesa_function_pool[30708]: VertexAttrib4uivARB (will be remapped) */
+ /* _mesa_function_pool[31249]: VertexAttrib4uivARB (will be remapped) */
"ip\0"
"glVertexAttrib4uiv\0"
"glVertexAttrib4uivARB\0"
"\0"
- /* _mesa_function_pool[30753]: Tangent3bvEXT (dynamic) */
+ /* _mesa_function_pool[31294]: Tangent3bvEXT (dynamic) */
"p\0"
"glTangent3bvEXT\0"
"\0"
- /* _mesa_function_pool[30772]: VertexAttribI3uivEXT (will be remapped) */
+ /* _mesa_function_pool[31313]: VertexAttribI3uivEXT (will be remapped) */
"ip\0"
"glVertexAttribI3uivEXT\0"
"glVertexAttribI3uiv\0"
"\0"
- /* _mesa_function_pool[30819]: UniformMatrix3x4fv (will be remapped) */
+ /* _mesa_function_pool[31360]: UniformMatrix3x4fv (will be remapped) */
"iiip\0"
"glUniformMatrix3x4fv\0"
"\0"
- /* _mesa_function_pool[30846]: ClipPlane (offset 150) */
+ /* _mesa_function_pool[31387]: ClipPlane (offset 150) */
"ip\0"
"glClipPlane\0"
"\0"
- /* _mesa_function_pool[30862]: Recti (offset 90) */
+ /* _mesa_function_pool[31403]: Recti (offset 90) */
"iiii\0"
"glRecti\0"
"\0"
- /* _mesa_function_pool[30876]: TrackMatrixNV (will be remapped) */
+ /* _mesa_function_pool[31417]: TrackMatrixNV (will be remapped) */
"iiii\0"
"glTrackMatrixNV\0"
"\0"
- /* _mesa_function_pool[30898]: DrawRangeElementsBaseVertex (will be remapped) */
+ /* _mesa_function_pool[31439]: DrawRangeElementsBaseVertex (will be remapped) */
"iiiiipi\0"
"glDrawRangeElementsBaseVertex\0"
"\0"
- /* _mesa_function_pool[30937]: SamplerParameterIuiv (will be remapped) */
+ /* _mesa_function_pool[31478]: SamplerParameterIuiv (will be remapped) */
"iip\0"
"glSamplerParameterIuiv\0"
"\0"
- /* _mesa_function_pool[30965]: TexCoordPointervINTEL (dynamic) */
+ /* _mesa_function_pool[31506]: TexCoordPointervINTEL (dynamic) */
"iip\0"
"glTexCoordPointervINTEL\0"
"\0"
- /* _mesa_function_pool[30994]: DeleteBuffersARB (will be remapped) */
+ /* _mesa_function_pool[31535]: DeleteBuffersARB (will be remapped) */
"ip\0"
"glDeleteBuffers\0"
"glDeleteBuffersARB\0"
"\0"
- /* _mesa_function_pool[31033]: PixelTransformParameterfvEXT (dynamic) */
+ /* _mesa_function_pool[31574]: PixelTransformParameterfvEXT (dynamic) */
"iip\0"
"glPixelTransformParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[31069]: PrimitiveRestartNV (will be remapped) */
+ /* _mesa_function_pool[31610]: PrimitiveRestartNV (will be remapped) */
"\0"
"glPrimitiveRestartNV\0"
"\0"
- /* _mesa_function_pool[31092]: WindowPos4fvMESA (will be remapped) */
+ /* _mesa_function_pool[31633]: WindowPos4fvMESA (will be remapped) */
"p\0"
"glWindowPos4fvMESA\0"
"\0"
- /* _mesa_function_pool[31114]: GetPixelMapuiv (offset 272) */
+ /* _mesa_function_pool[31655]: GetPixelMapuiv (offset 272) */
"ip\0"
"glGetPixelMapuiv\0"
"\0"
- /* _mesa_function_pool[31135]: Rectf (offset 88) */
+ /* _mesa_function_pool[31676]: Rectf (offset 88) */
"ffff\0"
"glRectf\0"
"\0"
- /* _mesa_function_pool[31149]: VertexAttrib1sNV (will be remapped) */
+ /* _mesa_function_pool[31690]: VertexAttrib1sNV (will be remapped) */
"ii\0"
"glVertexAttrib1sNV\0"
"\0"
- /* _mesa_function_pool[31172]: Indexfv (offset 47) */
+ /* _mesa_function_pool[31713]: Indexfv (offset 47) */
"p\0"
"glIndexfv\0"
"\0"
- /* _mesa_function_pool[31185]: SecondaryColor3svEXT (will be remapped) */
+ /* _mesa_function_pool[31726]: SecondaryColor3svEXT (will be remapped) */
"p\0"
"glSecondaryColor3sv\0"
"glSecondaryColor3svEXT\0"
"\0"
- /* _mesa_function_pool[31231]: LoadTransposeMatrixfARB (will be remapped) */
+ /* _mesa_function_pool[31772]: LoadTransposeMatrixfARB (will be remapped) */
"p\0"
"glLoadTransposeMatrixf\0"
"glLoadTransposeMatrixfARB\0"
"\0"
- /* _mesa_function_pool[31283]: GetPointerv (offset 329) */
+ /* _mesa_function_pool[31824]: GetPointerv (offset 329) */
"ip\0"
"glGetPointerv\0"
"glGetPointervEXT\0"
"\0"
- /* _mesa_function_pool[31318]: Tangent3bEXT (dynamic) */
+ /* _mesa_function_pool[31859]: Tangent3bEXT (dynamic) */
"iii\0"
"glTangent3bEXT\0"
"\0"
- /* _mesa_function_pool[31338]: CombinerParameterfNV (will be remapped) */
+ /* _mesa_function_pool[31879]: CombinerParameterfNV (will be remapped) */
"if\0"
"glCombinerParameterfNV\0"
"\0"
- /* _mesa_function_pool[31365]: IndexMask (offset 212) */
+ /* _mesa_function_pool[31906]: IndexMask (offset 212) */
"i\0"
"glIndexMask\0"
"\0"
- /* _mesa_function_pool[31380]: BindProgramNV (will be remapped) */
+ /* _mesa_function_pool[31921]: BindProgramNV (will be remapped) */
"ii\0"
"glBindProgramARB\0"
"glBindProgramNV\0"
"\0"
- /* _mesa_function_pool[31417]: VertexAttrib4svARB (will be remapped) */
+ /* _mesa_function_pool[31958]: VertexAttrib4svARB (will be remapped) */
"ip\0"
"glVertexAttrib4sv\0"
"glVertexAttrib4svARB\0"
"\0"
- /* _mesa_function_pool[31460]: GetFloatv (offset 262) */
+ /* _mesa_function_pool[32001]: GetFloatv (offset 262) */
"ip\0"
"glGetFloatv\0"
"\0"
- /* _mesa_function_pool[31476]: CreateDebugObjectMESA (dynamic) */
+ /* _mesa_function_pool[32017]: CreateDebugObjectMESA (dynamic) */
"\0"
"glCreateDebugObjectMESA\0"
"\0"
- /* _mesa_function_pool[31502]: GetShaderiv (will be remapped) */
+ /* _mesa_function_pool[32043]: GetShaderiv (will be remapped) */
"iip\0"
"glGetShaderiv\0"
"\0"
- /* _mesa_function_pool[31521]: ClientWaitSync (will be remapped) */
+ /* _mesa_function_pool[32062]: ClientWaitSync (will be remapped) */
"iii\0"
"glClientWaitSync\0"
"\0"
- /* _mesa_function_pool[31543]: TexCoord4s (offset 124) */
+ /* _mesa_function_pool[32084]: TexCoord4s (offset 124) */
"iiii\0"
"glTexCoord4s\0"
"\0"
- /* _mesa_function_pool[31562]: TexCoord3sv (offset 117) */
+ /* _mesa_function_pool[32103]: TexCoord3sv (offset 117) */
"p\0"
"glTexCoord3sv\0"
"\0"
- /* _mesa_function_pool[31579]: BindFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[32120]: BindFragmentShaderATI (will be remapped) */
"i\0"
"glBindFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[31606]: PopAttrib (offset 218) */
+ /* _mesa_function_pool[32147]: PopAttrib (offset 218) */
"\0"
"glPopAttrib\0"
"\0"
- /* _mesa_function_pool[31620]: Fogfv (offset 154) */
+ /* _mesa_function_pool[32161]: Fogfv (offset 154) */
"ip\0"
"glFogfv\0"
"\0"
- /* _mesa_function_pool[31632]: UnmapBufferARB (will be remapped) */
+ /* _mesa_function_pool[32173]: UnmapBufferARB (will be remapped) */
"i\0"
"glUnmapBuffer\0"
"glUnmapBufferARB\0"
"\0"
- /* _mesa_function_pool[31666]: InitNames (offset 197) */
+ /* _mesa_function_pool[32207]: InitNames (offset 197) */
"\0"
"glInitNames\0"
"\0"
- /* _mesa_function_pool[31680]: Normal3sv (offset 61) */
+ /* _mesa_function_pool[32221]: Normal3sv (offset 61) */
"p\0"
"glNormal3sv\0"
"\0"
- /* _mesa_function_pool[31695]: Minmax (offset 368) */
+ /* _mesa_function_pool[32236]: Minmax (offset 368) */
"iii\0"
"glMinmax\0"
"glMinmaxEXT\0"
"\0"
- /* _mesa_function_pool[31721]: TexCoord4d (offset 118) */
+ /* _mesa_function_pool[32262]: TexCoord4d (offset 118) */
"dddd\0"
"glTexCoord4d\0"
"\0"
- /* _mesa_function_pool[31740]: DeformationMap3dSGIX (dynamic) */
- "iddiiddiiddiip\0"
- "glDeformationMap3dSGIX\0"
- "\0"
- /* _mesa_function_pool[31779]: TexCoord4f (offset 120) */
+ /* _mesa_function_pool[32281]: TexCoord4f (offset 120) */
"ffff\0"
"glTexCoord4f\0"
"\0"
- /* _mesa_function_pool[31798]: FogCoorddvEXT (will be remapped) */
+ /* _mesa_function_pool[32300]: FogCoorddvEXT (will be remapped) */
"p\0"
"glFogCoorddv\0"
"glFogCoorddvEXT\0"
"\0"
- /* _mesa_function_pool[31830]: FinishTextureSUNX (dynamic) */
+ /* _mesa_function_pool[32332]: FinishTextureSUNX (dynamic) */
"\0"
"glFinishTextureSUNX\0"
"\0"
- /* _mesa_function_pool[31852]: GetFragmentLightfvSGIX (dynamic) */
+ /* _mesa_function_pool[32354]: GetFragmentLightfvSGIX (dynamic) */
"iip\0"
"glGetFragmentLightfvSGIX\0"
"\0"
- /* _mesa_function_pool[31882]: Binormal3fvEXT (dynamic) */
+ /* _mesa_function_pool[32384]: Binormal3fvEXT (dynamic) */
"p\0"
"glBinormal3fvEXT\0"
"\0"
- /* _mesa_function_pool[31902]: GetBooleanv (offset 258) */
+ /* _mesa_function_pool[32404]: GetBooleanv (offset 258) */
"ip\0"
"glGetBooleanv\0"
"\0"
- /* _mesa_function_pool[31920]: ColorFragmentOp3ATI (will be remapped) */
+ /* _mesa_function_pool[32422]: ColorFragmentOp3ATI (will be remapped) */
"iiiiiiiiiiiii\0"
"glColorFragmentOp3ATI\0"
"\0"
- /* _mesa_function_pool[31957]: Hint (offset 158) */
+ /* _mesa_function_pool[32459]: Hint (offset 158) */
"ii\0"
"glHint\0"
"\0"
- /* _mesa_function_pool[31968]: Color4dv (offset 28) */
+ /* _mesa_function_pool[32470]: Color4dv (offset 28) */
"p\0"
"glColor4dv\0"
"\0"
- /* _mesa_function_pool[31982]: VertexAttrib2svARB (will be remapped) */
+ /* _mesa_function_pool[32484]: VertexAttrib2svARB (will be remapped) */
"ip\0"
"glVertexAttrib2sv\0"
"glVertexAttrib2svARB\0"
"\0"
- /* _mesa_function_pool[32025]: AreProgramsResidentNV (will be remapped) */
+ /* _mesa_function_pool[32527]: AreProgramsResidentNV (will be remapped) */
"ipp\0"
"glAreProgramsResidentNV\0"
"\0"
- /* _mesa_function_pool[32054]: WindowPos3svMESA (will be remapped) */
+ /* _mesa_function_pool[32556]: WindowPos3svMESA (will be remapped) */
"p\0"
"glWindowPos3sv\0"
"glWindowPos3svARB\0"
"glWindowPos3svMESA\0"
"\0"
- /* _mesa_function_pool[32109]: CopyColorSubTable (offset 347) */
+ /* _mesa_function_pool[32611]: CopyColorSubTable (offset 347) */
"iiiii\0"
"glCopyColorSubTable\0"
"glCopyColorSubTableEXT\0"
"\0"
- /* _mesa_function_pool[32159]: WeightdvARB (dynamic) */
+ /* _mesa_function_pool[32661]: WeightdvARB (dynamic) */
"ip\0"
"glWeightdvARB\0"
"\0"
- /* _mesa_function_pool[32177]: DeleteRenderbuffersEXT (will be remapped) */
+ /* _mesa_function_pool[32679]: DeleteRenderbuffersEXT (will be remapped) */
"ip\0"
"glDeleteRenderbuffers\0"
"glDeleteRenderbuffersEXT\0"
"\0"
- /* _mesa_function_pool[32228]: VertexAttrib4NubvARB (will be remapped) */
+ /* _mesa_function_pool[32730]: VertexAttrib4NubvARB (will be remapped) */
"ip\0"
"glVertexAttrib4Nubv\0"
"glVertexAttrib4NubvARB\0"
"\0"
- /* _mesa_function_pool[32275]: VertexAttrib3dvNV (will be remapped) */
+ /* _mesa_function_pool[32777]: VertexAttrib3dvNV (will be remapped) */
"ip\0"
"glVertexAttrib3dvNV\0"
"\0"
- /* _mesa_function_pool[32299]: GetObjectParameterfvARB (will be remapped) */
+ /* _mesa_function_pool[32801]: GetObjectParameterfvARB (will be remapped) */
"iip\0"
"glGetObjectParameterfvARB\0"
"\0"
- /* _mesa_function_pool[32330]: Vertex4iv (offset 147) */
+ /* _mesa_function_pool[32832]: Vertex4iv (offset 147) */
"p\0"
"glVertex4iv\0"
"\0"
- /* _mesa_function_pool[32345]: GetProgramEnvParameterdvARB (will be remapped) */
+ /* _mesa_function_pool[32847]: GetProgramEnvParameterdvARB (will be remapped) */
"iip\0"
"glGetProgramEnvParameterdvARB\0"
"\0"
- /* _mesa_function_pool[32380]: TexCoord4dv (offset 119) */
+ /* _mesa_function_pool[32882]: TexCoord4dv (offset 119) */
"p\0"
"glTexCoord4dv\0"
"\0"
- /* _mesa_function_pool[32397]: LockArraysEXT (will be remapped) */
+ /* _mesa_function_pool[32899]: LockArraysEXT (will be remapped) */
"ii\0"
"glLockArraysEXT\0"
"\0"
- /* _mesa_function_pool[32417]: Begin (offset 7) */
+ /* _mesa_function_pool[32919]: Begin (offset 7) */
"i\0"
"glBegin\0"
"\0"
- /* _mesa_function_pool[32428]: LightModeli (offset 165) */
+ /* _mesa_function_pool[32930]: LightModeli (offset 165) */
"ii\0"
"glLightModeli\0"
"\0"
- /* _mesa_function_pool[32446]: VertexAttribI4ivEXT (will be remapped) */
+ /* _mesa_function_pool[32948]: VertexAttribI4ivEXT (will be remapped) */
"ip\0"
"glVertexAttribI4ivEXT\0"
"glVertexAttribI4iv\0"
"\0"
- /* _mesa_function_pool[32491]: Rectfv (offset 89) */
+ /* _mesa_function_pool[32993]: Rectfv (offset 89) */
"pp\0"
"glRectfv\0"
"\0"
- /* _mesa_function_pool[32504]: LightModelf (offset 163) */
+ /* _mesa_function_pool[33006]: BlendEquationSeparateiARB (will be remapped) */
+ "iii\0"
+ "glBlendEquationSeparateiARB\0"
+ "glBlendEquationSeparateIndexedAMD\0"
+ "\0"
+ /* _mesa_function_pool[33073]: LightModelf (offset 163) */
"if\0"
"glLightModelf\0"
"\0"
- /* _mesa_function_pool[32522]: GetTexParameterfv (offset 282) */
+ /* _mesa_function_pool[33091]: GetTexParameterfv (offset 282) */
"iip\0"
"glGetTexParameterfv\0"
"\0"
- /* _mesa_function_pool[32547]: GetLightfv (offset 264) */
+ /* _mesa_function_pool[33116]: GetLightfv (offset 264) */
"iip\0"
"glGetLightfv\0"
"\0"
- /* _mesa_function_pool[32565]: PixelTransformParameterivEXT (dynamic) */
+ /* _mesa_function_pool[33134]: PixelTransformParameterivEXT (dynamic) */
"iip\0"
"glPixelTransformParameterivEXT\0"
"\0"
- /* _mesa_function_pool[32601]: BinormalPointerEXT (dynamic) */
+ /* _mesa_function_pool[33170]: BinormalPointerEXT (dynamic) */
"iip\0"
"glBinormalPointerEXT\0"
"\0"
- /* _mesa_function_pool[32627]: VertexAttrib1dNV (will be remapped) */
+ /* _mesa_function_pool[33196]: VertexAttrib1dNV (will be remapped) */
"id\0"
"glVertexAttrib1dNV\0"
"\0"
- /* _mesa_function_pool[32650]: GetCombinerInputParameterivNV (will be remapped) */
+ /* _mesa_function_pool[33219]: GetCombinerInputParameterivNV (will be remapped) */
"iiiip\0"
"glGetCombinerInputParameterivNV\0"
"\0"
- /* _mesa_function_pool[32689]: Disable (offset 214) */
+ /* _mesa_function_pool[33258]: Disable (offset 214) */
"i\0"
"glDisable\0"
"\0"
- /* _mesa_function_pool[32702]: MultiTexCoord2fvARB (offset 387) */
+ /* _mesa_function_pool[33271]: MultiTexCoord2fvARB (offset 387) */
"ip\0"
"glMultiTexCoord2fv\0"
"glMultiTexCoord2fvARB\0"
"\0"
- /* _mesa_function_pool[32747]: GetRenderbufferParameterivEXT (will be remapped) */
+ /* _mesa_function_pool[33316]: GetRenderbufferParameterivEXT (will be remapped) */
"iip\0"
"glGetRenderbufferParameteriv\0"
"glGetRenderbufferParameterivEXT\0"
"\0"
- /* _mesa_function_pool[32813]: CombinerParameterivNV (will be remapped) */
+ /* _mesa_function_pool[33382]: CombinerParameterivNV (will be remapped) */
"ip\0"
"glCombinerParameterivNV\0"
"\0"
- /* _mesa_function_pool[32841]: GenFragmentShadersATI (will be remapped) */
+ /* _mesa_function_pool[33410]: GenFragmentShadersATI (will be remapped) */
"i\0"
"glGenFragmentShadersATI\0"
"\0"
- /* _mesa_function_pool[32868]: DrawArrays (offset 310) */
+ /* _mesa_function_pool[33437]: DrawArrays (offset 310) */
"iii\0"
"glDrawArrays\0"
"glDrawArraysEXT\0"
"\0"
- /* _mesa_function_pool[32902]: WeightuivARB (dynamic) */
+ /* _mesa_function_pool[33471]: WeightuivARB (dynamic) */
"ip\0"
"glWeightuivARB\0"
"\0"
- /* _mesa_function_pool[32921]: VertexAttrib2sARB (will be remapped) */
+ /* _mesa_function_pool[33490]: GetVertexAttribIivEXT (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribIivEXT\0"
+ "glGetVertexAttribIiv\0"
+ "\0"
+ /* _mesa_function_pool[33540]: VertexAttrib2sARB (will be remapped) */
"iii\0"
"glVertexAttrib2s\0"
"glVertexAttrib2sARB\0"
"\0"
- /* _mesa_function_pool[32963]: ColorMask (offset 210) */
+ /* _mesa_function_pool[33582]: GetnTexImageARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnTexImageARB\0"
+ "\0"
+ /* _mesa_function_pool[33608]: ColorMask (offset 210) */
"iiii\0"
"glColorMask\0"
"\0"
- /* _mesa_function_pool[32981]: GenAsyncMarkersSGIX (dynamic) */
+ /* _mesa_function_pool[33626]: GenAsyncMarkersSGIX (dynamic) */
"i\0"
"glGenAsyncMarkersSGIX\0"
"\0"
- /* _mesa_function_pool[33006]: Tangent3svEXT (dynamic) */
+ /* _mesa_function_pool[33651]: Tangent3svEXT (dynamic) */
"p\0"
"glTangent3svEXT\0"
"\0"
- /* _mesa_function_pool[33025]: GetListParameterivSGIX (dynamic) */
+ /* _mesa_function_pool[33670]: GetListParameterivSGIX (dynamic) */
"iip\0"
"glGetListParameterivSGIX\0"
"\0"
- /* _mesa_function_pool[33055]: BindBufferARB (will be remapped) */
+ /* _mesa_function_pool[33700]: BindBufferARB (will be remapped) */
"ii\0"
"glBindBuffer\0"
"glBindBufferARB\0"
"\0"
- /* _mesa_function_pool[33088]: GetInfoLogARB (will be remapped) */
+ /* _mesa_function_pool[33733]: GetInfoLogARB (will be remapped) */
"iipp\0"
"glGetInfoLogARB\0"
"\0"
- /* _mesa_function_pool[33110]: RasterPos4iv (offset 83) */
+ /* _mesa_function_pool[33755]: RasterPos4iv (offset 83) */
"p\0"
"glRasterPos4iv\0"
"\0"
- /* _mesa_function_pool[33128]: Enable (offset 215) */
+ /* _mesa_function_pool[33773]: Enable (offset 215) */
"i\0"
"glEnable\0"
"\0"
- /* _mesa_function_pool[33140]: LineStipple (offset 167) */
+ /* _mesa_function_pool[33785]: LineStipple (offset 167) */
"ii\0"
"glLineStipple\0"
"\0"
- /* _mesa_function_pool[33158]: VertexAttribs4svNV (will be remapped) */
+ /* _mesa_function_pool[33803]: VertexAttribs4svNV (will be remapped) */
"iip\0"
"glVertexAttribs4svNV\0"
"\0"
- /* _mesa_function_pool[33184]: EdgeFlagPointerListIBM (dynamic) */
+ /* _mesa_function_pool[33829]: EdgeFlagPointerListIBM (dynamic) */
"ipi\0"
"glEdgeFlagPointerListIBM\0"
"\0"
- /* _mesa_function_pool[33214]: UniformMatrix3x2fv (will be remapped) */
+ /* _mesa_function_pool[33859]: UniformMatrix3x2fv (will be remapped) */
"iiip\0"
"glUniformMatrix3x2fv\0"
"\0"
- /* _mesa_function_pool[33241]: GetMinmaxParameterfv (offset 365) */
+ /* _mesa_function_pool[33886]: GetMinmaxParameterfv (offset 365) */
"iip\0"
"glGetMinmaxParameterfv\0"
"glGetMinmaxParameterfvEXT\0"
"\0"
- /* _mesa_function_pool[33295]: VertexAttrib1fvARB (will be remapped) */
+ /* _mesa_function_pool[33940]: VertexAttrib1fvARB (will be remapped) */
"ip\0"
"glVertexAttrib1fv\0"
"glVertexAttrib1fvARB\0"
"\0"
- /* _mesa_function_pool[33338]: GenBuffersARB (will be remapped) */
+ /* _mesa_function_pool[33983]: GenBuffersARB (will be remapped) */
"ip\0"
"glGenBuffers\0"
"glGenBuffersARB\0"
"\0"
- /* _mesa_function_pool[33371]: VertexAttribs1svNV (will be remapped) */
+ /* _mesa_function_pool[34016]: VertexAttribs1svNV (will be remapped) */
"iip\0"
"glVertexAttribs1svNV\0"
"\0"
- /* _mesa_function_pool[33397]: Vertex3fv (offset 137) */
+ /* _mesa_function_pool[34042]: Vertex3fv (offset 137) */
"p\0"
"glVertex3fv\0"
"\0"
- /* _mesa_function_pool[33412]: GetTexBumpParameterivATI (will be remapped) */
+ /* _mesa_function_pool[34057]: GetTexBumpParameterivATI (will be remapped) */
"ip\0"
"glGetTexBumpParameterivATI\0"
"\0"
- /* _mesa_function_pool[33443]: Binormal3bEXT (dynamic) */
+ /* _mesa_function_pool[34088]: Binormal3bEXT (dynamic) */
"iii\0"
"glBinormal3bEXT\0"
"\0"
- /* _mesa_function_pool[33464]: FragmentMaterialivSGIX (dynamic) */
+ /* _mesa_function_pool[34109]: FragmentMaterialivSGIX (dynamic) */
"iip\0"
"glFragmentMaterialivSGIX\0"
"\0"
- /* _mesa_function_pool[33494]: IsRenderbufferEXT (will be remapped) */
+ /* _mesa_function_pool[34139]: IsRenderbufferEXT (will be remapped) */
"i\0"
"glIsRenderbuffer\0"
"glIsRenderbufferEXT\0"
"\0"
- /* _mesa_function_pool[33534]: GenProgramsNV (will be remapped) */
+ /* _mesa_function_pool[34179]: GenProgramsNV (will be remapped) */
"ip\0"
"glGenProgramsARB\0"
"glGenProgramsNV\0"
"\0"
- /* _mesa_function_pool[33571]: VertexAttrib4dvNV (will be remapped) */
+ /* _mesa_function_pool[34216]: VertexAttrib4dvNV (will be remapped) */
"ip\0"
"glVertexAttrib4dvNV\0"
"\0"
- /* _mesa_function_pool[33595]: EndFragmentShaderATI (will be remapped) */
+ /* _mesa_function_pool[34240]: EndFragmentShaderATI (will be remapped) */
"\0"
"glEndFragmentShaderATI\0"
"\0"
- /* _mesa_function_pool[33620]: Binormal3iEXT (dynamic) */
+ /* _mesa_function_pool[34265]: Binormal3iEXT (dynamic) */
"iii\0"
"glBinormal3iEXT\0"
"\0"
- /* _mesa_function_pool[33641]: WindowPos2fMESA (will be remapped) */
+ /* _mesa_function_pool[34286]: WindowPos2fMESA (will be remapped) */
"ff\0"
"glWindowPos2f\0"
"glWindowPos2fARB\0"
@@ -4847,616 +4931,636 @@ static const char _mesa_function_pool[] =
/* these functions need to be remapped */
static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
- { 1577, AttachShader_remap_index },
- { 9967, CreateProgram_remap_index },
- { 23300, CreateShader_remap_index },
- { 25832, DeleteProgram_remap_index },
- { 18888, DeleteShader_remap_index },
- { 23801, DetachShader_remap_index },
- { 18202, GetAttachedShaders_remap_index },
- { 4919, GetProgramInfoLog_remap_index },
- { 405, GetProgramiv_remap_index },
- { 6627, GetShaderInfoLog_remap_index },
- { 31502, GetShaderiv_remap_index },
- { 13443, IsProgram_remap_index },
- { 12364, IsShader_remap_index },
- { 10097, StencilFuncSeparate_remap_index },
- { 3921, StencilMaskSeparate_remap_index },
- { 7692, StencilOpSeparate_remap_index },
- { 22560, UniformMatrix2x3fv_remap_index },
- { 2847, UniformMatrix2x4fv_remap_index },
- { 33214, UniformMatrix3x2fv_remap_index },
- { 30819, UniformMatrix3x4fv_remap_index },
- { 16406, UniformMatrix4x2fv_remap_index },
- { 3263, UniformMatrix4x3fv_remap_index },
- { 5080, ClampColor_remap_index },
- { 18256, ClearBufferfi_remap_index },
- { 17698, ClearBufferfv_remap_index },
- { 29842, ClearBufferiv_remap_index },
- { 13648, ClearBufferuiv_remap_index },
- { 20199, GetStringi_remap_index },
- { 2788, TexBuffer_remap_index },
- { 938, FramebufferTexture_remap_index },
- { 26868, GetBufferParameteri64v_remap_index },
- { 10197, GetInteger64i_v_remap_index },
- { 23614, VertexAttribDivisor_remap_index },
- { 9985, LoadTransposeMatrixdARB_remap_index },
- { 31231, LoadTransposeMatrixfARB_remap_index },
- { 5693, MultTransposeMatrixdARB_remap_index },
- { 23988, MultTransposeMatrixfARB_remap_index },
- { 216, SampleCoverageARB_remap_index },
- { 5919, CompressedTexImage1DARB_remap_index },
- { 24516, CompressedTexImage2DARB_remap_index },
- { 3984, CompressedTexImage3DARB_remap_index },
- { 18544, CompressedTexSubImage1DARB_remap_index },
- { 2050, CompressedTexSubImage2DARB_remap_index },
- { 20621, CompressedTexSubImage3DARB_remap_index },
- { 28948, GetCompressedTexImageARB_remap_index },
- { 3829, DisableVertexAttribArrayARB_remap_index },
- { 30384, EnableVertexAttribArrayARB_remap_index },
- { 32345, GetProgramEnvParameterdvARB_remap_index },
- { 23868, GetProgramEnvParameterfvARB_remap_index },
- { 27865, GetProgramLocalParameterdvARB_remap_index },
- { 8134, GetProgramLocalParameterfvARB_remap_index },
- { 18720, GetProgramStringARB_remap_index },
- { 28060, GetProgramivARB_remap_index },
- { 20816, GetVertexAttribdvARB_remap_index },
- { 16214, GetVertexAttribfvARB_remap_index },
- { 9809, GetVertexAttribivARB_remap_index },
- { 19662, ProgramEnvParameter4dARB_remap_index },
- { 25582, ProgramEnvParameter4dvARB_remap_index },
- { 17020, ProgramEnvParameter4fARB_remap_index },
- { 9009, ProgramEnvParameter4fvARB_remap_index },
- { 3947, ProgramLocalParameter4dARB_remap_index },
- { 13153, ProgramLocalParameter4dvARB_remap_index },
- { 29863, ProgramLocalParameter4fARB_remap_index },
- { 26228, ProgramLocalParameter4fvARB_remap_index },
- { 28702, ProgramStringARB_remap_index },
- { 19930, VertexAttrib1dARB_remap_index },
- { 15868, VertexAttrib1dvARB_remap_index },
- { 4143, VertexAttrib1fARB_remap_index },
- { 33295, VertexAttrib1fvARB_remap_index },
- { 7218, VertexAttrib1sARB_remap_index },
- { 2224, VertexAttrib1svARB_remap_index },
- { 15299, VertexAttrib2dARB_remap_index },
- { 17719, VertexAttrib2dvARB_remap_index },
- { 1596, VertexAttrib2fARB_remap_index },
- { 17832, VertexAttrib2fvARB_remap_index },
- { 32921, VertexAttrib2sARB_remap_index },
- { 31982, VertexAttrib2svARB_remap_index },
- { 11348, VertexAttrib3dARB_remap_index },
- { 8676, VertexAttrib3dvARB_remap_index },
- { 1683, VertexAttrib3fARB_remap_index },
- { 22851, VertexAttrib3fvARB_remap_index },
- { 28549, VertexAttrib3sARB_remap_index },
- { 20558, VertexAttrib3svARB_remap_index },
- { 4945, VertexAttrib4NbvARB_remap_index },
- { 18079, VertexAttrib4NivARB_remap_index },
- { 22806, VertexAttrib4NsvARB_remap_index },
- { 23820, VertexAttrib4NubARB_remap_index },
- { 32228, VertexAttrib4NubvARB_remap_index },
- { 19313, VertexAttrib4NuivARB_remap_index },
- { 3136, VertexAttrib4NusvARB_remap_index },
- { 10937, VertexAttrib4bvARB_remap_index },
- { 27238, VertexAttrib4dARB_remap_index },
- { 21580, VertexAttrib4dvARB_remap_index },
- { 11502, VertexAttrib4fARB_remap_index },
- { 11906, VertexAttrib4fvARB_remap_index },
- { 10313, VertexAttrib4ivARB_remap_index },
- { 17512, VertexAttrib4sARB_remap_index },
- { 31417, VertexAttrib4svARB_remap_index },
- { 16825, VertexAttrib4ubvARB_remap_index },
- { 30708, VertexAttrib4uivARB_remap_index },
- { 20369, VertexAttrib4usvARB_remap_index },
- { 22375, VertexAttribPointerARB_remap_index },
- { 33055, BindBufferARB_remap_index },
- { 6925, BufferDataARB_remap_index },
- { 1498, BufferSubDataARB_remap_index },
- { 30994, DeleteBuffersARB_remap_index },
- { 33338, GenBuffersARB_remap_index },
- { 17875, GetBufferParameterivARB_remap_index },
- { 16972, GetBufferPointervARB_remap_index },
- { 1451, GetBufferSubDataARB_remap_index },
- { 30656, IsBufferARB_remap_index },
- { 26712, MapBufferARB_remap_index },
- { 31632, UnmapBufferARB_remap_index },
- { 312, BeginQueryARB_remap_index },
- { 20025, DeleteQueriesARB_remap_index },
- { 12225, EndQueryARB_remap_index },
- { 29427, GenQueriesARB_remap_index },
- { 1942, GetQueryObjectivARB_remap_index },
- { 17556, GetQueryObjectuivARB_remap_index },
- { 1740, GetQueryivARB_remap_index },
- { 20276, IsQueryARB_remap_index },
- { 8286, AttachObjectARB_remap_index },
- { 18850, CompileShaderARB_remap_index },
- { 3205, CreateProgramObjectARB_remap_index },
- { 6870, CreateShaderObjectARB_remap_index },
- { 14601, DeleteObjectARB_remap_index },
- { 24307, DetachObjectARB_remap_index },
- { 11970, GetActiveUniformARB_remap_index },
- { 9484, GetAttachedObjectsARB_remap_index },
- { 9791, GetHandleARB_remap_index },
- { 33088, GetInfoLogARB_remap_index },
- { 32299, GetObjectParameterfvARB_remap_index },
- { 27739, GetObjectParameterivARB_remap_index },
- { 29185, GetShaderSourceARB_remap_index },
- { 28409, GetUniformLocationARB_remap_index },
- { 24090, GetUniformfvARB_remap_index },
- { 12728, GetUniformivARB_remap_index },
- { 20414, LinkProgramARB_remap_index },
- { 20472, ShaderSourceARB_remap_index },
- { 7592, Uniform1fARB_remap_index },
- { 30072, Uniform1fvARB_remap_index },
- { 22344, Uniform1iARB_remap_index },
- { 21269, Uniform1ivARB_remap_index },
- { 2173, Uniform2fARB_remap_index },
- { 14437, Uniform2fvARB_remap_index },
- { 26599, Uniform2iARB_remap_index },
- { 2293, Uniform2ivARB_remap_index },
- { 18960, Uniform3fARB_remap_index },
- { 9514, Uniform3fvARB_remap_index },
- { 6481, Uniform3iARB_remap_index },
- { 17078, Uniform3ivARB_remap_index },
- { 19468, Uniform4fARB_remap_index },
- { 23954, Uniform4fvARB_remap_index },
- { 25216, Uniform4iARB_remap_index },
- { 20782, Uniform4ivARB_remap_index },
- { 8338, UniformMatrix2fvARB_remap_index },
+ { 1629, AttachShader_remap_index },
+ { 10274, CreateProgram_remap_index },
+ { 23765, CreateShader_remap_index },
+ { 26289, DeleteProgram_remap_index },
+ { 19245, DeleteShader_remap_index },
+ { 24258, DetachShader_remap_index },
+ { 18534, GetAttachedShaders_remap_index },
+ { 5126, GetProgramInfoLog_remap_index },
+ { 444, GetProgramiv_remap_index },
+ { 6892, GetShaderInfoLog_remap_index },
+ { 32043, GetShaderiv_remap_index },
+ { 13807, IsProgram_remap_index },
+ { 12698, IsShader_remap_index },
+ { 10404, StencilFuncSeparate_remap_index },
+ { 4156, StencilMaskSeparate_remap_index },
+ { 7957, StencilOpSeparate_remap_index },
+ { 22999, UniformMatrix2x3fv_remap_index },
+ { 2998, UniformMatrix2x4fv_remap_index },
+ { 33859, UniformMatrix3x2fv_remap_index },
+ { 31360, UniformMatrix3x4fv_remap_index },
+ { 16726, UniformMatrix4x2fv_remap_index },
+ { 3417, UniformMatrix4x3fv_remap_index },
+ { 5332, ClampColor_remap_index },
+ { 18588, ClearBufferfi_remap_index },
+ { 18004, ClearBufferfv_remap_index },
+ { 30383, ClearBufferiv_remap_index },
+ { 14012, ClearBufferuiv_remap_index },
+ { 20582, GetStringi_remap_index },
+ { 2900, TexBuffer_remap_index },
+ { 977, FramebufferTexture_remap_index },
+ { 27325, GetBufferParameteri64v_remap_index },
+ { 10504, GetInteger64i_v_remap_index },
+ { 24079, VertexAttribDivisor_remap_index },
+ { 10292, LoadTransposeMatrixdARB_remap_index },
+ { 31772, LoadTransposeMatrixfARB_remap_index },
+ { 5971, MultTransposeMatrixdARB_remap_index },
+ { 24445, MultTransposeMatrixfARB_remap_index },
+ { 255, SampleCoverageARB_remap_index },
+ { 6155, CompressedTexImage1DARB_remap_index },
+ { 24973, CompressedTexImage2DARB_remap_index },
+ { 4219, CompressedTexImage3DARB_remap_index },
+ { 18876, CompressedTexSubImage1DARB_remap_index },
+ { 2141, CompressedTexSubImage2DARB_remap_index },
+ { 21004, CompressedTexSubImage3DARB_remap_index },
+ { 29489, GetCompressedTexImageARB_remap_index },
+ { 3983, DisableVertexAttribArrayARB_remap_index },
+ { 30925, EnableVertexAttribArrayARB_remap_index },
+ { 32847, GetProgramEnvParameterdvARB_remap_index },
+ { 24325, GetProgramEnvParameterfvARB_remap_index },
+ { 28354, GetProgramLocalParameterdvARB_remap_index },
+ { 8433, GetProgramLocalParameterfvARB_remap_index },
+ { 19052, GetProgramStringARB_remap_index },
+ { 28549, GetProgramivARB_remap_index },
+ { 21199, GetVertexAttribdvARB_remap_index },
+ { 16534, GetVertexAttribfvARB_remap_index },
+ { 10108, GetVertexAttribivARB_remap_index },
+ { 20045, ProgramEnvParameter4dARB_remap_index },
+ { 26039, ProgramEnvParameter4dvARB_remap_index },
+ { 17302, ProgramEnvParameter4fARB_remap_index },
+ { 9308, ProgramEnvParameter4fvARB_remap_index },
+ { 4182, ProgramLocalParameter4dARB_remap_index },
+ { 13517, ProgramLocalParameter4dvARB_remap_index },
+ { 30404, ProgramLocalParameter4fARB_remap_index },
+ { 26685, ProgramLocalParameter4fvARB_remap_index },
+ { 29243, ProgramStringARB_remap_index },
+ { 20313, VertexAttrib1dARB_remap_index },
+ { 16161, VertexAttrib1dvARB_remap_index },
+ { 4378, VertexAttrib1fARB_remap_index },
+ { 33940, VertexAttrib1fvARB_remap_index },
+ { 7483, VertexAttrib1sARB_remap_index },
+ { 2336, VertexAttrib1svARB_remap_index },
+ { 15592, VertexAttrib2dARB_remap_index },
+ { 18025, VertexAttrib2dvARB_remap_index },
+ { 1687, VertexAttrib2fARB_remap_index },
+ { 18138, VertexAttrib2fvARB_remap_index },
+ { 33540, VertexAttrib2sARB_remap_index },
+ { 32484, VertexAttrib2svARB_remap_index },
+ { 11682, VertexAttrib3dARB_remap_index },
+ { 8975, VertexAttrib3dvARB_remap_index },
+ { 1774, VertexAttrib3fARB_remap_index },
+ { 23316, VertexAttrib3fvARB_remap_index },
+ { 29090, VertexAttrib3sARB_remap_index },
+ { 20941, VertexAttrib3svARB_remap_index },
+ { 5152, VertexAttrib4NbvARB_remap_index },
+ { 18411, VertexAttrib4NivARB_remap_index },
+ { 23271, VertexAttrib4NsvARB_remap_index },
+ { 24277, VertexAttrib4NubARB_remap_index },
+ { 32730, VertexAttrib4NubvARB_remap_index },
+ { 19696, VertexAttrib4NuivARB_remap_index },
+ { 3290, VertexAttrib4NusvARB_remap_index },
+ { 11271, VertexAttrib4bvARB_remap_index },
+ { 27727, VertexAttrib4dARB_remap_index },
+ { 21998, VertexAttrib4dvARB_remap_index },
+ { 11836, VertexAttrib4fARB_remap_index },
+ { 12240, VertexAttrib4fvARB_remap_index },
+ { 10647, VertexAttrib4ivARB_remap_index },
+ { 17818, VertexAttrib4sARB_remap_index },
+ { 31958, VertexAttrib4svARB_remap_index },
+ { 17107, VertexAttrib4ubvARB_remap_index },
+ { 31249, VertexAttrib4uivARB_remap_index },
+ { 20752, VertexAttrib4usvARB_remap_index },
+ { 22814, VertexAttribPointerARB_remap_index },
+ { 33700, BindBufferARB_remap_index },
+ { 7190, BufferDataARB_remap_index },
+ { 1550, BufferSubDataARB_remap_index },
+ { 31535, DeleteBuffersARB_remap_index },
+ { 33983, GenBuffersARB_remap_index },
+ { 18181, GetBufferParameterivARB_remap_index },
+ { 17254, GetBufferPointervARB_remap_index },
+ { 1503, GetBufferSubDataARB_remap_index },
+ { 31197, IsBufferARB_remap_index },
+ { 27169, MapBufferARB_remap_index },
+ { 32173, UnmapBufferARB_remap_index },
+ { 351, BeginQueryARB_remap_index },
+ { 20408, DeleteQueriesARB_remap_index },
+ { 12559, EndQueryARB_remap_index },
+ { 29968, GenQueriesARB_remap_index },
+ { 2033, GetQueryObjectivARB_remap_index },
+ { 17862, GetQueryObjectuivARB_remap_index },
+ { 1831, GetQueryivARB_remap_index },
+ { 20659, IsQueryARB_remap_index },
+ { 8585, AttachObjectARB_remap_index },
+ { 19207, CompileShaderARB_remap_index },
+ { 3359, CreateProgramObjectARB_remap_index },
+ { 7135, CreateShaderObjectARB_remap_index },
+ { 14894, DeleteObjectARB_remap_index },
+ { 24764, DetachObjectARB_remap_index },
+ { 12304, GetActiveUniformARB_remap_index },
+ { 9783, GetAttachedObjectsARB_remap_index },
+ { 10090, GetHandleARB_remap_index },
+ { 33733, GetInfoLogARB_remap_index },
+ { 32801, GetObjectParameterfvARB_remap_index },
+ { 28228, GetObjectParameterivARB_remap_index },
+ { 29726, GetShaderSourceARB_remap_index },
+ { 28950, GetUniformLocationARB_remap_index },
+ { 24547, GetUniformfvARB_remap_index },
+ { 13092, GetUniformivARB_remap_index },
+ { 20797, LinkProgramARB_remap_index },
+ { 20855, ShaderSourceARB_remap_index },
+ { 7857, Uniform1fARB_remap_index },
+ { 30613, Uniform1fvARB_remap_index },
+ { 22762, Uniform1iARB_remap_index },
+ { 21652, Uniform1ivARB_remap_index },
+ { 2285, Uniform2fARB_remap_index },
+ { 14730, Uniform2fvARB_remap_index },
+ { 27056, Uniform2iARB_remap_index },
+ { 2405, Uniform2ivARB_remap_index },
+ { 19317, Uniform3fARB_remap_index },
+ { 9813, Uniform3fvARB_remap_index },
+ { 6746, Uniform3iARB_remap_index },
+ { 17360, Uniform3ivARB_remap_index },
+ { 19851, Uniform4fARB_remap_index },
+ { 24411, Uniform4fvARB_remap_index },
+ { 25673, Uniform4iARB_remap_index },
+ { 21165, Uniform4ivARB_remap_index },
+ { 8637, UniformMatrix2fvARB_remap_index },
{ 17, UniformMatrix3fvARB_remap_index },
- { 2690, UniformMatrix4fvARB_remap_index },
- { 25694, UseProgramObjectARB_remap_index },
- { 14987, ValidateProgramARB_remap_index },
- { 21623, BindAttribLocationARB_remap_index },
- { 4990, GetActiveAttribARB_remap_index },
- { 16726, GetAttribLocationARB_remap_index },
- { 29790, DrawBuffersARB_remap_index },
- { 29623, ClampColorARB_remap_index },
- { 18124, DrawArraysInstancedARB_remap_index },
- { 6542, DrawElementsInstancedARB_remap_index },
- { 13258, RenderbufferStorageMultisample_remap_index },
- { 13729, FramebufferTextureARB_remap_index },
- { 26130, FramebufferTextureFaceARB_remap_index },
- { 24456, ProgramParameteriARB_remap_index },
- { 23772, VertexAttribDivisorARB_remap_index },
- { 19516, FlushMappedBufferRange_remap_index },
- { 28176, MapBufferRange_remap_index },
- { 28083, TexBufferARB_remap_index },
- { 16544, BindVertexArray_remap_index },
- { 14810, GenVertexArrays_remap_index },
- { 30586, CopyBufferSubData_remap_index },
- { 31521, ClientWaitSync_remap_index },
- { 2609, DeleteSync_remap_index },
- { 7259, FenceSync_remap_index },
- { 15358, GetInteger64v_remap_index },
- { 22913, GetSynciv_remap_index },
- { 29729, IsSync_remap_index },
- { 9432, WaitSync_remap_index },
- { 3797, DrawElementsBaseVertex_remap_index },
- { 30898, DrawRangeElementsBaseVertex_remap_index },
- { 26743, MultiDrawElementsBaseVertex_remap_index },
- { 16792, BlendEquationSeparateiARB_remap_index },
- { 17968, BlendEquationiARB_remap_index },
- { 12697, BlendFuncSeparateiARB_remap_index },
- { 9857, BlendFunciARB_remap_index },
- { 8200, BindSampler_remap_index },
- { 4122, DeleteSamplers_remap_index },
- { 19889, GenSamplers_remap_index },
- { 29661, GetSamplerParameterIiv_remap_index },
- { 19410, GetSamplerParameterIuiv_remap_index },
- { 4839, GetSamplerParameterfv_remap_index },
- { 25851, GetSamplerParameteriv_remap_index },
- { 14355, IsSampler_remap_index },
- { 16497, SamplerParameterIiv_remap_index },
- { 30937, SamplerParameterIuiv_remap_index },
- { 22612, SamplerParameterf_remap_index },
- { 16653, SamplerParameterfv_remap_index },
- { 22587, SamplerParameteri_remap_index },
- { 18318, SamplerParameteriv_remap_index },
- { 5141, BindTransformFeedback_remap_index },
- { 3232, DeleteTransformFeedbacks_remap_index },
- { 6514, DrawTransformFeedback_remap_index },
- { 9651, GenTransformFeedbacks_remap_index },
- { 28592, IsTransformFeedback_remap_index },
- { 26323, PauseTransformFeedback_remap_index },
- { 5578, ResumeTransformFeedback_remap_index },
- { 21943, ClearDepthf_remap_index },
- { 6818, DepthRangef_remap_index },
- { 14622, GetShaderPrecisionFormat_remap_index },
- { 10037, ReleaseShaderCompiler_remap_index },
- { 10980, ShaderBinary_remap_index },
- { 5446, PolygonOffsetEXT_remap_index },
- { 23535, GetPixelTexGenParameterfvSGIS_remap_index },
- { 4438, GetPixelTexGenParameterivSGIS_remap_index },
- { 23268, PixelTexGenParameterfSGIS_remap_index },
- { 624, PixelTexGenParameterfvSGIS_remap_index },
- { 12766, PixelTexGenParameteriSGIS_remap_index },
- { 13903, PixelTexGenParameterivSGIS_remap_index },
- { 18443, SampleMaskSGIS_remap_index },
- { 20216, SamplePatternSGIS_remap_index },
- { 26672, ColorPointerEXT_remap_index },
- { 17762, EdgeFlagPointerEXT_remap_index },
- { 6135, IndexPointerEXT_remap_index },
- { 6215, NormalPointerEXT_remap_index },
- { 15952, TexCoordPointerEXT_remap_index },
- { 7048, VertexPointerEXT_remap_index },
- { 3599, PointParameterfEXT_remap_index },
- { 7899, PointParameterfvEXT_remap_index },
- { 32397, LockArraysEXT_remap_index },
- { 15051, UnlockArraysEXT_remap_index },
- { 1267, SecondaryColor3bEXT_remap_index },
- { 8058, SecondaryColor3bvEXT_remap_index },
- { 10490, SecondaryColor3dEXT_remap_index },
- { 25900, SecondaryColor3dvEXT_remap_index },
- { 28458, SecondaryColor3fEXT_remap_index },
- { 18480, SecondaryColor3fvEXT_remap_index },
- { 470, SecondaryColor3iEXT_remap_index },
- { 16262, SecondaryColor3ivEXT_remap_index },
- { 10125, SecondaryColor3sEXT_remap_index },
- { 31185, SecondaryColor3svEXT_remap_index },
- { 27575, SecondaryColor3ubEXT_remap_index },
- { 21514, SecondaryColor3ubvEXT_remap_index },
- { 13008, SecondaryColor3uiEXT_remap_index },
- { 23155, SecondaryColor3uivEXT_remap_index },
- { 26180, SecondaryColor3usEXT_remap_index },
- { 13081, SecondaryColor3usvEXT_remap_index },
- { 11849, SecondaryColorPointerEXT_remap_index },
- { 25994, MultiDrawArraysEXT_remap_index },
- { 21204, MultiDrawElementsEXT_remap_index },
- { 21399, FogCoordPointerEXT_remap_index },
- { 4587, FogCoorddEXT_remap_index },
- { 31798, FogCoorddvEXT_remap_index },
- { 4704, FogCoordfEXT_remap_index },
- { 27498, FogCoordfvEXT_remap_index },
- { 11949, PixelTexGenSGIX_remap_index },
- { 28103, BlendFuncSeparateEXT_remap_index },
- { 6960, FlushVertexArrayRangeNV_remap_index },
- { 5395, VertexArrayRangeNV_remap_index },
- { 28523, CombinerInputNV_remap_index },
- { 2116, CombinerOutputNV_remap_index },
- { 31338, CombinerParameterfNV_remap_index },
- { 5269, CombinerParameterfvNV_remap_index },
- { 22637, CombinerParameteriNV_remap_index },
- { 32813, CombinerParameterivNV_remap_index },
- { 7336, FinalCombinerInputNV_remap_index },
- { 9878, GetCombinerInputParameterfvNV_remap_index },
- { 32650, GetCombinerInputParameterivNV_remap_index },
- { 14004, GetCombinerOutputParameterfvNV_remap_index },
- { 13832, GetCombinerOutputParameterivNV_remap_index },
- { 6722, GetFinalCombinerInputParameterfvNV_remap_index },
- { 25088, GetFinalCombinerInputParameterivNV_remap_index },
- { 12675, ResizeBuffersMESA_remap_index },
- { 11175, WindowPos2dMESA_remap_index },
- { 1060, WindowPos2dvMESA_remap_index },
- { 33641, WindowPos2fMESA_remap_index },
- { 8003, WindowPos2fvMESA_remap_index },
- { 18390, WindowPos2iMESA_remap_index },
- { 20689, WindowPos2ivMESA_remap_index },
- { 21303, WindowPos2sMESA_remap_index },
- { 5833, WindowPos2svMESA_remap_index },
- { 7828, WindowPos3dMESA_remap_index },
- { 14150, WindowPos3dvMESA_remap_index },
- { 516, WindowPos3fMESA_remap_index },
- { 15112, WindowPos3fvMESA_remap_index },
- { 24349, WindowPos3iMESA_remap_index },
- { 30531, WindowPos3ivMESA_remap_index },
- { 19105, WindowPos3sMESA_remap_index },
- { 32054, WindowPos3svMESA_remap_index },
- { 11126, WindowPos4dMESA_remap_index },
- { 17216, WindowPos4dvMESA_remap_index },
- { 14109, WindowPos4fMESA_remap_index },
- { 31092, WindowPos4fvMESA_remap_index },
- { 30684, WindowPos4iMESA_remap_index },
- { 12478, WindowPos4ivMESA_remap_index },
- { 19289, WindowPos4sMESA_remap_index },
- { 3183, WindowPos4svMESA_remap_index },
- { 13871, MultiModeDrawArraysIBM_remap_index },
- { 29298, MultiModeDrawElementsIBM_remap_index },
- { 12253, DeleteFencesNV_remap_index },
- { 28370, FinishFenceNV_remap_index },
- { 3721, GenFencesNV_remap_index },
- { 17196, GetFenceivNV_remap_index },
- { 8271, IsFenceNV_remap_index },
- { 13759, SetFenceNV_remap_index },
- { 4199, TestFenceNV_remap_index },
- { 32025, AreProgramsResidentNV_remap_index },
- { 31380, BindProgramNV_remap_index },
- { 26263, DeleteProgramsNV_remap_index },
- { 21732, ExecuteProgramNV_remap_index },
- { 33534, GenProgramsNV_remap_index },
- { 23640, GetProgramParameterdvNV_remap_index },
- { 10552, GetProgramParameterfvNV_remap_index },
- { 26646, GetProgramStringNV_remap_index },
- { 24726, GetProgramivNV_remap_index },
- { 23903, GetTrackMatrixivNV_remap_index },
- { 26440, GetVertexAttribPointervNV_remap_index },
- { 25021, GetVertexAttribdvNV_remap_index },
- { 9327, GetVertexAttribfvNV_remap_index },
- { 18693, GetVertexAttribivNV_remap_index },
- { 19546, IsProgramNV_remap_index },
- { 9410, LoadProgramNV_remap_index },
- { 28199, ProgramParameters4dvNV_remap_index },
- { 24656, ProgramParameters4fvNV_remap_index },
- { 20993, RequestResidentProgramsNV_remap_index },
- { 30876, TrackMatrixNV_remap_index },
- { 32627, VertexAttrib1dNV_remap_index },
- { 13670, VertexAttrib1dvNV_remap_index },
- { 28804, VertexAttrib1fNV_remap_index },
- { 2415, VertexAttrib1fvNV_remap_index },
- { 31149, VertexAttrib1sNV_remap_index },
- { 15185, VertexAttrib1svNV_remap_index },
- { 4895, VertexAttrib2dNV_remap_index },
- { 13563, VertexAttrib2dvNV_remap_index },
- { 20448, VertexAttrib2fNV_remap_index },
- { 13129, VertexAttrib2fvNV_remap_index },
- { 6045, VertexAttrib2sNV_remap_index },
- { 19159, VertexAttrib2svNV_remap_index },
- { 11323, VertexAttrib3dNV_remap_index },
- { 32275, VertexAttrib3dvNV_remap_index },
- { 10364, VertexAttrib3fNV_remap_index },
- { 25048, VertexAttrib3fvNV_remap_index },
- { 22430, VertexAttrib3sNV_remap_index },
- { 23930, VertexAttrib3svNV_remap_index },
- { 29272, VertexAttrib4dNV_remap_index },
- { 33571, VertexAttrib4dvNV_remap_index },
- { 4488, VertexAttrib4fNV_remap_index },
- { 9460, VertexAttrib4fvNV_remap_index },
- { 27122, VertexAttrib4sNV_remap_index },
- { 1409, VertexAttrib4svNV_remap_index },
- { 5053, VertexAttrib4ubNV_remap_index },
- { 778, VertexAttrib4ubvNV_remap_index },
- { 21912, VertexAttribPointerNV_remap_index },
- { 2267, VertexAttribs1dvNV_remap_index },
- { 26528, VertexAttribs1fvNV_remap_index },
- { 33371, VertexAttribs1svNV_remap_index },
- { 10389, VertexAttribs2dvNV_remap_index },
- { 25655, VertexAttribs2fvNV_remap_index },
- { 17788, VertexAttribs2svNV_remap_index },
- { 5297, VertexAttribs3dvNV_remap_index },
- { 2147, VertexAttribs3fvNV_remap_index },
- { 30279, VertexAttribs3svNV_remap_index },
- { 27212, VertexAttribs4dvNV_remap_index },
- { 5369, VertexAttribs4fvNV_remap_index },
- { 33158, VertexAttribs4svNV_remap_index },
- { 30027, VertexAttribs4ubvNV_remap_index },
- { 27282, GetTexBumpParameterfvATI_remap_index },
- { 33412, GetTexBumpParameterivATI_remap_index },
- { 18803, TexBumpParameterfvATI_remap_index },
- { 20864, TexBumpParameterivATI_remap_index },
- { 15731, AlphaFragmentOp1ATI_remap_index },
- { 25946, AlphaFragmentOp2ATI_remap_index },
- { 24964, AlphaFragmentOp3ATI_remap_index },
- { 30206, BeginFragmentShaderATI_remap_index },
- { 31579, BindFragmentShaderATI_remap_index },
- { 24059, ColorFragmentOp1ATI_remap_index },
- { 4366, ColorFragmentOp2ATI_remap_index },
- { 31920, ColorFragmentOp3ATI_remap_index },
- { 5535, DeleteFragmentShaderATI_remap_index },
- { 33595, EndFragmentShaderATI_remap_index },
- { 32841, GenFragmentShadersATI_remap_index },
- { 25809, PassTexCoordATI_remap_index },
- { 7028, SampleMapATI_remap_index },
- { 27393, SetFragmentShaderConstantATI_remap_index },
- { 363, PointParameteriNV_remap_index },
- { 14311, PointParameterivNV_remap_index },
- { 29111, ActiveStencilFaceEXT_remap_index },
- { 27839, BindVertexArrayAPPLE_remap_index },
- { 2737, DeleteVertexArraysAPPLE_remap_index },
- { 18229, GenVertexArraysAPPLE_remap_index },
- { 23705, IsVertexArrayAPPLE_remap_index },
- { 819, GetProgramNamedParameterdvNV_remap_index },
- { 3562, GetProgramNamedParameterfvNV_remap_index },
- { 27313, ProgramNamedParameter4dNV_remap_index },
- { 14685, ProgramNamedParameter4dvNV_remap_index },
- { 8943, ProgramNamedParameter4fNV_remap_index },
- { 11814, ProgramNamedParameter4fvNV_remap_index },
- { 17127, PrimitiveRestartIndexNV_remap_index },
- { 31069, PrimitiveRestartNV_remap_index },
- { 24635, DepthBoundsEXT_remap_index },
- { 1159, BlendEquationSeparateEXT_remap_index },
- { 14886, BindFramebufferEXT_remap_index },
- { 26039, BindRenderbufferEXT_remap_index },
- { 9707, CheckFramebufferStatusEXT_remap_index },
- { 22956, DeleteFramebuffersEXT_remap_index },
- { 32177, DeleteRenderbuffersEXT_remap_index },
- { 13587, FramebufferRenderbufferEXT_remap_index },
- { 13776, FramebufferTexture1DEXT_remap_index },
- { 11608, FramebufferTexture2DEXT_remap_index },
- { 11228, FramebufferTexture3DEXT_remap_index },
- { 23571, GenFramebuffersEXT_remap_index },
- { 17653, GenRenderbuffersEXT_remap_index },
- { 6764, GenerateMipmapEXT_remap_index },
- { 22005, GetFramebufferAttachmentParameterivEXT_remap_index },
- { 32747, GetRenderbufferParameterivEXT_remap_index },
- { 20744, IsFramebufferEXT_remap_index },
- { 33494, IsRenderbufferEXT_remap_index },
- { 8218, RenderbufferStorageEXT_remap_index },
- { 695, BlitFramebufferEXT_remap_index },
- { 14471, BufferParameteriAPPLE_remap_index },
- { 19578, FlushMappedBufferRangeAPPLE_remap_index },
- { 1815, BindFragDataLocationEXT_remap_index },
- { 24748, GetFragDataLocationEXT_remap_index },
- { 10667, GetUniformuivEXT_remap_index },
- { 2933, GetVertexAttribIivEXT_remap_index },
- { 4216, GetVertexAttribIuivEXT_remap_index },
- { 12086, Uniform1uiEXT_remap_index },
- { 28284, Uniform1uivEXT_remap_index },
- { 22526, Uniform2uiEXT_remap_index },
- { 4330, Uniform2uivEXT_remap_index },
- { 29551, Uniform3uiEXT_remap_index },
- { 14832, Uniform3uivEXT_remap_index },
- { 3486, Uniform4uiEXT_remap_index },
- { 8719, Uniform4uivEXT_remap_index },
- { 18608, VertexAttribI1iEXT_remap_index },
- { 965, VertexAttribI1ivEXT_remap_index },
- { 2516, VertexAttribI1uiEXT_remap_index },
- { 12857, VertexAttribI1uivEXT_remap_index },
+ { 2802, UniformMatrix4fvARB_remap_index },
+ { 26151, UseProgramObjectARB_remap_index },
+ { 15280, ValidateProgramARB_remap_index },
+ { 22041, BindAttribLocationARB_remap_index },
+ { 5197, GetActiveAttribARB_remap_index },
+ { 17041, GetAttribLocationARB_remap_index },
+ { 30331, DrawBuffersARB_remap_index },
+ { 30164, ClampColorARB_remap_index },
+ { 18456, DrawArraysInstancedARB_remap_index },
+ { 6807, DrawElementsInstancedARB_remap_index },
+ { 13622, RenderbufferStorageMultisample_remap_index },
+ { 14093, FramebufferTextureARB_remap_index },
+ { 26587, FramebufferTextureFaceARB_remap_index },
+ { 24913, ProgramParameteriARB_remap_index },
+ { 6327, VertexAttribDivisorARB_remap_index },
+ { 19899, FlushMappedBufferRange_remap_index },
+ { 28665, MapBufferRange_remap_index },
+ { 28572, TexBufferARB_remap_index },
+ { 16864, BindVertexArray_remap_index },
+ { 15103, GenVertexArrays_remap_index },
+ { 31127, CopyBufferSubData_remap_index },
+ { 32062, ClientWaitSync_remap_index },
+ { 2721, DeleteSync_remap_index },
+ { 7524, FenceSync_remap_index },
+ { 15651, GetInteger64v_remap_index },
+ { 23378, GetSynciv_remap_index },
+ { 30270, IsSync_remap_index },
+ { 9731, WaitSync_remap_index },
+ { 3951, DrawElementsBaseVertex_remap_index },
+ { 31439, DrawRangeElementsBaseVertex_remap_index },
+ { 27200, MultiDrawElementsBaseVertex_remap_index },
+ { 33006, BlendEquationSeparateiARB_remap_index },
+ { 18274, BlendEquationiARB_remap_index },
+ { 13031, BlendFuncSeparateiARB_remap_index },
+ { 10156, BlendFunciARB_remap_index },
+ { 8499, BindSampler_remap_index },
+ { 4357, DeleteSamplers_remap_index },
+ { 20272, GenSamplers_remap_index },
+ { 30202, GetSamplerParameterIiv_remap_index },
+ { 19793, GetSamplerParameterIuiv_remap_index },
+ { 5046, GetSamplerParameterfv_remap_index },
+ { 26308, GetSamplerParameteriv_remap_index },
+ { 14648, IsSampler_remap_index },
+ { 16817, SamplerParameterIiv_remap_index },
+ { 31478, SamplerParameterIuiv_remap_index },
+ { 23051, SamplerParameterf_remap_index },
+ { 16973, SamplerParameterfv_remap_index },
+ { 23026, SamplerParameteri_remap_index },
+ { 18650, SamplerParameteriv_remap_index },
+ { 5393, BindTransformFeedback_remap_index },
+ { 3386, DeleteTransformFeedbacks_remap_index },
+ { 6779, DrawTransformFeedback_remap_index },
+ { 9950, GenTransformFeedbacks_remap_index },
+ { 29133, IsTransformFeedback_remap_index },
+ { 26780, PauseTransformFeedback_remap_index },
+ { 5856, ResumeTransformFeedback_remap_index },
+ { 22361, ClearDepthf_remap_index },
+ { 7083, DepthRangef_remap_index },
+ { 14915, GetShaderPrecisionFormat_remap_index },
+ { 10344, ReleaseShaderCompiler_remap_index },
+ { 11314, ShaderBinary_remap_index },
+ { 1004, GetGraphicsResetStatusARB_remap_index },
+ { 25478, GetnColorTableARB_remap_index },
+ { 8268, GetnCompressedTexImageARB_remap_index },
+ { 4090, GetnConvolutionFilterARB_remap_index },
+ { 16204, GetnHistogramARB_remap_index },
+ { 24237, GetnMapdvARB_remap_index },
+ { 22793, GetnMapfvARB_remap_index },
+ { 2264, GetnMapivARB_remap_index },
+ { 17622, GetnMinmaxARB_remap_index },
+ { 4671, GetnPixelMapfvARB_remap_index },
+ { 19670, GetnPixelMapuivARB_remap_index },
+ { 3111, GetnPixelMapusvARB_remap_index },
+ { 1383, GetnPolygonStippleARB_remap_index },
+ { 21826, GetnSeparableFilterARB_remap_index },
+ { 33582, GetnTexImageARB_remap_index },
+ { 19079, GetnUniformdvARB_remap_index },
+ { 4743, GetnUniformfvARB_remap_index },
+ { 10199, GetnUniformivARB_remap_index },
+ { 23227, GetnUniformuivARB_remap_index },
+ { 3025, ReadnPixelsARB_remap_index },
+ { 5724, PolygonOffsetEXT_remap_index },
+ { 24000, GetPixelTexGenParameterfvSGIS_remap_index },
+ { 4621, GetPixelTexGenParameterivSGIS_remap_index },
+ { 23733, PixelTexGenParameterfSGIS_remap_index },
+ { 663, PixelTexGenParameterfvSGIS_remap_index },
+ { 13130, PixelTexGenParameteriSGIS_remap_index },
+ { 14235, PixelTexGenParameterivSGIS_remap_index },
+ { 18775, SampleMaskSGIS_remap_index },
+ { 20599, SamplePatternSGIS_remap_index },
+ { 27129, ColorPointerEXT_remap_index },
+ { 18068, EdgeFlagPointerEXT_remap_index },
+ { 6400, IndexPointerEXT_remap_index },
+ { 6480, NormalPointerEXT_remap_index },
+ { 16272, TexCoordPointerEXT_remap_index },
+ { 7313, VertexPointerEXT_remap_index },
+ { 3753, PointParameterfEXT_remap_index },
+ { 8164, PointParameterfvEXT_remap_index },
+ { 32899, LockArraysEXT_remap_index },
+ { 15344, UnlockArraysEXT_remap_index },
+ { 1291, SecondaryColor3bEXT_remap_index },
+ { 8357, SecondaryColor3bvEXT_remap_index },
+ { 10824, SecondaryColor3dEXT_remap_index },
+ { 26357, SecondaryColor3dvEXT_remap_index },
+ { 28999, SecondaryColor3fEXT_remap_index },
+ { 18812, SecondaryColor3fvEXT_remap_index },
+ { 509, SecondaryColor3iEXT_remap_index },
+ { 16582, SecondaryColor3ivEXT_remap_index },
+ { 10432, SecondaryColor3sEXT_remap_index },
+ { 31726, SecondaryColor3svEXT_remap_index },
+ { 28064, SecondaryColor3ubEXT_remap_index },
+ { 21932, SecondaryColor3ubvEXT_remap_index },
+ { 13372, SecondaryColor3uiEXT_remap_index },
+ { 23620, SecondaryColor3uivEXT_remap_index },
+ { 26637, SecondaryColor3usEXT_remap_index },
+ { 13445, SecondaryColor3usvEXT_remap_index },
+ { 12183, SecondaryColorPointerEXT_remap_index },
+ { 26451, MultiDrawArraysEXT_remap_index },
+ { 21587, MultiDrawElementsEXT_remap_index },
+ { 21782, FogCoordPointerEXT_remap_index },
+ { 4794, FogCoorddEXT_remap_index },
+ { 32300, FogCoorddvEXT_remap_index },
+ { 4911, FogCoordfEXT_remap_index },
+ { 27987, FogCoordfvEXT_remap_index },
+ { 12283, PixelTexGenSGIX_remap_index },
+ { 28592, BlendFuncSeparateEXT_remap_index },
+ { 7225, FlushVertexArrayRangeNV_remap_index },
+ { 5673, VertexArrayRangeNV_remap_index },
+ { 29064, CombinerInputNV_remap_index },
+ { 2207, CombinerOutputNV_remap_index },
+ { 31879, CombinerParameterfNV_remap_index },
+ { 5547, CombinerParameterfvNV_remap_index },
+ { 23076, CombinerParameteriNV_remap_index },
+ { 33382, CombinerParameterivNV_remap_index },
+ { 7601, FinalCombinerInputNV_remap_index },
+ { 1648, GetCombinerInputParameterfvNV_remap_index },
+ { 33219, GetCombinerInputParameterivNV_remap_index },
+ { 216, GetCombinerOutputParameterfvNV_remap_index },
+ { 14196, GetCombinerOutputParameterivNV_remap_index },
+ { 6987, GetFinalCombinerInputParameterfvNV_remap_index },
+ { 25545, GetFinalCombinerInputParameterivNV_remap_index },
+ { 13009, ResizeBuffersMESA_remap_index },
+ { 11509, WindowPos2dMESA_remap_index },
+ { 1084, WindowPos2dvMESA_remap_index },
+ { 34286, WindowPos2fMESA_remap_index },
+ { 8302, WindowPos2fvMESA_remap_index },
+ { 18722, WindowPos2iMESA_remap_index },
+ { 21072, WindowPos2ivMESA_remap_index },
+ { 21686, WindowPos2sMESA_remap_index },
+ { 6069, WindowPos2svMESA_remap_index },
+ { 8093, WindowPos3dMESA_remap_index },
+ { 14443, WindowPos3dvMESA_remap_index },
+ { 555, WindowPos3fMESA_remap_index },
+ { 15405, WindowPos3fvMESA_remap_index },
+ { 24806, WindowPos3iMESA_remap_index },
+ { 31072, WindowPos3ivMESA_remap_index },
+ { 19462, WindowPos3sMESA_remap_index },
+ { 32556, WindowPos3svMESA_remap_index },
+ { 11460, WindowPos4dMESA_remap_index },
+ { 17498, WindowPos4dvMESA_remap_index },
+ { 14402, WindowPos4fMESA_remap_index },
+ { 31633, WindowPos4fvMESA_remap_index },
+ { 31225, WindowPos4iMESA_remap_index },
+ { 12812, WindowPos4ivMESA_remap_index },
+ { 19646, WindowPos4sMESA_remap_index },
+ { 3337, WindowPos4svMESA_remap_index },
+ { 27695, MultiModeDrawArraysIBM_remap_index },
+ { 29839, MultiModeDrawElementsIBM_remap_index },
+ { 12587, DeleteFencesNV_remap_index },
+ { 28911, FinishFenceNV_remap_index },
+ { 3875, GenFencesNV_remap_index },
+ { 17478, GetFenceivNV_remap_index },
+ { 8570, IsFenceNV_remap_index },
+ { 14123, SetFenceNV_remap_index },
+ { 4434, TestFenceNV_remap_index },
+ { 32527, AreProgramsResidentNV_remap_index },
+ { 31921, BindProgramNV_remap_index },
+ { 26720, DeleteProgramsNV_remap_index },
+ { 22150, ExecuteProgramNV_remap_index },
+ { 34179, GenProgramsNV_remap_index },
+ { 24105, GetProgramParameterdvNV_remap_index },
+ { 10886, GetProgramParameterfvNV_remap_index },
+ { 27103, GetProgramStringNV_remap_index },
+ { 25183, GetProgramivNV_remap_index },
+ { 24360, GetTrackMatrixivNV_remap_index },
+ { 26897, GetVertexAttribPointervNV_remap_index },
+ { 10527, GetVertexAttribdvNV_remap_index },
+ { 9626, GetVertexAttribfvNV_remap_index },
+ { 19025, GetVertexAttribivNV_remap_index },
+ { 19929, IsProgramNV_remap_index },
+ { 9709, LoadProgramNV_remap_index },
+ { 28688, ProgramParameters4dvNV_remap_index },
+ { 25113, ProgramParameters4fvNV_remap_index },
+ { 21376, RequestResidentProgramsNV_remap_index },
+ { 31417, TrackMatrixNV_remap_index },
+ { 33196, VertexAttrib1dNV_remap_index },
+ { 14034, VertexAttrib1dvNV_remap_index },
+ { 29345, VertexAttrib1fNV_remap_index },
+ { 2527, VertexAttrib1fvNV_remap_index },
+ { 31690, VertexAttrib1sNV_remap_index },
+ { 15478, VertexAttrib1svNV_remap_index },
+ { 5102, VertexAttrib2dNV_remap_index },
+ { 13927, VertexAttrib2dvNV_remap_index },
+ { 20831, VertexAttrib2fNV_remap_index },
+ { 13493, VertexAttrib2fvNV_remap_index },
+ { 6281, VertexAttrib2sNV_remap_index },
+ { 19516, VertexAttrib2svNV_remap_index },
+ { 11657, VertexAttrib3dNV_remap_index },
+ { 32777, VertexAttrib3dvNV_remap_index },
+ { 10698, VertexAttrib3fNV_remap_index },
+ { 25505, VertexAttrib3fvNV_remap_index },
+ { 22869, VertexAttrib3sNV_remap_index },
+ { 24387, VertexAttrib3svNV_remap_index },
+ { 29813, VertexAttrib4dNV_remap_index },
+ { 34216, VertexAttrib4dvNV_remap_index },
+ { 5487, VertexAttrib4fNV_remap_index },
+ { 9759, VertexAttrib4fvNV_remap_index },
+ { 27579, VertexAttrib4sNV_remap_index },
+ { 1461, VertexAttrib4svNV_remap_index },
+ { 5260, VertexAttrib4ubNV_remap_index },
+ { 817, VertexAttrib4ubvNV_remap_index },
+ { 22330, VertexAttribPointerNV_remap_index },
+ { 2379, VertexAttribs1dvNV_remap_index },
+ { 26985, VertexAttribs1fvNV_remap_index },
+ { 34016, VertexAttribs1svNV_remap_index },
+ { 10723, VertexAttribs2dvNV_remap_index },
+ { 26112, VertexAttribs2fvNV_remap_index },
+ { 18094, VertexAttribs2svNV_remap_index },
+ { 5575, VertexAttribs3dvNV_remap_index },
+ { 2238, VertexAttribs3fvNV_remap_index },
+ { 30820, VertexAttribs3svNV_remap_index },
+ { 27669, VertexAttribs4dvNV_remap_index },
+ { 5647, VertexAttribs4fvNV_remap_index },
+ { 33803, VertexAttribs4svNV_remap_index },
+ { 30568, VertexAttribs4ubvNV_remap_index },
+ { 27771, GetTexBumpParameterfvATI_remap_index },
+ { 34057, GetTexBumpParameterivATI_remap_index },
+ { 19160, TexBumpParameterfvATI_remap_index },
+ { 21247, TexBumpParameterivATI_remap_index },
+ { 16024, AlphaFragmentOp1ATI_remap_index },
+ { 26403, AlphaFragmentOp2ATI_remap_index },
+ { 25421, AlphaFragmentOp3ATI_remap_index },
+ { 30747, BeginFragmentShaderATI_remap_index },
+ { 32120, BindFragmentShaderATI_remap_index },
+ { 24516, ColorFragmentOp1ATI_remap_index },
+ { 4549, ColorFragmentOp2ATI_remap_index },
+ { 32422, ColorFragmentOp3ATI_remap_index },
+ { 5813, DeleteFragmentShaderATI_remap_index },
+ { 34240, EndFragmentShaderATI_remap_index },
+ { 33410, GenFragmentShadersATI_remap_index },
+ { 26266, PassTexCoordATI_remap_index },
+ { 7293, SampleMapATI_remap_index },
+ { 27882, SetFragmentShaderConstantATI_remap_index },
+ { 402, PointParameteriNV_remap_index },
+ { 14604, PointParameterivNV_remap_index },
+ { 29652, ActiveStencilFaceEXT_remap_index },
+ { 28328, BindVertexArrayAPPLE_remap_index },
+ { 2849, DeleteVertexArraysAPPLE_remap_index },
+ { 18561, GenVertexArraysAPPLE_remap_index },
+ { 24170, IsVertexArrayAPPLE_remap_index },
+ { 858, GetProgramNamedParameterdvNV_remap_index },
+ { 3716, GetProgramNamedParameterfvNV_remap_index },
+ { 27802, ProgramNamedParameter4dNV_remap_index },
+ { 14978, ProgramNamedParameter4dvNV_remap_index },
+ { 9242, ProgramNamedParameter4fNV_remap_index },
+ { 12148, ProgramNamedParameter4fvNV_remap_index },
+ { 17409, PrimitiveRestartIndexNV_remap_index },
+ { 31610, PrimitiveRestartNV_remap_index },
+ { 25092, DepthBoundsEXT_remap_index },
+ { 1183, BlendEquationSeparateEXT_remap_index },
+ { 15179, BindFramebufferEXT_remap_index },
+ { 26496, BindRenderbufferEXT_remap_index },
+ { 10006, CheckFramebufferStatusEXT_remap_index },
+ { 23421, DeleteFramebuffersEXT_remap_index },
+ { 32679, DeleteRenderbuffersEXT_remap_index },
+ { 13951, FramebufferRenderbufferEXT_remap_index },
+ { 14140, FramebufferTexture1DEXT_remap_index },
+ { 11942, FramebufferTexture2DEXT_remap_index },
+ { 11562, FramebufferTexture3DEXT_remap_index },
+ { 24036, GenFramebuffersEXT_remap_index },
+ { 17959, GenRenderbuffersEXT_remap_index },
+ { 7029, GenerateMipmapEXT_remap_index },
+ { 22423, GetFramebufferAttachmentParameterivEXT_remap_index },
+ { 33316, GetRenderbufferParameterivEXT_remap_index },
+ { 21127, IsFramebufferEXT_remap_index },
+ { 34139, IsRenderbufferEXT_remap_index },
+ { 8517, RenderbufferStorageEXT_remap_index },
+ { 734, BlitFramebufferEXT_remap_index },
+ { 14764, BufferParameteriAPPLE_remap_index },
+ { 19961, FlushMappedBufferRangeAPPLE_remap_index },
+ { 1906, BindFragDataLocationEXT_remap_index },
+ { 25205, GetFragDataLocationEXT_remap_index },
+ { 11001, GetUniformuivEXT_remap_index },
+ { 33490, GetVertexAttribIivEXT_remap_index },
+ { 28859, GetVertexAttribIuivEXT_remap_index },
+ { 12420, Uniform1uiEXT_remap_index },
+ { 28773, Uniform1uivEXT_remap_index },
+ { 22965, Uniform2uiEXT_remap_index },
+ { 4513, Uniform2uivEXT_remap_index },
+ { 30092, Uniform3uiEXT_remap_index },
+ { 15125, Uniform3uivEXT_remap_index },
+ { 3640, Uniform4uiEXT_remap_index },
+ { 9018, Uniform4uivEXT_remap_index },
+ { 18940, VertexAttribI1iEXT_remap_index },
+ { 5287, VertexAttribI1ivEXT_remap_index },
+ { 2628, VertexAttribI1uiEXT_remap_index },
+ { 13221, VertexAttribI1uivEXT_remap_index },
{ 81, VertexAttribI2iEXT_remap_index },
- { 24171, VertexAttribI2ivEXT_remap_index },
- { 5323, VertexAttribI2uiEXT_remap_index },
- { 4749, VertexAttribI2uivEXT_remap_index },
- { 26914, VertexAttribI3iEXT_remap_index },
- { 25373, VertexAttribI3ivEXT_remap_index },
- { 3340, VertexAttribI3uiEXT_remap_index },
- { 30772, VertexAttribI3uivEXT_remap_index },
- { 22256, VertexAttribI4bvEXT_remap_index },
- { 14764, VertexAttribI4iEXT_remap_index },
- { 32446, VertexAttribI4ivEXT_remap_index },
- { 13490, VertexAttribI4svEXT_remap_index },
- { 16679, VertexAttribI4ubvEXT_remap_index },
- { 16325, VertexAttribI4uiEXT_remap_index },
- { 5469, VertexAttribI4uivEXT_remap_index },
- { 11391, VertexAttribI4usvEXT_remap_index },
- { 18747, VertexAttribIPointerEXT_remap_index },
- { 3027, FramebufferTextureLayerEXT_remap_index },
- { 5745, ColorMaskIndexedEXT_remap_index },
- { 19183, DisableIndexedEXT_remap_index },
- { 26959, EnableIndexedEXT_remap_index },
- { 21960, GetBooleanIndexedvEXT_remap_index },
- { 11002, GetIntegerIndexedvEXT_remap_index },
- { 23032, IsEnabledIndexedEXT_remap_index },
- { 22932, ClearColorIiEXT_remap_index },
- { 3436, ClearColorIuiEXT_remap_index },
- { 9917, GetTexParameterIivEXT_remap_index },
- { 5993, GetTexParameterIuivEXT_remap_index },
- { 2983, TexParameterIivEXT_remap_index },
- { 26781, TexParameterIuivEXT_remap_index },
- { 4617, BeginConditionalRenderNV_remap_index },
- { 25759, EndConditionalRenderNV_remap_index },
- { 9354, BeginTransformFeedbackEXT_remap_index },
- { 19218, BindBufferBaseEXT_remap_index },
- { 19077, BindBufferOffsetEXT_remap_index },
- { 12303, BindBufferRangeEXT_remap_index },
- { 14386, EndTransformFeedbackEXT_remap_index },
- { 10865, GetTransformFeedbackVaryingEXT_remap_index },
- { 21049, TransformFeedbackVaryingsEXT_remap_index },
- { 29928, ProvokingVertexEXT_remap_index },
- { 10813, GetTexParameterPointervAPPLE_remap_index },
- { 5097, TextureRangeAPPLE_remap_index },
- { 11680, GetObjectParameterivAPPLE_remap_index },
- { 20171, ObjectPurgeableAPPLE_remap_index },
- { 5787, ObjectUnpurgeableAPPLE_remap_index },
- { 17475, ActiveProgramEXT_remap_index },
- { 17446, CreateShaderProgramEXT_remap_index },
- { 28896, UseShaderProgramEXT_remap_index },
- { 16632, TextureBarrierNV_remap_index },
- { 29137, StencilFuncSeparateATI_remap_index },
- { 5658, ProgramEnvParameters4fvEXT_remap_index },
- { 17340, ProgramLocalParameters4fvEXT_remap_index },
- { 14239, GetQueryObjecti64vEXT_remap_index },
- { 10415, GetQueryObjectui64vEXT_remap_index },
- { 24128, EGLImageTargetRenderbufferStorageOES_remap_index },
- { 12192, EGLImageTargetTexture2DOES_remap_index },
+ { 24628, VertexAttribI2ivEXT_remap_index },
+ { 5601, VertexAttribI2uiEXT_remap_index },
+ { 4956, VertexAttribI2uivEXT_remap_index },
+ { 27371, VertexAttribI3iEXT_remap_index },
+ { 25830, VertexAttribI3ivEXT_remap_index },
+ { 3494, VertexAttribI3uiEXT_remap_index },
+ { 31313, VertexAttribI3uivEXT_remap_index },
+ { 22674, VertexAttribI4bvEXT_remap_index },
+ { 15057, VertexAttribI4iEXT_remap_index },
+ { 32948, VertexAttribI4ivEXT_remap_index },
+ { 13854, VertexAttribI4svEXT_remap_index },
+ { 4043, VertexAttribI4ubvEXT_remap_index },
+ { 16645, VertexAttribI4uiEXT_remap_index },
+ { 5747, VertexAttribI4uivEXT_remap_index },
+ { 11725, VertexAttribI4usvEXT_remap_index },
+ { 19104, VertexAttribIPointerEXT_remap_index },
+ { 3181, FramebufferTextureLayerEXT_remap_index },
+ { 16999, ColorMaskIndexedEXT_remap_index },
+ { 19540, DisableIndexedEXT_remap_index },
+ { 27416, EnableIndexedEXT_remap_index },
+ { 22378, GetBooleanIndexedvEXT_remap_index },
+ { 11336, GetIntegerIndexedvEXT_remap_index },
+ { 23497, IsEnabledIndexedEXT_remap_index },
+ { 23397, ClearColorIiEXT_remap_index },
+ { 3590, ClearColorIuiEXT_remap_index },
+ { 10224, GetTexParameterIivEXT_remap_index },
+ { 6229, GetTexParameterIuivEXT_remap_index },
+ { 3137, TexParameterIivEXT_remap_index },
+ { 27238, TexParameterIuivEXT_remap_index },
+ { 4824, BeginConditionalRenderNV_remap_index },
+ { 26216, EndConditionalRenderNV_remap_index },
+ { 9653, BeginTransformFeedbackEXT_remap_index },
+ { 19575, BindBufferBaseEXT_remap_index },
+ { 19434, BindBufferOffsetEXT_remap_index },
+ { 12637, BindBufferRangeEXT_remap_index },
+ { 14679, EndTransformFeedbackEXT_remap_index },
+ { 11199, GetTransformFeedbackVaryingEXT_remap_index },
+ { 21432, TransformFeedbackVaryingsEXT_remap_index },
+ { 30469, ProvokingVertexEXT_remap_index },
+ { 11147, GetTexParameterPointervAPPLE_remap_index },
+ { 5349, TextureRangeAPPLE_remap_index },
+ { 12014, GetObjectParameterivAPPLE_remap_index },
+ { 20554, ObjectPurgeableAPPLE_remap_index },
+ { 6023, ObjectUnpurgeableAPPLE_remap_index },
+ { 17781, ActiveProgramEXT_remap_index },
+ { 17752, CreateShaderProgramEXT_remap_index },
+ { 29437, UseShaderProgramEXT_remap_index },
+ { 16952, TextureBarrierNV_remap_index },
+ { 29678, StencilFuncSeparateATI_remap_index },
+ { 5936, ProgramEnvParameters4fvEXT_remap_index },
+ { 17646, ProgramLocalParameters4fvEXT_remap_index },
+ { 14532, GetQueryObjecti64vEXT_remap_index },
+ { 10749, GetQueryObjectui64vEXT_remap_index },
+ { 24585, EGLImageTargetRenderbufferStorageOES_remap_index },
+ { 12526, EGLImageTargetTexture2DOES_remap_index },
{ -1, -1 }
};
/* these functions are in the ABI, but have alternative names */
static const struct gl_function_remap MESA_alt_functions[] = {
/* from GL_EXT_blend_color */
- { 2655, _gloffset_BlendColor },
+ { 2767, _gloffset_BlendColor },
/* from GL_EXT_blend_minmax */
- { 11285, _gloffset_BlendEquation },
+ { 11619, _gloffset_BlendEquation },
/* from GL_EXT_color_subtable */
- { 17238, _gloffset_ColorSubTable },
- { 32109, _gloffset_CopyColorSubTable },
+ { 17520, _gloffset_ColorSubTable },
+ { 32611, _gloffset_CopyColorSubTable },
/* from GL_EXT_convolution */
- { 257, _gloffset_ConvolutionFilter1D },
- { 2454, _gloffset_CopyConvolutionFilter1D },
- { 4058, _gloffset_GetConvolutionParameteriv },
- { 8567, _gloffset_ConvolutionFilter2D },
- { 8769, _gloffset_ConvolutionParameteriv },
- { 9229, _gloffset_ConvolutionParameterfv },
- { 20892, _gloffset_GetSeparableFilter },
- { 24403, _gloffset_SeparableFilter2D },
- { 25266, _gloffset_ConvolutionParameteri },
- { 25434, _gloffset_ConvolutionParameterf },
- { 27148, _gloffset_GetConvolutionParameterfv },
- { 28005, _gloffset_GetConvolutionFilter },
- { 30468, _gloffset_CopyConvolutionFilter2D },
+ { 296, _gloffset_ConvolutionFilter1D },
+ { 2566, _gloffset_CopyConvolutionFilter1D },
+ { 4293, _gloffset_GetConvolutionParameteriv },
+ { 8866, _gloffset_ConvolutionFilter2D },
+ { 9068, _gloffset_ConvolutionParameteriv },
+ { 9528, _gloffset_ConvolutionParameterfv },
+ { 21275, _gloffset_GetSeparableFilter },
+ { 24860, _gloffset_SeparableFilter2D },
+ { 25723, _gloffset_ConvolutionParameteri },
+ { 25891, _gloffset_ConvolutionParameterf },
+ { 27605, _gloffset_GetConvolutionParameterfv },
+ { 28494, _gloffset_GetConvolutionFilter },
+ { 31009, _gloffset_CopyConvolutionFilter2D },
/* from GL_EXT_copy_texture */
- { 15245, _gloffset_CopyTexSubImage3D },
- { 16925, _gloffset_CopyTexImage2D },
- { 24874, _gloffset_CopyTexImage1D },
- { 27686, _gloffset_CopyTexSubImage2D },
- { 30106, _gloffset_CopyTexSubImage1D },
+ { 15538, _gloffset_CopyTexSubImage3D },
+ { 17207, _gloffset_CopyTexImage2D },
+ { 25331, _gloffset_CopyTexImage1D },
+ { 28175, _gloffset_CopyTexSubImage2D },
+ { 30647, _gloffset_CopyTexSubImage1D },
/* from GL_EXT_draw_range_elements */
- { 9566, _gloffset_DrawRangeElements },
+ { 9865, _gloffset_DrawRangeElements },
/* from GL_EXT_histogram */
- { 856, _gloffset_Histogram },
- { 3522, _gloffset_ResetHistogram },
- { 10063, _gloffset_GetMinmax },
- { 15579, _gloffset_GetHistogramParameterfv },
- { 24799, _gloffset_GetMinmaxParameteriv },
- { 27038, _gloffset_ResetMinmax },
- { 27902, _gloffset_GetHistogramParameteriv },
- { 29071, _gloffset_GetHistogram },
- { 31695, _gloffset_Minmax },
- { 33241, _gloffset_GetMinmaxParameterfv },
+ { 895, _gloffset_Histogram },
+ { 3676, _gloffset_ResetHistogram },
+ { 10370, _gloffset_GetMinmax },
+ { 15872, _gloffset_GetHistogramParameterfv },
+ { 25256, _gloffset_GetMinmaxParameteriv },
+ { 27495, _gloffset_ResetMinmax },
+ { 28391, _gloffset_GetHistogramParameteriv },
+ { 29612, _gloffset_GetHistogram },
+ { 32236, _gloffset_Minmax },
+ { 33886, _gloffset_GetMinmaxParameterfv },
/* from GL_EXT_paletted_texture */
- { 8429, _gloffset_ColorTable },
- { 15425, _gloffset_GetColorTable },
- { 23318, _gloffset_GetColorTableParameterfv },
- { 25490, _gloffset_GetColorTableParameteriv },
+ { 8728, _gloffset_ColorTable },
+ { 15718, _gloffset_GetColorTable },
+ { 23783, _gloffset_GetColorTableParameterfv },
+ { 25947, _gloffset_GetColorTableParameteriv },
/* from GL_EXT_subtexture */
- { 7174, _gloffset_TexSubImage1D },
- { 10740, _gloffset_TexSubImage2D },
+ { 7439, _gloffset_TexSubImage1D },
+ { 11074, _gloffset_TexSubImage2D },
/* from GL_EXT_texture3D */
- { 1774, _gloffset_TexImage3D },
- { 23087, _gloffset_TexSubImage3D },
+ { 1865, _gloffset_TexImage3D },
+ { 23552, _gloffset_TexSubImage3D },
/* from GL_EXT_texture_object */
- { 3290, _gloffset_PrioritizeTextures },
- { 7623, _gloffset_AreTexturesResident },
- { 13694, _gloffset_GenTextures },
- { 15911, _gloffset_DeleteTextures },
- { 19859, _gloffset_IsTexture },
- { 30171, _gloffset_BindTexture },
+ { 3444, _gloffset_PrioritizeTextures },
+ { 7888, _gloffset_AreTexturesResident },
+ { 14058, _gloffset_GenTextures },
+ { 16231, _gloffset_DeleteTextures },
+ { 20242, _gloffset_IsTexture },
+ { 30712, _gloffset_BindTexture },
/* from GL_EXT_vertex_array */
- { 24575, _gloffset_ArrayElement },
- { 31283, _gloffset_GetPointerv },
- { 32868, _gloffset_DrawArrays },
+ { 25032, _gloffset_ArrayElement },
+ { 31824, _gloffset_GetPointerv },
+ { 33437, _gloffset_DrawArrays },
/* from GL_SGI_color_table */
- { 7741, _gloffset_ColorTableParameteriv },
- { 8429, _gloffset_ColorTable },
- { 15425, _gloffset_GetColorTable },
- { 15535, _gloffset_CopyColorTable },
- { 19720, _gloffset_ColorTableParameterfv },
- { 23318, _gloffset_GetColorTableParameterfv },
- { 25490, _gloffset_GetColorTableParameteriv },
+ { 8006, _gloffset_ColorTableParameteriv },
+ { 8728, _gloffset_ColorTable },
+ { 15718, _gloffset_GetColorTable },
+ { 15828, _gloffset_CopyColorTable },
+ { 20103, _gloffset_ColorTableParameterfv },
+ { 23783, _gloffset_GetColorTableParameterfv },
+ { 25947, _gloffset_GetColorTableParameteriv },
/* from GL_VERSION_1_3 */
- { 425, _gloffset_MultiTexCoord3sARB },
- { 657, _gloffset_ActiveTextureARB },
- { 4268, _gloffset_MultiTexCoord1fvARB },
- { 6240, _gloffset_MultiTexCoord3dARB },
- { 6285, _gloffset_MultiTexCoord2iARB },
- { 6409, _gloffset_MultiTexCoord2svARB },
- { 8385, _gloffset_MultiTexCoord2fARB },
- { 10445, _gloffset_MultiTexCoord3fvARB },
- { 11047, _gloffset_MultiTexCoord4sARB },
- { 11728, _gloffset_MultiTexCoord2dvARB },
- { 12135, _gloffset_MultiTexCoord1svARB },
- { 12536, _gloffset_MultiTexCoord3svARB },
- { 12597, _gloffset_MultiTexCoord4iARB },
- { 13398, _gloffset_MultiTexCoord3iARB },
- { 14268, _gloffset_MultiTexCoord1dARB },
- { 14500, _gloffset_MultiTexCoord3dvARB },
- { 15779, _gloffset_MultiTexCoord3ivARB },
- { 15824, _gloffset_MultiTexCoord2sARB },
- { 17295, _gloffset_MultiTexCoord4ivARB },
- { 19360, _gloffset_ClientActiveTextureARB },
- { 21688, _gloffset_MultiTexCoord2dARB },
- { 22125, _gloffset_MultiTexCoord4dvARB },
- { 22481, _gloffset_MultiTexCoord4fvARB },
- { 23459, _gloffset_MultiTexCoord3fARB },
- { 26084, _gloffset_MultiTexCoord4dARB },
- { 26350, _gloffset_MultiTexCoord1sARB },
- { 26554, _gloffset_MultiTexCoord1dvARB },
- { 27530, _gloffset_MultiTexCoord1ivARB },
- { 27623, _gloffset_MultiTexCoord2ivARB },
- { 27962, _gloffset_MultiTexCoord1iARB },
- { 29346, _gloffset_MultiTexCoord4svARB },
- { 29970, _gloffset_MultiTexCoord1fARB },
- { 30233, _gloffset_MultiTexCoord4fARB },
- { 32702, _gloffset_MultiTexCoord2fvARB },
+ { 464, _gloffset_MultiTexCoord3sARB },
+ { 696, _gloffset_ActiveTextureARB },
+ { 4451, _gloffset_MultiTexCoord1fvARB },
+ { 6505, _gloffset_MultiTexCoord3dARB },
+ { 6550, _gloffset_MultiTexCoord2iARB },
+ { 6674, _gloffset_MultiTexCoord2svARB },
+ { 8684, _gloffset_MultiTexCoord2fARB },
+ { 10779, _gloffset_MultiTexCoord3fvARB },
+ { 11381, _gloffset_MultiTexCoord4sARB },
+ { 12062, _gloffset_MultiTexCoord2dvARB },
+ { 12469, _gloffset_MultiTexCoord1svARB },
+ { 12870, _gloffset_MultiTexCoord3svARB },
+ { 12931, _gloffset_MultiTexCoord4iARB },
+ { 13762, _gloffset_MultiTexCoord3iARB },
+ { 14561, _gloffset_MultiTexCoord1dARB },
+ { 14793, _gloffset_MultiTexCoord3dvARB },
+ { 16072, _gloffset_MultiTexCoord3ivARB },
+ { 16117, _gloffset_MultiTexCoord2sARB },
+ { 17577, _gloffset_MultiTexCoord4ivARB },
+ { 19743, _gloffset_ClientActiveTextureARB },
+ { 22106, _gloffset_MultiTexCoord2dARB },
+ { 22543, _gloffset_MultiTexCoord4dvARB },
+ { 22920, _gloffset_MultiTexCoord4fvARB },
+ { 23924, _gloffset_MultiTexCoord3fARB },
+ { 26541, _gloffset_MultiTexCoord4dARB },
+ { 26807, _gloffset_MultiTexCoord1sARB },
+ { 27011, _gloffset_MultiTexCoord1dvARB },
+ { 28019, _gloffset_MultiTexCoord1ivARB },
+ { 28112, _gloffset_MultiTexCoord2ivARB },
+ { 28451, _gloffset_MultiTexCoord1iARB },
+ { 29887, _gloffset_MultiTexCoord4svARB },
+ { 30511, _gloffset_MultiTexCoord1fARB },
+ { 30774, _gloffset_MultiTexCoord4fARB },
+ { 33271, _gloffset_MultiTexCoord2fvARB },
{ -1, -1 }
};
@@ -5464,7 +5568,14 @@ static const struct gl_function_remap MESA_alt_functions[] = {
#if defined(need_GL_3DFX_tbuffer)
static const struct gl_function_remap GL_3DFX_tbuffer_functions[] = {
- { 9287, -1 }, /* TbufferMask3DFX */
+ { 9586, -1 }, /* TbufferMask3DFX */
+ { -1, -1 }
+};
+#endif
+
+#if defined(need_GL_AMD_draw_buffers_blend)
+/* functions defined in MESA_remap_table_functions are excluded */
+static const struct gl_function_remap GL_AMD_draw_buffers_blend_functions[] = {
{ -1, -1 }
};
#endif
@@ -5556,7 +5667,7 @@ static const struct gl_function_remap GL_ARB_framebuffer_object_functions[] = {
#if defined(need_GL_ARB_geometry_shader4)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_ARB_geometry_shader4_functions[] = {
- { 12500, -1 }, /* FramebufferTextureLayer */
+ { 12834, -1 }, /* FramebufferTextureLayer */
{ -1, -1 }
};
#endif
@@ -5577,11 +5688,11 @@ static const struct gl_function_remap GL_ARB_map_buffer_range_functions[] = {
#if defined(need_GL_ARB_matrix_palette)
static const struct gl_function_remap GL_ARB_matrix_palette_functions[] = {
- { 3773, -1 }, /* MatrixIndexusvARB */
- { 13219, -1 }, /* MatrixIndexuivARB */
- { 14655, -1 }, /* MatrixIndexPointerARB */
- { 20126, -1 }, /* CurrentPaletteMatrixARB */
- { 23203, -1 }, /* MatrixIndexubvARB */
+ { 3927, -1 }, /* MatrixIndexusvARB */
+ { 13583, -1 }, /* MatrixIndexuivARB */
+ { 14948, -1 }, /* MatrixIndexPointerARB */
+ { 20509, -1 }, /* CurrentPaletteMatrixARB */
+ { 23668, -1 }, /* MatrixIndexubvARB */
{ -1, -1 }
};
#endif
@@ -5614,6 +5725,13 @@ static const struct gl_function_remap GL_ARB_provoking_vertex_functions[] = {
};
#endif
+#if defined(need_GL_ARB_robustness)
+/* functions defined in MESA_remap_table_functions are excluded */
+static const struct gl_function_remap GL_ARB_robustness_functions[] = {
+ { -1, -1 }
+};
+#endif
+
#if defined(need_GL_ARB_sampler_objects)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_ARB_sampler_objects_functions[] = {
@@ -5672,16 +5790,16 @@ static const struct gl_function_remap GL_ARB_vertex_array_object_functions[] = {
#if defined(need_GL_ARB_vertex_blend)
static const struct gl_function_remap GL_ARB_vertex_blend_functions[] = {
- { 2396, -1 }, /* WeightubvARB */
- { 6652, -1 }, /* WeightivARB */
- { 11150, -1 }, /* WeightPointerARB */
- { 13986, -1 }, /* WeightfvARB */
- { 17814, -1 }, /* WeightbvARB */
- { 21356, -1 }, /* WeightusvARB */
- { 24329, -1 }, /* VertexBlendARB */
- { 30054, -1 }, /* WeightsvARB */
- { 32159, -1 }, /* WeightdvARB */
- { 32902, -1 }, /* WeightuivARB */
+ { 2508, -1 }, /* WeightubvARB */
+ { 6917, -1 }, /* WeightivARB */
+ { 11484, -1 }, /* WeightPointerARB */
+ { 14318, -1 }, /* WeightfvARB */
+ { 18120, -1 }, /* WeightbvARB */
+ { 21739, -1 }, /* WeightusvARB */
+ { 24786, -1 }, /* VertexBlendARB */
+ { 30595, -1 }, /* WeightsvARB */
+ { 32661, -1 }, /* WeightdvARB */
+ { 33471, -1 }, /* WeightuivARB */
{ -1, -1 }
};
#endif
@@ -5751,7 +5869,7 @@ static const struct gl_function_remap GL_ATI_separate_stencil_functions[] = {
#if defined(need_GL_EXT_blend_color)
static const struct gl_function_remap GL_EXT_blend_color_functions[] = {
- { 2655, _gloffset_BlendColor },
+ { 2767, _gloffset_BlendColor },
{ -1, -1 }
};
#endif
@@ -5772,15 +5890,15 @@ static const struct gl_function_remap GL_EXT_blend_func_separate_functions[] = {
#if defined(need_GL_EXT_blend_minmax)
static const struct gl_function_remap GL_EXT_blend_minmax_functions[] = {
- { 11285, _gloffset_BlendEquation },
+ { 11619, _gloffset_BlendEquation },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_color_subtable)
static const struct gl_function_remap GL_EXT_color_subtable_functions[] = {
- { 17238, _gloffset_ColorSubTable },
- { 32109, _gloffset_CopyColorSubTable },
+ { 17520, _gloffset_ColorSubTable },
+ { 32611, _gloffset_CopyColorSubTable },
{ -1, -1 }
};
#endif
@@ -5794,66 +5912,66 @@ static const struct gl_function_remap GL_EXT_compiled_vertex_array_functions[] =
#if defined(need_GL_EXT_convolution)
static const struct gl_function_remap GL_EXT_convolution_functions[] = {
- { 257, _gloffset_ConvolutionFilter1D },
- { 2454, _gloffset_CopyConvolutionFilter1D },
- { 4058, _gloffset_GetConvolutionParameteriv },
- { 8567, _gloffset_ConvolutionFilter2D },
- { 8769, _gloffset_ConvolutionParameteriv },
- { 9229, _gloffset_ConvolutionParameterfv },
- { 20892, _gloffset_GetSeparableFilter },
- { 24403, _gloffset_SeparableFilter2D },
- { 25266, _gloffset_ConvolutionParameteri },
- { 25434, _gloffset_ConvolutionParameterf },
- { 27148, _gloffset_GetConvolutionParameterfv },
- { 28005, _gloffset_GetConvolutionFilter },
- { 30468, _gloffset_CopyConvolutionFilter2D },
+ { 296, _gloffset_ConvolutionFilter1D },
+ { 2566, _gloffset_CopyConvolutionFilter1D },
+ { 4293, _gloffset_GetConvolutionParameteriv },
+ { 8866, _gloffset_ConvolutionFilter2D },
+ { 9068, _gloffset_ConvolutionParameteriv },
+ { 9528, _gloffset_ConvolutionParameterfv },
+ { 21275, _gloffset_GetSeparableFilter },
+ { 24860, _gloffset_SeparableFilter2D },
+ { 25723, _gloffset_ConvolutionParameteri },
+ { 25891, _gloffset_ConvolutionParameterf },
+ { 27605, _gloffset_GetConvolutionParameterfv },
+ { 28494, _gloffset_GetConvolutionFilter },
+ { 31009, _gloffset_CopyConvolutionFilter2D },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_coordinate_frame)
static const struct gl_function_remap GL_EXT_coordinate_frame_functions[] = {
- { 10584, -1 }, /* TangentPointerEXT */
- { 12655, -1 }, /* Binormal3ivEXT */
- { 13351, -1 }, /* Tangent3sEXT */
- { 14720, -1 }, /* Tangent3fvEXT */
- { 18831, -1 }, /* Tangent3ivEXT */
- { 19058, -1 }, /* Tangent3dvEXT */
- { 19806, -1 }, /* Binormal3bvEXT */
- { 20945, -1 }, /* Binormal3dEXT */
- { 23135, -1 }, /* Tangent3fEXT */
- { 25338, -1 }, /* Binormal3sEXT */
- { 25880, -1 }, /* Tangent3dEXT */
- { 26827, -1 }, /* Binormal3svEXT */
- { 27428, -1 }, /* Binormal3fEXT */
- { 28336, -1 }, /* Binormal3dvEXT */
- { 29603, -1 }, /* Tangent3iEXT */
- { 30753, -1 }, /* Tangent3bvEXT */
- { 31318, -1 }, /* Tangent3bEXT */
- { 31882, -1 }, /* Binormal3fvEXT */
- { 32601, -1 }, /* BinormalPointerEXT */
- { 33006, -1 }, /* Tangent3svEXT */
- { 33443, -1 }, /* Binormal3bEXT */
- { 33620, -1 }, /* Binormal3iEXT */
+ { 10918, -1 }, /* TangentPointerEXT */
+ { 12989, -1 }, /* Binormal3ivEXT */
+ { 13715, -1 }, /* Tangent3sEXT */
+ { 15013, -1 }, /* Tangent3fvEXT */
+ { 19188, -1 }, /* Tangent3ivEXT */
+ { 19415, -1 }, /* Tangent3dvEXT */
+ { 20189, -1 }, /* Binormal3bvEXT */
+ { 21328, -1 }, /* Binormal3dEXT */
+ { 23600, -1 }, /* Tangent3fEXT */
+ { 25795, -1 }, /* Binormal3sEXT */
+ { 26337, -1 }, /* Tangent3dEXT */
+ { 27284, -1 }, /* Binormal3svEXT */
+ { 27917, -1 }, /* Binormal3fEXT */
+ { 28825, -1 }, /* Binormal3dvEXT */
+ { 30144, -1 }, /* Tangent3iEXT */
+ { 31294, -1 }, /* Tangent3bvEXT */
+ { 31859, -1 }, /* Tangent3bEXT */
+ { 32384, -1 }, /* Binormal3fvEXT */
+ { 33170, -1 }, /* BinormalPointerEXT */
+ { 33651, -1 }, /* Tangent3svEXT */
+ { 34088, -1 }, /* Binormal3bEXT */
+ { 34265, -1 }, /* Binormal3iEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_copy_texture)
static const struct gl_function_remap GL_EXT_copy_texture_functions[] = {
- { 15245, _gloffset_CopyTexSubImage3D },
- { 16925, _gloffset_CopyTexImage2D },
- { 24874, _gloffset_CopyTexImage1D },
- { 27686, _gloffset_CopyTexSubImage2D },
- { 30106, _gloffset_CopyTexSubImage1D },
+ { 15538, _gloffset_CopyTexSubImage3D },
+ { 17207, _gloffset_CopyTexImage2D },
+ { 25331, _gloffset_CopyTexImage1D },
+ { 28175, _gloffset_CopyTexSubImage2D },
+ { 30647, _gloffset_CopyTexSubImage1D },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_cull_vertex)
static const struct gl_function_remap GL_EXT_cull_vertex_functions[] = {
- { 8918, -1 }, /* CullParameterdvEXT */
- { 11773, -1 }, /* CullParameterfvEXT */
+ { 9217, -1 }, /* CullParameterdvEXT */
+ { 12107, -1 }, /* CullParameterfvEXT */
{ -1, -1 }
};
#endif
@@ -5881,7 +5999,7 @@ static const struct gl_function_remap GL_EXT_draw_instanced_functions[] = {
#if defined(need_GL_EXT_draw_range_elements)
static const struct gl_function_remap GL_EXT_draw_range_elements_functions[] = {
- { 9566, _gloffset_DrawRangeElements },
+ { 9865, _gloffset_DrawRangeElements },
{ -1, -1 }
};
#endif
@@ -5930,39 +6048,39 @@ static const struct gl_function_remap GL_EXT_gpu_shader4_functions[] = {
#if defined(need_GL_EXT_histogram)
static const struct gl_function_remap GL_EXT_histogram_functions[] = {
- { 856, _gloffset_Histogram },
- { 3522, _gloffset_ResetHistogram },
- { 10063, _gloffset_GetMinmax },
- { 15579, _gloffset_GetHistogramParameterfv },
- { 24799, _gloffset_GetMinmaxParameteriv },
- { 27038, _gloffset_ResetMinmax },
- { 27902, _gloffset_GetHistogramParameteriv },
- { 29071, _gloffset_GetHistogram },
- { 31695, _gloffset_Minmax },
- { 33241, _gloffset_GetMinmaxParameterfv },
+ { 895, _gloffset_Histogram },
+ { 3676, _gloffset_ResetHistogram },
+ { 10370, _gloffset_GetMinmax },
+ { 15872, _gloffset_GetHistogramParameterfv },
+ { 25256, _gloffset_GetMinmaxParameteriv },
+ { 27495, _gloffset_ResetMinmax },
+ { 28391, _gloffset_GetHistogramParameteriv },
+ { 29612, _gloffset_GetHistogram },
+ { 32236, _gloffset_Minmax },
+ { 33886, _gloffset_GetMinmaxParameterfv },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_index_func)
static const struct gl_function_remap GL_EXT_index_func_functions[] = {
- { 11559, -1 }, /* IndexFuncEXT */
+ { 11893, -1 }, /* IndexFuncEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_index_material)
static const struct gl_function_remap GL_EXT_index_material_functions[] = {
- { 21443, -1 }, /* IndexMaterialEXT */
+ { 21861, -1 }, /* IndexMaterialEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_light_texture)
static const struct gl_function_remap GL_EXT_light_texture_functions[] = {
- { 26847, -1 }, /* ApplyTextureEXT */
- { 26992, -1 }, /* TextureMaterialEXT */
- { 27017, -1 }, /* TextureLightEXT */
+ { 27304, -1 }, /* ApplyTextureEXT */
+ { 27449, -1 }, /* TextureMaterialEXT */
+ { 27474, -1 }, /* TextureLightEXT */
{ -1, -1 }
};
#endif
@@ -5983,20 +6101,20 @@ static const struct gl_function_remap GL_EXT_multisample_functions[] = {
#if defined(need_GL_EXT_paletted_texture)
static const struct gl_function_remap GL_EXT_paletted_texture_functions[] = {
- { 8429, _gloffset_ColorTable },
- { 15425, _gloffset_GetColorTable },
- { 23318, _gloffset_GetColorTableParameterfv },
- { 25490, _gloffset_GetColorTableParameteriv },
+ { 8728, _gloffset_ColorTable },
+ { 15718, _gloffset_GetColorTable },
+ { 23783, _gloffset_GetColorTableParameterfv },
+ { 25947, _gloffset_GetColorTableParameteriv },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_pixel_transform)
static const struct gl_function_remap GL_EXT_pixel_transform_functions[] = {
- { 22090, -1 }, /* PixelTransformParameterfEXT */
- { 22170, -1 }, /* PixelTransformParameteriEXT */
- { 31033, -1 }, /* PixelTransformParameterfvEXT */
- { 32565, -1 }, /* PixelTransformParameterivEXT */
+ { 22508, -1 }, /* PixelTransformParameterfEXT */
+ { 22588, -1 }, /* PixelTransformParameteriEXT */
+ { 31574, -1 }, /* PixelTransformParameterfvEXT */
+ { 33134, -1 }, /* PixelTransformParameterivEXT */
{ -1, -1 }
};
#endif
@@ -6045,16 +6163,16 @@ static const struct gl_function_remap GL_EXT_stencil_two_side_functions[] = {
#if defined(need_GL_EXT_subtexture)
static const struct gl_function_remap GL_EXT_subtexture_functions[] = {
- { 7174, _gloffset_TexSubImage1D },
- { 10740, _gloffset_TexSubImage2D },
+ { 7439, _gloffset_TexSubImage1D },
+ { 11074, _gloffset_TexSubImage2D },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_texture3D)
static const struct gl_function_remap GL_EXT_texture3D_functions[] = {
- { 1774, _gloffset_TexImage3D },
- { 23087, _gloffset_TexSubImage3D },
+ { 1865, _gloffset_TexImage3D },
+ { 23552, _gloffset_TexSubImage3D },
{ -1, -1 }
};
#endif
@@ -6075,19 +6193,19 @@ static const struct gl_function_remap GL_EXT_texture_integer_functions[] = {
#if defined(need_GL_EXT_texture_object)
static const struct gl_function_remap GL_EXT_texture_object_functions[] = {
- { 3290, _gloffset_PrioritizeTextures },
- { 7623, _gloffset_AreTexturesResident },
- { 13694, _gloffset_GenTextures },
- { 15911, _gloffset_DeleteTextures },
- { 19859, _gloffset_IsTexture },
- { 30171, _gloffset_BindTexture },
+ { 3444, _gloffset_PrioritizeTextures },
+ { 7888, _gloffset_AreTexturesResident },
+ { 14058, _gloffset_GenTextures },
+ { 16231, _gloffset_DeleteTextures },
+ { 20242, _gloffset_IsTexture },
+ { 30712, _gloffset_BindTexture },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_texture_perturb_normal)
static const struct gl_function_remap GL_EXT_texture_perturb_normal_functions[] = {
- { 13936, -1 }, /* TextureNormalEXT */
+ { 14268, -1 }, /* TextureNormalEXT */
{ -1, -1 }
};
#endif
@@ -6109,30 +6227,30 @@ static const struct gl_function_remap GL_EXT_transform_feedback_functions[] = {
#if defined(need_GL_EXT_vertex_array)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_EXT_vertex_array_functions[] = {
- { 24575, _gloffset_ArrayElement },
- { 31283, _gloffset_GetPointerv },
- { 32868, _gloffset_DrawArrays },
+ { 25032, _gloffset_ArrayElement },
+ { 31824, _gloffset_GetPointerv },
+ { 33437, _gloffset_DrawArrays },
{ -1, -1 }
};
#endif
#if defined(need_GL_EXT_vertex_weighting)
static const struct gl_function_remap GL_EXT_vertex_weighting_functions[] = {
- { 19907, -1 }, /* VertexWeightfvEXT */
- { 27371, -1 }, /* VertexWeightfEXT */
- { 29040, -1 }, /* VertexWeightPointerEXT */
+ { 20290, -1 }, /* VertexWeightfvEXT */
+ { 27860, -1 }, /* VertexWeightfEXT */
+ { 29581, -1 }, /* VertexWeightPointerEXT */
{ -1, -1 }
};
#endif
#if defined(need_GL_HP_image_transform)
static const struct gl_function_remap GL_HP_image_transform_functions[] = {
- { 2327, -1 }, /* GetImageTransformParameterfvHP */
- { 3739, -1 }, /* ImageTransformParameterfHP */
- { 10278, -1 }, /* ImageTransformParameterfvHP */
- { 12020, -1 }, /* ImageTransformParameteriHP */
- { 12390, -1 }, /* GetImageTransformParameterivHP */
- { 19971, -1 }, /* ImageTransformParameterivHP */
+ { 2439, -1 }, /* GetImageTransformParameterfvHP */
+ { 3893, -1 }, /* ImageTransformParameterfHP */
+ { 10612, -1 }, /* ImageTransformParameterfvHP */
+ { 12354, -1 }, /* ImageTransformParameteriHP */
+ { 12724, -1 }, /* GetImageTransformParameterivHP */
+ { 20354, -1 }, /* ImageTransformParameterivHP */
{ -1, -1 }
};
#endif
@@ -6146,14 +6264,14 @@ static const struct gl_function_remap GL_IBM_multimode_draw_arrays_functions[] =
#if defined(need_GL_IBM_vertex_array_lists)
static const struct gl_function_remap GL_IBM_vertex_array_lists_functions[] = {
- { 4400, -1 }, /* SecondaryColorPointerListIBM */
- { 6106, -1 }, /* NormalPointerListIBM */
- { 7797, -1 }, /* FogCoordPointerListIBM */
- { 8104, -1 }, /* VertexPointerListIBM */
- { 12274, -1 }, /* ColorPointerListIBM */
- { 13458, -1 }, /* TexCoordPointerListIBM */
- { 13958, -1 }, /* IndexPointerListIBM */
- { 33184, -1 }, /* EdgeFlagPointerListIBM */
+ { 4583, -1 }, /* SecondaryColorPointerListIBM */
+ { 6371, -1 }, /* NormalPointerListIBM */
+ { 8062, -1 }, /* FogCoordPointerListIBM */
+ { 8403, -1 }, /* VertexPointerListIBM */
+ { 12608, -1 }, /* ColorPointerListIBM */
+ { 13822, -1 }, /* TexCoordPointerListIBM */
+ { 14290, -1 }, /* IndexPointerListIBM */
+ { 33829, -1 }, /* EdgeFlagPointerListIBM */
{ -1, -1 }
};
#endif
@@ -6167,10 +6285,10 @@ static const struct gl_function_remap GL_INGR_blend_func_separate_functions[] =
#if defined(need_GL_INTEL_parallel_arrays)
static const struct gl_function_remap GL_INTEL_parallel_arrays_functions[] = {
- { 12798, -1 }, /* VertexPointervINTEL */
- { 15672, -1 }, /* ColorPointervINTEL */
- { 30442, -1 }, /* NormalPointervINTEL */
- { 30965, -1 }, /* TexCoordPointervINTEL */
+ { 13162, -1 }, /* VertexPointervINTEL */
+ { 15965, -1 }, /* ColorPointervINTEL */
+ { 30983, -1 }, /* NormalPointervINTEL */
+ { 31506, -1 }, /* TexCoordPointervINTEL */
{ -1, -1 }
};
#endif
@@ -6184,10 +6302,10 @@ static const struct gl_function_remap GL_MESA_resize_buffers_functions[] = {
#if defined(need_GL_MESA_shader_debug)
static const struct gl_function_remap GL_MESA_shader_debug_functions[] = {
- { 1638, -1 }, /* GetDebugLogLengthMESA */
- { 3461, -1 }, /* ClearDebugLogMESA */
- { 4561, -1 }, /* GetDebugLogMESA */
- { 31476, -1 }, /* CreateDebugObjectMESA */
+ { 1729, -1 }, /* GetDebugLogLengthMESA */
+ { 3615, -1 }, /* ClearDebugLogMESA */
+ { 4768, -1 }, /* GetDebugLogMESA */
+ { 32017, -1 }, /* CreateDebugObjectMESA */
{ -1, -1 }
};
#endif
@@ -6208,15 +6326,15 @@ static const struct gl_function_remap GL_NV_condtitional_render_functions[] = {
#if defined(need_GL_NV_evaluators)
static const struct gl_function_remap GL_NV_evaluators_functions[] = {
- { 6836, -1 }, /* GetMapAttribParameterivNV */
- { 8535, -1 }, /* MapControlPointsNV */
- { 8634, -1 }, /* MapParameterfvNV */
- { 10723, -1 }, /* EvalMapsNV */
- { 17412, -1 }, /* GetMapAttribParameterfvNV */
- { 17629, -1 }, /* MapParameterivNV */
- { 25189, -1 }, /* GetMapParameterivNV */
- { 25732, -1 }, /* GetMapParameterfvNV */
- { 29757, -1 }, /* GetMapControlPointsNV */
+ { 7101, -1 }, /* GetMapAttribParameterivNV */
+ { 8834, -1 }, /* MapControlPointsNV */
+ { 8933, -1 }, /* MapParameterfvNV */
+ { 11057, -1 }, /* EvalMapsNV */
+ { 17718, -1 }, /* GetMapAttribParameterfvNV */
+ { 17935, -1 }, /* MapParameterivNV */
+ { 25646, -1 }, /* GetMapParameterivNV */
+ { 26189, -1 }, /* GetMapParameterfvNV */
+ { 30298, -1 }, /* GetMapControlPointsNV */
{ -1, -1 }
};
#endif
@@ -6258,8 +6376,8 @@ static const struct gl_function_remap GL_NV_register_combiners_functions[] = {
#if defined(need_GL_NV_register_combiners2)
static const struct gl_function_remap GL_NV_register_combiners2_functions[] = {
- { 16064, -1 }, /* CombinerStageParameterfvNV */
- { 16460, -1 }, /* GetCombinerStageParameterfvNV */
+ { 16384, -1 }, /* CombinerStageParameterfvNV */
+ { 16780, -1 }, /* GetCombinerStageParameterfvNV */
{ -1, -1 }
};
#endif
@@ -6294,23 +6412,23 @@ static const struct gl_function_remap GL_OES_EGL_image_functions[] = {
#if defined(need_GL_PGI_misc_hints)
static const struct gl_function_remap GL_PGI_misc_hints_functions[] = {
- { 8755, -1 }, /* HintPGI */
+ { 9054, -1 }, /* HintPGI */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_detail_texture)
static const struct gl_function_remap GL_SGIS_detail_texture_functions[] = {
- { 16433, -1 }, /* GetDetailTexFuncSGIS */
- { 16870, -1 }, /* DetailTexFuncSGIS */
+ { 16753, -1 }, /* GetDetailTexFuncSGIS */
+ { 17152, -1 }, /* DetailTexFuncSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_fog_function)
static const struct gl_function_remap GL_SGIS_fog_function_functions[] = {
- { 27668, -1 }, /* FogFuncSGIS */
- { 28389, -1 }, /* GetFogFuncSGIS */
+ { 28157, -1 }, /* FogFuncSGIS */
+ { 28930, -1 }, /* GetFogFuncSGIS */
{ -1, -1 }
};
#endif
@@ -6338,112 +6456,112 @@ static const struct gl_function_remap GL_SGIS_point_parameters_functions[] = {
#if defined(need_GL_SGIS_sharpen_texture)
static const struct gl_function_remap GL_SGIS_sharpen_texture_functions[] = {
- { 6897, -1 }, /* GetSharpenTexFuncSGIS */
- { 22455, -1 }, /* SharpenTexFuncSGIS */
+ { 7162, -1 }, /* GetSharpenTexFuncSGIS */
+ { 22894, -1 }, /* SharpenTexFuncSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_texture4D)
static const struct gl_function_remap GL_SGIS_texture4D_functions[] = {
- { 1010, -1 }, /* TexImage4DSGIS */
- { 15980, -1 }, /* TexSubImage4DSGIS */
+ { 1034, -1 }, /* TexImage4DSGIS */
+ { 16300, -1 }, /* TexSubImage4DSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_texture_color_mask)
static const struct gl_function_remap GL_SGIS_texture_color_mask_functions[] = {
- { 15378, -1 }, /* TextureColorMaskSGIS */
+ { 15671, -1 }, /* TextureColorMaskSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIS_texture_filter4)
static const struct gl_function_remap GL_SGIS_texture_filter4_functions[] = {
- { 7074, -1 }, /* GetTexFilterFuncSGIS */
- { 16606, -1 }, /* TexFilterFuncSGIS */
+ { 7339, -1 }, /* GetTexFilterFuncSGIS */
+ { 16926, -1 }, /* TexFilterFuncSGIS */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_async)
static const struct gl_function_remap GL_SGIX_async_functions[] = {
- { 3387, -1 }, /* AsyncMarkerSGIX */
- { 4540, -1 }, /* FinishAsyncSGIX */
- { 5516, -1 }, /* PollAsyncSGIX */
- { 22664, -1 }, /* DeleteAsyncMarkersSGIX */
- { 22719, -1 }, /* IsAsyncMarkerSGIX */
- { 32981, -1 }, /* GenAsyncMarkersSGIX */
+ { 3541, -1 }, /* AsyncMarkerSGIX */
+ { 4722, -1 }, /* FinishAsyncSGIX */
+ { 5794, -1 }, /* PollAsyncSGIX */
+ { 23103, -1 }, /* DeleteAsyncMarkersSGIX */
+ { 23158, -1 }, /* IsAsyncMarkerSGIX */
+ { 33626, -1 }, /* GenAsyncMarkersSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_flush_raster)
static const struct gl_function_remap GL_SGIX_flush_raster_functions[] = {
- { 7451, -1 }, /* FlushRasterSGIX */
+ { 7716, -1 }, /* FlushRasterSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_fragment_lighting)
static const struct gl_function_remap GL_SGIX_fragment_lighting_functions[] = {
- { 2625, -1 }, /* FragmentMaterialfvSGIX */
- { 5420, -1 }, /* FragmentLightiSGIX */
- { 8171, -1 }, /* FragmentMaterialfSGIX */
- { 8308, -1 }, /* GetFragmentLightivSGIX */
- { 9181, -1 }, /* FragmentLightModeliSGIX */
- { 10786, -1 }, /* FragmentLightivSGIX */
- { 11093, -1 }, /* GetFragmentMaterialivSGIX */
- { 16373, -1 }, /* GetFragmentMaterialfvSGIX */
- { 19776, -1 }, /* FragmentLightModelfSGIX */
- { 20094, -1 }, /* FragmentColorMaterialSGIX */
- { 20511, -1 }, /* FragmentMaterialiSGIX */
- { 21771, -1 }, /* LightEnviSGIX */
- { 23410, -1 }, /* FragmentLightModelfvSGIX */
- { 23745, -1 }, /* FragmentLightfvSGIX */
- { 28773, -1 }, /* FragmentLightModelivSGIX */
- { 28922, -1 }, /* FragmentLightfSGIX */
- { 31852, -1 }, /* GetFragmentLightfvSGIX */
- { 33464, -1 }, /* FragmentMaterialivSGIX */
+ { 2737, -1 }, /* FragmentMaterialfvSGIX */
+ { 5698, -1 }, /* FragmentLightiSGIX */
+ { 8470, -1 }, /* FragmentMaterialfSGIX */
+ { 8607, -1 }, /* GetFragmentLightivSGIX */
+ { 9480, -1 }, /* FragmentLightModeliSGIX */
+ { 11120, -1 }, /* FragmentLightivSGIX */
+ { 11427, -1 }, /* GetFragmentMaterialivSGIX */
+ { 16693, -1 }, /* GetFragmentMaterialfvSGIX */
+ { 20159, -1 }, /* FragmentLightModelfSGIX */
+ { 20477, -1 }, /* FragmentColorMaterialSGIX */
+ { 20894, -1 }, /* FragmentMaterialiSGIX */
+ { 22189, -1 }, /* LightEnviSGIX */
+ { 23875, -1 }, /* FragmentLightModelfvSGIX */
+ { 24210, -1 }, /* FragmentLightfvSGIX */
+ { 29314, -1 }, /* FragmentLightModelivSGIX */
+ { 29463, -1 }, /* FragmentLightfSGIX */
+ { 32354, -1 }, /* GetFragmentLightfvSGIX */
+ { 34109, -1 }, /* FragmentMaterialivSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_framezoom)
static const struct gl_function_remap GL_SGIX_framezoom_functions[] = {
- { 22742, -1 }, /* FrameZoomSGIX */
+ { 23181, -1 }, /* FrameZoomSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_igloo_interface)
static const struct gl_function_remap GL_SGIX_igloo_interface_functions[] = {
- { 29230, -1 }, /* IglooInterfaceSGIX */
+ { 29771, -1 }, /* IglooInterfaceSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_instruments)
static const struct gl_function_remap GL_SGIX_instruments_functions[] = {
- { 2805, -1 }, /* ReadInstrumentsSGIX */
- { 6670, -1 }, /* PollInstrumentsSGIX */
- { 10644, -1 }, /* GetInstrumentsSGIX */
- { 13056, -1 }, /* StartInstrumentsSGIX */
- { 16098, -1 }, /* StopInstrumentsSGIX */
- { 18051, -1 }, /* InstrumentsBufferSGIX */
+ { 2917, -1 }, /* ReadInstrumentsSGIX */
+ { 6935, -1 }, /* PollInstrumentsSGIX */
+ { 10978, -1 }, /* GetInstrumentsSGIX */
+ { 13420, -1 }, /* StartInstrumentsSGIX */
+ { 16418, -1 }, /* StopInstrumentsSGIX */
+ { 18383, -1 }, /* InstrumentsBufferSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_list_priority)
static const struct gl_function_remap GL_SGIX_list_priority_functions[] = {
- { 1241, -1 }, /* ListParameterfSGIX */
- { 3089, -1 }, /* GetListParameterfvSGIX */
- { 17942, -1 }, /* ListParameteriSGIX */
- { 19008, -1 }, /* ListParameterfvSGIX */
- { 21177, -1 }, /* ListParameterivSGIX */
- { 33025, -1 }, /* GetListParameterivSGIX */
+ { 1265, -1 }, /* ListParameterfSGIX */
+ { 3243, -1 }, /* GetListParameterfvSGIX */
+ { 18248, -1 }, /* ListParameteriSGIX */
+ { 19365, -1 }, /* ListParameterfvSGIX */
+ { 21560, -1 }, /* ListParameterivSGIX */
+ { 33670, -1 }, /* GetListParameterivSGIX */
{ -1, -1 }
};
#endif
@@ -6457,134 +6575,134 @@ static const struct gl_function_remap GL_SGIX_pixel_texture_functions[] = {
#if defined(need_GL_SGIX_polynomial_ffd)
static const struct gl_function_remap GL_SGIX_polynomial_ffd_functions[] = {
- { 3685, -1 }, /* LoadIdentityDeformationMapSGIX */
- { 16198, -1 }, /* DeformSGIX */
- { 24687, -1 }, /* DeformationMap3fSGIX */
- { 31740, -1 }, /* DeformationMap3dSGIX */
+ { 2959, -1 }, /* DeformationMap3dSGIX */
+ { 3839, -1 }, /* LoadIdentityDeformationMapSGIX */
+ { 16518, -1 }, /* DeformSGIX */
+ { 25144, -1 }, /* DeformationMap3fSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_reference_plane)
static const struct gl_function_remap GL_SGIX_reference_plane_functions[] = {
- { 14929, -1 }, /* ReferencePlaneSGIX */
+ { 15222, -1 }, /* ReferencePlaneSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_sprite)
static const struct gl_function_remap GL_SGIX_sprite_functions[] = {
- { 9679, -1 }, /* SpriteParameterfvSGIX */
- { 20966, -1 }, /* SpriteParameteriSGIX */
- { 27072, -1 }, /* SpriteParameterfSGIX */
- { 29900, -1 }, /* SpriteParameterivSGIX */
+ { 9978, -1 }, /* SpriteParameterfvSGIX */
+ { 21349, -1 }, /* SpriteParameteriSGIX */
+ { 27529, -1 }, /* SpriteParameterfSGIX */
+ { 30441, -1 }, /* SpriteParameterivSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGIX_tag_sample_buffer)
static const struct gl_function_remap GL_SGIX_tag_sample_buffer_functions[] = {
- { 21025, -1 }, /* TagSampleBufferSGIX */
+ { 21408, -1 }, /* TagSampleBufferSGIX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SGI_color_table)
static const struct gl_function_remap GL_SGI_color_table_functions[] = {
- { 7741, _gloffset_ColorTableParameteriv },
- { 8429, _gloffset_ColorTable },
- { 15425, _gloffset_GetColorTable },
- { 15535, _gloffset_CopyColorTable },
- { 19720, _gloffset_ColorTableParameterfv },
- { 23318, _gloffset_GetColorTableParameterfv },
- { 25490, _gloffset_GetColorTableParameteriv },
+ { 8006, _gloffset_ColorTableParameteriv },
+ { 8728, _gloffset_ColorTable },
+ { 15718, _gloffset_GetColorTable },
+ { 15828, _gloffset_CopyColorTable },
+ { 20103, _gloffset_ColorTableParameterfv },
+ { 23783, _gloffset_GetColorTableParameterfv },
+ { 25947, _gloffset_GetColorTableParameteriv },
{ -1, -1 }
};
#endif
#if defined(need_GL_SUNX_constant_data)
static const struct gl_function_remap GL_SUNX_constant_data_functions[] = {
- { 31830, -1 }, /* FinishTextureSUNX */
+ { 32332, -1 }, /* FinishTextureSUNX */
{ -1, -1 }
};
#endif
#if defined(need_GL_SUN_global_alpha)
static const struct gl_function_remap GL_SUN_global_alpha_functions[] = {
- { 3408, -1 }, /* GlobalAlphaFactorubSUN */
- { 4868, -1 }, /* GlobalAlphaFactoriSUN */
- { 6695, -1 }, /* GlobalAlphaFactordSUN */
- { 9763, -1 }, /* GlobalAlphaFactoruiSUN */
- { 10235, -1 }, /* GlobalAlphaFactorbSUN */
- { 13371, -1 }, /* GlobalAlphaFactorfSUN */
- { 13535, -1 }, /* GlobalAlphaFactorusSUN */
- { 23005, -1 }, /* GlobalAlphaFactorsSUN */
+ { 3562, -1 }, /* GlobalAlphaFactorubSUN */
+ { 5075, -1 }, /* GlobalAlphaFactoriSUN */
+ { 6960, -1 }, /* GlobalAlphaFactordSUN */
+ { 10062, -1 }, /* GlobalAlphaFactoruiSUN */
+ { 10569, -1 }, /* GlobalAlphaFactorbSUN */
+ { 13735, -1 }, /* GlobalAlphaFactorfSUN */
+ { 13899, -1 }, /* GlobalAlphaFactorusSUN */
+ { 23470, -1 }, /* GlobalAlphaFactorsSUN */
{ -1, -1 }
};
#endif
#if defined(need_GL_SUN_mesh_array)
static const struct gl_function_remap GL_SUN_mesh_array_functions[] = {
- { 29691, -1 }, /* DrawMeshArraysSUN */
+ { 30232, -1 }, /* DrawMeshArraysSUN */
{ -1, -1 }
};
#endif
#if defined(need_GL_SUN_triangle_list)
static const struct gl_function_remap GL_SUN_triangle_list_functions[] = {
- { 4514, -1 }, /* ReplacementCodeubSUN */
- { 6454, -1 }, /* ReplacementCodeubvSUN */
- { 19441, -1 }, /* ReplacementCodeusvSUN */
- { 19629, -1 }, /* ReplacementCodePointerSUN */
- { 21835, -1 }, /* ReplacementCodeuiSUN */
- { 22693, -1 }, /* ReplacementCodeusSUN */
- { 30357, -1 }, /* ReplacementCodeuivSUN */
+ { 4696, -1 }, /* ReplacementCodeubSUN */
+ { 6719, -1 }, /* ReplacementCodeubvSUN */
+ { 19824, -1 }, /* ReplacementCodeusvSUN */
+ { 20012, -1 }, /* ReplacementCodePointerSUN */
+ { 22253, -1 }, /* ReplacementCodeuiSUN */
+ { 23132, -1 }, /* ReplacementCodeusSUN */
+ { 30898, -1 }, /* ReplacementCodeuivSUN */
{ -1, -1 }
};
#endif
#if defined(need_GL_SUN_vertex)
static const struct gl_function_remap GL_SUN_vertex_functions[] = {
- { 1115, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */
- { 1313, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */
- { 1539, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */
- { 1869, -1 }, /* ReplacementCodeuiVertex3fvSUN */
- { 2003, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */
- { 2561, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */
- { 2874, -1 }, /* Color4ubVertex3fvSUN */
- { 4673, -1 }, /* Color4ubVertex3fSUN */
- { 4796, -1 }, /* TexCoord2fVertex3fSUN */
- { 5169, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */
- { 5620, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */
- { 6349, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
- { 7129, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */
- { 7488, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */
- { 8980, -1 }, /* Color3fVertex3fSUN */
- { 10171, -1 }, /* Color3fVertex3fvSUN */
- { 10609, -1 }, /* Color4fNormal3fVertex3fvSUN */
- { 11438, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
- { 12919, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */
- { 14545, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
- { 15071, -1 }, /* TexCoord2fColor3fVertex3fSUN */
- { 16123, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */
- { 16565, -1 }, /* Color4ubVertex2fvSUN */
- { 16895, -1 }, /* Normal3fVertex3fSUN */
- { 17992, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */
- { 18344, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */
- { 18651, -1 }, /* TexCoord2fNormal3fVertex3fSUN */
- { 19260, -1 }, /* TexCoord2fVertex3fvSUN */
- { 20064, -1 }, /* Color4ubVertex2fSUN */
- { 20302, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */
- { 22301, -1 }, /* TexCoord2fColor4ubVertex3fSUN */
- { 22761, -1 }, /* Normal3fVertex3fvSUN */
- { 23227, -1 }, /* Color4fNormal3fVertex3fSUN */
- { 24236, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
- { 26393, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */
- { 27784, -1 }, /* TexCoord4fVertex4fSUN */
- { 28230, -1 }, /* TexCoord2fColor3fVertex3fvSUN */
- { 28617, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */
- { 28744, -1 }, /* TexCoord4fVertex4fvSUN */
- { 29478, -1 }, /* ReplacementCodeuiVertex3fSUN */
+ { 1139, -1 }, /* ReplacementCodeuiColor3fVertex3fvSUN */
+ { 1337, -1 }, /* TexCoord4fColor4fNormal3fVertex4fvSUN */
+ { 1591, -1 }, /* TexCoord2fColor4ubVertex3fvSUN */
+ { 1960, -1 }, /* ReplacementCodeuiVertex3fvSUN */
+ { 2094, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fvSUN */
+ { 2673, -1 }, /* ReplacementCodeuiNormal3fVertex3fSUN */
+ { 3052, -1 }, /* Color4ubVertex3fvSUN */
+ { 4880, -1 }, /* Color4ubVertex3fSUN */
+ { 5003, -1 }, /* TexCoord2fVertex3fSUN */
+ { 5421, -1 }, /* TexCoord2fColor4fNormal3fVertex3fSUN */
+ { 5898, -1 }, /* TexCoord2fNormal3fVertex3fvSUN */
+ { 6614, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN */
+ { 7394, -1 }, /* ReplacementCodeuiColor4ubVertex3fvSUN */
+ { 7753, -1 }, /* ReplacementCodeuiTexCoord2fVertex3fSUN */
+ { 9279, -1 }, /* Color3fVertex3fSUN */
+ { 10478, -1 }, /* Color3fVertex3fvSUN */
+ { 10943, -1 }, /* Color4fNormal3fVertex3fvSUN */
+ { 11772, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN */
+ { 13283, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fvSUN */
+ { 14838, -1 }, /* ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN */
+ { 15364, -1 }, /* TexCoord2fColor3fVertex3fSUN */
+ { 16443, -1 }, /* TexCoord4fColor4fNormal3fVertex4fSUN */
+ { 16885, -1 }, /* Color4ubVertex2fvSUN */
+ { 17177, -1 }, /* Normal3fVertex3fSUN */
+ { 18324, -1 }, /* ReplacementCodeuiColor4fNormal3fVertex3fSUN */
+ { 18676, -1 }, /* TexCoord2fColor4fNormal3fVertex3fvSUN */
+ { 18983, -1 }, /* TexCoord2fNormal3fVertex3fSUN */
+ { 19617, -1 }, /* TexCoord2fVertex3fvSUN */
+ { 20447, -1 }, /* Color4ubVertex2fSUN */
+ { 20685, -1 }, /* ReplacementCodeuiColor4ubVertex3fSUN */
+ { 22719, -1 }, /* TexCoord2fColor4ubVertex3fSUN */
+ { 23200, -1 }, /* Normal3fVertex3fvSUN */
+ { 23692, -1 }, /* Color4fNormal3fVertex3fSUN */
+ { 24693, -1 }, /* ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN */
+ { 26850, -1 }, /* ReplacementCodeuiColor3fVertex3fSUN */
+ { 28273, -1 }, /* TexCoord4fVertex4fSUN */
+ { 28719, -1 }, /* TexCoord2fColor3fVertex3fvSUN */
+ { 29158, -1 }, /* ReplacementCodeuiNormal3fVertex3fvSUN */
+ { 29285, -1 }, /* TexCoord4fVertex4fvSUN */
+ { 30019, -1 }, /* ReplacementCodeuiVertex3fSUN */
{ -1, -1 }
};
#endif
@@ -6592,40 +6710,40 @@ static const struct gl_function_remap GL_SUN_vertex_functions[] = {
#if defined(need_GL_VERSION_1_3)
/* functions defined in MESA_remap_table_functions are excluded */
static const struct gl_function_remap GL_VERSION_1_3_functions[] = {
- { 425, _gloffset_MultiTexCoord3sARB },
- { 657, _gloffset_ActiveTextureARB },
- { 4268, _gloffset_MultiTexCoord1fvARB },
- { 6240, _gloffset_MultiTexCoord3dARB },
- { 6285, _gloffset_MultiTexCoord2iARB },
- { 6409, _gloffset_MultiTexCoord2svARB },
- { 8385, _gloffset_MultiTexCoord2fARB },
- { 10445, _gloffset_MultiTexCoord3fvARB },
- { 11047, _gloffset_MultiTexCoord4sARB },
- { 11728, _gloffset_MultiTexCoord2dvARB },
- { 12135, _gloffset_MultiTexCoord1svARB },
- { 12536, _gloffset_MultiTexCoord3svARB },
- { 12597, _gloffset_MultiTexCoord4iARB },
- { 13398, _gloffset_MultiTexCoord3iARB },
- { 14268, _gloffset_MultiTexCoord1dARB },
- { 14500, _gloffset_MultiTexCoord3dvARB },
- { 15779, _gloffset_MultiTexCoord3ivARB },
- { 15824, _gloffset_MultiTexCoord2sARB },
- { 17295, _gloffset_MultiTexCoord4ivARB },
- { 19360, _gloffset_ClientActiveTextureARB },
- { 21688, _gloffset_MultiTexCoord2dARB },
- { 22125, _gloffset_MultiTexCoord4dvARB },
- { 22481, _gloffset_MultiTexCoord4fvARB },
- { 23459, _gloffset_MultiTexCoord3fARB },
- { 26084, _gloffset_MultiTexCoord4dARB },
- { 26350, _gloffset_MultiTexCoord1sARB },
- { 26554, _gloffset_MultiTexCoord1dvARB },
- { 27530, _gloffset_MultiTexCoord1ivARB },
- { 27623, _gloffset_MultiTexCoord2ivARB },
- { 27962, _gloffset_MultiTexCoord1iARB },
- { 29346, _gloffset_MultiTexCoord4svARB },
- { 29970, _gloffset_MultiTexCoord1fARB },
- { 30233, _gloffset_MultiTexCoord4fARB },
- { 32702, _gloffset_MultiTexCoord2fvARB },
+ { 464, _gloffset_MultiTexCoord3sARB },
+ { 696, _gloffset_ActiveTextureARB },
+ { 4451, _gloffset_MultiTexCoord1fvARB },
+ { 6505, _gloffset_MultiTexCoord3dARB },
+ { 6550, _gloffset_MultiTexCoord2iARB },
+ { 6674, _gloffset_MultiTexCoord2svARB },
+ { 8684, _gloffset_MultiTexCoord2fARB },
+ { 10779, _gloffset_MultiTexCoord3fvARB },
+ { 11381, _gloffset_MultiTexCoord4sARB },
+ { 12062, _gloffset_MultiTexCoord2dvARB },
+ { 12469, _gloffset_MultiTexCoord1svARB },
+ { 12870, _gloffset_MultiTexCoord3svARB },
+ { 12931, _gloffset_MultiTexCoord4iARB },
+ { 13762, _gloffset_MultiTexCoord3iARB },
+ { 14561, _gloffset_MultiTexCoord1dARB },
+ { 14793, _gloffset_MultiTexCoord3dvARB },
+ { 16072, _gloffset_MultiTexCoord3ivARB },
+ { 16117, _gloffset_MultiTexCoord2sARB },
+ { 17577, _gloffset_MultiTexCoord4ivARB },
+ { 19743, _gloffset_ClientActiveTextureARB },
+ { 22106, _gloffset_MultiTexCoord2dARB },
+ { 22543, _gloffset_MultiTexCoord4dvARB },
+ { 22920, _gloffset_MultiTexCoord4fvARB },
+ { 23924, _gloffset_MultiTexCoord3fARB },
+ { 26541, _gloffset_MultiTexCoord4dARB },
+ { 26807, _gloffset_MultiTexCoord1sARB },
+ { 27011, _gloffset_MultiTexCoord1dvARB },
+ { 28019, _gloffset_MultiTexCoord1ivARB },
+ { 28112, _gloffset_MultiTexCoord2ivARB },
+ { 28451, _gloffset_MultiTexCoord1iARB },
+ { 29887, _gloffset_MultiTexCoord4svARB },
+ { 30511, _gloffset_MultiTexCoord1fARB },
+ { 30774, _gloffset_MultiTexCoord4fARB },
+ { 33271, _gloffset_MultiTexCoord2fvARB },
{ -1, -1 }
};
#endif
diff --git a/src/mesa/main/restart.c b/src/mesa/main/restart.c
deleted file mode 100644
index ff366496f0a..00000000000
--- a/src/mesa/main/restart.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 7.9
- *
- * Copyright (C) 2010 VMware, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#include "glheader.h"
-#include "imports.h"
-#include "context.h"
-#include "restart.h"
-
-
-/**
- */
-void GLAPIENTRY
-_mesa_PrimitiveRestart(void)
-{
- GET_CURRENT_CONTEXT(ctx);
-
- if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestart()");
- return;
- }
-
- /* XXX call into vbo module */
-}
-
-
-
-/**
- */
-void GLAPIENTRY
-_mesa_PrimitiveRestartIndex(GLuint index)
-{
- GET_CURRENT_CONTEXT(ctx);
-
- if (ctx->VersionMajor * 10 + ctx->VersionMinor < 31) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glPrimitiveRestartIndex()");
- return;
- }
-
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
- FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
-
- ctx->Array.RestartIndex = index;
-}
diff --git a/src/mesa/main/restart.h b/src/mesa/main/restart.h
deleted file mode 100644
index 25f58f24c35..00000000000
--- a/src/mesa/main/restart.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 7.9
- *
- * Copyright (C) 2010 VMware, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-
-#ifndef RESTART_H
-#define RESTART_H
-
-#include "glheader.h"
-
-extern void GLAPIENTRY
-_mesa_PrimitiveRestart(void);
-
-
-extern void GLAPIENTRY
-_mesa_PrimitiveRestartIndex(GLuint index);
-
-
-#endif
diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 4a28c917cd7..229267f8c94 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -133,6 +133,7 @@ _mesa_init_sampler_object(struct gl_sampler_object *sampObj, GLuint name)
sampObj->CompareFunc = GL_LEQUAL;
sampObj->CompareFailValue = 0.0;
sampObj->sRGBDecode = GL_FALSE;
+ sampObj->CubeMapSeamless = GL_FALSE;
sampObj->DepthMode = 0;
}
@@ -567,6 +568,25 @@ set_sampler_max_anisotropy(struct gl_context *ctx,
}
+static GLuint
+set_sampler_cube_map_seamless(struct gl_context *ctx,
+ struct gl_sampler_object *samp, GLboolean param)
+{
+ if (!ctx->Extensions.AMD_seamless_cubemap_per_texture)
+ return INVALID_PNAME;
+
+ if (samp->CubeMapSeamless == param)
+ return GL_FALSE;
+
+ if (param != GL_TRUE && param != GL_FALSE)
+ return INVALID_VALUE;
+
+ flush(ctx);
+ samp->CubeMapSeamless = param;
+ return GL_TRUE;
+}
+
+
static void GLAPIENTRY
_mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param)
{
@@ -615,6 +635,9 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, (GLfloat) param);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, param);
+ break;
case GL_TEXTURE_BORDER_COLOR:
/* fall-through */
default:
@@ -696,6 +719,9 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, param);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, (GLboolean) param);
+ break;
case GL_TEXTURE_BORDER_COLOR:
/* fall-through */
default:
@@ -774,6 +800,9 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, (GLfloat) params[0]);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
+ break;
case GL_TEXTURE_BORDER_COLOR:
{
GLfloat c[4];
@@ -862,6 +891,9 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, params[0]);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, (GLboolean) params[0]);
+ break;
case GL_TEXTURE_BORDER_COLOR:
res = set_sampler_border_colorf(ctx, sampObj, params);
break;
@@ -941,6 +973,9 @@ _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, (GLfloat) params[0]);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
+ break;
case GL_TEXTURE_BORDER_COLOR:
res = set_sampler_border_colori(ctx, sampObj, params);
break;
@@ -1021,6 +1056,9 @@ _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params)
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
res = set_sampler_max_anisotropy(ctx, sampObj, (GLfloat) params[0]);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
+ break;
case GL_TEXTURE_BORDER_COLOR:
res = set_sampler_border_colorui(ctx, sampObj, params);
break;
@@ -1110,6 +1148,11 @@ _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)
params[2] = FLOAT_TO_INT(sampObj->BorderColor.f[2]);
params[3] = FLOAT_TO_INT(sampObj->BorderColor.f[3]);
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (!ctx->Extensions.AMD_seamless_cubemap_per_texture)
+ goto invalid_pname;
+ *params = sampObj->CubeMapSeamless;
+ break;
default:
goto invalid_pname;
}
@@ -1178,6 +1221,11 @@ _mesa_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params)
params[2] = sampObj->BorderColor.f[2];
params[3] = sampObj->BorderColor.f[3];
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (!ctx->Extensions.AMD_seamless_cubemap_per_texture)
+ goto invalid_pname;
+ *params = (GLfloat) sampObj->CubeMapSeamless;
+ break;
default:
goto invalid_pname;
}
@@ -1247,6 +1295,11 @@ _mesa_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params)
params[2] = sampObj->BorderColor.i[2];
params[3] = sampObj->BorderColor.i[3];
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (!ctx->Extensions.AMD_seamless_cubemap_per_texture)
+ goto invalid_pname;
+ *params = sampObj->CubeMapSeamless;
+ break;
default:
goto invalid_pname;
}
@@ -1316,6 +1369,11 @@ _mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params)
params[2] = sampObj->BorderColor.ui[2];
params[3] = sampObj->BorderColor.ui[3];
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (!ctx->Extensions.AMD_seamless_cubemap_per_texture)
+ goto invalid_pname;
+ *params = sampObj->CubeMapSeamless;
+ break;
default:
goto invalid_pname;
}
diff --git a/src/mesa/main/samplerobj.h b/src/mesa/main/samplerobj.h
index ed495c3760b..a839010b7b9 100644
--- a/src/mesa/main/samplerobj.h
+++ b/src/mesa/main/samplerobj.h
@@ -28,6 +28,14 @@
struct dd_function_table;
+static INLINE struct gl_sampler_object *
+_mesa_get_samplerobj(struct gl_context *ctx, GLuint unit)
+{
+ if (ctx->Texture.Unit[unit].Sampler)
+ return ctx->Texture.Unit[unit].Sampler;
+ else
+ return &ctx->Texture.Unit[unit]._Current->Sampler;
+}
extern void
_mesa_reference_sampler_object(struct gl_context *ctx,
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 451735faf76..514eed5d0b1 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -362,7 +362,7 @@ bind_attrib_location(struct gl_context *ctx, GLuint program, GLuint index,
{
struct gl_shader_program *shProg;
const GLint size = -1; /* unknown size */
- GLint i, oldIndex;
+ GLint i;
GLenum datatype = GL_FLOAT_VEC4;
shProg = _mesa_lookup_shader_program_err(ctx, program,
@@ -385,14 +385,6 @@ bind_attrib_location(struct gl_context *ctx, GLuint program, GLuint index,
return;
}
- if (shProg->LinkStatus) {
- /* get current index/location for the attribute */
- oldIndex = get_attrib_location(ctx, program, name);
- }
- else {
- oldIndex = -1;
- }
-
/* this will replace the current value if it's already in the list */
i = _mesa_add_attribute(shProg->Attributes, name, size, datatype, index);
if (i < 0) {
diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c
index 25257ecc3d3..86f962e9890 100644
--- a/src/mesa/main/texcompress_s3tc.c
+++ b/src/mesa/main/texcompress_s3tc.c
@@ -163,7 +163,6 @@ GLboolean
_mesa_texstore_rgb_dxt1(TEXSTORE_PARAMS)
{
const GLchan *pixels;
- GLint srcRowStride;
GLubyte *dst;
const GLint texWidth = dstRowStride * 4 / 8; /* a bit of a hack */
const GLchan *tempImage = NULL;
@@ -190,13 +189,10 @@ _mesa_texstore_rgb_dxt1(TEXSTORE_PARAMS)
if (!tempImage)
return GL_FALSE; /* out of memory */
pixels = tempImage;
- srcRowStride = 3 * srcWidth;
srcFormat = GL_RGB;
}
else {
pixels = (const GLchan *) srcAddr;
- srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
- srcType) / sizeof(GLchan);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -226,7 +222,6 @@ GLboolean
_mesa_texstore_rgba_dxt1(TEXSTORE_PARAMS)
{
const GLchan *pixels;
- GLint srcRowStride;
GLubyte *dst;
const GLint texWidth = dstRowStride * 4 / 8; /* a bit of a hack */
const GLchan *tempImage = NULL;
@@ -253,13 +248,10 @@ _mesa_texstore_rgba_dxt1(TEXSTORE_PARAMS)
if (!tempImage)
return GL_FALSE; /* out of memory */
pixels = tempImage;
- srcRowStride = 4 * srcWidth;
srcFormat = GL_RGBA;
}
else {
pixels = (const GLchan *) srcAddr;
- srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
- srcType) / sizeof(GLchan);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -288,7 +280,6 @@ GLboolean
_mesa_texstore_rgba_dxt3(TEXSTORE_PARAMS)
{
const GLchan *pixels;
- GLint srcRowStride;
GLubyte *dst;
const GLint texWidth = dstRowStride * 4 / 16; /* a bit of a hack */
const GLchan *tempImage = NULL;
@@ -315,12 +306,9 @@ _mesa_texstore_rgba_dxt3(TEXSTORE_PARAMS)
if (!tempImage)
return GL_FALSE; /* out of memory */
pixels = tempImage;
- srcRowStride = 4 * srcWidth;
}
else {
pixels = (const GLchan *) srcAddr;
- srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
- srcType) / sizeof(GLchan);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -349,7 +337,6 @@ GLboolean
_mesa_texstore_rgba_dxt5(TEXSTORE_PARAMS)
{
const GLchan *pixels;
- GLint srcRowStride;
GLubyte *dst;
const GLint texWidth = dstRowStride * 4 / 16; /* a bit of a hack */
const GLchan *tempImage = NULL;
@@ -376,12 +363,9 @@ _mesa_texstore_rgba_dxt5(TEXSTORE_PARAMS)
if (!tempImage)
return GL_FALSE; /* out of memory */
pixels = tempImage;
- srcRowStride = 4 * srcWidth;
}
else {
pixels = (const GLchan *) srcAddr;
- srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
- srcType) / sizeof(GLchan);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
diff --git a/src/mesa/main/texfetch.c b/src/mesa/main/texfetch.c
index d091789ff16..6716ce1b071 100644
--- a/src/mesa/main/texfetch.c
+++ b/src/mesa/main/texfetch.c
@@ -41,6 +41,8 @@
#include "texcompress_rgtc.h"
#include "texfetch.h"
#include "teximage.h"
+#include "../../gallium/auxiliary/util/u_format_rgb9e5.h"
+#include "../../gallium/auxiliary/util/u_format_r11g11b10f.h"
/**
@@ -898,6 +900,20 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
fetch_texel_3d_signed_i16,
store_texel_signed_i16
},
+ {
+ MESA_FORMAT_RGB9_E5_FLOAT,
+ fetch_texel_1d_rgb9_e5,
+ fetch_texel_2d_rgb9_e5,
+ fetch_texel_3d_rgb9_e5,
+ store_texel_rgb9_e5
+ },
+ {
+ MESA_FORMAT_R11_G11_B10_FLOAT,
+ fetch_texel_1d_r11_g11_b10f,
+ fetch_texel_2d_r11_g11_b10f,
+ fetch_texel_3d_r11_g11_b10f,
+ store_texel_r11_g11_b10f
+ }
};
diff --git a/src/mesa/main/texfetch_tmp.h b/src/mesa/main/texfetch_tmp.h
index 0b9d5da07e8..e6fd81d4d57 100644
--- a/src/mesa/main/texfetch_tmp.h
+++ b/src/mesa/main/texfetch_tmp.h
@@ -2332,6 +2332,48 @@ static void store_texel_s8_z24(struct gl_texture_image *texImage,
#endif
+/* MESA_FORMAT_RGB9_E5 ******************************************************/
+
+static void FETCH(rgb9_e5)( const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLuint *src = TEXEL_ADDR(GLuint, texImage, i, j, k, 1);
+ rgb9e5_to_float3(*src, texel);
+ texel[ACOMP] = 1.0F;
+}
+
+#if DIM == 3
+static void store_texel_rgb9_e5(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLfloat *src = (const GLfloat *) texel;
+ GLuint *dst = TEXEL_ADDR(GLuint, texImage, i, j, k, 1);
+ *dst = float3_to_rgb9e5(src);
+}
+#endif
+
+
+/* MESA_FORMAT_R11_G11_B10_FLOAT *********************************************/
+
+static void FETCH(r11_g11_b10f)( const struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, GLfloat *texel )
+{
+ const GLuint *src = TEXEL_ADDR(GLuint, texImage, i, j, k, 1);
+ r11g11b10f_to_float3(*src, texel);
+ texel[ACOMP] = 1.0F;
+}
+
+#if DIM == 3
+static void store_texel_r11_g11_b10f(struct gl_texture_image *texImage,
+ GLint i, GLint j, GLint k, const void *texel)
+{
+ const GLfloat *src = (const GLfloat *) texel;
+ GLuint *dst = TEXEL_ADDR(GLuint, texImage, i, j, k, 1);
+ *dst = float3_to_r11g11b10f(src);
+}
+#endif
+
+
#undef TEXEL_ADDR
#undef DIM
#undef FETCH
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index c85a7c05030..456687b0c5c 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -382,6 +382,26 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
}
}
+ if (ctx->Extensions.EXT_texture_shared_exponent) {
+ switch (internalFormat) {
+ case GL_RGB9_E5:
+ ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_RGB9_E5_FLOAT]);
+ return MESA_FORMAT_RGB9_E5_FLOAT;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
+ if (ctx->Extensions.EXT_packed_float) {
+ switch (internalFormat) {
+ case GL_R11F_G11F_B10F:
+ ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_R11_G11_B10_FLOAT]);
+ return MESA_FORMAT_R11_G11_B10_FLOAT;
+ default:
+ ; /* fallthrough */
+ }
+ }
+
if (ctx->Extensions.EXT_packed_depth_stencil) {
switch (internalFormat) {
case GL_DEPTH_STENCIL_EXT:
@@ -621,7 +641,11 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
switch (internalFormat) {
case GL_R8:
case GL_RED:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R8);
+ break;
+
case GL_COMPRESSED_RED:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RED_RGTC1);
RETURN_IF_SUPPORTED(MESA_FORMAT_R8);
break;
@@ -631,7 +655,11 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
case GL_RG:
case GL_RG8:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG88);
+ break;
+
case GL_COMPRESSED_RG:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_RGTC2);
RETURN_IF_SUPPORTED(MESA_FORMAT_RG88);
break;
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 7070a29fb9d..467baa20af4 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -623,11 +623,13 @@ _mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level
*/
static GLboolean
getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
- GLenum format, GLenum type, GLvoid *pixels )
+ GLenum format, GLenum type, GLsizei clientMemSize,
+ GLvoid *pixels )
{
struct gl_texture_object *texObj;
struct gl_texture_image *texImage;
const GLint maxLevels = _mesa_max_texture_levels(ctx, target);
+ const GLuint dimensions = (target == GL_TEXTURE_3D) ? 3 : 2;
GLenum baseFormat;
if (maxLevels == 0) {
@@ -730,17 +732,21 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
return GL_TRUE;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* packing texture image into a PBO */
- const GLuint dimensions = (target == GL_TEXTURE_3D) ? 3 : 2;
- if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, texImage->Width,
- texImage->Height, texImage->Depth,
- format, type, pixels)) {
+ if (!_mesa_validate_pbo_access(dimensions, &ctx->Pack, texImage->Width,
+ texImage->Height, texImage->Depth,
+ format, type, clientMemSize, pixels)) {
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTexImage(out of bounds PBO write)");
- return GL_TRUE;
+ "glGetTexImage(out of bounds PBO access)");
+ } else {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetnTexImageARB(out of bounds access:"
+ " bufSize (%d) is too small)", clientMemSize);
}
+ return GL_TRUE;
+ }
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
/* PBO should not be mapped */
if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
@@ -761,18 +767,20 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
* \param level image level.
* \param format pixel data format for returned image.
* \param type pixel data type for returned image.
+ * \param bufSize size of the pixels data buffer.
* \param pixels returned pixel data.
*/
void GLAPIENTRY
-_mesa_GetTexImage( GLenum target, GLint level, GLenum format,
- GLenum type, GLvoid *pixels )
+_mesa_GetnTexImageARB( GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, GLvoid *pixels )
{
struct gl_texture_object *texObj;
struct gl_texture_image *texImage;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
- if (getteximage_error_check(ctx, target, level, format, type, pixels)) {
+ if (getteximage_error_check(ctx, target, level, format, type,
+ bufSize, pixels)) {
return;
}
@@ -802,6 +810,13 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format,
}
+void GLAPIENTRY
+_mesa_GetTexImage( GLenum target, GLint level, GLenum format,
+ GLenum type, GLvoid *pixels )
+{
+ _mesa_GetnTexImageARB(target, level, format, type, INT_MAX, pixels);
+}
+
/**
* Do error checking for a glGetCompressedTexImage() call.
@@ -809,11 +824,12 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format,
*/
static GLboolean
getcompressedteximage_error_check(struct gl_context *ctx, GLenum target,
- GLint level, GLvoid *img)
+ GLint level, GLsizei clientMemSize, GLvoid *img)
{
struct gl_texture_object *texObj;
struct gl_texture_image *texImage;
const GLint maxLevels = _mesa_max_texture_levels(ctx, target);
+ GLuint compressedSize;
if (maxLevels == 0) {
_mesa_error(ctx, GL_INVALID_ENUM, "glGetCompressedTexImage(target=0x%x)",
@@ -855,26 +871,31 @@ getcompressedteximage_error_check(struct gl_context *ctx, GLenum target,
return GL_TRUE;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- GLuint compressedSize;
+ compressedSize = _mesa_format_image_size(texImage->TexFormat,
+ texImage->Width,
+ texImage->Height,
+ texImage->Depth);
- /* make sure PBO is not mapped */
- if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
+ if (!_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
+ /* do bounds checking on writing to client memory */
+ if (clientMemSize < compressedSize) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetCompressedTexImage(PBO is mapped)");
- return GL_TRUE;
+ "glGetnCompressedTexImageARB(out of bounds access:"
+ " bufSize (%d) is too small)", clientMemSize);
}
-
- compressedSize = _mesa_format_image_size(texImage->TexFormat,
- texImage->Width,
- texImage->Height,
- texImage->Depth);
-
+ } else {
/* do bounds checking on PBO write */
if ((const GLubyte *) img + compressedSize >
(const GLubyte *) ctx->Pack.BufferObj->Size) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetCompressedTexImage(out of bounds PBO write)");
+ "glGetCompressedTexImage(out of bounds PBO access)");
+ return GL_TRUE;
+ }
+
+ /* make sure PBO is not mapped */
+ if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetCompressedTexImage(PBO is mapped)");
return GL_TRUE;
}
}
@@ -884,14 +905,15 @@ getcompressedteximage_error_check(struct gl_context *ctx, GLenum target,
void GLAPIENTRY
-_mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
+_mesa_GetnCompressedTexImageARB(GLenum target, GLint level, GLsizei bufSize,
+ GLvoid *img)
{
struct gl_texture_object *texObj;
struct gl_texture_image *texImage;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
- if (getcompressedteximage_error_check(ctx, target, level, img)) {
+ if (getcompressedteximage_error_check(ctx, target, level, bufSize, img)) {
return;
}
@@ -918,3 +940,9 @@ _mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
}
_mesa_unlock_texture(ctx, texObj);
}
+
+void GLAPIENTRY
+_mesa_GetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img)
+{
+ _mesa_GetnCompressedTexImageARB(target, level, INT_MAX, img);
+}
diff --git a/src/mesa/main/texgetimage.h b/src/mesa/main/texgetimage.h
index ef420ddabf5..8612705ca88 100644
--- a/src/mesa/main/texgetimage.h
+++ b/src/mesa/main/texgetimage.h
@@ -51,10 +51,15 @@ _mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level
extern void GLAPIENTRY
_mesa_GetTexImage( GLenum target, GLint level,
GLenum format, GLenum type, GLvoid *pixels );
-
+extern void GLAPIENTRY
+_mesa_GetnTexImageARB( GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, GLvoid *pixels );
extern void GLAPIENTRY
_mesa_GetCompressedTexImageARB(GLenum target, GLint lod, GLvoid *img);
+extern void GLAPIENTRY
+_mesa_GetnCompressedTexImageARB(GLenum target, GLint level, GLsizei bufSize,
+ GLvoid *img);
#endif /* TEXGETIMAGE_H */
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 43d6e52dfe9..f2d214f931b 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -141,6 +141,7 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj,
obj->Sampler.CompareFunc = GL_LEQUAL; /* ARB_shadow */
obj->Sampler.CompareFailValue = 0.0F; /* ARB_shadow_ambient */
obj->Sampler.DepthMode = GL_LUMINANCE; /* ARB_depth_texture */
+ obj->Sampler.CubeMapSeamless = GL_FALSE;
obj->Swizzle[0] = GL_RED;
obj->Swizzle[1] = GL_GREEN;
obj->Swizzle[2] = GL_BLUE;
@@ -251,6 +252,7 @@ _mesa_copy_texture_object( struct gl_texture_object *dest,
dest->Sampler.CompareMode = src->Sampler.CompareMode;
dest->Sampler.CompareFunc = src->Sampler.CompareFunc;
dest->Sampler.CompareFailValue = src->Sampler.CompareFailValue;
+ dest->Sampler.CubeMapSeamless = src->Sampler.CubeMapSeamless;
dest->Sampler.DepthMode = src->Sampler.DepthMode;
dest->_MaxLevel = src->_MaxLevel;
dest->_MaxLambda = src->_MaxLambda;
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 3d56dac3f91..4b9dcb5d3b5 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -439,6 +439,20 @@ set_tex_parameteri(struct gl_context *ctx,
}
goto invalid_pname;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (ctx->Extensions.AMD_seamless_cubemap_per_texture) {
+ GLenum param = params[0];
+ if (param != GL_TRUE && param != GL_FALSE) {
+ goto invalid_param;
+ }
+ if (param != texObj->Sampler.CubeMapSeamless) {
+ flush(ctx);
+ texObj->Sampler.CubeMapSeamless = param;
+ }
+ return GL_TRUE;
+ }
+ goto invalid_pname;
+
default:
goto invalid_pname;
}
@@ -580,6 +594,7 @@ _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)
case GL_TEXTURE_COMPARE_FUNC_ARB:
case GL_DEPTH_TEXTURE_MODE_ARB:
case GL_TEXTURE_SRGB_DECODE_EXT:
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
{
/* convert float param to int */
GLint p[4];
@@ -629,6 +644,7 @@ _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
case GL_TEXTURE_COMPARE_FUNC_ARB:
case GL_DEPTH_TEXTURE_MODE_ARB:
case GL_TEXTURE_SRGB_DECODE_EXT:
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
{
/* convert float param to int */
GLint p[4];
@@ -979,11 +995,9 @@ _mesa_GetTexLevelParameteriv( GLenum target, GLint level,
}
break;
case GL_TEXTURE_SHARED_SIZE:
- if (ctx->VersionMajor >= 3) {
- /* XXX return number of exponent bits for shared exponent texture
- * formats, like GL_RGB9_E5.
- */
- *params = 0;
+ if (ctx->VersionMajor >= 3 ||
+ ctx->Extensions.EXT_texture_shared_exponent) {
+ *params = texFormat == MESA_FORMAT_RGB9_E5_FLOAT ? 5 : 0;
}
else {
goto invalid_pname;
@@ -1237,6 +1251,14 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
}
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (ctx->Extensions.AMD_seamless_cubemap_per_texture) {
+ *params = (GLfloat) obj->Sampler.CubeMapSeamless;
+ }
+ else {
+ error = GL_TRUE;
+ }
+
default:
error = GL_TRUE;
break;
@@ -1398,6 +1420,14 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
}
break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ if (ctx->Extensions.AMD_seamless_cubemap_per_texture) {
+ *params = (GLint) obj->Sampler.CubeMapSeamless;
+ }
+ else {
+ error = GL_TRUE;
+ }
+
default:
; /* silence warnings */
}
diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c
index a7641a5f9a4..8ba78b8b477 100644
--- a/src/mesa/main/texrender.c
+++ b/src/mesa/main/texrender.c
@@ -530,6 +530,7 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
{
struct texture_renderbuffer *trb
= (struct texture_renderbuffer *) att->Renderbuffer;
+ GLuint unused;
(void) ctx;
ASSERT(trb);
@@ -602,8 +603,10 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
trb->Base._BaseFormat = GL_RGBA;
break;
default:
- trb->Base.DataType = CHAN_TYPE;
- trb->Base._BaseFormat = GL_RGBA;
+ _mesa_format_to_type_and_comps(trb->TexImage->TexFormat,
+ &trb->Base.DataType, &unused);
+ trb->Base._BaseFormat =
+ _mesa_base_fbo_format(ctx, trb->TexImage->InternalFormat);
}
trb->Base.Data = trb->TexImage->Data;
}
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index 9a690529a83..6da3e4eb7b4 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -63,7 +63,6 @@
#include "pack.h"
#include "pbo.h"
#include "imports.h"
-#include "pack.h"
#include "texcompress.h"
#include "texcompress_fxt1.h"
#include "texcompress_rgtc.h"
@@ -71,6 +70,8 @@
#include "teximage.h"
#include "texstore.h"
#include "enums.h"
+#include "../../gallium/auxiliary/util/u_format_rgb9e5.h"
+#include "../../gallium/auxiliary/util/u_format_r11g11b10f.h"
enum {
@@ -3551,6 +3552,7 @@ _mesa_texstore_rgba_float32(TEXSTORE_PARAMS)
if (!ctx->_ImageTransferState &&
!srcPacking->SwapBytes &&
baseInternalFormat == srcFormat &&
+ baseInternalFormat == baseFormat &&
srcType == GL_FLOAT) {
/* simple memcpy path */
memcpy_texture(ctx, dims,
@@ -3625,6 +3627,7 @@ _mesa_texstore_rgba_float16(TEXSTORE_PARAMS)
if (!ctx->_ImageTransferState &&
!srcPacking->SwapBytes &&
baseInternalFormat == srcFormat &&
+ baseInternalFormat == baseFormat &&
srcType == GL_HALF_FLOAT_ARB) {
/* simple memcpy path */
memcpy_texture(ctx, dims,
@@ -4175,6 +4178,111 @@ _mesa_texstore_sla8(TEXSTORE_PARAMS)
#endif /* FEATURE_EXT_texture_sRGB */
+static GLboolean
+_mesa_texstore_rgb9_e5(TEXSTORE_PARAMS)
+{
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_RGB9_E5_FLOAT);
+ ASSERT(baseInternalFormat == GL_RGB);
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ srcFormat == GL_RGB &&
+ srcType == GL_UNSIGNED_INT_5_9_9_9_REV) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = _mesa_make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking,
+ ctx->_ImageTransferState);
+ const GLfloat *srcRow = tempImage;
+ GLint img, row, col;
+ if (!tempImage)
+ return GL_FALSE;
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * 4
+ + dstYoffset * dstRowStride
+ + dstXoffset * 4;
+ for (row = 0; row < srcHeight; row++) {
+ GLuint *dstUI = (GLuint*)dstRow;
+ for (col = 0; col < srcWidth; col++) {
+ dstUI[col] = float3_to_rgb9e5(&srcRow[col * 3]);
+ }
+ dstRow += dstRowStride;
+ srcRow += srcWidth * 3;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
+
+static GLboolean
+_mesa_texstore_r11_g11_b10f(TEXSTORE_PARAMS)
+{
+ const GLenum baseFormat = _mesa_get_format_base_format(dstFormat);
+
+ ASSERT(dstFormat == MESA_FORMAT_R11_G11_B10_FLOAT);
+ ASSERT(baseInternalFormat == GL_RGB);
+
+ if (!ctx->_ImageTransferState &&
+ !srcPacking->SwapBytes &&
+ srcFormat == GL_RGB &&
+ srcType == GL_UNSIGNED_INT_10F_11F_11F_REV) {
+ /* simple memcpy path */
+ memcpy_texture(ctx, dims,
+ dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
+ dstRowStride,
+ dstImageOffsets,
+ srcWidth, srcHeight, srcDepth, srcFormat, srcType,
+ srcAddr, srcPacking);
+ }
+ else {
+ /* general path */
+ const GLfloat *tempImage = _mesa_make_temp_float_image(ctx, dims,
+ baseInternalFormat,
+ baseFormat,
+ srcWidth, srcHeight, srcDepth,
+ srcFormat, srcType, srcAddr,
+ srcPacking,
+ ctx->_ImageTransferState);
+ const GLfloat *srcRow = tempImage;
+ GLint img, row, col;
+ if (!tempImage)
+ return GL_FALSE;
+ for (img = 0; img < srcDepth; img++) {
+ GLubyte *dstRow = (GLubyte *) dstAddr
+ + dstImageOffsets[dstZoffset + img] * 4
+ + dstYoffset * dstRowStride
+ + dstXoffset * 4;
+ for (row = 0; row < srcHeight; row++) {
+ GLuint *dstUI = (GLuint*)dstRow;
+ for (col = 0; col < srcWidth; col++) {
+ dstUI[col] = float3_to_r11g11b10f(&srcRow[col * 3]);
+ }
+ dstRow += dstRowStride;
+ srcRow += srcWidth * 3;
+ }
+ }
+
+ free((void *) tempImage);
+ }
+ return GL_TRUE;
+}
@@ -4308,6 +4416,9 @@ texstore_funcs[MESA_FORMAT_COUNT] =
{ MESA_FORMAT_SIGNED_L16, _mesa_texstore_snorm16 },
{ MESA_FORMAT_SIGNED_AL1616, _mesa_texstore_snorm1616 },
{ MESA_FORMAT_SIGNED_I16, _mesa_texstore_snorm16 },
+
+ { MESA_FORMAT_RGB9_E5_FLOAT, _mesa_texstore_rgb9_e5 },
+ { MESA_FORMAT_R11_G11_B10_FLOAT, _mesa_texstore_r11_g11_b10f },
};
diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c
index fbd70d56ca9..47efad12109 100644
--- a/src/mesa/main/transformfeedback.c
+++ b/src/mesa/main/transformfeedback.c
@@ -42,7 +42,6 @@
#include "main/dispatch.h"
#include "program/prog_parameter.h"
-//#include "program/shader_api.h"
#if FEATURE_EXT_transform_feedback
@@ -507,7 +506,7 @@ _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer)
if (obj->Active) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glBindBufferRange(transform feedback active)");
+ "glBindBufferBase(transform feedback active)");
return;
}
@@ -555,7 +554,7 @@ _mesa_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer,
if (obj->Active) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glBindBufferRange(transform feedback active)");
+ "glBindBufferOffsetEXT(transform feedback active)");
return;
}
@@ -885,7 +884,7 @@ _mesa_ResumeTransformFeedback(void)
if (!obj->Active || !obj->Paused) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glPauseTransformFeedback(feedback not active or not paused)");
+ "glResumeTransformFeedback(feedback not active or not paused)");
return;
}
@@ -932,15 +931,4 @@ _mesa_DrawTransformFeedback(GLenum mode, GLuint name)
}
-/*
-XXX misc to do:
-
-glGet*() for
-
-GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
-GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
-GL_TRANSFORM_FEEDBACK_BINDING
-*/
-
-
#endif /* FEATURE_EXT_transform_feedback */
diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
index f984ce3bc56..12fe7b5e226 100644
--- a/src/mesa/main/uniforms.c
+++ b/src/mesa/main/uniforms.c
@@ -412,11 +412,10 @@ split_location_offset(GLint *location, GLint *offset)
*/
static void
_mesa_get_uniformfv(struct gl_context *ctx, GLuint program, GLint location,
- GLfloat *params)
+ GLsizei bufSize, GLfloat *params)
{
struct gl_program *prog;
- GLint paramPos;
- GLint offset;
+ GLint paramPos, offset;
split_location_offset(&location, &offset);
@@ -426,9 +425,18 @@ _mesa_get_uniformfv(struct gl_context *ctx, GLuint program, GLint location,
const struct gl_program_parameter *p =
&prog->Parameters->Parameters[paramPos];
GLint rows, cols, i, j, k;
+ GLsizei numBytes;
get_uniform_rows_cols(p, &rows, &cols);
+ numBytes = rows * cols * sizeof *params;
+ if (bufSize < numBytes) {
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnUniformfvARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
+ return;
+ }
+
k = 0;
for (i = 0; i < rows; i++) {
const int base = paramPos + offset + i;
@@ -447,11 +455,10 @@ _mesa_get_uniformfv(struct gl_context *ctx, GLuint program, GLint location,
*/
static void
_mesa_get_uniformiv(struct gl_context *ctx, GLuint program, GLint location,
- GLint *params)
+ GLsizei bufSize, GLint *params)
{
struct gl_program *prog;
- GLint paramPos;
- GLint offset;
+ GLint paramPos, offset;
split_location_offset(&location, &offset);
@@ -461,9 +468,18 @@ _mesa_get_uniformiv(struct gl_context *ctx, GLuint program, GLint location,
const struct gl_program_parameter *p =
&prog->Parameters->Parameters[paramPos];
GLint rows, cols, i, j, k;
+ GLsizei numBytes;
get_uniform_rows_cols(p, &rows, &cols);
+ numBytes = rows * cols * sizeof *params;
+ if (bufSize < numBytes) {
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnUniformivARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
+ return;
+ }
+
k = 0;
for (i = 0; i < rows; i++) {
const int base = paramPos + offset + i;
@@ -483,11 +499,10 @@ _mesa_get_uniformiv(struct gl_context *ctx, GLuint program, GLint location,
*/
static void
_mesa_get_uniformuiv(struct gl_context *ctx, GLuint program, GLint location,
- GLuint *params)
+ GLsizei bufSize, GLuint *params)
{
struct gl_program *prog;
- GLint paramPos;
- GLint offset;
+ GLint paramPos, offset;
split_location_offset(&location, &offset);
@@ -497,9 +512,18 @@ _mesa_get_uniformuiv(struct gl_context *ctx, GLuint program, GLint location,
const struct gl_program_parameter *p =
&prog->Parameters->Parameters[paramPos];
GLint rows, cols, i, j, k;
+ GLsizei numBytes;
get_uniform_rows_cols(p, &rows, &cols);
+ numBytes = rows * cols * sizeof *params;
+ if (bufSize < numBytes) {
+ _mesa_error( ctx, GL_INVALID_OPERATION,
+ "glGetnUniformuivARB(out of bounds: bufSize is %d,"
+ " but %d bytes are required)", bufSize, numBytes );
+ return;
+ }
+
k = 0;
for (i = 0; i < rows; i++) {
const int base = paramPos + offset + i;
@@ -513,6 +537,19 @@ _mesa_get_uniformuiv(struct gl_context *ctx, GLuint program, GLint location,
/**
+ * Called via glGetUniformdv().
+ * New in GL_ARB_gpu_shader_fp64, OpenGL 4.0
+ */
+static void
+_mesa_get_uniformdv(struct gl_context *ctx, GLuint program, GLint location,
+ GLsizei bufSize, GLdouble *params)
+{
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformdvARB"
+ "(GL_ARB_gpu_shader_fp64 not implemented)");
+}
+
+
+/**
* Called via glGetUniformLocation().
*
* The return value will encode two values, the uniform location and an
@@ -1350,29 +1387,65 @@ _mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
void GLAPIENTRY
-_mesa_GetUniformfvARB(GLhandleARB program, GLint location, GLfloat *params)
+_mesa_GetnUniformfvARB(GLhandleARB program, GLint location,
+ GLsizei bufSize, GLfloat *params)
{
GET_CURRENT_CONTEXT(ctx);
- _mesa_get_uniformfv(ctx, program, location, params);
+ _mesa_get_uniformfv(ctx, program, location, bufSize, params);
+}
+
+void GLAPIENTRY
+_mesa_GetUniformfvARB(GLhandleARB program, GLint location, GLfloat *params)
+{
+ _mesa_GetnUniformfvARB(program, location, INT_MAX, params);
}
void GLAPIENTRY
-_mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint *params)
+_mesa_GetnUniformivARB(GLhandleARB program, GLint location,
+ GLsizei bufSize, GLint *params)
{
GET_CURRENT_CONTEXT(ctx);
- _mesa_get_uniformiv(ctx, program, location, params);
+ _mesa_get_uniformiv(ctx, program, location, bufSize, params);
+}
+
+void GLAPIENTRY
+_mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint *params)
+{
+ _mesa_GetnUniformivARB(program, location, INT_MAX, params);
}
/* GL3 */
void GLAPIENTRY
+_mesa_GetnUniformuivARB(GLhandleARB program, GLint location,
+ GLsizei bufSize, GLuint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_get_uniformuiv(ctx, program, location, bufSize, params);
+}
+
+void GLAPIENTRY
_mesa_GetUniformuiv(GLhandleARB program, GLint location, GLuint *params)
{
+ _mesa_GetnUniformuivARB(program, location, INT_MAX, params);
+}
+
+
+/* GL4 */
+void GLAPIENTRY
+_mesa_GetnUniformdvARB(GLhandleARB program, GLint location,
+ GLsizei bufSize, GLdouble *params)
+{
GET_CURRENT_CONTEXT(ctx);
- _mesa_get_uniformuiv(ctx, program, location, params);
+ _mesa_get_uniformdv(ctx, program, location, bufSize, params);
}
+void GLAPIENTRY
+_mesa_GetUniformdv(GLhandleARB program, GLint location, GLdouble *params)
+{
+ _mesa_GetnUniformdvARB(program, location, INT_MAX, params);
+}
GLint GLAPIENTRY
@@ -1454,6 +1527,11 @@ _mesa_init_shader_uniform_dispatch(struct _glapi_table *exec)
SET_Uniform4uivEXT(exec, _mesa_Uniform4uiv);
SET_GetUniformuivEXT(exec, _mesa_GetUniformuiv);
+ /* GL_ARB_robustness */
+ SET_GetnUniformfvARB(exec, _mesa_GetnUniformfvARB);
+ SET_GetnUniformivARB(exec, _mesa_GetnUniformivARB);
+ SET_GetnUniformuivARB(exec, _mesa_GetnUniformuivARB);
+ SET_GetnUniformdvARB(exec, _mesa_GetnUniformdvARB); /* GL 4.0 */
#endif /* FEATURE_GL */
}
diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h
index 54abb08ba59..b024cb30ba5 100644
--- a/src/mesa/main/uniforms.h
+++ b/src/mesa/main/uniforms.h
@@ -146,10 +146,25 @@ extern void GLAPIENTRY
_mesa_GetUniformfvARB(GLhandleARB, GLint, GLfloat *);
extern void GLAPIENTRY
+_mesa_GetnUniformfvARB(GLhandleARB, GLint, GLsizei, GLfloat *);
+
+extern void GLAPIENTRY
_mesa_GetUniformivARB(GLhandleARB, GLint, GLint *);
extern void GLAPIENTRY
-_mesa_GetUniformuiv(GLhandleARB program, GLint location, GLuint *params);
+_mesa_GetnUniformivARB(GLhandleARB, GLint, GLsizei, GLint *);
+
+extern void GLAPIENTRY
+_mesa_GetUniformuiv(GLhandleARB, GLint, GLuint *);
+
+extern void GLAPIENTRY
+_mesa_GetnUniformuivARB(GLhandleARB, GLint, GLsizei, GLuint *);
+
+extern void GLAPIENTRY
+_mesa_GetUniformdv(GLhandleARB, GLint, GLdouble *);
+
+extern void GLAPIENTRY
+_mesa_GetnUniformdvARB(GLhandleARB, GLint, GLsizei, GLdouble *);
extern GLint GLAPIENTRY
_mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *);
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index d20e2c7193e..29a345f9425 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -57,8 +57,8 @@
#define HALF_BIT 0x80
#define FLOAT_BIT 0x100
#define DOUBLE_BIT 0x200
-#define FIXED_BIT 0x400
-
+#define FIXED_ES_BIT 0x400
+#define FIXED_GL_BIT 0x800
/** Convert GL datatype enum into a <type>_BIT value seen above */
@@ -90,7 +90,7 @@ type_to_bit(const struct gl_context *ctx, GLenum type)
case GL_DOUBLE:
return DOUBLE_BIT;
case GL_FIXED:
- return FIXED_BIT;
+ return ctx->API == API_OPENGL ? FIXED_GL_BIT : FIXED_ES_BIT;
default:
return 0;
}
@@ -130,7 +130,10 @@ update_array(struct gl_context *ctx,
if (ctx->API != API_OPENGLES && ctx->API != API_OPENGLES2) {
/* fixed point arrays / data is only allowed with OpenGL ES 1.x/2.0 */
- legalTypesMask &= ~FIXED_BIT;
+ legalTypesMask &= ~FIXED_ES_BIT;
+ }
+ if (!ctx->Extensions.ARB_ES2_compatibility) {
+ legalTypesMask &= ~FIXED_GL_BIT;
}
typeBit = type_to_bit(ctx, type);
@@ -198,7 +201,7 @@ void GLAPIENTRY
_mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
{
GLbitfield legalTypes = (SHORT_BIT | INT_BIT | FLOAT_BIT |
- DOUBLE_BIT | HALF_BIT | FIXED_BIT);
+ DOUBLE_BIT | HALF_BIT | FIXED_ES_BIT);
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -217,7 +220,7 @@ _mesa_NormalPointer(GLenum type, GLsizei stride, const GLvoid *ptr )
{
const GLbitfield legalTypes = (BYTE_BIT | SHORT_BIT | INT_BIT |
HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
- FIXED_BIT);
+ FIXED_ES_BIT);
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -235,7 +238,7 @@ _mesa_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
SHORT_BIT | UNSIGNED_SHORT_BIT |
INT_BIT | UNSIGNED_INT_BIT |
HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
- FIXED_BIT);
+ FIXED_ES_BIT);
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -299,7 +302,7 @@ _mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride,
{
GLbitfield legalTypes = (SHORT_BIT | INT_BIT |
HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
- FIXED_BIT);
+ FIXED_ES_BIT);
GET_CURRENT_CONTEXT(ctx);
const GLuint unit = ctx->Array.ActiveTexture;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -337,7 +340,7 @@ _mesa_EdgeFlagPointer(GLsizei stride, const GLvoid *ptr)
void GLAPIENTRY
_mesa_PointSizePointer(GLenum type, GLsizei stride, const GLvoid *ptr)
{
- const GLbitfield legalTypes = (FLOAT_BIT | FIXED_BIT);
+ const GLbitfield legalTypes = (FLOAT_BIT | FIXED_ES_BIT);
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -405,7 +408,7 @@ _mesa_VertexAttribPointerARB(GLuint index, GLint size, GLenum type,
SHORT_BIT | UNSIGNED_SHORT_BIT |
INT_BIT | UNSIGNED_INT_BIT |
HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
- FIXED_BIT);
+ FIXED_ES_BIT | FIXED_GL_BIT);
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
diff --git a/src/mesa/program/hash_table.c b/src/mesa/program/hash_table.c
index f7ef366c1a0..877a9e2ffc3 100644
--- a/src/mesa/program/hash_table.c
+++ b/src/mesa/program/hash_table.c
@@ -160,6 +160,25 @@ hash_table_remove(struct hash_table *ht, const void *key)
}
}
+void
+hash_table_call_foreach(struct hash_table *ht,
+ void (*callback)(const void *key,
+ void *data,
+ void *closure),
+ void *closure)
+{
+ int bucket;
+
+ for (bucket = 0; bucket < ht->num_buckets; bucket++) {
+ struct node *node, *temp;
+ foreach_s(node, temp, &ht->buckets[bucket]) {
+ struct hash_node *hn = (struct hash_node *) node;
+
+ callback(hn->key, hn->data, closure);
+ }
+ }
+}
+
unsigned
hash_table_string_hash(const void *key)
{
diff --git a/src/mesa/program/hash_table.h b/src/mesa/program/hash_table.h
index f1c4fdcd1fa..e715bb1cc62 100644
--- a/src/mesa/program/hash_table.h
+++ b/src/mesa/program/hash_table.h
@@ -144,6 +144,13 @@ hash_table_pointer_hash(const void *key);
int
hash_table_pointer_compare(const void *key1, const void *key2);
+void
+hash_table_call_foreach(struct hash_table *ht,
+ void (*callback)(const void *key,
+ void *data,
+ void *closure),
+ void *closure);
+
#ifdef __cplusplus
}
#endif
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 3c9b9733832..bc10b455b8b 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -1481,7 +1481,6 @@ ir_to_mesa_visitor::visit(ir_dereference_array *ir)
if (index) {
src.index += index->value.i[0] * element_size;
} else {
- src_reg array_base = this->result;
/* Variable index array dereference. It eats the "vec4" of the
* base of the array and an index that offsets the Mesa register
* index.
@@ -2163,7 +2162,7 @@ ir_to_mesa_visitor::visit(ir_discard *ir)
void
ir_to_mesa_visitor::visit(ir_if *ir)
{
- ir_to_mesa_instruction *cond_inst, *if_inst, *else_inst = NULL;
+ ir_to_mesa_instruction *cond_inst, *if_inst;
ir_to_mesa_instruction *prev_inst;
prev_inst = (ir_to_mesa_instruction *)this->instructions.get_tail();
@@ -2195,7 +2194,7 @@ ir_to_mesa_visitor::visit(ir_if *ir)
visit_exec_list(&ir->then_instructions, this);
if (!ir->else_instructions.is_empty()) {
- else_inst = emit(ir->condition, OPCODE_ELSE);
+ emit(ir->condition, OPCODE_ELSE);
visit_exec_list(&ir->else_instructions, this);
}
diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c
index 484596af760..7c3b4909e73 100644
--- a/src/mesa/program/prog_print.c
+++ b/src/mesa/program/prog_print.c
@@ -647,6 +647,7 @@ _mesa_fprint_instruction_opt(FILE *f,
case OPCODE_TXP:
case OPCODE_TXL:
case OPCODE_TXB:
+ case OPCODE_TXD:
fprintf(f, "%s", _mesa_opcode_string(inst->Opcode));
if (inst->SaturateMode == SATURATE_ZERO_ONE)
fprintf(f, "_SAT");
@@ -654,6 +655,12 @@ _mesa_fprint_instruction_opt(FILE *f,
fprint_dst_reg(f, &inst->DstReg, mode, prog);
fprintf(f, ", ");
fprint_src_reg(f, &inst->SrcReg[0], mode, prog);
+ if (inst->Opcode == OPCODE_TXD) {
+ fprintf(f, ", ");
+ fprint_src_reg(f, &inst->SrcReg[1], mode, prog);
+ fprintf(f, ", ");
+ fprint_src_reg(f, &inst->SrcReg[2], mode, prog);
+ }
fprintf(f, ", texture[%d], ", inst->TexSrcUnit);
switch (inst->TexSrcTarget) {
case TEXTURE_1D_INDEX: fprintf(f, "1D"); break;
diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c
index 1fd26f44d56..d94d7fe5dfb 100644
--- a/src/mesa/program/prog_statevars.c
+++ b/src/mesa/program/prog_statevars.c
@@ -602,11 +602,11 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[],
value[0] = 1.0F;
value[1] = 0.0F;
value[2] = -1.0F;
- value[3] = (GLfloat) (ctx->DrawBuffer->Height - 1);
+ value[3] = (GLfloat) ctx->DrawBuffer->Height;
} else {
/* Flipping Y upside down (XY) followed by identity (ZW). */
value[0] = -1.0F;
- value[1] = (GLfloat) (ctx->DrawBuffer->Height - 1);
+ value[1] = (GLfloat) ctx->DrawBuffer->Height;
value[2] = 1.0F;
value[3] = 0.0F;
}
diff --git a/src/mesa/program/prog_statevars.h b/src/mesa/program/prog_statevars.h
index 9fe8d81b3dd..04af3f4cf3a 100644
--- a/src/mesa/program/prog_statevars.h
+++ b/src/mesa/program/prog_statevars.h
@@ -120,7 +120,7 @@ typedef enum gl_state_index_ {
STATE_PT_BIAS, /**< Pixel transfer RGBA bias */
STATE_SHADOW_AMBIENT, /**< ARB_shadow_ambient fail value; token[2] is texture unit index */
STATE_FB_SIZE, /**< (width-1, height-1, 0, 0) */
- STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height-1) if a FBO is bound, (-1, height-1, 1, 0) otherwise */
+ STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height) if a FBO is bound, (-1, height, 1, 0) otherwise */
STATE_ROT_MATRIX_0, /**< ATI_envmap_bumpmap, rot matrix row 0 */
STATE_ROT_MATRIX_1, /**< ATI_envmap_bumpmap, rot matrix row 1 */
STATE_INTERNAL_DRIVER /* first available state index for drivers (must be last) */
diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y
index b35bc5a7cae..dbf5abaa617 100644
--- a/src/mesa/program/program_parse.y
+++ b/src/mesa/program/program_parse.y
@@ -1258,7 +1258,11 @@ optArraySize:
| INTEGER
{
if (($1 < 1) || ((unsigned) $1 > state->limits->MaxParameters)) {
- yyerror(& @1, state, "invalid parameter array size");
+ char msg[100];
+ _mesa_snprintf(msg, sizeof(msg),
+ "invalid parameter array size (size=%d max=%u)",
+ $1, state->limits->MaxParameters);
+ yyerror(& @1, state, msg);
YYERROR;
} else {
$$ = $1;
@@ -2060,9 +2064,14 @@ resultColBinding: COLOR optResultFaceType optResultColorType
optResultFaceType:
{
- $$ = (state->mode == ARB_vertex)
- ? VERT_RESULT_COL0
- : FRAG_RESULT_COLOR;
+ if (state->mode == ARB_vertex) {
+ $$ = VERT_RESULT_COL0;
+ } else {
+ if (state->option.DrawBuffers)
+ $$ = FRAG_RESULT_DATA0;
+ else
+ $$ = FRAG_RESULT_COLOR;
+ }
}
| '[' INTEGER ']'
{
diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
index 95a9bde401a..de96eb42c9b 100644
--- a/src/mesa/program/register_allocate.c
+++ b/src/mesa/program/register_allocate.c
@@ -28,6 +28,46 @@
/** @file register_allocate.c
*
* Graph-coloring register allocator.
+ *
+ * The basic idea of graph coloring is to make a node in a graph for
+ * every thing that needs a register (color) number assigned, and make
+ * edges in the graph between nodes that interfere (can't be allocated
+ * to the same register at the same time).
+ *
+ * During the "simplify" process, any any node with fewer edges than
+ * there are registers means that that edge can get assigned a
+ * register regardless of what its neighbors choose, so that node is
+ * pushed on a stack and removed (with its edges) from the graph.
+ * That likely causes other nodes to become trivially colorable as well.
+ *
+ * Then during the "select" process, nodes are popped off of that
+ * stack, their edges restored, and assigned a color different from
+ * their neighbors. Because they were pushed on the stack only when
+ * they were trivially colorable, any color chosen won't interfere
+ * with the registers to be popped later.
+ *
+ * The downside to most graph coloring is that real hardware often has
+ * limitations, like registers that need to be allocated to a node in
+ * pairs, or aligned on some boundary. This implementation follows
+ * the paper "Retargetable Graph-Coloring Register Allocation for
+ * Irregular Architectures" by Johan Runeson and Sven-Olof Nyström.
+ *
+ * In this system, there are register classes each containing various
+ * registers, and registers may interfere with other registers. For
+ * example, one might have a class of base registers, and a class of
+ * aligned register pairs that would each interfere with their pair of
+ * the base registers. Each node has a register class it needs to be
+ * assigned to. Define p(B) to be the size of register class B, and
+ * q(B,C) to be the number of registers in B that the worst choice
+ * register in C could conflict with. Then, this system replaces the
+ * basic graph coloring test of "fewer edges from this node than there
+ * are registers" with "For this node of class B, the sum of q(B,C)
+ * for each neighbor node of class C is less than pB".
+ *
+ * A nice feature of the pq test is that q(B,C) can be computed once
+ * up front and stored in a 2-dimensional array, so that the cost of
+ * coloring a node is constant with the number of registers. We do
+ * this during ra_set_finalize().
*/
#include <ralloc.h>
@@ -37,6 +77,8 @@
#include "main/mtypes.h"
#include "register_allocate.h"
+#define NO_REG ~0
+
struct ra_reg {
GLboolean *conflicts;
unsigned int *conflict_list;
@@ -56,25 +98,47 @@ struct ra_class {
GLboolean *regs;
/**
- * p_B in Runeson/Nyström paper.
+ * p(B) in Runeson/Nyström paper.
*
* This is "how many regs are in the set."
*/
unsigned int p;
/**
- * q_B,C in Runeson/Nyström paper.
+ * q(B,C) (indexed by C, B is this register class) in
+ * Runeson/Nyström paper. This is "how many registers of B could
+ * the worst choice register from C conflict with".
*/
unsigned int *q;
};
struct ra_node {
+ /** @{
+ *
+ * List of which nodes this node interferes with. This should be
+ * symmetric with the other node.
+ */
GLboolean *adjacency;
unsigned int *adjacency_list;
- unsigned int class;
unsigned int adjacency_count;
+ /** @} */
+
+ unsigned int class;
+
+ /* Register, if assigned, or NO_REG. */
unsigned int reg;
+
+ /**
+ * Set when the node is in the trivially colorable stack. When
+ * set, the adjacency to this node is ignored, to implement the
+ * "remove the edge from the graph" in simplification without
+ * having to actually modify the adjacency_list.
+ */
GLboolean in_stack;
+
+ /* For an implementation that needs register spilling, this is the
+ * approximate cost of spilling this node.
+ */
float spill_cost;
};
@@ -227,7 +291,7 @@ ra_alloc_interference_graph(struct ra_regs *regs, unsigned int count)
g->nodes[i].adjacency_list = ralloc_array(g, unsigned int, count);
g->nodes[i].adjacency_count = 0;
ra_add_node_adjacency(g, i, i);
- g->nodes[i].reg = ~0;
+ g->nodes[i].reg = NO_REG;
}
return g;
@@ -287,7 +351,7 @@ ra_simplify(struct ra_graph *g)
progress = GL_FALSE;
for (i = g->count - 1; i >= 0; i--) {
- if (g->nodes[i].in_stack)
+ if (g->nodes[i].in_stack || g->nodes[i].reg != NO_REG)
continue;
if (pq_test(g, i)) {
@@ -367,7 +431,7 @@ ra_optimistic_color(struct ra_graph *g)
unsigned int i;
for (i = 0; i < g->count; i++) {
- if (g->nodes[i].in_stack)
+ if (g->nodes[i].in_stack || g->nodes[i].reg != NO_REG)
continue;
g->stack[g->stack_count] = i;
@@ -391,6 +455,24 @@ ra_get_node_reg(struct ra_graph *g, unsigned int n)
return g->nodes[n].reg;
}
+/**
+ * Forces a node to a specific register. This can be used to avoid
+ * creating a register class containing one node when handling data
+ * that must live in a fixed location and is known to not conflict
+ * with other forced register assignment (as is common with shader
+ * input data). These nodes do not end up in the stack during
+ * ra_simplify(), and thus at ra_select() time it is as if they were
+ * the first popped off the stack and assigned their fixed locations.
+ *
+ * Must be called before ra_simplify().
+ */
+void
+ra_set_node_reg(struct ra_graph *g, unsigned int n, unsigned int reg)
+{
+ g->nodes[n].reg = reg;
+ g->nodes[n].in_stack = GL_FALSE;
+}
+
static float
ra_get_spill_benefit(struct ra_graph *g, unsigned int n)
{
diff --git a/src/mesa/program/register_allocate.h b/src/mesa/program/register_allocate.h
index 198b89f2d7d..5b95833f394 100644
--- a/src/mesa/program/register_allocate.h
+++ b/src/mesa/program/register_allocate.h
@@ -65,6 +65,7 @@ GLboolean ra_select(struct ra_graph *g);
GLboolean ra_allocate_no_spills(struct ra_graph *g);
unsigned int ra_get_node_reg(struct ra_graph *g, unsigned int n);
+void ra_set_node_reg(struct ra_graph * g, unsigned int n, unsigned int reg);
void ra_set_node_spill_cost(struct ra_graph *g, unsigned int n, float cost);
int ra_get_best_spill_node(struct ra_graph *g);
/** @} */
diff --git a/src/mesa/state_tracker/st_atom_pixeltransfer.c b/src/mesa/state_tracker/st_atom_pixeltransfer.c
index 9557adc2d8b..57430b36f8d 100644
--- a/src/mesa/state_tracker/st_atom_pixeltransfer.c
+++ b/src/mesa/state_tracker/st_atom_pixeltransfer.c
@@ -195,18 +195,8 @@ get_pixel_transfer_program(struct gl_context *ctx, const struct state_key *key)
{ STATE_INTERNAL, STATE_PT_SCALE, 0, 0, 0 };
static const gl_state_index bias_state[STATE_LENGTH] =
{ STATE_INTERNAL, STATE_PT_BIAS, 0, 0, 0 };
- GLfloat scale[4], bias[4];
GLint scale_p, bias_p;
- scale[0] = ctx->Pixel.RedScale;
- scale[1] = ctx->Pixel.GreenScale;
- scale[2] = ctx->Pixel.BlueScale;
- scale[3] = ctx->Pixel.AlphaScale;
- bias[0] = ctx->Pixel.RedBias;
- bias[1] = ctx->Pixel.GreenBias;
- bias[2] = ctx->Pixel.BlueBias;
- bias[3] = ctx->Pixel.AlphaBias;
-
scale_p = _mesa_add_state_reference(params, scale_state);
bias_p = _mesa_add_state_reference(params, bias_state);
diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
index 808aa73a083..e3d6cbb8e12 100644
--- a/src/mesa/state_tracker/st_atom_sampler.c
+++ b/src/mesa/state_tracker/st_atom_sampler.c
@@ -33,6 +33,8 @@
#include "main/macros.h"
+#include "main/mtypes.h"
+#include "main/samplerobj.h"
#include "st_context.h"
#include "st_cb_texture.h"
@@ -154,7 +156,7 @@ update_samplers(struct st_context *st)
teximg = texobj->Image[0][texobj->BaseLevel];
- msamp = st_get_mesa_sampler(st->ctx, texUnit);
+ msamp = _mesa_get_samplerobj(st->ctx, texUnit);
sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);
sampler->wrap_t = gl_wrap_xlate(msamp->WrapT);
@@ -199,6 +201,9 @@ update_samplers(struct st_context *st)
= st_compare_func_to_pipe(msamp->CompareFunc);
}
+ sampler->seamless_cube_map =
+ st->ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
+
st->state.num_samplers = su + 1;
/*printf("%s su=%u non-null\n", __FUNCTION__, su);*/
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 19ad2e8cc4a..9d437ad086f 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -33,6 +33,8 @@
#include "main/macros.h"
+#include "main/mtypes.h"
+#include "main/samplerobj.h"
#include "program/prog_instruction.h"
#include "st_context.h"
@@ -209,7 +211,7 @@ update_textures(struct st_context *st)
else
texUnit = vprog->Base.SamplerUnits[su];
- samp = st_get_mesa_sampler(st->ctx, texUnit);
+ samp = _mesa_get_samplerobj(st->ctx, texUnit);
texObj = st->ctx->Texture.Unit[texUnit]._Current;
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index 1707f827cc8..e377861b8d2 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -372,6 +372,14 @@ internal_format(struct gl_context *ctx, GLenum format, GLenum type)
return
ctx->Extensions.ARB_texture_float ? GL_RGBA32F :
ctx->Extensions.EXT_texture_snorm ? GL_RGBA16_SNORM : GL_RGBA16;
+
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ assert(ctx->Extensions.EXT_texture_shared_exponent);
+ return GL_RGB9_E5;
+
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ assert(ctx->Extensions.EXT_packed_float);
+ return GL_R11F_G11F_B10F;
}
}
}
@@ -411,7 +419,6 @@ make_texture(struct st_context *st,
gl_format mformat;
struct pipe_resource *pt;
enum pipe_format pipeFormat;
- GLuint cpp;
GLenum baseFormat, intFormat;
baseFormat = base_format(format);
@@ -423,7 +430,6 @@ make_texture(struct st_context *st,
pipeFormat = st_mesa_format_to_pipe_format(mformat);
assert(pipeFormat);
- cpp = util_format_get_blocksize(pipeFormat);
pixels = _mesa_map_pbo_source(ctx, unpack, pixels);
if (!pixels)
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index ab7f6a51684..a27c30e51fe 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -1843,9 +1843,9 @@ st_finalize_texture(struct gl_context *ctx,
/* Need to import images in main memory or held in other textures.
*/
if (stImage && stObj->pt != stImage->pt) {
- if (stImage->base.Width == u_minify(stObj->width0, level) &&
+ if (level == 0 || (stImage->base.Width == u_minify(stObj->width0, level) &&
stImage->base.Height == u_minify(stObj->height0, level) &&
- stImage->base.Depth == u_minify(stObj->depth0, level)) {
+ stImage->base.Depth == u_minify(stObj->depth0, level))) {
/* src image fits expected dest mipmap level size */
copy_image_data_to_texture(st, stObj, level, stImage);
}
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index d27043ec296..46a4f9cf8c5 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -247,7 +247,7 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
const struct gl_buffer_object *firstBufObj = NULL;
GLint firstStride = -1;
const GLubyte *client_addr = NULL;
- GLboolean user_memory;
+ GLboolean user_memory = GL_FALSE;
for (attr = 0; attr < vpv->num_inputs; attr++) {
const GLuint mesaAttr = vp->index_to_input[attr];
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index bdc08949dd4..ad8e6bb9ec9 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -167,6 +167,8 @@ void st_init_limits(struct st_context *st)
pc->MaxNativeAddressRegs = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS);
pc->MaxNativeParameters = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_CONSTS);
pc->MaxUniformComponents = 4 * MIN2(pc->MaxNativeParameters, MAX_UNIFORMS);
+ /* raise MaxParameters if native support is higher */
+ pc->MaxParameters = MAX2(pc->MaxParameters, pc->MaxNativeParameters);
options->EmitNoNoise = TRUE;
@@ -187,7 +189,7 @@ void st_init_limits(struct st_context *st)
options->EmitNoIndirectUniform = !screen->get_shader_param(screen, sh,
PIPE_SHADER_CAP_INDIRECT_CONST_ADDR);
- if(options->EmitNoLoops)
+ if (options->EmitNoLoops)
options->MaxUnrollIterations = MIN2(screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INSTRUCTIONS), 65536);
}
@@ -513,6 +515,12 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_half_float_vertex = GL_TRUE;
}
+ if (screen->is_format_supported(screen, PIPE_FORMAT_R32G32B32A32_FIXED,
+ PIPE_BUFFER, 0,
+ PIPE_BIND_VERTEX_BUFFER)) {
+ ctx->Extensions.ARB_ES2_compatibility = GL_TRUE;
+ }
+
if (screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY, PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
#if 0 /* XXX re-enable when GLSL compiler again supports geometry shaders */
ctx->Extensions.ARB_geometry_shader4 = GL_TRUE;
@@ -539,8 +547,8 @@ void st_init_extensions(struct st_context *st)
PIPE_TEXTURE_2D, 0,
PIPE_BIND_RENDER_TARGET) &&
!screen->is_format_supported(screen, PIPE_FORMAT_R16G16B16A16_SNORM,
- PIPE_TEXTURE_2D, 0,
- PIPE_BIND_RENDER_TARGET) &&
+ PIPE_TEXTURE_2D, 0,
+ PIPE_BIND_RENDER_TARGET) &&
!screen->is_format_supported(screen, PIPE_FORMAT_R16G16B16A16_FLOAT,
PIPE_TEXTURE_2D, 0,
PIPE_BIND_RENDER_TARGET) &&
@@ -574,4 +582,25 @@ void st_init_extensions(struct st_context *st)
if (st->pipe->texture_barrier) {
ctx->Extensions.NV_texture_barrier = GL_TRUE;
}
+
+ if (screen->is_format_supported(screen, PIPE_FORMAT_R9G9B9E5_FLOAT,
+ PIPE_TEXTURE_2D, 0,
+ PIPE_BIND_SAMPLER_VIEW)) {
+ ctx->Extensions.EXT_texture_shared_exponent = GL_TRUE;
+ }
+
+ if (screen->is_format_supported(screen, PIPE_FORMAT_R11G11B10_FLOAT,
+ PIPE_TEXTURE_2D, 0,
+ PIPE_BIND_RENDER_TARGET |
+ PIPE_BIND_SAMPLER_VIEW)) {
+ ctx->Extensions.EXT_packed_float = GL_TRUE;
+ }
+
+ if (screen->get_param(screen, PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE)) {
+ ctx->Extensions.ARB_seamless_cube_map = GL_TRUE;
+ ctx->Extensions.AMD_seamless_cubemap_per_texture = GL_TRUE;
+ }
+ else if (screen->get_param(screen, PIPE_CAP_SEAMLESS_CUBE_MAP)) {
+ ctx->Extensions.ARB_seamless_cube_map = GL_TRUE;
+ }
}
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index bbaa84d7fdf..acfafe351d2 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -325,6 +325,11 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
case MESA_FORMAT_SIGNED_I16:
return PIPE_FORMAT_I16_SNORM;
+ case MESA_FORMAT_RGB9_E5_FLOAT:
+ return PIPE_FORMAT_R9G9B9E5_FLOAT;
+ case MESA_FORMAT_R11_G11_B10_FLOAT:
+ return PIPE_FORMAT_R11G11B10_FLOAT;
+
default:
assert(0);
return PIPE_FORMAT_NONE;
@@ -545,6 +550,11 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
case PIPE_FORMAT_I16_SNORM:
return MESA_FORMAT_SIGNED_I16;
+ case PIPE_FORMAT_R9G9B9E5_FLOAT:
+ return MESA_FORMAT_RGB9_E5_FLOAT;
+ case PIPE_FORMAT_R11G11B10_FLOAT:
+ return MESA_FORMAT_R11_G11_B10_FLOAT;
+
default:
assert(0);
return MESA_FORMAT_NONE;
@@ -954,14 +964,24 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
/* prefer formats in order of data size, choosing 16-bit ones if equal sized */
case GL_RGBA16F_ARB:
+ {
+ static const enum pipe_format formats[] = {
+ PIPE_FORMAT_R16G16B16A16_FLOAT,
+ PIPE_FORMAT_R32G32B32A32_FLOAT
+ };
+ return find_supported_format(screen, formats, Elements(formats),
+ target, sample_count, bindings);
+ }
case GL_RGB16F_ARB:
{
static const enum pipe_format formats[] = {
+ PIPE_FORMAT_R16G16B16_FLOAT,
PIPE_FORMAT_R16G16B16A16_FLOAT,
+ PIPE_FORMAT_R32G32B32_FLOAT,
PIPE_FORMAT_R32G32B32A32_FLOAT
};
return find_supported_format(screen, formats, Elements(formats),
- target, sample_count, bindings);
+ target, sample_count, bindings);
}
case GL_LUMINANCE_ALPHA16F_ARB:
{
@@ -1040,14 +1060,23 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
/* try a 32-bit format if available, otherwise fallback to a 16-bit one */
case GL_RGBA32F_ARB:
+ {
+ static const enum pipe_format formats[] = {
+ PIPE_FORMAT_R32G32B32A32_FLOAT,
+ PIPE_FORMAT_R16G16B16A16_FLOAT
+ };
+ return find_supported_format(screen, formats, Elements(formats),
+ target, sample_count, bindings);
+ }
case GL_RGB32F_ARB:
{
static const enum pipe_format formats[] = {
+ PIPE_FORMAT_R32G32B32_FLOAT,
PIPE_FORMAT_R32G32B32A32_FLOAT,
PIPE_FORMAT_R16G16B16A16_FLOAT
};
return find_supported_format(screen, formats, Elements(formats),
- target, sample_count, bindings);
+ target, sample_count, bindings);
}
case GL_LUMINANCE_ALPHA32F_ARB:
{
@@ -1464,6 +1493,20 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
target, sample_count, bindings);
}
+ case GL_RGB9_E5:
+ if (screen->is_format_supported(screen, PIPE_FORMAT_R9G9B9E5_FLOAT, target,
+ sample_count, bindings)) {
+ return PIPE_FORMAT_R9G9B9E5_FLOAT;
+ }
+ return PIPE_FORMAT_NONE;
+
+ case GL_R11F_G11F_B10F:
+ if (screen->is_format_supported(screen, PIPE_FORMAT_R11G11B10_FLOAT, target,
+ sample_count, bindings)) {
+ return PIPE_FORMAT_R11G11B10_FLOAT;
+ }
+ return PIPE_FORMAT_NONE;
+
default:
return PIPE_FORMAT_NONE;
}
diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c
index c07739f9d53..a41e5b16a85 100644
--- a/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -752,37 +752,15 @@ compile_instruction(
/**
- * Emit the TGSI instructions to adjust the WPOS pixel center convention
- * Basically, add (adjX, adjY) to the fragment position.
- */
-static void
-emit_adjusted_wpos( struct st_translate *t,
- const struct gl_program *program,
- GLfloat adjX, GLfloat adjY)
-{
- struct ureg_program *ureg = t->ureg;
- struct ureg_dst wpos_temp = ureg_DECL_temporary(ureg);
- struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]];
-
- /* Note that we bias X and Y and pass Z and W through unchanged.
- * The shader might also use gl_FragCoord.w and .z.
- */
- ureg_ADD(ureg, wpos_temp, wpos_input,
- ureg_imm4f(ureg, adjX, adjY, 0.0f, 0.0f));
-
- t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]] = ureg_src(wpos_temp);
-}
-
-
-/**
- * Emit the TGSI instructions for inverting the WPOS y coordinate.
+ * Emit the TGSI instructions for inverting and adjusting WPOS.
* This code is unavoidable because it also depends on whether
* a FBO is bound (STATE_FB_WPOS_Y_TRANSFORM).
*/
static void
-emit_wpos_inversion( struct st_translate *t,
- const struct gl_program *program,
- boolean invert)
+emit_wpos_adjustment( struct st_translate *t,
+ const struct gl_program *program,
+ boolean invert,
+ GLfloat adjX, GLfloat adjY[2])
{
struct ureg_program *ureg = t->ureg;
@@ -801,18 +779,38 @@ emit_wpos_inversion( struct st_translate *t,
wposTransformState);
struct ureg_src wpostrans = ureg_DECL_constant( ureg, wposTransConst );
- struct ureg_dst wpos_temp;
+ struct ureg_dst wpos_temp = ureg_DECL_temporary( ureg );
struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]];
- /* MOV wpos_temp, input[wpos]
- */
- if (wpos_input.File == TGSI_FILE_TEMPORARY)
- wpos_temp = ureg_dst(wpos_input);
- else {
- wpos_temp = ureg_DECL_temporary( ureg );
+ /* First, apply the coordinate shift: */
+ if (adjX || adjY[0] || adjY[1]) {
+ if (adjY[0] != adjY[1]) {
+ /* Adjust the y coordinate by adjY[1] or adjY[0] respectively
+ * depending on whether inversion is actually going to be applied
+ * or not, which is determined by testing against the inversion
+ * state variable used below, which will be either +1 or -1.
+ */
+ struct ureg_dst adj_temp = ureg_DECL_temporary(ureg);
+
+ ureg_CMP(ureg, adj_temp,
+ ureg_scalar(wpostrans, invert ? 2 : 0),
+ ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f),
+ ureg_imm4f(ureg, adjX, adjY[1], 0.0f, 0.0f));
+ ureg_ADD(ureg, wpos_temp, wpos_input, ureg_src(adj_temp));
+ } else {
+ ureg_ADD(ureg, wpos_temp, wpos_input,
+ ureg_imm4f(ureg, adjX, adjY[0], 0.0f, 0.0f));
+ }
+ wpos_input = ureg_src(wpos_temp);
+ } else {
+ /* MOV wpos_temp, input[wpos]
+ */
ureg_MOV( ureg, wpos_temp, wpos_input );
}
+ /* Now the conditional y flip: STATE_FB_WPOS_Y_TRANSFORM.xy/zw will be
+ * inversion/identity, or the other way around if we're drawing to an FBO.
+ */
if (invert) {
/* MAD wpos_temp.y, wpos_input, wpostrans.xxxx, wpostrans.yyyy
*/
@@ -849,8 +847,37 @@ emit_wpos(struct st_context *st,
const struct gl_fragment_program *fp =
(const struct gl_fragment_program *) program;
struct pipe_screen *pscreen = st->pipe->screen;
+ GLfloat adjX = 0.0f;
+ GLfloat adjY[2] = { 0.0f, 0.0f };
boolean invert = FALSE;
+ /* Query the pixel center conventions supported by the pipe driver and set
+ * adjX, adjY to help out if it cannot handle the requested one internally.
+ *
+ * The bias of the y-coordinate depends on whether y-inversion takes place
+ * (adjY[1]) or not (adjY[0]), which is in turn dependent on whether we are
+ * drawing to an FBO (causes additional inversion), and whether the the pipe
+ * driver origin and the requested origin differ (the latter condition is
+ * stored in the 'invert' variable).
+ *
+ * For height = 100 (i = integer, h = half-integer, l = lower, u = upper):
+ *
+ * center shift only:
+ * i -> h: +0.5
+ * h -> i: -0.5
+ *
+ * inversion only:
+ * l,i -> u,i: ( 0.0 + 1.0) * -1 + 100 = 99
+ * l,h -> u,h: ( 0.5 + 0.0) * -1 + 100 = 99.5
+ * u,i -> l,i: (99.0 + 1.0) * -1 + 100 = 0
+ * u,h -> l,h: (99.5 + 0.0) * -1 + 100 = 0.5
+ *
+ * inversion and center shift:
+ * l,i -> u,h: ( 0.0 + 0.5) * -1 + 100 = 99.5
+ * l,h -> u,i: ( 0.5 + 0.5) * -1 + 100 = 99
+ * u,i -> l,h: (99.0 + 0.5) * -1 + 100 = 0.5
+ * u,h -> l,i: (99.5 + 0.5) * -1 + 100 = 0
+ */
if (fp->OriginUpperLeft) {
/* Fragment shader wants origin in upper-left */
if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT)) {
@@ -878,12 +905,17 @@ emit_wpos(struct st_context *st,
if (fp->PixelCenterInteger) {
/* Fragment shader wants pixel center integer */
- if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER))
+ if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) {
/* the driver supports pixel center integer */
+ adjY[1] = 1.0f;
ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER);
- else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER))
+ }
+ else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER)) {
/* the driver supports pixel center half integer, need to bias X,Y */
- emit_adjusted_wpos(t, program, 0.5f, invert ? 0.5f : -0.5f);
+ adjX = -0.5f;
+ adjY[0] = -0.5f;
+ adjY[1] = 0.5f;
+ }
else
assert(0);
}
@@ -894,8 +926,8 @@ emit_wpos(struct st_context *st,
}
else if (pscreen->get_param(pscreen, PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER)) {
/* the driver supports pixel center integer, need to bias X,Y */
+ adjX = adjY[0] = adjY[1] = 0.5f;
ureg_property_fs_coord_pixel_center(ureg, TGSI_FS_COORD_PIXEL_CENTER_INTEGER);
- emit_adjusted_wpos(t, program, 0.5f, invert ? -0.5f : 0.5f);
}
else
assert(0);
@@ -903,7 +935,7 @@ emit_wpos(struct st_context *st,
/* we invert after adjustment so that we avoid the MOV to temporary,
* and reuse the adjustment ADD instead */
- emit_wpos_inversion(t, program, invert);
+ emit_wpos_adjustment(t, program, invert, adjX, adjY);
}
diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h
index 903e30df52f..d50c3c9af79 100644
--- a/src/mesa/state_tracker/st_texture.h
+++ b/src/mesa/state_tracker/st_texture.h
@@ -163,21 +163,6 @@ st_get_texture_sampler_view(struct st_texture_object *stObj,
}
-/**
- * Get pointer to the active sampler object for the given texture unit.
- * This will either be a user-defined sampler object or the texture
- * object's own sampler state.
- */
-static INLINE struct gl_sampler_object *
-st_get_mesa_sampler(const struct gl_context *ctx, GLuint unit)
-{
- if (ctx->Texture.Unit[unit].Sampler)
- return ctx->Texture.Unit[unit].Sampler;
- else
- return &ctx->Texture.Unit[unit]._Current->Sampler;
-}
-
-
extern struct pipe_resource *
st_texture_create(struct st_context *st,
enum pipe_texture_target target,
diff --git a/src/mesa/swrast/s_accum.c b/src/mesa/swrast/s_accum.c
index 88d107a17da..0ec907d7979 100644
--- a/src/mesa/swrast/s_accum.c
+++ b/src/mesa/swrast/s_accum.c
@@ -24,6 +24,7 @@
#include "main/glheader.h"
+#include "main/condrender.h"
#include "main/context.h"
#include "main/macros.h"
#include "main/imports.h"
@@ -553,6 +554,9 @@ _swrast_Accum(struct gl_context *ctx, GLenum op, GLfloat value)
return;
}
+ if (!_mesa_check_conditional_render(ctx))
+ return;
+
swrast_render_start(ctx);
/* Compute region after calling swrast_render_start() so that we know the
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c
index b3e39689cfa..def1531d7ff 100644
--- a/src/mesa/swrast/s_context.c
+++ b/src/mesa/swrast/s_context.c
@@ -252,7 +252,6 @@ _swrast_update_fog_state( struct gl_context *ctx )
/* determine if fog is needed, and if so, which fog mode */
swrast->_FogEnabled = (fp == NULL && ctx->Fog.Enabled);
- swrast->_FogMode = ctx->Fog.Mode;
}
diff --git a/src/mesa/swrast/s_context.h b/src/mesa/swrast/s_context.h
index 5dbdd609adb..8d7458c2dd9 100644
--- a/src/mesa/swrast/s_context.h
+++ b/src/mesa/swrast/s_context.h
@@ -135,7 +135,6 @@ typedef struct
GLboolean _TextureCombinePrimary;
GLboolean _FogEnabled;
GLboolean _DeferredTexture;
- GLenum _FogMode; /* either GL_FOG_MODE or fragment program's fog mode */
/** List/array of the fragment attributes to interpolate */
GLuint _ActiveAttribs[FRAG_ATTRIB_MAX];
diff --git a/src/mesa/swrast/s_fog.c b/src/mesa/swrast/s_fog.c
index d808e2b2a2b..ea59de16020 100644
--- a/src/mesa/swrast/s_fog.c
+++ b/src/mesa/swrast/s_fog.c
@@ -158,7 +158,7 @@ _swrast_fog_rgba_span( const struct gl_context *ctx, SWspan *span )
/* The span's fog values are fog coordinates, now compute blend factors
* and blend the fragment colors with the fog color.
*/
- switch (swrast->_FogMode) {
+ switch (ctx->Fog.Mode) {
case GL_LINEAR:
{
const GLfloat fogEnd = ctx->Fog.End;