aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2009-09-06 13:15:04 +0200
committerNicolai Hähnle <[email protected]>2009-09-06 13:15:04 +0200
commitf02f63997ce65530788a6dfcb28f11790a14d938 (patch)
treefc6aedb5256bfb84eb170cb82addd2b6605510f8 /src
parente95e76e1255a3ad0ce604271301d090337b2e82b (diff)
parent9778731732b4753e79a1b786c65325a52392411d (diff)
Merge branch 'master' into r300-compiler
Conflicts: src/gallium/drivers/r300/r300_tgsi_to_rc.c
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt20
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump.c31
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c71
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.h8
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_info.c238
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_info.h10
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h1
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_sanity.c4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_sse2.c4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.c122
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.h119
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_util.h4
-rw-r--r--src/gallium/auxiliary/util/u_blit.c55
-rw-r--r--src/gallium/auxiliary/util/u_blit.h11
-rw-r--r--src/gallium/auxiliary/util/u_math.h4
-rw-r--r--src/gallium/auxiliary/util/u_simple_shaders.c16
-rw-r--r--src/gallium/auxiliary/util/u_simple_shaders.h4
-rw-r--r--src/gallium/drivers/cell/spu/spu_exec.c4
-rw-r--r--src/gallium/drivers/i915simple/Makefile1
-rw-r--r--src/gallium/drivers/i915simple/SConscript1
-rw-r--r--src/gallium/drivers/i915simple/i915_batch.h89
-rw-r--r--src/gallium/drivers/i915simple/i915_blit.c80
-rw-r--r--src/gallium/drivers/i915simple/i915_blit.h32
-rw-r--r--src/gallium/drivers/i915simple/i915_buffer.c136
-rw-r--r--src/gallium/drivers/i915simple/i915_buffer.h31
-rw-r--r--src/gallium/drivers/i915simple/i915_context.c158
-rw-r--r--src/gallium/drivers/i915simple/i915_context.h23
-rw-r--r--src/gallium/drivers/i915simple/i915_debug.c3
-rw-r--r--src/gallium/drivers/i915simple/i915_debug.h4
-rw-r--r--src/gallium/drivers/i915simple/i915_flush.c10
-rw-r--r--src/gallium/drivers/i915simple/i915_prim_emit.c1
-rw-r--r--src/gallium/drivers/i915simple/i915_prim_vbuf.c246
-rw-r--r--src/gallium/drivers/i915simple/i915_screen.c187
-rw-r--r--src/gallium/drivers/i915simple/i915_screen.h24
-rw-r--r--src/gallium/drivers/i915simple/i915_state.c74
-rw-r--r--src/gallium/drivers/i915simple/i915_state_emit.c164
-rw-r--r--src/gallium/drivers/i915simple/i915_state_sampler.c2
-rw-r--r--src/gallium/drivers/i915simple/i915_surface.c4
-rw-r--r--src/gallium/drivers/i915simple/i915_texture.c684
-rw-r--r--src/gallium/drivers/i915simple/i915_texture.h11
-rw-r--r--src/gallium/drivers/i915simple/i915_winsys.h144
-rw-r--r--src/gallium/drivers/i915simple/intel_batchbuffer.h87
-rw-r--r--src/gallium/drivers/i915simple/intel_winsys.h219
-rw-r--r--src/gallium/drivers/llvmpipe/SConscript8
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_arit.c15
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_logic.c48
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_logic.h2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_buffer.c150
-rw-r--r--src/gallium/drivers/llvmpipe/lp_buffer.h55
-rw-r--r--src/gallium/drivers/nouveau/nouveau_screen.h11
-rw-r--r--src/gallium/drivers/nv50/nv50_context.h4
-rw-r--r--src/gallium/drivers/nv50/nv50_miptree.c25
-rw-r--r--src/gallium/drivers/nv50/nv50_program.c9
-rw-r--r--src/gallium/drivers/nv50/nv50_state_validate.c4
-rw-r--r--src/gallium/drivers/nv50/nv50_surface.c2
-rw-r--r--src/gallium/drivers/nv50/nv50_tex.c16
-rw-r--r--src/gallium/drivers/nv50/nv50_transfer.c8
-rw-r--r--src/gallium/drivers/nv50/nv50_vbo.c10
-rw-r--r--src/gallium/drivers/r300/r300_render.c3
-rw-r--r--src/gallium/drivers/r300/r300_state.c3
-rw-r--r--src/gallium/drivers/r300/r300_state_invariant.c4
-rw-r--r--src/gallium/drivers/r300/r300_surface.h6
-rw-r--r--src/gallium/drivers/trace/tr_context.c6
-rw-r--r--src/gallium/include/pipe/p_shader_tokens.h2
-rw-r--r--src/gallium/state_trackers/dri/dri_drawable.c54
-rw-r--r--src/gallium/state_trackers/dri/dri_drawable.h3
-rw-r--r--src/gallium/state_trackers/glx/xlib/xm_api.c33
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.c348
-rw-r--r--src/gallium/state_trackers/xorg/xorg_dri2.c235
-rw-r--r--src/gallium/state_trackers/xorg/xorg_driver.c41
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c181
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.h9
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa_tgsi.c294
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa_tgsi.h18
-rw-r--r--src/gallium/state_trackers/xorg/xorg_winsys.h2
-rw-r--r--src/gallium/winsys/drm/intel/gem/Makefile8
-rw-r--r--src/gallium/winsys/drm/intel/gem/SConscript8
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_api.c36
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_api.h18
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c156
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.h55
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_context.c117
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_context.h31
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_device.c474
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_device.h107
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_be_fence.h34
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_api.c202
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c214
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c134
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_fence.c81
-rw-r--r--src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h78
-rw-r--r--src/gallium/winsys/drm/intel/xorg/intel_xorg.c10
-rw-r--r--src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c125
-rw-r--r--src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c10
-rw-r--r--src/gallium/winsys/xlib/SConscript12
-rw-r--r--src/gallium/winsys/xlib/xlib_brw_screen.c2
-rw-r--r--src/mesa/SConscript1
-rw-r--r--src/mesa/drivers/common/driverfuncs.c8
-rw-r--r--src/mesa/drivers/common/meta.c520
-rw-r--r--src/mesa/drivers/common/meta.h1
-rw-r--r--src/mesa/drivers/dri/common/dri_metaops.c246
-rw-r--r--src/mesa/drivers/dri/common/dri_metaops.h22
-rw-r--r--src/mesa/drivers/dri/common/extension_helper.h1394
-rw-r--r--src/mesa/drivers/dri/i915/Makefile1
l---------src/mesa/drivers/dri/i915/intel_syncobj.c1
-rw-r--r--src/mesa/drivers/dri/i965/Makefile1
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs_state.c5
-rw-r--r--src/mesa/drivers/dri/i965/brw_misc_state.c1
-rw-r--r--src/mesa/drivers/dri/i965/brw_structs.h4
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs_emit.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_emit.c18
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_pass1.c1
l---------src/mesa/drivers/dri/i965/intel_syncobj.c1
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffer_objects.c107
-rw-r--r--src/mesa/drivers/dri/intel/intel_buffer_objects.h1
-rw-r--r--src/mesa/drivers/dri/intel/intel_clear.c22
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c5
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.h8
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c2
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_bitmap.c27
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_copy.c6
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel_draw.c159
-rw-r--r--src/mesa/drivers/dri/intel/intel_syncobj.c132
-rw-r--r--src/mesa/drivers/dri/r200/Makefile11
-rw-r--r--src/mesa/drivers/dri/r200/r200_cmdbuf.c39
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c27
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.h6
-rw-r--r--src/mesa/drivers/dri/r200/r200_ioctl.c10
-rw-r--r--src/mesa/drivers/dri/r200/r200_ioctl.h1
-rw-r--r--src/mesa/drivers/dri/r200/r200_pixel.c28
-rw-r--r--src/mesa/drivers/dri/r200/r200_sanity.c4
-rw-r--r--src/mesa/drivers/dri/r200/r200_state.c29
-rw-r--r--src/mesa/drivers/dri/r200/r200_state_init.c13
-rw-r--r--src/mesa/drivers/dri/r200/r200_swtcl.c12
-rw-r--r--src/mesa/drivers/dri/r200/r200_tcl.c15
-rw-r--r--src/mesa/drivers/dri/r200/r200_tex.c8
-rw-r--r--src/mesa/drivers/dri/r200/r200_texstate.c12
-rw-r--r--src/mesa/drivers/dri/r200/r200_vertprog.c14
l---------src/mesa/drivers/dri/r200/radeon_debug.c1
l---------src/mesa/drivers/dri/r200/radeon_debug.h1
-rw-r--r--src/mesa/drivers/dri/r300/Makefile13
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_code.h3
-rw-r--r--src/mesa/drivers/dri/r300/r300_cmdbuf.c4
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.c2
-rw-r--r--src/mesa/drivers/dri/r300/r300_draw.c34
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog_common.c2
-rw-r--r--src/mesa/drivers/dri/r300/r300_ioctl.c6
-rw-r--r--src/mesa/drivers/dri/r300/r300_reg.h6
-rw-r--r--src/mesa/drivers/dri/r300/r300_render.c4
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c18
-rw-r--r--src/mesa/drivers/dri/r300/r300_swtcl.c34
-rw-r--r--src/mesa/drivers/dri/r300/r300_tex.c8
-rw-r--r--src/mesa/drivers/dri/r300/r300_vertprog.c2
l---------src/mesa/drivers/dri/r300/radeon_debug.c1
l---------src/mesa/drivers/dri/r300/radeon_debug.h1
-rw-r--r--src/mesa/drivers/dri/r600/Makefile9
-rw-r--r--src/mesa/drivers/dri/r600/r600_cmdbuf.c12
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.c13
-rw-r--r--src/mesa/drivers/dri/r600/r600_emit.c28
-rw-r--r--src/mesa/drivers/dri/r600/r600_tex.c20
-rw-r--r--src/mesa/drivers/dri/r600/r600_texstate.c66
-rw-r--r--src/mesa/drivers/dri/r600/r700_assembler.c72
-rw-r--r--src/mesa/drivers/dri/r600/r700_chip.c125
-rw-r--r--src/mesa/drivers/dri/r600/r700_clear.c5
-rw-r--r--src/mesa/drivers/dri/r600/r700_debug.c35
-rw-r--r--src/mesa/drivers/dri/r600/r700_debug.h60
-rw-r--r--src/mesa/drivers/dri/r600/r700_oglprog.c6
-rw-r--r--src/mesa/drivers/dri/r600/r700_render.c27
-rw-r--r--src/mesa/drivers/dri/r600/r700_shaderinst.c14
-rw-r--r--src/mesa/drivers/dri/r600/r700_state.c161
-rw-r--r--src/mesa/drivers/dri/r600/r700_state.h3
-rw-r--r--src/mesa/drivers/dri/r600/r700_vertprog.c3
l---------src/mesa/drivers/dri/r600/radeon_debug.c1
l---------src/mesa/drivers/dri/r600/radeon_debug.h1
-rw-r--r--src/mesa/drivers/dri/radeon/Makefile11
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_bo_legacy.c4
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_buffer_objects.c9
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_chipset.h1
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common.c118
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common.h1
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common_context.c14
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common_context.h47
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.c19
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.h7
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_cs_legacy.c1
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_cs_legacy.h2
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_debug.c101
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_debug.h191
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_dma.c26
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_fbo.c2
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_ioctl.c16
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_lighting.c6
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_lock.c2
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_maos_arrays.c10
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h3
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c18
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h5
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_queryobj.c24
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_sanity.c4
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_screen.c36
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_state.c24
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_state_init.c12
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_swtcl.c14
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_tcl.c6
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_tex.c11
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texstate.c8
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texture.c14
-rw-r--r--src/mesa/drivers/dri/s3v/s3v_state.c5
-rw-r--r--src/mesa/drivers/dri/savage/savage_xmesa.c13
-rw-r--r--src/mesa/drivers/dri/savage/savagecontext.h1
-rw-r--r--src/mesa/drivers/dri/swrast/swrast.c2
-rw-r--r--src/mesa/drivers/x11/xm_api.c9
-rw-r--r--src/mesa/drivers/x11/xm_dd.c27
-rw-r--r--src/mesa/drivers/x11/xmesaP.h4
-rw-r--r--src/mesa/glapi/ARB_sync.xml82
-rw-r--r--src/mesa/glapi/Makefile1
-rw-r--r--src/mesa/glapi/dispatch.h487
-rw-r--r--src/mesa/glapi/extension_helper.py2
-rw-r--r--src/mesa/glapi/gl_API.xml2
-rw-r--r--src/mesa/glapi/glapioffsets.h452
-rw-r--r--src/mesa/glapi/glapitable.h443
-rw-r--r--src/mesa/glapi/glapitemp.h268
-rw-r--r--src/mesa/glapi/glprocs.h1184
-rw-r--r--src/mesa/main/api_exec.c15
-rw-r--r--src/mesa/main/api_noop.c15
-rw-r--r--src/mesa/main/api_noop.h4
-rw-r--r--src/mesa/main/bufferobj.c243
-rw-r--r--src/mesa/main/bufferobj.h41
-rw-r--r--src/mesa/main/colortab.c62
-rw-r--r--src/mesa/main/context.c12
-rw-r--r--src/mesa/main/convolve.c185
-rw-r--r--src/mesa/main/dd.h30
-rw-r--r--src/mesa/main/dlist.c14
-rw-r--r--src/mesa/main/drawpix.c41
-rw-r--r--src/mesa/main/enums.c6230
-rw-r--r--src/mesa/main/extensions.c4
-rw-r--r--src/mesa/main/ffvertex_prog.c5
-rw-r--r--src/mesa/main/get.c1851
-rw-r--r--src/mesa/main/get.h3
-rw-r--r--src/mesa/main/get_gen.py29
-rw-r--r--src/mesa/main/histogram.c63
-rw-r--r--src/mesa/main/image.c101
-rw-r--r--src/mesa/main/image.h10
-rw-r--r--src/mesa/main/imports.h1
-rw-r--r--src/mesa/main/macros.h3
-rw-r--r--src/mesa/main/mfeatures.h1
-rw-r--r--src/mesa/main/mtypes.h27
-rw-r--r--src/mesa/main/pixel.c239
-rw-r--r--src/mesa/main/polygon.c75
-rw-r--r--src/mesa/main/shared.c19
-rw-r--r--src/mesa/main/simple_list.h5
-rw-r--r--src/mesa/main/syncobj.c409
-rw-r--r--src/mesa/main/syncobj.h70
-rw-r--r--src/mesa/main/texenvprogram.c220
-rw-r--r--src/mesa/main/texstate.c9
-rw-r--r--src/mesa/main/varray.c18
-rw-r--r--src/mesa/main/vtxfmt.c1
-rw-r--r--src/mesa/main/vtxfmt_tmp.h12
-rw-r--r--src/mesa/shader/lex.yy.c405
-rw-r--r--src/mesa/shader/prog_execute.c5
-rw-r--r--src/mesa/shader/program_lexer.l5
-rw-r--r--src/mesa/shader/program_parse.tab.c417
-rw-r--r--src/mesa/shader/program_parse.tab.h6
-rw-r--r--src/mesa/shader/program_parse.y17
-rw-r--r--src/mesa/sources.mak1
-rw-r--r--src/mesa/sparc/glapi_sparc.S147
-rw-r--r--src/mesa/state_tracker/st_cb_bitmap.c67
-rw-r--r--src/mesa/state_tracker/st_cb_bufferobjects.c19
-rw-r--r--src/mesa/state_tracker/st_cb_drawpixels.c14
-rw-r--r--src/mesa/state_tracker/st_cb_readpixels.c6
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c73
-rw-r--r--src/mesa/swrast/s_bitmap.c4
-rw-r--r--src/mesa/swrast/s_context.c3
-rw-r--r--src/mesa/swrast/s_drawpix.c67
-rw-r--r--src/mesa/swrast/s_readpix.c4
-rw-r--r--src/mesa/swrast/s_triangle.c2
-rw-r--r--src/mesa/vbo/vbo_exec_array.c157
-rw-r--r--src/mesa/vbo/vbo_save_api.c5
-rw-r--r--src/mesa/x86-64/glapi_x86-64.S2373
-rw-r--r--src/mesa/x86/Makefile2
-rw-r--r--src/mesa/x86/glapi_x86.S155
283 files changed, 16359 insertions, 11805 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
index 802ec371189..eb492076b7d 100644
--- a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
+++ b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt
@@ -187,11 +187,7 @@ TGSI Instruction Specification
1.2.6 CND0 - Condition Zero
- dst.x = (src2.x >= 0.0) ? src0.x : src1.x
- dst.y = (src2.y >= 0.0) ? src0.y : src1.y
- dst.z = (src2.z >= 0.0) ? src0.z : src1.z
- dst.w = (src2.w >= 0.0) ? src0.w : src1.w
-
+ Removed. Use (CMP src2, src1, src0) instead.
1.2.7 DOT2ADD - 2-component Dot Product And Add
@@ -1031,12 +1027,12 @@ TGSI Instruction Specification
1.18.1 EXPP - Approximate Exponential Base 2
- Alias for EXP.
+ Use EXP. See also 1.19.3.
1.18.2 LOGP - Logarithm Base 2
- Alias for LG2.
+ Use LOG. See also 1.19.4.
1.19 vs_2_0
@@ -1053,6 +1049,16 @@ TGSI Instruction Specification
Alias for ARR.
+1.19.3 EXPP - Approximate Exponential Base 2
+
+ Use EX2.
+
+
+1.19.4 LOGP - Logarithm Base 2
+
+ Use LG2.
+
+
2 Explanation of symbols used
==============================
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index 05b07a3a73e..111d95b6665 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
@@ -43,6 +43,7 @@ struct dump_ctx
struct tgsi_iterate_context iter;
uint instno;
+ int indent;
uint indentation;
@@ -335,14 +336,6 @@ tgsi_dump_immediate(
iter_immediate( &ctx.iter, (struct tgsi_full_immediate *)imm );
}
-static void
-indent(struct dump_ctx *ctx)
-{
- uint i;
- for (i = 0; i < ctx->indentation; i++)
- TXT(" ");
-}
-
static boolean
iter_instruction(
struct tgsi_iterate_context *iter,
@@ -350,22 +343,19 @@ iter_instruction(
{
struct dump_ctx *ctx = (struct dump_ctx *) iter;
uint instno = ctx->instno++;
-
+ const struct tgsi_opcode_info *info = tgsi_get_opcode_info( inst->Instruction.Opcode );
uint i;
boolean first_reg = TRUE;
INSTID( instno );
TXT( ": " );
-
- /* update indentation */
- if (inst->Instruction.Opcode == TGSI_OPCODE_ENDIF ||
- inst->Instruction.Opcode == TGSI_OPCODE_ENDFOR ||
- inst->Instruction.Opcode == TGSI_OPCODE_ENDLOOP) {
- ctx->indentation -= indent_spaces;
- }
- indent(ctx);
-
- TXT( tgsi_get_opcode_info( inst->Instruction.Opcode )->mnemonic );
+
+ ctx->indent -= info->pre_dedent;
+ for(i = 0; (int)i < ctx->indent; ++i)
+ TXT( " " );
+ ctx->indent += info->post_indent;
+
+ TXT( info->mnemonic );
switch (inst->Instruction.Saturate) {
case TGSI_SAT_NONE:
@@ -526,6 +516,7 @@ tgsi_dump_instruction(
struct dump_ctx ctx;
ctx.instno = instno;
+ ctx.indent = 0;
ctx.printf = dump_ctx_printf;
ctx.indentation = 0;
@@ -559,6 +550,7 @@ tgsi_dump(
ctx.iter.epilog = NULL;
ctx.instno = 0;
+ ctx.indent = 0;
ctx.printf = dump_ctx_printf;
ctx.indentation = 0;
@@ -612,6 +604,7 @@ tgsi_dump_str(
ctx.base.iter.epilog = NULL;
ctx.base.instno = 0;
+ ctx.base.indent = 0;
ctx.base.printf = &str_dump_ctx_printf;
ctx.base.indentation = 0;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 711e86d6edf..60ffa188df6 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -2329,16 +2329,6 @@ exec_instruction(
}
break;
- case TGSI_OPCODE_CND0:
- FOR_EACH_ENABLED_CHANNEL(*inst, chan_index) {
- FETCH(&r[0], 0, chan_index);
- FETCH(&r[1], 1, chan_index);
- FETCH(&r[2], 2, chan_index);
- micro_le(&r[0], &mach->Temps[TEMP_0_I].xyzw[TEMP_0_C], &r[2], &r[0], &r[1]);
- STORE(&r[0], 0, chan_index);
- }
- break;
-
case TGSI_OPCODE_DP2A:
FETCH( &r[0], 0, CHAN_X );
FETCH( &r[1], 1, CHAN_X );
@@ -3104,6 +3094,12 @@ exec_instruction(
break;
case TGSI_OPCODE_BGNFOR:
+ assert(mach->LoopCounterStackTop < TGSI_EXEC_MAX_LOOP_NESTING);
+ for (chan_index = 0; chan_index < 3; chan_index++) {
+ FETCH( &mach->LoopCounterStack[mach->LoopCounterStackTop].xyzw[chan_index], 0, chan_index );
+ }
+ STORE( &mach->LoopCounterStack[mach->LoopCounterStackTop].xyzw[CHAN_Y], 0, CHAN_X );
+ ++mach->LoopCounterStackTop;
/* fall-through (for now) */
case TGSI_OPCODE_BGNLOOP:
/* push LoopMask and ContMasks */
@@ -3111,10 +3107,58 @@ exec_instruction(
mach->LoopStack[mach->LoopStackTop++] = mach->LoopMask;
assert(mach->ContStackTop < TGSI_EXEC_MAX_LOOP_NESTING);
mach->ContStack[mach->ContStackTop++] = mach->ContMask;
+ assert(mach->LoopLabelStackTop < TGSI_EXEC_MAX_LOOP_NESTING);
+ mach->LoopLabelStack[mach->LoopLabelStackTop++] = *pc - 1;
break;
case TGSI_OPCODE_ENDFOR:
- /* fall-through (for now at least) */
+ assert(mach->LoopCounterStackTop > 0);
+ micro_sub( &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X],
+ &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X],
+ &mach->Temps[TEMP_1_I].xyzw[TEMP_1_C] );
+ /* update LoopMask */
+ if( mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X].f[0] <= 0) {
+ mach->LoopMask &= ~0x1;
+ }
+ if( mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X].f[1] <= 0 ) {
+ mach->LoopMask &= ~0x2;
+ }
+ if( mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X].f[2] <= 0 ) {
+ mach->LoopMask &= ~0x4;
+ }
+ if( mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_X].f[3] <= 0 ) {
+ mach->LoopMask &= ~0x8;
+ }
+ micro_add( &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_Y],
+ &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_Y],
+ &mach->LoopCounterStack[mach->LoopCounterStackTop - 1].xyzw[CHAN_Z]);
+ assert(mach->LoopLabelStackTop > 0);
+ inst = mach->Instructions + mach->LoopLabelStack[mach->LoopLabelStackTop - 1];
+ STORE( &mach->LoopCounterStack[mach->LoopCounterStackTop].xyzw[CHAN_Y], 0, CHAN_X );
+ /* Restore ContMask, but don't pop */
+ assert(mach->ContStackTop > 0);
+ mach->ContMask = mach->ContStack[mach->ContStackTop - 1];
+ UPDATE_EXEC_MASK(mach);
+ if (mach->ExecMask) {
+ /* repeat loop: jump to instruction just past BGNLOOP */
+ assert(mach->LoopLabelStackTop > 0);
+ *pc = mach->LoopLabelStack[mach->LoopLabelStackTop - 1] + 1;
+ }
+ else {
+ /* exit loop: pop LoopMask */
+ assert(mach->LoopStackTop > 0);
+ mach->LoopMask = mach->LoopStack[--mach->LoopStackTop];
+ /* pop ContMask */
+ assert(mach->ContStackTop > 0);
+ mach->ContMask = mach->ContStack[--mach->ContStackTop];
+ assert(mach->LoopLabelStackTop > 0);
+ --mach->LoopLabelStackTop;
+ assert(mach->LoopCounterStackTop > 0);
+ --mach->LoopCounterStackTop;
+ }
+ UPDATE_EXEC_MASK(mach);
+ break;
+
case TGSI_OPCODE_ENDLOOP:
/* Restore ContMask, but don't pop */
assert(mach->ContStackTop > 0);
@@ -3122,7 +3166,8 @@ exec_instruction(
UPDATE_EXEC_MASK(mach);
if (mach->ExecMask) {
/* repeat loop: jump to instruction just past BGNLOOP */
- *pc = inst->InstructionExtLabel.Label + 1;
+ assert(mach->LoopLabelStackTop > 0);
+ *pc = mach->LoopLabelStack[mach->LoopLabelStackTop - 1] + 1;
}
else {
/* exit loop: pop LoopMask */
@@ -3131,6 +3176,8 @@ exec_instruction(
/* pop ContMask */
assert(mach->ContStackTop > 0);
mach->ContMask = mach->ContStack[--mach->ContStackTop];
+ assert(mach->LoopLabelStackTop > 0);
+ --mach->LoopLabelStackTop;
}
UPDATE_EXEC_MASK(mach);
break;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index fd9ef6f35df..3baa94dbdde 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -232,6 +232,14 @@ struct tgsi_exec_machine
uint LoopStack[TGSI_EXEC_MAX_LOOP_NESTING];
int LoopStackTop;
+ /** Loop label stack */
+ uint LoopLabelStack[TGSI_EXEC_MAX_LOOP_NESTING];
+ int LoopLabelStackTop;
+
+ /** Loop counter stack (x = count, y = current, z = step) */
+ struct tgsi_exec_vector LoopCounterStack[TGSI_EXEC_MAX_LOOP_NESTING];
+ int LoopCounterStackTop;
+
/** Loop continue mask stack (see comments in tgsi_exec.c) */
uint ContStack[TGSI_EXEC_MAX_LOOP_NESTING];
int ContStackTop;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c
index ccf4b205ffb..17af4cb7ad2 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
@@ -31,125 +31,125 @@
static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] =
{
- { 1, 1, 0, 0, "ARL", TGSI_OPCODE_ARL },
- { 1, 1, 0, 0, "MOV", TGSI_OPCODE_MOV },
- { 1, 1, 0, 0, "LIT", TGSI_OPCODE_LIT },
- { 1, 1, 0, 0, "RCP", TGSI_OPCODE_RCP },
- { 1, 1, 0, 0, "RSQ", TGSI_OPCODE_RSQ },
- { 1, 1, 0, 0, "EXP", TGSI_OPCODE_EXP },
- { 1, 1, 0, 0, "LOG", TGSI_OPCODE_LOG },
- { 1, 2, 0, 0, "MUL", TGSI_OPCODE_MUL },
- { 1, 2, 0, 0, "ADD", TGSI_OPCODE_ADD },
- { 1, 2, 0, 0, "DP3", TGSI_OPCODE_DP3 },
- { 1, 2, 0, 0, "DP4", TGSI_OPCODE_DP4 },
- { 1, 2, 0, 0, "DST", TGSI_OPCODE_DST },
- { 1, 2, 0, 0, "MIN", TGSI_OPCODE_MIN },
- { 1, 2, 0, 0, "MAX", TGSI_OPCODE_MAX },
- { 1, 2, 0, 0, "SLT", TGSI_OPCODE_SLT },
- { 1, 2, 0, 0, "SGE", TGSI_OPCODE_SGE },
- { 1, 3, 0, 0, "MAD", TGSI_OPCODE_MAD },
- { 1, 2, 0, 0, "SUB", TGSI_OPCODE_SUB },
- { 1, 3, 0, 0, "LRP", TGSI_OPCODE_LRP },
- { 1, 3, 0, 0, "CND", TGSI_OPCODE_CND },
- { 1, 3, 0, 0, "CND0", TGSI_OPCODE_CND0 },
- { 1, 3, 0, 0, "DP2A", TGSI_OPCODE_DP2A },
- { 0, 0, 0, 0, "", 22 }, /* removed */
- { 0, 0, 0, 0, "", 23 }, /* removed */
- { 1, 1, 0, 0, "FRC", TGSI_OPCODE_FRC },
- { 1, 3, 0, 0, "CLAMP", TGSI_OPCODE_CLAMP },
- { 1, 1, 0, 0, "FLR", TGSI_OPCODE_FLR },
- { 1, 1, 0, 0, "ROUND", TGSI_OPCODE_ROUND },
- { 1, 1, 0, 0, "EX2", TGSI_OPCODE_EX2 },
- { 1, 1, 0, 0, "LG2", TGSI_OPCODE_LG2 },
- { 1, 2, 0, 0, "POW", TGSI_OPCODE_POW },
- { 1, 2, 0, 0, "XPD", TGSI_OPCODE_XPD },
- { 0, 0, 0, 0, "", 32 }, /* removed */
- { 1, 1, 0, 0, "ABS", TGSI_OPCODE_ABS },
- { 1, 1, 0, 0, "RCC", TGSI_OPCODE_RCC },
- { 1, 2, 0, 0, "DPH", TGSI_OPCODE_DPH },
- { 1, 1, 0, 0, "COS", TGSI_OPCODE_COS },
- { 1, 1, 0, 0, "DDX", TGSI_OPCODE_DDX },
- { 1, 1, 0, 0, "DDY", TGSI_OPCODE_DDY },
- { 0, 0, 0, 0, "KILP", TGSI_OPCODE_KILP },
- { 1, 1, 0, 0, "PK2H", TGSI_OPCODE_PK2H },
- { 1, 1, 0, 0, "PK2US", TGSI_OPCODE_PK2US },
- { 1, 1, 0, 0, "PK4B", TGSI_OPCODE_PK4B },
- { 1, 1, 0, 0, "PK4UB", TGSI_OPCODE_PK4UB },
- { 1, 2, 0, 0, "RFL", TGSI_OPCODE_RFL },
- { 1, 2, 0, 0, "SEQ", TGSI_OPCODE_SEQ },
- { 1, 2, 0, 0, "SFL", TGSI_OPCODE_SFL },
- { 1, 2, 0, 0, "SGT", TGSI_OPCODE_SGT },
- { 1, 1, 0, 0, "SIN", TGSI_OPCODE_SIN },
- { 1, 2, 0, 0, "SLE", TGSI_OPCODE_SLE },
- { 1, 2, 0, 0, "SNE", TGSI_OPCODE_SNE },
- { 1, 2, 0, 0, "STR", TGSI_OPCODE_STR },
- { 1, 2, 1, 0, "TEX", TGSI_OPCODE_TEX },
- { 1, 4, 1, 0, "TXD", TGSI_OPCODE_TXD },
- { 1, 2, 1, 0, "TXP", TGSI_OPCODE_TXP },
- { 1, 1, 0, 0, "UP2H", TGSI_OPCODE_UP2H },
- { 1, 1, 0, 0, "UP2US", TGSI_OPCODE_UP2US },
- { 1, 1, 0, 0, "UP4B", TGSI_OPCODE_UP4B },
- { 1, 1, 0, 0, "UP4UB", TGSI_OPCODE_UP4UB },
- { 1, 3, 0, 0, "X2D", TGSI_OPCODE_X2D },
- { 1, 1, 0, 0, "ARA", TGSI_OPCODE_ARA },
- { 1, 1, 0, 0, "ARR", TGSI_OPCODE_ARR },
- { 0, 1, 0, 0, "BRA", TGSI_OPCODE_BRA },
- { 0, 0, 0, 1, "CAL", TGSI_OPCODE_CAL },
- { 0, 0, 0, 0, "RET", TGSI_OPCODE_RET },
- { 1, 1, 0, 0, "SSG", TGSI_OPCODE_SSG },
- { 1, 3, 0, 0, "CMP", TGSI_OPCODE_CMP },
- { 1, 1, 0, 0, "SCS", TGSI_OPCODE_SCS },
- { 1, 2, 1, 0, "TXB", TGSI_OPCODE_TXB },
- { 1, 1, 0, 0, "NRM", TGSI_OPCODE_NRM },
- { 1, 2, 0, 0, "DIV", TGSI_OPCODE_DIV },
- { 1, 2, 0, 0, "DP2", TGSI_OPCODE_DP2 },
- { 1, 2, 1, 0, "TXL", TGSI_OPCODE_TXL },
- { 0, 0, 0, 0, "BRK", TGSI_OPCODE_BRK },
- { 0, 1, 0, 1, "IF", TGSI_OPCODE_IF },
- { 1, 1, 0, 0, "BGNFOR", TGSI_OPCODE_BGNFOR },
- { 0, 1, 0, 0, "REP", TGSI_OPCODE_REP },
- { 0, 0, 0, 1, "ELSE", TGSI_OPCODE_ELSE },
- { 0, 0, 0, 0, "ENDIF", TGSI_OPCODE_ENDIF },
- { 1, 0, 0, 0, "ENDFOR", TGSI_OPCODE_ENDFOR },
- { 0, 0, 0, 0, "ENDREP", TGSI_OPCODE_ENDREP },
- { 0, 1, 0, 0, "PUSHA", TGSI_OPCODE_PUSHA },
- { 1, 0, 0, 0, "POPA", TGSI_OPCODE_POPA },
- { 1, 1, 0, 0, "CEIL", TGSI_OPCODE_CEIL },
- { 1, 1, 0, 0, "I2F", TGSI_OPCODE_I2F },
- { 1, 1, 0, 0, "NOT", TGSI_OPCODE_NOT },
- { 1, 1, 0, 0, "TRUNC", TGSI_OPCODE_TRUNC },
- { 1, 2, 0, 0, "SHL", TGSI_OPCODE_SHL },
- { 1, 2, 0, 0, "SHR", TGSI_OPCODE_SHR },
- { 1, 2, 0, 0, "AND", TGSI_OPCODE_AND },
- { 1, 2, 0, 0, "OR", TGSI_OPCODE_OR },
- { 1, 2, 0, 0, "MOD", TGSI_OPCODE_MOD },
- { 1, 2, 0, 0, "XOR", TGSI_OPCODE_XOR },
- { 1, 3, 0, 0, "SAD", TGSI_OPCODE_SAD },
- { 1, 2, 1, 0, "TXF", TGSI_OPCODE_TXF },
- { 1, 2, 1, 0, "TXQ", TGSI_OPCODE_TXQ },
- { 0, 0, 0, 0, "CONT", TGSI_OPCODE_CONT },
- { 0, 0, 0, 0, "EMIT", TGSI_OPCODE_EMIT },
- { 0, 0, 0, 0, "ENDPRIM", TGSI_OPCODE_ENDPRIM },
- { 0, 0, 0, 1, "BGNLOOP", TGSI_OPCODE_BGNLOOP },
- { 0, 0, 0, 0, "BGNSUB", TGSI_OPCODE_BGNSUB },
- { 0, 0, 0, 1, "ENDLOOP", TGSI_OPCODE_ENDLOOP },
- { 0, 0, 0, 0, "ENDSUB", TGSI_OPCODE_ENDSUB },
- { 1, 1, 0, 0, "NOISE1", TGSI_OPCODE_NOISE1 },
- { 1, 1, 0, 0, "NOISE2", TGSI_OPCODE_NOISE2 },
- { 1, 1, 0, 0, "NOISE3", TGSI_OPCODE_NOISE3 },
- { 1, 1, 0, 0, "NOISE4", TGSI_OPCODE_NOISE4 },
- { 0, 0, 0, 0, "NOP", TGSI_OPCODE_NOP },
- { 0, 0, 0, 0, "", 108 }, /* removed */
- { 0, 0, 0, 0, "", 109 }, /* removed */
- { 0, 0, 0, 0, "", 110 }, /* removed */
- { 0, 0, 0, 0, "", 111 }, /* removed */
- { 1, 1, 0, 0, "NRM4", TGSI_OPCODE_NRM4 },
- { 0, 1, 0, 0, "CALLNZ", TGSI_OPCODE_CALLNZ },
- { 0, 1, 0, 0, "IFC", TGSI_OPCODE_IFC },
- { 0, 1, 0, 0, "BREAKC", TGSI_OPCODE_BREAKC },
- { 0, 1, 0, 0, "KIL", TGSI_OPCODE_KIL },
- { 0, 0, 0, 0, "END", TGSI_OPCODE_END },
- { 1, 1, 0, 0, "SWZ", TGSI_OPCODE_SWZ }
+ { 1, 1, 0, 0, 0, 0, "ARL", TGSI_OPCODE_ARL },
+ { 1, 1, 0, 0, 0, 0, "MOV", TGSI_OPCODE_MOV },
+ { 1, 1, 0, 0, 0, 0, "LIT", TGSI_OPCODE_LIT },
+ { 1, 1, 0, 0, 0, 0, "RCP", TGSI_OPCODE_RCP },
+ { 1, 1, 0, 0, 0, 0, "RSQ", TGSI_OPCODE_RSQ },
+ { 1, 1, 0, 0, 0, 0, "EXP", TGSI_OPCODE_EXP },
+ { 1, 1, 0, 0, 0, 0, "LOG", TGSI_OPCODE_LOG },
+ { 1, 2, 0, 0, 0, 0, "MUL", TGSI_OPCODE_MUL },
+ { 1, 2, 0, 0, 0, 0, "ADD", TGSI_OPCODE_ADD },
+ { 1, 2, 0, 0, 0, 0, "DP3", TGSI_OPCODE_DP3 },
+ { 1, 2, 0, 0, 0, 0, "DP4", TGSI_OPCODE_DP4 },
+ { 1, 2, 0, 0, 0, 0, "DST", TGSI_OPCODE_DST },
+ { 1, 2, 0, 0, 0, 0, "MIN", TGSI_OPCODE_MIN },
+ { 1, 2, 0, 0, 0, 0, "MAX", TGSI_OPCODE_MAX },
+ { 1, 2, 0, 0, 0, 0, "SLT", TGSI_OPCODE_SLT },
+ { 1, 2, 0, 0, 0, 0, "SGE", TGSI_OPCODE_SGE },
+ { 1, 3, 0, 0, 0, 0, "MAD", TGSI_OPCODE_MAD },
+ { 1, 2, 0, 0, 0, 0, "SUB", TGSI_OPCODE_SUB },
+ { 1, 3, 0, 0, 0, 0, "LRP", TGSI_OPCODE_LRP },
+ { 1, 3, 0, 0, 0, 0, "CND", TGSI_OPCODE_CND },
+ { 0, 0, 0, 0, 0, 0, "", 20 }, /* removed */
+ { 1, 3, 0, 0, 0, 0, "DP2A", TGSI_OPCODE_DP2A },
+ { 0, 0, 0, 0, 0, 0, "", 22 }, /* removed */
+ { 0, 0, 0, 0, 0, 0, "", 23 }, /* removed */
+ { 1, 1, 0, 0, 0, 0, "FRC", TGSI_OPCODE_FRC },
+ { 1, 3, 0, 0, 0, 0, "CLAMP", TGSI_OPCODE_CLAMP },
+ { 1, 1, 0, 0, 0, 0, "FLR", TGSI_OPCODE_FLR },
+ { 1, 1, 0, 0, 0, 0, "ROUND", TGSI_OPCODE_ROUND },
+ { 1, 1, 0, 0, 0, 0, "EX2", TGSI_OPCODE_EX2 },
+ { 1, 1, 0, 0, 0, 0, "LG2", TGSI_OPCODE_LG2 },
+ { 1, 2, 0, 0, 0, 0, "POW", TGSI_OPCODE_POW },
+ { 1, 2, 0, 0, 0, 0, "XPD", TGSI_OPCODE_XPD },
+ { 0, 0, 0, 0, 0, 0, "", 32 }, /* removed */
+ { 1, 1, 0, 0, 0, 0, "ABS", TGSI_OPCODE_ABS },
+ { 1, 1, 0, 0, 0, 0, "RCC", TGSI_OPCODE_RCC },
+ { 1, 2, 0, 0, 0, 0, "DPH", TGSI_OPCODE_DPH },
+ { 1, 1, 0, 0, 0, 0, "COS", TGSI_OPCODE_COS },
+ { 1, 1, 0, 0, 0, 0, "DDX", TGSI_OPCODE_DDX },
+ { 1, 1, 0, 0, 0, 0, "DDY", TGSI_OPCODE_DDY },
+ { 0, 0, 0, 0, 0, 0, "KILP", TGSI_OPCODE_KILP },
+ { 1, 1, 0, 0, 0, 0, "PK2H", TGSI_OPCODE_PK2H },
+ { 1, 1, 0, 0, 0, 0, "PK2US", TGSI_OPCODE_PK2US },
+ { 1, 1, 0, 0, 0, 0, "PK4B", TGSI_OPCODE_PK4B },
+ { 1, 1, 0, 0, 0, 0, "PK4UB", TGSI_OPCODE_PK4UB },
+ { 1, 2, 0, 0, 0, 0, "RFL", TGSI_OPCODE_RFL },
+ { 1, 2, 0, 0, 0, 0, "SEQ", TGSI_OPCODE_SEQ },
+ { 1, 2, 0, 0, 0, 0, "SFL", TGSI_OPCODE_SFL },
+ { 1, 2, 0, 0, 0, 0, "SGT", TGSI_OPCODE_SGT },
+ { 1, 1, 0, 0, 0, 0, "SIN", TGSI_OPCODE_SIN },
+ { 1, 2, 0, 0, 0, 0, "SLE", TGSI_OPCODE_SLE },
+ { 1, 2, 0, 0, 0, 0, "SNE", TGSI_OPCODE_SNE },
+ { 1, 2, 0, 0, 0, 0, "STR", TGSI_OPCODE_STR },
+ { 1, 2, 1, 0, 0, 0, "TEX", TGSI_OPCODE_TEX },
+ { 1, 4, 1, 0, 0, 0, "TXD", TGSI_OPCODE_TXD },
+ { 1, 2, 1, 0, 0, 0, "TXP", TGSI_OPCODE_TXP },
+ { 1, 1, 0, 0, 0, 0, "UP2H", TGSI_OPCODE_UP2H },
+ { 1, 1, 0, 0, 0, 0, "UP2US", TGSI_OPCODE_UP2US },
+ { 1, 1, 0, 0, 0, 0, "UP4B", TGSI_OPCODE_UP4B },
+ { 1, 1, 0, 0, 0, 0, "UP4UB", TGSI_OPCODE_UP4UB },
+ { 1, 3, 0, 0, 0, 0, "X2D", TGSI_OPCODE_X2D },
+ { 1, 1, 0, 0, 0, 0, "ARA", TGSI_OPCODE_ARA },
+ { 1, 1, 0, 0, 0, 0, "ARR", TGSI_OPCODE_ARR },
+ { 0, 1, 0, 0, 0, 0, "BRA", TGSI_OPCODE_BRA },
+ { 0, 0, 0, 1, 0, 0, "CAL", TGSI_OPCODE_CAL },
+ { 0, 0, 0, 0, 0, 0, "RET", TGSI_OPCODE_RET },
+ { 1, 1, 0, 0, 0, 0, "SSG", TGSI_OPCODE_SSG },
+ { 1, 3, 0, 0, 0, 0, "CMP", TGSI_OPCODE_CMP },
+ { 1, 1, 0, 0, 0, 0, "SCS", TGSI_OPCODE_SCS },
+ { 1, 2, 1, 0, 0, 0, "TXB", TGSI_OPCODE_TXB },
+ { 1, 1, 0, 0, 0, 0, "NRM", TGSI_OPCODE_NRM },
+ { 1, 2, 0, 0, 0, 0, "DIV", TGSI_OPCODE_DIV },
+ { 1, 2, 0, 0, 0, 0, "DP2", TGSI_OPCODE_DP2 },
+ { 1, 2, 1, 0, 0, 0, "TXL", TGSI_OPCODE_TXL },
+ { 0, 0, 0, 0, 0, 0, "BRK", TGSI_OPCODE_BRK },
+ { 0, 1, 0, 1, 0, 1, "IF", TGSI_OPCODE_IF },
+ { 1, 1, 0, 0, 0, 1, "BGNFOR", TGSI_OPCODE_BGNFOR },
+ { 0, 1, 0, 0, 0, 1, "REP", TGSI_OPCODE_REP },
+ { 0, 0, 0, 1, 1, 1, "ELSE", TGSI_OPCODE_ELSE },
+ { 0, 0, 0, 0, 1, 0, "ENDIF", TGSI_OPCODE_ENDIF },
+ { 1, 0, 0, 0, 1, 0, "ENDFOR", TGSI_OPCODE_ENDFOR },
+ { 0, 0, 0, 0, 1, 0, "ENDREP", TGSI_OPCODE_ENDREP },
+ { 0, 1, 0, 0, 0, 0, "PUSHA", TGSI_OPCODE_PUSHA },
+ { 1, 0, 0, 0, 0, 0, "POPA", TGSI_OPCODE_POPA },
+ { 1, 1, 0, 0, 0, 0, "CEIL", TGSI_OPCODE_CEIL },
+ { 1, 1, 0, 0, 0, 0, "I2F", TGSI_OPCODE_I2F },
+ { 1, 1, 0, 0, 0, 0, "NOT", TGSI_OPCODE_NOT },
+ { 1, 1, 0, 0, 0, 0, "TRUNC", TGSI_OPCODE_TRUNC },
+ { 1, 2, 0, 0, 0, 0, "SHL", TGSI_OPCODE_SHL },
+ { 1, 2, 0, 0, 0, 0, "SHR", TGSI_OPCODE_SHR },
+ { 1, 2, 0, 0, 0, 0, "AND", TGSI_OPCODE_AND },
+ { 1, 2, 0, 0, 0, 0, "OR", TGSI_OPCODE_OR },
+ { 1, 2, 0, 0, 0, 0, "MOD", TGSI_OPCODE_MOD },
+ { 1, 2, 0, 0, 0, 0, "XOR", TGSI_OPCODE_XOR },
+ { 1, 3, 0, 0, 0, 0, "SAD", TGSI_OPCODE_SAD },
+ { 1, 2, 1, 0, 0, 0, "TXF", TGSI_OPCODE_TXF },
+ { 1, 2, 1, 0, 0, 0, "TXQ", TGSI_OPCODE_TXQ },
+ { 0, 0, 0, 0, 0, 0, "CONT", TGSI_OPCODE_CONT },
+ { 0, 0, 0, 0, 0, 0, "EMIT", TGSI_OPCODE_EMIT },
+ { 0, 0, 0, 0, 0, 0, "ENDPRIM", TGSI_OPCODE_ENDPRIM },
+ { 0, 0, 0, 1, 0, 1, "BGNLOOP", TGSI_OPCODE_BGNLOOP },
+ { 0, 0, 0, 0, 0, 1, "BGNSUB", TGSI_OPCODE_BGNSUB },
+ { 0, 0, 0, 1, 1, 0, "ENDLOOP", TGSI_OPCODE_ENDLOOP },
+ { 0, 0, 0, 0, 1, 0, "ENDSUB", TGSI_OPCODE_ENDSUB },
+ { 1, 1, 0, 0, 0, 0, "NOISE1", TGSI_OPCODE_NOISE1 },
+ { 1, 1, 0, 0, 0, 0, "NOISE2", TGSI_OPCODE_NOISE2 },
+ { 1, 1, 0, 0, 0, 0, "NOISE3", TGSI_OPCODE_NOISE3 },
+ { 1, 1, 0, 0, 0, 0, "NOISE4", TGSI_OPCODE_NOISE4 },
+ { 0, 0, 0, 0, 0, 0, "NOP", TGSI_OPCODE_NOP },
+ { 0, 0, 0, 0, 0, 0, "", 108 }, /* removed */
+ { 0, 0, 0, 0, 0, 0, "", 109 }, /* removed */
+ { 0, 0, 0, 0, 0, 0, "", 110 }, /* removed */
+ { 0, 0, 0, 0, 0, 0, "", 111 }, /* removed */
+ { 1, 1, 0, 0, 0, 0, "NRM4", TGSI_OPCODE_NRM4 },
+ { 0, 1, 0, 0, 0, 0, "CALLNZ", TGSI_OPCODE_CALLNZ },
+ { 0, 1, 0, 0, 0, 0, "IFC", TGSI_OPCODE_IFC },
+ { 0, 1, 0, 0, 0, 0, "BREAKC", TGSI_OPCODE_BREAKC },
+ { 0, 1, 0, 0, 0, 0, "KIL", TGSI_OPCODE_KIL },
+ { 0, 0, 0, 0, 0, 0, "END", TGSI_OPCODE_END },
+ { 1, 1, 0, 0, 0, 0, "SWZ", TGSI_OPCODE_SWZ }
};
const struct tgsi_opcode_info *
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.h b/src/gallium/auxiliary/tgsi/tgsi_info.h
index b2375c69710..74713c3b98a 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.h
@@ -36,10 +36,12 @@ extern "C" {
struct tgsi_opcode_info
{
- uint num_dst;
- uint num_src;
- boolean is_tex;
- boolean is_branch;
+ unsigned num_dst:3;
+ unsigned num_src:3;
+ unsigned is_tex:1;
+ unsigned is_branch:1;
+ int pre_dedent:2;
+ int post_indent:2;
const char *mnemonic;
uint opcode;
};
diff --git a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
index ed594a3e2c7..e7bcf4bf754 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
@@ -60,7 +60,6 @@ OP13(MAD)
OP12(SUB)
OP13(LRP)
OP13(CND)
-OP13(CND0)
OP13(DP2A)
OP11(FRC)
OP13(CLAMP)
diff --git a/src/gallium/auxiliary/tgsi/tgsi_sanity.c b/src/gallium/auxiliary/tgsi/tgsi_sanity.c
index 4fe8553c423..8a13885da9b 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_sanity.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_sanity.c
@@ -199,10 +199,10 @@ iter_instruction(
}
if (info->num_dst != inst->Instruction.NumDstRegs) {
- report_error( ctx, "Invalid number of destination operands, should be %u", info->num_dst );
+ report_error( ctx, "%s: Invalid number of destination operands, should be %u", info->mnemonic, info->num_dst );
}
if (info->num_src != inst->Instruction.NumSrcRegs) {
- report_error( ctx, "Invalid number of source operands, should be %u", info->num_src );
+ report_error( ctx, "%s: Invalid number of source operands, should be %u", info->mnemonic, info->num_src );
}
/* Check destination and source registers' validity.
diff --git a/src/gallium/auxiliary/tgsi/tgsi_sse2.c b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
index 46f2387c158..3cdf8b9f359 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_sse2.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
@@ -2089,10 +2089,6 @@ emit_instruction(
return 0;
break;
- case TGSI_OPCODE_CND0:
- return 0;
- break;
-
case TGSI_OPCODE_DP2A:
FETCH( func, *inst, 0, 0, CHAN_X ); /* xmm0 = src[0].x */
FETCH( func, *inst, 1, 1, CHAN_X ); /* xmm1 = src[1].x */
diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.c b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
index c0a0627e0b2..f7096bd8e2c 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
@@ -29,6 +29,7 @@
#include "pipe/p_context.h"
#include "pipe/p_state.h"
#include "tgsi/tgsi_ureg.h"
+#include "tgsi/tgsi_info.h"
#include "tgsi/tgsi_dump.h"
#include "util/u_memory.h"
#include "util/u_math.h"
@@ -71,6 +72,7 @@ struct ureg_tokens {
#define UREG_MAX_OUTPUT PIPE_MAX_ATTRIBS
#define UREG_MAX_IMMEDIATE 32
#define UREG_MAX_TEMP 256
+#define UREG_MAX_ADDR 2
#define DOMAIN_DECL 0
#define DOMAIN_INSN 1
@@ -99,11 +101,15 @@ struct ureg_program
} immediate[UREG_MAX_IMMEDIATE];
unsigned nr_immediates;
+ struct ureg_src sampler[PIPE_MAX_SAMPLERS];
+ unsigned nr_samplers;
+
unsigned temps_active[UREG_MAX_TEMP / 32];
unsigned nr_temps;
+ unsigned nr_addrs;
+
unsigned nr_constants;
- unsigned nr_samplers;
unsigned nr_instructions;
struct ureg_tokens domain[2];
@@ -187,6 +193,8 @@ ureg_dst_register( unsigned file,
dst.File = file;
dst.WriteMask = TGSI_WRITEMASK_XYZW;
dst.Indirect = 0;
+ dst.IndirectIndex = 0;
+ dst.IndirectSwizzle = 0;
dst.Saturate = 0;
dst.Index = index;
dst.Pad1 = 0;
@@ -208,6 +216,8 @@ ureg_src_register( unsigned file,
src.SwizzleW = TGSI_SWIZZLE_W;
src.Pad = 0;
src.Indirect = 0;
+ src.IndirectIndex = 0;
+ src.IndirectSwizzle = 0;
src.Absolute = 0;
src.Index = index;
src.Negate = 0;
@@ -254,6 +264,7 @@ ureg_DECL_fs_input( struct ureg_program *ureg,
unsigned index,
unsigned interp )
{
+ assert(ureg->processor == TGSI_PROCESSOR_FRAGMENT);
return ureg_DECL_input( ureg, name, index, interp );
}
@@ -263,6 +274,7 @@ ureg_DECL_vs_input( struct ureg_program *ureg,
unsigned name,
unsigned index )
{
+ assert(ureg->processor == TGSI_PROCESSOR_VERTEX);
return ureg_DECL_input( ureg, name, index, TGSI_INTERPOLATE_CONSTANT );
}
@@ -346,11 +358,36 @@ void ureg_release_temporary( struct ureg_program *ureg,
}
+/* Allocate a new address register.
+ */
+struct ureg_dst ureg_DECL_address( struct ureg_program *ureg )
+{
+ if (ureg->nr_addrs < UREG_MAX_ADDR)
+ return ureg_dst_register( TGSI_FILE_ADDRESS, ureg->nr_addrs++ );
+
+ assert( 0 );
+ return ureg_dst_register( TGSI_FILE_ADDRESS, 0 );
+}
+
/* Allocate a new sampler.
*/
-struct ureg_src ureg_DECL_sampler( struct ureg_program *ureg )
+struct ureg_src ureg_DECL_sampler( struct ureg_program *ureg,
+ unsigned nr )
{
- return ureg_src_register( TGSI_FILE_SAMPLER, ureg->nr_samplers++ );
+ unsigned i;
+
+ for (i = 0; i < ureg->nr_samplers; i++)
+ if (ureg->sampler[i].Index == nr)
+ return ureg->sampler[i];
+
+ if (i < PIPE_MAX_SAMPLERS) {
+ ureg->sampler[i] = ureg_src_register( TGSI_FILE_SAMPLER, nr );
+ ureg->nr_samplers++;
+ return ureg->sampler[i];
+ }
+
+ assert( 0 );
+ return ureg->sampler[0];
}
@@ -363,6 +400,8 @@ static int match_or_expand_immediate( const float *v,
unsigned *swizzle )
{
unsigned i, j;
+
+ *swizzle = 0;
for (i = 0; i < nr; i++) {
boolean found = FALSE;
@@ -394,8 +433,8 @@ struct ureg_src ureg_DECL_immediate( struct ureg_program *ureg,
const float *v,
unsigned nr )
{
- unsigned i;
- unsigned swizzle = 0;
+ unsigned i, j;
+ unsigned swizzle;
/* Could do a first pass where we examine all existing immediates
* without expanding.
@@ -423,6 +462,12 @@ struct ureg_src ureg_DECL_immediate( struct ureg_program *ureg,
set_bad( ureg );
out:
+ /* Make sure that all referenced elements are from this immediate.
+ * Has the effect of making size-one immediates into scalars.
+ */
+ for (j = nr; j < 4; j++)
+ swizzle |= (swizzle & 0x3) << (j * 2);
+
return ureg_swizzle( ureg_src_register( TGSI_FILE_IMMEDIATE, i ),
(swizzle >> 0) & 0x3,
(swizzle >> 2) & 0x3,
@@ -442,31 +487,39 @@ ureg_emit_src( struct ureg_program *ureg,
union tgsi_any_token *out = get_tokens( ureg, DOMAIN_INSN, size );
unsigned n = 0;
+ assert(src.File != TGSI_FILE_NULL);
+ assert(src.File != TGSI_FILE_OUTPUT);
+ assert(src.File < TGSI_FILE_COUNT);
+
out[n].value = 0;
out[n].src.File = src.File;
out[n].src.SwizzleX = src.SwizzleX;
out[n].src.SwizzleY = src.SwizzleY;
out[n].src.SwizzleZ = src.SwizzleZ;
out[n].src.SwizzleW = src.SwizzleW;
- out[n].src.Indirect = src.Indirect;
out[n].src.Index = src.Index;
+ out[n].src.Negate = src.Negate;
n++;
if (src.Absolute) {
+ out[0].src.Extended = 1;
+ out[0].src.Negate = 0;
out[n].value = 0;
+ out[n].src_ext_mod.Type = TGSI_SRC_REGISTER_EXT_TYPE_MOD;
out[n].src_ext_mod.Absolute = 1;
+ out[n].src_ext_mod.Negate = src.Negate;
n++;
}
if (src.Indirect) {
+ out[0].src.Indirect = 1;
out[n].value = 0;
out[n].src.File = TGSI_FILE_ADDRESS;
- out[n].src.SwizzleX = TGSI_SWIZZLE_X;
- out[n].src.SwizzleY = TGSI_SWIZZLE_X;
- out[n].src.SwizzleZ = TGSI_SWIZZLE_X;
- out[n].src.SwizzleW = TGSI_SWIZZLE_X;
- out[n].src.Indirect = 0;
- out[n].src.Index = 0;
+ out[n].src.SwizzleX = src.IndirectSwizzle;
+ out[n].src.SwizzleY = src.IndirectSwizzle;
+ out[n].src.SwizzleZ = src.IndirectSwizzle;
+ out[n].src.SwizzleW = src.IndirectSwizzle;
+ out[n].src.Index = src.IndirectIndex;
n++;
}
@@ -484,6 +537,13 @@ ureg_emit_dst( struct ureg_program *ureg,
union tgsi_any_token *out = get_tokens( ureg, DOMAIN_INSN, size );
unsigned n = 0;
+ assert(dst.File != TGSI_FILE_NULL);
+ assert(dst.File != TGSI_FILE_CONSTANT);
+ assert(dst.File != TGSI_FILE_INPUT);
+ assert(dst.File != TGSI_FILE_SAMPLER);
+ assert(dst.File != TGSI_FILE_IMMEDIATE);
+ assert(dst.File < TGSI_FILE_COUNT);
+
out[n].value = 0;
out[n].dst.File = dst.File;
out[n].dst.WriteMask = dst.WriteMask;
@@ -494,12 +554,11 @@ ureg_emit_dst( struct ureg_program *ureg,
if (dst.Indirect) {
out[n].value = 0;
out[n].src.File = TGSI_FILE_ADDRESS;
- out[n].src.SwizzleX = TGSI_SWIZZLE_X;
- out[n].src.SwizzleY = TGSI_SWIZZLE_X;
- out[n].src.SwizzleZ = TGSI_SWIZZLE_X;
- out[n].src.SwizzleW = TGSI_SWIZZLE_X;
- out[n].src.Indirect = 0;
- out[n].src.Index = 0;
+ out[n].src.SwizzleX = dst.IndirectSwizzle;
+ out[n].src.SwizzleY = dst.IndirectSwizzle;
+ out[n].src.SwizzleZ = dst.IndirectSwizzle;
+ out[n].src.SwizzleW = dst.IndirectSwizzle;
+ out[n].src.Index = dst.IndirectIndex;
n++;
}
@@ -523,7 +582,6 @@ ureg_emit_insn(struct ureg_program *ureg,
out[0].insn.NrTokens = 0;
out[0].insn.Opcode = opcode;
out[0].insn.Saturate = saturate;
- out[0].insn.NrTokens = 0;
out[0].insn.NumDstRegs = num_dst;
out[0].insn.NumSrcRegs = num_src;
out[0].insn.Padding = 0;
@@ -542,6 +600,9 @@ ureg_emit_label(struct ureg_program *ureg,
{
union tgsi_any_token *out, *insn;
+ if(!label_token)
+ return;
+
out = get_tokens( ureg, DOMAIN_INSN, 1 );
insn = retrieve_token( ureg, DOMAIN_INSN, insn_token );
@@ -617,6 +678,17 @@ ureg_insn(struct ureg_program *ureg,
unsigned insn, i;
boolean saturate;
+#ifdef DEBUG
+ {
+ const struct tgsi_opcode_info *info = tgsi_get_opcode_info( opcode );
+ assert(info);
+ if(info) {
+ assert(nr_dst == info->num_dst);
+ assert(nr_src == info->num_src);
+ }
+ }
+#endif
+
saturate = nr_dst ? dst[0].Saturate : FALSE;
insn = ureg_emit_insn( ureg, opcode, saturate, nr_dst, nr_src );
@@ -723,10 +795,10 @@ static void emit_decls( struct ureg_program *ureg )
TGSI_INTERPOLATE_CONSTANT );
}
- if (ureg->nr_samplers) {
+ for (i = 0; i < ureg->nr_samplers; i++) {
emit_decl_range( ureg,
TGSI_FILE_SAMPLER,
- 0, ureg->nr_samplers );
+ ureg->sampler[i].Index, 1 );
}
if (ureg->nr_constants) {
@@ -741,6 +813,12 @@ static void emit_decls( struct ureg_program *ureg )
0, ureg->nr_temps );
}
+ if (ureg->nr_addrs) {
+ emit_decl_range( ureg,
+ TGSI_FILE_ADDRESS,
+ 0, ureg->nr_addrs );
+ }
+
for (i = 0; i < ureg->nr_immediates; i++) {
emit_immediate( ureg,
ureg->immediate[i].v );
@@ -764,7 +842,7 @@ static void copy_instructions( struct ureg_program *ureg )
static void
-fixup_header_size(struct ureg_program *ureg )
+fixup_header_size(struct ureg_program *ureg)
{
union tgsi_any_token *out = retrieve_token( ureg, DOMAIN_DECL, 1 );
diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.h b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
index 8836a1ea0eb..acbca59040c 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
@@ -31,6 +31,10 @@
#include "pipe/p_compiler.h"
#include "pipe/p_shader_tokens.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct ureg_program;
/* Almost a tgsi_src_register, but we need to pull in the Absolute
@@ -48,6 +52,8 @@ struct ureg_src
unsigned Absolute : 1; /* BOOL */
int Index : 16; /* SINT */
unsigned Negate : 1; /* BOOL */
+ int IndirectIndex : 16; /* SINT */
+ int IndirectSwizzle : 2; /* TGSI_SWIZZLE_ */
};
/* Very similar to a tgsi_dst_register, removing unsupported fields
@@ -64,6 +70,8 @@ struct ureg_dst
int Index : 16; /* SINT */
unsigned Pad1 : 5;
unsigned Pad2 : 1; /* BOOL */
+ int IndirectIndex : 16; /* SINT */
+ int IndirectSwizzle : 2; /* TGSI_SWIZZLE_ */
};
struct pipe_context;
@@ -131,12 +139,21 @@ void
ureg_release_temporary( struct ureg_program *ureg,
struct ureg_dst tmp );
+struct ureg_dst
+ureg_DECL_address( struct ureg_program * );
+
+/* Supply an index to the sampler declaration as this is the hook to
+ * the external pipe_sampler state. Users of this function probably
+ * don't want just any sampler, but a specific one which they've set
+ * up state for in the context.
+ */
struct ureg_src
-ureg_DECL_sampler( struct ureg_program * );
+ureg_DECL_sampler( struct ureg_program *,
+ unsigned index );
static INLINE struct ureg_src
-ureg_DECL_immediate4f( struct ureg_program *ureg,
+ureg_imm4f( struct ureg_program *ureg,
float a, float b,
float c, float d)
{
@@ -149,7 +166,7 @@ ureg_DECL_immediate4f( struct ureg_program *ureg,
}
static INLINE struct ureg_src
-ureg_DECL_immediate3f( struct ureg_program *ureg,
+ureg_imm3f( struct ureg_program *ureg,
float a, float b,
float c)
{
@@ -161,7 +178,7 @@ ureg_DECL_immediate3f( struct ureg_program *ureg,
}
static INLINE struct ureg_src
-ureg_DECL_immediate2f( struct ureg_program *ureg,
+ureg_imm2f( struct ureg_program *ureg,
float a, float b)
{
float v[2];
@@ -171,7 +188,7 @@ ureg_DECL_immediate2f( struct ureg_program *ureg,
}
static INLINE struct ureg_src
-ureg_DECL_immediate1f( struct ureg_program *ureg,
+ureg_imm1f( struct ureg_program *ureg,
float a)
{
float v[1];
@@ -392,6 +409,7 @@ static INLINE void ureg_##op( struct ureg_program *ureg, \
static INLINE struct ureg_src
ureg_negate( struct ureg_src reg )
{
+ assert(reg.File != TGSI_FILE_NULL);
reg.Negate ^= 1;
return reg;
}
@@ -399,6 +417,7 @@ ureg_negate( struct ureg_src reg )
static INLINE struct ureg_src
ureg_abs( struct ureg_src reg )
{
+ assert(reg.File != TGSI_FILE_NULL);
reg.Absolute = 1;
reg.Negate = 0;
return reg;
@@ -413,6 +432,12 @@ ureg_swizzle( struct ureg_src reg,
(reg.SwizzleZ << 4) |
(reg.SwizzleW << 6));
+ assert(reg.File != TGSI_FILE_NULL);
+ assert(x < 4);
+ assert(y < 4);
+ assert(z < 4);
+ assert(w < 4);
+
reg.SwizzleX = (swz >> (x*2)) & 0x3;
reg.SwizzleY = (swz >> (y*2)) & 0x3;
reg.SwizzleZ = (swz >> (z*2)) & 0x3;
@@ -430,6 +455,7 @@ static INLINE struct ureg_dst
ureg_writemask( struct ureg_dst reg,
unsigned writemask )
{
+ assert(reg.File != TGSI_FILE_NULL);
reg.WriteMask &= writemask;
return reg;
}
@@ -437,10 +463,33 @@ ureg_writemask( struct ureg_dst reg,
static INLINE struct ureg_dst
ureg_saturate( struct ureg_dst reg )
{
+ assert(reg.File != TGSI_FILE_NULL);
reg.Saturate = 1;
return reg;
}
+static INLINE struct ureg_dst
+ureg_dst_indirect( struct ureg_dst reg, struct ureg_src addr )
+{
+ assert(reg.File != TGSI_FILE_NULL);
+ assert(addr.File == TGSI_FILE_ADDRESS);
+ reg.Indirect = 1;
+ reg.IndirectIndex = addr.Index;
+ reg.IndirectSwizzle = addr.SwizzleX;
+ return reg;
+}
+
+static INLINE struct ureg_src
+ureg_src_indirect( struct ureg_src reg, struct ureg_src addr )
+{
+ assert(reg.File != TGSI_FILE_NULL);
+ assert(addr.File == TGSI_FILE_ADDRESS);
+ reg.Indirect = 1;
+ reg.IndirectIndex = addr.Index;
+ reg.IndirectSwizzle = addr.SwizzleX;
+ return reg;
+}
+
static INLINE struct ureg_dst
ureg_dst( struct ureg_src src )
{
@@ -449,6 +498,8 @@ ureg_dst( struct ureg_src src )
dst.File = src.File;
dst.WriteMask = TGSI_WRITEMASK_XYZW;
dst.Indirect = src.Indirect;
+ dst.IndirectIndex = src.IndirectIndex;
+ dst.IndirectSwizzle = src.IndirectSwizzle;
dst.Saturate = 0;
dst.Index = src.Index;
dst.Pad1 = 0;
@@ -469,6 +520,8 @@ ureg_src( struct ureg_dst dst )
src.SwizzleW = TGSI_SWIZZLE_W;
src.Pad = 0;
src.Indirect = dst.Indirect;
+ src.IndirectIndex = dst.IndirectIndex;
+ src.IndirectSwizzle = dst.IndirectSwizzle;
src.Absolute = 0;
src.Index = dst.Index;
src.Negate = 0;
@@ -478,4 +531,60 @@ ureg_src( struct ureg_dst dst )
+static INLINE struct ureg_dst
+ureg_dst_undef( void )
+{
+ struct ureg_dst dst;
+
+ dst.File = TGSI_FILE_NULL;
+ dst.WriteMask = 0;
+ dst.Indirect = 0;
+ dst.IndirectIndex = 0;
+ dst.IndirectSwizzle = 0;
+ dst.Saturate = 0;
+ dst.Index = 0;
+ dst.Pad1 = 0;
+ dst.Pad2 = 0;
+
+ return dst;
+}
+
+static INLINE struct ureg_src
+ureg_src_undef( void )
+{
+ struct ureg_src src;
+
+ src.File = TGSI_FILE_NULL;
+ src.SwizzleX = 0;
+ src.SwizzleY = 0;
+ src.SwizzleZ = 0;
+ src.SwizzleW = 0;
+ src.Pad = 0;
+ src.Indirect = 0;
+ src.IndirectIndex = 0;
+ src.IndirectSwizzle = 0;
+ src.Absolute = 0;
+ src.Index = 0;
+ src.Negate = 0;
+
+ return src;
+}
+
+static INLINE boolean
+ureg_src_is_undef( struct ureg_src src )
+{
+ return src.File == TGSI_FILE_NULL;
+}
+
+static INLINE boolean
+ureg_dst_is_undef( struct ureg_dst dst )
+{
+ return dst.File == TGSI_FILE_NULL;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/src/gallium/auxiliary/tgsi/tgsi_util.h b/src/gallium/auxiliary/tgsi/tgsi_util.h
index 7877f345587..21eb656327e 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_util.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_util.h
@@ -32,6 +32,10 @@
extern "C" {
#endif
+struct tgsi_src_register;
+struct tgsi_src_register_ext_swz;
+struct tgsi_full_src_register;
+
void *
tgsi_align_128bit(
void *unaligned );
diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c
index cda6dbd46d7..c516317d701 100644
--- a/src/gallium/auxiliary/util/u_blit.c
+++ b/src/gallium/auxiliary/util/u_blit.c
@@ -62,7 +62,7 @@ struct blit_state
struct pipe_viewport_state viewport;
void *vs;
- void *fs;
+ void *fs[TGSI_WRITEMASK_XYZW + 1];
struct pipe_buffer *vbuf; /**< quad vertices */
unsigned vbuf_slot;
@@ -125,7 +125,7 @@ util_create_blit(struct pipe_context *pipe, struct cso_context *cso)
}
/* fragment shader */
- ctx->fs = util_make_fragment_tex_shader(pipe);
+ ctx->fs[TGSI_WRITEMASK_XYZW] = util_make_fragment_tex_shader(pipe);
ctx->vbuf = NULL;
/* init vertex data that doesn't change */
@@ -146,9 +146,13 @@ void
util_destroy_blit(struct blit_state *ctx)
{
struct pipe_context *pipe = ctx->pipe;
+ unsigned i;
pipe->delete_vs_state(pipe, ctx->vs);
- pipe->delete_fs_state(pipe, ctx->fs);
+
+ for (i = 0; i < Elements(ctx->fs); i++)
+ if (ctx->fs[i])
+ pipe->delete_fs_state(pipe, ctx->fs[i]);
pipe_buffer_reference(&ctx->vbuf, NULL);
@@ -299,14 +303,15 @@ regions_overlap(int srcX0, int srcY0,
* XXX need some control over blitting Z and/or stencil.
*/
void
-util_blit_pixels(struct blit_state *ctx,
- struct pipe_surface *src,
- int srcX0, int srcY0,
- int srcX1, int srcY1,
- struct pipe_surface *dst,
- int dstX0, int dstY0,
- int dstX1, int dstY1,
- float z, uint filter)
+util_blit_pixels_writemask(struct blit_state *ctx,
+ struct pipe_surface *src,
+ int srcX0, int srcY0,
+ int srcX1, int srcY1,
+ struct pipe_surface *dst,
+ int dstX0, int dstY0,
+ int dstX1, int dstY1,
+ float z, uint filter,
+ uint writemask)
{
struct pipe_context *pipe = ctx->pipe;
struct pipe_screen *screen = pipe->screen;
@@ -426,8 +431,11 @@ util_blit_pixels(struct blit_state *ctx,
/* texture */
cso_set_sampler_textures(ctx->cso, 1, &tex);
+ if (ctx->fs[writemask] == NULL)
+ ctx->fs[writemask] = util_make_fragment_tex_shader_writemask(pipe, writemask);
+
/* shaders */
- cso_set_fragment_shader_handle(ctx->cso, ctx->fs);
+ cso_set_fragment_shader_handle(ctx->cso, ctx->fs[writemask]);
cso_set_vertex_shader_handle(ctx->cso, ctx->vs);
/* drawing dest */
@@ -462,6 +470,27 @@ util_blit_pixels(struct blit_state *ctx,
}
+void
+util_blit_pixels(struct blit_state *ctx,
+ struct pipe_surface *src,
+ int srcX0, int srcY0,
+ int srcX1, int srcY1,
+ struct pipe_surface *dst,
+ int dstX0, int dstY0,
+ int dstX1, int dstY1,
+ float z, uint filter )
+{
+ util_blit_pixels_writemask( ctx, src,
+ srcX0, srcY0,
+ srcX1, srcY1,
+ dst,
+ dstX0, dstY0,
+ dstX1, dstY1,
+ z, filter,
+ TGSI_WRITEMASK_XYZW );
+}
+
+
/* Release vertex buffer at end of frame to avoid synchronous
* rendering.
*/
@@ -535,7 +564,7 @@ util_blit_pixels_tex(struct blit_state *ctx,
cso_set_sampler_textures(ctx->cso, 1, &tex);
/* shaders */
- cso_set_fragment_shader_handle(ctx->cso, ctx->fs);
+ cso_set_fragment_shader_handle(ctx->cso, ctx->fs[TGSI_WRITEMASK_XYZW]);
cso_set_vertex_shader_handle(ctx->cso, ctx->vs);
/* drawing dest */
diff --git a/src/gallium/auxiliary/util/u_blit.h b/src/gallium/auxiliary/util/u_blit.h
index c35beceda8d..a102021529e 100644
--- a/src/gallium/auxiliary/util/u_blit.h
+++ b/src/gallium/auxiliary/util/u_blit.h
@@ -60,6 +60,17 @@ util_blit_pixels(struct blit_state *ctx,
int dstX1, int dstY1,
float z, uint filter);
+void
+util_blit_pixels_writemask(struct blit_state *ctx,
+ struct pipe_surface *src,
+ int srcX0, int srcY0,
+ int srcX1, int srcY1,
+ struct pipe_surface *dst,
+ int dstX0, int dstY0,
+ int dstX1, int dstY1,
+ float z, uint filter,
+ uint writemask);
+
extern void
util_blit_pixels_tex(struct blit_state *ctx,
struct pipe_texture *tex,
diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h
index b0807c13392..4c6c2bc00e1 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -374,6 +374,10 @@ unsigned ffs( unsigned u )
#define ffs __builtin_ffs
#endif
+#ifdef __MINGW32__
+#define ffs __builtin_ffs
+#endif
+
/* Could also binary search for the highest bit.
*/
diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c b/src/gallium/auxiliary/util/u_simple_shaders.c
index d54a1d8c746..1b8da9b6853 100644
--- a/src/gallium/auxiliary/util/u_simple_shaders.c
+++ b/src/gallium/auxiliary/util/u_simple_shaders.c
@@ -88,11 +88,14 @@ util_make_vertex_passthrough_shader(struct pipe_context *pipe,
/**
* Make simple fragment texture shader:
- * TEX OUT[0], IN[0], SAMP[0], 2D;
+ * IMM {0,0,0,1} // (if writemask != 0xf)
+ * MOV OUT[0], IMM[0] // (if writemask != 0xf)
+ * TEX OUT[0].writemask, IN[0], SAMP[0], 2D;
* END;
*/
void *
-util_make_fragment_tex_shader(struct pipe_context *pipe)
+util_make_fragment_tex_shader_writemask(struct pipe_context *pipe,
+ unsigned writemask )
{
struct ureg_program *ureg;
struct ureg_src sampler;
@@ -103,7 +106,7 @@ util_make_fragment_tex_shader(struct pipe_context *pipe)
if (ureg == NULL)
return NULL;
- sampler = ureg_DECL_sampler( ureg );
+ sampler = ureg_DECL_sampler( ureg, 0 );
tex = ureg_DECL_fs_input( ureg,
TGSI_SEMANTIC_GENERIC, 0,
@@ -119,6 +122,13 @@ util_make_fragment_tex_shader(struct pipe_context *pipe)
return ureg_create_shader_and_destroy( ureg, pipe );
}
+void *
+util_make_fragment_tex_shader(struct pipe_context *pipe )
+{
+ return util_make_fragment_tex_shader_writemask( pipe,
+ TGSI_WRITEMASK_XYZW );
+}
+
diff --git a/src/gallium/auxiliary/util/u_simple_shaders.h b/src/gallium/auxiliary/util/u_simple_shaders.h
index 6f8d96af9bc..d2e80d6eb4d 100644
--- a/src/gallium/auxiliary/util/u_simple_shaders.h
+++ b/src/gallium/auxiliary/util/u_simple_shaders.h
@@ -50,6 +50,10 @@ util_make_vertex_passthrough_shader(struct pipe_context *pipe,
extern void *
+util_make_fragment_tex_shader_writemask(struct pipe_context *pipe,
+ unsigned writemask );
+
+extern void *
util_make_fragment_tex_shader(struct pipe_context *pipe);
diff --git a/src/gallium/drivers/cell/spu/spu_exec.c b/src/gallium/drivers/cell/spu/spu_exec.c
index 6db9501128c..0eaae2e451b 100644
--- a/src/gallium/drivers/cell/spu/spu_exec.c
+++ b/src/gallium/drivers/cell/spu/spu_exec.c
@@ -1150,10 +1150,6 @@ exec_instruction(
ASSERT (0);
break;
- case TGSI_OPCODE_CND0:
- ASSERT (0);
- break;
-
case TGSI_OPCODE_DP2A:
ASSERT (0);
break;
diff --git a/src/gallium/drivers/i915simple/Makefile b/src/gallium/drivers/i915simple/Makefile
index 8870b398661..fb533c17961 100644
--- a/src/gallium/drivers/i915simple/Makefile
+++ b/src/gallium/drivers/i915simple/Makefile
@@ -5,6 +5,7 @@ LIBNAME = i915simple
C_SOURCES = \
i915_blit.c \
+ i915_buffer.c \
i915_clear.c \
i915_flush.c \
i915_context.c \
diff --git a/src/gallium/drivers/i915simple/SConscript b/src/gallium/drivers/i915simple/SConscript
index 2366e1247f2..778c4ed0fde 100644
--- a/src/gallium/drivers/i915simple/SConscript
+++ b/src/gallium/drivers/i915simple/SConscript
@@ -6,6 +6,7 @@ i915simple = env.ConvenienceLibrary(
target = 'i915simple',
source = [
'i915_blit.c',
+ 'i915_buffer.c',
'i915_clear.c',
'i915_context.c',
'i915_debug.c',
diff --git a/src/gallium/drivers/i915simple/i915_batch.h b/src/gallium/drivers/i915simple/i915_batch.h
index c6e68ea38a2..b813784723f 100644
--- a/src/gallium/drivers/i915simple/i915_batch.h
+++ b/src/gallium/drivers/i915simple/i915_batch.h
@@ -28,89 +28,20 @@
#ifndef I915_BATCH_H
#define I915_BATCH_H
-#include "i915_winsys.h"
+#include "intel_batchbuffer.h"
-struct i915_batchbuffer
-{
- struct pipe_buffer *buffer;
- struct i915_winsys *winsys;
+#define BEGIN_BATCH(dwords, relocs) \
+ (intel_batchbuffer_check(i915->batch, dwords, relocs))
- unsigned char *map;
- unsigned char *ptr;
+#define OUT_BATCH(dword) \
+ intel_batchbuffer_dword(i915->batch, dword)
- size_t size;
- size_t actual_size;
+#define OUT_RELOC(buf, usage, offset) \
+ intel_batchbuffer_reloc(i915->batch, buf, usage, offset)
- size_t relocs;
- size_t max_relocs;
-};
-
-static INLINE boolean
-i915_batchbuffer_check( struct i915_batchbuffer *batch,
- size_t dwords,
- size_t relocs )
-{
- return dwords * 4 <= batch->size - (batch->ptr - batch->map) &&
- relocs <= (batch->max_relocs - batch->relocs);
-}
-
-static INLINE size_t
-i915_batchbuffer_space( struct i915_batchbuffer *batch )
-{
- return batch->size - (batch->ptr - batch->map);
-}
-
-static INLINE void
-i915_batchbuffer_dword( struct i915_batchbuffer *batch,
- unsigned dword )
-{
- if (i915_batchbuffer_space(batch) < 4)
- return;
-
- *(unsigned *)batch->ptr = dword;
- batch->ptr += 4;
-}
-
-static INLINE void
-i915_batchbuffer_write( struct i915_batchbuffer *batch,
- void *data,
- size_t size )
-{
- if (i915_batchbuffer_space(batch) < size)
- return;
-
- memcpy(data, batch->ptr, size);
- batch->ptr += size;
-}
-
-static INLINE void
-i915_batchbuffer_reloc( struct i915_batchbuffer *batch,
- struct pipe_buffer *buffer,
- size_t flags,
- size_t offset )
-{
- batch->winsys->batch_reloc( batch->winsys, buffer, flags, offset );
-}
-
-static INLINE void
-i915_batchbuffer_flush( struct i915_batchbuffer *batch,
- struct pipe_fence_handle **fence )
-{
- batch->winsys->batch_flush( batch->winsys, fence );
-}
-
-#define BEGIN_BATCH( dwords, relocs ) \
- (i915_batchbuffer_check( i915->batch, dwords, relocs ))
-
-#define OUT_BATCH( dword ) \
- i915_batchbuffer_dword( i915->batch, dword )
-
-#define OUT_RELOC( buf, flags, delta ) \
- i915_batchbuffer_reloc( i915->batch, buf, flags, delta )
-
-#define FLUSH_BATCH(fence) do { \
- i915->winsys->batch_flush( i915->winsys, fence ); \
- i915->hardware_dirty = ~0; \
+#define FLUSH_BATCH(fence) do { \
+ intel_batchbuffer_flush(i915->batch, fence); \
+ i915->hardware_dirty = ~0; \
} while (0)
#endif
diff --git a/src/gallium/drivers/i915simple/i915_blit.c b/src/gallium/drivers/i915simple/i915_blit.c
index 448a4708ce8..83dfc335288 100644
--- a/src/gallium/drivers/i915simple/i915_blit.c
+++ b/src/gallium/drivers/i915simple/i915_blit.c
@@ -26,8 +26,6 @@
**************************************************************************/
-#include "i915_context.h"
-#include "i915_winsys.h"
#include "i915_blit.h"
#include "i915_reg.h"
#include "i915_batch.h"
@@ -37,33 +35,33 @@
void
i915_fill_blit(struct i915_context *i915,
- unsigned cpp,
- unsigned short dst_pitch,
- struct pipe_buffer *dst_buffer,
- unsigned dst_offset,
- short x, short y,
- short w, short h,
- unsigned color)
+ unsigned cpp,
+ unsigned short dst_pitch,
+ struct intel_buffer *dst_buffer,
+ unsigned dst_offset,
+ short x, short y,
+ short w, short h,
+ unsigned color)
{
unsigned BR13, CMD;
I915_DBG(i915,
- "%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
- __FUNCTION__,
- dst_buffer, dst_pitch, dst_offset, x, y, w, h);
+ "%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
+ __FUNCTION__,
+ dst_buffer, dst_pitch, dst_offset, x, y, w, h);
switch (cpp) {
case 1:
case 2:
case 3:
BR13 = (((int) dst_pitch) & 0xffff) |
- (0xF0 << 16) | (1 << 24);
+ (0xF0 << 16) | (1 << 24);
CMD = XY_COLOR_BLT_CMD;
break;
case 4:
BR13 = (((int) dst_pitch) & 0xffff) |
- (0xF0 << 16) | (1 << 24) | (1 << 25);
+ (0xF0 << 16) | (1 << 24) | (1 << 25);
CMD = (XY_COLOR_BLT_CMD | XY_COLOR_BLT_WRITE_ALPHA |
XY_COLOR_BLT_WRITE_RGB);
break;
@@ -79,25 +77,24 @@ i915_fill_blit(struct i915_context *i915,
OUT_BATCH(BR13);
OUT_BATCH((y << 16) | x);
OUT_BATCH(((y + h) << 16) | (x + w));
- OUT_RELOC( dst_buffer, I915_BUFFER_ACCESS_WRITE, dst_offset);
+ OUT_RELOC(dst_buffer, INTEL_USAGE_2D_TARGET, dst_offset);
OUT_BATCH(color);
FLUSH_BATCH(NULL);
}
-
void
-i915_copy_blit( struct i915_context *i915,
- unsigned do_flip,
- unsigned cpp,
- unsigned short src_pitch,
- struct pipe_buffer *src_buffer,
- unsigned src_offset,
- unsigned short dst_pitch,
- struct pipe_buffer *dst_buffer,
- unsigned dst_offset,
- short src_x, short src_y,
- short dst_x, short dst_y,
- short w, short h )
+i915_copy_blit(struct i915_context *i915,
+ unsigned do_flip,
+ unsigned cpp,
+ unsigned short src_pitch,
+ struct intel_buffer *src_buffer,
+ unsigned src_offset,
+ unsigned short dst_pitch,
+ struct intel_buffer *dst_buffer,
+ unsigned dst_offset,
+ short src_x, short src_y,
+ short dst_x, short dst_y,
+ short w, short h)
{
unsigned CMD, BR13;
int dst_y2 = dst_y + h;
@@ -105,32 +102,30 @@ i915_copy_blit( struct i915_context *i915,
I915_DBG(i915,
- "%s src:buf(%p)/%d+%d %d,%d dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
- __FUNCTION__,
- src_buffer, src_pitch, src_offset, src_x, src_y,
- dst_buffer, dst_pitch, dst_offset, dst_x, dst_y, w, h);
+ "%s src:buf(%p)/%d+%d %d,%d dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n",
+ __FUNCTION__,
+ src_buffer, src_pitch, src_offset, src_x, src_y,
+ dst_buffer, dst_pitch, dst_offset, dst_x, dst_y, w, h);
switch (cpp) {
case 1:
case 2:
case 3:
BR13 = (((int) dst_pitch) & 0xffff) |
- (0xCC << 16) | (1 << 24);
+ (0xCC << 16) | (1 << 24);
CMD = XY_SRC_COPY_BLT_CMD;
break;
case 4:
BR13 = (((int) dst_pitch) & 0xffff) |
- (0xCC << 16) | (1 << 24) | (1 << 25);
- CMD =
- (XY_SRC_COPY_BLT_CMD | XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB);
+ (0xCC << 16) | (1 << 24) | (1 << 25);
+ CMD = (XY_SRC_COPY_BLT_CMD | XY_SRC_COPY_BLT_WRITE_ALPHA |
+ XY_SRC_COPY_BLT_WRITE_RGB);
break;
default:
return;
}
- if (dst_y2 < dst_y ||
- dst_x2 < dst_x) {
+ if (dst_y2 < dst_y || dst_x2 < dst_x) {
return;
}
@@ -140,7 +135,6 @@ i915_copy_blit( struct i915_context *i915,
*/
assert (dst_pitch > 0 && src_pitch > 0);
-
if (!BEGIN_BATCH(8, 2)) {
FLUSH_BATCH(NULL);
assert(BEGIN_BATCH(8, 2));
@@ -149,11 +143,9 @@ i915_copy_blit( struct i915_context *i915,
OUT_BATCH(BR13);
OUT_BATCH((dst_y << 16) | dst_x);
OUT_BATCH((dst_y2 << 16) | dst_x2);
- OUT_RELOC(dst_buffer, I915_BUFFER_ACCESS_WRITE, dst_offset);
+ OUT_RELOC(dst_buffer, INTEL_USAGE_2D_TARGET, dst_offset);
OUT_BATCH((src_y << 16) | src_x);
OUT_BATCH(((int) src_pitch & 0xffff));
- OUT_RELOC(src_buffer, I915_BUFFER_ACCESS_READ, src_offset);
+ OUT_RELOC(src_buffer, INTEL_USAGE_2D_SOURCE, src_offset);
FLUSH_BATCH(NULL);
}
-
-
diff --git a/src/gallium/drivers/i915simple/i915_blit.h b/src/gallium/drivers/i915simple/i915_blit.h
index 0bb34538611..8ce3220cfd9 100644
--- a/src/gallium/drivers/i915simple/i915_blit.h
+++ b/src/gallium/drivers/i915simple/i915_blit.h
@@ -32,24 +32,24 @@
extern void i915_copy_blit(struct i915_context *i915,
unsigned do_flip,
- unsigned cpp,
- unsigned short src_pitch,
- struct pipe_buffer *src_buffer,
- unsigned src_offset,
- unsigned short dst_pitch,
- struct pipe_buffer *dst_buffer,
- unsigned dst_offset,
- short srcx, short srcy,
- short dstx, short dsty,
- short w, short h );
+ unsigned cpp,
+ unsigned short src_pitch,
+ struct intel_buffer *src_buffer,
+ unsigned src_offset,
+ unsigned short dst_pitch,
+ struct intel_buffer *dst_buffer,
+ unsigned dst_offset,
+ short srcx, short srcy,
+ short dstx, short dsty,
+ short w, short h);
extern void i915_fill_blit(struct i915_context *i915,
- unsigned cpp,
- unsigned short dst_pitch,
- struct pipe_buffer *dst_buffer,
- unsigned dst_offset,
- short x, short y,
- short w, short h, unsigned color);
+ unsigned cpp,
+ unsigned short dst_pitch,
+ struct intel_buffer *dst_buffer,
+ unsigned dst_offset,
+ short x, short y,
+ short w, short h, unsigned color);
#endif
diff --git a/src/gallium/drivers/i915simple/i915_buffer.c b/src/gallium/drivers/i915simple/i915_buffer.c
new file mode 100644
index 00000000000..effeba12972
--- /dev/null
+++ b/src/gallium/drivers/i915simple/i915_buffer.c
@@ -0,0 +1,136 @@
+/**************************************************************************
+ *
+ * Copyright © 2009 Jakob Bornecrantz
+ *
+ * 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.
+ *
+ **************************************************************************/
+
+#include "util/u_memory.h"
+#include "i915_screen.h"
+#include "i915_buffer.h"
+
+struct intel_buffer;
+
+struct i915_buffer
+{
+ struct pipe_buffer base;
+
+ struct intel_buffer *ibuf; /** hw buffer */
+
+ void *data; /**< user and malloc data */
+ boolean own; /**< we own the data incase of malloc */
+};
+
+static INLINE struct i915_buffer *
+i915_buffer(struct pipe_buffer *buffer)
+{
+ return (struct i915_buffer *)buffer;
+}
+
+static struct pipe_buffer *
+i915_buffer_create(struct pipe_screen *screen,
+ unsigned alignment,
+ unsigned usage,
+ unsigned size)
+{
+ struct i915_buffer *buf = CALLOC_STRUCT(i915_buffer);
+
+ if (!buf)
+ return NULL;
+
+ pipe_reference_init(&buf->base.reference, 1);
+ buf->base.alignment = alignment;
+ buf->base.screen = screen;
+ buf->base.usage = usage;
+ buf->base.size = size;
+ buf->data = MALLOC(size);
+ buf->own = TRUE;
+
+ if (!buf->data)
+ goto err;
+
+ return &buf->base;
+
+err:
+ FREE(buf);
+ return NULL;
+}
+
+static struct pipe_buffer *
+i915_user_buffer_create(struct pipe_screen *screen,
+ void *ptr,
+ unsigned bytes)
+{
+ struct i915_buffer *buf = CALLOC_STRUCT(i915_buffer);
+
+ if (!buf)
+ return NULL;
+
+ pipe_reference_init(&buf->base.reference, 1);
+ buf->base.alignment = 0;
+ buf->base.screen = screen;
+ buf->base.usage = 0;
+ buf->base.size = bytes;
+ buf->data = ptr;
+ buf->own = FALSE;
+
+ return &buf->base;
+}
+
+static void *
+i915_buffer_map(struct pipe_screen *screen,
+ struct pipe_buffer *buffer,
+ unsigned usage)
+{
+ struct i915_buffer *buf = i915_buffer(buffer);
+ assert(!buf->ibuf);
+ return buf->data;
+}
+
+static void
+i915_buffer_unmap(struct pipe_screen *screen,
+ struct pipe_buffer *buffer)
+{
+ struct i915_buffer *buf = i915_buffer(buffer);
+ assert(!buf->ibuf);
+}
+
+static void
+i915_buffer_destroy(struct pipe_buffer *buffer)
+{
+ struct i915_buffer *buf = i915_buffer(buffer);
+ assert(!buf->ibuf);
+
+ if (buf->own)
+ FREE(buf->data);
+ FREE(buf);
+}
+
+void i915_init_screen_buffer_functions(struct i915_screen *screen)
+{
+ screen->base.buffer_create = i915_buffer_create;
+ screen->base.user_buffer_create = i915_user_buffer_create;
+ screen->base.buffer_map = i915_buffer_map;
+ screen->base.buffer_map_range = NULL;
+ screen->base.buffer_flush_mapped_range = NULL;
+ screen->base.buffer_unmap = i915_buffer_unmap;
+ screen->base.buffer_destroy = i915_buffer_destroy;
+}
diff --git a/src/gallium/drivers/i915simple/i915_buffer.h b/src/gallium/drivers/i915simple/i915_buffer.h
new file mode 100644
index 00000000000..80fda7c62fd
--- /dev/null
+++ b/src/gallium/drivers/i915simple/i915_buffer.h
@@ -0,0 +1,31 @@
+/**************************************************************************
+ *
+ * Copyright © 2009 Jakob Bornecrantz
+ *
+ * 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.
+ *
+ **************************************************************************/
+
+#ifndef I915_BUFFER_H
+#define I915_BUFFER_H
+
+void i915_init_screen_buffer_functions(struct i915_screen *screen);
+
+#endif
diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c
index bf69c8e9f53..b43f7352456 100644
--- a/src/gallium/drivers/i915simple/i915_context.c
+++ b/src/gallium/drivers/i915simple/i915_context.c
@@ -26,8 +26,8 @@
**************************************************************************/
#include "i915_context.h"
-#include "i915_winsys.h"
#include "i915_state.h"
+#include "i915_screen.h"
#include "i915_batch.h"
#include "i915_texture.h"
#include "i915_reg.h"
@@ -40,66 +40,58 @@
#include "pipe/p_screen.h"
-static void i915_destroy( struct pipe_context *pipe )
-{
- struct i915_context *i915 = i915_context( pipe );
-
- draw_destroy( i915->draw );
-
- if(i915->winsys->destroy)
- i915->winsys->destroy(i915->winsys);
-
- FREE( i915 );
-}
+/*
+ * Draw functions
+ */
static boolean
i915_draw_range_elements(struct pipe_context *pipe,
- struct pipe_buffer *indexBuffer,
- unsigned indexSize,
- unsigned min_index,
- unsigned max_index,
- unsigned prim, unsigned start, unsigned count)
+ struct pipe_buffer *indexBuffer,
+ unsigned indexSize,
+ unsigned min_index,
+ unsigned max_index,
+ unsigned prim, unsigned start, unsigned count)
{
- struct i915_context *i915 = i915_context( pipe );
+ struct i915_context *i915 = i915_context(pipe);
struct draw_context *draw = i915->draw;
unsigned i;
if (i915->dirty)
- i915_update_derived( i915 );
+ i915_update_derived(i915);
/*
* Map vertex buffers
*/
for (i = 0; i < i915->num_vertex_buffers; i++) {
- void *buf
- = pipe_buffer_map(pipe->screen,
- i915->vertex_buffer[i].buffer,
- PIPE_BUFFER_USAGE_CPU_READ);
+ void *buf = pipe_buffer_map(pipe->screen, i915->vertex_buffer[i].buffer,
+ PIPE_BUFFER_USAGE_CPU_READ);
draw_set_mapped_vertex_buffer(draw, i, buf);
}
- /* Map index buffer, if present */
+
+ /*
+ * Map index buffer, if present
+ */
if (indexBuffer) {
- void *mapped_indexes
- = pipe_buffer_map(pipe->screen, indexBuffer,
- PIPE_BUFFER_USAGE_CPU_READ);
+ void *mapped_indexes = pipe_buffer_map(pipe->screen, indexBuffer,
+ PIPE_BUFFER_USAGE_CPU_READ);
draw_set_mapped_element_buffer_range(draw, indexSize,
- min_index,
- max_index,
- mapped_indexes);
- }
- else {
- /* no index/element buffer */
+ min_index,
+ max_index,
+ mapped_indexes);
+ } else {
draw_set_mapped_element_buffer(draw, 0, NULL);
}
draw_set_mapped_constant_buffer(draw,
i915->current.constants[PIPE_SHADER_VERTEX],
- ( i915->current.num_user_constants[PIPE_SHADER_VERTEX] *
- 4 * sizeof(float) ));
+ (i915->current.num_user_constants[PIPE_SHADER_VERTEX] *
+ 4 * sizeof(float)));
- /* draw! */
+ /*
+ * Do the drawing
+ */
draw_arrays(i915->draw, prim, start, count);
/*
@@ -109,6 +101,7 @@ i915_draw_range_elements(struct pipe_context *pipe,
pipe_buffer_unmap(pipe->screen, i915->vertex_buffer[i].buffer);
draw_set_mapped_vertex_buffer(draw, i, NULL);
}
+
if (indexBuffer) {
pipe_buffer_unmap(pipe->screen, indexBuffer);
draw_set_mapped_element_buffer_range(draw, 0, start, start + count - 1, NULL);
@@ -118,28 +111,34 @@ i915_draw_range_elements(struct pipe_context *pipe,
}
static boolean
-i915_draw_elements( struct pipe_context *pipe,
- struct pipe_buffer *indexBuffer,
- unsigned indexSize,
- unsigned prim, unsigned start, unsigned count)
+i915_draw_elements(struct pipe_context *pipe,
+ struct pipe_buffer *indexBuffer,
+ unsigned indexSize,
+ unsigned prim, unsigned start, unsigned count)
{
- return i915_draw_range_elements( pipe, indexBuffer,
- indexSize,
- 0, 0xffffffff,
- prim, start, count );
+ return i915_draw_range_elements(pipe, indexBuffer,
+ indexSize,
+ 0, 0xffffffff,
+ prim, start, count);
}
-static boolean i915_draw_arrays( struct pipe_context *pipe,
- unsigned prim, unsigned start, unsigned count)
+static boolean
+i915_draw_arrays(struct pipe_context *pipe,
+ unsigned prim, unsigned start, unsigned count)
{
return i915_draw_elements(pipe, NULL, 0, prim, start, count);
}
+/*
+ * Is referenced functions
+ */
+
+
static unsigned int
-i915_is_texture_referenced( struct pipe_context *pipe,
- struct pipe_texture *texture,
- unsigned face, unsigned level)
+i915_is_texture_referenced(struct pipe_context *pipe,
+ struct pipe_texture *texture,
+ unsigned face, unsigned level)
{
/**
* FIXME: Return the corrent result. We can't alays return referenced
@@ -153,8 +152,8 @@ i915_is_texture_referenced( struct pipe_context *pipe,
}
static unsigned int
-i915_is_buffer_referenced( struct pipe_context *pipe,
- struct pipe_buffer *buf)
+i915_is_buffer_referenced(struct pipe_context *pipe,
+ struct pipe_buffer *buf)
{
/**
* FIXME: Return the corrent result. We can't alays return referenced
@@ -168,9 +167,25 @@ i915_is_buffer_referenced( struct pipe_context *pipe,
}
-struct pipe_context *i915_create_context( struct pipe_screen *screen,
- struct pipe_winsys *pipe_winsys,
- struct i915_winsys *i915_winsys )
+/*
+ * Generic context functions
+ */
+
+
+static void i915_destroy(struct pipe_context *pipe)
+{
+ struct i915_context *i915 = i915_context(pipe);
+
+ draw_destroy(i915->draw);
+
+ if(i915->batch)
+ i915->iws->batchbuffer_destroy(i915->batch);
+
+ FREE(i915);
+}
+
+struct pipe_context *
+i915_create_context(struct pipe_screen *screen)
{
struct i915_context *i915;
@@ -178,21 +193,20 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
if (i915 == NULL)
return NULL;
- i915->winsys = i915_winsys;
- i915->pipe.winsys = pipe_winsys;
- i915->pipe.screen = screen;
+ i915->iws = i915_screen(screen)->iws;
+ i915->base.winsys = NULL;
+ i915->base.screen = screen;
- i915->pipe.destroy = i915_destroy;
+ i915->base.destroy = i915_destroy;
- i915->pipe.clear = i915_clear;
+ i915->base.clear = i915_clear;
+ i915->base.draw_arrays = i915_draw_arrays;
+ i915->base.draw_elements = i915_draw_elements;
+ i915->base.draw_range_elements = i915_draw_range_elements;
- i915->pipe.draw_arrays = i915_draw_arrays;
- i915->pipe.draw_elements = i915_draw_elements;
- i915->pipe.draw_range_elements = i915_draw_range_elements;
-
- i915->pipe.is_texture_referenced = i915_is_texture_referenced;
- i915->pipe.is_buffer_referenced = i915_is_buffer_referenced;
+ i915->base.is_texture_referenced = i915_is_texture_referenced;
+ i915->base.is_buffer_referenced = i915_is_buffer_referenced;
/*
* Create drawing context and plug our rendering stage into it.
@@ -201,27 +215,23 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen,
assert(i915->draw);
if (!debug_get_bool_option("I915_NO_VBUF", FALSE)) {
draw_set_rasterize_stage(i915->draw, i915_draw_vbuf_stage(i915));
- }
- else {
+ } else {
draw_set_rasterize_stage(i915->draw, i915_draw_render_stage(i915));
}
i915_init_surface_functions(i915);
i915_init_state_functions(i915);
i915_init_flush_functions(i915);
- i915_init_texture_functions(i915);
- draw_install_aaline_stage(i915->draw, &i915->pipe);
- draw_install_aapoint_stage(i915->draw, &i915->pipe);
+ draw_install_aaline_stage(i915->draw, &i915->base);
+ draw_install_aapoint_stage(i915->draw, &i915->base);
i915->dirty = ~0;
i915->hardware_dirty = ~0;
/* Batch stream debugging is a bit hacked up at the moment:
*/
- i915->batch = i915_winsys->batch_get(i915_winsys);
- i915->batch->winsys = i915_winsys;
+ i915->batch = i915->iws->batchbuffer_create(i915->iws);
- return &i915->pipe;
+ return &i915->base;
}
-
diff --git a/src/gallium/drivers/i915simple/i915_context.h b/src/gallium/drivers/i915simple/i915_context.h
index b6983ba86e7..234b441ce6e 100644
--- a/src/gallium/drivers/i915simple/i915_context.h
+++ b/src/gallium/drivers/i915simple/i915_context.h
@@ -38,6 +38,11 @@
#include "tgsi/tgsi_scan.h"
+struct intel_winsys;
+struct intel_buffer;
+struct intel_batchbuffer;
+
+
#define I915_TEX_UNITS 8
#define I915_DYNAMIC_MODES4 0
@@ -182,7 +187,6 @@ struct i915_sampler_state {
unsigned maxlod;
};
-
struct i915_texture {
struct pipe_texture base;
@@ -192,7 +196,8 @@ struct i915_texture {
unsigned depth_stride; /* per-image on i945? */
unsigned total_nblocksy;
- unsigned tiled;
+ unsigned sw_tiled; /**< tiled with software flags */
+ unsigned hw_tiled; /**< tiled with hardware fences */
unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];
@@ -206,15 +211,15 @@ struct i915_texture {
/* The data is held here:
*/
- struct pipe_buffer *buffer;
+ struct intel_buffer *buffer;
};
-struct i915_batchbuffer;
-
struct i915_context
{
- struct pipe_context pipe;
- struct i915_winsys *winsys;
+ struct pipe_context base;
+
+ struct intel_winsys *iws;
+
struct draw_context *draw;
/* The most recent drawing state as set by the driver:
@@ -243,10 +248,10 @@ struct i915_context
unsigned num_vertex_elements;
unsigned num_vertex_buffers;
- struct i915_batchbuffer *batch;
+ struct intel_batchbuffer *batch;
/** Vertex buffer */
- struct pipe_buffer *vbo;
+ struct intel_buffer *vbo;
size_t vbo_offset;
unsigned vbo_flushed;
diff --git a/src/gallium/drivers/i915simple/i915_debug.c b/src/gallium/drivers/i915simple/i915_debug.c
index e08582efaba..ce92d1af9a7 100644
--- a/src/gallium/drivers/i915simple/i915_debug.c
+++ b/src/gallium/drivers/i915simple/i915_debug.c
@@ -27,7 +27,6 @@
#include "i915_reg.h"
#include "i915_context.h"
-#include "i915_winsys.h"
#include "i915_debug.h"
#include "i915_batch.h"
#include "pipe/internal/p_winsys_screen.h"
@@ -864,7 +863,7 @@ static boolean i915_debug_packet( struct debug_stream *stream )
void
-i915_dump_batchbuffer( struct i915_batchbuffer *batch )
+i915_dump_batchbuffer( struct intel_batchbuffer *batch )
{
struct debug_stream stream;
unsigned *start = (unsigned*)batch->map;
diff --git a/src/gallium/drivers/i915simple/i915_debug.h b/src/gallium/drivers/i915simple/i915_debug.h
index 16ca7277c7a..dd9b86e17b5 100644
--- a/src/gallium/drivers/i915simple/i915_debug.h
+++ b/src/gallium/drivers/i915simple/i915_debug.h
@@ -104,9 +104,9 @@ I915_DBG(
#endif
-struct i915_batchbuffer;
+struct intel_batchbuffer;
-void i915_dump_batchbuffer( struct i915_batchbuffer *i915 );
+void i915_dump_batchbuffer( struct intel_batchbuffer *i915 );
void i915_debug_init( struct i915_context *i915 );
diff --git a/src/gallium/drivers/i915simple/i915_flush.c b/src/gallium/drivers/i915simple/i915_flush.c
index 472e0ab7740..1582168eba5 100644
--- a/src/gallium/drivers/i915simple/i915_flush.c
+++ b/src/gallium/drivers/i915simple/i915_flush.c
@@ -45,6 +45,7 @@ static void i915_flush( struct pipe_context *pipe,
draw_flush(i915->draw);
+#if 0
/* Do we need to emit an MI_FLUSH command to flush the hardware
* caches?
*/
@@ -63,6 +64,13 @@ static void i915_flush( struct pipe_context *pipe,
}
OUT_BATCH( flush );
}
+#endif
+
+#if 0
+ if (i915->batch->map == i915->batch->ptr) {
+ return;
+ }
+#endif
/* If there are no flags, just flush pending commands to hardware:
*/
@@ -74,5 +82,5 @@ static void i915_flush( struct pipe_context *pipe,
void i915_init_flush_functions( struct i915_context *i915 )
{
- i915->pipe.flush = i915_flush;
+ i915->base.flush = i915_flush;
}
diff --git a/src/gallium/drivers/i915simple/i915_prim_emit.c b/src/gallium/drivers/i915simple/i915_prim_emit.c
index 8f1f58b2dd1..d9a5c40ab97 100644
--- a/src/gallium/drivers/i915simple/i915_prim_emit.c
+++ b/src/gallium/drivers/i915simple/i915_prim_emit.c
@@ -32,7 +32,6 @@
#include "util/u_pack_color.h"
#include "i915_context.h"
-#include "i915_winsys.h"
#include "i915_reg.h"
#include "i915_state.h"
#include "i915_batch.h"
diff --git a/src/gallium/drivers/i915simple/i915_prim_vbuf.c b/src/gallium/drivers/i915simple/i915_prim_vbuf.c
index 9bdd91f2881..508f4560e48 100644
--- a/src/gallium/drivers/i915simple/i915_prim_vbuf.c
+++ b/src/gallium/drivers/i915simple/i915_prim_vbuf.c
@@ -42,13 +42,11 @@
#include "draw/draw_vbuf.h"
#include "util/u_debug.h"
#include "pipe/p_inlines.h"
-#include "pipe/internal/p_winsys_screen.h"
#include "util/u_math.h"
#include "util/u_memory.h"
#include "i915_context.h"
#include "i915_reg.h"
-#include "i915_winsys.h"
#include "i915_batch.h"
#include "i915_state.h"
@@ -59,7 +57,7 @@
struct i915_vbuf_render {
struct vbuf_render base;
- struct i915_context *i915;
+ struct i915_context *i915;
/** Vertex size in bytes */
size_t vertex_size;
@@ -74,7 +72,7 @@ struct i915_vbuf_render {
unsigned fallback;
/* Stuff for the vbo */
- struct pipe_buffer *vbo;
+ struct intel_buffer *vbo;
size_t vbo_size;
size_t vbo_offset;
void *vbo_ptr;
@@ -87,36 +85,34 @@ struct i915_vbuf_render {
* Basically a cast wrapper.
*/
static INLINE struct i915_vbuf_render *
-i915_vbuf_render( struct vbuf_render *render )
+i915_vbuf_render(struct vbuf_render *render)
{
assert(render);
return (struct i915_vbuf_render *)render;
}
-
static const struct vertex_info *
-i915_vbuf_render_get_vertex_info( struct vbuf_render *render )
+i915_vbuf_render_get_vertex_info(struct vbuf_render *render)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
if (i915->dirty) {
/* make sure we have up to date vertex layout */
- i915_update_derived( i915 );
+ i915_update_derived(i915);
}
return &i915->current.vertex_info;
}
-
static boolean
-i915_vbuf_render_allocate_vertices( struct vbuf_render *render,
- ushort vertex_size,
- ushort nr_vertices )
+i915_vbuf_render_allocate_vertices(struct vbuf_render *render,
+ ushort vertex_size,
+ ushort nr_vertices)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
- struct pipe_screen *screen = i915->pipe.screen;
+ struct intel_winsys *iws = i915->iws;
size_t size = (size_t)vertex_size * (size_t)nr_vertices;
/* FIXME: handle failure */
@@ -125,17 +121,17 @@ i915_vbuf_render_allocate_vertices( struct vbuf_render *render,
if (i915_render->vbo_size > size + i915_render->vbo_offset && !i915->vbo_flushed) {
} else {
i915->vbo_flushed = 0;
- if (i915_render->vbo)
- pipe_buffer_reference(&i915_render->vbo, NULL);
+ if (i915_render->vbo) {
+ iws->buffer_destroy(iws, i915_render->vbo);
+ i915_render->vbo = NULL;
+ }
}
if (!i915_render->vbo) {
i915_render->vbo_size = MAX2(size, i915_render->vbo_alloc_size);
i915_render->vbo_offset = 0;
- i915_render->vbo = pipe_buffer_create(screen,
- 64,
- I915_BUFFER_USAGE_LIT_VERTEX,
- i915_render->vbo_size);
+ i915_render->vbo = iws->buffer_create(iws, i915_render->vbo_size, 64,
+ INTEL_NEW_VERTEX);
}
@@ -149,40 +145,37 @@ i915_vbuf_render_allocate_vertices( struct vbuf_render *render,
return TRUE;
}
-
static void *
-i915_vbuf_render_map_vertices( struct vbuf_render *render )
+i915_vbuf_render_map_vertices(struct vbuf_render *render)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
- struct pipe_screen *screen = i915->pipe.screen;
+ struct intel_winsys *iws = i915->iws;
if (i915->vbo_flushed)
debug_printf("%s bad vbo flush occured stalling on hw\n");
- i915_render->vbo_ptr = pipe_buffer_map(screen,
- i915_render->vbo,
- PIPE_BUFFER_USAGE_CPU_WRITE);
+ i915_render->vbo_ptr = iws->buffer_map(iws, i915_render->vbo, TRUE);
return (unsigned char *)i915_render->vbo_ptr + i915->vbo_offset;
}
static void
-i915_vbuf_render_unmap_vertices( struct vbuf_render *render,
- ushort min_index,
- ushort max_index )
+i915_vbuf_render_unmap_vertices(struct vbuf_render *render,
+ ushort min_index,
+ ushort max_index)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
- struct pipe_screen *screen = i915->pipe.screen;
+ struct intel_winsys *iws = i915->iws;
i915_render->vbo_max_used = MAX2(i915_render->vbo_max_used, i915_render->vertex_size * (max_index + 1));
- pipe_buffer_unmap(screen, i915_render->vbo);
+ iws->buffer_unmap(iws, i915_render->vbo);
}
static boolean
-i915_vbuf_render_set_primitive( struct vbuf_render *render,
- unsigned prim )
+i915_vbuf_render_set_primitive(struct vbuf_render *render,
+ unsigned prim)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
i915_render->prim = prim;
@@ -234,15 +227,13 @@ i915_vbuf_render_set_primitive( struct vbuf_render *render,
}
}
-
-
/**
* Used for fallbacks in draw_arrays
*/
static void
-draw_arrays_generate_indices( struct vbuf_render *render,
- unsigned start, uint nr,
- unsigned type )
+draw_arrays_generate_indices(struct vbuf_render *render,
+ unsigned start, uint nr,
+ unsigned type)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
@@ -251,29 +242,29 @@ draw_arrays_generate_indices( struct vbuf_render *render,
switch(type) {
case 0:
for (i = start; i+1 < end; i += 2)
- OUT_BATCH( (i+0) | (i+1) << 16 );
+ OUT_BATCH((i+0) | (i+1) << 16);
if (i < end)
- OUT_BATCH( i );
+ OUT_BATCH(i);
break;
case PIPE_PRIM_LINE_LOOP:
if (nr >= 2) {
- for (i = start + 1; i < end; i++)
- OUT_BATCH( (i-0) | (i+0) << 16 );
- OUT_BATCH( (i-0) | ( start) << 16 );
+ for (i = start + 1; i < end; i++)
+ OUT_BATCH((i-0) | (i+0) << 16);
+ OUT_BATCH((i-0) | ( start) << 16);
}
break;
case PIPE_PRIM_QUADS:
for (i = start; i + 3 < end; i += 4) {
- OUT_BATCH( (i+0) | (i+1) << 16 );
- OUT_BATCH( (i+3) | (i+1) << 16 );
- OUT_BATCH( (i+2) | (i+3) << 16 );
+ OUT_BATCH((i+0) | (i+1) << 16);
+ OUT_BATCH((i+3) | (i+1) << 16);
+ OUT_BATCH((i+2) | (i+3) << 16);
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = start; i + 3 < end; i += 2) {
- OUT_BATCH( (i+0) | (i+1) << 16 );
- OUT_BATCH( (i+3) | (i+2) << 16 );
- OUT_BATCH( (i+0) | (i+3) << 16 );
+ OUT_BATCH((i+0) | (i+1) << 16);
+ OUT_BATCH((i+3) | (i+2) << 16);
+ OUT_BATCH((i+0) | (i+3) << 16);
}
break;
default:
@@ -282,16 +273,16 @@ draw_arrays_generate_indices( struct vbuf_render *render,
}
static unsigned
-draw_arrays_calc_nr_indices( uint nr, unsigned type )
+draw_arrays_calc_nr_indices(uint nr, unsigned type)
{
switch (type) {
case 0:
return nr;
case PIPE_PRIM_LINE_LOOP:
if (nr >= 2)
- return nr * 2;
+ return nr * 2;
else
- return 0;
+ return 0;
case PIPE_PRIM_QUADS:
return (nr / 4) * 6;
case PIPE_PRIM_QUAD_STRIP:
@@ -303,64 +294,64 @@ draw_arrays_calc_nr_indices( uint nr, unsigned type )
}
static void
-draw_arrays_fallback( struct vbuf_render *render,
- unsigned start,
- uint nr )
+draw_arrays_fallback(struct vbuf_render *render,
+ unsigned start,
+ uint nr)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
unsigned nr_indices;
if (i915->dirty)
- i915_update_derived( i915 );
+ i915_update_derived(i915);
if (i915->hardware_dirty)
- i915_emit_hardware_state( i915 );
+ i915_emit_hardware_state(i915);
- nr_indices = draw_arrays_calc_nr_indices( nr, i915_render->fallback );
+ nr_indices = draw_arrays_calc_nr_indices(nr, i915_render->fallback);
if (!nr_indices)
return;
- if (!BEGIN_BATCH( 1 + (nr_indices + 1)/2, 1 )) {
+ if (!BEGIN_BATCH(1 + (nr_indices + 1)/2, 1)) {
FLUSH_BATCH(NULL);
/* Make sure state is re-emitted after a flush:
*/
- i915_update_derived( i915 );
- i915_emit_hardware_state( i915 );
+ i915_update_derived(i915);
+ i915_emit_hardware_state(i915);
i915->vbo_flushed = 1;
- if (!BEGIN_BATCH( 1 + (nr_indices + 1)/2, 1 )) {
- assert(0);
- goto out;
+ if (!BEGIN_BATCH(1 + (nr_indices + 1)/2, 1)) {
+ assert(0);
+ goto out;
}
}
- OUT_BATCH( _3DPRIMITIVE |
- PRIM_INDIRECT |
- i915_render->hwprim |
- PRIM_INDIRECT_ELTS |
- nr_indices );
+ OUT_BATCH(_3DPRIMITIVE |
+ PRIM_INDIRECT |
+ i915_render->hwprim |
+ PRIM_INDIRECT_ELTS |
+ nr_indices);
- draw_arrays_generate_indices( render, start, nr, i915_render->fallback );
+ draw_arrays_generate_indices(render, start, nr, i915_render->fallback);
out:
return;
}
static void
-i915_vbuf_render_draw_arrays( struct vbuf_render *render,
- unsigned start,
- uint nr )
+i915_vbuf_render_draw_arrays(struct vbuf_render *render,
+ unsigned start,
+ uint nr)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
if (i915_render->fallback) {
- draw_arrays_fallback( render, start, nr );
+ draw_arrays_fallback(render, start, nr);
return;
}
/* JB: TODO submit direct cmds */
- draw_arrays_fallback( render, start, nr );
+ draw_arrays_fallback(render, start, nr);
}
/**
@@ -368,10 +359,10 @@ i915_vbuf_render_draw_arrays( struct vbuf_render *render,
* If type is zero normal operation assumed.
*/
static void
-draw_generate_indices( struct vbuf_render *render,
- const ushort *indices,
- uint nr_indices,
- unsigned type )
+draw_generate_indices(struct vbuf_render *render,
+ const ushort *indices,
+ uint nr_indices,
+ unsigned type)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
@@ -380,31 +371,31 @@ draw_generate_indices( struct vbuf_render *render,
switch(type) {
case 0:
for (i = 0; i + 1 < nr_indices; i += 2) {
- OUT_BATCH( indices[i] | indices[i+1] << 16 );
+ OUT_BATCH(indices[i] | indices[i+1] << 16);
}
if (i < nr_indices) {
- OUT_BATCH( indices[i] );
+ OUT_BATCH(indices[i]);
}
break;
case PIPE_PRIM_LINE_LOOP:
if (nr_indices >= 2) {
- for (i = 1; i < nr_indices; i++)
- OUT_BATCH( indices[i-1] | indices[i] << 16 );
- OUT_BATCH( indices[i-1] | indices[0] << 16 );
+ for (i = 1; i < nr_indices; i++)
+ OUT_BATCH(indices[i-1] | indices[i] << 16);
+ OUT_BATCH(indices[i-1] | indices[0] << 16);
}
break;
case PIPE_PRIM_QUADS:
for (i = 0; i + 3 < nr_indices; i += 4) {
- OUT_BATCH( indices[i+0] | indices[i+1] << 16 );
- OUT_BATCH( indices[i+3] | indices[i+1] << 16 );
- OUT_BATCH( indices[i+2] | indices[i+3] << 16 );
+ OUT_BATCH(indices[i+0] | indices[i+1] << 16);
+ OUT_BATCH(indices[i+3] | indices[i+1] << 16);
+ OUT_BATCH(indices[i+2] | indices[i+3] << 16);
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 0; i + 3 < nr_indices; i += 2) {
- OUT_BATCH( indices[i+0] | indices[i+1] << 16 );
- OUT_BATCH( indices[i+3] | indices[i+2] << 16 );
- OUT_BATCH( indices[i+0] | indices[i+3] << 16 );
+ OUT_BATCH(indices[i+0] | indices[i+1] << 16);
+ OUT_BATCH(indices[i+3] | indices[i+2] << 16);
+ OUT_BATCH(indices[i+0] | indices[i+3] << 16);
}
break;
default:
@@ -414,16 +405,16 @@ draw_generate_indices( struct vbuf_render *render,
}
static unsigned
-draw_calc_nr_indices( uint nr_indices, unsigned type )
+draw_calc_nr_indices(uint nr_indices, unsigned type)
{
switch (type) {
case 0:
return nr_indices;
case PIPE_PRIM_LINE_LOOP:
if (nr_indices >= 2)
- return nr_indices * 2;
+ return nr_indices * 2;
else
- return 0;
+ return 0;
case PIPE_PRIM_QUADS:
return (nr_indices / 4) * 6;
case PIPE_PRIM_QUAD_STRIP:
@@ -435,9 +426,9 @@ draw_calc_nr_indices( uint nr_indices, unsigned type )
}
static void
-i915_vbuf_render_draw( struct vbuf_render *render,
- const ushort *indices,
- uint nr_indices)
+i915_vbuf_render_draw(struct vbuf_render *render,
+ const ushort *indices,
+ uint nr_indices)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
@@ -445,48 +436,47 @@ i915_vbuf_render_draw( struct vbuf_render *render,
save_nr_indices = nr_indices;
- nr_indices = draw_calc_nr_indices( nr_indices, i915_render->fallback );
+ nr_indices = draw_calc_nr_indices(nr_indices, i915_render->fallback);
if (!nr_indices)
return;
if (i915->dirty)
- i915_update_derived( i915 );
+ i915_update_derived(i915);
if (i915->hardware_dirty)
- i915_emit_hardware_state( i915 );
+ i915_emit_hardware_state(i915);
- if (!BEGIN_BATCH( 1 + (nr_indices + 1)/2, 1 )) {
+ if (!BEGIN_BATCH(1 + (nr_indices + 1)/2, 1)) {
FLUSH_BATCH(NULL);
/* Make sure state is re-emitted after a flush:
*/
- i915_update_derived( i915 );
- i915_emit_hardware_state( i915 );
+ i915_update_derived(i915);
+ i915_emit_hardware_state(i915);
i915->vbo_flushed = 1;
- if (!BEGIN_BATCH( 1 + (nr_indices + 1)/2, 1 )) {
- assert(0);
- goto out;
+ if (!BEGIN_BATCH(1 + (nr_indices + 1)/2, 1)) {
+ assert(0);
+ goto out;
}
}
- OUT_BATCH( _3DPRIMITIVE |
- PRIM_INDIRECT |
- i915_render->hwprim |
- PRIM_INDIRECT_ELTS |
- nr_indices );
- draw_generate_indices( render,
- indices,
- save_nr_indices,
- i915_render->fallback );
+ OUT_BATCH(_3DPRIMITIVE |
+ PRIM_INDIRECT |
+ i915_render->hwprim |
+ PRIM_INDIRECT_ELTS |
+ nr_indices);
+ draw_generate_indices(render,
+ indices,
+ save_nr_indices,
+ i915_render->fallback);
out:
return;
}
-
static void
-i915_vbuf_render_release_vertices( struct vbuf_render *render )
+i915_vbuf_render_release_vertices(struct vbuf_render *render)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
struct i915_context *i915 = i915_render->i915;
@@ -499,23 +489,21 @@ i915_vbuf_render_release_vertices( struct vbuf_render *render )
i915->dirty |= I915_NEW_VBO;
}
-
static void
-i915_vbuf_render_destroy( struct vbuf_render *render )
+i915_vbuf_render_destroy(struct vbuf_render *render)
{
struct i915_vbuf_render *i915_render = i915_vbuf_render(render);
FREE(i915_render);
}
-
/**
* Create a new primitive render.
*/
static struct vbuf_render *
-i915_vbuf_render_create( struct i915_context *i915 )
+i915_vbuf_render_create(struct i915_context *i915)
{
struct i915_vbuf_render *i915_render = CALLOC_STRUCT(i915_vbuf_render);
- struct pipe_screen *screen = i915->pipe.screen;
+ struct intel_winsys *iws = i915->iws;
i915_render->i915 = i915;
@@ -539,23 +527,19 @@ i915_vbuf_render_create( struct i915_context *i915 )
i915_render->vbo_alloc_size = 128 * 4096;
i915_render->vbo_size = i915_render->vbo_alloc_size;
i915_render->vbo_offset = 0;
- i915_render->vbo = pipe_buffer_create(screen,
- 64,
- I915_BUFFER_USAGE_LIT_VERTEX,
- i915_render->vbo_size);
- i915_render->vbo_ptr = pipe_buffer_map(screen,
- i915_render->vbo,
- PIPE_BUFFER_USAGE_CPU_WRITE);
- pipe_buffer_unmap(screen, i915_render->vbo);
+ i915_render->vbo = iws->buffer_create(iws, i915_render->vbo_size, 64,
+ INTEL_NEW_VERTEX);
+ /* TODO JB: is this realy needed? */
+ i915_render->vbo_ptr = iws->buffer_map(iws, i915_render->vbo, TRUE);
+ iws->buffer_unmap(iws, i915_render->vbo);
return &i915_render->base;
}
-
/**
* Create a new primitive vbuf/render stage.
*/
-struct draw_stage *i915_draw_vbuf_stage( struct i915_context *i915 )
+struct draw_stage *i915_draw_vbuf_stage(struct i915_context *i915)
{
struct vbuf_render *render;
struct draw_stage *stage;
@@ -564,7 +548,7 @@ struct draw_stage *i915_draw_vbuf_stage( struct i915_context *i915 )
if(!render)
return NULL;
- stage = draw_vbuf_stage( i915->draw, render );
+ stage = draw_vbuf_stage(i915->draw, render);
if(!stage) {
render->destroy(render);
return NULL;
diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c
index a3de38d5860..9f017a14cca 100644
--- a/src/gallium/drivers/i915simple/i915_screen.c
+++ b/src/gallium/drivers/i915simple/i915_screen.c
@@ -26,33 +26,36 @@
**************************************************************************/
-#include "util/u_memory.h"
-#include "util/u_simple_screen.h"
-#include "pipe/internal/p_winsys_screen.h"
#include "pipe/p_inlines.h"
+#include "util/u_memory.h"
#include "util/u_string.h"
#include "i915_reg.h"
#include "i915_context.h"
#include "i915_screen.h"
+#include "i915_buffer.h"
#include "i915_texture.h"
-#include "i915_winsys.h"
+#include "intel_winsys.h"
+
+
+/*
+ * Probe functions
+ */
static const char *
-i915_get_vendor( struct pipe_screen *pscreen )
+i915_get_vendor(struct pipe_screen *screen)
{
return "Tungsten Graphics, Inc.";
}
-
static const char *
-i915_get_name( struct pipe_screen *pscreen )
+i915_get_name(struct pipe_screen *screen)
{
static char buffer[128];
const char *chipset;
- switch (i915_screen(pscreen)->pci_id) {
+ switch (i915_screen(screen)->pci_id) {
case PCI_CHIP_I915_G:
chipset = "915G";
break;
@@ -86,7 +89,6 @@ i915_get_name( struct pipe_screen *pscreen )
return buffer;
}
-
static int
i915_get_param(struct pipe_screen *screen, int param)
{
@@ -122,7 +124,6 @@ i915_get_param(struct pipe_screen *screen, int param)
}
}
-
static float
i915_get_paramf(struct pipe_screen *screen, int param)
{
@@ -148,13 +149,12 @@ i915_get_paramf(struct pipe_screen *screen, int param)
}
}
-
static boolean
-i915_is_format_supported( struct pipe_screen *screen,
- enum pipe_format format,
- enum pipe_texture_target target,
- unsigned tex_usage,
- unsigned geom_flags )
+i915_is_format_supported(struct pipe_screen *screen,
+ enum pipe_format format,
+ enum pipe_texture_target target,
+ unsigned tex_usage,
+ unsigned geom_flags)
{
static const enum pipe_format tex_supported[] = {
PIPE_FORMAT_R8G8B8A8_UNORM,
@@ -173,7 +173,6 @@ i915_is_format_supported( struct pipe_screen *screen,
PIPE_FORMAT_A8R8G8B8_UNORM,
PIPE_FORMAT_R5G6B5_UNORM,
PIPE_FORMAT_S8Z24_UNORM,
- /*PIPE_FORMAT_R16G16B16A16_SNORM,*/
PIPE_FORMAT_NONE /* list terminator */
};
const enum pipe_format *list;
@@ -193,122 +192,73 @@ i915_is_format_supported( struct pipe_screen *screen,
}
-static void
-i915_destroy_screen( struct pipe_screen *screen )
-{
- struct pipe_winsys *winsys = screen->winsys;
-
- if(winsys->destroy)
- winsys->destroy(winsys);
-
- FREE(screen);
-}
+/*
+ * Fence functions
+ */
-static struct pipe_transfer*
-i915_get_tex_transfer(struct pipe_screen *screen,
- struct pipe_texture *texture,
- unsigned face, unsigned level, unsigned zslice,
- enum pipe_transfer_usage usage, unsigned x, unsigned y,
- unsigned w, unsigned h)
+static void
+i915_fence_reference(struct pipe_screen *screen,
+ struct pipe_fence_handle **ptr,
+ struct pipe_fence_handle *fence)
{
- struct i915_texture *tex = (struct i915_texture *)texture;
- struct i915_transfer *trans;
- unsigned offset; /* in bytes */
+ struct i915_screen *is = i915_screen(screen);
- if (texture->target == PIPE_TEXTURE_CUBE) {
- offset = tex->image_offset[level][face];
- }
- else if (texture->target == PIPE_TEXTURE_3D) {
- offset = tex->image_offset[level][zslice];
- }
- else {
- offset = tex->image_offset[level][0];
- assert(face == 0);
- assert(zslice == 0);
- }
-
- trans = CALLOC_STRUCT(i915_transfer);
- if (trans) {
- pipe_texture_reference(&trans->base.texture, texture);
- trans->base.format = trans->base.format;
- trans->base.x = x;
- trans->base.y = y;
- trans->base.width = w;
- trans->base.height = h;
- trans->base.block = texture->block;
- trans->base.nblocksx = texture->nblocksx[level];
- trans->base.nblocksy = texture->nblocksy[level];
- trans->base.stride = tex->stride;
- trans->offset = offset;
- trans->base.usage = usage;
- }
- return &trans->base;
+ is->iws->fence_reference(is->iws, ptr, fence);
}
-static void
-i915_tex_transfer_destroy(struct pipe_transfer *trans)
+static int
+i915_fence_signalled(struct pipe_screen *screen,
+ struct pipe_fence_handle *fence,
+ unsigned flags)
{
- pipe_texture_reference(&trans->texture, NULL);
- FREE(trans);
+ struct i915_screen *is = i915_screen(screen);
+
+ return is->iws->fence_signalled(is->iws, fence);
}
-static void *
-i915_transfer_map( struct pipe_screen *screen,
- struct pipe_transfer *transfer )
+static int
+i915_fence_finish(struct pipe_screen *screen,
+ struct pipe_fence_handle *fence,
+ unsigned flags)
{
- struct i915_texture *tex = (struct i915_texture *)transfer->texture;
- char *map;
- unsigned flags = 0;
+ struct i915_screen *is = i915_screen(screen);
- if (transfer->usage != PIPE_TRANSFER_WRITE)
- flags |= PIPE_BUFFER_USAGE_CPU_READ;
+ return is->iws->fence_finish(is->iws, fence);
+}
- if (transfer->usage != PIPE_TRANSFER_READ)
- flags |= PIPE_BUFFER_USAGE_CPU_WRITE;
- map = pipe_buffer_map( screen, tex->buffer, flags );
- if (map == NULL)
- return NULL;
+/*
+ * Generic functions
+ */
- if (transfer->texture &&
- (flags & PIPE_BUFFER_USAGE_CPU_WRITE))
- {
- /* Do something to notify contexts of a texture change.
- */
- /* i915_screen(screen)->timestamp++; */
- }
-
- return map + i915_transfer(transfer)->offset +
- transfer->y / transfer->block.height * transfer->stride +
- transfer->x / transfer->block.width * transfer->block.size;
-}
static void
-i915_transfer_unmap(struct pipe_screen *screen,
- struct pipe_transfer *transfer)
+i915_destroy_screen(struct pipe_screen *screen)
{
- struct i915_texture *tex = (struct i915_texture *)transfer->texture;
- pipe_buffer_unmap( screen, tex->buffer );
-}
+ struct i915_screen *is = i915_screen(screen);
+ if (is->iws)
+ is->iws->destroy(is->iws);
+ FREE(is);
+}
/**
* Create a new i915_screen object
*/
struct pipe_screen *
-i915_create_screen(struct pipe_winsys *winsys, uint pci_id)
+i915_create_screen(struct intel_winsys *iws, uint pci_id)
{
- struct i915_screen *i915screen = CALLOC_STRUCT(i915_screen);
+ struct i915_screen *is = CALLOC_STRUCT(i915_screen);
- if (!i915screen)
+ if (!is)
return NULL;
switch (pci_id) {
case PCI_CHIP_I915_G:
case PCI_CHIP_I915_GM:
- i915screen->is_i945 = FALSE;
+ is->is_i945 = FALSE;
break;
case PCI_CHIP_I945_G:
@@ -317,7 +267,7 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id)
case PCI_CHIP_G33_G:
case PCI_CHIP_Q33_G:
case PCI_CHIP_Q35_G:
- i915screen->is_i945 = TRUE;
+ is->is_i945 = TRUE;
break;
default:
@@ -326,24 +276,25 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id)
return NULL;
}
- i915screen->pci_id = pci_id;
+ is->pci_id = pci_id;
+ is->iws = iws;
+
+ is->base.winsys = NULL;
- i915screen->screen.winsys = winsys;
+ is->base.destroy = i915_destroy_screen;
- i915screen->screen.destroy = i915_destroy_screen;
+ is->base.get_name = i915_get_name;
+ is->base.get_vendor = i915_get_vendor;
+ is->base.get_param = i915_get_param;
+ is->base.get_paramf = i915_get_paramf;
+ is->base.is_format_supported = i915_is_format_supported;
- i915screen->screen.get_name = i915_get_name;
- i915screen->screen.get_vendor = i915_get_vendor;
- i915screen->screen.get_param = i915_get_param;
- i915screen->screen.get_paramf = i915_get_paramf;
- i915screen->screen.is_format_supported = i915_is_format_supported;
- i915screen->screen.get_tex_transfer = i915_get_tex_transfer;
- i915screen->screen.tex_transfer_destroy = i915_tex_transfer_destroy;
- i915screen->screen.transfer_map = i915_transfer_map;
- i915screen->screen.transfer_unmap = i915_transfer_unmap;
+ is->base.fence_reference = i915_fence_reference;
+ is->base.fence_signalled = i915_fence_signalled;
+ is->base.fence_finish = i915_fence_finish;
- i915_init_screen_texture_functions(&i915screen->screen);
- u_simple_screen_init(&i915screen->screen);
+ i915_init_screen_texture_functions(is);
+ i915_init_screen_buffer_functions(is);
- return &i915screen->screen;
+ return &is->base;
}
diff --git a/src/gallium/drivers/i915simple/i915_screen.h b/src/gallium/drivers/i915simple/i915_screen.h
index 5284c325951..5126485caa7 100644
--- a/src/gallium/drivers/i915simple/i915_screen.h
+++ b/src/gallium/drivers/i915simple/i915_screen.h
@@ -25,17 +25,14 @@
*
**************************************************************************/
-
#ifndef I915_SCREEN_H
#define I915_SCREEN_H
-
+#include "pipe/p_state.h"
#include "pipe/p_screen.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+struct intel_winsys;
/**
@@ -43,13 +40,14 @@ extern "C" {
*/
struct i915_screen
{
- struct pipe_screen screen;
+ struct pipe_screen base;
+
+ struct intel_winsys *iws;
boolean is_i945;
uint pci_id;
};
-
/**
* Subclass of pipe_transfer
*/
@@ -61,7 +59,11 @@ struct i915_transfer
};
-/** cast wrappers */
+/*
+ * Cast wrappers
+ */
+
+
static INLINE struct i915_screen *
i915_screen(struct pipe_screen *pscreen)
{
@@ -69,14 +71,10 @@ i915_screen(struct pipe_screen *pscreen)
}
static INLINE struct i915_transfer *
-i915_transfer( struct pipe_transfer *transfer )
+i915_transfer(struct pipe_transfer *transfer)
{
return (struct i915_transfer *)transfer;
}
-#ifdef __cplusplus
-}
-#endif
-
#endif /* I915_SCREEN_H */
diff --git a/src/gallium/drivers/i915simple/i915_state.c b/src/gallium/drivers/i915simple/i915_state.c
index 273e74002aa..0087dfa410f 100644
--- a/src/gallium/drivers/i915simple/i915_state.c
+++ b/src/gallium/drivers/i915simple/i915_state.c
@@ -518,7 +518,7 @@ static void i915_set_constant_buffer(struct pipe_context *pipe,
const struct pipe_constant_buffer *buf)
{
struct i915_context *i915 = i915_context(pipe);
- struct pipe_winsys *ws = pipe->winsys;
+ struct pipe_screen *screen = pipe->screen;
draw_flush(i915->draw);
assert(shader < PIPE_SHADER_TYPES);
@@ -536,10 +536,10 @@ static void i915_set_constant_buffer(struct pipe_context *pipe,
if (buf) {
void *mapped;
if (buf->buffer && buf->buffer->size &&
- (mapped = ws->buffer_map(ws, buf->buffer,
+ (mapped = pipe_buffer_map(screen, buf->buffer,
PIPE_BUFFER_USAGE_CPU_READ))) {
memcpy(i915->current.constants[shader], mapped, buf->buffer->size);
- ws->buffer_unmap(ws, buf->buffer);
+ pipe_buffer_unmap(screen, buf->buffer);
i915->current.num_user_constants[shader]
= buf->buffer->size / (4 * sizeof(float));
}
@@ -751,38 +751,38 @@ static void i915_set_edgeflags(struct pipe_context *pipe,
void
i915_init_state_functions( struct i915_context *i915 )
{
- i915->pipe.set_edgeflags = i915_set_edgeflags;
- i915->pipe.create_blend_state = i915_create_blend_state;
- i915->pipe.bind_blend_state = i915_bind_blend_state;
- i915->pipe.delete_blend_state = i915_delete_blend_state;
-
- i915->pipe.create_sampler_state = i915_create_sampler_state;
- i915->pipe.bind_sampler_states = i915_bind_sampler_states;
- i915->pipe.delete_sampler_state = i915_delete_sampler_state;
-
- i915->pipe.create_depth_stencil_alpha_state = i915_create_depth_stencil_state;
- i915->pipe.bind_depth_stencil_alpha_state = i915_bind_depth_stencil_state;
- i915->pipe.delete_depth_stencil_alpha_state = i915_delete_depth_stencil_state;
-
- i915->pipe.create_rasterizer_state = i915_create_rasterizer_state;
- i915->pipe.bind_rasterizer_state = i915_bind_rasterizer_state;
- i915->pipe.delete_rasterizer_state = i915_delete_rasterizer_state;
- i915->pipe.create_fs_state = i915_create_fs_state;
- i915->pipe.bind_fs_state = i915_bind_fs_state;
- i915->pipe.delete_fs_state = i915_delete_fs_state;
- i915->pipe.create_vs_state = i915_create_vs_state;
- i915->pipe.bind_vs_state = i915_bind_vs_state;
- i915->pipe.delete_vs_state = i915_delete_vs_state;
-
- i915->pipe.set_blend_color = i915_set_blend_color;
- i915->pipe.set_clip_state = i915_set_clip_state;
- i915->pipe.set_constant_buffer = i915_set_constant_buffer;
- i915->pipe.set_framebuffer_state = i915_set_framebuffer_state;
-
- i915->pipe.set_polygon_stipple = i915_set_polygon_stipple;
- i915->pipe.set_scissor_state = i915_set_scissor_state;
- i915->pipe.set_sampler_textures = i915_set_sampler_textures;
- i915->pipe.set_viewport_state = i915_set_viewport_state;
- i915->pipe.set_vertex_buffers = i915_set_vertex_buffers;
- i915->pipe.set_vertex_elements = i915_set_vertex_elements;
+ i915->base.set_edgeflags = i915_set_edgeflags;
+ i915->base.create_blend_state = i915_create_blend_state;
+ i915->base.bind_blend_state = i915_bind_blend_state;
+ i915->base.delete_blend_state = i915_delete_blend_state;
+
+ i915->base.create_sampler_state = i915_create_sampler_state;
+ i915->base.bind_sampler_states = i915_bind_sampler_states;
+ i915->base.delete_sampler_state = i915_delete_sampler_state;
+
+ i915->base.create_depth_stencil_alpha_state = i915_create_depth_stencil_state;
+ i915->base.bind_depth_stencil_alpha_state = i915_bind_depth_stencil_state;
+ i915->base.delete_depth_stencil_alpha_state = i915_delete_depth_stencil_state;
+
+ i915->base.create_rasterizer_state = i915_create_rasterizer_state;
+ i915->base.bind_rasterizer_state = i915_bind_rasterizer_state;
+ i915->base.delete_rasterizer_state = i915_delete_rasterizer_state;
+ i915->base.create_fs_state = i915_create_fs_state;
+ i915->base.bind_fs_state = i915_bind_fs_state;
+ i915->base.delete_fs_state = i915_delete_fs_state;
+ i915->base.create_vs_state = i915_create_vs_state;
+ i915->base.bind_vs_state = i915_bind_vs_state;
+ i915->base.delete_vs_state = i915_delete_vs_state;
+
+ i915->base.set_blend_color = i915_set_blend_color;
+ i915->base.set_clip_state = i915_set_clip_state;
+ i915->base.set_constant_buffer = i915_set_constant_buffer;
+ i915->base.set_framebuffer_state = i915_set_framebuffer_state;
+
+ i915->base.set_polygon_stipple = i915_set_polygon_stipple;
+ i915->base.set_scissor_state = i915_set_scissor_state;
+ i915->base.set_sampler_textures = i915_set_sampler_textures;
+ i915->base.set_viewport_state = i915_set_viewport_state;
+ i915->base.set_vertex_buffers = i915_set_vertex_buffers;
+ i915->base.set_vertex_elements = i915_set_vertex_elements;
}
diff --git a/src/gallium/drivers/i915simple/i915_state_emit.c b/src/gallium/drivers/i915simple/i915_state_emit.c
index 1e1fb968b47..a3d4e3b04e5 100644
--- a/src/gallium/drivers/i915simple/i915_state_emit.c
+++ b/src/gallium/drivers/i915simple/i915_state_emit.c
@@ -28,7 +28,6 @@
#include "i915_reg.h"
#include "i915_context.h"
-#include "i915_winsys.h"
#include "i915_batch.h"
#include "i915_reg.h"
@@ -107,7 +106,7 @@ i915_emit_hardware_state(struct i915_context *i915 )
6
) * 3/2; /* plus 50% margin */
const unsigned relocs = ( I915_TEX_UNITS +
- 3
+ 3
) * 3/2; /* plus 50% margin */
#if 0
@@ -123,9 +122,9 @@ i915_emit_hardware_state(struct i915_context *i915 )
if (i915->hardware_dirty & I915_HW_INVARIENT)
{
OUT_BATCH(_3DSTATE_AA_CMD |
- AA_LINE_ECAAR_WIDTH_ENABLE |
- AA_LINE_ECAAR_WIDTH_1_0 |
- AA_LINE_REGION_WIDTH_ENABLE | AA_LINE_REGION_WIDTH_1_0);
+ AA_LINE_ECAAR_WIDTH_ENABLE |
+ AA_LINE_ECAAR_WIDTH_1_0 |
+ AA_LINE_REGION_WIDTH_ENABLE | AA_LINE_REGION_WIDTH_1_0);
OUT_BATCH(_3DSTATE_DFLT_DIFFUSE_CMD);
OUT_BATCH(0);
@@ -137,24 +136,24 @@ i915_emit_hardware_state(struct i915_context *i915 )
OUT_BATCH(0);
OUT_BATCH(_3DSTATE_COORD_SET_BINDINGS |
- CSB_TCB(0, 0) |
- CSB_TCB(1, 1) |
- CSB_TCB(2, 2) |
- CSB_TCB(3, 3) |
- CSB_TCB(4, 4) |
- CSB_TCB(5, 5) |
- CSB_TCB(6, 6) |
- CSB_TCB(7, 7));
+ CSB_TCB(0, 0) |
+ CSB_TCB(1, 1) |
+ CSB_TCB(2, 2) |
+ CSB_TCB(3, 3) |
+ CSB_TCB(4, 4) |
+ CSB_TCB(5, 5) |
+ CSB_TCB(6, 6) |
+ CSB_TCB(7, 7));
OUT_BATCH(_3DSTATE_RASTER_RULES_CMD |
- ENABLE_POINT_RASTER_RULE |
- OGL_POINT_RASTER_RULE |
- ENABLE_LINE_STRIP_PROVOKE_VRTX |
- ENABLE_TRI_FAN_PROVOKE_VRTX |
- LINE_STRIP_PROVOKE_VRTX(1) |
- TRI_FAN_PROVOKE_VRTX(2) |
- ENABLE_TEXKILL_3D_4D |
- TEXKILL_4D);
+ ENABLE_POINT_RASTER_RULE |
+ OGL_POINT_RASTER_RULE |
+ ENABLE_LINE_STRIP_PROVOKE_VRTX |
+ ENABLE_TRI_FAN_PROVOKE_VRTX |
+ LINE_STRIP_PROVOKE_VRTX(1) |
+ TRI_FAN_PROVOKE_VRTX(2) |
+ ENABLE_TEXKILL_3D_4D |
+ TEXKILL_4D);
/* Need to initialize this to zero.
*/
@@ -173,21 +172,21 @@ i915_emit_hardware_state(struct i915_context *i915 )
if (i915->hardware_dirty & I915_HW_IMMEDIATE)
{
OUT_BATCH(_3DSTATE_LOAD_STATE_IMMEDIATE_1 |
- I1_LOAD_S(0) |
- I1_LOAD_S(1) |
- I1_LOAD_S(2) |
- I1_LOAD_S(4) |
- I1_LOAD_S(5) |
- I1_LOAD_S(6) |
- (5));
+ I1_LOAD_S(0) |
+ I1_LOAD_S(1) |
+ I1_LOAD_S(2) |
+ I1_LOAD_S(4) |
+ I1_LOAD_S(5) |
+ I1_LOAD_S(6) |
+ (5));
if(i915->vbo)
OUT_RELOC(i915->vbo,
- I915_BUFFER_ACCESS_READ,
+ INTEL_USAGE_VERTEX,
i915->current.immediate[I915_IMMEDIATE_S0]);
else
- /* FIXME: we should not do this */
- OUT_BATCH(0);
+ /* FIXME: we should not do this */
+ OUT_BATCH(0);
OUT_BATCH(i915->current.immediate[I915_IMMEDIATE_S1]);
OUT_BATCH(i915->current.immediate[I915_IMMEDIATE_S2]);
OUT_BATCH(i915->current.immediate[I915_IMMEDIATE_S4]);
@@ -200,7 +199,7 @@ i915_emit_hardware_state(struct i915_context *i915 )
{
int i;
for (i = 0; i < I915_MAX_DYNAMIC; i++) {
- OUT_BATCH(i915->current.dynamic[i]);
+ OUT_BATCH(i915->current.dynamic[i]);
}
}
@@ -211,68 +210,68 @@ i915_emit_hardware_state(struct i915_context *i915 )
struct pipe_surface *depth_surface = i915->framebuffer.zsbuf;
if (cbuf_surface) {
- unsigned ctile = BUF_3D_USE_FENCE;
+ unsigned ctile = BUF_3D_USE_FENCE;
struct i915_texture *tex = (struct i915_texture *)
cbuf_surface->texture;
assert(tex);
- if (tex && tex->tiled) {
- ctile = BUF_3D_TILED_SURFACE;
- }
+ if (tex && tex->sw_tiled) {
+ ctile = BUF_3D_TILED_SURFACE;
+ }
- OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
+ OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
- OUT_BATCH(BUF_3D_ID_COLOR_BACK |
- BUF_3D_PITCH(tex->stride) | /* pitch in bytes */
- ctile);
+ OUT_BATCH(BUF_3D_ID_COLOR_BACK |
+ BUF_3D_PITCH(tex->stride) | /* pitch in bytes */
+ ctile);
- OUT_RELOC(tex->buffer,
- I915_BUFFER_ACCESS_WRITE,
- cbuf_surface->offset);
+ OUT_RELOC(tex->buffer,
+ INTEL_USAGE_RENDER,
+ cbuf_surface->offset);
}
/* What happens if no zbuf??
*/
if (depth_surface) {
- unsigned ztile = BUF_3D_USE_FENCE;
+ unsigned ztile = BUF_3D_USE_FENCE;
struct i915_texture *tex = (struct i915_texture *)
depth_surface->texture;
assert(tex);
- if (tex && tex->tiled) {
- ztile = BUF_3D_TILED_SURFACE;
- }
+ if (tex && tex->sw_tiled) {
+ ztile = BUF_3D_TILED_SURFACE;
+ }
- OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
+ OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
- OUT_BATCH(BUF_3D_ID_DEPTH |
- BUF_3D_PITCH(tex->stride) | /* pitch in bytes */
- ztile);
+ OUT_BATCH(BUF_3D_ID_DEPTH |
+ BUF_3D_PITCH(tex->stride) | /* pitch in bytes */
+ ztile);
- OUT_RELOC(tex->buffer,
- I915_BUFFER_ACCESS_WRITE,
- depth_surface->offset);
+ OUT_RELOC(tex->buffer,
+ INTEL_USAGE_RENDER,
+ depth_surface->offset);
}
{
- unsigned cformat, zformat = 0;
+ unsigned cformat, zformat = 0;
- if (cbuf_surface)
+ if (cbuf_surface)
cformat = cbuf_surface->format;
else
cformat = PIPE_FORMAT_A8R8G8B8_UNORM; /* arbitrary */
cformat = translate_format(cformat);
- if (depth_surface)
- zformat = translate_depth_format( i915->framebuffer.zsbuf->format );
+ if (depth_surface)
+ zformat = translate_depth_format( i915->framebuffer.zsbuf->format );
- OUT_BATCH(_3DSTATE_DST_BUF_VARS_CMD);
- OUT_BATCH(DSTORG_HORT_BIAS(0x8) | /* .5 */
- DSTORG_VERT_BIAS(0x8) | /* .5 */
- LOD_PRECLAMP_OGL |
- TEX_DEFAULT_COLOR_OGL |
- cformat |
- zformat );
+ OUT_BATCH(_3DSTATE_DST_BUF_VARS_CMD);
+ OUT_BATCH(DSTORG_HORT_BIAS(0x8) | /* .5 */
+ DSTORG_VERT_BIAS(0x8) | /* .5 */
+ LOD_PRECLAMP_OGL |
+ TEX_DEFAULT_COLOR_OGL |
+ cformat |
+ zformat );
}
}
@@ -290,16 +289,13 @@ i915_emit_hardware_state(struct i915_context *i915 )
OUT_BATCH(enabled);
for (unit = 0; unit < I915_TEX_UNITS; unit++) {
if (enabled & (1 << unit)) {
- struct pipe_buffer *buf =
- i915->texture[unit]->buffer;
+ struct intel_buffer *buf = i915->texture[unit]->buffer;
uint offset = 0;
assert(buf);
count++;
- OUT_RELOC(buf,
- I915_BUFFER_ACCESS_READ,
- offset);
+ OUT_RELOC(buf, INTEL_USAGE_SAMPLER, offset);
OUT_BATCH(i915->current.texbuffer[unit][0]); /* MS3 */
OUT_BATCH(i915->current.texbuffer[unit][1]); /* MS4 */
}
@@ -315,20 +311,20 @@ i915_emit_hardware_state(struct i915_context *i915 )
if (i915->hardware_dirty & I915_HW_SAMPLER)
{
if (i915->current.sampler_enable_nr) {
- int i;
-
- OUT_BATCH( _3DSTATE_SAMPLER_STATE |
- (3 * i915->current.sampler_enable_nr) );
-
- OUT_BATCH( i915->current.sampler_enable_flags );
-
- for (i = 0; i < I915_TEX_UNITS; i++) {
- if (i915->current.sampler_enable_flags & (1<<i)) {
- OUT_BATCH( i915->current.sampler[i][0] );
- OUT_BATCH( i915->current.sampler[i][1] );
- OUT_BATCH( i915->current.sampler[i][2] );
- }
- }
+ int i;
+
+ OUT_BATCH( _3DSTATE_SAMPLER_STATE |
+ (3 * i915->current.sampler_enable_nr) );
+
+ OUT_BATCH( i915->current.sampler_enable_flags );
+
+ for (i = 0; i < I915_TEX_UNITS; i++) {
+ if (i915->current.sampler_enable_flags & (1<<i)) {
+ OUT_BATCH( i915->current.sampler[i][0] );
+ OUT_BATCH( i915->current.sampler[i][1] );
+ OUT_BATCH( i915->current.sampler[i][2] );
+ }
+ }
}
}
#endif
diff --git a/src/gallium/drivers/i915simple/i915_state_sampler.c b/src/gallium/drivers/i915simple/i915_state_sampler.c
index 3667ed1afa7..c5e9084d12e 100644
--- a/src/gallium/drivers/i915simple/i915_state_sampler.c
+++ b/src/gallium/drivers/i915simple/i915_state_sampler.c
@@ -247,7 +247,7 @@ i915_update_texture(struct i915_context *i915,
assert(format);
assert(pitch);
- if (tex->tiled) {
+ if (tex->sw_tiled) {
assert(!((pitch - 1) & pitch));
tiled = MS3_TILED_SURFACE;
}
diff --git a/src/gallium/drivers/i915simple/i915_surface.c b/src/gallium/drivers/i915simple/i915_surface.c
index 09b2c499b8f..ab8331f3e64 100644
--- a/src/gallium/drivers/i915simple/i915_surface.c
+++ b/src/gallium/drivers/i915simple/i915_surface.c
@@ -89,6 +89,6 @@ i915_surface_fill(struct pipe_context *pipe,
void
i915_init_surface_functions(struct i915_context *i915)
{
- i915->pipe.surface_copy = i915_surface_copy;
- i915->pipe.surface_fill = i915_surface_fill;
+ i915->base.surface_copy = i915_surface_copy;
+ i915->base.surface_fill = i915_surface_fill;
}
diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c
index 0dc6a547463..6a6c6542717 100644
--- a/src/gallium/drivers/i915simple/i915_texture.c
+++ b/src/gallium/drivers/i915simple/i915_texture.c
@@ -42,12 +42,14 @@
#include "i915_texture.h"
#include "i915_debug.h"
#include "i915_screen.h"
-#include "i915_winsys.h"
+#include "intel_winsys.h"
+
/*
* Helper function and arrays
*/
+
/**
* Initial offset for Cube map.
*/
@@ -133,7 +135,7 @@ i915_miptree_set_level_info(struct i915_texture *tex,
static void
i915_miptree_set_image_offset(struct i915_texture *tex,
- unsigned level, unsigned img, unsigned x, unsigned y)
+ unsigned level, unsigned img, unsigned x, unsigned y)
{
if (img == 0 && level == 0)
assert(x == 0 && y == 0);
@@ -150,7 +152,7 @@ i915_miptree_set_image_offset(struct i915_texture *tex,
/*
- * Layout functions
+ * i915 layout functions, some used by i945
*/
@@ -165,37 +167,174 @@ i915_scanout_layout(struct i915_texture *tex)
if (pt->last_level > 0 || pt->block.size != 4)
return 0;
- i915_miptree_set_level_info( tex, 0, 1,
- tex->base.width[0],
- tex->base.height[0],
- 1 );
- i915_miptree_set_image_offset( tex, 0, 0, 0, 0 );
+ i915_miptree_set_level_info(tex, 0, 1,
+ tex->base.width[0],
+ tex->base.height[0],
+ 1);
+ i915_miptree_set_image_offset(tex, 0, 0, 0, 0);
-#if 0 /* TODO use this code when backend is smarter */
if (tex->base.width[0] >= 240) {
tex->stride = power_of_two(tex->base.nblocksx[0] * pt->block.size);
tex->total_nblocksy = round_up(tex->base.nblocksy[0], 8);
-#else
- if (tex->base.width[0] >= 240) {
- tex->stride = 2048 * 4;
- tex->total_nblocksy = round_up(tex->base.nblocksy[0], 8);
-#endif
+ tex->hw_tiled = INTEL_TILE_X;
} else if (tex->base.width[0] == 64 && tex->base.height[0] == 64) {
tex->stride = power_of_two(tex->base.nblocksx[0] * pt->block.size);
tex->total_nblocksy = round_up(tex->base.nblocksy[0], 8);
} else {
- return 0;
+ return FALSE;
}
debug_printf("%s size: %d,%d,%d offset %d,%d (0x%x)\n", __FUNCTION__,
tex->base.width[0], tex->base.height[0], pt->block.size,
tex->stride, tex->total_nblocksy, tex->stride * tex->total_nblocksy);
- return 1;
+ return TRUE;
+}
+
+static void
+i915_miptree_layout_2d(struct i915_texture *tex)
+{
+ struct pipe_texture *pt = &tex->base;
+ unsigned level;
+ unsigned width = pt->width[0];
+ unsigned height = pt->height[0];
+ unsigned nblocksx = pt->nblocksx[0];
+ unsigned nblocksy = pt->nblocksy[0];
+
+ tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
+ tex->total_nblocksy = 0;
+
+ for (level = 0; level <= pt->last_level; level++) {
+ i915_miptree_set_level_info(tex, level, 1, width, height, 1);
+ i915_miptree_set_image_offset(tex, level, 0, 0, tex->total_nblocksy);
+
+ nblocksy = round_up(MAX2(2, nblocksy), 2);
+
+ tex->total_nblocksy += nblocksy;
+
+ width = minify(width);
+ height = minify(height);
+ nblocksx = pf_get_nblocksx(&pt->block, width);
+ nblocksy = pf_get_nblocksy(&pt->block, height);
+ }
+}
+
+static void
+i915_miptree_layout_3d(struct i915_texture *tex)
+{
+ struct pipe_texture *pt = &tex->base;
+ unsigned level;
+
+ unsigned width = pt->width[0];
+ unsigned height = pt->height[0];
+ unsigned depth = pt->depth[0];
+ unsigned nblocksx = pt->nblocksx[0];
+ unsigned nblocksy = pt->nblocksy[0];
+ unsigned stack_nblocksy = 0;
+
+ /* Calculate the size of a single slice.
+ */
+ tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
+
+ /* XXX: hardware expects/requires 9 levels at minimum.
+ */
+ for (level = 0; level <= MAX2(8, pt->last_level); level++) {
+ i915_miptree_set_level_info(tex, level, depth, width, height, depth);
+
+ stack_nblocksy += MAX2(2, nblocksy);
+
+ width = minify(width);
+ height = minify(height);
+ depth = minify(depth);
+ nblocksx = pf_get_nblocksx(&pt->block, width);
+ nblocksy = pf_get_nblocksy(&pt->block, height);
+ }
+
+ /* Fixup depth image_offsets:
+ */
+ depth = pt->depth[0];
+ for (level = 0; level <= pt->last_level; level++) {
+ unsigned i;
+ for (i = 0; i < depth; i++)
+ i915_miptree_set_image_offset(tex, level, i, 0, i * stack_nblocksy);
+
+ depth = minify(depth);
+ }
+
+ /* Multiply slice size by texture depth for total size. It's
+ * remarkable how wasteful of memory the i915 texture layouts
+ * are. They are largely fixed in the i945.
+ */
+ tex->total_nblocksy = stack_nblocksy * pt->depth[0];
}
static void
-i945_miptree_layout_2d( struct i915_texture *tex )
+i915_miptree_layout_cube(struct i915_texture *tex)
+{
+ struct pipe_texture *pt = &tex->base;
+ unsigned width = pt->width[0], height = pt->height[0];
+ const unsigned nblocks = pt->nblocksx[0];
+ unsigned level;
+ unsigned face;
+
+ assert(width == height); /* cubemap images are square */
+
+ /* double pitch for cube layouts */
+ tex->stride = round_up(nblocks * pt->block.size * 2, 4);
+ tex->total_nblocksy = nblocks * 4;
+
+ for (level = 0; level <= pt->last_level; level++) {
+ i915_miptree_set_level_info(tex, level, 6, width, height, 1);
+ width /= 2;
+ height /= 2;
+ }
+
+ for (face = 0; face < 6; face++) {
+ unsigned x = initial_offsets[face][0] * nblocks;
+ unsigned y = initial_offsets[face][1] * nblocks;
+ unsigned d = nblocks;
+
+ for (level = 0; level <= pt->last_level; level++) {
+ i915_miptree_set_image_offset(tex, level, face, x, y);
+ d >>= 1;
+ x += step_offsets[face][0] * d;
+ y += step_offsets[face][1] * d;
+ }
+ }
+}
+
+static boolean
+i915_miptree_layout(struct i915_texture * tex)
+{
+ struct pipe_texture *pt = &tex->base;
+
+ switch (pt->target) {
+ case PIPE_TEXTURE_1D:
+ case PIPE_TEXTURE_2D:
+ i915_miptree_layout_2d(tex);
+ break;
+ case PIPE_TEXTURE_3D:
+ i915_miptree_layout_3d(tex);
+ break;
+ case PIPE_TEXTURE_CUBE:
+ i915_miptree_layout_cube(tex);
+ break;
+ default:
+ assert(0);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
+/*
+ * i945 layout functions
+ */
+
+
+static void
+i945_miptree_layout_2d(struct i915_texture *tex)
{
struct pipe_texture *pt = &tex->base;
const int align_x = 2, align_y = 4;
@@ -210,7 +349,7 @@ i945_miptree_layout_2d( struct i915_texture *tex )
/* used for scanouts that need special layouts */
if (tex->base.tex_usage & PIPE_TEXTURE_USAGE_PRIMARY)
if (i915_scanout_layout(tex))
- return;
+ return;
tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
@@ -221,11 +360,11 @@ i945_miptree_layout_2d( struct i915_texture *tex )
*/
if (pt->last_level > 0) {
unsigned mip1_nblocksx
- = align(pf_get_nblocksx(&pt->block, minify(width)), align_x)
+ = align(pf_get_nblocksx(&pt->block, minify(width)), align_x)
+ pf_get_nblocksx(&pt->block, minify(minify(width)));
if (mip1_nblocksx > nblocksx)
- tex->stride = mip1_nblocksx * pt->block.size;
+ tex->stride = mip1_nblocksx * pt->block.size;
}
/* Pitch must be a whole number of dwords
@@ -247,10 +386,10 @@ i945_miptree_layout_2d( struct i915_texture *tex )
/* Layout_below: step right after second mipmap level.
*/
if (level == 1) {
- x += align(nblocksx, align_x);
+ x += align(nblocksx, align_x);
}
else {
- y += nblocksy;
+ y += nblocksy;
}
width = minify(width);
@@ -261,6 +400,63 @@ i945_miptree_layout_2d( struct i915_texture *tex )
}
static void
+i945_miptree_layout_3d(struct i915_texture *tex)
+{
+ struct pipe_texture *pt = &tex->base;
+ unsigned width = pt->width[0];
+ unsigned height = pt->height[0];
+ unsigned depth = pt->depth[0];
+ unsigned nblocksx = pt->nblocksx[0];
+ unsigned nblocksy = pt->nblocksy[0];
+ unsigned pack_x_pitch, pack_x_nr;
+ unsigned pack_y_pitch;
+ unsigned level;
+
+ tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
+ tex->total_nblocksy = 0;
+
+ pack_y_pitch = MAX2(pt->nblocksy[0], 2);
+ pack_x_pitch = tex->stride / pt->block.size;
+ pack_x_nr = 1;
+
+ for (level = 0; level <= pt->last_level; level++) {
+ int x = 0;
+ int y = 0;
+ unsigned q, j;
+
+ i915_miptree_set_level_info(tex, level, depth, width, height, depth);
+
+ for (q = 0; q < depth;) {
+ for (j = 0; j < pack_x_nr && q < depth; j++, q++) {
+ i915_miptree_set_image_offset(tex, level, q, x, y + tex->total_nblocksy);
+ x += pack_x_pitch;
+ }
+
+ x = 0;
+ y += pack_y_pitch;
+ }
+
+ tex->total_nblocksy += y;
+
+ if (pack_x_pitch > 4) {
+ pack_x_pitch >>= 1;
+ pack_x_nr <<= 1;
+ assert(pack_x_pitch * pack_x_nr * pt->block.size <= tex->stride);
+ }
+
+ if (pack_y_pitch > 2) {
+ pack_y_pitch >>= 1;
+ }
+
+ width = minify(width);
+ height = minify(height);
+ depth = minify(depth);
+ nblocksx = pf_get_nblocksx(&pt->block, width);
+ nblocksy = pf_get_nblocksy(&pt->block, height);
+ }
+}
+
+static void
i945_miptree_layout_cube(struct i915_texture *tex)
{
struct pipe_texture *pt = &tex->base;
@@ -362,224 +558,41 @@ i945_miptree_layout_cube(struct i915_texture *tex)
}
static boolean
-i915_miptree_layout(struct i915_texture * tex)
-{
- struct pipe_texture *pt = &tex->base;
- unsigned level;
-
- switch (pt->target) {
- case PIPE_TEXTURE_CUBE: {
- const unsigned nblocks = pt->nblocksx[0];
- unsigned face;
- unsigned width = pt->width[0], height = pt->height[0];
-
- assert(width == height); /* cubemap images are square */
-
- /* double pitch for cube layouts */
- tex->stride = round_up(nblocks * pt->block.size * 2, 4);
- tex->total_nblocksy = nblocks * 4;
-
- for (level = 0; level <= pt->last_level; level++) {
- i915_miptree_set_level_info(tex, level, 6,
- width, height,
- 1);
- width /= 2;
- height /= 2;
- }
-
- for (face = 0; face < 6; face++) {
- unsigned x = initial_offsets[face][0] * nblocks;
- unsigned y = initial_offsets[face][1] * nblocks;
- unsigned d = nblocks;
-
- for (level = 0; level <= pt->last_level; level++) {
- i915_miptree_set_image_offset(tex, level, face, x, y);
- d >>= 1;
- x += step_offsets[face][0] * d;
- y += step_offsets[face][1] * d;
- }
- }
- break;
- }
- case PIPE_TEXTURE_3D:{
- unsigned width = pt->width[0];
- unsigned height = pt->height[0];
- unsigned depth = pt->depth[0];
- unsigned nblocksx = pt->nblocksx[0];
- unsigned nblocksy = pt->nblocksy[0];
- unsigned stack_nblocksy = 0;
-
- /* Calculate the size of a single slice.
- */
- tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
-
- /* XXX: hardware expects/requires 9 levels at minimum.
- */
- for (level = 0; level <= MAX2(8, pt->last_level);
- level++) {
- i915_miptree_set_level_info(tex, level, depth,
- width, height, depth);
-
-
- stack_nblocksy += MAX2(2, nblocksy);
-
- width = minify(width);
- height = minify(height);
- depth = minify(depth);
- nblocksx = pf_get_nblocksx(&pt->block, width);
- nblocksy = pf_get_nblocksy(&pt->block, height);
- }
-
- /* Fixup depth image_offsets:
- */
- depth = pt->depth[0];
- for (level = 0; level <= pt->last_level; level++) {
- unsigned i;
- for (i = 0; i < depth; i++)
- i915_miptree_set_image_offset(tex, level, i,
- 0, i * stack_nblocksy);
-
- depth = minify(depth);
- }
-
-
- /* Multiply slice size by texture depth for total size. It's
- * remarkable how wasteful of memory the i915 texture layouts
- * are. They are largely fixed in the i945.
- */
- tex->total_nblocksy = stack_nblocksy * pt->depth[0];
- break;
- }
-
- default:{
- unsigned width = pt->width[0];
- unsigned height = pt->height[0];
- unsigned nblocksx = pt->nblocksx[0];
- unsigned nblocksy = pt->nblocksy[0];
-
- tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
- tex->total_nblocksy = 0;
-
- for (level = 0; level <= pt->last_level; level++) {
- i915_miptree_set_level_info(tex, level, 1,
- width, height, 1);
- i915_miptree_set_image_offset(tex, level, 0,
- 0, tex->total_nblocksy);
-
- nblocksy = round_up(MAX2(2, nblocksy), 2);
-
- tex->total_nblocksy += nblocksy;
-
- width = minify(width);
- height = minify(height);
- nblocksx = pf_get_nblocksx(&pt->block, width);
- nblocksy = pf_get_nblocksy(&pt->block, height);
- }
- break;
- }
- }
- /*
- DBG("%s: %dx%dx%d - sz 0x%x\n", __FUNCTION__,
- tex->pitch,
- tex->total_nblocksy, pt->block.size, tex->stride * tex->total_nblocksy);
- */
-
- return TRUE;
-}
-
-
-static boolean
i945_miptree_layout(struct i915_texture * tex)
{
struct pipe_texture *pt = &tex->base;
- unsigned level;
switch (pt->target) {
+ case PIPE_TEXTURE_1D:
+ case PIPE_TEXTURE_2D:
+ i945_miptree_layout_2d(tex);
+ break;
+ case PIPE_TEXTURE_3D:
+ i945_miptree_layout_3d(tex);
+ break;
case PIPE_TEXTURE_CUBE:
i945_miptree_layout_cube(tex);
break;
- case PIPE_TEXTURE_3D:{
- unsigned width = pt->width[0];
- unsigned height = pt->height[0];
- unsigned depth = pt->depth[0];
- unsigned nblocksx = pt->nblocksx[0];
- unsigned nblocksy = pt->nblocksy[0];
- unsigned pack_x_pitch, pack_x_nr;
- unsigned pack_y_pitch;
-
- tex->stride = round_up(pt->nblocksx[0] * pt->block.size, 4);
- tex->total_nblocksy = 0;
-
- pack_y_pitch = MAX2(pt->nblocksy[0], 2);
- pack_x_pitch = tex->stride / pt->block.size;
- pack_x_nr = 1;
-
- for (level = 0; level <= pt->last_level; level++) {
- unsigned nr_images = pt->target == PIPE_TEXTURE_3D ? depth : 6;
- int x = 0;
- int y = 0;
- unsigned q, j;
-
- i915_miptree_set_level_info(tex, level, nr_images,
- width, height, depth);
-
- for (q = 0; q < nr_images;) {
- for (j = 0; j < pack_x_nr && q < nr_images; j++, q++) {
- i915_miptree_set_image_offset(tex, level, q, x, y + tex->total_nblocksy);
- x += pack_x_pitch;
- }
-
- x = 0;
- y += pack_y_pitch;
- }
-
-
- tex->total_nblocksy += y;
-
- if (pack_x_pitch > 4) {
- pack_x_pitch >>= 1;
- pack_x_nr <<= 1;
- assert(pack_x_pitch * pack_x_nr * pt->block.size <= tex->stride);
- }
-
- if (pack_y_pitch > 2) {
- pack_y_pitch >>= 1;
- }
-
- width = minify(width);
- height = minify(height);
- depth = minify(depth);
- nblocksx = pf_get_nblocksx(&pt->block, width);
- nblocksy = pf_get_nblocksy(&pt->block, height);
- }
- break;
- }
-
- case PIPE_TEXTURE_1D:
- case PIPE_TEXTURE_2D:
-// case PIPE_TEXTURE_RECTANGLE:
- i945_miptree_layout_2d(tex);
- break;
default:
assert(0);
return FALSE;
}
- /*
- DBG("%s: %dx%dx%d - sz 0x%x\n", __FUNCTION__,
- tex->pitch,
- tex->total_nblocksy, pt->block.size, tex->stride * tex->total_nblocksy);
- */
-
return TRUE;
}
+/*
+ * Screen texture functions
+ */
+
+
static struct pipe_texture *
i915_texture_create(struct pipe_screen *screen,
const struct pipe_texture *templat)
{
- struct i915_screen *i915screen = i915_screen(screen);
+ struct i915_screen *is = i915_screen(screen);
+ struct intel_winsys *iws = is->iws;
struct i915_texture *tex = CALLOC_STRUCT(i915_texture);
size_t tex_size;
unsigned buf_usage = 0;
@@ -594,27 +607,35 @@ i915_texture_create(struct pipe_screen *screen,
tex->base.nblocksx[0] = pf_get_nblocksx(&tex->base.block, tex->base.width[0]);
tex->base.nblocksy[0] = pf_get_nblocksy(&tex->base.block, tex->base.height[0]);
- if (i915screen->is_i945) {
+ if (is->is_i945) {
if (!i945_miptree_layout(tex))
- goto fail;
+ goto fail;
} else {
if (!i915_miptree_layout(tex))
- goto fail;
+ goto fail;
}
tex_size = tex->stride * tex->total_nblocksy;
- buf_usage = PIPE_BUFFER_USAGE_PIXEL;
- /* for scanouts and cursors, cursors don't have the scanout tag */
- if (templat->tex_usage & PIPE_TEXTURE_USAGE_PRIMARY && templat->width[0] != 64)
- buf_usage |= I915_BUFFER_USAGE_SCANOUT;
- tex->buffer = screen->buffer_create(screen, 64, buf_usage, tex_size);
+ /* for scanouts and cursors, cursors arn't scanouts */
+ if (templat->tex_usage & PIPE_TEXTURE_USAGE_PRIMARY && templat->width[0] != 64)
+ buf_usage = INTEL_NEW_SCANOUT;
+ else
+ buf_usage = INTEL_NEW_TEXTURE;
+ tex->buffer = iws->buffer_create(iws, tex_size, 64, buf_usage);
if (!tex->buffer)
goto fail;
+ /* setup any hw fences */
+ if (tex->hw_tiled) {
+ assert(tex->sw_tiled == INTEL_TILE_NONE);
+ iws->buffer_set_fence_reg(iws, tex->buffer, tex->stride, tex->hw_tiled);
+ }
+
+
#if 0
void *ptr = ws->buffer_map(ws, tex->buffer,
PIPE_BUFFER_USAGE_CPU_WRITE);
@@ -629,18 +650,56 @@ fail:
return NULL;
}
+static struct pipe_texture *
+i915_texture_blanket(struct pipe_screen * screen,
+ const struct pipe_texture *base,
+ const unsigned *stride,
+ struct pipe_buffer *buffer)
+{
+#if 0
+ struct i915_texture *tex;
+ assert(screen);
+
+ /* Only supports one type */
+ if (base->target != PIPE_TEXTURE_2D ||
+ base->last_level != 0 ||
+ base->depth[0] != 1) {
+ return NULL;
+ }
+
+ tex = CALLOC_STRUCT(i915_texture);
+ if (!tex)
+ return NULL;
+
+ tex->base = *base;
+ pipe_reference_init(&tex->base.reference, 1);
+ tex->base.screen = screen;
+
+ tex->stride = stride[0];
+
+ i915_miptree_set_level_info(tex, 0, 1, base->width[0], base->height[0], 1);
+ i915_miptree_set_image_offset(tex, 0, 0, 0, 0);
+
+ pipe_buffer_reference(&tex->buffer, buffer);
+
+ return &tex->base;
+#else
+ return NULL;
+#endif
+}
static void
i915_texture_destroy(struct pipe_texture *pt)
{
struct i915_texture *tex = (struct i915_texture *)pt;
+ struct intel_winsys *iws = i915_screen(pt->screen)->iws;
uint i;
/*
DBG("%s deleting %p\n", __FUNCTION__, (void *) tex);
*/
- pipe_buffer_reference(&tex->buffer, NULL);
+ iws->buffer_destroy(iws, tex->buffer);
for (i = 0; i < PIPE_MAX_TEXTURE_LEVELS; i++)
if (tex->image_offset[i])
@@ -649,6 +708,12 @@ i915_texture_destroy(struct pipe_texture *pt)
FREE(tex);
}
+
+/*
+ * Screen surface functions
+ */
+
+
static struct pipe_surface *
i915_get_tex_surface(struct pipe_screen *screen,
struct pipe_texture *pt,
@@ -684,11 +749,122 @@ i915_get_tex_surface(struct pipe_screen *screen,
return ps;
}
-static struct pipe_texture *
-i915_texture_blanket(struct pipe_screen * screen,
- const struct pipe_texture *base,
- const unsigned *stride,
- struct pipe_buffer *buffer)
+static void
+i915_tex_surface_destroy(struct pipe_surface *surf)
+{
+ pipe_texture_reference(&surf->texture, NULL);
+ FREE(surf);
+}
+
+
+/*
+ * Screen transfer functions
+ */
+
+
+static struct pipe_transfer*
+i915_get_tex_transfer(struct pipe_screen *screen,
+ struct pipe_texture *texture,
+ unsigned face, unsigned level, unsigned zslice,
+ enum pipe_transfer_usage usage, unsigned x, unsigned y,
+ unsigned w, unsigned h)
+{
+ struct i915_texture *tex = (struct i915_texture *)texture;
+ struct i915_transfer *trans;
+ unsigned offset; /* in bytes */
+
+ if (texture->target == PIPE_TEXTURE_CUBE) {
+ offset = tex->image_offset[level][face];
+ }
+ else if (texture->target == PIPE_TEXTURE_3D) {
+ offset = tex->image_offset[level][zslice];
+ }
+ else {
+ offset = tex->image_offset[level][0];
+ assert(face == 0);
+ assert(zslice == 0);
+ }
+
+ trans = CALLOC_STRUCT(i915_transfer);
+ if (trans) {
+ pipe_texture_reference(&trans->base.texture, texture);
+ trans->base.format = trans->base.format;
+ trans->base.x = x;
+ trans->base.y = y;
+ trans->base.width = w;
+ trans->base.height = h;
+ trans->base.block = texture->block;
+ trans->base.nblocksx = texture->nblocksx[level];
+ trans->base.nblocksy = texture->nblocksy[level];
+ trans->base.stride = tex->stride;
+ trans->offset = offset;
+ trans->base.usage = usage;
+ }
+ return &trans->base;
+}
+
+static void *
+i915_transfer_map(struct pipe_screen *screen,
+ struct pipe_transfer *transfer)
+{
+ struct i915_texture *tex = (struct i915_texture *)transfer->texture;
+ struct intel_winsys *iws = i915_screen(tex->base.screen)->iws;
+ char *map;
+ boolean write = FALSE;
+
+ if (transfer->usage != PIPE_TRANSFER_READ)
+ write = TRUE;
+
+ map = iws->buffer_map(iws, tex->buffer, write);
+ if (map == NULL)
+ return NULL;
+
+ return map + i915_transfer(transfer)->offset +
+ transfer->y / transfer->block.height * transfer->stride +
+ transfer->x / transfer->block.width * transfer->block.size;
+}
+
+static void
+i915_transfer_unmap(struct pipe_screen *screen,
+ struct pipe_transfer *transfer)
+{
+ struct i915_texture *tex = (struct i915_texture *)transfer->texture;
+ struct intel_winsys *iws = i915_screen(tex->base.screen)->iws;
+ iws->buffer_unmap(iws, tex->buffer);
+}
+
+static void
+i915_tex_transfer_destroy(struct pipe_transfer *trans)
+{
+ pipe_texture_reference(&trans->texture, NULL);
+ FREE(trans);
+}
+
+
+/*
+ * Other texture functions
+ */
+
+
+void
+i915_init_screen_texture_functions(struct i915_screen *is)
+{
+ is->base.texture_create = i915_texture_create;
+ is->base.texture_blanket = i915_texture_blanket;
+ is->base.texture_destroy = i915_texture_destroy;
+ is->base.get_tex_surface = i915_get_tex_surface;
+ is->base.tex_surface_destroy = i915_tex_surface_destroy;
+ is->base.get_tex_transfer = i915_get_tex_transfer;
+ is->base.transfer_map = i915_transfer_map;
+ is->base.transfer_unmap = i915_transfer_unmap;
+ is->base.tex_transfer_destroy = i915_tex_transfer_destroy;
+}
+
+struct pipe_texture *
+i915_texture_blanket_intel(struct pipe_screen *screen,
+ struct pipe_texture *base,
+ unsigned stride,
+ struct intel_buffer *buffer)
{
struct i915_texture *tex;
assert(screen);
@@ -708,52 +884,28 @@ i915_texture_blanket(struct pipe_screen * screen,
pipe_reference_init(&tex->base.reference, 1);
tex->base.screen = screen;
- tex->stride = stride[0];
+ tex->stride = stride;
i915_miptree_set_level_info(tex, 0, 1, base->width[0], base->height[0], 1);
i915_miptree_set_image_offset(tex, 0, 0, 0, 0);
- pipe_buffer_reference(&tex->buffer, buffer);
+ tex->buffer = buffer;
return &tex->base;
}
-void
-i915_init_texture_functions(struct i915_context *i915)
-{
-// i915->pipe.texture_update = i915_texture_update;
-}
-
-static void
-i915_tex_surface_destroy(struct pipe_surface *surf)
-{
- pipe_texture_reference(&surf->texture, NULL);
- FREE(surf);
-}
-
-void
-i915_init_screen_texture_functions(struct pipe_screen *screen)
-{
- screen->texture_create = i915_texture_create;
- screen->texture_destroy = i915_texture_destroy;
- screen->get_tex_surface = i915_get_tex_surface;
- screen->texture_blanket = i915_texture_blanket;
- screen->tex_surface_destroy = i915_tex_surface_destroy;
-}
-
-boolean i915_get_texture_buffer( struct pipe_texture *texture,
- struct pipe_buffer **buf,
- unsigned *stride )
+boolean
+i915_get_texture_buffer_intel(struct pipe_texture *texture,
+ struct intel_buffer **buffer,
+ unsigned *stride)
{
struct i915_texture *tex = (struct i915_texture *)texture;
- if (!tex)
+ if (!texture)
return FALSE;
- pipe_buffer_reference(buf, tex->buffer);
-
- if (stride)
- *stride = tex->stride;
+ *stride = tex->stride;
+ *buffer = tex->buffer;
return TRUE;
}
diff --git a/src/gallium/drivers/i915simple/i915_texture.h b/src/gallium/drivers/i915simple/i915_texture.h
index 7225016a9f4..51a1dd984c8 100644
--- a/src/gallium/drivers/i915simple/i915_texture.h
+++ b/src/gallium/drivers/i915simple/i915_texture.h
@@ -28,16 +28,9 @@
#ifndef I915_TEXTURE_H
#define I915_TEXTURE_H
-struct i915_context;
-struct pipe_screen;
-
+struct i915_screen;
extern void
-i915_init_texture_functions(struct i915_context *i915);
-
-
-extern void
-i915_init_screen_texture_functions(struct pipe_screen *screen);
-
+i915_init_screen_texture_functions(struct i915_screen *is);
#endif /* I915_TEXTURE_H */
diff --git a/src/gallium/drivers/i915simple/i915_winsys.h b/src/gallium/drivers/i915simple/i915_winsys.h
deleted file mode 100644
index 711db91c367..00000000000
--- a/src/gallium/drivers/i915simple/i915_winsys.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
- * 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, sub license, 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 NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS 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.
- *
- **************************************************************************/
-
-/**
- * \file
- * This is the interface that i915simple requires any window system
- * hosting it to implement. This is the only include file in i915simple
- * which is public.
- *
- * This isn't currently true as the winsys needs i915_batchbuffer.h
- */
-
-#ifndef I915_WINSYS_H
-#define I915_WINSYS_H
-
-
-#include "pipe/p_defines.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Pipe drivers are independent of both GL and the window system.
- * The window system provides a buffer manager and a set of additional
- * hooks for things like command buffer submission, etc.
- *
- * There clearly has to be some agreement between the window system
- * driver and the hardware driver about the format of command buffers,
- * etc.
- */
-
-struct i915_batchbuffer;
-struct pipe_texture;
-struct pipe_buffer;
-struct pipe_fence_handle;
-struct pipe_winsys;
-struct pipe_screen;
-
-
-/**
- * Additional winsys interface for i915simple.
- *
- * It is an over-simple batchbuffer mechanism. Will want to improve the
- * performance of this, perhaps based on the cmdstream stuff. It
- * would be pretty impossible to implement swz on top of this
- * interface.
- *
- * Will also need additions/changes to implement static/dynamic
- * indirect state.
- */
-struct i915_winsys {
-
- void (*destroy)( struct i915_winsys *sws );
-
- /**
- * Get the current batch buffer from the winsys.
- */
- struct i915_batchbuffer *(*batch_get)( struct i915_winsys *sws );
-
- /**
- * Emit a relocation to a buffer.
- *
- * Used not only when the buffer addresses are not pinned, but also to
- * ensure refered buffers will not be destroyed until the current batch
- * buffer execution is finished.
- *
- * The access flags is a combination of I915_BUFFER_ACCESS_WRITE and
- * I915_BUFFER_ACCESS_READ macros.
- */
- void (*batch_reloc)( struct i915_winsys *sws,
- struct pipe_buffer *buf,
- unsigned access_flags,
- unsigned delta );
-
- /**
- * Flush the batch.
- */
- void (*batch_flush)( struct i915_winsys *sws,
- struct pipe_fence_handle **fence );
-};
-
-#define I915_BUFFER_ACCESS_WRITE 0x1
-#define I915_BUFFER_ACCESS_READ 0x2
-
-#define I915_BUFFER_USAGE_LIT_VERTEX (PIPE_BUFFER_USAGE_CUSTOM << 0)
-#define I915_BUFFER_USAGE_SCANOUT (PIPE_BUFFER_USAGE_CUSTOM << 1)
-
-
-/**
- * Create i915 pipe_screen.
- */
-struct pipe_screen *i915_create_screen( struct pipe_winsys *winsys,
- uint pci_id );
-
-/**
- * Create a i915 pipe_context.
- */
-struct pipe_context *i915_create_context( struct pipe_screen *screen,
- struct pipe_winsys *winsys,
- struct i915_winsys *i915 );
-
-/**
- * Used for the winsys to get the buffer used for a texture
- * and also the stride used for the texture.
- *
- * Buffer is referenced for you so you need to unref after use.
- *
- * This is needed for example kms.
- */
-boolean i915_get_texture_buffer( struct pipe_texture *texture,
- struct pipe_buffer **buf,
- unsigned *stride );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/gallium/drivers/i915simple/intel_batchbuffer.h b/src/gallium/drivers/i915simple/intel_batchbuffer.h
new file mode 100644
index 00000000000..db12dfd2ac2
--- /dev/null
+++ b/src/gallium/drivers/i915simple/intel_batchbuffer.h
@@ -0,0 +1,87 @@
+/**************************************************************************
+ *
+ * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * 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, sub license, 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 NON-INFRINGEMENT.
+ * IN NO EVENT SHALL TUNGSTEN GRAPHICS 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 INTEL_BATCH_H
+#define INTEL_BATCH_H
+
+#include "intel_winsys.h"
+
+static INLINE boolean
+intel_batchbuffer_check(struct intel_batchbuffer *batch,
+ size_t dwords,
+ size_t relocs)
+{
+ return dwords * 4 <= batch->size - (batch->ptr - batch->map) &&
+ relocs <= (batch->max_relocs - batch->relocs);
+}
+
+static INLINE size_t
+intel_batchbuffer_space(struct intel_batchbuffer *batch)
+{
+ return batch->size - (batch->ptr - batch->map);
+}
+
+static INLINE void
+intel_batchbuffer_dword(struct intel_batchbuffer *batch,
+ unsigned dword)
+{
+ if (intel_batchbuffer_space(batch) < 4)
+ return;
+
+ *(unsigned *)batch->ptr = dword;
+ batch->ptr += 4;
+}
+
+static INLINE void
+intel_batchbuffer_write(struct intel_batchbuffer *batch,
+ void *data,
+ size_t size)
+{
+ if (intel_batchbuffer_space(batch) < size)
+ return;
+
+ memcpy(data, batch->ptr, size);
+ batch->ptr += size;
+}
+
+static INLINE int
+intel_batchbuffer_reloc(struct intel_batchbuffer *batch,
+ struct intel_buffer *buffer,
+ enum intel_buffer_usage usage,
+ size_t offset)
+{
+ return batch->iws->batchbuffer_reloc(batch, buffer, usage, offset);
+}
+
+static INLINE void
+intel_batchbuffer_flush(struct intel_batchbuffer *batch,
+ struct pipe_fence_handle **fence)
+{
+ batch->iws->batchbuffer_flush(batch, fence);
+}
+
+#endif
diff --git a/src/gallium/drivers/i915simple/intel_winsys.h b/src/gallium/drivers/i915simple/intel_winsys.h
new file mode 100644
index 00000000000..f949f52a9ce
--- /dev/null
+++ b/src/gallium/drivers/i915simple/intel_winsys.h
@@ -0,0 +1,219 @@
+/**************************************************************************
+ *
+ * Copyright © 2009 Jakob Bornecrantz
+ *
+ * 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.
+ *
+ **************************************************************************/
+
+#ifndef INTEL_WINSYS_H
+#define INTEL_WINSYS_H
+
+#include "pipe/p_compiler.h"
+
+struct intel_winsys;
+struct intel_buffer;
+struct intel_batchbuffer;
+struct pipe_texture;
+struct pipe_fence_handle;
+
+enum intel_buffer_usage
+{
+ /* use on textures */
+ INTEL_USAGE_RENDER = 0x01,
+ INTEL_USAGE_SAMPLER = 0x02,
+ INTEL_USAGE_2D_TARGET = 0x04,
+ INTEL_USAGE_2D_SOURCE = 0x08,
+ /* use on vertex */
+ INTEL_USAGE_VERTEX = 0x10,
+};
+
+enum intel_buffer_type
+{
+ INTEL_NEW_TEXTURE,
+ INTEL_NEW_SCANOUT, /**< a texture used for scanning out from */
+ INTEL_NEW_VERTEX,
+};
+
+enum intel_buffer_tile
+{
+ INTEL_TILE_NONE,
+ INTEL_TILE_X,
+ INTEL_TILE_Y,
+};
+
+struct intel_batchbuffer {
+
+ struct intel_winsys *iws;
+
+ /**
+ * Values exported to speed up the writing the batchbuffer,
+ * instead of having to go trough a accesor function for
+ * each dword written.
+ */
+ /*{@*/
+ uint8_t *map;
+ uint8_t *ptr;
+ size_t size;
+
+ size_t relocs;
+ size_t max_relocs;
+ /*@}*/
+};
+
+struct intel_winsys {
+
+ /**
+ * Batchbuffer functions.
+ */
+ /*@{*/
+ /**
+ * Create a new batchbuffer.
+ */
+ struct intel_batchbuffer *(*batchbuffer_create)(struct intel_winsys *iws);
+
+ /**
+ * Emit a relocation to a buffer.
+ * Target position in batchbuffer is the same as ptr.
+ *
+ * @batch
+ * @reloc buffer address to be inserted into target.
+ * @usage how is the hardware going to use the buffer.
+ * @offset add this to the reloc buffers address
+ * @target buffer where to write the address, null for batchbuffer.
+ */
+ int (*batchbuffer_reloc)(struct intel_batchbuffer *batch,
+ struct intel_buffer *reloc,
+ enum intel_buffer_usage usage,
+ unsigned offset);
+
+ /**
+ * Flush a bufferbatch.
+ */
+ void (*batchbuffer_flush)(struct intel_batchbuffer *batch,
+ struct pipe_fence_handle **fence);
+
+ /**
+ * Destroy a batchbuffer.
+ */
+ void (*batchbuffer_destroy)(struct intel_batchbuffer *batch);
+ /*@}*/
+
+
+ /**
+ * Buffer functions.
+ */
+ /*@{*/
+ /**
+ * Create a buffer.
+ */
+ struct intel_buffer *(*buffer_create)(struct intel_winsys *iws,
+ unsigned size, unsigned alignment,
+ enum intel_buffer_type type);
+
+ /**
+ * Fence a buffer with a fence reg.
+ * Not to be confused with pipe_fence_handle.
+ */
+ int (*buffer_set_fence_reg)(struct intel_winsys *iws,
+ struct intel_buffer *buffer,
+ unsigned stride,
+ enum intel_buffer_tile tile);
+
+ /**
+ * Map a buffer.
+ */
+ void *(*buffer_map)(struct intel_winsys *iws,
+ struct intel_buffer *buffer,
+ boolean write);
+
+ /**
+ * Unmap a buffer.
+ */
+ void (*buffer_unmap)(struct intel_winsys *iws,
+ struct intel_buffer *buffer);
+
+ void (*buffer_destroy)(struct intel_winsys *iws,
+ struct intel_buffer *buffer);
+ /*@}*/
+
+
+ /**
+ * Fence functions.
+ */
+ /*@{*/
+ /**
+ * Reference fence and set ptr to fence.
+ */
+ void (*fence_reference)(struct intel_winsys *iws,
+ struct pipe_fence_handle **ptr,
+ struct pipe_fence_handle *fence);
+
+ /**
+ * Check if a fence has finished.
+ */
+ int (*fence_signalled)(struct intel_winsys *iws,
+ struct pipe_fence_handle *fence);
+
+ /**
+ * Wait on a fence to finish.
+ */
+ int (*fence_finish)(struct intel_winsys *iws,
+ struct pipe_fence_handle *fence);
+ /*@}*/
+
+
+ /**
+ * Destroy the winsys.
+ */
+ void (*destroy)(struct intel_winsys *iws);
+};
+
+
+/**
+ * Create i915 pipe_screen.
+ */
+struct pipe_screen *i915_create_screen(struct intel_winsys *iws, unsigned pci_id);
+
+/**
+ * Create a i915 pipe_context.
+ */
+struct pipe_context *i915_create_context(struct pipe_screen *screen);
+
+/**
+ * Get the intel_winsys buffer backing the texture.
+ *
+ * TODO UGLY
+ */
+boolean i915_get_texture_buffer_intel(struct pipe_texture *texture,
+ struct intel_buffer **buffer,
+ unsigned *stride);
+
+/**
+ * Wrap a intel_winsys buffer with a texture blanket.
+ *
+ * TODO UGLY
+ */
+struct pipe_texture * i915_texture_blanket_intel(struct pipe_screen *screen,
+ struct pipe_texture *tmplt,
+ unsigned pitch,
+ struct intel_buffer *buffer);
+
+#endif
diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript
index 6bceb84da47..5c29bdac56e 100644
--- a/src/gallium/drivers/llvmpipe/SConscript
+++ b/src/gallium/drivers/llvmpipe/SConscript
@@ -2,8 +2,12 @@ Import('*')
env = env.Clone()
+env.Tool('llvm')
+if 'LLVM_VERSION' not in env:
+ print 'warning: LLVM not found: not building llvmpipe'
+ Return()
+
env.Tool('udis86')
-env.ParseConfig('llvm-config --cppflags')
llvmpipe = env.ConvenienceLibrary(
target = 'llvmpipe',
@@ -57,8 +61,6 @@ llvmpipe = env.ConvenienceLibrary(
env = env.Clone()
-env['LINK'] = env['CXX']
-env.ParseConfig('llvm-config --libs jit interpreter nativecodegen bitwriter')
env.Prepend(LIBS = [llvmpipe] + auxiliaries)
env.Program(
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_arit.c b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
index 710e6246d74..09a57ff33d5 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_arit.c
@@ -52,6 +52,7 @@
#include "lp_bld_type.h"
#include "lp_bld_const.h"
#include "lp_bld_intr.h"
+#include "lp_bld_logic.h"
#include "lp_bld_arit.h"
@@ -98,11 +99,8 @@ lp_build_min_simple(struct lp_build_context *bld,
if(intrinsic)
return lp_build_intrinsic_binary(bld->builder, intrinsic, lp_build_vec_type(bld->type), a, b);
- if(type.floating)
- cond = LLVMBuildFCmp(bld->builder, LLVMRealULT, a, b, "");
- else
- cond = LLVMBuildICmp(bld->builder, type.sign ? LLVMIntSLT : LLVMIntULT, a, b, "");
- return LLVMBuildSelect(bld->builder, cond, a, b, "");
+ cond = lp_build_cmp(bld, PIPE_FUNC_LESS, a, b);
+ return lp_build_select(bld, cond, a, b);
}
@@ -149,11 +147,8 @@ lp_build_max_simple(struct lp_build_context *bld,
if(intrinsic)
return lp_build_intrinsic_binary(bld->builder, intrinsic, lp_build_vec_type(bld->type), a, b);
- if(type.floating)
- cond = LLVMBuildFCmp(bld->builder, LLVMRealULT, a, b, "");
- else
- cond = LLVMBuildICmp(bld->builder, type.sign ? LLVMIntSLT : LLVMIntULT, a, b, "");
- return LLVMBuildSelect(bld->builder, cond, b, a, "");
+ cond = lp_build_cmp(bld, PIPE_FUNC_GREATER, a, b);
+ return lp_build_select(bld, cond, a, b);
}
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_logic.c b/src/gallium/drivers/llvmpipe/lp_bld_logic.c
index 1e1ecf805bc..8631efd6c3e 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_logic.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_logic.c
@@ -33,7 +33,6 @@
*/
-#include "pipe/p_defines.h"
#include "lp_bld_type.h"
#include "lp_bld_const.h"
#include "lp_bld_intr.h"
@@ -52,6 +51,8 @@ lp_build_cmp(struct lp_build_context *bld,
LLVMValueRef zeros = LLVMConstNull(int_vec_type);
LLVMValueRef ones = LLVMConstAllOnes(int_vec_type);
LLVMValueRef cond;
+ LLVMValueRef res;
+ unsigned i;
if(func == PIPE_FUNC_NEVER)
return zeros;
@@ -68,7 +69,6 @@ lp_build_cmp(struct lp_build_context *bld,
LLVMValueRef args[3];
unsigned cc;
boolean swap;
- LLVMValueRef res;
swap = FALSE;
switch(func) {
@@ -219,7 +219,28 @@ lp_build_cmp(struct lp_build_context *bld,
assert(0);
return bld->undef;
}
+
+#if 0
+ /* XXX: Although valid IR, no LLVM target currently support this */
cond = LLVMBuildFCmp(bld->builder, op, a, b, "");
+ res = LLVMBuildSelect(bld->builder, cond, ones, zeros, "");
+#else
+ debug_printf("%s: warning: using slow element-wise vector comparison\n",
+ __FUNCTION__);
+ res = LLVMGetUndef(int_vec_type);
+ for(i = 0; i < type.length; ++i) {
+ LLVMValueRef index = LLVMConstInt(LLVMInt32Type(), i, 0);
+ cond = LLVMBuildFCmp(bld->builder, op,
+ LLVMBuildExtractElement(bld->builder, a, index, ""),
+ LLVMBuildExtractElement(bld->builder, b, index, ""),
+ "");
+ cond = LLVMBuildSelect(bld->builder, cond,
+ LLVMConstExtractElement(ones, index),
+ LLVMConstExtractElement(zeros, index),
+ "");
+ res = LLVMBuildInsertElement(bld->builder, res, cond, index, "");
+ }
+#endif
}
else {
LLVMIntPredicate op;
@@ -246,10 +267,31 @@ lp_build_cmp(struct lp_build_context *bld,
assert(0);
return bld->undef;
}
+
+#if 0
+ /* XXX: Although valid IR, no LLVM target currently support this */
cond = LLVMBuildICmp(bld->builder, op, a, b, "");
+ res = LLVMBuildSelect(bld->builder, cond, ones, zeros, "");
+#else
+ debug_printf("%s: warning: using slow element-wise vector comparison\n",
+ __FUNCTION__);
+ res = LLVMGetUndef(int_vec_type);
+ for(i = 0; i < type.length; ++i) {
+ LLVMValueRef index = LLVMConstInt(LLVMInt32Type(), i, 0);
+ cond = LLVMBuildICmp(bld->builder, op,
+ LLVMBuildExtractElement(bld->builder, a, index, ""),
+ LLVMBuildExtractElement(bld->builder, b, index, ""),
+ "");
+ cond = LLVMBuildSelect(bld->builder, cond,
+ LLVMConstExtractElement(ones, index),
+ LLVMConstExtractElement(zeros, index),
+ "");
+ res = LLVMBuildInsertElement(bld->builder, res, cond, index, "");
+ }
+#endif
}
- return LLVMBuildSelect(bld->builder, cond, ones, zeros, "");
+ return res;
}
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_logic.h b/src/gallium/drivers/llvmpipe/lp_bld_logic.h
index 0989f9f2078..29b9e1c45b8 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_logic.h
+++ b/src/gallium/drivers/llvmpipe/lp_bld_logic.h
@@ -39,6 +39,8 @@
#include <llvm-c/Core.h>
+#include "pipe/p_defines.h" /* For PIPE_FUNC_xxx */
+
union lp_type type;
struct lp_build_context;
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c b/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
index bce26607f90..d4d18febec7 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
+++ b/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c
@@ -687,10 +687,6 @@ emit_instruction(
return 0;
break;
- case TGSI_OPCODE_CND0:
- return 0;
- break;
-
case TGSI_OPCODE_DP2A:
tmp0 = emit_fetch( bld, inst, 0, CHAN_X ); /* xmm0 = src[0].x */
tmp1 = emit_fetch( bld, inst, 1, CHAN_X ); /* xmm1 = src[1].x */
diff --git a/src/gallium/drivers/llvmpipe/lp_buffer.c b/src/gallium/drivers/llvmpipe/lp_buffer.c
new file mode 100644
index 00000000000..66f1f8e1383
--- /dev/null
+++ b/src/gallium/drivers/llvmpipe/lp_buffer.c
@@ -0,0 +1,150 @@
+/**************************************************************************
+ *
+ * Copyright 2009 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, sub license, 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 NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE 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 "util/u_memory.h"
+#include "util/u_math.h"
+
+#include "lp_winsys.h"
+#include "lp_screen.h"
+#include "lp_texture.h"
+#include "lp_buffer.h"
+
+
+static void *
+llvmpipe_buffer_map(struct pipe_screen *screen,
+ struct pipe_buffer *buf,
+ unsigned flags)
+{
+ struct llvmpipe_buffer *llvmpipe_buf = llvmpipe_buffer(buf);
+ return llvmpipe_buf->data;
+}
+
+
+static void
+llvmpipe_buffer_unmap(struct pipe_screen *screen,
+ struct pipe_buffer *buf)
+{
+}
+
+
+static void
+llvmpipe_buffer_destroy(struct pipe_buffer *buf)
+{
+ struct llvmpipe_buffer *sbuf = llvmpipe_buffer(buf);
+
+ if (!sbuf->userBuffer)
+ align_free(sbuf->data);
+
+ FREE(sbuf);
+}
+
+
+static struct pipe_buffer *
+llvmpipe_buffer_create(struct pipe_screen *screen,
+ unsigned alignment,
+ unsigned usage,
+ unsigned size)
+{
+ struct llvmpipe_buffer *buffer = CALLOC_STRUCT(llvmpipe_buffer);
+
+ pipe_reference_init(&buffer->base.reference, 1);
+ buffer->base.screen = screen;
+ buffer->base.alignment = MAX2(alignment, 16);
+ buffer->base.usage = usage;
+ buffer->base.size = size;
+
+ buffer->data = align_malloc(size, alignment);
+
+ return &buffer->base;
+}
+
+
+/**
+ * Create buffer which wraps user-space data.
+ */
+static struct pipe_buffer *
+llvmpipe_user_buffer_create(struct pipe_screen *screen,
+ void *ptr,
+ unsigned bytes)
+{
+ struct llvmpipe_buffer *buffer;
+
+ buffer = CALLOC_STRUCT(llvmpipe_buffer);
+ if(!buffer)
+ return NULL;
+
+ pipe_reference_init(&buffer->base.reference, 1);
+ buffer->base.screen = screen;
+ buffer->base.size = bytes;
+ buffer->userBuffer = TRUE;
+ buffer->data = ptr;
+
+ return &buffer->base;
+}
+
+
+static void
+llvmpipe_fence_reference(struct pipe_screen *screen,
+ struct pipe_fence_handle **ptr,
+ struct pipe_fence_handle *fence)
+{
+}
+
+
+static int
+llvmpipe_fence_signalled(struct pipe_screen *screen,
+ struct pipe_fence_handle *fence,
+ unsigned flag)
+{
+ return 0;
+}
+
+
+static int
+llvmpipe_fence_finish(struct pipe_screen *screen,
+ struct pipe_fence_handle *fence,
+ unsigned flag)
+{
+ return 0;
+}
+
+
+void
+llvmpipe_init_screen_buffer_funcs(struct pipe_screen *screen)
+{
+ screen->buffer_create = llvmpipe_buffer_create;
+ screen->user_buffer_create = llvmpipe_user_buffer_create;
+ screen->buffer_map = llvmpipe_buffer_map;
+ screen->buffer_unmap = llvmpipe_buffer_unmap;
+ screen->buffer_destroy = llvmpipe_buffer_destroy;
+
+ screen->fence_reference = llvmpipe_fence_reference;
+ screen->fence_signalled = llvmpipe_fence_signalled;
+ screen->fence_finish = llvmpipe_fence_finish;
+
+}
diff --git a/src/gallium/drivers/llvmpipe/lp_buffer.h b/src/gallium/drivers/llvmpipe/lp_buffer.h
new file mode 100644
index 00000000000..d6b8184a0b9
--- /dev/null
+++ b/src/gallium/drivers/llvmpipe/lp_buffer.h
@@ -0,0 +1,55 @@
+/**************************************************************************
+ *
+ * Copyright 2009 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, sub license, 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 NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE 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 LP_BUFFER_H
+#define LP_BUFFER_H
+
+#include "pipe/p_compiler.h"
+#include "pipe/p_state.h"
+
+
+struct llvmpipe_buffer
+{
+ struct pipe_buffer base;
+ boolean userBuffer; /** Is this a user-space buffer? */
+ void *data;
+};
+
+
+/** Cast wrapper */
+static INLINE struct llvmpipe_buffer *
+llvmpipe_buffer( struct pipe_buffer *buf )
+{
+ return (struct llvmpipe_buffer *)buf;
+}
+
+
+void
+llvmpipe_init_screen_buffer_funcs(struct pipe_screen *screen);
+
+
+#endif /* LP_BUFFER_H */
diff --git a/src/gallium/drivers/nouveau/nouveau_screen.h b/src/gallium/drivers/nouveau/nouveau_screen.h
index 9968b078966..ebfc67ad1c1 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.h
+++ b/src/gallium/drivers/nouveau/nouveau_screen.h
@@ -22,4 +22,15 @@ nouveau_bo(struct pipe_buffer *pb)
int nouveau_screen_init(struct nouveau_screen *, struct nouveau_device *);
void nouveau_screen_fini(struct nouveau_screen *);
+struct nouveau_miptree {
+ struct pipe_texture base;
+ struct nouveau_bo *bo;
+};
+
+static inline struct nouveau_miptree *
+nouveau_miptree(struct pipe_texture *pt)
+{
+ return (struct nouveau_miptree *)pt;
+}
+
#endif
diff --git a/src/gallium/drivers/nv50/nv50_context.h b/src/gallium/drivers/nv50/nv50_context.h
index 4de6e8cfa29..1e9e8e49bfb 100644
--- a/src/gallium/drivers/nv50/nv50_context.h
+++ b/src/gallium/drivers/nv50/nv50_context.h
@@ -75,9 +75,7 @@ struct nv50_miptree_level {
};
struct nv50_miptree {
- struct pipe_texture base;
-
- struct nouveau_bo *bo;
+ struct nouveau_miptree base;
struct nv50_miptree_level level[PIPE_MAX_TEXTURE_LEVELS];
int image_nr;
diff --git a/src/gallium/drivers/nv50/nv50_miptree.c b/src/gallium/drivers/nv50/nv50_miptree.c
index dd1b0303bd5..03b9243b828 100644
--- a/src/gallium/drivers/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nv50/nv50_miptree.c
@@ -31,15 +31,15 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)
{
struct nouveau_device *dev = nouveau_screen(pscreen)->device;
struct nv50_miptree *mt = CALLOC_STRUCT(nv50_miptree);
- struct pipe_texture *pt = &mt->base;
+ struct pipe_texture *pt = &mt->base.base;
unsigned width = tmp->width[0], height = tmp->height[0];
unsigned depth = tmp->depth[0];
uint32_t tile_mode, tile_flags, tile_h;
int ret, i, l;
- mt->base = *tmp;
- pipe_reference_init(&mt->base.reference, 1);
- mt->base.screen = pscreen;
+ *pt = *tmp;
+ pipe_reference_init(&pt->reference, 1);
+ pt->screen = pscreen;
switch (pt->format) {
case PIPE_FORMAT_Z32_FLOAT:
@@ -116,13 +116,14 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)
}
ret = nouveau_bo_new_tile(dev, NOUVEAU_BO_VRAM, 256, mt->total_size,
- mt->level[0].tile_mode, tile_flags, &mt->bo);
+ mt->level[0].tile_mode, tile_flags,
+ &mt->base.bo);
if (ret) {
FREE(mt);
return NULL;
}
- return &mt->base;
+ return pt;
}
static struct pipe_texture *
@@ -141,15 +142,15 @@ nv50_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,
if (!mt)
return NULL;
- mt->base = *pt;
- pipe_reference_init(&mt->base.reference, 1);
- mt->base.screen = pscreen;
+ mt->base.base = *pt;
+ pipe_reference_init(&mt->base.base.reference, 1);
+ mt->base.base.screen = pscreen;
mt->image_nr = 1;
mt->level[0].pitch = *stride;
mt->level[0].image_offset = CALLOC(1, sizeof(unsigned));
- nouveau_bo_ref(bo, &mt->bo);
- return &mt->base;
+ nouveau_bo_ref(bo, &mt->base.bo);
+ return &mt->base.base;
}
static void
@@ -157,7 +158,7 @@ nv50_miptree_destroy(struct pipe_texture *pt)
{
struct nv50_miptree *mt = nv50_miptree(pt);
- nouveau_bo_ref(NULL, &mt->bo);
+ nouveau_bo_ref(NULL, &mt->base.bo);
FREE(mt);
}
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 289c3485e08..4a838529de7 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -1106,10 +1106,10 @@ convert_to_long(struct nv50_pc *pc, struct nv50_program_exec *e)
m = 0xffff7fff;
break;
case 0x8:
- /* INTERP */
- m = ~0x02000000;
- if (e->inst[0] & 0x02000000)
- q = 0x00020000;
+ /* INTERP (move centroid, perspective and flat bits) */
+ m = ~0x03000100;
+ q = (e->inst[0] & (3 << 24)) >> (24 - 16);
+ q |= (e->inst[0] & (1 << 8)) << (18 - 8);
break;
case 0x9:
/* RCP */
@@ -1495,6 +1495,7 @@ nv50_program_tx_insn(struct nv50_pc *pc, const union tgsi_full_token *tok)
}
break;
case TGSI_OPCODE_MOV:
+ case TGSI_OPCODE_SWZ:
for (c = 0; c < 4; c++) {
if (!(mask & (1 << c)))
continue;
diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c
index 99d5b96e456..344c2cf6dde 100644
--- a/src/gallium/drivers/nv50/nv50_state_validate.c
+++ b/src/gallium/drivers/nv50/nv50_state_validate.c
@@ -33,7 +33,7 @@ nv50_state_validate_fb(struct nv50_context *nv50)
for (i = 0; i < fb->nr_cbufs; i++) {
struct pipe_texture *pt = fb->cbufs[i]->texture;
- struct nouveau_bo *bo = nv50_miptree(pt)->bo;
+ struct nouveau_bo *bo = nv50_miptree(pt)->base.bo;
if (!gw) {
w = fb->cbufs[i]->width;
@@ -75,7 +75,7 @@ nv50_state_validate_fb(struct nv50_context *nv50)
if (fb->zsbuf) {
struct pipe_texture *pt = fb->zsbuf->texture;
- struct nouveau_bo *bo = nv50_miptree(pt)->bo;
+ struct nouveau_bo *bo = nv50_miptree(pt)->base.bo;
if (!gw) {
w = fb->zsbuf->width;
diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
index edaf4b055a1..b266324f58d 100644
--- a/src/gallium/drivers/nv50/nv50_surface.c
+++ b/src/gallium/drivers/nv50/nv50_surface.c
@@ -53,7 +53,7 @@ nv50_surface_set(struct nv50_screen *screen, struct pipe_surface *ps, int dst)
struct nv50_miptree *mt = nv50_miptree(ps->texture);
struct nouveau_channel *chan = screen->eng2d->channel;
struct nouveau_grobj *eng2d = screen->eng2d;
- struct nouveau_bo *bo = nv50_miptree(ps->texture)->bo;
+ struct nouveau_bo *bo = nv50_miptree(ps->texture)->base.bo;
int format, mthd = dst ? NV50_2D_DST_FORMAT : NV50_2D_SRC_FORMAT;
int flags = NOUVEAU_BO_VRAM | (dst ? NOUVEAU_BO_WR : NOUVEAU_BO_RD);
diff --git a/src/gallium/drivers/nv50/nv50_tex.c b/src/gallium/drivers/nv50/nv50_tex.c
index 14c68b96e14..033cb50c115 100644
--- a/src/gallium/drivers/nv50/nv50_tex.c
+++ b/src/gallium/drivers/nv50/nv50_tex.c
@@ -29,7 +29,7 @@ static int
nv50_tex_construct(struct nv50_context *nv50, struct nouveau_stateobj *so,
struct nv50_miptree *mt, int unit)
{
- switch (mt->base.format) {
+ switch (mt->base.base.format) {
case PIPE_FORMAT_A8R8G8B8_UNORM:
so_data(so, NV50TIC_0_0_MAPA_C3 | NV50TIC_0_0_TYPEA_UNORM |
NV50TIC_0_0_MAPR_C2 | NV50TIC_0_0_TYPER_UNORM |
@@ -118,18 +118,18 @@ nv50_tex_construct(struct nv50_context *nv50, struct nouveau_stateobj *so,
return 1;
}
- so_reloc(so, mt->bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_LOW |
+ so_reloc(so, mt->base.bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_LOW |
NOUVEAU_BO_RD, 0, 0);
if (nv50->sampler[unit]->normalized)
- so_data (so, 0xd0005000 | mt->bo->tile_mode << 22);
+ so_data (so, 0xd0005000 | mt->base.bo->tile_mode << 22);
else
- so_data (so, 0x5001d000 | mt->bo->tile_mode << 22);
+ so_data (so, 0x5001d000 | mt->base.bo->tile_mode << 22);
so_data (so, 0x00300000);
- so_data (so, mt->base.width[0]);
- so_data (so, (mt->base.last_level << 28) |
- (mt->base.depth[0] << 16) | mt->base.height[0]);
+ so_data (so, mt->base.base.width[0]);
+ so_data (so, (mt->base.base.last_level << 28) |
+ (mt->base.base.depth[0] << 16) | mt->base.base.height[0]);
so_data (so, 0x03000000);
- so_data (so, mt->base.last_level << 4);
+ so_data (so, mt->base.base.last_level << 4);
return 0;
}
diff --git a/src/gallium/drivers/nv50/nv50_transfer.c b/src/gallium/drivers/nv50/nv50_transfer.c
index d2b5e4d75d4..e9c3562194b 100644
--- a/src/gallium/drivers/nv50/nv50_transfer.c
+++ b/src/gallium/drivers/nv50/nv50_transfer.c
@@ -148,8 +148,8 @@ nv50_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
tx->base.usage = usage;
tx->level_pitch = lvl->pitch;
- tx->level_width = mt->base.width[level];
- tx->level_height = mt->base.height[level];
+ tx->level_width = mt->base.base.width[level];
+ tx->level_height = mt->base.base.height[level];
tx->level_offset = lvl->image_offset[image];
tx->level_tiling = lvl->tile_mode;
tx->level_x = x;
@@ -162,7 +162,7 @@ nv50_transfer_new(struct pipe_screen *pscreen, struct pipe_texture *pt,
}
if (usage != PIPE_TRANSFER_WRITE) {
- nv50_transfer_rect_m2mf(pscreen, mt->bo, tx->level_offset,
+ nv50_transfer_rect_m2mf(pscreen, mt->base.bo, tx->level_offset,
tx->level_pitch, tx->level_tiling,
x, y,
tx->level_width, tx->level_height,
@@ -188,7 +188,7 @@ nv50_transfer_del(struct pipe_transfer *ptx)
nv50_transfer_rect_m2mf(pscreen, tx->bo, 0, tx->base.stride,
tx->bo->tile_mode, 0, 0,
tx->base.width, tx->base.height,
- mt->bo, tx->level_offset,
+ mt->base.bo, tx->level_offset,
tx->level_pitch, tx->level_tiling,
tx->level_x, tx->level_y,
tx->level_width, tx->level_height,
diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c
index 36f1b24b2f0..eeed148c7b9 100644
--- a/src/gallium/drivers/nv50/nv50_vbo.c
+++ b/src/gallium/drivers/nv50/nv50_vbo.c
@@ -178,7 +178,7 @@ nv50_draw_elements_inline_u08(struct nv50_context *nv50, uint8_t *map,
BEGIN_RING(chan, tesla, 0x400015f0, nr >> 1);
for (i = 0; i < nr; i += 2)
- OUT_RING (chan, (map[1] << 16) | map[0]);
+ OUT_RING (chan, (map[i + 1] << 16) | map[i]);
count -= nr;
map += nr;
@@ -207,7 +207,7 @@ nv50_draw_elements_inline_u16(struct nv50_context *nv50, uint16_t *map,
BEGIN_RING(chan, tesla, 0x400015f0, nr >> 1);
for (i = 0; i < nr; i += 2)
- OUT_RING (chan, (map[1] << 16) | map[0]);
+ OUT_RING (chan, (map[i + 1] << 16) | map[i]);
count -= nr;
map += nr;
@@ -313,18 +313,18 @@ nv50_vbo_static_attrib(struct nv50_context *nv50, unsigned attrib,
so_data (so, fui(v[3]));
break;
case 3:
- so_method(so, tesla, NV50TCL_VTX_ATTR_3F_X(attrib), 4);
+ so_method(so, tesla, NV50TCL_VTX_ATTR_3F_X(attrib), 3);
so_data (so, fui(v[0]));
so_data (so, fui(v[1]));
so_data (so, fui(v[2]));
break;
case 2:
- so_method(so, tesla, NV50TCL_VTX_ATTR_2F_X(attrib), 4);
+ so_method(so, tesla, NV50TCL_VTX_ATTR_2F_X(attrib), 2);
so_data (so, fui(v[0]));
so_data (so, fui(v[1]));
break;
case 1:
- so_method(so, tesla, NV50TCL_VTX_ATTR_1F(attrib), 4);
+ so_method(so, tesla, NV50TCL_VTX_ATTR_1F(attrib), 1);
so_data (so, fui(v[0]));
break;
default:
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index cd458d019ae..aced4ab8877 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -233,7 +233,8 @@ static void r300_render_draw(struct vbuf_render* render,
OUT_CS_INDEX_RELOC(index_buffer, 0, count, RADEON_GEM_DOMAIN_GTT, 0, 0);
END_CS; */
- BEGIN_CS(2 + (count+1)/2);
+ BEGIN_CS(4 + (count+1)/2);
+ OUT_CS_REG(R300_VAP_VF_MAX_VTX_INDX, count);
OUT_CS_PKT3(R300_PACKET3_3D_DRAW_INDX_2, (count+1)/2);
OUT_CS(R300_VAP_VF_CNTL__PRIM_WALK_INDICES | (count << 16) |
r300render->hwprim);
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index c16cadd0407..81808017f86 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -429,6 +429,9 @@ static void r300_bind_rs_state(struct pipe_context* pipe, void* state)
r300->rs_state = rs;
r300->dirty_state |= R300_NEW_RASTERIZER;
+ r300->dirty_state |= R300_NEW_RS_BLOCK;
+ r300->dirty_state |= R300_NEW_SCISSOR;
+ r300->dirty_state |= R300_NEW_VIEWPORT;
}
/* Free rasterizer state. */
diff --git a/src/gallium/drivers/r300/r300_state_invariant.c b/src/gallium/drivers/r300/r300_state_invariant.c
index 1e92374a4e9..7d822fec483 100644
--- a/src/gallium/drivers/r300/r300_state_invariant.c
+++ b/src/gallium/drivers/r300/r300_state_invariant.c
@@ -38,7 +38,9 @@ void r300_emit_invariant_state(struct r300_context* r300)
/*** Graphics Backend (GB) ***/
/* Various GB enables */
- OUT_CS_REG(R300_GB_ENABLE, 0x0);
+ OUT_CS_REG(R300_GB_ENABLE, R300_GB_POINT_STUFF_ENABLE |
+ R300_GB_LINE_STUFF_ENABLE |
+ R300_GB_TRIANGLE_STUFF_ENABLE);
/* Subpixel multisampling for AA
* These are commented out because glisse's CS checker doesn't like them.
* I presume these will be re-enabled later.
diff --git a/src/gallium/drivers/r300/r300_surface.h b/src/gallium/drivers/r300/r300_surface.h
index d01f0b143f5..f9e98b2ec9c 100644
--- a/src/gallium/drivers/r300/r300_surface.h
+++ b/src/gallium/drivers/r300/r300_surface.h
@@ -73,9 +73,9 @@ static struct r300_rs_state rs_clear_state = {
};
static struct r300_rs_block r3xx_rs_block_clear_state = {
- .ip[0] = R500_RS_SEL_S(R300_RS_SEL_K0) |
- R500_RS_SEL_T(R300_RS_SEL_K0) |
- R500_RS_SEL_R(R300_RS_SEL_K0) |
+ .ip[0] = R500_RS_SEL_S(R300_RS_SEL_C0) |
+ R500_RS_SEL_T(R300_RS_SEL_C0) |
+ R500_RS_SEL_R(R300_RS_SEL_C0) |
R500_RS_SEL_Q(R300_RS_SEL_K1),
.inst[0] = R300_RS_INST_COL_CN_WRITE,
.count = R300_IT_COUNT(0) | R300_IC_COUNT(1) | R300_HIRES_EN,
diff --git a/src/gallium/drivers/trace/tr_context.c b/src/gallium/drivers/trace/tr_context.c
index 4ab718f233d..ae0af4d0557 100644
--- a/src/gallium/drivers/trace/tr_context.c
+++ b/src/gallium/drivers/trace/tr_context.c
@@ -1277,8 +1277,10 @@ trace_context_create(struct pipe_screen *_screen,
tr_ctx->base.set_sampler_textures = trace_context_set_sampler_textures;
tr_ctx->base.set_vertex_buffers = trace_context_set_vertex_buffers;
tr_ctx->base.set_vertex_elements = trace_context_set_vertex_elements;
- tr_ctx->base.surface_copy = trace_context_surface_copy;
- tr_ctx->base.surface_fill = trace_context_surface_fill;
+ if (pipe->surface_copy)
+ tr_ctx->base.surface_copy = trace_context_surface_copy;
+ if (pipe->surface_fill)
+ tr_ctx->base.surface_fill = trace_context_surface_fill;
tr_ctx->base.clear = trace_context_clear;
tr_ctx->base.flush = trace_context_flush;
tr_ctx->base.is_texture_referenced = trace_is_texture_referenced;
diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h
index f0ba4fb308c..5fa6c9af30b 100644
--- a/src/gallium/include/pipe/p_shader_tokens.h
+++ b/src/gallium/include/pipe/p_shader_tokens.h
@@ -184,7 +184,7 @@ union tgsi_immediate_data
#define TGSI_OPCODE_SUB 17
#define TGSI_OPCODE_LRP 18
#define TGSI_OPCODE_CND 19
-#define TGSI_OPCODE_CND0 20
+ /* gap */
#define TGSI_OPCODE_DP2A 21
/* gap */
#define TGSI_OPCODE_FRC 24
diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c
index bcfd1c06fec..5cec9e329d9 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/dri_drawable.c
@@ -189,12 +189,10 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv)
format = drawable->color_format;
break;
case __DRI_BUFFER_DEPTH:
- index = ST_SURFACE_DEPTH;
- format = drawable->depth_format;
- break;
+ case __DRI_BUFFER_DEPTH_STENCIL:
case __DRI_BUFFER_STENCIL:
index = ST_SURFACE_DEPTH;
- format = drawable->stencil_format;
+ format = drawable->depth_stencil_format;
break;
case __DRI_BUFFER_ACCUM:
default:
@@ -215,6 +213,18 @@ dri_get_buffers(__DRIdrawablePrivate * dPriv)
dri_drawable->w,
dri_drawable->h, buffers[i].pitch);
+ switch (buffers[i].attachment) {
+ case __DRI_BUFFER_FAKE_FRONT_LEFT:
+ case __DRI_BUFFER_BACK_LEFT:
+ drawable->color_format = surface->format;
+ break;
+ case __DRI_BUFFER_DEPTH:
+ case __DRI_BUFFER_DEPTH_STENCIL:
+ case __DRI_BUFFER_STENCIL:
+ drawable->depth_stencil_format = surface->format;
+ break;
+ }
+
st_set_framebuffer_surface(drawable->stfb, index, surface);
pipe_surface_reference(&surface, NULL);
}
@@ -241,9 +251,7 @@ void dri2_set_tex_buffer2(__DRIcontext *pDRICtx, GLint target,
st_get_framebuffer_surface(drawable->stfb, ST_SURFACE_FRONT_LEFT, &ps);
st_bind_texture_surface(ps, target == GL_TEXTURE_2D ? ST_TEXTURE_2D :
- ST_TEXTURE_RECT, 0,
- format == GLX_TEXTURE_FORMAT_RGBA_EXT ?
- PIPE_FORMAT_R8G8B8A8_UNORM : PIPE_FORMAT_R8G8B8X8_UNORM);
+ ST_TEXTURE_RECT, 0, drawable->color_format);
}
void dri2_set_tex_buffer(__DRIcontext *pDRICtx, GLint target,
@@ -311,43 +319,31 @@ dri_create_buffer(__DRIscreenPrivate * sPriv,
switch(visual->depthBits) {
default:
case 0:
- drawable->depth_format = PIPE_FORMAT_NONE;
+ drawable->depth_stencil_format = PIPE_FORMAT_NONE;
break;
case 16:
- drawable->depth_format = PIPE_FORMAT_Z16_UNORM;
+ drawable->depth_stencil_format = PIPE_FORMAT_Z16_UNORM;
break;
case 24:
if (visual->stencilBits == 0) {
- drawable->depth_format = (screen->d_depth_bits_last) ?
+ drawable->depth_stencil_format = (screen->d_depth_bits_last) ?
PIPE_FORMAT_X8Z24_UNORM:
PIPE_FORMAT_Z24X8_UNORM;
} else {
- drawable->depth_format = (screen->sd_depth_bits_last) ?
+ drawable->depth_stencil_format = (screen->sd_depth_bits_last) ?
PIPE_FORMAT_S8Z24_UNORM:
PIPE_FORMAT_Z24S8_UNORM;
}
break;
case 32:
- drawable->depth_format = PIPE_FORMAT_Z32_UNORM;
- break;
- }
-
- switch(visual->stencilBits) {
- default:
- case 0:
- drawable->stencil_format = PIPE_FORMAT_NONE;
- break;
- case 8:
- drawable->stencil_format = (screen->sd_depth_bits_last) ?
- PIPE_FORMAT_S8Z24_UNORM:
- PIPE_FORMAT_Z24S8_UNORM;
+ drawable->depth_stencil_format = PIPE_FORMAT_Z32_UNORM;
break;
}
drawable->stfb = st_create_framebuffer(visual,
drawable->color_format,
- drawable->depth_format,
- drawable->stencil_format,
+ drawable->depth_stencil_format,
+ drawable->depth_stencil_format,
dPriv->w,
dPriv->h, (void *)drawable);
if (drawable->stfb == NULL)
@@ -366,9 +362,11 @@ dri_create_buffer(__DRIscreenPrivate * sPriv,
drawable->attachments[i++] = __DRI_BUFFER_BACK_LEFT;
else
drawable->attachments[i++] = __DRI_BUFFER_FAKE_FRONT_LEFT;
- if (visual->depthBits)
+ if (visual->depthBits && visual->stencilBits)
+ drawable->attachments[i++] = __DRI_BUFFER_DEPTH_STENCIL;
+ else if (visual->depthBits)
drawable->attachments[i++] = __DRI_BUFFER_DEPTH;
- if (visual->stencilBits)
+ else if (visual->stencilBits)
drawable->attachments[i++] = __DRI_BUFFER_STENCIL;
drawable->num_attachments = i;
diff --git a/src/gallium/state_trackers/dri/dri_drawable.h b/src/gallium/state_trackers/dri/dri_drawable.h
index 9f9cb29b974..b910930db42 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.h
+++ b/src/gallium/state_trackers/dri/dri_drawable.h
@@ -63,8 +63,7 @@ struct dri_drawable
unsigned int cur_fences;
enum pipe_format color_format;
- enum pipe_format depth_format;
- enum pipe_format stencil_format;
+ enum pipe_format depth_stencil_format;
};
static INLINE struct dri_drawable *
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c
index f4c5893427d..957002ddd55 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -286,6 +286,18 @@ choose_pixel_format(XMesaVisual v)
return PIPE_FORMAT_B8G8R8A8_UNORM;
}
}
+ else if ( GET_REDMASK(v) == 0x0000ff00
+ && GET_GREENMASK(v) == 0x00ff0000
+ && GET_BLUEMASK(v) == 0xff000000
+ && v->BitsPerPixel == 32) {
+ if (native_byte_order) {
+ /* no byteswapping needed */
+ return PIPE_FORMAT_B8G8R8A8_UNORM;
+ }
+ else {
+ return PIPE_FORMAT_A8R8G8B8_UNORM;
+ }
+ }
else if ( GET_REDMASK(v) == 0xf800
&& GET_GREENMASK(v) == 0x07e0
&& GET_BLUEMASK(v) == 0x001f
@@ -656,7 +668,7 @@ XMesaVisual XMesaCreateVisual( Display *display,
* at a later time.
*/
v->visinfo = (XVisualInfo *) MALLOC(sizeof(*visinfo));
- if(!v->visinfo) {
+ if (!v->visinfo) {
_mesa_free(v);
return NULL;
}
@@ -743,7 +755,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
{
static GLboolean firstTime = GL_TRUE;
static struct pipe_screen *screen = NULL;
- struct pipe_context *pipe;
+ struct pipe_context *pipe = NULL;
XMesaContext c;
GLcontext *mesaCtx;
uint pf;
@@ -769,8 +781,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
if (screen == NULL)
goto fail;
- pipe = driver.create_pipe_context( screen,
- (void *)c );
+ pipe = driver.create_pipe_context(screen, (void *) c);
if (pipe == NULL)
goto fail;
@@ -783,23 +794,15 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
mesaCtx = c->st->ctx;
c->st->ctx->DriverCtx = c;
-#if 00
- _mesa_enable_sw_extensions(mesaCtx);
- _mesa_enable_1_3_extensions(mesaCtx);
- _mesa_enable_1_4_extensions(mesaCtx);
- _mesa_enable_1_5_extensions(mesaCtx);
- _mesa_enable_2_0_extensions(mesaCtx);
-#endif
-
return c;
- fail:
+fail:
if (c->st)
st_destroy_context(c->st);
else if (pipe)
pipe->destroy(pipe);
- FREE(c);
+ _mesa_free(c);
return NULL;
}
@@ -1153,7 +1156,7 @@ void XMesaFlush( XMesaContext c )
XMesaBuffer XMesaFindBuffer( Display *dpy, Drawable d )
{
XMesaBuffer b;
- for (b=XMesaBufferList; b; b=b->Next) {
+ for (b = XMesaBufferList; b; b = b->Next) {
if (b->drawable == d && b->xm_visual->display == dpy) {
return b;
}
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index af4ae05fb4a..c708ac31702 100644
--- a/src/gallium/state_trackers/xorg/xorg_composite.c
+++ b/src/gallium/state_trackers/xorg/xorg_composite.c
@@ -2,9 +2,10 @@
#include "xorg_exa_tgsi.h"
-#include <cso_cache/cso_context.h>
+#include "cso_cache/cso_context.h"
+#include "util/u_draw_quad.h"
-#include <pipe/p_inlines.h>
+#include "pipe/p_inlines.h"
struct xorg_composite_blend {
int op:8;
@@ -39,6 +40,24 @@ static const struct xorg_composite_blend xorg_blends[] = {
PIPE_BLENDFACTOR_INV_SRC_ALPHA, PIPE_BLENDFACTOR_INV_SRC_ALPHA },
};
+static INLINE void
+pixel_to_float4(PictFormatPtr format,
+ CARD32 pixel, float *color)
+{
+ CARD32 r, g, b, a;
+
+ debug_assert(format->type == PictTypeDirect);
+
+ r = (pixel >> format->direct.red) & format->direct.redMask;
+ g = (pixel >> format->direct.green) & format->direct.greenMask;
+ b = (pixel >> format->direct.blue) & format->direct.blueMask;
+ a = (pixel >> format->direct.alpha) & format->direct.alphaMask;
+ color[0] = ((float)r) / ((float)format->direct.redMask);
+ color[1] = ((float)g) / ((float)format->direct.greenMask);
+ color[2] = ((float)b) / ((float)format->direct.blueMask);
+ color[3] = ((float)a) / ((float)format->direct.alphaMask);
+}
+
struct acceleration_info {
int op : 16;
int with_mask : 1;
@@ -75,19 +94,168 @@ blend_for_op(int op)
return xorg_blends[BLEND_OP_OVER];
}
-static void
-draw_texture(struct exa_context *exa)
+static INLINE int
+render_repeat_to_gallium(int mode)
{
-#if 0
- if (buf) {
- util_draw_vertex_buffer(pipe, buf, 0,
- PIPE_PRIM_TRIANGLE_FAN,
- 4, /* verts */
- 2); /* attribs/vert */
-
- pipe_buffer_reference(&buf, NULL);
+ switch(mode) {
+ case RepeatNone:
+ return PIPE_TEX_WRAP_CLAMP;
+ case RepeatNormal:
+ return PIPE_TEX_WRAP_REPEAT;
+ case RepeatReflect:
+ return PIPE_TEX_WRAP_MIRROR_REPEAT;
+ case RepeatPad:
+ return PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ default:
+ debug_printf("Unsupported repeat mode\n");
}
-#endif
+ return PIPE_TEX_WRAP_REPEAT;
+}
+
+
+static INLINE void
+setup_vertex0(float vertex[2][4], float x, float y,
+ float color[4])
+{
+ vertex[0][0] = x;
+ vertex[0][1] = y;
+ vertex[0][2] = 0.f; /*z*/
+ vertex[0][3] = 1.f; /*w*/
+
+ vertex[1][0] = color[0]; /*r*/
+ vertex[1][1] = color[1]; /*g*/
+ vertex[1][2] = color[2]; /*b*/
+ vertex[1][3] = color[3]; /*a*/
+}
+
+static struct pipe_buffer *
+setup_vertex_data0(struct exa_context *ctx,
+ int srcX, int srcY, int maskX, int maskY,
+ int dstX, int dstY, int width, int height)
+{
+ float vertices[4][2][4];
+
+ /* 1st vertex */
+ setup_vertex0(vertices[0], dstX, dstY,
+ ctx->solid_color);
+ /* 2nd vertex */
+ setup_vertex0(vertices[1], dstX + width, dstY,
+ ctx->solid_color);
+ /* 3rd vertex */
+ setup_vertex0(vertices[2], dstX + width, dstY + height,
+ ctx->solid_color);
+ /* 4th vertex */
+ setup_vertex0(vertices[3], dstX, dstY + height,
+ ctx->solid_color);
+
+ return pipe_user_buffer_create(ctx->ctx->screen,
+ vertices,
+ sizeof(vertices));
+}
+
+static INLINE void
+setup_vertex1(float vertex[2][4], float x, float y, float s, float t)
+{
+ vertex[0][0] = x;
+ vertex[0][1] = y;
+ vertex[0][2] = 0.f; /*z*/
+ vertex[0][3] = 1.f; /*w*/
+
+ vertex[1][0] = s; /*s*/
+ vertex[1][1] = t; /*t*/
+ vertex[1][2] = 0.f; /*r*/
+ vertex[1][3] = 1.f; /*q*/
+}
+
+static struct pipe_buffer *
+setup_vertex_data1(struct exa_context *ctx,
+ int srcX, int srcY, int maskX, int maskY,
+ int dstX, int dstY, int width, int height)
+{
+ float vertices[4][2][4];
+ float s0, t0, s1, t1;
+ struct pipe_texture *src = ctx->bound_textures[0];
+
+ s0 = srcX / src->width[0];
+ s1 = srcX + width / src->width[0];
+ t0 = srcY / src->height[0];
+ t1 = srcY + height / src->height[0];
+
+ /* 1st vertex */
+ setup_vertex1(vertices[0], dstX, dstY,
+ s0, t0);
+ /* 2nd vertex */
+ setup_vertex1(vertices[1], dstX + width, dstY,
+ s1, t0);
+ /* 3rd vertex */
+ setup_vertex1(vertices[2], dstX + width, dstY + height,
+ s1, t1);
+ /* 4th vertex */
+ setup_vertex1(vertices[3], dstX, dstY + height,
+ s0, t1);
+
+ return pipe_user_buffer_create(ctx->ctx->screen,
+ vertices,
+ sizeof(vertices));
+}
+
+
+static INLINE void
+setup_vertex2(float vertex[3][4], float x, float y,
+ float s0, float t0, float s1, float t1)
+{
+ vertex[0][0] = x;
+ vertex[0][1] = y;
+ vertex[0][2] = 0.f; /*z*/
+ vertex[0][3] = 1.f; /*w*/
+
+ vertex[1][0] = s0; /*s*/
+ vertex[1][1] = t0; /*t*/
+ vertex[1][2] = 0.f; /*r*/
+ vertex[1][3] = 1.f; /*q*/
+
+ vertex[2][0] = s1; /*s*/
+ vertex[2][1] = t1; /*t*/
+ vertex[2][2] = 0.f; /*r*/
+ vertex[2][3] = 1.f; /*q*/
+}
+
+static struct pipe_buffer *
+setup_vertex_data2(struct exa_context *ctx,
+ int srcX, int srcY, int maskX, int maskY,
+ int dstX, int dstY, int width, int height)
+{
+ float vertices[4][3][4];
+ float st0[4], st1[4];
+ struct pipe_texture *src = ctx->bound_textures[0];
+ struct pipe_texture *mask = ctx->bound_textures[0];
+
+ st0[0] = srcX / src->width[0];
+ st0[1] = srcY / src->height[0];
+ st0[2] = srcX + width / src->width[0];
+ st0[3] = srcY + height / src->height[0];
+
+ st1[0] = maskX / mask->width[0];
+ st1[1] = maskY / mask->height[0];
+ st1[2] = maskX + width / mask->width[0];
+ st1[3] = maskY + height / mask->height[0];
+
+ /* 1st vertex */
+ setup_vertex2(vertices[0], dstX, dstY,
+ st0[0], st0[1], st1[0], st1[1]);
+ /* 2nd vertex */
+ setup_vertex2(vertices[1], dstX + width, dstY,
+ st0[2], st0[1], st1[2], st1[1]);
+ /* 3rd vertex */
+ setup_vertex2(vertices[2], dstX + width, dstY + height,
+ st0[2], st0[3], st1[2], st1[3]);
+ /* 4th vertex */
+ setup_vertex2(vertices[3], dstX, dstY + height,
+ st0[0], st0[3], st1[0], st1[3]);
+
+ return pipe_user_buffer_create(ctx->ctx->screen,
+ vertices,
+ sizeof(vertices));
}
boolean xorg_composite_accelerated(int op,
@@ -172,27 +340,10 @@ set_viewport(struct exa_context *exa, int width, int height,
static void
bind_viewport_state(struct exa_context *exa, PicturePtr pDstPicture)
{
- const int param_bytes = 8 * sizeof(float);
int width = pDstPicture->pDrawable->width;
int height = pDstPicture->pDrawable->height;
- float vs_consts[8] = {
- 2.f/width, 2.f/height, 1, 1,
- -1, -1, 0, 0
- };
- struct pipe_constant_buffer *cbuf = &exa->vs_const_buffer;
-
- set_viewport(exa, width, height, Y0_BOTTOM);
-
- pipe_buffer_reference(&cbuf->buffer, NULL);
- cbuf->buffer = pipe_buffer_create(exa->ctx->screen, 16,
- PIPE_BUFFER_USAGE_CONSTANT,
- param_bytes);
- if (cbuf->buffer) {
- pipe_buffer_write(exa->ctx->screen, cbuf->buffer,
- 0, param_bytes, vs_consts);
- }
- exa->ctx->set_constant_buffer(exa->ctx, PIPE_SHADER_VERTEX, 0, cbuf);
+ set_viewport(exa, width, height, Y0_TOP);
}
static void
@@ -240,8 +391,20 @@ bind_shaders(struct exa_context *exa, int op,
struct xorg_shader shader;
if (pSrcPicture) {
- vs_traits |= VS_COMPOSITE;
- fs_traits |= FS_COMPOSITE;
+ if (pSrcPicture->pSourcePict) {
+ if (pSrcPicture->pSourcePict->type == SourcePictTypeSolidFill) {
+ fs_traits |= FS_SOLID_FILL;
+ vs_traits |= VS_SOLID_FILL;
+ pixel_to_float4(pSrcPicture->pFormat,
+ pSrcPicture->pSourcePict->solidFill.color,
+ exa->solid_color);
+ } else {
+ debug_assert("!gradients not supported");
+ }
+ } else {
+ fs_traits |= FS_COMPOSITE;
+ vs_traits |= VS_COMPOSITE;
+ }
}
if (pMaskPicture) {
@@ -264,35 +427,98 @@ bind_samplers(struct exa_context *exa, int op,
struct exa_pixmap_priv *pDst)
{
struct pipe_sampler_state *samplers[PIPE_MAX_SAMPLERS];
- struct pipe_texture *textures[PIPE_MAX_SAMPLERS];
struct pipe_sampler_state src_sampler, mask_sampler;
+ exa->num_bound_samplers = 0;
+
memset(&src_sampler, 0, sizeof(struct pipe_sampler_state));
memset(&mask_sampler, 0, sizeof(struct pipe_sampler_state));
if (pSrcPicture && pSrc) {
- src_sampler.wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
- src_sampler.wrap_t = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ unsigned src_wrap = render_repeat_to_gallium(
+ pSrcPicture->repeatType);
+ src_sampler.wrap_s = src_wrap;
+ src_sampler.wrap_t = src_wrap;
src_sampler.min_img_filter = PIPE_TEX_MIPFILTER_NEAREST;
src_sampler.mag_img_filter = PIPE_TEX_MIPFILTER_NEAREST;
src_sampler.normalized_coords = 1;
samplers[0] = &src_sampler;
- textures[0] = pSrc->tex;
+ exa->bound_textures[0] = pSrc->tex;
+ ++exa->num_bound_samplers;
}
if (pMaskPicture && pMask) {
- mask_sampler.wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
- mask_sampler.wrap_t = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ unsigned mask_wrap = render_repeat_to_gallium(
+ pMaskPicture->repeatType);
+ mask_sampler.wrap_s = mask_wrap;
+ mask_sampler.wrap_t = mask_wrap;
mask_sampler.min_img_filter = PIPE_TEX_MIPFILTER_NEAREST;
mask_sampler.mag_img_filter = PIPE_TEX_MIPFILTER_NEAREST;
mask_sampler.normalized_coords = 1;
samplers[1] = &mask_sampler;
- textures[1] = pMask->tex;
+ exa->bound_textures[1] = pMask->tex;
+ ++exa->num_bound_samplers;
}
- cso_set_samplers(exa->cso, 3,
+ cso_set_samplers(exa->cso, exa->num_bound_samplers,
(const struct pipe_sampler_state **)samplers);
- cso_set_sampler_textures(exa->cso, 3, textures);
+ cso_set_sampler_textures(exa->cso, exa->num_bound_samplers,
+ exa->bound_textures);
+}
+
+static void
+setup_vs_constant_buffer(struct exa_context *exa,
+ int width, int height)
+{
+ const int param_bytes = 8 * sizeof(float);
+ float vs_consts[8] = {
+ 2.f/width, 2.f/height, 1, 1,
+ -1, -1, 0, 0
+ };
+ struct pipe_constant_buffer *cbuf = &exa->vs_const_buffer;
+
+ pipe_buffer_reference(&cbuf->buffer, NULL);
+ cbuf->buffer = pipe_buffer_create(exa->ctx->screen, 16,
+ PIPE_BUFFER_USAGE_CONSTANT,
+ param_bytes);
+
+ if (cbuf->buffer) {
+ pipe_buffer_write(exa->ctx->screen, cbuf->buffer,
+ 0, param_bytes, vs_consts);
+ }
+ exa->ctx->set_constant_buffer(exa->ctx, PIPE_SHADER_VERTEX, 0, cbuf);
+}
+
+
+static void
+setup_fs_constant_buffer(struct exa_context *exa)
+{
+ const int param_bytes = 4 * sizeof(float);
+ float fs_consts[8] = {
+ 0, 0, 0, 1,
+ };
+ struct pipe_constant_buffer *cbuf = &exa->fs_const_buffer;
+
+ pipe_buffer_reference(&cbuf->buffer, NULL);
+ cbuf->buffer = pipe_buffer_create(exa->ctx->screen, 16,
+ PIPE_BUFFER_USAGE_CONSTANT,
+ param_bytes);
+
+ if (cbuf->buffer) {
+ pipe_buffer_write(exa->ctx->screen, cbuf->buffer,
+ 0, param_bytes, fs_consts);
+ }
+ exa->ctx->set_constant_buffer(exa->ctx, PIPE_SHADER_FRAGMENT, 0, cbuf);
+}
+
+static void
+setup_constant_buffers(struct exa_context *exa, PicturePtr pDstPicture)
+{
+ int width = pDstPicture->pDrawable->width;
+ int height = pDstPicture->pDrawable->height;
+
+ setup_vs_constant_buffer(exa, width, height);
+ setup_fs_constant_buffer(exa);
}
boolean xorg_composite_bind_state(struct exa_context *exa,
@@ -309,8 +535,10 @@ boolean xorg_composite_bind_state(struct exa_context *exa,
bind_blend_state(exa, op, pSrcPicture, pMaskPicture);
bind_rasterizer_state(exa);
bind_shaders(exa, op, pSrcPicture, pMaskPicture);
- bind_samplers(exa, op, pSrcPicture, pMaskPicture, pDstPicture,
- pSrc, pMask, pDst);
+ bind_samplers(exa, op, pSrcPicture, pMaskPicture,
+ pDstPicture, pSrc, pMask, pDst);
+
+ setup_constant_buffers(exa, pDstPicture);
return FALSE;
}
@@ -320,5 +548,37 @@ void xorg_composite(struct exa_context *exa,
int srcX, int srcY, int maskX, int maskY,
int dstX, int dstY, int width, int height)
{
+ struct pipe_context *pipe = exa->ctx;
+ struct pipe_buffer *buf = 0;
+
+ if (exa->num_bound_samplers == 0 ) { /* solid fill */
+ buf = setup_vertex_data0(exa,
+ srcX, srcY, maskX, maskY,
+ dstX, dstY, width, height);
+ } else if (exa->num_bound_samplers == 1 ) /* src */
+ buf = setup_vertex_data1(exa,
+ srcX, srcY, maskX, maskY,
+ dstX, dstY, width, height);
+ else if (exa->num_bound_samplers == 2) /* src + mask */
+ buf = setup_vertex_data2(exa,
+ srcX, srcY, maskX, maskY,
+ dstX, dstY, width, height);
+ else if (exa->num_bound_samplers == 3) { /* src + mask + dst */
+ debug_assert(!"src/mask/dst not handled right now");
+#if 0
+ buf = setup_vertex_data2(exa,
+ srcX, srcY, maskX, maskY,
+ dstX, dstY, width, height);
+#endif
+ }
+
+ if (buf) {
+ util_draw_vertex_buffer(pipe, buf, 0,
+ PIPE_PRIM_TRIANGLE_FAN,
+ 4, /* verts */
+ 1 + exa->num_bound_samplers); /* attribs/vert */
+
+ pipe_buffer_reference(&buf, NULL);
+ }
}
diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c
index 3b90421de9f..6431a0fe254 100644
--- a/src/gallium/state_trackers/xorg/xorg_dri2.c
+++ b/src/gallium/state_trackers/xorg/xorg_dri2.c
@@ -33,6 +33,7 @@
#include "xf86_OSproc.h"
#include "xorg_tracker.h"
+#include "xorg_exa.h"
#include "dri2.h"
@@ -47,62 +48,57 @@ typedef struct {
struct pipe_fence_handle *fence;
} *BufferPrivatePtr;
-static DRI2BufferPtr
-driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
+static Bool
+driDoCreateBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int format)
{
- struct pipe_texture *depth, *tex;
- struct pipe_buffer *buf;
+ struct pipe_texture *tex = NULL;
ScreenPtr pScreen = pDraw->pScreen;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
modesettingPtr ms = modesettingPTR(pScrn);
- BufferPrivatePtr privates;
- DRI2BufferPtr buffers;
+ struct exa_pixmap_priv *exa_priv;
+ BufferPrivatePtr private = buffer->driverPrivate;
PixmapPtr pPixmap;
unsigned stride, handle;
- boolean have_depth = FALSE, have_stencil = FALSE;
- int i;
-
- buffers = xcalloc(count, sizeof *buffers);
- if (!buffers)
- goto fail_buffers;
-
- privates = xcalloc(count, sizeof *privates);
- if (!privates)
- goto fail_privates;
-
- for (i = 0; i < count; i++) {
- if (attachments[i] == DRI2BufferDepth)
- have_depth = TRUE;
- else if (attachments[i] == DRI2BufferStencil)
- have_stencil = TRUE;
- }
-
- if (have_stencil && !have_depth)
- FatalError("Doesn't support only stencil yet\n");
- depth = NULL;
- for (i = 0; i < count; i++) {
- pPixmap = NULL;
- tex = NULL;
- buf = NULL;
- if (attachments[i] == DRI2BufferFrontLeft) {
- if (pDraw->type == DRAWABLE_PIXMAP)
- pPixmap = (PixmapPtr) pDraw;
- else
- pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr) pDraw);
- pPixmap->refcnt++;
- } else if (attachments[i] == DRI2BufferStencil) {
- pipe_texture_reference(&tex, depth);
- } else if (attachments[i] == DRI2BufferDepth) {
+ if (pDraw->type == DRAWABLE_PIXMAP)
+ pPixmap = (PixmapPtr) pDraw;
+ else
+ pPixmap = (*pScreen->GetWindowPixmap)((WindowPtr) pDraw);
+ exa_priv = exaGetPixmapDriverPrivate(pPixmap);
+
+ switch (buffer->attachment) {
+ default:
+ if (buffer->attachment != DRI2BufferFakeFrontLeft ||
+ pDraw->type != DRAWABLE_PIXMAP) {
+ private->pPixmap = (*pScreen->CreatePixmap)(pScreen, pDraw->width,
+ pDraw->height,
+ pDraw->depth,
+ 0);
+ }
+ break;
+ case DRI2BufferFrontLeft:
+ break;
+ case DRI2BufferStencil:
+#if defined(DRI2INFOREC_VERSION) && DRI2INFOREC_VERSION > 2
+ case DRI2BufferDepthStencil:
+ if (exa_priv->depth_stencil_tex &&
+ !pf_is_depth_stencil(exa_priv->depth_stencil_tex->format))
+ exa_priv->depth_stencil_tex = NULL;
+ /* Fall through */
+#endif
+ case DRI2BufferDepth:
+ if (exa_priv->depth_stencil_tex)
+ pipe_texture_reference(&tex, exa_priv->depth_stencil_tex);
+ else {
struct pipe_texture template;
memset(&template, 0, sizeof(template));
template.target = PIPE_TEXTURE_2D;
- if (have_stencil)
+ if (buffer->attachment == DRI2BufferDepth)
template.format = ms->ds_depth_bits_last ?
- PIPE_FORMAT_S8Z24_UNORM : PIPE_FORMAT_Z24S8_UNORM;
- else
- template.format = ms->d_depth_bits_last ?
PIPE_FORMAT_X8Z24_UNORM : PIPE_FORMAT_Z24X8_UNORM;
+ else
+ template.format = ms->ds_depth_bits_last ?
+ PIPE_FORMAT_S8Z24_UNORM : PIPE_FORMAT_Z24S8_UNORM;
pf_get_block(template.format, &template.block);
template.width[0] = pDraw->width;
template.height[0] = pDraw->height;
@@ -111,41 +107,119 @@ driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
template.tex_usage = PIPE_TEXTURE_USAGE_DEPTH_STENCIL |
PIPE_TEXTURE_USAGE_DISPLAY_TARGET;
tex = ms->screen->texture_create(ms->screen, &template);
- depth = tex;
- } else if (attachments[i] == DRI2BufferFakeFrontLeft &&
- pDraw->type == DRAWABLE_PIXMAP) {
- pPixmap = (PixmapPtr) pDraw;
- pPixmap->refcnt++;
- } else {
- pPixmap = (*pScreen->CreatePixmap)(pScreen, pDraw->width,
- pDraw->height,
- pDraw->depth,
- 0);
+ pipe_texture_reference(&exa_priv->depth_stencil_tex, tex);
}
+ break;
+ }
- if (pPixmap) {
- xorg_exa_set_shared_usage(pPixmap);
- pScreen->ModifyPixmapHeader(pPixmap, 0, 0, 0, 0, 0, NULL);
- tex = xorg_exa_get_texture(pPixmap);
- }
+ if (!private->pPixmap) {
+ private->pPixmap = pPixmap;
+ pPixmap->refcnt++;
+ }
+
+ if (!tex) {
+ xorg_exa_set_shared_usage(private->pPixmap);
+ pScreen->ModifyPixmapHeader(private->pPixmap, 0, 0, 0, 0, 0, NULL);
+ tex = xorg_exa_get_texture(private->pPixmap);
+ }
+
+ if (!tex)
+ FatalError("NO TEXTURE IN DRI2\n");
+
+ ms->api->shared_handle_from_texture(ms->api, ms->screen, tex, &stride, &handle);
- if (!tex)
- FatalError("NO TEXTURE IN DRI2\n");
+ buffer->name = handle;
+ buffer->pitch = stride;
+ buffer->cpp = 4;
+ buffer->driverPrivate = private;
+ buffer->flags = 0; /* not tiled */
+ private->tex = tex;
+
+ return TRUE;
+}
+
+static void
+driDoDestroyBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer)
+{
+ ScreenPtr pScreen = pDraw->pScreen;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ modesettingPtr ms = modesettingPTR(pScrn);
+ BufferPrivatePtr private = buffer->driverPrivate;
+ struct exa_pixmap_priv *exa_priv = exaGetPixmapDriverPrivate(private->pPixmap);
+
+ pipe_texture_reference(&private->tex, NULL);
+ ms->screen->fence_reference(ms->screen, &private->fence, NULL);
+ pipe_texture_reference(&exa_priv->depth_stencil_tex, NULL);
+ (*pScreen->DestroyPixmap)(private->pPixmap);
+}
- ms->api->shared_handle_from_texture(ms->api, ms->screen, tex, &stride, &handle);
+#if defined(DRI2INFOREC_VERSION) && DRI2INFOREC_VERSION > 2
- buffers[i].name = handle;
+static DRI2BufferPtr
+driCreateBuffer(DrawablePtr pDraw, unsigned int attachment, unsigned int format)
+{
+ DRI2BufferPtr buffer;
+ BufferPrivatePtr private;
+
+ buffer = xcalloc(1, sizeof *buffer);
+ if (!buffer)
+ return NULL;
+
+ private = xcalloc(1, sizeof *private);
+ if (!private) {
+ goto fail;
+ }
+
+ buffer->attachment = attachment;
+ buffer->driverPrivate = private;
+
+ if (driDoCreateBuffer(pDraw, buffer, format))
+ return buffer;
+
+ xfree(private);
+fail:
+ xfree(buffer);
+ return NULL;
+}
+
+static void
+driDestroyBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer)
+{
+ driDoDestroyBuffer(pDraw, buffer);
+
+ xfree(buffer->driverPrivate);
+ xfree(buffer);
+}
+
+#else /* DRI2INFOREC_VERSION <= 2 */
+
+static DRI2BufferPtr
+driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
+{
+ BufferPrivatePtr privates;
+ DRI2BufferPtr buffers;
+ int i;
+
+ buffers = xcalloc(count, sizeof *buffers);
+ if (!buffers)
+ goto fail_buffers;
+
+ privates = xcalloc(count, sizeof *privates);
+ if (!privates)
+ goto fail_privates;
+
+ for (i = 0; i < count; i++) {
buffers[i].attachment = attachments[i];
- buffers[i].pitch = stride;
- buffers[i].cpp = 4;
buffers[i].driverPrivate = &privates[i];
- buffers[i].flags = 0; /* not tiled */
- privates[i].pPixmap = pPixmap;
- privates[i].tex = tex;
+
+ if (!driDoCreateBuffer(pDraw, &buffers[i], 0))
+ goto fail;
}
return buffers;
+fail:
+ xfree(privates);
fail_privates:
xfree(buffers);
fail_buffers:
@@ -155,21 +229,10 @@ fail_buffers:
static void
driDestroyBuffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count)
{
- ScreenPtr pScreen = pDraw->pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- modesettingPtr ms = modesettingPTR(pScrn);
- BufferPrivatePtr private;
int i;
- (void)ms;
for (i = 0; i < count; i++) {
- private = buffers[i].driverPrivate;
-
- pipe_texture_reference(&private->tex, NULL);
- ms->screen->fence_reference(ms->screen, &private->fence, NULL);
-
- if (private->pPixmap)
- (*pScreen->DestroyPixmap)(private->pPixmap);
+ driDoDestroyBuffer(pDraw, &buffers[i]);
}
if (buffers) {
@@ -178,6 +241,8 @@ driDestroyBuffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count)
}
}
+#endif /* DRI2INFOREC_VERSION */
+
static void
driCopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
DRI2BufferPtr pDestBuffer, DRI2BufferPtr pSrcBuffer)
@@ -273,15 +338,25 @@ driScreenInit(ScreenPtr pScreen)
modesettingPtr ms = modesettingPTR(pScrn);
DRI2InfoRec dri2info;
+#if defined(DRI2INFOREC_VERSION)
+ dri2info.version = DRI2INFOREC_VERSION;
+#else
dri2info.version = 1;
+#endif
dri2info.fd = ms->fd;
dri2info.driverName = pScrn->driverName;
dri2info.deviceName = "/dev/dri/card0"; /* FIXME */
+#if defined(DRI2INFOREC_VERSION) && DRI2INFOREC_VERSION > 2
+ dri2info.CreateBuffer = driCreateBuffer;
+ dri2info.DestroyBuffer = driDestroyBuffer;
+#else
dri2info.CreateBuffers = driCreateBuffers;
dri2info.DestroyBuffers = driDestroyBuffers;
+#endif
dri2info.CopyRegion = driCopyRegion;
+ dri2info.Wait = NULL;
ms->d_depth_bits_last =
ms->screen->is_format_supported(ms->screen, PIPE_FORMAT_X8Z24_UNORM,
diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c
index bc3fd54bdb4..643b6b3b9e4 100644
--- a/src/gallium/state_trackers/xorg/xorg_driver.c
+++ b/src/gallium/state_trackers/xorg/xorg_driver.c
@@ -33,10 +33,8 @@
#include "xf86.h"
#include "xf86_OSproc.h"
#include "compiler.h"
-#include "xf86RAC.h"
#include "xf86PciInfo.h"
#include "xf86Pci.h"
-#include "xf86Resources.h"
#include "mipointer.h"
#include "micmap.h"
#include <X11/extensions/randr.h>
@@ -85,41 +83,9 @@ static const OptionInfoRec Options[] = {
};
/*
- * Functions that might be needed
- */
-
-static const char *exaSymbols[] = {
- "exaGetVersion",
- "exaDriverInit",
- "exaDriverFini",
- "exaOffscreenAlloc",
- "exaOffscreenFree",
- "exaWaitSync",
- NULL
-};
-
-static const char *fbSymbols[] = {
- "fbPictureInit",
- "fbScreenInit",
- NULL
-};
-
-static const char *ddcSymbols[] = {
- "xf86PrintEDID",
- "xf86SetDDCproperties",
- NULL
-};
-
-/*
* Exported Xorg driver functions to winsys
*/
-void
-xorg_tracker_loader_ref_sym_lists()
-{
- LoaderRefSymLists(exaSymbols, fbSymbols, ddcSymbols, NULL);
-}
-
const OptionInfoRec *
xorg_tracker_available_options(int chipid, int busid)
{
@@ -288,10 +254,6 @@ PreInit(ScrnInfoPtr pScrn, int flags)
} else
ms->entityPrivate = NULL;
- if (xf86RegisterResources(ms->pEnt->index, NULL, ResNone)) {
- return FALSE;
- }
-
if (xf86IsEntityShared(pScrn->entityList[0])) {
if (xf86IsPrimInitDone(pScrn->entityList[0])) {
/* do something */
@@ -312,7 +274,6 @@ PreInit(ScrnInfoPtr pScrn, int flags)
if (ms->fd < 0)
return FALSE;
- pScrn->racMemFlags = RAC_FB | RAC_COLORMAP;
pScrn->monitor = pScrn->confScreen->monitor;
pScrn->progClock = TRUE;
pScrn->rgbBits = 8;
@@ -398,8 +359,6 @@ PreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
- xf86LoaderReqSymLists(fbSymbols, NULL);
-
xf86LoadSubModule(pScrn, "exa");
#ifdef DRI2
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 18afa01dbd5..a17a71f23a8 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -98,6 +98,68 @@ ExaMarkSync(ScreenPtr pScreen)
}
static Bool
+ExaDownloadFromScreen(PixmapPtr pPix, int x, int y, int w, int h, char *dst,
+ int dst_pitch)
+{
+ ScreenPtr pScreen = pPix->drawable.pScreen;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ modesettingPtr ms = modesettingPTR(pScrn);
+ struct exa_context *exa = ms->exa;
+ struct exa_pixmap_priv *priv = exaGetPixmapDriverPrivate(pPix);
+ struct pipe_transfer *transfer;
+
+ if (!priv || !priv->tex)
+ return FALSE;
+
+ if (exa->ctx->is_texture_referenced(exa->ctx, priv->tex, 0, 0) &
+ PIPE_REFERENCED_FOR_WRITE)
+ exa->ctx->flush(exa->ctx, 0, NULL);
+
+ transfer = exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
+ PIPE_TRANSFER_READ, x, y, w, h);
+ if (!transfer)
+ return FALSE;
+
+ util_copy_rect((unsigned char*)dst, &priv->tex->block, dst_pitch, 0, 0,
+ w, h, exa->scrn->transfer_map(exa->scrn, transfer),
+ transfer->stride, 0, 0);
+
+ exa->scrn->transfer_unmap(exa->scrn, transfer);
+ exa->scrn->tex_transfer_destroy(transfer);
+
+ return TRUE;
+}
+
+static Bool
+ExaUploadToScreen(PixmapPtr pPix, int x, int y, int w, int h, char *src,
+ int src_pitch)
+{
+ ScreenPtr pScreen = pPix->drawable.pScreen;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ modesettingPtr ms = modesettingPTR(pScrn);
+ struct exa_context *exa = ms->exa;
+ struct exa_pixmap_priv *priv = exaGetPixmapDriverPrivate(pPix);
+ struct pipe_transfer *transfer;
+
+ if (!priv || !priv->tex)
+ return FALSE;
+
+ transfer = exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
+ PIPE_TRANSFER_WRITE, x, y, w, h);
+ if (!transfer)
+ return FALSE;
+
+ util_copy_rect(exa->scrn->transfer_map(exa->scrn, transfer),
+ &priv->tex->block, transfer->stride, 0, 0, w, h,
+ (unsigned char*)src, src_pitch, 0, 0);
+
+ exa->scrn->transfer_unmap(exa->scrn, transfer);
+ exa->scrn->tex_transfer_destroy(transfer);
+
+ return TRUE;
+}
+
+static Bool
ExaPrepareAccess(PixmapPtr pPix, int index)
{
ScreenPtr pScreen = pPix->drawable.pScreen;
@@ -188,9 +250,6 @@ ExaPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg)
struct exa_pixmap_priv *priv = exaGetPixmapDriverPrivate(pPixmap);
struct exa_context *exa = ms->exa;
- if (1)
- return FALSE;
-
if (pPixmap->drawable.depth < 15)
return FALSE;
@@ -430,7 +489,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
modesettingPtr ms = modesettingPTR(pScrn);
struct exa_context *exa = ms->exa;
- if (!priv)
+ if (!priv || pPixData)
return FALSE;
if (depth <= 0)
@@ -452,65 +511,69 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height,
bitsPerPixel, devKind, NULL);
/* Deal with screen resize */
- if (priv->tex && (priv->tex->width[0] != width ||
- priv->tex->height[0] != height ||
- priv->tex_flags != priv->flags)) {
- pipe_texture_reference(&priv->tex, NULL);
- }
+ if (!priv->tex ||
+ (priv->tex->width[0] != width ||
+ priv->tex->height[0] != height ||
+ priv->tex_flags != priv->flags)) {
+ struct pipe_texture *texture = NULL;
- if (!priv->tex
#ifdef DRM_MODE_FEATURE_DIRTYFB
- && priv->flags
+ if (priv->flags)
#endif
- ) {
- struct pipe_texture template;
-
- memset(&template, 0, sizeof(template));
- template.target = PIPE_TEXTURE_2D;
- exa_get_pipe_format(depth, &template.format, &bitsPerPixel);
- pf_get_block(template.format, &template.block);
- template.width[0] = width;
- template.height[0] = height;
- template.depth[0] = 1;
- template.last_level = 0;
- template.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET | priv->flags;
- priv->tex_flags = priv->flags;
- priv->tex = exa->scrn->texture_create(exa->scrn, &template);
- }
-
+ {
+ struct pipe_texture template;
+
+ memset(&template, 0, sizeof(template));
+ template.target = PIPE_TEXTURE_2D;
+ exa_get_pipe_format(depth, &template.format, &bitsPerPixel);
+ pf_get_block(template.format, &template.block);
+ template.width[0] = width;
+ template.height[0] = height;
+ template.depth[0] = 1;
+ template.last_level = 0;
+ template.tex_usage = PIPE_TEXTURE_USAGE_RENDER_TARGET | priv->flags;
+ priv->tex_flags = priv->flags;
+ texture = exa->scrn->texture_create(exa->scrn, &template);
+
+ if (priv->tex) {
+ struct pipe_surface *dst_surf;
+
+ dst_surf = exa->scrn->get_tex_surface(exa->scrn, texture, 0, 0, 0,
+ PIPE_BUFFER_USAGE_GPU_WRITE);
+ priv->src_surf = exa_gpu_surface(exa, priv);
+ exa->ctx->surface_copy(exa->ctx, dst_surf, 0, 0, priv->src_surf,
+ 0, 0, min(width, texture->width[0]),
+ min(height, texture->height[0]));
+ exa->scrn->tex_surface_destroy(dst_surf);
+ exa->scrn->tex_surface_destroy(priv->src_surf);
+ priv->src_surf = NULL;
+ } else if (pPixmap->devPrivate.ptr) {
+ struct pipe_transfer *transfer;
+
+ if (priv->map_count != 0)
+ FatalError("doing ExaModifyPixmapHeader on mapped buffer\n");
+
+ transfer =
+ exa->scrn->get_tex_transfer(exa->scrn, texture, 0, 0, 0,
+ PIPE_TRANSFER_WRITE,
+ 0, 0, width, height);
+ util_copy_rect(exa->scrn->transfer_map(exa->scrn, transfer),
+ &texture->block, transfer->stride, 0, 0,
+ width, height, pPixmap->devPrivate.ptr,
+ pPixmap->devKind, 0, 0);
+ exa->scrn->transfer_unmap(exa->scrn, transfer);
+ exa->scrn->tex_transfer_destroy(transfer);
+ }
+ }
#ifdef DRM_MODE_FEATURE_DIRTYFB
- if (!priv->tex) {
- if (pPixData)
- pPixmap->devPrivate.ptr = pPixData;
- else
- pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height * pPixmap->devKind);
- } else
+ else {
+ xfree(pPixmap->devPrivate.ptr);
+ pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height *
+ pPixmap->devKind);
+ }
#endif
- if (pPixData) {
- struct pipe_transfer *transfer =
- exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
- PIPE_TRANSFER_WRITE,
- 0, 0, width, height);
- util_copy_rect(exa->scrn->transfer_map(exa->scrn, transfer),
- &priv->tex->block, transfer->stride, 0, 0,
- width, height, pPixData, pPixmap->devKind, 0, 0);
- exa->scrn->transfer_unmap(exa->scrn, transfer);
- exa->scrn->tex_transfer_destroy(transfer);
- } else if (priv->tex && pPixmap->devPrivate.ptr) {
- struct pipe_transfer *transfer;
-
- if (priv->map_count != 0)
- FatalError("doing ExaModifyPixmapHeader on mapped buffer\n");
-
- transfer =
- exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
- PIPE_TRANSFER_WRITE,
- 0, 0, width, height);
- util_copy_rect(exa->scrn->transfer_map(exa->scrn, transfer),
- &priv->tex->block, transfer->stride, 0, 0,
- width, height, pPixmap->devPrivate.ptr, pPixmap->devKind, 0, 0);
- exa->scrn->transfer_unmap(exa->scrn, transfer);
- exa->scrn->tex_transfer_destroy(transfer);
+
+ pipe_texture_reference(&priv->tex, texture);
}
return TRUE;
@@ -598,6 +661,8 @@ xorg_exa_init(ScrnInfoPtr pScrn)
pExa->Composite = ExaComposite;
pExa->DoneComposite = ExaDoneComposite;
pExa->PixmapIsOffscreen = ExaPixmapIsOffscreen;
+ pExa->DownloadFromScreen = ExaDownloadFromScreen;
+ pExa->UploadToScreen = ExaUploadToScreen;
pExa->PrepareAccess = ExaPrepareAccess;
pExa->FinishAccess = ExaFinishAccess;
pExa->CreatePixmap = ExaCreatePixmap;
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h
index 0a93fa0bd7d..5b515be1397 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.h
+++ b/src/gallium/state_trackers/xorg/xorg_exa.h
@@ -8,6 +8,9 @@
struct cso_context;
struct xorg_shaders;
+/* src + mask + dst */
+#define MAX_EXA_SAMPLERS 3
+
struct exa_context
{
ExaDriverPtr pExa;
@@ -18,6 +21,11 @@ struct exa_context
struct pipe_constant_buffer vs_const_buffer;
struct pipe_constant_buffer fs_const_buffer;
+
+ struct pipe_texture *bound_textures[MAX_EXA_SAMPLERS];
+ int num_bound_samplers;
+
+ float solid_color[4];
};
@@ -27,6 +35,7 @@ struct exa_pixmap_priv
int tex_flags;
struct pipe_texture *tex;
+ struct pipe_texture *depth_stencil_tex;
unsigned int color;
struct pipe_surface *src_surf; /* for copies */
diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
index b5288bde4fb..cfee10c3b30 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
@@ -18,22 +18,24 @@
#include "cso_cache/cso_hash.h"
/* Vertex shader:
- * IN[0] = src_pos
- * IN[1] = mask_pos
- * IN[2] = dst_pos
+ * IN[0] = vertex pos
+ * IN[1] = src tex coord | solid fill color
+ * IN[2] = mask tex coord
+ * IN[3] = dst tex coord
* CONST[0] = (2/dst_width, 2/dst_height, 1, 1)
* CONST[1] = (-1, -1, 0, 0)
*
- * OUT[0] = src_pos
- * OUT[1] = mask_pos
- * OUT[2] = dst_pos
+ * OUT[0] = vertex pos
+ * OUT[1] = src tex coord | solid fill color
+ * OUT[2] = mask tex coord
+ * OUT[3] = dst tex coord
*/
/* Fragment shader:
* SAMP[0] = src
* SAMP[1] = mask
* SAMP[2] = dst
- * IN[0] = pos src
+ * IN[0] = pos src | solid fill color
* IN[1] = pos mask
* IN[2] = pos dst
* CONST[0] = (0, 0, 0, 1)
@@ -84,6 +86,150 @@ vs_normalize_coords(struct ureg_program *ureg, struct ureg_src coords,
return ret;
}
+static void
+linear_gradient(struct ureg_program *ureg,
+ struct ureg_dst out,
+ struct ureg_src pos,
+ struct ureg_src sampler,
+ struct ureg_src coords,
+ struct ureg_src const0124,
+ struct ureg_src matrow0,
+ struct ureg_src matrow1,
+ struct ureg_src matrow2)
+{
+ struct ureg_dst temp0 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp1 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp2 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp3 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp4 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp5 = ureg_DECL_temporary(ureg);
+
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_XY), pos);
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_Z),
+ ureg_scalar(const0124, TGSI_SWIZZLE_Y));
+
+ ureg_DP3(ureg, temp1, matrow0, ureg_src(temp0));
+ ureg_DP3(ureg, temp2, matrow1, ureg_src(temp0));
+ ureg_DP3(ureg, temp3, matrow2, ureg_src(temp0));
+ ureg_RCP(ureg, temp3, ureg_src(temp3));
+ ureg_MUL(ureg, temp1, ureg_src(temp1), ureg_src(temp3));
+ ureg_MUL(ureg, temp2, ureg_src(temp2), ureg_src(temp3));
+
+ ureg_MOV(ureg, ureg_writemask(temp4, TGSI_WRITEMASK_X),
+ ureg_src(temp1));
+ ureg_MOV(ureg, ureg_writemask(temp4, TGSI_WRITEMASK_Y),
+ ureg_src(temp2));
+
+ ureg_MUL(ureg, temp0,
+ ureg_scalar(coords, TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp4), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp1,
+ ureg_scalar(coords, TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp4), TGSI_SWIZZLE_X),
+ ureg_src(temp0));
+
+ ureg_MUL(ureg, temp2,
+ ureg_src(temp1),
+ ureg_scalar(coords, TGSI_SWIZZLE_Z));
+
+ ureg_TEX(ureg, out,
+ TGSI_TEXTURE_1D, ureg_src(temp2), sampler);
+
+ ureg_release_temporary(ureg, temp0);
+ ureg_release_temporary(ureg, temp1);
+ ureg_release_temporary(ureg, temp2);
+ ureg_release_temporary(ureg, temp3);
+ ureg_release_temporary(ureg, temp4);
+ ureg_release_temporary(ureg, temp5);
+}
+
+
+static void
+radial_gradient(struct ureg_program *ureg,
+ struct ureg_dst out,
+ struct ureg_src pos,
+ struct ureg_src sampler,
+ struct ureg_src coords,
+ struct ureg_src const0124,
+ struct ureg_src matrow0,
+ struct ureg_src matrow1,
+ struct ureg_src matrow2)
+{
+ struct ureg_dst temp0 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp1 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp2 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp3 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp4 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp5 = ureg_DECL_temporary(ureg);
+
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_XY),
+ pos);
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_Z),
+ ureg_scalar(const0124, TGSI_SWIZZLE_Y));
+
+ ureg_DP3(ureg, temp1, matrow0, ureg_src(temp0));
+ ureg_DP3(ureg, temp2, matrow1, ureg_src(temp0));
+ ureg_DP3(ureg, temp3, matrow2, ureg_src(temp0));
+ ureg_RCP(ureg, temp3, ureg_src(temp3));
+ ureg_MUL(ureg, temp1, ureg_src(temp1), ureg_src(temp3));
+ ureg_MUL(ureg, temp2, ureg_src(temp2), ureg_src(temp3));
+
+ ureg_MOV(ureg, ureg_writemask(temp5, TGSI_WRITEMASK_X),
+ ureg_src(temp1));
+ ureg_MOV(ureg, ureg_writemask(temp5, TGSI_WRITEMASK_Y),
+ ureg_src(temp2));
+
+ ureg_MUL(ureg, temp0, ureg_scalar(coords, TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp1,
+ ureg_scalar(coords, TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X),
+ ureg_src(temp0));
+ ureg_ADD(ureg, temp1,
+ ureg_src(temp1), ureg_src(temp1));
+ ureg_MUL(ureg, temp3,
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp4,
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X),
+ ureg_src(temp3));
+ ureg_MOV(ureg, temp4, ureg_negate(ureg_src(temp4)));
+ ureg_MUL(ureg, temp2,
+ ureg_scalar(coords, TGSI_SWIZZLE_Z),
+ ureg_src(temp4));
+ ureg_MUL(ureg, temp0,
+ ureg_scalar(const0124, TGSI_SWIZZLE_W),
+ ureg_src(temp2));
+ ureg_MUL(ureg, temp3,
+ ureg_src(temp1), ureg_src(temp1));
+ ureg_SUB(ureg, temp2,
+ ureg_src(temp3), ureg_src(temp0));
+ ureg_RSQ(ureg, temp2, ureg_abs(ureg_src(temp2)));
+ ureg_RCP(ureg, temp2, ureg_src(temp2));
+ ureg_SUB(ureg, temp1,
+ ureg_src(temp2), ureg_src(temp1));
+ ureg_ADD(ureg, temp0,
+ ureg_scalar(coords, TGSI_SWIZZLE_Z),
+ ureg_scalar(coords, TGSI_SWIZZLE_Z));
+ ureg_RCP(ureg, temp0, ureg_src(temp0));
+ ureg_MUL(ureg, temp2,
+ ureg_src(temp1), ureg_src(temp0));
+ ureg_TEX(ureg, out, TGSI_TEXTURE_1D,
+ ureg_src(temp2), sampler);
+
+ ureg_release_temporary(ureg, temp0);
+ ureg_release_temporary(ureg, temp1);
+ ureg_release_temporary(ureg, temp2);
+ ureg_release_temporary(ureg, temp3);
+ ureg_release_temporary(ureg, temp4);
+ ureg_release_temporary(ureg, temp5);
+}
+
static void *
create_vs(struct pipe_context *pipe,
unsigned vs_traits)
@@ -92,6 +238,9 @@ create_vs(struct pipe_context *pipe,
struct ureg_src src;
struct ureg_dst dst;
struct ureg_src const0, const1;
+ boolean is_fill = vs_traits & VS_FILL;
+ boolean is_composite = vs_traits & VS_COMPOSITE;
+ boolean has_mask = vs_traits & VS_MASK;
ureg = ureg_create(TGSI_PROCESSOR_VERTEX);
if (ureg == NULL)
@@ -100,18 +249,34 @@ create_vs(struct pipe_context *pipe,
const0 = ureg_DECL_constant(ureg);
const1 = ureg_DECL_constant(ureg);
- if ((vs_traits & VS_COMPOSITE)) {
+ /* it has to be either a fill or a composite op */
+ debug_assert(is_fill ^ is_composite);
+
+ src = ureg_DECL_vs_input(ureg,
+ TGSI_SEMANTIC_POSITION, 0);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 0);
+ src = vs_normalize_coords(ureg, src,
+ const0, const1);
+ ureg_MOV(ureg, dst, src);
+
+
+ if (is_composite) {
src = ureg_DECL_vs_input(ureg,
- TGSI_SEMANTIC_POSITION, 0);
- dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 0);
- src = vs_normalize_coords(ureg, src,
- const0, const1);
+ TGSI_SEMANTIC_GENERIC, 1);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 1);
ureg_MOV(ureg, dst, src);
}
- if ((vs_traits & VS_MASK)) {
+ if (is_fill) {
src = ureg_DECL_vs_input(ureg,
- TGSI_SEMANTIC_POSITION, 1);
- dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 1);
+ TGSI_SEMANTIC_COLOR, 1);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 1);
+ ureg_MOV(ureg, dst, src);
+ }
+
+ if (has_mask) {
+ src = ureg_DECL_vs_input(ureg,
+ TGSI_SEMANTIC_GENERIC, 2);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 2);
ureg_MOV(ureg, dst, src);
}
@@ -125,27 +290,50 @@ create_fs(struct pipe_context *pipe,
unsigned fs_traits)
{
struct ureg_program *ureg;
- struct ureg_src dst_sampler, src_sampler, mask_sampler;
- struct ureg_src dst_pos, src_pos, mask_pos;
- struct ureg_src src, mask;
+ struct ureg_src /*dst_sampler,*/ src_sampler, mask_sampler;
+ struct ureg_src /*dst_pos,*/ src_input, mask_pos;
+ struct ureg_dst src, mask;
struct ureg_dst out;
+ boolean has_mask = fs_traits & FS_MASK;
+ boolean is_fill = fs_traits & FS_FILL;
+ boolean is_composite = fs_traits & FS_COMPOSITE;
+ boolean is_solid = fs_traits & FS_SOLID_FILL;
+ boolean is_lingrad = fs_traits & FS_LINGRAD_FILL;
+ boolean is_radgrad = fs_traits & FS_RADGRAD_FILL;
ureg = ureg_create(TGSI_PROCESSOR_FRAGMENT);
if (ureg == NULL)
return 0;
+ /* it has to be either a fill or a composite op */
+ debug_assert(is_fill ^ is_composite);
+
out = ureg_DECL_output(ureg,
TGSI_SEMANTIC_COLOR,
0);
- src_sampler = ureg_DECL_sampler(ureg);
- src_pos = ureg_DECL_fs_input(ureg,
- TGSI_SEMANTIC_POSITION,
- 0,
- TGSI_INTERPOLATE_PERSPECTIVE);
+ if (is_composite) {
+ src_sampler = ureg_DECL_sampler(ureg, 0);
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_POSITION,
+ 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ }
+ if (is_fill) {
+ if (is_solid)
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_COLOR,
+ 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ else
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_POSITION,
+ 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ }
- if ((fs_traits & FS_MASK)) {
- mask_sampler = ureg_DECL_sampler(ureg);
+ if (has_mask) {
+ mask_sampler = ureg_DECL_sampler(ureg, 1);
mask_pos = ureg_DECL_fs_input(ureg,
TGSI_SEMANTIC_POSITION,
1,
@@ -153,21 +341,63 @@ create_fs(struct pipe_context *pipe,
}
#if 0 /* unused right now */
- dst_sampler = ureg_DECL_sampler(ureg);
+ dst_sampler = ureg_DECL_sampler(ureg, 2);
dst_pos = ureg_DECL_fs_input(ureg,
TGSI_SEMANTIC_POSITION,
2,
TGSI_INTERPOLATE_PERSPECTIVE);
#endif
- if ((fs_traits & FS_MASK)) {
- ureg_TEX(ureg, ureg_dst(mask),
+ if (is_composite) {
+ if (has_mask)
+ src = ureg_DECL_temporary(ureg);
+ else
+ src = out;
+ ureg_TEX(ureg, src,
+ TGSI_TEXTURE_2D, src_input, src_sampler);
+ } else if (is_fill) {
+ if (is_solid) {
+ if (has_mask)
+ src = ureg_dst(src_input);
+ else
+ ureg_MOV(ureg, out, src_input);
+ } else if (is_lingrad || is_radgrad) {
+ struct ureg_src coords, const0124,
+ matrow0, matrow1, matrow2;
+
+ if (has_mask)
+ src = ureg_DECL_temporary(ureg);
+ else
+ src = out;
+
+ coords = ureg_DECL_constant(ureg);
+ const0124 = ureg_DECL_constant(ureg);
+ matrow0 = ureg_DECL_constant(ureg);
+ matrow1 = ureg_DECL_constant(ureg);
+ matrow2 = ureg_DECL_constant(ureg);
+
+ if (is_lingrad) {
+ linear_gradient(ureg, src,
+ src_input, src_sampler,
+ coords, const0124,
+ matrow0, matrow1, matrow2);
+ } else if (is_radgrad) {
+ radial_gradient(ureg, src,
+ src_input, src_sampler,
+ coords, const0124,
+ matrow0, matrow1, matrow2);
+ }
+ } else
+ debug_assert(!"Unknown fill type!");
+ }
+
+ if (has_mask) {
+ mask = ureg_DECL_temporary(ureg);
+ ureg_TEX(ureg, mask,
TGSI_TEXTURE_2D, mask_pos, mask_sampler);
/* src IN mask */
- src_in_mask(ureg, out, src, mask);
- } else {
- ureg_TEX(ureg, out,
- TGSI_TEXTURE_2D, src_pos, src_sampler);
+ src_in_mask(ureg, out, ureg_src(src), ureg_src(mask));
+ ureg_release_temporary(ureg, mask);
}
ureg_END(ureg);
diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
index 003e5d8caf4..1535a0c8c30 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
+++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
@@ -6,16 +6,24 @@
enum xorg_vs_traits {
VS_COMPOSITE = 1 << 0,
VS_MASK = 1 << 1,
- VS_FILL = 1 << 2
- /*VS_TRANSFORM = 1 << 3*/
+ VS_SOLID_FILL = 1 << 2,
+ VS_LINGRAD_FILL = 1 << 3,
+ VS_RADGRAD_FILL = 1 << 4,
+ VS_FILL = (VS_SOLID_FILL |
+ VS_LINGRAD_FILL |
+ VS_RADGRAD_FILL)
+ /*VS_TRANSFORM = 1 << 5*/
};
enum xorg_fs_traits {
FS_COMPOSITE = 1 << 0,
FS_MASK = 1 << 1,
- FS_FILL = 1 << 2,
- FS_LINEAR_GRADIENT = 1 << 3,
- FS_RADIAL_GRADIENT = 1 << 4
+ FS_SOLID_FILL = 1 << 2,
+ FS_LINGRAD_FILL = 1 << 3,
+ FS_RADGRAD_FILL = 1 << 4,
+ FS_FILL = (FS_SOLID_FILL |
+ FS_LINGRAD_FILL |
+ FS_RADGRAD_FILL)
};
struct xorg_shader {
diff --git a/src/gallium/state_trackers/xorg/xorg_winsys.h b/src/gallium/state_trackers/xorg/xorg_winsys.h
index d523080e90f..47ee4b9ffd8 100644
--- a/src/gallium/state_trackers/xorg/xorg_winsys.h
+++ b/src/gallium/state_trackers/xorg/xorg_winsys.h
@@ -37,7 +37,6 @@
#include "xorg-server.h"
#include "xf86.h"
-#include "xf86Resources.h"
#include "pciaccess.h"
#ifndef XSERVER_LIBPCIACCESS
@@ -46,6 +45,5 @@
void xorg_tracker_set_functions(ScrnInfoPtr scrn);
const OptionInfoRec * xorg_tracker_available_options(int chipid, int busid);
-void xorg_tracker_loader_ref_sym_lists(void);
#endif
diff --git a/src/gallium/winsys/drm/intel/gem/Makefile b/src/gallium/winsys/drm/intel/gem/Makefile
index 7ab1a2a771b..0d6d4e37dbd 100644
--- a/src/gallium/winsys/drm/intel/gem/Makefile
+++ b/src/gallium/winsys/drm/intel/gem/Makefile
@@ -4,10 +4,10 @@ include $(TOP)/configs/current
LIBNAME = inteldrm
C_SOURCES = \
- intel_be_batchbuffer.c \
- intel_be_context.c \
- intel_be_device.c \
- intel_be_api.c
+ intel_drm_batchbuffer.c \
+ intel_drm_buffer.c \
+ intel_drm_fence.c \
+ intel_drm_api.c
LIBRARY_INCLUDES = $(shell pkg-config libdrm --cflags-only-I)
diff --git a/src/gallium/winsys/drm/intel/gem/SConscript b/src/gallium/winsys/drm/intel/gem/SConscript
index ea8a2e55f62..26717f391fa 100644
--- a/src/gallium/winsys/drm/intel/gem/SConscript
+++ b/src/gallium/winsys/drm/intel/gem/SConscript
@@ -3,10 +3,10 @@ Import('*')
env = drienv.Clone()
inteldrm_sources = [
- 'intel_be_api.c',
- 'intel_be_batchbuffer.c',
- 'intel_be_context.c',
- 'intel_be_device.c',
+ 'intel_drm_api.c',
+ 'intel_drm_batchbuffer.c',
+ 'intel_drm_buffer.c',
+ 'intel_drm_fence.c',
]
inteldrm = env.ConvenienceLibrary(
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_api.c b/src/gallium/winsys/drm/intel/gem/intel_be_api.c
deleted file mode 100644
index 3e90088d5e0..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_api.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#include "intel_be_api.h"
-#include "i915simple/i915_winsys.h"
-#include "identity/id_drm.h"
-#include "trace/tr_drm.h"
-
-static void destroy(struct drm_api *api)
-{
-
-}
-
-struct drm_api intel_be_drm_api =
-{
- /* intel_be_context.c */
- .create_context = intel_be_create_context,
- /* intel_be_device.c */
- .create_screen = intel_be_create_screen,
- .texture_from_shared_handle = intel_be_texture_from_shared_handle,
- .shared_handle_from_texture = intel_be_shared_handle_from_texture,
- .local_handle_from_texture = intel_be_local_handle_from_texture,
- .destroy = destroy,
-};
-
-struct drm_api *
-drm_api_create()
-{
-#ifdef DEBUG
-#if 0
- return identity_drm_create(&intel_be_drm_api);
-#else
- return trace_drm_create(&intel_be_drm_api);
-#endif
-#else
- return &intel_be_drm_api;
-#endif
-}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_api.h b/src/gallium/winsys/drm/intel/gem/intel_be_api.h
deleted file mode 100644
index f286b62eb8c..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_api.h
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#ifndef _INTEL_BE_API_H_
-#define _INTEL_BE_API_H_
-
-#include "pipe/p_compiler.h"
-
-#include "state_tracker/drm_api.h"
-
-#include "intel_be_device.h"
-
-extern struct drm_api intel_be_drm_api;
-
-struct pipe_screen *intel_be_create_screen(struct drm_api *api, int drmFD,
- struct drm_create_screen_arg *arg);
-struct pipe_context *intel_be_create_context(struct drm_api *api,
- struct pipe_screen *screen);
-
-#endif
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c
deleted file mode 100644
index c4a79586e68..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c
+++ /dev/null
@@ -1,156 +0,0 @@
-
-#include "i915simple/i915_debug.h"
-#include "intel_be_batchbuffer.h"
-#include "intel_be_context.h"
-#include "intel_be_device.h"
-#include "intel_be_fence.h"
-#include <errno.h>
-
-#include "util/u_memory.h"
-
-struct intel_be_batchbuffer *
-intel_be_batchbuffer_alloc(struct intel_be_context *intel)
-{
- struct intel_be_batchbuffer *batch = CALLOC_STRUCT(intel_be_batchbuffer);
-
-
- batch->base.buffer = NULL;
- batch->base.winsys = &intel->base;
- batch->base.map = NULL;
- batch->base.ptr = NULL;
- batch->base.size = 0;
- batch->base.actual_size = intel->device->max_batch_size;
- batch->base.relocs = 0;
- batch->base.max_relocs = 100;/*INTEL_DEFAULT_RELOCS;*/
-
- batch->intel = intel;
- batch->device = intel->device;
-
- intel_be_batchbuffer_reset(batch);
-
- return batch;
-}
-
-void
-intel_be_batchbuffer_reset(struct intel_be_batchbuffer *batch)
-{
- struct intel_be_context *intel = intel_be_context(batch->base.winsys);
- struct intel_be_device *dev = intel->device;
-
- if (batch->bo)
- drm_intel_bo_unreference(batch->bo);
- batch->bo = drm_intel_bo_alloc(dev->pools.gem,
- "gallium3d_batch_buffer",
- batch->base.actual_size,
- 4096);
- drm_intel_bo_map(batch->bo, TRUE);
- batch->base.map = batch->bo->virtual;
-
- memset(batch->base.map, 0, batch->base.actual_size);
- batch->base.ptr = batch->base.map;
- batch->base.size = batch->base.actual_size - BATCH_RESERVED;
- batch->base.relocs = 0;
-}
-
-int
-intel_be_offset_relocation(struct intel_be_batchbuffer *batch,
- unsigned pre_add,
- drm_intel_bo *bo,
- uint32_t read_domains,
- uint32_t write_domain)
-{
- unsigned offset;
- int ret = 0;
-
- assert(batch->base.relocs < batch->base.max_relocs);
-
- offset = (unsigned)(batch->base.ptr - batch->base.map);
-
- ret = drm_intel_bo_emit_reloc(batch->bo, offset,
- bo, pre_add,
- read_domains,
- write_domain);
-
- ((uint32_t*)batch->base.ptr)[0] = bo->offset + pre_add;
- batch->base.ptr += 4;
-
- if (!ret)
- batch->base.relocs++;
-
- return ret;
-}
-
-void
-intel_be_batchbuffer_flush(struct intel_be_batchbuffer *batch,
- struct intel_be_fence **fence)
-{
- struct i915_batchbuffer *i915 = &batch->base;
- unsigned used = 0;
- int ret = 0;
- int i;
-
- assert(i915_batchbuffer_space(i915) >= 0);
-
- used = batch->base.ptr - batch->base.map;
- assert((used & 3) == 0);
-
- if (used & 4) {
- i915_batchbuffer_dword(i915, (0x0<<29)|(0x4<<23)|(1<<0)); // MI_FLUSH | FLUSH_MAP_CACHE;
- i915_batchbuffer_dword(i915, (0x0<<29)|(0x0<<23)); // MI_NOOP
- i915_batchbuffer_dword(i915, (0x0<<29)|(0xA<<23)); // MI_BATCH_BUFFER_END;
- } else {
- i915_batchbuffer_dword(i915, (0x0<<29)|(0x4<<23)|(1<<0)); //MI_FLUSH | FLUSH_MAP_CACHE;
- i915_batchbuffer_dword(i915, (0x0<<29)|(0xA<<23)); // MI_BATCH_BUFFER_END;
- }
-
- used = batch->base.ptr - batch->base.map;
-
- drm_intel_bo_unmap(batch->bo);
-
- /* Do the sending to HW */
- ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0);
- assert(ret == 0);
-
- if (batch->device->dump_cmd) {
- unsigned *ptr;
- drm_intel_bo_map(batch->bo, FALSE);
- ptr = (unsigned*)batch->bo->virtual;
-
- debug_printf("%s:\n", __func__);
- for (i = 0; i < used / 4; i++, ptr++) {
- debug_printf("\t%08x: %08x\n", i*4, *ptr);
- }
-
- drm_intel_bo_unmap(batch->bo);
- } else {
- /* TODO figgure out why the gpu hangs if we don't run sync */
- drm_intel_bo_map(batch->bo, FALSE);
- drm_intel_bo_unmap(batch->bo);
- }
-
- intel_be_batchbuffer_reset(batch);
-
- if (fence) {
- if (*fence)
- intel_be_fence_reference(fence, NULL);
-
- (*fence) = CALLOC_STRUCT(intel_be_fence);
- pipe_reference_init(&(*fence)->reference, 1);
- (*fence)->bo = NULL;
- }
-}
-
-void
-intel_be_batchbuffer_finish(struct intel_be_batchbuffer *batch)
-{
-
-}
-
-void
-intel_be_batchbuffer_free(struct intel_be_batchbuffer *batch)
-{
- if (batch->bo)
- drm_intel_bo_unreference(batch->bo);
-
- free(batch);
-}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.h b/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.h
deleted file mode 100644
index 195bf8dee77..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.h
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef INTEL_BE_BATCHBUFFER_H
-#define INTEL_BE_BATCHBUFFER_H
-
-#include "i915simple/i915_batch.h"
-
-#include "drm.h"
-#include "intel_bufmgr.h"
-
-#define BATCH_RESERVED 16
-
-#define INTEL_DEFAULT_RELOCS 100
-#define INTEL_MAX_RELOCS 400
-
-#define INTEL_BATCH_NO_CLIPRECTS 0x1
-#define INTEL_BATCH_CLIPRECTS 0x2
-
-struct intel_be_context;
-struct intel_be_device;
-struct intel_be_fence;
-
-struct intel_be_batchbuffer
-{
- struct i915_batchbuffer base;
-
- struct intel_be_context *intel;
- struct intel_be_device *device;
-
- drm_intel_bo *bo;
-};
-
-struct intel_be_batchbuffer *
-intel_be_batchbuffer_alloc(struct intel_be_context *intel);
-
-void
-intel_be_batchbuffer_free(struct intel_be_batchbuffer *batch);
-
-void
-intel_be_batchbuffer_finish(struct intel_be_batchbuffer *batch);
-
-void
-intel_be_batchbuffer_flush(struct intel_be_batchbuffer *batch,
- struct intel_be_fence **fence);
-
-void
-intel_be_batchbuffer_reset(struct intel_be_batchbuffer *batch);
-
-int
-intel_be_offset_relocation(struct intel_be_batchbuffer *batch,
- unsigned pre_add,
- drm_intel_bo *bo,
- uint32_t read_domains,
- uint32_t write_doman);
-
-#endif
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_context.c b/src/gallium/winsys/drm/intel/gem/intel_be_context.c
deleted file mode 100644
index ff4518f8680..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_context.c
+++ /dev/null
@@ -1,117 +0,0 @@
-
-#include "pipe/p_screen.h"
-
-#include "softpipe/sp_winsys.h"
-
-#include "intel_be_device.h"
-#include "intel_be_context.h"
-#include "intel_be_batchbuffer.h"
-
-#include "i915_drm.h"
-
-#include "intel_be_api.h"
-
-static struct i915_batchbuffer *
-intel_be_batch_get(struct i915_winsys *sws)
-{
- struct intel_be_context *intel = intel_be_context(sws);
- return &intel->batch->base;
-}
-
-static void
-intel_be_batch_reloc(struct i915_winsys *sws,
- struct pipe_buffer *buf,
- unsigned access_flags,
- unsigned delta)
-{
- struct intel_be_context *intel = intel_be_context(sws);
- drm_intel_bo *bo = intel_bo(buf);
- int ret;
- uint32_t read = 0;
- uint32_t write = 0;
-
- if (access_flags & I915_BUFFER_ACCESS_WRITE) {
- write = I915_GEM_DOMAIN_RENDER;
- read = I915_GEM_DOMAIN_RENDER;
- }
-
- if (access_flags & I915_BUFFER_ACCESS_READ) {
- read |= I915_GEM_DOMAIN_SAMPLER;
- }
-
- ret = intel_be_offset_relocation(intel->batch,
- delta,
- bo,
- read,
- write);
- assert(ret == 0);
-
- /* TODO change return type */
- /* return ret; */
-}
-
-static void
-intel_be_batch_flush(struct i915_winsys *sws,
- struct pipe_fence_handle **fence)
-{
- struct intel_be_context *intel = intel_be_context(sws);
- struct intel_be_fence **f = (struct intel_be_fence **)fence;
-
- intel_be_batchbuffer_flush(intel->batch, f);
-}
-
-
-/*
- * Misc functions.
- */
-
-static void
-intel_be_destroy_context(struct i915_winsys *winsys)
-{
- struct intel_be_context *intel = intel_be_context(winsys);
-
- intel_be_batchbuffer_free(intel->batch);
-
- free(intel);
-}
-
-boolean
-intel_be_init_context(struct intel_be_context *intel, struct intel_be_device *device)
-{
- assert(intel);
- assert(device);
- intel->device = device;
-
- intel->base.batch_get = intel_be_batch_get;
- intel->base.batch_reloc = intel_be_batch_reloc;
- intel->base.batch_flush = intel_be_batch_flush;
-
- intel->base.destroy = intel_be_destroy_context;
-
- intel->batch = intel_be_batchbuffer_alloc(intel);
-
- return true;
-}
-
-struct pipe_context *
-intel_be_create_context(struct drm_api *api, struct pipe_screen *screen)
-{
- struct intel_be_context *intel;
- struct pipe_context *pipe;
- struct intel_be_device *device = intel_be_device(screen->winsys);
-
- intel = (struct intel_be_context *)malloc(sizeof(*intel));
- memset(intel, 0, sizeof(*intel));
-
- intel_be_init_context(intel, device);
-
- if (device->softpipe)
- pipe = softpipe_create(screen);
- else
- pipe = i915_create_context(screen, &device->base, &intel->base);
-
- if (pipe)
- pipe->priv = intel;
-
- return pipe;
-}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_context.h b/src/gallium/winsys/drm/intel/gem/intel_be_context.h
deleted file mode 100644
index 5a369669c0d..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_context.h
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef INTEL_BE_CONTEXT_H
-#define INTEL_BE_CONTEXT_H
-
-#include "i915simple/i915_winsys.h"
-
-struct intel_be_context
-{
- /** Interface to i915simple driver */
- struct i915_winsys base;
-
- struct intel_be_device *device;
- struct intel_be_batchbuffer *batch;
-};
-
-static INLINE struct intel_be_context *
-intel_be_context(struct i915_winsys *sws)
-{
- return (struct intel_be_context *)sws;
-}
-
-/**
- * Intialize a allocated intel_be_context struct.
- *
- * Remember to set the hardware_* functions.
- */
-boolean
-intel_be_init_context(struct intel_be_context *intel,
- struct intel_be_device *device);
-
-#endif
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_device.c b/src/gallium/winsys/drm/intel/gem/intel_be_device.c
deleted file mode 100644
index 2d8e9f1a24e..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_device.c
+++ /dev/null
@@ -1,474 +0,0 @@
-
-#include "intel_be_device.h"
-
-#include "pipe/internal/p_winsys_screen.h"
-#include "pipe/p_defines.h"
-#include "pipe/p_state.h"
-#include "pipe/p_inlines.h"
-#include "util/u_memory.h"
-#include "util/u_debug.h"
-#include "util/u_math.h"
-
-#include "intel_be_fence.h"
-
-#include "i915simple/i915_winsys.h"
-#include "softpipe/sp_winsys.h"
-
-#include "intel_be_api.h"
-#include <stdio.h>
-
-#define I915_TILING_X 1
-
-/*
- * Buffer
- */
-
-static void *
-intel_be_buffer_map(struct pipe_winsys *winsys,
- struct pipe_buffer *buf,
- unsigned flags)
-{
- struct intel_be_buffer *buffer = intel_be_buffer(buf);
- drm_intel_bo *bo = intel_bo(buf);
- int write = 0;
- int ret = 0;
-
- if (flags & PIPE_BUFFER_USAGE_DONTBLOCK) {
- /* Remove this when drm_intel_bo_map supports DONTBLOCK
- */
- return NULL;
- }
-
- if (flags & PIPE_BUFFER_USAGE_CPU_WRITE)
- write = 1;
-
- if (buffer->map_count)
- goto out;
-
- if (buffer->map_gtt)
- ret = drm_intel_gem_bo_map_gtt(bo);
- else
- ret = drm_intel_bo_map(bo, write);
-
- buffer->ptr = bo->virtual;
-
-out:
- if (ret)
- return NULL;
-
- buffer->map_count++;
- return buffer->ptr;
-}
-
-static void
-intel_be_buffer_unmap(struct pipe_winsys *winsys,
- struct pipe_buffer *buf)
-{
- struct intel_be_buffer *buffer = intel_be_buffer(buf);
-
- if (--buffer->map_count)
- return;
-
- if (buffer->map_gtt)
- drm_intel_gem_bo_unmap_gtt(intel_bo(buf));
- else
- drm_intel_bo_unmap(intel_bo(buf));
-}
-
-static void
-intel_be_buffer_destroy(struct pipe_buffer *buf)
-{
- drm_intel_bo_unreference(intel_bo(buf));
- free(buf);
-}
-
-static struct pipe_buffer *
-intel_be_buffer_create(struct pipe_winsys *winsys,
- unsigned alignment,
- unsigned usage,
- unsigned size)
-{
- struct intel_be_buffer *buffer = CALLOC_STRUCT(intel_be_buffer);
- struct intel_be_device *dev = intel_be_device(winsys);
- drm_intel_bufmgr *pool;
- char *name;
-
- if (!buffer)
- return NULL;
-
- pipe_reference_init(&buffer->base.reference, 1);
- buffer->base.alignment = alignment;
- buffer->base.usage = usage;
- buffer->base.size = size;
- buffer->flinked = FALSE;
- buffer->flink = 0;
- buffer->map_gtt = FALSE;
-
- if (usage & I915_BUFFER_USAGE_SCANOUT) {
- /* Scanout buffer */
- name = "gallium3d_scanout";
- pool = dev->pools.gem;
- } else if (usage & (PIPE_BUFFER_USAGE_VERTEX | PIPE_BUFFER_USAGE_CONSTANT)) {
- /* Local buffer */
- name = "gallium3d_local";
- pool = dev->pools.gem;
- } else if (usage & PIPE_BUFFER_USAGE_CUSTOM) {
- /* For vertex buffers */
- name = "gallium3d_internal_vertex";
- pool = dev->pools.gem;
- } else {
- /* Regular buffers */
- name = "gallium3d_regular";
- pool = dev->pools.gem;
- }
-
- buffer->bo = drm_intel_bo_alloc(pool, name, size, alignment);
- if (usage & I915_BUFFER_USAGE_SCANOUT) {
- unsigned tiling = I915_TILING_X;
- unsigned stride = 2048 * 4; /* TODO do something smarter here */
- drm_intel_bo_set_tiling(buffer->bo, &tiling, stride);
- buffer->map_gtt = TRUE;
- }
-
- if (!buffer->bo)
- goto err;
-
- return &buffer->base;
-
-err:
- free(buffer);
- return NULL;
-}
-
-static struct pipe_buffer *
-intel_be_user_buffer_create(struct pipe_winsys *winsys, void *ptr, unsigned bytes)
-{
- struct intel_be_buffer *buffer = CALLOC_STRUCT(intel_be_buffer);
- struct intel_be_device *dev = intel_be_device(winsys);
- int ret;
-
- if (!buffer)
- return NULL;
-
- pipe_reference_init(&buffer->base.reference, 1);
- buffer->base.alignment = 0;
- buffer->base.usage = 0;
- buffer->base.size = bytes;
-
- buffer->bo = drm_intel_bo_alloc(dev->pools.gem,
- "gallium3d_user_buffer",
- bytes, 0);
-
- if (!buffer->bo)
- goto err;
-
- ret = drm_intel_bo_subdata(buffer->bo,
- 0, bytes, ptr);
-
- if (ret)
- goto err;
-
- return &buffer->base;
-
-err:
- free(buffer);
- return NULL;
-}
-
-static struct pipe_buffer *
-intel_be_surface_buffer_create(struct pipe_winsys *winsys,
- unsigned width, unsigned height,
- enum pipe_format format,
- unsigned usage,
- unsigned tex_usage,
- unsigned *stride)
-{
- struct pipe_format_block block;
- unsigned buf_usage = 0;
- unsigned buf_stride = 0;
- unsigned buf_size = 0;
-
- pf_get_block(format, &block);
- buf_stride = pf_get_stride(&block, width);
- buf_stride = align(buf_stride, 64);
-
- if (tex_usage & PIPE_TEXTURE_USAGE_PRIMARY) {
- /* TODO more checks */
- assert(buf_stride <= 2048*4);
- assert(height % 8 == 0);
- buf_stride = 2048 * 4;
- buf_usage |= I915_BUFFER_USAGE_SCANOUT;
- }
-
- buf_size = buf_stride * height;
- *stride = buf_stride;
-
- return intel_be_buffer_create(winsys,
- 0,
- buf_usage,
- buf_size);
-}
-
-static struct pipe_buffer *
-intel_be_buffer_from_handle(struct drm_api *api,
- struct pipe_screen *screen,
- const char* name, unsigned handle)
-{
- struct intel_be_device *dev = intel_be_device(screen->winsys);
- struct intel_be_buffer *buffer = CALLOC_STRUCT(intel_be_buffer);
-
- if (!buffer)
- return NULL;
-
- buffer->bo = drm_intel_bo_gem_create_from_name(dev->pools.gem, name, handle);
-
- if (!buffer->bo)
- goto err;
-
- pipe_reference_init(&buffer->base.reference, 1);
- buffer->base.screen = screen;
- buffer->base.alignment = buffer->bo->align;
- buffer->base.usage = PIPE_BUFFER_USAGE_GPU_READ |
- PIPE_BUFFER_USAGE_GPU_WRITE |
- PIPE_BUFFER_USAGE_CPU_READ |
- PIPE_BUFFER_USAGE_CPU_WRITE;
- buffer->base.size = buffer->bo->size;
-
- return &buffer->base;
-
-err:
- free(buffer);
- return NULL;
-}
-
-struct pipe_texture *
-intel_be_texture_from_shared_handle(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *templ,
- const char* name,
- unsigned pitch,
- unsigned handle)
-{
- struct pipe_buffer *buffer;
-
- buffer = intel_be_buffer_from_handle(api,
- screen,
- name,
- handle);
- if (!buffer)
- return NULL;
-
- return screen->texture_blanket(screen, templ, &pitch, buffer);
-}
-
-static boolean
-intel_be_get_texture_buffer(struct drm_api *api,
- struct pipe_texture *texture,
- struct pipe_buffer **buffer,
- unsigned *stride)
-{
- struct intel_be_device *dev;
-
- if (!texture)
- return FALSE;
-
- dev = intel_be_device(texture->screen->winsys);
- if (dev->softpipe)
- return softpipe_get_texture_buffer(texture, buffer, stride);
- else
- return i915_get_texture_buffer(texture, buffer, stride);
-}
-
-boolean
-intel_be_shared_handle_from_texture(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *texture,
- unsigned *pitch,
- unsigned *handle)
-{
- struct pipe_buffer *buffer = NULL;
- struct intel_be_buffer *buf;
- if (!intel_be_get_texture_buffer(api,
- texture,
- &buffer,
- pitch))
- return FALSE;
-
- buf = intel_be_buffer(buffer);
- if (!buf->flinked) {
- if (drm_intel_bo_flink(intel_bo(buffer), &buf->flink))
- return FALSE;
- buf->flinked = TRUE;
- }
-
- *handle = buf->flink;
-
- pipe_buffer_reference(&buffer, NULL);
-
- return TRUE;
-}
-
-boolean
-intel_be_local_handle_from_texture(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *texture,
- unsigned *pitch,
- unsigned *handle)
-{
- struct pipe_buffer *buffer = NULL;
- if (!intel_be_get_texture_buffer(api,
- texture,
- &buffer,
- pitch))
- return FALSE;
-
- *handle = intel_bo(buffer)->handle;
-
- pipe_buffer_reference(&buffer, NULL);
-
- return TRUE;
-}
-
-/*
- * Fence
- */
-
-static void
-intel_be_fence_refunref(struct pipe_winsys *sws,
- struct pipe_fence_handle **ptr,
- struct pipe_fence_handle *fence)
-{
- struct intel_be_fence **p = (struct intel_be_fence **)ptr;
- struct intel_be_fence *f = (struct intel_be_fence *)fence;
-
- intel_be_fence_reference(p, f);
-}
-
-static int
-intel_be_fence_signalled(struct pipe_winsys *sws,
- struct pipe_fence_handle *fence,
- unsigned flag)
-{
- assert(0);
-
- return 0;
-}
-
-static int
-intel_be_fence_finish(struct pipe_winsys *sws,
- struct pipe_fence_handle *fence,
- unsigned flag)
-{
- struct intel_be_fence *f = (struct intel_be_fence *)fence;
-
- /* fence already expired */
- if (!f->bo)
- return 0;
-
- drm_intel_bo_wait_rendering(f->bo);
- drm_intel_bo_unreference(f->bo);
- f->bo = NULL;
-
- return 0;
-}
-
-/*
- * Misc functions
- */
-
-static void
-intel_be_destroy_winsys(struct pipe_winsys *winsys)
-{
- struct intel_be_device *dev = intel_be_device(winsys);
-
- drm_intel_bufmgr_destroy(dev->pools.gem);
-
- free(dev);
-}
-
-boolean
-intel_be_init_device(struct intel_be_device *dev, int fd, unsigned id)
-{
- dev->fd = fd;
- dev->id = id;
- dev->max_batch_size = 16 * 4096;
- dev->max_vertex_size = 128 * 4096;
-
- dev->base.buffer_create = intel_be_buffer_create;
- dev->base.user_buffer_create = intel_be_user_buffer_create;
- dev->base.buffer_map = intel_be_buffer_map;
- dev->base.buffer_unmap = intel_be_buffer_unmap;
- dev->base.buffer_destroy = intel_be_buffer_destroy;
-
- /* Used by softpipe */
- dev->base.surface_buffer_create = intel_be_surface_buffer_create;
-
- dev->base.fence_reference = intel_be_fence_refunref;
- dev->base.fence_signalled = intel_be_fence_signalled;
- dev->base.fence_finish = intel_be_fence_finish;
-
- dev->base.destroy = intel_be_destroy_winsys;
-
- dev->pools.gem = drm_intel_bufmgr_gem_init(dev->fd, dev->max_batch_size);
-
- dev->softpipe = debug_get_bool_option("INTEL_SOFTPIPE", FALSE);
- dev->dump_cmd = debug_get_bool_option("INTEL_DUMP_CMD", FALSE);
-
- return true;
-}
-
-static void
-intel_be_get_device_id(unsigned int *device_id)
-{
- char path[512];
- FILE *file;
- void *shutup_gcc;
-
- /*
- * FIXME: Fix this up to use a drm ioctl or whatever.
- */
-
- snprintf(path, sizeof(path), "/sys/class/drm/card0/device/device");
- file = fopen(path, "r");
- if (!file) {
- return;
- }
-
- shutup_gcc = fgets(path, sizeof(path), file);
- sscanf(path, "%x", device_id);
- fclose(file);
-}
-
-struct pipe_screen *
-intel_be_create_screen(struct drm_api *api, int drmFD,
- struct drm_create_screen_arg *arg)
-{
- struct intel_be_device *dev;
- struct pipe_screen *screen;
- unsigned int deviceID;
-
- if (arg != NULL) {
- switch(arg->mode) {
- case DRM_CREATE_NORMAL:
- break;
- default:
- return NULL;
- }
- }
-
- /* Allocate the private area */
- dev = malloc(sizeof(*dev));
- if (!dev)
- return NULL;
- memset(dev, 0, sizeof(*dev));
-
- intel_be_get_device_id(&deviceID);
- intel_be_init_device(dev, drmFD, deviceID);
-
- if (dev->softpipe) {
- screen = softpipe_create_screen(&dev->base);
- } else
- screen = i915_create_screen(&dev->base, deviceID);
-
- return screen;
-}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_device.h b/src/gallium/winsys/drm/intel/gem/intel_be_device.h
deleted file mode 100644
index 15916b0b102..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_device.h
+++ /dev/null
@@ -1,107 +0,0 @@
-
-#ifndef INTEL_DRM_DEVICE_H
-#define INTEL_DRM_DEVICE_H
-
-#include "pipe/internal/p_winsys_screen.h"
-#include "pipe/p_context.h"
-
-#include "drm.h"
-#include "intel_bufmgr.h"
-
-struct drm_api;
-
-/*
- * Device
- */
-
-struct intel_be_device
-{
- struct pipe_winsys base;
-
- boolean softpipe;
- boolean dump_cmd;
-
- int fd; /**< Drm file discriptor */
-
- unsigned id;
-
- size_t max_batch_size;
- size_t max_vertex_size;
-
- struct {
- drm_intel_bufmgr *gem;
- } pools;
-};
-
-static INLINE struct intel_be_device *
-intel_be_device(struct pipe_winsys *winsys)
-{
- return (struct intel_be_device *)winsys;
-}
-
-boolean
-intel_be_init_device(struct intel_be_device *device, int fd, unsigned id);
-
-/*
- * Buffer
- */
-
-struct intel_be_buffer {
- struct pipe_buffer base;
- void *ptr;
- unsigned map_count;
- boolean map_gtt;
-
- drm_intel_bo *bo;
- boolean flinked;
- unsigned flink;
-};
-
-/**
- * Create a texture from a shared drm handle.
- */
-struct pipe_texture *
-intel_be_texture_from_shared_handle(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *templ,
- const char* name,
- unsigned pitch,
- unsigned handle);
-
-/**
- * Gets a shared handle from a texture.
- *
- * If texture is destroyed handle may become invalid.
- */
-boolean
-intel_be_shared_handle_from_texture(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *texture,
- unsigned *pitch,
- unsigned *handle);
-
-/**
- * Gets the local handle from a texture. As used by KMS.
- *
- * If texture is destroyed handle may become invalid.
- */
-boolean
-intel_be_local_handle_from_texture(struct drm_api *api,
- struct pipe_screen *screen,
- struct pipe_texture *texture,
- unsigned *pitch,
- unsigned *handle);
-
-static INLINE struct intel_be_buffer *
-intel_be_buffer(struct pipe_buffer *buf)
-{
- return (struct intel_be_buffer *)buf;
-}
-
-static INLINE drm_intel_bo *
-intel_bo(struct pipe_buffer *buf)
-{
- return intel_be_buffer(buf)->bo;
-}
-
-#endif
diff --git a/src/gallium/winsys/drm/intel/gem/intel_be_fence.h b/src/gallium/winsys/drm/intel/gem/intel_be_fence.h
deleted file mode 100644
index a8abb01a9ed..00000000000
--- a/src/gallium/winsys/drm/intel/gem/intel_be_fence.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef INTEL_BE_FENCE_H
-#define INTEL_BE_FENCE_H
-
-#include "pipe/p_defines.h"
-
-#include "drm.h"
-#include "intel_bufmgr.h"
-
-/**
- * Because gem does not have fence's we have to create our own fences.
- *
- * They work by keeping the batchbuffer around and checking if that has
- * been idled. If bo is NULL fence has expired.
- */
-struct intel_be_fence
-{
- struct pipe_reference reference;
- drm_intel_bo *bo;
-};
-
-static INLINE void
-intel_be_fence_reference(struct intel_be_fence **ptr, struct intel_be_fence *f)
-{
- struct intel_be_fence *old_fence = *ptr;
-
- if (pipe_reference((struct pipe_reference**)ptr, &f->reference)) {
- if (old_fence->bo)
- drm_intel_bo_unreference(old_fence->bo);
- free(old_fence);
- }
-}
-
-#endif
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_api.c b/src/gallium/winsys/drm/intel/gem/intel_drm_api.c
new file mode 100644
index 00000000000..4c5a1d2ea89
--- /dev/null
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_api.c
@@ -0,0 +1,202 @@
+
+#include "state_tracker/drm_api.h"
+
+#include "intel_drm_winsys.h"
+#include "util/u_memory.h"
+
+#include "i915simple/i915_context.h"
+#include "i915simple/i915_screen.h"
+
+
+/*
+ * Helper functions
+ */
+
+
+static void
+intel_drm_get_device_id(unsigned int *device_id)
+{
+ char path[512];
+ FILE *file;
+ void *shutup_gcc;
+
+ /*
+ * FIXME: Fix this up to use a drm ioctl or whatever.
+ */
+
+ snprintf(path, sizeof(path), "/sys/class/drm/card0/device/device");
+ file = fopen(path, "r");
+ if (!file) {
+ return;
+ }
+
+ shutup_gcc = fgets(path, sizeof(path), file);
+ sscanf(path, "%x", device_id);
+ fclose(file);
+}
+
+static struct intel_buffer *
+intel_drm_buffer_from_handle(struct intel_drm_winsys *idws,
+ const char* name, unsigned handle)
+{
+ struct intel_drm_buffer *buf = CALLOC_STRUCT(intel_drm_buffer);
+
+ if (!buf)
+ return NULL;
+
+ buf->magic = 0xDEAD1337;
+ buf->bo = drm_intel_bo_gem_create_from_name(idws->pools.gem, name, handle);
+ buf->flinked = TRUE;
+ buf->flink = handle;
+
+ if (!buf->bo)
+ goto err;
+
+ return (struct intel_buffer *)buf;
+
+err:
+ FREE(buf);
+ return NULL;
+}
+
+
+/*
+ * Exported functions
+ */
+
+
+static struct pipe_texture *
+intel_drm_texture_from_shared_handle(struct drm_api *api,
+ struct pipe_screen *screen,
+ struct pipe_texture *templ,
+ const char* name,
+ unsigned pitch,
+ unsigned handle)
+{
+ struct intel_drm_winsys *idws = intel_drm_winsys(i915_screen(screen)->iws);
+ struct intel_buffer *buffer;
+
+ buffer = intel_drm_buffer_from_handle(idws, name, handle);
+ if (!buffer)
+ return NULL;
+
+ return i915_texture_blanket_intel(screen, templ, pitch, buffer);
+}
+
+static boolean
+intel_drm_shared_handle_from_texture(struct drm_api *api,
+ struct pipe_screen *screen,
+ struct pipe_texture *texture,
+ unsigned *pitch,
+ unsigned *handle)
+{
+ struct intel_drm_buffer *buf = NULL;
+ struct intel_buffer *buffer = NULL;
+ if (!i915_get_texture_buffer_intel(texture, &buffer, pitch))
+ return FALSE;
+
+ buf = intel_drm_buffer(buffer);
+ if (!buf->flinked) {
+ if (drm_intel_bo_flink(buf->bo, &buf->flink))
+ return FALSE;
+ buf->flinked = TRUE;
+ }
+
+ *handle = buf->flink;
+
+ return TRUE;
+}
+
+static boolean
+intel_drm_local_handle_from_texture(struct drm_api *api,
+ struct pipe_screen *screen,
+ struct pipe_texture *texture,
+ unsigned *pitch,
+ unsigned *handle)
+{
+ struct intel_buffer *buffer = NULL;
+ if (!i915_get_texture_buffer_intel(texture, &buffer, pitch))
+ return FALSE;
+
+ *handle = intel_drm_buffer(buffer)->bo->handle;
+
+ return TRUE;
+}
+
+static void
+intel_drm_winsys_destroy(struct intel_winsys *iws)
+{
+ struct intel_drm_winsys *idws = intel_drm_winsys(iws);
+
+ drm_intel_bufmgr_destroy(idws->pools.gem);
+
+ FREE(idws);
+}
+
+static struct pipe_screen *
+intel_drm_create_screen(struct drm_api *api, int drmFD,
+ struct drm_create_screen_arg *arg)
+{
+ struct intel_drm_winsys *idws;
+ unsigned int deviceID;
+
+ if (arg != NULL) {
+ switch(arg->mode) {
+ case DRM_CREATE_NORMAL:
+ break;
+ default:
+ return NULL;
+ }
+ }
+
+ idws = CALLOC_STRUCT(intel_drm_winsys);
+ if (!idws)
+ return NULL;
+
+ intel_drm_get_device_id(&deviceID);
+
+ intel_drm_winsys_init_batchbuffer_functions(idws);
+ intel_drm_winsys_init_buffer_functions(idws);
+ intel_drm_winsys_init_fence_functions(idws);
+
+ idws->fd = drmFD;
+ idws->id = deviceID;
+ idws->max_batch_size = 16 * 4096;
+
+ idws->base.destroy = intel_drm_winsys_destroy;
+
+ idws->pools.gem = drm_intel_bufmgr_gem_init(idws->fd, idws->max_batch_size);
+
+ idws->softpipe = FALSE;
+ idws->dump_cmd = debug_get_bool_option("INTEL_DUMP_CMD", FALSE);
+
+ return i915_create_screen(&idws->base, deviceID);
+}
+
+static struct pipe_context *
+intel_drm_create_context(struct drm_api *api, struct pipe_screen *screen)
+{
+ return i915_create_context(screen);
+}
+
+static void
+destroy(struct drm_api *api)
+{
+
+}
+
+struct drm_api intel_drm_api =
+{
+ .create_context = intel_drm_create_context,
+ .create_screen = intel_drm_create_screen,
+ .texture_from_shared_handle = intel_drm_texture_from_shared_handle,
+ .shared_handle_from_texture = intel_drm_shared_handle_from_texture,
+ .local_handle_from_texture = intel_drm_local_handle_from_texture,
+ .destroy = destroy,
+};
+
+struct drm_api *
+drm_api_create()
+{
+ return &intel_drm_api;
+}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c
new file mode 100644
index 00000000000..5ca3ad9762d
--- /dev/null
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c
@@ -0,0 +1,214 @@
+
+#include "intel_drm_winsys.h"
+#include "util/u_memory.h"
+
+#include "i915_drm.h"
+
+#define BATCH_RESERVED 16
+
+#define INTEL_DEFAULT_RELOCS 100
+#define INTEL_MAX_RELOCS 400
+
+#define INTEL_BATCH_NO_CLIPRECTS 0x1
+#define INTEL_BATCH_CLIPRECTS 0x2
+
+#undef INTEL_RUN_SYNC
+
+struct intel_drm_batchbuffer
+{
+ struct intel_batchbuffer base;
+
+ size_t actual_size;
+
+ drm_intel_bo *bo;
+};
+
+static INLINE struct intel_drm_batchbuffer *
+intel_drm_batchbuffer(struct intel_batchbuffer *batch)
+{
+ return (struct intel_drm_batchbuffer *)batch;
+}
+
+static void
+intel_drm_batchbuffer_reset(struct intel_drm_batchbuffer *batch)
+{
+ struct intel_drm_winsys *idws = intel_drm_winsys(batch->base.iws);
+
+ if (batch->bo)
+ drm_intel_bo_unreference(batch->bo);
+ batch->bo = drm_intel_bo_alloc(idws->pools.gem,
+ "gallium3d_batchbuffer",
+ batch->actual_size,
+ 4096);
+ drm_intel_bo_map(batch->bo, TRUE);
+ batch->base.map = batch->bo->virtual;
+
+ memset(batch->base.map, 0, batch->actual_size);
+ batch->base.ptr = batch->base.map;
+ batch->base.size = batch->actual_size - BATCH_RESERVED;
+ batch->base.relocs = 0;
+}
+
+static struct intel_batchbuffer *
+intel_drm_batchbuffer_create(struct intel_winsys *iws)
+{
+ struct intel_drm_winsys *idws = intel_drm_winsys(iws);
+ struct intel_drm_batchbuffer *batch = CALLOC_STRUCT(intel_drm_batchbuffer);
+
+ batch->base.map = NULL;
+ batch->base.ptr = NULL;
+ batch->base.size = 0;
+
+ batch->base.relocs = 0;
+ batch->base.max_relocs = 300;/*INTEL_DEFAULT_RELOCS;*/
+
+ batch->base.iws = iws;
+
+ batch->actual_size = idws->max_batch_size;
+
+ intel_drm_batchbuffer_reset(batch);
+
+ return &batch->base;
+}
+
+static int
+intel_drm_batchbuffer_reloc(struct intel_batchbuffer *ibatch,
+ struct intel_buffer *buffer,
+ enum intel_buffer_usage usage,
+ unsigned pre_add)
+{
+ struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
+ unsigned write_domain = 0;
+ unsigned read_domain = 0;
+ unsigned offset;
+ int ret = 0;
+
+ assert(batch->base.relocs < batch->base.max_relocs);
+
+ if (usage == INTEL_USAGE_SAMPLER) {
+ write_domain = 0;
+ read_domain = I915_GEM_DOMAIN_SAMPLER;
+
+ } else if (usage == INTEL_USAGE_RENDER) {
+ write_domain = I915_GEM_DOMAIN_RENDER;
+ read_domain = I915_GEM_DOMAIN_RENDER;
+
+ } else if (usage == INTEL_USAGE_2D_TARGET) {
+ write_domain = I915_GEM_DOMAIN_RENDER;
+ read_domain = I915_GEM_DOMAIN_RENDER;
+
+ } else if (usage == INTEL_USAGE_2D_SOURCE) {
+ write_domain = 0;
+ read_domain = I915_GEM_DOMAIN_RENDER;
+
+ } else if (usage == INTEL_USAGE_VERTEX) {
+ write_domain = 0;
+ read_domain = I915_GEM_DOMAIN_VERTEX;
+
+ } else {
+ assert(0);
+ return -1;
+ }
+
+ offset = (unsigned)(batch->base.ptr - batch->base.map);
+
+ ret = drm_intel_bo_emit_reloc(batch->bo, offset,
+ intel_bo(buffer), pre_add,
+ read_domain,
+ write_domain);
+
+ ((uint32_t*)batch->base.ptr)[0] = intel_bo(buffer)->offset + pre_add;
+ batch->base.ptr += 4;
+
+ if (!ret)
+ batch->base.relocs++;
+
+ return ret;
+}
+
+static void
+intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch,
+ struct pipe_fence_handle **fence)
+{
+ struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
+ unsigned used = 0;
+ int ret = 0;
+ int i;
+
+ assert(intel_batchbuffer_space(ibatch) >= 0);
+
+ used = batch->base.ptr - batch->base.map;
+ assert((used & 3) == 0);
+
+ if (used & 4) {
+ // MI_FLUSH | FLUSH_MAP_CACHE;
+ intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0));
+ // MI_NOOP
+ intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x0<<23));
+ // MI_BATCH_BUFFER_END;
+ intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23));
+ } else {
+ //MI_FLUSH | FLUSH_MAP_CACHE;
+ intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0));
+ // MI_BATCH_BUFFER_END;
+ intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23));
+ }
+
+ used = batch->base.ptr - batch->base.map;
+
+ drm_intel_bo_unmap(batch->bo);
+
+ /* Do the sending to HW */
+ ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0);
+ assert(ret == 0);
+
+ if (intel_drm_winsys(ibatch->iws)->dump_cmd) {
+ unsigned *ptr;
+ drm_intel_bo_map(batch->bo, FALSE);
+ ptr = (unsigned*)batch->bo->virtual;
+
+ debug_printf("%s:\n", __func__);
+ for (i = 0; i < used / 4; i++, ptr++) {
+ debug_printf("\t%08x: %08x\n", i*4, *ptr);
+ }
+
+ drm_intel_bo_unmap(batch->bo);
+ } else {
+#ifdef INTEL_RUN_SYNC
+ drm_intel_bo_map(batch->bo, FALSE);
+ drm_intel_bo_unmap(batch->bo);
+#endif
+ }
+
+ if (fence) {
+ ibatch->iws->fence_reference(ibatch->iws, fence, NULL);
+
+#ifdef INTEL_RUN_SYNC
+ /* we run synced to GPU so just pass null */
+ (*fence) = intel_drm_fence_create(NULL);
+#else
+ (*fence) = intel_drm_fence_create(batch->bo);
+#endif
+ }
+
+ intel_drm_batchbuffer_reset(batch);
+}
+
+static void
+intel_drm_batchbuffer_destroy(struct intel_batchbuffer *ibatch)
+{
+ struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
+
+ if (batch->bo)
+ drm_intel_bo_unreference(batch->bo);
+
+ free(batch);
+}
+
+void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws)
+{
+ idws->base.batchbuffer_create = intel_drm_batchbuffer_create;
+ idws->base.batchbuffer_reloc = intel_drm_batchbuffer_reloc;
+ idws->base.batchbuffer_flush = intel_drm_batchbuffer_flush;
+ idws->base.batchbuffer_destroy = intel_drm_batchbuffer_destroy;
+}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c
new file mode 100644
index 00000000000..e017cd2e982
--- /dev/null
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c
@@ -0,0 +1,134 @@
+
+#include "intel_drm_winsys.h"
+#include "util/u_memory.h"
+
+#include "i915_drm.h"
+
+static struct intel_buffer *
+intel_drm_buffer_create(struct intel_winsys *iws,
+ unsigned size, unsigned alignment,
+ enum intel_buffer_type type)
+{
+ struct intel_drm_buffer *buf = CALLOC_STRUCT(intel_drm_buffer);
+ struct intel_drm_winsys *idws = intel_drm_winsys(iws);
+ drm_intel_bufmgr *pool;
+ char *name;
+
+ if (!buf)
+ return NULL;
+
+ buf->magic = 0xDEAD1337;
+ buf->flinked = FALSE;
+ buf->flink = 0;
+ buf->map_gtt = FALSE;
+
+ if (type == INTEL_NEW_TEXTURE) {
+ name = "gallium3d_texture";
+ pool = idws->pools.gem;
+ } else if (type == INTEL_NEW_VERTEX) {
+ name = "gallium3d_vertex";
+ pool = idws->pools.gem;
+ } else if (type == INTEL_NEW_SCANOUT) {
+ name = "gallium3d_scanout";
+ pool = idws->pools.gem;
+ buf->map_gtt = TRUE;
+ } else {
+ assert(0);
+ name = "gallium3d_unknown";
+ pool = idws->pools.gem;
+ }
+
+ buf->bo = drm_intel_bo_alloc(pool, name, size, alignment);
+
+ if (!buf->bo)
+ goto err;
+
+ return (struct intel_buffer *)buf;
+
+err:
+ assert(0);
+ FREE(buf);
+ return NULL;
+}
+
+static int
+intel_drm_buffer_set_fence_reg(struct intel_winsys *iws,
+ struct intel_buffer *buffer,
+ unsigned stride,
+ enum intel_buffer_tile tile)
+{
+ assert(I915_TILING_NONE == INTEL_TILE_NONE);
+ assert(I915_TILING_X == INTEL_TILE_X);
+ assert(I915_TILING_Y == INTEL_TILE_Y);
+
+ return drm_intel_bo_set_tiling(intel_bo(buffer), &tile, stride);
+}
+
+static void *
+intel_drm_buffer_map(struct intel_winsys *iws,
+ struct intel_buffer *buffer,
+ boolean write)
+{
+ struct intel_drm_buffer *buf = intel_drm_buffer(buffer);
+ drm_intel_bo *bo = intel_bo(buffer);
+ int ret = 0;
+
+ assert(bo);
+
+ if (buf->map_count)
+ goto out;
+
+ if (buf->map_gtt)
+ ret = drm_intel_gem_bo_map_gtt(bo);
+ else
+ ret = drm_intel_bo_map(bo, write);
+
+ buf->ptr = bo->virtual;
+
+ assert(ret == 0);
+out:
+ if (ret)
+ return NULL;
+
+ buf->map_count++;
+ return buf->ptr;
+}
+
+static void
+intel_drm_buffer_unmap(struct intel_winsys *iws,
+ struct intel_buffer *buffer)
+{
+ struct intel_drm_buffer *buf = intel_drm_buffer(buffer);
+
+ if (--buf->map_count)
+ return;
+
+ if (buf->map_gtt)
+ drm_intel_gem_bo_unmap_gtt(intel_bo(buffer));
+ else
+ drm_intel_bo_unmap(intel_bo(buffer));
+}
+
+static void
+intel_drm_buffer_destroy(struct intel_winsys *iws,
+ struct intel_buffer *buffer)
+{
+ drm_intel_bo_unreference(intel_bo(buffer));
+
+#ifdef DEBUG
+ intel_drm_buffer(buffer)->magic = 0;
+ intel_drm_buffer(buffer)->bo = NULL;
+#endif
+
+ FREE(buffer);
+}
+
+void
+intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws)
+{
+ idws->base.buffer_create = intel_drm_buffer_create;
+ idws->base.buffer_set_fence_reg = intel_drm_buffer_set_fence_reg;
+ idws->base.buffer_map = intel_drm_buffer_map;
+ idws->base.buffer_unmap = intel_drm_buffer_unmap;
+ idws->base.buffer_destroy = intel_drm_buffer_destroy;
+}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_fence.c b/src/gallium/winsys/drm/intel/gem/intel_drm_fence.c
new file mode 100644
index 00000000000..e70bfe7b44e
--- /dev/null
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_fence.c
@@ -0,0 +1,81 @@
+
+#include "intel_drm_winsys.h"
+#include "util/u_memory.h"
+#include "pipe/p_refcnt.h"
+
+/**
+ * Because gem does not have fence's we have to create our own fences.
+ *
+ * They work by keeping the batchbuffer around and checking if that has
+ * been idled. If bo is NULL fence has expired.
+ */
+struct intel_drm_fence
+{
+ struct pipe_reference reference;
+ drm_intel_bo *bo;
+};
+
+
+struct pipe_fence_handle *
+intel_drm_fence_create(drm_intel_bo *bo)
+{
+ struct intel_drm_fence *fence = CALLOC_STRUCT(intel_drm_fence);
+
+ pipe_reference_init(&fence->reference, 1);
+ /* bo is null if fence already expired */
+ if (bo) {
+ drm_intel_bo_reference(bo);
+ fence->bo = bo;
+ }
+
+ return (struct pipe_fence_handle *)fence;
+}
+
+static void
+intel_drm_fence_reference(struct intel_winsys *iws,
+ struct pipe_fence_handle **ptr,
+ struct pipe_fence_handle *fence)
+{
+ struct intel_drm_fence *old = (struct intel_drm_fence *)*ptr;
+ struct intel_drm_fence *f = (struct intel_drm_fence *)fence;
+
+ if (pipe_reference((struct pipe_reference**)ptr, &f->reference)) {
+ if (old->bo)
+ drm_intel_bo_unreference(old->bo);
+ FREE(old);
+ }
+}
+
+static int
+intel_drm_fence_signalled(struct intel_winsys *iws,
+ struct pipe_fence_handle *fence)
+{
+ assert(0);
+
+ return 0;
+}
+
+static int
+intel_drm_fence_finish(struct intel_winsys *iws,
+ struct pipe_fence_handle *fence)
+{
+ struct intel_drm_fence *f = (struct intel_drm_fence *)fence;
+
+ /* fence already expired */
+ if (!f->bo)
+ return 0;
+
+ drm_intel_bo_wait_rendering(f->bo);
+ drm_intel_bo_unreference(f->bo);
+ f->bo = NULL;
+
+ return 0;
+}
+
+void
+intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws)
+{
+ idws->base.fence_reference = intel_drm_fence_reference;
+ idws->base.fence_signalled = intel_drm_fence_signalled;
+ idws->base.fence_finish = intel_drm_fence_finish;
+}
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h b/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h
new file mode 100644
index 00000000000..415c45feea0
--- /dev/null
+++ b/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h
@@ -0,0 +1,78 @@
+
+#ifndef INTEL_DRM_WINSYS_H
+#define INTEL_DRM_WINSYS_H
+
+#include "i915simple/intel_batchbuffer.h"
+
+#include "drm.h"
+#include "intel_bufmgr.h"
+
+
+/*
+ * Winsys
+ */
+
+
+struct intel_drm_winsys
+{
+ struct intel_winsys base;
+
+ boolean softpipe;
+ boolean dump_cmd;
+
+ int fd; /**< Drm file discriptor */
+
+ unsigned id;
+
+ size_t max_batch_size;
+
+ struct {
+ drm_intel_bufmgr *gem;
+ } pools;
+};
+
+static INLINE struct intel_drm_winsys *
+intel_drm_winsys(struct intel_winsys *iws)
+{
+ return (struct intel_drm_winsys *)iws;
+}
+
+struct intel_drm_winsys * intel_drm_winsys_create(int fd, unsigned pci_id);
+struct pipe_fence_handle * intel_drm_fence_create(drm_intel_bo *bo);
+
+void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws);
+void intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws);
+void intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws);
+
+
+/*
+ * Buffer
+ */
+
+
+struct intel_drm_buffer {
+ unsigned magic;
+
+ drm_intel_bo *bo;
+
+ void *ptr;
+ unsigned map_count;
+ boolean map_gtt;
+
+ boolean flinked;
+ unsigned flink;
+};
+
+static INLINE struct intel_drm_buffer *
+intel_drm_buffer(struct intel_buffer *buffer)
+{
+ return (struct intel_drm_buffer *)buffer;
+}
+
+static INLINE drm_intel_bo *
+intel_bo(struct intel_buffer *buffer)
+{
+ return intel_drm_buffer(buffer)->bo;
+}
+
+#endif
diff --git a/src/gallium/winsys/drm/intel/xorg/intel_xorg.c b/src/gallium/winsys/drm/intel/xorg/intel_xorg.c
index 28107f4b806..369dc356cf8 100644
--- a/src/gallium/winsys/drm/intel/xorg/intel_xorg.c
+++ b/src/gallium/winsys/drm/intel/xorg/intel_xorg.c
@@ -47,8 +47,8 @@ static SymTabRec intel_xorg_chipsets[] = {
};
static PciChipsets intel_xorg_pci_devices[] = {
- {PCI_MATCH_ANY, PCI_MATCH_ANY, RES_SHARED_VGA},
- {-1, -1, RES_UNDEFINED}
+ {PCI_MATCH_ANY, PCI_MATCH_ANY, NULL},
+ {-1, -1, NULL}
};
static XF86ModuleVersionInfo intel_xorg_version = {
@@ -105,12 +105,6 @@ intel_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
xf86AddDriver(&modesetting, module, HaveDriverFuncs);
/*
- * Tell the loader about symbols from other modules that this module
- * might refer to.
- */
- xorg_tracker_loader_ref_sym_lists();
-
- /*
* The return value must be non-NULL on success even though there
* is no TearDownProc.
*/
diff --git a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
index 3167ccfdc16..091cbbcfed1 100644
--- a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
+++ b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
@@ -12,51 +12,37 @@
#include "nouveau/nouveau_screen.h"
static struct pipe_surface *
-dri_surface_from_handle(struct drm_api *api, struct pipe_screen *screen,
- unsigned handle,
- enum pipe_format format,
- unsigned width,
- unsigned height,
- unsigned pitch)
+dri_surface_from_handle(struct drm_api *api, struct pipe_screen *pscreen,
+ unsigned handle, enum pipe_format format,
+ unsigned width, unsigned height, unsigned pitch)
{
- struct pipe_surface *surface = NULL;
- struct pipe_texture *texture = NULL;
- struct pipe_texture templat;
- struct pipe_buffer *buf = NULL;
-
- buf = api->buffer_from_handle(api, screen, "front buffer", handle);
- if (!buf)
- return NULL;
-
- memset(&templat, 0, sizeof(templat));
- templat.tex_usage = PIPE_TEXTURE_USAGE_PRIMARY |
- NOUVEAU_TEXTURE_USAGE_LINEAR;
- templat.target = PIPE_TEXTURE_2D;
- templat.last_level = 0;
- templat.depth[0] = 1;
- templat.format = format;
- templat.width[0] = width;
- templat.height[0] = height;
- pf_get_block(templat.format, &templat.block);
-
- texture = screen->texture_blanket(screen,
- &templat,
- &pitch,
- buf);
-
- /* we don't need the buffer from this point on */
- pipe_buffer_reference(&buf, NULL);
-
- if (!texture)
- return NULL;
-
- surface = screen->get_tex_surface(screen, texture, 0, 0, 0,
- PIPE_BUFFER_USAGE_GPU_READ |
- PIPE_BUFFER_USAGE_GPU_WRITE);
-
- /* we don't need the texture from this point on */
- pipe_texture_reference(&texture, NULL);
- return surface;
+ struct pipe_surface *ps = NULL;
+ struct pipe_texture *pt = NULL;
+ struct pipe_texture tmpl;
+
+ memset(&tmpl, 0, sizeof(tmpl));
+ tmpl.tex_usage = PIPE_TEXTURE_USAGE_PRIMARY |
+ NOUVEAU_TEXTURE_USAGE_LINEAR;
+ tmpl.target = PIPE_TEXTURE_2D;
+ tmpl.last_level = 0;
+ tmpl.depth[0] = 1;
+ tmpl.format = format;
+ tmpl.width[0] = width;
+ tmpl.height[0] = height;
+ pf_get_block(tmpl.format, &tmpl.block);
+
+ pt = api->texture_from_shared_handle(api, pscreen, &tmpl,
+ "front buffer", pitch, handle);
+ if (!pt)
+ return NULL;
+
+ ps = pscreen->get_tex_surface(pscreen, pt, 0, 0, 0,
+ PIPE_BUFFER_USAGE_GPU_READ |
+ PIPE_BUFFER_USAGE_GPU_WRITE);
+
+ /* we don't need the texture from this point on */
+ pipe_texture_reference(&pt, NULL);
+ return ps;
}
static struct pipe_surface *
@@ -205,16 +191,10 @@ nouveau_drm_create_context(struct drm_api *api, struct pipe_screen *pscreen)
return nvws->pctx[i];
}
-static boolean
-nouveau_drm_pb_from_pt(struct drm_api *api, struct pipe_texture *pt,
- struct pipe_buffer **ppb, unsigned *stride)
-{
- return false;
-}
-
-static struct pipe_buffer *
-nouveau_drm_pb_from_handle(struct drm_api *api, struct pipe_screen *pscreen,
- const char *name, unsigned handle)
+static struct pipe_texture *
+nouveau_drm_pt_from_name(struct drm_api *api, struct pipe_screen *pscreen,
+ struct pipe_texture *templ, const char *name,
+ unsigned stride, unsigned handle)
{
struct nouveau_device *dev = nouveau_screen(pscreen)->device;
struct pipe_buffer *pb;
@@ -238,41 +218,42 @@ nouveau_drm_pb_from_handle(struct drm_api *api, struct pipe_screen *pscreen,
pb->usage = PIPE_BUFFER_USAGE_GPU_READ_WRITE |
PIPE_BUFFER_USAGE_CPU_READ_WRITE;
pb->size = nouveau_bo(pb)->size;
- return pb;
+ return pscreen->texture_blanket(pscreen, templ, &stride, pb);
}
static boolean
-nouveau_drm_handle_from_pb(struct drm_api *api, struct pipe_screen *pscreen,
- struct pipe_buffer *pb, unsigned *handle)
+nouveau_drm_name_from_pt(struct drm_api *api, struct pipe_screen *pscreen,
+ struct pipe_texture *pt, unsigned *stride,
+ unsigned *handle)
{
- struct nouveau_bo *bo = nouveau_bo(pb);
+ struct nouveau_miptree *mt = nouveau_miptree(pt);
- if (!bo)
- return FALSE;
+ if (!mt || !mt->bo)
+ return false;
- *handle = bo->handle;
- return TRUE;
+ return nouveau_bo_handle_get(mt->bo, handle) == 0;
}
static boolean
-nouveau_drm_name_from_pb(struct drm_api *api, struct pipe_screen *pscreen,
- struct pipe_buffer *pb, unsigned *handle)
+nouveau_drm_handle_from_pt(struct drm_api *api, struct pipe_screen *pscreen,
+ struct pipe_texture *pt, unsigned *stride,
+ unsigned *handle)
{
- struct nouveau_bo *bo = nouveau_bo(pb);
+ struct nouveau_miptree *mt = nouveau_miptree(pt);
- if (!bo)
- return FALSE;
+ if (!mt || !mt->bo)
+ return false;
- return nouveau_bo_handle_get(bo, handle) == 0;
+ *handle = mt->bo->handle;
+ return true;
}
struct drm_api drm_api_hooks = {
.create_screen = nouveau_drm_create_screen,
.create_context = nouveau_drm_create_context,
- .buffer_from_texture = nouveau_drm_pb_from_pt,
- .buffer_from_handle = nouveau_drm_pb_from_handle,
- .handle_from_buffer = nouveau_drm_handle_from_pb,
- .global_handle_from_buffer = nouveau_drm_name_from_pb,
+ .texture_from_shared_handle = nouveau_drm_pt_from_name,
+ .shared_handle_from_texture = nouveau_drm_name_from_pt,
+ .local_handle_from_texture = nouveau_drm_handle_from_pt,
};
struct drm_api *
diff --git a/src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c b/src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c
index f2c6ee5f9a9..837f2aa8fec 100644
--- a/src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c
+++ b/src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c
@@ -48,8 +48,8 @@ static SymTabRec radeon_xorg_chipsets[] = {
};
static PciChipsets radeon_xorg_pci_devices[] = {
- {PCI_MATCH_ANY, PCI_MATCH_ANY, RES_SHARED_VGA},
- {-1, -1, RES_UNDEFINED}
+ {PCI_MATCH_ANY, PCI_MATCH_ANY, NULL},
+ {-1, -1, NULL}
};
static XF86ModuleVersionInfo radeon_xorg_version = {
@@ -106,12 +106,6 @@ radeon_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
xf86AddDriver(&modesetting, module, HaveDriverFuncs);
/*
- * Tell the loader about symbols from other modules that this module
- * might refer to.
- */
- xorg_tracker_loader_ref_sym_lists();
-
- /*
* The return value must be non-NULL on success even though there
* is no TearDownProc.
*/
diff --git a/src/gallium/winsys/xlib/SConscript b/src/gallium/winsys/xlib/SConscript
index 518fd2b5a84..467d595d33b 100644
--- a/src/gallium/winsys/xlib/SConscript
+++ b/src/gallium/winsys/xlib/SConscript
@@ -30,12 +30,12 @@ if env['platform'] == 'linux' \
drivers += [softpipe]
if 'llvmpipe' in env['drivers']:
- env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
- env.Tool('udis86')
- env.ParseConfig('llvm-config --libs jit interpreter nativecodegen')
- env['LINK'] = env['CXX']
- sources += ['xlib_llvmpipe.c']
- drivers += [llvmpipe]
+ env.Tool('llvm')
+ if 'LLVM_VERSION' in env:
+ env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
+ env.Tool('udis86')
+ sources += ['xlib_llvmpipe.c']
+ drivers += [llvmpipe]
if 'i965simple' in env['drivers']:
env.Append(CPPDEFINES = 'GALLIUM_I965SIMPLE')
diff --git a/src/gallium/winsys/xlib/xlib_brw_screen.c b/src/gallium/winsys/xlib/xlib_brw_screen.c
index 6f3861e2cd6..ef545796f3c 100644
--- a/src/gallium/winsys/xlib/xlib_brw_screen.c
+++ b/src/gallium/winsys/xlib/xlib_brw_screen.c
@@ -365,7 +365,7 @@ void xlib_brw_buffer_subdata_typed( struct pipe_winsys *pws,
unsigned data_type )
{
unsigned aub_type = DW_GENERAL_STATE;
- unsigned aub_sub_type;
+ unsigned aub_sub_type = 0;
switch (data_type) {
case BRW_CC_VP:
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index 6617c9dbe54..cad56763208 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -84,6 +84,7 @@ if env['platform'] != 'winddk':
'main/shared.c',
'main/state.c',
'main/stencil.c',
+ 'main/syncobj.c',
'main/texcompress.c',
'main/texcompress_s3tc.c',
'main/texcompress_fxt1.c',
diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c
index 3b397fef7de..a9f3c8e7271 100644
--- a/src/mesa/drivers/common/driverfuncs.c
+++ b/src/mesa/drivers/common/driverfuncs.c
@@ -45,6 +45,9 @@
#include "main/fbobject.h"
#include "main/texrender.h"
#endif
+#if FEATURE_ARB_sync
+#include "main/syncobj.h"
+#endif
#include "shader/program.h"
#include "shader/prog_execute.h"
@@ -200,6 +203,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
driver->GetDoublev = NULL;
driver->GetFloatv = NULL;
driver->GetIntegerv = NULL;
+ driver->GetInteger64v = NULL;
driver->GetPointerv = NULL;
/* buffer objects */
@@ -208,6 +212,10 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
/* query objects */
_mesa_init_query_object_functions(driver);
+#if FEATURE_ARB_sync
+ _mesa_init_sync_object_functions(driver);
+#endif
+
#if FEATURE_EXT_framebuffer_object
driver->NewFramebuffer = _mesa_new_framebuffer;
driver->NewRenderbuffer = _mesa_new_soft_renderbuffer;
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 02194a39b47..965fb8697ed 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -43,6 +43,7 @@
#include "main/macros.h"
#include "main/matrix.h"
#include "main/polygon.h"
+#include "main/readpix.h"
#include "main/scissor.h"
#include "main/shaders.h"
#include "main/stencil.h"
@@ -54,6 +55,7 @@
#include "main/varray.h"
#include "main/viewport.h"
#include "shader/program.h"
+#include "shader/arbprogram.h"
#include "swrast/swrast.h"
#include "drivers/common/meta.h"
@@ -82,8 +84,8 @@ struct save_state
/** META_FOG */
GLboolean Fog;
- /** META_PIXELSTORE */
- /* XXX / TO-DO */
+ /** META_PIXEL_STORE */
+ struct gl_pixelstore_attrib Pack, Unpack;
/** META_RASTERIZATION */
GLenum FrontPolygonMode, BackPolygonMode;
@@ -142,7 +144,7 @@ struct blit_state
{
GLuint ArrayObj;
GLuint VBO;
- GLfloat verts[4][4]; /** four verts of X,Y,S,T */
+ GLuint DepthFP;
};
@@ -153,7 +155,6 @@ struct clear_state
{
GLuint ArrayObj;
GLuint VBO;
- GLfloat verts[4][7]; /** four verts of X,Y,Z,R,G,B,A */
};
@@ -164,7 +165,6 @@ struct copypix_state
{
GLuint ArrayObj;
GLuint VBO;
- GLfloat verts[4][5]; /** four verts of X,Y,Z,S,T */
};
@@ -175,7 +175,9 @@ struct drawpix_state
{
GLuint ArrayObj;
GLuint VBO;
- GLfloat verts[4][5]; /** four verts of X,Y,Z,S,T */
+
+ GLuint StencilFP; /**< Fragment program for drawing stencil images */
+ GLuint DepthFP; /**< Fragment program for drawing depth images */
};
@@ -239,28 +241,31 @@ _mesa_meta_free(GLcontext *ctx)
{
struct gl_meta_state *meta = ctx->Meta;
- if (meta->TempTex.TexObj) {
+ if (_mesa_get_current_context()) {
+ /* if there's no current context, these textures, buffers, etc should
+ * still get freed by _mesa_free_context_data().
+ */
+
_mesa_DeleteTextures(1, &meta->TempTex.TexObj);
- }
- if (meta->Blit.VBO) {
+ /* glBlitFramebuffer */
_mesa_DeleteBuffersARB(1, & meta->Blit.VBO);
_mesa_DeleteVertexArraysAPPLE(1, &meta->Blit.ArrayObj);
- }
+ _mesa_DeletePrograms(1, &meta->Blit.DepthFP);
- if (meta->Clear.VBO) {
+ /* glClear */
_mesa_DeleteBuffersARB(1, & meta->Clear.VBO);
_mesa_DeleteVertexArraysAPPLE(1, &meta->Clear.ArrayObj);
- }
- if (meta->CopyPix.VBO) {
+ /* glCopyPixels */
_mesa_DeleteBuffersARB(1, & meta->CopyPix.VBO);
_mesa_DeleteVertexArraysAPPLE(1, &meta->CopyPix.ArrayObj);
- }
- if (meta->DrawPix.VBO) {
+ /* glDrawPixels */
_mesa_DeleteBuffersARB(1, & meta->DrawPix.VBO);
_mesa_DeleteVertexArraysAPPLE(1, &meta->DrawPix.ArrayObj);
+ _mesa_DeletePrograms(1, &meta->DrawPix.DepthFP);
+ _mesa_DeletePrograms(1, &meta->DrawPix.StencilFP);
}
_mesa_free(ctx->Meta);
@@ -318,6 +323,13 @@ _mesa_meta_begin(GLcontext *ctx, GLbitfield state)
_mesa_set_enable(ctx, GL_FOG, GL_FALSE);
}
+ if (state & META_PIXEL_STORE) {
+ save->Pack = ctx->Pack;
+ save->Unpack = ctx->Unpack;
+ ctx->Pack = ctx->DefaultPacking;
+ ctx->Unpack = ctx->DefaultPacking;
+ }
+
if (state & META_RASTERIZATION) {
save->FrontPolygonMode = ctx->Polygon.FrontMode;
save->BackPolygonMode = ctx->Polygon.BackMode;
@@ -508,6 +520,11 @@ _mesa_meta_end(GLcontext *ctx)
_mesa_set_enable(ctx, GL_FOG, save->Fog);
}
+ if (state & META_PIXEL_STORE) {
+ ctx->Pack = save->Pack;
+ ctx->Unpack = save->Unpack;
+ }
+
if (state & META_RASTERIZATION) {
_mesa_PolygonMode(GL_FRONT, save->FrontPolygonMode);
_mesa_PolygonMode(GL_BACK, save->BackPolygonMode);
@@ -694,7 +711,7 @@ get_temp_texture(GLcontext *ctx)
/* do one-time init */
/* prefer texture rectangle */
- if (0*ctx->Extensions.NV_texture_rectangle) {
+ if (ctx->Extensions.NV_texture_rectangle) {
tex->Target = GL_TEXTURE_RECTANGLE;
tex->MaxSize = ctx->Const.MaxTextureRectSize;
tex->NPOT = GL_TRUE;
@@ -703,7 +720,7 @@ get_temp_texture(GLcontext *ctx)
/* use 2D texture, NPOT if possible */
tex->Target = GL_TEXTURE_2D;
tex->MaxSize = 1 << (ctx->Const.MaxTextureLevels - 1);
- tex->NPOT = 0*ctx->Extensions.ARB_texture_non_power_of_two;
+ tex->NPOT = ctx->Extensions.ARB_texture_non_power_of_two;
}
assert(tex->MaxSize > 0);
@@ -855,6 +872,38 @@ setup_drawpix_texture(struct temp_texture *tex,
/**
+ * One-time init for drawing depth pixels.
+ */
+static void
+init_blit_depth_pixels(GLcontext *ctx)
+{
+ static const char *program =
+ "!!ARBfp1.0\n"
+ "TEX result.depth, fragment.texcoord[0], texture[0], %s; \n"
+ "END \n";
+ char program2[200];
+ struct blit_state *blit = &ctx->Meta->Blit;
+ struct temp_texture *tex = get_temp_texture(ctx);
+ const char *texTarget;
+
+ assert(blit->DepthFP == 0);
+
+ /* replace %s with "RECT" or "2D" */
+ assert(strlen(program) + 4 < sizeof(program2));
+ if (tex->Target == GL_TEXTURE_RECTANGLE)
+ texTarget = "RECT";
+ else
+ texTarget = "2D";
+ _mesa_snprintf(program2, sizeof(program2), program, texTarget);
+
+ _mesa_GenPrograms(1, &blit->DepthFP);
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, blit->DepthFP);
+ _mesa_ProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen(program2), (const GLubyte *) program2);
+}
+
+
+/**
* Meta implementation of ctx->Driver.BlitFramebuffer() in terms
* of texture mapping and polygon rendering.
*/
@@ -873,6 +922,7 @@ _mesa_meta_blit_framebuffer(GLcontext *ctx,
const GLint srcH = abs(srcY1 - srcY0);
const GLboolean srcFlipX = srcX1 < srcX0;
const GLboolean srcFlipY = srcY1 < srcY0;
+ GLfloat verts[4][4]; /* four verts of X,Y,S,T */
GLboolean newTex;
if (srcW > maxTexSize || srcH > maxTexSize) {
@@ -907,13 +957,13 @@ _mesa_meta_blit_framebuffer(GLcontext *ctx,
/* create vertex array buffer */
_mesa_GenBuffersARB(1, &blit->VBO);
_mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, blit->VBO);
- _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(blit->verts),
- blit->verts, GL_STREAM_DRAW_ARB);
+ _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
/* setup vertex arrays */
- _mesa_VertexPointer(2, GL_FLOAT, 4 * sizeof(GLfloat),
- (void*) (0 * sizeof(GLfloat)));
- _mesa_TexCoordPointer(2, GL_FLOAT, 4 * sizeof(GLfloat),
+ _mesa_VertexPointer(2, GL_FLOAT, sizeof(verts[0]),
+ (void *) (0 * sizeof(GLfloat)));
+ _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(verts[0]),
(void *) (2 * sizeof(GLfloat)));
_mesa_EnableClientState(GL_VERTEX_ARRAY);
_mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -927,27 +977,26 @@ _mesa_meta_blit_framebuffer(GLcontext *ctx,
/* vertex positions/texcoords (after texture allocation!) */
{
- blit->verts[0][0] = (GLfloat) dstX0;
- blit->verts[0][1] = (GLfloat) dstY0;
- blit->verts[1][0] = (GLfloat) dstX1;
- blit->verts[1][1] = (GLfloat) dstY0;
- blit->verts[2][0] = (GLfloat) dstX1;
- blit->verts[2][1] = (GLfloat) dstY1;
- blit->verts[3][0] = (GLfloat) dstX0;
- blit->verts[3][1] = (GLfloat) dstY1;
-
- blit->verts[0][2] = 0.0F;
- blit->verts[0][3] = 0.0F;
- blit->verts[1][2] = tex->Sright;
- blit->verts[1][3] = 0.0F;
- blit->verts[2][2] = tex->Sright;
- blit->verts[2][3] = tex->Ttop;
- blit->verts[3][2] = 0.0F;
- blit->verts[3][3] = tex->Ttop;
+ verts[0][0] = (GLfloat) dstX0;
+ verts[0][1] = (GLfloat) dstY0;
+ verts[1][0] = (GLfloat) dstX1;
+ verts[1][1] = (GLfloat) dstY0;
+ verts[2][0] = (GLfloat) dstX1;
+ verts[2][1] = (GLfloat) dstY1;
+ verts[3][0] = (GLfloat) dstX0;
+ verts[3][1] = (GLfloat) dstY1;
+
+ verts[0][2] = 0.0F;
+ verts[0][3] = 0.0F;
+ verts[1][2] = tex->Sright;
+ verts[1][3] = 0.0F;
+ verts[2][2] = tex->Sright;
+ verts[2][3] = tex->Ttop;
+ verts[3][2] = 0.0F;
+ verts[3][3] = tex->Ttop;
/* upload new vertex data */
- _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
- sizeof(blit->verts), blit->verts);
+ _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
_mesa_Enable(tex->Target);
@@ -958,9 +1007,36 @@ _mesa_meta_blit_framebuffer(GLcontext *ctx,
_mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
mask &= ~GL_COLOR_BUFFER_BIT;
}
+
if (mask & GL_DEPTH_BUFFER_BIT) {
- /* XXX todo (need fragment shader) */
+ GLuint *tmp = (GLuint *) _mesa_malloc(srcW * srcH * sizeof(GLuint));
+ if (tmp) {
+ if (!blit->DepthFP)
+ init_blit_depth_pixels(ctx);
+
+ /* maybe change tex format here */
+ newTex = alloc_texture(tex, srcW, srcH, GL_DEPTH_COMPONENT);
+
+ _mesa_ReadPixels(srcX, srcY, srcW, srcH,
+ GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
+
+ setup_drawpix_texture(tex, newTex, GL_DEPTH_COMPONENT, srcW, srcH,
+ GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
+
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, blit->DepthFP);
+ _mesa_set_enable(ctx, GL_FRAGMENT_PROGRAM_ARB, GL_TRUE);
+ _mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ _mesa_set_enable(ctx, GL_DEPTH_TEST, GL_TRUE);
+ _mesa_DepthFunc(GL_ALWAYS);
+ _mesa_DepthMask(GL_TRUE);
+
+ _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ mask &= ~GL_DEPTH_BUFFER_BIT;
+
+ _mesa_free(tmp);
+ }
}
+
if (mask & GL_STENCIL_BUFFER_BIT) {
/* XXX can't easily do stencil */
}
@@ -969,8 +1045,7 @@ _mesa_meta_blit_framebuffer(GLcontext *ctx,
_mesa_meta_end(ctx);
- /* XXX, TO-DO: try to handle these cases above! */
- if (mask & (GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)) {
+ if (mask) {
_swrast_BlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, mask, filter);
}
@@ -984,9 +1059,16 @@ void
_mesa_meta_clear(GLcontext *ctx, GLbitfield buffers)
{
struct clear_state *clear = &ctx->Meta->Clear;
+ GLfloat verts[4][7]; /* four verts of X,Y,Z,R,G,B,A */
+ /* save all state but scissor, pixel pack/unpack */
+ GLbitfield metaSave = META_ALL - META_SCISSOR - META_PIXEL_STORE;
- /* only scissor and color mask effects clearing */
- _mesa_meta_begin(ctx, ~(META_SCISSOR | META_COLOR_MASK));
+ if (buffers & BUFFER_BITS_COLOR) {
+ /* if clearing color buffers, don't save/restore colormask */
+ metaSave -= META_COLOR_MASK;
+ }
+
+ _mesa_meta_begin(ctx, metaSave);
if (clear->ArrayObj == 0) {
/* one-time setup */
@@ -998,12 +1080,13 @@ _mesa_meta_clear(GLcontext *ctx, GLbitfield buffers)
/* create vertex array buffer */
_mesa_GenBuffersARB(1, &clear->VBO);
_mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, clear->VBO);
- _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(clear->verts),
- clear->verts, GL_STREAM_DRAW_ARB);
+ _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
/* setup vertex arrays */
- _mesa_VertexPointer(3, GL_FLOAT, 7 * sizeof(GLfloat), (void *) 0);
- _mesa_ColorPointer(4, GL_FLOAT, 7 * sizeof(GLfloat),
+ _mesa_VertexPointer(3, GL_FLOAT, sizeof(verts[0]),
+ (void *) (0 * sizeof(GLfloat)));
+ _mesa_ColorPointer(4, GL_FLOAT, sizeof(verts[0]),
(void *) (3 * sizeof(GLfloat)));
_mesa_EnableClientState(GL_VERTEX_ARRAY);
_mesa_EnableClientState(GL_COLOR_ARRAY);
@@ -1018,6 +1101,7 @@ _mesa_meta_clear(GLcontext *ctx, GLbitfield buffers)
/* leave colormask, glDrawBuffer state as-is */
}
else {
+ ASSERT(metaSave & META_COLOR_MASK);
_mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
}
@@ -1053,27 +1137,26 @@ _mesa_meta_clear(GLcontext *ctx, GLbitfield buffers)
const GLfloat z = 1.0 - 2.0 * ctx->Depth.Clear;
GLuint i;
- clear->verts[0][0] = x0;
- clear->verts[0][1] = y0;
- clear->verts[0][2] = z;
- clear->verts[1][0] = x1;
- clear->verts[1][1] = y0;
- clear->verts[1][2] = z;
- clear->verts[2][0] = x1;
- clear->verts[2][1] = y1;
- clear->verts[2][2] = z;
- clear->verts[3][0] = x0;
- clear->verts[3][1] = y1;
- clear->verts[3][2] = z;
+ verts[0][0] = x0;
+ verts[0][1] = y0;
+ verts[0][2] = z;
+ verts[1][0] = x1;
+ verts[1][1] = y0;
+ verts[1][2] = z;
+ verts[2][0] = x1;
+ verts[2][1] = y1;
+ verts[2][2] = z;
+ verts[3][0] = x0;
+ verts[3][1] = y1;
+ verts[3][2] = z;
/* vertex colors */
for (i = 0; i < 4; i++) {
- COPY_4FV(&clear->verts[i][3], ctx->Color.ClearColor);
+ COPY_4FV(&verts[i][3], ctx->Color.ClearColor);
}
/* upload new vertex data */
- _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
- sizeof(clear->verts), clear->verts);
+ _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
/* draw quad */
@@ -1094,6 +1177,7 @@ _mesa_meta_copy_pixels(GLcontext *ctx, GLint srcX, GLint srcY,
{
struct copypix_state *copypix = &ctx->Meta->CopyPix;
struct temp_texture *tex = get_temp_texture(ctx);
+ GLfloat verts[4][5]; /* four verts of X,Y,Z,S,T */
GLboolean newTex;
GLenum intFormat = GL_RGBA;
@@ -1127,13 +1211,13 @@ _mesa_meta_copy_pixels(GLcontext *ctx, GLint srcX, GLint srcY,
/* create vertex array buffer */
_mesa_GenBuffersARB(1, &copypix->VBO);
_mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, copypix->VBO);
- _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(copypix->verts),
- copypix->verts, GL_STREAM_DRAW_ARB);
+ _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
/* setup vertex arrays */
- _mesa_VertexPointer(3, GL_FLOAT, sizeof(copypix->verts[0]),
- (void*) (0 * sizeof(GLfloat)));
- _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(copypix->verts[0]),
+ _mesa_VertexPointer(3, GL_FLOAT, sizeof(verts[0]),
+ (void *) (0 * sizeof(GLfloat)));
+ _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(verts[0]),
(void *) (3 * sizeof(GLfloat)));
_mesa_EnableClientState(GL_VERTEX_ARRAY);
_mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -1153,30 +1237,29 @@ _mesa_meta_copy_pixels(GLcontext *ctx, GLint srcX, GLint srcY,
const GLfloat dstY1 = dstY + height * ctx->Pixel.ZoomY;
const GLfloat z = ctx->Current.RasterPos[2];
- copypix->verts[0][0] = dstX0;
- copypix->verts[0][1] = dstY0;
- copypix->verts[0][2] = z;
- copypix->verts[0][3] = 0.0F;
- copypix->verts[0][4] = 0.0F;
- copypix->verts[1][0] = dstX1;
- copypix->verts[1][1] = dstY0;
- copypix->verts[1][2] = z;
- copypix->verts[1][3] = tex->Sright;
- copypix->verts[1][4] = 0.0F;
- copypix->verts[2][0] = dstX1;
- copypix->verts[2][1] = dstY1;
- copypix->verts[2][2] = z;
- copypix->verts[2][3] = tex->Sright;
- copypix->verts[2][4] = tex->Ttop;
- copypix->verts[3][0] = dstX0;
- copypix->verts[3][1] = dstY1;
- copypix->verts[3][2] = z;
- copypix->verts[3][3] = 0.0F;
- copypix->verts[3][4] = tex->Ttop;
+ verts[0][0] = dstX0;
+ verts[0][1] = dstY0;
+ verts[0][2] = z;
+ verts[0][3] = 0.0F;
+ verts[0][4] = 0.0F;
+ verts[1][0] = dstX1;
+ verts[1][1] = dstY0;
+ verts[1][2] = z;
+ verts[1][3] = tex->Sright;
+ verts[1][4] = 0.0F;
+ verts[2][0] = dstX1;
+ verts[2][1] = dstY1;
+ verts[2][2] = z;
+ verts[2][3] = tex->Sright;
+ verts[2][4] = tex->Ttop;
+ verts[3][0] = dstX0;
+ verts[3][1] = dstY1;
+ verts[3][2] = z;
+ verts[3][3] = 0.0F;
+ verts[3][4] = tex->Ttop;
/* upload new vertex data */
- _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
- sizeof(copypix->verts), copypix->verts);
+ _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
/* Alloc/setup texture */
@@ -1235,6 +1318,104 @@ tiled_draw_pixels(GLcontext *ctx,
/**
+ * One-time init for drawing stencil pixels.
+ */
+static void
+init_draw_stencil_pixels(GLcontext *ctx)
+{
+ /* This program is run eight times, once for each stencil bit.
+ * The stencil values to draw are found in an 8-bit alpha texture.
+ * We read the texture/stencil value and test if bit 'b' is set.
+ * If the bit is not set, use KIL to kill the fragment.
+ * Finally, we use the stencil test to update the stencil buffer.
+ *
+ * The basic algorithm for checking if a bit is set is:
+ * if (is_odd(value / (1 << bit)))
+ * result is one (or non-zero).
+ * else
+ * result is zero.
+ * The program parameter contains three values:
+ * parm.x = 255 / (1 << bit)
+ * parm.y = 0.5
+ * parm.z = 0.0
+ */
+ static const char *program =
+ "!!ARBfp1.0\n"
+ "PARAM parm = program.local[0]; \n"
+ "TEMP t; \n"
+ "TEX t, fragment.texcoord[0], texture[0], %s; \n" /* NOTE %s here! */
+ "# t = t * 255 / bit \n"
+ "MUL t.x, t.a, parm.x; \n"
+ "# t = (int) t \n"
+ "FRC t.y, t.x; \n"
+ "SUB t.x, t.x, t.y; \n"
+ "# t = t * 0.5 \n"
+ "MUL t.x, t.x, parm.y; \n"
+ "# t = fract(t.x) \n"
+ "FRC t.x, t.x; # if t.x != 0, then the bit is set \n"
+ "# t.x = (t.x == 0 ? 1 : 0) \n"
+ "SGE t.x, -t.x, parm.z; \n"
+ "KIL -t.x; \n"
+ "# for debug only \n"
+ "#MOV result.color, t.x; \n"
+ "END \n";
+ char program2[1000];
+ struct drawpix_state *drawpix = &ctx->Meta->DrawPix;
+ struct temp_texture *tex = get_temp_texture(ctx);
+ const char *texTarget;
+
+ assert(drawpix->StencilFP == 0);
+
+ /* replace %s with "RECT" or "2D" */
+ assert(strlen(program) + 4 < sizeof(program2));
+ if (tex->Target == GL_TEXTURE_RECTANGLE)
+ texTarget = "RECT";
+ else
+ texTarget = "2D";
+ _mesa_snprintf(program2, sizeof(program2), program, texTarget);
+
+ _mesa_GenPrograms(1, &drawpix->StencilFP);
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->StencilFP);
+ _mesa_ProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen(program2), (const GLubyte *) program2);
+}
+
+
+/**
+ * One-time init for drawing depth pixels.
+ */
+static void
+init_draw_depth_pixels(GLcontext *ctx)
+{
+ static const char *program =
+ "!!ARBfp1.0\n"
+ "PARAM color = program.local[0]; \n"
+ "TEX result.depth, fragment.texcoord[0], texture[0], %s; \n"
+ "MOV result.color, color; \n"
+ "END \n";
+ char program2[200];
+ struct drawpix_state *drawpix = &ctx->Meta->DrawPix;
+ struct temp_texture *tex = get_temp_texture(ctx);
+ const char *texTarget;
+
+ assert(drawpix->DepthFP == 0);
+
+ /* replace %s with "RECT" or "2D" */
+ assert(strlen(program) + 4 < sizeof(program2));
+ if (tex->Target == GL_TEXTURE_RECTANGLE)
+ texTarget = "RECT";
+ else
+ texTarget = "2D";
+ _mesa_snprintf(program2, sizeof(program2), program, texTarget);
+
+ _mesa_GenPrograms(1, &drawpix->DepthFP);
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->DepthFP);
+ _mesa_ProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
+ strlen(program2), (const GLubyte *) program2);
+}
+
+
+/**
* Meta implementation of ctx->Driver.DrawPixels() in terms
* of texture mapping and polygon rendering.
*/
@@ -1248,8 +1429,11 @@ _mesa_meta_draw_pixels(GLcontext *ctx,
struct drawpix_state *drawpix = &ctx->Meta->DrawPix;
struct temp_texture *tex = get_temp_texture(ctx);
const struct gl_pixelstore_attrib unpackSave = ctx->Unpack;
+ const GLuint origStencilMask = ctx->Stencil.WriteMask[0];
+ GLfloat verts[4][5]; /* four verts of X,Y,Z,S,T */
GLenum texIntFormat;
GLboolean fallback, newTex;
+ GLbitfield metaExtraSave = 0x0;
/*
* Determine if we can do the glDrawPixels with texture mapping.
@@ -1261,7 +1445,38 @@ _mesa_meta_draw_pixels(GLcontext *ctx,
}
if (_mesa_is_color_format(format)) {
- texIntFormat = GL_RGBA;
+ /* use more compact format when possible */
+ if (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA)
+ texIntFormat = format;
+ else
+ texIntFormat = GL_RGBA;
+ }
+ else if (_mesa_is_stencil_format(format)) {
+ if (ctx->Extensions.ARB_fragment_program &&
+ type == GL_UNSIGNED_BYTE) {
+ /* We'll store stencil as alpha. This only works for GLubyte
+ * image data because of how incoming values are mapped to alpha
+ * in [0,1].
+ */
+ texIntFormat = GL_ALPHA;
+ metaExtraSave = (META_COLOR_MASK |
+ META_DEPTH_TEST |
+ META_SHADER |
+ META_STENCIL_TEST);
+ }
+ else {
+ fallback = GL_TRUE;
+ }
+ }
+ else if (_mesa_is_depth_format(format)) {
+ if (ctx->Extensions.ARB_depth_texture &&
+ ctx->Extensions.ARB_fragment_program) {
+ texIntFormat = GL_DEPTH_COMPONENT;
+ metaExtraSave = (META_SHADER);
+ }
+ else {
+ fallback = GL_TRUE;
+ }
}
else {
fallback = GL_TRUE;
@@ -1290,7 +1505,8 @@ _mesa_meta_draw_pixels(GLcontext *ctx,
META_TEXTURE |
META_TRANSFORM |
META_VERTEX |
- META_VIEWPORT));
+ META_VIEWPORT |
+ metaExtraSave));
if (drawpix->ArrayObj == 0) {
/* one-time setup */
@@ -1302,13 +1518,13 @@ _mesa_meta_draw_pixels(GLcontext *ctx,
/* create vertex array buffer */
_mesa_GenBuffersARB(1, &drawpix->VBO);
_mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, drawpix->VBO);
- _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(drawpix->verts),
- drawpix->verts, GL_STREAM_DRAW_ARB);
+ _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
/* setup vertex arrays */
- _mesa_VertexPointer(3, GL_FLOAT, sizeof(drawpix->verts[0]),
- (void*) (0 * sizeof(GLfloat)));
- _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(drawpix->verts[0]),
+ _mesa_VertexPointer(3, GL_FLOAT, sizeof(verts[0]),
+ (void *) (0 * sizeof(GLfloat)));
+ _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(verts[0]),
(void *) (3 * sizeof(GLfloat)));
_mesa_EnableClientState(GL_VERTEX_ARRAY);
_mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -1328,47 +1544,95 @@ _mesa_meta_draw_pixels(GLcontext *ctx,
const GLfloat y1 = y + height * ctx->Pixel.ZoomY;
const GLfloat z = ctx->Current.RasterPos[2];
- drawpix->verts[0][0] = x0;
- drawpix->verts[0][1] = y0;
- drawpix->verts[0][2] = z;
- drawpix->verts[0][3] = 0.0F;
- drawpix->verts[0][4] = 0.0F;
- drawpix->verts[1][0] = x1;
- drawpix->verts[1][1] = y0;
- drawpix->verts[1][2] = z;
- drawpix->verts[1][3] = tex->Sright;
- drawpix->verts[1][4] = 0.0F;
- drawpix->verts[2][0] = x1;
- drawpix->verts[2][1] = y1;
- drawpix->verts[2][2] = z;
- drawpix->verts[2][3] = tex->Sright;
- drawpix->verts[2][4] = tex->Ttop;
- drawpix->verts[3][0] = x0;
- drawpix->verts[3][1] = y1;
- drawpix->verts[3][2] = z;
- drawpix->verts[3][3] = 0.0F;
- drawpix->verts[3][4] = tex->Ttop;
+ verts[0][0] = x0;
+ verts[0][1] = y0;
+ verts[0][2] = z;
+ verts[0][3] = 0.0F;
+ verts[0][4] = 0.0F;
+ verts[1][0] = x1;
+ verts[1][1] = y0;
+ verts[1][2] = z;
+ verts[1][3] = tex->Sright;
+ verts[1][4] = 0.0F;
+ verts[2][0] = x1;
+ verts[2][1] = y1;
+ verts[2][2] = z;
+ verts[2][3] = tex->Sright;
+ verts[2][4] = tex->Ttop;
+ verts[3][0] = x0;
+ verts[3][1] = y1;
+ verts[3][2] = z;
+ verts[3][3] = 0.0F;
+ verts[3][4] = tex->Ttop;
/* upload new vertex data */
- _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0,
- sizeof(drawpix->verts), drawpix->verts);
+ _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
/* set given unpack params */
ctx->Unpack = *unpack;
- setup_drawpix_texture(tex, newTex, texIntFormat, width, height,
- format, type, pixels);
+ _mesa_Enable(tex->Target);
- /* restore unpack params */
- ctx->Unpack = unpackSave;
+ if (_mesa_is_stencil_format(format)) {
+ /* Drawing stencil */
+ GLint bit;
- _mesa_Enable(tex->Target);
+ if (!drawpix->StencilFP)
+ init_draw_stencil_pixels(ctx);
- /* draw textured quad */
- _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ setup_drawpix_texture(tex, newTex, texIntFormat, width, height,
+ GL_ALPHA, type, pixels);
+
+ _mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+
+ _mesa_set_enable(ctx, GL_STENCIL_TEST, GL_TRUE);
+ _mesa_StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
+
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->StencilFP);
+ _mesa_set_enable(ctx, GL_FRAGMENT_PROGRAM_ARB, GL_TRUE);
+
+ for (bit = 0; bit < ctx->Visual.stencilBits; bit++) {
+ const GLuint mask = 1 << bit;
+ if (mask & origStencilMask) {
+ _mesa_StencilFunc(GL_ALWAYS, mask, mask);
+ _mesa_StencilMask(mask);
+
+ _mesa_ProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 0,
+ 255.0 / mask, 0.5, 0.0, 0.0);
+
+ _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ }
+ }
+ }
+ else if (_mesa_is_depth_format(format)) {
+ /* Drawing depth */
+ if (!drawpix->DepthFP)
+ init_draw_depth_pixels(ctx);
+
+ _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->DepthFP);
+ _mesa_set_enable(ctx, GL_FRAGMENT_PROGRAM_ARB, GL_TRUE);
+
+ /* polygon color = current raster color */
+ _mesa_ProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, 0,
+ ctx->Current.RasterColor);
+
+ setup_drawpix_texture(tex, newTex, texIntFormat, width, height,
+ format, type, pixels);
+
+ _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ }
+ else {
+ /* Drawing RGBA */
+ setup_drawpix_texture(tex, newTex, texIntFormat, width, height,
+ format, type, pixels);
+ _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ }
_mesa_Disable(tex->Target);
+ /* restore unpack params */
+ ctx->Unpack = unpackSave;
+
_mesa_meta_end(ctx);
}
diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h
index a9c5f980432..b03b64c48a1 100644
--- a/src/mesa/drivers/common/meta.h
+++ b/src/mesa/drivers/common/meta.h
@@ -45,6 +45,7 @@
#define META_TEXTURE 0x400
#define META_VERTEX 0x800
#define META_VIEWPORT 0x1000
+#define META_PIXEL_STORE 0x2000
#define META_ALL ~0x0
/*@}*/
diff --git a/src/mesa/drivers/dri/common/dri_metaops.c b/src/mesa/drivers/dri/common/dri_metaops.c
index cdbea344951..c7bea07dc97 100644
--- a/src/mesa/drivers/dri/common/dri_metaops.c
+++ b/src/mesa/drivers/dri/common/dri_metaops.c
@@ -287,250 +287,6 @@ meta_restore_texcoords(struct dri_metaops *meta)
}
-/**
- * Perform glClear where mask contains only color, depth, and/or stencil.
- *
- * The implementation is based on calling into Mesa to set GL state and
- * performing normal triangle rendering. The intent of this path is to
- * have as generic a path as possible, so that any driver could make use of
- * it.
- */
-
-/**
- * Per-context one-time init of things for intl_clear_tris().
- * Basically set up a private array object for vertex/color arrays.
- */
-static void
-meta_init_clear(struct dri_metaops *meta)
-{
- GLcontext *ctx = meta->ctx;
- struct gl_array_object *arraySave = NULL;
- const GLuint arrayBuffer = ctx->Array.ArrayBufferObj->Name;
- const GLuint elementBuffer = ctx->Array.ElementArrayBufferObj->Name;
-
- /* create new array object */
- meta->clear.arrayObj = _mesa_new_array_object(ctx, ~0);
-
- /* save current array object, bind new one */
- _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
- ctx->NewState |= _NEW_ARRAY;
- ctx->Array.NewState |= _NEW_ARRAY_ALL;
- _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, meta->clear.arrayObj);
-
- /* one-time setup of vertex arrays (pos, color) */
- _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
- _mesa_BindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
- _mesa_ColorPointer(4, GL_FLOAT, 4 * sizeof(GLfloat), meta->clear.color);
- _mesa_VertexPointer(3, GL_FLOAT, 3 * sizeof(GLfloat), meta->clear.vertices);
- _mesa_Enable(GL_COLOR_ARRAY);
- _mesa_Enable(GL_VERTEX_ARRAY);
-
- /* restore original array object */
- ctx->NewState |= _NEW_ARRAY;
- ctx->Array.NewState |= _NEW_ARRAY_ALL;
- _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
- _mesa_reference_array_object(ctx, &arraySave, NULL);
-
- /* restore original buffer objects */
- _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, arrayBuffer);
- _mesa_BindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, elementBuffer);
-}
-
-
-
-/**
- * Perform glClear where mask contains only color, depth, and/or stencil.
- *
- * The implementation is based on calling into Mesa to set GL state and
- * performing normal triangle rendering. The intent of this path is to
- * have as generic a path as possible, so that any driver could make use of
- * it.
- */
-void
-meta_clear_tris(struct dri_metaops *meta, GLbitfield mask)
-{
- GLcontext *ctx = meta->ctx;
- GLfloat dst_z;
- struct gl_framebuffer *fb = ctx->DrawBuffer;
- int i;
- GLboolean saved_fp_enable = GL_FALSE, saved_vp_enable = GL_FALSE;
- GLuint saved_shader_program = 0;
- unsigned int saved_active_texture;
- struct gl_array_object *arraySave = NULL;
- GLfloat saved_near, saved_far;
-
- if (!meta->clear.arrayObj)
- meta_init_clear(meta);
-
- assert((mask & ~(TRI_CLEAR_COLOR_BITS | BUFFER_BIT_DEPTH |
- BUFFER_BIT_STENCIL)) == 0);
-
- _mesa_PushAttrib(GL_COLOR_BUFFER_BIT |
- GL_DEPTH_BUFFER_BIT |
- GL_ENABLE_BIT |
- GL_POLYGON_BIT |
- GL_STENCIL_BUFFER_BIT |
- GL_TRANSFORM_BIT |
- GL_CURRENT_BIT);
- saved_active_texture = ctx->Texture.CurrentUnit;
-
- /* Disable existing GL state we don't want to apply to a clear. */
- _mesa_Disable(GL_ALPHA_TEST);
- _mesa_Disable(GL_BLEND);
- _mesa_Disable(GL_CULL_FACE);
- _mesa_Disable(GL_FOG);
- _mesa_Disable(GL_POLYGON_SMOOTH);
- _mesa_Disable(GL_POLYGON_STIPPLE);
- _mesa_Disable(GL_POLYGON_OFFSET_FILL);
- _mesa_Disable(GL_LIGHTING);
- _mesa_Disable(GL_CLIP_PLANE0);
- _mesa_Disable(GL_CLIP_PLANE1);
- _mesa_Disable(GL_CLIP_PLANE2);
- _mesa_Disable(GL_CLIP_PLANE3);
- _mesa_Disable(GL_CLIP_PLANE4);
- _mesa_Disable(GL_CLIP_PLANE5);
- _mesa_PolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- if (ctx->Extensions.ARB_fragment_program && ctx->FragmentProgram.Enabled) {
- saved_fp_enable = GL_TRUE;
- _mesa_Disable(GL_FRAGMENT_PROGRAM_ARB);
- }
- if (ctx->Extensions.ARB_vertex_program && ctx->VertexProgram.Enabled) {
- saved_vp_enable = GL_TRUE;
- _mesa_Disable(GL_VERTEX_PROGRAM_ARB);
- }
- if (ctx->Extensions.ARB_shader_objects && ctx->Shader.CurrentProgram) {
- saved_shader_program = ctx->Shader.CurrentProgram->Name;
- _mesa_UseProgramObjectARB(0);
- }
-
- if (ctx->Texture._EnabledUnits != 0) {
- int i;
-
- for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
- _mesa_ActiveTextureARB(GL_TEXTURE0 + i);
- _mesa_Disable(GL_TEXTURE_1D);
- _mesa_Disable(GL_TEXTURE_2D);
- _mesa_Disable(GL_TEXTURE_3D);
- if (ctx->Extensions.ARB_texture_cube_map)
- _mesa_Disable(GL_TEXTURE_CUBE_MAP_ARB);
- if (ctx->Extensions.NV_texture_rectangle)
- _mesa_Disable(GL_TEXTURE_RECTANGLE_NV);
- if (ctx->Extensions.MESA_texture_array) {
- _mesa_Disable(GL_TEXTURE_1D_ARRAY_EXT);
- _mesa_Disable(GL_TEXTURE_2D_ARRAY_EXT);
- }
- }
- }
-
- /* save current array object, bind our private one */
- _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
- ctx->NewState |= _NEW_ARRAY;
- ctx->Array.NewState |= _NEW_ARRAY_ALL;
- _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, meta->clear.arrayObj);
-
- meta_set_passthrough_transform(meta);
-
- for (i = 0; i < 4; i++) {
- COPY_4FV(meta->clear.color[i], ctx->Color.ClearColor);
- }
-
- /* convert clear Z from [0,1] to NDC coord in [-1,1] */
- dst_z = -1.0 + 2.0 * ctx->Depth.Clear;
-
- /* The ClearDepth value is unaffected by DepthRange, so do a default
- * mapping.
- */
- saved_near = ctx->Viewport.Near;
- saved_far = ctx->Viewport.Far;
- _mesa_DepthRange(0.0, 1.0);
-
- /* Prepare the vertices, which are the same regardless of which buffer we're
- * drawing to.
- */
- meta->clear.vertices[0][0] = fb->_Xmin;
- meta->clear.vertices[0][1] = fb->_Ymin;
- meta->clear.vertices[0][2] = dst_z;
- meta->clear.vertices[1][0] = fb->_Xmax;
- meta->clear.vertices[1][1] = fb->_Ymin;
- meta->clear.vertices[1][2] = dst_z;
- meta->clear.vertices[2][0] = fb->_Xmax;
- meta->clear.vertices[2][1] = fb->_Ymax;
- meta->clear.vertices[2][2] = dst_z;
- meta->clear.vertices[3][0] = fb->_Xmin;
- meta->clear.vertices[3][1] = fb->_Ymax;
- meta->clear.vertices[3][2] = dst_z;
-
- while (mask != 0) {
- GLuint this_mask = 0;
- GLuint color_bit;
-
- color_bit = _mesa_ffs(mask & TRI_CLEAR_COLOR_BITS);
- if (color_bit != 0)
- this_mask |= (1 << (color_bit - 1));
-
- /* Clear depth/stencil in the same pass as color. */
- this_mask |= (mask & (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL));
-
- /* Select the current color buffer and use the color write mask if
- * we have one, otherwise don't write any color channels.
- */
- if (this_mask & BUFFER_BIT_FRONT_LEFT)
- _mesa_DrawBuffer(GL_FRONT_LEFT);
- else if (this_mask & BUFFER_BIT_BACK_LEFT)
- _mesa_DrawBuffer(GL_BACK_LEFT);
- else if (color_bit != 0)
- _mesa_DrawBuffer(GL_COLOR_ATTACHMENT0 +
- (color_bit - BUFFER_COLOR0 - 1));
- else
- _mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
-
- /* Control writing of the depth clear value to depth. */
- if (this_mask & BUFFER_BIT_DEPTH) {
- _mesa_DepthFunc(GL_ALWAYS);
- _mesa_Enable(GL_DEPTH_TEST);
- } else {
- _mesa_Disable(GL_DEPTH_TEST);
- _mesa_DepthMask(GL_FALSE);
- }
-
- /* Control writing of the stencil clear value to stencil. */
- if (this_mask & BUFFER_BIT_STENCIL) {
- _mesa_Enable(GL_STENCIL_TEST);
- _mesa_StencilOpSeparate(GL_FRONT_AND_BACK,
- GL_REPLACE, GL_REPLACE, GL_REPLACE);
- _mesa_StencilFuncSeparate(GL_FRONT_AND_BACK, GL_ALWAYS,
- ctx->Stencil.Clear & 0x7fffffff,
- ctx->Stencil.WriteMask[0]);
- } else {
- _mesa_Disable(GL_STENCIL_TEST);
- }
-
- _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
-
- mask &= ~this_mask;
- }
-
- meta_restore_transform(meta);
-
- _mesa_ActiveTextureARB(GL_TEXTURE0 + saved_active_texture);
- if (saved_fp_enable)
- _mesa_Enable(GL_FRAGMENT_PROGRAM_ARB);
- if (saved_vp_enable)
- _mesa_Enable(GL_VERTEX_PROGRAM_ARB);
-
- if (saved_shader_program)
- _mesa_UseProgramObjectARB(saved_shader_program);
-
- _mesa_DepthRange(saved_near, saved_far);
- _mesa_PopAttrib();
-
- /* restore current array object */
- ctx->NewState |= _NEW_ARRAY;
- ctx->Array.NewState |= _NEW_ARRAY_ALL;
- _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
- _mesa_reference_array_object(ctx, &arraySave, NULL);
-}
-
void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta)
{
meta->ctx = ctx;
@@ -538,7 +294,5 @@ void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta)
void meta_destroy_metaops(struct dri_metaops *meta)
{
- if (meta->clear.arrayObj)
- _mesa_delete_array_object(meta->ctx, meta->clear.arrayObj);
}
diff --git a/src/mesa/drivers/dri/common/dri_metaops.h b/src/mesa/drivers/dri/common/dri_metaops.h
index bb4079d5353..2487145326b 100644
--- a/src/mesa/drivers/dri/common/dri_metaops.h
+++ b/src/mesa/drivers/dri/common/dri_metaops.h
@@ -25,25 +25,10 @@
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
**************************************************************************/
+
#ifndef DRI_METAOPS_H
#define DRI_METAOPS_H
-#define TRI_CLEAR_COLOR_BITS (BUFFER_BIT_BACK_LEFT | \
- BUFFER_BIT_FRONT_LEFT | \
- BUFFER_BIT_COLOR0 | \
- BUFFER_BIT_COLOR1 | \
- BUFFER_BIT_COLOR2 | \
- BUFFER_BIT_COLOR3 | \
- BUFFER_BIT_COLOR4 | \
- BUFFER_BIT_COLOR5 | \
- BUFFER_BIT_COLOR6 | \
- BUFFER_BIT_COLOR7)
-
-struct dri_meta_clear {
- struct gl_array_object *arrayObj;
- GLfloat vertices[4][3];
- GLfloat color[4][4];
-};
struct dri_metaops {
GLcontext *ctx;
@@ -69,8 +54,6 @@ struct dri_metaops {
GLint saved_vp_x, saved_vp_y;
GLsizei saved_vp_width, saved_vp_height;
GLenum saved_matrix_mode;
-
- struct dri_meta_clear clear;
};
@@ -91,9 +74,8 @@ void meta_restore_fragment_program(struct dri_metaops *meta);
void meta_set_default_texrect(struct dri_metaops *meta);
void meta_restore_texcoords(struct dri_metaops *meta);
-void meta_clear_tris(struct dri_metaops *meta, GLbitfield mask);
void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta);
void meta_destroy_metaops(struct dri_metaops *meta);
-#endif
+#endif
diff --git a/src/mesa/drivers/dri/common/extension_helper.h b/src/mesa/drivers/dri/common/extension_helper.h
index 08a97bb1110..40a030ce0da 100644
--- a/src/mesa/drivers/dri/common/extension_helper.h
+++ b/src/mesa/drivers/dri/common/extension_helper.h
@@ -33,7 +33,7 @@
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char UniformMatrix3fvARB_names[] =
+static const char UniformMatrix3fvARB_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix3fv\0"
"glUniformMatrix3fvARB\0"
@@ -41,7 +41,7 @@ static const char UniformMatrix3fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_multisample)
-static const char SampleCoverageARB_names[] =
+static const char SampleCoverageARB_names[] =
"fi\0" /* Parameter signature */
"glSampleCoverage\0"
"glSampleCoverageARB\0"
@@ -49,7 +49,7 @@ static const char SampleCoverageARB_names[] =
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionFilter1D_names[] =
+static const char ConvolutionFilter1D_names[] =
"iiiiip\0" /* Parameter signature */
"glConvolutionFilter1D\0"
"glConvolutionFilter1DEXT\0"
@@ -57,7 +57,7 @@ static const char ConvolutionFilter1D_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char BeginQueryARB_names[] =
+static const char BeginQueryARB_names[] =
"ii\0" /* Parameter signature */
"glBeginQuery\0"
"glBeginQueryARB\0"
@@ -65,7 +65,7 @@ static const char BeginQueryARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_NV_point_sprite)
-static const char PointParameteriNV_names[] =
+static const char PointParameteriNV_names[] =
"ii\0" /* Parameter signature */
"glPointParameteri\0"
"glPointParameteriNV\0"
@@ -73,14 +73,14 @@ static const char PointParameteriNV_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char GetProgramiv_names[] =
+static const char GetProgramiv_names[] =
"iip\0" /* Parameter signature */
"glGetProgramiv\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3sARB_names[] =
+static const char MultiTexCoord3sARB_names[] =
"iiii\0" /* Parameter signature */
"glMultiTexCoord3s\0"
"glMultiTexCoord3sARB\0"
@@ -88,7 +88,7 @@ static const char MultiTexCoord3sARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3iEXT_names[] =
+static const char SecondaryColor3iEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3i\0"
"glSecondaryColor3iEXT\0"
@@ -96,7 +96,7 @@ static const char SecondaryColor3iEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3fMESA_names[] =
+static const char WindowPos3fMESA_names[] =
"fff\0" /* Parameter signature */
"glWindowPos3f\0"
"glWindowPos3fARB\0"
@@ -105,14 +105,14 @@ static const char WindowPos3fMESA_names[] =
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char PixelTexGenParameterfvSGIS_names[] =
+static const char PixelTexGenParameterfvSGIS_names[] =
"ip\0" /* Parameter signature */
"glPixelTexGenParameterfvSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char ActiveTextureARB_names[] =
+static const char ActiveTextureARB_names[] =
"i\0" /* Parameter signature */
"glActiveTexture\0"
"glActiveTextureARB\0"
@@ -120,7 +120,7 @@ static const char ActiveTextureARB_names[] =
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_blit)
-static const char BlitFramebufferEXT_names[] =
+static const char BlitFramebufferEXT_names[] =
"iiiiiiiiii\0" /* Parameter signature */
"glBlitFramebuffer\0"
"glBlitFramebufferEXT\0"
@@ -128,21 +128,21 @@ static const char BlitFramebufferEXT_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4ubvNV_names[] =
+static const char VertexAttrib4ubvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4ubvNV\0"
"";
#endif
#if defined(need_GL_NV_fragment_program)
-static const char GetProgramNamedParameterdvNV_names[] =
+static const char GetProgramNamedParameterdvNV_names[] =
"iipp\0" /* Parameter signature */
"glGetProgramNamedParameterdvNV\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char Histogram_names[] =
+static const char Histogram_names[] =
"iiii\0" /* Parameter signature */
"glHistogram\0"
"glHistogramEXT\0"
@@ -150,14 +150,14 @@ static const char Histogram_names[] =
#endif
#if defined(need_GL_SGIS_texture4D)
-static const char TexImage4DSGIS_names[] =
+static const char TexImage4DSGIS_names[] =
"iiiiiiiiiip\0" /* Parameter signature */
"glTexImage4DSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2dvMESA_names[] =
+static const char WindowPos2dvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos2dv\0"
"glWindowPos2dvARB\0"
@@ -166,14 +166,14 @@ static const char WindowPos2dvMESA_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor3fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiColor3fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glReplacementCodeuiColor3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_EXT_blend_equation_separate) || defined(need_GL_ATI_blend_equation_separate)
-static const char BlendEquationSeparateEXT_names[] =
+static const char BlendEquationSeparateEXT_names[] =
"ii\0" /* Parameter signature */
"glBlendEquationSeparate\0"
"glBlendEquationSeparateEXT\0"
@@ -182,14 +182,14 @@ static const char BlendEquationSeparateEXT_names[] =
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char ListParameterfSGIX_names[] =
+static const char ListParameterfSGIX_names[] =
"iif\0" /* Parameter signature */
"glListParameterfSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3bEXT_names[] =
+static const char SecondaryColor3bEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3b\0"
"glSecondaryColor3bEXT\0"
@@ -197,21 +197,21 @@ static const char SecondaryColor3bEXT_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord4fColor4fNormal3fVertex4fvSUN_names[] =
+static const char TexCoord4fColor4fNormal3fVertex4fvSUN_names[] =
"pppp\0" /* Parameter signature */
"glTexCoord4fColor4fNormal3fVertex4fvSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4svNV_names[] =
+static const char VertexAttrib4svNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4svNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char GetBufferSubDataARB_names[] =
+static const char GetBufferSubDataARB_names[] =
"iiip\0" /* Parameter signature */
"glGetBufferSubData\0"
"glGetBufferSubDataARB\0"
@@ -219,7 +219,7 @@ static const char GetBufferSubDataARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char BufferSubDataARB_names[] =
+static const char BufferSubDataARB_names[] =
"iiip\0" /* Parameter signature */
"glBufferSubData\0"
"glBufferSubDataARB\0"
@@ -227,21 +227,21 @@ static const char BufferSubDataARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor4ubVertex3fvSUN_names[] =
+static const char TexCoord2fColor4ubVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glTexCoord2fColor4ubVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char AttachShader_names[] =
+static const char AttachShader_names[] =
"ii\0" /* Parameter signature */
"glAttachShader\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2fARB_names[] =
+static const char VertexAttrib2fARB_names[] =
"iff\0" /* Parameter signature */
"glVertexAttrib2f\0"
"glVertexAttrib2fARB\0"
@@ -249,14 +249,14 @@ static const char VertexAttrib2fARB_names[] =
#endif
#if defined(need_GL_MESA_shader_debug)
-static const char GetDebugLogLengthMESA_names[] =
+static const char GetDebugLogLengthMESA_names[] =
"iii\0" /* Parameter signature */
"glGetDebugLogLengthMESA\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3fARB_names[] =
+static const char VertexAttrib3fARB_names[] =
"ifff\0" /* Parameter signature */
"glVertexAttrib3f\0"
"glVertexAttrib3fARB\0"
@@ -264,7 +264,7 @@ static const char VertexAttrib3fARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char GetQueryivARB_names[] =
+static const char GetQueryivARB_names[] =
"iip\0" /* Parameter signature */
"glGetQueryiv\0"
"glGetQueryivARB\0"
@@ -272,7 +272,7 @@ static const char GetQueryivARB_names[] =
#endif
#if defined(need_GL_EXT_texture3D)
-static const char TexImage3D_names[] =
+static const char TexImage3D_names[] =
"iiiiiiiiip\0" /* Parameter signature */
"glTexImage3D\0"
"glTexImage3DEXT\0"
@@ -280,14 +280,14 @@ static const char TexImage3D_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiVertex3fvSUN_names[] =
+static const char ReplacementCodeuiVertex3fvSUN_names[] =
"pp\0" /* Parameter signature */
"glReplacementCodeuiVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char GetQueryObjectivARB_names[] =
+static const char GetQueryObjectivARB_names[] =
"iip\0" /* Parameter signature */
"glGetQueryObjectiv\0"
"glGetQueryObjectivARB\0"
@@ -295,14 +295,14 @@ static const char GetQueryObjectivARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexSubImage2DARB_names[] =
+static const char CompressedTexSubImage2DARB_names[] =
"iiiiiiiip\0" /* Parameter signature */
"glCompressedTexSubImage2D\0"
"glCompressedTexSubImage2DARB\0"
@@ -310,14 +310,14 @@ static const char CompressedTexSubImage2DARB_names[] =
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerOutputNV_names[] =
+static const char CombinerOutputNV_names[] =
"iiiiiiiiii\0" /* Parameter signature */
"glCombinerOutputNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform2fARB_names[] =
+static const char Uniform2fARB_names[] =
"iff\0" /* Parameter signature */
"glUniform2f\0"
"glUniform2fARB\0"
@@ -325,7 +325,7 @@ static const char Uniform2fARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1svARB_names[] =
+static const char VertexAttrib1svARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1sv\0"
"glVertexAttrib1svARB\0"
@@ -333,14 +333,14 @@ static const char VertexAttrib1svARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs1dvNV_names[] =
+static const char VertexAttribs1dvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs1dvNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform2ivARB_names[] =
+static const char Uniform2ivARB_names[] =
"iip\0" /* Parameter signature */
"glUniform2iv\0"
"glUniform2ivARB\0"
@@ -348,28 +348,28 @@ static const char Uniform2ivARB_names[] =
#endif
#if defined(need_GL_HP_image_transform)
-static const char GetImageTransformParameterfvHP_names[] =
+static const char GetImageTransformParameterfvHP_names[] =
"iip\0" /* Parameter signature */
"glGetImageTransformParameterfvHP\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightubvARB_names[] =
+static const char WeightubvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightubvARB\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1fvNV_names[] =
+static const char VertexAttrib1fvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1fvNV\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char CopyConvolutionFilter1D_names[] =
+static const char CopyConvolutionFilter1D_names[] =
"iiiii\0" /* Parameter signature */
"glCopyConvolutionFilter1D\0"
"glCopyConvolutionFilter1DEXT\0"
@@ -377,21 +377,28 @@ static const char CopyConvolutionFilter1D_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiNormal3fVertex3fSUN_names[] =
+static const char ReplacementCodeuiNormal3fVertex3fSUN_names[] =
"iffffff\0" /* Parameter signature */
"glReplacementCodeuiNormal3fVertex3fSUN\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char DeleteSync_names[] =
+ "i\0" /* Parameter signature */
+ "glDeleteSync\0"
+ "";
+#endif
+
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentMaterialfvSGIX_names[] =
+static const char FragmentMaterialfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glFragmentMaterialfvSGIX\0"
"";
#endif
#if defined(need_GL_EXT_blend_color)
-static const char BlendColor_names[] =
+static const char BlendColor_names[] =
"ffff\0" /* Parameter signature */
"glBlendColor\0"
"glBlendColorEXT\0"
@@ -399,7 +406,7 @@ static const char BlendColor_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char UniformMatrix4fvARB_names[] =
+static const char UniformMatrix4fvARB_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix4fv\0"
"glUniformMatrix4fvARB\0"
@@ -407,7 +414,7 @@ static const char UniformMatrix4fvARB_names[] =
#endif
#if defined(need_GL_ARB_vertex_array_object) || defined(need_GL_APPLE_vertex_array_object)
-static const char DeleteVertexArraysAPPLE_names[] =
+static const char DeleteVertexArraysAPPLE_names[] =
"ip\0" /* Parameter signature */
"glDeleteVertexArrays\0"
"glDeleteVertexArraysAPPLE\0"
@@ -415,28 +422,28 @@ static const char DeleteVertexArraysAPPLE_names[] =
#endif
#if defined(need_GL_SGIX_instruments)
-static const char ReadInstrumentsSGIX_names[] =
+static const char ReadInstrumentsSGIX_names[] =
"i\0" /* Parameter signature */
"glReadInstrumentsSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix2x4fv_names[] =
+static const char UniformMatrix2x4fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix2x4fv\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4ubVertex3fvSUN_names[] =
+static const char Color4ubVertex3fvSUN_names[] =
"pp\0" /* Parameter signature */
"glColor4ubVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_texture_array)
-static const char FramebufferTextureLayerEXT_names[] =
+static const char FramebufferTextureLayerEXT_names[] =
"iiiii\0" /* Parameter signature */
"glFramebufferTextureLayer\0"
"glFramebufferTextureLayerEXT\0"
@@ -444,14 +451,14 @@ static const char FramebufferTextureLayerEXT_names[] =
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char GetListParameterfvSGIX_names[] =
+static const char GetListParameterfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetListParameterfvSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NusvARB_names[] =
+static const char VertexAttrib4NusvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Nusv\0"
"glVertexAttrib4NusvARB\0"
@@ -459,35 +466,35 @@ static const char VertexAttrib4NusvARB_names[] =
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4svMESA_names[] =
+static const char WindowPos4svMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos4svMESA\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char CreateProgramObjectARB_names[] =
+static const char CreateProgramObjectARB_names[] =
"\0" /* Parameter signature */
"glCreateProgramObjectARB\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightModelivSGIX_names[] =
+static const char FragmentLightModelivSGIX_names[] =
"ip\0" /* Parameter signature */
"glFragmentLightModelivSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix4x3fv_names[] =
+static const char UniformMatrix4x3fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix4x3fv\0"
"";
#endif
#if defined(need_GL_EXT_texture_object)
-static const char PrioritizeTextures_names[] =
+static const char PrioritizeTextures_names[] =
"ipp\0" /* Parameter signature */
"glPrioritizeTextures\0"
"glPrioritizeTexturesEXT\0"
@@ -495,28 +502,28 @@ static const char PrioritizeTextures_names[] =
#endif
#if defined(need_GL_SGIX_async)
-static const char AsyncMarkerSGIX_names[] =
+static const char AsyncMarkerSGIX_names[] =
"i\0" /* Parameter signature */
"glAsyncMarkerSGIX\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactorubSUN_names[] =
+static const char GlobalAlphaFactorubSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactorubSUN\0"
"";
#endif
#if defined(need_GL_MESA_shader_debug)
-static const char ClearDebugLogMESA_names[] =
+static const char ClearDebugLogMESA_names[] =
"iii\0" /* Parameter signature */
"glClearDebugLogMESA\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char ResetHistogram_names[] =
+static const char ResetHistogram_names[] =
"i\0" /* Parameter signature */
"glResetHistogram\0"
"glResetHistogramEXT\0"
@@ -524,14 +531,14 @@ static const char ResetHistogram_names[] =
#endif
#if defined(need_GL_NV_fragment_program)
-static const char GetProgramNamedParameterfvNV_names[] =
+static const char GetProgramNamedParameterfvNV_names[] =
"iipp\0" /* Parameter signature */
"glGetProgramNamedParameterfvNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_point_parameters) || defined(need_GL_EXT_point_parameters) || defined(need_GL_SGIS_point_parameters)
-static const char PointParameterfEXT_names[] =
+static const char PointParameterfEXT_names[] =
"if\0" /* Parameter signature */
"glPointParameterf\0"
"glPointParameterfARB\0"
@@ -541,35 +548,35 @@ static const char PointParameterfEXT_names[] =
#endif
#if defined(need_GL_SGIX_polynomial_ffd)
-static const char LoadIdentityDeformationMapSGIX_names[] =
+static const char LoadIdentityDeformationMapSGIX_names[] =
"i\0" /* Parameter signature */
"glLoadIdentityDeformationMapSGIX\0"
"";
#endif
#if defined(need_GL_NV_fence)
-static const char GenFencesNV_names[] =
+static const char GenFencesNV_names[] =
"ip\0" /* Parameter signature */
"glGenFencesNV\0"
"";
#endif
#if defined(need_GL_HP_image_transform)
-static const char ImageTransformParameterfHP_names[] =
+static const char ImageTransformParameterfHP_names[] =
"iif\0" /* Parameter signature */
"glImageTransformParameterfHP\0"
"";
#endif
#if defined(need_GL_ARB_matrix_palette)
-static const char MatrixIndexusvARB_names[] =
+static const char MatrixIndexusvARB_names[] =
"ip\0" /* Parameter signature */
"glMatrixIndexusvARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char DisableVertexAttribArrayARB_names[] =
+static const char DisableVertexAttribArrayARB_names[] =
"i\0" /* Parameter signature */
"glDisableVertexAttribArray\0"
"glDisableVertexAttribArrayARB\0"
@@ -577,21 +584,21 @@ static const char DisableVertexAttribArrayARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char StencilMaskSeparate_names[] =
+static const char StencilMaskSeparate_names[] =
"ii\0" /* Parameter signature */
"glStencilMaskSeparate\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char ProgramLocalParameter4dARB_names[] =
+static const char ProgramLocalParameter4dARB_names[] =
"iidddd\0" /* Parameter signature */
"glProgramLocalParameter4dARB\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexImage3DARB_names[] =
+static const char CompressedTexImage3DARB_names[] =
"iiiiiiiip\0" /* Parameter signature */
"glCompressedTexImage3D\0"
"glCompressedTexImage3DARB\0"
@@ -599,7 +606,7 @@ static const char CompressedTexImage3DARB_names[] =
#endif
#if defined(need_GL_EXT_convolution)
-static const char GetConvolutionParameteriv_names[] =
+static const char GetConvolutionParameteriv_names[] =
"iip\0" /* Parameter signature */
"glGetConvolutionParameteriv\0"
"glGetConvolutionParameterivEXT\0"
@@ -607,7 +614,7 @@ static const char GetConvolutionParameteriv_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1fARB_names[] =
+static const char VertexAttrib1fARB_names[] =
"if\0" /* Parameter signature */
"glVertexAttrib1f\0"
"glVertexAttrib1fARB\0"
@@ -615,14 +622,14 @@ static const char VertexAttrib1fARB_names[] =
#endif
#if defined(need_GL_NV_fence)
-static const char TestFenceNV_names[] =
+static const char TestFenceNV_names[] =
"i\0" /* Parameter signature */
"glTestFenceNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1fvARB_names[] =
+static const char MultiTexCoord1fvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord1fv\0"
"glMultiTexCoord1fvARB\0"
@@ -630,56 +637,56 @@ static const char MultiTexCoord1fvARB_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char ColorFragmentOp2ATI_names[] =
+static const char ColorFragmentOp2ATI_names[] =
"iiiiiiiiii\0" /* Parameter signature */
"glColorFragmentOp2ATI\0"
"";
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char SecondaryColorPointerListIBM_names[] =
+static const char SecondaryColorPointerListIBM_names[] =
"iiipi\0" /* Parameter signature */
"glSecondaryColorPointerListIBM\0"
"";
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char GetPixelTexGenParameterivSGIS_names[] =
+static const char GetPixelTexGenParameterivSGIS_names[] =
"ip\0" /* Parameter signature */
"glGetPixelTexGenParameterivSGIS\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4fNV_names[] =
+static const char VertexAttrib4fNV_names[] =
"iffff\0" /* Parameter signature */
"glVertexAttrib4fNV\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeubSUN_names[] =
+static const char ReplacementCodeubSUN_names[] =
"i\0" /* Parameter signature */
"glReplacementCodeubSUN\0"
"";
#endif
#if defined(need_GL_SGIX_async)
-static const char FinishAsyncSGIX_names[] =
+static const char FinishAsyncSGIX_names[] =
"p\0" /* Parameter signature */
"glFinishAsyncSGIX\0"
"";
#endif
#if defined(need_GL_MESA_shader_debug)
-static const char GetDebugLogMESA_names[] =
+static const char GetDebugLogMESA_names[] =
"iiiipp\0" /* Parameter signature */
"glGetDebugLogMESA\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord)
-static const char FogCoorddEXT_names[] =
+static const char FogCoorddEXT_names[] =
"d\0" /* Parameter signature */
"glFogCoordd\0"
"glFogCoorddEXT\0"
@@ -687,14 +694,14 @@ static const char FogCoorddEXT_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4ubVertex3fSUN_names[] =
+static const char Color4ubVertex3fSUN_names[] =
"iiiifff\0" /* Parameter signature */
"glColor4ubVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord)
-static const char FogCoordfEXT_names[] =
+static const char FogCoordfEXT_names[] =
"f\0" /* Parameter signature */
"glFogCoordf\0"
"glFogCoordfEXT\0"
@@ -702,35 +709,35 @@ static const char FogCoordfEXT_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fVertex3fSUN_names[] =
+static const char TexCoord2fVertex3fSUN_names[] =
"fffff\0" /* Parameter signature */
"glTexCoord2fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactoriSUN_names[] =
+static const char GlobalAlphaFactoriSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactoriSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2dNV_names[] =
+static const char VertexAttrib2dNV_names[] =
"idd\0" /* Parameter signature */
"glVertexAttrib2dNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char GetProgramInfoLog_names[] =
+static const char GetProgramInfoLog_names[] =
"iipp\0" /* Parameter signature */
"glGetProgramInfoLog\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NbvARB_names[] =
+static const char VertexAttrib4NbvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Nbv\0"
"glVertexAttrib4NbvARB\0"
@@ -738,7 +745,7 @@ static const char VertexAttrib4NbvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_shader)
-static const char GetActiveAttribARB_names[] =
+static const char GetActiveAttribARB_names[] =
"iiipppp\0" /* Parameter signature */
"glGetActiveAttrib\0"
"glGetActiveAttribARB\0"
@@ -746,91 +753,91 @@ static const char GetActiveAttribARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4ubNV_names[] =
+static const char VertexAttrib4ubNV_names[] =
"iiiii\0" /* Parameter signature */
"glVertexAttrib4ubNV\0"
"";
#endif
#if defined(need_GL_APPLE_texture_range)
-static const char TextureRangeAPPLE_names[] =
+static const char TextureRangeAPPLE_names[] =
"iip\0" /* Parameter signature */
"glTextureRangeAPPLE\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor4fNormal3fVertex3fSUN_names[] =
+static const char TexCoord2fColor4fNormal3fVertex3fSUN_names[] =
"ffffffffffff\0" /* Parameter signature */
"glTexCoord2fColor4fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerParameterfvNV_names[] =
+static const char CombinerParameterfvNV_names[] =
"ip\0" /* Parameter signature */
"glCombinerParameterfvNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs3dvNV_names[] =
+static const char VertexAttribs3dvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs3dvNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs4fvNV_names[] =
+static const char VertexAttribs4fvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs4fvNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_array_range)
-static const char VertexArrayRangeNV_names[] =
+static const char VertexArrayRangeNV_names[] =
"ip\0" /* Parameter signature */
"glVertexArrayRangeNV\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightiSGIX_names[] =
+static const char FragmentLightiSGIX_names[] =
"iii\0" /* Parameter signature */
"glFragmentLightiSGIX\0"
"";
#endif
#if defined(need_GL_EXT_polygon_offset)
-static const char PolygonOffsetEXT_names[] =
+static const char PolygonOffsetEXT_names[] =
"ff\0" /* Parameter signature */
"glPolygonOffsetEXT\0"
"";
#endif
#if defined(need_GL_SGIX_async)
-static const char PollAsyncSGIX_names[] =
+static const char PollAsyncSGIX_names[] =
"p\0" /* Parameter signature */
"glPollAsyncSGIX\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char DeleteFragmentShaderATI_names[] =
+static const char DeleteFragmentShaderATI_names[] =
"i\0" /* Parameter signature */
"glDeleteFragmentShaderATI\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fNormal3fVertex3fvSUN_names[] =
+static const char TexCoord2fNormal3fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glTexCoord2fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix)
-static const char MultTransposeMatrixdARB_names[] =
+static const char MultTransposeMatrixdARB_names[] =
"p\0" /* Parameter signature */
"glMultTransposeMatrixd\0"
"glMultTransposeMatrixdARB\0"
@@ -838,7 +845,7 @@ static const char MultTransposeMatrixdARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2svMESA_names[] =
+static const char WindowPos2svMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos2sv\0"
"glWindowPos2svARB\0"
@@ -847,7 +854,7 @@ static const char WindowPos2svMESA_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexImage1DARB_names[] =
+static const char CompressedTexImage1DARB_names[] =
"iiiiiip\0" /* Parameter signature */
"glCompressedTexImage1D\0"
"glCompressedTexImage1DARB\0"
@@ -855,35 +862,35 @@ static const char CompressedTexImage1DARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2sNV_names[] =
+static const char VertexAttrib2sNV_names[] =
"iii\0" /* Parameter signature */
"glVertexAttrib2sNV\0"
"";
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char NormalPointerListIBM_names[] =
+static const char NormalPointerListIBM_names[] =
"iipi\0" /* Parameter signature */
"glNormalPointerListIBM\0"
"";
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char IndexPointerEXT_names[] =
+static const char IndexPointerEXT_names[] =
"iiip\0" /* Parameter signature */
"glIndexPointerEXT\0"
"";
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char NormalPointerEXT_names[] =
+static const char NormalPointerEXT_names[] =
"iiip\0" /* Parameter signature */
"glNormalPointerEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3dARB_names[] =
+static const char MultiTexCoord3dARB_names[] =
"iddd\0" /* Parameter signature */
"glMultiTexCoord3d\0"
"glMultiTexCoord3dARB\0"
@@ -891,7 +898,7 @@ static const char MultiTexCoord3dARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2iARB_names[] =
+static const char MultiTexCoord2iARB_names[] =
"iii\0" /* Parameter signature */
"glMultiTexCoord2i\0"
"glMultiTexCoord2iARB\0"
@@ -899,14 +906,14 @@ static const char MultiTexCoord2iARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_names[] =
"iffffffff\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2svARB_names[] =
+static const char MultiTexCoord2svARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord2sv\0"
"glMultiTexCoord2svARB\0"
@@ -914,14 +921,14 @@ static const char MultiTexCoord2svARB_names[] =
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeubvSUN_names[] =
+static const char ReplacementCodeubvSUN_names[] =
"p\0" /* Parameter signature */
"glReplacementCodeubvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform3iARB_names[] =
+static const char Uniform3iARB_names[] =
"iiii\0" /* Parameter signature */
"glUniform3i\0"
"glUniform3iARB\0"
@@ -929,49 +936,49 @@ static const char Uniform3iARB_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char GetFragmentMaterialfvSGIX_names[] =
+static const char GetFragmentMaterialfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetFragmentMaterialfvSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char GetShaderInfoLog_names[] =
+static const char GetShaderInfoLog_names[] =
"iipp\0" /* Parameter signature */
"glGetShaderInfoLog\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightivARB_names[] =
+static const char WeightivARB_names[] =
"ip\0" /* Parameter signature */
"glWeightivARB\0"
"";
#endif
#if defined(need_GL_SGIX_instruments)
-static const char PollInstrumentsSGIX_names[] =
+static const char PollInstrumentsSGIX_names[] =
"p\0" /* Parameter signature */
"glPollInstrumentsSGIX\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactordSUN_names[] =
+static const char GlobalAlphaFactordSUN_names[] =
"d\0" /* Parameter signature */
"glGlobalAlphaFactordSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs3fvNV_names[] =
+static const char VertexAttribs3fvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs3fvNV\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char GenerateMipmapEXT_names[] =
+static const char GenerateMipmapEXT_names[] =
"i\0" /* Parameter signature */
"glGenerateMipmap\0"
"glGenerateMipmapEXT\0"
@@ -979,35 +986,35 @@ static const char GenerateMipmapEXT_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char SetFragmentShaderConstantATI_names[] =
+static const char SetFragmentShaderConstantATI_names[] =
"ip\0" /* Parameter signature */
"glSetFragmentShaderConstantATI\0"
"";
#endif
#if defined(need_GL_NV_evaluators)
-static const char GetMapAttribParameterivNV_names[] =
+static const char GetMapAttribParameterivNV_names[] =
"iiip\0" /* Parameter signature */
"glGetMapAttribParameterivNV\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char CreateShaderObjectARB_names[] =
+static const char CreateShaderObjectARB_names[] =
"i\0" /* Parameter signature */
"glCreateShaderObjectARB\0"
"";
#endif
#if defined(need_GL_SGIS_sharpen_texture)
-static const char GetSharpenTexFuncSGIS_names[] =
+static const char GetSharpenTexFuncSGIS_names[] =
"ip\0" /* Parameter signature */
"glGetSharpenTexFuncSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char BufferDataARB_names[] =
+static const char BufferDataARB_names[] =
"iipi\0" /* Parameter signature */
"glBufferData\0"
"glBufferDataARB\0"
@@ -1015,42 +1022,42 @@ static const char BufferDataARB_names[] =
#endif
#if defined(need_GL_NV_vertex_array_range)
-static const char FlushVertexArrayRangeNV_names[] =
+static const char FlushVertexArrayRangeNV_names[] =
"\0" /* Parameter signature */
"glFlushVertexArrayRangeNV\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char SampleMapATI_names[] =
+static const char SampleMapATI_names[] =
"iii\0" /* Parameter signature */
"glSampleMapATI\0"
"";
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char VertexPointerEXT_names[] =
+static const char VertexPointerEXT_names[] =
"iiiip\0" /* Parameter signature */
"glVertexPointerEXT\0"
"";
#endif
#if defined(need_GL_SGIS_texture_filter4)
-static const char GetTexFilterFuncSGIS_names[] =
+static const char GetTexFilterFuncSGIS_names[] =
"iip\0" /* Parameter signature */
"glGetTexFilterFuncSGIS\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetCombinerOutputParameterfvNV_names[] =
+static const char GetCombinerOutputParameterfvNV_names[] =
"iiip\0" /* Parameter signature */
"glGetCombinerOutputParameterfvNV\0"
"";
#endif
#if defined(need_GL_EXT_subtexture)
-static const char TexSubImage1D_names[] =
+static const char TexSubImage1D_names[] =
"iiiiiip\0" /* Parameter signature */
"glTexSubImage1D\0"
"glTexSubImage1DEXT\0"
@@ -1058,36 +1065,43 @@ static const char TexSubImage1D_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1sARB_names[] =
+static const char VertexAttrib1sARB_names[] =
"ii\0" /* Parameter signature */
"glVertexAttrib1s\0"
"glVertexAttrib1sARB\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char FenceSync_names[] =
+ "ii\0" /* Parameter signature */
+ "glFenceSync\0"
+ "";
+#endif
+
#if defined(need_GL_NV_register_combiners)
-static const char FinalCombinerInputNV_names[] =
+static const char FinalCombinerInputNV_names[] =
"iiii\0" /* Parameter signature */
"glFinalCombinerInputNV\0"
"";
#endif
#if defined(need_GL_SGIX_flush_raster)
-static const char FlushRasterSGIX_names[] =
+static const char FlushRasterSGIX_names[] =
"\0" /* Parameter signature */
"glFlushRasterSGIX\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fVertex3fSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fVertex3fSUN_names[] =
"ifffff\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform1fARB_names[] =
+static const char Uniform1fARB_names[] =
"if\0" /* Parameter signature */
"glUniform1f\0"
"glUniform1fARB\0"
@@ -1095,7 +1109,7 @@ static const char Uniform1fARB_names[] =
#endif
#if defined(need_GL_EXT_texture_object)
-static const char AreTexturesResident_names[] =
+static const char AreTexturesResident_names[] =
"ipp\0" /* Parameter signature */
"glAreTexturesResident\0"
"glAreTexturesResidentEXT\0"
@@ -1103,7 +1117,7 @@ static const char AreTexturesResident_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ATI_separate_stencil)
-static const char StencilOpSeparate_names[] =
+static const char StencilOpSeparate_names[] =
"iiii\0" /* Parameter signature */
"glStencilOpSeparate\0"
"glStencilOpSeparateATI\0"
@@ -1111,7 +1125,7 @@ static const char StencilOpSeparate_names[] =
#endif
#if defined(need_GL_SGI_color_table)
-static const char ColorTableParameteriv_names[] =
+static const char ColorTableParameteriv_names[] =
"iip\0" /* Parameter signature */
"glColorTableParameteriv\0"
"glColorTableParameterivSGI\0"
@@ -1119,14 +1133,14 @@ static const char ColorTableParameteriv_names[] =
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char FogCoordPointerListIBM_names[] =
+static const char FogCoordPointerListIBM_names[] =
"iipi\0" /* Parameter signature */
"glFogCoordPointerListIBM\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3dMESA_names[] =
+static const char WindowPos3dMESA_names[] =
"ddd\0" /* Parameter signature */
"glWindowPos3d\0"
"glWindowPos3dARB\0"
@@ -1135,7 +1149,7 @@ static const char WindowPos3dMESA_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_point_parameters) || defined(need_GL_EXT_point_parameters) || defined(need_GL_SGIS_point_parameters)
-static const char PointParameterfvEXT_names[] =
+static const char PointParameterfvEXT_names[] =
"ip\0" /* Parameter signature */
"glPointParameterfv\0"
"glPointParameterfvARB\0"
@@ -1145,7 +1159,7 @@ static const char PointParameterfvEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2fvMESA_names[] =
+static const char WindowPos2fvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos2fv\0"
"glWindowPos2fvARB\0"
@@ -1154,7 +1168,7 @@ static const char WindowPos2fvMESA_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3bvEXT_names[] =
+static const char SecondaryColor3bvEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3bv\0"
"glSecondaryColor3bvEXT\0"
@@ -1162,35 +1176,35 @@ static const char SecondaryColor3bvEXT_names[] =
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char VertexPointerListIBM_names[] =
+static const char VertexPointerListIBM_names[] =
"iiipi\0" /* Parameter signature */
"glVertexPointerListIBM\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramLocalParameterfvARB_names[] =
+static const char GetProgramLocalParameterfvARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramLocalParameterfvARB\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentMaterialfSGIX_names[] =
+static const char FragmentMaterialfSGIX_names[] =
"iif\0" /* Parameter signature */
"glFragmentMaterialfSGIX\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fNormal3fVertex3fSUN_names[] =
+static const char TexCoord2fNormal3fVertex3fSUN_names[] =
"ffffffff\0" /* Parameter signature */
"glTexCoord2fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char RenderbufferStorageEXT_names[] =
+static const char RenderbufferStorageEXT_names[] =
"iiii\0" /* Parameter signature */
"glRenderbufferStorage\0"
"glRenderbufferStorageEXT\0"
@@ -1198,28 +1212,28 @@ static const char RenderbufferStorageEXT_names[] =
#endif
#if defined(need_GL_NV_fence)
-static const char IsFenceNV_names[] =
+static const char IsFenceNV_names[] =
"i\0" /* Parameter signature */
"glIsFenceNV\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char AttachObjectARB_names[] =
+static const char AttachObjectARB_names[] =
"ii\0" /* Parameter signature */
"glAttachObjectARB\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char GetFragmentLightivSGIX_names[] =
+static const char GetFragmentLightivSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetFragmentLightivSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char UniformMatrix2fvARB_names[] =
+static const char UniformMatrix2fvARB_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix2fv\0"
"glUniformMatrix2fvARB\0"
@@ -1227,7 +1241,7 @@ static const char UniformMatrix2fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2fARB_names[] =
+static const char MultiTexCoord2fARB_names[] =
"iff\0" /* Parameter signature */
"glMultiTexCoord2f\0"
"glMultiTexCoord2fARB\0"
@@ -1235,7 +1249,7 @@ static const char MultiTexCoord2fARB_names[] =
#endif
#if defined(need_GL_SGI_color_table) || defined(need_GL_EXT_paletted_texture)
-static const char ColorTable_names[] =
+static const char ColorTable_names[] =
"iiiiip\0" /* Parameter signature */
"glColorTable\0"
"glColorTableSGI\0"
@@ -1244,14 +1258,14 @@ static const char ColorTable_names[] =
#endif
#if defined(need_GL_NV_evaluators)
-static const char MapControlPointsNV_names[] =
+static const char MapControlPointsNV_names[] =
"iiiiiiiip\0" /* Parameter signature */
"glMapControlPointsNV\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionFilter2D_names[] =
+static const char ConvolutionFilter2D_names[] =
"iiiiiip\0" /* Parameter signature */
"glConvolutionFilter2D\0"
"glConvolutionFilter2DEXT\0"
@@ -1259,14 +1273,14 @@ static const char ConvolutionFilter2D_names[] =
#endif
#if defined(need_GL_NV_evaluators)
-static const char MapParameterfvNV_names[] =
+static const char MapParameterfvNV_names[] =
"iip\0" /* Parameter signature */
"glMapParameterfvNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3dvARB_names[] =
+static const char VertexAttrib3dvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3dv\0"
"glVertexAttrib3dvARB\0"
@@ -1274,14 +1288,14 @@ static const char VertexAttrib3dvARB_names[] =
#endif
#if defined(need_GL_PGI_misc_hints)
-static const char HintPGI_names[] =
+static const char HintPGI_names[] =
"ii\0" /* Parameter signature */
"glHintPGI\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionParameteriv_names[] =
+static const char ConvolutionParameteriv_names[] =
"iip\0" /* Parameter signature */
"glConvolutionParameteriv\0"
"glConvolutionParameterivEXT\0"
@@ -1289,28 +1303,28 @@ static const char ConvolutionParameteriv_names[] =
#endif
#if defined(need_GL_EXT_cull_vertex)
-static const char CullParameterdvEXT_names[] =
+static const char CullParameterdvEXT_names[] =
"ip\0" /* Parameter signature */
"glCullParameterdvEXT\0"
"";
#endif
#if defined(need_GL_NV_fragment_program)
-static const char ProgramNamedParameter4fNV_names[] =
+static const char ProgramNamedParameter4fNV_names[] =
"iipffff\0" /* Parameter signature */
"glProgramNamedParameter4fNV\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color3fVertex3fSUN_names[] =
+static const char Color3fVertex3fSUN_names[] =
"ffffff\0" /* Parameter signature */
"glColor3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char ProgramEnvParameter4fvARB_names[] =
+static const char ProgramEnvParameter4fvARB_names[] =
"iip\0" /* Parameter signature */
"glProgramEnvParameter4fvARB\0"
"glProgramParameter4fvNV\0"
@@ -1318,14 +1332,14 @@ static const char ProgramEnvParameter4fvARB_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightModeliSGIX_names[] =
+static const char FragmentLightModeliSGIX_names[] =
"ii\0" /* Parameter signature */
"glFragmentLightModeliSGIX\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionParameterfv_names[] =
+static const char ConvolutionParameterfv_names[] =
"iip\0" /* Parameter signature */
"glConvolutionParameterfv\0"
"glConvolutionParameterfvEXT\0"
@@ -1333,35 +1347,42 @@ static const char ConvolutionParameterfv_names[] =
#endif
#if defined(need_GL_3DFX_tbuffer)
-static const char TbufferMask3DFX_names[] =
+static const char TbufferMask3DFX_names[] =
"i\0" /* Parameter signature */
"glTbufferMask3DFX\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char LoadProgramNV_names[] =
+static const char LoadProgramNV_names[] =
"iiip\0" /* Parameter signature */
"glLoadProgramNV\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char WaitSync_names[] =
+ "iii\0" /* Parameter signature */
+ "glWaitSync\0"
+ "";
+#endif
+
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4fvNV_names[] =
+static const char VertexAttrib4fvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4fvNV\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char GetAttachedObjectsARB_names[] =
+static const char GetAttachedObjectsARB_names[] =
"iipp\0" /* Parameter signature */
"glGetAttachedObjectsARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform3fvARB_names[] =
+static const char Uniform3fvARB_names[] =
"iip\0" /* Parameter signature */
"glUniform3fv\0"
"glUniform3fvARB\0"
@@ -1369,7 +1390,7 @@ static const char Uniform3fvARB_names[] =
#endif
#if defined(need_GL_EXT_draw_range_elements)
-static const char DrawRangeElements_names[] =
+static const char DrawRangeElements_names[] =
"iiiiip\0" /* Parameter signature */
"glDrawRangeElements\0"
"glDrawRangeElementsEXT\0"
@@ -1377,14 +1398,14 @@ static const char DrawRangeElements_names[] =
#endif
#if defined(need_GL_SGIX_sprite)
-static const char SpriteParameterfvSGIX_names[] =
+static const char SpriteParameterfvSGIX_names[] =
"ip\0" /* Parameter signature */
"glSpriteParameterfvSGIX\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char CheckFramebufferStatusEXT_names[] =
+static const char CheckFramebufferStatusEXT_names[] =
"i\0" /* Parameter signature */
"glCheckFramebufferStatus\0"
"glCheckFramebufferStatusEXT\0"
@@ -1392,21 +1413,21 @@ static const char CheckFramebufferStatusEXT_names[] =
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactoruiSUN_names[] =
+static const char GlobalAlphaFactoruiSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactoruiSUN\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char GetHandleARB_names[] =
+static const char GetHandleARB_names[] =
"i\0" /* Parameter signature */
"glGetHandleARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char GetVertexAttribivARB_names[] =
+static const char GetVertexAttribivARB_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribiv\0"
"glGetVertexAttribivARB\0"
@@ -1414,21 +1435,21 @@ static const char GetVertexAttribivARB_names[] =
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetCombinerInputParameterfvNV_names[] =
+static const char GetCombinerInputParameterfvNV_names[] =
"iiiip\0" /* Parameter signature */
"glGetCombinerInputParameterfvNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char CreateProgram_names[] =
+static const char CreateProgram_names[] =
"\0" /* Parameter signature */
"glCreateProgram\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix)
-static const char LoadTransposeMatrixdARB_names[] =
+static const char LoadTransposeMatrixdARB_names[] =
"p\0" /* Parameter signature */
"glLoadTransposeMatrixd\0"
"glLoadTransposeMatrixdARB\0"
@@ -1436,7 +1457,7 @@ static const char LoadTransposeMatrixdARB_names[] =
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetMinmax_names[] =
+static const char GetMinmax_names[] =
"iiiip\0" /* Parameter signature */
"glGetMinmax\0"
"glGetMinmaxEXT\0"
@@ -1444,14 +1465,14 @@ static const char GetMinmax_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char StencilFuncSeparate_names[] =
+static const char StencilFuncSeparate_names[] =
"iiii\0" /* Parameter signature */
"glStencilFuncSeparate\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3sEXT_names[] =
+static const char SecondaryColor3sEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3s\0"
"glSecondaryColor3sEXT\0"
@@ -1459,28 +1480,28 @@ static const char SecondaryColor3sEXT_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color3fVertex3fvSUN_names[] =
+static const char Color3fVertex3fvSUN_names[] =
"pp\0" /* Parameter signature */
"glColor3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactorbSUN_names[] =
+static const char GlobalAlphaFactorbSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactorbSUN\0"
"";
#endif
#if defined(need_GL_HP_image_transform)
-static const char ImageTransformParameterfvHP_names[] =
+static const char ImageTransformParameterfvHP_names[] =
"iip\0" /* Parameter signature */
"glImageTransformParameterfvHP\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4ivARB_names[] =
+static const char VertexAttrib4ivARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4iv\0"
"glVertexAttrib4ivARB\0"
@@ -1488,28 +1509,28 @@ static const char VertexAttrib4ivARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3fNV_names[] =
+static const char VertexAttrib3fNV_names[] =
"ifff\0" /* Parameter signature */
"glVertexAttrib3fNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs2dvNV_names[] =
+static const char VertexAttribs2dvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs2dvNV\0"
"";
#endif
#if defined(need_GL_EXT_timer_query)
-static const char GetQueryObjectui64vEXT_names[] =
+static const char GetQueryObjectui64vEXT_names[] =
"iip\0" /* Parameter signature */
"glGetQueryObjectui64vEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3fvARB_names[] =
+static const char MultiTexCoord3fvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord3fv\0"
"glMultiTexCoord3fvARB\0"
@@ -1517,7 +1538,7 @@ static const char MultiTexCoord3fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3dEXT_names[] =
+static const char SecondaryColor3dEXT_names[] =
"ddd\0" /* Parameter signature */
"glSecondaryColor3d\0"
"glSecondaryColor3dEXT\0"
@@ -1525,42 +1546,42 @@ static const char SecondaryColor3dEXT_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetProgramParameterfvNV_names[] =
+static const char GetProgramParameterfvNV_names[] =
"iiip\0" /* Parameter signature */
"glGetProgramParameterfvNV\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char TangentPointerEXT_names[] =
+static const char TangentPointerEXT_names[] =
"iip\0" /* Parameter signature */
"glTangentPointerEXT\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4fNormal3fVertex3fvSUN_names[] =
+static const char Color4fNormal3fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glColor4fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_SGIX_instruments)
-static const char GetInstrumentsSGIX_names[] =
+static const char GetInstrumentsSGIX_names[] =
"\0" /* Parameter signature */
"glGetInstrumentsSGIX\0"
"";
#endif
#if defined(need_GL_NV_evaluators)
-static const char EvalMapsNV_names[] =
+static const char EvalMapsNV_names[] =
"ii\0" /* Parameter signature */
"glEvalMapsNV\0"
"";
#endif
#if defined(need_GL_EXT_subtexture)
-static const char TexSubImage2D_names[] =
+static const char TexSubImage2D_names[] =
"iiiiiiiip\0" /* Parameter signature */
"glTexSubImage2D\0"
"glTexSubImage2DEXT\0"
@@ -1568,28 +1589,28 @@ static const char TexSubImage2D_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightivSGIX_names[] =
+static const char FragmentLightivSGIX_names[] =
"iip\0" /* Parameter signature */
"glFragmentLightivSGIX\0"
"";
#endif
#if defined(need_GL_APPLE_texture_range)
-static const char GetTexParameterPointervAPPLE_names[] =
+static const char GetTexParameterPointervAPPLE_names[] =
"iip\0" /* Parameter signature */
"glGetTexParameterPointervAPPLE\0"
"";
#endif
#if defined(need_GL_EXT_pixel_transform)
-static const char PixelTransformParameterfvEXT_names[] =
+static const char PixelTransformParameterfvEXT_names[] =
"iip\0" /* Parameter signature */
"glPixelTransformParameterfvEXT\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4bvARB_names[] =
+static const char VertexAttrib4bvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4bv\0"
"glVertexAttrib4bvARB\0"
@@ -1597,14 +1618,14 @@ static const char VertexAttrib4bvARB_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char AlphaFragmentOp2ATI_names[] =
+static const char AlphaFragmentOp2ATI_names[] =
"iiiiiiiii\0" /* Parameter signature */
"glAlphaFragmentOp2ATI\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4sARB_names[] =
+static const char MultiTexCoord4sARB_names[] =
"iiiii\0" /* Parameter signature */
"glMultiTexCoord4s\0"
"glMultiTexCoord4sARB\0"
@@ -1612,28 +1633,28 @@ static const char MultiTexCoord4sARB_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char GetFragmentMaterialivSGIX_names[] =
+static const char GetFragmentMaterialivSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetFragmentMaterialivSGIX\0"
"";
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4dMESA_names[] =
+static const char WindowPos4dMESA_names[] =
"dddd\0" /* Parameter signature */
"glWindowPos4dMESA\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightPointerARB_names[] =
+static const char WeightPointerARB_names[] =
"iiip\0" /* Parameter signature */
"glWeightPointerARB\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2dMESA_names[] =
+static const char WindowPos2dMESA_names[] =
"dd\0" /* Parameter signature */
"glWindowPos2d\0"
"glWindowPos2dARB\0"
@@ -1642,7 +1663,7 @@ static const char WindowPos2dMESA_names[] =
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char FramebufferTexture3DEXT_names[] =
+static const char FramebufferTexture3DEXT_names[] =
"iiiiii\0" /* Parameter signature */
"glFramebufferTexture3D\0"
"glFramebufferTexture3DEXT\0"
@@ -1650,7 +1671,7 @@ static const char FramebufferTexture3DEXT_names[] =
#endif
#if defined(need_GL_EXT_blend_minmax)
-static const char BlendEquation_names[] =
+static const char BlendEquation_names[] =
"i\0" /* Parameter signature */
"glBlendEquation\0"
"glBlendEquationEXT\0"
@@ -1658,14 +1679,14 @@ static const char BlendEquation_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3dNV_names[] =
+static const char VertexAttrib3dNV_names[] =
"iddd\0" /* Parameter signature */
"glVertexAttrib3dNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3dARB_names[] =
+static const char VertexAttrib3dARB_names[] =
"iddd\0" /* Parameter signature */
"glVertexAttrib3d\0"
"glVertexAttrib3dARB\0"
@@ -1673,14 +1694,14 @@ static const char VertexAttrib3dARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_names[] =
"ppppp\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4fARB_names[] =
+static const char VertexAttrib4fARB_names[] =
"iffff\0" /* Parameter signature */
"glVertexAttrib4f\0"
"glVertexAttrib4fARB\0"
@@ -1688,14 +1709,14 @@ static const char VertexAttrib4fARB_names[] =
#endif
#if defined(need_GL_EXT_index_func)
-static const char IndexFuncEXT_names[] =
+static const char IndexFuncEXT_names[] =
"if\0" /* Parameter signature */
"glIndexFuncEXT\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char FramebufferTexture2DEXT_names[] =
+static const char FramebufferTexture2DEXT_names[] =
"iiiii\0" /* Parameter signature */
"glFramebufferTexture2D\0"
"glFramebufferTexture2DEXT\0"
@@ -1703,7 +1724,7 @@ static const char FramebufferTexture2DEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2dvARB_names[] =
+static const char MultiTexCoord2dvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord2dv\0"
"glMultiTexCoord2dvARB\0"
@@ -1711,21 +1732,21 @@ static const char MultiTexCoord2dvARB_names[] =
#endif
#if defined(need_GL_EXT_cull_vertex)
-static const char CullParameterfvEXT_names[] =
+static const char CullParameterfvEXT_names[] =
"ip\0" /* Parameter signature */
"glCullParameterfvEXT\0"
"";
#endif
#if defined(need_GL_NV_fragment_program)
-static const char ProgramNamedParameter4fvNV_names[] =
+static const char ProgramNamedParameter4fvNV_names[] =
"iipp\0" /* Parameter signature */
"glProgramNamedParameter4fvNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColorPointerEXT_names[] =
+static const char SecondaryColorPointerEXT_names[] =
"iiip\0" /* Parameter signature */
"glSecondaryColorPointer\0"
"glSecondaryColorPointerEXT\0"
@@ -1733,7 +1754,7 @@ static const char SecondaryColorPointerEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4fvARB_names[] =
+static const char VertexAttrib4fvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4fv\0"
"glVertexAttrib4fvARB\0"
@@ -1741,14 +1762,14 @@ static const char VertexAttrib4fvARB_names[] =
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char ColorPointerListIBM_names[] =
+static const char ColorPointerListIBM_names[] =
"iiipi\0" /* Parameter signature */
"glColorPointerListIBM\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char GetActiveUniformARB_names[] =
+static const char GetActiveUniformARB_names[] =
"iiipppp\0" /* Parameter signature */
"glGetActiveUniform\0"
"glGetActiveUniformARB\0"
@@ -1756,14 +1777,14 @@ static const char GetActiveUniformARB_names[] =
#endif
#if defined(need_GL_HP_image_transform)
-static const char ImageTransformParameteriHP_names[] =
+static const char ImageTransformParameteriHP_names[] =
"iii\0" /* Parameter signature */
"glImageTransformParameteriHP\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1svARB_names[] =
+static const char MultiTexCoord1svARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord1sv\0"
"glMultiTexCoord1svARB\0"
@@ -1771,7 +1792,7 @@ static const char MultiTexCoord1svARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char EndQueryARB_names[] =
+static const char EndQueryARB_names[] =
"i\0" /* Parameter signature */
"glEndQuery\0"
"glEndQueryARB\0"
@@ -1779,42 +1800,42 @@ static const char EndQueryARB_names[] =
#endif
#if defined(need_GL_NV_fence)
-static const char DeleteFencesNV_names[] =
+static const char DeleteFencesNV_names[] =
"ip\0" /* Parameter signature */
"glDeleteFencesNV\0"
"";
#endif
#if defined(need_GL_SGIX_polynomial_ffd)
-static const char DeformationMap3dSGIX_names[] =
+static const char DeformationMap3dSGIX_names[] =
"iddiiddiiddiip\0" /* Parameter signature */
"glDeformationMap3dSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char IsShader_names[] =
+static const char IsShader_names[] =
"i\0" /* Parameter signature */
"glIsShader\0"
"";
#endif
#if defined(need_GL_HP_image_transform)
-static const char GetImageTransformParameterivHP_names[] =
+static const char GetImageTransformParameterivHP_names[] =
"iip\0" /* Parameter signature */
"glGetImageTransformParameterivHP\0"
"";
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4ivMESA_names[] =
+static const char WindowPos4ivMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos4ivMESA\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3svARB_names[] =
+static const char MultiTexCoord3svARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord3sv\0"
"glMultiTexCoord3svARB\0"
@@ -1822,7 +1843,7 @@ static const char MultiTexCoord3svARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4iARB_names[] =
+static const char MultiTexCoord4iARB_names[] =
"iiiii\0" /* Parameter signature */
"glMultiTexCoord4i\0"
"glMultiTexCoord4iARB\0"
@@ -1830,21 +1851,21 @@ static const char MultiTexCoord4iARB_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3ivEXT_names[] =
+static const char Binormal3ivEXT_names[] =
"p\0" /* Parameter signature */
"glBinormal3ivEXT\0"
"";
#endif
#if defined(need_GL_MESA_resize_buffers)
-static const char ResizeBuffersMESA_names[] =
+static const char ResizeBuffersMESA_names[] =
"\0" /* Parameter signature */
"glResizeBuffersMESA\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char GetUniformivARB_names[] =
+static const char GetUniformivARB_names[] =
"iip\0" /* Parameter signature */
"glGetUniformiv\0"
"glGetUniformivARB\0"
@@ -1852,28 +1873,28 @@ static const char GetUniformivARB_names[] =
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char PixelTexGenParameteriSGIS_names[] =
+static const char PixelTexGenParameteriSGIS_names[] =
"ii\0" /* Parameter signature */
"glPixelTexGenParameteriSGIS\0"
"";
#endif
#if defined(need_GL_INTEL_parallel_arrays)
-static const char VertexPointervINTEL_names[] =
+static const char VertexPointervINTEL_names[] =
"iip\0" /* Parameter signature */
"glVertexPointervINTEL\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor4fNormal3fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiColor4fNormal3fVertex3fvSUN_names[] =
"pppp\0" /* Parameter signature */
"glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3uiEXT_names[] =
+static const char SecondaryColor3uiEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3ui\0"
"glSecondaryColor3uiEXT\0"
@@ -1881,14 +1902,14 @@ static const char SecondaryColor3uiEXT_names[] =
#endif
#if defined(need_GL_SGIX_instruments)
-static const char StartInstrumentsSGIX_names[] =
+static const char StartInstrumentsSGIX_names[] =
"\0" /* Parameter signature */
"glStartInstrumentsSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3usvEXT_names[] =
+static const char SecondaryColor3usvEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3usv\0"
"glSecondaryColor3usvEXT\0"
@@ -1896,49 +1917,49 @@ static const char SecondaryColor3usvEXT_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2fvNV_names[] =
+static const char VertexAttrib2fvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2fvNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char ProgramLocalParameter4dvARB_names[] =
+static const char ProgramLocalParameter4dvARB_names[] =
"iip\0" /* Parameter signature */
"glProgramLocalParameter4dvARB\0"
"";
#endif
#if defined(need_GL_ARB_matrix_palette)
-static const char MatrixIndexuivARB_names[] =
+static const char MatrixIndexuivARB_names[] =
"ip\0" /* Parameter signature */
"glMatrixIndexuivARB\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object)
-static const char RenderbufferStorageMultisample_names[] =
+static const char RenderbufferStorageMultisample_names[] =
"iiiii\0" /* Parameter signature */
"glRenderbufferStorageMultisample\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3sEXT_names[] =
+static const char Tangent3sEXT_names[] =
"iii\0" /* Parameter signature */
"glTangent3sEXT\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactorfSUN_names[] =
+static const char GlobalAlphaFactorfSUN_names[] =
"f\0" /* Parameter signature */
"glGlobalAlphaFactorfSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3iARB_names[] =
+static const char MultiTexCoord3iARB_names[] =
"iiii\0" /* Parameter signature */
"glMultiTexCoord3i\0"
"glMultiTexCoord3iARB\0"
@@ -1946,35 +1967,35 @@ static const char MultiTexCoord3iARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char IsProgram_names[] =
+static const char IsProgram_names[] =
"i\0" /* Parameter signature */
"glIsProgram\0"
"";
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char TexCoordPointerListIBM_names[] =
+static const char TexCoordPointerListIBM_names[] =
"iiipi\0" /* Parameter signature */
"glTexCoordPointerListIBM\0"
"";
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactorusSUN_names[] =
+static const char GlobalAlphaFactorusSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactorusSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2dvNV_names[] =
+static const char VertexAttrib2dvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2dvNV\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char FramebufferRenderbufferEXT_names[] =
+static const char FramebufferRenderbufferEXT_names[] =
"iiii\0" /* Parameter signature */
"glFramebufferRenderbuffer\0"
"glFramebufferRenderbufferEXT\0"
@@ -1982,14 +2003,14 @@ static const char FramebufferRenderbufferEXT_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1dvNV_names[] =
+static const char VertexAttrib1dvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1dvNV\0"
"";
#endif
#if defined(need_GL_EXT_texture_object)
-static const char GenTextures_names[] =
+static const char GenTextures_names[] =
"ip\0" /* Parameter signature */
"glGenTextures\0"
"glGenTexturesEXT\0"
@@ -1997,14 +2018,14 @@ static const char GenTextures_names[] =
#endif
#if defined(need_GL_NV_fence)
-static const char SetFenceNV_names[] =
+static const char SetFenceNV_names[] =
"ii\0" /* Parameter signature */
"glSetFenceNV\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char FramebufferTexture1DEXT_names[] =
+static const char FramebufferTexture1DEXT_names[] =
"iiiii\0" /* Parameter signature */
"glFramebufferTexture1D\0"
"glFramebufferTexture1DEXT\0"
@@ -2012,49 +2033,49 @@ static const char FramebufferTexture1DEXT_names[] =
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetCombinerOutputParameterivNV_names[] =
+static const char GetCombinerOutputParameterivNV_names[] =
"iiip\0" /* Parameter signature */
"glGetCombinerOutputParameterivNV\0"
"";
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char PixelTexGenParameterivSGIS_names[] =
+static const char PixelTexGenParameterivSGIS_names[] =
"ip\0" /* Parameter signature */
"glPixelTexGenParameterivSGIS\0"
"";
#endif
#if defined(need_GL_EXT_texture_perturb_normal)
-static const char TextureNormalEXT_names[] =
+static const char TextureNormalEXT_names[] =
"i\0" /* Parameter signature */
"glTextureNormalEXT\0"
"";
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char IndexPointerListIBM_names[] =
+static const char IndexPointerListIBM_names[] =
"iipi\0" /* Parameter signature */
"glIndexPointerListIBM\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightfvARB_names[] =
+static const char WeightfvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightfvARB\0"
"";
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4fMESA_names[] =
+static const char WindowPos4fMESA_names[] =
"ffff\0" /* Parameter signature */
"glWindowPos4fMESA\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3dvMESA_names[] =
+static const char WindowPos3dvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos3dv\0"
"glWindowPos3dvARB\0"
@@ -2063,14 +2084,14 @@ static const char WindowPos3dvMESA_names[] =
#endif
#if defined(need_GL_EXT_timer_query)
-static const char GetQueryObjecti64vEXT_names[] =
+static const char GetQueryObjecti64vEXT_names[] =
"iip\0" /* Parameter signature */
"glGetQueryObjecti64vEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1dARB_names[] =
+static const char MultiTexCoord1dARB_names[] =
"id\0" /* Parameter signature */
"glMultiTexCoord1d\0"
"glMultiTexCoord1dARB\0"
@@ -2078,7 +2099,7 @@ static const char MultiTexCoord1dARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_NV_point_sprite)
-static const char PointParameterivNV_names[] =
+static const char PointParameterivNV_names[] =
"ip\0" /* Parameter signature */
"glPointParameteriv\0"
"glPointParameterivNV\0"
@@ -2086,7 +2107,7 @@ static const char PointParameterivNV_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform2fvARB_names[] =
+static const char Uniform2fvARB_names[] =
"iip\0" /* Parameter signature */
"glUniform2fv\0"
"glUniform2fvARB\0"
@@ -2094,14 +2115,14 @@ static const char Uniform2fvARB_names[] =
#endif
#if defined(need_GL_APPLE_flush_buffer_range)
-static const char BufferParameteriAPPLE_names[] =
+static const char BufferParameteriAPPLE_names[] =
"iii\0" /* Parameter signature */
"glBufferParameteriAPPLE\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3dvARB_names[] =
+static const char MultiTexCoord3dvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord3dv\0"
"glMultiTexCoord3dvARB\0"
@@ -2109,49 +2130,49 @@ static const char MultiTexCoord3dvARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_names[] =
"pppp\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char DeleteObjectARB_names[] =
+static const char DeleteObjectARB_names[] =
"i\0" /* Parameter signature */
"glDeleteObjectARB\0"
"";
#endif
#if defined(need_GL_ARB_matrix_palette)
-static const char MatrixIndexPointerARB_names[] =
+static const char MatrixIndexPointerARB_names[] =
"iiip\0" /* Parameter signature */
"glMatrixIndexPointerARB\0"
"";
#endif
#if defined(need_GL_NV_fragment_program)
-static const char ProgramNamedParameter4dvNV_names[] =
+static const char ProgramNamedParameter4dvNV_names[] =
"iipp\0" /* Parameter signature */
"glProgramNamedParameter4dvNV\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3fvEXT_names[] =
+static const char Tangent3fvEXT_names[] =
"p\0" /* Parameter signature */
"glTangent3fvEXT\0"
"";
#endif
#if defined(need_GL_ARB_vertex_array_object)
-static const char GenVertexArrays_names[] =
+static const char GenVertexArrays_names[] =
"ip\0" /* Parameter signature */
"glGenVertexArrays\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char BindFramebufferEXT_names[] =
+static const char BindFramebufferEXT_names[] =
"ii\0" /* Parameter signature */
"glBindFramebuffer\0"
"glBindFramebufferEXT\0"
@@ -2159,14 +2180,14 @@ static const char BindFramebufferEXT_names[] =
#endif
#if defined(need_GL_SGIX_reference_plane)
-static const char ReferencePlaneSGIX_names[] =
+static const char ReferencePlaneSGIX_names[] =
"p\0" /* Parameter signature */
"glReferencePlaneSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char ValidateProgramARB_names[] =
+static const char ValidateProgramARB_names[] =
"i\0" /* Parameter signature */
"glValidateProgram\0"
"glValidateProgramARB\0"
@@ -2174,21 +2195,21 @@ static const char ValidateProgramARB_names[] =
#endif
#if defined(need_GL_EXT_compiled_vertex_array)
-static const char UnlockArraysEXT_names[] =
+static const char UnlockArraysEXT_names[] =
"\0" /* Parameter signature */
"glUnlockArraysEXT\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor3fVertex3fSUN_names[] =
+static const char TexCoord2fColor3fVertex3fSUN_names[] =
"ffffffff\0" /* Parameter signature */
"glTexCoord2fColor3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3fvMESA_names[] =
+static const char WindowPos3fvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos3fv\0"
"glWindowPos3fvARB\0"
@@ -2197,14 +2218,14 @@ static const char WindowPos3fvMESA_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1svNV_names[] =
+static const char VertexAttrib1svNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1svNV\0"
"";
#endif
#if defined(need_GL_EXT_copy_texture)
-static const char CopyTexSubImage3D_names[] =
+static const char CopyTexSubImage3D_names[] =
"iiiiiiiii\0" /* Parameter signature */
"glCopyTexSubImage3D\0"
"glCopyTexSubImage3DEXT\0"
@@ -2212,22 +2233,29 @@ static const char CopyTexSubImage3D_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2dARB_names[] =
+static const char VertexAttrib2dARB_names[] =
"idd\0" /* Parameter signature */
"glVertexAttrib2d\0"
"glVertexAttrib2dARB\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char GetInteger64v_names[] =
+ "ip\0" /* Parameter signature */
+ "glGetInteger64v\0"
+ "";
+#endif
+
#if defined(need_GL_SGIS_texture_color_mask)
-static const char TextureColorMaskSGIS_names[] =
+static const char TextureColorMaskSGIS_names[] =
"iiii\0" /* Parameter signature */
"glTextureColorMaskSGIS\0"
"";
#endif
#if defined(need_GL_SGI_color_table) || defined(need_GL_EXT_paletted_texture)
-static const char GetColorTable_names[] =
+static const char GetColorTable_names[] =
"iiip\0" /* Parameter signature */
"glGetColorTable\0"
"glGetColorTableSGI\0"
@@ -2236,7 +2264,7 @@ static const char GetColorTable_names[] =
#endif
#if defined(need_GL_SGI_color_table)
-static const char CopyColorTable_names[] =
+static const char CopyColorTable_names[] =
"iiiii\0" /* Parameter signature */
"glCopyColorTable\0"
"glCopyColorTableSGI\0"
@@ -2244,7 +2272,7 @@ static const char CopyColorTable_names[] =
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetHistogramParameterfv_names[] =
+static const char GetHistogramParameterfv_names[] =
"iip\0" /* Parameter signature */
"glGetHistogramParameterfv\0"
"glGetHistogramParameterfvEXT\0"
@@ -2252,21 +2280,21 @@ static const char GetHistogramParameterfv_names[] =
#endif
#if defined(need_GL_INTEL_parallel_arrays)
-static const char ColorPointervINTEL_names[] =
+static const char ColorPointervINTEL_names[] =
"iip\0" /* Parameter signature */
"glColorPointervINTEL\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char AlphaFragmentOp1ATI_names[] =
+static const char AlphaFragmentOp1ATI_names[] =
"iiiiii\0" /* Parameter signature */
"glAlphaFragmentOp1ATI\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3ivARB_names[] =
+static const char MultiTexCoord3ivARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord3iv\0"
"glMultiTexCoord3ivARB\0"
@@ -2274,7 +2302,7 @@ static const char MultiTexCoord3ivARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2sARB_names[] =
+static const char MultiTexCoord2sARB_names[] =
"iii\0" /* Parameter signature */
"glMultiTexCoord2s\0"
"glMultiTexCoord2sARB\0"
@@ -2282,7 +2310,7 @@ static const char MultiTexCoord2sARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1dvARB_names[] =
+static const char VertexAttrib1dvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1dv\0"
"glVertexAttrib1dvARB\0"
@@ -2290,7 +2318,7 @@ static const char VertexAttrib1dvARB_names[] =
#endif
#if defined(need_GL_EXT_texture_object)
-static const char DeleteTextures_names[] =
+static const char DeleteTextures_names[] =
"ip\0" /* Parameter signature */
"glDeleteTextures\0"
"glDeleteTexturesEXT\0"
@@ -2298,49 +2326,49 @@ static const char DeleteTextures_names[] =
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char TexCoordPointerEXT_names[] =
+static const char TexCoordPointerEXT_names[] =
"iiiip\0" /* Parameter signature */
"glTexCoordPointerEXT\0"
"";
#endif
#if defined(need_GL_SGIS_texture4D)
-static const char TexSubImage4DSGIS_names[] =
+static const char TexSubImage4DSGIS_names[] =
"iiiiiiiiiiiip\0" /* Parameter signature */
"glTexSubImage4DSGIS\0"
"";
#endif
#if defined(need_GL_NV_register_combiners2)
-static const char CombinerStageParameterfvNV_names[] =
+static const char CombinerStageParameterfvNV_names[] =
"iip\0" /* Parameter signature */
"glCombinerStageParameterfvNV\0"
"";
#endif
#if defined(need_GL_SGIX_instruments)
-static const char StopInstrumentsSGIX_names[] =
+static const char StopInstrumentsSGIX_names[] =
"i\0" /* Parameter signature */
"glStopInstrumentsSGIX\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord4fColor4fNormal3fVertex4fSUN_names[] =
+static const char TexCoord4fColor4fNormal3fVertex4fSUN_names[] =
"fffffffffffffff\0" /* Parameter signature */
"glTexCoord4fColor4fNormal3fVertex4fSUN\0"
"";
#endif
#if defined(need_GL_SGIX_polynomial_ffd)
-static const char DeformSGIX_names[] =
+static const char DeformSGIX_names[] =
"i\0" /* Parameter signature */
"glDeformSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char GetVertexAttribfvARB_names[] =
+static const char GetVertexAttribfvARB_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribfv\0"
"glGetVertexAttribfvARB\0"
@@ -2348,7 +2376,7 @@ static const char GetVertexAttribfvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3ivEXT_names[] =
+static const char SecondaryColor3ivEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3iv\0"
"glSecondaryColor3ivEXT\0"
@@ -2356,49 +2384,49 @@ static const char SecondaryColor3ivEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix4x2fv_names[] =
+static const char UniformMatrix4x2fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix4x2fv\0"
"";
#endif
#if defined(need_GL_SGIS_detail_texture)
-static const char GetDetailTexFuncSGIS_names[] =
+static const char GetDetailTexFuncSGIS_names[] =
"ip\0" /* Parameter signature */
"glGetDetailTexFuncSGIS\0"
"";
#endif
#if defined(need_GL_NV_register_combiners2)
-static const char GetCombinerStageParameterfvNV_names[] =
+static const char GetCombinerStageParameterfvNV_names[] =
"iip\0" /* Parameter signature */
"glGetCombinerStageParameterfvNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_array_object)
-static const char BindVertexArray_names[] =
+static const char BindVertexArray_names[] =
"i\0" /* Parameter signature */
"glBindVertexArray\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4ubVertex2fvSUN_names[] =
+static const char Color4ubVertex2fvSUN_names[] =
"pp\0" /* Parameter signature */
"glColor4ubVertex2fvSUN\0"
"";
#endif
#if defined(need_GL_SGIS_texture_filter4)
-static const char TexFilterFuncSGIS_names[] =
+static const char TexFilterFuncSGIS_names[] =
"iiip\0" /* Parameter signature */
"glTexFilterFuncSGIS\0"
"";
#endif
#if defined(need_GL_SGIS_multisample) || defined(need_GL_EXT_multisample)
-static const char SampleMaskSGIS_names[] =
+static const char SampleMaskSGIS_names[] =
"fi\0" /* Parameter signature */
"glSampleMaskSGIS\0"
"glSampleMaskEXT\0"
@@ -2406,7 +2434,7 @@ static const char SampleMaskSGIS_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_shader)
-static const char GetAttribLocationARB_names[] =
+static const char GetAttribLocationARB_names[] =
"ip\0" /* Parameter signature */
"glGetAttribLocation\0"
"glGetAttribLocationARB\0"
@@ -2414,7 +2442,7 @@ static const char GetAttribLocationARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4ubvARB_names[] =
+static const char VertexAttrib4ubvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4ubv\0"
"glVertexAttrib4ubvARB\0"
@@ -2422,21 +2450,21 @@ static const char VertexAttrib4ubvARB_names[] =
#endif
#if defined(need_GL_SGIS_detail_texture)
-static const char DetailTexFuncSGIS_names[] =
+static const char DetailTexFuncSGIS_names[] =
"iip\0" /* Parameter signature */
"glDetailTexFuncSGIS\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Normal3fVertex3fSUN_names[] =
+static const char Normal3fVertex3fSUN_names[] =
"ffffff\0" /* Parameter signature */
"glNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_EXT_copy_texture)
-static const char CopyTexImage2D_names[] =
+static const char CopyTexImage2D_names[] =
"iiiiiiii\0" /* Parameter signature */
"glCopyTexImage2D\0"
"glCopyTexImage2DEXT\0"
@@ -2444,7 +2472,7 @@ static const char CopyTexImage2D_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char GetBufferPointervARB_names[] =
+static const char GetBufferPointervARB_names[] =
"iip\0" /* Parameter signature */
"glGetBufferPointerv\0"
"glGetBufferPointervARB\0"
@@ -2452,7 +2480,7 @@ static const char GetBufferPointervARB_names[] =
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char ProgramEnvParameter4fARB_names[] =
+static const char ProgramEnvParameter4fARB_names[] =
"iiffff\0" /* Parameter signature */
"glProgramEnvParameter4fARB\0"
"glProgramParameter4fNV\0"
@@ -2460,7 +2488,7 @@ static const char ProgramEnvParameter4fARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform3ivARB_names[] =
+static const char Uniform3ivARB_names[] =
"iip\0" /* Parameter signature */
"glUniform3iv\0"
"glUniform3ivARB\0"
@@ -2468,21 +2496,21 @@ static const char Uniform3ivARB_names[] =
#endif
#if defined(need_GL_NV_fence)
-static const char GetFenceivNV_names[] =
+static const char GetFenceivNV_names[] =
"iip\0" /* Parameter signature */
"glGetFenceivNV\0"
"";
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4dvMESA_names[] =
+static const char WindowPos4dvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos4dvMESA\0"
"";
#endif
#if defined(need_GL_EXT_color_subtable)
-static const char ColorSubTable_names[] =
+static const char ColorSubTable_names[] =
"iiiiip\0" /* Parameter signature */
"glColorSubTable\0"
"glColorSubTableEXT\0"
@@ -2490,7 +2518,7 @@ static const char ColorSubTable_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4ivARB_names[] =
+static const char MultiTexCoord4ivARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord4iv\0"
"glMultiTexCoord4ivARB\0"
@@ -2498,21 +2526,21 @@ static const char MultiTexCoord4ivARB_names[] =
#endif
#if defined(need_GL_EXT_gpu_program_parameters)
-static const char ProgramLocalParameters4fvEXT_names[] =
+static const char ProgramLocalParameters4fvEXT_names[] =
"iiip\0" /* Parameter signature */
"glProgramLocalParameters4fvEXT\0"
"";
#endif
#if defined(need_GL_NV_evaluators)
-static const char GetMapAttribParameterfvNV_names[] =
+static const char GetMapAttribParameterfvNV_names[] =
"iiip\0" /* Parameter signature */
"glGetMapAttribParameterfvNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4sARB_names[] =
+static const char VertexAttrib4sARB_names[] =
"iiiii\0" /* Parameter signature */
"glVertexAttrib4s\0"
"glVertexAttrib4sARB\0"
@@ -2520,7 +2548,7 @@ static const char VertexAttrib4sARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char GetQueryObjectuivARB_names[] =
+static const char GetQueryObjectuivARB_names[] =
"iip\0" /* Parameter signature */
"glGetQueryObjectuiv\0"
"glGetQueryObjectuivARB\0"
@@ -2528,14 +2556,14 @@ static const char GetQueryObjectuivARB_names[] =
#endif
#if defined(need_GL_NV_evaluators)
-static const char MapParameterivNV_names[] =
+static const char MapParameterivNV_names[] =
"iip\0" /* Parameter signature */
"glMapParameterivNV\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char GenRenderbuffersEXT_names[] =
+static const char GenRenderbuffersEXT_names[] =
"ip\0" /* Parameter signature */
"glGenRenderbuffers\0"
"glGenRenderbuffersEXT\0"
@@ -2543,7 +2571,7 @@ static const char GenRenderbuffersEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2dvARB_names[] =
+static const char VertexAttrib2dvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2dv\0"
"glVertexAttrib2dvARB\0"
@@ -2551,28 +2579,28 @@ static const char VertexAttrib2dvARB_names[] =
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char EdgeFlagPointerEXT_names[] =
+static const char EdgeFlagPointerEXT_names[] =
"iip\0" /* Parameter signature */
"glEdgeFlagPointerEXT\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs2svNV_names[] =
+static const char VertexAttribs2svNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs2svNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightbvARB_names[] =
+static const char WeightbvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightbvARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2fvARB_names[] =
+static const char VertexAttrib2fvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2fv\0"
"glVertexAttrib2fvARB\0"
@@ -2580,7 +2608,7 @@ static const char VertexAttrib2fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char GetBufferParameterivARB_names[] =
+static const char GetBufferParameterivARB_names[] =
"iip\0" /* Parameter signature */
"glGetBufferParameteriv\0"
"glGetBufferParameterivARB\0"
@@ -2588,28 +2616,28 @@ static const char GetBufferParameterivARB_names[] =
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char ListParameteriSGIX_names[] =
+static const char ListParameteriSGIX_names[] =
"iii\0" /* Parameter signature */
"glListParameteriSGIX\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor4fNormal3fVertex3fSUN_names[] =
+static const char ReplacementCodeuiColor4fNormal3fVertex3fSUN_names[] =
"iffffffffff\0" /* Parameter signature */
"glReplacementCodeuiColor4fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_SGIX_instruments)
-static const char InstrumentsBufferSGIX_names[] =
+static const char InstrumentsBufferSGIX_names[] =
"ip\0" /* Parameter signature */
"glInstrumentsBufferSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NivARB_names[] =
+static const char VertexAttrib4NivARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Niv\0"
"glVertexAttrib4NivARB\0"
@@ -2617,35 +2645,35 @@ static const char VertexAttrib4NivARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char GetAttachedShaders_names[] =
+static const char GetAttachedShaders_names[] =
"iipp\0" /* Parameter signature */
"glGetAttachedShaders\0"
"";
#endif
#if defined(need_GL_APPLE_vertex_array_object)
-static const char GenVertexArraysAPPLE_names[] =
+static const char GenVertexArraysAPPLE_names[] =
"ip\0" /* Parameter signature */
"glGenVertexArraysAPPLE\0"
"";
#endif
#if defined(need_GL_EXT_gpu_program_parameters)
-static const char ProgramEnvParameters4fvEXT_names[] =
+static const char ProgramEnvParameters4fvEXT_names[] =
"iiip\0" /* Parameter signature */
"glProgramEnvParameters4fvEXT\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor4fNormal3fVertex3fvSUN_names[] =
+static const char TexCoord2fColor4fNormal3fVertex3fvSUN_names[] =
"pppp\0" /* Parameter signature */
"glTexCoord2fColor4fNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2iMESA_names[] =
+static const char WindowPos2iMESA_names[] =
"ii\0" /* Parameter signature */
"glWindowPos2i\0"
"glWindowPos2iARB\0"
@@ -2654,7 +2682,7 @@ static const char WindowPos2iMESA_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3fvEXT_names[] =
+static const char SecondaryColor3fvEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3fv\0"
"glSecondaryColor3fvEXT\0"
@@ -2662,7 +2690,7 @@ static const char SecondaryColor3fvEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexSubImage1DARB_names[] =
+static const char CompressedTexSubImage1DARB_names[] =
"iiiiiip\0" /* Parameter signature */
"glCompressedTexSubImage1D\0"
"glCompressedTexSubImage1DARB\0"
@@ -2670,28 +2698,28 @@ static const char CompressedTexSubImage1DARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetVertexAttribivNV_names[] =
+static const char GetVertexAttribivNV_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribivNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramStringARB_names[] =
+static const char GetProgramStringARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramStringARB\0"
"";
#endif
#if defined(need_GL_ATI_envmap_bumpmap)
-static const char TexBumpParameterfvATI_names[] =
+static const char TexBumpParameterfvATI_names[] =
"ip\0" /* Parameter signature */
"glTexBumpParameterfvATI\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char CompileShaderARB_names[] =
+static const char CompileShaderARB_names[] =
"i\0" /* Parameter signature */
"glCompileShader\0"
"glCompileShaderARB\0"
@@ -2699,14 +2727,14 @@ static const char CompileShaderARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0)
-static const char DeleteShader_names[] =
+static const char DeleteShader_names[] =
"i\0" /* Parameter signature */
"glDeleteShader\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform3fARB_names[] =
+static const char Uniform3fARB_names[] =
"ifff\0" /* Parameter signature */
"glUniform3f\0"
"glUniform3fARB\0"
@@ -2714,28 +2742,28 @@ static const char Uniform3fARB_names[] =
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char ListParameterfvSGIX_names[] =
+static const char ListParameterfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glListParameterfvSGIX\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3dvEXT_names[] =
+static const char Tangent3dvEXT_names[] =
"p\0" /* Parameter signature */
"glTangent3dvEXT\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetVertexAttribfvNV_names[] =
+static const char GetVertexAttribfvNV_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribfvNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3sMESA_names[] =
+static const char WindowPos3sMESA_names[] =
"iii\0" /* Parameter signature */
"glWindowPos3s\0"
"glWindowPos3sARB\0"
@@ -2744,35 +2772,35 @@ static const char WindowPos3sMESA_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2svNV_names[] =
+static const char VertexAttrib2svNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2svNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs1fvNV_names[] =
+static const char VertexAttribs1fvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs1fvNV\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fVertex3fvSUN_names[] =
+static const char TexCoord2fVertex3fvSUN_names[] =
"pp\0" /* Parameter signature */
"glTexCoord2fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4sMESA_names[] =
+static const char WindowPos4sMESA_names[] =
"iiii\0" /* Parameter signature */
"glWindowPos4sMESA\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NuivARB_names[] =
+static const char VertexAttrib4NuivARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Nuiv\0"
"glVertexAttrib4NuivARB\0"
@@ -2780,7 +2808,7 @@ static const char VertexAttrib4NuivARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char ClientActiveTextureARB_names[] =
+static const char ClientActiveTextureARB_names[] =
"i\0" /* Parameter signature */
"glClientActiveTexture\0"
"glClientActiveTextureARB\0"
@@ -2788,21 +2816,21 @@ static const char ClientActiveTextureARB_names[] =
#endif
#if defined(need_GL_SGIX_pixel_texture)
-static const char PixelTexGenSGIX_names[] =
+static const char PixelTexGenSGIX_names[] =
"i\0" /* Parameter signature */
"glPixelTexGenSGIX\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeusvSUN_names[] =
+static const char ReplacementCodeusvSUN_names[] =
"p\0" /* Parameter signature */
"glReplacementCodeusvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform4fARB_names[] =
+static const char Uniform4fARB_names[] =
"iffff\0" /* Parameter signature */
"glUniform4f\0"
"glUniform4fARB\0"
@@ -2810,14 +2838,14 @@ static const char Uniform4fARB_names[] =
#endif
#if defined(need_GL_ARB_map_buffer_range)
-static const char FlushMappedBufferRange_names[] =
+static const char FlushMappedBufferRange_names[] =
"iii\0" /* Parameter signature */
"glFlushMappedBufferRange\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char IsProgramNV_names[] =
+static const char IsProgramNV_names[] =
"i\0" /* Parameter signature */
"glIsProgramARB\0"
"glIsProgramNV\0"
@@ -2825,21 +2853,21 @@ static const char IsProgramNV_names[] =
#endif
#if defined(need_GL_APPLE_flush_buffer_range)
-static const char FlushMappedBufferRangeAPPLE_names[] =
+static const char FlushMappedBufferRangeAPPLE_names[] =
"iii\0" /* Parameter signature */
"glFlushMappedBufferRangeAPPLE\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodePointerSUN_names[] =
+static const char ReplacementCodePointerSUN_names[] =
"iip\0" /* Parameter signature */
"glReplacementCodePointerSUN\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char ProgramEnvParameter4dARB_names[] =
+static const char ProgramEnvParameter4dARB_names[] =
"iidddd\0" /* Parameter signature */
"glProgramEnvParameter4dARB\0"
"glProgramParameter4dNV\0"
@@ -2847,7 +2875,7 @@ static const char ProgramEnvParameter4dARB_names[] =
#endif
#if defined(need_GL_SGI_color_table)
-static const char ColorTableParameterfv_names[] =
+static const char ColorTableParameterfv_names[] =
"iip\0" /* Parameter signature */
"glColorTableParameterfv\0"
"glColorTableParameterfvSGI\0"
@@ -2855,21 +2883,21 @@ static const char ColorTableParameterfv_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightModelfSGIX_names[] =
+static const char FragmentLightModelfSGIX_names[] =
"if\0" /* Parameter signature */
"glFragmentLightModelfSGIX\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3bvEXT_names[] =
+static const char Binormal3bvEXT_names[] =
"p\0" /* Parameter signature */
"glBinormal3bvEXT\0"
"";
#endif
#if defined(need_GL_EXT_texture_object)
-static const char IsTexture_names[] =
+static const char IsTexture_names[] =
"i\0" /* Parameter signature */
"glIsTexture\0"
"glIsTextureEXT\0"
@@ -2877,14 +2905,14 @@ static const char IsTexture_names[] =
#endif
#if defined(need_GL_EXT_vertex_weighting)
-static const char VertexWeightfvEXT_names[] =
+static const char VertexWeightfvEXT_names[] =
"p\0" /* Parameter signature */
"glVertexWeightfvEXT\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1dARB_names[] =
+static const char VertexAttrib1dARB_names[] =
"id\0" /* Parameter signature */
"glVertexAttrib1d\0"
"glVertexAttrib1dARB\0"
@@ -2892,14 +2920,14 @@ static const char VertexAttrib1dARB_names[] =
#endif
#if defined(need_GL_HP_image_transform)
-static const char ImageTransformParameterivHP_names[] =
+static const char ImageTransformParameterivHP_names[] =
"iip\0" /* Parameter signature */
"glImageTransformParameterivHP\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char DeleteQueriesARB_names[] =
+static const char DeleteQueriesARB_names[] =
"ip\0" /* Parameter signature */
"glDeleteQueries\0"
"glDeleteQueriesARB\0"
@@ -2907,28 +2935,28 @@ static const char DeleteQueriesARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4ubVertex2fSUN_names[] =
+static const char Color4ubVertex2fSUN_names[] =
"iiiiff\0" /* Parameter signature */
"glColor4ubVertex2fSUN\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentColorMaterialSGIX_names[] =
+static const char FragmentColorMaterialSGIX_names[] =
"ii\0" /* Parameter signature */
"glFragmentColorMaterialSGIX\0"
"";
#endif
#if defined(need_GL_ARB_matrix_palette)
-static const char CurrentPaletteMatrixARB_names[] =
+static const char CurrentPaletteMatrixARB_names[] =
"i\0" /* Parameter signature */
"glCurrentPaletteMatrixARB\0"
"";
#endif
#if defined(need_GL_SGIS_multisample) || defined(need_GL_EXT_multisample)
-static const char SamplePatternSGIS_names[] =
+static const char SamplePatternSGIS_names[] =
"i\0" /* Parameter signature */
"glSamplePatternSGIS\0"
"glSamplePatternEXT\0"
@@ -2936,7 +2964,7 @@ static const char SamplePatternSGIS_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char IsQueryARB_names[] =
+static const char IsQueryARB_names[] =
"i\0" /* Parameter signature */
"glIsQuery\0"
"glIsQueryARB\0"
@@ -2944,14 +2972,14 @@ static const char IsQueryARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor4ubVertex3fSUN_names[] =
+static const char ReplacementCodeuiColor4ubVertex3fSUN_names[] =
"iiiiifff\0" /* Parameter signature */
"glReplacementCodeuiColor4ubVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4usvARB_names[] =
+static const char VertexAttrib4usvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4usv\0"
"glVertexAttrib4usvARB\0"
@@ -2959,7 +2987,7 @@ static const char VertexAttrib4usvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char LinkProgramARB_names[] =
+static const char LinkProgramARB_names[] =
"i\0" /* Parameter signature */
"glLinkProgram\0"
"glLinkProgramARB\0"
@@ -2967,14 +2995,14 @@ static const char LinkProgramARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib2fNV_names[] =
+static const char VertexAttrib2fNV_names[] =
"iff\0" /* Parameter signature */
"glVertexAttrib2fNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char ShaderSourceARB_names[] =
+static const char ShaderSourceARB_names[] =
"iipp\0" /* Parameter signature */
"glShaderSource\0"
"glShaderSourceARB\0"
@@ -2982,14 +3010,14 @@ static const char ShaderSourceARB_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentMaterialiSGIX_names[] =
+static const char FragmentMaterialiSGIX_names[] =
"iii\0" /* Parameter signature */
"glFragmentMaterialiSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3svARB_names[] =
+static const char VertexAttrib3svARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3sv\0"
"glVertexAttrib3svARB\0"
@@ -2997,7 +3025,7 @@ static const char VertexAttrib3svARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexSubImage3DARB_names[] =
+static const char CompressedTexSubImage3DARB_names[] =
"iiiiiiiiiip\0" /* Parameter signature */
"glCompressedTexSubImage3D\0"
"glCompressedTexSubImage3DARB\0"
@@ -3005,7 +3033,7 @@ static const char CompressedTexSubImage3DARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2ivMESA_names[] =
+static const char WindowPos2ivMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos2iv\0"
"glWindowPos2ivARB\0"
@@ -3014,7 +3042,7 @@ static const char WindowPos2ivMESA_names[] =
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char IsFramebufferEXT_names[] =
+static const char IsFramebufferEXT_names[] =
"i\0" /* Parameter signature */
"glIsFramebuffer\0"
"glIsFramebufferEXT\0"
@@ -3022,7 +3050,7 @@ static const char IsFramebufferEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform4ivARB_names[] =
+static const char Uniform4ivARB_names[] =
"iip\0" /* Parameter signature */
"glUniform4iv\0"
"glUniform4ivARB\0"
@@ -3030,7 +3058,7 @@ static const char Uniform4ivARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char GetVertexAttribdvARB_names[] =
+static const char GetVertexAttribdvARB_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribdv\0"
"glGetVertexAttribdvARB\0"
@@ -3038,14 +3066,14 @@ static const char GetVertexAttribdvARB_names[] =
#endif
#if defined(need_GL_ATI_envmap_bumpmap)
-static const char TexBumpParameterivATI_names[] =
+static const char TexBumpParameterivATI_names[] =
"ip\0" /* Parameter signature */
"glTexBumpParameterivATI\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char GetSeparableFilter_names[] =
+static const char GetSeparableFilter_names[] =
"iiippp\0" /* Parameter signature */
"glGetSeparableFilter\0"
"glGetSeparableFilterEXT\0"
@@ -3053,49 +3081,49 @@ static const char GetSeparableFilter_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3dEXT_names[] =
+static const char Binormal3dEXT_names[] =
"ddd\0" /* Parameter signature */
"glBinormal3dEXT\0"
"";
#endif
#if defined(need_GL_SGIX_sprite)
-static const char SpriteParameteriSGIX_names[] =
+static const char SpriteParameteriSGIX_names[] =
"ii\0" /* Parameter signature */
"glSpriteParameteriSGIX\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char RequestResidentProgramsNV_names[] =
+static const char RequestResidentProgramsNV_names[] =
"ip\0" /* Parameter signature */
"glRequestResidentProgramsNV\0"
"";
#endif
#if defined(need_GL_SGIX_tag_sample_buffer)
-static const char TagSampleBufferSGIX_names[] =
+static const char TagSampleBufferSGIX_names[] =
"\0" /* Parameter signature */
"glTagSampleBufferSGIX\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeusSUN_names[] =
+static const char ReplacementCodeusSUN_names[] =
"i\0" /* Parameter signature */
"glReplacementCodeusSUN\0"
"";
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char ListParameterivSGIX_names[] =
+static const char ListParameterivSGIX_names[] =
"iip\0" /* Parameter signature */
"glListParameterivSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_multi_draw_arrays)
-static const char MultiDrawElementsEXT_names[] =
+static const char MultiDrawElementsEXT_names[] =
"ipipi\0" /* Parameter signature */
"glMultiDrawElements\0"
"glMultiDrawElementsEXT\0"
@@ -3103,7 +3131,7 @@ static const char MultiDrawElementsEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform1ivARB_names[] =
+static const char Uniform1ivARB_names[] =
"iip\0" /* Parameter signature */
"glUniform1iv\0"
"glUniform1ivARB\0"
@@ -3111,7 +3139,7 @@ static const char Uniform1ivARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2sMESA_names[] =
+static const char WindowPos2sMESA_names[] =
"ii\0" /* Parameter signature */
"glWindowPos2s\0"
"glWindowPos2sARB\0"
@@ -3120,14 +3148,14 @@ static const char WindowPos2sMESA_names[] =
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightusvARB_names[] =
+static const char WeightusvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightusvARB\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord)
-static const char FogCoordPointerEXT_names[] =
+static const char FogCoordPointerEXT_names[] =
"iip\0" /* Parameter signature */
"glFogCoordPointer\0"
"glFogCoordPointerEXT\0"
@@ -3135,14 +3163,14 @@ static const char FogCoordPointerEXT_names[] =
#endif
#if defined(need_GL_EXT_index_material)
-static const char IndexMaterialEXT_names[] =
+static const char IndexMaterialEXT_names[] =
"ii\0" /* Parameter signature */
"glIndexMaterialEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3ubvEXT_names[] =
+static const char SecondaryColor3ubvEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3ubv\0"
"glSecondaryColor3ubvEXT\0"
@@ -3150,7 +3178,7 @@ static const char SecondaryColor3ubvEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4dvARB_names[] =
+static const char VertexAttrib4dvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4dv\0"
"glVertexAttrib4dvARB\0"
@@ -3158,7 +3186,7 @@ static const char VertexAttrib4dvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_shader)
-static const char BindAttribLocationARB_names[] =
+static const char BindAttribLocationARB_names[] =
"iip\0" /* Parameter signature */
"glBindAttribLocation\0"
"glBindAttribLocationARB\0"
@@ -3166,7 +3194,7 @@ static const char BindAttribLocationARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2dARB_names[] =
+static const char MultiTexCoord2dARB_names[] =
"idd\0" /* Parameter signature */
"glMultiTexCoord2d\0"
"glMultiTexCoord2dARB\0"
@@ -3174,35 +3202,35 @@ static const char MultiTexCoord2dARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char ExecuteProgramNV_names[] =
+static const char ExecuteProgramNV_names[] =
"iip\0" /* Parameter signature */
"glExecuteProgramNV\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char LightEnviSGIX_names[] =
+static const char LightEnviSGIX_names[] =
"ii\0" /* Parameter signature */
"glLightEnviSGIX\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeuiSUN_names[] =
+static const char ReplacementCodeuiSUN_names[] =
"i\0" /* Parameter signature */
"glReplacementCodeuiSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribPointerNV_names[] =
+static const char VertexAttribPointerNV_names[] =
"iiiip\0" /* Parameter signature */
"glVertexAttribPointerNV\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char GetFramebufferAttachmentParameterivEXT_names[] =
+static const char GetFramebufferAttachmentParameterivEXT_names[] =
"iiip\0" /* Parameter signature */
"glGetFramebufferAttachmentParameteriv\0"
"glGetFramebufferAttachmentParameterivEXT\0"
@@ -3210,14 +3238,14 @@ static const char GetFramebufferAttachmentParameterivEXT_names[] =
#endif
#if defined(need_GL_EXT_pixel_transform)
-static const char PixelTransformParameterfEXT_names[] =
+static const char PixelTransformParameterfEXT_names[] =
"iif\0" /* Parameter signature */
"glPixelTransformParameterfEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4dvARB_names[] =
+static const char MultiTexCoord4dvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord4dv\0"
"glMultiTexCoord4dvARB\0"
@@ -3225,21 +3253,21 @@ static const char MultiTexCoord4dvARB_names[] =
#endif
#if defined(need_GL_EXT_pixel_transform)
-static const char PixelTransformParameteriEXT_names[] =
+static const char PixelTransformParameteriEXT_names[] =
"iii\0" /* Parameter signature */
"glPixelTransformParameteriEXT\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor4ubVertex3fSUN_names[] =
+static const char TexCoord2fColor4ubVertex3fSUN_names[] =
"ffiiiifff\0" /* Parameter signature */
"glTexCoord2fColor4ubVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform1iARB_names[] =
+static const char Uniform1iARB_names[] =
"ii\0" /* Parameter signature */
"glUniform1i\0"
"glUniform1iARB\0"
@@ -3247,7 +3275,7 @@ static const char Uniform1iARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttribPointerARB_names[] =
+static const char VertexAttribPointerARB_names[] =
"iiiiip\0" /* Parameter signature */
"glVertexAttribPointer\0"
"glVertexAttribPointerARB\0"
@@ -3255,14 +3283,14 @@ static const char VertexAttribPointerARB_names[] =
#endif
#if defined(need_GL_SGIS_sharpen_texture)
-static const char SharpenTexFuncSGIS_names[] =
+static const char SharpenTexFuncSGIS_names[] =
"iip\0" /* Parameter signature */
"glSharpenTexFuncSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4fvARB_names[] =
+static const char MultiTexCoord4fvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord4fv\0"
"glMultiTexCoord4fvARB\0"
@@ -3270,56 +3298,56 @@ static const char MultiTexCoord4fvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix2x3fv_names[] =
+static const char UniformMatrix2x3fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix2x3fv\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char TrackMatrixNV_names[] =
+static const char TrackMatrixNV_names[] =
"iiii\0" /* Parameter signature */
"glTrackMatrixNV\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerParameteriNV_names[] =
+static const char CombinerParameteriNV_names[] =
"ii\0" /* Parameter signature */
"glCombinerParameteriNV\0"
"";
#endif
#if defined(need_GL_SGIX_async)
-static const char DeleteAsyncMarkersSGIX_names[] =
+static const char DeleteAsyncMarkersSGIX_names[] =
"ii\0" /* Parameter signature */
"glDeleteAsyncMarkersSGIX\0"
"";
#endif
#if defined(need_GL_SGIX_async)
-static const char IsAsyncMarkerSGIX_names[] =
+static const char IsAsyncMarkerSGIX_names[] =
"i\0" /* Parameter signature */
"glIsAsyncMarkerSGIX\0"
"";
#endif
#if defined(need_GL_SGIX_framezoom)
-static const char FrameZoomSGIX_names[] =
+static const char FrameZoomSGIX_names[] =
"i\0" /* Parameter signature */
"glFrameZoomSGIX\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Normal3fVertex3fvSUN_names[] =
+static const char Normal3fVertex3fvSUN_names[] =
"pp\0" /* Parameter signature */
"glNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NsvARB_names[] =
+static const char VertexAttrib4NsvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Nsv\0"
"glVertexAttrib4NsvARB\0"
@@ -3327,15 +3355,22 @@ static const char VertexAttrib4NsvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3fvARB_names[] =
+static const char VertexAttrib3fvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3fv\0"
"glVertexAttrib3fvARB\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char GetSynciv_names[] =
+ "iiipp\0" /* Parameter signature */
+ "glGetSynciv\0"
+ "";
+#endif
+
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char DeleteFramebuffersEXT_names[] =
+static const char DeleteFramebuffersEXT_names[] =
"ip\0" /* Parameter signature */
"glDeleteFramebuffers\0"
"glDeleteFramebuffersEXT\0"
@@ -3343,14 +3378,14 @@ static const char DeleteFramebuffersEXT_names[] =
#endif
#if defined(need_GL_SUN_global_alpha)
-static const char GlobalAlphaFactorsSUN_names[] =
+static const char GlobalAlphaFactorsSUN_names[] =
"i\0" /* Parameter signature */
"glGlobalAlphaFactorsSUN\0"
"";
#endif
#if defined(need_GL_EXT_texture3D)
-static const char TexSubImage3D_names[] =
+static const char TexSubImage3D_names[] =
"iiiiiiiiiip\0" /* Parameter signature */
"glTexSubImage3D\0"
"glTexSubImage3DEXT\0"
@@ -3358,14 +3393,14 @@ static const char TexSubImage3D_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3fEXT_names[] =
+static const char Tangent3fEXT_names[] =
"fff\0" /* Parameter signature */
"glTangent3fEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3uivEXT_names[] =
+static const char SecondaryColor3uivEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3uiv\0"
"glSecondaryColor3uivEXT\0"
@@ -3373,35 +3408,35 @@ static const char SecondaryColor3uivEXT_names[] =
#endif
#if defined(need_GL_ARB_matrix_palette)
-static const char MatrixIndexubvARB_names[] =
+static const char MatrixIndexubvARB_names[] =
"ip\0" /* Parameter signature */
"glMatrixIndexubvARB\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char Color4fNormal3fVertex3fSUN_names[] =
+static const char Color4fNormal3fVertex3fSUN_names[] =
"ffffffffff\0" /* Parameter signature */
"glColor4fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char PixelTexGenParameterfSGIS_names[] =
+static const char PixelTexGenParameterfSGIS_names[] =
"if\0" /* Parameter signature */
"glPixelTexGenParameterfSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char CreateShader_names[] =
+static const char CreateShader_names[] =
"i\0" /* Parameter signature */
"glCreateShader\0"
"";
#endif
#if defined(need_GL_SGI_color_table) || defined(need_GL_EXT_paletted_texture)
-static const char GetColorTableParameterfv_names[] =
+static const char GetColorTableParameterfv_names[] =
"iip\0" /* Parameter signature */
"glGetColorTableParameterfv\0"
"glGetColorTableParameterfvSGI\0"
@@ -3410,14 +3445,14 @@ static const char GetColorTableParameterfv_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightModelfvSGIX_names[] =
+static const char FragmentLightModelfvSGIX_names[] =
"ip\0" /* Parameter signature */
"glFragmentLightModelfvSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord3fARB_names[] =
+static const char MultiTexCoord3fARB_names[] =
"ifff\0" /* Parameter signature */
"glMultiTexCoord3f\0"
"glMultiTexCoord3fARB\0"
@@ -3425,14 +3460,14 @@ static const char MultiTexCoord3fARB_names[] =
#endif
#if defined(need_GL_SGIS_pixel_texture)
-static const char GetPixelTexGenParameterfvSGIS_names[] =
+static const char GetPixelTexGenParameterfvSGIS_names[] =
"ip\0" /* Parameter signature */
"glGetPixelTexGenParameterfvSGIS\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char GenFramebuffersEXT_names[] =
+static const char GenFramebuffersEXT_names[] =
"ip\0" /* Parameter signature */
"glGenFramebuffers\0"
"glGenFramebuffersEXT\0"
@@ -3440,14 +3475,14 @@ static const char GenFramebuffersEXT_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetProgramParameterdvNV_names[] =
+static const char GetProgramParameterdvNV_names[] =
"iiip\0" /* Parameter signature */
"glGetProgramParameterdvNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_array_object) || defined(need_GL_APPLE_vertex_array_object)
-static const char IsVertexArrayAPPLE_names[] =
+static const char IsVertexArrayAPPLE_names[] =
"i\0" /* Parameter signature */
"glIsVertexArray\0"
"glIsVertexArrayAPPLE\0"
@@ -3455,21 +3490,21 @@ static const char IsVertexArrayAPPLE_names[] =
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightfvSGIX_names[] =
+static const char FragmentLightfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glFragmentLightfvSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char DetachShader_names[] =
+static const char DetachShader_names[] =
"ii\0" /* Parameter signature */
"glDetachShader\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NubARB_names[] =
+static const char VertexAttrib4NubARB_names[] =
"iiiii\0" /* Parameter signature */
"glVertexAttrib4Nub\0"
"glVertexAttrib4NubARB\0"
@@ -3477,28 +3512,28 @@ static const char VertexAttrib4NubARB_names[] =
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramEnvParameterfvARB_names[] =
+static const char GetProgramEnvParameterfvARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramEnvParameterfvARB\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetTrackMatrixivNV_names[] =
+static const char GetTrackMatrixivNV_names[] =
"iiip\0" /* Parameter signature */
"glGetTrackMatrixivNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3svNV_names[] =
+static const char VertexAttrib3svNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3svNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform4fvARB_names[] =
+static const char Uniform4fvARB_names[] =
"iip\0" /* Parameter signature */
"glUniform4fv\0"
"glUniform4fvARB\0"
@@ -3506,7 +3541,7 @@ static const char Uniform4fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix)
-static const char MultTransposeMatrixfARB_names[] =
+static const char MultTransposeMatrixfARB_names[] =
"p\0" /* Parameter signature */
"glMultTransposeMatrixf\0"
"glMultTransposeMatrixfARB\0"
@@ -3514,14 +3549,14 @@ static const char MultTransposeMatrixfARB_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char ColorFragmentOp1ATI_names[] =
+static const char ColorFragmentOp1ATI_names[] =
"iiiiiii\0" /* Parameter signature */
"glColorFragmentOp1ATI\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char GetUniformfvARB_names[] =
+static const char GetUniformfvARB_names[] =
"iip\0" /* Parameter signature */
"glGetUniformfv\0"
"glGetUniformfvARB\0"
@@ -3529,28 +3564,28 @@ static const char GetUniformfvARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_names[] =
+static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_names[] =
"iffffffffffff\0" /* Parameter signature */
"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char DetachObjectARB_names[] =
+static const char DetachObjectARB_names[] =
"ii\0" /* Parameter signature */
"glDetachObjectARB\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char VertexBlendARB_names[] =
+static const char VertexBlendARB_names[] =
"i\0" /* Parameter signature */
"glVertexBlendARB\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3iMESA_names[] =
+static const char WindowPos3iMESA_names[] =
"iii\0" /* Parameter signature */
"glWindowPos3i\0"
"glWindowPos3iARB\0"
@@ -3559,7 +3594,7 @@ static const char WindowPos3iMESA_names[] =
#endif
#if defined(need_GL_EXT_convolution)
-static const char SeparableFilter2D_names[] =
+static const char SeparableFilter2D_names[] =
"iiiiiipp\0" /* Parameter signature */
"glSeparableFilter2D\0"
"glSeparableFilter2DEXT\0"
@@ -3567,14 +3602,14 @@ static const char SeparableFilter2D_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor4ubVertex3fvSUN_names[] =
+static const char ReplacementCodeuiColor4ubVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glReplacementCodeuiColor4ubVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char CompressedTexImage2DARB_names[] =
+static const char CompressedTexImage2DARB_names[] =
"iiiiiiip\0" /* Parameter signature */
"glCompressedTexImage2D\0"
"glCompressedTexImage2DARB\0"
@@ -3582,7 +3617,7 @@ static const char CompressedTexImage2DARB_names[] =
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char ArrayElement_names[] =
+static const char ArrayElement_names[] =
"i\0" /* Parameter signature */
"glArrayElement\0"
"glArrayElementEXT\0"
@@ -3590,35 +3625,35 @@ static const char ArrayElement_names[] =
#endif
#if defined(need_GL_EXT_depth_bounds_test)
-static const char DepthBoundsEXT_names[] =
+static const char DepthBoundsEXT_names[] =
"dd\0" /* Parameter signature */
"glDepthBoundsEXT\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char ProgramParameters4fvNV_names[] =
+static const char ProgramParameters4fvNV_names[] =
"iiip\0" /* Parameter signature */
"glProgramParameters4fvNV\0"
"";
#endif
#if defined(need_GL_SGIX_polynomial_ffd)
-static const char DeformationMap3fSGIX_names[] =
+static const char DeformationMap3fSGIX_names[] =
"iffiiffiiffiip\0" /* Parameter signature */
"glDeformationMap3fSGIX\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetProgramivNV_names[] =
+static const char GetProgramivNV_names[] =
"iip\0" /* Parameter signature */
"glGetProgramivNV\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetMinmaxParameteriv_names[] =
+static const char GetMinmaxParameteriv_names[] =
"iip\0" /* Parameter signature */
"glGetMinmaxParameteriv\0"
"glGetMinmaxParameterivEXT\0"
@@ -3626,7 +3661,7 @@ static const char GetMinmaxParameteriv_names[] =
#endif
#if defined(need_GL_EXT_copy_texture)
-static const char CopyTexImage1D_names[] =
+static const char CopyTexImage1D_names[] =
"iiiiiii\0" /* Parameter signature */
"glCopyTexImage1D\0"
"glCopyTexImage1DEXT\0"
@@ -3634,42 +3669,42 @@ static const char CopyTexImage1D_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char AlphaFragmentOp3ATI_names[] =
+static const char AlphaFragmentOp3ATI_names[] =
"iiiiiiiiiiii\0" /* Parameter signature */
"glAlphaFragmentOp3ATI\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetVertexAttribdvNV_names[] =
+static const char GetVertexAttribdvNV_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribdvNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3fvNV_names[] =
+static const char VertexAttrib3fvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3fvNV\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetFinalCombinerInputParameterivNV_names[] =
+static const char GetFinalCombinerInputParameterivNV_names[] =
"iip\0" /* Parameter signature */
"glGetFinalCombinerInputParameterivNV\0"
"";
#endif
#if defined(need_GL_NV_evaluators)
-static const char GetMapParameterivNV_names[] =
+static const char GetMapParameterivNV_names[] =
"iip\0" /* Parameter signature */
"glGetMapParameterivNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform4iARB_names[] =
+static const char Uniform4iARB_names[] =
"iiiii\0" /* Parameter signature */
"glUniform4i\0"
"glUniform4iARB\0"
@@ -3677,7 +3712,7 @@ static const char Uniform4iARB_names[] =
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionParameteri_names[] =
+static const char ConvolutionParameteri_names[] =
"iii\0" /* Parameter signature */
"glConvolutionParameteri\0"
"glConvolutionParameteriEXT\0"
@@ -3685,14 +3720,14 @@ static const char ConvolutionParameteri_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3sEXT_names[] =
+static const char Binormal3sEXT_names[] =
"iii\0" /* Parameter signature */
"glBinormal3sEXT\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char ConvolutionParameterf_names[] =
+static const char ConvolutionParameterf_names[] =
"iif\0" /* Parameter signature */
"glConvolutionParameterf\0"
"glConvolutionParameterfEXT\0"
@@ -3700,7 +3735,7 @@ static const char ConvolutionParameterf_names[] =
#endif
#if defined(need_GL_SGI_color_table) || defined(need_GL_EXT_paletted_texture)
-static const char GetColorTableParameteriv_names[] =
+static const char GetColorTableParameteriv_names[] =
"iip\0" /* Parameter signature */
"glGetColorTableParameteriv\0"
"glGetColorTableParameterivSGI\0"
@@ -3709,7 +3744,7 @@ static const char GetColorTableParameteriv_names[] =
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char ProgramEnvParameter4dvARB_names[] =
+static const char ProgramEnvParameter4dvARB_names[] =
"iip\0" /* Parameter signature */
"glProgramEnvParameter4dvARB\0"
"glProgramParameter4dvNV\0"
@@ -3717,14 +3752,14 @@ static const char ProgramEnvParameter4dvARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs2fvNV_names[] =
+static const char VertexAttribs2fvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs2fvNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char UseProgramObjectARB_names[] =
+static const char UseProgramObjectARB_names[] =
"i\0" /* Parameter signature */
"glUseProgram\0"
"glUseProgramObjectARB\0"
@@ -3732,42 +3767,42 @@ static const char UseProgramObjectARB_names[] =
#endif
#if defined(need_GL_NV_evaluators)
-static const char GetMapParameterfvNV_names[] =
+static const char GetMapParameterfvNV_names[] =
"iip\0" /* Parameter signature */
"glGetMapParameterfvNV\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char PassTexCoordATI_names[] =
+static const char PassTexCoordATI_names[] =
"iii\0" /* Parameter signature */
"glPassTexCoordATI\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char DeleteProgram_names[] =
+static const char DeleteProgram_names[] =
"i\0" /* Parameter signature */
"glDeleteProgram\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3ivEXT_names[] =
+static const char Tangent3ivEXT_names[] =
"p\0" /* Parameter signature */
"glTangent3ivEXT\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3dEXT_names[] =
+static const char Tangent3dEXT_names[] =
"ddd\0" /* Parameter signature */
"glTangent3dEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3dvEXT_names[] =
+static const char SecondaryColor3dvEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3dv\0"
"glSecondaryColor3dvEXT\0"
@@ -3775,7 +3810,7 @@ static const char SecondaryColor3dvEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_multi_draw_arrays)
-static const char MultiDrawArraysEXT_names[] =
+static const char MultiDrawArraysEXT_names[] =
"ippi\0" /* Parameter signature */
"glMultiDrawArrays\0"
"glMultiDrawArraysEXT\0"
@@ -3783,7 +3818,7 @@ static const char MultiDrawArraysEXT_names[] =
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char BindRenderbufferEXT_names[] =
+static const char BindRenderbufferEXT_names[] =
"ii\0" /* Parameter signature */
"glBindRenderbuffer\0"
"glBindRenderbufferEXT\0"
@@ -3791,7 +3826,7 @@ static const char BindRenderbufferEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4dARB_names[] =
+static const char MultiTexCoord4dARB_names[] =
"idddd\0" /* Parameter signature */
"glMultiTexCoord4d\0"
"glMultiTexCoord4dARB\0"
@@ -3799,7 +3834,7 @@ static const char MultiTexCoord4dARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3usEXT_names[] =
+static const char SecondaryColor3usEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3us\0"
"glSecondaryColor3usEXT\0"
@@ -3807,14 +3842,14 @@ static const char SecondaryColor3usEXT_names[] =
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char ProgramLocalParameter4fvARB_names[] =
+static const char ProgramLocalParameter4fvARB_names[] =
"iip\0" /* Parameter signature */
"glProgramLocalParameter4fvARB\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char DeleteProgramsNV_names[] =
+static const char DeleteProgramsNV_names[] =
"ip\0" /* Parameter signature */
"glDeleteProgramsARB\0"
"glDeleteProgramsNV\0"
@@ -3822,7 +3857,7 @@ static const char DeleteProgramsNV_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1sARB_names[] =
+static const char MultiTexCoord1sARB_names[] =
"ii\0" /* Parameter signature */
"glMultiTexCoord1s\0"
"glMultiTexCoord1sARB\0"
@@ -3830,14 +3865,14 @@ static const char MultiTexCoord1sARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiColor3fVertex3fSUN_names[] =
+static const char ReplacementCodeuiColor3fVertex3fSUN_names[] =
"iffffff\0" /* Parameter signature */
"glReplacementCodeuiColor3fVertex3fSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char GetVertexAttribPointervNV_names[] =
+static const char GetVertexAttribPointervNV_names[] =
"iip\0" /* Parameter signature */
"glGetVertexAttribPointerv\0"
"glGetVertexAttribPointervARB\0"
@@ -3846,7 +3881,7 @@ static const char GetVertexAttribPointervNV_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1dvARB_names[] =
+static const char MultiTexCoord1dvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord1dv\0"
"glMultiTexCoord1dvARB\0"
@@ -3854,7 +3889,7 @@ static const char MultiTexCoord1dvARB_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform2iARB_names[] =
+static const char Uniform2iARB_names[] =
"iii\0" /* Parameter signature */
"glUniform2i\0"
"glUniform2iARB\0"
@@ -3862,21 +3897,21 @@ static const char Uniform2iARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char GetProgramStringNV_names[] =
+static const char GetProgramStringNV_names[] =
"iip\0" /* Parameter signature */
"glGetProgramStringNV\0"
"";
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char ColorPointerEXT_names[] =
+static const char ColorPointerEXT_names[] =
"iiiip\0" /* Parameter signature */
"glColorPointerEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char MapBufferARB_names[] =
+static const char MapBufferARB_names[] =
"ii\0" /* Parameter signature */
"glMapBuffer\0"
"glMapBufferARB\0"
@@ -3884,35 +3919,35 @@ static const char MapBufferARB_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3svEXT_names[] =
+static const char Binormal3svEXT_names[] =
"p\0" /* Parameter signature */
"glBinormal3svEXT\0"
"";
#endif
#if defined(need_GL_EXT_light_texture)
-static const char ApplyTextureEXT_names[] =
+static const char ApplyTextureEXT_names[] =
"i\0" /* Parameter signature */
"glApplyTextureEXT\0"
"";
#endif
#if defined(need_GL_EXT_light_texture)
-static const char TextureMaterialEXT_names[] =
+static const char TextureMaterialEXT_names[] =
"ii\0" /* Parameter signature */
"glTextureMaterialEXT\0"
"";
#endif
#if defined(need_GL_EXT_light_texture)
-static const char TextureLightEXT_names[] =
+static const char TextureLightEXT_names[] =
"i\0" /* Parameter signature */
"glTextureLightEXT\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char ResetMinmax_names[] =
+static const char ResetMinmax_names[] =
"i\0" /* Parameter signature */
"glResetMinmax\0"
"glResetMinmaxEXT\0"
@@ -3920,21 +3955,21 @@ static const char ResetMinmax_names[] =
#endif
#if defined(need_GL_SGIX_sprite)
-static const char SpriteParameterfSGIX_names[] =
+static const char SpriteParameterfSGIX_names[] =
"if\0" /* Parameter signature */
"glSpriteParameterfSGIX\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4sNV_names[] =
+static const char VertexAttrib4sNV_names[] =
"iiiii\0" /* Parameter signature */
"glVertexAttrib4sNV\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char GetConvolutionParameterfv_names[] =
+static const char GetConvolutionParameterfv_names[] =
"iip\0" /* Parameter signature */
"glGetConvolutionParameterfv\0"
"glGetConvolutionParameterfvEXT\0"
@@ -3942,21 +3977,21 @@ static const char GetConvolutionParameterfv_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs4dvNV_names[] =
+static const char VertexAttribs4dvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs4dvNV\0"
"";
#endif
#if defined(need_GL_IBM_multimode_draw_arrays)
-static const char MultiModeDrawArraysIBM_names[] =
+static const char MultiModeDrawArraysIBM_names[] =
"pppii\0" /* Parameter signature */
"glMultiModeDrawArraysIBM\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4dARB_names[] =
+static const char VertexAttrib4dARB_names[] =
"idddd\0" /* Parameter signature */
"glVertexAttrib4d\0"
"glVertexAttrib4dARB\0"
@@ -3964,35 +3999,35 @@ static const char VertexAttrib4dARB_names[] =
#endif
#if defined(need_GL_ATI_envmap_bumpmap)
-static const char GetTexBumpParameterfvATI_names[] =
+static const char GetTexBumpParameterfvATI_names[] =
"ip\0" /* Parameter signature */
"glGetTexBumpParameterfvATI\0"
"";
#endif
#if defined(need_GL_NV_fragment_program)
-static const char ProgramNamedParameter4dNV_names[] =
+static const char ProgramNamedParameter4dNV_names[] =
"iipdddd\0" /* Parameter signature */
"glProgramNamedParameter4dNV\0"
"";
#endif
#if defined(need_GL_EXT_vertex_weighting)
-static const char VertexWeightfEXT_names[] =
+static const char VertexWeightfEXT_names[] =
"f\0" /* Parameter signature */
"glVertexWeightfEXT\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3fEXT_names[] =
+static const char Binormal3fEXT_names[] =
"fff\0" /* Parameter signature */
"glBinormal3fEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord)
-static const char FogCoordfvEXT_names[] =
+static const char FogCoordfvEXT_names[] =
"p\0" /* Parameter signature */
"glFogCoordfv\0"
"glFogCoordfvEXT\0"
@@ -4000,7 +4035,7 @@ static const char FogCoordfvEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1ivARB_names[] =
+static const char MultiTexCoord1ivARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord1iv\0"
"glMultiTexCoord1ivARB\0"
@@ -4008,7 +4043,7 @@ static const char MultiTexCoord1ivARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3ubEXT_names[] =
+static const char SecondaryColor3ubEXT_names[] =
"iii\0" /* Parameter signature */
"glSecondaryColor3ub\0"
"glSecondaryColor3ubEXT\0"
@@ -4016,7 +4051,7 @@ static const char SecondaryColor3ubEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2ivARB_names[] =
+static const char MultiTexCoord2ivARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord2iv\0"
"glMultiTexCoord2ivARB\0"
@@ -4024,14 +4059,14 @@ static const char MultiTexCoord2ivARB_names[] =
#endif
#if defined(need_GL_SGIS_fog_function)
-static const char FogFuncSGIS_names[] =
+static const char FogFuncSGIS_names[] =
"ip\0" /* Parameter signature */
"glFogFuncSGIS\0"
"";
#endif
#if defined(need_GL_EXT_copy_texture)
-static const char CopyTexSubImage2D_names[] =
+static const char CopyTexSubImage2D_names[] =
"iiiiiiii\0" /* Parameter signature */
"glCopyTexSubImage2D\0"
"glCopyTexSubImage2DEXT\0"
@@ -4039,35 +4074,35 @@ static const char CopyTexSubImage2D_names[] =
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char GetObjectParameterivARB_names[] =
+static const char GetObjectParameterivARB_names[] =
"iip\0" /* Parameter signature */
"glGetObjectParameterivARB\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord4fVertex4fSUN_names[] =
+static const char TexCoord4fVertex4fSUN_names[] =
"ffffffff\0" /* Parameter signature */
"glTexCoord4fVertex4fSUN\0"
"";
#endif
#if defined(need_GL_APPLE_vertex_array_object)
-static const char BindVertexArrayAPPLE_names[] =
+static const char BindVertexArrayAPPLE_names[] =
"i\0" /* Parameter signature */
"glBindVertexArrayAPPLE\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramLocalParameterdvARB_names[] =
+static const char GetProgramLocalParameterdvARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramLocalParameterdvARB\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetHistogramParameteriv_names[] =
+static const char GetHistogramParameteriv_names[] =
"iip\0" /* Parameter signature */
"glGetHistogramParameteriv\0"
"glGetHistogramParameterivEXT\0"
@@ -4075,7 +4110,7 @@ static const char GetHistogramParameteriv_names[] =
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1iARB_names[] =
+static const char MultiTexCoord1iARB_names[] =
"ii\0" /* Parameter signature */
"glMultiTexCoord1i\0"
"glMultiTexCoord1iARB\0"
@@ -4083,7 +4118,7 @@ static const char MultiTexCoord1iARB_names[] =
#endif
#if defined(need_GL_EXT_convolution)
-static const char GetConvolutionFilter_names[] =
+static const char GetConvolutionFilter_names[] =
"iiip\0" /* Parameter signature */
"glGetConvolutionFilter\0"
"glGetConvolutionFilterEXT\0"
@@ -4091,14 +4126,14 @@ static const char GetConvolutionFilter_names[] =
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramivARB_names[] =
+static const char GetProgramivARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramivARB\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_blend_func_separate) || defined(need_GL_INGR_blend_func_separate)
-static const char BlendFuncSeparateEXT_names[] =
+static const char BlendFuncSeparateEXT_names[] =
"iiii\0" /* Parameter signature */
"glBlendFuncSeparate\0"
"glBlendFuncSeparateEXT\0"
@@ -4107,49 +4142,49 @@ static const char BlendFuncSeparateEXT_names[] =
#endif
#if defined(need_GL_ARB_map_buffer_range)
-static const char MapBufferRange_names[] =
+static const char MapBufferRange_names[] =
"iiii\0" /* Parameter signature */
"glMapBufferRange\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char ProgramParameters4dvNV_names[] =
+static const char ProgramParameters4dvNV_names[] =
"iiip\0" /* Parameter signature */
"glProgramParameters4dvNV\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord2fColor3fVertex3fvSUN_names[] =
+static const char TexCoord2fColor3fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glTexCoord2fColor3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3dvEXT_names[] =
+static const char Binormal3dvEXT_names[] =
"p\0" /* Parameter signature */
"glBinormal3dvEXT\0"
"";
#endif
#if defined(need_GL_NV_fence)
-static const char FinishFenceNV_names[] =
+static const char FinishFenceNV_names[] =
"i\0" /* Parameter signature */
"glFinishFenceNV\0"
"";
#endif
#if defined(need_GL_SGIS_fog_function)
-static const char GetFogFuncSGIS_names[] =
+static const char GetFogFuncSGIS_names[] =
"p\0" /* Parameter signature */
"glGetFogFuncSGIS\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char GetUniformLocationARB_names[] =
+static const char GetUniformLocationARB_names[] =
"ip\0" /* Parameter signature */
"glGetUniformLocation\0"
"glGetUniformLocationARB\0"
@@ -4157,7 +4192,7 @@ static const char GetUniformLocationARB_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3fEXT_names[] =
+static const char SecondaryColor3fEXT_names[] =
"fff\0" /* Parameter signature */
"glSecondaryColor3f\0"
"glSecondaryColor3fEXT\0"
@@ -4165,14 +4200,14 @@ static const char SecondaryColor3fEXT_names[] =
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerInputNV_names[] =
+static const char CombinerInputNV_names[] =
"iiiiii\0" /* Parameter signature */
"glCombinerInputNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib3sARB_names[] =
+static const char VertexAttrib3sARB_names[] =
"iiii\0" /* Parameter signature */
"glVertexAttrib3s\0"
"glVertexAttrib3sARB\0"
@@ -4180,49 +4215,49 @@ static const char VertexAttrib3sARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiNormal3fVertex3fvSUN_names[] =
+static const char ReplacementCodeuiNormal3fVertex3fvSUN_names[] =
"ppp\0" /* Parameter signature */
"glReplacementCodeuiNormal3fVertex3fvSUN\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char ProgramStringARB_names[] =
+static const char ProgramStringARB_names[] =
"iiip\0" /* Parameter signature */
"glProgramStringARB\0"
"";
#endif
#if defined(need_GL_SUN_vertex)
-static const char TexCoord4fVertex4fvSUN_names[] =
+static const char TexCoord4fVertex4fvSUN_names[] =
"pp\0" /* Parameter signature */
"glTexCoord4fVertex4fvSUN\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3sNV_names[] =
+static const char VertexAttrib3sNV_names[] =
"iiii\0" /* Parameter signature */
"glVertexAttrib3sNV\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1fNV_names[] =
+static const char VertexAttrib1fNV_names[] =
"if\0" /* Parameter signature */
"glVertexAttrib1fNV\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentLightfSGIX_names[] =
+static const char FragmentLightfSGIX_names[] =
"iif\0" /* Parameter signature */
"glFragmentLightfSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression)
-static const char GetCompressedTexImageARB_names[] =
+static const char GetCompressedTexImageARB_names[] =
"iip\0" /* Parameter signature */
"glGetCompressedTexImage\0"
"glGetCompressedTexImageARB\0"
@@ -4230,14 +4265,14 @@ static const char GetCompressedTexImageARB_names[] =
#endif
#if defined(need_GL_EXT_vertex_weighting)
-static const char VertexWeightPointerEXT_names[] =
+static const char VertexWeightPointerEXT_names[] =
"iiip\0" /* Parameter signature */
"glVertexWeightPointerEXT\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetHistogram_names[] =
+static const char GetHistogram_names[] =
"iiiip\0" /* Parameter signature */
"glGetHistogram\0"
"glGetHistogramEXT\0"
@@ -4245,21 +4280,21 @@ static const char GetHistogram_names[] =
#endif
#if defined(need_GL_EXT_stencil_two_side)
-static const char ActiveStencilFaceEXT_names[] =
+static const char ActiveStencilFaceEXT_names[] =
"i\0" /* Parameter signature */
"glActiveStencilFaceEXT\0"
"";
#endif
#if defined(need_GL_ATI_separate_stencil)
-static const char StencilFuncSeparateATI_names[] =
+static const char StencilFuncSeparateATI_names[] =
"iiii\0" /* Parameter signature */
"glStencilFuncSeparateATI\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char GetShaderSourceARB_names[] =
+static const char GetShaderSourceARB_names[] =
"iipp\0" /* Parameter signature */
"glGetShaderSource\0"
"glGetShaderSourceARB\0"
@@ -4267,28 +4302,28 @@ static const char GetShaderSourceARB_names[] =
#endif
#if defined(need_GL_SGIX_igloo_interface)
-static const char IglooInterfaceSGIX_names[] =
+static const char IglooInterfaceSGIX_names[] =
"ip\0" /* Parameter signature */
"glIglooInterfaceSGIX\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4dNV_names[] =
+static const char VertexAttrib4dNV_names[] =
"idddd\0" /* Parameter signature */
"glVertexAttrib4dNV\0"
"";
#endif
#if defined(need_GL_IBM_multimode_draw_arrays)
-static const char MultiModeDrawElementsIBM_names[] =
+static const char MultiModeDrawElementsIBM_names[] =
"ppipii\0" /* Parameter signature */
"glMultiModeDrawElementsIBM\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4svARB_names[] =
+static const char MultiTexCoord4svARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord4sv\0"
"glMultiTexCoord4svARB\0"
@@ -4296,7 +4331,7 @@ static const char MultiTexCoord4svARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query)
-static const char GenQueriesARB_names[] =
+static const char GenQueriesARB_names[] =
"ip\0" /* Parameter signature */
"glGenQueries\0"
"glGenQueriesARB\0"
@@ -4304,35 +4339,42 @@ static const char GenQueriesARB_names[] =
#endif
#if defined(need_GL_SUN_vertex)
-static const char ReplacementCodeuiVertex3fSUN_names[] =
+static const char ReplacementCodeuiVertex3fSUN_names[] =
"ifff\0" /* Parameter signature */
"glReplacementCodeuiVertex3fSUN\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3iEXT_names[] =
+static const char Tangent3iEXT_names[] =
"iii\0" /* Parameter signature */
"glTangent3iEXT\0"
"";
#endif
#if defined(need_GL_SUN_mesh_array)
-static const char DrawMeshArraysSUN_names[] =
+static const char DrawMeshArraysSUN_names[] =
"iiii\0" /* Parameter signature */
"glDrawMeshArraysSUN\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char IsSync_names[] =
+ "i\0" /* Parameter signature */
+ "glIsSync\0"
+ "";
+#endif
+
#if defined(need_GL_NV_evaluators)
-static const char GetMapControlPointsNV_names[] =
+static const char GetMapControlPointsNV_names[] =
"iiiiiip\0" /* Parameter signature */
"glGetMapControlPointsNV\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_draw_buffers) || defined(need_GL_ATI_draw_buffers)
-static const char DrawBuffersARB_names[] =
+static const char DrawBuffersARB_names[] =
"ip\0" /* Parameter signature */
"glDrawBuffers\0"
"glDrawBuffersARB\0"
@@ -4341,28 +4383,28 @@ static const char DrawBuffersARB_names[] =
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char ProgramLocalParameter4fARB_names[] =
+static const char ProgramLocalParameter4fARB_names[] =
"iiffff\0" /* Parameter signature */
"glProgramLocalParameter4fARB\0"
"";
#endif
#if defined(need_GL_SGIX_sprite)
-static const char SpriteParameterivSGIX_names[] =
+static const char SpriteParameterivSGIX_names[] =
"ip\0" /* Parameter signature */
"glSpriteParameterivSGIX\0"
"";
#endif
#if defined(need_GL_EXT_provoking_vertex)
-static const char ProvokingVertexEXT_names[] =
+static const char ProvokingVertexEXT_names[] =
"i\0" /* Parameter signature */
"glProvokingVertexEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord1fARB_names[] =
+static const char MultiTexCoord1fARB_names[] =
"if\0" /* Parameter signature */
"glMultiTexCoord1f\0"
"glMultiTexCoord1fARB\0"
@@ -4370,21 +4412,21 @@ static const char MultiTexCoord1fARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs4ubvNV_names[] =
+static const char VertexAttribs4ubvNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs4ubvNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightsvARB_names[] =
+static const char WeightsvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightsvARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_shader_objects)
-static const char Uniform1fvARB_names[] =
+static const char Uniform1fvARB_names[] =
"iip\0" /* Parameter signature */
"glUniform1fv\0"
"glUniform1fvARB\0"
@@ -4392,7 +4434,7 @@ static const char Uniform1fvARB_names[] =
#endif
#if defined(need_GL_EXT_copy_texture)
-static const char CopyTexSubImage1D_names[] =
+static const char CopyTexSubImage1D_names[] =
"iiiiii\0" /* Parameter signature */
"glCopyTexSubImage1D\0"
"glCopyTexSubImage1DEXT\0"
@@ -4400,7 +4442,7 @@ static const char CopyTexSubImage1D_names[] =
#endif
#if defined(need_GL_EXT_texture_object)
-static const char BindTexture_names[] =
+static const char BindTexture_names[] =
"ii\0" /* Parameter signature */
"glBindTexture\0"
"glBindTextureEXT\0"
@@ -4408,14 +4450,14 @@ static const char BindTexture_names[] =
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char BeginFragmentShaderATI_names[] =
+static const char BeginFragmentShaderATI_names[] =
"\0" /* Parameter signature */
"glBeginFragmentShaderATI\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord4fARB_names[] =
+static const char MultiTexCoord4fARB_names[] =
"iffff\0" /* Parameter signature */
"glMultiTexCoord4f\0"
"glMultiTexCoord4fARB\0"
@@ -4423,21 +4465,21 @@ static const char MultiTexCoord4fARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs3svNV_names[] =
+static const char VertexAttribs3svNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs3svNV\0"
"";
#endif
#if defined(need_GL_SUN_triangle_list)
-static const char ReplacementCodeuivSUN_names[] =
+static const char ReplacementCodeuivSUN_names[] =
"p\0" /* Parameter signature */
"glReplacementCodeuivSUN\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char EnableVertexAttribArrayARB_names[] =
+static const char EnableVertexAttribArrayARB_names[] =
"i\0" /* Parameter signature */
"glEnableVertexAttribArray\0"
"glEnableVertexAttribArrayARB\0"
@@ -4445,14 +4487,14 @@ static const char EnableVertexAttribArrayARB_names[] =
#endif
#if defined(need_GL_INTEL_parallel_arrays)
-static const char NormalPointervINTEL_names[] =
+static const char NormalPointervINTEL_names[] =
"ip\0" /* Parameter signature */
"glNormalPointervINTEL\0"
"";
#endif
#if defined(need_GL_EXT_convolution)
-static const char CopyConvolutionFilter2D_names[] =
+static const char CopyConvolutionFilter2D_names[] =
"iiiiii\0" /* Parameter signature */
"glCopyConvolutionFilter2D\0"
"glCopyConvolutionFilter2DEXT\0"
@@ -4460,7 +4502,7 @@ static const char CopyConvolutionFilter2D_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3ivMESA_names[] =
+static const char WindowPos3ivMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos3iv\0"
"glWindowPos3ivARB\0"
@@ -4469,14 +4511,14 @@ static const char WindowPos3ivMESA_names[] =
#endif
#if defined(need_GL_ARB_copy_buffer)
-static const char CopyBufferSubData_names[] =
+static const char CopyBufferSubData_names[] =
"iiiii\0" /* Parameter signature */
"glCopyBufferSubData\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char IsBufferARB_names[] =
+static const char IsBufferARB_names[] =
"i\0" /* Parameter signature */
"glIsBuffer\0"
"glIsBufferARB\0"
@@ -4484,14 +4526,14 @@ static const char IsBufferARB_names[] =
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4iMESA_names[] =
+static const char WindowPos4iMESA_names[] =
"iiii\0" /* Parameter signature */
"glWindowPos4iMESA\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4uivARB_names[] =
+static const char VertexAttrib4uivARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4uiv\0"
"glVertexAttrib4uivARB\0"
@@ -4499,35 +4541,35 @@ static const char VertexAttrib4uivARB_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3bvEXT_names[] =
+static const char Tangent3bvEXT_names[] =
"p\0" /* Parameter signature */
"glTangent3bvEXT\0"
"";
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix3x4fv_names[] =
+static const char UniformMatrix3x4fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix3x4fv\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3fvEXT_names[] =
+static const char Binormal3fvEXT_names[] =
"p\0" /* Parameter signature */
"glBinormal3fvEXT\0"
"";
#endif
#if defined(need_GL_INTEL_parallel_arrays)
-static const char TexCoordPointervINTEL_names[] =
+static const char TexCoordPointervINTEL_names[] =
"iip\0" /* Parameter signature */
"glTexCoordPointervINTEL\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char DeleteBuffersARB_names[] =
+static const char DeleteBuffersARB_names[] =
"ip\0" /* Parameter signature */
"glDeleteBuffers\0"
"glDeleteBuffersARB\0"
@@ -4535,21 +4577,21 @@ static const char DeleteBuffersARB_names[] =
#endif
#if defined(need_GL_MESA_window_pos)
-static const char WindowPos4fvMESA_names[] =
+static const char WindowPos4fvMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos4fvMESA\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1sNV_names[] =
+static const char VertexAttrib1sNV_names[] =
"ii\0" /* Parameter signature */
"glVertexAttrib1sNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color)
-static const char SecondaryColor3svEXT_names[] =
+static const char SecondaryColor3svEXT_names[] =
"p\0" /* Parameter signature */
"glSecondaryColor3sv\0"
"glSecondaryColor3svEXT\0"
@@ -4557,7 +4599,7 @@ static const char SecondaryColor3svEXT_names[] =
#endif
#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix)
-static const char LoadTransposeMatrixfARB_names[] =
+static const char LoadTransposeMatrixfARB_names[] =
"p\0" /* Parameter signature */
"glLoadTransposeMatrixf\0"
"glLoadTransposeMatrixfARB\0"
@@ -4565,7 +4607,7 @@ static const char LoadTransposeMatrixfARB_names[] =
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char GetPointerv_names[] =
+static const char GetPointerv_names[] =
"ip\0" /* Parameter signature */
"glGetPointerv\0"
"glGetPointervEXT\0"
@@ -4573,21 +4615,21 @@ static const char GetPointerv_names[] =
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3bEXT_names[] =
+static const char Tangent3bEXT_names[] =
"iii\0" /* Parameter signature */
"glTangent3bEXT\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerParameterfNV_names[] =
+static const char CombinerParameterfNV_names[] =
"if\0" /* Parameter signature */
"glCombinerParameterfNV\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char BindProgramNV_names[] =
+static const char BindProgramNV_names[] =
"ii\0" /* Parameter signature */
"glBindProgramARB\0"
"glBindProgramNV\0"
@@ -4595,7 +4637,7 @@ static const char BindProgramNV_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4svARB_names[] =
+static const char VertexAttrib4svARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4sv\0"
"glVertexAttrib4svARB\0"
@@ -4603,28 +4645,35 @@ static const char VertexAttrib4svARB_names[] =
#endif
#if defined(need_GL_MESA_shader_debug)
-static const char CreateDebugObjectMESA_names[] =
+static const char CreateDebugObjectMESA_names[] =
"\0" /* Parameter signature */
"glCreateDebugObjectMESA\0"
"";
#endif
#if defined(need_GL_VERSION_2_0)
-static const char GetShaderiv_names[] =
+static const char GetShaderiv_names[] =
"iip\0" /* Parameter signature */
"glGetShaderiv\0"
"";
#endif
+#if defined(need_GL_ARB_sync)
+static const char ClientWaitSync_names[] =
+ "iii\0" /* Parameter signature */
+ "glClientWaitSync\0"
+ "";
+#endif
+
#if defined(need_GL_ATI_fragment_shader)
-static const char BindFragmentShaderATI_names[] =
+static const char BindFragmentShaderATI_names[] =
"i\0" /* Parameter signature */
"glBindFragmentShaderATI\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char UnmapBufferARB_names[] =
+static const char UnmapBufferARB_names[] =
"i\0" /* Parameter signature */
"glUnmapBuffer\0"
"glUnmapBufferARB\0"
@@ -4632,7 +4681,7 @@ static const char UnmapBufferARB_names[] =
#endif
#if defined(need_GL_EXT_histogram)
-static const char Minmax_names[] =
+static const char Minmax_names[] =
"iii\0" /* Parameter signature */
"glMinmax\0"
"glMinmaxEXT\0"
@@ -4640,7 +4689,7 @@ static const char Minmax_names[] =
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord)
-static const char FogCoorddvEXT_names[] =
+static const char FogCoorddvEXT_names[] =
"p\0" /* Parameter signature */
"glFogCoorddv\0"
"glFogCoorddvEXT\0"
@@ -4648,35 +4697,35 @@ static const char FogCoorddvEXT_names[] =
#endif
#if defined(need_GL_SUNX_constant_data)
-static const char FinishTextureSUNX_names[] =
+static const char FinishTextureSUNX_names[] =
"\0" /* Parameter signature */
"glFinishTextureSUNX\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char GetFragmentLightfvSGIX_names[] =
+static const char GetFragmentLightfvSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetFragmentLightfvSGIX\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetFinalCombinerInputParameterfvNV_names[] =
+static const char GetFinalCombinerInputParameterfvNV_names[] =
"iip\0" /* Parameter signature */
"glGetFinalCombinerInputParameterfvNV\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char ColorFragmentOp3ATI_names[] =
+static const char ColorFragmentOp3ATI_names[] =
"iiiiiiiiiiiii\0" /* Parameter signature */
"glColorFragmentOp3ATI\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2svARB_names[] =
+static const char VertexAttrib2svARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib2sv\0"
"glVertexAttrib2svARB\0"
@@ -4684,14 +4733,14 @@ static const char VertexAttrib2svARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char AreProgramsResidentNV_names[] =
+static const char AreProgramsResidentNV_names[] =
"ipp\0" /* Parameter signature */
"glAreProgramsResidentNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos3svMESA_names[] =
+static const char WindowPos3svMESA_names[] =
"p\0" /* Parameter signature */
"glWindowPos3sv\0"
"glWindowPos3svARB\0"
@@ -4700,7 +4749,7 @@ static const char WindowPos3svMESA_names[] =
#endif
#if defined(need_GL_EXT_color_subtable)
-static const char CopyColorSubTable_names[] =
+static const char CopyColorSubTable_names[] =
"iiiii\0" /* Parameter signature */
"glCopyColorSubTable\0"
"glCopyColorSubTableEXT\0"
@@ -4708,14 +4757,14 @@ static const char CopyColorSubTable_names[] =
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightdvARB_names[] =
+static const char WeightdvARB_names[] =
"ip\0" /* Parameter signature */
"glWeightdvARB\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char DeleteRenderbuffersEXT_names[] =
+static const char DeleteRenderbuffersEXT_names[] =
"ip\0" /* Parameter signature */
"glDeleteRenderbuffers\0"
"glDeleteRenderbuffersEXT\0"
@@ -4723,7 +4772,7 @@ static const char DeleteRenderbuffersEXT_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib4NubvARB_names[] =
+static const char VertexAttrib4NubvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4Nubv\0"
"glVertexAttrib4NubvARB\0"
@@ -4731,63 +4780,63 @@ static const char VertexAttrib4NubvARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib3dvNV_names[] =
+static const char VertexAttrib3dvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib3dvNV\0"
"";
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char GetObjectParameterfvARB_names[] =
+static const char GetObjectParameterfvARB_names[] =
"iip\0" /* Parameter signature */
"glGetObjectParameterfvARB\0"
"";
#endif
#if defined(need_GL_ARB_vertex_program)
-static const char GetProgramEnvParameterdvARB_names[] =
+static const char GetProgramEnvParameterdvARB_names[] =
"iip\0" /* Parameter signature */
"glGetProgramEnvParameterdvARB\0"
"";
#endif
#if defined(need_GL_EXT_compiled_vertex_array)
-static const char LockArraysEXT_names[] =
+static const char LockArraysEXT_names[] =
"ii\0" /* Parameter signature */
"glLockArraysEXT\0"
"";
#endif
#if defined(need_GL_EXT_pixel_transform)
-static const char PixelTransformParameterivEXT_names[] =
+static const char PixelTransformParameterivEXT_names[] =
"iip\0" /* Parameter signature */
"glPixelTransformParameterivEXT\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char BinormalPointerEXT_names[] =
+static const char BinormalPointerEXT_names[] =
"iip\0" /* Parameter signature */
"glBinormalPointerEXT\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib1dNV_names[] =
+static const char VertexAttrib1dNV_names[] =
"id\0" /* Parameter signature */
"glVertexAttrib1dNV\0"
"";
#endif
#if defined(need_GL_NV_register_combiners)
-static const char GetCombinerInputParameterivNV_names[] =
+static const char GetCombinerInputParameterivNV_names[] =
"iiiip\0" /* Parameter signature */
"glGetCombinerInputParameterivNV\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
-static const char MultiTexCoord2fvARB_names[] =
+static const char MultiTexCoord2fvARB_names[] =
"ip\0" /* Parameter signature */
"glMultiTexCoord2fv\0"
"glMultiTexCoord2fvARB\0"
@@ -4795,7 +4844,7 @@ static const char MultiTexCoord2fvARB_names[] =
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char GetRenderbufferParameterivEXT_names[] =
+static const char GetRenderbufferParameterivEXT_names[] =
"iip\0" /* Parameter signature */
"glGetRenderbufferParameteriv\0"
"glGetRenderbufferParameterivEXT\0"
@@ -4803,21 +4852,21 @@ static const char GetRenderbufferParameterivEXT_names[] =
#endif
#if defined(need_GL_NV_register_combiners)
-static const char CombinerParameterivNV_names[] =
+static const char CombinerParameterivNV_names[] =
"ip\0" /* Parameter signature */
"glCombinerParameterivNV\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char GenFragmentShadersATI_names[] =
+static const char GenFragmentShadersATI_names[] =
"i\0" /* Parameter signature */
"glGenFragmentShadersATI\0"
"";
#endif
#if defined(need_GL_EXT_vertex_array)
-static const char DrawArrays_names[] =
+static const char DrawArrays_names[] =
"iii\0" /* Parameter signature */
"glDrawArrays\0"
"glDrawArraysEXT\0"
@@ -4825,14 +4874,14 @@ static const char DrawArrays_names[] =
#endif
#if defined(need_GL_ARB_vertex_blend)
-static const char WeightuivARB_names[] =
+static const char WeightuivARB_names[] =
"ip\0" /* Parameter signature */
"glWeightuivARB\0"
"";
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib2sARB_names[] =
+static const char VertexAttrib2sARB_names[] =
"iii\0" /* Parameter signature */
"glVertexAttrib2s\0"
"glVertexAttrib2sARB\0"
@@ -4840,28 +4889,28 @@ static const char VertexAttrib2sARB_names[] =
#endif
#if defined(need_GL_SGIX_async)
-static const char GenAsyncMarkersSGIX_names[] =
+static const char GenAsyncMarkersSGIX_names[] =
"i\0" /* Parameter signature */
"glGenAsyncMarkersSGIX\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Tangent3svEXT_names[] =
+static const char Tangent3svEXT_names[] =
"p\0" /* Parameter signature */
"glTangent3svEXT\0"
"";
#endif
#if defined(need_GL_SGIX_list_priority)
-static const char GetListParameterivSGIX_names[] =
+static const char GetListParameterivSGIX_names[] =
"iip\0" /* Parameter signature */
"glGetListParameterivSGIX\0"
"";
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char BindBufferARB_names[] =
+static const char BindBufferARB_names[] =
"ii\0" /* Parameter signature */
"glBindBuffer\0"
"glBindBufferARB\0"
@@ -4869,35 +4918,35 @@ static const char BindBufferARB_names[] =
#endif
#if defined(need_GL_ARB_shader_objects)
-static const char GetInfoLogARB_names[] =
+static const char GetInfoLogARB_names[] =
"iipp\0" /* Parameter signature */
"glGetInfoLogARB\0"
"";
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs4svNV_names[] =
+static const char VertexAttribs4svNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs4svNV\0"
"";
#endif
#if defined(need_GL_IBM_vertex_array_lists)
-static const char EdgeFlagPointerListIBM_names[] =
+static const char EdgeFlagPointerListIBM_names[] =
"ipi\0" /* Parameter signature */
"glEdgeFlagPointerListIBM\0"
"";
#endif
#if defined(need_GL_VERSION_2_1)
-static const char UniformMatrix3x2fv_names[] =
+static const char UniformMatrix3x2fv_names[] =
"iiip\0" /* Parameter signature */
"glUniformMatrix3x2fv\0"
"";
#endif
#if defined(need_GL_EXT_histogram)
-static const char GetMinmaxParameterfv_names[] =
+static const char GetMinmaxParameterfv_names[] =
"iip\0" /* Parameter signature */
"glGetMinmaxParameterfv\0"
"glGetMinmaxParameterfvEXT\0"
@@ -4905,7 +4954,7 @@ static const char GetMinmaxParameterfv_names[] =
#endif
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
-static const char VertexAttrib1fvARB_names[] =
+static const char VertexAttrib1fvARB_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib1fv\0"
"glVertexAttrib1fvARB\0"
@@ -4913,7 +4962,7 @@ static const char VertexAttrib1fvARB_names[] =
#endif
#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object)
-static const char GenBuffersARB_names[] =
+static const char GenBuffersARB_names[] =
"ip\0" /* Parameter signature */
"glGenBuffers\0"
"glGenBuffersARB\0"
@@ -4921,35 +4970,35 @@ static const char GenBuffersARB_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttribs1svNV_names[] =
+static const char VertexAttribs1svNV_names[] =
"iip\0" /* Parameter signature */
"glVertexAttribs1svNV\0"
"";
#endif
#if defined(need_GL_ATI_envmap_bumpmap)
-static const char GetTexBumpParameterivATI_names[] =
+static const char GetTexBumpParameterivATI_names[] =
"ip\0" /* Parameter signature */
"glGetTexBumpParameterivATI\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3bEXT_names[] =
+static const char Binormal3bEXT_names[] =
"iii\0" /* Parameter signature */
"glBinormal3bEXT\0"
"";
#endif
#if defined(need_GL_SGIX_fragment_lighting)
-static const char FragmentMaterialivSGIX_names[] =
+static const char FragmentMaterialivSGIX_names[] =
"iip\0" /* Parameter signature */
"glFragmentMaterialivSGIX\0"
"";
#endif
#if defined(need_GL_ARB_framebuffer_object) || defined(need_GL_EXT_framebuffer_object)
-static const char IsRenderbufferEXT_names[] =
+static const char IsRenderbufferEXT_names[] =
"i\0" /* Parameter signature */
"glIsRenderbuffer\0"
"glIsRenderbufferEXT\0"
@@ -4957,7 +5006,7 @@ static const char IsRenderbufferEXT_names[] =
#endif
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
-static const char GenProgramsNV_names[] =
+static const char GenProgramsNV_names[] =
"ip\0" /* Parameter signature */
"glGenProgramsARB\0"
"glGenProgramsNV\0"
@@ -4965,28 +5014,28 @@ static const char GenProgramsNV_names[] =
#endif
#if defined(need_GL_NV_vertex_program)
-static const char VertexAttrib4dvNV_names[] =
+static const char VertexAttrib4dvNV_names[] =
"ip\0" /* Parameter signature */
"glVertexAttrib4dvNV\0"
"";
#endif
#if defined(need_GL_ATI_fragment_shader)
-static const char EndFragmentShaderATI_names[] =
+static const char EndFragmentShaderATI_names[] =
"\0" /* Parameter signature */
"glEndFragmentShaderATI\0"
"";
#endif
#if defined(need_GL_EXT_coordinate_frame)
-static const char Binormal3iEXT_names[] =
+static const char Binormal3iEXT_names[] =
"iii\0" /* Parameter signature */
"glBinormal3iEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos)
-static const char WindowPos2fMESA_names[] =
+static const char WindowPos2fMESA_names[] =
"ff\0" /* Parameter signature */
"glWindowPos2f\0"
"glWindowPos2fARB\0"
@@ -5160,6 +5209,19 @@ static const struct dri_extension_function GL_ARB_shader_objects_functions[] = {
};
#endif
+#if defined(need_GL_ARB_sync)
+static const struct dri_extension_function GL_ARB_sync_functions[] = {
+ { DeleteSync_names, DeleteSync_remap_index, -1 },
+ { FenceSync_names, FenceSync_remap_index, -1 },
+ { WaitSync_names, WaitSync_remap_index, -1 },
+ { GetInteger64v_names, GetInteger64v_remap_index, -1 },
+ { GetSynciv_names, GetSynciv_remap_index, -1 },
+ { IsSync_names, IsSync_remap_index, -1 },
+ { ClientWaitSync_names, ClientWaitSync_remap_index, -1 },
+ { NULL, 0, 0 }
+};
+#endif
+
#if defined(need_GL_ARB_texture_compression)
static const struct dri_extension_function GL_ARB_texture_compression_functions[] = {
{ CompressedTexSubImage2DARB_names, CompressedTexSubImage2DARB_remap_index, -1 },
diff --git a/src/mesa/drivers/dri/i915/Makefile b/src/mesa/drivers/dri/i915/Makefile
index beaf9a4b129..9d049dea8fe 100644
--- a/src/mesa/drivers/dri/i915/Makefile
+++ b/src/mesa/drivers/dri/i915/Makefile
@@ -51,6 +51,7 @@ DRIVER_SOURCES = \
intel_screen.c \
intel_span.c \
intel_state.c \
+ intel_syncobj.c \
intel_tris.c \
intel_fbo.c
diff --git a/src/mesa/drivers/dri/i915/intel_syncobj.c b/src/mesa/drivers/dri/i915/intel_syncobj.c
new file mode 120000
index 00000000000..0b2e56ab246
--- /dev/null
+++ b/src/mesa/drivers/dri/i915/intel_syncobj.c
@@ -0,0 +1 @@
+../intel/intel_syncobj.c \ No newline at end of file
diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile
index 128afb56866..6e9a9a29a39 100644
--- a/src/mesa/drivers/dri/i965/Makefile
+++ b/src/mesa/drivers/dri/i965/Makefile
@@ -26,6 +26,7 @@ DRIVER_SOURCES = \
intel_pixel_read.c \
intel_state.c \
intel_swapbuffers.c \
+ intel_syncobj.c \
intel_tex.c \
intel_tex_copy.c \
intel_tex_format.c \
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index e76e9fdcc86..3c5b8483197 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -167,8 +167,6 @@ GLboolean brwCreateContext( const __GLcontextModes *mesaVis,
brw_draw_init( brw );
- vbo_use_buffer_objects(ctx);
-
return GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/i965/brw_gs_state.c b/src/mesa/drivers/dri/i965/brw_gs_state.c
index a761c03153c..ed9d2ffe605 100644
--- a/src/mesa/drivers/dri/i965/brw_gs_state.c
+++ b/src/mesa/drivers/dri/i965/brw_gs_state.c
@@ -93,7 +93,10 @@ gs_unit_create_from_key(struct brw_context *brw, struct brw_gs_unit_key *key)
gs.thread4.nr_urb_entries = key->nr_urb_entries;
gs.thread4.urb_entry_allocation_size = key->urb_size - 1;
- gs.thread4.max_threads = 0; /* Hardware requirement */
+ if (key->nr_urb_entries >= 8)
+ gs.thread4.max_threads = 1;
+ else
+ gs.thread4.max_threads = 0;
if (BRW_IS_IGDNG(brw))
gs.thread4.rendering_enable = 1;
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 85a7706404f..ea718575484 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -172,6 +172,7 @@ 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);
brw_add_validated_bo(brw, brw->cc.state_bo);
}
diff --git a/src/mesa/drivers/dri/i965/brw_structs.h b/src/mesa/drivers/dri/i965/brw_structs.h
index a6de09207b7..66d4127271a 100644
--- a/src/mesa/drivers/dri/i965/brw_structs.h
+++ b/src/mesa/drivers/dri/i965/brw_structs.h
@@ -442,8 +442,8 @@ struct brw_urb_fence
{
GLuint sf_fence:10;
GLuint vf_fence:10;
- GLuint cs_fence:10;
- GLuint pad:2;
+ GLuint cs_fence:11;
+ GLuint pad:1;
} bits1;
};
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index 108e19cdbcf..584fdbdfc37 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -1208,7 +1208,7 @@ static void emit_vertex_write( struct brw_vs_compile *c)
MIN2(c->nr_outputs + 1 + len_vertext_header, (BRW_MAX_MRF-1)), /* msg len */
0, /* response len */
eot, /* eot */
- 1, /* writes complete */
+ eot, /* writes complete */
0, /* urb destination offset */
BRW_URB_SWIZZLE_INTERLEAVE);
diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index 268f7965c00..981864323ec 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -908,6 +908,20 @@ static void emit_kil( struct brw_wm_compile *c,
}
}
+/* KIL_NV kills the pixels that are currently executing, not based on a test
+ * of the arguments.
+ */
+static void emit_kil_nv( struct brw_wm_compile *c )
+{
+ struct brw_compile *p = &c->func;
+ struct brw_reg r0uw = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW);
+
+ brw_push_insn_state(p);
+ brw_set_mask_control(p, BRW_MASK_DISABLE);
+ brw_NOT(p, c->emit_mask_reg, brw_mask_reg(1)); //IMASK
+ brw_AND(p, r0uw, c->emit_mask_reg, r0uw);
+ brw_pop_insn_state(p);
+}
static void fire_fb_write( struct brw_wm_compile *c,
GLuint base_reg,
@@ -1387,6 +1401,10 @@ void brw_wm_emit( struct brw_wm_compile *c )
emit_kil(c, args[0]);
break;
+ case OPCODE_KIL_NV:
+ emit_kil_nv(c);
+ break;
+
default:
_mesa_printf("Unsupported opcode %i (%s) in fragment shader\n",
inst->opcode, inst->opcode < MAX_OPCODE ?
diff --git a/src/mesa/drivers/dri/i965/brw_wm_pass1.c b/src/mesa/drivers/dri/i965/brw_wm_pass1.c
index 3436a247170..9c68bfd78b2 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_pass1.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_pass1.c
@@ -270,6 +270,7 @@ void brw_wm_pass1( struct brw_wm_compile *c )
case OPCODE_DST:
case WM_FRONTFACING:
+ case OPCODE_KIL_NV:
default:
break;
}
diff --git a/src/mesa/drivers/dri/i965/intel_syncobj.c b/src/mesa/drivers/dri/i965/intel_syncobj.c
new file mode 120000
index 00000000000..0b2e56ab246
--- /dev/null
+++ b/src/mesa/drivers/dri/i965/intel_syncobj.c
@@ -0,0 +1 @@
+../intel/intel_syncobj.c \ No newline at end of file
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
index 3cf0ea0991d..c55c5c426e0 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
@@ -130,9 +130,10 @@ intel_bufferobj_free(GLcontext * ctx, struct gl_buffer_object *obj)
* Allocate space for and store data in a buffer object. Any data that was
* previously stored in the buffer object is lost. If data is NULL,
* memory will be allocated, but no copy will occur.
- * Called via glBufferDataARB().
+ * Called via ctx->Driver.BufferData().
+ * \return GL_TRUE for success, GL_FALSE if out of memory
*/
-static void
+static GLboolean
intel_bufferobj_data(GLcontext * ctx,
GLenum target,
GLsizeiptrARB size,
@@ -167,15 +168,19 @@ intel_bufferobj_data(GLcontext * ctx,
if (intel_obj->sys_buffer != NULL) {
if (data != NULL)
memcpy(intel_obj->sys_buffer, data, size);
- return;
+ return GL_TRUE;
}
}
#endif
intel_bufferobj_alloc_buffer(intel, intel_obj);
+ if (!intel_obj->buffer)
+ return GL_FALSE;
if (data != NULL)
dri_bo_subdata(intel_obj->buffer, 0, size, data);
}
+
+ return GL_TRUE;
}
@@ -267,6 +272,9 @@ intel_bufferobj_map(GLcontext * ctx,
}
obj->Pointer = intel_obj->buffer->virtual;
+ obj->Length = obj->Size;
+ obj->Offset = 0;
+
return obj->Pointer;
}
@@ -288,7 +296,7 @@ intel_bufferobj_map(GLcontext * ctx,
*/
static void *
intel_bufferobj_map_range(GLcontext * ctx,
- GLenum target, GLsizei offset, GLsizeiptr length,
+ GLenum target, GLintptr offset, GLsizeiptr length,
GLbitfield access, struct gl_buffer_object *obj)
{
struct intel_context *intel = intel_context(ctx);
@@ -296,6 +304,13 @@ intel_bufferobj_map_range(GLcontext * ctx,
assert(intel_obj);
+ /* _mesa_MapBufferRange (GL entrypoint) sets these, but the vbo module also
+ * internally uses our functions directly.
+ */
+ obj->Offset = offset;
+ obj->Length = length;
+ obj->AccessFlags = access;
+
if (intel_obj->sys_buffer) {
obj->Pointer = intel_obj->sys_buffer + offset;
return obj->Pointer;
@@ -308,16 +323,9 @@ intel_bufferobj_map_range(GLcontext * ctx,
* the batchbuffer so that GEM knows about the buffer access for later
* syncing.
*/
- if ((access & GL_MAP_WRITE_BIT) && !(access & GL_MAP_UNSYNCHRONIZED_BIT))
+ if (!(access & GL_MAP_UNSYNCHRONIZED_BIT))
intelFlush(ctx);
- /* _mesa_MapBufferRange (GL entrypoint) sets these, but the vbo module also
- * internally uses our functions directly.
- */
- obj->Offset = offset;
- obj->Length = length;
- obj->AccessFlags = access;
-
if (intel_obj->buffer == NULL) {
obj->Pointer = NULL;
return NULL;
@@ -341,19 +349,24 @@ intel_bufferobj_map_range(GLcontext * ctx,
*/
if ((access & GL_MAP_INVALIDATE_RANGE_BIT) &&
drm_intel_bo_busy(intel_obj->buffer)) {
- intel_obj->range_map_bo = drm_intel_bo_alloc(intel->bufmgr,
- "range map",
- length, 64);
- if (!(access & GL_MAP_READ_BIT) &&
- intel->intelScreen->kernel_exec_fencing) {
- drm_intel_gem_bo_map_gtt(intel_obj->range_map_bo);
- intel_obj->mapped_gtt = GL_TRUE;
+ if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
+ intel_obj->range_map_buffer = _mesa_malloc(length);
+ obj->Pointer = intel_obj->range_map_buffer;
} else {
- drm_intel_bo_map(intel_obj->range_map_bo,
- (access & GL_MAP_WRITE_BIT) != 0);
- intel_obj->mapped_gtt = GL_FALSE;
+ intel_obj->range_map_bo = drm_intel_bo_alloc(intel->bufmgr,
+ "range map",
+ length, 64);
+ if (!(access & GL_MAP_READ_BIT) &&
+ intel->intelScreen->kernel_exec_fencing) {
+ drm_intel_gem_bo_map_gtt(intel_obj->range_map_bo);
+ intel_obj->mapped_gtt = GL_TRUE;
+ } else {
+ drm_intel_bo_map(intel_obj->range_map_bo,
+ (access & GL_MAP_WRITE_BIT) != 0);
+ intel_obj->mapped_gtt = GL_FALSE;
+ }
+ obj->Pointer = intel_obj->range_map_bo->virtual;
}
- obj->Pointer = intel_obj->range_map_bo->virtual;
return obj->Pointer;
}
@@ -370,6 +383,38 @@ intel_bufferobj_map_range(GLcontext * ctx,
return obj->Pointer;
}
+/* Ideally we'd use a BO to avoid taking up cache space for the temporary
+ * data, but FlushMappedBufferRange may be followed by further writes to
+ * the pointer, so we would have to re-map after emitting our blit, which
+ * would defeat the point.
+ */
+static void
+intel_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target,
+ GLintptr offset, GLsizeiptr length,
+ struct gl_buffer_object *obj)
+{
+ struct intel_context *intel = intel_context(ctx);
+ struct intel_buffer_object *intel_obj = intel_buffer_object(obj);
+ drm_intel_bo *temp_bo;
+
+ /* Unless we're in the range map using a temporary system buffer,
+ * there's no work to do.
+ */
+ if (intel_obj->range_map_buffer == NULL)
+ return;
+
+ temp_bo = drm_intel_bo_alloc(intel->bufmgr, "range map flush", length, 64);
+
+ drm_intel_bo_subdata(temp_bo, 0, length, intel_obj->range_map_buffer);
+
+ intel_emit_linear_blit(intel,
+ intel_obj->buffer, obj->Offset + offset,
+ temp_bo, 0,
+ length);
+
+ drm_intel_bo_unreference(temp_bo);
+}
+
/**
* Called via glUnmapBuffer().
@@ -385,6 +430,15 @@ intel_bufferobj_unmap(GLcontext * ctx,
assert(obj->Pointer);
if (intel_obj->sys_buffer != NULL) {
/* always keep the mapping around. */
+ } else if (intel_obj->range_map_buffer != NULL) {
+ /* Since we've emitted some blits to buffers that will (likely) be used
+ * in rendering operations in other cache domains in this batch, emit a
+ * flush. Once again, we wish for a domain tracker in libdrm to cover
+ * usage inside of a batchbuffer.
+ */
+ intel_batchbuffer_emit_mi_flush(intel->batch);
+ free(intel_obj->range_map_buffer);
+ intel_obj->range_map_buffer = NULL;
} else if (intel_obj->range_map_bo != NULL) {
if (intel_obj->mapped_gtt) {
drm_intel_gem_bo_unmap_gtt(intel_obj->range_map_bo);
@@ -392,10 +446,6 @@ intel_bufferobj_unmap(GLcontext * ctx,
drm_intel_bo_unmap(intel_obj->range_map_bo);
}
- /* We ignore the FLUSH_EXPLICIT bit and the calls associated with it.
- * It would be a small win to support that, but for now we just copy
- * the whole mapped range into place.
- */
intel_emit_linear_blit(intel,
intel_obj->buffer, obj->Offset,
intel_obj->range_map_bo, 0,
@@ -418,6 +468,8 @@ intel_bufferobj_unmap(GLcontext * ctx,
}
}
obj->Pointer = NULL;
+ obj->Offset = 0;
+ obj->Length = 0;
return GL_TRUE;
}
@@ -523,6 +575,7 @@ intelInitBufferObjectFuncs(struct dd_function_table *functions)
functions->GetBufferSubData = intel_bufferobj_get_subdata;
functions->MapBuffer = intel_bufferobj_map;
functions->MapBufferRange = intel_bufferobj_map_range;
+ functions->FlushMappedBufferRange = intel_bufferobj_flush_mapped_range;
functions->UnmapBuffer = intel_bufferobj_unmap;
functions->CopyBufferSubData = intel_bufferobj_copy_subdata;
}
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.h b/src/mesa/drivers/dri/intel/intel_buffer_objects.h
index 06a8ab9824c..bf3e08a3201 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.h
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.h
@@ -50,6 +50,7 @@ struct intel_buffer_object
buffer object? */
drm_intel_bo *range_map_bo;
+ void *range_map_buffer;
unsigned int range_map_offset;
GLsizei range_map_size;
diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c
index 630d2adab87..bce23724b38 100644
--- a/src/mesa/drivers/dri/intel/intel_clear.c
+++ b/src/mesa/drivers/dri/intel/intel_clear.c
@@ -27,25 +27,9 @@
**************************************************************************/
#include "main/glheader.h"
-#include "main/enums.h"
-#include "main/image.h"
#include "main/mtypes.h"
-#include "main/arrayobj.h"
-#include "main/attrib.h"
-#include "main/blend.h"
-#include "main/bufferobj.h"
-#include "main/buffers.h"
-#include "main/depth.h"
-#include "main/enable.h"
-#include "main/macros.h"
-#include "main/matrix.h"
-#include "main/polygon.h"
-#include "main/texstate.h"
-#include "main/shaders.h"
-#include "main/stencil.h"
-#include "main/varray.h"
-#include "glapi/dispatch.h"
#include "swrast/swrast.h"
+#include "drivers/common/meta.h"
#include "intel_context.h"
#include "intel_blit.h"
@@ -140,7 +124,7 @@ intelClear(GLcontext *ctx, GLbitfield mask)
* buffer with it.
*/
if (mask & (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL)) {
- int color_bit = _mesa_ffs(mask & TRI_CLEAR_COLOR_BITS);
+ int color_bit = _mesa_ffs(mask & BUFFER_BITS_COLOR);
if (color_bit != 0) {
tri_mask |= blit_mask & (1 << (color_bit - 1));
blit_mask &= ~(1 << (color_bit - 1));
@@ -186,7 +170,7 @@ intelClear(GLcontext *ctx, GLbitfield mask)
}
DBG("\n");
}
- meta_clear_tris(&intel->meta, tri_mask);
+ _mesa_meta_clear(&intel->ctx, tri_mask);
}
if (swrast_mask) {
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 46f1a7f7205..89f99f7ffdb 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -598,6 +598,7 @@ intelInitDriverFunctions(struct dd_function_table *functions)
intelInitBufferFuncs(functions);
intelInitPixelFuncs(functions);
intelInitBufferObjectFuncs(functions);
+ intel_init_syncobj_functions(functions);
}
@@ -640,6 +641,10 @@ intelInitContext(struct intel_context *intel,
intel->maxBatchSize = BATCH_SZ;
intel->bufmgr = intelScreen->bufmgr;
+
+ if (0) /* for debug */
+ drm_intel_bufmgr_set_debug(intel->bufmgr, 1);
+
intel->ttm = intelScreen->ttm;
if (intel->ttm) {
int bo_reuse_mode;
diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h
index 0d9db5eb1da..03e7cf39d68 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -80,6 +80,12 @@ extern void intelFallback(struct intel_context *intel, GLuint bit,
#define INTEL_MAX_FIXUP 64
+struct intel_sync_object {
+ struct gl_sync_object Base;
+
+ /** Batch associated with this sync object */
+ drm_intel_bo *bo;
+};
/**
* intel_context is derived from Mesa's context class: GLcontext.
@@ -470,6 +476,8 @@ extern void intelFlush(GLcontext * ctx);
extern void intelInitDriverFunctions(struct dd_function_table *functions);
+void intel_init_syncobj_functions(struct dd_function_table *functions);
+
/* ================================================================
* intel_state.c:
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 7aee70f0a8f..2e61c556d85 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -36,6 +36,7 @@
#define need_GL_ARB_occlusion_query
#define need_GL_ARB_point_parameters
#define need_GL_ARB_shader_objects
+#define need_GL_ARB_sync
#define need_GL_ARB_vertex_array_object
#define need_GL_ARB_vertex_program
#define need_GL_ARB_vertex_shader
@@ -77,6 +78,7 @@ static const struct dri_extension card_extensions[] = {
{ "GL_ARB_multitexture", NULL },
{ "GL_ARB_point_parameters", GL_ARB_point_parameters_functions },
{ "GL_ARB_point_sprite", NULL },
+ { "GL_ARB_sync", GL_ARB_sync_functions },
{ "GL_ARB_texture_border_clamp", NULL },
{ "GL_ARB_texture_cube_map", NULL },
{ "GL_ARB_texture_env_add", NULL },
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
index 540e7620a9d..b543a0bbc3e 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
@@ -93,19 +93,12 @@ static const GLubyte *map_pbo( GLcontext *ctx,
return ADD_POINTERS(buf, bitmap);
}
-static GLboolean test_bit( const GLubyte *src,
- GLuint bit )
+static GLboolean test_bit( const GLubyte *src, GLuint bit )
{
return (src[bit/8] & (1<<(bit % 8))) ? 1 : 0;
}
-static GLboolean test_msb_bit(const GLubyte *src, GLuint bit)
-{
- return (src[bit/8] & (1<<(7 - (bit % 8)))) ? 1 : 0;
-}
-
-static void set_bit( GLubyte *dest,
- GLuint bit )
+static void set_bit( GLubyte *dest, GLuint bit )
{
dest[bit/8] |= 1 << (bit % 8);
}
@@ -365,9 +358,7 @@ intel_texture_bitmap(GLcontext * ctx,
GLuint texname;
GLfloat vertices[4][4];
GLint old_active_texture;
- GLubyte *unpacked_bitmap;
GLubyte *a8_bitmap;
- int x, y;
GLfloat dst_z;
/* We need a fragment program for the KIL effect */
@@ -427,22 +418,16 @@ intel_texture_bitmap(GLcontext * ctx,
return GL_FALSE;
}
- /* Convert the A1 bitmap to an A8 format suitable for glTexImage */
if (unpack->BufferObj->Name) {
bitmap = map_pbo(ctx, width, height, unpack, bitmap);
if (bitmap == NULL)
return GL_TRUE; /* even though this is an error, we're done */
}
- unpacked_bitmap = _mesa_unpack_bitmap(width, height, bitmap,
- unpack);
+
+ /* Convert the A1 bitmap to an A8 format suitable for glTexImage */
a8_bitmap = _mesa_calloc(width * height);
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- if (test_msb_bit(unpacked_bitmap, ALIGN(width, 8) * y + x))
- a8_bitmap[y * width + x] = 0xff;
- }
- }
- _mesa_free(unpacked_bitmap);
+ _mesa_expand_bitmap(width, height, unpack, bitmap, a8_bitmap, width, 0xff);
+
if (unpack->BufferObj->Name) {
/* done with PBO so unmap it now */
ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
index ca796b36559..07ca8f7ddb5 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
@@ -26,18 +26,13 @@
**************************************************************************/
#include "main/glheader.h"
-#include "main/enums.h"
#include "main/image.h"
#include "main/state.h"
#include "main/mtypes.h"
-#include "main/macros.h"
#include "drivers/common/meta.h"
-#include "intel_screen.h"
#include "intel_context.h"
-#include "intel_batchbuffer.h"
#include "intel_buffers.h"
-#include "intel_blit.h"
#include "intel_regions.h"
#include "intel_pixel.h"
@@ -244,5 +239,6 @@ intelCopyPixels(GLcontext * ctx,
if (do_blit_copypixels(ctx, srcx, srcy, width, height, destx, desty, type))
return;
+ /* this will use swrast if needed */
_mesa_meta_copy_pixels(ctx, srcx, srcy, width, height, destx, desty, type);
}
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_draw.c b/src/mesa/drivers/dri/intel/intel_pixel_draw.c
index a6b6824164a..8c113881d6b 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_draw.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_draw.c
@@ -29,8 +29,6 @@
#include "main/enums.h"
#include "main/image.h"
#include "main/mtypes.h"
-#include "main/macros.h"
-#include "main/bufferobj.h"
#include "main/teximage.h"
#include "main/texenv.h"
#include "main/texobj.h"
@@ -41,163 +39,21 @@
#include "main/enable.h"
#include "main/buffers.h"
#include "main/fbobject.h"
-#include "main/renderbuffer.h"
#include "main/depth.h"
#include "main/hash.h"
#include "main/blend.h"
-#include "main/viewport.h"
-#include "glapi/dispatch.h"
-#include "swrast/swrast.h"
+#include "drivers/common/meta.h"
-#include "intel_screen.h"
#include "intel_context.h"
#include "intel_batchbuffer.h"
#include "intel_blit.h"
#include "intel_buffers.h"
#include "intel_regions.h"
#include "intel_pixel.h"
-#include "intel_buffer_objects.h"
#include "intel_fbo.h"
-static GLboolean
-intel_texture_drawpixels(GLcontext * ctx,
- GLint x, GLint y,
- GLsizei width, GLsizei height,
- GLenum format,
- GLenum type,
- const struct gl_pixelstore_attrib *unpack,
- const GLvoid *pixels)
-{
- struct intel_context *intel = intel_context(ctx);
- GLuint texname;
- GLfloat vertices[4][4];
- GLfloat z;
- GLint old_active_texture;
- GLenum internalFormat;
-
- /* We're going to mess with texturing with no regard to existing texture
- * state, so if there is some set up we have to bail.
- */
- if (ctx->Texture._EnabledUnits != 0) {
- if (INTEL_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr, "glDrawPixels() fallback: texturing enabled\n");
- return GL_FALSE;
- }
-
- /* Can't do textured DrawPixels with a fragment program, unless we were
- * to generate a new program that sampled our texture and put the results
- * in the fragment color before the user's program started.
- */
- if (ctx->FragmentProgram.Enabled) {
- if (INTEL_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr, "glDrawPixels() fallback: fragment program enabled\n");
- return GL_FALSE;
- }
-
- /* We don't have a way to generate fragments with stencil values which
- * will set the resulting stencil value.
- */
- if (format == GL_STENCIL_INDEX || format == GL_DEPTH_STENCIL)
- return GL_FALSE;
-
- /* Check that we can load in a texture this big. */
- if (width > (1 << (ctx->Const.MaxTextureLevels - 1)) ||
- height > (1 << (ctx->Const.MaxTextureLevels - 1))) {
- if (INTEL_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr, "glDrawPixels() fallback: bitmap too large (%dx%d)\n",
- width, height);
- return GL_FALSE;
- }
-
- /* To do DEPTH_COMPONENT, we would need to change our setup to not draw to
- * the color buffer, and sample the texture values into the fragment depth
- * in a program.
- */
- if (format == GL_DEPTH_COMPONENT) {
- if (INTEL_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr,
- "glDrawPixels() fallback: format == GL_DEPTH_COMPONENT\n");
- return GL_FALSE;
- }
-
- if (!ctx->Extensions.ARB_texture_non_power_of_two &&
- (!is_power_of_two(width) || !is_power_of_two(height))) {
- if (INTEL_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr,
- "glDrawPixels() fallback: NPOT texture\n");
- return GL_FALSE;
- }
-
- _mesa_PushAttrib(GL_ENABLE_BIT | GL_TEXTURE_BIT |
- GL_CURRENT_BIT | GL_VIEWPORT_BIT);
- _mesa_PushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
-
- /* XXX: pixel store stuff */
- _mesa_Disable(GL_POLYGON_STIPPLE);
-
- old_active_texture = ctx->Texture.CurrentUnit;
- _mesa_ActiveTextureARB(GL_TEXTURE0_ARB);
- _mesa_Enable(GL_TEXTURE_2D);
- _mesa_GenTextures(1, &texname);
- _mesa_BindTexture(GL_TEXTURE_2D, texname);
- _mesa_TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- _mesa_TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- _mesa_TexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- if (type == GL_ALPHA)
- internalFormat = GL_ALPHA;
- else
- internalFormat = GL_RGBA;
- _mesa_TexImage2D(GL_TEXTURE_2D, 0, internalFormat, width, height, 0, format,
- type, pixels);
-
- meta_set_passthrough_transform(&intel->meta);
-
- /* convert rasterpos Z from [0,1] to NDC coord in [-1,1] */
- z = -1.0 + 2.0 * ctx->Current.RasterPos[2];
-
- /* RasterPos[2] already takes into account the DepthRange mapping. */
- _mesa_DepthRange(0.0, 1.0);
-
- /* Create the vertex buffer based on the current raster pos. The x and y
- * we're handed are ctx->Current.RasterPos[0,1] rounded to integers.
- * We also apply the depth. However, the W component is already multiplied
- * into ctx->Current.RasterPos[0,1,2] and we can ignore it at this point.
- */
- vertices[0][0] = x;
- vertices[0][1] = y;
- vertices[0][2] = z;
- vertices[0][3] = 1.0;
- vertices[1][0] = x + width * ctx->Pixel.ZoomX;
- vertices[1][1] = y;
- vertices[1][2] = z;
- vertices[1][3] = 1.0;
- vertices[2][0] = x + width * ctx->Pixel.ZoomX;
- vertices[2][1] = y + height * ctx->Pixel.ZoomY;
- vertices[2][2] = z;
- vertices[2][3] = 1.0;
- vertices[3][0] = x;
- vertices[3][1] = y + height * ctx->Pixel.ZoomY;
- vertices[3][2] = z;
- vertices[3][3] = 1.0;
-
- _mesa_VertexPointer(4, GL_FLOAT, 4 * sizeof(GLfloat), &vertices);
- _mesa_Enable(GL_VERTEX_ARRAY);
- meta_set_default_texrect(&intel->meta);
-
- _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
-
- meta_restore_texcoords(&intel->meta);
- meta_restore_transform(&intel->meta);
-
- _mesa_ActiveTextureARB(GL_TEXTURE0_ARB + old_active_texture);
- _mesa_PopClientAttrib();
- _mesa_PopAttrib();
-
- _mesa_DeleteTextures(1, &texname);
-
- return GL_TRUE;
-}
+/** XXX compare perf of this vs. _mesa_meta_draw_pixels(STENCIL) */
static GLboolean
intel_stencil_drawpixels(GLcontext * ctx,
GLint x, GLint y,
@@ -404,17 +260,10 @@ intelDrawPixels(GLcontext * ctx,
const struct gl_pixelstore_attrib *unpack,
const GLvoid * pixels)
{
- if (intel_texture_drawpixels(ctx, x, y, width, height, format, type,
- unpack, pixels))
- return;
-
if (intel_stencil_drawpixels(ctx, x, y, width, height, format, type,
unpack, pixels))
return;
- if (INTEL_DEBUG & DEBUG_PIXEL)
- _mesa_printf("%s: fallback to swrast\n", __FUNCTION__);
-
- _swrast_DrawPixels(ctx, x, y, width, height, format, type,
- unpack, pixels);
+ _mesa_meta_draw_pixels(ctx, x, y, width, height, format, type,
+ unpack, pixels);
}
diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c
new file mode 100644
index 00000000000..1286fe929bc
--- /dev/null
+++ b/src/mesa/drivers/dri/intel/intel_syncobj.c
@@ -0,0 +1,132 @@
+/*
+ * Copyright © 2008 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]>
+ *
+ */
+
+/** @file intel_syncobj.c
+ *
+ * Support for ARB_sync
+ *
+ * ARB_sync is implemented by flushing the current batchbuffer and keeping a
+ * reference on it. We can then check for completion or wait for compeltion
+ * using the normal buffer object mechanisms. This does mean that if an
+ * application is using many sync objects, it will emit small batchbuffers
+ * which may end up being a significant overhead. In other tests of removing
+ * gratuitous batchbuffer syncs in Mesa, it hasn't appeared to be a significant
+ * performance bottleneck, though.
+ */
+
+#include "main/simple_list.h"
+#include "main/imports.h"
+
+#include "intel_context.h"
+#include "intel_batchbuffer.h"
+#include "intel_reg.h"
+
+static struct gl_sync_object *
+intel_new_sync_object(GLcontext *ctx, GLuint id)
+{
+ struct intel_sync_object *sync;
+
+ sync = _mesa_calloc(sizeof(struct intel_sync_object));
+
+ return &sync->Base;
+}
+
+static void
+intel_delete_sync_object(GLcontext *ctx, struct gl_sync_object *s)
+{
+ struct intel_sync_object *sync = (struct intel_sync_object *)s;
+
+ drm_intel_bo_unreference(sync->bo);
+ _mesa_free(sync);
+}
+
+static void
+intel_fence_sync(GLcontext *ctx, struct gl_sync_object *s,
+ GLenum condition, GLbitfield flags)
+{
+ struct intel_context *intel = intel_context(ctx);
+ struct intel_sync_object *sync = (struct intel_sync_object *)s;
+
+ assert(condition == GL_SYNC_GPU_COMMANDS_COMPLETE);
+ intel_batchbuffer_emit_mi_flush(intel->batch);
+
+ sync->bo = intel->batch->buf;
+ drm_intel_bo_reference(sync->bo);
+
+ intelFlush(ctx);
+}
+
+/* We ignore the user-supplied timeout. This is weaselly -- we're allowed to
+ * round to an implementation-dependent accuracy, and right now our
+ * implementation "rounds" to the wait-forever value.
+ *
+ * The fix would be a new kernel function to do the GTT transition with a
+ * timeout.
+ */
+static void intel_client_wait_sync(GLcontext *ctx, struct gl_sync_object *s,
+ GLbitfield flags, GLuint64 timeout)
+{
+ struct intel_sync_object *sync = (struct intel_sync_object *)s;
+
+ if (sync->bo) {
+ drm_intel_bo_wait_rendering(sync->bo);
+ s->StatusFlag = 1;
+ drm_intel_bo_unreference(sync->bo);
+ sync->bo = NULL;
+ }
+}
+
+/* We have nothing to do for WaitSync. Our GL command stream is sequential,
+ * so given that the sync object has already flushed the batchbuffer,
+ * any batchbuffers coming after this waitsync will naturally not occur until
+ * the previous one is done.
+ */
+static void intel_server_wait_sync(GLcontext *ctx, struct gl_sync_object *s,
+ GLbitfield flags, GLuint64 timeout)
+{
+}
+
+static void intel_check_sync(GLcontext *ctx, struct gl_sync_object *s)
+{
+ struct intel_sync_object *sync = (struct intel_sync_object *)s;
+
+ if (sync->bo && drm_intel_bo_busy(sync->bo)) {
+ drm_intel_bo_unreference(sync->bo);
+ sync->bo = NULL;
+ s->StatusFlag = 1;
+ }
+}
+
+void intel_init_syncobj_functions(struct dd_function_table *functions)
+{
+ functions->NewSyncObject = intel_new_sync_object;
+ functions->DeleteSyncObject = intel_delete_sync_object;
+ functions->FenceSync = intel_fence_sync;
+ functions->CheckSync = intel_check_sync;
+ functions->ClientWaitSync = intel_client_wait_sync;
+ functions->ServerWaitSync = intel_server_wait_sync;
+}
diff --git a/src/mesa/drivers/dri/r200/Makefile b/src/mesa/drivers/dri/r200/Makefile
index 25ecbef6091..42635bf9d90 100644
--- a/src/mesa/drivers/dri/r200/Makefile
+++ b/src/mesa/drivers/dri/r200/Makefile
@@ -18,17 +18,18 @@ CS_SOURCES = radeon_cs_space_drm.c
endif
RADEON_COMMON_SOURCES = \
- radeon_texture.c \
+ radeon_bo_legacy.c \
radeon_common_context.c \
radeon_common.c \
+ radeon_cs_legacy.c \
radeon_dma.c \
+ radeon_debug.c \
+ radeon_fbo.c \
radeon_lock.c \
- radeon_bo_legacy.c \
- radeon_cs_legacy.c \
radeon_mipmap_tree.c \
+ radeon_queryobj.c \
radeon_span.c \
- radeon_fbo.c \
- radeon_queryobj.c
+ radeon_texture.c
DRIVER_SOURCES = r200_context.c \
diff --git a/src/mesa/drivers/dri/r200/r200_cmdbuf.c b/src/mesa/drivers/dri/r200/r200_cmdbuf.c
index 1fe68c2b4c8..1d1bea6f5f7 100644
--- a/src/mesa/drivers/dri/r200/r200_cmdbuf.c
+++ b/src/mesa/drivers/dri/r200/r200_cmdbuf.c
@@ -126,9 +126,9 @@ void r200EmitVbufPrim( r200ContextPtr rmesa,
radeonEmitState(&rmesa->radeon);
- if (R200_DEBUG & (DEBUG_IOCTL|DEBUG_PRIMS))
- fprintf(stderr, "%s cmd_used/4: %d prim %x nr %d\n", __FUNCTION__,
- rmesa->store.cmd_used/4, primitive, vertex_nr);
+ radeon_print(RADEON_RENDER|RADEON_SWRENDER,RADEON_VERBOSE,
+ "%s cmd_used/4: %d prim %x nr %d\n", __FUNCTION__,
+ rmesa->store.cmd_used/4, primitive, vertex_nr);
BEGIN_BATCH(3);
OUT_BATCH_PACKET3_CLIP(R200_CP_CMD_3D_DRAW_VBUF_2, 0);
@@ -175,8 +175,7 @@ void r200FlushElts(GLcontext *ctx)
r200ContextPtr rmesa = R200_CONTEXT(ctx);
int nr, elt_used = rmesa->tcl.elt_used;
- if (R200_DEBUG & (DEBUG_IOCTL|DEBUG_PRIMS))
- fprintf(stderr, "%s %x %d\n", __FUNCTION__, rmesa->tcl.hw_primitive, elt_used);
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s %x %d\n", __FUNCTION__, rmesa->tcl.hw_primitive, elt_used);
assert( rmesa->radeon.dma.flush == r200FlushElts );
rmesa->radeon.dma.flush = NULL;
@@ -193,8 +192,8 @@ void r200FlushElts(GLcontext *ctx)
if (R200_ELT_BUF_SZ > elt_used)
radeonReturnDmaRegion(&rmesa->radeon, R200_ELT_BUF_SZ - elt_used);
- if (R200_DEBUG & DEBUG_SYNC) {
- fprintf(stderr, "%s: Syncing\n", __FUNCTION__);
+ if (radeon_is_debug_enabled(RADEON_SYNC, RADEON_CRITICAL)) {
+ radeon_print(RADEON_SYNC, RADEON_NORMAL, "%s: Syncing\n", __FUNCTION__);
radeonFinish( rmesa->radeon.glCtx );
}
}
@@ -206,8 +205,7 @@ GLushort *r200AllocEltsOpenEnded( r200ContextPtr rmesa,
{
GLushort *retval;
- if (R200_DEBUG & DEBUG_IOCTL)
- fprintf(stderr, "%s %d prim %x\n", __FUNCTION__, min_nr, primitive);
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s %d prim %x\n", __FUNCTION__, min_nr, primitive);
assert((primitive & R200_VF_PRIM_WALK_IND));
@@ -220,10 +218,6 @@ GLushort *r200AllocEltsOpenEnded( r200ContextPtr rmesa,
radeon_bo_map(rmesa->radeon.tcl.elt_dma_bo, 1);
retval = rmesa->radeon.tcl.elt_dma_bo->ptr + rmesa->radeon.tcl.elt_dma_offset;
- if (R200_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: header prim %x \n",
- __FUNCTION__, primitive);
-
assert(!rmesa->radeon.dma.flush);
rmesa->radeon.glCtx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
rmesa->radeon.dma.flush = r200FlushElts;
@@ -231,7 +225,17 @@ GLushort *r200AllocEltsOpenEnded( r200ContextPtr rmesa,
return retval;
}
+void r200EmitMaxVtxIndex(r200ContextPtr rmesa, int count)
+{
+ BATCH_LOCALS(&rmesa->radeon);
+ if (rmesa->radeon.radeonScreen->kernel_mm) {
+ BEGIN_BATCH_NO_AUTOSTATE(2);
+ OUT_BATCH(CP_PACKET0(R200_SE_VF_MAX_VTX_INDX, 0));
+ OUT_BATCH(count);
+ END_BATCH();
+ }
+}
void r200EmitVertexAOS( r200ContextPtr rmesa,
GLuint vertex_size,
@@ -240,8 +244,7 @@ void r200EmitVertexAOS( r200ContextPtr rmesa,
{
BATCH_LOCALS(&rmesa->radeon);
- if (R200_DEBUG & (DEBUG_PRIMS|DEBUG_IOCTL))
- fprintf(stderr, "%s: vertex_size 0x%x offset 0x%x \n",
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s: vertex_size 0x%x offset 0x%x \n",
__FUNCTION__, vertex_size, offset);
@@ -260,9 +263,9 @@ void r200EmitAOS(r200ContextPtr rmesa, GLuint nr, GLuint offset)
int sz = 1 + (nr >> 1) * 3 + (nr & 1) * 2;
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s: nr=%d, ofs=0x%08x\n", __FUNCTION__, nr,
- offset);
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE,
+ "%s: nr=%d, ofs=0x%08x\n",
+ __FUNCTION__, nr, offset);
BEGIN_BATCH(sz+2+ (nr*2));
OUT_BATCH_PACKET3(R200_CP_CMD_3D_LOAD_VBPNTR, sz - 1);
diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index 0898617a3db..3ddb5bf7d60 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -221,26 +221,6 @@ static void r200InitDriverFuncs( struct dd_function_table *functions )
functions->GetString = r200GetString;
}
-static const struct dri_debug_control debug_control[] =
-{
- { "fall", DEBUG_FALLBACKS },
- { "tex", DEBUG_TEXTURE },
- { "ioctl", DEBUG_IOCTL },
- { "prim", DEBUG_PRIMS },
- { "vert", DEBUG_VERTS },
- { "state", DEBUG_STATE },
- { "code", DEBUG_CODEGEN },
- { "vfmt", DEBUG_VFMT },
- { "vtxf", DEBUG_VFMT },
- { "verb", DEBUG_VERBOSE },
- { "dri", DEBUG_DRI },
- { "dma", DEBUG_DMA },
- { "san", DEBUG_SANITY },
- { "sync", DEBUG_SYNC },
- { "pix", DEBUG_PIXEL },
- { "mem", DEBUG_MEMORY },
- { NULL, 0 }
-};
static void r200_get_lock(radeonContextPtr radeon)
{
@@ -498,13 +478,6 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
rmesa->prefer_gart_client_texturing =
(getenv("R200_GART_CLIENT_TEXTURES") != 0);
-#if DO_DEBUG
- R200_DEBUG = driParseDebugString( getenv( "R200_DEBUG" ),
- debug_control );
- R200_DEBUG |= driParseDebugString( getenv( "RADEON_DEBUG" ),
- debug_control );
-#endif
-
tcl_mode = driQueryOptioni(&rmesa->radeon.optionCache, "tcl_mode");
if (driQueryOptionb(&rmesa->radeon.optionCache, "no_rast")) {
fprintf(stderr, "disabling 3D acceleration\n");
diff --git a/src/mesa/drivers/dri/r200/r200_context.h b/src/mesa/drivers/dri/r200/r200_context.h
index c5dccf0a75a..246f98c6dc5 100644
--- a/src/mesa/drivers/dri/r200/r200_context.h
+++ b/src/mesa/drivers/dri/r200/r200_context.h
@@ -479,6 +479,11 @@ struct r200_texture_state {
#define R200_QUERYOBJ_DATA_0 1
#define R200_QUERYOBJ_CMDSIZE 2
+#define STP_CMD_0 0
+#define STP_DATA_0 1
+#define STP_CMD_1 2
+#define STP_STATE_SIZE 35
+
struct r200_hw_state {
/* Hardware state, stored as cmdbuf commands:
* -- Need to doublebuffer for
@@ -521,6 +526,7 @@ struct r200_hw_state {
struct radeon_state_atom atf;
struct radeon_state_atom spr;
struct radeon_state_atom ptp;
+ struct radeon_state_atom stp;
};
struct r200_state {
diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.c b/src/mesa/drivers/dri/r200/r200_ioctl.c
index 4dbda39eb95..b238adb9721 100644
--- a/src/mesa/drivers/dri/r200/r200_ioctl.c
+++ b/src/mesa/drivers/dri/r200/r200_ioctl.c
@@ -190,7 +190,7 @@ static void r200Clear( GLcontext *ctx, GLbitfield mask )
GLuint color_mask = 0;
GLuint orig_mask = mask;
- if ( R200_DEBUG & DEBUG_IOCTL ) {
+ if ( R200_DEBUG & RADEON_IOCTL ) {
if (rmesa->radeon.sarea)
fprintf( stderr, "r200Clear %x %d\n", mask, rmesa->radeon.sarea->pfCurrentPage);
else
@@ -229,7 +229,7 @@ static void r200Clear( GLcontext *ctx, GLbitfield mask )
}
if ( mask ) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "%s: swrast clear, mask: %x\n", __FUNCTION__, mask);
_swrast_Clear( ctx, mask );
}
@@ -274,7 +274,7 @@ void *r200AllocateMemoryMESA(__DRIscreen *screen, GLsizei size,
drm_radeon_mem_alloc_t alloc;
int ret;
- if (R200_DEBUG & DEBUG_IOCTL)
+ if (R200_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s sz %d %f/%f/%f\n", __FUNCTION__, size, readfreq,
writefreq, priority);
@@ -314,7 +314,7 @@ void r200FreeMemoryMESA(__DRIscreen *screen, GLvoid *pointer)
drm_radeon_mem_free_t memfree;
int ret;
- if (R200_DEBUG & DEBUG_IOCTL)
+ if (R200_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s %p\n", __FUNCTION__, pointer);
if (!ctx || !(rmesa = R200_CONTEXT(ctx)) || !rmesa->radeon.radeonScreen->gartTextures.map) {
@@ -370,7 +370,7 @@ GLboolean r200IsGartMemory( r200ContextPtr rmesa, const GLvoid *pointer,
offset >= 0 &&
offset + size < rmesa->radeon.radeonScreen->gartTextures.size);
- if (R200_DEBUG & DEBUG_IOCTL)
+ if (R200_DEBUG & RADEON_IOCTL)
fprintf(stderr, "r200IsGartMemory( %p ) : %d\n", pointer, valid );
return valid;
diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.h b/src/mesa/drivers/dri/r200/r200_ioctl.h
index 9f06d23b384..8d51aefa042 100644
--- a/src/mesa/drivers/dri/r200/r200_ioctl.h
+++ b/src/mesa/drivers/dri/r200/r200_ioctl.h
@@ -44,6 +44,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "drm.h"
#include "radeon_drm.h"
+extern void r200EmitMaxVtxIndex(r200ContextPtr rmesa, int count);
extern void r200EmitVertexAOS( r200ContextPtr rmesa,
GLuint vertex_size,
struct radeon_bo *bo,
diff --git a/src/mesa/drivers/dri/r200/r200_pixel.c b/src/mesa/drivers/dri/r200/r200_pixel.c
index 7201ddad2d2..95773871e02 100644
--- a/src/mesa/drivers/dri/r200/r200_pixel.c
+++ b/src/mesa/drivers/dri/r200/r200_pixel.c
@@ -53,14 +53,14 @@ check_color( const GLcontext *ctx, GLenum type, GLenum format,
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLuint cpp = rmesa->radeon.radeonScreen->cpp;
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
if ( (pitch & 63) ||
ctx->_ImageTransferState ||
packing->SwapBytes ||
packing->LsbFirst) {
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: failed 1\n", __FUNCTION__);
return GL_FALSE;
}
@@ -68,12 +68,12 @@ check_color( const GLcontext *ctx, GLenum type, GLenum format,
if ( type == GL_UNSIGNED_INT_8_8_8_8_REV &&
cpp == 4 &&
format == GL_BGRA ) {
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: passed 2\n", __FUNCTION__);
return GL_TRUE;
}
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: failed\n", __FUNCTION__);
return GL_FALSE;
@@ -159,14 +159,14 @@ r200TryReadPixels( GLcontext *ctx,
GLuint cpp = rmesa->radeon.radeonScreen->cpp;
GLint size = width * height * cpp;
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
/* Only accelerate reading to GART buffers.
*/
if ( !r200IsGartMemory(rmesa, pixels,
pitch * height * rmesa->radeon.radeonScreen->cpp ) ) {
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: dest not GART\n", __FUNCTION__);
}
@@ -174,7 +174,7 @@ r200TryReadPixels( GLcontext *ctx,
* blitter:
*/
if (!pack->Invert) {
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: MESA_PACK_INVERT not set\n", __FUNCTION__);
return GL_FALSE;
}
@@ -207,7 +207,7 @@ r200TryReadPixels( GLcontext *ctx,
if (!clip_pixelrect(ctx, ctx->ReadBuffer, &x, &y, &width, &height,
&size)) {
UNLOCK_HARDWARE( &rmesa->radeon );
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s totally clipped -- nothing to do\n",
__FUNCTION__);
return GL_TRUE;
@@ -232,7 +232,7 @@ r200TryReadPixels( GLcontext *ctx,
y += dPriv->y;
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "readpixel blit src_pitch %d dst_pitch %d\n",
src_pitch, dst_pitch);
@@ -275,7 +275,7 @@ r200ReadPixels( GLcontext *ctx,
const struct gl_pixelstore_attrib *pack,
GLvoid *pixels )
{
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
if (!r200TryReadPixels( ctx, x, y, width, height, format, type, pack,
@@ -293,7 +293,7 @@ static void do_draw_pix( GLcontext *ctx,
const void *pixels,
GLuint planemask)
{
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
#if 0
@@ -388,7 +388,7 @@ r200TryDrawPixels( GLcontext *ctx,
GLuint cpp = rmesa->radeon.radeonScreen->cpp;
GLint size = height * pitch * cpp;
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
/* check that we're drawing to exactly one color buffer */
@@ -414,7 +414,7 @@ r200TryDrawPixels( GLcontext *ctx,
/* Can't do conversions on GART reads/draws.
*/
if ( !r200IsGartMemory( rmesa, pixels, size ) ) {
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s: not GART memory\n", __FUNCTION__);
return GL_FALSE;
}
@@ -457,7 +457,7 @@ r200DrawPixels( GLcontext *ctx,
const struct gl_pixelstore_attrib *unpack,
const GLvoid *pixels )
{
- if (R200_DEBUG & DEBUG_PIXEL)
+ if (R200_DEBUG & RADEON_PIXEL)
fprintf(stderr, "%s\n", __FUNCTION__);
if (!r200TryDrawPixels( ctx, x, y, width, height, format, type,
diff --git a/src/mesa/drivers/dri/r200/r200_sanity.c b/src/mesa/drivers/dri/r200/r200_sanity.c
index 36530c224e9..1241a926ba1 100644
--- a/src/mesa/drivers/dri/r200/r200_sanity.c
+++ b/src/mesa/drivers/dri/r200/r200_sanity.c
@@ -48,11 +48,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#define MORE_VERBOSE 1
#if MORE_VERBOSE
-#define VERBOSE (R200_DEBUG & DEBUG_VERBOSE)
+#define VERBOSE (R200_DEBUG & RADEON_VERBOSE)
#define NORMAL (1)
#else
#define VERBOSE 0
-#define NORMAL (R200_DEBUG & DEBUG_VERBOSE)
+#define NORMAL (R200_DEBUG & RADEON_VERBOSE)
#endif
diff --git a/src/mesa/drivers/dri/r200/r200_state.c b/src/mesa/drivers/dri/r200/r200_state.c
index ab1ba1f283a..76852e315c1 100644
--- a/src/mesa/drivers/dri/r200/r200_state.c
+++ b/src/mesa/drivers/dri/r200/r200_state.c
@@ -1028,7 +1028,7 @@ void r200UpdateMaterial( GLcontext *ctx )
if (ctx->Light.ColorMaterialEnabled)
mask &= ~ctx->Light.ColorMaterialBitmask;
- if (R200_DEBUG & DEBUG_STATE)
+ if (R200_DEBUG & RADEON_STATE)
fprintf(stderr, "%s\n", __FUNCTION__);
if (mask & MAT_BIT_FRONT_EMISSION) {
@@ -1790,7 +1790,7 @@ static void r200Enable( GLcontext *ctx, GLenum cap, GLboolean state )
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLuint p, flag;
- if ( R200_DEBUG & DEBUG_STATE )
+ if ( R200_DEBUG & RADEON_STATE )
fprintf( stderr, "%s( %s = %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr( cap ),
state ? "GL_TRUE" : "GL_FALSE" );
@@ -2174,7 +2174,7 @@ void r200LightingSpaceChange( GLcontext *ctx )
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLboolean tmp;
- if (R200_DEBUG & DEBUG_STATE)
+ if (R200_DEBUG & RADEON_STATE)
fprintf(stderr, "%s %d BEFORE %x\n", __FUNCTION__, ctx->_NeedEyeCoords,
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL_0]);
@@ -2190,7 +2190,7 @@ void r200LightingSpaceChange( GLcontext *ctx )
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL_0] &= ~R200_RESCALE_NORMALS;
}
- if (R200_DEBUG & DEBUG_STATE)
+ if (R200_DEBUG & RADEON_STATE)
fprintf(stderr, "%s %d AFTER %x\n", __FUNCTION__, ctx->_NeedEyeCoords,
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL_0]);
}
@@ -2233,7 +2233,7 @@ static void update_texturematrix( GLcontext *ctx )
GLuint compsel = rmesa->hw.vtx.cmd[VTX_TCL_OUTPUT_COMPSEL];
int unit;
- if (R200_DEBUG & DEBUG_STATE)
+ if (R200_DEBUG & RADEON_STATE)
fprintf(stderr, "%s before COMPSEL: %x\n", __FUNCTION__,
rmesa->hw.vtx.cmd[VTX_TCL_OUTPUT_COMPSEL]);
@@ -2291,7 +2291,7 @@ static GLboolean r200ValidateBuffers(GLcontext *ctx)
struct radeon_dma_bo *dma_bo;
int i, ret;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
radeon_cs_space_reset_bos(rmesa->radeon.cmdbuf.cs);
@@ -2466,6 +2466,21 @@ static void r200WrapRunPipeline( GLcontext *ctx )
}
+static void r200PolygonStipple( GLcontext *ctx, const GLubyte *mask )
+{
+ r200ContextPtr r200 = R200_CONTEXT(ctx);
+ GLint i;
+
+ radeon_firevertices(&r200->radeon);
+
+ R200_STATECHANGE(r200, stp);
+
+ /* Must flip pattern upside down.
+ */
+ for ( i = 31 ; i >= 0; i--) {
+ r200->hw.stp.cmd[3 + i] = ((GLuint *) mask)[i];
+ }
+}
/* Initialize the driver's state functions.
*/
void r200InitStateFuncs( struct dd_function_table *functions, GLboolean dri2 )
@@ -2503,7 +2518,7 @@ void r200InitStateFuncs( struct dd_function_table *functions, GLboolean dri2 )
functions->PolygonMode = r200PolygonMode;
functions->PolygonOffset = r200PolygonOffset;
if (dri2)
- functions->PolygonStipple = radeonPolygonStipple;
+ functions->PolygonStipple = r200PolygonStipple;
else
functions->PolygonStipple = radeonPolygonStipplePreKMS;
functions->PointParameterfv = r200PointParameter;
diff --git a/src/mesa/drivers/dri/r200/r200_state_init.c b/src/mesa/drivers/dri/r200/r200_state_init.c
index 4c484d067ee..7697306d889 100644
--- a/src/mesa/drivers/dri/r200/r200_state_init.c
+++ b/src/mesa/drivers/dri/r200/r200_state_init.c
@@ -271,7 +271,7 @@ CHECK( pix_zero, !ctx->ATIFragmentShader._Enabled, 0 )
CHECK( afs_pass1, (ctx->ATIFragmentShader._Enabled && (ctx->ATIFragmentShader.Current->NumPasses > 1)), 0 )
CHECK( afs, ctx->ATIFragmentShader._Enabled, 0 )
CHECK( tex_cube, rmesa->state.texture.unit[atom->idx].unitneeded & TEXTURE_CUBE_BIT, 3 + 3*5 - CUBE_STATE_SIZE )
-CHECK( tex_cube_cs, rmesa->state.texture.unit[atom->idx].unitneeded & TEXTURE_CUBE_BIT, 2 + 2*5 - CUBE_STATE_SIZE )
+CHECK( tex_cube_cs, rmesa->state.texture.unit[atom->idx].unitneeded & TEXTURE_CUBE_BIT, 2 + 4*5 - CUBE_STATE_SIZE )
TCL_CHECK( tcl_fog, ctx->Fog.Enabled, 0 )
TCL_CHECK( tcl_fog_add4, ctx->Fog.Enabled, 4 )
TCL_CHECK( tcl, GL_TRUE, 0 )
@@ -764,7 +764,7 @@ static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom)
for (j = 1; j <= 5; j++) {
OUT_BATCH(CP_PACKET0(R200_PP_CUBIC_OFFSET_F1_0 + (24*i) + (4 * (j-1)), 0));
OUT_BATCH_RELOC(lvl->faces[j].offset, t->mt->bo, lvl->faces[j].offset,
- RADEON_GEM_DOMAIN_VRAM, 0, 0);
+ RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
}
}
END_BATCH();
@@ -885,6 +885,10 @@ void r200InitState( r200ContextPtr rmesa )
}
}
}
+ /* polygon stipple is done with irq for non-kms */
+ if (rmesa->radeon.radeonScreen->kernel_mm) {
+ ALLOC_STATE( stp, always, STP_STATE_SIZE, "STP/stp", 0 );
+ }
for (i = 0; i < 6; i++)
if (rmesa->radeon.radeonScreen->kernel_mm)
@@ -1117,6 +1121,11 @@ void r200InitState( r200ContextPtr rmesa )
rmesa->hw.sci.cmd[SCI_CMD_2] = CP_PACKET0(R200_RE_WIDTH_HEIGHT, 0);
if (rmesa->radeon.radeonScreen->kernel_mm) {
+
+ rmesa->hw.stp.cmd[STP_CMD_0] = CP_PACKET0(RADEON_RE_STIPPLE_ADDR, 0);
+ rmesa->hw.stp.cmd[STP_DATA_0] = 0;
+ rmesa->hw.stp.cmd[STP_CMD_1] = CP_PACKET0_ONE(RADEON_RE_STIPPLE_DATA, 31);
+
rmesa->hw.mtl[0].emit = mtl_emit;
rmesa->hw.mtl[1].emit = mtl_emit;
diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.c b/src/mesa/drivers/dri/r200/r200_swtcl.c
index 0e7d24e7e96..240fb450780 100644
--- a/src/mesa/drivers/dri/r200/r200_swtcl.c
+++ b/src/mesa/drivers/dri/r200/r200_swtcl.c
@@ -203,7 +203,7 @@ static void r200SetVertexFormat( GLcontext *ctx )
static void r200_predict_emit_size( r200ContextPtr rmesa )
{
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
const int vertex_array_size = 7;
const int prim_size = 3;
@@ -225,7 +225,7 @@ static void r200_predict_emit_size( r200ContextPtr rmesa )
static void r200RenderStart( GLcontext *ctx )
{
r200SetVertexFormat( ctx );
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
}
@@ -290,7 +290,7 @@ void r200ChooseVertexState( GLcontext *ctx )
void r200_swtcl_flush(GLcontext *ctx, uint32_t current_offset)
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
@@ -377,7 +377,7 @@ static void* r200_alloc_verts( r200ContextPtr rmesa, GLuint n, GLuint size)
const char *r200verts = (char *)rmesa->radeon.swtcl.verts;
#define VERT(x) (radeonVertex *)(r200verts + ((x) * vertsize * sizeof(int)))
#define VERTEX radeonVertex
-#define DO_DEBUG_VERTS (1 && (R200_DEBUG & DEBUG_VERTS))
+#define DO_DEBUG_VERTS (1 && (R200_DEBUG & RADEON_VERTS))
#undef TAG
#define TAG(x) r200_##x
@@ -688,7 +688,7 @@ void r200Fallback( GLcontext *ctx, GLuint bit, GLboolean mode )
TCL_FALLBACK( ctx, R200_TCL_FALLBACK_RASTER, GL_TRUE );
_swsetup_Wakeup( ctx );
rmesa->radeon.swtcl.RenderIndex = ~0;
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "R200 begin rasterization fallback: 0x%x %s\n",
bit, getFallbackString(bit));
}
@@ -720,7 +720,7 @@ void r200Fallback( GLcontext *ctx, GLuint bit, GLboolean mode )
r200ChooseVertexState( ctx );
r200ChooseRenderState( ctx );
}
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "R200 end rasterization fallback: 0x%x %s\n",
bit, getFallbackString(bit));
}
diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c
index 0f35d4d5b1f..c702910ef21 100644
--- a/src/mesa/drivers/dri/r200/r200_tcl.c
+++ b/src/mesa/drivers/dri/r200/r200_tcl.c
@@ -161,6 +161,7 @@ static GLushort *r200AllocElts( r200ContextPtr rmesa, GLuint nr )
r200EmitAOS( rmesa,
rmesa->radeon.tcl.aos_count, 0 );
+ r200EmitMaxVtxIndex(rmesa, rmesa->radeon.tcl.aos[0].count);
return r200AllocEltsOpenEnded( rmesa, rmesa->tcl.hw_primitive, nr );
}
}
@@ -416,8 +417,9 @@ static GLuint r200EnsureEmitSize( GLcontext * ctx , GLubyte* vimap_rev )
}
}
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s space %u, aos %d\n", __func__, space_required, AOS_BUFSZ(nr_aos) );
+ radeon_print(RADEON_RENDER,RADEON_VERBOSE,
+ "%s space %u, aos %d\n",
+ __func__, space_required, AOS_BUFSZ(nr_aos) );
/* flush the buffer in case we need more than is left. */
if (rcommonEnsureCmdBufSpace(&rmesa->radeon, space_required + state_size, __FUNCTION__))
return space_required + radeonCountStateEmitSize( &rmesa->radeon );
@@ -453,8 +455,7 @@ static GLboolean r200_run_tcl_render( GLcontext *ctx,
if (rmesa->radeon.TclFallback)
return GL_TRUE; /* fallback to software t&l */
- if (R200_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s\n", __FUNCTION__);
+ radeon_print(RADEON_RENDER, RADEON_NORMAL, "%s\n", __FUNCTION__);
if (VB->Count == 0)
return GL_FALSE;
@@ -650,7 +651,7 @@ static void transition_to_hwtnl( GLcontext *ctx )
rmesa->hw.vte.cmd[VTE_SE_VTE_CNTL] &= ~(R200_VTX_XY_FMT|R200_VTX_Z_FMT);
rmesa->hw.vte.cmd[VTE_SE_VTE_CNTL] |= R200_VTX_W0_FMT;
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "R200 end tcl fallback\n");
}
@@ -692,7 +693,7 @@ void r200TclFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
if (mode) {
rmesa->radeon.TclFallback |= bit;
if (oldfallback == 0) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "R200 begin tcl fallback %s\n",
getFallbackString( bit ));
transition_to_swtnl( ctx );
@@ -701,7 +702,7 @@ void r200TclFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
else {
rmesa->radeon.TclFallback &= ~bit;
if (oldfallback == bit) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "R200 end tcl fallback %s\n",
getFallbackString( bit ));
transition_to_hwtnl( ctx );
diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c
index 9f791579158..36d9e37d875 100644
--- a/src/mesa/drivers/dri/r200/r200_tex.c
+++ b/src/mesa/drivers/dri/r200/r200_tex.c
@@ -287,7 +287,7 @@ static void r200TexEnv( GLcontext *ctx, GLenum target,
GLuint unit = ctx->Texture.CurrentUnit;
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
- if ( R200_DEBUG & DEBUG_STATE ) {
+ if ( R200_DEBUG & RADEON_STATE ) {
fprintf( stderr, "%s( %s )\n",
__FUNCTION__, _mesa_lookup_enum_by_nr( pname ) );
}
@@ -359,7 +359,7 @@ static void r200TexParameter( GLcontext *ctx, GLenum target,
{
radeonTexObj* t = radeon_tex_obj(texObj);
- if ( R200_DEBUG & (DEBUG_STATE|DEBUG_TEXTURE) ) {
+ if ( R200_DEBUG & (RADEON_STATE|RADEON_TEXTURE) ) {
fprintf( stderr, "%s( %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr( pname ) );
}
@@ -409,7 +409,7 @@ static void r200DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj)
r200ContextPtr rmesa = R200_CONTEXT(ctx);
radeonTexObj* t = radeon_tex_obj(texObj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
+ if (RADEON_DEBUG & (RADEON_STATE | RADEON_TEXTURE)) {
fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
(void *)texObj,
_mesa_lookup_enum_by_nr(texObj->Target));
@@ -470,7 +470,7 @@ static struct gl_texture_object *r200NewTextureObject(GLcontext * ctx,
radeonTexObj* t = CALLOC_STRUCT(radeon_tex_obj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
+ if (RADEON_DEBUG & (RADEON_STATE | RADEON_TEXTURE)) {
fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
t, _mesa_lookup_enum_by_nr(target));
}
diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c
index 4e53672aee2..c94834752ed 100644
--- a/src/mesa/drivers/dri/r200/r200_texstate.c
+++ b/src/mesa/drivers/dri/r200/r200_texstate.c
@@ -321,7 +321,7 @@ static GLboolean r200UpdateTextureEnv( GLcontext *ctx, int unit, int slot, GLuin
assert( (texUnit->_ReallyEnabled == 0)
|| (texUnit->_Current != NULL) );
- if ( R200_DEBUG & DEBUG_TEXTURE ) {
+ if ( R200_DEBUG & RADEON_TEXTURE ) {
fprintf( stderr, "%s( %p, %d )\n", __FUNCTION__, (void *)ctx, unit );
}
@@ -1084,6 +1084,8 @@ static void disable_tex_obj_state( r200ContextPtr rmesa,
R200_STATECHANGE( rmesa, vtx );
rmesa->hw.vtx.cmd[VTX_TCL_OUTPUT_VTXFMT_1] &= ~(7 << (unit * 3));
+ R200_STATECHANGE( rmesa, ctx );
+ rmesa->hw.ctx.cmd[CTX_PP_CNTL] &= ~(R200_TEX_0_ENABLE << unit);
if (rmesa->radeon.TclFallback & (R200_TCL_FALLBACK_TEXGEN_0<<unit)) {
TCL_FALLBACK( rmesa->radeon.glCtx, (R200_TCL_FALLBACK_TEXGEN_0<<unit), GL_FALSE);
}
@@ -1276,7 +1278,7 @@ static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit )
}
if (mixed_fallback) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback mixed texgen, 0x%x (0x%x 0x%x 0x%x 0x%x)\n",
texUnit->TexGenEnabled, texUnit->GenS.Mode, texUnit->GenT.Mode,
texUnit->GenR.Mode, texUnit->GenQ.Mode);
@@ -1302,7 +1304,7 @@ static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit )
texUnit->GenR.ObjectPlane,
texUnit->GenQ.ObjectPlane );
if (needtgenable & (S_BIT | T_BIT)) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback mixed texgen / obj plane, 0x%x\n",
texUnit->TexGenEnabled);
return GL_FALSE;
@@ -1330,7 +1332,7 @@ static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit )
texUnit->GenR.EyePlane,
texUnit->GenQ.EyePlane );
if (needtgenable & (S_BIT | T_BIT)) {
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback mixed texgen / eye plane, 0x%x\n",
texUnit->TexGenEnabled);
return GL_FALSE;
@@ -1380,7 +1382,7 @@ static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit )
default:
/* Unsupported mode, fallback:
*/
- if (R200_DEBUG & DEBUG_FALLBACKS)
+ if (R200_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback unsupported texgen, %d\n",
texUnit->GenS.Mode);
return GL_FALSE;
diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c b/src/mesa/drivers/dri/r200/r200_vertprog.c
index 620f29b5c6e..11405d7caee 100644
--- a/src/mesa/drivers/dri/r200/r200_vertprog.c
+++ b/src/mesa/drivers/dri/r200/r200_vertprog.c
@@ -423,7 +423,7 @@ static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_verte
~(VERT_BIT_POS | VERT_BIT_NORMAL | VERT_BIT_COLOR0 | VERT_BIT_COLOR1 |
VERT_BIT_FOG | VERT_BIT_TEX0 | VERT_BIT_TEX1 | VERT_BIT_TEX2 |
VERT_BIT_TEX3 | VERT_BIT_TEX4 | VERT_BIT_TEX5)) != 0) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "can't handle vert prog inputs 0x%x\n",
mesa_vp->Base.InputsRead);
}
@@ -436,7 +436,7 @@ static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_verte
(1 << VERT_RESULT_FOGC) | (1 << VERT_RESULT_TEX0) | (1 << VERT_RESULT_TEX1) |
(1 << VERT_RESULT_TEX2) | (1 << VERT_RESULT_TEX3) | (1 << VERT_RESULT_TEX4) |
(1 << VERT_RESULT_TEX5) | (1 << VERT_RESULT_PSIZ))) != 0) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "can't handle vert prog outputs 0x%x\n",
mesa_vp->Base.OutputsWritten);
}
@@ -551,7 +551,7 @@ static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_verte
if (mesa_vp->Base.InputsRead & (1 << i)) {
array_count++;
if (array_count > 12) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "more than 12 attribs used in vert prog\n");
}
return GL_FALSE;
@@ -571,13 +571,13 @@ static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_verte
}
if (!(mesa_vp->Base.OutputsWritten & (1 << VERT_RESULT_HPOS))) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "can't handle vert prog without position output\n");
}
return GL_FALSE;
}
if (free_inputs & 1) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "can't handle vert prog without position input\n");
}
return GL_FALSE;
@@ -1070,7 +1070,7 @@ else {
mesa_vp->Base.NumTemporaries + u_temp_used;
}
if ((mesa_vp->Base.NumTemporaries + u_temp_used) > R200_VSF_MAX_TEMPS) {
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "Ran out of temps, num temps %d, us %d\n", mesa_vp->Base.NumTemporaries, u_temp_used);
}
return GL_FALSE;
@@ -1078,7 +1078,7 @@ else {
u_temp_i = R200_VSF_MAX_TEMPS - 1;
if(o_inst - vp->instr >= R200_VSF_MAX_INST) {
mesa_vp->Base.NumNativeInstructions = 129;
- if (R200_DEBUG & DEBUG_FALLBACKS) {
+ if (R200_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "more than 128 native instructions\n");
}
return GL_FALSE;
diff --git a/src/mesa/drivers/dri/r200/radeon_debug.c b/src/mesa/drivers/dri/r200/radeon_debug.c
new file mode 120000
index 00000000000..c98c2e074c5
--- /dev/null
+++ b/src/mesa/drivers/dri/r200/radeon_debug.c
@@ -0,0 +1 @@
+../radeon/radeon_debug.c \ No newline at end of file
diff --git a/src/mesa/drivers/dri/r200/radeon_debug.h b/src/mesa/drivers/dri/r200/radeon_debug.h
new file mode 120000
index 00000000000..bd8aa28e89e
--- /dev/null
+++ b/src/mesa/drivers/dri/r200/radeon_debug.h
@@ -0,0 +1 @@
+../radeon/radeon_debug.h \ No newline at end of file
diff --git a/src/mesa/drivers/dri/r300/Makefile b/src/mesa/drivers/dri/r300/Makefile
index 5d1e2c0adc7..06c31ce7f2e 100644
--- a/src/mesa/drivers/dri/r300/Makefile
+++ b/src/mesa/drivers/dri/r300/Makefile
@@ -27,18 +27,19 @@ COMMON_SOURCES = \
../common/dri_util.c
RADEON_COMMON_SOURCES = \
- radeon_texture.c \
+ radeon_bo_legacy.c \
+ radeon_buffer_objects.c \
radeon_common_context.c \
radeon_common.c \
+ radeon_cs_legacy.c \
radeon_dma.c \
+ radeon_debug.c \
+ radeon_fbo.c \
radeon_lock.c \
- radeon_bo_legacy.c \
- radeon_cs_legacy.c \
radeon_mipmap_tree.c \
radeon_span.c \
- radeon_fbo.c \
- radeon_buffer_objects.c \
- radeon_queryobj.c
+ radeon_queryobj.c \
+ radeon_texture.c
DRIVER_SOURCES = \
radeon_screen.c \
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.h b/src/mesa/drivers/dri/r300/compiler/radeon_code.h
index de0c88ed516..75069e841e3 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_code.h
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_code.h
@@ -222,4 +222,5 @@ struct r300_vertex_program_code {
void r300_vertex_program_dump(struct r300_vertex_program_code * vs);
-#endif /* RADEON_CODE_H */ \ No newline at end of file
+#endif /* RADEON_CODE_H */
+
diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c
index 451f1fd0fab..0fe32a5443a 100644
--- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c
+++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c
@@ -274,7 +274,7 @@ static void emit_cb_offset(GLcontext *ctx, struct radeon_state_atom * atom)
return;
}
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr,"rrb is %p %d %dx%d\n", rrb, offset, rrb->base.Width, rrb->base.Height);
cbpitch = (rrb->pitch / rrb->cpp);
if (rrb->cpp == 4)
@@ -494,7 +494,7 @@ void r300InitCmdBuf(r300ContextPtr r300)
r300->radeon.hw.max_state_size = 2 + 2; /* reserve extra space for WAIT_IDLE and tex cache flush */
mtu = r300->radeon.glCtx->Const.MaxTextureUnits;
- if (RADEON_DEBUG & DEBUG_TEXTURE) {
+ if (RADEON_DEBUG & RADEON_TEXTURE) {
fprintf(stderr, "Using %d maximum texture units..\n", mtu);
}
diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c
index 2ea1b826de9..6fcf209af66 100644
--- a/src/mesa/drivers/dri/r300/r300_context.c
+++ b/src/mesa/drivers/dri/r300/r300_context.c
@@ -84,6 +84,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define need_GL_EXT_framebuffer_object
#define need_GL_EXT_fog_coord
#define need_GL_EXT_gpu_program_parameters
+#define need_GL_EXT_provoking_vertex
#define need_GL_EXT_secondary_color
#define need_GL_EXT_stencil_two_side
#define need_GL_ATI_separate_stencil
@@ -116,6 +117,7 @@ const struct dri_extension card_extensions[] = {
{"GL_EXT_packed_depth_stencil", NULL},
{"GL_EXT_fog_coord", GL_EXT_fog_coord_functions },
{"GL_EXT_gpu_program_parameters", GL_EXT_gpu_program_parameters_functions},
+ {"GL_EXT_provoking_vertex", GL_EXT_provoking_vertex_functions },
{"GL_EXT_secondary_color", GL_EXT_secondary_color_functions},
{"GL_EXT_shadow_funcs", NULL},
{"GL_EXT_stencil_two_side", GL_EXT_stencil_two_side_functions},
diff --git a/src/mesa/drivers/dri/r300/r300_draw.c b/src/mesa/drivers/dri/r300/r300_draw.c
index 2e475b1adfa..e9968f9ffef 100644
--- a/src/mesa/drivers/dri/r300/r300_draw.c
+++ b/src/mesa/drivers/dri/r300/r300_draw.c
@@ -91,6 +91,10 @@ static void r300FixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer
}
src_ptr = ADD_POINTERS(mesa_ind_buf->obj->Pointer, mesa_ind_buf->ptr);
+ radeon_print(RADEON_FALLBACKS, RADEON_IMPORTANT,
+ "%s: Fixing index buffer format. type %d\n",
+ __func__, mesa_ind_buf->type);
+
if (mesa_ind_buf->type == GL_UNSIGNED_BYTE) {
GLuint size = sizeof(GLushort) * ((mesa_ind_buf->count + 1) & ~1);
GLubyte *in = (GLubyte *)src_ptr;
@@ -146,6 +150,7 @@ static void r300SetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer
r300->ind_buf.bo = NULL;
return;
}
+ radeon_print(RADEON_RENDER, RADEON_TRACE, "%s\n", __func__);
#if MESA_BIG_ENDIAN
if (mesa_ind_buf->type == GL_UNSIGNED_INT) {
@@ -239,10 +244,11 @@ static void r300ConvertAttrib(GLcontext *ctx, int count, const struct gl_client_
radeonAllocDmaRegion(&r300->radeon, &attr->bo, &attr->bo_offset, sizeof(GLfloat) * input->Size * count, 32);
dst_ptr = (GLfloat *)ADD_POINTERS(attr->bo->ptr, attr->bo_offset);
- if (RADEON_DEBUG & DEBUG_FALLBACKS) {
- fprintf(stderr, "%s: Converting vertex attributes, attribute data format %x,", __FUNCTION__, input->Type);
- fprintf(stderr, "stride %d, components %d\n", stride, input->Size);
- }
+ radeon_print(RADEON_FALLBACKS, RADEON_IMPORTANT,
+ "%s: Converting vertex attributes, attribute data format %x,"
+ "stride %d, components %d\n"
+ , __FUNCTION__, input->Type
+ , stride, input->Size);
assert(src_ptr != NULL);
@@ -293,6 +299,8 @@ static void r300AlignDataToDword(GLcontext *ctx, const struct gl_client_array *i
mapped_named_bo = GL_TRUE;
}
+ radeon_print(RADEON_FALLBACKS, RADEON_IMPORTANT, "%s. Vertex alignment doesn't match hw requirements.\n", __func__);
+
{
GLvoid *src_ptr = ADD_POINTERS(input->BufferObj->Pointer, input->Ptr);
GLvoid *dst_ptr = ADD_POINTERS(attr->bo->ptr, attr->bo_offset);
@@ -320,6 +328,7 @@ static void r300TranslateAttrib(GLcontext *ctx, GLuint attr, int count, const st
GLenum type;
GLuint stride;
+ radeon_print(RADEON_RENDER, RADEON_TRACE, "%s\n", __func__);
stride = (input->StrideB == 0) ? getTypeSize(input->Type) * input->Size : input->StrideB;
if (input->Type == GL_DOUBLE || input->Type == GL_UNSIGNED_INT || input->Type == GL_INT ||
@@ -442,6 +451,7 @@ static void r300SetVertexFormat(GLcontext *ctx, const struct gl_client_array *ar
{
r300ContextPtr r300 = R300_CONTEXT(ctx);
struct r300_vertex_buffer *vbuf = &r300->vbuf;
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s\n", __func__);
{
int i, tmp;
@@ -474,6 +484,9 @@ static void r300AllocDmaRegions(GLcontext *ctx, const struct gl_client_array *in
GLuint stride;
int ret;
int i, index;
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE,
+ "%s: count %d num_attribs %d\n",
+ __func__, count, vbuf->num_attribs);
for (index = 0; index < vbuf->num_attribs; index++) {
struct radeon_aos *aos = &r300->radeon.tcl.aos[index];
@@ -550,6 +563,7 @@ static void r300FreeData(GLcontext *ctx)
* to prevent double unref in radeonReleaseArrays
* called during context destroy
*/
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s\n", __func__);
r300ContextPtr r300 = R300_CONTEXT(ctx);
{
int i;
@@ -592,8 +606,7 @@ static GLuint r300PredictTryDrawPrimsSize(GLcontext *ctx, GLuint nr_prims)
else
dwords += state_size;
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: total prediction size is %d.\n", __FUNCTION__, dwords);
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s: total prediction size is %d.\n", __FUNCTION__, dwords);
return dwords;
}
@@ -608,8 +621,7 @@ static GLboolean r300TryDrawPrims(GLcontext *ctx,
struct r300_context *r300 = R300_CONTEXT(ctx);
GLuint i;
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: %u (%d-%d) cs begin at %d\n",
+ radeon_print(RADEON_RENDER, RADEON_NORMAL, "%s: %u (%d-%d) cs begin at %d\n",
__FUNCTION__, nr_prims, min_index, max_index, r300->radeon.cmdbuf.cs->cdw );
if (ctx->NewState)
@@ -654,8 +666,7 @@ static GLboolean r300TryDrawPrims(GLcontext *ctx,
r300FreeData(ctx);
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: %u (%d-%d) cs ending at %d\n",
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s: %u (%d-%d) cs ending at %d\n",
__FUNCTION__, nr_prims, min_index, max_index, r300->radeon.cmdbuf.cs->cdw );
if (emit_end < r300->radeon.cmdbuf.cs->cdw)
@@ -684,6 +695,9 @@ static void r300DrawPrims(GLcontext *ctx,
}
if (min_index) {
+ radeon_print(RADEON_FALLBACKS, RADEON_IMPORTANT,
+ "%s: Rebasing primitives. %p nr_prims %d min_index %u max_index %u\n",
+ __func__, prim, nr_prims, min_index, max_index);
vbo_rebase_prims( ctx, arrays, prim, nr_prims, ib, min_index, max_index, r300DrawPrims );
return;
}
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
index 588b9c08250..7f8a0174595 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
@@ -203,7 +203,7 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog
struct r300_fragment_program_compiler compiler;
rc_init(&compiler.Base);
- compiler.Base.Debug = (RADEON_DEBUG & DEBUG_PIXEL) ? GL_TRUE : GL_FALSE;
+ compiler.Base.Debug = (RADEON_DEBUG & RADEON_PIXEL) ? GL_TRUE : GL_FALSE;
compiler.code = &fp->code;
compiler.state = fp->state;
diff --git a/src/mesa/drivers/dri/r300/r300_ioctl.c b/src/mesa/drivers/dri/r300/r300_ioctl.c
index 3303078e39a..5cb04e2bb6d 100644
--- a/src/mesa/drivers/dri/r300/r300_ioctl.c
+++ b/src/mesa/drivers/dri/r300/r300_ioctl.c
@@ -138,7 +138,7 @@ static void r300ClearBuffer(r300ContextPtr r300, int flags,
GLuint cbpitch = 0;
r300ContextPtr rmesa = r300;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s: buffer %p (%i,%i %ix%i)\n",
__FUNCTION__, rrb, dPriv->x, dPriv->y,
dPriv->w, dPriv->h);
@@ -705,7 +705,7 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask)
int i, ret;
struct gl_framebuffer *fb = ctx->DrawBuffer;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "r300Clear\n");
if (!r300->radeon.radeonScreen->driScreen->dri2.enabled) {
@@ -767,7 +767,7 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask)
}
if (swrast_mask) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "%s: swrast clear, mask: %x\n",
__FUNCTION__, swrast_mask);
_swrast_Clear(ctx, swrast_mask);
diff --git a/src/mesa/drivers/dri/r300/r300_reg.h b/src/mesa/drivers/dri/r300/r300_reg.h
index 39b4b61a105..98512d778e3 100644
--- a/src/mesa/drivers/dri/r300/r300_reg.h
+++ b/src/mesa/drivers/dri/r300/r300_reg.h
@@ -1022,15 +1022,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
R300_GA_COLOR_CONTROL_RGB0_SHADING_GOURAUD | R300_GA_COLOR_CONTROL_ALPHA0_SHADING_GOURAUD | \
R300_GA_COLOR_CONTROL_RGB1_SHADING_GOURAUD | R300_GA_COLOR_CONTROL_ALPHA1_SHADING_GOURAUD | \
R300_GA_COLOR_CONTROL_RGB2_SHADING_GOURAUD | R300_GA_COLOR_CONTROL_ALPHA2_SHADING_GOURAUD | \
- R300_GA_COLOR_CONTROL_RGB3_SHADING_GOURAUD | R300_GA_COLOR_CONTROL_ALPHA3_SHADING_GOURAUD | \
- R300_GA_COLOR_CONTROL_PROVOKING_VERTEX_LAST )
+ R300_GA_COLOR_CONTROL_RGB3_SHADING_GOURAUD | R300_GA_COLOR_CONTROL_ALPHA3_SHADING_GOURAUD)
/** TODO: might be candidate for removal, the GOURAUD stuff also looks buggy to me */
# define R300_RE_SHADE_MODEL_FLAT ( \
R300_GA_COLOR_CONTROL_RGB0_SHADING_FLAT | R300_GA_COLOR_CONTROL_ALPHA0_SHADING_FLAT | \
R300_GA_COLOR_CONTROL_RGB1_SHADING_FLAT | R300_GA_COLOR_CONTROL_ALPHA1_SHADING_GOURAUD | \
R300_GA_COLOR_CONTROL_RGB2_SHADING_FLAT | R300_GA_COLOR_CONTROL_ALPHA2_SHADING_FLAT | \
- R300_GA_COLOR_CONTROL_RGB3_SHADING_FLAT | R300_GA_COLOR_CONTROL_ALPHA3_SHADING_GOURAUD | \
- R300_GA_COLOR_CONTROL_PROVOKING_VERTEX_LAST )
+ R300_GA_COLOR_CONTROL_RGB3_SHADING_FLAT | R300_GA_COLOR_CONTROL_ALPHA3_SHADING_GOURAUD)
/* Specifies red & green components of fill color -- S312 format -- Backwards comp. */
#define R300_GA_SOLID_RG 0x427c
diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c
index 446cf40131e..b5ddfdc9f82 100644
--- a/src/mesa/drivers/dri/r300/r300_render.c
+++ b/src/mesa/drivers/dri/r300/r300_render.c
@@ -221,7 +221,7 @@ static void r300EmitAOS(r300ContextPtr rmesa, GLuint nr, GLuint offset)
int sz = 1 + (nr >> 1) * 3 + (nr & 1) * 2;
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s: nr=%d, ofs=0x%08x\n", __FUNCTION__, nr,
offset);
@@ -447,7 +447,7 @@ void r300SwitchFallback(GLcontext *ctx, uint32_t bit, GLboolean mode)
if (mode) {
if ((fallback_warn & bit) == 0) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
_mesa_fprintf(stderr, "WARNING! Falling back to software for %s\n", getFallbackString(bit));
fallback_warn |= bit;
}
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index 4fe9175b61d..d4c3ecee669 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -1279,7 +1279,7 @@ static void r300SetupTextures(GLcontext * ctx)
r300->hw.txe.cmd[R300_TXE_ENABLE] = 0x0;
mtu = r300->radeon.glCtx->Const.MaxTextureUnits;
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "mtu=%d\n", mtu);
if (mtu > R300_MAX_TEXTURE_UNITS) {
@@ -1304,7 +1304,7 @@ static void r300SetupTextures(GLcontext * ctx)
t->pp_txformat & 0xff);
}
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr,
"Activating texture unit %d\n", i);
@@ -1390,7 +1390,7 @@ static void r300SetupTextures(GLcontext * ctx)
r300->vtbl.SetupFragmentShaderTextures(ctx, tmu_mappings);
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "TX_ENABLE: %08x last_hw_tmu=%d\n",
r300->hw.txe.cmd[R300_TXE_ENABLE], last_hw_tmu);
}
@@ -1660,7 +1660,7 @@ void r300VapCntl(r300ContextPtr rmesa, GLuint input_count,
static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state)
{
r300ContextPtr rmesa = R300_CONTEXT(ctx);
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s( %s = %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(cap),
state ? "GL_TRUE" : "GL_FALSE");
@@ -1737,7 +1737,7 @@ static void r300ResetHwState(r300ContextPtr r300)
has_tcl = r300->options.hw_tcl_enabled;
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s\n", __FUNCTION__);
radeon_firevertices(&r300->radeon);
@@ -2253,6 +2253,14 @@ static void r300InvalidateState(GLcontext * ctx, GLuint new_state)
R300_STATECHANGE(r300, zb);
}
+ if (new_state & (_NEW_LIGHT)) {
+ R300_STATECHANGE(r300, shade2);
+ if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION)
+ r300->hw.shade2.cmd[1] |= R300_GA_COLOR_CONTROL_PROVOKING_VERTEX_LAST;
+ else
+ r300->hw.shade2.cmd[1] &= ~R300_GA_COLOR_CONTROL_PROVOKING_VERTEX_LAST;
+ }
+
r300->radeon.NewGLState |= new_state;
}
diff --git a/src/mesa/drivers/dri/r300/r300_swtcl.c b/src/mesa/drivers/dri/r300/r300_swtcl.c
index b3793e28d58..ee2c71e1a7f 100644
--- a/src/mesa/drivers/dri/r300/r300_swtcl.c
+++ b/src/mesa/drivers/dri/r300/r300_swtcl.c
@@ -80,10 +80,11 @@ void r300ChooseSwtclVertexFormat(GLcontext *ctx, GLuint *_InputsRead, GLuint *_
GLuint fp_reads = rmesa->selected_fp->InputsRead;
struct vertex_attribute *attrs = rmesa->vbuf.attribs;
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s\n", __func__);
rmesa->swtcl.coloroffset = rmesa->swtcl.specoffset = 0;
rmesa->radeon.swtcl.vertex_attr_count = 0;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
/* We always want non Ndc coords format */
@@ -229,6 +230,7 @@ static void r300PrepareVertices(GLcontext *ctx)
{
r300ContextPtr rmesa = R300_CONTEXT(ctx);
GLuint InputsRead, OutputsWritten;
+ radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__);
r300ChooseSwtclVertexFormat(ctx, &InputsRead, &OutputsWritten);
r300SetupVAP(ctx, InputsRead, OutputsWritten);
@@ -262,6 +264,10 @@ static void r300_predict_emit_size( r300ContextPtr rmesa )
rmesa->radeon.swtcl.emit_prediction += rmesa->radeon.cmdbuf.cs->cdw
+ vertex_size + scissor_size + prim_size + cache_flush_size * 2 + pre_emit_state;
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE,
+ "%s, size %d\n",
+ __func__, rmesa->radeon.cmdbuf.cs->cdw
+ + vertex_size + scissor_size + prim_size + cache_flush_size * 2 + pre_emit_state);
}
}
@@ -498,8 +504,7 @@ static void r300ChooseRenderState( GLcontext *ctx )
r300ContextPtr rmesa = R300_CONTEXT(ctx);
GLuint index = 0;
GLuint flags = ctx->_TriangleCaps;
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s\n", __func__);
if (flags & DD_TRI_UNFILLED) index |= R300_UNFILLED_BIT;
@@ -526,8 +531,7 @@ static void r300ChooseRenderState( GLcontext *ctx )
void r300RenderStart(GLcontext *ctx)
{
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s\n", __func__);
r300ContextPtr rmesa = R300_CONTEXT( ctx );
r300ChooseRenderState(ctx);
@@ -554,8 +558,7 @@ void r300RenderFinish(GLcontext *ctx)
static void r300RasterPrimitive( GLcontext *ctx, GLuint hwprim )
{
r300ContextPtr rmesa = R300_CONTEXT(ctx);
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__);
if (rmesa->radeon.swtcl.hw_primitive != hwprim) {
R300_NEWPRIM( rmesa );
@@ -568,8 +571,7 @@ void r300RenderPrimitive(GLcontext *ctx, GLenum prim)
r300ContextPtr rmesa = R300_CONTEXT(ctx);
rmesa->radeon.swtcl.render_primitive = prim;
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__);
if ((prim == GL_TRIANGLES) && (ctx->_TriangleCaps & DD_TRI_UNFILLED))
return;
@@ -579,7 +581,7 @@ void r300RenderPrimitive(GLcontext *ctx, GLenum prim)
void r300ResetLineStipple(GLcontext *ctx)
{
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
}
@@ -588,8 +590,7 @@ void r300InitSwtcl(GLcontext *ctx)
TNLcontext *tnl = TNL_CONTEXT(ctx);
r300ContextPtr rmesa = R300_CONTEXT(ctx);
static int firsttime = 1;
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_NORMAL, "%s\n", __func__);
if (firsttime) {
init_rast_tab();
@@ -628,8 +629,8 @@ static void r300EmitVertexAOS(r300ContextPtr rmesa, GLuint vertex_size, struct r
{
BATCH_LOCALS(&rmesa->radeon);
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s: vertex_size %d, offset 0x%x \n",
+ radeon_print(RADEON_SWRENDER, RADEON_TRACE,
+ "%s: vertex_size %d, offset 0x%x \n",
__FUNCTION__, vertex_size, offset);
BEGIN_BATCH(7);
@@ -644,7 +645,7 @@ static void r300EmitVbufPrim(r300ContextPtr rmesa, GLuint primitive, GLuint vert
{
BATCH_LOCALS(&rmesa->radeon);
int type, num_verts;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s\n", __func__);
type = r300PrimitiveType(rmesa, primitive);
@@ -658,8 +659,7 @@ static void r300EmitVbufPrim(r300ContextPtr rmesa, GLuint primitive, GLuint vert
void r300_swtcl_flush(GLcontext *ctx, uint32_t current_offset)
{
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __func__);
+ radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__);
r300ContextPtr rmesa = R300_CONTEXT(ctx);
r300EmitCacheFlush(rmesa);
diff --git a/src/mesa/drivers/dri/r300/r300_tex.c b/src/mesa/drivers/dri/r300/r300_tex.c
index 0af5bb4f469..433e5a87d48 100644
--- a/src/mesa/drivers/dri/r300/r300_tex.c
+++ b/src/mesa/drivers/dri/r300/r300_tex.c
@@ -137,7 +137,7 @@ static void r300SetTexFilter(radeonTexObjPtr t, GLenum minf, GLenum magf, GLfloa
| R300_TX_MIN_FILTER_ANISO
| R300_TX_MIN_FILTER_MIP_LINEAR
| aniso_filter(anisotropy);
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, "Using maximum anisotropy of %f\n", anisotropy);
return;
}
@@ -197,7 +197,7 @@ static void r300TexParameter(GLcontext * ctx, GLenum target,
{
radeonTexObj* t = radeon_tex_obj(texObj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
+ if (RADEON_DEBUG & (RADEON_STATE | RADEON_TEXTURE)) {
fprintf(stderr, "%s( %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(pname));
}
@@ -260,7 +260,7 @@ static void r300DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj)
r300ContextPtr rmesa = R300_CONTEXT(ctx);
radeonTexObj* t = radeon_tex_obj(texObj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
+ if (RADEON_DEBUG & (RADEON_STATE | RADEON_TEXTURE)) {
fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
(void *)texObj,
_mesa_lookup_enum_by_nr(texObj->Target));
@@ -302,7 +302,7 @@ static struct gl_texture_object *r300NewTextureObject(GLcontext * ctx,
radeonTexObj* t = CALLOC_STRUCT(radeon_tex_obj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
+ if (RADEON_DEBUG & (RADEON_STATE | RADEON_TEXTURE)) {
fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
t, _mesa_lookup_enum_by_nr(target));
}
diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.c b/src/mesa/drivers/dri/r300/r300_vertprog.c
index b7d5429dc57..d5e2cf9b14d 100644
--- a/src/mesa/drivers/dri/r300/r300_vertprog.c
+++ b/src/mesa/drivers/dri/r300/r300_vertprog.c
@@ -216,7 +216,7 @@ static struct r300_vertex_program *build_program(GLcontext *ctx,
_mesa_memcpy(&vp->key, wanted_key, sizeof(vp->key));
rc_init(&compiler.Base);
- compiler.Base.Debug = (RADEON_DEBUG & DEBUG_VERTS) ? GL_TRUE : GL_FALSE;
+ compiler.Base.Debug = (RADEON_DEBUG & RADEON_VERTS) ? GL_TRUE : GL_FALSE;
compiler.code = &vp->code;
compiler.RequiredOutputs = compute_required_outputs(vp->Base, vp->key.FpReads);
diff --git a/src/mesa/drivers/dri/r300/radeon_debug.c b/src/mesa/drivers/dri/r300/radeon_debug.c
new file mode 120000
index 00000000000..c98c2e074c5
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/radeon_debug.c
@@ -0,0 +1 @@
+../radeon/radeon_debug.c \ No newline at end of file
diff --git a/src/mesa/drivers/dri/r300/radeon_debug.h b/src/mesa/drivers/dri/r300/radeon_debug.h
new file mode 120000
index 00000000000..bd8aa28e89e
--- /dev/null
+++ b/src/mesa/drivers/dri/r300/radeon_debug.h
@@ -0,0 +1 @@
+../radeon/radeon_debug.h \ No newline at end of file
diff --git a/src/mesa/drivers/dri/r600/Makefile b/src/mesa/drivers/dri/r600/Makefile
index 3c3100ab914..d925a2dfe39 100644
--- a/src/mesa/drivers/dri/r600/Makefile
+++ b/src/mesa/drivers/dri/r600/Makefile
@@ -27,16 +27,17 @@ COMMON_SOURCES = \
../common/dri_util.c
RADEON_COMMON_SOURCES = \
- radeon_texture.c \
+ radeon_bo_legacy.c \
radeon_common_context.c \
radeon_common.c \
+ radeon_cs_legacy.c \
radeon_dma.c \
+ radeon_debug.c \
+ radeon_fbo.c \
radeon_lock.c \
- radeon_bo_legacy.c \
- radeon_cs_legacy.c \
radeon_mipmap_tree.c \
radeon_span.c \
- radeon_fbo.c \
+ radeon_texture.c \
radeon_queryobj.c
DRIVER_SOURCES = \
diff --git a/src/mesa/drivers/dri/r600/r600_cmdbuf.c b/src/mesa/drivers/dri/r600/r600_cmdbuf.c
index 65930ff589f..3cfe03a45f7 100644
--- a/src/mesa/drivers/dri/r600/r600_cmdbuf.c
+++ b/src/mesa/drivers/dri/r600/r600_cmdbuf.c
@@ -192,9 +192,9 @@ static int r600_cs_begin(struct radeon_cs *cs,
if (cs->cdw + ndw > cs->ndw) {
uint32_t tmp, *ptr;
- int num = (ndw > 0x3FF) ? ndw : 0x3FF;
+ int num = (ndw > 0x400) ? ndw : 0x400;
- tmp = (cs->cdw + 1 + num) & (~num);
+ tmp = (cs->cdw + num + 0x3FF) & (~0x3FF);
ptr = (uint32_t*)realloc(cs->packets, 4 * tmp);
if (ptr == NULL) {
return -ENOMEM;
@@ -229,6 +229,14 @@ static int r600_cs_end(struct radeon_cs *cs,
return -EPIPE;
}
+ if (cs->cdw > cs->ndw) {
+ fprintf(stderr, "CS section overflow at (%s,%s,%d) cdw %d ndw %d\n",
+ cs->section_file, cs->section_func, cs->section_line,cs->cdw,cs->ndw);
+ fprintf(stderr, "CS section end at (%s,%s,%d)\n",
+ file, func, line);
+ assert(0);
+ }
+
return 0;
}
diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c
index 6a066f35105..07a7bcf11f1 100644
--- a/src/mesa/drivers/dri/r600/r600_context.c
+++ b/src/mesa/drivers/dri/r600/r600_context.c
@@ -56,6 +56,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "drivers/common/driverfuncs.h"
+#include "radeon_debug.h"
#include "r600_context.h"
#include "radeon_common_context.h"
#include "radeon_span.h"
@@ -84,6 +85,7 @@ int hw_tcl_on = 1;
#define need_GL_EXT_framebuffer_object
#define need_GL_EXT_fog_coord
#define need_GL_EXT_gpu_program_parameters
+#define need_GL_EXT_provoking_vertex
#define need_GL_EXT_secondary_color
#define need_GL_EXT_stencil_two_side
#define need_GL_ATI_separate_stencil
@@ -116,6 +118,7 @@ const struct dri_extension card_extensions[] = {
{"GL_EXT_packed_depth_stencil", NULL},
{"GL_EXT_fog_coord", GL_EXT_fog_coord_functions },
{"GL_EXT_gpu_program_parameters", GL_EXT_gpu_program_parameters_functions},
+ {"GL_EXT_provoking_vertex", GL_EXT_provoking_vertex_functions },
{"GL_EXT_secondary_color", GL_EXT_secondary_color_functions},
{"GL_EXT_shadow_funcs", NULL},
{"GL_EXT_stencil_two_side", GL_EXT_stencil_two_side_functions},
@@ -127,6 +130,7 @@ const struct dri_extension card_extensions[] = {
{"GL_EXT_texture_lod_bias", NULL},
{"GL_EXT_texture_mirror_clamp", NULL},
{"GL_EXT_texture_rectangle", NULL},
+ {"GL_EXT_texture_sRGB", NULL},
{"GL_ATI_separate_stencil", GL_ATI_separate_stencil_functions},
{"GL_ATI_texture_env_combine3", NULL},
{"GL_ATI_texture_mirror_once", NULL},
@@ -225,8 +229,10 @@ GLboolean r600CreateContext(const __GLcontextModes * glVisual,
/* Allocate the R600 context */
r600 = (context_t*) CALLOC(sizeof(*r600));
- if (!r600)
+ if (!r600) {
+ radeon_error("Failed to allocate memory for context.\n");
return GL_FALSE;
+ }
if (!(screen->chip_flags & RADEON_CHIPSET_TCL))
hw_tcl_on = future_hw_tcl_on = 0;
@@ -255,6 +261,7 @@ GLboolean r600CreateContext(const __GLcontextModes * glVisual,
if (!radeonInitContext(&r600->radeon, &functions,
glVisual, driContextPriv,
sharedContextPrivate)) {
+ radeon_error("Initializing context failed.\n");
FREE(r600);
return GL_FALSE;
}
@@ -347,6 +354,8 @@ GLboolean r600CreateContext(const __GLcontextModes * glVisual,
ctx->VertexProgram._MaintainTnlProgram = GL_TRUE;
ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
+ radeon_init_debug();
+
driInitExtensions(ctx, card_extensions, GL_TRUE);
if (r600->radeon.radeonScreen->kernel_mm)
driInitExtensions(ctx, mm_extensions, GL_FALSE);
@@ -375,7 +384,7 @@ GLboolean r600CreateContext(const __GLcontextModes * glVisual,
TNL_CONTEXT(ctx)->Driver.RunPipeline = r600RunPipeline;
if (driQueryOptionb(&r600->radeon.optionCache, "no_rast")) {
- fprintf(stderr, "disabling 3D acceleration\n");
+ radeon_warning("disabling 3D acceleration\n");
#if R200_MERGED
FALLBACK(&r600->radeon, RADEON_FALLBACK_DISABLE, 1);
#endif
diff --git a/src/mesa/drivers/dri/r600/r600_emit.c b/src/mesa/drivers/dri/r600/r600_emit.c
index f8c56e7774b..5c250c2418a 100644
--- a/src/mesa/drivers/dri/r600/r600_emit.c
+++ b/src/mesa/drivers/dri/r600/r600_emit.c
@@ -60,28 +60,30 @@ GLboolean r600EmitShader(GLcontext * ctx,
radeonContextPtr radeonctx = RADEON_CONTEXT(ctx);
struct radeon_bo * pbo;
uint32_t *out;
-
shader_again_alloc:
pbo = radeon_bo_open(radeonctx->radeonScreen->bom,
- 0,
- sizeinDWORD * 4,
- 256,
- RADEON_GEM_DOMAIN_GTT,
- 0);
+ 0,
+ sizeinDWORD * 4,
+ 256,
+ RADEON_GEM_DOMAIN_GTT,
+ 0);
+
+ radeon_print(RADEON_SHADER, RADEON_NORMAL, "%s %p size %d: %s\n", __func__, pbo, sizeinDWORD, szShaderUsage);
if (!pbo) {
+ radeon_print(RADEON_MEMORY | RADEON_CS, RADEON_IMPORTANT, "No memory for buffer object. Flushing command buffer.\n");
rcommonFlushCmdBuf(radeonctx, __FUNCTION__);
goto shader_again_alloc;
}
radeon_cs_space_add_persistent_bo(radeonctx->cmdbuf.cs,
- pbo,
- RADEON_GEM_DOMAIN_GTT, 0);
+ pbo,
+ RADEON_GEM_DOMAIN_GTT, 0);
- if (radeon_cs_space_check_with_bo(radeonctx->cmdbuf.cs,
- pbo,
- RADEON_GEM_DOMAIN_GTT, 0)) {
- fprintf(stderr,"failure to revalidate BOs - badness\n");
+ if (radeon_cs_space_check_with_bo(radeonctx->cmdbuf.cs,
+ pbo,
+ RADEON_GEM_DOMAIN_GTT, 0)) {
+ radeon_error("failure to revalidate BOs - badness\n");
return GL_FALSE;
}
@@ -103,6 +105,8 @@ GLboolean r600DeleteShader(GLcontext * ctx,
{
struct radeon_bo * pbo = (struct radeon_bo *)shaderbo;
+ radeon_print(RADEON_SHADER, RADEON_NORMAL, "%s: %p\n", __func__, pbo);
+
if (pbo) {
if (pbo->ptr)
radeon_bo_unmap(pbo);
diff --git a/src/mesa/drivers/dri/r600/r600_tex.c b/src/mesa/drivers/dri/r600/r600_tex.c
index a06a1fa9214..d105b90cd18 100644
--- a/src/mesa/drivers/dri/r600/r600_tex.c
+++ b/src/mesa/drivers/dri/r600/r600_tex.c
@@ -67,7 +67,7 @@ static unsigned int translate_wrap_mode(GLenum wrapmode)
case GL_MIRROR_CLAMP_TO_EDGE_EXT: return SQ_TEX_MIRROR_ONCE_LAST_TEXEL;
case GL_MIRROR_CLAMP_TO_BORDER_EXT: return SQ_TEX_MIRROR_ONCE_BORDER;
default:
- _mesa_problem(NULL, "bad wrap mode in %s", __FUNCTION__);
+ radeon_error("bad wrap mode in %s", __FUNCTION__);
return 0;
}
}
@@ -208,8 +208,7 @@ static void r600SetTexFilter(radeonTexObjPtr t, GLenum minf, GLenum magf, GLfloa
| R300_TX_MIN_FILTER_ANISO
| R300_TX_MIN_FILTER_MIP_LINEAR
| aniso_filter(anisotropy);*/
- if (RADEON_DEBUG & DEBUG_TEXTURE)
- fprintf(stderr, "Using maximum anisotropy of %f\n", anisotropy);
+ radeon_print(RADEON_TEXTURE, RADEON_NORMAL, "Using maximum anisotropy of %f\n", anisotropy);
return;
}
@@ -288,10 +287,9 @@ static void r600TexParameter(GLcontext * ctx, GLenum target,
{
radeonTexObj* t = radeon_tex_obj(texObj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
- fprintf(stderr, "%s( %s )\n", __FUNCTION__,
+ radeon_print(RADEON_STATE | RADEON_TEXTURE, RADEON_VERBOSE,
+ "%s( %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(pname));
- }
switch (pname) {
case GL_TEXTURE_MIN_FILTER:
@@ -351,11 +349,10 @@ static void r600DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj)
context_t* rmesa = R700_CONTEXT(ctx);
radeonTexObj* t = radeon_tex_obj(texObj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
- fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
+ radeon_print(RADEON_STATE | RADEON_TEXTURE, RADEON_NORMAL,
+ "%s( %p (target = %s) )\n", __FUNCTION__,
(void *)texObj,
_mesa_lookup_enum_by_nr(texObj->Target));
- }
if (rmesa) {
int i;
@@ -393,10 +390,9 @@ static struct gl_texture_object *r600NewTextureObject(GLcontext * ctx,
radeonTexObj* t = CALLOC_STRUCT(radeon_tex_obj);
- if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_TEXTURE)) {
- fprintf(stderr, "%s( %p (target = %s) )\n", __FUNCTION__,
+ radeon_print(RADEON_STATE | RADEON_TEXTURE, RADEON_NORMAL,
+ "%s( %p (target = %s) )\n", __FUNCTION__,
t, _mesa_lookup_enum_by_nr(target));
- }
_mesa_initialize_texture_object(&t->base, name, target);
t->base.MaxAnisotropy = rmesa->radeon.initialMaxAnisotropy;
diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c
index 9f1bf45246f..fff6e743860 100644
--- a/src/mesa/drivers/dri/r600/r600_texstate.c
+++ b/src/mesa/drivers/dri/r600/r600_texstate.c
@@ -49,6 +49,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "r700_state.h"
#include "radeon_mipmap_tree.h"
#include "r600_tex.h"
+#include "r700_fragprog.h"
+#include "r700_vertprog.h"
void r600UpdateTextureState(GLcontext * ctx);
@@ -529,6 +531,49 @@ static GLboolean r600GetTexFormat(struct gl_texture_object *tObj, GLuint mesa_fo
return GL_FALSE;
}
break;
+ /* EXT_texture_sRGB */
+ case MESA_FORMAT_SRGBA8:
+ SETfield(t->SQ_TEX_RESOURCE1, FMT_8_8_8_8,
+ SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_shift, SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_mask);
+
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_W,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_Z,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_Y,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_mask);
+ SETbit(t->SQ_TEX_RESOURCE4, SQ_TEX_RESOURCE_WORD4_0__FORCE_DEGAMMA_bit);
+ break;
+ case MESA_FORMAT_SLA8:
+ SETfield(t->SQ_TEX_RESOURCE1, FMT_8_8,
+ SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_shift, SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_mask);
+
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_Y,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_mask);
+ SETbit(t->SQ_TEX_RESOURCE4, SQ_TEX_RESOURCE_WORD4_0__FORCE_DEGAMMA_bit);
+ break;
+ case MESA_FORMAT_SL8: /* X, X, X, ONE */
+ SETfield(t->SQ_TEX_RESOURCE1, FMT_8,
+ SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_shift, SQ_TEX_RESOURCE_WORD1_0__DATA_FORMAT_mask);
+
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_X_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Y_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_X,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_Z_mask);
+ SETfield(t->SQ_TEX_RESOURCE4, SQ_SEL_1,
+ SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_shift, SQ_TEX_RESOURCE_WORD4_0__DST_SEL_W_mask);
+ SETbit(t->SQ_TEX_RESOURCE4, SQ_TEX_RESOURCE_WORD4_0__FORCE_DEGAMMA_bit);
+ break;
default:
/* Not supported format */
return GL_FALSE;
@@ -567,7 +612,7 @@ static void setup_hardware_state(context_t *rmesa, struct gl_texture_object *tex
if (!t->image_override) {
if (!r600GetTexFormat(texObj, firstImage->TexFormat->MesaFormat)) {
- _mesa_problem(NULL, "unexpected texture format in %s",
+ radeon_error("unexpected texture format in %s\n",
__FUNCTION__);
return;
}
@@ -593,7 +638,7 @@ static void setup_hardware_state(context_t *rmesa, struct gl_texture_object *tex
SETfield(t->SQ_TEX_RESOURCE1, 0, TEX_DEPTH_shift, TEX_DEPTH_mask);
break;
default:
- _mesa_problem(NULL, "unexpected texture target type in %s", __FUNCTION__);
+ radeon_error("unexpected texture target type in %s\n", __FUNCTION__);
return;
}
@@ -647,6 +692,7 @@ GLboolean r600ValidateBuffers(GLcontext * ctx)
{
context_t *rmesa = R700_CONTEXT(ctx);
struct radeon_renderbuffer *rrb;
+ struct radeon_bo *pbo;
int i;
int ret;
@@ -675,9 +721,7 @@ GLboolean r600ValidateBuffers(GLcontext * ctx)
continue;
if (!r600_validate_texture(ctx, ctx->Texture.Unit[i]._Current)) {
- _mesa_warning(ctx,
- "failed to validate texture for unit %d.\n",
- i);
+ radeon_warning("failed to validate texture for unit %d.\n", i);
}
t = radeon_tex_obj(ctx->Texture.Unit[i]._Current);
if (t->image_override && t->bo)
@@ -690,6 +734,18 @@ GLboolean r600ValidateBuffers(GLcontext * ctx)
RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
}
+ pbo = (struct radeon_bo *)r700GetActiveFpShaderBo(ctx);
+ if (pbo) {
+ radeon_cs_space_add_persistent_bo(rmesa->radeon.cmdbuf.cs, pbo,
+ RADEON_GEM_DOMAIN_GTT, 0);
+ }
+
+ pbo = (struct radeon_bo *)r700GetActiveVpShaderBo(ctx);
+ if (pbo) {
+ radeon_cs_space_add_persistent_bo(rmesa->radeon.cmdbuf.cs, pbo,
+ RADEON_GEM_DOMAIN_GTT, 0);
+ }
+
ret = radeon_cs_space_check_with_bo(rmesa->radeon.cmdbuf.cs, first_elem(&rmesa->radeon.dma.reserved)->bo, RADEON_GEM_DOMAIN_GTT, 0);
if (ret)
return GL_FALSE;
diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c
index 834c23593b4..2d8480daaf7 100644
--- a/src/mesa/drivers/dri/r600/r700_assembler.c
+++ b/src/mesa/drivers/dri/r600/r700_assembler.c
@@ -33,8 +33,8 @@
#include "main/mtypes.h"
#include "main/imports.h"
+#include "radeon_debug.h"
#include "r600_context.h"
-#include "r700_debug.h"
#include "r700_assembler.h"
@@ -366,8 +366,8 @@ unsigned int r700GetNumOperands(r700_AssemblerBase* pAsm)
case SQ_OP2_INST_COS:
return 1;
- default: r700_error(TODO_ASM_NEEDIMPINST,
- "Need instruction operand number. \n");;
+ default: radeon_error(
+ "Need instruction operand number for %x.\n", pAsm->D.dst.opcode);
};
return 3;
@@ -531,7 +531,7 @@ int check_current_clause(r700_AssemblerBase* pAsm,
case CF_EMPTY_CLAUSE:
break;
default:
- r700_error(ERROR_ASM_VTX_CLAUSE,
+ radeon_error(
"Unknown CF_CLAUSE_TYPE (%d) in check_current_clause. \n", (int) new_clause_type);
return GL_FALSE;
}
@@ -565,7 +565,7 @@ int check_current_clause(r700_AssemblerBase* pAsm,
}
else
{
- r700_error(ERROR_ASM_ALLOCEXPORTCF,
+ radeon_error(
"Error allocating new EXPORT CF instruction in check_current_clause. \n");
return GL_FALSE;
}
@@ -578,7 +578,7 @@ int check_current_clause(r700_AssemblerBase* pAsm,
pAsm->cf_current_clause_type = CF_OTHER_CLAUSE;
break;
default:
- r700_error(ERROR_ASM_UNKOWNCLAUSE,
+ radeon_error(
"Unknown CF_CLAUSE_TYPE (%d) in check_current_clause. \n", (int) new_clause_type);
return GL_FALSE;
}
@@ -611,7 +611,7 @@ GLboolean add_vfetch_instruction(r700_AssemblerBase* pAsm,
}
else
{
- r700_error(ERROR_ASM_ALLOCVTXCF, "Could not allocate a new VFetch CF instruction.");
+ radeon_error("Could not allocate a new VFetch CF instruction.\n");
return GL_FALSE;
}
@@ -661,7 +661,7 @@ GLboolean add_tex_instruction(r700_AssemblerBase* pAsm,
}
else
{
- r700_error(ERROR_ASM_ALLOCTEXCF, "Could not allocate a new TEX CF instruction.");
+ radeon_error("Could not allocate a new TEX CF instruction.\n");
return GL_FALSE;
}
@@ -1047,7 +1047,7 @@ GLboolean assemble_src(r700_AssemblerBase *pAsm,
}
break;
default:
- r700_error(ERROR_ASM_SRCARGUMENT, "Invalid source argument type");
+ radeon_error("Invalid source argument type\n");
return GL_FALSE;
}
}
@@ -1094,7 +1094,7 @@ GLboolean assemble_dst(r700_AssemblerBase *pAsm)
}
break;
default:
- r700_error(ERROR_ASM_DSTARGUMENT, "Invalid destination output argument type");
+ radeon_error("Invalid destination output argument type\n");
return GL_FALSE;
}
@@ -1134,7 +1134,7 @@ GLboolean tex_dst(r700_AssemblerBase *pAsm)
}
else
{
- r700_error(ERROR_ASM_DSTARGUMENT, "Invalid destination output argument type");
+ radeon_error("Invalid destination output argument type\n");
return GL_FALSE;
}
@@ -1188,7 +1188,7 @@ GLboolean tex_src(r700_AssemblerBase *pAsm)
}
else
{
- r700_error(ERROR_ASM_BADTEXSRC, "Invalid source texcoord for TEX instruction");
+ radeon_error("Invalid source texcoord for TEX instruction\n");
return GL_FALSE;
}
@@ -1269,7 +1269,7 @@ GLboolean assemble_tex_instruction(r700_AssemblerBase *pAsm, GLboolean normalize
}
else
{
- r700_error(ERROR_ASM_TEXDSTBADTYPE, "Only temp destination registers supported for TEX dest regs.");
+ radeon_error("Only temp destination registers supported for TEX dest regs.\n");
return GL_FALSE;
}
@@ -1362,7 +1362,7 @@ GLboolean assemble_alu_src(R700ALUInstruction* alu_instruction_ptr,
}
else
{
- r700_error(ERROR_ASM_ALUSRCBADTYPE, "Source (%d) register type (%d) not one of TEMP, INPUT, or CONSTANT.",
+ radeon_error("Source (%d) register type (%d) not one of TEMP, INPUT, or CONSTANT.\n",
source_index, pSource->rtype);
return GL_FALSE;
}
@@ -1397,7 +1397,7 @@ GLboolean assemble_alu_src(R700ALUInstruction* alu_instruction_ptr,
src_chan = SQ_CHAN_X;
break;
default:
- r700_error(ERROR_ASM_ALUSRCSELECT, "Unknown source select value (%d) in assemble_alu_src().");
+ radeon_error("Unknown source select value (%d) in assemble_alu_src().\n", channel_swizzle);
return GL_FALSE;
break;
}
@@ -1432,7 +1432,7 @@ GLboolean assemble_alu_src(R700ALUInstruction* alu_instruction_ptr,
alu_instruction_ptr->m_Word1_OP3.f.src2_neg = src_neg;
break;
default:
- r700_error(ERROR_ASM_ALUSRCNUMBER, "Only three sources allowed in ALU opcodes.");
+ radeon_error("Only three sources allowed in ALU opcodes.\n");
return GL_FALSE;
break;
}
@@ -1467,7 +1467,7 @@ GLboolean add_alu_instruction(r700_AssemblerBase* pAsm,
}
else
{
- r700_error(ERROR_ASM_ALLOCALUCF, "Could not allocate a new ALU CF instruction.");
+ radeon_error("Could not allocate a new ALU CF instruction.\n");
return GL_FALSE;
}
@@ -1635,7 +1635,7 @@ GLboolean reserve_cfile(r700_AssemblerBase* pAsm,
}
else
{
- r700_error(ERROR_ASM_CONSTCHANNEL, "All cfile read ports are used, cannot reference C$sel, channel $chan.");
+ radeon_error("All cfile read ports are used, cannot reference C$sel, channel $chan.\n");
return GL_FALSE;
}
return GL_TRUE;
@@ -1649,7 +1649,7 @@ GLboolean reserve_gpr(r700_AssemblerBase* pAsm, GLuint sel, GLuint chan, GLuint
}
else if(pAsm->hw_gpr[cycle][chan] != (int)sel)
{
- r700_error(ERROR_ASM_BADGPRRESERVE, "Another scalar operation has already used GPR read port for given channel");
+ radeon_error("Another scalar operation has already used GPR read port for given channel\n");
return GL_FALSE;
}
@@ -1689,7 +1689,7 @@ GLboolean cycle_for_scalar_bank_swizzle(const int swiz, const int sel, GLuint* p
}
break;
default:
- r700_error(ERROR_ASM_BADSCALARBZ, "Bad Scalar bank swizzle value");
+ radeon_error("Bad Scalar bank swizzle value\n");
break;
}
@@ -1737,7 +1737,7 @@ GLboolean cycle_for_vector_bank_swizzle(const int swiz, const int sel, GLuint* p
}
break;
default:
- r700_error(ERROR_ASM_BADVECTORBZ, "Bad Vec bank swizzle value");
+ radeon_error("Bad Vec bank swizzle value\n");
return GL_FALSE;
break;
}
@@ -2056,7 +2056,7 @@ GLboolean assemble_alu_instruction(r700_AssemblerBase *pAsm)
}
else
{
- r700_error(ERROR_ASM_ALUDSTBADTYPE, "Only temp destination registers supported for ALU dest regs.");
+ radeon_error("Only temp destination registers supported for ALU dest regs.\n");
return GL_FALSE;
}
@@ -2207,13 +2207,13 @@ GLboolean next_ins(r700_AssemblerBase *pAsm)
if (pILInst->TexSrcTarget == TEXTURE_RECT_INDEX) {
if( GL_FALSE == assemble_tex_instruction(pAsm, GL_FALSE) )
{
- r700_error(ERROR_ASM_TEXINSTRUCTION, "Error assembling TEX instruction");
+ radeon_error("Error assembling TEX instruction\n");
return GL_FALSE;
}
} else {
if( GL_FALSE == assemble_tex_instruction(pAsm, GL_TRUE) )
{
- r700_error(ERROR_ASM_TEXINSTRUCTION, "Error assembling TEX instruction");
+ radeon_error("Error assembling TEX instruction\n");
return GL_FALSE;
}
}
@@ -2222,7 +2222,7 @@ GLboolean next_ins(r700_AssemblerBase *pAsm)
{ //ALU
if( GL_FALSE == assemble_alu_instruction(pAsm) )
{
- r700_error(ERROR_ASM_TEXINSTRUCTION, "Error assembling ALU instruction");
+ radeon_error("Error assembling ALU instruction\n");
return GL_FALSE;
}
}
@@ -2367,7 +2367,7 @@ GLboolean assemble_ADD(r700_AssemblerBase *pAsm)
GLboolean assemble_BAD(char *opcode_str)
{
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction (%s)", opcode_str);
+ radeon_error("Not yet implemented instruction (%s)\n", opcode_str);
return GL_FALSE;
}
@@ -3381,7 +3381,7 @@ GLboolean assemble_TEX(r700_AssemblerBase *pAsm)
if (GL_TRUE == src_const)
{
- r700_error(TODO_ASM_CONSTTEXADDR, "TODO: Texture coordinates from a constant register not supported.");
+ radeon_error("TODO: Texture coordinates from a constant register not supported.\n");
return GL_FALSE;
}
@@ -3391,7 +3391,7 @@ GLboolean assemble_TEX(r700_AssemblerBase *pAsm)
pAsm->D.dst.opcode = SQ_TEX_INST_SAMPLE;
break;
case OPCODE_TXB:
- r700_error(TODO_ASM_TXB, "do not support TXB yet");
+ radeon_error("do not support TXB yet\n");
return GL_FALSE;
break;
case OPCODE_TXP:
@@ -3399,7 +3399,7 @@ GLboolean assemble_TEX(r700_AssemblerBase *pAsm)
pAsm->D.dst.opcode = SQ_TEX_INST_SAMPLE;
break;
default:
- r700_error(ERROR_ASM_BADTEXINST, "Internal error: bad texture op (not TEX)");
+ radeon_error("Internal error: bad texture op (not TEX)\n");
return GL_FALSE;
break;
}
@@ -3581,12 +3581,12 @@ GLboolean AssembleInstr(GLuint uiNumberInsts,
break;
case OPCODE_ARL:
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction OPCODE_ARL ");
+ radeon_error("Not yet implemented instruction OPCODE_ARL \n");
//if ( GL_FALSE == assemble_BAD("ARL") )
return GL_FALSE;
break;
case OPCODE_ARR:
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction OPCODE_ARR ");
+ radeon_error("Not yet implemented instruction OPCODE_ARR \n");
//if ( GL_FALSE == assemble_BAD("ARR") )
return GL_FALSE;
break;
@@ -3617,7 +3617,7 @@ GLboolean AssembleInstr(GLuint uiNumberInsts,
return GL_FALSE;
break;
case OPCODE_EXP:
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction OPCODE_EXP ");
+ radeon_error("Not yet implemented instruction OPCODE_EXP \n");
//if ( GL_FALSE == assemble_BAD("EXP") )
return GL_FALSE;
break; // approx of EX2
@@ -3653,7 +3653,7 @@ GLboolean AssembleInstr(GLuint uiNumberInsts,
return GL_FALSE;
break;
case OPCODE_LOG:
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction OPCODE_LOG ");
+ radeon_error("Not yet implemented instruction OPCODE_LOG \n");
//if ( GL_FALSE == assemble_BAD("LOG") )
return GL_FALSE;
break; // approx of LG2
@@ -3752,7 +3752,7 @@ GLboolean AssembleInstr(GLuint uiNumberInsts,
return GL_FALSE;
break;
case OPCODE_ELSE :
- r700_error(TODO_ASM_NEEDIMPINST, "Not yet implemented instruction OPCODE_ELSE ");
+ radeon_error("Not yet implemented instruction OPCODE_ELSE \n");
//if ( GL_FALSE == assemble_BAD("ELSE") )
return GL_FALSE;
break;
@@ -3774,7 +3774,7 @@ GLboolean AssembleInstr(GLuint uiNumberInsts,
return GL_TRUE;
default:
- r700_error(ERROR_ASM_UNKNOWNILINST, "internal: unknown instruction");
+ radeon_error("internal: unknown instruction\n");
return GL_FALSE;
}
}
@@ -3818,7 +3818,7 @@ GLboolean Process_Export(r700_AssemblerBase* pAsm,
break;
default:
- r700_error(ERROR_ASM_BADEXPORTTYPE, "Unknown export type: %d", type);
+ radeon_error("Unknown export type: %d\n", type);
return GL_FALSE;
break;
}
diff --git a/src/mesa/drivers/dri/r600/r700_chip.c b/src/mesa/drivers/dri/r600/r700_chip.c
index 16f1a3df366..37bff56f5a9 100644
--- a/src/mesa/drivers/dri/r600/r700_chip.c
+++ b/src/mesa/drivers/dri/r600/r700_chip.c
@@ -49,6 +49,8 @@ static void r700SendTexState(GLcontext *ctx, struct radeon_state_atom *atom)
unsigned int i;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
+
for (i = 0; i < R700_TEXTURE_NUMBERUNITS; i++) {
radeonTexObj *t = r700->textures[i];
if (t) {
@@ -93,6 +95,7 @@ static void r700SendTexSamplerState(GLcontext *ctx, struct radeon_state_atom *at
R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
unsigned int i;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
for (i = 0; i < R700_TEXTURE_NUMBERUNITS; i++) {
radeonTexObj *t = r700->textures[i];
@@ -115,6 +118,7 @@ static void r700SendTexBorderColorState(GLcontext *ctx, struct radeon_state_atom
R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
unsigned int i;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
for (i = 0; i < R700_TEXTURE_NUMBERUNITS; i++) {
radeonTexObj *t = r700->textures[i];
@@ -141,6 +145,7 @@ static void r700SetupVTXConstants(GLcontext * ctx,
context_t *context = R700_CONTEXT(ctx);
struct radeon_aos * paos = (struct radeon_aos *)pAos;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
unsigned int uSQ_VTX_CONSTANT_WORD0_0;
unsigned int uSQ_VTX_CONSTANT_WORD1_0;
@@ -205,6 +210,7 @@ void r700SetupStreams(GLcontext *ctx)
TNLcontext *tnl = TNL_CONTEXT(ctx);
struct vertex_buffer *vb = &tnl->vb;
unsigned int i, j = 0;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
R600_STATECHANGE(context, vtx);
@@ -229,6 +235,7 @@ static void r700SendVTXState(GLcontext *ctx, struct radeon_state_atom *atom)
= (struct r700_vertex_program *)ctx->VertexProgram._Current;
unsigned int i, j = 0;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
if (context->radeon.tcl.aos_count == 0)
return;
@@ -258,12 +265,100 @@ static void r700SendVTXState(GLcontext *ctx, struct radeon_state_atom *atom)
}
}
+static void r700SetRenderTarget(context_t *context, int id)
+{
+ R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
+
+ struct radeon_renderbuffer *rrb;
+ unsigned int nPitchInPixel;
+
+ rrb = radeon_get_colorbuffer(&context->radeon);
+ if (!rrb || !rrb->bo) {
+ return;
+ }
+
+ R600_STATECHANGE(context, cb_target);
+
+ /* color buffer */
+ r700->render_target[id].CB_COLOR0_BASE.u32All = context->radeon.state.color.draw_offset;
+
+ nPitchInPixel = rrb->pitch/rrb->cpp;
+ SETfield(r700->render_target[id].CB_COLOR0_SIZE.u32All, (nPitchInPixel/8)-1,
+ PITCH_TILE_MAX_shift, PITCH_TILE_MAX_mask);
+ SETfield(r700->render_target[id].CB_COLOR0_SIZE.u32All, ( (nPitchInPixel * context->radeon.radeonScreen->driScreen->fbHeight)/64 )-1,
+ SLICE_TILE_MAX_shift, SLICE_TILE_MAX_mask);
+ r700->render_target[id].CB_COLOR0_BASE.u32All = 0;
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, ENDIAN_NONE, ENDIAN_shift, ENDIAN_mask);
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, ARRAY_LINEAR_GENERAL,
+ CB_COLOR0_INFO__ARRAY_MODE_shift, CB_COLOR0_INFO__ARRAY_MODE_mask);
+ if(4 == rrb->cpp)
+ {
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, COLOR_8_8_8_8,
+ CB_COLOR0_INFO__FORMAT_shift, CB_COLOR0_INFO__FORMAT_mask);
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, SWAP_ALT, COMP_SWAP_shift, COMP_SWAP_mask);
+ }
+ else
+ {
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, COLOR_5_6_5,
+ CB_COLOR0_INFO__FORMAT_shift, CB_COLOR0_INFO__FORMAT_mask);
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, SWAP_ALT_REV,
+ COMP_SWAP_shift, COMP_SWAP_mask);
+ }
+ SETbit(r700->render_target[id].CB_COLOR0_INFO.u32All, SOURCE_FORMAT_bit);
+ SETbit(r700->render_target[id].CB_COLOR0_INFO.u32All, BLEND_CLAMP_bit);
+ SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, NUMBER_UNORM, NUMBER_TYPE_shift, NUMBER_TYPE_mask);
+
+ r700->render_target[id].enabled = GL_TRUE;
+}
+
+static void r700SetDepthTarget(context_t *context)
+{
+ R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
+
+ struct radeon_renderbuffer *rrb;
+ unsigned int nPitchInPixel;
+
+ rrb = radeon_get_depthbuffer(&context->radeon);
+ if (!rrb)
+ return;
+
+ R600_STATECHANGE(context, db_target);
+
+ /* depth buf */
+ r700->DB_DEPTH_SIZE.u32All = 0;
+ r700->DB_DEPTH_BASE.u32All = 0;
+ r700->DB_DEPTH_INFO.u32All = 0;
+ r700->DB_DEPTH_VIEW.u32All = 0;
+
+ nPitchInPixel = rrb->pitch/rrb->cpp;
+
+ SETfield(r700->DB_DEPTH_SIZE.u32All, (nPitchInPixel/8)-1,
+ PITCH_TILE_MAX_shift, PITCH_TILE_MAX_mask);
+ SETfield(r700->DB_DEPTH_SIZE.u32All, ( (nPitchInPixel * context->radeon.radeonScreen->driScreen->fbHeight)/64 )-1,
+ SLICE_TILE_MAX_shift, SLICE_TILE_MAX_mask); /* size in pixel / 64 - 1 */
+
+ if(4 == rrb->cpp)
+ {
+ SETfield(r700->DB_DEPTH_INFO.u32All, DEPTH_8_24,
+ DB_DEPTH_INFO__FORMAT_shift, DB_DEPTH_INFO__FORMAT_mask);
+ }
+ else
+ {
+ SETfield(r700->DB_DEPTH_INFO.u32All, DEPTH_16,
+ DB_DEPTH_INFO__FORMAT_shift, DB_DEPTH_INFO__FORMAT_mask);
+ }
+ SETfield(r700->DB_DEPTH_INFO.u32All, ARRAY_2D_TILED_THIN1,
+ DB_DEPTH_INFO__ARRAY_MODE_shift, DB_DEPTH_INFO__ARRAY_MODE_mask);
+ /* r700->DB_PREFETCH_LIMIT.bits.DEPTH_HEIGHT_TILE_MAX = (context->currentDraw->h >> 3) - 1; */ /* z buffer sie may much bigger than what need, so use actual used h. */
+}
+
static void r700SendDepthTargetState(GLcontext *ctx, struct radeon_state_atom *atom)
{
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
struct radeon_renderbuffer *rrb;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
rrb = radeon_get_depthbuffer(&context->radeon);
if (!rrb || !rrb->bo) {
@@ -271,6 +366,8 @@ static void r700SendDepthTargetState(GLcontext *ctx, struct radeon_state_atom *a
return;
}
+ r700SetDepthTarget(context);
+
BEGIN_BATCH_NO_AUTOSTATE(8 + 2);
R600_OUT_BATCH_REGSEQ(DB_DEPTH_SIZE, 2);
R600_OUT_BATCH(r700->DB_DEPTH_SIZE.u32All);
@@ -303,6 +400,7 @@ static void r700SendRenderTargetState(GLcontext *ctx, struct radeon_state_atom *
struct radeon_renderbuffer *rrb;
BATCH_LOCALS(&context->radeon);
int id = 0;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
rrb = radeon_get_colorbuffer(&context->radeon);
if (!rrb || !rrb->bo) {
@@ -310,6 +408,8 @@ static void r700SendRenderTargetState(GLcontext *ctx, struct radeon_state_atom *
return;
}
+ r700SetRenderTarget(context, 0);
+
if (id > R700_MAX_RENDER_TARGETS)
return;
@@ -352,6 +452,7 @@ static void r700SendPSState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
struct radeon_bo * pbo;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
pbo = (struct radeon_bo *)r700GetActiveFpShaderBo(GL_CONTEXT(context));
@@ -385,6 +486,7 @@ static void r700SendVSState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
struct radeon_bo * pbo;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
pbo = (struct radeon_bo *)r700GetActiveVpShaderBo(GL_CONTEXT(context));
@@ -416,6 +518,7 @@ static void r700SendFSState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
struct radeon_bo * pbo;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
/* XXX fixme
* R6xx chips require a FS be emitted, even if it's not used.
@@ -457,6 +560,7 @@ static void r700SendViewportState(GLcontext *ctx, struct radeon_state_atom *atom
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
int id = 0;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
if (id > R700_MAX_VIEWPORTS)
return;
@@ -489,6 +593,7 @@ static void r700SendSQConfig(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(34);
R600_OUT_BATCH_REGSEQ(SQ_CONFIG, 6);
@@ -526,6 +631,7 @@ static void r700SendUCPState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
int i;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
for (i = 0; i < R700_MAX_UCP; i++) {
if (r700->ucp[i].enabled) {
@@ -547,6 +653,7 @@ static void r700SendSPIState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
unsigned int ui;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(59 + R700_MAX_SHADER_EXPORTS);
@@ -620,6 +727,7 @@ static void r700SendVGTState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(41);
@@ -665,6 +773,7 @@ static void r700SendSXState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(9);
R600_OUT_BATCH_REGVAL(SX_MISC, r700->SX_MISC.u32All);
@@ -679,6 +788,7 @@ static void r700SendDBState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(23);
R600_OUT_BATCH_REGVAL(DB_HTILE_DATA_BASE, r700->DB_HTILE_DATA_BASE.u32All);
@@ -720,6 +830,7 @@ static void r700SendCBState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770) {
BEGIN_BATCH_NO_AUTOSTATE(11);
@@ -766,6 +877,7 @@ static void r700SendCBBlendState(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
unsigned int ui;
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770) {
BEGIN_BATCH_NO_AUTOSTATE(3);
@@ -796,6 +908,7 @@ static void r700SendCBBlendColorState(GLcontext *ctx, struct radeon_state_atom *
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(6);
R600_OUT_BATCH_REGSEQ(CB_BLEND_RED, 4);
@@ -850,6 +963,7 @@ static void r700SendCLState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(12);
R600_OUT_BATCH_REGVAL(PA_CL_CLIP_CNTL, r700->PA_CL_CLIP_CNTL.u32All);
@@ -881,6 +995,7 @@ static void r700SendScissorState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(22);
R600_OUT_BATCH_REGSEQ(PA_SC_SCREEN_SCISSOR_TL, 2);
@@ -913,6 +1028,7 @@ static void r700SendSCState(GLcontext *ctx, struct radeon_state_atom *atom)
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(15);
R600_OUT_BATCH_REGVAL(R7xx_PA_SC_EDGERULE, r700->PA_SC_EDGERULE.u32All);
@@ -969,6 +1085,7 @@ static void r700SendVSConsts(GLcontext *ctx, struct radeon_state_atom *atom)
R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context);
int i;
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s\n", __func__);
if (r700->vs.num_consts == 0)
return;
@@ -999,6 +1116,7 @@ static int check_cb(GLcontext *ctx, struct radeon_state_atom *atom)
if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770)
count += 11;
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1019,6 +1137,7 @@ static int check_blnd(GLcontext *ctx, struct radeon_state_atom *atom)
count += 3;
}
}
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1034,6 +1153,7 @@ static int check_ucp(GLcontext *ctx, struct radeon_state_atom *atom)
if (r700->ucp[i].enabled)
count += 6;
}
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1045,6 +1165,7 @@ static int check_vtx(GLcontext *ctx, struct radeon_state_atom *atom)
if (count)
count += 6;
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1059,6 +1180,7 @@ static int check_tx(GLcontext *ctx, struct radeon_state_atom *atom)
if (t)
count++;
}
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count * 31;
}
@@ -1070,6 +1192,7 @@ static int check_ps_consts(GLcontext *ctx, struct radeon_state_atom *atom)
if (count)
count += 2;
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1082,6 +1205,7 @@ static int check_vs_consts(GLcontext *ctx, struct radeon_state_atom *atom)
if (count)
count += 2;
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s %d\n", __func__, count);
return count;
}
@@ -1101,6 +1225,7 @@ do { \
void r600InitAtoms(context_t *context)
{
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s %p\n", __func__, context);
context->radeon.hw.max_state_size = 10 + 5 + 14; /* start 3d, idle, cb/db flush */
/* Setup the atom linked list */
diff --git a/src/mesa/drivers/dri/r600/r700_clear.c b/src/mesa/drivers/dri/r600/r700_clear.c
index 6d4ea90ccc6..c6546ab00c2 100644
--- a/src/mesa/drivers/dri/r600/r700_clear.c
+++ b/src/mesa/drivers/dri/r600/r700_clear.c
@@ -55,6 +55,8 @@ void r700Clear(GLcontext * ctx, GLbitfield mask)
int i;
struct gl_framebuffer *fb = ctx->DrawBuffer;
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE, "%s %x\n", __func__, mask);
+
if( GL_TRUE == r700ClearFast(context, mask) )
{
return;
@@ -106,8 +108,7 @@ void r700Clear(GLcontext * ctx, GLbitfield mask)
}
if (swrast_mask) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
- fprintf(stderr, "%s: swrast clear, mask: %x\n",
+ radeon_print(RADEON_FALLBACKS, RADEON_IMPORTANT, "%s: swrast clear, mask: %x\n",
__FUNCTION__, swrast_mask);
_swrast_Clear(ctx, swrast_mask);
}
diff --git a/src/mesa/drivers/dri/r600/r700_debug.c b/src/mesa/drivers/dri/r600/r700_debug.c
index dabd0d2c259..cd1ba9eca3f 100644
--- a/src/mesa/drivers/dri/r600/r700_debug.c
+++ b/src/mesa/drivers/dri/r600/r700_debug.c
@@ -25,31 +25,8 @@
*/
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "main/glheader.h"
-
#include "r700_debug.h"
-#include "r600_context.h"
-
-void NormalizeLogErrorCode(int nError)
-{
- //TODO
-}
-
-void r700_error(int nLocalError, char* fmt, ...)
-{
- va_list args;
-
- NormalizeLogErrorCode(nLocalError);
-
- va_start(args, fmt);
- fprintf(stderr, fmt, args);
- va_end(args);
-}
+#include "radeon_debug.h"
void DumpHwBinary(int type, void *addr, int size)
{
@@ -61,21 +38,21 @@ void DumpHwBinary(int type, void *addr, int size)
switch (type)
{
case DUMP_PIXEL_SHADER:
- DEBUGF("Pixel Shader\n");
+ radeon_print(RADEON_SHADER, RADEON_TRACE, "Pixel Shader\n");
break;
case DUMP_VERTEX_SHADER:
- DEBUGF("Vertex Shader\n");
+ radeon_print(RADEON_SHADER, RADEON_TRACE, "Vertex Shader\n");
break;
case DUMP_FETCH_SHADER:
- DEBUGF("Fetch Shader\n");
+ radeon_print(RADEON_SHADER, RADEON_TRACE, "Fetch Shader\n");
break;
}
for (i = 0; i < size; i++)
{
- DEBUGP("0x%08x,\t", *pHw);
+ radeon_print(RADEON_SHADER, RADEON_TRACE, "0x%08x,\t", *pHw);
if (i%4 == 3)
- DEBUGP("0x%08x\n", *pHw);
+ radeon_print(RADEON_SHADER, RADEON_TRACE, "0x%08x\n", *pHw);
pHw++;
}
diff --git a/src/mesa/drivers/dri/r600/r700_debug.h b/src/mesa/drivers/dri/r600/r700_debug.h
index e810e6da083..c0921bf6100 100644
--- a/src/mesa/drivers/dri/r600/r700_debug.h
+++ b/src/mesa/drivers/dri/r600/r700_debug.h
@@ -27,67 +27,13 @@
#ifndef _R700_DEBUG_H_
#define _R700_DEBUG_H_
-
-enum R700_ERROR
-{
- ERROR_ASM_VTX_CLAUSE = 0x1000,
- ERROR_ASM_UNKOWNCLAUSE = 0x1001,
- ERROR_ASM_ALLOCEXPORTCF = 0x1002,
- ERROR_ASM_ALLOCVTXCF = 0x1003,
- ERROR_ASM_ALLOCTEXCF = 0x1004,
- ERROR_ASM_ALLOCALUCF = 0x1005,
- ERROR_ASM_UNKNOWNILINST = 0x1006,
- ERROR_ASM_SRCARGUMENT = 0x1007,
- ERROR_ASM_DSTARGUMENT = 0x1008,
- ERROR_ASM_TEXINSTRUCTION = 0x1009,
- ERROR_ASM_ALUINSTRUCTION = 0x100A,
- ERROR_ASM_INSTDSTTRACK = 0x100B,
- ERROR_ASM_TEXDSTBADTYPE = 0x100C,
- ERROR_ASM_ALUSRCBADTYPE = 0x100D,
- ERROR_ASM_ALUSRCSELECT = 0x100E,
- ERROR_ASM_ALUSRCNUMBER = 0x100F,
- ERROR_ASM_ALUDSTBADTYPE = 0x1010,
- ERROR_ASM_CONSTCHANNEL = 0x1011,
- ERROR_ASM_BADSCALARBZ = 0x1012,
- ERROR_ASM_BADGPRRESERVE = 0x1013,
- ERROR_ASM_BADVECTORBZ = 0x1014,
- ERROR_ASM_BADTEXINST = 0x1015,
- ERROR_ASM_BADTEXSRC = 0x1016,
- ERROR_ASM_BADEXPORTTYPE = 0x1017,
-
-
- TODO_ASM_CONSTTEXADDR = 0x8000,
- TODO_ASM_NEEDIMPINST = 0x8001,
- TODO_ASM_TXB = 0x8002,
- TODO_ASM_TXP = 0x8003
-};
-
enum R700_DUMP_TYPE
{
- DUMP_VERTEX_SHADER = 0x1,
- DUMP_PIXEL_SHADER = 0x2,
- DUMP_FETCH_SHADER = 0x4,
+ DUMP_VERTEX_SHADER = 0x1,
+ DUMP_PIXEL_SHADER = 0x2,
+ DUMP_FETCH_SHADER = 0x4,
};
-#define DEBUGF printf
-#define DEBUGP printf
-
-void NormalizeLogErrorCode(int nError);
-/*NormalizeLogErrorCode(nLocalError); */
-void r700_error(int nLocalError, char *fmt, ...);
extern void DumpHwBinary(int, void *, int);
-#ifdef STANDALONE_COMPILER
-#ifdef __cplusplus
-extern "C"
-{
-#endif //__cplusplus
-
-void LogString(char* szStr);
-
-#ifdef __cplusplus
-}
-#endif //__cplusplus
-#endif /*STANDALONE_COMPILER*/
-
#endif /*_R700_DEBUG_H_*/
diff --git a/src/mesa/drivers/dri/r600/r700_oglprog.c b/src/mesa/drivers/dri/r600/r700_oglprog.c
index c49b90c1cc9..3c8c1fd7a34 100644
--- a/src/mesa/drivers/dri/r600/r700_oglprog.c
+++ b/src/mesa/drivers/dri/r600/r700_oglprog.c
@@ -49,6 +49,9 @@ static struct gl_program *r700NewProgram(GLcontext * ctx,
struct r700_vertex_program *vp;
struct r700_fragment_program *fp;
+ radeon_print(RADEON_SHADER, RADEON_VERBOSE,
+ "%s %u, %u\n", __func__, target, id);
+
switch (target)
{
case GL_VERTEX_STATE_PROGRAM_NV:
@@ -89,6 +92,9 @@ static void r700DeleteProgram(GLcontext * ctx, struct gl_program *prog)
struct r700_vertex_program * vp;
struct r700_fragment_program * fp;
+ radeon_print(RADEON_SHADER, RADEON_VERBOSE,
+ "%s %p\n", __func__, prog);
+
switch (prog->Target)
{
case GL_VERTEX_STATE_PROGRAM_NV:
diff --git a/src/mesa/drivers/dri/r600/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c
index 0b3ceb01bac..3566bf3ca78 100644
--- a/src/mesa/drivers/dri/r600/r700_render.c
+++ b/src/mesa/drivers/dri/r600/r700_render.c
@@ -69,6 +69,7 @@ GLboolean r700SyncSurf(context_t *context,
void r700WaitForIdle(context_t *context)
{
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_RENDER | RADEON_STATE, RADEON_TRACE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(3);
R600_OUT_BATCH(CP_PACKET3(R600_IT_SET_CONFIG_REG, 1));
@@ -82,6 +83,7 @@ void r700WaitForIdle(context_t *context)
void r700WaitForIdleClean(context_t *context)
{
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_RENDER | RADEON_STATE, RADEON_TRACE, "%s\n", __func__);
BEGIN_BATCH_NO_AUTOSTATE(5);
R600_OUT_BATCH(CP_PACKET3(R600_IT_EVENT_WRITE, 0));
@@ -98,6 +100,7 @@ void r700WaitForIdleClean(context_t *context)
void r700Start3D(context_t *context)
{
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_RENDER | RADEON_STATE, RADEON_TRACE, "%s\n", __func__);
if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770)
{
BEGIN_BATCH_NO_AUTOSTATE(2);
@@ -124,6 +127,7 @@ GLboolean r700SyncSurf(context_t *context,
uint32_t sync_type)
{
BATCH_LOCALS(&context->radeon);
+ radeon_print(RADEON_RENDER | RADEON_STATE, RADEON_TRACE, "%s\n", __func__);
uint32_t cp_coher_size;
if (!pbo)
@@ -253,10 +257,16 @@ static void r700RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim
uint32_t vgt_index_type = 0;
uint32_t vgt_primitive_type = 0;
uint32_t vgt_num_indices = 0;
+ TNLcontext *tnl = TNL_CONTEXT(ctx);
+ struct vertex_buffer *vb = &tnl->vb;
type = r700PrimitiveType(prim);
num_indices = r700NumVerts(end - start, prim);
+ radeon_print(RADEON_RENDER, RADEON_TRACE,
+ "%s type %x num_indices %d\n",
+ __func__, type, num_indices);
+
if (type < 0 || num_indices <= 0)
return;
@@ -292,7 +302,10 @@ static void r700RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim
R600_OUT_BATCH(vgt_draw_initiator);
for (i = start; i < (start + num_indices); i++) {
- R600_OUT_BATCH(i);
+ if(vb->Elts)
+ R600_OUT_BATCH(vb->Elts[i]);
+ else
+ R600_OUT_BATCH(i);
}
END_BATCH();
COMMIT_BATCH();
@@ -327,8 +340,8 @@ static GLuint r700PredictRenderSize(GLcontext* ctx)
else
dwords += state_size;
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: total prediction size is %d.\n", __FUNCTION__, dwords);
+ radeon_print(RADEON_RENDER, RADEON_VERBOSE,
+ "%s: total prediction size is %d.\n", __FUNCTION__, dwords);
return dwords;
}
@@ -342,8 +355,7 @@ static GLboolean r700RunRender(GLcontext * ctx,
struct vertex_buffer *vb = &tnl->vb;
struct radeon_renderbuffer *rrb;
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: cs begin at %d\n",
+ radeon_print(RADEON_RENDER, RADEON_NORMAL, "%s: cs begin at %d\n",
__func__, context->radeon.cmdbuf.cs->cdw);
/* always emit CB base to prevent
@@ -365,6 +377,7 @@ static GLboolean r700RunRender(GLcontext * ctx,
radeonEmitState(radeon);
+ radeon_debug_add_indent();
/* richard test code */
for (i = 0; i < vb->PrimitiveCount; i++) {
GLuint prim = _tnl_translate_prim(&vb->Primitive[i]);
@@ -372,6 +385,7 @@ static GLboolean r700RunRender(GLcontext * ctx,
GLuint end = vb->Primitive[i].start + vb->Primitive[i].count;
r700RunRenderPrimitive(ctx, start, end, prim);
}
+ radeon_debug_remove_indent();
/* Flush render op cached for last several quads. */
r700WaitForIdleClean(context);
@@ -388,8 +402,7 @@ static GLboolean r700RunRender(GLcontext * ctx,
radeonReleaseArrays(ctx, ~0);
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "%s: cs end at %d\n",
+ radeon_print(RADEON_RENDER, RADEON_TRACE, "%s: cs end at %d\n",
__func__, context->radeon.cmdbuf.cs->cdw);
if ( emit_end < context->radeon.cmdbuf.cs->cdw )
diff --git a/src/mesa/drivers/dri/r600/r700_shaderinst.c b/src/mesa/drivers/dri/r600/r700_shaderinst.c
index c1bffee91f0..f120d9f941f 100644
--- a/src/mesa/drivers/dri/r600/r700_shaderinst.c
+++ b/src/mesa/drivers/dri/r600/r700_shaderinst.c
@@ -27,7 +27,7 @@
#include "main/mtypes.h"
-#include "r700_debug.h"
+#include "radeon_debug.h"
#include "r700_shaderinst.h"
void Init_R700ControlFlowGenericClause(R700ControlFlowGenericClause* pInst)
@@ -208,16 +208,16 @@ unsigned int GetCFMaxInstructions(ShaderInstType instType)
GLboolean LinkVertexInstruction(R700ControlFlowGenericClause *pCFGeneric,
R700VertexInstruction *pVTXInstruction)
{
- if (pCFGeneric->m_pLinkedTEXInstruction != 0)
- {
- r700_error(ERROR_ASM_VTX_CLAUSE, "This instruction is already linked to a texture instruction");
- return GL_FALSE;
+ if (pCFGeneric->m_pLinkedTEXInstruction != 0)
+ {
+ radeon_error("This instruction is already linked to a texture instruction.\n");
+ return GL_FALSE;
}
pCFGeneric->m_pLinkedVTXInstruction = pVTXInstruction;
- pVTXInstruction->m_pLinkedGenericClause = pCFGeneric;
+ pVTXInstruction->m_pLinkedGenericClause = pCFGeneric;
- return GL_TRUE;
+ return GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c
index 91cb492ce6a..93b4ebfdb96 100644
--- a/src/mesa/drivers/dri/r600/r700_state.c
+++ b/src/mesa/drivers/dri/r600/r700_state.c
@@ -60,13 +60,6 @@ static void r700SetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state);
static void r700UpdatePolygonMode(GLcontext * ctx);
static void r700SetPolygonOffsetState(GLcontext * ctx, GLboolean state);
static void r700SetStencilState(GLcontext * ctx, GLboolean state);
-static void r700SetRenderTarget(context_t *context, int id);
-static void r700SetDepthTarget(context_t *context);
-
-void r700SetDefaultStates(context_t *context) //--------------------
-{
-
-}
void r700UpdateShaders (GLcontext * ctx) //----------------------------------
{
@@ -133,21 +126,6 @@ void r700UpdateViewportOffset(GLcontext * ctx) //------------------
radeonUpdateScissor(ctx);
}
-/**
- * Tell the card where to render (offset, pitch).
- * Effected by glDrawBuffer, etc
- */
-void r700UpdateDrawBuffer(GLcontext * ctx) /* TODO */ //---------------------
-{
- context_t *context = R700_CONTEXT(ctx);
-
- R600_STATECHANGE(context, cb_target);
- R600_STATECHANGE(context, db_target);
-
- r700SetRenderTarget(context, 0);
- r700SetDepthTarget(context);
-}
-
void r700UpdateStateParameters(GLcontext * ctx, GLuint new_state) //--------------------
{
struct r700_fragment_program *fp =
@@ -179,21 +157,29 @@ static void r700InvalidateState(GLcontext * ctx, GLuint new_state) //-----------
R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
_swrast_InvalidateState(ctx, new_state);
- _swsetup_InvalidateState(ctx, new_state);
- _vbo_InvalidateState(ctx, new_state);
- _tnl_InvalidateState(ctx, new_state);
- _ae_invalidate_state(ctx, new_state);
-
- if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL))
- {
- _mesa_update_framebuffer(ctx);
- /* this updates the DrawBuffer's Width/Height if it's a FBO */
- _mesa_update_draw_buffer_bounds(ctx);
+ _swsetup_InvalidateState(ctx, new_state);
+ _vbo_InvalidateState(ctx, new_state);
+ _tnl_InvalidateState(ctx, new_state);
+ _ae_invalidate_state(ctx, new_state);
+
+ if (new_state & _NEW_BUFFERS) {
+ _mesa_update_framebuffer(ctx);
+ /* this updates the DrawBuffer's Width/Height if it's a FBO */
+ _mesa_update_draw_buffer_bounds(ctx);
+
+ R600_STATECHANGE(context, cb_target);
+ R600_STATECHANGE(context, db_target);
+ }
- r700UpdateDrawBuffer(ctx);
- }
+ if (new_state & (_NEW_LIGHT)) {
+ R600_STATECHANGE(context, su);
+ if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION)
+ SETbit(r700->PA_SU_SC_MODE_CNTL.u32All, PROVOKING_VTX_LAST_bit);
+ else
+ CLEARbit(r700->PA_SU_SC_MODE_CNTL.u32All, PROVOKING_VTX_LAST_bit);
+ }
- r700UpdateStateParameters(ctx, new_state);
+ r700UpdateStateParameters(ctx, new_state);
R600_STATECHANGE(context, cl);
R600_STATECHANGE(context, spi);
@@ -1373,107 +1359,6 @@ void r700SetScissor(context_t *context) //---------------
r700->viewport[id].enabled = GL_TRUE;
}
-static void r700SetRenderTarget(context_t *context, int id)
-{
- R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
-
- struct radeon_renderbuffer *rrb;
- unsigned int nPitchInPixel;
-
- rrb = radeon_get_colorbuffer(&context->radeon);
- if (!rrb || !rrb->bo) {
- return;
- }
-
- R600_STATECHANGE(context, cb_target);
- R600_STATECHANGE(context, cb);
-
- /* screen/window/view */
- SETfield(r700->CB_TARGET_MASK.u32All, 0xF, (4 * id), TARGET0_ENABLE_mask);
-
- /* color buffer */
- r700->render_target[id].CB_COLOR0_BASE.u32All = context->radeon.state.color.draw_offset;
-
- nPitchInPixel = rrb->pitch/rrb->cpp;
- SETfield(r700->render_target[id].CB_COLOR0_SIZE.u32All, (nPitchInPixel/8)-1,
- PITCH_TILE_MAX_shift, PITCH_TILE_MAX_mask);
- SETfield(r700->render_target[id].CB_COLOR0_SIZE.u32All, ( (nPitchInPixel * context->radeon.radeonScreen->driScreen->fbHeight)/64 )-1,
- SLICE_TILE_MAX_shift, SLICE_TILE_MAX_mask);
- r700->render_target[id].CB_COLOR0_BASE.u32All = 0;
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, ENDIAN_NONE, ENDIAN_shift, ENDIAN_mask);
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, ARRAY_LINEAR_GENERAL,
- CB_COLOR0_INFO__ARRAY_MODE_shift, CB_COLOR0_INFO__ARRAY_MODE_mask);
- if(4 == rrb->cpp)
- {
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, COLOR_8_8_8_8,
- CB_COLOR0_INFO__FORMAT_shift, CB_COLOR0_INFO__FORMAT_mask);
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, SWAP_ALT, COMP_SWAP_shift, COMP_SWAP_mask);
- }
- else
- {
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, COLOR_5_6_5,
- CB_COLOR0_INFO__FORMAT_shift, CB_COLOR0_INFO__FORMAT_mask);
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, SWAP_ALT_REV,
- COMP_SWAP_shift, COMP_SWAP_mask);
- }
- SETbit(r700->render_target[id].CB_COLOR0_INFO.u32All, SOURCE_FORMAT_bit);
- SETbit(r700->render_target[id].CB_COLOR0_INFO.u32All, BLEND_CLAMP_bit);
- SETfield(r700->render_target[id].CB_COLOR0_INFO.u32All, NUMBER_UNORM, NUMBER_TYPE_shift, NUMBER_TYPE_mask);
-
- r700->render_target[id].enabled = GL_TRUE;
-}
-
-static void r700SetDepthTarget(context_t *context)
-{
- R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
-
- struct radeon_renderbuffer *rrb;
- unsigned int nPitchInPixel;
-
- rrb = radeon_get_depthbuffer(&context->radeon);
- if (!rrb)
- return;
-
- R600_STATECHANGE(context, db_target);
-
- /* depth buf */
- r700->DB_DEPTH_SIZE.u32All = 0;
- r700->DB_DEPTH_BASE.u32All = 0;
- r700->DB_DEPTH_INFO.u32All = 0;
- r700->DB_DEPTH_VIEW.u32All = 0;
-
- nPitchInPixel = rrb->pitch/rrb->cpp;
-
- SETfield(r700->DB_DEPTH_SIZE.u32All, (nPitchInPixel/8)-1,
- PITCH_TILE_MAX_shift, PITCH_TILE_MAX_mask);
- SETfield(r700->DB_DEPTH_SIZE.u32All, ( (nPitchInPixel * context->radeon.radeonScreen->driScreen->fbHeight)/64 )-1,
- SLICE_TILE_MAX_shift, SLICE_TILE_MAX_mask); /* size in pixel / 64 - 1 */
-
- if(4 == rrb->cpp)
- {
- switch (GL_CONTEXT(context)->Visual.depthBits)
- {
- case 16:
- case 24:
- SETfield(r700->DB_DEPTH_INFO.u32All, DEPTH_8_24,
- DB_DEPTH_INFO__FORMAT_shift, DB_DEPTH_INFO__FORMAT_mask);
- break;
- default:
- fprintf(stderr, "Error: Unsupported depth %d... exiting\n",
- GL_CONTEXT(context)->Visual.depthBits);
- _mesa_exit(-1);
- }
- }
- else
- {
- SETfield(r700->DB_DEPTH_INFO.u32All, DEPTH_16,
- DB_DEPTH_INFO__FORMAT_shift, DB_DEPTH_INFO__FORMAT_mask);
- }
- SETfield(r700->DB_DEPTH_INFO.u32All, ARRAY_2D_TILED_THIN1,
- DB_DEPTH_INFO__ARRAY_MODE_shift, DB_DEPTH_INFO__ARRAY_MODE_mask);
- /* r700->DB_PREFETCH_LIMIT.bits.DEPTH_HEIGHT_TILE_MAX = (context->currentDraw->h >> 3) - 1; */ /* z buffer sie may much bigger than what need, so use actual used h. */
-}
-
static void r700InitSQConfig(GLcontext * ctx)
{
context_t *context = R700_CONTEXT(ctx);
@@ -1676,6 +1561,7 @@ void r700InitState(GLcontext * ctx) //-------------------
{
context_t *context = R700_CONTEXT(ctx);
R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
+ int id = 0;
radeon_firevertices(&context->radeon);
@@ -1869,6 +1755,9 @@ void r700InitState(GLcontext * ctx) //-------------------
/* Set up color compare mask */
r700->CB_CLRCMP_MSK.u32All = 0xFFFFFFFF;
+ /* screen/window/view */
+ SETfield(r700->CB_TARGET_MASK.u32All, 0xF, (4 * id), TARGET0_ENABLE_mask);
+
context->radeon.hw.all_dirty = GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/r600/r700_state.h b/src/mesa/drivers/dri/r600/r700_state.h
index 30eb54e8b0a..0f53d5b4c59 100644
--- a/src/mesa/drivers/dri/r600/r700_state.h
+++ b/src/mesa/drivers/dri/r600/r700_state.h
@@ -37,13 +37,10 @@ extern void r700UpdateStateParameters(GLcontext * ctx, GLuint new_state);
extern void r700UpdateShaders (GLcontext * ctx);
extern void r700UpdateViewportOffset(GLcontext * ctx);
-extern void r700UpdateDrawBuffer (GLcontext * ctx);
extern void r700InitState (GLcontext * ctx);
extern void r700InitStateFuncs (struct dd_function_table *functions);
-extern void r700SetDefaultStates(context_t * context);
-
extern void r700SetScissor(context_t *context);
#endif /* _R600_SCREEN_H */
diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.c
index 86a67ab766f..d107f99e7ba 100644
--- a/src/mesa/drivers/dri/r600/r700_vertprog.c
+++ b/src/mesa/drivers/dri/r600/r700_vertprog.c
@@ -38,6 +38,7 @@
#include "shader/prog_parameter.h"
#include "shader/prog_statevars.h"
+#include "radeon_debug.h"
#include "r600_context.h"
#include "r600_cmdbuf.h"
@@ -174,7 +175,7 @@ void Map_Vertex_Program(struct r700_vertex_program *vp,
// Create VFETCH instructions for inputs
if (GL_TRUE != Process_Vertex_Program_Vfetch_Instructions(vp, mesa_vp) )
{
- r700_error(ERROR_ASM_VTX_CLAUSE, "Calling Process_Vertex_Program_Vfetch_Instructions return error. \n");
+ radeon_error("Calling Process_Vertex_Program_Vfetch_Instructions return error. \n");
return; //error
}
diff --git a/src/mesa/drivers/dri/r600/radeon_debug.c b/src/mesa/drivers/dri/r600/radeon_debug.c
new file mode 120000
index 00000000000..c98c2e074c5
--- /dev/null
+++ b/src/mesa/drivers/dri/r600/radeon_debug.c
@@ -0,0 +1 @@
+../radeon/radeon_debug.c \ No newline at end of file
diff --git a/src/mesa/drivers/dri/r600/radeon_debug.h b/src/mesa/drivers/dri/r600/radeon_debug.h
new file mode 120000
index 00000000000..bd8aa28e89e
--- /dev/null
+++ b/src/mesa/drivers/dri/r600/radeon_debug.h
@@ -0,0 +1 @@
+../radeon/radeon_debug.h \ No newline at end of file
diff --git a/src/mesa/drivers/dri/radeon/Makefile b/src/mesa/drivers/dri/radeon/Makefile
index 8fe9d98a0b2..1f286776b5f 100644
--- a/src/mesa/drivers/dri/radeon/Makefile
+++ b/src/mesa/drivers/dri/radeon/Makefile
@@ -15,17 +15,18 @@ CS_SOURCES = radeon_cs_space_drm.c
endif
RADEON_COMMON_SOURCES = \
- radeon_texture.c \
+ radeon_bo_legacy.c \
radeon_common_context.c \
radeon_common.c \
+ radeon_cs_legacy.c \
radeon_dma.c \
+ radeon_debug.c \
+ radeon_fbo.c \
radeon_lock.c \
- radeon_bo_legacy.c \
- radeon_cs_legacy.c \
radeon_mipmap_tree.c \
+ radeon_queryobj.c \
radeon_span.c \
- radeon_fbo.c \
- radeon_queryobj.c
+ radeon_texture.c
DRIVER_SOURCES = \
radeon_context.c \
diff --git a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
index a10c6b73abc..3e7547d2f9d 100644
--- a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
+++ b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
@@ -640,7 +640,7 @@ static int bo_vram_validate(struct radeon_bo *bo,
&tex,
sizeof(drm_radeon_texture_t));
if (ret) {
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "DRM_RADEON_TEXTURE: again!\n");
usleep(1);
}
@@ -677,7 +677,7 @@ static int bo_vram_validate(struct radeon_bo *bo,
&tex,
sizeof(drm_radeon_texture_t));
if (ret) {
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "DRM_RADEON_TEXTURE: again!\n");
usleep(1);
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c
index e8ae51e6eab..a24b6dac265 100644
--- a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c
+++ b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c
@@ -78,9 +78,10 @@ radeonDeleteBufferObject(GLcontext * ctx,
* Allocate space for and store data in a buffer object. Any data that was
* previously stored in the buffer object is lost. If data is NULL,
* memory will be allocated, but no copy will occur.
- * Called via glBufferDataARB().
+ * Called via ctx->Driver.BufferData().
+ * \return GL_TRUE for success, GL_FALSE if out of memory
*/
-static void
+static GLboolean
radeonBufferData(GLcontext * ctx,
GLenum target,
GLsizeiptrARB size,
@@ -107,6 +108,9 @@ radeonBufferData(GLcontext * ctx,
RADEON_GEM_DOMAIN_GTT,
0);
+ if (!radeon_obj->bo)
+ return GL_FALSE;
+
if (data != NULL) {
radeon_bo_map(radeon_obj->bo, GL_TRUE);
@@ -115,6 +119,7 @@ radeonBufferData(GLcontext * ctx,
radeon_bo_unmap(radeon_obj->bo);
}
}
+ return GL_TRUE;
}
/**
diff --git a/src/mesa/drivers/dri/radeon/radeon_chipset.h b/src/mesa/drivers/dri/radeon/radeon_chipset.h
index 0da1c0f9ee3..46a9cd5ff84 100644
--- a/src/mesa/drivers/dri/radeon/radeon_chipset.h
+++ b/src/mesa/drivers/dri/radeon/radeon_chipset.h
@@ -344,6 +344,7 @@
#define PCI_CHIP_RV770_9440 0x9440
#define PCI_CHIP_RV770_9441 0x9441
#define PCI_CHIP_RV770_9442 0x9442
+#define PCI_CHIP_RV770_9443 0x9443
#define PCI_CHIP_RV770_9444 0x9444
#define PCI_CHIP_RV770_9446 0x9446
#define PCI_CHIP_RV770_944A 0x944A
diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c
index ee0cbf65ca1..e53eb0904d2 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common.c
@@ -45,44 +45,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "main/glheader.h"
#include "main/imports.h"
#include "main/context.h"
-#include "main/arrayobj.h"
-#include "main/api_arrayelt.h"
#include "main/enums.h"
-#include "main/colormac.h"
-#include "main/light.h"
#include "main/framebuffer.h"
-#include "main/simple_list.h"
#include "main/renderbuffer.h"
-#include "swrast/swrast.h"
-#include "vbo/vbo.h"
-#include "tnl/tnl.h"
-#include "tnl/t_pipeline.h"
-#include "swrast_setup/swrast_setup.h"
-
-#include "main/blend.h"
-#include "main/bufferobj.h"
-#include "main/buffers.h"
-#include "main/depth.h"
-#include "main/polygon.h"
-#include "main/shaders.h"
-#include "main/texstate.h"
-#include "main/varray.h"
-#include "glapi/dispatch.h"
-#include "swrast/swrast.h"
-#include "main/stencil.h"
-#include "main/matrix.h"
-#include "main/attrib.h"
-#include "main/enable.h"
-#include "main/viewport.h"
-
-#include "dri_util.h"
+#include "drivers/common/meta.h"
+
#include "vblank.h"
#include "radeon_common.h"
#include "radeon_bocs_wrapper.h"
#include "radeon_lock.h"
#include "radeon_drm.h"
-#include "radeon_mipmap_tree.h"
#include "radeon_queryobj.h"
/**
@@ -91,7 +64,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* 1 most output
* 2 also print state alues
*/
-#define DEBUG_CMDBUF 0
+#define RADEON_CMDBUF 0
/* =============================================================
* Scissoring
@@ -312,31 +285,6 @@ void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask )
UNLOCK_HARDWARE( radeon );
}
-void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask )
-{
- radeonContextPtr radeon = RADEON_CONTEXT(ctx);
- GLint i;
- BATCH_LOCALS(radeon);
-
- radeon_firevertices(radeon);
-
- BEGIN_BATCH_NO_AUTOSTATE(35);
-
- OUT_BATCH(CP_PACKET0(RADEON_RE_STIPPLE_ADDR, 0));
- OUT_BATCH(0x00000000);
-
- OUT_BATCH(CP_PACKET0_ONE(RADEON_RE_STIPPLE_DATA, 31));
-
- /* Must flip pattern upside down.
- */
- for ( i = 31 ; i >= 0; i--) {
- OUT_BATCH(((GLuint *) mask)[i]);
- }
-
- END_BATCH();
-}
-
-
/* ================================================================
* SwapBuffers with client-side throttling
@@ -521,7 +469,7 @@ void radeonCopyBuffer( __DRIdrawablePrivate *dPriv,
rfb = dPriv->driverPrivate;
- if ( RADEON_DEBUG & DEBUG_IOCTL ) {
+ if ( RADEON_DEBUG & RADEON_IOCTL ) {
fprintf( stderr, "\n%s( %p )\n\n", __FUNCTION__, (void *) rmesa->glCtx );
}
@@ -615,7 +563,7 @@ static GLboolean radeonPageFlip( __DRIdrawablePrivate *dPriv )
LOCK_HARDWARE(radeon);
- if ( RADEON_DEBUG & DEBUG_IOCTL ) {
+ if ( RADEON_DEBUG & RADEON_IOCTL ) {
fprintf(stderr, "%s: pfCurrentPage: %d %d\n", __FUNCTION__,
radeon->sarea->pfCurrentPage, radeon->sarea->pfState);
}
@@ -875,7 +823,7 @@ void radeon_draw_buffer(GLcontext *ctx, struct gl_framebuffer *fb)
*/
void radeonDrawBuffer( GLcontext *ctx, GLenum mode )
{
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "%s %s\n", __FUNCTION__,
_mesa_lookup_enum_by_nr( mode ));
@@ -981,7 +929,7 @@ static void radeon_print_state_atom_prekmm(radeonContextPtr radeon, struct radeo
fprintf(stderr, " emit %s %d/%d\n", state->name, dwords, state->cmd_size);
- if (DEBUG_CMDBUF > 1 && RADEON_DEBUG & DEBUG_VERBOSE) {
+ if (radeon_is_debug_enabled(RADEON_STATE, RADEON_TRACE)) {
if (dwords > state->cmd_size)
dwords = state->cmd_size;
@@ -1006,7 +954,7 @@ static void radeon_print_state_atom(radeonContextPtr radeon, struct radeon_state
int i, j, reg, count;
int dwords;
uint32_t packet0;
- if (! (DEBUG_CMDBUF && RADEON_DEBUG & DEBUG_STATE) )
+ if (!radeon_is_debug_enabled(RADEON_STATE, RADEON_VERBOSE) )
return;
if (!radeon->radeonScreen->kernel_mm) {
@@ -1018,7 +966,7 @@ static void radeon_print_state_atom(radeonContextPtr radeon, struct radeon_state
fprintf(stderr, " emit %s %d/%d\n", state->name, dwords, state->cmd_size);
- if (DEBUG_CMDBUF > 1 && RADEON_DEBUG & DEBUG_VERBOSE) {
+ if (radeon_is_debug_enabled(RADEON_STATE, RADEON_TRACE)) {
if (dwords > state->cmd_size)
dwords = state->cmd_size;
for (i = 0; i < dwords;) {
@@ -1046,17 +994,15 @@ GLuint radeonCountStateEmitSize(radeonContextPtr radeon)
struct radeon_state_atom *atom;
GLuint dwords = 0;
/* check if we are going to emit full state */
- if (DEBUG_CMDBUF && RADEON_DEBUG & DEBUG_VERBOSE)
- fprintf(stderr, "%s\n", __func__);
if (radeon->cmdbuf.cs->cdw && !radeon->hw.all_dirty) {
if (!radeon->hw.is_dirty)
- return dwords;
+ goto out;
foreach(atom, &radeon->hw.atomlist) {
if (atom->dirty) {
const GLuint atom_size = atom->check(radeon->glCtx, atom);
dwords += atom_size;
- if (DEBUG_CMDBUF && atom_size) {
+ if (RADEON_CMDBUF && atom_size) {
radeon_print_state_atom(radeon, atom);
}
}
@@ -1065,12 +1011,14 @@ GLuint radeonCountStateEmitSize(radeonContextPtr radeon)
foreach(atom, &radeon->hw.atomlist) {
const GLuint atom_size = atom->check(radeon->glCtx, atom);
dwords += atom_size;
- if (DEBUG_CMDBUF && atom_size) {
+ if (RADEON_CMDBUF && atom_size) {
radeon_print_state_atom(radeon, atom);
}
}
}
+out:
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s %u\n", __func__, dwords);
return dwords;
}
@@ -1092,10 +1040,7 @@ static INLINE void radeon_emit_atom(radeonContextPtr radeon, struct radeon_state
END_BATCH();
}
} else {
- if (DEBUG_CMDBUF && RADEON_DEBUG & DEBUG_STATE) {
- fprintf(stderr, " skip state %s\n",
- atom->name);
- }
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, " skip state %s\n", atom->name);
}
atom->dirty = GL_FALSE;
@@ -1135,8 +1080,7 @@ static GLboolean radeon_revalidate_bos(GLcontext *ctx)
void radeonEmitState(radeonContextPtr radeon)
{
- if (RADEON_DEBUG & (DEBUG_STATE|DEBUG_PRIMS))
- fprintf(stderr, "%s\n", __FUNCTION__);
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s\n", __FUNCTION__);
if (radeon->vtbl.pre_emit_state)
radeon->vtbl.pre_emit_state(radeon);
@@ -1146,13 +1090,13 @@ void radeonEmitState(radeonContextPtr radeon)
return;
if (!radeon->cmdbuf.cs->cdw) {
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "Begin reemit state\n");
radeonEmitAtoms(radeon, GL_TRUE);
} else {
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "Begin dirty state\n");
radeonEmitAtoms(radeon, GL_FALSE);
@@ -1166,7 +1110,7 @@ void radeonEmitState(radeonContextPtr radeon)
void radeonFlush(GLcontext *ctx)
{
radeonContextPtr radeon = RADEON_CONTEXT(ctx);
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s %d\n", __FUNCTION__, radeon->cmdbuf.cs->cdw);
/* okay if we have no cmds in the buffer &&
@@ -1258,7 +1202,7 @@ int rcommonFlushCmdBufLocked(radeonContextPtr rmesa, const char *caller)
}
rmesa->cmdbuf.flushing = 1;
- if (RADEON_DEBUG & DEBUG_IOCTL) {
+ if (RADEON_DEBUG & RADEON_IOCTL) {
fprintf(stderr, "%s from %s - %i cliprects\n",
__FUNCTION__, caller, rmesa->numClipRects);
}
@@ -1327,15 +1271,13 @@ void rcommonInitCmdBuf(radeonContextPtr rmesa)
if (size > 64 * 256)
size = 64 * 256;
- if (RADEON_DEBUG & (DEBUG_IOCTL | DEBUG_DMA)) {
- fprintf(stderr, "sizeof(drm_r300_cmd_header_t)=%zd\n",
- sizeof(drm_r300_cmd_header_t));
- fprintf(stderr, "sizeof(drm_radeon_cmd_buffer_t)=%zd\n",
- sizeof(drm_radeon_cmd_buffer_t));
- fprintf(stderr,
+ radeon_print(RADEON_CS, RADEON_VERBOSE,
+ "sizeof(drm_r300_cmd_header_t)=%zd\n", sizeof(drm_r300_cmd_header_t));
+ radeon_print(RADEON_CS, RADEON_VERBOSE,
+ "sizeof(drm_radeon_cmd_buffer_t)=%zd\n", sizeof(drm_radeon_cmd_buffer_t));
+ radeon_print(RADEON_CS, RADEON_VERBOSE,
"Allocating %d bytes command buffer (max state is %d bytes)\n",
size * 4, rmesa->hw.max_state_size * 4);
- }
if (rmesa->radeonScreen->kernel_mm) {
int fd = rmesa->radeonScreen->driScreen->fd;
@@ -1388,20 +1330,18 @@ void rcommonBeginBatch(radeonContextPtr rmesa, int n,
int line)
{
if (!rmesa->cmdbuf.cs->cdw && dostate) {
- if (RADEON_DEBUG & DEBUG_IOCTL)
- fprintf(stderr, "Reemit state after flush (from %s)\n", function);
+ radeon_print(RADEON_STATE, RADEON_NORMAL,
+ "Reemit state after flush (from %s)\n", function);
radeonEmitState(rmesa);
}
radeon_cs_begin(rmesa->cmdbuf.cs, n, file, function, line);
- if (DEBUG_CMDBUF && RADEON_DEBUG & DEBUG_IOCTL)
- fprintf(stderr, "BEGIN_BATCH(%d) at %d, from %s:%i\n",
+ radeon_print(RADEON_CS, RADEON_VERBOSE, "BEGIN_BATCH(%d) at %d, from %s:%i\n",
n, rmesa->cmdbuf.cs->cdw, function, line);
}
void radeonUserClear(GLcontext *ctx, GLuint mask)
{
- radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- meta_clear_tris(&rmesa->meta, mask);
+ _mesa_meta_clear(ctx, mask);
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h b/src/mesa/drivers/dri/radeon/radeon_common.h
index ba983e5ab6c..f3201911ac6 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.h
+++ b/src/mesa/drivers/dri/radeon/radeon_common.h
@@ -10,7 +10,6 @@ void radeonRecalcScissorRects(radeonContextPtr radeon);
void radeonSetCliprects(radeonContextPtr radeon);
void radeonUpdateScissor( GLcontext *ctx );
void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h);
-void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask );
void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask );
void radeonWaitForIdleLocked(radeonContextPtr radeon);
diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c
index b76efa8eaa4..71ee06d9a79 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
@@ -363,7 +363,7 @@ GLboolean radeonUnbindContext(__DRIcontextPrivate * driContextPriv)
{
radeonContextPtr radeon = (radeonContextPtr) driContextPriv->driverPrivate;
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "%s ctx %p\n", __FUNCTION__,
radeon->glCtx);
@@ -527,7 +527,7 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
char *regname;
struct radeon_bo *depth_bo = NULL, *bo;
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "enter %s, drawable %p\n", __func__, drawable);
draw = drawable->driverPrivate;
@@ -654,7 +654,7 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
continue;
}
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr,
"attaching buffer %s, %d, at %d, cpp %d, pitch %d\n",
regname, buffers[i].name, buffers[i].attachment,
@@ -667,7 +667,7 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
rb->has_surface = 0;
if (buffers[i].attachment == __DRI_BUFFER_STENCIL && depth_bo) {
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "(reusing depth buffer as stencil)\n");
bo = depth_bo;
radeon_bo_ref(bo);
@@ -740,7 +740,7 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
struct gl_framebuffer *readfb;
if (!driContextPriv) {
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "%s ctx is null\n", __FUNCTION__);
_mesa_make_current(NULL, NULL, NULL);
return GL_TRUE;
@@ -762,7 +762,7 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
radeon_make_renderbuffer_current(radeon, drfb);
}
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "%s ctx %p dfb %p rfb %p\n", __FUNCTION__, radeon->glCtx, drfb, readfb);
driUpdateFramebufferSize(radeon->glCtx, driDrawPriv);
@@ -797,7 +797,7 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
}
- if (RADEON_DEBUG & DEBUG_DRI)
+ if (RADEON_DEBUG & RADEON_DRI)
fprintf(stderr, "End %s\n", __FUNCTION__);
return GL_TRUE;
diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.h b/src/mesa/drivers/dri/radeon/radeon_common_context.h
index 3463b4d264e..0309345393d 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.h
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.h
@@ -8,6 +8,7 @@
#include "tnl/t_context.h"
#include "main/colormac.h"
+#include "radeon_debug.h"
#include "radeon_screen.h"
#include "radeon_drm.h"
#include "dri_util.h"
@@ -18,22 +19,6 @@ struct radeon_context;
#include "radeon_bocs_wrapper.h"
-/* From http://gcc. gnu.org/onlinedocs/gcc-3.2.3/gcc/Variadic-Macros.html .
- I suppose we could inline this and use macro to fetch out __LINE__ and stuff in case we run into trouble
- with other compilers ... GLUE!
-*/
-#define WARN_ONCE(a, ...) { \
- static int warn##__LINE__=1; \
- if(warn##__LINE__){ \
- fprintf(stderr, "*********************************WARN_ONCE*********************************\n"); \
- fprintf(stderr, "File %s function %s line %d\n", \
- __FILE__, __FUNCTION__, __LINE__); \
- fprintf(stderr, a, ## __VA_ARGS__);\
- fprintf(stderr, "***************************************************************************\n"); \
- warn##__LINE__=0;\
- } \
- }
-
/* This union is used to avoid warnings/miscompilation
with float to uint32_t casts due to strict-aliasing */
typedef union { GLfloat f; uint32_t ui32; } float_ui32_type;
@@ -401,23 +386,6 @@ struct radeon_dri_mirror {
int drmMinor;
};
-#define DEBUG_TEXTURE 0x001
-#define DEBUG_STATE 0x002
-#define DEBUG_IOCTL 0x004
-#define DEBUG_PRIMS 0x008
-#define DEBUG_VERTS 0x010
-#define DEBUG_FALLBACKS 0x020
-#define DEBUG_VFMT 0x040
-#define DEBUG_CODEGEN 0x080
-#define DEBUG_VERBOSE 0x100
-#define DEBUG_DRI 0x200
-#define DEBUG_DMA 0x400
-#define DEBUG_SANITY 0x800
-#define DEBUG_SYNC 0x1000
-#define DEBUG_PIXEL 0x2000
-#define DEBUG_MEMORY 0x4000
-
-
typedef void (*radeon_tri_func) (radeonContextPtr,
radeonVertex *,
radeonVertex *, radeonVertex *);
@@ -499,6 +467,8 @@ struct radeon_context {
struct radeon_cmdbuf cmdbuf;
+ struct radeon_debug debug;
+
drm_clip_rect_t fboRect;
GLboolean constant_cliprect; /* use for FBO or DRI2 rendering */
GLboolean front_cliprects;
@@ -621,15 +591,4 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
__DRIdrawablePrivate * driReadPriv);
extern void radeonDestroyContext(__DRIcontextPrivate * driContextPriv);
-/* ================================================================
- * Debugging:
- */
-#define DO_DEBUG 1
-
-#if DO_DEBUG
-extern int RADEON_DEBUG;
-#else
-#define RADEON_DEBUG 0
-#endif
-
#endif
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c
index 32485a72702..8f4485aee7c 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_context.c
@@ -137,25 +137,6 @@ static const struct tnl_pipeline_stage *radeon_pipeline[] = {
NULL,
};
-static const struct dri_debug_control debug_control[] =
-{
- { "fall", DEBUG_FALLBACKS },
- { "tex", DEBUG_TEXTURE },
- { "ioctl", DEBUG_IOCTL },
- { "prim", DEBUG_PRIMS },
- { "vert", DEBUG_VERTS },
- { "state", DEBUG_STATE },
- { "code", DEBUG_CODEGEN },
- { "vfmt", DEBUG_VFMT },
- { "vtxf", DEBUG_VFMT },
- { "verb", DEBUG_VERBOSE },
- { "dri", DEBUG_DRI },
- { "dma", DEBUG_DMA },
- { "san", DEBUG_SANITY },
- { "sync", DEBUG_SYNC },
- { NULL, 0 }
-};
-
static void r100_get_lock(radeonContextPtr radeon)
{
r100ContextPtr rmesa = (r100ContextPtr)radeon;
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h
index 572acbb0069..4e2c52c835c 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.h
+++ b/src/mesa/drivers/dri/radeon/radeon_context.h
@@ -299,6 +299,11 @@ struct radeon_texture_state {
#define R100_QUERYOBJ_DATA_0 1
#define R100_QUERYOBJ_CMDSIZE 2
+#define STP_CMD_0 0
+#define STP_DATA_0 1
+#define STP_CMD_1 2
+#define STP_STATE_SIZE 35
+
struct r100_hw_state {
/* Hardware state, stored as cmdbuf commands:
* -- Need to doublebuffer for
@@ -323,7 +328,7 @@ struct r100_hw_state {
struct radeon_state_atom fog;
struct radeon_state_atom glt;
struct radeon_state_atom txr[3]; /* for NPOT */
-
+ struct radeon_state_atom stp;
};
diff --git a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
index 587e2acf91d..f1addb299e2 100644
--- a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
+++ b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c
@@ -32,6 +32,7 @@
#include <errno.h>
#include "radeon_bocs_wrapper.h"
+#include "radeon_common.h"
struct cs_manager_legacy {
struct radeon_cs_manager base;
diff --git a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.h b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.h
index e177b4bafe2..cafbc9e576e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.h
+++ b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.h
@@ -32,7 +32,7 @@
#ifndef RADEON_CS_LEGACY_H
#define RADEON_CS_LEGACY_H
-#include "radeon_common.h"
+struct radeon_context;
struct radeon_cs_manager *radeon_cs_manager_legacy_ctor(struct radeon_context *ctx);
void radeon_cs_manager_legacy_dtor(struct radeon_cs_manager *csm);
diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.c b/src/mesa/drivers/dri/radeon/radeon_debug.c
new file mode 100644
index 00000000000..a1ed39683f1
--- /dev/null
+++ b/src/mesa/drivers/dri/radeon/radeon_debug.c
@@ -0,0 +1,101 @@
+/*
+ * Copyright © 2009 Pauli Nieminen
+ * 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDERS, AUTHORS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ */
+/*
+ * Authors:
+ * Pauli Nieminen <[email protected]>
+ */
+
+#include "utils.h"
+
+#include "radeon_debug.h"
+#include "radeon_common_context.h"
+
+static const struct dri_debug_control debug_control[] = {
+ {"fall", RADEON_FALLBACKS},
+ {"tex", RADEON_TEXTURE},
+ {"ioctl", RADEON_IOCTL},
+ {"verts", RADEON_RENDER},
+ {"render", RADEON_RENDER},
+ {"swrender", RADEON_SWRENDER},
+ {"state", RADEON_STATE},
+ {"shader", RADEON_SHADER},
+ {"vfmt", RADEON_VFMT},
+ {"vtxf", RADEON_VFMT},
+ {"dri", RADEON_DRI},
+ {"dma", RADEON_DMA},
+ {"sanity", RADEON_SANITY},
+ {"sync", RADEON_SYNC},
+ {"pixel", RADEON_PIXEL},
+ {"mem", RADEON_MEMORY},
+ {"cs", RADEON_CS},
+ {"allmsg", ~RADEON_SYNC}, /* avoid the term "sync" because the parser uses strstr */
+ {NULL, 0}
+};
+
+radeon_debug_type_t radeon_enabled_debug_types;
+
+void radeon_init_debug(void)
+{
+ radeon_enabled_debug_types = driParseDebugString(getenv("RADEON_DEBUG"), debug_control);
+
+ radeon_enabled_debug_types |= RADEON_GENERAL;
+}
+
+void _radeon_debug_add_indent(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr radeon = RADEON_CONTEXT(ctx);
+ const size_t length = sizeof(radeon->debug.indent)
+ / sizeof(radeon->debug.indent[0]);
+ if (radeon->debug.indent_depth < length - 1) {
+ radeon->debug.indent[radeon->debug.indent_depth] = '\t';
+ ++radeon->debug.indent_depth;
+ };
+}
+
+void _radeon_debug_remove_indent(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr radeon = RADEON_CONTEXT(ctx);
+ if (radeon->debug.indent_depth > 0) {
+ radeon->debug.indent[radeon->debug.indent_depth] = '\0';
+ --radeon->debug.indent_depth;
+ }
+}
+
+extern void _radeon_print(const radeon_debug_type_t type,
+ const radeon_debug_level_t level,
+ const char* message,
+ va_list values)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ if (ctx) {
+ radeonContextPtr radeon = RADEON_CONTEXT(ctx);
+ // FIXME: Make this multi thread safe
+ if (radeon->debug.indent_depth)
+ fprintf(stderr, "%s", radeon->debug.indent);
+ }
+ vfprintf(stderr, message, values);
+}
diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h
new file mode 100644
index 00000000000..132e27351da
--- /dev/null
+++ b/src/mesa/drivers/dri/radeon/radeon_debug.h
@@ -0,0 +1,191 @@
+/*
+ * Copyright © 2009 Pauli Nieminen
+ * 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDERS, AUTHORS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ */
+/*
+ * Authors:
+ * Pauli Nieminen <[email protected]>
+ */
+
+#ifndef RADEON_DEBUG_H_INCLUDED
+#define RADEON_DEBUG_H_INCLUDED
+
+#include <stdarg.h>
+#include <stdio.h>
+
+typedef enum radeon_debug_levels {
+ RADEON_CRITICAL = 0, /* Only errors */
+ RADEON_IMPORTANT = 1, /* Important warnings and messages */
+ RADEON_NORMAL = 2, /* Normal log messages usefull for debugging */
+ RADEON_VERBOSE = 3, /* Extra details to debugging */
+ RADEON_TRACE = 4 /* Log about everything that happens */
+} radeon_debug_level_t;
+
+/**
+ * Compile time option to change level of debugging compiled to dri driver.
+ * Selecting critical level is not recommended because perfromance gains are
+ * going to minimal but you will lose a lot of important warnings in case of
+ * errors.
+ */
+#ifndef RADEON_DEBUG_LEVEL
+#define RADEON_DEBUG_LEVEL RADEON_VERBOSE
+#endif
+
+typedef enum radeon_debug_types {
+ RADEON_TEXTURE = 0x00001,
+ RADEON_STATE = 0x00002,
+ RADEON_IOCTL = 0x00004,
+ RADEON_RENDER = 0x00008,
+ RADEON_SWRENDER = 0x00010,
+ RADEON_FALLBACKS = 0x00020,
+ RADEON_VFMT = 0x00040,
+ RADEON_SHADER = 0x00080,
+ RADEON_CS = 0x00100,
+ RADEON_DRI = 0x00200,
+ RADEON_DMA = 0x00400,
+ RADEON_SANITY = 0x00800,
+ RADEON_SYNC = 0x01000,
+ RADEON_PIXEL = 0x02000,
+ RADEON_MEMORY = 0x04000,
+ RADEON_VERTS = 0x08000,
+ RADEON_GENERAL = 0x10000 /* Used for errors and warnings */
+} radeon_debug_type_t;
+
+#define RADEON_MAX_INDENT 5
+
+struct radeon_debug {
+ size_t indent_depth;
+ char indent[RADEON_MAX_INDENT];
+};
+
+extern radeon_debug_type_t radeon_enabled_debug_types;
+
+/**
+ * Compabibility layer for old debug code
+ **/
+#define RADEON_DEBUG radeon_enabled_debug_types
+
+static inline int radeon_is_debug_enabled(const radeon_debug_type_t type,
+ const radeon_debug_level_t level)
+{
+ return RADEON_DEBUG_LEVEL >= level
+ && (type & radeon_enabled_debug_types);
+}
+/*
+ * define macro for gcc specific __attribute__ if using alternative compiler
+ */
+#ifndef __GNUC__
+#define __attribute__(x) /*empty*/
+#endif
+
+
+extern void _radeon_print(const radeon_debug_type_t type,
+ const radeon_debug_level_t level,
+ const char* message,
+ va_list values);
+/**
+ * Format attribute requires declaration for setting it. Don't ask me why!
+ */
+static inline void radeon_print(const radeon_debug_type_t type,
+ const radeon_debug_level_t level,
+ const char* message,
+ ...) __attribute__((format(printf,3,4)));
+
+/**
+ * Print out debug message if channel specified by type is enabled
+ * and compile time debugging level is at least as high as level parameter
+ */
+static inline void radeon_print(const radeon_debug_type_t type,
+ const radeon_debug_level_t level,
+ const char* message,
+ ...)
+{
+ /* Compile out if level of message is too high */
+ if (radeon_is_debug_enabled(type, level)) {
+
+ va_list values;
+ va_start( values, message );
+ _radeon_print(type, level, message, values);
+ va_end( values );
+ }
+}
+
+static inline void radeon_error(const char* message, ...) __attribute__((format(printf,1,2)));
+/**
+ * printf style function for writing error messages.
+ */
+static inline void radeon_error(const char* message, ...)
+{
+ va_list values;
+ va_start( values, message );
+ radeon_print(RADEON_GENERAL, RADEON_CRITICAL, message, values);
+ va_end( values );
+}
+
+static inline void radeon_warning(const char* message, ...) __attribute__((format(printf,1,2)));
+/**
+ * printf style function for writing warnings.
+ */
+static inline void radeon_warning(const char* message, ...)
+{
+ va_list values;
+ va_start( values, message );
+ radeon_print(RADEON_GENERAL, RADEON_IMPORTANT, message, values);
+ va_end( values );
+}
+
+extern void radeon_init_debug(void);
+extern void _radeon_debug_add_indent(void);
+extern void _radeon_debug_remove_indent(void);
+
+static inline void radeon_debug_add_indent(void)
+{
+ if (RADEON_DEBUG_LEVEL >= RADEON_VERBOSE) {
+ _radeon_debug_add_indent();
+ }
+}
+static inline void radeon_debug_remove_indent(void)
+{
+ if (RADEON_DEBUG_LEVEL >= RADEON_VERBOSE) {
+ _radeon_debug_remove_indent();
+ }
+}
+
+/* From http://gcc. gnu.org/onlinedocs/gcc-3.2.3/gcc/Variadic-Macros.html .
+ I suppose we could inline this and use macro to fetch out __LINE__ and stuff in case we run into trouble
+ with other compilers ... GLUE!
+*/
+#define WARN_ONCE(a, ...) { \
+ static int warn##__LINE__=1; \
+ if(warn##__LINE__){ \
+ radeon_warning("*********************************WARN_ONCE*********************************\n"); \
+ radeon_warning("File %s function %s line %d\n", \
+ __FILE__, __FUNCTION__, __LINE__); \
+ radeon_warning( (a), ## __VA_ARGS__);\
+ radeon_warning("***************************************************************************\n"); \
+ warn##__LINE__=0;\
+ } \
+ }
+
+
+#endif
diff --git a/src/mesa/drivers/dri/radeon/radeon_dma.c b/src/mesa/drivers/dri/radeon/radeon_dma.c
index 386262b126e..2eefa3f2b1b 100644
--- a/src/mesa/drivers/dri/radeon/radeon_dma.c
+++ b/src/mesa/drivers/dri/radeon/radeon_dma.c
@@ -58,7 +58,7 @@ void radeonEmitVec4(uint32_t *out, const GLvoid * data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d out %p data %p\n",
__FUNCTION__, count, stride, (void *)out, (void *)data);
@@ -76,7 +76,7 @@ void radeonEmitVec8(uint32_t *out, const GLvoid * data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d out %p data %p\n",
__FUNCTION__, count, stride, (void *)out, (void *)data);
@@ -95,7 +95,7 @@ void radeonEmitVec12(uint32_t *out, const GLvoid * data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d out %p data %p\n",
__FUNCTION__, count, stride, (void *)out, (void *)data);
@@ -116,7 +116,7 @@ void radeonEmitVec16(uint32_t *out, const GLvoid * data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d out %p data %p\n",
__FUNCTION__, count, stride, (void *)out, (void *)data);
@@ -179,8 +179,8 @@ void radeonRefillCurrentDmaRegion(radeonContextPtr rmesa, int size)
if (size > rmesa->dma.minimum_size)
rmesa->dma.minimum_size = (size + 15) & (~15);
- if (RADEON_DEBUG & (DEBUG_IOCTL | DEBUG_DMA))
- fprintf(stderr, "%s\n", __FUNCTION__);
+ radeon_print(RADEON_DMA, RADEON_NORMAL, "%s size %d minimum_size %d\n",
+ __FUNCTION__, size, rmesa->dma.minimum_size);
/* unmap old reserved bo */
@@ -235,7 +235,7 @@ void radeonAllocDmaRegion(radeonContextPtr rmesa,
struct radeon_bo **pbo, int *poffset,
int bytes, int alignment)
{
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s %d\n", __FUNCTION__, bytes);
if (rmesa->dma.flush)
@@ -265,7 +265,7 @@ void radeonFreeDmaRegions(radeonContextPtr rmesa)
{
struct radeon_dma_bo *dma_bo = CALLOC_STRUCT(radeon_dma_bo);
struct radeon_dma_bo *temp;
- if (RADEON_DEBUG & DEBUG_DMA)
+ if (RADEON_DEBUG & RADEON_DMA)
fprintf(stderr, "%s\n", __FUNCTION__);
foreach_s(dma_bo, temp, &rmesa->dma.free) {
@@ -293,7 +293,7 @@ void radeonReturnDmaRegion(radeonContextPtr rmesa, int return_bytes)
if (is_empty_list(&rmesa->dma.reserved))
return;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s %d\n", __FUNCTION__, return_bytes);
rmesa->dma.current_used -= return_bytes;
rmesa->dma.current_vertexptr = rmesa->dma.current_used;
@@ -317,7 +317,7 @@ void radeonReleaseDmaRegions(radeonContextPtr rmesa)
const int expire_at = ++rmesa->dma.free.expire_counter + DMA_BO_FREE_TIME;
const int time = rmesa->dma.free.expire_counter;
- if (RADEON_DEBUG & DEBUG_DMA) {
+ if (RADEON_DEBUG & RADEON_DMA) {
size_t free = 0,
wait = 0,
reserved = 0;
@@ -399,7 +399,7 @@ void rcommon_flush_last_swtcl_prim( GLcontext *ctx )
struct radeon_dma *dma = &rmesa->dma;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
dma->flush = NULL;
@@ -425,7 +425,7 @@ rcommonAllocDmaLowVerts( radeonContextPtr rmesa, int nverts, int vsize )
{
GLuint bytes = vsize * nverts;
void *head;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
if(is_empty_list(&rmesa->dma.reserved)
||rmesa->dma.current_vertexptr + bytes > first_elem(&rmesa->dma.reserved)->bo->size) {
@@ -460,7 +460,7 @@ void radeonReleaseArrays( GLcontext *ctx, GLuint newinputs )
{
radeonContextPtr radeon = RADEON_CONTEXT( ctx );
int i;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
if (radeon->dma.flush) {
diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c
index 6f0cc08770c..d83b166742c 100644
--- a/src/mesa/drivers/dri/radeon/radeon_fbo.c
+++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c
@@ -40,7 +40,7 @@
#include "radeon_common.h"
#include "radeon_mipmap_tree.h"
-#define FILE_DEBUG_FLAG DEBUG_TEXTURE
+#define FILE_DEBUG_FLAG RADEON_TEXTURE
#define DBG(...) do { \
if (RADEON_DEBUG & FILE_DEBUG_FLAG) \
_mesa_printf(__VA_ARGS__); \
diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.c b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
index 9ced62418bd..a0106d00fa2 100644
--- a/src/mesa/drivers/dri/radeon/radeon_ioctl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
@@ -200,7 +200,7 @@ void radeonFlushElts( GLcontext *ctx )
uint32_t *cmd = (uint32_t *)(rmesa->radeon.cmdbuf.cs->packets + rmesa->tcl.elt_cmd_start);
int dwords = (rmesa->radeon.cmdbuf.cs->section_ndw - rmesa->radeon.cmdbuf.cs->section_cdw);
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
assert( rmesa->radeon.dma.flush == radeonFlushElts );
@@ -236,7 +236,7 @@ void radeonFlushElts( GLcontext *ctx )
END_BATCH();
- if (RADEON_DEBUG & DEBUG_SYNC) {
+ if (RADEON_DEBUG & RADEON_SYNC) {
fprintf(stderr, "%s: Syncing\n", __FUNCTION__);
radeonFinish( rmesa->radeon.glCtx );
}
@@ -252,7 +252,7 @@ GLushort *radeonAllocEltsOpenEnded( r100ContextPtr rmesa,
int align_min_nr;
BATCH_LOCALS(&rmesa->radeon);
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s %d prim %x\n", __FUNCTION__, min_nr, primitive);
assert((primitive & RADEON_CP_VC_CNTL_PRIM_WALK_IND));
@@ -296,7 +296,7 @@ GLushort *radeonAllocEltsOpenEnded( r100ContextPtr rmesa,
retval = (GLushort *)(rmesa->radeon.cmdbuf.cs->packets + rmesa->tcl.elt_cmd_offset);
- if (RADEON_DEBUG & DEBUG_PRIMS)
+ if (RADEON_DEBUG & RADEON_RENDER)
fprintf(stderr, "%s: header prim %x \n",
__FUNCTION__, primitive);
@@ -318,7 +318,7 @@ void radeonEmitVertexAOS( r100ContextPtr rmesa,
#else
BATCH_LOCALS(&rmesa->radeon);
- if (RADEON_DEBUG & (DEBUG_PRIMS|DEBUG_IOCTL))
+ if (RADEON_DEBUG & (RADEON_PRIMS|DEBUG_IOCTL))
fprintf(stderr, "%s: vertex_size 0x%x offset 0x%x \n",
__FUNCTION__, vertex_size, offset);
@@ -350,7 +350,7 @@ void radeonEmitAOS( r100ContextPtr rmesa,
int sz = 1 + (nr >> 1) * 3 + (nr & 1) * 2;
int i;
- if (RADEON_DEBUG & DEBUG_IOCTL)
+ if (RADEON_DEBUG & RADEON_IOCTL)
fprintf(stderr, "%s\n", __FUNCTION__);
BEGIN_BATCH(sz+2+(nr * 2));
@@ -575,7 +575,7 @@ static void radeonClear( GLcontext *ctx, GLbitfield mask )
GLuint color_mask = 0;
GLuint orig_mask = mask;
- if ( RADEON_DEBUG & DEBUG_IOCTL ) {
+ if ( RADEON_DEBUG & RADEON_IOCTL ) {
fprintf( stderr, "radeonClear\n");
}
@@ -611,7 +611,7 @@ static void radeonClear( GLcontext *ctx, GLbitfield mask )
}
if ( mask ) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "%s: swrast clear, mask: %x\n", __FUNCTION__, mask);
_swrast_Clear( ctx, mask );
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_lighting.c b/src/mesa/drivers/dri/radeon/radeon_lighting.c
index ac3b94e4a68..ba444f2b100 100644
--- a/src/mesa/drivers/dri/radeon/radeon_lighting.c
+++ b/src/mesa/drivers/dri/radeon/radeon_lighting.c
@@ -195,7 +195,7 @@ void radeonUpdateMaterial( GLcontext *ctx )
if (ctx->Light.ColorMaterialEnabled)
mask &= ~ctx->Light.ColorMaterialBitmask;
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s\n", __FUNCTION__);
@@ -234,7 +234,7 @@ void radeonUpdateMaterial( GLcontext *ctx )
check_twoside_fallback( ctx );
update_global_ambient( ctx );
}
- else if (RADEON_DEBUG & (DEBUG_PRIMS|DEBUG_STATE))
+ else if (RADEON_DEBUG & (RADEON_PRIMS|DEBUG_STATE))
fprintf(stderr, "%s: Elided noop material call\n", __FUNCTION__);
}
@@ -624,7 +624,7 @@ static void radeonLightingSpaceChange( GLcontext *ctx )
GLboolean tmp;
RADEON_STATECHANGE( rmesa, tcl );
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s %d\n", __FUNCTION__, ctx->_NeedEyeCoords);
if (ctx->_NeedEyeCoords)
diff --git a/src/mesa/drivers/dri/radeon/radeon_lock.c b/src/mesa/drivers/dri/radeon/radeon_lock.c
index 6294b7e42be..02de8e5fd1d 100644
--- a/src/mesa/drivers/dri/radeon/radeon_lock.c
+++ b/src/mesa/drivers/dri/radeon/radeon_lock.c
@@ -131,7 +131,7 @@ void radeon_lock_hardware(radeonContextPtr radeon
if (ATOMIC_INC_AND_FETCH(radeon->dri.hwLockCount) > 1)
{
#ifndef NDEBUG
- if ( RADEON_DEBUG & DEBUG_SANITY )
+ if ( RADEON_DEBUG & RADEON_SANITY )
fprintf(stderr, "*** %d times of recursive call to %s ***\n"
"Original call was from %s (file: %s line: %d)\n"
"Now call is coming from %s (file: %s line: %d)\n"
diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
index 7c6ea0530e0..08e1c5d00df 100644
--- a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
+++ b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
@@ -56,7 +56,7 @@ static void emit_vecfog(GLcontext *ctx, struct radeon_aos *aos,
int size = 1;
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d\n",
__FUNCTION__, count, stride);
@@ -87,7 +87,7 @@ static void emit_vecfog(GLcontext *ctx, struct radeon_aos *aos,
static void emit_s0_vec(uint32_t *out, GLvoid *data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d\n",
__FUNCTION__, count, stride);
@@ -103,7 +103,7 @@ static void emit_stq_vec(uint32_t *out, GLvoid *data, int stride, int count)
{
int i;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s count %d stride %d\n",
__FUNCTION__, count, stride);
@@ -126,7 +126,7 @@ static void emit_tex_vector(GLcontext *ctx, struct radeon_aos *aos,
int emitsize;
uint32_t *out;
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
fprintf(stderr, "%s %d/%d\n", __FUNCTION__, count, size);
switch (size) {
@@ -188,7 +188,7 @@ void radeonEmitArrays( GLcontext *ctx, GLuint inputs )
GLuint vtx, unit;
#if 0
- if (RADEON_DEBUG & DEBUG_VERTS)
+ if (RADEON_DEBUG & RADEON_VERTS)
_tnl_print_vert_flags( __FUNCTION__, inputs );
#endif
diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h b/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h
index 034cda8a65b..515783135d6 100644
--- a/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h
+++ b/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h
@@ -54,8 +54,7 @@ static void TAG(emit)( GLcontext *ctx,
union emit_union *v = (union emit_union *)dest;
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf(stderr, "%s\n", __FUNCTION__);
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s\n", __FUNCTION__);
coord = (GLuint (*)[4])VB->ObjPtr->data;
coord_stride = VB->ObjPtr->stride;
diff --git a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c
index eba9f5857f2..38db305e2a7 100644
--- a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c
+++ b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c
@@ -121,7 +121,7 @@ static void compute_tex_image_offset(radeonContextPtr rmesa, radeon_mipmap_tree
lvl->faces[face].offset = *curOffset;
*curOffset += lvl->size;
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr,
"level %d, face %d: rs:%d %dx%d at %d\n",
level, face, lvl->rowstride, lvl->width, lvl->height, lvl->faces[face].offset);
@@ -190,13 +190,14 @@ static void calculate_miptree_layout_r300(radeonContextPtr rmesa, radeon_mipmap_
* Create a new mipmap tree, calculate its layout and allocate memory.
*/
radeon_mipmap_tree* radeon_miptree_create(radeonContextPtr rmesa, radeonTexObj *t,
- GLenum target, GLuint firstLevel, GLuint lastLevel,
+ GLenum target, GLenum internal_format, GLuint firstLevel, GLuint lastLevel,
GLuint width0, GLuint height0, GLuint depth0,
GLuint bpp, GLuint tilebits, GLuint compressed)
{
radeon_mipmap_tree *mt = CALLOC_STRUCT(_radeon_mipmap_tree);
mt->radeon = rmesa;
+ mt->internal_format = internal_format;
mt->refcount = 1;
mt->t = t;
mt->target = target;
@@ -318,8 +319,8 @@ GLboolean radeon_miptree_matches_image(radeon_mipmap_tree *mt,
if (face >= mt->faces || level < mt->firstLevel || level > mt->lastLevel)
return GL_FALSE;
- if ((!texImage->IsCompressed && mt->compressed) ||
- (texImage->IsCompressed && !mt->compressed))
+ if (texImage->InternalFormat != mt->internal_format ||
+ texImage->IsCompressed != mt->compressed)
return GL_FALSE;
if (!texImage->IsCompressed &&
@@ -369,9 +370,9 @@ GLboolean radeon_miptree_matches_texture(radeon_mipmap_tree *mt, struct gl_textu
* given image in the given position.
*/
void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t,
- struct gl_texture_image *texImage, GLuint face, GLuint level)
+ radeon_texture_image *image, GLuint face, GLuint level)
{
- GLuint compressed = texImage->IsCompressed ? texImage->TexFormat->MesaFormat : 0;
+ GLuint compressed = image->base.IsCompressed ? image->base.TexFormat->MesaFormat : 0;
GLuint numfaces = 1;
GLuint firstLevel, lastLevel;
@@ -385,9 +386,10 @@ void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t,
return;
t->mt = radeon_miptree_create(rmesa, t, t->base.Target,
+ image->base.InternalFormat,
firstLevel, lastLevel,
- texImage->Width, texImage->Height, texImage->Depth,
- texImage->TexFormat->TexelBytes, t->tile_bits, compressed);
+ image->base.Width, image->base.Height, image->base.Depth,
+ image->base.TexFormat->TexelBytes, t->tile_bits, compressed);
}
/* Although we use the image_offset[] array to store relative offsets
diff --git a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h
index 7ece688493d..db28252da37 100644
--- a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h
+++ b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h
@@ -67,6 +67,7 @@ struct _radeon_mipmap_tree {
GLuint totalsize; /** total size of the miptree, in bytes */
GLenum target; /** GL_TEXTURE_xxx */
+ GLenum internal_format;
GLuint faces; /** # of faces: 6 for cubemaps, 1 otherwise */
GLuint firstLevel; /** First mip level stored in this mipmap tree */
GLuint lastLevel; /** Last mip level stored in this mipmap tree */
@@ -83,7 +84,7 @@ struct _radeon_mipmap_tree {
};
radeon_mipmap_tree* radeon_miptree_create(radeonContextPtr rmesa, radeonTexObj *t,
- GLenum target, GLuint firstLevel, GLuint lastLevel,
+ GLenum target, GLenum internal_format, GLuint firstLevel, GLuint lastLevel,
GLuint width0, GLuint height0, GLuint depth0,
GLuint bpp, GLuint tilebits, GLuint compressed);
void radeon_miptree_reference(radeon_mipmap_tree *mt);
@@ -93,7 +94,7 @@ GLboolean radeon_miptree_matches_image(radeon_mipmap_tree *mt,
struct gl_texture_image *texImage, GLuint face, GLuint level);
GLboolean radeon_miptree_matches_texture(radeon_mipmap_tree *mt, struct gl_texture_object *texObj);
void radeon_try_alloc_miptree(radeonContextPtr rmesa, radeonTexObj *t,
- struct gl_texture_image *texImage, GLuint face, GLuint level);
+ radeon_texture_image *texImage, GLuint face, GLuint level);
GLuint radeon_miptree_image_offset(radeon_mipmap_tree *mt,
GLuint face, GLuint level);
void radeon_miptree_depth_offsets(radeon_mipmap_tree *mt, GLuint level, GLuint *offsets);
diff --git a/src/mesa/drivers/dri/radeon/radeon_queryobj.c b/src/mesa/drivers/dri/radeon/radeon_queryobj.c
index 7eef4faaf61..b79d864ba29 100644
--- a/src/mesa/drivers/dri/radeon/radeon_queryobj.c
+++ b/src/mesa/drivers/dri/radeon/radeon_queryobj.c
@@ -26,12 +26,11 @@
*/
#include "radeon_common.h"
#include "radeon_queryobj.h"
+#include "radeon_debug.h"
#include "main/imports.h"
#include "main/simple_list.h"
-#define DDEBUG 0
-
static int radeonQueryIsFlushed(GLcontext *ctx, struct gl_query_object *q)
{
radeonContextPtr radeon = RADEON_CONTEXT(ctx);
@@ -52,7 +51,9 @@ static void radeonQueryGetResult(GLcontext *ctx, struct gl_query_object *q)
uint32_t *result;
int i;
- if (DDEBUG) fprintf(stderr, "%s: query id %d, result %d\n", __FUNCTION__, query->Base.Id, (int) query->Base.Result);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE,
+ "%s: query id %d, result %d\n",
+ __FUNCTION__, query->Base.Id, (int) query->Base.Result);
radeon_bo_map(query->bo, GL_FALSE);
@@ -61,7 +62,7 @@ static void radeonQueryGetResult(GLcontext *ctx, struct gl_query_object *q)
query->Base.Result = 0;
for (i = 0; i < query->curr_offset/sizeof(uint32_t); ++i) {
query->Base.Result += result[i];
- if (DDEBUG) fprintf(stderr, "result[%d] = %d\n", i, result[i]);
+ radeon_print(RADEON_STATE, RADEON_TRACE, "result[%d] = %d\n", i, result[i]);
}
radeon_bo_unmap(query->bo);
@@ -78,7 +79,7 @@ static struct gl_query_object * radeonNewQueryObject(GLcontext *ctx, GLuint id)
query->Base.Active = GL_FALSE;
query->Base.Ready = GL_TRUE;
- if (DDEBUG) fprintf(stderr, "%s: query id %d\n", __FUNCTION__, query->Base.Id);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE,"%s: query id %d\n", __FUNCTION__, query->Base.Id);
return &query->Base;
}
@@ -87,7 +88,7 @@ static void radeonDeleteQuery(GLcontext *ctx, struct gl_query_object *q)
{
struct radeon_query_object *query = (struct radeon_query_object *)q;
- if (DDEBUG) fprintf(stderr, "%s: query id %d\n", __FUNCTION__, q->Id);
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s: query id %d\n", __FUNCTION__, q->Id);
if (query->bo) {
radeon_bo_unref(query->bo);
@@ -104,7 +105,7 @@ static void radeonWaitQuery(GLcontext *ctx, struct gl_query_object *q)
if (!radeonQueryIsFlushed(ctx, q))
ctx->Driver.Flush(ctx);
- if (DDEBUG) fprintf(stderr, "%s: query id %d, bo %p, offset %d\n", __FUNCTION__, q->Id, query->bo, query->curr_offset);
+ radeon_print(RADEON_STATE, RADEON_VERBOSE, "%s: query id %d, bo %p, offset %d\n", __FUNCTION__, q->Id, query->bo, query->curr_offset);
radeonQueryGetResult(ctx, q);
@@ -117,7 +118,7 @@ static void radeonBeginQuery(GLcontext *ctx, struct gl_query_object *q)
radeonContextPtr radeon = RADEON_CONTEXT(ctx);
struct radeon_query_object *query = (struct radeon_query_object *)q;
- if (DDEBUG) fprintf(stderr, "%s: query id %d\n", __FUNCTION__, q->Id);
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s: query id %d\n", __FUNCTION__, q->Id);
assert(radeon->query.current == NULL);
@@ -132,6 +133,7 @@ static void radeonBeginQuery(GLcontext *ctx, struct gl_query_object *q)
radeon->query.current = query;
radeon->query.queryobj.dirty = GL_TRUE;
+ radeon->hw.is_dirty = GL_TRUE;
insert_at_tail(&radeon->query.not_flushed_head, query);
}
@@ -147,7 +149,7 @@ void radeonEmitQueryEnd(GLcontext *ctx)
if (query->emitted_begin == GL_FALSE)
return;
- if (DDEBUG) fprintf(stderr, "%s: query id %d, bo %p, offset %d\n", __FUNCTION__, query->Base.Id, query->bo, query->curr_offset);
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s: query id %d, bo %p, offset %d\n", __FUNCTION__, query->Base.Id, query->bo, query->curr_offset);
radeon_cs_space_check_with_bo(radeon->cmdbuf.cs,
query->bo,
@@ -160,7 +162,7 @@ static void radeonEndQuery(GLcontext *ctx, struct gl_query_object *q)
{
radeonContextPtr radeon = RADEON_CONTEXT(ctx);
- if (DDEBUG) fprintf(stderr, "%s: query id %d\n", __FUNCTION__, q->Id);
+ radeon_print(RADEON_STATE, RADEON_NORMAL, "%s: query id %d\n", __FUNCTION__, q->Id);
if (radeon->dma.flush)
radeon->dma.flush(radeon->glCtx);
@@ -171,7 +173,7 @@ static void radeonEndQuery(GLcontext *ctx, struct gl_query_object *q)
static void radeonCheckQuery(GLcontext *ctx, struct gl_query_object *q)
{
- if (DDEBUG) fprintf(stderr, "%s: query id %d\n", __FUNCTION__, q->Id);
+ radeon_print(RADEON_STATE, RADEON_TRACE, "%s: query id %d\n", __FUNCTION__, q->Id);
#ifdef DRM_RADEON_GEM_BUSY
radeonContextPtr radeon = RADEON_CONTEXT(ctx);
diff --git a/src/mesa/drivers/dri/radeon/radeon_sanity.c b/src/mesa/drivers/dri/radeon/radeon_sanity.c
index bbed838b592..1ab570f5071 100644
--- a/src/mesa/drivers/dri/radeon/radeon_sanity.c
+++ b/src/mesa/drivers/dri/radeon/radeon_sanity.c
@@ -44,11 +44,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#define MORE_VERBOSE 1
#if MORE_VERBOSE
-#define VERBOSE (RADEON_DEBUG & DEBUG_VERBOSE)
+#define VERBOSE (RADEON_DEBUG & RADEON_VERBOSE)
#define NORMAL (1)
#else
#define VERBOSE 0
-#define NORMAL (RADEON_DEBUG & DEBUG_VERBOSE)
+#define NORMAL (RADEON_DEBUG & RADEON_VERBOSE)
#endif
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index e8b2dc89fe9..5ffb55db5ef 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -220,30 +220,6 @@ static const GLuint __driNConfigOptions = 17;
extern const struct dri_extension gl_20_extension[];
-#ifndef RADEON_DEBUG
-
-static const struct dri_debug_control debug_control[] = {
- {"fall", DEBUG_FALLBACKS},
- {"tex", DEBUG_TEXTURE},
- {"ioctl", DEBUG_IOCTL},
- {"prim", DEBUG_PRIMS},
- {"vert", DEBUG_VERTS},
- {"state", DEBUG_STATE},
- {"code", DEBUG_CODEGEN},
- {"vfmt", DEBUG_VFMT},
- {"vtxf", DEBUG_VFMT},
- {"verb", DEBUG_VERBOSE},
- {"dri", DEBUG_DRI},
- {"dma", DEBUG_DMA},
- {"san", DEBUG_SANITY},
- {"sync", DEBUG_SYNC},
- {"pix", DEBUG_PIXEL},
- {"mem", DEBUG_MEMORY},
- {"allmsg", ~DEBUG_SYNC}, /* avoid the term "sync" because the parser uses strstr */
- {NULL, 0}
-};
-#endif /* RADEON_DEBUG */
-
#endif /* RADEON_COMMON && defined(RADEON_COMMON_FOR_R300) */
extern const struct dri_extension card_extensions[];
@@ -868,6 +844,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)
case PCI_CHIP_RV770_9440:
case PCI_CHIP_RV770_9441:
case PCI_CHIP_RV770_9442:
+ case PCI_CHIP_RV770_9443:
case PCI_CHIP_RV770_9444:
case PCI_CHIP_RV770_9446:
case PCI_CHIP_RV770_944A:
@@ -965,9 +942,8 @@ radeonCreateScreen( __DRIscreenPrivate *sPriv )
return NULL;
}
-#if DO_DEBUG && RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
- RADEON_DEBUG = driParseDebugString(getenv("RADEON_DEBUG"), debug_control);
-#endif
+ radeon_init_debug();
+
/* parse information in __driConfigOptions */
driParseOptionInfo (&screen->optionCache,
__driConfigOptions, __driNConfigOptions);
@@ -1300,9 +1276,7 @@ radeonCreateScreen2(__DRIscreenPrivate *sPriv)
return NULL;
}
-#if DO_DEBUG && RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
- RADEON_DEBUG = driParseDebugString(getenv("RADEON_DEBUG"), debug_control);
-#endif
+ radeon_init_debug();
/* parse information in __driConfigOptions */
driParseOptionInfo (&screen->optionCache,
@@ -1716,6 +1690,8 @@ __DRIconfig **radeonInitScreen2(__DRIscreenPrivate *psp)
driInitSingleExtension( NULL, NV_vp_extension );
driInitSingleExtension( NULL, ATI_fs_extension );
driInitExtensions( NULL, point_extensions, GL_FALSE );
+#elif (defined(RADEON_COMMON_FOR_R300) || defined(RADEON_COMMON_FOR_R600))
+ driInitSingleExtension( NULL, gl_20_extension );
#endif
if (!radeonInitDriver(psp)) {
diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c
index e03551d6664..4d0d35ee0cd 100644
--- a/src/mesa/drivers/dri/radeon/radeon_state.c
+++ b/src/mesa/drivers/dri/radeon/radeon_state.c
@@ -814,7 +814,7 @@ void radeonUpdateMaterial( GLcontext *ctx )
if (ctx->Light.ColorMaterialEnabled)
mask &= ~ctx->Light.ColorMaterialBitmask;
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s\n", __FUNCTION__);
@@ -1548,7 +1548,7 @@ static void radeonEnable( GLcontext *ctx, GLenum cap, GLboolean state )
r100ContextPtr rmesa = R100_CONTEXT(ctx);
GLuint p, flag;
- if ( RADEON_DEBUG & DEBUG_STATE )
+ if ( RADEON_DEBUG & RADEON_STATE )
fprintf( stderr, "%s( %s = %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr( cap ),
state ? "GL_TRUE" : "GL_FALSE" );
@@ -1842,7 +1842,7 @@ static void radeonLightingSpaceChange( GLcontext *ctx )
GLboolean tmp;
RADEON_STATECHANGE( rmesa, tcl );
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s %d BEFORE %x\n", __FUNCTION__, ctx->_NeedEyeCoords,
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL]);
@@ -1857,7 +1857,7 @@ static void radeonLightingSpaceChange( GLcontext *ctx )
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] &= ~RADEON_RESCALE_NORMALS;
}
- if (RADEON_DEBUG & DEBUG_STATE)
+ if (RADEON_DEBUG & RADEON_STATE)
fprintf(stderr, "%s %d AFTER %x\n", __FUNCTION__, ctx->_NeedEyeCoords,
rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL]);
}
@@ -2197,6 +2197,22 @@ static void radeonWrapRunPipeline( GLcontext *ctx )
}
}
+static void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask )
+{
+ r100ContextPtr r100 = R100_CONTEXT(ctx);
+ GLint i;
+
+ radeon_firevertices(&r100->radeon);
+
+ RADEON_STATECHANGE(r100, stp);
+
+ /* Must flip pattern upside down.
+ */
+ for ( i = 31 ; i >= 0; i--) {
+ r100->hw.stp.cmd[3 + i] = ((GLuint *) mask)[i];
+ }
+}
+
/* Initialize the driver's state functions.
* Many of the ctx->Driver functions might have been initialized to
diff --git a/src/mesa/drivers/dri/radeon/radeon_state_init.c b/src/mesa/drivers/dri/radeon/radeon_state_init.c
index d014fb5c061..f3ad0dd17af 100644
--- a/src/mesa/drivers/dri/radeon/radeon_state_init.c
+++ b/src/mesa/drivers/dri/radeon/radeon_state_init.c
@@ -573,7 +573,7 @@ static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom)
for (j = 0; j < 5; j++) {
OUT_BATCH(CP_PACKET0(base_reg + (4 * j), 0));
OUT_BATCH_RELOC(lvl->faces[j].offset, t->mt->bo, lvl->faces[j].offset,
- RADEON_GEM_DOMAIN_VRAM, 0, 0);
+ RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0);
}
END_BATCH();
}
@@ -781,6 +781,10 @@ void radeonInitState( r100ContextPtr rmesa )
ALLOC_STATE( ucp[5], tcl_ucp5, UCP_STATE_SIZE, "UCP/userclip-5", 1 );
}
+ if (rmesa->radeon.radeonScreen->kernel_mm) {
+ ALLOC_STATE( stp, always, STP_STATE_SIZE, "STP/stp", 0 );
+ }
+
for (i = 0; i < 3; i++) {
if (rmesa->radeon.radeonScreen->kernel_mm)
rmesa->hw.tex[i].emit = tex_emit_cs;
@@ -873,6 +877,10 @@ void radeonInitState( r100ContextPtr rmesa )
}
if (rmesa->radeon.radeonScreen->kernel_mm) {
+ rmesa->hw.stp.cmd[STP_CMD_0] = CP_PACKET0(RADEON_RE_STIPPLE_ADDR, 0);
+ rmesa->hw.stp.cmd[STP_DATA_0] = 0;
+ rmesa->hw.stp.cmd[STP_CMD_1] = CP_PACKET0_ONE(RADEON_RE_STIPPLE_DATA, 31);
+
rmesa->hw.grd.emit = scl_emit;
rmesa->hw.fog.emit = vec_emit;
rmesa->hw.glt.emit = vec_emit;
@@ -1143,7 +1151,7 @@ void radeonInitState( r100ContextPtr rmesa )
rmesa->hw.eye.cmd[EYE_Y] = 0;
rmesa->hw.eye.cmd[EYE_Z] = IEEE_ONE;
rmesa->hw.eye.cmd[EYE_RESCALE_FACTOR] = IEEE_ONE;
-
+
if (rmesa->radeon.radeonScreen->kernel_mm) {
radeon_init_query_stateobj(&rmesa->radeon, R100_QUERYOBJ_CMDSIZE);
rmesa->radeon.query.queryobj.cmd[R100_QUERYOBJ_CMD_0] = CP_PACKET0(RADEON_RB3D_ZPASS_DATA, 0);
diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.c b/src/mesa/drivers/dri/radeon/radeon_swtcl.c
index 32df569257a..e61f59eaeaf 100644
--- a/src/mesa/drivers/dri/radeon/radeon_swtcl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_swtcl.c
@@ -51,6 +51,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "radeon_state.h"
#include "radeon_swtcl.h"
#include "radeon_tcl.h"
+#include "radeon_debug.h"
/* R100: xyzw, c0, c1/fog, stq[0..2] = 4+1+1+3*3 = 15 right? */
@@ -214,9 +215,8 @@ static void radeonSetVertexFormat( GLcontext *ctx )
NULL, 0 );
rmesa->radeon.swtcl.vertex_size /= 4;
RENDERINPUTS_COPY( rmesa->radeon.tnl_index_bitset, index_bitset );
- if (RADEON_DEBUG & DEBUG_VERTS)
- fprintf( stderr, "%s: vertex_size= %d floats\n",
- __FUNCTION__, rmesa->radeon.swtcl.vertex_size);
+ radeon_print(RADEON_SWRENDER, RADEON_VERBOSE,
+ "%s: vertex_size= %d floats\n", __FUNCTION__, rmesa->radeon.swtcl.vertex_size);
}
}
@@ -420,8 +420,8 @@ static GLboolean radeon_run_render( GLcontext *ctx,
if (!length)
continue;
- if (RADEON_DEBUG & DEBUG_PRIMS)
- fprintf(stderr, "radeon_render.c: prim %s %d..%d\n",
+ radeon_print(RADEON_SWRENDER, RADEON_NORMAL,
+ "radeon_render.c: prim %s %d..%d\n",
_mesa_lookup_enum_by_nr(prim & PRIM_MODE_MASK),
start, start+length);
@@ -784,7 +784,7 @@ void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
TCL_FALLBACK( ctx, RADEON_TCL_FALLBACK_RASTER, GL_TRUE );
_swsetup_Wakeup( ctx );
rmesa->radeon.swtcl.RenderIndex = ~0;
- if (RADEON_DEBUG & DEBUG_FALLBACKS) {
+ if (RADEON_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "Radeon begin rasterization fallback: 0x%x %s\n",
bit, getFallbackString(bit));
}
@@ -815,7 +815,7 @@ void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
radeonChooseVertexState( ctx );
radeonChooseRenderState( ctx );
}
- if (RADEON_DEBUG & DEBUG_FALLBACKS) {
+ if (RADEON_DEBUG & RADEON_FALLBACKS) {
fprintf(stderr, "Radeon end rasterization fallback: 0x%x %s\n",
bit, getFallbackString(bit));
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c
index 2404f284505..b334ea05e5b 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tcl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c
@@ -587,7 +587,7 @@ static void transition_to_hwtnl( GLcontext *ctx )
// radeonReleaseDmaRegion( rmesa, &rmesa->swtcl.indexed_verts,
// __FUNCTION__ );
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "Radeon end tcl fallback\n");
}
@@ -624,7 +624,7 @@ void radeonTclFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
if (mode) {
rmesa->radeon.TclFallback |= bit;
if (oldfallback == 0) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "Radeon begin tcl fallback %s\n",
getFallbackString( bit ));
transition_to_swtnl( ctx );
@@ -633,7 +633,7 @@ void radeonTclFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
else {
rmesa->radeon.TclFallback &= ~bit;
if (oldfallback == bit) {
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "Radeon end tcl fallback %s\n",
getFallbackString( bit ));
transition_to_hwtnl( ctx );
diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.c b/src/mesa/drivers/dri/radeon/radeon_tex.c
index 2549d5cb5cb..99865fff27b 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tex.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tex.c
@@ -263,7 +263,7 @@ static void radeonTexEnv( GLcontext *ctx, GLenum target,
GLuint unit = ctx->Texture.CurrentUnit;
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
- if ( RADEON_DEBUG & DEBUG_STATE ) {
+ if ( RADEON_DEBUG & RADEON_STATE ) {
fprintf( stderr, "%s( %s )\n",
__FUNCTION__, _mesa_lookup_enum_by_nr( pname ) );
}
@@ -325,10 +325,8 @@ static void radeonTexParameter( GLcontext *ctx, GLenum target,
{
radeonTexObj* t = radeon_tex_obj(texObj);
- if ( RADEON_DEBUG & (DEBUG_STATE|DEBUG_TEXTURE) ) {
- fprintf( stderr, "%s( %s )\n", __FUNCTION__,
+ radeon_print(RADEON_TEXTURE, RADEON_VERBOSE, "%s( %s )\n", __FUNCTION__,
_mesa_lookup_enum_by_nr( pname ) );
- }
switch ( pname ) {
case GL_TEXTURE_MIN_FILTER:
@@ -376,10 +374,9 @@ static void radeonDeleteTexture( GLcontext *ctx,
radeonTexObj* t = radeon_tex_obj(texObj);
int i;
- if ( RADEON_DEBUG & (DEBUG_STATE|DEBUG_TEXTURE) ) {
- fprintf( stderr, "%s( %p (target = %s) )\n", __FUNCTION__, (void *)texObj,
+ radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
+ "%s( %p (target = %s) )\n", __FUNCTION__, (void *)texObj,
_mesa_lookup_enum_by_nr( texObj->Target ) );
- }
if ( rmesa ) {
radeon_firevertices(&rmesa->radeon);
diff --git a/src/mesa/drivers/dri/radeon/radeon_texstate.c b/src/mesa/drivers/dri/radeon/radeon_texstate.c
index c29105d7b85..9d252aa74c5 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texstate.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texstate.c
@@ -277,7 +277,7 @@ static GLboolean radeonUpdateTextureEnv( GLcontext *ctx, int unit )
assert( (texUnit->_ReallyEnabled == 0)
|| (texUnit->_Current != NULL) );
- if ( RADEON_DEBUG & DEBUG_TEXTURE ) {
+ if ( RADEON_DEBUG & RADEON_TEXTURE ) {
fprintf( stderr, "%s( %p, %d )\n", __FUNCTION__, (void *)ctx, unit );
}
@@ -933,7 +933,7 @@ static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit )
(texUnit->GenS.Mode != texUnit->GenQ.Mode)) ) {
/* Mixed modes, fallback:
*/
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback mixed texgen\n");
return GL_FALSE;
}
@@ -941,7 +941,7 @@ static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit )
}
else {
/* some texgen mode not including both S and T bits */
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback mixed texgen/nontexgen\n");
return GL_FALSE;
}
@@ -991,7 +991,7 @@ static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit )
default:
/* Unsupported mode, fallback:
*/
- if (RADEON_DEBUG & DEBUG_FALLBACKS)
+ if (RADEON_DEBUG & RADEON_FALLBACKS)
fprintf(stderr, "fallback GL_SPHERE_MAP\n");
return GL_FALSE;
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index fa16f44c18e..fad3d1cedaf 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -579,7 +579,7 @@ static void radeon_teximage(
}
if (!t->mt)
- radeon_try_alloc_miptree(rmesa, t, texImage, face, level);
+ radeon_try_alloc_miptree(rmesa, t, image, face, level);
if (t->mt && radeon_miptree_matches_image(t->mt, texImage, face, level)) {
radeon_mipmap_level *lvl;
image->mt = t->mt;
@@ -936,7 +936,7 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
if (t->validated || t->image_override)
return GL_TRUE;
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, "%s: Validating texture %p now\n", __FUNCTION__, texObj);
if (baseimage->base.Border > 0)
@@ -964,9 +964,9 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
}
if (!t->mt) {
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, " Allocate new miptree\n");
- radeon_try_alloc_miptree(rmesa, t, &baseimage->base, 0, texObj->BaseLevel);
+ radeon_try_alloc_miptree(rmesa, t, baseimage, 0, texObj->BaseLevel);
if (!t->mt) {
_mesa_problem(ctx, "radeon_validate_texture failed to alloc miptree");
return GL_FALSE;
@@ -977,16 +977,16 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t
for(face = 0; face < t->mt->faces; ++face) {
for(level = t->mt->firstLevel; level <= t->mt->lastLevel; ++level) {
radeon_texture_image *image = get_radeon_texture_image(texObj->Image[face][level]);
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, " face %i, level %i... %p vs %p ", face, level, t->mt, image->mt);
if (t->mt == image->mt) {
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, "OK\n");
continue;
}
- if (RADEON_DEBUG & DEBUG_TEXTURE)
+ if (RADEON_DEBUG & RADEON_TEXTURE)
fprintf(stderr, "migrating\n");
migrate_image_to_miptree(t->mt, image, face, level);
}
diff --git a/src/mesa/drivers/dri/s3v/s3v_state.c b/src/mesa/drivers/dri/s3v/s3v_state.c
index c71c89a3e1b..561f42c705f 100644
--- a/src/mesa/drivers/dri/s3v/s3v_state.c
+++ b/src/mesa/drivers/dri/s3v/s3v_state.c
@@ -2,7 +2,6 @@
* Author: Max Lingua <[email protected]>
*/
-#include <X11/Xlibint.h>
#include "s3v_context.h"
#include "s3v_macros.h"
#include "s3v_dri.h"
@@ -24,7 +23,7 @@
static void s3vUpdateAlphaMode( GLcontext *ctx )
{
s3vContextPtr vmesa = S3V_CONTEXT(ctx);
- CARD32 cmd = vmesa->CMD;
+ uint32_t cmd = vmesa->CMD;
cmd &= ~ALPHA_BLEND_MASK;
if ( ctx->Color.BlendEnabled ) {
@@ -173,7 +172,7 @@ static void s3vDDClear( GLcontext *ctx, GLbitfield mask )
static void s3vUpdateZMode( GLcontext *ctx )
{
s3vContextPtr vmesa = S3V_CONTEXT(ctx);
- CARD32 cmd = vmesa->CMD;
+ uint32_t cmd = vmesa->CMD;
DEBUG(("Depth.Test = %i\n", ctx->Depth.Test));
DEBUG(("CMD was = 0x%x ", cmd));
diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c
index a94f1c076ca..931ceff0a81 100644
--- a/src/mesa/drivers/dri/savage/savage_xmesa.c
+++ b/src/mesa/drivers/dri/savage/savage_xmesa.c
@@ -23,7 +23,6 @@
*/
-#include <X11/Xlibint.h>
#include <stdio.h>
#include "main/context.h"
@@ -180,7 +179,7 @@ savageInitDriver(__DRIscreenPrivate *sPriv)
}
/* Allocate the private area */
- savageScreen = (savageScreenPrivate *)Xmalloc(sizeof(savageScreenPrivate));
+ savageScreen = (savageScreenPrivate *)_mesa_malloc(sizeof(savageScreenPrivate));
if (!savageScreen)
return GL_FALSE;
@@ -227,7 +226,7 @@ savageInitDriver(__DRIscreenPrivate *sPriv)
savageScreen->agpTextures.handle,
savageScreen->agpTextures.size,
(drmAddress *)&(savageScreen->agpTextures.map)) != 0) {
- Xfree(savageScreen);
+ _mesa_free(savageScreen);
sPriv->private = NULL;
return GL_FALSE;
}
@@ -247,7 +246,7 @@ savageInitDriver(__DRIscreenPrivate *sPriv)
savageScreen->aperture.size,
(drmAddress *)&savageScreen->aperture.map) != 0)
{
- Xfree(savageScreen);
+ _mesa_free(savageScreen);
sPriv->private = NULL;
return GL_FALSE;
}
@@ -283,7 +282,7 @@ savageDestroyScreen(__DRIscreenPrivate *sPriv)
/* free all option information */
driDestroyOptionInfo (&savageScreen->optionCache);
- Xfree(savageScreen);
+ _mesa_free(savageScreen);
sPriv->private = NULL;
}
@@ -301,7 +300,7 @@ savageCreateContext( const __GLcontextModes *mesaVis,
savageScreen->sarea_priv_offset);
int textureSize[SAVAGE_NR_TEX_HEAPS];
int i;
- imesa = (savageContextPtr)Xcalloc(sizeof(savageContext), 1);
+ imesa = (savageContextPtr)_mesa_calloc(sizeof(savageContext));
if (!imesa) {
return GL_FALSE;
}
@@ -318,7 +317,7 @@ savageCreateContext( const __GLcontextModes *mesaVis,
shareCtx = NULL;
ctx = _mesa_create_context(mesaVis, shareCtx, &functions, imesa);
if (!ctx) {
- Xfree(imesa);
+ _mesa_free(imesa);
return GL_FALSE;
}
driContextPriv->driverPrivate = imesa;
diff --git a/src/mesa/drivers/dri/savage/savagecontext.h b/src/mesa/drivers/dri/savage/savagecontext.h
index fd6399d6a6f..53a37db1cbc 100644
--- a/src/mesa/drivers/dri/savage/savagecontext.h
+++ b/src/mesa/drivers/dri/savage/savagecontext.h
@@ -31,7 +31,6 @@ typedef struct savage_context_t savageContext;
typedef struct savage_context_t *savageContextPtr;
typedef struct savage_texture_object_t *savageTextureObjectPtr;
-#include <X11/Xlibint.h>
#include "dri_util.h"
#include "main/mtypes.h"
#include "xf86drm.h"
diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c
index 3aa7843b1bc..a858af30c11 100644
--- a/src/mesa/drivers/dri/swrast/swrast.c
+++ b/src/mesa/drivers/dri/swrast/swrast.c
@@ -65,6 +65,7 @@
#define need_GL_ARB_shader_objects
#define need_GL_ARB_vertex_array_object
#define need_GL_ARB_vertex_program
+#define need_GL_ARB_sync
#define need_GL_APPLE_vertex_array_object
#define need_GL_ATI_fragment_shader
#define need_GL_ATI_separate_stencil
@@ -97,6 +98,7 @@ const struct dri_extension card_extensions[] =
{ "GL_ARB_shader_objects", GL_ARB_shader_objects_functions },
{ "GL_ARB_vertex_array_object", GL_ARB_vertex_array_object_functions },
{ "GL_ARB_vertex_program", GL_ARB_vertex_program_functions },
+ { "GL_ARB_sync", GL_ARB_sync_functions },
{ "GL_APPLE_vertex_array_object", GL_APPLE_vertex_array_object_functions },
{ "GL_ATI_fragment_shader", GL_ATI_fragment_shader_functions },
{ "GL_ATI_separate_stencil", GL_ATI_separate_stencil_functions },
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index 6ae5b6fd580..2c7be9f182d 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -79,6 +79,7 @@
#include "tnl/t_context.h"
#include "tnl/t_pipeline.h"
#include "drivers/common/driverfuncs.h"
+#include "drivers/common/meta.h"
/**
* Global X driver lock
@@ -1317,6 +1318,7 @@ xmesa_convert_from_x_visual_type( int visualType )
/* sw extensions not associated with some GL version */
#define need_GL_ARB_shader_objects
+#define need_GL_ARB_sync
#define need_GL_ARB_vertex_program
#define need_GL_APPLE_vertex_array_object
#define need_GL_ATI_fragment_shader
@@ -1346,6 +1348,7 @@ const struct dri_extension card_extensions[] =
{ "GL_SGI_color_table", GL_SGI_color_table_functions },
{ "GL_ARB_shader_objects", GL_ARB_shader_objects_functions },
+ { "GL_ARB_sync", GL_ARB_sync_functions },
{ "GL_ARB_vertex_program", GL_ARB_vertex_program_functions },
{ "GL_APPLE_vertex_array_object", GL_APPLE_vertex_array_object_functions },
{ "GL_ATI_fragment_shader", GL_ATI_fragment_shader_functions },
@@ -1641,6 +1644,9 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
xmesa_register_swrast_functions( mesaCtx );
_swsetup_Wakeup(mesaCtx);
+ if (TEST_META_FUNCS)
+ _mesa_meta_init(mesaCtx);
+
return c;
}
@@ -1655,6 +1661,9 @@ void XMesaDestroyContext( XMesaContext c )
FXdestroyContext( XMESA_BUFFER(mesaCtx->DrawBuffer) );
#endif
+ if (TEST_META_FUNCS)
+ _mesa_meta_free( mesaCtx );
+
_swsetup_DestroyContext( mesaCtx );
_swrast_DestroyContext( mesaCtx );
_tnl_DestroyContext( mesaCtx );
diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c
index 9a01465bdf9..465a40ac8dd 100644
--- a/src/mesa/drivers/x11/xm_dd.c
+++ b/src/mesa/drivers/x11/xm_dd.c
@@ -51,6 +51,7 @@
#include "swrast_setup/swrast_setup.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
+#include "drivers/common/meta.h"
#include "xmesaP.h"
@@ -1147,17 +1148,25 @@ xmesa_init_driver_functions( XMesaVisual xmvisual,
driver->IndexMask = index_mask;
driver->ColorMask = color_mask;
driver->Enable = enable;
- driver->Clear = clear_buffers;
driver->Viewport = xmesa_viewport;
-#ifndef XFree86Server
- driver->CopyPixels = xmesa_CopyPixels;
- if (xmvisual->undithered_pf == PF_8R8G8B &&
- xmvisual->dithered_pf == PF_8R8G8B &&
- xmvisual->BitsPerPixel == 32) {
- driver->DrawPixels = xmesa_DrawPixels_8R8G8B;
+ if (TEST_META_FUNCS) {
+ driver->Clear = _mesa_meta_clear;
+ driver->CopyPixels = _mesa_meta_copy_pixels;
+ driver->BlitFramebuffer = _mesa_meta_blit_framebuffer;
+ driver->DrawPixels = _mesa_meta_draw_pixels;
}
- else if (xmvisual->undithered_pf == PF_5R6G5B) {
- driver->DrawPixels = xmesa_DrawPixels_5R6G5B;
+ else {
+ driver->Clear = clear_buffers;
+#ifndef XFree86Server
+ driver->CopyPixels = xmesa_CopyPixels;
+ if (xmvisual->undithered_pf == PF_8R8G8B &&
+ xmvisual->dithered_pf == PF_8R8G8B &&
+ xmvisual->BitsPerPixel == 32) {
+ driver->DrawPixels = xmesa_DrawPixels_8R8G8B;
+ }
+ else if (xmvisual->undithered_pf == PF_5R6G5B) {
+ driver->DrawPixels = xmesa_DrawPixels_5R6G5B;
+ }
}
#endif
driver->TestProxyTexImage = test_proxy_teximage;
diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h
index 65e747d7b9d..25db55862e6 100644
--- a/src/mesa/drivers/x11/xmesaP.h
+++ b/src/mesa/drivers/x11/xmesaP.h
@@ -581,4 +581,8 @@ extern void xmesa_register_swrast_functions( GLcontext *ctx );
#define ENABLE_EXT_timer_query 0 /* may not have 64-bit GLuint64EXT */
#endif
+
+#define TEST_META_FUNCS 0
+
+
#endif
diff --git a/src/mesa/glapi/ARB_sync.xml b/src/mesa/glapi/ARB_sync.xml
new file mode 100644
index 00000000000..37f474980cf
--- /dev/null
+++ b/src/mesa/glapi/ARB_sync.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+<category name="GL_ARB_sync" number="61">
+ <type name="int64" size="8" glx_name="CARD64"/>
+ <type name="uint64" size="8" unsigned="true" glx_name="CARD64"/>
+ <type name="sync" size="8" unsigned="true" glx_name="CARD64"/>
+
+ <enum name="MAX_SERVER_WAIT_TIMEOUT" count="1" value="0x9111">
+ <size name="Get" mode="get"/>
+ </enum>
+ <enum name="OBJECT_TYPE" count="1" value="0x9112">
+ <size name="GetSynciv" mode="get"/>
+ </enum>
+ <enum name="SYNC_CONDITION" count="1" value="0x9113">
+ <size name="GetSynciv" mode="get"/>
+ </enum>
+ <enum name="SYNC_STATUS" count="1" value="0x9114">
+ <size name="GetSynciv" mode="get"/>
+ </enum>
+ <enum name="SYNC_FLAGS" count="1" value="0x9115">
+ <size name="GetSynciv" mode="get"/>
+ </enum>
+
+ <enum name="SYNC_FENCE" value="0x9116"/>
+ <enum name="SYNC_GPU_COMMANDS_COMPLETE" value="0x9117"/>
+ <enum name="UNSIGNALED" value="0x9118"/>
+ <enum name="SIGNALED" value="0x9119"/>
+ <enum name="ALREADY_SIGNALED" value="0x911A"/>
+ <enum name="TIMEOUT_EXPIRED" value="0x911B"/>
+ <enum name="CONDITION_SATISFIED" value="0x911C"/>
+ <enum name="WAIT_FAILED" value="0x911D"/>
+
+ <enum name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001"/>
+ <enum name="TIMEOUT_IGNORED" value="0xFFFFFFFFFFFFFFFF"/>
+
+
+
+ <function name="FenceSync" offset="assign">
+ <param name="condition" type="GLenum"/>
+ <param name="flags" type="GLbitfield"/>
+ <return type="GLsync"/>
+ </function>
+
+ <function name="IsSync" offset="assign">
+ <param name="sync" type="GLsync"/>
+ <return type="GLboolean"/>
+ </function>
+
+ <function name="DeleteSync" offset="assign">
+ <param name="sync" type="GLsync"/>
+ </function>
+
+ <function name="ClientWaitSync" offset="assign">
+ <param name="sync" type="GLsync"/>
+ <param name="flags" type="GLbitfield"/>
+ <param name="timeout" type="GLuint64"/>
+ <return type="GLenum"/>
+ </function>
+
+ <function name="WaitSync" offset="assign">
+ <param name="sync" type="GLsync"/>
+ <param name="flags" type="GLbitfield"/>
+ <param name="timeout" type="GLuint64"/>
+ </function>
+
+ <function name="GetInteger64v" offset="assign">
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="GLint64 *" output="true" variable_param="pname"/>
+ </function>
+
+ <function name="GetSynciv" offset="assign">
+ <param name="sync" type="GLsync"/>
+ <param name="pname" type="GLenum"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *" output="true"/>
+ <param name="values" type="GLint *" output="true" variable_param="pname"/>
+ </function>
+</category>
+
+</OpenGLAPI>
diff --git a/src/mesa/glapi/Makefile b/src/mesa/glapi/Makefile
index f706309b565..65edab7cec9 100644
--- a/src/mesa/glapi/Makefile
+++ b/src/mesa/glapi/Makefile
@@ -51,6 +51,7 @@ API_XML = gl_API.xml \
ARB_framebuffer_object.xml \
ARB_map_buffer_range.xml \
ARB_seamless_cube_map.xml \
+ ARB_sync.xml \
ARB_vertex_array_object.xml \
APPLE_vertex_array_object.xml \
EXT_provoking_vertex.xml
diff --git a/src/mesa/glapi/dispatch.h b/src/mesa/glapi/dispatch.h
index 2f5cc55f005..0d320459162 100644
--- a/src/mesa/glapi/dispatch.h
+++ b/src/mesa/glapi/dispatch.h
@@ -1761,6 +1761,27 @@
#define CALL_CopyBufferSubData(disp, parameters) (*((disp)->CopyBufferSubData)) parameters
#define GET_CopyBufferSubData(disp) ((disp)->CopyBufferSubData)
#define SET_CopyBufferSubData(disp, fn) ((disp)->CopyBufferSubData = fn)
+#define CALL_ClientWaitSync(disp, parameters) (*((disp)->ClientWaitSync)) parameters
+#define GET_ClientWaitSync(disp) ((disp)->ClientWaitSync)
+#define SET_ClientWaitSync(disp, fn) ((disp)->ClientWaitSync = fn)
+#define CALL_DeleteSync(disp, parameters) (*((disp)->DeleteSync)) parameters
+#define GET_DeleteSync(disp) ((disp)->DeleteSync)
+#define SET_DeleteSync(disp, fn) ((disp)->DeleteSync = fn)
+#define CALL_FenceSync(disp, parameters) (*((disp)->FenceSync)) parameters
+#define GET_FenceSync(disp) ((disp)->FenceSync)
+#define SET_FenceSync(disp, fn) ((disp)->FenceSync = fn)
+#define CALL_GetInteger64v(disp, parameters) (*((disp)->GetInteger64v)) parameters
+#define GET_GetInteger64v(disp) ((disp)->GetInteger64v)
+#define SET_GetInteger64v(disp, fn) ((disp)->GetInteger64v = fn)
+#define CALL_GetSynciv(disp, parameters) (*((disp)->GetSynciv)) parameters
+#define GET_GetSynciv(disp) ((disp)->GetSynciv)
+#define SET_GetSynciv(disp, fn) ((disp)->GetSynciv = fn)
+#define CALL_IsSync(disp, parameters) (*((disp)->IsSync)) parameters
+#define GET_IsSync(disp) ((disp)->IsSync)
+#define SET_IsSync(disp, fn) ((disp)->IsSync = fn)
+#define CALL_WaitSync(disp, parameters) (*((disp)->WaitSync)) parameters
+#define GET_WaitSync(disp) ((disp)->WaitSync)
+#define SET_WaitSync(disp, fn) ((disp)->WaitSync = fn)
#define CALL_PolygonOffsetEXT(disp, parameters) (*((disp)->PolygonOffsetEXT)) parameters
#define GET_PolygonOffsetEXT(disp) ((disp)->PolygonOffsetEXT)
#define SET_PolygonOffsetEXT(disp, fn) ((disp)->PolygonOffsetEXT = fn)
@@ -2418,7 +2439,7 @@
#else
-#define driDispatchRemapTable_size 377
+#define driDispatchRemapTable_size 384
extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define AttachShader_remap_index 0
@@ -2580,224 +2601,231 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define BindVertexArray_remap_index 156
#define GenVertexArrays_remap_index 157
#define CopyBufferSubData_remap_index 158
-#define PolygonOffsetEXT_remap_index 159
-#define GetPixelTexGenParameterfvSGIS_remap_index 160
-#define GetPixelTexGenParameterivSGIS_remap_index 161
-#define PixelTexGenParameterfSGIS_remap_index 162
-#define PixelTexGenParameterfvSGIS_remap_index 163
-#define PixelTexGenParameteriSGIS_remap_index 164
-#define PixelTexGenParameterivSGIS_remap_index 165
-#define SampleMaskSGIS_remap_index 166
-#define SamplePatternSGIS_remap_index 167
-#define ColorPointerEXT_remap_index 168
-#define EdgeFlagPointerEXT_remap_index 169
-#define IndexPointerEXT_remap_index 170
-#define NormalPointerEXT_remap_index 171
-#define TexCoordPointerEXT_remap_index 172
-#define VertexPointerEXT_remap_index 173
-#define PointParameterfEXT_remap_index 174
-#define PointParameterfvEXT_remap_index 175
-#define LockArraysEXT_remap_index 176
-#define UnlockArraysEXT_remap_index 177
-#define CullParameterdvEXT_remap_index 178
-#define CullParameterfvEXT_remap_index 179
-#define SecondaryColor3bEXT_remap_index 180
-#define SecondaryColor3bvEXT_remap_index 181
-#define SecondaryColor3dEXT_remap_index 182
-#define SecondaryColor3dvEXT_remap_index 183
-#define SecondaryColor3fEXT_remap_index 184
-#define SecondaryColor3fvEXT_remap_index 185
-#define SecondaryColor3iEXT_remap_index 186
-#define SecondaryColor3ivEXT_remap_index 187
-#define SecondaryColor3sEXT_remap_index 188
-#define SecondaryColor3svEXT_remap_index 189
-#define SecondaryColor3ubEXT_remap_index 190
-#define SecondaryColor3ubvEXT_remap_index 191
-#define SecondaryColor3uiEXT_remap_index 192
-#define SecondaryColor3uivEXT_remap_index 193
-#define SecondaryColor3usEXT_remap_index 194
-#define SecondaryColor3usvEXT_remap_index 195
-#define SecondaryColorPointerEXT_remap_index 196
-#define MultiDrawArraysEXT_remap_index 197
-#define MultiDrawElementsEXT_remap_index 198
-#define FogCoordPointerEXT_remap_index 199
-#define FogCoorddEXT_remap_index 200
-#define FogCoorddvEXT_remap_index 201
-#define FogCoordfEXT_remap_index 202
-#define FogCoordfvEXT_remap_index 203
-#define PixelTexGenSGIX_remap_index 204
-#define BlendFuncSeparateEXT_remap_index 205
-#define FlushVertexArrayRangeNV_remap_index 206
-#define VertexArrayRangeNV_remap_index 207
-#define CombinerInputNV_remap_index 208
-#define CombinerOutputNV_remap_index 209
-#define CombinerParameterfNV_remap_index 210
-#define CombinerParameterfvNV_remap_index 211
-#define CombinerParameteriNV_remap_index 212
-#define CombinerParameterivNV_remap_index 213
-#define FinalCombinerInputNV_remap_index 214
-#define GetCombinerInputParameterfvNV_remap_index 215
-#define GetCombinerInputParameterivNV_remap_index 216
-#define GetCombinerOutputParameterfvNV_remap_index 217
-#define GetCombinerOutputParameterivNV_remap_index 218
-#define GetFinalCombinerInputParameterfvNV_remap_index 219
-#define GetFinalCombinerInputParameterivNV_remap_index 220
-#define ResizeBuffersMESA_remap_index 221
-#define WindowPos2dMESA_remap_index 222
-#define WindowPos2dvMESA_remap_index 223
-#define WindowPos2fMESA_remap_index 224
-#define WindowPos2fvMESA_remap_index 225
-#define WindowPos2iMESA_remap_index 226
-#define WindowPos2ivMESA_remap_index 227
-#define WindowPos2sMESA_remap_index 228
-#define WindowPos2svMESA_remap_index 229
-#define WindowPos3dMESA_remap_index 230
-#define WindowPos3dvMESA_remap_index 231
-#define WindowPos3fMESA_remap_index 232
-#define WindowPos3fvMESA_remap_index 233
-#define WindowPos3iMESA_remap_index 234
-#define WindowPos3ivMESA_remap_index 235
-#define WindowPos3sMESA_remap_index 236
-#define WindowPos3svMESA_remap_index 237
-#define WindowPos4dMESA_remap_index 238
-#define WindowPos4dvMESA_remap_index 239
-#define WindowPos4fMESA_remap_index 240
-#define WindowPos4fvMESA_remap_index 241
-#define WindowPos4iMESA_remap_index 242
-#define WindowPos4ivMESA_remap_index 243
-#define WindowPos4sMESA_remap_index 244
-#define WindowPos4svMESA_remap_index 245
-#define MultiModeDrawArraysIBM_remap_index 246
-#define MultiModeDrawElementsIBM_remap_index 247
-#define DeleteFencesNV_remap_index 248
-#define FinishFenceNV_remap_index 249
-#define GenFencesNV_remap_index 250
-#define GetFenceivNV_remap_index 251
-#define IsFenceNV_remap_index 252
-#define SetFenceNV_remap_index 253
-#define TestFenceNV_remap_index 254
-#define AreProgramsResidentNV_remap_index 255
-#define BindProgramNV_remap_index 256
-#define DeleteProgramsNV_remap_index 257
-#define ExecuteProgramNV_remap_index 258
-#define GenProgramsNV_remap_index 259
-#define GetProgramParameterdvNV_remap_index 260
-#define GetProgramParameterfvNV_remap_index 261
-#define GetProgramStringNV_remap_index 262
-#define GetProgramivNV_remap_index 263
-#define GetTrackMatrixivNV_remap_index 264
-#define GetVertexAttribPointervNV_remap_index 265
-#define GetVertexAttribdvNV_remap_index 266
-#define GetVertexAttribfvNV_remap_index 267
-#define GetVertexAttribivNV_remap_index 268
-#define IsProgramNV_remap_index 269
-#define LoadProgramNV_remap_index 270
-#define ProgramParameters4dvNV_remap_index 271
-#define ProgramParameters4fvNV_remap_index 272
-#define RequestResidentProgramsNV_remap_index 273
-#define TrackMatrixNV_remap_index 274
-#define VertexAttrib1dNV_remap_index 275
-#define VertexAttrib1dvNV_remap_index 276
-#define VertexAttrib1fNV_remap_index 277
-#define VertexAttrib1fvNV_remap_index 278
-#define VertexAttrib1sNV_remap_index 279
-#define VertexAttrib1svNV_remap_index 280
-#define VertexAttrib2dNV_remap_index 281
-#define VertexAttrib2dvNV_remap_index 282
-#define VertexAttrib2fNV_remap_index 283
-#define VertexAttrib2fvNV_remap_index 284
-#define VertexAttrib2sNV_remap_index 285
-#define VertexAttrib2svNV_remap_index 286
-#define VertexAttrib3dNV_remap_index 287
-#define VertexAttrib3dvNV_remap_index 288
-#define VertexAttrib3fNV_remap_index 289
-#define VertexAttrib3fvNV_remap_index 290
-#define VertexAttrib3sNV_remap_index 291
-#define VertexAttrib3svNV_remap_index 292
-#define VertexAttrib4dNV_remap_index 293
-#define VertexAttrib4dvNV_remap_index 294
-#define VertexAttrib4fNV_remap_index 295
-#define VertexAttrib4fvNV_remap_index 296
-#define VertexAttrib4sNV_remap_index 297
-#define VertexAttrib4svNV_remap_index 298
-#define VertexAttrib4ubNV_remap_index 299
-#define VertexAttrib4ubvNV_remap_index 300
-#define VertexAttribPointerNV_remap_index 301
-#define VertexAttribs1dvNV_remap_index 302
-#define VertexAttribs1fvNV_remap_index 303
-#define VertexAttribs1svNV_remap_index 304
-#define VertexAttribs2dvNV_remap_index 305
-#define VertexAttribs2fvNV_remap_index 306
-#define VertexAttribs2svNV_remap_index 307
-#define VertexAttribs3dvNV_remap_index 308
-#define VertexAttribs3fvNV_remap_index 309
-#define VertexAttribs3svNV_remap_index 310
-#define VertexAttribs4dvNV_remap_index 311
-#define VertexAttribs4fvNV_remap_index 312
-#define VertexAttribs4svNV_remap_index 313
-#define VertexAttribs4ubvNV_remap_index 314
-#define GetTexBumpParameterfvATI_remap_index 315
-#define GetTexBumpParameterivATI_remap_index 316
-#define TexBumpParameterfvATI_remap_index 317
-#define TexBumpParameterivATI_remap_index 318
-#define AlphaFragmentOp1ATI_remap_index 319
-#define AlphaFragmentOp2ATI_remap_index 320
-#define AlphaFragmentOp3ATI_remap_index 321
-#define BeginFragmentShaderATI_remap_index 322
-#define BindFragmentShaderATI_remap_index 323
-#define ColorFragmentOp1ATI_remap_index 324
-#define ColorFragmentOp2ATI_remap_index 325
-#define ColorFragmentOp3ATI_remap_index 326
-#define DeleteFragmentShaderATI_remap_index 327
-#define EndFragmentShaderATI_remap_index 328
-#define GenFragmentShadersATI_remap_index 329
-#define PassTexCoordATI_remap_index 330
-#define SampleMapATI_remap_index 331
-#define SetFragmentShaderConstantATI_remap_index 332
-#define PointParameteriNV_remap_index 333
-#define PointParameterivNV_remap_index 334
-#define ActiveStencilFaceEXT_remap_index 335
-#define BindVertexArrayAPPLE_remap_index 336
-#define DeleteVertexArraysAPPLE_remap_index 337
-#define GenVertexArraysAPPLE_remap_index 338
-#define IsVertexArrayAPPLE_remap_index 339
-#define GetProgramNamedParameterdvNV_remap_index 340
-#define GetProgramNamedParameterfvNV_remap_index 341
-#define ProgramNamedParameter4dNV_remap_index 342
-#define ProgramNamedParameter4dvNV_remap_index 343
-#define ProgramNamedParameter4fNV_remap_index 344
-#define ProgramNamedParameter4fvNV_remap_index 345
-#define DepthBoundsEXT_remap_index 346
-#define BlendEquationSeparateEXT_remap_index 347
-#define BindFramebufferEXT_remap_index 348
-#define BindRenderbufferEXT_remap_index 349
-#define CheckFramebufferStatusEXT_remap_index 350
-#define DeleteFramebuffersEXT_remap_index 351
-#define DeleteRenderbuffersEXT_remap_index 352
-#define FramebufferRenderbufferEXT_remap_index 353
-#define FramebufferTexture1DEXT_remap_index 354
-#define FramebufferTexture2DEXT_remap_index 355
-#define FramebufferTexture3DEXT_remap_index 356
-#define GenFramebuffersEXT_remap_index 357
-#define GenRenderbuffersEXT_remap_index 358
-#define GenerateMipmapEXT_remap_index 359
-#define GetFramebufferAttachmentParameterivEXT_remap_index 360
-#define GetRenderbufferParameterivEXT_remap_index 361
-#define IsFramebufferEXT_remap_index 362
-#define IsRenderbufferEXT_remap_index 363
-#define RenderbufferStorageEXT_remap_index 364
-#define BlitFramebufferEXT_remap_index 365
-#define BufferParameteriAPPLE_remap_index 366
-#define FlushMappedBufferRangeAPPLE_remap_index 367
-#define FramebufferTextureLayerEXT_remap_index 368
-#define ProvokingVertexEXT_remap_index 369
-#define GetTexParameterPointervAPPLE_remap_index 370
-#define TextureRangeAPPLE_remap_index 371
-#define StencilFuncSeparateATI_remap_index 372
-#define ProgramEnvParameters4fvEXT_remap_index 373
-#define ProgramLocalParameters4fvEXT_remap_index 374
-#define GetQueryObjecti64vEXT_remap_index 375
-#define GetQueryObjectui64vEXT_remap_index 376
+#define ClientWaitSync_remap_index 159
+#define DeleteSync_remap_index 160
+#define FenceSync_remap_index 161
+#define GetInteger64v_remap_index 162
+#define GetSynciv_remap_index 163
+#define IsSync_remap_index 164
+#define WaitSync_remap_index 165
+#define PolygonOffsetEXT_remap_index 166
+#define GetPixelTexGenParameterfvSGIS_remap_index 167
+#define GetPixelTexGenParameterivSGIS_remap_index 168
+#define PixelTexGenParameterfSGIS_remap_index 169
+#define PixelTexGenParameterfvSGIS_remap_index 170
+#define PixelTexGenParameteriSGIS_remap_index 171
+#define PixelTexGenParameterivSGIS_remap_index 172
+#define SampleMaskSGIS_remap_index 173
+#define SamplePatternSGIS_remap_index 174
+#define ColorPointerEXT_remap_index 175
+#define EdgeFlagPointerEXT_remap_index 176
+#define IndexPointerEXT_remap_index 177
+#define NormalPointerEXT_remap_index 178
+#define TexCoordPointerEXT_remap_index 179
+#define VertexPointerEXT_remap_index 180
+#define PointParameterfEXT_remap_index 181
+#define PointParameterfvEXT_remap_index 182
+#define LockArraysEXT_remap_index 183
+#define UnlockArraysEXT_remap_index 184
+#define CullParameterdvEXT_remap_index 185
+#define CullParameterfvEXT_remap_index 186
+#define SecondaryColor3bEXT_remap_index 187
+#define SecondaryColor3bvEXT_remap_index 188
+#define SecondaryColor3dEXT_remap_index 189
+#define SecondaryColor3dvEXT_remap_index 190
+#define SecondaryColor3fEXT_remap_index 191
+#define SecondaryColor3fvEXT_remap_index 192
+#define SecondaryColor3iEXT_remap_index 193
+#define SecondaryColor3ivEXT_remap_index 194
+#define SecondaryColor3sEXT_remap_index 195
+#define SecondaryColor3svEXT_remap_index 196
+#define SecondaryColor3ubEXT_remap_index 197
+#define SecondaryColor3ubvEXT_remap_index 198
+#define SecondaryColor3uiEXT_remap_index 199
+#define SecondaryColor3uivEXT_remap_index 200
+#define SecondaryColor3usEXT_remap_index 201
+#define SecondaryColor3usvEXT_remap_index 202
+#define SecondaryColorPointerEXT_remap_index 203
+#define MultiDrawArraysEXT_remap_index 204
+#define MultiDrawElementsEXT_remap_index 205
+#define FogCoordPointerEXT_remap_index 206
+#define FogCoorddEXT_remap_index 207
+#define FogCoorddvEXT_remap_index 208
+#define FogCoordfEXT_remap_index 209
+#define FogCoordfvEXT_remap_index 210
+#define PixelTexGenSGIX_remap_index 211
+#define BlendFuncSeparateEXT_remap_index 212
+#define FlushVertexArrayRangeNV_remap_index 213
+#define VertexArrayRangeNV_remap_index 214
+#define CombinerInputNV_remap_index 215
+#define CombinerOutputNV_remap_index 216
+#define CombinerParameterfNV_remap_index 217
+#define CombinerParameterfvNV_remap_index 218
+#define CombinerParameteriNV_remap_index 219
+#define CombinerParameterivNV_remap_index 220
+#define FinalCombinerInputNV_remap_index 221
+#define GetCombinerInputParameterfvNV_remap_index 222
+#define GetCombinerInputParameterivNV_remap_index 223
+#define GetCombinerOutputParameterfvNV_remap_index 224
+#define GetCombinerOutputParameterivNV_remap_index 225
+#define GetFinalCombinerInputParameterfvNV_remap_index 226
+#define GetFinalCombinerInputParameterivNV_remap_index 227
+#define ResizeBuffersMESA_remap_index 228
+#define WindowPos2dMESA_remap_index 229
+#define WindowPos2dvMESA_remap_index 230
+#define WindowPos2fMESA_remap_index 231
+#define WindowPos2fvMESA_remap_index 232
+#define WindowPos2iMESA_remap_index 233
+#define WindowPos2ivMESA_remap_index 234
+#define WindowPos2sMESA_remap_index 235
+#define WindowPos2svMESA_remap_index 236
+#define WindowPos3dMESA_remap_index 237
+#define WindowPos3dvMESA_remap_index 238
+#define WindowPos3fMESA_remap_index 239
+#define WindowPos3fvMESA_remap_index 240
+#define WindowPos3iMESA_remap_index 241
+#define WindowPos3ivMESA_remap_index 242
+#define WindowPos3sMESA_remap_index 243
+#define WindowPos3svMESA_remap_index 244
+#define WindowPos4dMESA_remap_index 245
+#define WindowPos4dvMESA_remap_index 246
+#define WindowPos4fMESA_remap_index 247
+#define WindowPos4fvMESA_remap_index 248
+#define WindowPos4iMESA_remap_index 249
+#define WindowPos4ivMESA_remap_index 250
+#define WindowPos4sMESA_remap_index 251
+#define WindowPos4svMESA_remap_index 252
+#define MultiModeDrawArraysIBM_remap_index 253
+#define MultiModeDrawElementsIBM_remap_index 254
+#define DeleteFencesNV_remap_index 255
+#define FinishFenceNV_remap_index 256
+#define GenFencesNV_remap_index 257
+#define GetFenceivNV_remap_index 258
+#define IsFenceNV_remap_index 259
+#define SetFenceNV_remap_index 260
+#define TestFenceNV_remap_index 261
+#define AreProgramsResidentNV_remap_index 262
+#define BindProgramNV_remap_index 263
+#define DeleteProgramsNV_remap_index 264
+#define ExecuteProgramNV_remap_index 265
+#define GenProgramsNV_remap_index 266
+#define GetProgramParameterdvNV_remap_index 267
+#define GetProgramParameterfvNV_remap_index 268
+#define GetProgramStringNV_remap_index 269
+#define GetProgramivNV_remap_index 270
+#define GetTrackMatrixivNV_remap_index 271
+#define GetVertexAttribPointervNV_remap_index 272
+#define GetVertexAttribdvNV_remap_index 273
+#define GetVertexAttribfvNV_remap_index 274
+#define GetVertexAttribivNV_remap_index 275
+#define IsProgramNV_remap_index 276
+#define LoadProgramNV_remap_index 277
+#define ProgramParameters4dvNV_remap_index 278
+#define ProgramParameters4fvNV_remap_index 279
+#define RequestResidentProgramsNV_remap_index 280
+#define TrackMatrixNV_remap_index 281
+#define VertexAttrib1dNV_remap_index 282
+#define VertexAttrib1dvNV_remap_index 283
+#define VertexAttrib1fNV_remap_index 284
+#define VertexAttrib1fvNV_remap_index 285
+#define VertexAttrib1sNV_remap_index 286
+#define VertexAttrib1svNV_remap_index 287
+#define VertexAttrib2dNV_remap_index 288
+#define VertexAttrib2dvNV_remap_index 289
+#define VertexAttrib2fNV_remap_index 290
+#define VertexAttrib2fvNV_remap_index 291
+#define VertexAttrib2sNV_remap_index 292
+#define VertexAttrib2svNV_remap_index 293
+#define VertexAttrib3dNV_remap_index 294
+#define VertexAttrib3dvNV_remap_index 295
+#define VertexAttrib3fNV_remap_index 296
+#define VertexAttrib3fvNV_remap_index 297
+#define VertexAttrib3sNV_remap_index 298
+#define VertexAttrib3svNV_remap_index 299
+#define VertexAttrib4dNV_remap_index 300
+#define VertexAttrib4dvNV_remap_index 301
+#define VertexAttrib4fNV_remap_index 302
+#define VertexAttrib4fvNV_remap_index 303
+#define VertexAttrib4sNV_remap_index 304
+#define VertexAttrib4svNV_remap_index 305
+#define VertexAttrib4ubNV_remap_index 306
+#define VertexAttrib4ubvNV_remap_index 307
+#define VertexAttribPointerNV_remap_index 308
+#define VertexAttribs1dvNV_remap_index 309
+#define VertexAttribs1fvNV_remap_index 310
+#define VertexAttribs1svNV_remap_index 311
+#define VertexAttribs2dvNV_remap_index 312
+#define VertexAttribs2fvNV_remap_index 313
+#define VertexAttribs2svNV_remap_index 314
+#define VertexAttribs3dvNV_remap_index 315
+#define VertexAttribs3fvNV_remap_index 316
+#define VertexAttribs3svNV_remap_index 317
+#define VertexAttribs4dvNV_remap_index 318
+#define VertexAttribs4fvNV_remap_index 319
+#define VertexAttribs4svNV_remap_index 320
+#define VertexAttribs4ubvNV_remap_index 321
+#define GetTexBumpParameterfvATI_remap_index 322
+#define GetTexBumpParameterivATI_remap_index 323
+#define TexBumpParameterfvATI_remap_index 324
+#define TexBumpParameterivATI_remap_index 325
+#define AlphaFragmentOp1ATI_remap_index 326
+#define AlphaFragmentOp2ATI_remap_index 327
+#define AlphaFragmentOp3ATI_remap_index 328
+#define BeginFragmentShaderATI_remap_index 329
+#define BindFragmentShaderATI_remap_index 330
+#define ColorFragmentOp1ATI_remap_index 331
+#define ColorFragmentOp2ATI_remap_index 332
+#define ColorFragmentOp3ATI_remap_index 333
+#define DeleteFragmentShaderATI_remap_index 334
+#define EndFragmentShaderATI_remap_index 335
+#define GenFragmentShadersATI_remap_index 336
+#define PassTexCoordATI_remap_index 337
+#define SampleMapATI_remap_index 338
+#define SetFragmentShaderConstantATI_remap_index 339
+#define PointParameteriNV_remap_index 340
+#define PointParameterivNV_remap_index 341
+#define ActiveStencilFaceEXT_remap_index 342
+#define BindVertexArrayAPPLE_remap_index 343
+#define DeleteVertexArraysAPPLE_remap_index 344
+#define GenVertexArraysAPPLE_remap_index 345
+#define IsVertexArrayAPPLE_remap_index 346
+#define GetProgramNamedParameterdvNV_remap_index 347
+#define GetProgramNamedParameterfvNV_remap_index 348
+#define ProgramNamedParameter4dNV_remap_index 349
+#define ProgramNamedParameter4dvNV_remap_index 350
+#define ProgramNamedParameter4fNV_remap_index 351
+#define ProgramNamedParameter4fvNV_remap_index 352
+#define DepthBoundsEXT_remap_index 353
+#define BlendEquationSeparateEXT_remap_index 354
+#define BindFramebufferEXT_remap_index 355
+#define BindRenderbufferEXT_remap_index 356
+#define CheckFramebufferStatusEXT_remap_index 357
+#define DeleteFramebuffersEXT_remap_index 358
+#define DeleteRenderbuffersEXT_remap_index 359
+#define FramebufferRenderbufferEXT_remap_index 360
+#define FramebufferTexture1DEXT_remap_index 361
+#define FramebufferTexture2DEXT_remap_index 362
+#define FramebufferTexture3DEXT_remap_index 363
+#define GenFramebuffersEXT_remap_index 364
+#define GenRenderbuffersEXT_remap_index 365
+#define GenerateMipmapEXT_remap_index 366
+#define GetFramebufferAttachmentParameterivEXT_remap_index 367
+#define GetRenderbufferParameterivEXT_remap_index 368
+#define IsFramebufferEXT_remap_index 369
+#define IsRenderbufferEXT_remap_index 370
+#define RenderbufferStorageEXT_remap_index 371
+#define BlitFramebufferEXT_remap_index 372
+#define BufferParameteriAPPLE_remap_index 373
+#define FlushMappedBufferRangeAPPLE_remap_index 374
+#define FramebufferTextureLayerEXT_remap_index 375
+#define ProvokingVertexEXT_remap_index 376
+#define GetTexParameterPointervAPPLE_remap_index 377
+#define TextureRangeAPPLE_remap_index 378
+#define StencilFuncSeparateATI_remap_index 379
+#define ProgramEnvParameters4fvEXT_remap_index 380
+#define ProgramLocalParameters4fvEXT_remap_index 381
+#define GetQueryObjecti64vEXT_remap_index 382
+#define GetQueryObjectui64vEXT_remap_index 383
#define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters)
#define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index])
@@ -3276,6 +3304,27 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define CALL_CopyBufferSubData(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr)), driDispatchRemapTable[CopyBufferSubData_remap_index], parameters)
#define GET_CopyBufferSubData(disp) GET_by_offset(disp, driDispatchRemapTable[CopyBufferSubData_remap_index])
#define SET_CopyBufferSubData(disp, fn) SET_by_offset(disp, driDispatchRemapTable[CopyBufferSubData_remap_index], fn)
+#define CALL_ClientWaitSync(disp, parameters) CALL_by_offset(disp, (GLenum (GLAPIENTRYP)(GLsync, GLbitfield, GLuint64)), driDispatchRemapTable[ClientWaitSync_remap_index], parameters)
+#define GET_ClientWaitSync(disp) GET_by_offset(disp, driDispatchRemapTable[ClientWaitSync_remap_index])
+#define SET_ClientWaitSync(disp, fn) SET_by_offset(disp, driDispatchRemapTable[ClientWaitSync_remap_index], fn)
+#define CALL_DeleteSync(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsync)), driDispatchRemapTable[DeleteSync_remap_index], parameters)
+#define GET_DeleteSync(disp) GET_by_offset(disp, driDispatchRemapTable[DeleteSync_remap_index])
+#define SET_DeleteSync(disp, fn) SET_by_offset(disp, driDispatchRemapTable[DeleteSync_remap_index], fn)
+#define CALL_FenceSync(disp, parameters) CALL_by_offset(disp, (GLsync (GLAPIENTRYP)(GLenum, GLbitfield)), driDispatchRemapTable[FenceSync_remap_index], parameters)
+#define GET_FenceSync(disp) GET_by_offset(disp, driDispatchRemapTable[FenceSync_remap_index])
+#define SET_FenceSync(disp, fn) SET_by_offset(disp, driDispatchRemapTable[FenceSync_remap_index], fn)
+#define CALL_GetInteger64v(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLint64 *)), driDispatchRemapTable[GetInteger64v_remap_index], parameters)
+#define GET_GetInteger64v(disp) GET_by_offset(disp, driDispatchRemapTable[GetInteger64v_remap_index])
+#define SET_GetInteger64v(disp, fn) SET_by_offset(disp, driDispatchRemapTable[GetInteger64v_remap_index], fn)
+#define CALL_GetSynciv(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsync, GLenum, GLsizei, GLsizei *, GLint *)), driDispatchRemapTable[GetSynciv_remap_index], parameters)
+#define GET_GetSynciv(disp) GET_by_offset(disp, driDispatchRemapTable[GetSynciv_remap_index])
+#define SET_GetSynciv(disp, fn) SET_by_offset(disp, driDispatchRemapTable[GetSynciv_remap_index], fn)
+#define CALL_IsSync(disp, parameters) CALL_by_offset(disp, (GLboolean (GLAPIENTRYP)(GLsync)), driDispatchRemapTable[IsSync_remap_index], parameters)
+#define GET_IsSync(disp) GET_by_offset(disp, driDispatchRemapTable[IsSync_remap_index])
+#define SET_IsSync(disp, fn) SET_by_offset(disp, driDispatchRemapTable[IsSync_remap_index], fn)
+#define CALL_WaitSync(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLsync, GLbitfield, GLuint64)), driDispatchRemapTable[WaitSync_remap_index], parameters)
+#define GET_WaitSync(disp) GET_by_offset(disp, driDispatchRemapTable[WaitSync_remap_index])
+#define SET_WaitSync(disp, fn) SET_by_offset(disp, driDispatchRemapTable[WaitSync_remap_index], fn)
#define CALL_PolygonOffsetEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLfloat, GLfloat)), driDispatchRemapTable[PolygonOffsetEXT_remap_index], parameters)
#define GET_PolygonOffsetEXT(disp) GET_by_offset(disp, driDispatchRemapTable[PolygonOffsetEXT_remap_index])
#define SET_PolygonOffsetEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[PolygonOffsetEXT_remap_index], fn)
diff --git a/src/mesa/glapi/extension_helper.py b/src/mesa/glapi/extension_helper.py
index 64f64a2fd86..83471d89f50 100644
--- a/src/mesa/glapi/extension_helper.py
+++ b/src/mesa/glapi/extension_helper.py
@@ -170,7 +170,7 @@ class PrintGlExtensionGlue(gl_XML.gl_print_base):
condition = condition_for_function(f, abi, 0)
if len(condition):
print '#if %s' % (string.join(condition, " || "))
- print 'static const char %s_names[] = ' % (f.name)
+ print 'static const char %s_names[] =' % (f.name)
parameter_signature = ''
for p in f.parameterIterator():
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index d2fcc6dc1f2..1dfd92be080 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -7954,6 +7954,8 @@
<xi:include href="ARB_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="ARB_sync.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<xi:include href="ARB_seamless_cube_map.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h
index 01fd6f71584..6d4ab09b074 100644
--- a/src/mesa/glapi/glapioffsets.h
+++ b/src/mesa/glapi/glapioffsets.h
@@ -599,225 +599,232 @@
#define _gloffset_BindVertexArray 564
#define _gloffset_GenVertexArrays 565
#define _gloffset_CopyBufferSubData 566
-#define _gloffset_PolygonOffsetEXT 567
-#define _gloffset_GetPixelTexGenParameterfvSGIS 568
-#define _gloffset_GetPixelTexGenParameterivSGIS 569
-#define _gloffset_PixelTexGenParameterfSGIS 570
-#define _gloffset_PixelTexGenParameterfvSGIS 571
-#define _gloffset_PixelTexGenParameteriSGIS 572
-#define _gloffset_PixelTexGenParameterivSGIS 573
-#define _gloffset_SampleMaskSGIS 574
-#define _gloffset_SamplePatternSGIS 575
-#define _gloffset_ColorPointerEXT 576
-#define _gloffset_EdgeFlagPointerEXT 577
-#define _gloffset_IndexPointerEXT 578
-#define _gloffset_NormalPointerEXT 579
-#define _gloffset_TexCoordPointerEXT 580
-#define _gloffset_VertexPointerEXT 581
-#define _gloffset_PointParameterfEXT 582
-#define _gloffset_PointParameterfvEXT 583
-#define _gloffset_LockArraysEXT 584
-#define _gloffset_UnlockArraysEXT 585
-#define _gloffset_CullParameterdvEXT 586
-#define _gloffset_CullParameterfvEXT 587
-#define _gloffset_SecondaryColor3bEXT 588
-#define _gloffset_SecondaryColor3bvEXT 589
-#define _gloffset_SecondaryColor3dEXT 590
-#define _gloffset_SecondaryColor3dvEXT 591
-#define _gloffset_SecondaryColor3fEXT 592
-#define _gloffset_SecondaryColor3fvEXT 593
-#define _gloffset_SecondaryColor3iEXT 594
-#define _gloffset_SecondaryColor3ivEXT 595
-#define _gloffset_SecondaryColor3sEXT 596
-#define _gloffset_SecondaryColor3svEXT 597
-#define _gloffset_SecondaryColor3ubEXT 598
-#define _gloffset_SecondaryColor3ubvEXT 599
-#define _gloffset_SecondaryColor3uiEXT 600
-#define _gloffset_SecondaryColor3uivEXT 601
-#define _gloffset_SecondaryColor3usEXT 602
-#define _gloffset_SecondaryColor3usvEXT 603
-#define _gloffset_SecondaryColorPointerEXT 604
-#define _gloffset_MultiDrawArraysEXT 605
-#define _gloffset_MultiDrawElementsEXT 606
-#define _gloffset_FogCoordPointerEXT 607
-#define _gloffset_FogCoorddEXT 608
-#define _gloffset_FogCoorddvEXT 609
-#define _gloffset_FogCoordfEXT 610
-#define _gloffset_FogCoordfvEXT 611
-#define _gloffset_PixelTexGenSGIX 612
-#define _gloffset_BlendFuncSeparateEXT 613
-#define _gloffset_FlushVertexArrayRangeNV 614
-#define _gloffset_VertexArrayRangeNV 615
-#define _gloffset_CombinerInputNV 616
-#define _gloffset_CombinerOutputNV 617
-#define _gloffset_CombinerParameterfNV 618
-#define _gloffset_CombinerParameterfvNV 619
-#define _gloffset_CombinerParameteriNV 620
-#define _gloffset_CombinerParameterivNV 621
-#define _gloffset_FinalCombinerInputNV 622
-#define _gloffset_GetCombinerInputParameterfvNV 623
-#define _gloffset_GetCombinerInputParameterivNV 624
-#define _gloffset_GetCombinerOutputParameterfvNV 625
-#define _gloffset_GetCombinerOutputParameterivNV 626
-#define _gloffset_GetFinalCombinerInputParameterfvNV 627
-#define _gloffset_GetFinalCombinerInputParameterivNV 628
-#define _gloffset_ResizeBuffersMESA 629
-#define _gloffset_WindowPos2dMESA 630
-#define _gloffset_WindowPos2dvMESA 631
-#define _gloffset_WindowPos2fMESA 632
-#define _gloffset_WindowPos2fvMESA 633
-#define _gloffset_WindowPos2iMESA 634
-#define _gloffset_WindowPos2ivMESA 635
-#define _gloffset_WindowPos2sMESA 636
-#define _gloffset_WindowPos2svMESA 637
-#define _gloffset_WindowPos3dMESA 638
-#define _gloffset_WindowPos3dvMESA 639
-#define _gloffset_WindowPos3fMESA 640
-#define _gloffset_WindowPos3fvMESA 641
-#define _gloffset_WindowPos3iMESA 642
-#define _gloffset_WindowPos3ivMESA 643
-#define _gloffset_WindowPos3sMESA 644
-#define _gloffset_WindowPos3svMESA 645
-#define _gloffset_WindowPos4dMESA 646
-#define _gloffset_WindowPos4dvMESA 647
-#define _gloffset_WindowPos4fMESA 648
-#define _gloffset_WindowPos4fvMESA 649
-#define _gloffset_WindowPos4iMESA 650
-#define _gloffset_WindowPos4ivMESA 651
-#define _gloffset_WindowPos4sMESA 652
-#define _gloffset_WindowPos4svMESA 653
-#define _gloffset_MultiModeDrawArraysIBM 654
-#define _gloffset_MultiModeDrawElementsIBM 655
-#define _gloffset_DeleteFencesNV 656
-#define _gloffset_FinishFenceNV 657
-#define _gloffset_GenFencesNV 658
-#define _gloffset_GetFenceivNV 659
-#define _gloffset_IsFenceNV 660
-#define _gloffset_SetFenceNV 661
-#define _gloffset_TestFenceNV 662
-#define _gloffset_AreProgramsResidentNV 663
-#define _gloffset_BindProgramNV 664
-#define _gloffset_DeleteProgramsNV 665
-#define _gloffset_ExecuteProgramNV 666
-#define _gloffset_GenProgramsNV 667
-#define _gloffset_GetProgramParameterdvNV 668
-#define _gloffset_GetProgramParameterfvNV 669
-#define _gloffset_GetProgramStringNV 670
-#define _gloffset_GetProgramivNV 671
-#define _gloffset_GetTrackMatrixivNV 672
-#define _gloffset_GetVertexAttribPointervNV 673
-#define _gloffset_GetVertexAttribdvNV 674
-#define _gloffset_GetVertexAttribfvNV 675
-#define _gloffset_GetVertexAttribivNV 676
-#define _gloffset_IsProgramNV 677
-#define _gloffset_LoadProgramNV 678
-#define _gloffset_ProgramParameters4dvNV 679
-#define _gloffset_ProgramParameters4fvNV 680
-#define _gloffset_RequestResidentProgramsNV 681
-#define _gloffset_TrackMatrixNV 682
-#define _gloffset_VertexAttrib1dNV 683
-#define _gloffset_VertexAttrib1dvNV 684
-#define _gloffset_VertexAttrib1fNV 685
-#define _gloffset_VertexAttrib1fvNV 686
-#define _gloffset_VertexAttrib1sNV 687
-#define _gloffset_VertexAttrib1svNV 688
-#define _gloffset_VertexAttrib2dNV 689
-#define _gloffset_VertexAttrib2dvNV 690
-#define _gloffset_VertexAttrib2fNV 691
-#define _gloffset_VertexAttrib2fvNV 692
-#define _gloffset_VertexAttrib2sNV 693
-#define _gloffset_VertexAttrib2svNV 694
-#define _gloffset_VertexAttrib3dNV 695
-#define _gloffset_VertexAttrib3dvNV 696
-#define _gloffset_VertexAttrib3fNV 697
-#define _gloffset_VertexAttrib3fvNV 698
-#define _gloffset_VertexAttrib3sNV 699
-#define _gloffset_VertexAttrib3svNV 700
-#define _gloffset_VertexAttrib4dNV 701
-#define _gloffset_VertexAttrib4dvNV 702
-#define _gloffset_VertexAttrib4fNV 703
-#define _gloffset_VertexAttrib4fvNV 704
-#define _gloffset_VertexAttrib4sNV 705
-#define _gloffset_VertexAttrib4svNV 706
-#define _gloffset_VertexAttrib4ubNV 707
-#define _gloffset_VertexAttrib4ubvNV 708
-#define _gloffset_VertexAttribPointerNV 709
-#define _gloffset_VertexAttribs1dvNV 710
-#define _gloffset_VertexAttribs1fvNV 711
-#define _gloffset_VertexAttribs1svNV 712
-#define _gloffset_VertexAttribs2dvNV 713
-#define _gloffset_VertexAttribs2fvNV 714
-#define _gloffset_VertexAttribs2svNV 715
-#define _gloffset_VertexAttribs3dvNV 716
-#define _gloffset_VertexAttribs3fvNV 717
-#define _gloffset_VertexAttribs3svNV 718
-#define _gloffset_VertexAttribs4dvNV 719
-#define _gloffset_VertexAttribs4fvNV 720
-#define _gloffset_VertexAttribs4svNV 721
-#define _gloffset_VertexAttribs4ubvNV 722
-#define _gloffset_GetTexBumpParameterfvATI 723
-#define _gloffset_GetTexBumpParameterivATI 724
-#define _gloffset_TexBumpParameterfvATI 725
-#define _gloffset_TexBumpParameterivATI 726
-#define _gloffset_AlphaFragmentOp1ATI 727
-#define _gloffset_AlphaFragmentOp2ATI 728
-#define _gloffset_AlphaFragmentOp3ATI 729
-#define _gloffset_BeginFragmentShaderATI 730
-#define _gloffset_BindFragmentShaderATI 731
-#define _gloffset_ColorFragmentOp1ATI 732
-#define _gloffset_ColorFragmentOp2ATI 733
-#define _gloffset_ColorFragmentOp3ATI 734
-#define _gloffset_DeleteFragmentShaderATI 735
-#define _gloffset_EndFragmentShaderATI 736
-#define _gloffset_GenFragmentShadersATI 737
-#define _gloffset_PassTexCoordATI 738
-#define _gloffset_SampleMapATI 739
-#define _gloffset_SetFragmentShaderConstantATI 740
-#define _gloffset_PointParameteriNV 741
-#define _gloffset_PointParameterivNV 742
-#define _gloffset_ActiveStencilFaceEXT 743
-#define _gloffset_BindVertexArrayAPPLE 744
-#define _gloffset_DeleteVertexArraysAPPLE 745
-#define _gloffset_GenVertexArraysAPPLE 746
-#define _gloffset_IsVertexArrayAPPLE 747
-#define _gloffset_GetProgramNamedParameterdvNV 748
-#define _gloffset_GetProgramNamedParameterfvNV 749
-#define _gloffset_ProgramNamedParameter4dNV 750
-#define _gloffset_ProgramNamedParameter4dvNV 751
-#define _gloffset_ProgramNamedParameter4fNV 752
-#define _gloffset_ProgramNamedParameter4fvNV 753
-#define _gloffset_DepthBoundsEXT 754
-#define _gloffset_BlendEquationSeparateEXT 755
-#define _gloffset_BindFramebufferEXT 756
-#define _gloffset_BindRenderbufferEXT 757
-#define _gloffset_CheckFramebufferStatusEXT 758
-#define _gloffset_DeleteFramebuffersEXT 759
-#define _gloffset_DeleteRenderbuffersEXT 760
-#define _gloffset_FramebufferRenderbufferEXT 761
-#define _gloffset_FramebufferTexture1DEXT 762
-#define _gloffset_FramebufferTexture2DEXT 763
-#define _gloffset_FramebufferTexture3DEXT 764
-#define _gloffset_GenFramebuffersEXT 765
-#define _gloffset_GenRenderbuffersEXT 766
-#define _gloffset_GenerateMipmapEXT 767
-#define _gloffset_GetFramebufferAttachmentParameterivEXT 768
-#define _gloffset_GetRenderbufferParameterivEXT 769
-#define _gloffset_IsFramebufferEXT 770
-#define _gloffset_IsRenderbufferEXT 771
-#define _gloffset_RenderbufferStorageEXT 772
-#define _gloffset_BlitFramebufferEXT 773
-#define _gloffset_BufferParameteriAPPLE 774
-#define _gloffset_FlushMappedBufferRangeAPPLE 775
-#define _gloffset_FramebufferTextureLayerEXT 776
-#define _gloffset_ProvokingVertexEXT 777
-#define _gloffset_GetTexParameterPointervAPPLE 778
-#define _gloffset_TextureRangeAPPLE 779
-#define _gloffset_StencilFuncSeparateATI 780
-#define _gloffset_ProgramEnvParameters4fvEXT 781
-#define _gloffset_ProgramLocalParameters4fvEXT 782
-#define _gloffset_GetQueryObjecti64vEXT 783
-#define _gloffset_GetQueryObjectui64vEXT 784
-#define _gloffset_FIRST_DYNAMIC 785
+#define _gloffset_ClientWaitSync 567
+#define _gloffset_DeleteSync 568
+#define _gloffset_FenceSync 569
+#define _gloffset_GetInteger64v 570
+#define _gloffset_GetSynciv 571
+#define _gloffset_IsSync 572
+#define _gloffset_WaitSync 573
+#define _gloffset_PolygonOffsetEXT 574
+#define _gloffset_GetPixelTexGenParameterfvSGIS 575
+#define _gloffset_GetPixelTexGenParameterivSGIS 576
+#define _gloffset_PixelTexGenParameterfSGIS 577
+#define _gloffset_PixelTexGenParameterfvSGIS 578
+#define _gloffset_PixelTexGenParameteriSGIS 579
+#define _gloffset_PixelTexGenParameterivSGIS 580
+#define _gloffset_SampleMaskSGIS 581
+#define _gloffset_SamplePatternSGIS 582
+#define _gloffset_ColorPointerEXT 583
+#define _gloffset_EdgeFlagPointerEXT 584
+#define _gloffset_IndexPointerEXT 585
+#define _gloffset_NormalPointerEXT 586
+#define _gloffset_TexCoordPointerEXT 587
+#define _gloffset_VertexPointerEXT 588
+#define _gloffset_PointParameterfEXT 589
+#define _gloffset_PointParameterfvEXT 590
+#define _gloffset_LockArraysEXT 591
+#define _gloffset_UnlockArraysEXT 592
+#define _gloffset_CullParameterdvEXT 593
+#define _gloffset_CullParameterfvEXT 594
+#define _gloffset_SecondaryColor3bEXT 595
+#define _gloffset_SecondaryColor3bvEXT 596
+#define _gloffset_SecondaryColor3dEXT 597
+#define _gloffset_SecondaryColor3dvEXT 598
+#define _gloffset_SecondaryColor3fEXT 599
+#define _gloffset_SecondaryColor3fvEXT 600
+#define _gloffset_SecondaryColor3iEXT 601
+#define _gloffset_SecondaryColor3ivEXT 602
+#define _gloffset_SecondaryColor3sEXT 603
+#define _gloffset_SecondaryColor3svEXT 604
+#define _gloffset_SecondaryColor3ubEXT 605
+#define _gloffset_SecondaryColor3ubvEXT 606
+#define _gloffset_SecondaryColor3uiEXT 607
+#define _gloffset_SecondaryColor3uivEXT 608
+#define _gloffset_SecondaryColor3usEXT 609
+#define _gloffset_SecondaryColor3usvEXT 610
+#define _gloffset_SecondaryColorPointerEXT 611
+#define _gloffset_MultiDrawArraysEXT 612
+#define _gloffset_MultiDrawElementsEXT 613
+#define _gloffset_FogCoordPointerEXT 614
+#define _gloffset_FogCoorddEXT 615
+#define _gloffset_FogCoorddvEXT 616
+#define _gloffset_FogCoordfEXT 617
+#define _gloffset_FogCoordfvEXT 618
+#define _gloffset_PixelTexGenSGIX 619
+#define _gloffset_BlendFuncSeparateEXT 620
+#define _gloffset_FlushVertexArrayRangeNV 621
+#define _gloffset_VertexArrayRangeNV 622
+#define _gloffset_CombinerInputNV 623
+#define _gloffset_CombinerOutputNV 624
+#define _gloffset_CombinerParameterfNV 625
+#define _gloffset_CombinerParameterfvNV 626
+#define _gloffset_CombinerParameteriNV 627
+#define _gloffset_CombinerParameterivNV 628
+#define _gloffset_FinalCombinerInputNV 629
+#define _gloffset_GetCombinerInputParameterfvNV 630
+#define _gloffset_GetCombinerInputParameterivNV 631
+#define _gloffset_GetCombinerOutputParameterfvNV 632
+#define _gloffset_GetCombinerOutputParameterivNV 633
+#define _gloffset_GetFinalCombinerInputParameterfvNV 634
+#define _gloffset_GetFinalCombinerInputParameterivNV 635
+#define _gloffset_ResizeBuffersMESA 636
+#define _gloffset_WindowPos2dMESA 637
+#define _gloffset_WindowPos2dvMESA 638
+#define _gloffset_WindowPos2fMESA 639
+#define _gloffset_WindowPos2fvMESA 640
+#define _gloffset_WindowPos2iMESA 641
+#define _gloffset_WindowPos2ivMESA 642
+#define _gloffset_WindowPos2sMESA 643
+#define _gloffset_WindowPos2svMESA 644
+#define _gloffset_WindowPos3dMESA 645
+#define _gloffset_WindowPos3dvMESA 646
+#define _gloffset_WindowPos3fMESA 647
+#define _gloffset_WindowPos3fvMESA 648
+#define _gloffset_WindowPos3iMESA 649
+#define _gloffset_WindowPos3ivMESA 650
+#define _gloffset_WindowPos3sMESA 651
+#define _gloffset_WindowPos3svMESA 652
+#define _gloffset_WindowPos4dMESA 653
+#define _gloffset_WindowPos4dvMESA 654
+#define _gloffset_WindowPos4fMESA 655
+#define _gloffset_WindowPos4fvMESA 656
+#define _gloffset_WindowPos4iMESA 657
+#define _gloffset_WindowPos4ivMESA 658
+#define _gloffset_WindowPos4sMESA 659
+#define _gloffset_WindowPos4svMESA 660
+#define _gloffset_MultiModeDrawArraysIBM 661
+#define _gloffset_MultiModeDrawElementsIBM 662
+#define _gloffset_DeleteFencesNV 663
+#define _gloffset_FinishFenceNV 664
+#define _gloffset_GenFencesNV 665
+#define _gloffset_GetFenceivNV 666
+#define _gloffset_IsFenceNV 667
+#define _gloffset_SetFenceNV 668
+#define _gloffset_TestFenceNV 669
+#define _gloffset_AreProgramsResidentNV 670
+#define _gloffset_BindProgramNV 671
+#define _gloffset_DeleteProgramsNV 672
+#define _gloffset_ExecuteProgramNV 673
+#define _gloffset_GenProgramsNV 674
+#define _gloffset_GetProgramParameterdvNV 675
+#define _gloffset_GetProgramParameterfvNV 676
+#define _gloffset_GetProgramStringNV 677
+#define _gloffset_GetProgramivNV 678
+#define _gloffset_GetTrackMatrixivNV 679
+#define _gloffset_GetVertexAttribPointervNV 680
+#define _gloffset_GetVertexAttribdvNV 681
+#define _gloffset_GetVertexAttribfvNV 682
+#define _gloffset_GetVertexAttribivNV 683
+#define _gloffset_IsProgramNV 684
+#define _gloffset_LoadProgramNV 685
+#define _gloffset_ProgramParameters4dvNV 686
+#define _gloffset_ProgramParameters4fvNV 687
+#define _gloffset_RequestResidentProgramsNV 688
+#define _gloffset_TrackMatrixNV 689
+#define _gloffset_VertexAttrib1dNV 690
+#define _gloffset_VertexAttrib1dvNV 691
+#define _gloffset_VertexAttrib1fNV 692
+#define _gloffset_VertexAttrib1fvNV 693
+#define _gloffset_VertexAttrib1sNV 694
+#define _gloffset_VertexAttrib1svNV 695
+#define _gloffset_VertexAttrib2dNV 696
+#define _gloffset_VertexAttrib2dvNV 697
+#define _gloffset_VertexAttrib2fNV 698
+#define _gloffset_VertexAttrib2fvNV 699
+#define _gloffset_VertexAttrib2sNV 700
+#define _gloffset_VertexAttrib2svNV 701
+#define _gloffset_VertexAttrib3dNV 702
+#define _gloffset_VertexAttrib3dvNV 703
+#define _gloffset_VertexAttrib3fNV 704
+#define _gloffset_VertexAttrib3fvNV 705
+#define _gloffset_VertexAttrib3sNV 706
+#define _gloffset_VertexAttrib3svNV 707
+#define _gloffset_VertexAttrib4dNV 708
+#define _gloffset_VertexAttrib4dvNV 709
+#define _gloffset_VertexAttrib4fNV 710
+#define _gloffset_VertexAttrib4fvNV 711
+#define _gloffset_VertexAttrib4sNV 712
+#define _gloffset_VertexAttrib4svNV 713
+#define _gloffset_VertexAttrib4ubNV 714
+#define _gloffset_VertexAttrib4ubvNV 715
+#define _gloffset_VertexAttribPointerNV 716
+#define _gloffset_VertexAttribs1dvNV 717
+#define _gloffset_VertexAttribs1fvNV 718
+#define _gloffset_VertexAttribs1svNV 719
+#define _gloffset_VertexAttribs2dvNV 720
+#define _gloffset_VertexAttribs2fvNV 721
+#define _gloffset_VertexAttribs2svNV 722
+#define _gloffset_VertexAttribs3dvNV 723
+#define _gloffset_VertexAttribs3fvNV 724
+#define _gloffset_VertexAttribs3svNV 725
+#define _gloffset_VertexAttribs4dvNV 726
+#define _gloffset_VertexAttribs4fvNV 727
+#define _gloffset_VertexAttribs4svNV 728
+#define _gloffset_VertexAttribs4ubvNV 729
+#define _gloffset_GetTexBumpParameterfvATI 730
+#define _gloffset_GetTexBumpParameterivATI 731
+#define _gloffset_TexBumpParameterfvATI 732
+#define _gloffset_TexBumpParameterivATI 733
+#define _gloffset_AlphaFragmentOp1ATI 734
+#define _gloffset_AlphaFragmentOp2ATI 735
+#define _gloffset_AlphaFragmentOp3ATI 736
+#define _gloffset_BeginFragmentShaderATI 737
+#define _gloffset_BindFragmentShaderATI 738
+#define _gloffset_ColorFragmentOp1ATI 739
+#define _gloffset_ColorFragmentOp2ATI 740
+#define _gloffset_ColorFragmentOp3ATI 741
+#define _gloffset_DeleteFragmentShaderATI 742
+#define _gloffset_EndFragmentShaderATI 743
+#define _gloffset_GenFragmentShadersATI 744
+#define _gloffset_PassTexCoordATI 745
+#define _gloffset_SampleMapATI 746
+#define _gloffset_SetFragmentShaderConstantATI 747
+#define _gloffset_PointParameteriNV 748
+#define _gloffset_PointParameterivNV 749
+#define _gloffset_ActiveStencilFaceEXT 750
+#define _gloffset_BindVertexArrayAPPLE 751
+#define _gloffset_DeleteVertexArraysAPPLE 752
+#define _gloffset_GenVertexArraysAPPLE 753
+#define _gloffset_IsVertexArrayAPPLE 754
+#define _gloffset_GetProgramNamedParameterdvNV 755
+#define _gloffset_GetProgramNamedParameterfvNV 756
+#define _gloffset_ProgramNamedParameter4dNV 757
+#define _gloffset_ProgramNamedParameter4dvNV 758
+#define _gloffset_ProgramNamedParameter4fNV 759
+#define _gloffset_ProgramNamedParameter4fvNV 760
+#define _gloffset_DepthBoundsEXT 761
+#define _gloffset_BlendEquationSeparateEXT 762
+#define _gloffset_BindFramebufferEXT 763
+#define _gloffset_BindRenderbufferEXT 764
+#define _gloffset_CheckFramebufferStatusEXT 765
+#define _gloffset_DeleteFramebuffersEXT 766
+#define _gloffset_DeleteRenderbuffersEXT 767
+#define _gloffset_FramebufferRenderbufferEXT 768
+#define _gloffset_FramebufferTexture1DEXT 769
+#define _gloffset_FramebufferTexture2DEXT 770
+#define _gloffset_FramebufferTexture3DEXT 771
+#define _gloffset_GenFramebuffersEXT 772
+#define _gloffset_GenRenderbuffersEXT 773
+#define _gloffset_GenerateMipmapEXT 774
+#define _gloffset_GetFramebufferAttachmentParameterivEXT 775
+#define _gloffset_GetRenderbufferParameterivEXT 776
+#define _gloffset_IsFramebufferEXT 777
+#define _gloffset_IsRenderbufferEXT 778
+#define _gloffset_RenderbufferStorageEXT 779
+#define _gloffset_BlitFramebufferEXT 780
+#define _gloffset_BufferParameteriAPPLE 781
+#define _gloffset_FlushMappedBufferRangeAPPLE 782
+#define _gloffset_FramebufferTextureLayerEXT 783
+#define _gloffset_ProvokingVertexEXT 784
+#define _gloffset_GetTexParameterPointervAPPLE 785
+#define _gloffset_TextureRangeAPPLE 786
+#define _gloffset_StencilFuncSeparateATI 787
+#define _gloffset_ProgramEnvParameters4fvEXT 788
+#define _gloffset_ProgramLocalParameters4fvEXT 789
+#define _gloffset_GetQueryObjecti64vEXT 790
+#define _gloffset_GetQueryObjectui64vEXT 791
+#define _gloffset_FIRST_DYNAMIC 792
#else
@@ -980,6 +987,13 @@
#define _gloffset_BindVertexArray driDispatchRemapTable[BindVertexArray_remap_index]
#define _gloffset_GenVertexArrays driDispatchRemapTable[GenVertexArrays_remap_index]
#define _gloffset_CopyBufferSubData driDispatchRemapTable[CopyBufferSubData_remap_index]
+#define _gloffset_ClientWaitSync driDispatchRemapTable[ClientWaitSync_remap_index]
+#define _gloffset_DeleteSync driDispatchRemapTable[DeleteSync_remap_index]
+#define _gloffset_FenceSync driDispatchRemapTable[FenceSync_remap_index]
+#define _gloffset_GetInteger64v driDispatchRemapTable[GetInteger64v_remap_index]
+#define _gloffset_GetSynciv driDispatchRemapTable[GetSynciv_remap_index]
+#define _gloffset_IsSync driDispatchRemapTable[IsSync_remap_index]
+#define _gloffset_WaitSync driDispatchRemapTable[WaitSync_remap_index]
#define _gloffset_PolygonOffsetEXT driDispatchRemapTable[PolygonOffsetEXT_remap_index]
#define _gloffset_GetPixelTexGenParameterfvSGIS driDispatchRemapTable[GetPixelTexGenParameterfvSGIS_remap_index]
#define _gloffset_GetPixelTexGenParameterivSGIS driDispatchRemapTable[GetPixelTexGenParameterivSGIS_remap_index]
diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h
index c23e9a63cf9..855fcaa7fea 100644
--- a/src/mesa/glapi/glapitable.h
+++ b/src/mesa/glapi/glapitable.h
@@ -607,224 +607,231 @@ struct _glapi_table
void (GLAPIENTRYP BindVertexArray)(GLuint array); /* 564 */
void (GLAPIENTRYP GenVertexArrays)(GLsizei n, GLuint * arrays); /* 565 */
void (GLAPIENTRYP CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); /* 566 */
- void (GLAPIENTRYP PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 567 */
- void (GLAPIENTRYP GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 568 */
- void (GLAPIENTRYP GetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params); /* 569 */
- void (GLAPIENTRYP PixelTexGenParameterfSGIS)(GLenum pname, GLfloat param); /* 570 */
- void (GLAPIENTRYP PixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params); /* 571 */
- void (GLAPIENTRYP PixelTexGenParameteriSGIS)(GLenum pname, GLint param); /* 572 */
- void (GLAPIENTRYP PixelTexGenParameterivSGIS)(GLenum pname, const GLint * params); /* 573 */
- void (GLAPIENTRYP SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 574 */
- void (GLAPIENTRYP SamplePatternSGIS)(GLenum pattern); /* 575 */
- void (GLAPIENTRYP ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 576 */
- void (GLAPIENTRYP EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 577 */
- void (GLAPIENTRYP IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 578 */
- void (GLAPIENTRYP NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 579 */
- void (GLAPIENTRYP TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 580 */
- void (GLAPIENTRYP VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 581 */
- void (GLAPIENTRYP PointParameterfEXT)(GLenum pname, GLfloat param); /* 582 */
- void (GLAPIENTRYP PointParameterfvEXT)(GLenum pname, const GLfloat * params); /* 583 */
- void (GLAPIENTRYP LockArraysEXT)(GLint first, GLsizei count); /* 584 */
- void (GLAPIENTRYP UnlockArraysEXT)(void); /* 585 */
- void (GLAPIENTRYP CullParameterdvEXT)(GLenum pname, GLdouble * params); /* 586 */
- void (GLAPIENTRYP CullParameterfvEXT)(GLenum pname, GLfloat * params); /* 587 */
- void (GLAPIENTRYP SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 588 */
- void (GLAPIENTRYP SecondaryColor3bvEXT)(const GLbyte * v); /* 589 */
- void (GLAPIENTRYP SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 590 */
- void (GLAPIENTRYP SecondaryColor3dvEXT)(const GLdouble * v); /* 591 */
- void (GLAPIENTRYP SecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue); /* 592 */
- void (GLAPIENTRYP SecondaryColor3fvEXT)(const GLfloat * v); /* 593 */
- void (GLAPIENTRYP SecondaryColor3iEXT)(GLint red, GLint green, GLint blue); /* 594 */
- void (GLAPIENTRYP SecondaryColor3ivEXT)(const GLint * v); /* 595 */
- void (GLAPIENTRYP SecondaryColor3sEXT)(GLshort red, GLshort green, GLshort blue); /* 596 */
- void (GLAPIENTRYP SecondaryColor3svEXT)(const GLshort * v); /* 597 */
- void (GLAPIENTRYP SecondaryColor3ubEXT)(GLubyte red, GLubyte green, GLubyte blue); /* 598 */
- void (GLAPIENTRYP SecondaryColor3ubvEXT)(const GLubyte * v); /* 599 */
- void (GLAPIENTRYP SecondaryColor3uiEXT)(GLuint red, GLuint green, GLuint blue); /* 600 */
- void (GLAPIENTRYP SecondaryColor3uivEXT)(const GLuint * v); /* 601 */
- void (GLAPIENTRYP SecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue); /* 602 */
- void (GLAPIENTRYP SecondaryColor3usvEXT)(const GLushort * v); /* 603 */
- void (GLAPIENTRYP SecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 604 */
- void (GLAPIENTRYP MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 605 */
- void (GLAPIENTRYP MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 606 */
- void (GLAPIENTRYP FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 607 */
- void (GLAPIENTRYP FogCoorddEXT)(GLdouble coord); /* 608 */
- void (GLAPIENTRYP FogCoorddvEXT)(const GLdouble * coord); /* 609 */
- void (GLAPIENTRYP FogCoordfEXT)(GLfloat coord); /* 610 */
- void (GLAPIENTRYP FogCoordfvEXT)(const GLfloat * coord); /* 611 */
- void (GLAPIENTRYP PixelTexGenSGIX)(GLenum mode); /* 612 */
- void (GLAPIENTRYP BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 613 */
- void (GLAPIENTRYP FlushVertexArrayRangeNV)(void); /* 614 */
- void (GLAPIENTRYP VertexArrayRangeNV)(GLsizei length, const GLvoid * pointer); /* 615 */
- void (GLAPIENTRYP CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 616 */
- void (GLAPIENTRYP CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); /* 617 */
- void (GLAPIENTRYP CombinerParameterfNV)(GLenum pname, GLfloat param); /* 618 */
- void (GLAPIENTRYP CombinerParameterfvNV)(GLenum pname, const GLfloat * params); /* 619 */
- void (GLAPIENTRYP CombinerParameteriNV)(GLenum pname, GLint param); /* 620 */
- void (GLAPIENTRYP CombinerParameterivNV)(GLenum pname, const GLint * params); /* 621 */
- void (GLAPIENTRYP FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 622 */
- void (GLAPIENTRYP GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); /* 623 */
- void (GLAPIENTRYP GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); /* 624 */
- void (GLAPIENTRYP GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); /* 625 */
- void (GLAPIENTRYP GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params); /* 626 */
- void (GLAPIENTRYP GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params); /* 627 */
- void (GLAPIENTRYP GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params); /* 628 */
- void (GLAPIENTRYP ResizeBuffersMESA)(void); /* 629 */
- void (GLAPIENTRYP WindowPos2dMESA)(GLdouble x, GLdouble y); /* 630 */
- void (GLAPIENTRYP WindowPos2dvMESA)(const GLdouble * v); /* 631 */
- void (GLAPIENTRYP WindowPos2fMESA)(GLfloat x, GLfloat y); /* 632 */
- void (GLAPIENTRYP WindowPos2fvMESA)(const GLfloat * v); /* 633 */
- void (GLAPIENTRYP WindowPos2iMESA)(GLint x, GLint y); /* 634 */
- void (GLAPIENTRYP WindowPos2ivMESA)(const GLint * v); /* 635 */
- void (GLAPIENTRYP WindowPos2sMESA)(GLshort x, GLshort y); /* 636 */
- void (GLAPIENTRYP WindowPos2svMESA)(const GLshort * v); /* 637 */
- void (GLAPIENTRYP WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z); /* 638 */
- void (GLAPIENTRYP WindowPos3dvMESA)(const GLdouble * v); /* 639 */
- void (GLAPIENTRYP WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z); /* 640 */
- void (GLAPIENTRYP WindowPos3fvMESA)(const GLfloat * v); /* 641 */
- void (GLAPIENTRYP WindowPos3iMESA)(GLint x, GLint y, GLint z); /* 642 */
- void (GLAPIENTRYP WindowPos3ivMESA)(const GLint * v); /* 643 */
- void (GLAPIENTRYP WindowPos3sMESA)(GLshort x, GLshort y, GLshort z); /* 644 */
- void (GLAPIENTRYP WindowPos3svMESA)(const GLshort * v); /* 645 */
- void (GLAPIENTRYP WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 646 */
- void (GLAPIENTRYP WindowPos4dvMESA)(const GLdouble * v); /* 647 */
- void (GLAPIENTRYP WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 648 */
- void (GLAPIENTRYP WindowPos4fvMESA)(const GLfloat * v); /* 649 */
- void (GLAPIENTRYP WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 650 */
- void (GLAPIENTRYP WindowPos4ivMESA)(const GLint * v); /* 651 */
- void (GLAPIENTRYP WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 652 */
- void (GLAPIENTRYP WindowPos4svMESA)(const GLshort * v); /* 653 */
- void (GLAPIENTRYP MultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); /* 654 */
- void (GLAPIENTRYP MultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); /* 655 */
- void (GLAPIENTRYP DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 656 */
- void (GLAPIENTRYP FinishFenceNV)(GLuint fence); /* 657 */
- void (GLAPIENTRYP GenFencesNV)(GLsizei n, GLuint * fences); /* 658 */
- void (GLAPIENTRYP GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 659 */
- GLboolean (GLAPIENTRYP IsFenceNV)(GLuint fence); /* 660 */
- void (GLAPIENTRYP SetFenceNV)(GLuint fence, GLenum condition); /* 661 */
- GLboolean (GLAPIENTRYP TestFenceNV)(GLuint fence); /* 662 */
- GLboolean (GLAPIENTRYP AreProgramsResidentNV)(GLsizei n, const GLuint * ids, GLboolean * residences); /* 663 */
- void (GLAPIENTRYP BindProgramNV)(GLenum target, GLuint program); /* 664 */
- void (GLAPIENTRYP DeleteProgramsNV)(GLsizei n, const GLuint * programs); /* 665 */
- void (GLAPIENTRYP ExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params); /* 666 */
- void (GLAPIENTRYP GenProgramsNV)(GLsizei n, GLuint * programs); /* 667 */
- void (GLAPIENTRYP GetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params); /* 668 */
- void (GLAPIENTRYP GetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params); /* 669 */
- void (GLAPIENTRYP GetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program); /* 670 */
- void (GLAPIENTRYP GetProgramivNV)(GLuint id, GLenum pname, GLint * params); /* 671 */
- void (GLAPIENTRYP GetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params); /* 672 */
- void (GLAPIENTRYP GetVertexAttribPointervNV)(GLuint index, GLenum pname, GLvoid ** pointer); /* 673 */
- void (GLAPIENTRYP GetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params); /* 674 */
- void (GLAPIENTRYP GetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params); /* 675 */
- void (GLAPIENTRYP GetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params); /* 676 */
- GLboolean (GLAPIENTRYP IsProgramNV)(GLuint program); /* 677 */
- void (GLAPIENTRYP LoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); /* 678 */
- void (GLAPIENTRYP ProgramParameters4dvNV)(GLenum target, GLuint index, GLuint num, const GLdouble * params); /* 679 */
- void (GLAPIENTRYP ProgramParameters4fvNV)(GLenum target, GLuint index, GLuint num, const GLfloat * params); /* 680 */
- void (GLAPIENTRYP RequestResidentProgramsNV)(GLsizei n, const GLuint * ids); /* 681 */
- void (GLAPIENTRYP TrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform); /* 682 */
- void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); /* 683 */
- void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble * v); /* 684 */
- void (GLAPIENTRYP VertexAttrib1fNV)(GLuint index, GLfloat x); /* 685 */
- void (GLAPIENTRYP VertexAttrib1fvNV)(GLuint index, const GLfloat * v); /* 686 */
- void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); /* 687 */
- void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort * v); /* 688 */
- void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); /* 689 */
- void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble * v); /* 690 */
- void (GLAPIENTRYP VertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y); /* 691 */
- void (GLAPIENTRYP VertexAttrib2fvNV)(GLuint index, const GLfloat * v); /* 692 */
- void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); /* 693 */
- void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort * v); /* 694 */
- void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 695 */
- void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble * v); /* 696 */
- void (GLAPIENTRYP VertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 697 */
- void (GLAPIENTRYP VertexAttrib3fvNV)(GLuint index, const GLfloat * v); /* 698 */
- void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); /* 699 */
- void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort * v); /* 700 */
- void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 701 */
- void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble * v); /* 702 */
- void (GLAPIENTRYP VertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 703 */
- void (GLAPIENTRYP VertexAttrib4fvNV)(GLuint index, const GLfloat * v); /* 704 */
- void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 705 */
- void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort * v); /* 706 */
- void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 707 */
- void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte * v); /* 708 */
- void (GLAPIENTRYP VertexAttribPointerNV)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 709 */
- void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 710 */
- void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 711 */
- void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort * v); /* 712 */
- void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 713 */
- void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 714 */
- void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort * v); /* 715 */
- void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 716 */
- void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 717 */
- void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort * v); /* 718 */
- void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 719 */
- void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 720 */
- void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort * v); /* 721 */
- void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte * v); /* 722 */
- void (GLAPIENTRYP GetTexBumpParameterfvATI)(GLenum pname, GLfloat * param); /* 723 */
- void (GLAPIENTRYP GetTexBumpParameterivATI)(GLenum pname, GLint * param); /* 724 */
- void (GLAPIENTRYP TexBumpParameterfvATI)(GLenum pname, const GLfloat * param); /* 725 */
- void (GLAPIENTRYP TexBumpParameterivATI)(GLenum pname, const GLint * param); /* 726 */
- void (GLAPIENTRYP AlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 727 */
- void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 728 */
- void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 729 */
- void (GLAPIENTRYP BeginFragmentShaderATI)(void); /* 730 */
- void (GLAPIENTRYP BindFragmentShaderATI)(GLuint id); /* 731 */
- void (GLAPIENTRYP ColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 732 */
- void (GLAPIENTRYP ColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 733 */
- void (GLAPIENTRYP ColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 734 */
- void (GLAPIENTRYP DeleteFragmentShaderATI)(GLuint id); /* 735 */
- void (GLAPIENTRYP EndFragmentShaderATI)(void); /* 736 */
- GLuint (GLAPIENTRYP GenFragmentShadersATI)(GLuint range); /* 737 */
- void (GLAPIENTRYP PassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle); /* 738 */
- void (GLAPIENTRYP SampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle); /* 739 */
- void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 740 */
- void (GLAPIENTRYP PointParameteriNV)(GLenum pname, GLint param); /* 741 */
- void (GLAPIENTRYP PointParameterivNV)(GLenum pname, const GLint * params); /* 742 */
- void (GLAPIENTRYP ActiveStencilFaceEXT)(GLenum face); /* 743 */
- void (GLAPIENTRYP BindVertexArrayAPPLE)(GLuint array); /* 744 */
- void (GLAPIENTRYP DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays); /* 745 */
- void (GLAPIENTRYP GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays); /* 746 */
- GLboolean (GLAPIENTRYP IsVertexArrayAPPLE)(GLuint array); /* 747 */
- void (GLAPIENTRYP GetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); /* 748 */
- void (GLAPIENTRYP GetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); /* 749 */
- void (GLAPIENTRYP ProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 750 */
- void (GLAPIENTRYP ProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); /* 751 */
- void (GLAPIENTRYP ProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 752 */
- void (GLAPIENTRYP ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); /* 753 */
- void (GLAPIENTRYP DepthBoundsEXT)(GLclampd zmin, GLclampd zmax); /* 754 */
- void (GLAPIENTRYP BlendEquationSeparateEXT)(GLenum modeRGB, GLenum modeA); /* 755 */
- void (GLAPIENTRYP BindFramebufferEXT)(GLenum target, GLuint framebuffer); /* 756 */
- void (GLAPIENTRYP BindRenderbufferEXT)(GLenum target, GLuint renderbuffer); /* 757 */
- GLenum (GLAPIENTRYP CheckFramebufferStatusEXT)(GLenum target); /* 758 */
- void (GLAPIENTRYP DeleteFramebuffersEXT)(GLsizei n, const GLuint * framebuffers); /* 759 */
- void (GLAPIENTRYP DeleteRenderbuffersEXT)(GLsizei n, const GLuint * renderbuffers); /* 760 */
- void (GLAPIENTRYP FramebufferRenderbufferEXT)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); /* 761 */
- void (GLAPIENTRYP FramebufferTexture1DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 762 */
- void (GLAPIENTRYP FramebufferTexture2DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 763 */
- void (GLAPIENTRYP FramebufferTexture3DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); /* 764 */
- void (GLAPIENTRYP GenFramebuffersEXT)(GLsizei n, GLuint * framebuffers); /* 765 */
- void (GLAPIENTRYP GenRenderbuffersEXT)(GLsizei n, GLuint * renderbuffers); /* 766 */
- void (GLAPIENTRYP GenerateMipmapEXT)(GLenum target); /* 767 */
- void (GLAPIENTRYP GetFramebufferAttachmentParameterivEXT)(GLenum target, GLenum attachment, GLenum pname, GLint * params); /* 768 */
- void (GLAPIENTRYP GetRenderbufferParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 769 */
- GLboolean (GLAPIENTRYP IsFramebufferEXT)(GLuint framebuffer); /* 770 */
- GLboolean (GLAPIENTRYP IsRenderbufferEXT)(GLuint renderbuffer); /* 771 */
- void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 772 */
- void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 773 */
- void (GLAPIENTRYP BufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param); /* 774 */
- void (GLAPIENTRYP FlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size); /* 775 */
- void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 776 */
- void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 777 */
- void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 778 */
- void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 779 */
- void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 780 */
- void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 781 */
- void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 782 */
- void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 783 */
- void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 784 */
+ GLenum (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 567 */
+ void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 568 */
+ GLsync (GLAPIENTRYP FenceSync)(GLenum condition, GLbitfield flags); /* 569 */
+ void (GLAPIENTRYP GetInteger64v)(GLenum pname, GLint64 * params); /* 570 */
+ void (GLAPIENTRYP GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); /* 571 */
+ GLboolean (GLAPIENTRYP IsSync)(GLsync sync); /* 572 */
+ void (GLAPIENTRYP WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 573 */
+ void (GLAPIENTRYP PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 574 */
+ void (GLAPIENTRYP GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 575 */
+ void (GLAPIENTRYP GetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params); /* 576 */
+ void (GLAPIENTRYP PixelTexGenParameterfSGIS)(GLenum pname, GLfloat param); /* 577 */
+ void (GLAPIENTRYP PixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params); /* 578 */
+ void (GLAPIENTRYP PixelTexGenParameteriSGIS)(GLenum pname, GLint param); /* 579 */
+ void (GLAPIENTRYP PixelTexGenParameterivSGIS)(GLenum pname, const GLint * params); /* 580 */
+ void (GLAPIENTRYP SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 581 */
+ void (GLAPIENTRYP SamplePatternSGIS)(GLenum pattern); /* 582 */
+ void (GLAPIENTRYP ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 583 */
+ void (GLAPIENTRYP EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 584 */
+ void (GLAPIENTRYP IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 585 */
+ void (GLAPIENTRYP NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 586 */
+ void (GLAPIENTRYP TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 587 */
+ void (GLAPIENTRYP VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 588 */
+ void (GLAPIENTRYP PointParameterfEXT)(GLenum pname, GLfloat param); /* 589 */
+ void (GLAPIENTRYP PointParameterfvEXT)(GLenum pname, const GLfloat * params); /* 590 */
+ void (GLAPIENTRYP LockArraysEXT)(GLint first, GLsizei count); /* 591 */
+ void (GLAPIENTRYP UnlockArraysEXT)(void); /* 592 */
+ void (GLAPIENTRYP CullParameterdvEXT)(GLenum pname, GLdouble * params); /* 593 */
+ void (GLAPIENTRYP CullParameterfvEXT)(GLenum pname, GLfloat * params); /* 594 */
+ void (GLAPIENTRYP SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 595 */
+ void (GLAPIENTRYP SecondaryColor3bvEXT)(const GLbyte * v); /* 596 */
+ void (GLAPIENTRYP SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 597 */
+ void (GLAPIENTRYP SecondaryColor3dvEXT)(const GLdouble * v); /* 598 */
+ void (GLAPIENTRYP SecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue); /* 599 */
+ void (GLAPIENTRYP SecondaryColor3fvEXT)(const GLfloat * v); /* 600 */
+ void (GLAPIENTRYP SecondaryColor3iEXT)(GLint red, GLint green, GLint blue); /* 601 */
+ void (GLAPIENTRYP SecondaryColor3ivEXT)(const GLint * v); /* 602 */
+ void (GLAPIENTRYP SecondaryColor3sEXT)(GLshort red, GLshort green, GLshort blue); /* 603 */
+ void (GLAPIENTRYP SecondaryColor3svEXT)(const GLshort * v); /* 604 */
+ void (GLAPIENTRYP SecondaryColor3ubEXT)(GLubyte red, GLubyte green, GLubyte blue); /* 605 */
+ void (GLAPIENTRYP SecondaryColor3ubvEXT)(const GLubyte * v); /* 606 */
+ void (GLAPIENTRYP SecondaryColor3uiEXT)(GLuint red, GLuint green, GLuint blue); /* 607 */
+ void (GLAPIENTRYP SecondaryColor3uivEXT)(const GLuint * v); /* 608 */
+ void (GLAPIENTRYP SecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue); /* 609 */
+ void (GLAPIENTRYP SecondaryColor3usvEXT)(const GLushort * v); /* 610 */
+ void (GLAPIENTRYP SecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 611 */
+ void (GLAPIENTRYP MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 612 */
+ void (GLAPIENTRYP MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 613 */
+ void (GLAPIENTRYP FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 614 */
+ void (GLAPIENTRYP FogCoorddEXT)(GLdouble coord); /* 615 */
+ void (GLAPIENTRYP FogCoorddvEXT)(const GLdouble * coord); /* 616 */
+ void (GLAPIENTRYP FogCoordfEXT)(GLfloat coord); /* 617 */
+ void (GLAPIENTRYP FogCoordfvEXT)(const GLfloat * coord); /* 618 */
+ void (GLAPIENTRYP PixelTexGenSGIX)(GLenum mode); /* 619 */
+ void (GLAPIENTRYP BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 620 */
+ void (GLAPIENTRYP FlushVertexArrayRangeNV)(void); /* 621 */
+ void (GLAPIENTRYP VertexArrayRangeNV)(GLsizei length, const GLvoid * pointer); /* 622 */
+ void (GLAPIENTRYP CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 623 */
+ void (GLAPIENTRYP CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); /* 624 */
+ void (GLAPIENTRYP CombinerParameterfNV)(GLenum pname, GLfloat param); /* 625 */
+ void (GLAPIENTRYP CombinerParameterfvNV)(GLenum pname, const GLfloat * params); /* 626 */
+ void (GLAPIENTRYP CombinerParameteriNV)(GLenum pname, GLint param); /* 627 */
+ void (GLAPIENTRYP CombinerParameterivNV)(GLenum pname, const GLint * params); /* 628 */
+ void (GLAPIENTRYP FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 629 */
+ void (GLAPIENTRYP GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); /* 630 */
+ void (GLAPIENTRYP GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); /* 631 */
+ void (GLAPIENTRYP GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); /* 632 */
+ void (GLAPIENTRYP GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params); /* 633 */
+ void (GLAPIENTRYP GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params); /* 634 */
+ void (GLAPIENTRYP GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params); /* 635 */
+ void (GLAPIENTRYP ResizeBuffersMESA)(void); /* 636 */
+ void (GLAPIENTRYP WindowPos2dMESA)(GLdouble x, GLdouble y); /* 637 */
+ void (GLAPIENTRYP WindowPos2dvMESA)(const GLdouble * v); /* 638 */
+ void (GLAPIENTRYP WindowPos2fMESA)(GLfloat x, GLfloat y); /* 639 */
+ void (GLAPIENTRYP WindowPos2fvMESA)(const GLfloat * v); /* 640 */
+ void (GLAPIENTRYP WindowPos2iMESA)(GLint x, GLint y); /* 641 */
+ void (GLAPIENTRYP WindowPos2ivMESA)(const GLint * v); /* 642 */
+ void (GLAPIENTRYP WindowPos2sMESA)(GLshort x, GLshort y); /* 643 */
+ void (GLAPIENTRYP WindowPos2svMESA)(const GLshort * v); /* 644 */
+ void (GLAPIENTRYP WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z); /* 645 */
+ void (GLAPIENTRYP WindowPos3dvMESA)(const GLdouble * v); /* 646 */
+ void (GLAPIENTRYP WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z); /* 647 */
+ void (GLAPIENTRYP WindowPos3fvMESA)(const GLfloat * v); /* 648 */
+ void (GLAPIENTRYP WindowPos3iMESA)(GLint x, GLint y, GLint z); /* 649 */
+ void (GLAPIENTRYP WindowPos3ivMESA)(const GLint * v); /* 650 */
+ void (GLAPIENTRYP WindowPos3sMESA)(GLshort x, GLshort y, GLshort z); /* 651 */
+ void (GLAPIENTRYP WindowPos3svMESA)(const GLshort * v); /* 652 */
+ void (GLAPIENTRYP WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 653 */
+ void (GLAPIENTRYP WindowPos4dvMESA)(const GLdouble * v); /* 654 */
+ void (GLAPIENTRYP WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 655 */
+ void (GLAPIENTRYP WindowPos4fvMESA)(const GLfloat * v); /* 656 */
+ void (GLAPIENTRYP WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 657 */
+ void (GLAPIENTRYP WindowPos4ivMESA)(const GLint * v); /* 658 */
+ void (GLAPIENTRYP WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 659 */
+ void (GLAPIENTRYP WindowPos4svMESA)(const GLshort * v); /* 660 */
+ void (GLAPIENTRYP MultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); /* 661 */
+ void (GLAPIENTRYP MultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); /* 662 */
+ void (GLAPIENTRYP DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 663 */
+ void (GLAPIENTRYP FinishFenceNV)(GLuint fence); /* 664 */
+ void (GLAPIENTRYP GenFencesNV)(GLsizei n, GLuint * fences); /* 665 */
+ void (GLAPIENTRYP GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 666 */
+ GLboolean (GLAPIENTRYP IsFenceNV)(GLuint fence); /* 667 */
+ void (GLAPIENTRYP SetFenceNV)(GLuint fence, GLenum condition); /* 668 */
+ GLboolean (GLAPIENTRYP TestFenceNV)(GLuint fence); /* 669 */
+ GLboolean (GLAPIENTRYP AreProgramsResidentNV)(GLsizei n, const GLuint * ids, GLboolean * residences); /* 670 */
+ void (GLAPIENTRYP BindProgramNV)(GLenum target, GLuint program); /* 671 */
+ void (GLAPIENTRYP DeleteProgramsNV)(GLsizei n, const GLuint * programs); /* 672 */
+ void (GLAPIENTRYP ExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params); /* 673 */
+ void (GLAPIENTRYP GenProgramsNV)(GLsizei n, GLuint * programs); /* 674 */
+ void (GLAPIENTRYP GetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params); /* 675 */
+ void (GLAPIENTRYP GetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params); /* 676 */
+ void (GLAPIENTRYP GetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program); /* 677 */
+ void (GLAPIENTRYP GetProgramivNV)(GLuint id, GLenum pname, GLint * params); /* 678 */
+ void (GLAPIENTRYP GetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params); /* 679 */
+ void (GLAPIENTRYP GetVertexAttribPointervNV)(GLuint index, GLenum pname, GLvoid ** pointer); /* 680 */
+ void (GLAPIENTRYP GetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params); /* 681 */
+ void (GLAPIENTRYP GetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params); /* 682 */
+ void (GLAPIENTRYP GetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params); /* 683 */
+ GLboolean (GLAPIENTRYP IsProgramNV)(GLuint program); /* 684 */
+ void (GLAPIENTRYP LoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); /* 685 */
+ void (GLAPIENTRYP ProgramParameters4dvNV)(GLenum target, GLuint index, GLuint num, const GLdouble * params); /* 686 */
+ void (GLAPIENTRYP ProgramParameters4fvNV)(GLenum target, GLuint index, GLuint num, const GLfloat * params); /* 687 */
+ void (GLAPIENTRYP RequestResidentProgramsNV)(GLsizei n, const GLuint * ids); /* 688 */
+ void (GLAPIENTRYP TrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform); /* 689 */
+ void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); /* 690 */
+ void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble * v); /* 691 */
+ void (GLAPIENTRYP VertexAttrib1fNV)(GLuint index, GLfloat x); /* 692 */
+ void (GLAPIENTRYP VertexAttrib1fvNV)(GLuint index, const GLfloat * v); /* 693 */
+ void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); /* 694 */
+ void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort * v); /* 695 */
+ void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); /* 696 */
+ void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble * v); /* 697 */
+ void (GLAPIENTRYP VertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y); /* 698 */
+ void (GLAPIENTRYP VertexAttrib2fvNV)(GLuint index, const GLfloat * v); /* 699 */
+ void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); /* 700 */
+ void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort * v); /* 701 */
+ void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 702 */
+ void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble * v); /* 703 */
+ void (GLAPIENTRYP VertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 704 */
+ void (GLAPIENTRYP VertexAttrib3fvNV)(GLuint index, const GLfloat * v); /* 705 */
+ void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); /* 706 */
+ void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort * v); /* 707 */
+ void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 708 */
+ void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble * v); /* 709 */
+ void (GLAPIENTRYP VertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 710 */
+ void (GLAPIENTRYP VertexAttrib4fvNV)(GLuint index, const GLfloat * v); /* 711 */
+ void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 712 */
+ void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort * v); /* 713 */
+ void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 714 */
+ void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte * v); /* 715 */
+ void (GLAPIENTRYP VertexAttribPointerNV)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 716 */
+ void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 717 */
+ void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 718 */
+ void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort * v); /* 719 */
+ void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 720 */
+ void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 721 */
+ void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort * v); /* 722 */
+ void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 723 */
+ void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 724 */
+ void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort * v); /* 725 */
+ void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 726 */
+ void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 727 */
+ void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort * v); /* 728 */
+ void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte * v); /* 729 */
+ void (GLAPIENTRYP GetTexBumpParameterfvATI)(GLenum pname, GLfloat * param); /* 730 */
+ void (GLAPIENTRYP GetTexBumpParameterivATI)(GLenum pname, GLint * param); /* 731 */
+ void (GLAPIENTRYP TexBumpParameterfvATI)(GLenum pname, const GLfloat * param); /* 732 */
+ void (GLAPIENTRYP TexBumpParameterivATI)(GLenum pname, const GLint * param); /* 733 */
+ void (GLAPIENTRYP AlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 734 */
+ void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 735 */
+ void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 736 */
+ void (GLAPIENTRYP BeginFragmentShaderATI)(void); /* 737 */
+ void (GLAPIENTRYP BindFragmentShaderATI)(GLuint id); /* 738 */
+ void (GLAPIENTRYP ColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 739 */
+ void (GLAPIENTRYP ColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 740 */
+ void (GLAPIENTRYP ColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 741 */
+ void (GLAPIENTRYP DeleteFragmentShaderATI)(GLuint id); /* 742 */
+ void (GLAPIENTRYP EndFragmentShaderATI)(void); /* 743 */
+ GLuint (GLAPIENTRYP GenFragmentShadersATI)(GLuint range); /* 744 */
+ void (GLAPIENTRYP PassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle); /* 745 */
+ void (GLAPIENTRYP SampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle); /* 746 */
+ void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 747 */
+ void (GLAPIENTRYP PointParameteriNV)(GLenum pname, GLint param); /* 748 */
+ void (GLAPIENTRYP PointParameterivNV)(GLenum pname, const GLint * params); /* 749 */
+ void (GLAPIENTRYP ActiveStencilFaceEXT)(GLenum face); /* 750 */
+ void (GLAPIENTRYP BindVertexArrayAPPLE)(GLuint array); /* 751 */
+ void (GLAPIENTRYP DeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays); /* 752 */
+ void (GLAPIENTRYP GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays); /* 753 */
+ GLboolean (GLAPIENTRYP IsVertexArrayAPPLE)(GLuint array); /* 754 */
+ void (GLAPIENTRYP GetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); /* 755 */
+ void (GLAPIENTRYP GetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); /* 756 */
+ void (GLAPIENTRYP ProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 757 */
+ void (GLAPIENTRYP ProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); /* 758 */
+ void (GLAPIENTRYP ProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 759 */
+ void (GLAPIENTRYP ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); /* 760 */
+ void (GLAPIENTRYP DepthBoundsEXT)(GLclampd zmin, GLclampd zmax); /* 761 */
+ void (GLAPIENTRYP BlendEquationSeparateEXT)(GLenum modeRGB, GLenum modeA); /* 762 */
+ void (GLAPIENTRYP BindFramebufferEXT)(GLenum target, GLuint framebuffer); /* 763 */
+ void (GLAPIENTRYP BindRenderbufferEXT)(GLenum target, GLuint renderbuffer); /* 764 */
+ GLenum (GLAPIENTRYP CheckFramebufferStatusEXT)(GLenum target); /* 765 */
+ void (GLAPIENTRYP DeleteFramebuffersEXT)(GLsizei n, const GLuint * framebuffers); /* 766 */
+ void (GLAPIENTRYP DeleteRenderbuffersEXT)(GLsizei n, const GLuint * renderbuffers); /* 767 */
+ void (GLAPIENTRYP FramebufferRenderbufferEXT)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); /* 768 */
+ void (GLAPIENTRYP FramebufferTexture1DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 769 */
+ void (GLAPIENTRYP FramebufferTexture2DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 770 */
+ void (GLAPIENTRYP FramebufferTexture3DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); /* 771 */
+ void (GLAPIENTRYP GenFramebuffersEXT)(GLsizei n, GLuint * framebuffers); /* 772 */
+ void (GLAPIENTRYP GenRenderbuffersEXT)(GLsizei n, GLuint * renderbuffers); /* 773 */
+ void (GLAPIENTRYP GenerateMipmapEXT)(GLenum target); /* 774 */
+ void (GLAPIENTRYP GetFramebufferAttachmentParameterivEXT)(GLenum target, GLenum attachment, GLenum pname, GLint * params); /* 775 */
+ void (GLAPIENTRYP GetRenderbufferParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 776 */
+ GLboolean (GLAPIENTRYP IsFramebufferEXT)(GLuint framebuffer); /* 777 */
+ GLboolean (GLAPIENTRYP IsRenderbufferEXT)(GLuint renderbuffer); /* 778 */
+ void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 779 */
+ void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 780 */
+ void (GLAPIENTRYP BufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param); /* 781 */
+ void (GLAPIENTRYP FlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size); /* 782 */
+ void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 783 */
+ void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 784 */
+ void (GLAPIENTRYP GetTexParameterPointervAPPLE)(GLenum target, GLenum pname, GLvoid ** params); /* 785 */
+ void (GLAPIENTRYP TextureRangeAPPLE)(GLenum target, GLsizei length, GLvoid * pointer); /* 786 */
+ void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 787 */
+ void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 788 */
+ void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 789 */
+ void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 790 */
+ void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 791 */
};
#endif /* !defined( _GLAPI_TABLE_H_ ) */
diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h
index 68e7a9a4f0c..e08f9548f57 100644
--- a/src/mesa/glapi/glapitemp.h
+++ b/src/mesa/glapi/glapitemp.h
@@ -4036,63 +4036,98 @@ KEYWORD1 void KEYWORD2 NAME(CopyBufferSubData)(GLenum readTarget, GLenum writeTa
DISPATCH(CopyBufferSubData, (readTarget, writeTarget, readOffset, writeOffset, size), (F, "glCopyBufferSubData(0x%x, 0x%x, %d, %d, %d);\n", readTarget, writeTarget, readOffset, writeOffset, size));
}
+KEYWORD1 GLenum KEYWORD2 NAME(ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ RETURN_DISPATCH(ClientWaitSync, (sync, flags, timeout), (F, "glClientWaitSync(%d, %d, %d);\n", sync, flags, timeout));
+}
+
+KEYWORD1 void KEYWORD2 NAME(DeleteSync)(GLsync sync)
+{
+ DISPATCH(DeleteSync, (sync), (F, "glDeleteSync(%d);\n", sync));
+}
+
+KEYWORD1 GLsync KEYWORD2 NAME(FenceSync)(GLenum condition, GLbitfield flags)
+{
+ RETURN_DISPATCH(FenceSync, (condition, flags), (F, "glFenceSync(0x%x, %d);\n", condition, flags));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetInteger64v)(GLenum pname, GLint64 * params)
+{
+ DISPATCH(GetInteger64v, (pname, params), (F, "glGetInteger64v(0x%x, %p);\n", pname, (const void *) params));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values)
+{
+ DISPATCH(GetSynciv, (sync, pname, bufSize, length, values), (F, "glGetSynciv(%d, 0x%x, %d, %p, %p);\n", sync, pname, bufSize, (const void *) length, (const void *) values));
+}
+
+KEYWORD1 GLboolean KEYWORD2 NAME(IsSync)(GLsync sync)
+{
+ RETURN_DISPATCH(IsSync, (sync), (F, "glIsSync(%d);\n", sync));
+}
+
+KEYWORD1 void KEYWORD2 NAME(WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ DISPATCH(WaitSync, (sync, flags, timeout), (F, "glWaitSync(%d, %d, %d);\n", sync, flags, timeout));
+}
+
KEYWORD1 void KEYWORD2 NAME(PolygonOffsetEXT)(GLfloat factor, GLfloat bias)
{
DISPATCH(PolygonOffsetEXT, (factor, bias), (F, "glPolygonOffsetEXT(%f, %f);\n", factor, bias));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_568)(GLenum pname, GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_575)(GLenum pname, GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_568)(GLenum pname, GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_575)(GLenum pname, GLfloat * params)
{
DISPATCH(GetPixelTexGenParameterfvSGIS, (pname, params), (F, "glGetPixelTexGenParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_569)(GLenum pname, GLint * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_576)(GLenum pname, GLint * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_569)(GLenum pname, GLint * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_576)(GLenum pname, GLint * params)
{
DISPATCH(GetPixelTexGenParameterivSGIS, (pname, params), (F, "glGetPixelTexGenParameterivSGIS(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_570)(GLenum pname, GLfloat param);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_577)(GLenum pname, GLfloat param);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_570)(GLenum pname, GLfloat param)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_577)(GLenum pname, GLfloat param)
{
DISPATCH(PixelTexGenParameterfSGIS, (pname, param), (F, "glPixelTexGenParameterfSGIS(0x%x, %f);\n", pname, param));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_571)(GLenum pname, const GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_578)(GLenum pname, const GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_571)(GLenum pname, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_578)(GLenum pname, const GLfloat * params)
{
DISPATCH(PixelTexGenParameterfvSGIS, (pname, params), (F, "glPixelTexGenParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_572)(GLenum pname, GLint param);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_579)(GLenum pname, GLint param);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_572)(GLenum pname, GLint param)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_579)(GLenum pname, GLint param)
{
DISPATCH(PixelTexGenParameteriSGIS, (pname, param), (F, "glPixelTexGenParameteriSGIS(0x%x, %d);\n", pname, param));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_573)(GLenum pname, const GLint * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, const GLint * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_573)(GLenum pname, const GLint * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_580)(GLenum pname, const GLint * params)
{
DISPATCH(PixelTexGenParameterivSGIS, (pname, params), (F, "glPixelTexGenParameterivSGIS(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_574)(GLclampf value, GLboolean invert);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLclampf value, GLboolean invert);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_574)(GLclampf value, GLboolean invert)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_581)(GLclampf value, GLboolean invert)
{
DISPATCH(SampleMaskSGIS, (value, invert), (F, "glSampleMaskSGIS(%f, %d);\n", value, invert));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_575)(GLenum pattern);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pattern);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_575)(GLenum pattern)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pattern)
{
DISPATCH(SamplePatternSGIS, (pattern), (F, "glSamplePatternSGIS(0x%x);\n", pattern));
}
@@ -4142,9 +4177,9 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterfEXT)(GLenum pname, GLfloat param)
DISPATCH(PointParameterfEXT, (pname, param), (F, "glPointParameterfEXT(0x%x, %f);\n", pname, param));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLfloat param);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_589)(GLenum pname, GLfloat param);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_582)(GLenum pname, GLfloat param)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_589)(GLenum pname, GLfloat param)
{
DISPATCH(PointParameterfEXT, (pname, param), (F, "glPointParameterfSGIS(0x%x, %f);\n", pname, param));
}
@@ -4164,9 +4199,9 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterfvEXT)(GLenum pname, const GLfloat * p
DISPATCH(PointParameterfvEXT, (pname, params), (F, "glPointParameterfvEXT(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_590)(GLenum pname, const GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_583)(GLenum pname, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_590)(GLenum pname, const GLfloat * params)
{
DISPATCH(PointParameterfvEXT, (pname, params), (F, "glPointParameterfvSGIS(0x%x, %p);\n", pname, (const void *) params));
}
@@ -4181,16 +4216,16 @@ KEYWORD1 void KEYWORD2 NAME(UnlockArraysEXT)(void)
DISPATCH(UnlockArraysEXT, (), (F, "glUnlockArraysEXT();\n"));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_586)(GLenum pname, GLdouble * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_593)(GLenum pname, GLdouble * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_586)(GLenum pname, GLdouble * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_593)(GLenum pname, GLdouble * params)
{
DISPATCH(CullParameterdvEXT, (pname, params), (F, "glCullParameterdvEXT(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_587)(GLenum pname, GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_594)(GLenum pname, GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_587)(GLenum pname, GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_594)(GLenum pname, GLfloat * params)
{
DISPATCH(CullParameterfvEXT, (pname, params), (F, "glCullParameterfvEXT(0x%x, %p);\n", pname, (const void *) params));
}
@@ -4435,9 +4470,9 @@ KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat * coord)
DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);\n", (const void *) coord));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_612)(GLenum mode);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_619)(GLenum mode);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_612)(GLenum mode)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_619)(GLenum mode)
{
DISPATCH(PixelTexGenSGIX, (mode), (F, "glPixelTexGenSGIX(0x%x);\n", mode));
}
@@ -4452,9 +4487,9 @@ KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfac
DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, "glBlendFuncSeparateEXT(0x%x, 0x%x, 0x%x, 0x%x);\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_613)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_620)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_613)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_620)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, "glBlendFuncSeparateINGR(0x%x, 0x%x, 0x%x, 0x%x);\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha));
}
@@ -4819,65 +4854,65 @@ KEYWORD1 void KEYWORD2 NAME(WindowPos4svMESA)(const GLshort * v)
DISPATCH(WindowPos4svMESA, (v), (F, "glWindowPos4svMESA(%p);\n", (const void *) v));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_654)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_661)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_654)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_661)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride)
{
DISPATCH(MultiModeDrawArraysIBM, (mode, first, count, primcount, modestride), (F, "glMultiModeDrawArraysIBM(%p, %p, %p, %d, %d);\n", (const void *) mode, (const void *) first, (const void *) count, primcount, modestride));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_655)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_662)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_655)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_662)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride)
{
DISPATCH(MultiModeDrawElementsIBM, (mode, count, type, indices, primcount, modestride), (F, "glMultiModeDrawElementsIBM(%p, %p, 0x%x, %p, %d, %d);\n", (const void *) mode, (const void *) count, type, (const void *) indices, primcount, modestride));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_656)(GLsizei n, const GLuint * fences);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_663)(GLsizei n, const GLuint * fences);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_656)(GLsizei n, const GLuint * fences)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_663)(GLsizei n, const GLuint * fences)
{
DISPATCH(DeleteFencesNV, (n, fences), (F, "glDeleteFencesNV(%d, %p);\n", n, (const void *) fences));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_657)(GLuint fence);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_664)(GLuint fence);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_657)(GLuint fence)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_664)(GLuint fence)
{
DISPATCH(FinishFenceNV, (fence), (F, "glFinishFenceNV(%d);\n", fence));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_658)(GLsizei n, GLuint * fences);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_665)(GLsizei n, GLuint * fences);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_658)(GLsizei n, GLuint * fences)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_665)(GLsizei n, GLuint * fences)
{
DISPATCH(GenFencesNV, (n, fences), (F, "glGenFencesNV(%d, %p);\n", n, (const void *) fences));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_659)(GLuint fence, GLenum pname, GLint * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(GLuint fence, GLenum pname, GLint * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_659)(GLuint fence, GLenum pname, GLint * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_666)(GLuint fence, GLenum pname, GLint * params)
{
DISPATCH(GetFenceivNV, (fence, pname, params), (F, "glGetFenceivNV(%d, 0x%x, %p);\n", fence, pname, (const void *) params));
}
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_660)(GLuint fence);
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_667)(GLuint fence);
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_660)(GLuint fence)
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_667)(GLuint fence)
{
RETURN_DISPATCH(IsFenceNV, (fence), (F, "glIsFenceNV(%d);\n", fence));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_661)(GLuint fence, GLenum condition);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLuint fence, GLenum condition);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_661)(GLuint fence, GLenum condition)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_668)(GLuint fence, GLenum condition)
{
DISPATCH(SetFenceNV, (fence, condition), (F, "glSetFenceNV(%d, 0x%x);\n", fence, condition));
}
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_662)(GLuint fence);
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence);
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_662)(GLuint fence)
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_669)(GLuint fence)
{
RETURN_DISPATCH(TestFenceNV, (fence), (F, "glTestFenceNV(%d);\n", fence));
}
@@ -5322,16 +5357,16 @@ KEYWORD1 void KEYWORD2 NAME(PointParameterivNV)(GLenum pname, const GLint * para
DISPATCH(PointParameterivNV, (pname, params), (F, "glPointParameterivNV(0x%x, %p);\n", pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_743)(GLenum face);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_750)(GLenum face);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_743)(GLenum face)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_750)(GLenum face)
{
DISPATCH(ActiveStencilFaceEXT, (face), (F, "glActiveStencilFaceEXT(0x%x);\n", face));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_744)(GLuint array);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_751)(GLuint array);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_744)(GLuint array)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_751)(GLuint array)
{
DISPATCH(BindVertexArrayAPPLE, (array), (F, "glBindVertexArrayAPPLE(%d);\n", array));
}
@@ -5341,16 +5376,16 @@ KEYWORD1 void KEYWORD2 NAME(DeleteVertexArrays)(GLsizei n, const GLuint * arrays
DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArrays(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_745)(GLsizei n, const GLuint * arrays);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_752)(GLsizei n, const GLuint * arrays);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_745)(GLsizei n, const GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_752)(GLsizei n, const GLuint * arrays)
{
DISPATCH(DeleteVertexArraysAPPLE, (n, arrays), (F, "glDeleteVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_746)(GLsizei n, GLuint * arrays);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_753)(GLsizei n, GLuint * arrays);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_746)(GLsizei n, GLuint * arrays)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_753)(GLsizei n, GLuint * arrays)
{
DISPATCH(GenVertexArraysAPPLE, (n, arrays), (F, "glGenVertexArraysAPPLE(%d, %p);\n", n, (const void *) arrays));
}
@@ -5360,9 +5395,9 @@ KEYWORD1 GLboolean KEYWORD2 NAME(IsVertexArray)(GLuint array)
RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArray(%d);\n", array));
}
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_747)(GLuint array);
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_754)(GLuint array);
-KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_747)(GLuint array)
+KEYWORD1_ALT GLboolean KEYWORD2 NAME(_dispatch_stub_754)(GLuint array)
{
RETURN_DISPATCH(IsVertexArrayAPPLE, (array), (F, "glIsVertexArrayAPPLE(%d);\n", array));
}
@@ -5397,9 +5432,9 @@ KEYWORD1 void KEYWORD2 NAME(ProgramNamedParameter4fvNV)(GLuint id, GLsizei len,
DISPATCH(ProgramNamedParameter4fvNV, (id, len, name, v), (F, "glProgramNamedParameter4fvNV(%d, %d, %p, %p);\n", id, len, (const void *) name, (const void *) v));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_754)(GLclampd zmin, GLclampd zmax);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_761)(GLclampd zmin, GLclampd zmax);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_754)(GLclampd zmin, GLclampd zmax)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_761)(GLclampd zmin, GLclampd zmax)
{
DISPATCH(DepthBoundsEXT, (zmin, zmax), (F, "glDepthBoundsEXT(%f, %f);\n", zmin, zmax));
}
@@ -5409,9 +5444,9 @@ KEYWORD1 void KEYWORD2 NAME(BlendEquationSeparate)(GLenum modeRGB, GLenum modeA)
DISPATCH(BlendEquationSeparateEXT, (modeRGB, modeA), (F, "glBlendEquationSeparate(0x%x, 0x%x);\n", modeRGB, modeA));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLenum modeRGB, GLenum modeA);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_762)(GLenum modeRGB, GLenum modeA);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_755)(GLenum modeRGB, GLenum modeA)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_762)(GLenum modeRGB, GLenum modeA)
{
DISPATCH(BlendEquationSeparateEXT, (modeRGB, modeA), (F, "glBlendEquationSeparateEXT(0x%x, 0x%x);\n", modeRGB, modeA));
}
@@ -5591,23 +5626,23 @@ KEYWORD1 void KEYWORD2 NAME(BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint src
DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebuffer(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_780)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_780)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
DISPATCH(BlitFramebufferEXT, (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter), (F, "glBlitFramebufferEXT(%d, %d, %d, %d, %d, %d, %d, %d, %d, 0x%x);\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum target, GLenum pname, GLint param);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_781)(GLenum target, GLenum pname, GLint param);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum target, GLenum pname, GLint param)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_781)(GLenum target, GLenum pname, GLint param)
{
DISPATCH(BufferParameteriAPPLE, (target, pname, param), (F, "glBufferParameteriAPPLE(0x%x, 0x%x, %d);\n", target, pname, param));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_775)(GLenum target, GLintptr offset, GLsizeiptr size);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_782)(GLenum target, GLintptr offset, GLsizeiptr size);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_775)(GLenum target, GLintptr offset, GLsizeiptr size)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_782)(GLenum target, GLintptr offset, GLsizeiptr size)
{
DISPATCH(FlushMappedBufferRangeAPPLE, (target, offset, size), (F, "glFlushMappedBufferRangeAPPLE(0x%x, %d, %d);\n", target, offset, size));
}
@@ -5627,51 +5662,51 @@ KEYWORD1 void KEYWORD2 NAME(ProvokingVertexEXT)(GLenum mode)
DISPATCH(ProvokingVertexEXT, (mode), (F, "glProvokingVertexEXT(0x%x);\n", mode));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_778)(GLenum target, GLenum pname, GLvoid ** params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLenum target, GLenum pname, GLvoid ** params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_778)(GLenum target, GLenum pname, GLvoid ** params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_785)(GLenum target, GLenum pname, GLvoid ** params)
{
DISPATCH(GetTexParameterPointervAPPLE, (target, pname, params), (F, "glGetTexParameterPointervAPPLE(0x%x, 0x%x, %p);\n", target, pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_779)(GLenum target, GLsizei length, GLvoid * pointer);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_786)(GLenum target, GLsizei length, GLvoid * pointer);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_779)(GLenum target, GLsizei length, GLvoid * pointer)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_786)(GLenum target, GLsizei length, GLvoid * pointer)
{
DISPATCH(TextureRangeAPPLE, (target, length, pointer), (F, "glTextureRangeAPPLE(0x%x, %d, %p);\n", target, length, (const void *) pointer));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_780)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_787)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_780)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_787)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
{
DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_781)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_788)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_781)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_788)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_782)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_789)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_782)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_789)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_783)(GLuint id, GLenum pname, GLint64EXT * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_790)(GLuint id, GLenum pname, GLint64EXT * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_783)(GLuint id, GLenum pname, GLint64EXT * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_790)(GLuint id, GLenum pname, GLint64EXT * params)
{
DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_784)(GLuint id, GLenum pname, GLuint64EXT * params);
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_791)(GLuint id, GLenum pname, GLuint64EXT * params);
-KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_784)(GLuint id, GLenum pname, GLuint64EXT * params)
+KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_791)(GLuint id, GLenum pname, GLuint64EXT * params)
{
DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
@@ -6257,15 +6292,22 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(BindVertexArray),
TABLE_ENTRY(GenVertexArrays),
TABLE_ENTRY(CopyBufferSubData),
+ TABLE_ENTRY(ClientWaitSync),
+ TABLE_ENTRY(DeleteSync),
+ TABLE_ENTRY(FenceSync),
+ TABLE_ENTRY(GetInteger64v),
+ TABLE_ENTRY(GetSynciv),
+ TABLE_ENTRY(IsSync),
+ TABLE_ENTRY(WaitSync),
TABLE_ENTRY(PolygonOffsetEXT),
- TABLE_ENTRY(_dispatch_stub_568),
- TABLE_ENTRY(_dispatch_stub_569),
- TABLE_ENTRY(_dispatch_stub_570),
- TABLE_ENTRY(_dispatch_stub_571),
- TABLE_ENTRY(_dispatch_stub_572),
- TABLE_ENTRY(_dispatch_stub_573),
- TABLE_ENTRY(_dispatch_stub_574),
TABLE_ENTRY(_dispatch_stub_575),
+ TABLE_ENTRY(_dispatch_stub_576),
+ TABLE_ENTRY(_dispatch_stub_577),
+ TABLE_ENTRY(_dispatch_stub_578),
+ TABLE_ENTRY(_dispatch_stub_579),
+ TABLE_ENTRY(_dispatch_stub_580),
+ TABLE_ENTRY(_dispatch_stub_581),
+ TABLE_ENTRY(_dispatch_stub_582),
TABLE_ENTRY(ColorPointerEXT),
TABLE_ENTRY(EdgeFlagPointerEXT),
TABLE_ENTRY(IndexPointerEXT),
@@ -6276,8 +6318,8 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(PointParameterfvEXT),
TABLE_ENTRY(LockArraysEXT),
TABLE_ENTRY(UnlockArraysEXT),
- TABLE_ENTRY(_dispatch_stub_586),
- TABLE_ENTRY(_dispatch_stub_587),
+ TABLE_ENTRY(_dispatch_stub_593),
+ TABLE_ENTRY(_dispatch_stub_594),
TABLE_ENTRY(SecondaryColor3bEXT),
TABLE_ENTRY(SecondaryColor3bvEXT),
TABLE_ENTRY(SecondaryColor3dEXT),
@@ -6302,7 +6344,7 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(FogCoorddvEXT),
TABLE_ENTRY(FogCoordfEXT),
TABLE_ENTRY(FogCoordfvEXT),
- TABLE_ENTRY(_dispatch_stub_612),
+ TABLE_ENTRY(_dispatch_stub_619),
TABLE_ENTRY(BlendFuncSeparateEXT),
TABLE_ENTRY(FlushVertexArrayRangeNV),
TABLE_ENTRY(VertexArrayRangeNV),
@@ -6344,15 +6386,15 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(WindowPos4ivMESA),
TABLE_ENTRY(WindowPos4sMESA),
TABLE_ENTRY(WindowPos4svMESA),
- TABLE_ENTRY(_dispatch_stub_654),
- TABLE_ENTRY(_dispatch_stub_655),
- TABLE_ENTRY(_dispatch_stub_656),
- TABLE_ENTRY(_dispatch_stub_657),
- TABLE_ENTRY(_dispatch_stub_658),
- TABLE_ENTRY(_dispatch_stub_659),
- TABLE_ENTRY(_dispatch_stub_660),
TABLE_ENTRY(_dispatch_stub_661),
TABLE_ENTRY(_dispatch_stub_662),
+ TABLE_ENTRY(_dispatch_stub_663),
+ TABLE_ENTRY(_dispatch_stub_664),
+ TABLE_ENTRY(_dispatch_stub_665),
+ TABLE_ENTRY(_dispatch_stub_666),
+ TABLE_ENTRY(_dispatch_stub_667),
+ TABLE_ENTRY(_dispatch_stub_668),
+ TABLE_ENTRY(_dispatch_stub_669),
TABLE_ENTRY(AreProgramsResidentNV),
TABLE_ENTRY(BindProgramNV),
TABLE_ENTRY(DeleteProgramsNV),
@@ -6433,19 +6475,19 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(SetFragmentShaderConstantATI),
TABLE_ENTRY(PointParameteriNV),
TABLE_ENTRY(PointParameterivNV),
- TABLE_ENTRY(_dispatch_stub_743),
- TABLE_ENTRY(_dispatch_stub_744),
- TABLE_ENTRY(_dispatch_stub_745),
- TABLE_ENTRY(_dispatch_stub_746),
- TABLE_ENTRY(_dispatch_stub_747),
+ TABLE_ENTRY(_dispatch_stub_750),
+ TABLE_ENTRY(_dispatch_stub_751),
+ TABLE_ENTRY(_dispatch_stub_752),
+ TABLE_ENTRY(_dispatch_stub_753),
+ TABLE_ENTRY(_dispatch_stub_754),
TABLE_ENTRY(GetProgramNamedParameterdvNV),
TABLE_ENTRY(GetProgramNamedParameterfvNV),
TABLE_ENTRY(ProgramNamedParameter4dNV),
TABLE_ENTRY(ProgramNamedParameter4dvNV),
TABLE_ENTRY(ProgramNamedParameter4fNV),
TABLE_ENTRY(ProgramNamedParameter4fvNV),
- TABLE_ENTRY(_dispatch_stub_754),
- TABLE_ENTRY(_dispatch_stub_755),
+ TABLE_ENTRY(_dispatch_stub_761),
+ TABLE_ENTRY(_dispatch_stub_762),
TABLE_ENTRY(BindFramebufferEXT),
TABLE_ENTRY(BindRenderbufferEXT),
TABLE_ENTRY(CheckFramebufferStatusEXT),
@@ -6463,18 +6505,18 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(IsFramebufferEXT),
TABLE_ENTRY(IsRenderbufferEXT),
TABLE_ENTRY(RenderbufferStorageEXT),
- TABLE_ENTRY(_dispatch_stub_773),
- TABLE_ENTRY(_dispatch_stub_774),
- TABLE_ENTRY(_dispatch_stub_775),
- TABLE_ENTRY(FramebufferTextureLayerEXT),
- TABLE_ENTRY(ProvokingVertexEXT),
- TABLE_ENTRY(_dispatch_stub_778),
- TABLE_ENTRY(_dispatch_stub_779),
TABLE_ENTRY(_dispatch_stub_780),
TABLE_ENTRY(_dispatch_stub_781),
TABLE_ENTRY(_dispatch_stub_782),
- TABLE_ENTRY(_dispatch_stub_783),
- TABLE_ENTRY(_dispatch_stub_784),
+ TABLE_ENTRY(FramebufferTextureLayerEXT),
+ TABLE_ENTRY(ProvokingVertexEXT),
+ TABLE_ENTRY(_dispatch_stub_785),
+ TABLE_ENTRY(_dispatch_stub_786),
+ TABLE_ENTRY(_dispatch_stub_787),
+ TABLE_ENTRY(_dispatch_stub_788),
+ TABLE_ENTRY(_dispatch_stub_789),
+ TABLE_ENTRY(_dispatch_stub_790),
+ TABLE_ENTRY(_dispatch_stub_791),
/* A whole bunch of no-op functions. These might be called
* when someone tries to call a dynamically-registered
* extension function without a current rendering context.
diff --git a/src/mesa/glapi/glprocs.h b/src/mesa/glapi/glprocs.h
index 21e96a93251..ae6603262e5 100644
--- a/src/mesa/glapi/glprocs.h
+++ b/src/mesa/glapi/glprocs.h
@@ -619,6 +619,13 @@ static const char gl_string_table[] =
"glBindVertexArray\0"
"glGenVertexArrays\0"
"glCopyBufferSubData\0"
+ "glClientWaitSync\0"
+ "glDeleteSync\0"
+ "glFenceSync\0"
+ "glGetInteger64v\0"
+ "glGetSynciv\0"
+ "glIsSync\0"
+ "glWaitSync\0"
"glPolygonOffsetEXT\0"
"glGetPixelTexGenParameterfvSGIS\0"
"glGetPixelTexGenParameterivSGIS\0"
@@ -1154,43 +1161,43 @@ static const char gl_string_table[] =
#define gl_dispatch_stub_364 mgl_dispatch_stub_364
#define gl_dispatch_stub_365 mgl_dispatch_stub_365
#define gl_dispatch_stub_366 mgl_dispatch_stub_366
-#define gl_dispatch_stub_568 mgl_dispatch_stub_568
-#define gl_dispatch_stub_569 mgl_dispatch_stub_569
-#define gl_dispatch_stub_570 mgl_dispatch_stub_570
-#define gl_dispatch_stub_571 mgl_dispatch_stub_571
-#define gl_dispatch_stub_572 mgl_dispatch_stub_572
-#define gl_dispatch_stub_573 mgl_dispatch_stub_573
-#define gl_dispatch_stub_574 mgl_dispatch_stub_574
#define gl_dispatch_stub_575 mgl_dispatch_stub_575
-#define gl_dispatch_stub_586 mgl_dispatch_stub_586
-#define gl_dispatch_stub_587 mgl_dispatch_stub_587
-#define gl_dispatch_stub_612 mgl_dispatch_stub_612
-#define gl_dispatch_stub_654 mgl_dispatch_stub_654
-#define gl_dispatch_stub_655 mgl_dispatch_stub_655
-#define gl_dispatch_stub_656 mgl_dispatch_stub_656
-#define gl_dispatch_stub_657 mgl_dispatch_stub_657
-#define gl_dispatch_stub_658 mgl_dispatch_stub_658
-#define gl_dispatch_stub_659 mgl_dispatch_stub_659
-#define gl_dispatch_stub_660 mgl_dispatch_stub_660
+#define gl_dispatch_stub_576 mgl_dispatch_stub_576
+#define gl_dispatch_stub_577 mgl_dispatch_stub_577
+#define gl_dispatch_stub_578 mgl_dispatch_stub_578
+#define gl_dispatch_stub_579 mgl_dispatch_stub_579
+#define gl_dispatch_stub_580 mgl_dispatch_stub_580
+#define gl_dispatch_stub_581 mgl_dispatch_stub_581
+#define gl_dispatch_stub_582 mgl_dispatch_stub_582
+#define gl_dispatch_stub_593 mgl_dispatch_stub_593
+#define gl_dispatch_stub_594 mgl_dispatch_stub_594
+#define gl_dispatch_stub_619 mgl_dispatch_stub_619
#define gl_dispatch_stub_661 mgl_dispatch_stub_661
#define gl_dispatch_stub_662 mgl_dispatch_stub_662
-#define gl_dispatch_stub_743 mgl_dispatch_stub_743
-#define gl_dispatch_stub_744 mgl_dispatch_stub_744
-#define gl_dispatch_stub_745 mgl_dispatch_stub_745
-#define gl_dispatch_stub_746 mgl_dispatch_stub_746
-#define gl_dispatch_stub_747 mgl_dispatch_stub_747
+#define gl_dispatch_stub_663 mgl_dispatch_stub_663
+#define gl_dispatch_stub_664 mgl_dispatch_stub_664
+#define gl_dispatch_stub_665 mgl_dispatch_stub_665
+#define gl_dispatch_stub_666 mgl_dispatch_stub_666
+#define gl_dispatch_stub_667 mgl_dispatch_stub_667
+#define gl_dispatch_stub_668 mgl_dispatch_stub_668
+#define gl_dispatch_stub_669 mgl_dispatch_stub_669
+#define gl_dispatch_stub_750 mgl_dispatch_stub_750
+#define gl_dispatch_stub_751 mgl_dispatch_stub_751
+#define gl_dispatch_stub_752 mgl_dispatch_stub_752
+#define gl_dispatch_stub_753 mgl_dispatch_stub_753
#define gl_dispatch_stub_754 mgl_dispatch_stub_754
-#define gl_dispatch_stub_755 mgl_dispatch_stub_755
-#define gl_dispatch_stub_773 mgl_dispatch_stub_773
-#define gl_dispatch_stub_774 mgl_dispatch_stub_774
-#define gl_dispatch_stub_775 mgl_dispatch_stub_775
-#define gl_dispatch_stub_778 mgl_dispatch_stub_778
-#define gl_dispatch_stub_779 mgl_dispatch_stub_779
+#define gl_dispatch_stub_761 mgl_dispatch_stub_761
+#define gl_dispatch_stub_762 mgl_dispatch_stub_762
#define gl_dispatch_stub_780 mgl_dispatch_stub_780
#define gl_dispatch_stub_781 mgl_dispatch_stub_781
#define gl_dispatch_stub_782 mgl_dispatch_stub_782
-#define gl_dispatch_stub_783 mgl_dispatch_stub_783
-#define gl_dispatch_stub_784 mgl_dispatch_stub_784
+#define gl_dispatch_stub_785 mgl_dispatch_stub_785
+#define gl_dispatch_stub_786 mgl_dispatch_stub_786
+#define gl_dispatch_stub_787 mgl_dispatch_stub_787
+#define gl_dispatch_stub_788 mgl_dispatch_stub_788
+#define gl_dispatch_stub_789 mgl_dispatch_stub_789
+#define gl_dispatch_stub_790 mgl_dispatch_stub_790
+#define gl_dispatch_stub_791 mgl_dispatch_stub_791
#endif /* USE_MGL_NAMESPACE */
@@ -1208,43 +1215,43 @@ void GLAPIENTRY gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params
void GLAPIENTRY gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values);
void GLAPIENTRY gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params);
void GLAPIENTRY gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params);
-void GLAPIENTRY gl_dispatch_stub_568(GLenum pname, GLfloat * params);
-void GLAPIENTRY gl_dispatch_stub_569(GLenum pname, GLint * params);
-void GLAPIENTRY gl_dispatch_stub_570(GLenum pname, GLfloat param);
-void GLAPIENTRY gl_dispatch_stub_571(GLenum pname, const GLfloat * params);
-void GLAPIENTRY gl_dispatch_stub_572(GLenum pname, GLint param);
-void GLAPIENTRY gl_dispatch_stub_573(GLenum pname, const GLint * params);
-void GLAPIENTRY gl_dispatch_stub_574(GLclampf value, GLboolean invert);
-void GLAPIENTRY gl_dispatch_stub_575(GLenum pattern);
-void GLAPIENTRY gl_dispatch_stub_586(GLenum pname, GLdouble * params);
-void GLAPIENTRY gl_dispatch_stub_587(GLenum pname, GLfloat * params);
-void GLAPIENTRY gl_dispatch_stub_612(GLenum mode);
-void GLAPIENTRY gl_dispatch_stub_654(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
-void GLAPIENTRY gl_dispatch_stub_655(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride);
-void GLAPIENTRY gl_dispatch_stub_656(GLsizei n, const GLuint * fences);
-void GLAPIENTRY gl_dispatch_stub_657(GLuint fence);
-void GLAPIENTRY gl_dispatch_stub_658(GLsizei n, GLuint * fences);
-void GLAPIENTRY gl_dispatch_stub_659(GLuint fence, GLenum pname, GLint * params);
-GLboolean GLAPIENTRY gl_dispatch_stub_660(GLuint fence);
-void GLAPIENTRY gl_dispatch_stub_661(GLuint fence, GLenum condition);
-GLboolean GLAPIENTRY gl_dispatch_stub_662(GLuint fence);
-void GLAPIENTRY gl_dispatch_stub_743(GLenum face);
-void GLAPIENTRY gl_dispatch_stub_744(GLuint array);
-void GLAPIENTRY gl_dispatch_stub_745(GLsizei n, const GLuint * arrays);
-void GLAPIENTRY gl_dispatch_stub_746(GLsizei n, GLuint * arrays);
-GLboolean GLAPIENTRY gl_dispatch_stub_747(GLuint array);
-void GLAPIENTRY gl_dispatch_stub_754(GLclampd zmin, GLclampd zmax);
-void GLAPIENTRY gl_dispatch_stub_755(GLenum modeRGB, GLenum modeA);
-void GLAPIENTRY gl_dispatch_stub_773(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-void GLAPIENTRY gl_dispatch_stub_774(GLenum target, GLenum pname, GLint param);
-void GLAPIENTRY gl_dispatch_stub_775(GLenum target, GLintptr offset, GLsizeiptr size);
-void GLAPIENTRY gl_dispatch_stub_778(GLenum target, GLenum pname, GLvoid ** params);
-void GLAPIENTRY gl_dispatch_stub_779(GLenum target, GLsizei length, GLvoid * pointer);
-void GLAPIENTRY gl_dispatch_stub_780(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-void GLAPIENTRY gl_dispatch_stub_781(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
-void GLAPIENTRY gl_dispatch_stub_782(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
-void GLAPIENTRY gl_dispatch_stub_783(GLuint id, GLenum pname, GLint64EXT * params);
-void GLAPIENTRY gl_dispatch_stub_784(GLuint id, GLenum pname, GLuint64EXT * params);
+void GLAPIENTRY gl_dispatch_stub_575(GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_576(GLenum pname, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_577(GLenum pname, GLfloat param);
+void GLAPIENTRY gl_dispatch_stub_578(GLenum pname, const GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_579(GLenum pname, GLint param);
+void GLAPIENTRY gl_dispatch_stub_580(GLenum pname, const GLint * params);
+void GLAPIENTRY gl_dispatch_stub_581(GLclampf value, GLboolean invert);
+void GLAPIENTRY gl_dispatch_stub_582(GLenum pattern);
+void GLAPIENTRY gl_dispatch_stub_593(GLenum pname, GLdouble * params);
+void GLAPIENTRY gl_dispatch_stub_594(GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_619(GLenum mode);
+void GLAPIENTRY gl_dispatch_stub_661(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
+void GLAPIENTRY gl_dispatch_stub_662(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride);
+void GLAPIENTRY gl_dispatch_stub_663(GLsizei n, const GLuint * fences);
+void GLAPIENTRY gl_dispatch_stub_664(GLuint fence);
+void GLAPIENTRY gl_dispatch_stub_665(GLsizei n, GLuint * fences);
+void GLAPIENTRY gl_dispatch_stub_666(GLuint fence, GLenum pname, GLint * params);
+GLboolean GLAPIENTRY gl_dispatch_stub_667(GLuint fence);
+void GLAPIENTRY gl_dispatch_stub_668(GLuint fence, GLenum condition);
+GLboolean GLAPIENTRY gl_dispatch_stub_669(GLuint fence);
+void GLAPIENTRY gl_dispatch_stub_750(GLenum face);
+void GLAPIENTRY gl_dispatch_stub_751(GLuint array);
+void GLAPIENTRY gl_dispatch_stub_752(GLsizei n, const GLuint * arrays);
+void GLAPIENTRY gl_dispatch_stub_753(GLsizei n, GLuint * arrays);
+GLboolean GLAPIENTRY gl_dispatch_stub_754(GLuint array);
+void GLAPIENTRY gl_dispatch_stub_761(GLclampd zmin, GLclampd zmax);
+void GLAPIENTRY gl_dispatch_stub_762(GLenum modeRGB, GLenum modeA);
+void GLAPIENTRY gl_dispatch_stub_780(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void GLAPIENTRY gl_dispatch_stub_781(GLenum target, GLenum pname, GLint param);
+void GLAPIENTRY gl_dispatch_stub_782(GLenum target, GLintptr offset, GLsizeiptr size);
+void GLAPIENTRY gl_dispatch_stub_785(GLenum target, GLenum pname, GLvoid ** params);
+void GLAPIENTRY gl_dispatch_stub_786(GLenum target, GLsizei length, GLvoid * pointer);
+void GLAPIENTRY gl_dispatch_stub_787(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+void GLAPIENTRY gl_dispatch_stub_788(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_789(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_790(GLuint id, GLenum pname, GLint64EXT * params);
+void GLAPIENTRY gl_dispatch_stub_791(GLuint id, GLenum pname, GLuint64EXT * params);
#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */
static const glprocs_table_t static_functions[] = {
@@ -1815,524 +1822,531 @@ static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET( 9026, glBindVertexArray, glBindVertexArray, NULL, _gloffset_BindVertexArray),
NAME_FUNC_OFFSET( 9044, glGenVertexArrays, glGenVertexArrays, NULL, _gloffset_GenVertexArrays),
NAME_FUNC_OFFSET( 9062, glCopyBufferSubData, glCopyBufferSubData, NULL, _gloffset_CopyBufferSubData),
- NAME_FUNC_OFFSET( 9082, glPolygonOffsetEXT, glPolygonOffsetEXT, NULL, _gloffset_PolygonOffsetEXT),
- NAME_FUNC_OFFSET( 9101, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_GetPixelTexGenParameterfvSGIS),
- NAME_FUNC_OFFSET( 9133, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_GetPixelTexGenParameterivSGIS),
- NAME_FUNC_OFFSET( 9165, gl_dispatch_stub_570, gl_dispatch_stub_570, NULL, _gloffset_PixelTexGenParameterfSGIS),
- NAME_FUNC_OFFSET( 9193, gl_dispatch_stub_571, gl_dispatch_stub_571, NULL, _gloffset_PixelTexGenParameterfvSGIS),
- NAME_FUNC_OFFSET( 9222, gl_dispatch_stub_572, gl_dispatch_stub_572, NULL, _gloffset_PixelTexGenParameteriSGIS),
- NAME_FUNC_OFFSET( 9250, gl_dispatch_stub_573, gl_dispatch_stub_573, NULL, _gloffset_PixelTexGenParameterivSGIS),
- NAME_FUNC_OFFSET( 9279, gl_dispatch_stub_574, gl_dispatch_stub_574, NULL, _gloffset_SampleMaskSGIS),
- NAME_FUNC_OFFSET( 9296, gl_dispatch_stub_575, gl_dispatch_stub_575, NULL, _gloffset_SamplePatternSGIS),
- NAME_FUNC_OFFSET( 9316, glColorPointerEXT, glColorPointerEXT, NULL, _gloffset_ColorPointerEXT),
- NAME_FUNC_OFFSET( 9334, glEdgeFlagPointerEXT, glEdgeFlagPointerEXT, NULL, _gloffset_EdgeFlagPointerEXT),
- NAME_FUNC_OFFSET( 9355, glIndexPointerEXT, glIndexPointerEXT, NULL, _gloffset_IndexPointerEXT),
- NAME_FUNC_OFFSET( 9373, glNormalPointerEXT, glNormalPointerEXT, NULL, _gloffset_NormalPointerEXT),
- NAME_FUNC_OFFSET( 9392, glTexCoordPointerEXT, glTexCoordPointerEXT, NULL, _gloffset_TexCoordPointerEXT),
- NAME_FUNC_OFFSET( 9413, glVertexPointerEXT, glVertexPointerEXT, NULL, _gloffset_VertexPointerEXT),
- NAME_FUNC_OFFSET( 9432, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET( 9453, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET( 9475, glLockArraysEXT, glLockArraysEXT, NULL, _gloffset_LockArraysEXT),
- NAME_FUNC_OFFSET( 9491, glUnlockArraysEXT, glUnlockArraysEXT, NULL, _gloffset_UnlockArraysEXT),
- NAME_FUNC_OFFSET( 9509, gl_dispatch_stub_586, gl_dispatch_stub_586, NULL, _gloffset_CullParameterdvEXT),
- NAME_FUNC_OFFSET( 9530, gl_dispatch_stub_587, gl_dispatch_stub_587, NULL, _gloffset_CullParameterfvEXT),
- NAME_FUNC_OFFSET( 9551, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
- NAME_FUNC_OFFSET( 9573, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
- NAME_FUNC_OFFSET( 9596, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
- NAME_FUNC_OFFSET( 9618, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
- NAME_FUNC_OFFSET( 9641, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
- NAME_FUNC_OFFSET( 9663, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
- NAME_FUNC_OFFSET( 9686, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
- NAME_FUNC_OFFSET( 9708, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
- NAME_FUNC_OFFSET( 9731, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
- NAME_FUNC_OFFSET( 9753, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
- NAME_FUNC_OFFSET( 9776, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
- NAME_FUNC_OFFSET( 9799, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
- NAME_FUNC_OFFSET( 9823, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
- NAME_FUNC_OFFSET( 9846, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
- NAME_FUNC_OFFSET( 9870, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
- NAME_FUNC_OFFSET( 9893, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
- NAME_FUNC_OFFSET( 9917, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
- NAME_FUNC_OFFSET( 9944, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
- NAME_FUNC_OFFSET( 9965, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
- NAME_FUNC_OFFSET( 9988, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
- NAME_FUNC_OFFSET(10009, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
- NAME_FUNC_OFFSET(10024, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
- NAME_FUNC_OFFSET(10040, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
- NAME_FUNC_OFFSET(10055, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
- NAME_FUNC_OFFSET(10071, gl_dispatch_stub_612, gl_dispatch_stub_612, NULL, _gloffset_PixelTexGenSGIX),
- NAME_FUNC_OFFSET(10089, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
- NAME_FUNC_OFFSET(10112, glFlushVertexArrayRangeNV, glFlushVertexArrayRangeNV, NULL, _gloffset_FlushVertexArrayRangeNV),
- NAME_FUNC_OFFSET(10138, glVertexArrayRangeNV, glVertexArrayRangeNV, NULL, _gloffset_VertexArrayRangeNV),
- NAME_FUNC_OFFSET(10159, glCombinerInputNV, glCombinerInputNV, NULL, _gloffset_CombinerInputNV),
- NAME_FUNC_OFFSET(10177, glCombinerOutputNV, glCombinerOutputNV, NULL, _gloffset_CombinerOutputNV),
- NAME_FUNC_OFFSET(10196, glCombinerParameterfNV, glCombinerParameterfNV, NULL, _gloffset_CombinerParameterfNV),
- NAME_FUNC_OFFSET(10219, glCombinerParameterfvNV, glCombinerParameterfvNV, NULL, _gloffset_CombinerParameterfvNV),
- NAME_FUNC_OFFSET(10243, glCombinerParameteriNV, glCombinerParameteriNV, NULL, _gloffset_CombinerParameteriNV),
- NAME_FUNC_OFFSET(10266, glCombinerParameterivNV, glCombinerParameterivNV, NULL, _gloffset_CombinerParameterivNV),
- NAME_FUNC_OFFSET(10290, glFinalCombinerInputNV, glFinalCombinerInputNV, NULL, _gloffset_FinalCombinerInputNV),
- NAME_FUNC_OFFSET(10313, glGetCombinerInputParameterfvNV, glGetCombinerInputParameterfvNV, NULL, _gloffset_GetCombinerInputParameterfvNV),
- NAME_FUNC_OFFSET(10345, glGetCombinerInputParameterivNV, glGetCombinerInputParameterivNV, NULL, _gloffset_GetCombinerInputParameterivNV),
- NAME_FUNC_OFFSET(10377, glGetCombinerOutputParameterfvNV, glGetCombinerOutputParameterfvNV, NULL, _gloffset_GetCombinerOutputParameterfvNV),
- NAME_FUNC_OFFSET(10410, glGetCombinerOutputParameterivNV, glGetCombinerOutputParameterivNV, NULL, _gloffset_GetCombinerOutputParameterivNV),
- NAME_FUNC_OFFSET(10443, glGetFinalCombinerInputParameterfvNV, glGetFinalCombinerInputParameterfvNV, NULL, _gloffset_GetFinalCombinerInputParameterfvNV),
- NAME_FUNC_OFFSET(10480, glGetFinalCombinerInputParameterivNV, glGetFinalCombinerInputParameterivNV, NULL, _gloffset_GetFinalCombinerInputParameterivNV),
- NAME_FUNC_OFFSET(10517, glResizeBuffersMESA, glResizeBuffersMESA, NULL, _gloffset_ResizeBuffersMESA),
- NAME_FUNC_OFFSET(10537, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
- NAME_FUNC_OFFSET(10555, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
- NAME_FUNC_OFFSET(10574, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
- NAME_FUNC_OFFSET(10592, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
- NAME_FUNC_OFFSET(10611, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
- NAME_FUNC_OFFSET(10629, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
- NAME_FUNC_OFFSET(10648, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
- NAME_FUNC_OFFSET(10666, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
- NAME_FUNC_OFFSET(10685, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
- NAME_FUNC_OFFSET(10703, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
- NAME_FUNC_OFFSET(10722, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
- NAME_FUNC_OFFSET(10740, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
- NAME_FUNC_OFFSET(10759, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
- NAME_FUNC_OFFSET(10777, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
- NAME_FUNC_OFFSET(10796, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
- NAME_FUNC_OFFSET(10814, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
- NAME_FUNC_OFFSET(10833, glWindowPos4dMESA, glWindowPos4dMESA, NULL, _gloffset_WindowPos4dMESA),
- NAME_FUNC_OFFSET(10851, glWindowPos4dvMESA, glWindowPos4dvMESA, NULL, _gloffset_WindowPos4dvMESA),
- NAME_FUNC_OFFSET(10870, glWindowPos4fMESA, glWindowPos4fMESA, NULL, _gloffset_WindowPos4fMESA),
- NAME_FUNC_OFFSET(10888, glWindowPos4fvMESA, glWindowPos4fvMESA, NULL, _gloffset_WindowPos4fvMESA),
- NAME_FUNC_OFFSET(10907, glWindowPos4iMESA, glWindowPos4iMESA, NULL, _gloffset_WindowPos4iMESA),
- NAME_FUNC_OFFSET(10925, glWindowPos4ivMESA, glWindowPos4ivMESA, NULL, _gloffset_WindowPos4ivMESA),
- NAME_FUNC_OFFSET(10944, glWindowPos4sMESA, glWindowPos4sMESA, NULL, _gloffset_WindowPos4sMESA),
- NAME_FUNC_OFFSET(10962, glWindowPos4svMESA, glWindowPos4svMESA, NULL, _gloffset_WindowPos4svMESA),
- NAME_FUNC_OFFSET(10981, gl_dispatch_stub_654, gl_dispatch_stub_654, NULL, _gloffset_MultiModeDrawArraysIBM),
- NAME_FUNC_OFFSET(11006, gl_dispatch_stub_655, gl_dispatch_stub_655, NULL, _gloffset_MultiModeDrawElementsIBM),
- NAME_FUNC_OFFSET(11033, gl_dispatch_stub_656, gl_dispatch_stub_656, NULL, _gloffset_DeleteFencesNV),
- NAME_FUNC_OFFSET(11050, gl_dispatch_stub_657, gl_dispatch_stub_657, NULL, _gloffset_FinishFenceNV),
- NAME_FUNC_OFFSET(11066, gl_dispatch_stub_658, gl_dispatch_stub_658, NULL, _gloffset_GenFencesNV),
- NAME_FUNC_OFFSET(11080, gl_dispatch_stub_659, gl_dispatch_stub_659, NULL, _gloffset_GetFenceivNV),
- NAME_FUNC_OFFSET(11095, gl_dispatch_stub_660, gl_dispatch_stub_660, NULL, _gloffset_IsFenceNV),
- NAME_FUNC_OFFSET(11107, gl_dispatch_stub_661, gl_dispatch_stub_661, NULL, _gloffset_SetFenceNV),
- NAME_FUNC_OFFSET(11120, gl_dispatch_stub_662, gl_dispatch_stub_662, NULL, _gloffset_TestFenceNV),
- NAME_FUNC_OFFSET(11134, glAreProgramsResidentNV, glAreProgramsResidentNV, NULL, _gloffset_AreProgramsResidentNV),
- NAME_FUNC_OFFSET(11158, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
- NAME_FUNC_OFFSET(11174, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
- NAME_FUNC_OFFSET(11193, glExecuteProgramNV, glExecuteProgramNV, NULL, _gloffset_ExecuteProgramNV),
- NAME_FUNC_OFFSET(11212, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
- NAME_FUNC_OFFSET(11228, glGetProgramParameterdvNV, glGetProgramParameterdvNV, NULL, _gloffset_GetProgramParameterdvNV),
- NAME_FUNC_OFFSET(11254, glGetProgramParameterfvNV, glGetProgramParameterfvNV, NULL, _gloffset_GetProgramParameterfvNV),
- NAME_FUNC_OFFSET(11280, glGetProgramStringNV, glGetProgramStringNV, NULL, _gloffset_GetProgramStringNV),
- NAME_FUNC_OFFSET(11301, glGetProgramivNV, glGetProgramivNV, NULL, _gloffset_GetProgramivNV),
- NAME_FUNC_OFFSET(11318, glGetTrackMatrixivNV, glGetTrackMatrixivNV, NULL, _gloffset_GetTrackMatrixivNV),
- NAME_FUNC_OFFSET(11339, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
- NAME_FUNC_OFFSET(11367, glGetVertexAttribdvNV, glGetVertexAttribdvNV, NULL, _gloffset_GetVertexAttribdvNV),
- NAME_FUNC_OFFSET(11389, glGetVertexAttribfvNV, glGetVertexAttribfvNV, NULL, _gloffset_GetVertexAttribfvNV),
- NAME_FUNC_OFFSET(11411, glGetVertexAttribivNV, glGetVertexAttribivNV, NULL, _gloffset_GetVertexAttribivNV),
- NAME_FUNC_OFFSET(11433, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
- NAME_FUNC_OFFSET(11447, glLoadProgramNV, glLoadProgramNV, NULL, _gloffset_LoadProgramNV),
- NAME_FUNC_OFFSET(11463, glProgramParameters4dvNV, glProgramParameters4dvNV, NULL, _gloffset_ProgramParameters4dvNV),
- NAME_FUNC_OFFSET(11488, glProgramParameters4fvNV, glProgramParameters4fvNV, NULL, _gloffset_ProgramParameters4fvNV),
- NAME_FUNC_OFFSET(11513, glRequestResidentProgramsNV, glRequestResidentProgramsNV, NULL, _gloffset_RequestResidentProgramsNV),
- NAME_FUNC_OFFSET(11541, glTrackMatrixNV, glTrackMatrixNV, NULL, _gloffset_TrackMatrixNV),
- NAME_FUNC_OFFSET(11557, glVertexAttrib1dNV, glVertexAttrib1dNV, NULL, _gloffset_VertexAttrib1dNV),
- NAME_FUNC_OFFSET(11576, glVertexAttrib1dvNV, glVertexAttrib1dvNV, NULL, _gloffset_VertexAttrib1dvNV),
- NAME_FUNC_OFFSET(11596, glVertexAttrib1fNV, glVertexAttrib1fNV, NULL, _gloffset_VertexAttrib1fNV),
- NAME_FUNC_OFFSET(11615, glVertexAttrib1fvNV, glVertexAttrib1fvNV, NULL, _gloffset_VertexAttrib1fvNV),
- NAME_FUNC_OFFSET(11635, glVertexAttrib1sNV, glVertexAttrib1sNV, NULL, _gloffset_VertexAttrib1sNV),
- NAME_FUNC_OFFSET(11654, glVertexAttrib1svNV, glVertexAttrib1svNV, NULL, _gloffset_VertexAttrib1svNV),
- NAME_FUNC_OFFSET(11674, glVertexAttrib2dNV, glVertexAttrib2dNV, NULL, _gloffset_VertexAttrib2dNV),
- NAME_FUNC_OFFSET(11693, glVertexAttrib2dvNV, glVertexAttrib2dvNV, NULL, _gloffset_VertexAttrib2dvNV),
- NAME_FUNC_OFFSET(11713, glVertexAttrib2fNV, glVertexAttrib2fNV, NULL, _gloffset_VertexAttrib2fNV),
- NAME_FUNC_OFFSET(11732, glVertexAttrib2fvNV, glVertexAttrib2fvNV, NULL, _gloffset_VertexAttrib2fvNV),
- NAME_FUNC_OFFSET(11752, glVertexAttrib2sNV, glVertexAttrib2sNV, NULL, _gloffset_VertexAttrib2sNV),
- NAME_FUNC_OFFSET(11771, glVertexAttrib2svNV, glVertexAttrib2svNV, NULL, _gloffset_VertexAttrib2svNV),
- NAME_FUNC_OFFSET(11791, glVertexAttrib3dNV, glVertexAttrib3dNV, NULL, _gloffset_VertexAttrib3dNV),
- NAME_FUNC_OFFSET(11810, glVertexAttrib3dvNV, glVertexAttrib3dvNV, NULL, _gloffset_VertexAttrib3dvNV),
- NAME_FUNC_OFFSET(11830, glVertexAttrib3fNV, glVertexAttrib3fNV, NULL, _gloffset_VertexAttrib3fNV),
- NAME_FUNC_OFFSET(11849, glVertexAttrib3fvNV, glVertexAttrib3fvNV, NULL, _gloffset_VertexAttrib3fvNV),
- NAME_FUNC_OFFSET(11869, glVertexAttrib3sNV, glVertexAttrib3sNV, NULL, _gloffset_VertexAttrib3sNV),
- NAME_FUNC_OFFSET(11888, glVertexAttrib3svNV, glVertexAttrib3svNV, NULL, _gloffset_VertexAttrib3svNV),
- NAME_FUNC_OFFSET(11908, glVertexAttrib4dNV, glVertexAttrib4dNV, NULL, _gloffset_VertexAttrib4dNV),
- NAME_FUNC_OFFSET(11927, glVertexAttrib4dvNV, glVertexAttrib4dvNV, NULL, _gloffset_VertexAttrib4dvNV),
- NAME_FUNC_OFFSET(11947, glVertexAttrib4fNV, glVertexAttrib4fNV, NULL, _gloffset_VertexAttrib4fNV),
- NAME_FUNC_OFFSET(11966, glVertexAttrib4fvNV, glVertexAttrib4fvNV, NULL, _gloffset_VertexAttrib4fvNV),
- NAME_FUNC_OFFSET(11986, glVertexAttrib4sNV, glVertexAttrib4sNV, NULL, _gloffset_VertexAttrib4sNV),
- NAME_FUNC_OFFSET(12005, glVertexAttrib4svNV, glVertexAttrib4svNV, NULL, _gloffset_VertexAttrib4svNV),
- NAME_FUNC_OFFSET(12025, glVertexAttrib4ubNV, glVertexAttrib4ubNV, NULL, _gloffset_VertexAttrib4ubNV),
- NAME_FUNC_OFFSET(12045, glVertexAttrib4ubvNV, glVertexAttrib4ubvNV, NULL, _gloffset_VertexAttrib4ubvNV),
- NAME_FUNC_OFFSET(12066, glVertexAttribPointerNV, glVertexAttribPointerNV, NULL, _gloffset_VertexAttribPointerNV),
- NAME_FUNC_OFFSET(12090, glVertexAttribs1dvNV, glVertexAttribs1dvNV, NULL, _gloffset_VertexAttribs1dvNV),
- NAME_FUNC_OFFSET(12111, glVertexAttribs1fvNV, glVertexAttribs1fvNV, NULL, _gloffset_VertexAttribs1fvNV),
- NAME_FUNC_OFFSET(12132, glVertexAttribs1svNV, glVertexAttribs1svNV, NULL, _gloffset_VertexAttribs1svNV),
- NAME_FUNC_OFFSET(12153, glVertexAttribs2dvNV, glVertexAttribs2dvNV, NULL, _gloffset_VertexAttribs2dvNV),
- NAME_FUNC_OFFSET(12174, glVertexAttribs2fvNV, glVertexAttribs2fvNV, NULL, _gloffset_VertexAttribs2fvNV),
- NAME_FUNC_OFFSET(12195, glVertexAttribs2svNV, glVertexAttribs2svNV, NULL, _gloffset_VertexAttribs2svNV),
- NAME_FUNC_OFFSET(12216, glVertexAttribs3dvNV, glVertexAttribs3dvNV, NULL, _gloffset_VertexAttribs3dvNV),
- NAME_FUNC_OFFSET(12237, glVertexAttribs3fvNV, glVertexAttribs3fvNV, NULL, _gloffset_VertexAttribs3fvNV),
- NAME_FUNC_OFFSET(12258, glVertexAttribs3svNV, glVertexAttribs3svNV, NULL, _gloffset_VertexAttribs3svNV),
- NAME_FUNC_OFFSET(12279, glVertexAttribs4dvNV, glVertexAttribs4dvNV, NULL, _gloffset_VertexAttribs4dvNV),
- NAME_FUNC_OFFSET(12300, glVertexAttribs4fvNV, glVertexAttribs4fvNV, NULL, _gloffset_VertexAttribs4fvNV),
- NAME_FUNC_OFFSET(12321, glVertexAttribs4svNV, glVertexAttribs4svNV, NULL, _gloffset_VertexAttribs4svNV),
- NAME_FUNC_OFFSET(12342, glVertexAttribs4ubvNV, glVertexAttribs4ubvNV, NULL, _gloffset_VertexAttribs4ubvNV),
- NAME_FUNC_OFFSET(12364, glGetTexBumpParameterfvATI, glGetTexBumpParameterfvATI, NULL, _gloffset_GetTexBumpParameterfvATI),
- NAME_FUNC_OFFSET(12391, glGetTexBumpParameterivATI, glGetTexBumpParameterivATI, NULL, _gloffset_GetTexBumpParameterivATI),
- NAME_FUNC_OFFSET(12418, glTexBumpParameterfvATI, glTexBumpParameterfvATI, NULL, _gloffset_TexBumpParameterfvATI),
- NAME_FUNC_OFFSET(12442, glTexBumpParameterivATI, glTexBumpParameterivATI, NULL, _gloffset_TexBumpParameterivATI),
- NAME_FUNC_OFFSET(12466, glAlphaFragmentOp1ATI, glAlphaFragmentOp1ATI, NULL, _gloffset_AlphaFragmentOp1ATI),
- NAME_FUNC_OFFSET(12488, glAlphaFragmentOp2ATI, glAlphaFragmentOp2ATI, NULL, _gloffset_AlphaFragmentOp2ATI),
- NAME_FUNC_OFFSET(12510, glAlphaFragmentOp3ATI, glAlphaFragmentOp3ATI, NULL, _gloffset_AlphaFragmentOp3ATI),
- NAME_FUNC_OFFSET(12532, glBeginFragmentShaderATI, glBeginFragmentShaderATI, NULL, _gloffset_BeginFragmentShaderATI),
- NAME_FUNC_OFFSET(12557, glBindFragmentShaderATI, glBindFragmentShaderATI, NULL, _gloffset_BindFragmentShaderATI),
- NAME_FUNC_OFFSET(12581, glColorFragmentOp1ATI, glColorFragmentOp1ATI, NULL, _gloffset_ColorFragmentOp1ATI),
- NAME_FUNC_OFFSET(12603, glColorFragmentOp2ATI, glColorFragmentOp2ATI, NULL, _gloffset_ColorFragmentOp2ATI),
- NAME_FUNC_OFFSET(12625, glColorFragmentOp3ATI, glColorFragmentOp3ATI, NULL, _gloffset_ColorFragmentOp3ATI),
- NAME_FUNC_OFFSET(12647, glDeleteFragmentShaderATI, glDeleteFragmentShaderATI, NULL, _gloffset_DeleteFragmentShaderATI),
- NAME_FUNC_OFFSET(12673, glEndFragmentShaderATI, glEndFragmentShaderATI, NULL, _gloffset_EndFragmentShaderATI),
- NAME_FUNC_OFFSET(12696, glGenFragmentShadersATI, glGenFragmentShadersATI, NULL, _gloffset_GenFragmentShadersATI),
- NAME_FUNC_OFFSET(12720, glPassTexCoordATI, glPassTexCoordATI, NULL, _gloffset_PassTexCoordATI),
- NAME_FUNC_OFFSET(12738, glSampleMapATI, glSampleMapATI, NULL, _gloffset_SampleMapATI),
- NAME_FUNC_OFFSET(12753, glSetFragmentShaderConstantATI, glSetFragmentShaderConstantATI, NULL, _gloffset_SetFragmentShaderConstantATI),
- NAME_FUNC_OFFSET(12784, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
- NAME_FUNC_OFFSET(12804, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
- NAME_FUNC_OFFSET(12825, gl_dispatch_stub_743, gl_dispatch_stub_743, NULL, _gloffset_ActiveStencilFaceEXT),
- NAME_FUNC_OFFSET(12848, gl_dispatch_stub_744, gl_dispatch_stub_744, NULL, _gloffset_BindVertexArrayAPPLE),
- NAME_FUNC_OFFSET(12871, gl_dispatch_stub_745, gl_dispatch_stub_745, NULL, _gloffset_DeleteVertexArraysAPPLE),
- NAME_FUNC_OFFSET(12897, gl_dispatch_stub_746, gl_dispatch_stub_746, NULL, _gloffset_GenVertexArraysAPPLE),
- NAME_FUNC_OFFSET(12920, gl_dispatch_stub_747, gl_dispatch_stub_747, NULL, _gloffset_IsVertexArrayAPPLE),
- NAME_FUNC_OFFSET(12941, glGetProgramNamedParameterdvNV, glGetProgramNamedParameterdvNV, NULL, _gloffset_GetProgramNamedParameterdvNV),
- NAME_FUNC_OFFSET(12972, glGetProgramNamedParameterfvNV, glGetProgramNamedParameterfvNV, NULL, _gloffset_GetProgramNamedParameterfvNV),
- NAME_FUNC_OFFSET(13003, glProgramNamedParameter4dNV, glProgramNamedParameter4dNV, NULL, _gloffset_ProgramNamedParameter4dNV),
- NAME_FUNC_OFFSET(13031, glProgramNamedParameter4dvNV, glProgramNamedParameter4dvNV, NULL, _gloffset_ProgramNamedParameter4dvNV),
- NAME_FUNC_OFFSET(13060, glProgramNamedParameter4fNV, glProgramNamedParameter4fNV, NULL, _gloffset_ProgramNamedParameter4fNV),
- NAME_FUNC_OFFSET(13088, glProgramNamedParameter4fvNV, glProgramNamedParameter4fvNV, NULL, _gloffset_ProgramNamedParameter4fvNV),
- NAME_FUNC_OFFSET(13117, gl_dispatch_stub_754, gl_dispatch_stub_754, NULL, _gloffset_DepthBoundsEXT),
- NAME_FUNC_OFFSET(13134, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_BlendEquationSeparateEXT),
- NAME_FUNC_OFFSET(13161, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
- NAME_FUNC_OFFSET(13182, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
- NAME_FUNC_OFFSET(13204, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
- NAME_FUNC_OFFSET(13232, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
- NAME_FUNC_OFFSET(13256, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
- NAME_FUNC_OFFSET(13281, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
- NAME_FUNC_OFFSET(13310, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
- NAME_FUNC_OFFSET(13336, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
- NAME_FUNC_OFFSET(13362, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
- NAME_FUNC_OFFSET(13388, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
- NAME_FUNC_OFFSET(13409, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
- NAME_FUNC_OFFSET(13431, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
- NAME_FUNC_OFFSET(13451, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
- NAME_FUNC_OFFSET(13492, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
- NAME_FUNC_OFFSET(13524, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
- NAME_FUNC_OFFSET(13543, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
- NAME_FUNC_OFFSET(13563, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
- NAME_FUNC_OFFSET(13588, gl_dispatch_stub_773, gl_dispatch_stub_773, NULL, _gloffset_BlitFramebufferEXT),
- NAME_FUNC_OFFSET(13609, gl_dispatch_stub_774, gl_dispatch_stub_774, NULL, _gloffset_BufferParameteriAPPLE),
- NAME_FUNC_OFFSET(13633, gl_dispatch_stub_775, gl_dispatch_stub_775, NULL, _gloffset_FlushMappedBufferRangeAPPLE),
- NAME_FUNC_OFFSET(13663, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
- NAME_FUNC_OFFSET(13692, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT),
- NAME_FUNC_OFFSET(13713, gl_dispatch_stub_778, gl_dispatch_stub_778, NULL, _gloffset_GetTexParameterPointervAPPLE),
- NAME_FUNC_OFFSET(13744, gl_dispatch_stub_779, gl_dispatch_stub_779, NULL, _gloffset_TextureRangeAPPLE),
- NAME_FUNC_OFFSET(13764, gl_dispatch_stub_780, gl_dispatch_stub_780, NULL, _gloffset_StencilFuncSeparateATI),
- NAME_FUNC_OFFSET(13789, gl_dispatch_stub_781, gl_dispatch_stub_781, NULL, _gloffset_ProgramEnvParameters4fvEXT),
- NAME_FUNC_OFFSET(13818, gl_dispatch_stub_782, gl_dispatch_stub_782, NULL, _gloffset_ProgramLocalParameters4fvEXT),
- NAME_FUNC_OFFSET(13849, gl_dispatch_stub_783, gl_dispatch_stub_783, NULL, _gloffset_GetQueryObjecti64vEXT),
- NAME_FUNC_OFFSET(13873, gl_dispatch_stub_784, gl_dispatch_stub_784, NULL, _gloffset_GetQueryObjectui64vEXT),
- NAME_FUNC_OFFSET(13898, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
- NAME_FUNC_OFFSET(13916, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
- NAME_FUNC_OFFSET(13933, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
- NAME_FUNC_OFFSET(13949, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
- NAME_FUNC_OFFSET(13974, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
- NAME_FUNC_OFFSET(13994, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
- NAME_FUNC_OFFSET(14014, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
- NAME_FUNC_OFFSET(14037, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
- NAME_FUNC_OFFSET(14060, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
- NAME_FUNC_OFFSET(14080, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
- NAME_FUNC_OFFSET(14097, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
- NAME_FUNC_OFFSET(14114, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
- NAME_FUNC_OFFSET(14129, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
- NAME_FUNC_OFFSET(14153, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
- NAME_FUNC_OFFSET(14172, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
- NAME_FUNC_OFFSET(14191, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
- NAME_FUNC_OFFSET(14207, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
- NAME_FUNC_OFFSET(14226, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
- NAME_FUNC_OFFSET(14249, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
- NAME_FUNC_OFFSET(14265, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
- NAME_FUNC_OFFSET(14281, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
- NAME_FUNC_OFFSET(14308, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
- NAME_FUNC_OFFSET(14335, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
- NAME_FUNC_OFFSET(14355, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
- NAME_FUNC_OFFSET(14374, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
- NAME_FUNC_OFFSET(14393, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
- NAME_FUNC_OFFSET(14423, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
- NAME_FUNC_OFFSET(14453, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
- NAME_FUNC_OFFSET(14483, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
- NAME_FUNC_OFFSET(14513, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
- NAME_FUNC_OFFSET(14532, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
- NAME_FUNC_OFFSET(14555, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
- NAME_FUNC_OFFSET(14580, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
- NAME_FUNC_OFFSET(14605, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
- NAME_FUNC_OFFSET(14632, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
- NAME_FUNC_OFFSET(14660, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
- NAME_FUNC_OFFSET(14687, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
- NAME_FUNC_OFFSET(14715, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
- NAME_FUNC_OFFSET(14744, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
- NAME_FUNC_OFFSET(14773, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
- NAME_FUNC_OFFSET(14799, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
- NAME_FUNC_OFFSET(14830, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
- NAME_FUNC_OFFSET(14861, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
- NAME_FUNC_OFFSET(14885, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
- NAME_FUNC_OFFSET(14908, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
- NAME_FUNC_OFFSET(14926, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
- NAME_FUNC_OFFSET(14955, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
- NAME_FUNC_OFFSET(14984, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
- NAME_FUNC_OFFSET(14999, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
- NAME_FUNC_OFFSET(15025, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
- NAME_FUNC_OFFSET(15051, glHistogram, glHistogram, NULL, _gloffset_Histogram),
- NAME_FUNC_OFFSET(15066, glMinmax, glMinmax, NULL, _gloffset_Minmax),
- NAME_FUNC_OFFSET(15078, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
- NAME_FUNC_OFFSET(15098, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
- NAME_FUNC_OFFSET(15115, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
- NAME_FUNC_OFFSET(15131, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
- NAME_FUNC_OFFSET(15150, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
- NAME_FUNC_OFFSET(15173, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
- NAME_FUNC_OFFSET(15189, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
- NAME_FUNC_OFFSET(15211, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
- NAME_FUNC_OFFSET(15229, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
- NAME_FUNC_OFFSET(15248, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
- NAME_FUNC_OFFSET(15266, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
- NAME_FUNC_OFFSET(15285, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
- NAME_FUNC_OFFSET(15303, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
- NAME_FUNC_OFFSET(15322, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
- NAME_FUNC_OFFSET(15340, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
- NAME_FUNC_OFFSET(15359, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
- NAME_FUNC_OFFSET(15377, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
- NAME_FUNC_OFFSET(15396, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
- NAME_FUNC_OFFSET(15414, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
- NAME_FUNC_OFFSET(15433, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
- NAME_FUNC_OFFSET(15451, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
- NAME_FUNC_OFFSET(15470, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
- NAME_FUNC_OFFSET(15488, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
- NAME_FUNC_OFFSET(15507, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
- NAME_FUNC_OFFSET(15525, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
- NAME_FUNC_OFFSET(15544, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
- NAME_FUNC_OFFSET(15562, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
- NAME_FUNC_OFFSET(15581, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
- NAME_FUNC_OFFSET(15599, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
- NAME_FUNC_OFFSET(15618, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
- NAME_FUNC_OFFSET(15636, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
- NAME_FUNC_OFFSET(15655, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
- NAME_FUNC_OFFSET(15673, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
- NAME_FUNC_OFFSET(15692, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
- NAME_FUNC_OFFSET(15710, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
- NAME_FUNC_OFFSET(15729, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
- NAME_FUNC_OFFSET(15747, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
- NAME_FUNC_OFFSET(15766, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
- NAME_FUNC_OFFSET(15784, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
- NAME_FUNC_OFFSET(15803, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
- NAME_FUNC_OFFSET(15826, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
- NAME_FUNC_OFFSET(15849, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
- NAME_FUNC_OFFSET(15872, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
- NAME_FUNC_OFFSET(15895, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
- NAME_FUNC_OFFSET(15918, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
- NAME_FUNC_OFFSET(15935, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
- NAME_FUNC_OFFSET(15958, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
- NAME_FUNC_OFFSET(15981, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
- NAME_FUNC_OFFSET(16004, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
- NAME_FUNC_OFFSET(16030, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
- NAME_FUNC_OFFSET(16056, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
- NAME_FUNC_OFFSET(16082, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
- NAME_FUNC_OFFSET(16106, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
- NAME_FUNC_OFFSET(16133, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
- NAME_FUNC_OFFSET(16159, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
- NAME_FUNC_OFFSET(16179, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
- NAME_FUNC_OFFSET(16199, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
- NAME_FUNC_OFFSET(16219, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB),
- NAME_FUNC_OFFSET(16242, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB),
- NAME_FUNC_OFFSET(16266, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB),
- NAME_FUNC_OFFSET(16289, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB),
- NAME_FUNC_OFFSET(16313, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
- NAME_FUNC_OFFSET(16330, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
- NAME_FUNC_OFFSET(16348, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
- NAME_FUNC_OFFSET(16365, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
- NAME_FUNC_OFFSET(16383, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
- NAME_FUNC_OFFSET(16400, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
- NAME_FUNC_OFFSET(16418, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
- NAME_FUNC_OFFSET(16435, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
- NAME_FUNC_OFFSET(16453, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
- NAME_FUNC_OFFSET(16470, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
- NAME_FUNC_OFFSET(16488, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
- NAME_FUNC_OFFSET(16505, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
- NAME_FUNC_OFFSET(16523, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
- NAME_FUNC_OFFSET(16540, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
- NAME_FUNC_OFFSET(16558, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
- NAME_FUNC_OFFSET(16575, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
- NAME_FUNC_OFFSET(16593, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
- NAME_FUNC_OFFSET(16610, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
- NAME_FUNC_OFFSET(16628, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
- NAME_FUNC_OFFSET(16647, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
- NAME_FUNC_OFFSET(16666, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
- NAME_FUNC_OFFSET(16685, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
- NAME_FUNC_OFFSET(16704, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
- NAME_FUNC_OFFSET(16724, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
- NAME_FUNC_OFFSET(16744, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
- NAME_FUNC_OFFSET(16764, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
- NAME_FUNC_OFFSET(16782, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
- NAME_FUNC_OFFSET(16799, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
- NAME_FUNC_OFFSET(16817, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
- NAME_FUNC_OFFSET(16834, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
- NAME_FUNC_OFFSET(16852, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
- NAME_FUNC_OFFSET(16870, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
- NAME_FUNC_OFFSET(16887, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
- NAME_FUNC_OFFSET(16905, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
- NAME_FUNC_OFFSET(16924, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
- NAME_FUNC_OFFSET(16943, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
- NAME_FUNC_OFFSET(16962, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
- NAME_FUNC_OFFSET(16984, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
- NAME_FUNC_OFFSET(16997, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
- NAME_FUNC_OFFSET(17010, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
- NAME_FUNC_OFFSET(17026, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
- NAME_FUNC_OFFSET(17042, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
- NAME_FUNC_OFFSET(17055, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
- NAME_FUNC_OFFSET(17078, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
- NAME_FUNC_OFFSET(17098, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
- NAME_FUNC_OFFSET(17117, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
- NAME_FUNC_OFFSET(17128, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
- NAME_FUNC_OFFSET(17140, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
- NAME_FUNC_OFFSET(17154, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
- NAME_FUNC_OFFSET(17167, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
- NAME_FUNC_OFFSET(17183, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
- NAME_FUNC_OFFSET(17194, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
- NAME_FUNC_OFFSET(17207, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
- NAME_FUNC_OFFSET(17226, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
- NAME_FUNC_OFFSET(17246, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
- NAME_FUNC_OFFSET(17259, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
- NAME_FUNC_OFFSET(17269, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
- NAME_FUNC_OFFSET(17285, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
- NAME_FUNC_OFFSET(17304, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
- NAME_FUNC_OFFSET(17322, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
- NAME_FUNC_OFFSET(17343, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
- NAME_FUNC_OFFSET(17358, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
- NAME_FUNC_OFFSET(17373, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
- NAME_FUNC_OFFSET(17387, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
- NAME_FUNC_OFFSET(17402, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
- NAME_FUNC_OFFSET(17414, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
- NAME_FUNC_OFFSET(17427, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
- NAME_FUNC_OFFSET(17439, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
- NAME_FUNC_OFFSET(17452, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
- NAME_FUNC_OFFSET(17464, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
- NAME_FUNC_OFFSET(17477, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
- NAME_FUNC_OFFSET(17489, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
- NAME_FUNC_OFFSET(17502, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
- NAME_FUNC_OFFSET(17514, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
- NAME_FUNC_OFFSET(17527, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
- NAME_FUNC_OFFSET(17539, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
- NAME_FUNC_OFFSET(17552, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
- NAME_FUNC_OFFSET(17564, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
- NAME_FUNC_OFFSET(17577, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
- NAME_FUNC_OFFSET(17589, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
- NAME_FUNC_OFFSET(17602, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
- NAME_FUNC_OFFSET(17621, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
- NAME_FUNC_OFFSET(17640, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
- NAME_FUNC_OFFSET(17659, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
- NAME_FUNC_OFFSET(17672, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
- NAME_FUNC_OFFSET(17690, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
- NAME_FUNC_OFFSET(17711, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
- NAME_FUNC_OFFSET(17729, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
- NAME_FUNC_OFFSET(17749, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
- NAME_FUNC_OFFSET(17763, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
- NAME_FUNC_OFFSET(17780, gl_dispatch_stub_574, gl_dispatch_stub_574, NULL, _gloffset_SampleMaskSGIS),
- NAME_FUNC_OFFSET(17796, gl_dispatch_stub_575, gl_dispatch_stub_575, NULL, _gloffset_SamplePatternSGIS),
- NAME_FUNC_OFFSET(17815, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17833, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17854, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
- NAME_FUNC_OFFSET(17876, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17895, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17917, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
- NAME_FUNC_OFFSET(17940, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
- NAME_FUNC_OFFSET(17959, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
- NAME_FUNC_OFFSET(17979, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
- NAME_FUNC_OFFSET(17998, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
- NAME_FUNC_OFFSET(18018, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
- NAME_FUNC_OFFSET(18037, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
- NAME_FUNC_OFFSET(18057, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
- NAME_FUNC_OFFSET(18076, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
- NAME_FUNC_OFFSET(18096, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
- NAME_FUNC_OFFSET(18115, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
- NAME_FUNC_OFFSET(18135, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
- NAME_FUNC_OFFSET(18155, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
- NAME_FUNC_OFFSET(18176, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
- NAME_FUNC_OFFSET(18196, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
- NAME_FUNC_OFFSET(18217, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
- NAME_FUNC_OFFSET(18237, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
- NAME_FUNC_OFFSET(18258, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
- NAME_FUNC_OFFSET(18282, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
- NAME_FUNC_OFFSET(18300, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
- NAME_FUNC_OFFSET(18320, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
- NAME_FUNC_OFFSET(18338, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
- NAME_FUNC_OFFSET(18350, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
- NAME_FUNC_OFFSET(18363, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
- NAME_FUNC_OFFSET(18375, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
- NAME_FUNC_OFFSET(18388, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
- NAME_FUNC_OFFSET(18408, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
- NAME_FUNC_OFFSET(18432, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
- NAME_FUNC_OFFSET(18446, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
- NAME_FUNC_OFFSET(18463, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
- NAME_FUNC_OFFSET(18478, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
- NAME_FUNC_OFFSET(18496, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
- NAME_FUNC_OFFSET(18510, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
- NAME_FUNC_OFFSET(18527, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
- NAME_FUNC_OFFSET(18542, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
- NAME_FUNC_OFFSET(18560, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
- NAME_FUNC_OFFSET(18574, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
- NAME_FUNC_OFFSET(18591, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
- NAME_FUNC_OFFSET(18606, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
- NAME_FUNC_OFFSET(18624, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
- NAME_FUNC_OFFSET(18638, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
- NAME_FUNC_OFFSET(18655, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
- NAME_FUNC_OFFSET(18670, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
- NAME_FUNC_OFFSET(18688, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
- NAME_FUNC_OFFSET(18702, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
- NAME_FUNC_OFFSET(18719, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
- NAME_FUNC_OFFSET(18734, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
- NAME_FUNC_OFFSET(18752, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
- NAME_FUNC_OFFSET(18766, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
- NAME_FUNC_OFFSET(18783, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
- NAME_FUNC_OFFSET(18798, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
- NAME_FUNC_OFFSET(18816, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
- NAME_FUNC_OFFSET(18830, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
- NAME_FUNC_OFFSET(18847, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
- NAME_FUNC_OFFSET(18862, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
- NAME_FUNC_OFFSET(18880, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
- NAME_FUNC_OFFSET(18894, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
- NAME_FUNC_OFFSET(18911, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
- NAME_FUNC_OFFSET(18926, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
- NAME_FUNC_OFFSET(18944, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
- NAME_FUNC_OFFSET(18961, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
- NAME_FUNC_OFFSET(18981, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
- NAME_FUNC_OFFSET(18998, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
- NAME_FUNC_OFFSET(19024, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
- NAME_FUNC_OFFSET(19053, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
- NAME_FUNC_OFFSET(19068, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
- NAME_FUNC_OFFSET(19086, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
- NAME_FUNC_OFFSET(19105, gl_dispatch_stub_745, gl_dispatch_stub_745, NULL, _gloffset_DeleteVertexArraysAPPLE),
- NAME_FUNC_OFFSET(19126, gl_dispatch_stub_747, gl_dispatch_stub_747, NULL, _gloffset_IsVertexArrayAPPLE),
- NAME_FUNC_OFFSET(19142, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_BlendEquationSeparateEXT),
- NAME_FUNC_OFFSET(19166, gl_dispatch_stub_755, gl_dispatch_stub_755, NULL, _gloffset_BlendEquationSeparateEXT),
- NAME_FUNC_OFFSET(19193, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
- NAME_FUNC_OFFSET(19211, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
- NAME_FUNC_OFFSET(19230, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
- NAME_FUNC_OFFSET(19255, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
- NAME_FUNC_OFFSET(19276, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
- NAME_FUNC_OFFSET(19298, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
- NAME_FUNC_OFFSET(19324, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
- NAME_FUNC_OFFSET(19347, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
- NAME_FUNC_OFFSET(19370, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
- NAME_FUNC_OFFSET(19393, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
- NAME_FUNC_OFFSET(19411, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
- NAME_FUNC_OFFSET(19430, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
- NAME_FUNC_OFFSET(19447, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
- NAME_FUNC_OFFSET(19485, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
- NAME_FUNC_OFFSET(19514, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
- NAME_FUNC_OFFSET(19530, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
- NAME_FUNC_OFFSET(19547, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
- NAME_FUNC_OFFSET(19569, gl_dispatch_stub_773, gl_dispatch_stub_773, NULL, _gloffset_BlitFramebufferEXT),
- NAME_FUNC_OFFSET(19587, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
+ NAME_FUNC_OFFSET( 9082, glClientWaitSync, glClientWaitSync, NULL, _gloffset_ClientWaitSync),
+ NAME_FUNC_OFFSET( 9099, glDeleteSync, glDeleteSync, NULL, _gloffset_DeleteSync),
+ NAME_FUNC_OFFSET( 9112, glFenceSync, glFenceSync, NULL, _gloffset_FenceSync),
+ NAME_FUNC_OFFSET( 9124, glGetInteger64v, glGetInteger64v, NULL, _gloffset_GetInteger64v),
+ NAME_FUNC_OFFSET( 9140, glGetSynciv, glGetSynciv, NULL, _gloffset_GetSynciv),
+ NAME_FUNC_OFFSET( 9152, glIsSync, glIsSync, NULL, _gloffset_IsSync),
+ NAME_FUNC_OFFSET( 9161, glWaitSync, glWaitSync, NULL, _gloffset_WaitSync),
+ NAME_FUNC_OFFSET( 9172, glPolygonOffsetEXT, glPolygonOffsetEXT, NULL, _gloffset_PolygonOffsetEXT),
+ NAME_FUNC_OFFSET( 9191, gl_dispatch_stub_575, gl_dispatch_stub_575, NULL, _gloffset_GetPixelTexGenParameterfvSGIS),
+ NAME_FUNC_OFFSET( 9223, gl_dispatch_stub_576, gl_dispatch_stub_576, NULL, _gloffset_GetPixelTexGenParameterivSGIS),
+ NAME_FUNC_OFFSET( 9255, gl_dispatch_stub_577, gl_dispatch_stub_577, NULL, _gloffset_PixelTexGenParameterfSGIS),
+ NAME_FUNC_OFFSET( 9283, gl_dispatch_stub_578, gl_dispatch_stub_578, NULL, _gloffset_PixelTexGenParameterfvSGIS),
+ NAME_FUNC_OFFSET( 9312, gl_dispatch_stub_579, gl_dispatch_stub_579, NULL, _gloffset_PixelTexGenParameteriSGIS),
+ NAME_FUNC_OFFSET( 9340, gl_dispatch_stub_580, gl_dispatch_stub_580, NULL, _gloffset_PixelTexGenParameterivSGIS),
+ NAME_FUNC_OFFSET( 9369, gl_dispatch_stub_581, gl_dispatch_stub_581, NULL, _gloffset_SampleMaskSGIS),
+ NAME_FUNC_OFFSET( 9386, gl_dispatch_stub_582, gl_dispatch_stub_582, NULL, _gloffset_SamplePatternSGIS),
+ NAME_FUNC_OFFSET( 9406, glColorPointerEXT, glColorPointerEXT, NULL, _gloffset_ColorPointerEXT),
+ NAME_FUNC_OFFSET( 9424, glEdgeFlagPointerEXT, glEdgeFlagPointerEXT, NULL, _gloffset_EdgeFlagPointerEXT),
+ NAME_FUNC_OFFSET( 9445, glIndexPointerEXT, glIndexPointerEXT, NULL, _gloffset_IndexPointerEXT),
+ NAME_FUNC_OFFSET( 9463, glNormalPointerEXT, glNormalPointerEXT, NULL, _gloffset_NormalPointerEXT),
+ NAME_FUNC_OFFSET( 9482, glTexCoordPointerEXT, glTexCoordPointerEXT, NULL, _gloffset_TexCoordPointerEXT),
+ NAME_FUNC_OFFSET( 9503, glVertexPointerEXT, glVertexPointerEXT, NULL, _gloffset_VertexPointerEXT),
+ NAME_FUNC_OFFSET( 9522, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET( 9543, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET( 9565, glLockArraysEXT, glLockArraysEXT, NULL, _gloffset_LockArraysEXT),
+ NAME_FUNC_OFFSET( 9581, glUnlockArraysEXT, glUnlockArraysEXT, NULL, _gloffset_UnlockArraysEXT),
+ NAME_FUNC_OFFSET( 9599, gl_dispatch_stub_593, gl_dispatch_stub_593, NULL, _gloffset_CullParameterdvEXT),
+ NAME_FUNC_OFFSET( 9620, gl_dispatch_stub_594, gl_dispatch_stub_594, NULL, _gloffset_CullParameterfvEXT),
+ NAME_FUNC_OFFSET( 9641, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
+ NAME_FUNC_OFFSET( 9663, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
+ NAME_FUNC_OFFSET( 9686, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
+ NAME_FUNC_OFFSET( 9708, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
+ NAME_FUNC_OFFSET( 9731, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
+ NAME_FUNC_OFFSET( 9753, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
+ NAME_FUNC_OFFSET( 9776, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
+ NAME_FUNC_OFFSET( 9798, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
+ NAME_FUNC_OFFSET( 9821, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
+ NAME_FUNC_OFFSET( 9843, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
+ NAME_FUNC_OFFSET( 9866, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
+ NAME_FUNC_OFFSET( 9889, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
+ NAME_FUNC_OFFSET( 9913, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
+ NAME_FUNC_OFFSET( 9936, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
+ NAME_FUNC_OFFSET( 9960, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
+ NAME_FUNC_OFFSET( 9983, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
+ NAME_FUNC_OFFSET(10007, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
+ NAME_FUNC_OFFSET(10034, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
+ NAME_FUNC_OFFSET(10055, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
+ NAME_FUNC_OFFSET(10078, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
+ NAME_FUNC_OFFSET(10099, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
+ NAME_FUNC_OFFSET(10114, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
+ NAME_FUNC_OFFSET(10130, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
+ NAME_FUNC_OFFSET(10145, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
+ NAME_FUNC_OFFSET(10161, gl_dispatch_stub_619, gl_dispatch_stub_619, NULL, _gloffset_PixelTexGenSGIX),
+ NAME_FUNC_OFFSET(10179, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
+ NAME_FUNC_OFFSET(10202, glFlushVertexArrayRangeNV, glFlushVertexArrayRangeNV, NULL, _gloffset_FlushVertexArrayRangeNV),
+ NAME_FUNC_OFFSET(10228, glVertexArrayRangeNV, glVertexArrayRangeNV, NULL, _gloffset_VertexArrayRangeNV),
+ NAME_FUNC_OFFSET(10249, glCombinerInputNV, glCombinerInputNV, NULL, _gloffset_CombinerInputNV),
+ NAME_FUNC_OFFSET(10267, glCombinerOutputNV, glCombinerOutputNV, NULL, _gloffset_CombinerOutputNV),
+ NAME_FUNC_OFFSET(10286, glCombinerParameterfNV, glCombinerParameterfNV, NULL, _gloffset_CombinerParameterfNV),
+ NAME_FUNC_OFFSET(10309, glCombinerParameterfvNV, glCombinerParameterfvNV, NULL, _gloffset_CombinerParameterfvNV),
+ NAME_FUNC_OFFSET(10333, glCombinerParameteriNV, glCombinerParameteriNV, NULL, _gloffset_CombinerParameteriNV),
+ NAME_FUNC_OFFSET(10356, glCombinerParameterivNV, glCombinerParameterivNV, NULL, _gloffset_CombinerParameterivNV),
+ NAME_FUNC_OFFSET(10380, glFinalCombinerInputNV, glFinalCombinerInputNV, NULL, _gloffset_FinalCombinerInputNV),
+ NAME_FUNC_OFFSET(10403, glGetCombinerInputParameterfvNV, glGetCombinerInputParameterfvNV, NULL, _gloffset_GetCombinerInputParameterfvNV),
+ NAME_FUNC_OFFSET(10435, glGetCombinerInputParameterivNV, glGetCombinerInputParameterivNV, NULL, _gloffset_GetCombinerInputParameterivNV),
+ NAME_FUNC_OFFSET(10467, glGetCombinerOutputParameterfvNV, glGetCombinerOutputParameterfvNV, NULL, _gloffset_GetCombinerOutputParameterfvNV),
+ NAME_FUNC_OFFSET(10500, glGetCombinerOutputParameterivNV, glGetCombinerOutputParameterivNV, NULL, _gloffset_GetCombinerOutputParameterivNV),
+ NAME_FUNC_OFFSET(10533, glGetFinalCombinerInputParameterfvNV, glGetFinalCombinerInputParameterfvNV, NULL, _gloffset_GetFinalCombinerInputParameterfvNV),
+ NAME_FUNC_OFFSET(10570, glGetFinalCombinerInputParameterivNV, glGetFinalCombinerInputParameterivNV, NULL, _gloffset_GetFinalCombinerInputParameterivNV),
+ NAME_FUNC_OFFSET(10607, glResizeBuffersMESA, glResizeBuffersMESA, NULL, _gloffset_ResizeBuffersMESA),
+ NAME_FUNC_OFFSET(10627, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
+ NAME_FUNC_OFFSET(10645, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
+ NAME_FUNC_OFFSET(10664, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
+ NAME_FUNC_OFFSET(10682, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
+ NAME_FUNC_OFFSET(10701, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
+ NAME_FUNC_OFFSET(10719, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
+ NAME_FUNC_OFFSET(10738, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
+ NAME_FUNC_OFFSET(10756, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
+ NAME_FUNC_OFFSET(10775, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
+ NAME_FUNC_OFFSET(10793, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
+ NAME_FUNC_OFFSET(10812, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
+ NAME_FUNC_OFFSET(10830, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
+ NAME_FUNC_OFFSET(10849, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
+ NAME_FUNC_OFFSET(10867, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
+ NAME_FUNC_OFFSET(10886, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
+ NAME_FUNC_OFFSET(10904, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
+ NAME_FUNC_OFFSET(10923, glWindowPos4dMESA, glWindowPos4dMESA, NULL, _gloffset_WindowPos4dMESA),
+ NAME_FUNC_OFFSET(10941, glWindowPos4dvMESA, glWindowPos4dvMESA, NULL, _gloffset_WindowPos4dvMESA),
+ NAME_FUNC_OFFSET(10960, glWindowPos4fMESA, glWindowPos4fMESA, NULL, _gloffset_WindowPos4fMESA),
+ NAME_FUNC_OFFSET(10978, glWindowPos4fvMESA, glWindowPos4fvMESA, NULL, _gloffset_WindowPos4fvMESA),
+ NAME_FUNC_OFFSET(10997, glWindowPos4iMESA, glWindowPos4iMESA, NULL, _gloffset_WindowPos4iMESA),
+ NAME_FUNC_OFFSET(11015, glWindowPos4ivMESA, glWindowPos4ivMESA, NULL, _gloffset_WindowPos4ivMESA),
+ NAME_FUNC_OFFSET(11034, glWindowPos4sMESA, glWindowPos4sMESA, NULL, _gloffset_WindowPos4sMESA),
+ NAME_FUNC_OFFSET(11052, glWindowPos4svMESA, glWindowPos4svMESA, NULL, _gloffset_WindowPos4svMESA),
+ NAME_FUNC_OFFSET(11071, gl_dispatch_stub_661, gl_dispatch_stub_661, NULL, _gloffset_MultiModeDrawArraysIBM),
+ NAME_FUNC_OFFSET(11096, gl_dispatch_stub_662, gl_dispatch_stub_662, NULL, _gloffset_MultiModeDrawElementsIBM),
+ NAME_FUNC_OFFSET(11123, gl_dispatch_stub_663, gl_dispatch_stub_663, NULL, _gloffset_DeleteFencesNV),
+ NAME_FUNC_OFFSET(11140, gl_dispatch_stub_664, gl_dispatch_stub_664, NULL, _gloffset_FinishFenceNV),
+ NAME_FUNC_OFFSET(11156, gl_dispatch_stub_665, gl_dispatch_stub_665, NULL, _gloffset_GenFencesNV),
+ NAME_FUNC_OFFSET(11170, gl_dispatch_stub_666, gl_dispatch_stub_666, NULL, _gloffset_GetFenceivNV),
+ NAME_FUNC_OFFSET(11185, gl_dispatch_stub_667, gl_dispatch_stub_667, NULL, _gloffset_IsFenceNV),
+ NAME_FUNC_OFFSET(11197, gl_dispatch_stub_668, gl_dispatch_stub_668, NULL, _gloffset_SetFenceNV),
+ NAME_FUNC_OFFSET(11210, gl_dispatch_stub_669, gl_dispatch_stub_669, NULL, _gloffset_TestFenceNV),
+ NAME_FUNC_OFFSET(11224, glAreProgramsResidentNV, glAreProgramsResidentNV, NULL, _gloffset_AreProgramsResidentNV),
+ NAME_FUNC_OFFSET(11248, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
+ NAME_FUNC_OFFSET(11264, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
+ NAME_FUNC_OFFSET(11283, glExecuteProgramNV, glExecuteProgramNV, NULL, _gloffset_ExecuteProgramNV),
+ NAME_FUNC_OFFSET(11302, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
+ NAME_FUNC_OFFSET(11318, glGetProgramParameterdvNV, glGetProgramParameterdvNV, NULL, _gloffset_GetProgramParameterdvNV),
+ NAME_FUNC_OFFSET(11344, glGetProgramParameterfvNV, glGetProgramParameterfvNV, NULL, _gloffset_GetProgramParameterfvNV),
+ NAME_FUNC_OFFSET(11370, glGetProgramStringNV, glGetProgramStringNV, NULL, _gloffset_GetProgramStringNV),
+ NAME_FUNC_OFFSET(11391, glGetProgramivNV, glGetProgramivNV, NULL, _gloffset_GetProgramivNV),
+ NAME_FUNC_OFFSET(11408, glGetTrackMatrixivNV, glGetTrackMatrixivNV, NULL, _gloffset_GetTrackMatrixivNV),
+ NAME_FUNC_OFFSET(11429, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
+ NAME_FUNC_OFFSET(11457, glGetVertexAttribdvNV, glGetVertexAttribdvNV, NULL, _gloffset_GetVertexAttribdvNV),
+ NAME_FUNC_OFFSET(11479, glGetVertexAttribfvNV, glGetVertexAttribfvNV, NULL, _gloffset_GetVertexAttribfvNV),
+ NAME_FUNC_OFFSET(11501, glGetVertexAttribivNV, glGetVertexAttribivNV, NULL, _gloffset_GetVertexAttribivNV),
+ NAME_FUNC_OFFSET(11523, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
+ NAME_FUNC_OFFSET(11537, glLoadProgramNV, glLoadProgramNV, NULL, _gloffset_LoadProgramNV),
+ NAME_FUNC_OFFSET(11553, glProgramParameters4dvNV, glProgramParameters4dvNV, NULL, _gloffset_ProgramParameters4dvNV),
+ NAME_FUNC_OFFSET(11578, glProgramParameters4fvNV, glProgramParameters4fvNV, NULL, _gloffset_ProgramParameters4fvNV),
+ NAME_FUNC_OFFSET(11603, glRequestResidentProgramsNV, glRequestResidentProgramsNV, NULL, _gloffset_RequestResidentProgramsNV),
+ NAME_FUNC_OFFSET(11631, glTrackMatrixNV, glTrackMatrixNV, NULL, _gloffset_TrackMatrixNV),
+ NAME_FUNC_OFFSET(11647, glVertexAttrib1dNV, glVertexAttrib1dNV, NULL, _gloffset_VertexAttrib1dNV),
+ NAME_FUNC_OFFSET(11666, glVertexAttrib1dvNV, glVertexAttrib1dvNV, NULL, _gloffset_VertexAttrib1dvNV),
+ NAME_FUNC_OFFSET(11686, glVertexAttrib1fNV, glVertexAttrib1fNV, NULL, _gloffset_VertexAttrib1fNV),
+ NAME_FUNC_OFFSET(11705, glVertexAttrib1fvNV, glVertexAttrib1fvNV, NULL, _gloffset_VertexAttrib1fvNV),
+ NAME_FUNC_OFFSET(11725, glVertexAttrib1sNV, glVertexAttrib1sNV, NULL, _gloffset_VertexAttrib1sNV),
+ NAME_FUNC_OFFSET(11744, glVertexAttrib1svNV, glVertexAttrib1svNV, NULL, _gloffset_VertexAttrib1svNV),
+ NAME_FUNC_OFFSET(11764, glVertexAttrib2dNV, glVertexAttrib2dNV, NULL, _gloffset_VertexAttrib2dNV),
+ NAME_FUNC_OFFSET(11783, glVertexAttrib2dvNV, glVertexAttrib2dvNV, NULL, _gloffset_VertexAttrib2dvNV),
+ NAME_FUNC_OFFSET(11803, glVertexAttrib2fNV, glVertexAttrib2fNV, NULL, _gloffset_VertexAttrib2fNV),
+ NAME_FUNC_OFFSET(11822, glVertexAttrib2fvNV, glVertexAttrib2fvNV, NULL, _gloffset_VertexAttrib2fvNV),
+ NAME_FUNC_OFFSET(11842, glVertexAttrib2sNV, glVertexAttrib2sNV, NULL, _gloffset_VertexAttrib2sNV),
+ NAME_FUNC_OFFSET(11861, glVertexAttrib2svNV, glVertexAttrib2svNV, NULL, _gloffset_VertexAttrib2svNV),
+ NAME_FUNC_OFFSET(11881, glVertexAttrib3dNV, glVertexAttrib3dNV, NULL, _gloffset_VertexAttrib3dNV),
+ NAME_FUNC_OFFSET(11900, glVertexAttrib3dvNV, glVertexAttrib3dvNV, NULL, _gloffset_VertexAttrib3dvNV),
+ NAME_FUNC_OFFSET(11920, glVertexAttrib3fNV, glVertexAttrib3fNV, NULL, _gloffset_VertexAttrib3fNV),
+ NAME_FUNC_OFFSET(11939, glVertexAttrib3fvNV, glVertexAttrib3fvNV, NULL, _gloffset_VertexAttrib3fvNV),
+ NAME_FUNC_OFFSET(11959, glVertexAttrib3sNV, glVertexAttrib3sNV, NULL, _gloffset_VertexAttrib3sNV),
+ NAME_FUNC_OFFSET(11978, glVertexAttrib3svNV, glVertexAttrib3svNV, NULL, _gloffset_VertexAttrib3svNV),
+ NAME_FUNC_OFFSET(11998, glVertexAttrib4dNV, glVertexAttrib4dNV, NULL, _gloffset_VertexAttrib4dNV),
+ NAME_FUNC_OFFSET(12017, glVertexAttrib4dvNV, glVertexAttrib4dvNV, NULL, _gloffset_VertexAttrib4dvNV),
+ NAME_FUNC_OFFSET(12037, glVertexAttrib4fNV, glVertexAttrib4fNV, NULL, _gloffset_VertexAttrib4fNV),
+ NAME_FUNC_OFFSET(12056, glVertexAttrib4fvNV, glVertexAttrib4fvNV, NULL, _gloffset_VertexAttrib4fvNV),
+ NAME_FUNC_OFFSET(12076, glVertexAttrib4sNV, glVertexAttrib4sNV, NULL, _gloffset_VertexAttrib4sNV),
+ NAME_FUNC_OFFSET(12095, glVertexAttrib4svNV, glVertexAttrib4svNV, NULL, _gloffset_VertexAttrib4svNV),
+ NAME_FUNC_OFFSET(12115, glVertexAttrib4ubNV, glVertexAttrib4ubNV, NULL, _gloffset_VertexAttrib4ubNV),
+ NAME_FUNC_OFFSET(12135, glVertexAttrib4ubvNV, glVertexAttrib4ubvNV, NULL, _gloffset_VertexAttrib4ubvNV),
+ NAME_FUNC_OFFSET(12156, glVertexAttribPointerNV, glVertexAttribPointerNV, NULL, _gloffset_VertexAttribPointerNV),
+ NAME_FUNC_OFFSET(12180, glVertexAttribs1dvNV, glVertexAttribs1dvNV, NULL, _gloffset_VertexAttribs1dvNV),
+ NAME_FUNC_OFFSET(12201, glVertexAttribs1fvNV, glVertexAttribs1fvNV, NULL, _gloffset_VertexAttribs1fvNV),
+ NAME_FUNC_OFFSET(12222, glVertexAttribs1svNV, glVertexAttribs1svNV, NULL, _gloffset_VertexAttribs1svNV),
+ NAME_FUNC_OFFSET(12243, glVertexAttribs2dvNV, glVertexAttribs2dvNV, NULL, _gloffset_VertexAttribs2dvNV),
+ NAME_FUNC_OFFSET(12264, glVertexAttribs2fvNV, glVertexAttribs2fvNV, NULL, _gloffset_VertexAttribs2fvNV),
+ NAME_FUNC_OFFSET(12285, glVertexAttribs2svNV, glVertexAttribs2svNV, NULL, _gloffset_VertexAttribs2svNV),
+ NAME_FUNC_OFFSET(12306, glVertexAttribs3dvNV, glVertexAttribs3dvNV, NULL, _gloffset_VertexAttribs3dvNV),
+ NAME_FUNC_OFFSET(12327, glVertexAttribs3fvNV, glVertexAttribs3fvNV, NULL, _gloffset_VertexAttribs3fvNV),
+ NAME_FUNC_OFFSET(12348, glVertexAttribs3svNV, glVertexAttribs3svNV, NULL, _gloffset_VertexAttribs3svNV),
+ NAME_FUNC_OFFSET(12369, glVertexAttribs4dvNV, glVertexAttribs4dvNV, NULL, _gloffset_VertexAttribs4dvNV),
+ NAME_FUNC_OFFSET(12390, glVertexAttribs4fvNV, glVertexAttribs4fvNV, NULL, _gloffset_VertexAttribs4fvNV),
+ NAME_FUNC_OFFSET(12411, glVertexAttribs4svNV, glVertexAttribs4svNV, NULL, _gloffset_VertexAttribs4svNV),
+ NAME_FUNC_OFFSET(12432, glVertexAttribs4ubvNV, glVertexAttribs4ubvNV, NULL, _gloffset_VertexAttribs4ubvNV),
+ NAME_FUNC_OFFSET(12454, glGetTexBumpParameterfvATI, glGetTexBumpParameterfvATI, NULL, _gloffset_GetTexBumpParameterfvATI),
+ NAME_FUNC_OFFSET(12481, glGetTexBumpParameterivATI, glGetTexBumpParameterivATI, NULL, _gloffset_GetTexBumpParameterivATI),
+ NAME_FUNC_OFFSET(12508, glTexBumpParameterfvATI, glTexBumpParameterfvATI, NULL, _gloffset_TexBumpParameterfvATI),
+ NAME_FUNC_OFFSET(12532, glTexBumpParameterivATI, glTexBumpParameterivATI, NULL, _gloffset_TexBumpParameterivATI),
+ NAME_FUNC_OFFSET(12556, glAlphaFragmentOp1ATI, glAlphaFragmentOp1ATI, NULL, _gloffset_AlphaFragmentOp1ATI),
+ NAME_FUNC_OFFSET(12578, glAlphaFragmentOp2ATI, glAlphaFragmentOp2ATI, NULL, _gloffset_AlphaFragmentOp2ATI),
+ NAME_FUNC_OFFSET(12600, glAlphaFragmentOp3ATI, glAlphaFragmentOp3ATI, NULL, _gloffset_AlphaFragmentOp3ATI),
+ NAME_FUNC_OFFSET(12622, glBeginFragmentShaderATI, glBeginFragmentShaderATI, NULL, _gloffset_BeginFragmentShaderATI),
+ NAME_FUNC_OFFSET(12647, glBindFragmentShaderATI, glBindFragmentShaderATI, NULL, _gloffset_BindFragmentShaderATI),
+ NAME_FUNC_OFFSET(12671, glColorFragmentOp1ATI, glColorFragmentOp1ATI, NULL, _gloffset_ColorFragmentOp1ATI),
+ NAME_FUNC_OFFSET(12693, glColorFragmentOp2ATI, glColorFragmentOp2ATI, NULL, _gloffset_ColorFragmentOp2ATI),
+ NAME_FUNC_OFFSET(12715, glColorFragmentOp3ATI, glColorFragmentOp3ATI, NULL, _gloffset_ColorFragmentOp3ATI),
+ NAME_FUNC_OFFSET(12737, glDeleteFragmentShaderATI, glDeleteFragmentShaderATI, NULL, _gloffset_DeleteFragmentShaderATI),
+ NAME_FUNC_OFFSET(12763, glEndFragmentShaderATI, glEndFragmentShaderATI, NULL, _gloffset_EndFragmentShaderATI),
+ NAME_FUNC_OFFSET(12786, glGenFragmentShadersATI, glGenFragmentShadersATI, NULL, _gloffset_GenFragmentShadersATI),
+ NAME_FUNC_OFFSET(12810, glPassTexCoordATI, glPassTexCoordATI, NULL, _gloffset_PassTexCoordATI),
+ NAME_FUNC_OFFSET(12828, glSampleMapATI, glSampleMapATI, NULL, _gloffset_SampleMapATI),
+ NAME_FUNC_OFFSET(12843, glSetFragmentShaderConstantATI, glSetFragmentShaderConstantATI, NULL, _gloffset_SetFragmentShaderConstantATI),
+ NAME_FUNC_OFFSET(12874, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
+ NAME_FUNC_OFFSET(12894, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
+ NAME_FUNC_OFFSET(12915, gl_dispatch_stub_750, gl_dispatch_stub_750, NULL, _gloffset_ActiveStencilFaceEXT),
+ NAME_FUNC_OFFSET(12938, gl_dispatch_stub_751, gl_dispatch_stub_751, NULL, _gloffset_BindVertexArrayAPPLE),
+ NAME_FUNC_OFFSET(12961, gl_dispatch_stub_752, gl_dispatch_stub_752, NULL, _gloffset_DeleteVertexArraysAPPLE),
+ NAME_FUNC_OFFSET(12987, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_GenVertexArraysAPPLE),
+ NAME_FUNC_OFFSET(13010, gl_dispatch_stub_754, gl_dispatch_stub_754, NULL, _gloffset_IsVertexArrayAPPLE),
+ NAME_FUNC_OFFSET(13031, glGetProgramNamedParameterdvNV, glGetProgramNamedParameterdvNV, NULL, _gloffset_GetProgramNamedParameterdvNV),
+ NAME_FUNC_OFFSET(13062, glGetProgramNamedParameterfvNV, glGetProgramNamedParameterfvNV, NULL, _gloffset_GetProgramNamedParameterfvNV),
+ NAME_FUNC_OFFSET(13093, glProgramNamedParameter4dNV, glProgramNamedParameter4dNV, NULL, _gloffset_ProgramNamedParameter4dNV),
+ NAME_FUNC_OFFSET(13121, glProgramNamedParameter4dvNV, glProgramNamedParameter4dvNV, NULL, _gloffset_ProgramNamedParameter4dvNV),
+ NAME_FUNC_OFFSET(13150, glProgramNamedParameter4fNV, glProgramNamedParameter4fNV, NULL, _gloffset_ProgramNamedParameter4fNV),
+ NAME_FUNC_OFFSET(13178, glProgramNamedParameter4fvNV, glProgramNamedParameter4fvNV, NULL, _gloffset_ProgramNamedParameter4fvNV),
+ NAME_FUNC_OFFSET(13207, gl_dispatch_stub_761, gl_dispatch_stub_761, NULL, _gloffset_DepthBoundsEXT),
+ NAME_FUNC_OFFSET(13224, gl_dispatch_stub_762, gl_dispatch_stub_762, NULL, _gloffset_BlendEquationSeparateEXT),
+ NAME_FUNC_OFFSET(13251, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
+ NAME_FUNC_OFFSET(13272, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
+ NAME_FUNC_OFFSET(13294, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
+ NAME_FUNC_OFFSET(13322, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
+ NAME_FUNC_OFFSET(13346, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
+ NAME_FUNC_OFFSET(13371, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
+ NAME_FUNC_OFFSET(13400, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
+ NAME_FUNC_OFFSET(13426, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
+ NAME_FUNC_OFFSET(13452, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
+ NAME_FUNC_OFFSET(13478, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
+ NAME_FUNC_OFFSET(13499, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
+ NAME_FUNC_OFFSET(13521, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
+ NAME_FUNC_OFFSET(13541, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
+ NAME_FUNC_OFFSET(13582, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
+ NAME_FUNC_OFFSET(13614, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
+ NAME_FUNC_OFFSET(13633, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
+ NAME_FUNC_OFFSET(13653, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
+ NAME_FUNC_OFFSET(13678, gl_dispatch_stub_780, gl_dispatch_stub_780, NULL, _gloffset_BlitFramebufferEXT),
+ NAME_FUNC_OFFSET(13699, gl_dispatch_stub_781, gl_dispatch_stub_781, NULL, _gloffset_BufferParameteriAPPLE),
+ NAME_FUNC_OFFSET(13723, gl_dispatch_stub_782, gl_dispatch_stub_782, NULL, _gloffset_FlushMappedBufferRangeAPPLE),
+ NAME_FUNC_OFFSET(13753, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
+ NAME_FUNC_OFFSET(13782, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT),
+ NAME_FUNC_OFFSET(13803, gl_dispatch_stub_785, gl_dispatch_stub_785, NULL, _gloffset_GetTexParameterPointervAPPLE),
+ NAME_FUNC_OFFSET(13834, gl_dispatch_stub_786, gl_dispatch_stub_786, NULL, _gloffset_TextureRangeAPPLE),
+ NAME_FUNC_OFFSET(13854, gl_dispatch_stub_787, gl_dispatch_stub_787, NULL, _gloffset_StencilFuncSeparateATI),
+ NAME_FUNC_OFFSET(13879, gl_dispatch_stub_788, gl_dispatch_stub_788, NULL, _gloffset_ProgramEnvParameters4fvEXT),
+ NAME_FUNC_OFFSET(13908, gl_dispatch_stub_789, gl_dispatch_stub_789, NULL, _gloffset_ProgramLocalParameters4fvEXT),
+ NAME_FUNC_OFFSET(13939, gl_dispatch_stub_790, gl_dispatch_stub_790, NULL, _gloffset_GetQueryObjecti64vEXT),
+ NAME_FUNC_OFFSET(13963, gl_dispatch_stub_791, gl_dispatch_stub_791, NULL, _gloffset_GetQueryObjectui64vEXT),
+ NAME_FUNC_OFFSET(13988, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
+ NAME_FUNC_OFFSET(14006, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
+ NAME_FUNC_OFFSET(14023, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
+ NAME_FUNC_OFFSET(14039, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
+ NAME_FUNC_OFFSET(14064, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
+ NAME_FUNC_OFFSET(14084, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
+ NAME_FUNC_OFFSET(14104, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
+ NAME_FUNC_OFFSET(14127, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
+ NAME_FUNC_OFFSET(14150, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
+ NAME_FUNC_OFFSET(14170, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
+ NAME_FUNC_OFFSET(14187, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
+ NAME_FUNC_OFFSET(14204, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
+ NAME_FUNC_OFFSET(14219, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
+ NAME_FUNC_OFFSET(14243, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
+ NAME_FUNC_OFFSET(14262, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
+ NAME_FUNC_OFFSET(14281, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
+ NAME_FUNC_OFFSET(14297, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
+ NAME_FUNC_OFFSET(14316, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
+ NAME_FUNC_OFFSET(14339, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
+ NAME_FUNC_OFFSET(14355, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
+ NAME_FUNC_OFFSET(14371, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
+ NAME_FUNC_OFFSET(14398, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
+ NAME_FUNC_OFFSET(14425, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
+ NAME_FUNC_OFFSET(14445, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
+ NAME_FUNC_OFFSET(14464, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
+ NAME_FUNC_OFFSET(14483, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
+ NAME_FUNC_OFFSET(14513, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
+ NAME_FUNC_OFFSET(14543, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
+ NAME_FUNC_OFFSET(14573, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
+ NAME_FUNC_OFFSET(14603, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
+ NAME_FUNC_OFFSET(14622, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
+ NAME_FUNC_OFFSET(14645, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
+ NAME_FUNC_OFFSET(14670, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
+ NAME_FUNC_OFFSET(14695, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
+ NAME_FUNC_OFFSET(14722, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
+ NAME_FUNC_OFFSET(14750, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
+ NAME_FUNC_OFFSET(14777, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
+ NAME_FUNC_OFFSET(14805, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
+ NAME_FUNC_OFFSET(14834, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
+ NAME_FUNC_OFFSET(14863, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
+ NAME_FUNC_OFFSET(14889, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
+ NAME_FUNC_OFFSET(14920, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
+ NAME_FUNC_OFFSET(14951, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
+ NAME_FUNC_OFFSET(14975, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
+ NAME_FUNC_OFFSET(14998, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
+ NAME_FUNC_OFFSET(15016, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
+ NAME_FUNC_OFFSET(15045, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
+ NAME_FUNC_OFFSET(15074, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
+ NAME_FUNC_OFFSET(15089, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
+ NAME_FUNC_OFFSET(15115, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
+ NAME_FUNC_OFFSET(15141, glHistogram, glHistogram, NULL, _gloffset_Histogram),
+ NAME_FUNC_OFFSET(15156, glMinmax, glMinmax, NULL, _gloffset_Minmax),
+ NAME_FUNC_OFFSET(15168, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
+ NAME_FUNC_OFFSET(15188, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
+ NAME_FUNC_OFFSET(15205, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
+ NAME_FUNC_OFFSET(15221, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
+ NAME_FUNC_OFFSET(15240, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
+ NAME_FUNC_OFFSET(15263, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
+ NAME_FUNC_OFFSET(15279, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
+ NAME_FUNC_OFFSET(15301, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
+ NAME_FUNC_OFFSET(15319, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
+ NAME_FUNC_OFFSET(15338, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
+ NAME_FUNC_OFFSET(15356, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
+ NAME_FUNC_OFFSET(15375, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
+ NAME_FUNC_OFFSET(15393, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
+ NAME_FUNC_OFFSET(15412, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
+ NAME_FUNC_OFFSET(15430, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
+ NAME_FUNC_OFFSET(15449, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
+ NAME_FUNC_OFFSET(15467, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
+ NAME_FUNC_OFFSET(15486, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
+ NAME_FUNC_OFFSET(15504, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
+ NAME_FUNC_OFFSET(15523, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
+ NAME_FUNC_OFFSET(15541, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
+ NAME_FUNC_OFFSET(15560, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
+ NAME_FUNC_OFFSET(15578, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
+ NAME_FUNC_OFFSET(15597, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
+ NAME_FUNC_OFFSET(15615, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
+ NAME_FUNC_OFFSET(15634, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
+ NAME_FUNC_OFFSET(15652, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
+ NAME_FUNC_OFFSET(15671, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
+ NAME_FUNC_OFFSET(15689, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
+ NAME_FUNC_OFFSET(15708, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
+ NAME_FUNC_OFFSET(15726, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
+ NAME_FUNC_OFFSET(15745, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
+ NAME_FUNC_OFFSET(15763, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
+ NAME_FUNC_OFFSET(15782, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
+ NAME_FUNC_OFFSET(15800, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
+ NAME_FUNC_OFFSET(15819, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
+ NAME_FUNC_OFFSET(15837, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
+ NAME_FUNC_OFFSET(15856, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
+ NAME_FUNC_OFFSET(15874, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
+ NAME_FUNC_OFFSET(15893, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
+ NAME_FUNC_OFFSET(15916, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
+ NAME_FUNC_OFFSET(15939, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
+ NAME_FUNC_OFFSET(15962, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
+ NAME_FUNC_OFFSET(15985, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
+ NAME_FUNC_OFFSET(16008, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
+ NAME_FUNC_OFFSET(16025, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
+ NAME_FUNC_OFFSET(16048, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
+ NAME_FUNC_OFFSET(16071, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
+ NAME_FUNC_OFFSET(16094, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
+ NAME_FUNC_OFFSET(16120, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
+ NAME_FUNC_OFFSET(16146, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
+ NAME_FUNC_OFFSET(16172, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
+ NAME_FUNC_OFFSET(16196, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
+ NAME_FUNC_OFFSET(16223, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
+ NAME_FUNC_OFFSET(16249, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
+ NAME_FUNC_OFFSET(16269, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
+ NAME_FUNC_OFFSET(16289, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
+ NAME_FUNC_OFFSET(16309, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB),
+ NAME_FUNC_OFFSET(16332, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB),
+ NAME_FUNC_OFFSET(16356, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB),
+ NAME_FUNC_OFFSET(16379, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB),
+ NAME_FUNC_OFFSET(16403, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
+ NAME_FUNC_OFFSET(16420, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
+ NAME_FUNC_OFFSET(16438, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
+ NAME_FUNC_OFFSET(16455, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
+ NAME_FUNC_OFFSET(16473, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
+ NAME_FUNC_OFFSET(16490, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
+ NAME_FUNC_OFFSET(16508, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
+ NAME_FUNC_OFFSET(16525, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
+ NAME_FUNC_OFFSET(16543, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
+ NAME_FUNC_OFFSET(16560, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
+ NAME_FUNC_OFFSET(16578, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
+ NAME_FUNC_OFFSET(16595, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
+ NAME_FUNC_OFFSET(16613, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
+ NAME_FUNC_OFFSET(16630, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
+ NAME_FUNC_OFFSET(16648, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
+ NAME_FUNC_OFFSET(16665, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
+ NAME_FUNC_OFFSET(16683, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
+ NAME_FUNC_OFFSET(16700, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
+ NAME_FUNC_OFFSET(16718, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
+ NAME_FUNC_OFFSET(16737, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
+ NAME_FUNC_OFFSET(16756, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
+ NAME_FUNC_OFFSET(16775, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
+ NAME_FUNC_OFFSET(16794, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
+ NAME_FUNC_OFFSET(16814, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
+ NAME_FUNC_OFFSET(16834, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
+ NAME_FUNC_OFFSET(16854, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
+ NAME_FUNC_OFFSET(16872, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
+ NAME_FUNC_OFFSET(16889, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
+ NAME_FUNC_OFFSET(16907, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
+ NAME_FUNC_OFFSET(16924, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
+ NAME_FUNC_OFFSET(16942, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
+ NAME_FUNC_OFFSET(16960, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
+ NAME_FUNC_OFFSET(16977, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
+ NAME_FUNC_OFFSET(16995, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
+ NAME_FUNC_OFFSET(17014, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
+ NAME_FUNC_OFFSET(17033, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
+ NAME_FUNC_OFFSET(17052, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
+ NAME_FUNC_OFFSET(17074, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
+ NAME_FUNC_OFFSET(17087, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
+ NAME_FUNC_OFFSET(17100, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
+ NAME_FUNC_OFFSET(17116, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
+ NAME_FUNC_OFFSET(17132, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
+ NAME_FUNC_OFFSET(17145, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
+ NAME_FUNC_OFFSET(17168, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
+ NAME_FUNC_OFFSET(17188, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
+ NAME_FUNC_OFFSET(17207, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
+ NAME_FUNC_OFFSET(17218, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
+ NAME_FUNC_OFFSET(17230, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
+ NAME_FUNC_OFFSET(17244, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
+ NAME_FUNC_OFFSET(17257, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
+ NAME_FUNC_OFFSET(17273, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
+ NAME_FUNC_OFFSET(17284, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
+ NAME_FUNC_OFFSET(17297, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
+ NAME_FUNC_OFFSET(17316, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
+ NAME_FUNC_OFFSET(17336, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
+ NAME_FUNC_OFFSET(17349, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
+ NAME_FUNC_OFFSET(17359, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
+ NAME_FUNC_OFFSET(17375, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
+ NAME_FUNC_OFFSET(17394, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
+ NAME_FUNC_OFFSET(17412, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
+ NAME_FUNC_OFFSET(17433, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
+ NAME_FUNC_OFFSET(17448, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
+ NAME_FUNC_OFFSET(17463, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
+ NAME_FUNC_OFFSET(17477, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
+ NAME_FUNC_OFFSET(17492, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
+ NAME_FUNC_OFFSET(17504, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
+ NAME_FUNC_OFFSET(17517, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
+ NAME_FUNC_OFFSET(17529, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
+ NAME_FUNC_OFFSET(17542, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
+ NAME_FUNC_OFFSET(17554, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
+ NAME_FUNC_OFFSET(17567, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
+ NAME_FUNC_OFFSET(17579, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
+ NAME_FUNC_OFFSET(17592, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
+ NAME_FUNC_OFFSET(17604, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
+ NAME_FUNC_OFFSET(17617, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
+ NAME_FUNC_OFFSET(17629, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
+ NAME_FUNC_OFFSET(17642, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
+ NAME_FUNC_OFFSET(17654, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
+ NAME_FUNC_OFFSET(17667, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
+ NAME_FUNC_OFFSET(17679, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
+ NAME_FUNC_OFFSET(17692, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
+ NAME_FUNC_OFFSET(17711, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
+ NAME_FUNC_OFFSET(17730, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
+ NAME_FUNC_OFFSET(17749, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
+ NAME_FUNC_OFFSET(17762, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
+ NAME_FUNC_OFFSET(17780, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
+ NAME_FUNC_OFFSET(17801, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
+ NAME_FUNC_OFFSET(17819, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
+ NAME_FUNC_OFFSET(17839, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
+ NAME_FUNC_OFFSET(17853, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
+ NAME_FUNC_OFFSET(17870, gl_dispatch_stub_581, gl_dispatch_stub_581, NULL, _gloffset_SampleMaskSGIS),
+ NAME_FUNC_OFFSET(17886, gl_dispatch_stub_582, gl_dispatch_stub_582, NULL, _gloffset_SamplePatternSGIS),
+ NAME_FUNC_OFFSET(17905, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17923, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17944, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
+ NAME_FUNC_OFFSET(17966, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(17985, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(18007, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
+ NAME_FUNC_OFFSET(18030, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
+ NAME_FUNC_OFFSET(18049, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
+ NAME_FUNC_OFFSET(18069, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
+ NAME_FUNC_OFFSET(18088, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
+ NAME_FUNC_OFFSET(18108, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
+ NAME_FUNC_OFFSET(18127, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
+ NAME_FUNC_OFFSET(18147, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
+ NAME_FUNC_OFFSET(18166, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
+ NAME_FUNC_OFFSET(18186, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
+ NAME_FUNC_OFFSET(18205, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
+ NAME_FUNC_OFFSET(18225, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
+ NAME_FUNC_OFFSET(18245, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
+ NAME_FUNC_OFFSET(18266, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
+ NAME_FUNC_OFFSET(18286, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
+ NAME_FUNC_OFFSET(18307, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
+ NAME_FUNC_OFFSET(18327, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
+ NAME_FUNC_OFFSET(18348, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
+ NAME_FUNC_OFFSET(18372, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
+ NAME_FUNC_OFFSET(18390, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
+ NAME_FUNC_OFFSET(18410, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
+ NAME_FUNC_OFFSET(18428, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
+ NAME_FUNC_OFFSET(18440, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
+ NAME_FUNC_OFFSET(18453, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
+ NAME_FUNC_OFFSET(18465, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
+ NAME_FUNC_OFFSET(18478, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
+ NAME_FUNC_OFFSET(18498, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
+ NAME_FUNC_OFFSET(18522, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
+ NAME_FUNC_OFFSET(18536, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
+ NAME_FUNC_OFFSET(18553, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
+ NAME_FUNC_OFFSET(18568, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
+ NAME_FUNC_OFFSET(18586, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
+ NAME_FUNC_OFFSET(18600, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
+ NAME_FUNC_OFFSET(18617, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
+ NAME_FUNC_OFFSET(18632, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
+ NAME_FUNC_OFFSET(18650, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
+ NAME_FUNC_OFFSET(18664, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
+ NAME_FUNC_OFFSET(18681, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
+ NAME_FUNC_OFFSET(18696, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
+ NAME_FUNC_OFFSET(18714, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
+ NAME_FUNC_OFFSET(18728, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
+ NAME_FUNC_OFFSET(18745, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
+ NAME_FUNC_OFFSET(18760, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
+ NAME_FUNC_OFFSET(18778, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
+ NAME_FUNC_OFFSET(18792, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
+ NAME_FUNC_OFFSET(18809, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
+ NAME_FUNC_OFFSET(18824, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
+ NAME_FUNC_OFFSET(18842, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
+ NAME_FUNC_OFFSET(18856, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
+ NAME_FUNC_OFFSET(18873, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
+ NAME_FUNC_OFFSET(18888, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
+ NAME_FUNC_OFFSET(18906, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
+ NAME_FUNC_OFFSET(18920, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
+ NAME_FUNC_OFFSET(18937, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
+ NAME_FUNC_OFFSET(18952, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
+ NAME_FUNC_OFFSET(18970, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
+ NAME_FUNC_OFFSET(18984, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
+ NAME_FUNC_OFFSET(19001, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
+ NAME_FUNC_OFFSET(19016, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
+ NAME_FUNC_OFFSET(19034, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
+ NAME_FUNC_OFFSET(19051, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
+ NAME_FUNC_OFFSET(19071, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
+ NAME_FUNC_OFFSET(19088, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
+ NAME_FUNC_OFFSET(19114, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
+ NAME_FUNC_OFFSET(19143, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
+ NAME_FUNC_OFFSET(19158, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
+ NAME_FUNC_OFFSET(19176, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
+ NAME_FUNC_OFFSET(19195, gl_dispatch_stub_752, gl_dispatch_stub_752, NULL, _gloffset_DeleteVertexArraysAPPLE),
+ NAME_FUNC_OFFSET(19216, gl_dispatch_stub_754, gl_dispatch_stub_754, NULL, _gloffset_IsVertexArrayAPPLE),
+ NAME_FUNC_OFFSET(19232, gl_dispatch_stub_762, gl_dispatch_stub_762, NULL, _gloffset_BlendEquationSeparateEXT),
+ NAME_FUNC_OFFSET(19256, gl_dispatch_stub_762, gl_dispatch_stub_762, NULL, _gloffset_BlendEquationSeparateEXT),
+ NAME_FUNC_OFFSET(19283, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
+ NAME_FUNC_OFFSET(19301, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
+ NAME_FUNC_OFFSET(19320, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
+ NAME_FUNC_OFFSET(19345, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
+ NAME_FUNC_OFFSET(19366, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
+ NAME_FUNC_OFFSET(19388, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
+ NAME_FUNC_OFFSET(19414, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
+ NAME_FUNC_OFFSET(19437, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
+ NAME_FUNC_OFFSET(19460, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
+ NAME_FUNC_OFFSET(19483, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
+ NAME_FUNC_OFFSET(19501, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
+ NAME_FUNC_OFFSET(19520, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
+ NAME_FUNC_OFFSET(19537, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
+ NAME_FUNC_OFFSET(19575, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
+ NAME_FUNC_OFFSET(19604, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
+ NAME_FUNC_OFFSET(19620, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
+ NAME_FUNC_OFFSET(19637, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
+ NAME_FUNC_OFFSET(19659, gl_dispatch_stub_780, gl_dispatch_stub_780, NULL, _gloffset_BlitFramebufferEXT),
+ NAME_FUNC_OFFSET(19677, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
};
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 199550b35d3..02550ae1088 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -129,6 +129,9 @@
#if FEATURE_ARB_shader_objects
#include "shaders.h"
#endif
+#if FEATURE_ARB_sync
+#include "syncobj.h"
+#endif
#include "debug.h"
#include "glapi/dispatch.h"
@@ -529,7 +532,6 @@ _mesa_init_exec_table(struct _glapi_table *exec)
/* 148. GL_EXT_multi_draw_arrays */
#if _HAVE_FULL_GL
SET_MultiDrawArraysEXT(exec, _mesa_MultiDrawArraysEXT);
- SET_MultiDrawElementsEXT(exec, _mesa_MultiDrawElementsEXT);
#endif
/* 173. GL_INGR_blend_func_separate */
@@ -824,6 +826,17 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_GetAttribLocationARB(exec, _mesa_GetAttribLocationARB);
#endif /* FEATURE_ARB_vertex_shader */
+ /* GL_ARB_sync */
+#if FEATURE_ARB_sync
+ SET_IsSync(exec, _mesa_IsSync);
+ SET_DeleteSync(exec, _mesa_DeleteSync);
+ SET_FenceSync(exec, _mesa_FenceSync);
+ SET_ClientWaitSync(exec, _mesa_ClientWaitSync);
+ SET_WaitSync(exec, _mesa_WaitSync);
+ SET_GetInteger64v(exec, _mesa_GetInteger64v);
+ SET_GetSynciv(exec, _mesa_GetSynciv);
+#endif
+
/* GL_ATI_fragment_shader */
#if FEATURE_ATI_fragment_shader
SET_GenFragmentShadersATI(exec, _mesa_GenFragmentShadersATI);
diff --git a/src/mesa/main/api_noop.c b/src/mesa/main/api_noop.c
index 66f9c4e6bdb..09ba7e50622 100644
--- a/src/mesa/main/api_noop.c
+++ b/src/mesa/main/api_noop.c
@@ -772,6 +772,20 @@ _mesa_noop_DrawRangeElements(GLenum mode,
CALL_DrawElements(GET_DISPATCH(), (mode, count, type, indices));
}
+/* GL_EXT_multi_draw_arrays */
+void GLAPIENTRY
+_mesa_noop_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type,
+ const GLvoid **indices, GLsizei primcount)
+{
+ GLsizei i;
+
+ for (i = 0; i < primcount; i++) {
+ if (count[i] > 0) {
+ CALL_DrawElements(GET_DISPATCH(), (mode, count[i], type, indices[i]));
+ }
+ }
+}
+
/*
* Eval Mesh
*/
@@ -980,6 +994,7 @@ _mesa_noop_vtxfmt_init( GLvertexformat *vfmt )
vfmt->DrawArrays = _mesa_noop_DrawArrays;
vfmt->DrawElements = _mesa_noop_DrawElements;
vfmt->DrawRangeElements = _mesa_noop_DrawRangeElements;
+ vfmt->MultiDrawElementsEXT = _mesa_noop_MultiDrawElements;
vfmt->EvalMesh1 = _mesa_noop_EvalMesh1;
vfmt->EvalMesh2 = _mesa_noop_EvalMesh2;
}
diff --git a/src/mesa/main/api_noop.h b/src/mesa/main/api_noop.h
index 8bf46608001..a7956d00b3b 100644
--- a/src/mesa/main/api_noop.h
+++ b/src/mesa/main/api_noop.h
@@ -40,6 +40,10 @@ _mesa_noop_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
extern void GLAPIENTRY
_mesa_noop_Materialfv(GLenum face, GLenum pname, const GLfloat *param);
+extern void GLAPIENTRY
+_mesa_noop_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type,
+ const GLvoid **indices, GLsizei primcount);
+
extern void
_mesa_noop_vtxfmt_init(GLvertexformat *vfmt);
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index f96185a4b5d..b95e00af5bb 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -314,9 +314,10 @@ _mesa_initialize_buffer_object( struct gl_buffer_object *obj,
* \param usage Hints about how the data will be used.
* \param bufObj Object to be used.
*
+ * \return GL_TRUE for success, GL_FALSE for failure
* \sa glBufferDataARB, dd_function_table::BufferData.
*/
-static void
+static GLboolean
_mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size,
const GLvoid * data, GLenum usage,
struct gl_buffer_object * bufObj )
@@ -334,6 +335,11 @@ _mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size,
if (data) {
_mesa_memcpy( bufObj->Data, data, size );
}
+
+ return GL_TRUE;
+ }
+ else {
+ return GL_FALSE;
}
}
@@ -428,6 +434,8 @@ _mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access,
return NULL;
}
bufObj->Pointer = bufObj->Data;
+ bufObj->Length = bufObj->Size;
+ bufObj->Offset = 0;
return bufObj->Pointer;
}
@@ -443,11 +451,13 @@ _mesa_buffer_map_range( GLcontext *ctx, GLenum target, GLintptr offset,
{
(void) ctx;
(void) target;
- (void) access;
- (void) length;
assert(!_mesa_bufferobj_mapped(bufObj));
/* Just return a direct pointer to the data */
- return bufObj->Data + offset;
+ bufObj->Pointer = bufObj->Data + offset;
+ bufObj->Length = length;
+ bufObj->Offset = offset;
+ bufObj->AccessFlags = access;
+ return bufObj->Pointer;
}
@@ -484,6 +494,9 @@ _mesa_buffer_unmap( GLcontext *ctx, GLenum target,
(void) target;
/* XXX we might assert here that bufObj->Pointer is non-null */
bufObj->Pointer = NULL;
+ bufObj->Length = 0;
+ bufObj->Offset = 0;
+ bufObj->AccessFlags = 0x0;
return GL_TRUE;
}
@@ -645,6 +658,8 @@ _mesa_update_default_objects_buffer_objects(GLcontext *ctx)
* currently mapped. Whoever calls this function should check for that.
* Remember, we can't use a PBO when it's mapped!
*
+ * If we're not using a PBO, this is a no-op.
+ *
* \param width width of image to read/write
* \param height height of image to read/write
* \param depth depth of image to read/write
@@ -663,7 +678,8 @@ _mesa_validate_pbo_access(GLuint dimensions,
GLvoid *start, *end;
const GLubyte *sizeAddr; /* buffer size, cast to a pointer */
- ASSERT(_mesa_is_bufferobj(pack->BufferObj));
+ if (!_mesa_is_bufferobj(pack->BufferObj))
+ return GL_TRUE; /* no PBO, OK */
if (pack->BufferObj->Size == 0)
/* no buffer! */
@@ -695,17 +711,18 @@ _mesa_validate_pbo_access(GLuint dimensions,
/**
- * If the source of glBitmap data is a PBO, check that we won't read out
- * of buffer bounds, then map the buffer.
- * If not sourcing from a PBO, just return the bitmap pointer.
- * This is a helper function for (some) drivers.
- * Return NULL if error.
- * If non-null return, must call _mesa_unmap_bitmap_pbo() when done.
+ * For commands that read from a PBO (glDrawPixels, glTexImage,
+ * glPolygonStipple, etc), if we're reading from a PBO, map it read-only
+ * and return the pointer into the PBO. If we're not reading from a
+ * PBO, return \p src as-is.
+ * If non-null return, must call _mesa_unmap_pbo_source() when done.
+ *
+ * \return NULL if error, else pointer to start of data
*/
-const GLubyte *
-_mesa_map_bitmap_pbo(GLcontext *ctx,
+const GLvoid *
+_mesa_map_pbo_source(GLcontext *ctx,
const struct gl_pixelstore_attrib *unpack,
- const GLubyte *bitmap)
+ const GLvoid *src)
{
const GLubyte *buf;
@@ -717,11 +734,11 @@ _mesa_map_bitmap_pbo(GLcontext *ctx,
if (!buf)
return NULL;
- buf = ADD_POINTERS(buf, bitmap);
+ buf = ADD_POINTERS(buf, src);
}
else {
/* unpack from normal memory */
- buf = bitmap;
+ buf = src;
}
return buf;
@@ -729,56 +746,54 @@ _mesa_map_bitmap_pbo(GLcontext *ctx,
/**
- * Counterpart to _mesa_map_bitmap_pbo()
- * This is a helper function for (some) drivers.
- */
-void
-_mesa_unmap_bitmap_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack)
-{
- if (_mesa_is_bufferobj(unpack->BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- unpack->BufferObj);
- }
-}
-
-
-/**
- * \sa _mesa_map_bitmap_pbo
+ * Combine PBO-read validation and mapping.
+ * If any GL errors are detected, they'll be recorded and NULL returned.
+ * \sa _mesa_validate_pbo_access
+ * \sa _mesa_map_pbo_source
+ * A call to this function should have a matching call to
+ * _mesa_unmap_pbo_source().
*/
const GLvoid *
-_mesa_map_drawpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack,
- const GLvoid *pixels)
+_mesa_map_validate_pbo_source(GLcontext *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)
{
- const GLvoid *buf;
+ ASSERT(dimensions == 1 || dimensions == 2 || dimensions == 3);
- if (_mesa_is_bufferobj(unpack->BufferObj)) {
- /* unpack from PBO */
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- unpack->BufferObj);
- if (!buf)
- return NULL;
+ if (!_mesa_is_bufferobj(unpack->BufferObj)) {
+ /* non-PBO access: no validation to be done */
+ return ptr;
+ }
- buf = ADD_POINTERS(buf, pixels);
+ 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;
}
- else {
- /* unpack from normal memory */
- buf = pixels;
+
+ if (_mesa_bufferobj_mapped(unpack->BufferObj)) {
+ /* buffer is already mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);
+ return NULL;
}
- return buf;
+ ptr = _mesa_map_pbo_source(ctx, unpack, ptr);
+ return ptr;
}
/**
- * \sa _mesa_unmap_bitmap_pbo
+ * Counterpart to _mesa_map_pbo_source()
*/
void
-_mesa_unmap_drawpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack)
+_mesa_unmap_pbo_source(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack)
{
+ ASSERT(unpack != &ctx->Pack); /* catch pack/unpack mismatch */
if (_mesa_is_bufferobj(unpack->BufferObj)) {
ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
unpack->BufferObj);
@@ -787,14 +802,17 @@ _mesa_unmap_drawpix_pbo(GLcontext *ctx,
/**
- * If PBO is bound, map the buffer, return dest pointer in mapped buffer.
- * Call _mesa_unmap_readpix_pbo() when finished
- * \return NULL if error
+ * For commands that write to a PBO (glReadPixels, glGetColorTable, etc),
+ * if we're writing to a PBO, map it write-only and return the pointer
+ * into the PBO. If we're not writing to a PBO, return \p dst as-is.
+ * If non-null return, must call _mesa_unmap_pbo_dest() when done.
+ *
+ * \return NULL if error, else pointer to start of data
*/
void *
-_mesa_map_readpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *pack,
- GLvoid *dest)
+_mesa_map_pbo_dest(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack,
+ GLvoid *dest)
{
void *buf;
@@ -818,12 +836,54 @@ _mesa_map_readpix_pbo(GLcontext *ctx,
/**
- * Counterpart to _mesa_map_readpix_pbo()
+ * Combine PBO-write validation and mapping.
+ * If any GL errors are detected, they'll be recorded and NULL returned.
+ * \sa _mesa_validate_pbo_access
+ * \sa _mesa_map_pbo_dest
+ * A call to this function should have a matching call to
+ * _mesa_unmap_pbo_dest().
+ */
+GLvoid *
+_mesa_map_validate_pbo_dest(GLcontext *ctx,
+ GLuint dimensions,
+ const struct gl_pixelstore_attrib *unpack,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, 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, ptr)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(out of bounds PBO access)", where);
+ return NULL;
+ }
+
+ if (_mesa_bufferobj_mapped(unpack->BufferObj)) {
+ /* buffer is already mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION, "%s(PBO is mapped)", where);
+ return NULL;
+ }
+
+ ptr = _mesa_map_pbo_dest(ctx, unpack, ptr);
+ return ptr;
+}
+
+
+/**
+ * Counterpart to _mesa_map_pbo_dest()
*/
void
-_mesa_unmap_readpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *pack)
+_mesa_unmap_pbo_dest(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack)
{
+ ASSERT(pack != &ctx->Unpack); /* catch pack/unpack mismatch */
if (_mesa_is_bufferobj(pack->BufferObj)) {
ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT, pack->BufferObj);
}
@@ -1095,13 +1155,11 @@ _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size,
/* Unmap the existing buffer. We'll replace it now. Not an error. */
ctx->Driver.UnmapBuffer(ctx, target, bufObj);
bufObj->AccessFlags = DEFAULT_ACCESS;
- bufObj->Pointer = NULL;
+ ASSERT(bufObj->Pointer == NULL);
}
FLUSH_VERTICES(ctx, _NEW_BUFFER_OBJECT);
- ASSERT(ctx->Driver.BufferData);
-
bufObj->Written = GL_TRUE;
#ifdef VBO_DEBUG
@@ -1112,8 +1170,11 @@ _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size,
#ifdef BOUNDS_CHECK
size += 100;
#endif
- /* Give the buffer object to the driver! <data> may be null! */
- ctx->Driver.BufferData( ctx, target, size, data, usage, bufObj );
+
+ ASSERT(ctx->Driver.BufferData);
+ if (!ctx->Driver.BufferData( ctx, target, size, data, usage, bufObj )) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBufferDataARB(access)");
+ }
}
@@ -1165,6 +1226,8 @@ _mesa_MapBufferARB(GLenum target, GLenum access)
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object * bufObj;
GLbitfield accessFlags;
+ void *map;
+
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, NULL);
switch (access) {
@@ -1197,14 +1260,21 @@ _mesa_MapBufferARB(GLenum target, GLenum access)
}
ASSERT(ctx->Driver.MapBuffer);
- bufObj->Pointer = ctx->Driver.MapBuffer( ctx, target, access, bufObj );
- if (!_mesa_bufferobj_mapped(bufObj)) {
+ map = ctx->Driver.MapBuffer( ctx, target, access, bufObj );
+ if (!map) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "glMapBufferARB(access)");
+ return NULL;
+ }
+ else {
+ /* The driver callback should have set these fields.
+ * This is important because other modules (like VBO) might call
+ * the driver function directly.
+ */
+ ASSERT(bufObj->Pointer == map);
+ ASSERT(bufObj->Length == bufObj->Size);
+ ASSERT(bufObj->Offset == 0);
+ bufObj->AccessFlags = accessFlags;
}
-
- bufObj->AccessFlags = accessFlags;
- bufObj->Offset = 0;
- bufObj->Length = bufObj->Size;
if (access == GL_WRITE_ONLY_ARB || access == GL_READ_WRITE_ARB)
bufObj->Written = GL_TRUE;
@@ -1295,9 +1365,9 @@ _mesa_UnmapBufferARB(GLenum target)
status = ctx->Driver.UnmapBuffer( ctx, target, bufObj );
bufObj->AccessFlags = DEFAULT_ACCESS;
- bufObj->Pointer = NULL;
- bufObj->Offset = 0;
- bufObj->Length = 0;
+ ASSERT(bufObj->Pointer == NULL);
+ ASSERT(bufObj->Offset == 0);
+ ASSERT(bufObj->Length == 0);
return status;
}
@@ -1455,6 +1525,8 @@ _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length,
{
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
+ void *map;
+
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, NULL);
if (!ctx->Extensions.ARB_map_buffer_range) {
@@ -1518,14 +1590,23 @@ _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length,
}
ASSERT(ctx->Driver.MapBufferRange);
- bufObj->Pointer = ctx->Driver.MapBufferRange(ctx, target, offset, length,
- access, bufObj);
-
- bufObj->Offset = offset;
- bufObj->Length = length;
- bufObj->AccessFlags = access;
+ map = ctx->Driver.MapBufferRange(ctx, target, offset, length,
+ access, bufObj);
+ if (!map) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glMapBufferARB(access)");
+ }
+ else {
+ /* The driver callback should have set all these fields.
+ * This is important because other modules (like VBO) might call
+ * the driver function directly.
+ */
+ ASSERT(bufObj->Pointer == map);
+ ASSERT(bufObj->Length == length);
+ ASSERT(bufObj->Offset == offset);
+ ASSERT(bufObj->AccessFlags == access);
+ }
- return bufObj->Pointer;
+ return map;
}
diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h
index decb44a65e6..9f732ec0c07 100644
--- a/src/mesa/main/bufferobj.h
+++ b/src/mesa/main/bufferobj.h
@@ -81,32 +81,39 @@ _mesa_validate_pbo_access(GLuint dimensions,
GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *ptr);
-extern const GLubyte *
-_mesa_map_bitmap_pbo(GLcontext *ctx,
+extern const GLvoid *
+_mesa_map_pbo_source(GLcontext *ctx,
const struct gl_pixelstore_attrib *unpack,
- const GLubyte *bitmap);
-
-extern void
-_mesa_unmap_bitmap_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack);
+ const GLvoid *src);
extern const GLvoid *
-_mesa_map_drawpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack,
- const GLvoid *pixels);
+_mesa_map_validate_pbo_source(GLcontext *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);
extern void
-_mesa_unmap_drawpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *unpack);
+_mesa_unmap_pbo_source(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *unpack);
extern void *
-_mesa_map_readpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *pack,
- GLvoid *dest);
+_mesa_map_pbo_dest(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack,
+ GLvoid *dest);
+
+extern GLvoid *
+_mesa_map_validate_pbo_dest(GLcontext *ctx,
+ GLuint dimensions,
+ const struct gl_pixelstore_attrib *unpack,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, GLvoid *ptr,
+ const char *where);
extern void
-_mesa_unmap_readpix_pbo(GLcontext *ctx,
- const struct gl_pixelstore_attrib *pack);
+_mesa_unmap_pbo_dest(GLcontext *ctx,
+ const struct gl_pixelstore_attrib *pack);
extern void
diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c
index 36304065eb7..5a7de5f2098 100644
--- a/src/mesa/main/colortab.c
+++ b/src/mesa/main/colortab.c
@@ -179,26 +179,12 @@ store_colortable_entries(GLcontext *ctx, struct gl_color_table *table,
GLfloat bScale, GLfloat bBias,
GLfloat aScale, GLfloat aBias)
{
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* Get/unpack the color table data from a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Unpack, count, 1, 1,
- format, type, data)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glColor[Sub]Table(bad PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glColor[Sub]Table(PBO mapped)");
- return;
- }
- data = ADD_POINTERS(buf, data);
- }
-
+ data = _mesa_map_validate_pbo_source(ctx,
+ 1, &ctx->Unpack, count, 1, 1,
+ format, type, data,
+ "glColor[Sub]Table");
+ if (!data)
+ return;
{
/* convert user-provided data to GLfloat values */
@@ -279,10 +265,7 @@ store_colortable_entries(GLcontext *ctx, struct gl_color_table *table,
}
}
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
}
@@ -696,34 +679,17 @@ _mesa_GetColorTable( GLenum target, GLenum format,
return;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack color table into PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Pack, table->Size, 1, 1,
- format, type, data)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetColorTable(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetColorTable(PBO is mapped)");
- return;
- }
- data = ADD_POINTERS(buf, data);
- }
+ data = _mesa_map_validate_pbo_dest(ctx,
+ 1, &ctx->Pack, table->Size, 1, 1,
+ format, type, data,
+ "glGetColorTable");
+ if (!data)
+ return;
_mesa_pack_rgba_span_float(ctx, table->Size, rgba,
format, type, data, &ctx->Pack, 0x0);
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 4651760d784..f6d4ac45957 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -129,6 +129,9 @@
#if FEATURE_ARB_occlusion_query
#include "queryobj.h"
#endif
+#if FEATURE_ARB_sync
+#include "syncobj.h"
+#endif
#if FEATURE_drawpix
#include "rastpos.h"
#endif
@@ -592,6 +595,9 @@ _mesa_init_constants(GLcontext *ctx)
/* GL_ARB_framebuffer_object */
ctx->Const.MaxSamples = 0;
+ /* GL_ARB_sync */
+ ctx->Const.MaxServerWaitTimeout = (GLuint64) ~0;
+
/* GL_ATI_envmap_bumpmap */
ctx->Const.SupportedBumpUnits = SUPPORTED_ATI_BUMP_UNITS;
@@ -715,6 +721,9 @@ init_attrib_groups(GLcontext *ctx)
#if FEATURE_ARB_occlusion_query
_mesa_init_query( ctx );
#endif
+#if FEATURE_ARB_sync
+ _mesa_init_sync( ctx );
+#endif
#if FEATURE_drawpix
_mesa_init_rastpos( ctx );
#endif
@@ -1014,6 +1023,9 @@ _mesa_free_context_data( GLcontext *ctx )
#if FEATURE_ARB_occlusion_query
_mesa_free_query_data(ctx);
#endif
+#if FEATURE_ARB_sync
+ _mesa_free_sync_data(ctx);
+#endif
_mesa_free_varray_data(ctx);
_mesa_delete_array_object(ctx, ctx->Array.DefaultArrayObj);
diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c
index 69dba72ed38..70951112a18 100644
--- a/src/mesa/main/convolve.c
+++ b/src/mesa/main/convolve.c
@@ -144,39 +144,19 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G
ctx->Convolution1D.Width = width;
ctx->Convolution1D.Height = 1;
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack filter from PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Unpack, width, 1, 1,
- format, type, image)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glConvolutionFilter1D(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glConvolutionFilter1D(PBO is mapped)");
- return;
- }
- image = ADD_POINTERS(buf, image);
- }
- else if (!image) {
+ image = _mesa_map_validate_pbo_source(ctx,
+ 1, &ctx->Unpack, width, 1, 1,
+ format, type, image,
+ "glConvolutionFilter1D");
+ if (!image)
return;
- }
_mesa_unpack_color_span_float(ctx, width, GL_RGBA,
ctx->Convolution1D.Filter,
format, type, image, &ctx->Unpack,
0); /* transferOps */
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
_mesa_scale_and_bias_rgba(width,
(GLfloat (*)[4]) ctx->Convolution1D.Filter,
@@ -242,29 +222,12 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G
ctx->Convolution2D.Width = width;
ctx->Convolution2D.Height = height;
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack filter from PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
- format, type, image)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glConvolutionFilter2D(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glConvolutionFilter2D(PBO is mapped)");
- return;
- }
- image = ADD_POINTERS(buf, image);
- }
- else if (!image) {
+ image = _mesa_map_validate_pbo_source(ctx,
+ 2, &ctx->Unpack, width, height, 1,
+ format, type, image,
+ "glConvolutionFilter2D");
+ if (!image)
return;
- }
/* Unpack filter image. We always store filters in RGBA format. */
for (i = 0; i < height; i++) {
@@ -276,10 +239,7 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G
0); /* transferOps */
}
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
_mesa_scale_and_bias_rgba(width * height,
(GLfloat (*)[4]) ctx->Convolution2D.Filter,
@@ -598,27 +558,12 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
return;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* Pack the filter into a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(2, &ctx->Pack,
- filter->Width, filter->Height,
- 1, format, type, image)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetConvolutionFilter(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetConvolutionFilter(PBO is mapped)");
- return;
- }
- image = ADD_POINTERS(image, buf);
- }
+ image = _mesa_map_validate_pbo_dest(ctx, 2, &ctx->Pack,
+ filter->Width, filter->Height, 1,
+ format, type, image,
+ "glGetConvolutionFilter");
+ if (!image)
+ return;
for (row = 0; row < filter->Height; row++) {
GLvoid *dst = _mesa_image_address2d(&ctx->Pack, image, filter->Width,
@@ -629,10 +574,7 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type,
format, type, dst, &ctx->Pack, 0x0);
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
@@ -802,59 +744,35 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type,
filter = &ctx->Separable2D;
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* Pack filter into PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Pack, filter->Width, 1, 1,
- format, type, row)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetSeparableFilter(invalid PBO access, width)");
- return;
- }
- if (!_mesa_validate_pbo_access(1, &ctx->Pack, filter->Height, 1, 1,
- format, type, column)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetSeparableFilter(invalid PBO access, height)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetSeparableFilter(PBO is mapped)");
- return;
- }
- row = ADD_POINTERS(buf, row);
- column = ADD_POINTERS(buf, column);
- }
-
- /* Row filter */
+ /* Get row filter */
+ row = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack,
+ filter->Width, 1, 1,
+ format, type, row,
+ "glGetConvolutionFilter");
if (row) {
GLvoid *dst = _mesa_image_address1d(&ctx->Pack, row, filter->Width,
format, type, 0);
_mesa_pack_rgba_span_float(ctx, filter->Width,
(GLfloat (*)[4]) filter->Filter,
format, type, dst, &ctx->Pack, 0x0);
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
- /* Column filter */
+ /* get column filter */
+ column = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack,
+ filter->Height, 1, 1,
+ format, type, column,
+ "glGetConvolutionFilter");
if (column) {
GLvoid *dst = _mesa_image_address1d(&ctx->Pack, column, filter->Height,
format, type, 0);
GLfloat (*src)[4] = (GLfloat (*)[4]) (filter->Filter + colStart);
_mesa_pack_rgba_span_float(ctx, filter->Height, src,
format, type, dst, &ctx->Pack, 0x0);
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
(void) span; /* unused at this time */
-
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* Pack filter into PBO */
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
}
@@ -905,41 +823,16 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs
ctx->Separable2D.Width = width;
ctx->Separable2D.Height = height;
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack filter from PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Unpack, width, 1, 1,
- format, type, row)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glSeparableFilter2D(invalid PBO access, width)");
- return;
- }
- if (!_mesa_validate_pbo_access(1, &ctx->Unpack, height, 1, 1,
- format, type, column)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glSeparableFilter2D(invalid PBO access, height)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glSeparableFilter2D(PBO is mapped)");
- return;
- }
- row = ADD_POINTERS(buf, row);
- column = ADD_POINTERS(buf, column);
- }
-
/* unpack row filter */
+ row = _mesa_map_validate_pbo_source(ctx, 1, &ctx->Unpack,
+ width, 1, 1,
+ format, type, row,
+ "glSeparableFilter2D");
if (row) {
_mesa_unpack_color_span_float(ctx, width, GL_RGBA,
ctx->Separable2D.Filter,
format, type, row, &ctx->Unpack,
- 0); /* transferOps */
-
+ 0x0); /* transferOps */
_mesa_scale_and_bias_rgba(width,
(GLfloat (*)[4]) ctx->Separable2D.Filter,
ctx->Pixel.ConvolutionFilterScale[2][0],
@@ -950,9 +843,14 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs
ctx->Pixel.ConvolutionFilterBias[2][1],
ctx->Pixel.ConvolutionFilterBias[2][2],
ctx->Pixel.ConvolutionFilterBias[2][3]);
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
}
/* unpack column filter */
+ column = _mesa_map_validate_pbo_source(ctx, 1, &ctx->Unpack,
+ height, 1, 1,
+ format, type, column,
+ "glSeparableFilter2D");
if (column) {
_mesa_unpack_color_span_float(ctx, height, GL_RGBA,
&ctx->Separable2D.Filter[colStart],
@@ -969,6 +867,7 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs
ctx->Pixel.ConvolutionFilterBias[2][1],
ctx->Pixel.ConvolutionFilterBias[2][2],
ctx->Pixel.ConvolutionFilterBias[2][3]);
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
}
if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index 1d92e510a4d..4a700b5cb4d 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -766,6 +766,8 @@ struct dd_function_table {
/** Return the value or values of a selected parameter */
GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result);
/** Return the value or values of a selected parameter */
+ GLboolean (*GetInteger64v)(GLcontext *ctx, GLenum pname, GLint64 *result);
+ /** Return the value or values of a selected parameter */
GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result);
/*@}*/
@@ -783,9 +785,9 @@ struct dd_function_table {
void (*DeleteBuffer)( GLcontext *ctx, struct gl_buffer_object *obj );
- void (*BufferData)( GLcontext *ctx, GLenum target, GLsizeiptrARB size,
- const GLvoid *data, GLenum usage,
- struct gl_buffer_object *obj );
+ GLboolean (*BufferData)( GLcontext *ctx, GLenum target, GLsizeiptrARB size,
+ const GLvoid *data, GLenum usage,
+ struct gl_buffer_object *obj );
void (*BufferSubData)( GLcontext *ctx, GLenum target, GLintptrARB offset,
GLsizeiptrARB size, const GLvoid *data,
@@ -1042,6 +1044,22 @@ struct dd_function_table {
*/
void (*EndCallList)( GLcontext *ctx );
+
+#if FEATURE_ARB_sync
+ /**
+ * \name GL_ARB_sync interfaces
+ */
+ /*@{*/
+ struct gl_sync_object * (*NewSyncObject)(GLcontext *, GLenum);
+ void (*FenceSync)(GLcontext *, struct gl_sync_object *, GLenum, GLbitfield);
+ void (*DeleteSyncObject)(GLcontext *, struct gl_sync_object *);
+ void (*CheckSync)(GLcontext *, struct gl_sync_object *);
+ void (*ClientWaitSync)(GLcontext *, struct gl_sync_object *,
+ GLbitfield, GLuint64);
+ void (*ServerWaitSync)(GLcontext *, struct gl_sync_object *,
+ GLbitfield, GLuint64);
+ /*@}*/
+#endif
};
@@ -1150,7 +1168,11 @@ typedef struct {
void (GLAPIENTRYP DrawRangeElements)( GLenum mode, GLuint start,
GLuint end, GLsizei count,
GLenum type, const GLvoid *indices );
- /*@}*/
+ void (GLAPIENTRYP MultiDrawElementsEXT)( GLenum mode, const GLsizei *count,
+ GLenum type,
+ const GLvoid **indices,
+ GLsizei primcount);
+ /*@}*/
/**
* \name Eval
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 9b68b3e1162..8cff9ea64a0 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -7751,18 +7751,6 @@ exec_MultiDrawArraysEXT(GLenum mode, GLint * first,
CALL_MultiDrawArraysEXT(ctx->Exec, (mode, first, count, primcount));
}
-/* GL_EXT_multi_draw_arrays */
-static void GLAPIENTRY
-exec_MultiDrawElementsEXT(GLenum mode, const GLsizei * count,
- GLenum type, const GLvoid ** indices,
- GLsizei primcount)
-{
- GET_CURRENT_CONTEXT(ctx);
- FLUSH_VERTICES(ctx, 0);
- CALL_MultiDrawElementsEXT(ctx->Exec,
- (mode, count, type, indices, primcount));
-}
-
/* GL_IBM_multimode_draw_arrays */
static void GLAPIENTRY
exec_MultiModeDrawArraysIBM(const GLenum * mode, const GLint * first,
@@ -8108,7 +8096,6 @@ _mesa_init_dlist_table(struct _glapi_table *table)
/* 148. GL_EXT_multi_draw_arrays */
SET_MultiDrawArraysEXT(table, exec_MultiDrawArraysEXT);
- SET_MultiDrawElementsEXT(table, exec_MultiDrawElementsEXT);
/* 149. GL_EXT_fog_coord */
SET_FogCoordPointerEXT(table, exec_FogCoordPointerEXT);
@@ -8723,6 +8710,7 @@ _mesa_save_vtxfmt_init(GLvertexformat * vfmt)
vfmt->DrawArrays = 0;
vfmt->DrawElements = 0;
vfmt->DrawRangeElements = 0;
+ vfmt->MultiDrawElemementsEXT = 0;
#endif
}
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c
index 67311f71a26..aef6585641e 100644
--- a/src/mesa/main/drawpix.c
+++ b/src/mesa/main/drawpix.c
@@ -264,27 +264,30 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
if (ctx->RenderMode == GL_RENDER) {
/* Truncate, to satisfy conformance tests (matches SGI's OpenGL). */
- const GLfloat epsilon = 0.0001F;
- GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig);
- GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig);
-
- if (ctx->Unpack.BufferObj->Name) {
- /* unpack from PBO */
- if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
- GL_COLOR_INDEX, GL_BITMAP,
- (GLvoid *) bitmap)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBitmap(invalid PBO access)");
- return;
- }
- if (_mesa_bufferobj_mapped(ctx->Unpack.BufferObj)) {
- /* buffer is mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION, "glBitmap(PBO is mapped)");
- return;
+ if (width > 0 && height > 0) {
+ const GLfloat epsilon = 0.0001F;
+ GLint x = IFLOOR(ctx->Current.RasterPos[0] + epsilon - xorig);
+ GLint y = IFLOOR(ctx->Current.RasterPos[1] + epsilon - yorig);
+
+ if (ctx->Unpack.BufferObj->Name) {
+ /* unpack from PBO */
+ if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1,
+ GL_COLOR_INDEX, GL_BITMAP,
+ (GLvoid *) bitmap)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBitmap(invalid PBO access)");
+ return;
+ }
+ if (_mesa_bufferobj_mapped(ctx->Unpack.BufferObj)) {
+ /* buffer is mapped - that's an error */
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBitmap(PBO is mapped)");
+ return;
+ }
}
- }
- ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
+ ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
+ }
}
#if _HAVE_FULL_GL
else if (ctx->RenderMode == GL_FEEDBACK) {
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index ad40bb6e784..9f650dadd37 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -82,6 +82,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ALPHA_TEST\0"
"GL_ALPHA_TEST_FUNC\0"
"GL_ALPHA_TEST_REF\0"
+ "GL_ALREADY_SIGNALED\0"
"GL_ALWAYS\0"
"GL_AMBIENT\0"
"GL_AMBIENT_AND_DIFFUSE\0"
@@ -305,6 +306,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_COMPRESSED_SRGB\0"
"GL_COMPRESSED_SRGB_ALPHA\0"
"GL_COMPRESSED_TEXTURE_FORMATS\0"
+ "GL_CONDITION_SATISFIED\0"
"GL_CONSTANT\0"
"GL_CONSTANT_ALPHA\0"
"GL_CONSTANT_ALPHA_EXT\0"
@@ -944,6 +946,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_RECTANGLE_TEXTURE_SIZE_NV\0"
"GL_MAX_RENDERBUFFER_SIZE_EXT\0"
"GL_MAX_SAMPLES\0"
+ "GL_MAX_SERVER_WAIT_TIMEOUT\0"
"GL_MAX_SHININESS_NV\0"
"GL_MAX_SPOT_EXPONENT_NV\0"
"GL_MAX_TEXTURE_COORDS\0"
@@ -1072,6 +1075,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_OBJECT_PLANE\0"
"GL_OBJECT_SHADER_SOURCE_LENGTH_ARB\0"
"GL_OBJECT_SUBTYPE_ARB\0"
+ "GL_OBJECT_TYPE\0"
"GL_OBJECT_TYPE_ARB\0"
"GL_OBJECT_VALIDATE_STATUS_ARB\0"
"GL_OCCLUSION_TEST_HP\0"
@@ -1452,6 +1456,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_SHARED_TEXTURE_PALETTE_EXT\0"
"GL_SHININESS\0"
"GL_SHORT\0"
+ "GL_SIGNALED\0"
"GL_SIGNED_NORMALIZED\0"
"GL_SINGLE_COLOR\0"
"GL_SINGLE_COLOR_EXT\0"
@@ -1556,6 +1561,12 @@ LONGSTRING static const char enum_string_table[] =
"GL_SUBPIXEL_BITS\0"
"GL_SUBTRACT\0"
"GL_SUBTRACT_ARB\0"
+ "GL_SYNC_CONDITION\0"
+ "GL_SYNC_FENCE\0"
+ "GL_SYNC_FLAGS\0"
+ "GL_SYNC_FLUSH_COMMANDS_BIT\0"
+ "GL_SYNC_GPU_COMMANDS_COMPLETE\0"
+ "GL_SYNC_STATUS\0"
"GL_T\0"
"GL_T2F_C3F_V3F\0"
"GL_T2F_C4F_N3F_V3F\0"
@@ -1752,6 +1763,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_WRAP_R\0"
"GL_TEXTURE_WRAP_S\0"
"GL_TEXTURE_WRAP_T\0"
+ "GL_TIMEOUT_EXPIRED\0"
+ "GL_TIMEOUT_IGNORED\0"
"GL_TIME_ELAPSED_EXT\0"
"GL_TRACK_MATRIX_NV\0"
"GL_TRACK_MATRIX_TRANSFORM_NV\0"
@@ -1779,6 +1792,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_UNPACK_SKIP_PIXELS\0"
"GL_UNPACK_SKIP_ROWS\0"
"GL_UNPACK_SWAP_BYTES\0"
+ "GL_UNSIGNALED\0"
"GL_UNSIGNED_BYTE\0"
"GL_UNSIGNED_BYTE_2_3_3_REV\0"
"GL_UNSIGNED_BYTE_3_3_2\0"
@@ -1861,6 +1875,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_VERTEX_STATE_PROGRAM_NV\0"
"GL_VIEWPORT\0"
"GL_VIEWPORT_BIT\0"
+ "GL_WAIT_FAILED\0"
"GL_WEIGHT_ARRAY_ARB\0"
"GL_WEIGHT_ARRAY_BUFFER_BINDING\0"
"GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB\0"
@@ -1880,7 +1895,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[1842] =
+static const enum_elt all_enums[1857] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -1928,3139 +1943,3168 @@ static const enum_elt all_enums[1842] =
{ 728, 0x00000BC0 }, /* GL_ALPHA_TEST */
{ 742, 0x00000BC1 }, /* GL_ALPHA_TEST_FUNC */
{ 761, 0x00000BC2 }, /* GL_ALPHA_TEST_REF */
- { 779, 0x00000207 }, /* GL_ALWAYS */
- { 789, 0x00001200 }, /* GL_AMBIENT */
- { 800, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */
- { 823, 0x00001501 }, /* GL_AND */
- { 830, 0x00001504 }, /* GL_AND_INVERTED */
- { 846, 0x00001502 }, /* GL_AND_REVERSE */
- { 861, 0x00008892 }, /* GL_ARRAY_BUFFER */
- { 877, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */
- { 901, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING_ARB */
- { 929, 0x00008B85 }, /* GL_ATTACHED_SHADERS */
- { 949, 0x00008645 }, /* GL_ATTRIB_ARRAY_POINTER_NV */
- { 976, 0x00008623 }, /* GL_ATTRIB_ARRAY_SIZE_NV */
- { 1000, 0x00008624 }, /* GL_ATTRIB_ARRAY_STRIDE_NV */
- { 1026, 0x00008625 }, /* GL_ATTRIB_ARRAY_TYPE_NV */
- { 1050, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */
- { 1072, 0x00000D80 }, /* GL_AUTO_NORMAL */
- { 1087, 0x00000409 }, /* GL_AUX0 */
- { 1095, 0x0000040A }, /* GL_AUX1 */
- { 1103, 0x0000040B }, /* GL_AUX2 */
- { 1111, 0x0000040C }, /* GL_AUX3 */
- { 1119, 0x00000C00 }, /* GL_AUX_BUFFERS */
- { 1134, 0x00000405 }, /* GL_BACK */
- { 1142, 0x00000402 }, /* GL_BACK_LEFT */
- { 1155, 0x00000403 }, /* GL_BACK_RIGHT */
- { 1169, 0x000080E0 }, /* GL_BGR */
- { 1176, 0x000080E1 }, /* GL_BGRA */
- { 1184, 0x00001A00 }, /* GL_BITMAP */
- { 1194, 0x00000704 }, /* GL_BITMAP_TOKEN */
- { 1210, 0x00000BE2 }, /* GL_BLEND */
- { 1219, 0x00008005 }, /* GL_BLEND_COLOR */
- { 1234, 0x00008005 }, /* GL_BLEND_COLOR_EXT */
- { 1253, 0x00000BE0 }, /* GL_BLEND_DST */
- { 1266, 0x000080CA }, /* GL_BLEND_DST_ALPHA */
- { 1285, 0x000080C8 }, /* GL_BLEND_DST_RGB */
- { 1302, 0x00008009 }, /* GL_BLEND_EQUATION */
- { 1320, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */
- { 1344, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */
- { 1372, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */
- { 1394, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */
- { 1416, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */
- { 1442, 0x00000BE1 }, /* GL_BLEND_SRC */
- { 1455, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */
- { 1474, 0x000080C9 }, /* GL_BLEND_SRC_RGB */
- { 1491, 0x00001905 }, /* GL_BLUE */
- { 1499, 0x00000D1B }, /* GL_BLUE_BIAS */
- { 1512, 0x00000D54 }, /* GL_BLUE_BITS */
- { 1525, 0x00000D1A }, /* GL_BLUE_SCALE */
- { 1539, 0x00008B56 }, /* GL_BOOL */
- { 1547, 0x00008B56 }, /* GL_BOOL_ARB */
- { 1559, 0x00008B57 }, /* GL_BOOL_VEC2 */
- { 1572, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */
- { 1589, 0x00008B58 }, /* GL_BOOL_VEC3 */
- { 1602, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */
- { 1619, 0x00008B59 }, /* GL_BOOL_VEC4 */
- { 1632, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */
- { 1649, 0x000088BB }, /* GL_BUFFER_ACCESS */
- { 1666, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */
- { 1687, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
- { 1718, 0x000088BC }, /* GL_BUFFER_MAPPED */
- { 1735, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */
- { 1756, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */
- { 1778, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */
- { 1804, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
- { 1838, 0x00008764 }, /* GL_BUFFER_SIZE */
- { 1853, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */
- { 1872, 0x00008765 }, /* GL_BUFFER_USAGE */
- { 1888, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */
- { 1908, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */
- { 1927, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */
- { 1953, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */
- { 1976, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
- { 2004, 0x0000877C }, /* GL_BUMP_TARGET_ATI */
- { 2023, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */
- { 2045, 0x00001400 }, /* GL_BYTE */
- { 2053, 0x00002A24 }, /* GL_C3F_V3F */
- { 2064, 0x00002A26 }, /* GL_C4F_N3F_V3F */
- { 2079, 0x00002A22 }, /* GL_C4UB_V2F */
- { 2091, 0x00002A23 }, /* GL_C4UB_V3F */
- { 2103, 0x00000901 }, /* GL_CCW */
- { 2110, 0x00002900 }, /* GL_CLAMP */
- { 2119, 0x0000812D }, /* GL_CLAMP_TO_BORDER */
- { 2138, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */
- { 2161, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */
- { 2185, 0x0000812F }, /* GL_CLAMP_TO_EDGE */
- { 2202, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */
- { 2224, 0x00001500 }, /* GL_CLEAR */
- { 2233, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */
- { 2258, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */
- { 2287, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */
- { 2313, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
- { 2342, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */
- { 2368, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */
- { 2395, 0x00003000 }, /* GL_CLIP_PLANE0 */
- { 2410, 0x00003001 }, /* GL_CLIP_PLANE1 */
- { 2425, 0x00003002 }, /* GL_CLIP_PLANE2 */
- { 2440, 0x00003003 }, /* GL_CLIP_PLANE3 */
- { 2455, 0x00003004 }, /* GL_CLIP_PLANE4 */
- { 2470, 0x00003005 }, /* GL_CLIP_PLANE5 */
- { 2485, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- { 2518, 0x00000A00 }, /* GL_COEFF */
- { 2527, 0x00001800 }, /* GL_COLOR */
- { 2536, 0x00008076 }, /* GL_COLOR_ARRAY */
- { 2551, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- { 2581, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 2615, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */
- { 2638, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */
- { 2658, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */
- { 2680, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */
- { 2700, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */
- { 2721, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */
- { 2746, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */
- { 2767, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */
- { 2789, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */
- { 2815, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */
- { 2837, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */
- { 2863, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */
- { 2885, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */
- { 2911, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */
- { 2933, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */
- { 2959, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */
- { 2981, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */
- { 3007, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */
- { 3029, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */
- { 3055, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */
- { 3080, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */
- { 3101, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */
- { 3126, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */
- { 3147, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */
- { 3172, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */
- { 3193, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */
- { 3218, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */
- { 3239, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */
- { 3264, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */
- { 3285, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */
- { 3310, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */
- { 3331, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */
- { 3356, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */
- { 3377, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */
- { 3402, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */
- { 3423, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */
- { 3448, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */
- { 3468, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */
- { 3489, 0x00001900 }, /* GL_COLOR_INDEX */
- { 3504, 0x00001603 }, /* GL_COLOR_INDEXES */
- { 3521, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */
- { 3539, 0x00000B57 }, /* GL_COLOR_MATERIAL */
- { 3557, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */
- { 3580, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */
- { 3608, 0x000080B1 }, /* GL_COLOR_MATRIX */
- { 3624, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */
- { 3644, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */
- { 3672, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 3704, 0x00008458 }, /* GL_COLOR_SUM */
- { 3717, 0x00008458 }, /* GL_COLOR_SUM_ARB */
- { 3734, 0x000080D0 }, /* GL_COLOR_TABLE */
- { 3749, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */
- { 3775, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */
- { 3805, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */
- { 3835, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */
- { 3855, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */
- { 3879, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */
- { 3904, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */
- { 3933, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */
- { 3962, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */
- { 3984, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */
- { 4010, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */
- { 4036, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */
- { 4062, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */
- { 4092, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */
- { 4122, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */
- { 4152, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */
- { 4186, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */
- { 4220, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
- { 4250, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */
- { 4284, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */
- { 4318, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */
- { 4342, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */
- { 4370, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */
- { 4398, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */
- { 4419, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */
- { 4444, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */
- { 4465, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */
- { 4490, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */
- { 4515, 0x00000C23 }, /* GL_COLOR_WRITEMASK */
- { 4534, 0x00008570 }, /* GL_COMBINE */
- { 4545, 0x00008503 }, /* GL_COMBINE4 */
- { 4557, 0x00008572 }, /* GL_COMBINE_ALPHA */
- { 4574, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */
- { 4595, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */
- { 4616, 0x00008570 }, /* GL_COMBINE_ARB */
- { 4631, 0x00008570 }, /* GL_COMBINE_EXT */
- { 4646, 0x00008571 }, /* GL_COMBINE_RGB */
- { 4661, 0x00008571 }, /* GL_COMBINE_RGB_ARB */
- { 4680, 0x00008571 }, /* GL_COMBINE_RGB_EXT */
- { 4699, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */
- { 4735, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
- { 4759, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
- { 4787, 0x00001300 }, /* GL_COMPILE */
- { 4798, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
- { 4821, 0x00008B81 }, /* GL_COMPILE_STATUS */
- { 4839, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
- { 4859, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
- { 4883, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
- { 4907, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
- { 4935, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
- { 4959, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- { 4989, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
- { 5023, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
- { 5051, 0x000084ED }, /* GL_COMPRESSED_RGB */
- { 5069, 0x000084EE }, /* GL_COMPRESSED_RGBA */
- { 5088, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
- { 5111, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- { 5140, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- { 5173, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- { 5206, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- { 5239, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
- { 5261, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- { 5289, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- { 5321, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */
- { 5346, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
- { 5377, 0x00008C48 }, /* GL_COMPRESSED_SRGB */
- { 5396, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */
- { 5421, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
- { 5451, 0x00008576 }, /* GL_CONSTANT */
- { 5463, 0x00008003 }, /* GL_CONSTANT_ALPHA */
- { 5481, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
- { 5503, 0x00008576 }, /* GL_CONSTANT_ARB */
- { 5519, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
- { 5543, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
- { 5565, 0x00008001 }, /* GL_CONSTANT_COLOR */
- { 5583, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
- { 5605, 0x00008576 }, /* GL_CONSTANT_EXT */
- { 5621, 0x00008010 }, /* GL_CONVOLUTION_1D */
- { 5639, 0x00008011 }, /* GL_CONVOLUTION_2D */
- { 5657, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
- { 5685, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
- { 5716, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
- { 5743, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
- { 5774, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
- { 5801, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
- { 5832, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
- { 5860, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
- { 5892, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
- { 5914, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
- { 5940, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
- { 5962, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
- { 5988, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
- { 6009, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
- { 6034, 0x00008862 }, /* GL_COORD_REPLACE */
- { 6051, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
- { 6072, 0x00008862 }, /* GL_COORD_REPLACE_NV */
- { 6092, 0x00001503 }, /* GL_COPY */
- { 6100, 0x0000150C }, /* GL_COPY_INVERTED */
- { 6117, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
- { 6137, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
- { 6157, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
- { 6178, 0x00000B44 }, /* GL_CULL_FACE */
- { 6191, 0x00000B45 }, /* GL_CULL_FACE_MODE */
- { 6209, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
- { 6228, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- { 6260, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- { 6295, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
- { 6316, 0x00000001 }, /* GL_CURRENT_BIT */
- { 6331, 0x00000B00 }, /* GL_CURRENT_COLOR */
- { 6348, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
- { 6369, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
- { 6395, 0x00000B01 }, /* GL_CURRENT_INDEX */
- { 6412, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
- { 6434, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
- { 6462, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
- { 6483, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- { 6517, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
- { 6550, 0x00000B02 }, /* GL_CURRENT_NORMAL */
- { 6568, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- { 6598, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
- { 6617, 0x00008865 }, /* GL_CURRENT_QUERY */
- { 6634, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
- { 6655, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
- { 6679, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
- { 6706, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
- { 6730, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
- { 6757, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
- { 6790, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
- { 6824, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- { 6857, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
- { 6884, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
- { 6910, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
- { 6935, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
- { 6964, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
- { 6986, 0x00000900 }, /* GL_CW */
- { 6992, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
- { 7013, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
- { 7034, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
- { 7054, 0x00002101 }, /* GL_DECAL */
- { 7063, 0x00001E03 }, /* GL_DECR */
- { 7071, 0x00008508 }, /* GL_DECR_WRAP */
- { 7084, 0x00008508 }, /* GL_DECR_WRAP_EXT */
- { 7101, 0x00008B80 }, /* GL_DELETE_STATUS */
- { 7118, 0x00001801 }, /* GL_DEPTH */
- { 7127, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
- { 7147, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
- { 7167, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
- { 7191, 0x00000D1F }, /* GL_DEPTH_BIAS */
- { 7205, 0x00000D56 }, /* GL_DEPTH_BITS */
- { 7219, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
- { 7239, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
- { 7264, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
- { 7284, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
- { 7302, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
- { 7323, 0x00001902 }, /* GL_DEPTH_COMPONENT */
- { 7342, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
- { 7363, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
- { 7388, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
- { 7414, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
- { 7435, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
- { 7460, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
- { 7486, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
- { 7507, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
- { 7532, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
- { 7558, 0x00000B74 }, /* GL_DEPTH_FUNC */
- { 7572, 0x00000B70 }, /* GL_DEPTH_RANGE */
- { 7587, 0x00000D1E }, /* GL_DEPTH_SCALE */
- { 7602, 0x000084F9 }, /* GL_DEPTH_STENCIL */
- { 7619, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
- { 7647, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
- { 7667, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- { 7695, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- { 7723, 0x00000B71 }, /* GL_DEPTH_TEST */
- { 7737, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
- { 7759, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
- { 7785, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
- { 7804, 0x00001201 }, /* GL_DIFFUSE */
- { 7815, 0x00000BD0 }, /* GL_DITHER */
- { 7825, 0x00000A02 }, /* GL_DOMAIN */
- { 7835, 0x00001100 }, /* GL_DONT_CARE */
- { 7848, 0x000086AE }, /* GL_DOT3_RGB */
- { 7860, 0x000086AF }, /* GL_DOT3_RGBA */
- { 7873, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
- { 7890, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
- { 7907, 0x000086AE }, /* GL_DOT3_RGB_ARB */
- { 7923, 0x00008740 }, /* GL_DOT3_RGB_EXT */
- { 7939, 0x0000140A }, /* GL_DOUBLE */
- { 7949, 0x00000C32 }, /* GL_DOUBLEBUFFER */
- { 7965, 0x00000C01 }, /* GL_DRAW_BUFFER */
- { 7980, 0x00008825 }, /* GL_DRAW_BUFFER0 */
- { 7996, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
- { 8016, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
- { 8036, 0x00008826 }, /* GL_DRAW_BUFFER1 */
- { 8052, 0x0000882F }, /* GL_DRAW_BUFFER10 */
- { 8069, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
- { 8090, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
- { 8111, 0x00008830 }, /* GL_DRAW_BUFFER11 */
- { 8128, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
- { 8149, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
- { 8170, 0x00008831 }, /* GL_DRAW_BUFFER12 */
- { 8187, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
- { 8208, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
- { 8229, 0x00008832 }, /* GL_DRAW_BUFFER13 */
- { 8246, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
- { 8267, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
- { 8288, 0x00008833 }, /* GL_DRAW_BUFFER14 */
- { 8305, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
- { 8326, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
- { 8347, 0x00008834 }, /* GL_DRAW_BUFFER15 */
- { 8364, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
- { 8385, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
- { 8406, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
- { 8426, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
- { 8446, 0x00008827 }, /* GL_DRAW_BUFFER2 */
- { 8462, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
- { 8482, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
- { 8502, 0x00008828 }, /* GL_DRAW_BUFFER3 */
- { 8518, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
- { 8538, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
- { 8558, 0x00008829 }, /* GL_DRAW_BUFFER4 */
- { 8574, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
- { 8594, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
- { 8614, 0x0000882A }, /* GL_DRAW_BUFFER5 */
- { 8630, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
- { 8650, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
- { 8670, 0x0000882B }, /* GL_DRAW_BUFFER6 */
- { 8686, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
- { 8706, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
- { 8726, 0x0000882C }, /* GL_DRAW_BUFFER7 */
- { 8742, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
- { 8762, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
- { 8782, 0x0000882D }, /* GL_DRAW_BUFFER8 */
- { 8798, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
- { 8818, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
- { 8838, 0x0000882E }, /* GL_DRAW_BUFFER9 */
- { 8854, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
- { 8874, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
- { 8894, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
- { 8914, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- { 8946, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
- { 8970, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
- { 8990, 0x00000304 }, /* GL_DST_ALPHA */
- { 9003, 0x00000306 }, /* GL_DST_COLOR */
- { 9016, 0x0000877A }, /* GL_DU8DV8_ATI */
- { 9030, 0x00008779 }, /* GL_DUDV_ATI */
- { 9042, 0x000088EA }, /* GL_DYNAMIC_COPY */
- { 9058, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
- { 9078, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
- { 9094, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
- { 9114, 0x000088E9 }, /* GL_DYNAMIC_READ */
- { 9130, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
- { 9150, 0x00000B43 }, /* GL_EDGE_FLAG */
- { 9163, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
- { 9182, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- { 9216, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
- { 9254, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
- { 9281, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- { 9307, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
- { 9331, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- { 9363, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
- { 9399, 0x00001600 }, /* GL_EMISSION */
- { 9411, 0x00002000 }, /* GL_ENABLE_BIT */
- { 9425, 0x00000202 }, /* GL_EQUAL */
- { 9434, 0x00001509 }, /* GL_EQUIV */
- { 9443, 0x00010000 }, /* GL_EVAL_BIT */
- { 9455, 0x00000800 }, /* GL_EXP */
- { 9462, 0x00000801 }, /* GL_EXP2 */
- { 9470, 0x00001F03 }, /* GL_EXTENSIONS */
- { 9484, 0x00002400 }, /* GL_EYE_LINEAR */
- { 9498, 0x00002502 }, /* GL_EYE_PLANE */
- { 9511, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
- { 9536, 0x0000855B }, /* GL_EYE_RADIAL_NV */
- { 9553, 0x00000000 }, /* GL_FALSE */
- { 9562, 0x00001101 }, /* GL_FASTEST */
- { 9573, 0x00001C01 }, /* GL_FEEDBACK */
- { 9585, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
- { 9612, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
- { 9636, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
- { 9660, 0x00001B02 }, /* GL_FILL */
- { 9668, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
- { 9699, 0x00001D00 }, /* GL_FLAT */
- { 9707, 0x00001406 }, /* GL_FLOAT */
- { 9716, 0x00008B5A }, /* GL_FLOAT_MAT2 */
- { 9730, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
- { 9748, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
- { 9764, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
- { 9780, 0x00008B5B }, /* GL_FLOAT_MAT3 */
- { 9794, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
- { 9812, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
- { 9828, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
- { 9844, 0x00008B5C }, /* GL_FLOAT_MAT4 */
- { 9858, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
- { 9876, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
- { 9892, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
- { 9908, 0x00008B50 }, /* GL_FLOAT_VEC2 */
- { 9922, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
- { 9940, 0x00008B51 }, /* GL_FLOAT_VEC3 */
- { 9954, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
- { 9972, 0x00008B52 }, /* GL_FLOAT_VEC4 */
- { 9986, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
- { 10004, 0x00000B60 }, /* GL_FOG */
- { 10011, 0x00000080 }, /* GL_FOG_BIT */
- { 10022, 0x00000B66 }, /* GL_FOG_COLOR */
- { 10035, 0x00008451 }, /* GL_FOG_COORD */
- { 10048, 0x00008451 }, /* GL_FOG_COORDINATE */
- { 10066, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
- { 10090, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- { 10129, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
- { 10172, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- { 10204, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- { 10235, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- { 10264, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
- { 10289, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
- { 10308, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
- { 10342, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
- { 10369, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
- { 10395, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
- { 10419, 0x00008450 }, /* GL_FOG_COORD_SRC */
- { 10436, 0x00000B62 }, /* GL_FOG_DENSITY */
- { 10451, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
- { 10475, 0x00000B64 }, /* GL_FOG_END */
- { 10486, 0x00000C54 }, /* GL_FOG_HINT */
- { 10498, 0x00000B61 }, /* GL_FOG_INDEX */
- { 10511, 0x00000B65 }, /* GL_FOG_MODE */
- { 10523, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
- { 10542, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
- { 10567, 0x00000B63 }, /* GL_FOG_START */
- { 10580, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
- { 10598, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
- { 10622, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
- { 10641, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
- { 10664, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- { 10699, 0x00008D40 }, /* GL_FRAMEBUFFER */
- { 10714, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- { 10751, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- { 10787, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- { 10828, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- { 10869, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- { 10906, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- { 10943, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- { 10981, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- { 11023, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- { 11061, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- { 11103, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- { 11138, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- { 11177, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- { 11226, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- { 11274, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- { 11326, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- { 11366, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
- { 11410, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- { 11450, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- { 11494, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
- { 11521, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
- { 11545, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- { 11573, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
- { 11596, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
- { 11615, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- { 11652, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- { 11693, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- { 11734, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- { 11776, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- { 11827, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- { 11865, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- { 11910, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- { 11959, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- { 11997, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- { 12039, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- { 12071, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
- { 12096, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
- { 12123, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- { 12154, 0x00000404 }, /* GL_FRONT */
- { 12163, 0x00000408 }, /* GL_FRONT_AND_BACK */
- { 12181, 0x00000B46 }, /* GL_FRONT_FACE */
- { 12195, 0x00000400 }, /* GL_FRONT_LEFT */
- { 12209, 0x00000401 }, /* GL_FRONT_RIGHT */
- { 12224, 0x00008006 }, /* GL_FUNC_ADD */
- { 12236, 0x00008006 }, /* GL_FUNC_ADD_EXT */
- { 12252, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
- { 12277, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
- { 12306, 0x0000800A }, /* GL_FUNC_SUBTRACT */
- { 12323, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
- { 12344, 0x00008191 }, /* GL_GENERATE_MIPMAP */
- { 12363, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
- { 12387, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
- { 12416, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
- { 12440, 0x00000206 }, /* GL_GEQUAL */
- { 12450, 0x00000204 }, /* GL_GREATER */
- { 12461, 0x00001904 }, /* GL_GREEN */
- { 12470, 0x00000D19 }, /* GL_GREEN_BIAS */
- { 12484, 0x00000D53 }, /* GL_GREEN_BITS */
- { 12498, 0x00000D18 }, /* GL_GREEN_SCALE */
- { 12513, 0x00008000 }, /* GL_HINT_BIT */
- { 12525, 0x00008024 }, /* GL_HISTOGRAM */
- { 12538, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
- { 12562, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
- { 12590, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
- { 12613, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
- { 12640, 0x00008024 }, /* GL_HISTOGRAM_EXT */
- { 12657, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
- { 12677, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
- { 12701, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
- { 12725, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
- { 12753, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- { 12781, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
- { 12813, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
- { 12835, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
- { 12861, 0x0000802D }, /* GL_HISTOGRAM_SINK */
- { 12879, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
- { 12901, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
- { 12920, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
- { 12943, 0x0000862A }, /* GL_IDENTITY_NV */
- { 12958, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
- { 12978, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- { 13018, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- { 13056, 0x00001E02 }, /* GL_INCR */
- { 13064, 0x00008507 }, /* GL_INCR_WRAP */
- { 13077, 0x00008507 }, /* GL_INCR_WRAP_EXT */
- { 13094, 0x00008222 }, /* GL_INDEX */
- { 13103, 0x00008077 }, /* GL_INDEX_ARRAY */
- { 13118, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- { 13148, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
- { 13182, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
- { 13205, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
- { 13227, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
- { 13247, 0x00000D51 }, /* GL_INDEX_BITS */
- { 13261, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
- { 13282, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
- { 13300, 0x00000C30 }, /* GL_INDEX_MODE */
- { 13314, 0x00000D13 }, /* GL_INDEX_OFFSET */
- { 13330, 0x00000D12 }, /* GL_INDEX_SHIFT */
- { 13345, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
- { 13364, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
- { 13383, 0x00001404 }, /* GL_INT */
- { 13390, 0x00008049 }, /* GL_INTENSITY */
- { 13403, 0x0000804C }, /* GL_INTENSITY12 */
- { 13418, 0x0000804C }, /* GL_INTENSITY12_EXT */
- { 13437, 0x0000804D }, /* GL_INTENSITY16 */
- { 13452, 0x0000804D }, /* GL_INTENSITY16_EXT */
- { 13471, 0x0000804A }, /* GL_INTENSITY4 */
- { 13485, 0x0000804A }, /* GL_INTENSITY4_EXT */
- { 13503, 0x0000804B }, /* GL_INTENSITY8 */
- { 13517, 0x0000804B }, /* GL_INTENSITY8_EXT */
- { 13535, 0x00008049 }, /* GL_INTENSITY_EXT */
- { 13552, 0x00008575 }, /* GL_INTERPOLATE */
- { 13567, 0x00008575 }, /* GL_INTERPOLATE_ARB */
- { 13586, 0x00008575 }, /* GL_INTERPOLATE_EXT */
- { 13605, 0x00008B53 }, /* GL_INT_VEC2 */
- { 13617, 0x00008B53 }, /* GL_INT_VEC2_ARB */
- { 13633, 0x00008B54 }, /* GL_INT_VEC3 */
- { 13645, 0x00008B54 }, /* GL_INT_VEC3_ARB */
- { 13661, 0x00008B55 }, /* GL_INT_VEC4 */
- { 13673, 0x00008B55 }, /* GL_INT_VEC4_ARB */
- { 13689, 0x00000500 }, /* GL_INVALID_ENUM */
- { 13705, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
- { 13738, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
- { 13775, 0x00000502 }, /* GL_INVALID_OPERATION */
- { 13796, 0x00000501 }, /* GL_INVALID_VALUE */
- { 13813, 0x0000862B }, /* GL_INVERSE_NV */
- { 13827, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
- { 13851, 0x0000150A }, /* GL_INVERT */
- { 13861, 0x00001E00 }, /* GL_KEEP */
- { 13869, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
- { 13899, 0x00000406 }, /* GL_LEFT */
- { 13907, 0x00000203 }, /* GL_LEQUAL */
- { 13917, 0x00000201 }, /* GL_LESS */
- { 13925, 0x00004000 }, /* GL_LIGHT0 */
- { 13935, 0x00004001 }, /* GL_LIGHT1 */
- { 13945, 0x00004002 }, /* GL_LIGHT2 */
- { 13955, 0x00004003 }, /* GL_LIGHT3 */
- { 13965, 0x00004004 }, /* GL_LIGHT4 */
- { 13975, 0x00004005 }, /* GL_LIGHT5 */
- { 13985, 0x00004006 }, /* GL_LIGHT6 */
- { 13995, 0x00004007 }, /* GL_LIGHT7 */
- { 14005, 0x00000B50 }, /* GL_LIGHTING */
- { 14017, 0x00000040 }, /* GL_LIGHTING_BIT */
- { 14033, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
- { 14056, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- { 14085, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
- { 14118, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- { 14146, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
- { 14170, 0x00001B01 }, /* GL_LINE */
- { 14178, 0x00002601 }, /* GL_LINEAR */
- { 14188, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
- { 14210, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- { 14240, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- { 14271, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
- { 14295, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
- { 14320, 0x00000001 }, /* GL_LINES */
- { 14329, 0x00000004 }, /* GL_LINE_BIT */
- { 14341, 0x00000002 }, /* GL_LINE_LOOP */
- { 14354, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
- { 14374, 0x00000B20 }, /* GL_LINE_SMOOTH */
- { 14389, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
- { 14409, 0x00000B24 }, /* GL_LINE_STIPPLE */
- { 14425, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
- { 14449, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
- { 14472, 0x00000003 }, /* GL_LINE_STRIP */
- { 14486, 0x00000702 }, /* GL_LINE_TOKEN */
- { 14500, 0x00000B21 }, /* GL_LINE_WIDTH */
- { 14514, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
- { 14540, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
- { 14560, 0x00008B82 }, /* GL_LINK_STATUS */
- { 14575, 0x00000B32 }, /* GL_LIST_BASE */
- { 14588, 0x00020000 }, /* GL_LIST_BIT */
- { 14600, 0x00000B33 }, /* GL_LIST_INDEX */
- { 14614, 0x00000B30 }, /* GL_LIST_MODE */
- { 14627, 0x00000101 }, /* GL_LOAD */
- { 14635, 0x00000BF1 }, /* GL_LOGIC_OP */
- { 14647, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
- { 14664, 0x00008CA1 }, /* GL_LOWER_LEFT */
- { 14678, 0x00001909 }, /* GL_LUMINANCE */
- { 14691, 0x00008041 }, /* GL_LUMINANCE12 */
- { 14706, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
- { 14729, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
- { 14756, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
- { 14778, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
- { 14804, 0x00008041 }, /* GL_LUMINANCE12_EXT */
- { 14823, 0x00008042 }, /* GL_LUMINANCE16 */
- { 14838, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
- { 14861, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
- { 14888, 0x00008042 }, /* GL_LUMINANCE16_EXT */
- { 14907, 0x0000803F }, /* GL_LUMINANCE4 */
- { 14921, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
- { 14942, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
- { 14967, 0x0000803F }, /* GL_LUMINANCE4_EXT */
- { 14985, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
- { 15006, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
- { 15031, 0x00008040 }, /* GL_LUMINANCE8 */
- { 15045, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
- { 15066, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
- { 15091, 0x00008040 }, /* GL_LUMINANCE8_EXT */
- { 15109, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
- { 15128, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
- { 15144, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
- { 15164, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
- { 15186, 0x00000D91 }, /* GL_MAP1_INDEX */
- { 15200, 0x00000D92 }, /* GL_MAP1_NORMAL */
- { 15215, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
- { 15239, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
- { 15263, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
- { 15287, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
- { 15311, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
- { 15328, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
- { 15345, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- { 15373, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- { 15402, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- { 15431, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- { 15460, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- { 15489, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- { 15518, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- { 15547, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- { 15575, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- { 15603, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- { 15631, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- { 15659, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- { 15687, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- { 15715, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- { 15743, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- { 15771, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- { 15799, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
- { 15815, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
- { 15835, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
- { 15857, 0x00000DB1 }, /* GL_MAP2_INDEX */
- { 15871, 0x00000DB2 }, /* GL_MAP2_NORMAL */
- { 15886, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
- { 15910, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
- { 15934, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
- { 15958, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
- { 15982, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
- { 15999, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
- { 16016, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- { 16044, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- { 16073, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- { 16102, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- { 16131, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- { 16160, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- { 16189, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- { 16218, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- { 16246, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- { 16274, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- { 16302, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- { 16330, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- { 16358, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- { 16386, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
- { 16414, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- { 16442, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- { 16470, 0x00000D10 }, /* GL_MAP_COLOR */
- { 16483, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
- { 16509, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
- { 16538, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
- { 16566, 0x00000001 }, /* GL_MAP_READ_BIT */
- { 16582, 0x00000D11 }, /* GL_MAP_STENCIL */
- { 16597, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
- { 16623, 0x00000002 }, /* GL_MAP_WRITE_BIT */
- { 16640, 0x000088C0 }, /* GL_MATRIX0_ARB */
- { 16655, 0x00008630 }, /* GL_MATRIX0_NV */
- { 16669, 0x000088CA }, /* GL_MATRIX10_ARB */
- { 16685, 0x000088CB }, /* GL_MATRIX11_ARB */
- { 16701, 0x000088CC }, /* GL_MATRIX12_ARB */
- { 16717, 0x000088CD }, /* GL_MATRIX13_ARB */
- { 16733, 0x000088CE }, /* GL_MATRIX14_ARB */
- { 16749, 0x000088CF }, /* GL_MATRIX15_ARB */
- { 16765, 0x000088D0 }, /* GL_MATRIX16_ARB */
- { 16781, 0x000088D1 }, /* GL_MATRIX17_ARB */
- { 16797, 0x000088D2 }, /* GL_MATRIX18_ARB */
- { 16813, 0x000088D3 }, /* GL_MATRIX19_ARB */
- { 16829, 0x000088C1 }, /* GL_MATRIX1_ARB */
- { 16844, 0x00008631 }, /* GL_MATRIX1_NV */
- { 16858, 0x000088D4 }, /* GL_MATRIX20_ARB */
- { 16874, 0x000088D5 }, /* GL_MATRIX21_ARB */
- { 16890, 0x000088D6 }, /* GL_MATRIX22_ARB */
- { 16906, 0x000088D7 }, /* GL_MATRIX23_ARB */
- { 16922, 0x000088D8 }, /* GL_MATRIX24_ARB */
- { 16938, 0x000088D9 }, /* GL_MATRIX25_ARB */
- { 16954, 0x000088DA }, /* GL_MATRIX26_ARB */
- { 16970, 0x000088DB }, /* GL_MATRIX27_ARB */
- { 16986, 0x000088DC }, /* GL_MATRIX28_ARB */
- { 17002, 0x000088DD }, /* GL_MATRIX29_ARB */
- { 17018, 0x000088C2 }, /* GL_MATRIX2_ARB */
- { 17033, 0x00008632 }, /* GL_MATRIX2_NV */
- { 17047, 0x000088DE }, /* GL_MATRIX30_ARB */
- { 17063, 0x000088DF }, /* GL_MATRIX31_ARB */
- { 17079, 0x000088C3 }, /* GL_MATRIX3_ARB */
- { 17094, 0x00008633 }, /* GL_MATRIX3_NV */
- { 17108, 0x000088C4 }, /* GL_MATRIX4_ARB */
- { 17123, 0x00008634 }, /* GL_MATRIX4_NV */
- { 17137, 0x000088C5 }, /* GL_MATRIX5_ARB */
- { 17152, 0x00008635 }, /* GL_MATRIX5_NV */
- { 17166, 0x000088C6 }, /* GL_MATRIX6_ARB */
- { 17181, 0x00008636 }, /* GL_MATRIX6_NV */
- { 17195, 0x000088C7 }, /* GL_MATRIX7_ARB */
- { 17210, 0x00008637 }, /* GL_MATRIX7_NV */
- { 17224, 0x000088C8 }, /* GL_MATRIX8_ARB */
- { 17239, 0x000088C9 }, /* GL_MATRIX9_ARB */
- { 17254, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
- { 17280, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- { 17314, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- { 17345, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- { 17378, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- { 17409, 0x00000BA0 }, /* GL_MATRIX_MODE */
- { 17424, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
- { 17446, 0x00008008 }, /* GL_MAX */
- { 17453, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
- { 17476, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- { 17508, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
- { 17534, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- { 17567, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- { 17593, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 17627, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
- { 17646, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- { 17675, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- { 17707, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 17743, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- { 17779, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
- { 17819, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
- { 17845, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
- { 17875, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
- { 17900, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
- { 17929, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- { 17958, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
- { 17991, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
- { 18011, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
- { 18035, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
- { 18059, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
- { 18083, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
- { 18108, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
- { 18126, 0x00008008 }, /* GL_MAX_EXT */
- { 18137, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- { 18172, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
- { 18211, 0x00000D31 }, /* GL_MAX_LIGHTS */
- { 18225, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
- { 18245, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- { 18283, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- { 18312, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
- { 18336, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
- { 18364, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
- { 18387, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 18424, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 18460, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- { 18487, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- { 18516, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- { 18550, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- { 18586, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- { 18613, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- { 18645, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- { 18681, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- { 18710, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- { 18739, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
- { 18767, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- { 18805, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 18849, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 18892, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 18926, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 18965, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 19002, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 19040, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 19083, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 19126, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- { 19156, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- { 19187, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 19223, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 19259, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
- { 19289, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- { 19323, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
- { 19356, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- { 19385, 0x00008D57 }, /* GL_MAX_SAMPLES */
- { 19400, 0x00008504 }, /* GL_MAX_SHININESS_NV */
- { 19420, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
- { 19444, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
- { 19466, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
- { 19492, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- { 19519, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
- { 19550, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
- { 19574, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- { 19608, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
- { 19628, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
- { 19655, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
- { 19676, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
- { 19701, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
- { 19726, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
- { 19761, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
- { 19783, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
- { 19809, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
- { 19831, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
- { 19857, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- { 19891, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
- { 19929, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- { 19962, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
- { 19999, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
- { 20023, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
- { 20044, 0x00008007 }, /* GL_MIN */
- { 20051, 0x0000802E }, /* GL_MINMAX */
- { 20061, 0x0000802E }, /* GL_MINMAX_EXT */
- { 20075, 0x0000802F }, /* GL_MINMAX_FORMAT */
- { 20092, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
- { 20113, 0x00008030 }, /* GL_MINMAX_SINK */
- { 20128, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
- { 20147, 0x00008007 }, /* GL_MIN_EXT */
- { 20158, 0x00008370 }, /* GL_MIRRORED_REPEAT */
- { 20177, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
- { 20200, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
- { 20223, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
- { 20243, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
- { 20263, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- { 20293, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
- { 20321, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- { 20349, 0x00001700 }, /* GL_MODELVIEW */
- { 20362, 0x00001700 }, /* GL_MODELVIEW0_ARB */
- { 20380, 0x0000872A }, /* GL_MODELVIEW10_ARB */
- { 20399, 0x0000872B }, /* GL_MODELVIEW11_ARB */
- { 20418, 0x0000872C }, /* GL_MODELVIEW12_ARB */
- { 20437, 0x0000872D }, /* GL_MODELVIEW13_ARB */
- { 20456, 0x0000872E }, /* GL_MODELVIEW14_ARB */
- { 20475, 0x0000872F }, /* GL_MODELVIEW15_ARB */
- { 20494, 0x00008730 }, /* GL_MODELVIEW16_ARB */
- { 20513, 0x00008731 }, /* GL_MODELVIEW17_ARB */
- { 20532, 0x00008732 }, /* GL_MODELVIEW18_ARB */
- { 20551, 0x00008733 }, /* GL_MODELVIEW19_ARB */
- { 20570, 0x0000850A }, /* GL_MODELVIEW1_ARB */
- { 20588, 0x00008734 }, /* GL_MODELVIEW20_ARB */
- { 20607, 0x00008735 }, /* GL_MODELVIEW21_ARB */
- { 20626, 0x00008736 }, /* GL_MODELVIEW22_ARB */
- { 20645, 0x00008737 }, /* GL_MODELVIEW23_ARB */
- { 20664, 0x00008738 }, /* GL_MODELVIEW24_ARB */
- { 20683, 0x00008739 }, /* GL_MODELVIEW25_ARB */
- { 20702, 0x0000873A }, /* GL_MODELVIEW26_ARB */
- { 20721, 0x0000873B }, /* GL_MODELVIEW27_ARB */
- { 20740, 0x0000873C }, /* GL_MODELVIEW28_ARB */
- { 20759, 0x0000873D }, /* GL_MODELVIEW29_ARB */
- { 20778, 0x00008722 }, /* GL_MODELVIEW2_ARB */
- { 20796, 0x0000873E }, /* GL_MODELVIEW30_ARB */
- { 20815, 0x0000873F }, /* GL_MODELVIEW31_ARB */
- { 20834, 0x00008723 }, /* GL_MODELVIEW3_ARB */
- { 20852, 0x00008724 }, /* GL_MODELVIEW4_ARB */
- { 20870, 0x00008725 }, /* GL_MODELVIEW5_ARB */
- { 20888, 0x00008726 }, /* GL_MODELVIEW6_ARB */
- { 20906, 0x00008727 }, /* GL_MODELVIEW7_ARB */
- { 20924, 0x00008728 }, /* GL_MODELVIEW8_ARB */
- { 20942, 0x00008729 }, /* GL_MODELVIEW9_ARB */
- { 20960, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
- { 20980, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
- { 21007, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
- { 21032, 0x00002100 }, /* GL_MODULATE */
- { 21044, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
- { 21064, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
- { 21091, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
- { 21116, 0x00000103 }, /* GL_MULT */
- { 21124, 0x0000809D }, /* GL_MULTISAMPLE */
- { 21139, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
- { 21159, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
- { 21178, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
- { 21197, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
- { 21221, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
- { 21244, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- { 21274, 0x00002A25 }, /* GL_N3F_V3F */
- { 21285, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
- { 21305, 0x0000150E }, /* GL_NAND */
- { 21313, 0x00002600 }, /* GL_NEAREST */
- { 21324, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- { 21355, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- { 21387, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
- { 21412, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
- { 21438, 0x00000200 }, /* GL_NEVER */
- { 21447, 0x00001102 }, /* GL_NICEST */
- { 21457, 0x00000000 }, /* GL_NONE */
- { 21465, 0x00001505 }, /* GL_NOOP */
- { 21473, 0x00001508 }, /* GL_NOR */
- { 21480, 0x00000BA1 }, /* GL_NORMALIZE */
- { 21493, 0x00008075 }, /* GL_NORMAL_ARRAY */
- { 21509, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- { 21540, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
- { 21575, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
- { 21599, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
- { 21622, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
- { 21643, 0x00008511 }, /* GL_NORMAL_MAP */
- { 21657, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
- { 21675, 0x00008511 }, /* GL_NORMAL_MAP_NV */
- { 21692, 0x00000205 }, /* GL_NOTEQUAL */
- { 21704, 0x00000000 }, /* GL_NO_ERROR */
- { 21716, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- { 21750, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
- { 21788, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
- { 21820, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
- { 21862, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
- { 21892, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
- { 21932, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
- { 21963, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
- { 21992, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
- { 22020, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
- { 22050, 0x00002401 }, /* GL_OBJECT_LINEAR */
- { 22067, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
- { 22093, 0x00002501 }, /* GL_OBJECT_PLANE */
- { 22109, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
- { 22144, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
- { 22166, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
- { 22185, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
- { 22215, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
- { 22236, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
- { 22264, 0x00000001 }, /* GL_ONE */
- { 22271, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- { 22299, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
- { 22331, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
- { 22359, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
- { 22391, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
- { 22414, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
- { 22437, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
- { 22460, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
- { 22483, 0x00008598 }, /* GL_OPERAND0_ALPHA */
- { 22501, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
- { 22523, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
- { 22545, 0x00008590 }, /* GL_OPERAND0_RGB */
- { 22561, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
- { 22581, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
- { 22601, 0x00008599 }, /* GL_OPERAND1_ALPHA */
- { 22619, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
- { 22641, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
- { 22663, 0x00008591 }, /* GL_OPERAND1_RGB */
- { 22679, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
- { 22699, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
- { 22719, 0x0000859A }, /* GL_OPERAND2_ALPHA */
- { 22737, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
- { 22759, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
- { 22781, 0x00008592 }, /* GL_OPERAND2_RGB */
- { 22797, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
- { 22817, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
- { 22837, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
- { 22858, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
- { 22877, 0x00001507 }, /* GL_OR */
- { 22883, 0x00000A01 }, /* GL_ORDER */
- { 22892, 0x0000150D }, /* GL_OR_INVERTED */
- { 22907, 0x0000150B }, /* GL_OR_REVERSE */
- { 22921, 0x00000505 }, /* GL_OUT_OF_MEMORY */
- { 22938, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
- { 22956, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
- { 22977, 0x00008758 }, /* GL_PACK_INVERT_MESA */
- { 22997, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
- { 23015, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
- { 23034, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
- { 23054, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
- { 23074, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
- { 23092, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
- { 23111, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
- { 23136, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
- { 23160, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
- { 23181, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
- { 23203, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
- { 23225, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
- { 23250, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
- { 23274, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
- { 23295, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
- { 23317, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
- { 23339, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
- { 23361, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
- { 23392, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
- { 23412, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- { 23437, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
- { 23457, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- { 23482, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
- { 23502, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- { 23527, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
- { 23547, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- { 23572, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
- { 23592, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- { 23617, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
- { 23637, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- { 23662, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
- { 23682, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- { 23707, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
- { 23727, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- { 23752, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
- { 23772, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- { 23797, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
- { 23817, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- { 23842, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
- { 23860, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
- { 23881, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
- { 23910, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
- { 23943, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
- { 23968, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
- { 23991, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- { 24022, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
- { 24057, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
- { 24084, 0x00001B00 }, /* GL_POINT */
- { 24093, 0x00000000 }, /* GL_POINTS */
- { 24103, 0x00000002 }, /* GL_POINT_BIT */
- { 24116, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
- { 24146, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
- { 24180, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
- { 24214, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
- { 24249, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
- { 24278, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
- { 24311, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
- { 24344, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
- { 24378, 0x00000B11 }, /* GL_POINT_SIZE */
- { 24392, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
- { 24418, 0x00008127 }, /* GL_POINT_SIZE_MAX */
- { 24436, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
- { 24458, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
- { 24480, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
- { 24503, 0x00008126 }, /* GL_POINT_SIZE_MIN */
- { 24521, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
- { 24543, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
- { 24565, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
- { 24588, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
- { 24608, 0x00000B10 }, /* GL_POINT_SMOOTH */
- { 24624, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
- { 24645, 0x00008861 }, /* GL_POINT_SPRITE */
- { 24661, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
- { 24681, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
- { 24710, 0x00008861 }, /* GL_POINT_SPRITE_NV */
- { 24729, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
- { 24755, 0x00000701 }, /* GL_POINT_TOKEN */
- { 24770, 0x00000009 }, /* GL_POLYGON */
- { 24781, 0x00000008 }, /* GL_POLYGON_BIT */
- { 24796, 0x00000B40 }, /* GL_POLYGON_MODE */
- { 24812, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
- { 24835, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
- { 24860, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
- { 24883, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
- { 24906, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
- { 24930, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
- { 24954, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
- { 24972, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
- { 24995, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
- { 25014, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
- { 25037, 0x00000703 }, /* GL_POLYGON_TOKEN */
- { 25054, 0x00001203 }, /* GL_POSITION */
- { 25066, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- { 25098, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
- { 25134, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- { 25167, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
- { 25204, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- { 25235, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
- { 25270, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- { 25302, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
- { 25338, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- { 25371, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- { 25403, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
- { 25439, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- { 25472, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
- { 25509, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- { 25539, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
- { 25573, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- { 25604, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
- { 25639, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- { 25670, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
- { 25705, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- { 25737, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
- { 25773, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- { 25803, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
- { 25837, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- { 25868, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
- { 25903, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- { 25935, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- { 25966, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
- { 26001, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- { 26033, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
- { 26069, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
- { 26098, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
- { 26131, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
- { 26161, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
- { 26195, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- { 26234, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- { 26267, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- { 26307, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- { 26341, 0x00008578 }, /* GL_PREVIOUS */
- { 26353, 0x00008578 }, /* GL_PREVIOUS_ARB */
- { 26369, 0x00008578 }, /* GL_PREVIOUS_EXT */
- { 26385, 0x00008577 }, /* GL_PRIMARY_COLOR */
- { 26402, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
- { 26423, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
- { 26444, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 26477, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 26509, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
- { 26532, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
- { 26555, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
- { 26585, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
- { 26614, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
- { 26642, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
- { 26664, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- { 26692, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- { 26720, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
- { 26742, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
- { 26763, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 26803, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 26842, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 26872, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 26907, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 26940, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 26974, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 27013, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 27052, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
- { 27074, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
- { 27100, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
- { 27124, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
- { 27147, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
- { 27169, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
- { 27190, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
- { 27211, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
- { 27238, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 27270, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 27302, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- { 27337, 0x00001701 }, /* GL_PROJECTION */
- { 27351, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
- { 27372, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
- { 27398, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
- { 27422, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
- { 27443, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
- { 27462, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
- { 27485, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- { 27524, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- { 27562, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
- { 27582, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- { 27612, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
- { 27636, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
- { 27656, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- { 27686, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
- { 27710, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
- { 27730, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- { 27763, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
- { 27789, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
- { 27819, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- { 27850, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
- { 27880, 0x00002003 }, /* GL_Q */
- { 27885, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
- { 27910, 0x00000007 }, /* GL_QUADS */
- { 27919, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
- { 27967, 0x00008614 }, /* GL_QUAD_MESH_SUN */
- { 27984, 0x00000008 }, /* GL_QUAD_STRIP */
- { 27998, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
- { 28020, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
- { 28046, 0x00008866 }, /* GL_QUERY_RESULT */
- { 28062, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
- { 28082, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
- { 28108, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
- { 28138, 0x00002002 }, /* GL_R */
- { 28143, 0x00002A10 }, /* GL_R3_G3_B2 */
- { 28155, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- { 28188, 0x00000C02 }, /* GL_READ_BUFFER */
- { 28203, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
- { 28223, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- { 28255, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
- { 28279, 0x000088B8 }, /* GL_READ_ONLY */
- { 28292, 0x000088B8 }, /* GL_READ_ONLY_ARB */
- { 28309, 0x000088BA }, /* GL_READ_WRITE */
- { 28323, 0x000088BA }, /* GL_READ_WRITE_ARB */
- { 28341, 0x00001903 }, /* GL_RED */
- { 28348, 0x00008016 }, /* GL_REDUCE */
- { 28358, 0x00008016 }, /* GL_REDUCE_EXT */
- { 28372, 0x00000D15 }, /* GL_RED_BIAS */
- { 28384, 0x00000D52 }, /* GL_RED_BITS */
- { 28396, 0x00000D14 }, /* GL_RED_SCALE */
- { 28409, 0x00008512 }, /* GL_REFLECTION_MAP */
- { 28427, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
- { 28449, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
- { 28470, 0x00001C00 }, /* GL_RENDER */
- { 28480, 0x00008D41 }, /* GL_RENDERBUFFER */
- { 28496, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
- { 28523, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
- { 28551, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
- { 28577, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
- { 28604, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
- { 28624, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
- { 28651, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
- { 28674, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
- { 28701, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- { 28733, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- { 28769, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
- { 28794, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
- { 28818, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
- { 28847, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
- { 28869, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
- { 28895, 0x00001F01 }, /* GL_RENDERER */
- { 28907, 0x00000C40 }, /* GL_RENDER_MODE */
- { 28922, 0x00002901 }, /* GL_REPEAT */
- { 28932, 0x00001E01 }, /* GL_REPLACE */
- { 28943, 0x00008062 }, /* GL_REPLACE_EXT */
- { 28958, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
- { 28981, 0x0000803A }, /* GL_RESCALE_NORMAL */
- { 28999, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
- { 29021, 0x00000102 }, /* GL_RETURN */
- { 29031, 0x00001907 }, /* GL_RGB */
- { 29038, 0x00008052 }, /* GL_RGB10 */
- { 29047, 0x00008059 }, /* GL_RGB10_A2 */
- { 29059, 0x00008059 }, /* GL_RGB10_A2_EXT */
- { 29075, 0x00008052 }, /* GL_RGB10_EXT */
- { 29088, 0x00008053 }, /* GL_RGB12 */
- { 29097, 0x00008053 }, /* GL_RGB12_EXT */
- { 29110, 0x00008054 }, /* GL_RGB16 */
- { 29119, 0x00008054 }, /* GL_RGB16_EXT */
- { 29132, 0x0000804E }, /* GL_RGB2_EXT */
- { 29144, 0x0000804F }, /* GL_RGB4 */
- { 29152, 0x0000804F }, /* GL_RGB4_EXT */
- { 29164, 0x000083A1 }, /* GL_RGB4_S3TC */
- { 29177, 0x00008050 }, /* GL_RGB5 */
- { 29185, 0x00008057 }, /* GL_RGB5_A1 */
- { 29196, 0x00008057 }, /* GL_RGB5_A1_EXT */
- { 29211, 0x00008050 }, /* GL_RGB5_EXT */
- { 29223, 0x00008051 }, /* GL_RGB8 */
- { 29231, 0x00008051 }, /* GL_RGB8_EXT */
- { 29243, 0x00001908 }, /* GL_RGBA */
- { 29251, 0x0000805A }, /* GL_RGBA12 */
- { 29261, 0x0000805A }, /* GL_RGBA12_EXT */
- { 29275, 0x0000805B }, /* GL_RGBA16 */
- { 29285, 0x0000805B }, /* GL_RGBA16_EXT */
- { 29299, 0x00008055 }, /* GL_RGBA2 */
- { 29308, 0x00008055 }, /* GL_RGBA2_EXT */
- { 29321, 0x00008056 }, /* GL_RGBA4 */
- { 29330, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
- { 29349, 0x00008056 }, /* GL_RGBA4_EXT */
- { 29362, 0x000083A3 }, /* GL_RGBA4_S3TC */
- { 29376, 0x00008058 }, /* GL_RGBA8 */
- { 29385, 0x00008058 }, /* GL_RGBA8_EXT */
- { 29398, 0x00008F97 }, /* GL_RGBA8_SNORM */
- { 29413, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
- { 29431, 0x00000C31 }, /* GL_RGBA_MODE */
- { 29444, 0x000083A2 }, /* GL_RGBA_S3TC */
- { 29457, 0x00008F93 }, /* GL_RGBA_SNORM */
- { 29471, 0x000083A0 }, /* GL_RGB_S3TC */
- { 29483, 0x00008573 }, /* GL_RGB_SCALE */
- { 29496, 0x00008573 }, /* GL_RGB_SCALE_ARB */
- { 29513, 0x00008573 }, /* GL_RGB_SCALE_EXT */
- { 29530, 0x00000407 }, /* GL_RIGHT */
- { 29539, 0x00002000 }, /* GL_S */
- { 29544, 0x00008B5D }, /* GL_SAMPLER_1D */
- { 29558, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
- { 29579, 0x00008B5E }, /* GL_SAMPLER_2D */
- { 29593, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
- { 29614, 0x00008B5F }, /* GL_SAMPLER_3D */
- { 29628, 0x00008B60 }, /* GL_SAMPLER_CUBE */
- { 29644, 0x000080A9 }, /* GL_SAMPLES */
- { 29655, 0x000086B4 }, /* GL_SAMPLES_3DFX */
- { 29671, 0x000080A9 }, /* GL_SAMPLES_ARB */
- { 29686, 0x00008914 }, /* GL_SAMPLES_PASSED */
- { 29704, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
- { 29726, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- { 29754, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
- { 29786, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
- { 29809, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
- { 29836, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
- { 29854, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
- { 29877, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
- { 29899, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
- { 29918, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
- { 29941, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
- { 29967, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
- { 29997, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
- { 30022, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
- { 30051, 0x00080000 }, /* GL_SCISSOR_BIT */
- { 30066, 0x00000C10 }, /* GL_SCISSOR_BOX */
- { 30081, 0x00000C11 }, /* GL_SCISSOR_TEST */
- { 30097, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
- { 30122, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- { 30162, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 30206, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- { 30239, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- { 30269, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- { 30301, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- { 30331, 0x00001C02 }, /* GL_SELECT */
- { 30341, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
- { 30369, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
- { 30394, 0x00008012 }, /* GL_SEPARABLE_2D */
- { 30410, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
- { 30437, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
- { 30468, 0x0000150F }, /* GL_SET */
- { 30475, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
- { 30496, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
- { 30520, 0x00008B4F }, /* GL_SHADER_TYPE */
- { 30535, 0x00000B54 }, /* GL_SHADE_MODEL */
- { 30550, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
- { 30578, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
- { 30601, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- { 30631, 0x00001601 }, /* GL_SHININESS */
- { 30644, 0x00001402 }, /* GL_SHORT */
- { 30653, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
- { 30674, 0x000081F9 }, /* GL_SINGLE_COLOR */
- { 30690, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
- { 30710, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
- { 30729, 0x00008C46 }, /* GL_SLUMINANCE */
- { 30743, 0x00008C47 }, /* GL_SLUMINANCE8 */
- { 30758, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
- { 30780, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
- { 30800, 0x00001D01 }, /* GL_SMOOTH */
- { 30810, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
- { 30843, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
- { 30870, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
- { 30903, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
- { 30930, 0x00008588 }, /* GL_SOURCE0_ALPHA */
- { 30947, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
- { 30968, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
- { 30989, 0x00008580 }, /* GL_SOURCE0_RGB */
- { 31004, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
- { 31023, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
- { 31042, 0x00008589 }, /* GL_SOURCE1_ALPHA */
- { 31059, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
- { 31080, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
- { 31101, 0x00008581 }, /* GL_SOURCE1_RGB */
- { 31116, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
- { 31135, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
- { 31154, 0x0000858A }, /* GL_SOURCE2_ALPHA */
- { 31171, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
- { 31192, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
- { 31213, 0x00008582 }, /* GL_SOURCE2_RGB */
- { 31228, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
- { 31247, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
- { 31266, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
- { 31286, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
- { 31304, 0x00001202 }, /* GL_SPECULAR */
- { 31316, 0x00002402 }, /* GL_SPHERE_MAP */
- { 31330, 0x00001206 }, /* GL_SPOT_CUTOFF */
- { 31345, 0x00001204 }, /* GL_SPOT_DIRECTION */
- { 31363, 0x00001205 }, /* GL_SPOT_EXPONENT */
- { 31380, 0x00008588 }, /* GL_SRC0_ALPHA */
- { 31394, 0x00008580 }, /* GL_SRC0_RGB */
- { 31406, 0x00008589 }, /* GL_SRC1_ALPHA */
- { 31420, 0x00008581 }, /* GL_SRC1_RGB */
- { 31432, 0x0000858A }, /* GL_SRC2_ALPHA */
- { 31446, 0x00008582 }, /* GL_SRC2_RGB */
- { 31458, 0x00000302 }, /* GL_SRC_ALPHA */
- { 31471, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
- { 31493, 0x00000300 }, /* GL_SRC_COLOR */
- { 31506, 0x00008C40 }, /* GL_SRGB */
- { 31514, 0x00008C41 }, /* GL_SRGB8 */
- { 31523, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
- { 31539, 0x00008C42 }, /* GL_SRGB_ALPHA */
- { 31553, 0x00000503 }, /* GL_STACK_OVERFLOW */
- { 31571, 0x00000504 }, /* GL_STACK_UNDERFLOW */
- { 31590, 0x000088E6 }, /* GL_STATIC_COPY */
- { 31605, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
- { 31624, 0x000088E4 }, /* GL_STATIC_DRAW */
- { 31639, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
- { 31658, 0x000088E5 }, /* GL_STATIC_READ */
- { 31673, 0x000088E5 }, /* GL_STATIC_READ_ARB */
- { 31692, 0x00001802 }, /* GL_STENCIL */
- { 31703, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
- { 31725, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
- { 31751, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 31772, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
- { 31797, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 31818, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
- { 31843, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 31875, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
- { 31911, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 31943, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
- { 31979, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 31999, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 32026, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 32052, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 32068, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 32090, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 32113, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 32129, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 32145, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 32162, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 32185, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 32207, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 32229, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 32251, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 32272, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 32299, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 32326, 0x00000B97 }, /* GL_STENCIL_REF */
- { 32341, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 32357, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 32386, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 32408, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 32429, 0x00000C33 }, /* GL_STEREO */
- { 32439, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
- { 32463, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
- { 32488, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
- { 32512, 0x000088E2 }, /* GL_STREAM_COPY */
- { 32527, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 32546, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 32561, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 32580, 0x000088E1 }, /* GL_STREAM_READ */
- { 32595, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 32614, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 32631, 0x000084E7 }, /* GL_SUBTRACT */
- { 32643, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 32659, 0x00002001 }, /* GL_T */
- { 32664, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 32679, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 32698, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 32714, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 32729, 0x00002A27 }, /* GL_T2F_V3F */
- { 32740, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 32759, 0x00002A28 }, /* GL_T4F_V4F */
- { 32770, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 32793, 0x00001702 }, /* GL_TEXTURE */
- { 32804, 0x000084C0 }, /* GL_TEXTURE0 */
- { 32816, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 32832, 0x000084C1 }, /* GL_TEXTURE1 */
- { 32844, 0x000084CA }, /* GL_TEXTURE10 */
- { 32857, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 32874, 0x000084CB }, /* GL_TEXTURE11 */
- { 32887, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 32904, 0x000084CC }, /* GL_TEXTURE12 */
- { 32917, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 32934, 0x000084CD }, /* GL_TEXTURE13 */
- { 32947, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 32964, 0x000084CE }, /* GL_TEXTURE14 */
- { 32977, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 32994, 0x000084CF }, /* GL_TEXTURE15 */
- { 33007, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 33024, 0x000084D0 }, /* GL_TEXTURE16 */
- { 33037, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 33054, 0x000084D1 }, /* GL_TEXTURE17 */
- { 33067, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 33084, 0x000084D2 }, /* GL_TEXTURE18 */
- { 33097, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 33114, 0x000084D3 }, /* GL_TEXTURE19 */
- { 33127, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 33144, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 33160, 0x000084C2 }, /* GL_TEXTURE2 */
- { 33172, 0x000084D4 }, /* GL_TEXTURE20 */
- { 33185, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 33202, 0x000084D5 }, /* GL_TEXTURE21 */
- { 33215, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 33232, 0x000084D6 }, /* GL_TEXTURE22 */
- { 33245, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 33262, 0x000084D7 }, /* GL_TEXTURE23 */
- { 33275, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 33292, 0x000084D8 }, /* GL_TEXTURE24 */
- { 33305, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 33322, 0x000084D9 }, /* GL_TEXTURE25 */
- { 33335, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 33352, 0x000084DA }, /* GL_TEXTURE26 */
- { 33365, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 33382, 0x000084DB }, /* GL_TEXTURE27 */
- { 33395, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 33412, 0x000084DC }, /* GL_TEXTURE28 */
- { 33425, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 33442, 0x000084DD }, /* GL_TEXTURE29 */
- { 33455, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 33472, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 33488, 0x000084C3 }, /* GL_TEXTURE3 */
- { 33500, 0x000084DE }, /* GL_TEXTURE30 */
- { 33513, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 33530, 0x000084DF }, /* GL_TEXTURE31 */
- { 33543, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 33560, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 33576, 0x000084C4 }, /* GL_TEXTURE4 */
- { 33588, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 33604, 0x000084C5 }, /* GL_TEXTURE5 */
- { 33616, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 33632, 0x000084C6 }, /* GL_TEXTURE6 */
- { 33644, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 33660, 0x000084C7 }, /* GL_TEXTURE7 */
- { 33672, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 33688, 0x000084C8 }, /* GL_TEXTURE8 */
- { 33700, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 33716, 0x000084C9 }, /* GL_TEXTURE9 */
- { 33728, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 33744, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 33758, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
- { 33782, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 33796, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
- { 33820, 0x0000806F }, /* GL_TEXTURE_3D */
- { 33834, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 33856, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 33882, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 33904, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 33926, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- { 33958, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 33980, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- { 34012, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 34034, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 34062, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 34094, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 34127, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 34159, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 34174, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 34195, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 34220, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 34238, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 34262, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 34293, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 34323, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 34353, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 34388, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 34419, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 34457, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 34484, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 34516, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 34550, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 34574, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 34602, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 34626, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 34654, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 34687, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 34711, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 34733, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 34755, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 34781, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 34815, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 34848, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 34885, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 34913, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 34945, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 34968, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 35006, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 35048, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 35079, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 35107, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 35137, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 35165, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 35185, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 35209, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 35240, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 35275, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 35306, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 35341, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 35372, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 35407, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 35438, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 35473, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 35504, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 35539, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 35570, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 35605, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- { 35634, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 35651, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 35673, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 35699, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 35714, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 35735, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 35755, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 35781, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 35801, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 35818, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 35835, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 35852, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 35869, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 35894, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 35916, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 35942, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 35960, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 35986, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 36012, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 36042, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 36069, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 36094, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 36114, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 36138, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 36165, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 36192, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 36219, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 36245, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 36275, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 36297, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 36315, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 36345, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 36373, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 36401, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 36429, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 36450, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 36469, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 36491, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 36510, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 36530, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- { 36560, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- { 36591, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 36616, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 36640, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 36660, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 36684, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 36704, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 36727, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
- { 36751, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- { 36781, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 36806, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 36840, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 36857, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 36875, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 36893, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 36911, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 36931, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 36950, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 36979, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 36996, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 37022, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 37052, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 37084, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 37114, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 37148, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 37164, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 37195, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 37230, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 37258, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 37290, 0x00000004 }, /* GL_TRIANGLES */
- { 37303, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 37319, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 37340, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 37358, 0x00000001 }, /* GL_TRUE */
- { 37366, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 37386, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 37409, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 37429, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 37450, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 37472, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 37494, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 37514, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 37535, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 37552, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 37579, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 37602, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 37618, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 37645, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
- { 37666, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 37690, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 37721, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 37745, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 37773, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
- { 37796, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 37814, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 37844, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 37870, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 37900, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 37926, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 37950, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 37978, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 38006, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 38033, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 38065, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 38096, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 38110, 0x00002A20 }, /* GL_V2F */
- { 38117, 0x00002A21 }, /* GL_V3F */
- { 38124, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 38143, 0x00001F00 }, /* GL_VENDOR */
- { 38153, 0x00001F02 }, /* GL_VERSION */
- { 38164, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 38180, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
- { 38204, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 38234, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 38265, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 38300, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 38324, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 38345, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 38368, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 38389, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 38416, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 38444, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 38472, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 38500, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 38528, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 38556, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 38584, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 38611, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 38638, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 38665, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 38692, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 38719, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 38746, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 38773, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 38800, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 38827, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 38865, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 38907, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 38938, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 38973, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 39007, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 39045, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 39076, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 39111, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 39139, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 39171, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 39201, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 39235, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 39263, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 39295, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 39315, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 39337, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 39366, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 39387, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 39416, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 39449, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 39481, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 39508, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 39539, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 39569, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 39586, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 39607, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 39634, 0x00000BA2 }, /* GL_VIEWPORT */
- { 39646, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 39662, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 39682, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 39713, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 39748, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 39776, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 39801, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 39828, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 39853, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 39877, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 39896, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 39910, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 39928, 0x00001506 }, /* GL_XOR */
- { 39935, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 39954, 0x00008757 }, /* GL_YCBCR_MESA */
- { 39968, 0x00000000 }, /* GL_ZERO */
- { 39976, 0x00000D16 }, /* GL_ZOOM_X */
- { 39986, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 779, 0x0000911A }, /* GL_ALREADY_SIGNALED */
+ { 799, 0x00000207 }, /* GL_ALWAYS */
+ { 809, 0x00001200 }, /* GL_AMBIENT */
+ { 820, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */
+ { 843, 0x00001501 }, /* GL_AND */
+ { 850, 0x00001504 }, /* GL_AND_INVERTED */
+ { 866, 0x00001502 }, /* GL_AND_REVERSE */
+ { 881, 0x00008892 }, /* GL_ARRAY_BUFFER */
+ { 897, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */
+ { 921, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING_ARB */
+ { 949, 0x00008B85 }, /* GL_ATTACHED_SHADERS */
+ { 969, 0x00008645 }, /* GL_ATTRIB_ARRAY_POINTER_NV */
+ { 996, 0x00008623 }, /* GL_ATTRIB_ARRAY_SIZE_NV */
+ { 1020, 0x00008624 }, /* GL_ATTRIB_ARRAY_STRIDE_NV */
+ { 1046, 0x00008625 }, /* GL_ATTRIB_ARRAY_TYPE_NV */
+ { 1070, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */
+ { 1092, 0x00000D80 }, /* GL_AUTO_NORMAL */
+ { 1107, 0x00000409 }, /* GL_AUX0 */
+ { 1115, 0x0000040A }, /* GL_AUX1 */
+ { 1123, 0x0000040B }, /* GL_AUX2 */
+ { 1131, 0x0000040C }, /* GL_AUX3 */
+ { 1139, 0x00000C00 }, /* GL_AUX_BUFFERS */
+ { 1154, 0x00000405 }, /* GL_BACK */
+ { 1162, 0x00000402 }, /* GL_BACK_LEFT */
+ { 1175, 0x00000403 }, /* GL_BACK_RIGHT */
+ { 1189, 0x000080E0 }, /* GL_BGR */
+ { 1196, 0x000080E1 }, /* GL_BGRA */
+ { 1204, 0x00001A00 }, /* GL_BITMAP */
+ { 1214, 0x00000704 }, /* GL_BITMAP_TOKEN */
+ { 1230, 0x00000BE2 }, /* GL_BLEND */
+ { 1239, 0x00008005 }, /* GL_BLEND_COLOR */
+ { 1254, 0x00008005 }, /* GL_BLEND_COLOR_EXT */
+ { 1273, 0x00000BE0 }, /* GL_BLEND_DST */
+ { 1286, 0x000080CA }, /* GL_BLEND_DST_ALPHA */
+ { 1305, 0x000080C8 }, /* GL_BLEND_DST_RGB */
+ { 1322, 0x00008009 }, /* GL_BLEND_EQUATION */
+ { 1340, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */
+ { 1364, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */
+ { 1392, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */
+ { 1414, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */
+ { 1436, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */
+ { 1462, 0x00000BE1 }, /* GL_BLEND_SRC */
+ { 1475, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */
+ { 1494, 0x000080C9 }, /* GL_BLEND_SRC_RGB */
+ { 1511, 0x00001905 }, /* GL_BLUE */
+ { 1519, 0x00000D1B }, /* GL_BLUE_BIAS */
+ { 1532, 0x00000D54 }, /* GL_BLUE_BITS */
+ { 1545, 0x00000D1A }, /* GL_BLUE_SCALE */
+ { 1559, 0x00008B56 }, /* GL_BOOL */
+ { 1567, 0x00008B56 }, /* GL_BOOL_ARB */
+ { 1579, 0x00008B57 }, /* GL_BOOL_VEC2 */
+ { 1592, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */
+ { 1609, 0x00008B58 }, /* GL_BOOL_VEC3 */
+ { 1622, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */
+ { 1639, 0x00008B59 }, /* GL_BOOL_VEC4 */
+ { 1652, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */
+ { 1669, 0x000088BB }, /* GL_BUFFER_ACCESS */
+ { 1686, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */
+ { 1707, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
+ { 1738, 0x000088BC }, /* GL_BUFFER_MAPPED */
+ { 1755, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */
+ { 1776, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */
+ { 1798, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */
+ { 1824, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
+ { 1858, 0x00008764 }, /* GL_BUFFER_SIZE */
+ { 1873, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */
+ { 1892, 0x00008765 }, /* GL_BUFFER_USAGE */
+ { 1908, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */
+ { 1928, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */
+ { 1947, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */
+ { 1973, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */
+ { 1996, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
+ { 2024, 0x0000877C }, /* GL_BUMP_TARGET_ATI */
+ { 2043, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */
+ { 2065, 0x00001400 }, /* GL_BYTE */
+ { 2073, 0x00002A24 }, /* GL_C3F_V3F */
+ { 2084, 0x00002A26 }, /* GL_C4F_N3F_V3F */
+ { 2099, 0x00002A22 }, /* GL_C4UB_V2F */
+ { 2111, 0x00002A23 }, /* GL_C4UB_V3F */
+ { 2123, 0x00000901 }, /* GL_CCW */
+ { 2130, 0x00002900 }, /* GL_CLAMP */
+ { 2139, 0x0000812D }, /* GL_CLAMP_TO_BORDER */
+ { 2158, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */
+ { 2181, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */
+ { 2205, 0x0000812F }, /* GL_CLAMP_TO_EDGE */
+ { 2222, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */
+ { 2244, 0x00001500 }, /* GL_CLEAR */
+ { 2253, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */
+ { 2278, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */
+ { 2307, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */
+ { 2333, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
+ { 2362, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */
+ { 2388, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */
+ { 2415, 0x00003000 }, /* GL_CLIP_PLANE0 */
+ { 2430, 0x00003001 }, /* GL_CLIP_PLANE1 */
+ { 2445, 0x00003002 }, /* GL_CLIP_PLANE2 */
+ { 2460, 0x00003003 }, /* GL_CLIP_PLANE3 */
+ { 2475, 0x00003004 }, /* GL_CLIP_PLANE4 */
+ { 2490, 0x00003005 }, /* GL_CLIP_PLANE5 */
+ { 2505, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
+ { 2538, 0x00000A00 }, /* GL_COEFF */
+ { 2547, 0x00001800 }, /* GL_COLOR */
+ { 2556, 0x00008076 }, /* GL_COLOR_ARRAY */
+ { 2571, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */
+ { 2601, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 2635, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */
+ { 2658, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */
+ { 2678, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */
+ { 2700, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */
+ { 2720, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */
+ { 2741, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */
+ { 2766, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */
+ { 2787, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */
+ { 2809, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */
+ { 2835, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */
+ { 2857, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */
+ { 2883, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */
+ { 2905, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */
+ { 2931, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */
+ { 2953, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */
+ { 2979, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */
+ { 3001, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */
+ { 3027, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */
+ { 3049, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */
+ { 3075, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */
+ { 3100, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */
+ { 3121, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */
+ { 3146, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */
+ { 3167, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */
+ { 3192, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */
+ { 3213, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */
+ { 3238, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */
+ { 3259, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */
+ { 3284, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */
+ { 3305, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */
+ { 3330, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */
+ { 3351, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */
+ { 3376, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */
+ { 3397, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */
+ { 3422, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */
+ { 3443, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */
+ { 3468, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */
+ { 3488, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */
+ { 3509, 0x00001900 }, /* GL_COLOR_INDEX */
+ { 3524, 0x00001603 }, /* GL_COLOR_INDEXES */
+ { 3541, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */
+ { 3559, 0x00000B57 }, /* GL_COLOR_MATERIAL */
+ { 3577, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */
+ { 3600, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */
+ { 3628, 0x000080B1 }, /* GL_COLOR_MATRIX */
+ { 3644, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */
+ { 3664, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */
+ { 3692, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 3724, 0x00008458 }, /* GL_COLOR_SUM */
+ { 3737, 0x00008458 }, /* GL_COLOR_SUM_ARB */
+ { 3754, 0x000080D0 }, /* GL_COLOR_TABLE */
+ { 3769, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */
+ { 3795, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */
+ { 3825, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */
+ { 3855, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */
+ { 3875, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */
+ { 3899, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */
+ { 3924, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */
+ { 3953, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */
+ { 3982, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */
+ { 4004, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */
+ { 4030, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */
+ { 4056, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */
+ { 4082, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */
+ { 4112, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */
+ { 4142, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */
+ { 4172, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */
+ { 4206, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */
+ { 4240, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
+ { 4270, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */
+ { 4304, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */
+ { 4338, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */
+ { 4362, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */
+ { 4390, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */
+ { 4418, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */
+ { 4439, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */
+ { 4464, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */
+ { 4485, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */
+ { 4510, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */
+ { 4535, 0x00000C23 }, /* GL_COLOR_WRITEMASK */
+ { 4554, 0x00008570 }, /* GL_COMBINE */
+ { 4565, 0x00008503 }, /* GL_COMBINE4 */
+ { 4577, 0x00008572 }, /* GL_COMBINE_ALPHA */
+ { 4594, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */
+ { 4615, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */
+ { 4636, 0x00008570 }, /* GL_COMBINE_ARB */
+ { 4651, 0x00008570 }, /* GL_COMBINE_EXT */
+ { 4666, 0x00008571 }, /* GL_COMBINE_RGB */
+ { 4681, 0x00008571 }, /* GL_COMBINE_RGB_ARB */
+ { 4700, 0x00008571 }, /* GL_COMBINE_RGB_EXT */
+ { 4719, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */
+ { 4755, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
+ { 4779, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
+ { 4807, 0x00001300 }, /* GL_COMPILE */
+ { 4818, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
+ { 4841, 0x00008B81 }, /* GL_COMPILE_STATUS */
+ { 4859, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
+ { 4879, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
+ { 4903, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
+ { 4927, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
+ { 4955, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
+ { 4979, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ { 5009, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
+ { 5043, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
+ { 5071, 0x000084ED }, /* GL_COMPRESSED_RGB */
+ { 5089, 0x000084EE }, /* GL_COMPRESSED_RGBA */
+ { 5108, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
+ { 5131, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ { 5160, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ { 5193, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ { 5226, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ { 5259, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
+ { 5281, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ { 5309, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ { 5341, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */
+ { 5366, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
+ { 5397, 0x00008C48 }, /* GL_COMPRESSED_SRGB */
+ { 5416, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */
+ { 5441, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ { 5471, 0x0000911C }, /* GL_CONDITION_SATISFIED */
+ { 5494, 0x00008576 }, /* GL_CONSTANT */
+ { 5506, 0x00008003 }, /* GL_CONSTANT_ALPHA */
+ { 5524, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
+ { 5546, 0x00008576 }, /* GL_CONSTANT_ARB */
+ { 5562, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
+ { 5586, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
+ { 5608, 0x00008001 }, /* GL_CONSTANT_COLOR */
+ { 5626, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
+ { 5648, 0x00008576 }, /* GL_CONSTANT_EXT */
+ { 5664, 0x00008010 }, /* GL_CONVOLUTION_1D */
+ { 5682, 0x00008011 }, /* GL_CONVOLUTION_2D */
+ { 5700, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
+ { 5728, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
+ { 5759, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
+ { 5786, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
+ { 5817, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
+ { 5844, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
+ { 5875, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
+ { 5903, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
+ { 5935, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
+ { 5957, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
+ { 5983, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
+ { 6005, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
+ { 6031, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
+ { 6052, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
+ { 6077, 0x00008862 }, /* GL_COORD_REPLACE */
+ { 6094, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
+ { 6115, 0x00008862 }, /* GL_COORD_REPLACE_NV */
+ { 6135, 0x00001503 }, /* GL_COPY */
+ { 6143, 0x0000150C }, /* GL_COPY_INVERTED */
+ { 6160, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
+ { 6180, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
+ { 6200, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
+ { 6221, 0x00000B44 }, /* GL_CULL_FACE */
+ { 6234, 0x00000B45 }, /* GL_CULL_FACE_MODE */
+ { 6252, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
+ { 6271, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ { 6303, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ { 6338, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
+ { 6359, 0x00000001 }, /* GL_CURRENT_BIT */
+ { 6374, 0x00000B00 }, /* GL_CURRENT_COLOR */
+ { 6391, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
+ { 6412, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
+ { 6438, 0x00000B01 }, /* GL_CURRENT_INDEX */
+ { 6455, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
+ { 6477, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ { 6505, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
+ { 6526, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ { 6560, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
+ { 6593, 0x00000B02 }, /* GL_CURRENT_NORMAL */
+ { 6611, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ { 6641, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
+ { 6660, 0x00008865 }, /* GL_CURRENT_QUERY */
+ { 6677, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
+ { 6698, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
+ { 6722, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
+ { 6749, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
+ { 6773, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
+ { 6800, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
+ { 6833, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ { 6867, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ { 6900, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
+ { 6927, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
+ { 6953, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
+ { 6978, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
+ { 7007, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
+ { 7029, 0x00000900 }, /* GL_CW */
+ { 7035, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
+ { 7056, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
+ { 7077, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
+ { 7097, 0x00002101 }, /* GL_DECAL */
+ { 7106, 0x00001E03 }, /* GL_DECR */
+ { 7114, 0x00008508 }, /* GL_DECR_WRAP */
+ { 7127, 0x00008508 }, /* GL_DECR_WRAP_EXT */
+ { 7144, 0x00008B80 }, /* GL_DELETE_STATUS */
+ { 7161, 0x00001801 }, /* GL_DEPTH */
+ { 7170, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
+ { 7190, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
+ { 7210, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
+ { 7234, 0x00000D1F }, /* GL_DEPTH_BIAS */
+ { 7248, 0x00000D56 }, /* GL_DEPTH_BITS */
+ { 7262, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
+ { 7282, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ { 7307, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
+ { 7327, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
+ { 7345, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
+ { 7366, 0x00001902 }, /* GL_DEPTH_COMPONENT */
+ { 7385, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
+ { 7406, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
+ { 7431, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
+ { 7457, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
+ { 7478, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
+ { 7503, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
+ { 7529, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
+ { 7550, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
+ { 7575, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
+ { 7601, 0x00000B74 }, /* GL_DEPTH_FUNC */
+ { 7615, 0x00000B70 }, /* GL_DEPTH_RANGE */
+ { 7630, 0x00000D1E }, /* GL_DEPTH_SCALE */
+ { 7645, 0x000084F9 }, /* GL_DEPTH_STENCIL */
+ { 7662, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ { 7690, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
+ { 7710, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ { 7738, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ { 7766, 0x00000B71 }, /* GL_DEPTH_TEST */
+ { 7780, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
+ { 7802, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
+ { 7828, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
+ { 7847, 0x00001201 }, /* GL_DIFFUSE */
+ { 7858, 0x00000BD0 }, /* GL_DITHER */
+ { 7868, 0x00000A02 }, /* GL_DOMAIN */
+ { 7878, 0x00001100 }, /* GL_DONT_CARE */
+ { 7891, 0x000086AE }, /* GL_DOT3_RGB */
+ { 7903, 0x000086AF }, /* GL_DOT3_RGBA */
+ { 7916, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
+ { 7933, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
+ { 7950, 0x000086AE }, /* GL_DOT3_RGB_ARB */
+ { 7966, 0x00008740 }, /* GL_DOT3_RGB_EXT */
+ { 7982, 0x0000140A }, /* GL_DOUBLE */
+ { 7992, 0x00000C32 }, /* GL_DOUBLEBUFFER */
+ { 8008, 0x00000C01 }, /* GL_DRAW_BUFFER */
+ { 8023, 0x00008825 }, /* GL_DRAW_BUFFER0 */
+ { 8039, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
+ { 8059, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
+ { 8079, 0x00008826 }, /* GL_DRAW_BUFFER1 */
+ { 8095, 0x0000882F }, /* GL_DRAW_BUFFER10 */
+ { 8112, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
+ { 8133, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
+ { 8154, 0x00008830 }, /* GL_DRAW_BUFFER11 */
+ { 8171, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
+ { 8192, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
+ { 8213, 0x00008831 }, /* GL_DRAW_BUFFER12 */
+ { 8230, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
+ { 8251, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
+ { 8272, 0x00008832 }, /* GL_DRAW_BUFFER13 */
+ { 8289, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
+ { 8310, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
+ { 8331, 0x00008833 }, /* GL_DRAW_BUFFER14 */
+ { 8348, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
+ { 8369, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
+ { 8390, 0x00008834 }, /* GL_DRAW_BUFFER15 */
+ { 8407, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
+ { 8428, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
+ { 8449, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
+ { 8469, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
+ { 8489, 0x00008827 }, /* GL_DRAW_BUFFER2 */
+ { 8505, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
+ { 8525, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
+ { 8545, 0x00008828 }, /* GL_DRAW_BUFFER3 */
+ { 8561, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
+ { 8581, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
+ { 8601, 0x00008829 }, /* GL_DRAW_BUFFER4 */
+ { 8617, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
+ { 8637, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
+ { 8657, 0x0000882A }, /* GL_DRAW_BUFFER5 */
+ { 8673, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
+ { 8693, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
+ { 8713, 0x0000882B }, /* GL_DRAW_BUFFER6 */
+ { 8729, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
+ { 8749, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
+ { 8769, 0x0000882C }, /* GL_DRAW_BUFFER7 */
+ { 8785, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
+ { 8805, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
+ { 8825, 0x0000882D }, /* GL_DRAW_BUFFER8 */
+ { 8841, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
+ { 8861, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
+ { 8881, 0x0000882E }, /* GL_DRAW_BUFFER9 */
+ { 8897, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
+ { 8917, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
+ { 8937, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
+ { 8957, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ { 8989, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
+ { 9013, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
+ { 9033, 0x00000304 }, /* GL_DST_ALPHA */
+ { 9046, 0x00000306 }, /* GL_DST_COLOR */
+ { 9059, 0x0000877A }, /* GL_DU8DV8_ATI */
+ { 9073, 0x00008779 }, /* GL_DUDV_ATI */
+ { 9085, 0x000088EA }, /* GL_DYNAMIC_COPY */
+ { 9101, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
+ { 9121, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
+ { 9137, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
+ { 9157, 0x000088E9 }, /* GL_DYNAMIC_READ */
+ { 9173, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
+ { 9193, 0x00000B43 }, /* GL_EDGE_FLAG */
+ { 9206, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
+ { 9225, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ { 9259, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
+ { 9297, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ { 9324, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ { 9350, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
+ { 9374, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ { 9406, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
+ { 9442, 0x00001600 }, /* GL_EMISSION */
+ { 9454, 0x00002000 }, /* GL_ENABLE_BIT */
+ { 9468, 0x00000202 }, /* GL_EQUAL */
+ { 9477, 0x00001509 }, /* GL_EQUIV */
+ { 9486, 0x00010000 }, /* GL_EVAL_BIT */
+ { 9498, 0x00000800 }, /* GL_EXP */
+ { 9505, 0x00000801 }, /* GL_EXP2 */
+ { 9513, 0x00001F03 }, /* GL_EXTENSIONS */
+ { 9527, 0x00002400 }, /* GL_EYE_LINEAR */
+ { 9541, 0x00002502 }, /* GL_EYE_PLANE */
+ { 9554, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ { 9579, 0x0000855B }, /* GL_EYE_RADIAL_NV */
+ { 9596, 0x00000000 }, /* GL_FALSE */
+ { 9605, 0x00001101 }, /* GL_FASTEST */
+ { 9616, 0x00001C01 }, /* GL_FEEDBACK */
+ { 9628, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
+ { 9655, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
+ { 9679, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
+ { 9703, 0x00001B02 }, /* GL_FILL */
+ { 9711, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
+ { 9742, 0x00001D00 }, /* GL_FLAT */
+ { 9750, 0x00001406 }, /* GL_FLOAT */
+ { 9759, 0x00008B5A }, /* GL_FLOAT_MAT2 */
+ { 9773, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
+ { 9791, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
+ { 9807, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
+ { 9823, 0x00008B5B }, /* GL_FLOAT_MAT3 */
+ { 9837, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
+ { 9855, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
+ { 9871, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
+ { 9887, 0x00008B5C }, /* GL_FLOAT_MAT4 */
+ { 9901, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
+ { 9919, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
+ { 9935, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
+ { 9951, 0x00008B50 }, /* GL_FLOAT_VEC2 */
+ { 9965, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
+ { 9983, 0x00008B51 }, /* GL_FLOAT_VEC3 */
+ { 9997, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
+ { 10015, 0x00008B52 }, /* GL_FLOAT_VEC4 */
+ { 10029, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
+ { 10047, 0x00000B60 }, /* GL_FOG */
+ { 10054, 0x00000080 }, /* GL_FOG_BIT */
+ { 10065, 0x00000B66 }, /* GL_FOG_COLOR */
+ { 10078, 0x00008451 }, /* GL_FOG_COORD */
+ { 10091, 0x00008451 }, /* GL_FOG_COORDINATE */
+ { 10109, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
+ { 10133, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ { 10172, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
+ { 10215, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ { 10247, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ { 10278, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ { 10307, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
+ { 10332, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
+ { 10351, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
+ { 10385, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
+ { 10412, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
+ { 10438, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
+ { 10462, 0x00008450 }, /* GL_FOG_COORD_SRC */
+ { 10479, 0x00000B62 }, /* GL_FOG_DENSITY */
+ { 10494, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
+ { 10518, 0x00000B64 }, /* GL_FOG_END */
+ { 10529, 0x00000C54 }, /* GL_FOG_HINT */
+ { 10541, 0x00000B61 }, /* GL_FOG_INDEX */
+ { 10554, 0x00000B65 }, /* GL_FOG_MODE */
+ { 10566, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
+ { 10585, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
+ { 10610, 0x00000B63 }, /* GL_FOG_START */
+ { 10623, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
+ { 10641, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
+ { 10665, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
+ { 10684, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
+ { 10707, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ { 10742, 0x00008D40 }, /* GL_FRAMEBUFFER */
+ { 10757, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ { 10794, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ { 10830, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ { 10871, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ { 10912, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ { 10949, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ { 10986, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ { 11024, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
+ { 11066, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ { 11104, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
+ { 11146, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ { 11181, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ { 11220, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
+ { 11269, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ { 11317, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
+ { 11369, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ { 11409, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
+ { 11453, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ { 11493, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
+ { 11537, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
+ { 11564, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
+ { 11588, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
+ { 11616, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
+ { 11639, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
+ { 11658, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ { 11695, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
+ { 11736, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ { 11777, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ { 11819, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ { 11870, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ { 11908, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ { 11953, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
+ { 12002, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ { 12040, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ { 12082, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ { 12114, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
+ { 12139, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ { 12166, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
+ { 12197, 0x00000404 }, /* GL_FRONT */
+ { 12206, 0x00000408 }, /* GL_FRONT_AND_BACK */
+ { 12224, 0x00000B46 }, /* GL_FRONT_FACE */
+ { 12238, 0x00000400 }, /* GL_FRONT_LEFT */
+ { 12252, 0x00000401 }, /* GL_FRONT_RIGHT */
+ { 12267, 0x00008006 }, /* GL_FUNC_ADD */
+ { 12279, 0x00008006 }, /* GL_FUNC_ADD_EXT */
+ { 12295, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
+ { 12320, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
+ { 12349, 0x0000800A }, /* GL_FUNC_SUBTRACT */
+ { 12366, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
+ { 12387, 0x00008191 }, /* GL_GENERATE_MIPMAP */
+ { 12406, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
+ { 12430, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
+ { 12459, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
+ { 12483, 0x00000206 }, /* GL_GEQUAL */
+ { 12493, 0x00000204 }, /* GL_GREATER */
+ { 12504, 0x00001904 }, /* GL_GREEN */
+ { 12513, 0x00000D19 }, /* GL_GREEN_BIAS */
+ { 12527, 0x00000D53 }, /* GL_GREEN_BITS */
+ { 12541, 0x00000D18 }, /* GL_GREEN_SCALE */
+ { 12556, 0x00008000 }, /* GL_HINT_BIT */
+ { 12568, 0x00008024 }, /* GL_HISTOGRAM */
+ { 12581, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
+ { 12605, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
+ { 12633, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
+ { 12656, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
+ { 12683, 0x00008024 }, /* GL_HISTOGRAM_EXT */
+ { 12700, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
+ { 12720, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
+ { 12744, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
+ { 12768, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
+ { 12796, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ { 12824, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
+ { 12856, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
+ { 12878, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
+ { 12904, 0x0000802D }, /* GL_HISTOGRAM_SINK */
+ { 12922, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
+ { 12944, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
+ { 12963, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
+ { 12986, 0x0000862A }, /* GL_IDENTITY_NV */
+ { 13001, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
+ { 13021, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ { 13061, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ { 13099, 0x00001E02 }, /* GL_INCR */
+ { 13107, 0x00008507 }, /* GL_INCR_WRAP */
+ { 13120, 0x00008507 }, /* GL_INCR_WRAP_EXT */
+ { 13137, 0x00008222 }, /* GL_INDEX */
+ { 13146, 0x00008077 }, /* GL_INDEX_ARRAY */
+ { 13161, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ { 13191, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
+ { 13225, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
+ { 13248, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
+ { 13270, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
+ { 13290, 0x00000D51 }, /* GL_INDEX_BITS */
+ { 13304, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
+ { 13325, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
+ { 13343, 0x00000C30 }, /* GL_INDEX_MODE */
+ { 13357, 0x00000D13 }, /* GL_INDEX_OFFSET */
+ { 13373, 0x00000D12 }, /* GL_INDEX_SHIFT */
+ { 13388, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
+ { 13407, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
+ { 13426, 0x00001404 }, /* GL_INT */
+ { 13433, 0x00008049 }, /* GL_INTENSITY */
+ { 13446, 0x0000804C }, /* GL_INTENSITY12 */
+ { 13461, 0x0000804C }, /* GL_INTENSITY12_EXT */
+ { 13480, 0x0000804D }, /* GL_INTENSITY16 */
+ { 13495, 0x0000804D }, /* GL_INTENSITY16_EXT */
+ { 13514, 0x0000804A }, /* GL_INTENSITY4 */
+ { 13528, 0x0000804A }, /* GL_INTENSITY4_EXT */
+ { 13546, 0x0000804B }, /* GL_INTENSITY8 */
+ { 13560, 0x0000804B }, /* GL_INTENSITY8_EXT */
+ { 13578, 0x00008049 }, /* GL_INTENSITY_EXT */
+ { 13595, 0x00008575 }, /* GL_INTERPOLATE */
+ { 13610, 0x00008575 }, /* GL_INTERPOLATE_ARB */
+ { 13629, 0x00008575 }, /* GL_INTERPOLATE_EXT */
+ { 13648, 0x00008B53 }, /* GL_INT_VEC2 */
+ { 13660, 0x00008B53 }, /* GL_INT_VEC2_ARB */
+ { 13676, 0x00008B54 }, /* GL_INT_VEC3 */
+ { 13688, 0x00008B54 }, /* GL_INT_VEC3_ARB */
+ { 13704, 0x00008B55 }, /* GL_INT_VEC4 */
+ { 13716, 0x00008B55 }, /* GL_INT_VEC4_ARB */
+ { 13732, 0x00000500 }, /* GL_INVALID_ENUM */
+ { 13748, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ { 13781, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
+ { 13818, 0x00000502 }, /* GL_INVALID_OPERATION */
+ { 13839, 0x00000501 }, /* GL_INVALID_VALUE */
+ { 13856, 0x0000862B }, /* GL_INVERSE_NV */
+ { 13870, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
+ { 13894, 0x0000150A }, /* GL_INVERT */
+ { 13904, 0x00001E00 }, /* GL_KEEP */
+ { 13912, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
+ { 13942, 0x00000406 }, /* GL_LEFT */
+ { 13950, 0x00000203 }, /* GL_LEQUAL */
+ { 13960, 0x00000201 }, /* GL_LESS */
+ { 13968, 0x00004000 }, /* GL_LIGHT0 */
+ { 13978, 0x00004001 }, /* GL_LIGHT1 */
+ { 13988, 0x00004002 }, /* GL_LIGHT2 */
+ { 13998, 0x00004003 }, /* GL_LIGHT3 */
+ { 14008, 0x00004004 }, /* GL_LIGHT4 */
+ { 14018, 0x00004005 }, /* GL_LIGHT5 */
+ { 14028, 0x00004006 }, /* GL_LIGHT6 */
+ { 14038, 0x00004007 }, /* GL_LIGHT7 */
+ { 14048, 0x00000B50 }, /* GL_LIGHTING */
+ { 14060, 0x00000040 }, /* GL_LIGHTING_BIT */
+ { 14076, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
+ { 14099, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ { 14128, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
+ { 14161, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ { 14189, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
+ { 14213, 0x00001B01 }, /* GL_LINE */
+ { 14221, 0x00002601 }, /* GL_LINEAR */
+ { 14231, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
+ { 14253, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ { 14283, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ { 14314, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
+ { 14338, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
+ { 14363, 0x00000001 }, /* GL_LINES */
+ { 14372, 0x00000004 }, /* GL_LINE_BIT */
+ { 14384, 0x00000002 }, /* GL_LINE_LOOP */
+ { 14397, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
+ { 14417, 0x00000B20 }, /* GL_LINE_SMOOTH */
+ { 14432, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
+ { 14452, 0x00000B24 }, /* GL_LINE_STIPPLE */
+ { 14468, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
+ { 14492, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
+ { 14515, 0x00000003 }, /* GL_LINE_STRIP */
+ { 14529, 0x00000702 }, /* GL_LINE_TOKEN */
+ { 14543, 0x00000B21 }, /* GL_LINE_WIDTH */
+ { 14557, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
+ { 14583, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
+ { 14603, 0x00008B82 }, /* GL_LINK_STATUS */
+ { 14618, 0x00000B32 }, /* GL_LIST_BASE */
+ { 14631, 0x00020000 }, /* GL_LIST_BIT */
+ { 14643, 0x00000B33 }, /* GL_LIST_INDEX */
+ { 14657, 0x00000B30 }, /* GL_LIST_MODE */
+ { 14670, 0x00000101 }, /* GL_LOAD */
+ { 14678, 0x00000BF1 }, /* GL_LOGIC_OP */
+ { 14690, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
+ { 14707, 0x00008CA1 }, /* GL_LOWER_LEFT */
+ { 14721, 0x00001909 }, /* GL_LUMINANCE */
+ { 14734, 0x00008041 }, /* GL_LUMINANCE12 */
+ { 14749, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
+ { 14772, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
+ { 14799, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
+ { 14821, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
+ { 14847, 0x00008041 }, /* GL_LUMINANCE12_EXT */
+ { 14866, 0x00008042 }, /* GL_LUMINANCE16 */
+ { 14881, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
+ { 14904, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
+ { 14931, 0x00008042 }, /* GL_LUMINANCE16_EXT */
+ { 14950, 0x0000803F }, /* GL_LUMINANCE4 */
+ { 14964, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
+ { 14985, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
+ { 15010, 0x0000803F }, /* GL_LUMINANCE4_EXT */
+ { 15028, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
+ { 15049, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
+ { 15074, 0x00008040 }, /* GL_LUMINANCE8 */
+ { 15088, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
+ { 15109, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
+ { 15134, 0x00008040 }, /* GL_LUMINANCE8_EXT */
+ { 15152, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
+ { 15171, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
+ { 15187, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
+ { 15207, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
+ { 15229, 0x00000D91 }, /* GL_MAP1_INDEX */
+ { 15243, 0x00000D92 }, /* GL_MAP1_NORMAL */
+ { 15258, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
+ { 15282, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
+ { 15306, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
+ { 15330, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
+ { 15354, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
+ { 15371, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
+ { 15388, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ { 15416, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ { 15445, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ { 15474, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ { 15503, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ { 15532, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ { 15561, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ { 15590, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ { 15618, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ { 15646, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ { 15674, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ { 15702, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ { 15730, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ { 15758, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ { 15786, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ { 15814, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ { 15842, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
+ { 15858, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
+ { 15878, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
+ { 15900, 0x00000DB1 }, /* GL_MAP2_INDEX */
+ { 15914, 0x00000DB2 }, /* GL_MAP2_NORMAL */
+ { 15929, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
+ { 15953, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
+ { 15977, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
+ { 16001, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
+ { 16025, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
+ { 16042, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
+ { 16059, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ { 16087, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ { 16116, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ { 16145, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ { 16174, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ { 16203, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ { 16232, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ { 16261, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ { 16289, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ { 16317, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ { 16345, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ { 16373, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ { 16401, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ { 16429, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
+ { 16457, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ { 16485, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ { 16513, 0x00000D10 }, /* GL_MAP_COLOR */
+ { 16526, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
+ { 16552, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
+ { 16581, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
+ { 16609, 0x00000001 }, /* GL_MAP_READ_BIT */
+ { 16625, 0x00000D11 }, /* GL_MAP_STENCIL */
+ { 16640, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
+ { 16666, 0x00000002 }, /* GL_MAP_WRITE_BIT */
+ { 16683, 0x000088C0 }, /* GL_MATRIX0_ARB */
+ { 16698, 0x00008630 }, /* GL_MATRIX0_NV */
+ { 16712, 0x000088CA }, /* GL_MATRIX10_ARB */
+ { 16728, 0x000088CB }, /* GL_MATRIX11_ARB */
+ { 16744, 0x000088CC }, /* GL_MATRIX12_ARB */
+ { 16760, 0x000088CD }, /* GL_MATRIX13_ARB */
+ { 16776, 0x000088CE }, /* GL_MATRIX14_ARB */
+ { 16792, 0x000088CF }, /* GL_MATRIX15_ARB */
+ { 16808, 0x000088D0 }, /* GL_MATRIX16_ARB */
+ { 16824, 0x000088D1 }, /* GL_MATRIX17_ARB */
+ { 16840, 0x000088D2 }, /* GL_MATRIX18_ARB */
+ { 16856, 0x000088D3 }, /* GL_MATRIX19_ARB */
+ { 16872, 0x000088C1 }, /* GL_MATRIX1_ARB */
+ { 16887, 0x00008631 }, /* GL_MATRIX1_NV */
+ { 16901, 0x000088D4 }, /* GL_MATRIX20_ARB */
+ { 16917, 0x000088D5 }, /* GL_MATRIX21_ARB */
+ { 16933, 0x000088D6 }, /* GL_MATRIX22_ARB */
+ { 16949, 0x000088D7 }, /* GL_MATRIX23_ARB */
+ { 16965, 0x000088D8 }, /* GL_MATRIX24_ARB */
+ { 16981, 0x000088D9 }, /* GL_MATRIX25_ARB */
+ { 16997, 0x000088DA }, /* GL_MATRIX26_ARB */
+ { 17013, 0x000088DB }, /* GL_MATRIX27_ARB */
+ { 17029, 0x000088DC }, /* GL_MATRIX28_ARB */
+ { 17045, 0x000088DD }, /* GL_MATRIX29_ARB */
+ { 17061, 0x000088C2 }, /* GL_MATRIX2_ARB */
+ { 17076, 0x00008632 }, /* GL_MATRIX2_NV */
+ { 17090, 0x000088DE }, /* GL_MATRIX30_ARB */
+ { 17106, 0x000088DF }, /* GL_MATRIX31_ARB */
+ { 17122, 0x000088C3 }, /* GL_MATRIX3_ARB */
+ { 17137, 0x00008633 }, /* GL_MATRIX3_NV */
+ { 17151, 0x000088C4 }, /* GL_MATRIX4_ARB */
+ { 17166, 0x00008634 }, /* GL_MATRIX4_NV */
+ { 17180, 0x000088C5 }, /* GL_MATRIX5_ARB */
+ { 17195, 0x00008635 }, /* GL_MATRIX5_NV */
+ { 17209, 0x000088C6 }, /* GL_MATRIX6_ARB */
+ { 17224, 0x00008636 }, /* GL_MATRIX6_NV */
+ { 17238, 0x000088C7 }, /* GL_MATRIX7_ARB */
+ { 17253, 0x00008637 }, /* GL_MATRIX7_NV */
+ { 17267, 0x000088C8 }, /* GL_MATRIX8_ARB */
+ { 17282, 0x000088C9 }, /* GL_MATRIX9_ARB */
+ { 17297, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ { 17323, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ { 17357, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ { 17388, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ { 17421, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ { 17452, 0x00000BA0 }, /* GL_MATRIX_MODE */
+ { 17467, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
+ { 17489, 0x00008008 }, /* GL_MAX */
+ { 17496, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
+ { 17519, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ { 17551, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ { 17577, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ { 17610, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ { 17636, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 17670, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
+ { 17689, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ { 17718, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ { 17750, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 17786, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ { 17822, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
+ { 17862, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
+ { 17888, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
+ { 17918, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
+ { 17943, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
+ { 17972, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ { 18001, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
+ { 18034, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
+ { 18054, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
+ { 18078, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
+ { 18102, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
+ { 18126, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
+ { 18151, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
+ { 18169, 0x00008008 }, /* GL_MAX_EXT */
+ { 18180, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ { 18215, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
+ { 18254, 0x00000D31 }, /* GL_MAX_LIGHTS */
+ { 18268, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
+ { 18288, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ { 18326, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ { 18355, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
+ { 18379, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
+ { 18407, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
+ { 18430, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 18467, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 18503, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ { 18530, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ { 18559, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ { 18593, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
+ { 18629, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ { 18656, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ { 18688, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ { 18724, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ { 18753, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ { 18782, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ { 18810, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ { 18848, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 18892, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 18935, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 18969, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 19008, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 19045, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 19083, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 19126, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 19169, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ { 19199, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ { 19230, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 19266, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 19302, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ { 19332, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ { 19366, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
+ { 19399, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ { 19428, 0x00008D57 }, /* GL_MAX_SAMPLES */
+ { 19443, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ { 19470, 0x00008504 }, /* GL_MAX_SHININESS_NV */
+ { 19490, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
+ { 19514, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
+ { 19536, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
+ { 19562, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ { 19589, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
+ { 19620, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
+ { 19644, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 19678, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
+ { 19698, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ { 19725, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
+ { 19746, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
+ { 19771, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
+ { 19796, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
+ { 19831, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
+ { 19853, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
+ { 19879, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
+ { 19901, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
+ { 19927, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ { 19961, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
+ { 19999, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ { 20032, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
+ { 20069, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
+ { 20093, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
+ { 20114, 0x00008007 }, /* GL_MIN */
+ { 20121, 0x0000802E }, /* GL_MINMAX */
+ { 20131, 0x0000802E }, /* GL_MINMAX_EXT */
+ { 20145, 0x0000802F }, /* GL_MINMAX_FORMAT */
+ { 20162, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
+ { 20183, 0x00008030 }, /* GL_MINMAX_SINK */
+ { 20198, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
+ { 20217, 0x00008007 }, /* GL_MIN_EXT */
+ { 20228, 0x00008370 }, /* GL_MIRRORED_REPEAT */
+ { 20247, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
+ { 20270, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
+ { 20293, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
+ { 20313, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
+ { 20333, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ { 20363, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
+ { 20391, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ { 20419, 0x00001700 }, /* GL_MODELVIEW */
+ { 20432, 0x00001700 }, /* GL_MODELVIEW0_ARB */
+ { 20450, 0x0000872A }, /* GL_MODELVIEW10_ARB */
+ { 20469, 0x0000872B }, /* GL_MODELVIEW11_ARB */
+ { 20488, 0x0000872C }, /* GL_MODELVIEW12_ARB */
+ { 20507, 0x0000872D }, /* GL_MODELVIEW13_ARB */
+ { 20526, 0x0000872E }, /* GL_MODELVIEW14_ARB */
+ { 20545, 0x0000872F }, /* GL_MODELVIEW15_ARB */
+ { 20564, 0x00008730 }, /* GL_MODELVIEW16_ARB */
+ { 20583, 0x00008731 }, /* GL_MODELVIEW17_ARB */
+ { 20602, 0x00008732 }, /* GL_MODELVIEW18_ARB */
+ { 20621, 0x00008733 }, /* GL_MODELVIEW19_ARB */
+ { 20640, 0x0000850A }, /* GL_MODELVIEW1_ARB */
+ { 20658, 0x00008734 }, /* GL_MODELVIEW20_ARB */
+ { 20677, 0x00008735 }, /* GL_MODELVIEW21_ARB */
+ { 20696, 0x00008736 }, /* GL_MODELVIEW22_ARB */
+ { 20715, 0x00008737 }, /* GL_MODELVIEW23_ARB */
+ { 20734, 0x00008738 }, /* GL_MODELVIEW24_ARB */
+ { 20753, 0x00008739 }, /* GL_MODELVIEW25_ARB */
+ { 20772, 0x0000873A }, /* GL_MODELVIEW26_ARB */
+ { 20791, 0x0000873B }, /* GL_MODELVIEW27_ARB */
+ { 20810, 0x0000873C }, /* GL_MODELVIEW28_ARB */
+ { 20829, 0x0000873D }, /* GL_MODELVIEW29_ARB */
+ { 20848, 0x00008722 }, /* GL_MODELVIEW2_ARB */
+ { 20866, 0x0000873E }, /* GL_MODELVIEW30_ARB */
+ { 20885, 0x0000873F }, /* GL_MODELVIEW31_ARB */
+ { 20904, 0x00008723 }, /* GL_MODELVIEW3_ARB */
+ { 20922, 0x00008724 }, /* GL_MODELVIEW4_ARB */
+ { 20940, 0x00008725 }, /* GL_MODELVIEW5_ARB */
+ { 20958, 0x00008726 }, /* GL_MODELVIEW6_ARB */
+ { 20976, 0x00008727 }, /* GL_MODELVIEW7_ARB */
+ { 20994, 0x00008728 }, /* GL_MODELVIEW8_ARB */
+ { 21012, 0x00008729 }, /* GL_MODELVIEW9_ARB */
+ { 21030, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
+ { 21050, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
+ { 21077, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
+ { 21102, 0x00002100 }, /* GL_MODULATE */
+ { 21114, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
+ { 21134, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
+ { 21161, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
+ { 21186, 0x00000103 }, /* GL_MULT */
+ { 21194, 0x0000809D }, /* GL_MULTISAMPLE */
+ { 21209, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
+ { 21229, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
+ { 21248, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
+ { 21267, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
+ { 21291, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
+ { 21314, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ { 21344, 0x00002A25 }, /* GL_N3F_V3F */
+ { 21355, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
+ { 21375, 0x0000150E }, /* GL_NAND */
+ { 21383, 0x00002600 }, /* GL_NEAREST */
+ { 21394, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ { 21425, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ { 21457, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
+ { 21482, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
+ { 21508, 0x00000200 }, /* GL_NEVER */
+ { 21517, 0x00001102 }, /* GL_NICEST */
+ { 21527, 0x00000000 }, /* GL_NONE */
+ { 21535, 0x00001505 }, /* GL_NOOP */
+ { 21543, 0x00001508 }, /* GL_NOR */
+ { 21550, 0x00000BA1 }, /* GL_NORMALIZE */
+ { 21563, 0x00008075 }, /* GL_NORMAL_ARRAY */
+ { 21579, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ { 21610, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
+ { 21645, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
+ { 21669, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
+ { 21692, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
+ { 21713, 0x00008511 }, /* GL_NORMAL_MAP */
+ { 21727, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
+ { 21745, 0x00008511 }, /* GL_NORMAL_MAP_NV */
+ { 21762, 0x00000205 }, /* GL_NOTEQUAL */
+ { 21774, 0x00000000 }, /* GL_NO_ERROR */
+ { 21786, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ { 21820, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
+ { 21858, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
+ { 21890, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
+ { 21932, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
+ { 21962, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
+ { 22002, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
+ { 22033, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
+ { 22062, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
+ { 22090, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
+ { 22120, 0x00002401 }, /* GL_OBJECT_LINEAR */
+ { 22137, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
+ { 22163, 0x00002501 }, /* GL_OBJECT_PLANE */
+ { 22179, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
+ { 22214, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
+ { 22236, 0x00009112 }, /* GL_OBJECT_TYPE */
+ { 22251, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
+ { 22270, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
+ { 22300, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
+ { 22321, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
+ { 22349, 0x00000001 }, /* GL_ONE */
+ { 22356, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ { 22384, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
+ { 22416, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ { 22444, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
+ { 22476, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
+ { 22499, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
+ { 22522, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
+ { 22545, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
+ { 22568, 0x00008598 }, /* GL_OPERAND0_ALPHA */
+ { 22586, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
+ { 22608, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
+ { 22630, 0x00008590 }, /* GL_OPERAND0_RGB */
+ { 22646, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
+ { 22666, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
+ { 22686, 0x00008599 }, /* GL_OPERAND1_ALPHA */
+ { 22704, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
+ { 22726, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
+ { 22748, 0x00008591 }, /* GL_OPERAND1_RGB */
+ { 22764, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
+ { 22784, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
+ { 22804, 0x0000859A }, /* GL_OPERAND2_ALPHA */
+ { 22822, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
+ { 22844, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
+ { 22866, 0x00008592 }, /* GL_OPERAND2_RGB */
+ { 22882, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
+ { 22902, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
+ { 22922, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
+ { 22943, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
+ { 22962, 0x00001507 }, /* GL_OR */
+ { 22968, 0x00000A01 }, /* GL_ORDER */
+ { 22977, 0x0000150D }, /* GL_OR_INVERTED */
+ { 22992, 0x0000150B }, /* GL_OR_REVERSE */
+ { 23006, 0x00000505 }, /* GL_OUT_OF_MEMORY */
+ { 23023, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
+ { 23041, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
+ { 23062, 0x00008758 }, /* GL_PACK_INVERT_MESA */
+ { 23082, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
+ { 23100, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
+ { 23119, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
+ { 23139, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
+ { 23159, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
+ { 23177, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
+ { 23196, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
+ { 23221, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
+ { 23245, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
+ { 23266, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
+ { 23288, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
+ { 23310, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
+ { 23335, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
+ { 23359, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
+ { 23380, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
+ { 23402, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
+ { 23424, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
+ { 23446, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ { 23477, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
+ { 23497, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ { 23522, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
+ { 23542, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ { 23567, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
+ { 23587, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ { 23612, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
+ { 23632, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ { 23657, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
+ { 23677, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ { 23702, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
+ { 23722, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ { 23747, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
+ { 23767, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ { 23792, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
+ { 23812, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ { 23837, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
+ { 23857, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ { 23882, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
+ { 23902, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ { 23927, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
+ { 23945, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
+ { 23966, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ { 23995, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
+ { 24028, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
+ { 24053, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
+ { 24076, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ { 24107, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
+ { 24142, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
+ { 24169, 0x00001B00 }, /* GL_POINT */
+ { 24178, 0x00000000 }, /* GL_POINTS */
+ { 24188, 0x00000002 }, /* GL_POINT_BIT */
+ { 24201, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
+ { 24231, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
+ { 24265, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
+ { 24299, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
+ { 24334, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ { 24363, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
+ { 24396, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
+ { 24429, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
+ { 24463, 0x00000B11 }, /* GL_POINT_SIZE */
+ { 24477, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
+ { 24503, 0x00008127 }, /* GL_POINT_SIZE_MAX */
+ { 24521, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
+ { 24543, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
+ { 24565, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
+ { 24588, 0x00008126 }, /* GL_POINT_SIZE_MIN */
+ { 24606, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
+ { 24628, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
+ { 24650, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
+ { 24673, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
+ { 24693, 0x00000B10 }, /* GL_POINT_SMOOTH */
+ { 24709, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
+ { 24730, 0x00008861 }, /* GL_POINT_SPRITE */
+ { 24746, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
+ { 24766, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ { 24795, 0x00008861 }, /* GL_POINT_SPRITE_NV */
+ { 24814, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
+ { 24840, 0x00000701 }, /* GL_POINT_TOKEN */
+ { 24855, 0x00000009 }, /* GL_POLYGON */
+ { 24866, 0x00000008 }, /* GL_POLYGON_BIT */
+ { 24881, 0x00000B40 }, /* GL_POLYGON_MODE */
+ { 24897, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
+ { 24920, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
+ { 24945, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
+ { 24968, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
+ { 24991, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
+ { 25015, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
+ { 25039, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
+ { 25057, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
+ { 25080, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
+ { 25099, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
+ { 25122, 0x00000703 }, /* GL_POLYGON_TOKEN */
+ { 25139, 0x00001203 }, /* GL_POSITION */
+ { 25151, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ { 25183, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
+ { 25219, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ { 25252, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
+ { 25289, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ { 25320, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
+ { 25355, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ { 25387, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
+ { 25423, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 25456, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ { 25488, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
+ { 25524, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ { 25557, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
+ { 25594, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ { 25624, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
+ { 25658, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ { 25689, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
+ { 25724, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ { 25755, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
+ { 25790, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ { 25822, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
+ { 25858, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ { 25888, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
+ { 25922, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ { 25953, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
+ { 25988, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ { 26020, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ { 26051, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
+ { 26086, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ { 26118, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
+ { 26154, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
+ { 26183, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
+ { 26216, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
+ { 26246, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
+ { 26280, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ { 26319, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ { 26352, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ { 26392, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ { 26426, 0x00008578 }, /* GL_PREVIOUS */
+ { 26438, 0x00008578 }, /* GL_PREVIOUS_ARB */
+ { 26454, 0x00008578 }, /* GL_PREVIOUS_EXT */
+ { 26470, 0x00008577 }, /* GL_PRIMARY_COLOR */
+ { 26487, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
+ { 26508, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
+ { 26529, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 26562, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 26594, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
+ { 26617, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
+ { 26640, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ { 26670, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
+ { 26699, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
+ { 26727, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
+ { 26749, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ { 26777, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ { 26805, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
+ { 26827, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
+ { 26848, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 26888, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 26927, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 26957, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 26992, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 27025, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 27059, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 27098, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 27137, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
+ { 27159, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
+ { 27185, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
+ { 27209, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
+ { 27232, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
+ { 27254, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
+ { 27275, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
+ { 27296, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
+ { 27323, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 27355, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 27387, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ { 27422, 0x00001701 }, /* GL_PROJECTION */
+ { 27436, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
+ { 27457, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
+ { 27483, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
+ { 27507, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
+ { 27528, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
+ { 27547, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
+ { 27570, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 27609, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ { 27647, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
+ { 27667, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ { 27697, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
+ { 27721, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
+ { 27741, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ { 27771, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
+ { 27795, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
+ { 27815, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ { 27848, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ { 27874, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
+ { 27904, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ { 27935, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
+ { 27965, 0x00002003 }, /* GL_Q */
+ { 27970, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
+ { 27995, 0x00000007 }, /* GL_QUADS */
+ { 28004, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
+ { 28052, 0x00008614 }, /* GL_QUAD_MESH_SUN */
+ { 28069, 0x00000008 }, /* GL_QUAD_STRIP */
+ { 28083, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
+ { 28105, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
+ { 28131, 0x00008866 }, /* GL_QUERY_RESULT */
+ { 28147, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
+ { 28167, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
+ { 28193, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
+ { 28223, 0x00002002 }, /* GL_R */
+ { 28228, 0x00002A10 }, /* GL_R3_G3_B2 */
+ { 28240, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ { 28273, 0x00000C02 }, /* GL_READ_BUFFER */
+ { 28288, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
+ { 28308, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ { 28340, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
+ { 28364, 0x000088B8 }, /* GL_READ_ONLY */
+ { 28377, 0x000088B8 }, /* GL_READ_ONLY_ARB */
+ { 28394, 0x000088BA }, /* GL_READ_WRITE */
+ { 28408, 0x000088BA }, /* GL_READ_WRITE_ARB */
+ { 28426, 0x00001903 }, /* GL_RED */
+ { 28433, 0x00008016 }, /* GL_REDUCE */
+ { 28443, 0x00008016 }, /* GL_REDUCE_EXT */
+ { 28457, 0x00000D15 }, /* GL_RED_BIAS */
+ { 28469, 0x00000D52 }, /* GL_RED_BITS */
+ { 28481, 0x00000D14 }, /* GL_RED_SCALE */
+ { 28494, 0x00008512 }, /* GL_REFLECTION_MAP */
+ { 28512, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
+ { 28534, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
+ { 28555, 0x00001C00 }, /* GL_RENDER */
+ { 28565, 0x00008D41 }, /* GL_RENDERBUFFER */
+ { 28581, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ { 28608, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
+ { 28636, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
+ { 28662, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ { 28689, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
+ { 28709, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
+ { 28736, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
+ { 28759, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
+ { 28786, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ { 28818, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
+ { 28854, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
+ { 28879, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
+ { 28903, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ { 28932, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
+ { 28954, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
+ { 28980, 0x00001F01 }, /* GL_RENDERER */
+ { 28992, 0x00000C40 }, /* GL_RENDER_MODE */
+ { 29007, 0x00002901 }, /* GL_REPEAT */
+ { 29017, 0x00001E01 }, /* GL_REPLACE */
+ { 29028, 0x00008062 }, /* GL_REPLACE_EXT */
+ { 29043, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
+ { 29066, 0x0000803A }, /* GL_RESCALE_NORMAL */
+ { 29084, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
+ { 29106, 0x00000102 }, /* GL_RETURN */
+ { 29116, 0x00001907 }, /* GL_RGB */
+ { 29123, 0x00008052 }, /* GL_RGB10 */
+ { 29132, 0x00008059 }, /* GL_RGB10_A2 */
+ { 29144, 0x00008059 }, /* GL_RGB10_A2_EXT */
+ { 29160, 0x00008052 }, /* GL_RGB10_EXT */
+ { 29173, 0x00008053 }, /* GL_RGB12 */
+ { 29182, 0x00008053 }, /* GL_RGB12_EXT */
+ { 29195, 0x00008054 }, /* GL_RGB16 */
+ { 29204, 0x00008054 }, /* GL_RGB16_EXT */
+ { 29217, 0x0000804E }, /* GL_RGB2_EXT */
+ { 29229, 0x0000804F }, /* GL_RGB4 */
+ { 29237, 0x0000804F }, /* GL_RGB4_EXT */
+ { 29249, 0x000083A1 }, /* GL_RGB4_S3TC */
+ { 29262, 0x00008050 }, /* GL_RGB5 */
+ { 29270, 0x00008057 }, /* GL_RGB5_A1 */
+ { 29281, 0x00008057 }, /* GL_RGB5_A1_EXT */
+ { 29296, 0x00008050 }, /* GL_RGB5_EXT */
+ { 29308, 0x00008051 }, /* GL_RGB8 */
+ { 29316, 0x00008051 }, /* GL_RGB8_EXT */
+ { 29328, 0x00001908 }, /* GL_RGBA */
+ { 29336, 0x0000805A }, /* GL_RGBA12 */
+ { 29346, 0x0000805A }, /* GL_RGBA12_EXT */
+ { 29360, 0x0000805B }, /* GL_RGBA16 */
+ { 29370, 0x0000805B }, /* GL_RGBA16_EXT */
+ { 29384, 0x00008055 }, /* GL_RGBA2 */
+ { 29393, 0x00008055 }, /* GL_RGBA2_EXT */
+ { 29406, 0x00008056 }, /* GL_RGBA4 */
+ { 29415, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
+ { 29434, 0x00008056 }, /* GL_RGBA4_EXT */
+ { 29447, 0x000083A3 }, /* GL_RGBA4_S3TC */
+ { 29461, 0x00008058 }, /* GL_RGBA8 */
+ { 29470, 0x00008058 }, /* GL_RGBA8_EXT */
+ { 29483, 0x00008F97 }, /* GL_RGBA8_SNORM */
+ { 29498, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
+ { 29516, 0x00000C31 }, /* GL_RGBA_MODE */
+ { 29529, 0x000083A2 }, /* GL_RGBA_S3TC */
+ { 29542, 0x00008F93 }, /* GL_RGBA_SNORM */
+ { 29556, 0x000083A0 }, /* GL_RGB_S3TC */
+ { 29568, 0x00008573 }, /* GL_RGB_SCALE */
+ { 29581, 0x00008573 }, /* GL_RGB_SCALE_ARB */
+ { 29598, 0x00008573 }, /* GL_RGB_SCALE_EXT */
+ { 29615, 0x00000407 }, /* GL_RIGHT */
+ { 29624, 0x00002000 }, /* GL_S */
+ { 29629, 0x00008B5D }, /* GL_SAMPLER_1D */
+ { 29643, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
+ { 29664, 0x00008B5E }, /* GL_SAMPLER_2D */
+ { 29678, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
+ { 29699, 0x00008B5F }, /* GL_SAMPLER_3D */
+ { 29713, 0x00008B60 }, /* GL_SAMPLER_CUBE */
+ { 29729, 0x000080A9 }, /* GL_SAMPLES */
+ { 29740, 0x000086B4 }, /* GL_SAMPLES_3DFX */
+ { 29756, 0x000080A9 }, /* GL_SAMPLES_ARB */
+ { 29771, 0x00008914 }, /* GL_SAMPLES_PASSED */
+ { 29789, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
+ { 29811, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ { 29839, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
+ { 29871, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
+ { 29894, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
+ { 29921, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
+ { 29939, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
+ { 29962, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
+ { 29984, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
+ { 30003, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
+ { 30026, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
+ { 30052, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
+ { 30082, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
+ { 30107, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
+ { 30136, 0x00080000 }, /* GL_SCISSOR_BIT */
+ { 30151, 0x00000C10 }, /* GL_SCISSOR_BOX */
+ { 30166, 0x00000C11 }, /* GL_SCISSOR_TEST */
+ { 30182, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
+ { 30207, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ { 30247, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 30291, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ { 30324, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ { 30354, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ { 30386, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ { 30416, 0x00001C02 }, /* GL_SELECT */
+ { 30426, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
+ { 30454, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
+ { 30479, 0x00008012 }, /* GL_SEPARABLE_2D */
+ { 30495, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
+ { 30522, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
+ { 30553, 0x0000150F }, /* GL_SET */
+ { 30560, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
+ { 30581, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
+ { 30605, 0x00008B4F }, /* GL_SHADER_TYPE */
+ { 30620, 0x00000B54 }, /* GL_SHADE_MODEL */
+ { 30635, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
+ { 30663, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
+ { 30686, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ { 30716, 0x00001601 }, /* GL_SHININESS */
+ { 30729, 0x00001402 }, /* GL_SHORT */
+ { 30738, 0x00009119 }, /* GL_SIGNALED */
+ { 30750, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
+ { 30771, 0x000081F9 }, /* GL_SINGLE_COLOR */
+ { 30787, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
+ { 30807, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
+ { 30826, 0x00008C46 }, /* GL_SLUMINANCE */
+ { 30840, 0x00008C47 }, /* GL_SLUMINANCE8 */
+ { 30855, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
+ { 30877, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
+ { 30897, 0x00001D01 }, /* GL_SMOOTH */
+ { 30907, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
+ { 30940, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
+ { 30967, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
+ { 31000, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
+ { 31027, 0x00008588 }, /* GL_SOURCE0_ALPHA */
+ { 31044, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
+ { 31065, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
+ { 31086, 0x00008580 }, /* GL_SOURCE0_RGB */
+ { 31101, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
+ { 31120, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
+ { 31139, 0x00008589 }, /* GL_SOURCE1_ALPHA */
+ { 31156, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
+ { 31177, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
+ { 31198, 0x00008581 }, /* GL_SOURCE1_RGB */
+ { 31213, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
+ { 31232, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
+ { 31251, 0x0000858A }, /* GL_SOURCE2_ALPHA */
+ { 31268, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
+ { 31289, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
+ { 31310, 0x00008582 }, /* GL_SOURCE2_RGB */
+ { 31325, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
+ { 31344, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
+ { 31363, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
+ { 31383, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
+ { 31401, 0x00001202 }, /* GL_SPECULAR */
+ { 31413, 0x00002402 }, /* GL_SPHERE_MAP */
+ { 31427, 0x00001206 }, /* GL_SPOT_CUTOFF */
+ { 31442, 0x00001204 }, /* GL_SPOT_DIRECTION */
+ { 31460, 0x00001205 }, /* GL_SPOT_EXPONENT */
+ { 31477, 0x00008588 }, /* GL_SRC0_ALPHA */
+ { 31491, 0x00008580 }, /* GL_SRC0_RGB */
+ { 31503, 0x00008589 }, /* GL_SRC1_ALPHA */
+ { 31517, 0x00008581 }, /* GL_SRC1_RGB */
+ { 31529, 0x0000858A }, /* GL_SRC2_ALPHA */
+ { 31543, 0x00008582 }, /* GL_SRC2_RGB */
+ { 31555, 0x00000302 }, /* GL_SRC_ALPHA */
+ { 31568, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
+ { 31590, 0x00000300 }, /* GL_SRC_COLOR */
+ { 31603, 0x00008C40 }, /* GL_SRGB */
+ { 31611, 0x00008C41 }, /* GL_SRGB8 */
+ { 31620, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
+ { 31636, 0x00008C42 }, /* GL_SRGB_ALPHA */
+ { 31650, 0x00000503 }, /* GL_STACK_OVERFLOW */
+ { 31668, 0x00000504 }, /* GL_STACK_UNDERFLOW */
+ { 31687, 0x000088E6 }, /* GL_STATIC_COPY */
+ { 31702, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
+ { 31721, 0x000088E4 }, /* GL_STATIC_DRAW */
+ { 31736, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
+ { 31755, 0x000088E5 }, /* GL_STATIC_READ */
+ { 31770, 0x000088E5 }, /* GL_STATIC_READ_ARB */
+ { 31789, 0x00001802 }, /* GL_STENCIL */
+ { 31800, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
+ { 31822, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
+ { 31848, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
+ { 31869, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
+ { 31894, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
+ { 31915, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
+ { 31940, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ { 31972, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
+ { 32008, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ { 32040, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
+ { 32076, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
+ { 32096, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
+ { 32123, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
+ { 32149, 0x00000D57 }, /* GL_STENCIL_BITS */
+ { 32165, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
+ { 32187, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
+ { 32210, 0x00000B94 }, /* GL_STENCIL_FAIL */
+ { 32226, 0x00000B92 }, /* GL_STENCIL_FUNC */
+ { 32242, 0x00001901 }, /* GL_STENCIL_INDEX */
+ { 32259, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
+ { 32282, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
+ { 32304, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
+ { 32326, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
+ { 32348, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
+ { 32369, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ { 32396, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
+ { 32423, 0x00000B97 }, /* GL_STENCIL_REF */
+ { 32438, 0x00000B90 }, /* GL_STENCIL_TEST */
+ { 32454, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ { 32483, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
+ { 32505, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
+ { 32526, 0x00000C33 }, /* GL_STEREO */
+ { 32536, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
+ { 32560, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
+ { 32585, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
+ { 32609, 0x000088E2 }, /* GL_STREAM_COPY */
+ { 32624, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
+ { 32643, 0x000088E0 }, /* GL_STREAM_DRAW */
+ { 32658, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
+ { 32677, 0x000088E1 }, /* GL_STREAM_READ */
+ { 32692, 0x000088E1 }, /* GL_STREAM_READ_ARB */
+ { 32711, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
+ { 32728, 0x000084E7 }, /* GL_SUBTRACT */
+ { 32740, 0x000084E7 }, /* GL_SUBTRACT_ARB */
+ { 32756, 0x00009113 }, /* GL_SYNC_CONDITION */
+ { 32774, 0x00009116 }, /* GL_SYNC_FENCE */
+ { 32788, 0x00009115 }, /* GL_SYNC_FLAGS */
+ { 32802, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
+ { 32829, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ { 32859, 0x00009114 }, /* GL_SYNC_STATUS */
+ { 32874, 0x00002001 }, /* GL_T */
+ { 32879, 0x00002A2A }, /* GL_T2F_C3F_V3F */
+ { 32894, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
+ { 32913, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
+ { 32929, 0x00002A2B }, /* GL_T2F_N3F_V3F */
+ { 32944, 0x00002A27 }, /* GL_T2F_V3F */
+ { 32955, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
+ { 32974, 0x00002A28 }, /* GL_T4F_V4F */
+ { 32985, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
+ { 33008, 0x00001702 }, /* GL_TEXTURE */
+ { 33019, 0x000084C0 }, /* GL_TEXTURE0 */
+ { 33031, 0x000084C0 }, /* GL_TEXTURE0_ARB */
+ { 33047, 0x000084C1 }, /* GL_TEXTURE1 */
+ { 33059, 0x000084CA }, /* GL_TEXTURE10 */
+ { 33072, 0x000084CA }, /* GL_TEXTURE10_ARB */
+ { 33089, 0x000084CB }, /* GL_TEXTURE11 */
+ { 33102, 0x000084CB }, /* GL_TEXTURE11_ARB */
+ { 33119, 0x000084CC }, /* GL_TEXTURE12 */
+ { 33132, 0x000084CC }, /* GL_TEXTURE12_ARB */
+ { 33149, 0x000084CD }, /* GL_TEXTURE13 */
+ { 33162, 0x000084CD }, /* GL_TEXTURE13_ARB */
+ { 33179, 0x000084CE }, /* GL_TEXTURE14 */
+ { 33192, 0x000084CE }, /* GL_TEXTURE14_ARB */
+ { 33209, 0x000084CF }, /* GL_TEXTURE15 */
+ { 33222, 0x000084CF }, /* GL_TEXTURE15_ARB */
+ { 33239, 0x000084D0 }, /* GL_TEXTURE16 */
+ { 33252, 0x000084D0 }, /* GL_TEXTURE16_ARB */
+ { 33269, 0x000084D1 }, /* GL_TEXTURE17 */
+ { 33282, 0x000084D1 }, /* GL_TEXTURE17_ARB */
+ { 33299, 0x000084D2 }, /* GL_TEXTURE18 */
+ { 33312, 0x000084D2 }, /* GL_TEXTURE18_ARB */
+ { 33329, 0x000084D3 }, /* GL_TEXTURE19 */
+ { 33342, 0x000084D3 }, /* GL_TEXTURE19_ARB */
+ { 33359, 0x000084C1 }, /* GL_TEXTURE1_ARB */
+ { 33375, 0x000084C2 }, /* GL_TEXTURE2 */
+ { 33387, 0x000084D4 }, /* GL_TEXTURE20 */
+ { 33400, 0x000084D4 }, /* GL_TEXTURE20_ARB */
+ { 33417, 0x000084D5 }, /* GL_TEXTURE21 */
+ { 33430, 0x000084D5 }, /* GL_TEXTURE21_ARB */
+ { 33447, 0x000084D6 }, /* GL_TEXTURE22 */
+ { 33460, 0x000084D6 }, /* GL_TEXTURE22_ARB */
+ { 33477, 0x000084D7 }, /* GL_TEXTURE23 */
+ { 33490, 0x000084D7 }, /* GL_TEXTURE23_ARB */
+ { 33507, 0x000084D8 }, /* GL_TEXTURE24 */
+ { 33520, 0x000084D8 }, /* GL_TEXTURE24_ARB */
+ { 33537, 0x000084D9 }, /* GL_TEXTURE25 */
+ { 33550, 0x000084D9 }, /* GL_TEXTURE25_ARB */
+ { 33567, 0x000084DA }, /* GL_TEXTURE26 */
+ { 33580, 0x000084DA }, /* GL_TEXTURE26_ARB */
+ { 33597, 0x000084DB }, /* GL_TEXTURE27 */
+ { 33610, 0x000084DB }, /* GL_TEXTURE27_ARB */
+ { 33627, 0x000084DC }, /* GL_TEXTURE28 */
+ { 33640, 0x000084DC }, /* GL_TEXTURE28_ARB */
+ { 33657, 0x000084DD }, /* GL_TEXTURE29 */
+ { 33670, 0x000084DD }, /* GL_TEXTURE29_ARB */
+ { 33687, 0x000084C2 }, /* GL_TEXTURE2_ARB */
+ { 33703, 0x000084C3 }, /* GL_TEXTURE3 */
+ { 33715, 0x000084DE }, /* GL_TEXTURE30 */
+ { 33728, 0x000084DE }, /* GL_TEXTURE30_ARB */
+ { 33745, 0x000084DF }, /* GL_TEXTURE31 */
+ { 33758, 0x000084DF }, /* GL_TEXTURE31_ARB */
+ { 33775, 0x000084C3 }, /* GL_TEXTURE3_ARB */
+ { 33791, 0x000084C4 }, /* GL_TEXTURE4 */
+ { 33803, 0x000084C4 }, /* GL_TEXTURE4_ARB */
+ { 33819, 0x000084C5 }, /* GL_TEXTURE5 */
+ { 33831, 0x000084C5 }, /* GL_TEXTURE5_ARB */
+ { 33847, 0x000084C6 }, /* GL_TEXTURE6 */
+ { 33859, 0x000084C6 }, /* GL_TEXTURE6_ARB */
+ { 33875, 0x000084C7 }, /* GL_TEXTURE7 */
+ { 33887, 0x000084C7 }, /* GL_TEXTURE7_ARB */
+ { 33903, 0x000084C8 }, /* GL_TEXTURE8 */
+ { 33915, 0x000084C8 }, /* GL_TEXTURE8_ARB */
+ { 33931, 0x000084C9 }, /* GL_TEXTURE9 */
+ { 33943, 0x000084C9 }, /* GL_TEXTURE9_ARB */
+ { 33959, 0x00000DE0 }, /* GL_TEXTURE_1D */
+ { 33973, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
+ { 33997, 0x00000DE1 }, /* GL_TEXTURE_2D */
+ { 34011, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
+ { 34035, 0x0000806F }, /* GL_TEXTURE_3D */
+ { 34049, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
+ { 34071, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
+ { 34097, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
+ { 34119, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
+ { 34141, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ { 34173, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
+ { 34195, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ { 34227, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
+ { 34249, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ { 34277, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
+ { 34309, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ { 34342, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
+ { 34374, 0x00040000 }, /* GL_TEXTURE_BIT */
+ { 34389, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
+ { 34410, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
+ { 34435, 0x00001005 }, /* GL_TEXTURE_BORDER */
+ { 34453, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
+ { 34477, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ { 34508, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ { 34538, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ { 34568, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ { 34603, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ { 34634, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 34672, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ { 34699, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ { 34731, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ { 34765, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
+ { 34789, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
+ { 34817, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
+ { 34841, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
+ { 34869, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ { 34902, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
+ { 34926, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
+ { 34948, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
+ { 34970, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
+ { 34996, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
+ { 35030, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ { 35063, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
+ { 35100, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
+ { 35128, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
+ { 35160, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
+ { 35183, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ { 35221, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
+ { 35263, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ { 35294, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ { 35322, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ { 35352, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ { 35380, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
+ { 35400, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
+ { 35424, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ { 35455, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
+ { 35490, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ { 35521, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
+ { 35556, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ { 35587, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
+ { 35622, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ { 35653, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
+ { 35688, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ { 35719, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
+ { 35754, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ { 35785, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
+ { 35820, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ { 35849, 0x00008071 }, /* GL_TEXTURE_DEPTH */
+ { 35866, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
+ { 35888, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
+ { 35914, 0x00002300 }, /* GL_TEXTURE_ENV */
+ { 35929, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
+ { 35950, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
+ { 35970, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
+ { 35996, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
+ { 36016, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
+ { 36033, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
+ { 36050, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
+ { 36067, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
+ { 36084, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ { 36109, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
+ { 36131, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
+ { 36157, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
+ { 36175, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ { 36201, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
+ { 36227, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
+ { 36257, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
+ { 36284, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ { 36309, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
+ { 36329, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
+ { 36353, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ { 36380, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ { 36407, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ { 36434, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
+ { 36460, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
+ { 36490, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
+ { 36512, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
+ { 36530, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 36560, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ { 36588, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ { 36616, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ { 36644, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
+ { 36665, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
+ { 36684, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
+ { 36706, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
+ { 36725, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
+ { 36745, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ { 36775, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ { 36806, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
+ { 36831, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
+ { 36855, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
+ { 36875, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
+ { 36899, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
+ { 36919, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
+ { 36942, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
+ { 36966, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ { 36996, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
+ { 37021, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ { 37055, 0x00001000 }, /* GL_TEXTURE_WIDTH */
+ { 37072, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
+ { 37090, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
+ { 37108, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
+ { 37126, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
+ { 37145, 0xFFFFFFFFFFFFFFFF }, /* GL_TIMEOUT_IGNORED */
+ { 37164, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 37184, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 37203, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 37232, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 37249, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 37275, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 37305, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 37337, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 37367, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 37401, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 37417, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 37448, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 37483, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 37511, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 37543, 0x00000004 }, /* GL_TRIANGLES */
+ { 37556, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 37572, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 37593, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 37611, 0x00000001 }, /* GL_TRUE */
+ { 37619, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 37639, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 37662, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 37682, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 37703, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 37725, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 37747, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 37767, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 37788, 0x00009118 }, /* GL_UNSIGNALED */
+ { 37802, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 37819, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 37846, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 37869, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 37885, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 37912, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
+ { 37933, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 37957, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 37988, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 38012, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 38040, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
+ { 38063, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 38081, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 38111, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 38137, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 38167, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 38193, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 38217, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 38245, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 38273, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 38300, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 38332, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 38363, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 38377, 0x00002A20 }, /* GL_V2F */
+ { 38384, 0x00002A21 }, /* GL_V3F */
+ { 38391, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 38410, 0x00001F00 }, /* GL_VENDOR */
+ { 38420, 0x00001F02 }, /* GL_VERSION */
+ { 38431, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 38447, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
+ { 38471, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 38501, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 38532, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 38567, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 38591, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 38612, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 38635, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 38656, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 38683, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 38711, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 38739, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 38767, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 38795, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 38823, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 38851, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 38878, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 38905, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 38932, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 38959, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 38986, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 39013, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 39040, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 39067, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 39094, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 39132, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 39174, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 39205, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 39240, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 39274, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 39312, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 39343, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 39378, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 39406, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 39438, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 39468, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 39502, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 39530, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 39562, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 39582, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 39604, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 39633, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 39654, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 39683, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 39716, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 39748, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 39775, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 39806, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 39836, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 39853, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 39874, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 39901, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 39913, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 39929, 0x0000911D }, /* GL_WAIT_FAILED */
+ { 39944, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 39964, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 39995, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 40030, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 40058, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 40083, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 40110, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 40135, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 40159, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 40178, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 40192, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 40210, 0x00001506 }, /* GL_XOR */
+ { 40217, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 40236, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 40250, 0x00000000 }, /* GL_ZERO */
+ { 40258, 0x00000D16 }, /* GL_ZOOM_X */
+ { 40268, 0x00000D17 }, /* GL_ZOOM_Y */
};
-static const unsigned reduced_enums[1333] =
+static const unsigned reduced_enums[1347] =
{
- 473, /* GL_FALSE */
- 689, /* GL_LINES */
- 691, /* GL_LINE_LOOP */
- 698, /* GL_LINE_STRIP */
- 1730, /* GL_TRIANGLES */
- 1733, /* GL_TRIANGLE_STRIP */
- 1731, /* GL_TRIANGLE_FAN */
- 1267, /* GL_QUADS */
- 1270, /* GL_QUAD_STRIP */
- 1154, /* GL_POLYGON */
- 1166, /* GL_POLYGON_STIPPLE_BIT */
- 1115, /* GL_PIXEL_MODE_BIT */
- 676, /* GL_LIGHTING_BIT */
- 502, /* GL_FOG_BIT */
+ 475, /* GL_FALSE */
+ 691, /* GL_LINES */
+ 693, /* GL_LINE_LOOP */
+ 700, /* GL_LINE_STRIP */
+ 1743, /* GL_TRIANGLES */
+ 1746, /* GL_TRIANGLE_STRIP */
+ 1744, /* GL_TRIANGLE_FAN */
+ 1271, /* GL_QUADS */
+ 1274, /* GL_QUAD_STRIP */
+ 1158, /* GL_POLYGON */
+ 1170, /* GL_POLYGON_STIPPLE_BIT */
+ 1119, /* GL_PIXEL_MODE_BIT */
+ 678, /* GL_LIGHTING_BIT */
+ 504, /* GL_FOG_BIT */
8, /* GL_ACCUM */
- 708, /* GL_LOAD */
- 1322, /* GL_RETURN */
- 988, /* GL_MULT */
+ 710, /* GL_LOAD */
+ 1326, /* GL_RETURN */
+ 991, /* GL_MULT */
23, /* GL_ADD */
- 1004, /* GL_NEVER */
- 666, /* GL_LESS */
- 463, /* GL_EQUAL */
- 665, /* GL_LEQUAL */
- 588, /* GL_GREATER */
- 1019, /* GL_NOTEQUAL */
- 587, /* GL_GEQUAL */
- 46, /* GL_ALWAYS */
- 1462, /* GL_SRC_COLOR */
- 1048, /* GL_ONE_MINUS_SRC_COLOR */
- 1460, /* GL_SRC_ALPHA */
- 1047, /* GL_ONE_MINUS_SRC_ALPHA */
- 442, /* GL_DST_ALPHA */
- 1045, /* GL_ONE_MINUS_DST_ALPHA */
- 443, /* GL_DST_COLOR */
- 1046, /* GL_ONE_MINUS_DST_COLOR */
- 1461, /* GL_SRC_ALPHA_SATURATE */
- 575, /* GL_FRONT_LEFT */
- 576, /* GL_FRONT_RIGHT */
- 68, /* GL_BACK_LEFT */
- 69, /* GL_BACK_RIGHT */
- 572, /* GL_FRONT */
- 67, /* GL_BACK */
- 664, /* GL_LEFT */
- 1364, /* GL_RIGHT */
- 573, /* GL_FRONT_AND_BACK */
- 62, /* GL_AUX0 */
- 63, /* GL_AUX1 */
- 64, /* GL_AUX2 */
- 65, /* GL_AUX3 */
- 654, /* GL_INVALID_ENUM */
- 658, /* GL_INVALID_VALUE */
- 657, /* GL_INVALID_OPERATION */
- 1467, /* GL_STACK_OVERFLOW */
- 1468, /* GL_STACK_UNDERFLOW */
- 1073, /* GL_OUT_OF_MEMORY */
- 655, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ 1007, /* GL_NEVER */
+ 668, /* GL_LESS */
+ 465, /* GL_EQUAL */
+ 667, /* GL_LEQUAL */
+ 590, /* GL_GREATER */
+ 1022, /* GL_NOTEQUAL */
+ 589, /* GL_GEQUAL */
+ 47, /* GL_ALWAYS */
+ 1467, /* GL_SRC_COLOR */
+ 1052, /* GL_ONE_MINUS_SRC_COLOR */
+ 1465, /* GL_SRC_ALPHA */
+ 1051, /* GL_ONE_MINUS_SRC_ALPHA */
+ 444, /* GL_DST_ALPHA */
+ 1049, /* GL_ONE_MINUS_DST_ALPHA */
+ 445, /* GL_DST_COLOR */
+ 1050, /* GL_ONE_MINUS_DST_COLOR */
+ 1466, /* GL_SRC_ALPHA_SATURATE */
+ 577, /* GL_FRONT_LEFT */
+ 578, /* GL_FRONT_RIGHT */
+ 69, /* GL_BACK_LEFT */
+ 70, /* GL_BACK_RIGHT */
+ 574, /* GL_FRONT */
+ 68, /* GL_BACK */
+ 666, /* GL_LEFT */
+ 1368, /* GL_RIGHT */
+ 575, /* GL_FRONT_AND_BACK */
+ 63, /* GL_AUX0 */
+ 64, /* GL_AUX1 */
+ 65, /* GL_AUX2 */
+ 66, /* GL_AUX3 */
+ 656, /* GL_INVALID_ENUM */
+ 660, /* GL_INVALID_VALUE */
+ 659, /* GL_INVALID_OPERATION */
+ 1472, /* GL_STACK_OVERFLOW */
+ 1473, /* GL_STACK_UNDERFLOW */
+ 1077, /* GL_OUT_OF_MEMORY */
+ 657, /* GL_INVALID_FRAMEBUFFER_OPERATION */
0, /* GL_2D */
2, /* GL_3D */
3, /* GL_3D_COLOR */
4, /* GL_3D_COLOR_TEXTURE */
6, /* GL_4D_COLOR_TEXTURE */
- 1093, /* GL_PASS_THROUGH_TOKEN */
- 1153, /* GL_POINT_TOKEN */
- 699, /* GL_LINE_TOKEN */
- 1167, /* GL_POLYGON_TOKEN */
- 73, /* GL_BITMAP_TOKEN */
- 441, /* GL_DRAW_PIXEL_TOKEN */
- 299, /* GL_COPY_PIXEL_TOKEN */
- 692, /* GL_LINE_RESET_TOKEN */
- 466, /* GL_EXP */
- 467, /* GL_EXP2 */
- 335, /* GL_CW */
- 124, /* GL_CCW */
- 145, /* GL_COEFF */
- 1070, /* GL_ORDER */
- 379, /* GL_DOMAIN */
- 309, /* GL_CURRENT_COLOR */
- 312, /* GL_CURRENT_INDEX */
- 318, /* GL_CURRENT_NORMAL */
- 331, /* GL_CURRENT_TEXTURE_COORDS */
- 323, /* GL_CURRENT_RASTER_COLOR */
- 325, /* GL_CURRENT_RASTER_INDEX */
- 329, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- 326, /* GL_CURRENT_RASTER_POSITION */
- 327, /* GL_CURRENT_RASTER_POSITION_VALID */
- 324, /* GL_CURRENT_RASTER_DISTANCE */
- 1146, /* GL_POINT_SMOOTH */
- 1135, /* GL_POINT_SIZE */
- 1145, /* GL_POINT_SIZE_RANGE */
- 1136, /* GL_POINT_SIZE_GRANULARITY */
- 693, /* GL_LINE_SMOOTH */
- 700, /* GL_LINE_WIDTH */
- 702, /* GL_LINE_WIDTH_RANGE */
- 701, /* GL_LINE_WIDTH_GRANULARITY */
- 695, /* GL_LINE_STIPPLE */
- 696, /* GL_LINE_STIPPLE_PATTERN */
- 697, /* GL_LINE_STIPPLE_REPEAT */
- 707, /* GL_LIST_MODE */
- 872, /* GL_MAX_LIST_NESTING */
- 704, /* GL_LIST_BASE */
- 706, /* GL_LIST_INDEX */
- 1156, /* GL_POLYGON_MODE */
- 1163, /* GL_POLYGON_SMOOTH */
- 1165, /* GL_POLYGON_STIPPLE */
- 452, /* GL_EDGE_FLAG */
- 302, /* GL_CULL_FACE */
- 303, /* GL_CULL_FACE_MODE */
- 574, /* GL_FRONT_FACE */
- 675, /* GL_LIGHTING */
- 680, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- 681, /* GL_LIGHT_MODEL_TWO_SIDE */
- 677, /* GL_LIGHT_MODEL_AMBIENT */
- 1410, /* GL_SHADE_MODEL */
- 192, /* GL_COLOR_MATERIAL_FACE */
- 193, /* GL_COLOR_MATERIAL_PARAMETER */
- 191, /* GL_COLOR_MATERIAL */
- 501, /* GL_FOG */
- 523, /* GL_FOG_INDEX */
- 519, /* GL_FOG_DENSITY */
- 527, /* GL_FOG_START */
- 521, /* GL_FOG_END */
- 524, /* GL_FOG_MODE */
- 503, /* GL_FOG_COLOR */
- 366, /* GL_DEPTH_RANGE */
- 373, /* GL_DEPTH_TEST */
- 376, /* GL_DEPTH_WRITEMASK */
- 354, /* GL_DEPTH_CLEAR_VALUE */
- 365, /* GL_DEPTH_FUNC */
+ 1097, /* GL_PASS_THROUGH_TOKEN */
+ 1157, /* GL_POINT_TOKEN */
+ 701, /* GL_LINE_TOKEN */
+ 1171, /* GL_POLYGON_TOKEN */
+ 74, /* GL_BITMAP_TOKEN */
+ 443, /* GL_DRAW_PIXEL_TOKEN */
+ 301, /* GL_COPY_PIXEL_TOKEN */
+ 694, /* GL_LINE_RESET_TOKEN */
+ 468, /* GL_EXP */
+ 469, /* GL_EXP2 */
+ 337, /* GL_CW */
+ 125, /* GL_CCW */
+ 146, /* GL_COEFF */
+ 1074, /* GL_ORDER */
+ 381, /* GL_DOMAIN */
+ 311, /* GL_CURRENT_COLOR */
+ 314, /* GL_CURRENT_INDEX */
+ 320, /* GL_CURRENT_NORMAL */
+ 333, /* GL_CURRENT_TEXTURE_COORDS */
+ 325, /* GL_CURRENT_RASTER_COLOR */
+ 327, /* GL_CURRENT_RASTER_INDEX */
+ 331, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ 328, /* GL_CURRENT_RASTER_POSITION */
+ 329, /* GL_CURRENT_RASTER_POSITION_VALID */
+ 326, /* GL_CURRENT_RASTER_DISTANCE */
+ 1150, /* GL_POINT_SMOOTH */
+ 1139, /* GL_POINT_SIZE */
+ 1149, /* GL_POINT_SIZE_RANGE */
+ 1140, /* GL_POINT_SIZE_GRANULARITY */
+ 695, /* GL_LINE_SMOOTH */
+ 702, /* GL_LINE_WIDTH */
+ 704, /* GL_LINE_WIDTH_RANGE */
+ 703, /* GL_LINE_WIDTH_GRANULARITY */
+ 697, /* GL_LINE_STIPPLE */
+ 698, /* GL_LINE_STIPPLE_PATTERN */
+ 699, /* GL_LINE_STIPPLE_REPEAT */
+ 709, /* GL_LIST_MODE */
+ 874, /* GL_MAX_LIST_NESTING */
+ 706, /* GL_LIST_BASE */
+ 708, /* GL_LIST_INDEX */
+ 1160, /* GL_POLYGON_MODE */
+ 1167, /* GL_POLYGON_SMOOTH */
+ 1169, /* GL_POLYGON_STIPPLE */
+ 454, /* GL_EDGE_FLAG */
+ 304, /* GL_CULL_FACE */
+ 305, /* GL_CULL_FACE_MODE */
+ 576, /* GL_FRONT_FACE */
+ 677, /* GL_LIGHTING */
+ 682, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ 683, /* GL_LIGHT_MODEL_TWO_SIDE */
+ 679, /* GL_LIGHT_MODEL_AMBIENT */
+ 1414, /* GL_SHADE_MODEL */
+ 193, /* GL_COLOR_MATERIAL_FACE */
+ 194, /* GL_COLOR_MATERIAL_PARAMETER */
+ 192, /* GL_COLOR_MATERIAL */
+ 503, /* GL_FOG */
+ 525, /* GL_FOG_INDEX */
+ 521, /* GL_FOG_DENSITY */
+ 529, /* GL_FOG_START */
+ 523, /* GL_FOG_END */
+ 526, /* GL_FOG_MODE */
+ 505, /* GL_FOG_COLOR */
+ 368, /* GL_DEPTH_RANGE */
+ 375, /* GL_DEPTH_TEST */
+ 378, /* GL_DEPTH_WRITEMASK */
+ 356, /* GL_DEPTH_CLEAR_VALUE */
+ 367, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1503, /* GL_STENCIL_TEST */
- 1491, /* GL_STENCIL_CLEAR_VALUE */
- 1493, /* GL_STENCIL_FUNC */
- 1505, /* GL_STENCIL_VALUE_MASK */
- 1492, /* GL_STENCIL_FAIL */
- 1500, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1501, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1502, /* GL_STENCIL_REF */
- 1506, /* GL_STENCIL_WRITEMASK */
- 841, /* GL_MATRIX_MODE */
- 1009, /* GL_NORMALIZE */
- 1823, /* GL_VIEWPORT */
- 983, /* GL_MODELVIEW_STACK_DEPTH */
- 1246, /* GL_PROJECTION_STACK_DEPTH */
- 1707, /* GL_TEXTURE_STACK_DEPTH */
- 981, /* GL_MODELVIEW_MATRIX */
- 1245, /* GL_PROJECTION_MATRIX */
- 1690, /* GL_TEXTURE_MATRIX */
- 60, /* GL_ATTRIB_STACK_DEPTH */
- 135, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
+ 1508, /* GL_STENCIL_TEST */
+ 1496, /* GL_STENCIL_CLEAR_VALUE */
+ 1498, /* GL_STENCIL_FUNC */
+ 1510, /* GL_STENCIL_VALUE_MASK */
+ 1497, /* GL_STENCIL_FAIL */
+ 1505, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ 1506, /* GL_STENCIL_PASS_DEPTH_PASS */
+ 1507, /* GL_STENCIL_REF */
+ 1511, /* GL_STENCIL_WRITEMASK */
+ 843, /* GL_MATRIX_MODE */
+ 1012, /* GL_NORMALIZE */
+ 1837, /* GL_VIEWPORT */
+ 986, /* GL_MODELVIEW_STACK_DEPTH */
+ 1250, /* GL_PROJECTION_STACK_DEPTH */
+ 1718, /* GL_TEXTURE_STACK_DEPTH */
+ 984, /* GL_MODELVIEW_MATRIX */
+ 1249, /* GL_PROJECTION_MATRIX */
+ 1701, /* GL_TEXTURE_MATRIX */
+ 61, /* GL_ATTRIB_STACK_DEPTH */
+ 136, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
43, /* GL_ALPHA_TEST */
44, /* GL_ALPHA_TEST_FUNC */
45, /* GL_ALPHA_TEST_REF */
- 378, /* GL_DITHER */
- 77, /* GL_BLEND_DST */
- 86, /* GL_BLEND_SRC */
- 74, /* GL_BLEND */
- 710, /* GL_LOGIC_OP_MODE */
- 628, /* GL_INDEX_LOGIC_OP */
- 190, /* GL_COLOR_LOGIC_OP */
- 66, /* GL_AUX_BUFFERS */
- 389, /* GL_DRAW_BUFFER */
- 1280, /* GL_READ_BUFFER */
- 1391, /* GL_SCISSOR_BOX */
- 1392, /* GL_SCISSOR_TEST */
- 627, /* GL_INDEX_CLEAR_VALUE */
- 632, /* GL_INDEX_WRITEMASK */
- 187, /* GL_COLOR_CLEAR_VALUE */
- 229, /* GL_COLOR_WRITEMASK */
- 629, /* GL_INDEX_MODE */
- 1357, /* GL_RGBA_MODE */
- 388, /* GL_DOUBLEBUFFER */
- 1507, /* GL_STEREO */
- 1315, /* GL_RENDER_MODE */
- 1094, /* GL_PERSPECTIVE_CORRECTION_HINT */
- 1147, /* GL_POINT_SMOOTH_HINT */
- 694, /* GL_LINE_SMOOTH_HINT */
- 1164, /* GL_POLYGON_SMOOTH_HINT */
- 522, /* GL_FOG_HINT */
- 1671, /* GL_TEXTURE_GEN_S */
- 1672, /* GL_TEXTURE_GEN_T */
- 1670, /* GL_TEXTURE_GEN_R */
- 1669, /* GL_TEXTURE_GEN_Q */
- 1107, /* GL_PIXEL_MAP_I_TO_I */
- 1113, /* GL_PIXEL_MAP_S_TO_S */
- 1109, /* GL_PIXEL_MAP_I_TO_R */
- 1105, /* GL_PIXEL_MAP_I_TO_G */
- 1103, /* GL_PIXEL_MAP_I_TO_B */
- 1101, /* GL_PIXEL_MAP_I_TO_A */
- 1111, /* GL_PIXEL_MAP_R_TO_R */
- 1099, /* GL_PIXEL_MAP_G_TO_G */
- 1097, /* GL_PIXEL_MAP_B_TO_B */
- 1095, /* GL_PIXEL_MAP_A_TO_A */
- 1108, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- 1114, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- 1110, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- 1106, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- 1104, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- 1102, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- 1112, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- 1100, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- 1098, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- 1096, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1742, /* GL_UNPACK_SWAP_BYTES */
- 1737, /* GL_UNPACK_LSB_FIRST */
- 1738, /* GL_UNPACK_ROW_LENGTH */
- 1741, /* GL_UNPACK_SKIP_ROWS */
- 1740, /* GL_UNPACK_SKIP_PIXELS */
- 1735, /* GL_UNPACK_ALIGNMENT */
- 1082, /* GL_PACK_SWAP_BYTES */
- 1077, /* GL_PACK_LSB_FIRST */
- 1078, /* GL_PACK_ROW_LENGTH */
- 1081, /* GL_PACK_SKIP_ROWS */
- 1080, /* GL_PACK_SKIP_PIXELS */
- 1074, /* GL_PACK_ALIGNMENT */
- 788, /* GL_MAP_COLOR */
- 793, /* GL_MAP_STENCIL */
- 631, /* GL_INDEX_SHIFT */
- 630, /* GL_INDEX_OFFSET */
- 1293, /* GL_RED_SCALE */
- 1291, /* GL_RED_BIAS */
- 1840, /* GL_ZOOM_X */
- 1841, /* GL_ZOOM_Y */
- 592, /* GL_GREEN_SCALE */
- 590, /* GL_GREEN_BIAS */
- 92, /* GL_BLUE_SCALE */
- 90, /* GL_BLUE_BIAS */
+ 380, /* GL_DITHER */
+ 78, /* GL_BLEND_DST */
+ 87, /* GL_BLEND_SRC */
+ 75, /* GL_BLEND */
+ 712, /* GL_LOGIC_OP_MODE */
+ 630, /* GL_INDEX_LOGIC_OP */
+ 191, /* GL_COLOR_LOGIC_OP */
+ 67, /* GL_AUX_BUFFERS */
+ 391, /* GL_DRAW_BUFFER */
+ 1284, /* GL_READ_BUFFER */
+ 1395, /* GL_SCISSOR_BOX */
+ 1396, /* GL_SCISSOR_TEST */
+ 629, /* GL_INDEX_CLEAR_VALUE */
+ 634, /* GL_INDEX_WRITEMASK */
+ 188, /* GL_COLOR_CLEAR_VALUE */
+ 230, /* GL_COLOR_WRITEMASK */
+ 631, /* GL_INDEX_MODE */
+ 1361, /* GL_RGBA_MODE */
+ 390, /* GL_DOUBLEBUFFER */
+ 1512, /* GL_STEREO */
+ 1319, /* GL_RENDER_MODE */
+ 1098, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ 1151, /* GL_POINT_SMOOTH_HINT */
+ 696, /* GL_LINE_SMOOTH_HINT */
+ 1168, /* GL_POLYGON_SMOOTH_HINT */
+ 524, /* GL_FOG_HINT */
+ 1682, /* GL_TEXTURE_GEN_S */
+ 1683, /* GL_TEXTURE_GEN_T */
+ 1681, /* GL_TEXTURE_GEN_R */
+ 1680, /* GL_TEXTURE_GEN_Q */
+ 1111, /* GL_PIXEL_MAP_I_TO_I */
+ 1117, /* GL_PIXEL_MAP_S_TO_S */
+ 1113, /* GL_PIXEL_MAP_I_TO_R */
+ 1109, /* GL_PIXEL_MAP_I_TO_G */
+ 1107, /* GL_PIXEL_MAP_I_TO_B */
+ 1105, /* GL_PIXEL_MAP_I_TO_A */
+ 1115, /* GL_PIXEL_MAP_R_TO_R */
+ 1103, /* GL_PIXEL_MAP_G_TO_G */
+ 1101, /* GL_PIXEL_MAP_B_TO_B */
+ 1099, /* GL_PIXEL_MAP_A_TO_A */
+ 1112, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ 1118, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ 1114, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ 1110, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ 1108, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ 1106, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ 1116, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ 1104, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ 1102, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ 1100, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ 1755, /* GL_UNPACK_SWAP_BYTES */
+ 1750, /* GL_UNPACK_LSB_FIRST */
+ 1751, /* GL_UNPACK_ROW_LENGTH */
+ 1754, /* GL_UNPACK_SKIP_ROWS */
+ 1753, /* GL_UNPACK_SKIP_PIXELS */
+ 1748, /* GL_UNPACK_ALIGNMENT */
+ 1086, /* GL_PACK_SWAP_BYTES */
+ 1081, /* GL_PACK_LSB_FIRST */
+ 1082, /* GL_PACK_ROW_LENGTH */
+ 1085, /* GL_PACK_SKIP_ROWS */
+ 1084, /* GL_PACK_SKIP_PIXELS */
+ 1078, /* GL_PACK_ALIGNMENT */
+ 790, /* GL_MAP_COLOR */
+ 795, /* GL_MAP_STENCIL */
+ 633, /* GL_INDEX_SHIFT */
+ 632, /* GL_INDEX_OFFSET */
+ 1297, /* GL_RED_SCALE */
+ 1295, /* GL_RED_BIAS */
+ 1855, /* GL_ZOOM_X */
+ 1856, /* GL_ZOOM_Y */
+ 594, /* GL_GREEN_SCALE */
+ 592, /* GL_GREEN_BIAS */
+ 93, /* GL_BLUE_SCALE */
+ 91, /* GL_BLUE_BIAS */
42, /* GL_ALPHA_SCALE */
40, /* GL_ALPHA_BIAS */
- 367, /* GL_DEPTH_SCALE */
- 348, /* GL_DEPTH_BIAS */
- 867, /* GL_MAX_EVAL_ORDER */
- 871, /* GL_MAX_LIGHTS */
- 850, /* GL_MAX_CLIP_PLANES */
- 916, /* GL_MAX_TEXTURE_SIZE */
- 877, /* GL_MAX_PIXEL_MAP_TABLE */
- 846, /* GL_MAX_ATTRIB_STACK_DEPTH */
- 874, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- 875, /* GL_MAX_NAME_STACK_DEPTH */
- 903, /* GL_MAX_PROJECTION_STACK_DEPTH */
- 917, /* GL_MAX_TEXTURE_STACK_DEPTH */
- 931, /* GL_MAX_VIEWPORT_DIMS */
- 847, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1517, /* GL_SUBPIXEL_BITS */
- 626, /* GL_INDEX_BITS */
- 1292, /* GL_RED_BITS */
- 591, /* GL_GREEN_BITS */
- 91, /* GL_BLUE_BITS */
+ 369, /* GL_DEPTH_SCALE */
+ 350, /* GL_DEPTH_BIAS */
+ 869, /* GL_MAX_EVAL_ORDER */
+ 873, /* GL_MAX_LIGHTS */
+ 852, /* GL_MAX_CLIP_PLANES */
+ 919, /* GL_MAX_TEXTURE_SIZE */
+ 879, /* GL_MAX_PIXEL_MAP_TABLE */
+ 848, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ 876, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ 877, /* GL_MAX_NAME_STACK_DEPTH */
+ 905, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ 920, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ 934, /* GL_MAX_VIEWPORT_DIMS */
+ 849, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ 1522, /* GL_SUBPIXEL_BITS */
+ 628, /* GL_INDEX_BITS */
+ 1296, /* GL_RED_BITS */
+ 593, /* GL_GREEN_BITS */
+ 92, /* GL_BLUE_BITS */
41, /* GL_ALPHA_BITS */
- 349, /* GL_DEPTH_BITS */
- 1489, /* GL_STENCIL_BITS */
+ 351, /* GL_DEPTH_BITS */
+ 1494, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
9, /* GL_ACCUM_ALPHA_BITS */
- 997, /* GL_NAME_STACK_DEPTH */
- 61, /* GL_AUTO_NORMAL */
- 734, /* GL_MAP1_COLOR_4 */
- 737, /* GL_MAP1_INDEX */
- 738, /* GL_MAP1_NORMAL */
- 739, /* GL_MAP1_TEXTURE_COORD_1 */
- 740, /* GL_MAP1_TEXTURE_COORD_2 */
- 741, /* GL_MAP1_TEXTURE_COORD_3 */
- 742, /* GL_MAP1_TEXTURE_COORD_4 */
- 743, /* GL_MAP1_VERTEX_3 */
- 744, /* GL_MAP1_VERTEX_4 */
- 761, /* GL_MAP2_COLOR_4 */
- 764, /* GL_MAP2_INDEX */
- 765, /* GL_MAP2_NORMAL */
- 766, /* GL_MAP2_TEXTURE_COORD_1 */
- 767, /* GL_MAP2_TEXTURE_COORD_2 */
- 768, /* GL_MAP2_TEXTURE_COORD_3 */
- 769, /* GL_MAP2_TEXTURE_COORD_4 */
- 770, /* GL_MAP2_VERTEX_3 */
- 771, /* GL_MAP2_VERTEX_4 */
- 735, /* GL_MAP1_GRID_DOMAIN */
- 736, /* GL_MAP1_GRID_SEGMENTS */
- 762, /* GL_MAP2_GRID_DOMAIN */
- 763, /* GL_MAP2_GRID_SEGMENTS */
- 1594, /* GL_TEXTURE_1D */
- 1596, /* GL_TEXTURE_2D */
- 476, /* GL_FEEDBACK_BUFFER_POINTER */
- 477, /* GL_FEEDBACK_BUFFER_SIZE */
- 478, /* GL_FEEDBACK_BUFFER_TYPE */
- 1401, /* GL_SELECTION_BUFFER_POINTER */
- 1402, /* GL_SELECTION_BUFFER_SIZE */
- 1712, /* GL_TEXTURE_WIDTH */
- 1676, /* GL_TEXTURE_HEIGHT */
- 1631, /* GL_TEXTURE_COMPONENTS */
- 1615, /* GL_TEXTURE_BORDER_COLOR */
- 1614, /* GL_TEXTURE_BORDER */
- 380, /* GL_DONT_CARE */
- 474, /* GL_FASTEST */
- 1005, /* GL_NICEST */
- 47, /* GL_AMBIENT */
- 377, /* GL_DIFFUSE */
- 1449, /* GL_SPECULAR */
- 1168, /* GL_POSITION */
- 1452, /* GL_SPOT_DIRECTION */
- 1453, /* GL_SPOT_EXPONENT */
- 1451, /* GL_SPOT_CUTOFF */
- 273, /* GL_CONSTANT_ATTENUATION */
- 684, /* GL_LINEAR_ATTENUATION */
- 1266, /* GL_QUADRATIC_ATTENUATION */
- 243, /* GL_COMPILE */
- 244, /* GL_COMPILE_AND_EXECUTE */
- 119, /* GL_BYTE */
- 1743, /* GL_UNSIGNED_BYTE */
- 1415, /* GL_SHORT */
- 1754, /* GL_UNSIGNED_SHORT */
- 634, /* GL_INT */
- 1746, /* GL_UNSIGNED_INT */
- 482, /* GL_FLOAT */
+ 1000, /* GL_NAME_STACK_DEPTH */
+ 62, /* GL_AUTO_NORMAL */
+ 736, /* GL_MAP1_COLOR_4 */
+ 739, /* GL_MAP1_INDEX */
+ 740, /* GL_MAP1_NORMAL */
+ 741, /* GL_MAP1_TEXTURE_COORD_1 */
+ 742, /* GL_MAP1_TEXTURE_COORD_2 */
+ 743, /* GL_MAP1_TEXTURE_COORD_3 */
+ 744, /* GL_MAP1_TEXTURE_COORD_4 */
+ 745, /* GL_MAP1_VERTEX_3 */
+ 746, /* GL_MAP1_VERTEX_4 */
+ 763, /* GL_MAP2_COLOR_4 */
+ 766, /* GL_MAP2_INDEX */
+ 767, /* GL_MAP2_NORMAL */
+ 768, /* GL_MAP2_TEXTURE_COORD_1 */
+ 769, /* GL_MAP2_TEXTURE_COORD_2 */
+ 770, /* GL_MAP2_TEXTURE_COORD_3 */
+ 771, /* GL_MAP2_TEXTURE_COORD_4 */
+ 772, /* GL_MAP2_VERTEX_3 */
+ 773, /* GL_MAP2_VERTEX_4 */
+ 737, /* GL_MAP1_GRID_DOMAIN */
+ 738, /* GL_MAP1_GRID_SEGMENTS */
+ 764, /* GL_MAP2_GRID_DOMAIN */
+ 765, /* GL_MAP2_GRID_SEGMENTS */
+ 1605, /* GL_TEXTURE_1D */
+ 1607, /* GL_TEXTURE_2D */
+ 478, /* GL_FEEDBACK_BUFFER_POINTER */
+ 479, /* GL_FEEDBACK_BUFFER_SIZE */
+ 480, /* GL_FEEDBACK_BUFFER_TYPE */
+ 1405, /* GL_SELECTION_BUFFER_POINTER */
+ 1406, /* GL_SELECTION_BUFFER_SIZE */
+ 1723, /* GL_TEXTURE_WIDTH */
+ 1687, /* GL_TEXTURE_HEIGHT */
+ 1642, /* GL_TEXTURE_COMPONENTS */
+ 1626, /* GL_TEXTURE_BORDER_COLOR */
+ 1625, /* GL_TEXTURE_BORDER */
+ 382, /* GL_DONT_CARE */
+ 476, /* GL_FASTEST */
+ 1008, /* GL_NICEST */
+ 48, /* GL_AMBIENT */
+ 379, /* GL_DIFFUSE */
+ 1454, /* GL_SPECULAR */
+ 1172, /* GL_POSITION */
+ 1457, /* GL_SPOT_DIRECTION */
+ 1458, /* GL_SPOT_EXPONENT */
+ 1456, /* GL_SPOT_CUTOFF */
+ 275, /* GL_CONSTANT_ATTENUATION */
+ 686, /* GL_LINEAR_ATTENUATION */
+ 1270, /* GL_QUADRATIC_ATTENUATION */
+ 244, /* GL_COMPILE */
+ 245, /* GL_COMPILE_AND_EXECUTE */
+ 120, /* GL_BYTE */
+ 1757, /* GL_UNSIGNED_BYTE */
+ 1419, /* GL_SHORT */
+ 1768, /* GL_UNSIGNED_SHORT */
+ 636, /* GL_INT */
+ 1760, /* GL_UNSIGNED_INT */
+ 484, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
7, /* GL_4_BYTES */
- 387, /* GL_DOUBLE */
- 131, /* GL_CLEAR */
- 49, /* GL_AND */
- 51, /* GL_AND_REVERSE */
- 297, /* GL_COPY */
- 50, /* GL_AND_INVERTED */
- 1007, /* GL_NOOP */
- 1836, /* GL_XOR */
- 1069, /* GL_OR */
- 1008, /* GL_NOR */
- 464, /* GL_EQUIV */
- 661, /* GL_INVERT */
- 1072, /* GL_OR_REVERSE */
- 298, /* GL_COPY_INVERTED */
- 1071, /* GL_OR_INVERTED */
- 998, /* GL_NAND */
- 1406, /* GL_SET */
- 461, /* GL_EMISSION */
- 1414, /* GL_SHININESS */
- 48, /* GL_AMBIENT_AND_DIFFUSE */
- 189, /* GL_COLOR_INDEXES */
- 948, /* GL_MODELVIEW */
- 1244, /* GL_PROJECTION */
- 1529, /* GL_TEXTURE */
- 146, /* GL_COLOR */
- 344, /* GL_DEPTH */
- 1475, /* GL_STENCIL */
- 188, /* GL_COLOR_INDEX */
- 1494, /* GL_STENCIL_INDEX */
- 355, /* GL_DEPTH_COMPONENT */
- 1288, /* GL_RED */
- 589, /* GL_GREEN */
- 89, /* GL_BLUE */
+ 389, /* GL_DOUBLE */
+ 132, /* GL_CLEAR */
+ 50, /* GL_AND */
+ 52, /* GL_AND_REVERSE */
+ 299, /* GL_COPY */
+ 51, /* GL_AND_INVERTED */
+ 1010, /* GL_NOOP */
+ 1851, /* GL_XOR */
+ 1073, /* GL_OR */
+ 1011, /* GL_NOR */
+ 466, /* GL_EQUIV */
+ 663, /* GL_INVERT */
+ 1076, /* GL_OR_REVERSE */
+ 300, /* GL_COPY_INVERTED */
+ 1075, /* GL_OR_INVERTED */
+ 1001, /* GL_NAND */
+ 1410, /* GL_SET */
+ 463, /* GL_EMISSION */
+ 1418, /* GL_SHININESS */
+ 49, /* GL_AMBIENT_AND_DIFFUSE */
+ 190, /* GL_COLOR_INDEXES */
+ 951, /* GL_MODELVIEW */
+ 1248, /* GL_PROJECTION */
+ 1540, /* GL_TEXTURE */
+ 147, /* GL_COLOR */
+ 346, /* GL_DEPTH */
+ 1480, /* GL_STENCIL */
+ 189, /* GL_COLOR_INDEX */
+ 1499, /* GL_STENCIL_INDEX */
+ 357, /* GL_DEPTH_COMPONENT */
+ 1292, /* GL_RED */
+ 591, /* GL_GREEN */
+ 90, /* GL_BLUE */
31, /* GL_ALPHA */
- 1323, /* GL_RGB */
- 1342, /* GL_RGBA */
- 712, /* GL_LUMINANCE */
- 733, /* GL_LUMINANCE_ALPHA */
- 72, /* GL_BITMAP */
- 1124, /* GL_POINT */
- 682, /* GL_LINE */
- 479, /* GL_FILL */
- 1297, /* GL_RENDER */
- 475, /* GL_FEEDBACK */
- 1400, /* GL_SELECT */
- 481, /* GL_FLAT */
- 1424, /* GL_SMOOTH */
- 662, /* GL_KEEP */
- 1317, /* GL_REPLACE */
- 616, /* GL_INCR */
- 340, /* GL_DECR */
- 1769, /* GL_VENDOR */
- 1314, /* GL_RENDERER */
- 1770, /* GL_VERSION */
- 468, /* GL_EXTENSIONS */
- 1365, /* GL_S */
- 1520, /* GL_T */
- 1277, /* GL_R */
- 1265, /* GL_Q */
- 984, /* GL_MODULATE */
- 339, /* GL_DECAL */
- 1666, /* GL_TEXTURE_ENV_MODE */
- 1665, /* GL_TEXTURE_ENV_COLOR */
- 1664, /* GL_TEXTURE_ENV */
- 469, /* GL_EYE_LINEAR */
- 1031, /* GL_OBJECT_LINEAR */
- 1450, /* GL_SPHERE_MAP */
- 1668, /* GL_TEXTURE_GEN_MODE */
- 1033, /* GL_OBJECT_PLANE */
- 470, /* GL_EYE_PLANE */
- 999, /* GL_NEAREST */
- 683, /* GL_LINEAR */
- 1003, /* GL_NEAREST_MIPMAP_NEAREST */
- 688, /* GL_LINEAR_MIPMAP_NEAREST */
- 1002, /* GL_NEAREST_MIPMAP_LINEAR */
- 687, /* GL_LINEAR_MIPMAP_LINEAR */
- 1689, /* GL_TEXTURE_MAG_FILTER */
- 1697, /* GL_TEXTURE_MIN_FILTER */
- 1714, /* GL_TEXTURE_WRAP_S */
- 1715, /* GL_TEXTURE_WRAP_T */
- 125, /* GL_CLAMP */
- 1316, /* GL_REPEAT */
- 1162, /* GL_POLYGON_OFFSET_UNITS */
- 1161, /* GL_POLYGON_OFFSET_POINT */
- 1160, /* GL_POLYGON_OFFSET_LINE */
- 1278, /* GL_R3_G3_B2 */
- 1766, /* GL_V2F */
- 1767, /* GL_V3F */
- 122, /* GL_C4UB_V2F */
- 123, /* GL_C4UB_V3F */
- 120, /* GL_C3F_V3F */
- 996, /* GL_N3F_V3F */
- 121, /* GL_C4F_N3F_V3F */
- 1525, /* GL_T2F_V3F */
- 1527, /* GL_T4F_V4F */
- 1523, /* GL_T2F_C4UB_V3F */
- 1521, /* GL_T2F_C3F_V3F */
- 1524, /* GL_T2F_N3F_V3F */
- 1522, /* GL_T2F_C4F_N3F_V3F */
- 1526, /* GL_T4F_C4F_N3F_V4F */
- 138, /* GL_CLIP_PLANE0 */
- 139, /* GL_CLIP_PLANE1 */
- 140, /* GL_CLIP_PLANE2 */
- 141, /* GL_CLIP_PLANE3 */
- 142, /* GL_CLIP_PLANE4 */
- 143, /* GL_CLIP_PLANE5 */
- 667, /* GL_LIGHT0 */
- 668, /* GL_LIGHT1 */
- 669, /* GL_LIGHT2 */
- 670, /* GL_LIGHT3 */
- 671, /* GL_LIGHT4 */
- 672, /* GL_LIGHT5 */
- 673, /* GL_LIGHT6 */
- 674, /* GL_LIGHT7 */
- 593, /* GL_HINT_BIT */
- 275, /* GL_CONSTANT_COLOR */
- 1043, /* GL_ONE_MINUS_CONSTANT_COLOR */
- 270, /* GL_CONSTANT_ALPHA */
- 1041, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- 75, /* GL_BLEND_COLOR */
- 577, /* GL_FUNC_ADD */
- 932, /* GL_MIN */
- 843, /* GL_MAX */
- 80, /* GL_BLEND_EQUATION */
- 581, /* GL_FUNC_SUBTRACT */
- 579, /* GL_FUNC_REVERSE_SUBTRACT */
- 278, /* GL_CONVOLUTION_1D */
- 279, /* GL_CONVOLUTION_2D */
- 1403, /* GL_SEPARABLE_2D */
- 282, /* GL_CONVOLUTION_BORDER_MODE */
- 286, /* GL_CONVOLUTION_FILTER_SCALE */
- 284, /* GL_CONVOLUTION_FILTER_BIAS */
- 1289, /* GL_REDUCE */
- 288, /* GL_CONVOLUTION_FORMAT */
- 292, /* GL_CONVOLUTION_WIDTH */
- 290, /* GL_CONVOLUTION_HEIGHT */
- 858, /* GL_MAX_CONVOLUTION_WIDTH */
- 856, /* GL_MAX_CONVOLUTION_HEIGHT */
- 1201, /* GL_POST_CONVOLUTION_RED_SCALE */
- 1197, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- 1192, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- 1188, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- 1199, /* GL_POST_CONVOLUTION_RED_BIAS */
- 1195, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- 1190, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- 1186, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- 594, /* GL_HISTOGRAM */
- 1249, /* GL_PROXY_HISTOGRAM */
- 610, /* GL_HISTOGRAM_WIDTH */
- 600, /* GL_HISTOGRAM_FORMAT */
- 606, /* GL_HISTOGRAM_RED_SIZE */
- 602, /* GL_HISTOGRAM_GREEN_SIZE */
- 597, /* GL_HISTOGRAM_BLUE_SIZE */
- 595, /* GL_HISTOGRAM_ALPHA_SIZE */
- 604, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- 608, /* GL_HISTOGRAM_SINK */
- 933, /* GL_MINMAX */
- 935, /* GL_MINMAX_FORMAT */
- 937, /* GL_MINMAX_SINK */
- 1528, /* GL_TABLE_TOO_LARGE_EXT */
- 1745, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1756, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1758, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1751, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1747, /* GL_UNSIGNED_INT_10_10_10_2 */
- 1159, /* GL_POLYGON_OFFSET_FILL */
- 1158, /* GL_POLYGON_OFFSET_FACTOR */
- 1157, /* GL_POLYGON_OFFSET_BIAS */
- 1320, /* GL_RESCALE_NORMAL */
+ 1327, /* GL_RGB */
+ 1346, /* GL_RGBA */
+ 714, /* GL_LUMINANCE */
+ 735, /* GL_LUMINANCE_ALPHA */
+ 73, /* GL_BITMAP */
+ 1128, /* GL_POINT */
+ 684, /* GL_LINE */
+ 481, /* GL_FILL */
+ 1301, /* GL_RENDER */
+ 477, /* GL_FEEDBACK */
+ 1404, /* GL_SELECT */
+ 483, /* GL_FLAT */
+ 1429, /* GL_SMOOTH */
+ 664, /* GL_KEEP */
+ 1321, /* GL_REPLACE */
+ 618, /* GL_INCR */
+ 342, /* GL_DECR */
+ 1783, /* GL_VENDOR */
+ 1318, /* GL_RENDERER */
+ 1784, /* GL_VERSION */
+ 470, /* GL_EXTENSIONS */
+ 1369, /* GL_S */
+ 1531, /* GL_T */
+ 1281, /* GL_R */
+ 1269, /* GL_Q */
+ 987, /* GL_MODULATE */
+ 341, /* GL_DECAL */
+ 1677, /* GL_TEXTURE_ENV_MODE */
+ 1676, /* GL_TEXTURE_ENV_COLOR */
+ 1675, /* GL_TEXTURE_ENV */
+ 471, /* GL_EYE_LINEAR */
+ 1034, /* GL_OBJECT_LINEAR */
+ 1455, /* GL_SPHERE_MAP */
+ 1679, /* GL_TEXTURE_GEN_MODE */
+ 1036, /* GL_OBJECT_PLANE */
+ 472, /* GL_EYE_PLANE */
+ 1002, /* GL_NEAREST */
+ 685, /* GL_LINEAR */
+ 1006, /* GL_NEAREST_MIPMAP_NEAREST */
+ 690, /* GL_LINEAR_MIPMAP_NEAREST */
+ 1005, /* GL_NEAREST_MIPMAP_LINEAR */
+ 689, /* GL_LINEAR_MIPMAP_LINEAR */
+ 1700, /* GL_TEXTURE_MAG_FILTER */
+ 1708, /* GL_TEXTURE_MIN_FILTER */
+ 1725, /* GL_TEXTURE_WRAP_S */
+ 1726, /* GL_TEXTURE_WRAP_T */
+ 126, /* GL_CLAMP */
+ 1320, /* GL_REPEAT */
+ 1166, /* GL_POLYGON_OFFSET_UNITS */
+ 1165, /* GL_POLYGON_OFFSET_POINT */
+ 1164, /* GL_POLYGON_OFFSET_LINE */
+ 1282, /* GL_R3_G3_B2 */
+ 1780, /* GL_V2F */
+ 1781, /* GL_V3F */
+ 123, /* GL_C4UB_V2F */
+ 124, /* GL_C4UB_V3F */
+ 121, /* GL_C3F_V3F */
+ 999, /* GL_N3F_V3F */
+ 122, /* GL_C4F_N3F_V3F */
+ 1536, /* GL_T2F_V3F */
+ 1538, /* GL_T4F_V4F */
+ 1534, /* GL_T2F_C4UB_V3F */
+ 1532, /* GL_T2F_C3F_V3F */
+ 1535, /* GL_T2F_N3F_V3F */
+ 1533, /* GL_T2F_C4F_N3F_V3F */
+ 1537, /* GL_T4F_C4F_N3F_V4F */
+ 139, /* GL_CLIP_PLANE0 */
+ 140, /* GL_CLIP_PLANE1 */
+ 141, /* GL_CLIP_PLANE2 */
+ 142, /* GL_CLIP_PLANE3 */
+ 143, /* GL_CLIP_PLANE4 */
+ 144, /* GL_CLIP_PLANE5 */
+ 669, /* GL_LIGHT0 */
+ 670, /* GL_LIGHT1 */
+ 671, /* GL_LIGHT2 */
+ 672, /* GL_LIGHT3 */
+ 673, /* GL_LIGHT4 */
+ 674, /* GL_LIGHT5 */
+ 675, /* GL_LIGHT6 */
+ 676, /* GL_LIGHT7 */
+ 595, /* GL_HINT_BIT */
+ 277, /* GL_CONSTANT_COLOR */
+ 1047, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ 272, /* GL_CONSTANT_ALPHA */
+ 1045, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ 76, /* GL_BLEND_COLOR */
+ 579, /* GL_FUNC_ADD */
+ 935, /* GL_MIN */
+ 845, /* GL_MAX */
+ 81, /* GL_BLEND_EQUATION */
+ 583, /* GL_FUNC_SUBTRACT */
+ 581, /* GL_FUNC_REVERSE_SUBTRACT */
+ 280, /* GL_CONVOLUTION_1D */
+ 281, /* GL_CONVOLUTION_2D */
+ 1407, /* GL_SEPARABLE_2D */
+ 284, /* GL_CONVOLUTION_BORDER_MODE */
+ 288, /* GL_CONVOLUTION_FILTER_SCALE */
+ 286, /* GL_CONVOLUTION_FILTER_BIAS */
+ 1293, /* GL_REDUCE */
+ 290, /* GL_CONVOLUTION_FORMAT */
+ 294, /* GL_CONVOLUTION_WIDTH */
+ 292, /* GL_CONVOLUTION_HEIGHT */
+ 860, /* GL_MAX_CONVOLUTION_WIDTH */
+ 858, /* GL_MAX_CONVOLUTION_HEIGHT */
+ 1205, /* GL_POST_CONVOLUTION_RED_SCALE */
+ 1201, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ 1196, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ 1192, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ 1203, /* GL_POST_CONVOLUTION_RED_BIAS */
+ 1199, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ 1194, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ 1190, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ 596, /* GL_HISTOGRAM */
+ 1253, /* GL_PROXY_HISTOGRAM */
+ 612, /* GL_HISTOGRAM_WIDTH */
+ 602, /* GL_HISTOGRAM_FORMAT */
+ 608, /* GL_HISTOGRAM_RED_SIZE */
+ 604, /* GL_HISTOGRAM_GREEN_SIZE */
+ 599, /* GL_HISTOGRAM_BLUE_SIZE */
+ 597, /* GL_HISTOGRAM_ALPHA_SIZE */
+ 606, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ 610, /* GL_HISTOGRAM_SINK */
+ 936, /* GL_MINMAX */
+ 938, /* GL_MINMAX_FORMAT */
+ 940, /* GL_MINMAX_SINK */
+ 1539, /* GL_TABLE_TOO_LARGE_EXT */
+ 1759, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 1770, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 1772, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 1765, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 1761, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1163, /* GL_POLYGON_OFFSET_FILL */
+ 1162, /* GL_POLYGON_OFFSET_FACTOR */
+ 1161, /* GL_POLYGON_OFFSET_BIAS */
+ 1324, /* GL_RESCALE_NORMAL */
36, /* GL_ALPHA4 */
38, /* GL_ALPHA8 */
32, /* GL_ALPHA12 */
34, /* GL_ALPHA16 */
- 723, /* GL_LUMINANCE4 */
- 729, /* GL_LUMINANCE8 */
- 713, /* GL_LUMINANCE12 */
- 719, /* GL_LUMINANCE16 */
- 724, /* GL_LUMINANCE4_ALPHA4 */
- 727, /* GL_LUMINANCE6_ALPHA2 */
- 730, /* GL_LUMINANCE8_ALPHA8 */
- 716, /* GL_LUMINANCE12_ALPHA4 */
- 714, /* GL_LUMINANCE12_ALPHA12 */
- 720, /* GL_LUMINANCE16_ALPHA16 */
- 635, /* GL_INTENSITY */
- 640, /* GL_INTENSITY4 */
- 642, /* GL_INTENSITY8 */
- 636, /* GL_INTENSITY12 */
- 638, /* GL_INTENSITY16 */
- 1332, /* GL_RGB2_EXT */
- 1333, /* GL_RGB4 */
- 1336, /* GL_RGB5 */
- 1340, /* GL_RGB8 */
- 1324, /* GL_RGB10 */
- 1328, /* GL_RGB12 */
- 1330, /* GL_RGB16 */
- 1347, /* GL_RGBA2 */
- 1349, /* GL_RGBA4 */
- 1337, /* GL_RGB5_A1 */
- 1353, /* GL_RGBA8 */
- 1325, /* GL_RGB10_A2 */
- 1343, /* GL_RGBA12 */
- 1345, /* GL_RGBA16 */
- 1704, /* GL_TEXTURE_RED_SIZE */
- 1674, /* GL_TEXTURE_GREEN_SIZE */
- 1612, /* GL_TEXTURE_BLUE_SIZE */
- 1599, /* GL_TEXTURE_ALPHA_SIZE */
- 1687, /* GL_TEXTURE_LUMINANCE_SIZE */
- 1678, /* GL_TEXTURE_INTENSITY_SIZE */
- 1318, /* GL_REPLACE_EXT */
- 1253, /* GL_PROXY_TEXTURE_1D */
- 1256, /* GL_PROXY_TEXTURE_2D */
- 1710, /* GL_TEXTURE_TOO_LARGE_EXT */
- 1699, /* GL_TEXTURE_PRIORITY */
- 1706, /* GL_TEXTURE_RESIDENT */
- 1602, /* GL_TEXTURE_BINDING_1D */
- 1604, /* GL_TEXTURE_BINDING_2D */
- 1606, /* GL_TEXTURE_BINDING_3D */
- 1079, /* GL_PACK_SKIP_IMAGES */
- 1075, /* GL_PACK_IMAGE_HEIGHT */
- 1739, /* GL_UNPACK_SKIP_IMAGES */
- 1736, /* GL_UNPACK_IMAGE_HEIGHT */
- 1598, /* GL_TEXTURE_3D */
- 1259, /* GL_PROXY_TEXTURE_3D */
- 1661, /* GL_TEXTURE_DEPTH */
- 1713, /* GL_TEXTURE_WRAP_R */
- 844, /* GL_MAX_3D_TEXTURE_SIZE */
- 1771, /* GL_VERTEX_ARRAY */
- 1010, /* GL_NORMAL_ARRAY */
- 147, /* GL_COLOR_ARRAY */
- 620, /* GL_INDEX_ARRAY */
- 1639, /* GL_TEXTURE_COORD_ARRAY */
- 453, /* GL_EDGE_FLAG_ARRAY */
- 1777, /* GL_VERTEX_ARRAY_SIZE */
- 1779, /* GL_VERTEX_ARRAY_TYPE */
- 1778, /* GL_VERTEX_ARRAY_STRIDE */
- 1015, /* GL_NORMAL_ARRAY_TYPE */
- 1014, /* GL_NORMAL_ARRAY_STRIDE */
- 151, /* GL_COLOR_ARRAY_SIZE */
- 153, /* GL_COLOR_ARRAY_TYPE */
- 152, /* GL_COLOR_ARRAY_STRIDE */
- 625, /* GL_INDEX_ARRAY_TYPE */
- 624, /* GL_INDEX_ARRAY_STRIDE */
- 1643, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 1645, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 1644, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- 457, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 1776, /* GL_VERTEX_ARRAY_POINTER */
- 1013, /* GL_NORMAL_ARRAY_POINTER */
- 150, /* GL_COLOR_ARRAY_POINTER */
- 623, /* GL_INDEX_ARRAY_POINTER */
- 1642, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- 456, /* GL_EDGE_FLAG_ARRAY_POINTER */
- 989, /* GL_MULTISAMPLE */
- 1377, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- 1379, /* GL_SAMPLE_ALPHA_TO_ONE */
- 1384, /* GL_SAMPLE_COVERAGE */
- 1381, /* GL_SAMPLE_BUFFERS */
- 1372, /* GL_SAMPLES */
- 1388, /* GL_SAMPLE_COVERAGE_VALUE */
- 1386, /* GL_SAMPLE_COVERAGE_INVERT */
- 194, /* GL_COLOR_MATRIX */
- 196, /* GL_COLOR_MATRIX_STACK_DEPTH */
- 852, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- 1184, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- 1180, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- 1175, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- 1171, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- 1182, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- 1178, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- 1173, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- 1169, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 1622, /* GL_TEXTURE_COLOR_TABLE_SGI */
- 1260, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 1624, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- 79, /* GL_BLEND_DST_RGB */
- 88, /* GL_BLEND_SRC_RGB */
- 78, /* GL_BLEND_DST_ALPHA */
- 87, /* GL_BLEND_SRC_ALPHA */
- 200, /* GL_COLOR_TABLE */
- 1194, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- 1177, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- 1248, /* GL_PROXY_COLOR_TABLE */
- 1252, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- 1251, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- 224, /* GL_COLOR_TABLE_SCALE */
- 204, /* GL_COLOR_TABLE_BIAS */
- 209, /* GL_COLOR_TABLE_FORMAT */
- 226, /* GL_COLOR_TABLE_WIDTH */
- 221, /* GL_COLOR_TABLE_RED_SIZE */
- 212, /* GL_COLOR_TABLE_GREEN_SIZE */
- 206, /* GL_COLOR_TABLE_BLUE_SIZE */
- 201, /* GL_COLOR_TABLE_ALPHA_SIZE */
- 218, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
- 215, /* GL_COLOR_TABLE_INTENSITY_SIZE */
- 70, /* GL_BGR */
- 71, /* GL_BGRA */
- 866, /* GL_MAX_ELEMENTS_VERTICES */
- 865, /* GL_MAX_ELEMENTS_INDICES */
- 1677, /* GL_TEXTURE_INDEX_SIZE_EXT */
- 144, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- 1141, /* GL_POINT_SIZE_MIN */
- 1137, /* GL_POINT_SIZE_MAX */
- 1131, /* GL_POINT_FADE_THRESHOLD_SIZE */
- 1127, /* GL_POINT_DISTANCE_ATTENUATION */
- 126, /* GL_CLAMP_TO_BORDER */
- 129, /* GL_CLAMP_TO_EDGE */
- 1698, /* GL_TEXTURE_MIN_LOD */
- 1696, /* GL_TEXTURE_MAX_LOD */
- 1601, /* GL_TEXTURE_BASE_LEVEL */
- 1695, /* GL_TEXTURE_MAX_LEVEL */
- 613, /* GL_IGNORE_BORDER_HP */
- 274, /* GL_CONSTANT_BORDER_HP */
- 1319, /* GL_REPLICATE_BORDER_HP */
- 280, /* GL_CONVOLUTION_BORDER_COLOR */
- 1038, /* GL_OCCLUSION_TEST_HP */
- 1039, /* GL_OCCLUSION_TEST_RESULT_HP */
- 685, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1616, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1618, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1620, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 1621, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1619, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1617, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- 848, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- 849, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1204, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- 1206, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- 1203, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- 1205, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 1685, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 1686, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 1684, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- 583, /* GL_GENERATE_MIPMAP */
- 584, /* GL_GENERATE_MIPMAP_HINT */
- 525, /* GL_FOG_OFFSET_SGIX */
- 526, /* GL_FOG_OFFSET_VALUE_SGIX */
- 1630, /* GL_TEXTURE_COMPARE_SGIX */
- 1629, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 1681, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 1673, /* GL_TEXTURE_GEQUAL_R_SGIX */
- 356, /* GL_DEPTH_COMPONENT16 */
- 359, /* GL_DEPTH_COMPONENT24 */
- 362, /* GL_DEPTH_COMPONENT32 */
- 304, /* GL_CULL_VERTEX_EXT */
- 306, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- 305, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 1833, /* GL_WRAP_BORDER_SUN */
- 1623, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- 678, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- 1417, /* GL_SINGLE_COLOR */
- 1404, /* GL_SEPARATE_SPECULAR_COLOR */
- 1413, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- 536, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- 537, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- 544, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- 539, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- 535, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- 534, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- 538, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- 545, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- 556, /* GL_FRAMEBUFFER_DEFAULT */
- 569, /* GL_FRAMEBUFFER_UNDEFINED */
- 369, /* GL_DEPTH_STENCIL_ATTACHMENT */
- 619, /* GL_INDEX */
- 1744, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1759, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1760, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1757, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1755, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1752, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1750, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 1693, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 1694, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 1692, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- 940, /* GL_MIRRORED_REPEAT */
- 1360, /* GL_RGB_S3TC */
- 1335, /* GL_RGB4_S3TC */
- 1358, /* GL_RGBA_S3TC */
- 1352, /* GL_RGBA4_S3TC */
- 1356, /* GL_RGBA_DXT5_S3TC */
- 1350, /* GL_RGBA4_DXT5_S3TC */
- 263, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- 258, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- 259, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- 260, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- 1001, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- 1000, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- 686, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- 512, /* GL_FOG_COORDINATE_SOURCE */
- 504, /* GL_FOG_COORD */
- 528, /* GL_FRAGMENT_DEPTH */
- 310, /* GL_CURRENT_FOG_COORD */
- 511, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- 510, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- 509, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- 506, /* GL_FOG_COORDINATE_ARRAY */
- 198, /* GL_COLOR_SUM */
- 330, /* GL_CURRENT_SECONDARY_COLOR */
- 1397, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- 1399, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- 1398, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- 1396, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- 1393, /* GL_SECONDARY_COLOR_ARRAY */
- 328, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ 725, /* GL_LUMINANCE4 */
+ 731, /* GL_LUMINANCE8 */
+ 715, /* GL_LUMINANCE12 */
+ 721, /* GL_LUMINANCE16 */
+ 726, /* GL_LUMINANCE4_ALPHA4 */
+ 729, /* GL_LUMINANCE6_ALPHA2 */
+ 732, /* GL_LUMINANCE8_ALPHA8 */
+ 718, /* GL_LUMINANCE12_ALPHA4 */
+ 716, /* GL_LUMINANCE12_ALPHA12 */
+ 722, /* GL_LUMINANCE16_ALPHA16 */
+ 637, /* GL_INTENSITY */
+ 642, /* GL_INTENSITY4 */
+ 644, /* GL_INTENSITY8 */
+ 638, /* GL_INTENSITY12 */
+ 640, /* GL_INTENSITY16 */
+ 1336, /* GL_RGB2_EXT */
+ 1337, /* GL_RGB4 */
+ 1340, /* GL_RGB5 */
+ 1344, /* GL_RGB8 */
+ 1328, /* GL_RGB10 */
+ 1332, /* GL_RGB12 */
+ 1334, /* GL_RGB16 */
+ 1351, /* GL_RGBA2 */
+ 1353, /* GL_RGBA4 */
+ 1341, /* GL_RGB5_A1 */
+ 1357, /* GL_RGBA8 */
+ 1329, /* GL_RGB10_A2 */
+ 1347, /* GL_RGBA12 */
+ 1349, /* GL_RGBA16 */
+ 1715, /* GL_TEXTURE_RED_SIZE */
+ 1685, /* GL_TEXTURE_GREEN_SIZE */
+ 1623, /* GL_TEXTURE_BLUE_SIZE */
+ 1610, /* GL_TEXTURE_ALPHA_SIZE */
+ 1698, /* GL_TEXTURE_LUMINANCE_SIZE */
+ 1689, /* GL_TEXTURE_INTENSITY_SIZE */
+ 1322, /* GL_REPLACE_EXT */
+ 1257, /* GL_PROXY_TEXTURE_1D */
+ 1260, /* GL_PROXY_TEXTURE_2D */
+ 1721, /* GL_TEXTURE_TOO_LARGE_EXT */
+ 1710, /* GL_TEXTURE_PRIORITY */
+ 1717, /* GL_TEXTURE_RESIDENT */
+ 1613, /* GL_TEXTURE_BINDING_1D */
+ 1615, /* GL_TEXTURE_BINDING_2D */
+ 1617, /* GL_TEXTURE_BINDING_3D */
+ 1083, /* GL_PACK_SKIP_IMAGES */
+ 1079, /* GL_PACK_IMAGE_HEIGHT */
+ 1752, /* GL_UNPACK_SKIP_IMAGES */
+ 1749, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1609, /* GL_TEXTURE_3D */
+ 1263, /* GL_PROXY_TEXTURE_3D */
+ 1672, /* GL_TEXTURE_DEPTH */
+ 1724, /* GL_TEXTURE_WRAP_R */
+ 846, /* GL_MAX_3D_TEXTURE_SIZE */
+ 1785, /* GL_VERTEX_ARRAY */
+ 1013, /* GL_NORMAL_ARRAY */
+ 148, /* GL_COLOR_ARRAY */
+ 622, /* GL_INDEX_ARRAY */
+ 1650, /* GL_TEXTURE_COORD_ARRAY */
+ 455, /* GL_EDGE_FLAG_ARRAY */
+ 1791, /* GL_VERTEX_ARRAY_SIZE */
+ 1793, /* GL_VERTEX_ARRAY_TYPE */
+ 1792, /* GL_VERTEX_ARRAY_STRIDE */
+ 1018, /* GL_NORMAL_ARRAY_TYPE */
+ 1017, /* GL_NORMAL_ARRAY_STRIDE */
+ 152, /* GL_COLOR_ARRAY_SIZE */
+ 154, /* GL_COLOR_ARRAY_TYPE */
+ 153, /* GL_COLOR_ARRAY_STRIDE */
+ 627, /* GL_INDEX_ARRAY_TYPE */
+ 626, /* GL_INDEX_ARRAY_STRIDE */
+ 1654, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ 1656, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ 1655, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ 459, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ 1790, /* GL_VERTEX_ARRAY_POINTER */
+ 1016, /* GL_NORMAL_ARRAY_POINTER */
+ 151, /* GL_COLOR_ARRAY_POINTER */
+ 625, /* GL_INDEX_ARRAY_POINTER */
+ 1653, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 458, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ 992, /* GL_MULTISAMPLE */
+ 1381, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ 1383, /* GL_SAMPLE_ALPHA_TO_ONE */
+ 1388, /* GL_SAMPLE_COVERAGE */
+ 1385, /* GL_SAMPLE_BUFFERS */
+ 1376, /* GL_SAMPLES */
+ 1392, /* GL_SAMPLE_COVERAGE_VALUE */
+ 1390, /* GL_SAMPLE_COVERAGE_INVERT */
+ 195, /* GL_COLOR_MATRIX */
+ 197, /* GL_COLOR_MATRIX_STACK_DEPTH */
+ 854, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ 1188, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ 1184, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ 1179, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ 1175, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ 1186, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ 1182, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ 1177, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ 1173, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ 1633, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ 1264, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ 1635, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 80, /* GL_BLEND_DST_RGB */
+ 89, /* GL_BLEND_SRC_RGB */
+ 79, /* GL_BLEND_DST_ALPHA */
+ 88, /* GL_BLEND_SRC_ALPHA */
+ 201, /* GL_COLOR_TABLE */
+ 1198, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ 1181, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1252, /* GL_PROXY_COLOR_TABLE */
+ 1256, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ 1255, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ 225, /* GL_COLOR_TABLE_SCALE */
+ 205, /* GL_COLOR_TABLE_BIAS */
+ 210, /* GL_COLOR_TABLE_FORMAT */
+ 227, /* GL_COLOR_TABLE_WIDTH */
+ 222, /* GL_COLOR_TABLE_RED_SIZE */
+ 213, /* GL_COLOR_TABLE_GREEN_SIZE */
+ 207, /* GL_COLOR_TABLE_BLUE_SIZE */
+ 202, /* GL_COLOR_TABLE_ALPHA_SIZE */
+ 219, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
+ 216, /* GL_COLOR_TABLE_INTENSITY_SIZE */
+ 71, /* GL_BGR */
+ 72, /* GL_BGRA */
+ 868, /* GL_MAX_ELEMENTS_VERTICES */
+ 867, /* GL_MAX_ELEMENTS_INDICES */
+ 1688, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 145, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
+ 1145, /* GL_POINT_SIZE_MIN */
+ 1141, /* GL_POINT_SIZE_MAX */
+ 1135, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ 1131, /* GL_POINT_DISTANCE_ATTENUATION */
+ 127, /* GL_CLAMP_TO_BORDER */
+ 130, /* GL_CLAMP_TO_EDGE */
+ 1709, /* GL_TEXTURE_MIN_LOD */
+ 1707, /* GL_TEXTURE_MAX_LOD */
+ 1612, /* GL_TEXTURE_BASE_LEVEL */
+ 1706, /* GL_TEXTURE_MAX_LEVEL */
+ 615, /* GL_IGNORE_BORDER_HP */
+ 276, /* GL_CONSTANT_BORDER_HP */
+ 1323, /* GL_REPLICATE_BORDER_HP */
+ 282, /* GL_CONVOLUTION_BORDER_COLOR */
+ 1042, /* GL_OCCLUSION_TEST_HP */
+ 1043, /* GL_OCCLUSION_TEST_RESULT_HP */
+ 687, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ 1627, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ 1629, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ 1631, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ 1632, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1630, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ 1628, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ 850, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ 851, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1208, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ 1210, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ 1207, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ 1209, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ 1696, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ 1697, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ 1695, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ 585, /* GL_GENERATE_MIPMAP */
+ 586, /* GL_GENERATE_MIPMAP_HINT */
+ 527, /* GL_FOG_OFFSET_SGIX */
+ 528, /* GL_FOG_OFFSET_VALUE_SGIX */
+ 1641, /* GL_TEXTURE_COMPARE_SGIX */
+ 1640, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ 1692, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ 1684, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ 358, /* GL_DEPTH_COMPONENT16 */
+ 361, /* GL_DEPTH_COMPONENT24 */
+ 364, /* GL_DEPTH_COMPONENT32 */
+ 306, /* GL_CULL_VERTEX_EXT */
+ 308, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ 307, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ 1848, /* GL_WRAP_BORDER_SUN */
+ 1634, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ 680, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ 1422, /* GL_SINGLE_COLOR */
+ 1408, /* GL_SEPARATE_SPECULAR_COLOR */
+ 1417, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ 538, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ 539, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ 546, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ 541, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ 537, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ 536, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ 540, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ 547, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ 558, /* GL_FRAMEBUFFER_DEFAULT */
+ 571, /* GL_FRAMEBUFFER_UNDEFINED */
+ 371, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ 621, /* GL_INDEX */
+ 1758, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 1773, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 1774, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 1771, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 1769, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 1766, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 1764, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 1704, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ 1705, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ 1703, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ 943, /* GL_MIRRORED_REPEAT */
+ 1364, /* GL_RGB_S3TC */
+ 1339, /* GL_RGB4_S3TC */
+ 1362, /* GL_RGBA_S3TC */
+ 1356, /* GL_RGBA4_S3TC */
+ 1360, /* GL_RGBA_DXT5_S3TC */
+ 1354, /* GL_RGBA4_DXT5_S3TC */
+ 264, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ 259, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ 260, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ 261, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ 1004, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ 1003, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ 688, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ 514, /* GL_FOG_COORDINATE_SOURCE */
+ 506, /* GL_FOG_COORD */
+ 530, /* GL_FRAGMENT_DEPTH */
+ 312, /* GL_CURRENT_FOG_COORD */
+ 513, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ 512, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ 511, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ 508, /* GL_FOG_COORDINATE_ARRAY */
+ 199, /* GL_COLOR_SUM */
+ 332, /* GL_CURRENT_SECONDARY_COLOR */
+ 1401, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ 1403, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ 1402, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ 1400, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ 1397, /* GL_SECONDARY_COLOR_ARRAY */
+ 330, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
28, /* GL_ALIASED_POINT_SIZE_RANGE */
27, /* GL_ALIASED_LINE_WIDTH_RANGE */
- 1530, /* GL_TEXTURE0 */
- 1532, /* GL_TEXTURE1 */
- 1554, /* GL_TEXTURE2 */
- 1576, /* GL_TEXTURE3 */
- 1582, /* GL_TEXTURE4 */
- 1584, /* GL_TEXTURE5 */
- 1586, /* GL_TEXTURE6 */
- 1588, /* GL_TEXTURE7 */
- 1590, /* GL_TEXTURE8 */
- 1592, /* GL_TEXTURE9 */
- 1533, /* GL_TEXTURE10 */
- 1535, /* GL_TEXTURE11 */
- 1537, /* GL_TEXTURE12 */
- 1539, /* GL_TEXTURE13 */
- 1541, /* GL_TEXTURE14 */
- 1543, /* GL_TEXTURE15 */
- 1545, /* GL_TEXTURE16 */
- 1547, /* GL_TEXTURE17 */
- 1549, /* GL_TEXTURE18 */
- 1551, /* GL_TEXTURE19 */
- 1555, /* GL_TEXTURE20 */
- 1557, /* GL_TEXTURE21 */
- 1559, /* GL_TEXTURE22 */
- 1561, /* GL_TEXTURE23 */
- 1563, /* GL_TEXTURE24 */
- 1565, /* GL_TEXTURE25 */
- 1567, /* GL_TEXTURE26 */
- 1569, /* GL_TEXTURE27 */
- 1571, /* GL_TEXTURE28 */
- 1573, /* GL_TEXTURE29 */
- 1577, /* GL_TEXTURE30 */
- 1579, /* GL_TEXTURE31 */
+ 1541, /* GL_TEXTURE0 */
+ 1543, /* GL_TEXTURE1 */
+ 1565, /* GL_TEXTURE2 */
+ 1587, /* GL_TEXTURE3 */
+ 1593, /* GL_TEXTURE4 */
+ 1595, /* GL_TEXTURE5 */
+ 1597, /* GL_TEXTURE6 */
+ 1599, /* GL_TEXTURE7 */
+ 1601, /* GL_TEXTURE8 */
+ 1603, /* GL_TEXTURE9 */
+ 1544, /* GL_TEXTURE10 */
+ 1546, /* GL_TEXTURE11 */
+ 1548, /* GL_TEXTURE12 */
+ 1550, /* GL_TEXTURE13 */
+ 1552, /* GL_TEXTURE14 */
+ 1554, /* GL_TEXTURE15 */
+ 1556, /* GL_TEXTURE16 */
+ 1558, /* GL_TEXTURE17 */
+ 1560, /* GL_TEXTURE18 */
+ 1562, /* GL_TEXTURE19 */
+ 1566, /* GL_TEXTURE20 */
+ 1568, /* GL_TEXTURE21 */
+ 1570, /* GL_TEXTURE22 */
+ 1572, /* GL_TEXTURE23 */
+ 1574, /* GL_TEXTURE24 */
+ 1576, /* GL_TEXTURE25 */
+ 1578, /* GL_TEXTURE26 */
+ 1580, /* GL_TEXTURE27 */
+ 1582, /* GL_TEXTURE28 */
+ 1584, /* GL_TEXTURE29 */
+ 1588, /* GL_TEXTURE30 */
+ 1590, /* GL_TEXTURE31 */
18, /* GL_ACTIVE_TEXTURE */
- 132, /* GL_CLIENT_ACTIVE_TEXTURE */
- 918, /* GL_MAX_TEXTURE_UNITS */
- 1723, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1726, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1728, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1720, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1518, /* GL_SUBTRACT */
- 906, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- 246, /* GL_COMPRESSED_ALPHA */
- 250, /* GL_COMPRESSED_LUMINANCE */
- 251, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- 248, /* GL_COMPRESSED_INTENSITY */
- 254, /* GL_COMPRESSED_RGB */
- 255, /* GL_COMPRESSED_RGBA */
- 1637, /* GL_TEXTURE_COMPRESSION_HINT */
- 1702, /* GL_TEXTURE_RECTANGLE_ARB */
- 1609, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- 1263, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- 904, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- 368, /* GL_DEPTH_STENCIL */
- 1748, /* GL_UNSIGNED_INT_24_8 */
- 914, /* GL_MAX_TEXTURE_LOD_BIAS */
- 1691, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- 915, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 1667, /* GL_TEXTURE_FILTER_CONTROL */
- 1682, /* GL_TEXTURE_LOD_BIAS */
- 231, /* GL_COMBINE4 */
- 908, /* GL_MAX_SHININESS_NV */
- 909, /* GL_MAX_SPOT_EXPONENT_NV */
- 617, /* GL_INCR_WRAP */
- 341, /* GL_DECR_WRAP */
- 960, /* GL_MODELVIEW1_ARB */
- 1016, /* GL_NORMAL_MAP */
- 1294, /* GL_REFLECTION_MAP */
- 1646, /* GL_TEXTURE_CUBE_MAP */
- 1607, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 1654, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 1648, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 1656, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 1650, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 1658, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 1652, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- 1261, /* GL_PROXY_TEXTURE_CUBE_MAP */
- 860, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- 995, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- 520, /* GL_FOG_DISTANCE_MODE_NV */
- 472, /* GL_EYE_RADIAL_NV */
- 471, /* GL_EYE_PLANE_ABSOLUTE_NV */
- 230, /* GL_COMBINE */
- 237, /* GL_COMBINE_RGB */
- 232, /* GL_COMBINE_ALPHA */
- 1361, /* GL_RGB_SCALE */
+ 133, /* GL_CLIENT_ACTIVE_TEXTURE */
+ 921, /* GL_MAX_TEXTURE_UNITS */
+ 1736, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 1739, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 1741, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 1733, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1523, /* GL_SUBTRACT */
+ 908, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ 247, /* GL_COMPRESSED_ALPHA */
+ 251, /* GL_COMPRESSED_LUMINANCE */
+ 252, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ 249, /* GL_COMPRESSED_INTENSITY */
+ 255, /* GL_COMPRESSED_RGB */
+ 256, /* GL_COMPRESSED_RGBA */
+ 1648, /* GL_TEXTURE_COMPRESSION_HINT */
+ 1713, /* GL_TEXTURE_RECTANGLE_ARB */
+ 1620, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ 1267, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ 906, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ 370, /* GL_DEPTH_STENCIL */
+ 1762, /* GL_UNSIGNED_INT_24_8 */
+ 917, /* GL_MAX_TEXTURE_LOD_BIAS */
+ 1702, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ 918, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ 1678, /* GL_TEXTURE_FILTER_CONTROL */
+ 1693, /* GL_TEXTURE_LOD_BIAS */
+ 232, /* GL_COMBINE4 */
+ 911, /* GL_MAX_SHININESS_NV */
+ 912, /* GL_MAX_SPOT_EXPONENT_NV */
+ 619, /* GL_INCR_WRAP */
+ 343, /* GL_DECR_WRAP */
+ 963, /* GL_MODELVIEW1_ARB */
+ 1019, /* GL_NORMAL_MAP */
+ 1298, /* GL_REFLECTION_MAP */
+ 1657, /* GL_TEXTURE_CUBE_MAP */
+ 1618, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ 1665, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ 1659, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ 1667, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ 1661, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ 1669, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ 1663, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ 1265, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ 862, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ 998, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ 522, /* GL_FOG_DISTANCE_MODE_NV */
+ 474, /* GL_EYE_RADIAL_NV */
+ 473, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ 231, /* GL_COMBINE */
+ 238, /* GL_COMBINE_RGB */
+ 233, /* GL_COMBINE_ALPHA */
+ 1365, /* GL_RGB_SCALE */
24, /* GL_ADD_SIGNED */
- 645, /* GL_INTERPOLATE */
- 269, /* GL_CONSTANT */
- 1210, /* GL_PRIMARY_COLOR */
- 1207, /* GL_PREVIOUS */
- 1432, /* GL_SOURCE0_RGB */
- 1438, /* GL_SOURCE1_RGB */
- 1444, /* GL_SOURCE2_RGB */
- 1448, /* GL_SOURCE3_RGB_NV */
- 1429, /* GL_SOURCE0_ALPHA */
- 1435, /* GL_SOURCE1_ALPHA */
- 1441, /* GL_SOURCE2_ALPHA */
- 1447, /* GL_SOURCE3_ALPHA_NV */
- 1052, /* GL_OPERAND0_RGB */
- 1058, /* GL_OPERAND1_RGB */
- 1064, /* GL_OPERAND2_RGB */
- 1068, /* GL_OPERAND3_RGB_NV */
- 1049, /* GL_OPERAND0_ALPHA */
- 1055, /* GL_OPERAND1_ALPHA */
- 1061, /* GL_OPERAND2_ALPHA */
- 1067, /* GL_OPERAND3_ALPHA_NV */
- 1772, /* GL_VERTEX_ARRAY_BINDING */
- 1700, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- 1701, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- 1837, /* GL_YCBCR_422_APPLE */
- 1761, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1763, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- 1709, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- 1509, /* GL_STORAGE_PRIVATE_APPLE */
- 1508, /* GL_STORAGE_CACHED_APPLE */
- 1510, /* GL_STORAGE_SHARED_APPLE */
- 1419, /* GL_SLICE_ACCUM_SUN */
- 1269, /* GL_QUAD_MESH_SUN */
- 1732, /* GL_TRIANGLE_MESH_SUN */
- 1811, /* GL_VERTEX_PROGRAM_ARB */
- 1822, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1798, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1804, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1806, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1808, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- 332, /* GL_CURRENT_VERTEX_ATTRIB */
- 1223, /* GL_PROGRAM_LENGTH_ARB */
- 1237, /* GL_PROGRAM_STRING_ARB */
- 982, /* GL_MODELVIEW_PROJECTION_NV */
- 612, /* GL_IDENTITY_NV */
- 659, /* GL_INVERSE_NV */
- 1725, /* GL_TRANSPOSE_NV */
- 660, /* GL_INVERSE_TRANSPOSE_NV */
- 890, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- 889, /* GL_MAX_PROGRAM_MATRICES_ARB */
- 797, /* GL_MATRIX0_NV */
- 809, /* GL_MATRIX1_NV */
- 821, /* GL_MATRIX2_NV */
- 825, /* GL_MATRIX3_NV */
- 827, /* GL_MATRIX4_NV */
- 829, /* GL_MATRIX5_NV */
- 831, /* GL_MATRIX6_NV */
- 833, /* GL_MATRIX7_NV */
- 316, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- 313, /* GL_CURRENT_MATRIX_ARB */
- 1814, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 1817, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- 1235, /* GL_PROGRAM_PARAMETER_NV */
- 1802, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- 1239, /* GL_PROGRAM_TARGET_NV */
- 1236, /* GL_PROGRAM_RESIDENT_NV */
- 1717, /* GL_TRACK_MATRIX_NV */
- 1718, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 1812, /* GL_VERTEX_PROGRAM_BINDING_NV */
- 1217, /* GL_PROGRAM_ERROR_POSITION_ARB */
- 353, /* GL_DEPTH_CLAMP_NV */
- 1780, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1787, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1788, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1789, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1790, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1791, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1792, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1793, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1794, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1795, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1781, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1782, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1783, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1784, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1785, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1786, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- 745, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- 752, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- 753, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- 754, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- 755, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- 756, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- 757, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- 758, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- 759, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- 760, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- 746, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- 747, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- 748, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- 749, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- 750, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- 751, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- 772, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- 779, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- 780, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- 781, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- 782, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- 783, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- 784, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- 1216, /* GL_PROGRAM_BINDING_ARB */
- 786, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- 787, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- 773, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- 774, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- 775, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- 776, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- 777, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- 778, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 1635, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 1632, /* GL_TEXTURE_COMPRESSED */
- 1021, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- 268, /* GL_COMPRESSED_TEXTURE_FORMATS */
- 930, /* GL_MAX_VERTEX_UNITS_ARB */
+ 647, /* GL_INTERPOLATE */
+ 271, /* GL_CONSTANT */
+ 1214, /* GL_PRIMARY_COLOR */
+ 1211, /* GL_PREVIOUS */
+ 1437, /* GL_SOURCE0_RGB */
+ 1443, /* GL_SOURCE1_RGB */
+ 1449, /* GL_SOURCE2_RGB */
+ 1453, /* GL_SOURCE3_RGB_NV */
+ 1434, /* GL_SOURCE0_ALPHA */
+ 1440, /* GL_SOURCE1_ALPHA */
+ 1446, /* GL_SOURCE2_ALPHA */
+ 1452, /* GL_SOURCE3_ALPHA_NV */
+ 1056, /* GL_OPERAND0_RGB */
+ 1062, /* GL_OPERAND1_RGB */
+ 1068, /* GL_OPERAND2_RGB */
+ 1072, /* GL_OPERAND3_RGB_NV */
+ 1053, /* GL_OPERAND0_ALPHA */
+ 1059, /* GL_OPERAND1_ALPHA */
+ 1065, /* GL_OPERAND2_ALPHA */
+ 1071, /* GL_OPERAND3_ALPHA_NV */
+ 1786, /* GL_VERTEX_ARRAY_BINDING */
+ 1711, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ 1712, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ 1852, /* GL_YCBCR_422_APPLE */
+ 1775, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 1777, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 1720, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ 1514, /* GL_STORAGE_PRIVATE_APPLE */
+ 1513, /* GL_STORAGE_CACHED_APPLE */
+ 1515, /* GL_STORAGE_SHARED_APPLE */
+ 1424, /* GL_SLICE_ACCUM_SUN */
+ 1273, /* GL_QUAD_MESH_SUN */
+ 1745, /* GL_TRIANGLE_MESH_SUN */
+ 1825, /* GL_VERTEX_PROGRAM_ARB */
+ 1836, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 1812, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 1818, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 1820, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 1822, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 334, /* GL_CURRENT_VERTEX_ATTRIB */
+ 1227, /* GL_PROGRAM_LENGTH_ARB */
+ 1241, /* GL_PROGRAM_STRING_ARB */
+ 985, /* GL_MODELVIEW_PROJECTION_NV */
+ 614, /* GL_IDENTITY_NV */
+ 661, /* GL_INVERSE_NV */
+ 1738, /* GL_TRANSPOSE_NV */
+ 662, /* GL_INVERSE_TRANSPOSE_NV */
+ 892, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ 891, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ 799, /* GL_MATRIX0_NV */
+ 811, /* GL_MATRIX1_NV */
+ 823, /* GL_MATRIX2_NV */
+ 827, /* GL_MATRIX3_NV */
+ 829, /* GL_MATRIX4_NV */
+ 831, /* GL_MATRIX5_NV */
+ 833, /* GL_MATRIX6_NV */
+ 835, /* GL_MATRIX7_NV */
+ 318, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ 315, /* GL_CURRENT_MATRIX_ARB */
+ 1828, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ 1831, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1239, /* GL_PROGRAM_PARAMETER_NV */
+ 1816, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1243, /* GL_PROGRAM_TARGET_NV */
+ 1240, /* GL_PROGRAM_RESIDENT_NV */
+ 1730, /* GL_TRACK_MATRIX_NV */
+ 1731, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 1826, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1221, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ 355, /* GL_DEPTH_CLAMP_NV */
+ 1794, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 1801, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 1802, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 1803, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 1804, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 1805, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 1806, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 1807, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 1808, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 1809, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 1795, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 1796, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 1797, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 1798, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 1799, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 1800, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 747, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ 754, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ 755, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ 756, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ 757, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ 758, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ 759, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ 760, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ 761, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ 762, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ 748, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ 749, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ 750, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ 751, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ 752, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ 753, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ 774, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ 781, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ 782, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ 783, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ 784, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ 785, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ 786, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ 1220, /* GL_PROGRAM_BINDING_ARB */
+ 788, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ 789, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ 775, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ 776, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ 777, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ 778, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ 779, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ 780, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ 1646, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ 1643, /* GL_TEXTURE_COMPRESSED */
+ 1024, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ 269, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ 933, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 1832, /* GL_WEIGHT_SUM_UNITY_ARB */
- 1810, /* GL_VERTEX_BLEND_ARB */
- 334, /* GL_CURRENT_WEIGHT_ARB */
- 1831, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 1830, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 1829, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 1828, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 1825, /* GL_WEIGHT_ARRAY_ARB */
- 381, /* GL_DOT3_RGB */
- 382, /* GL_DOT3_RGBA */
- 262, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- 257, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- 990, /* GL_MULTISAMPLE_3DFX */
- 1382, /* GL_SAMPLE_BUFFERS_3DFX */
- 1373, /* GL_SAMPLES_3DFX */
- 971, /* GL_MODELVIEW2_ARB */
- 974, /* GL_MODELVIEW3_ARB */
- 975, /* GL_MODELVIEW4_ARB */
- 976, /* GL_MODELVIEW5_ARB */
- 977, /* GL_MODELVIEW6_ARB */
- 978, /* GL_MODELVIEW7_ARB */
- 979, /* GL_MODELVIEW8_ARB */
- 980, /* GL_MODELVIEW9_ARB */
- 950, /* GL_MODELVIEW10_ARB */
- 951, /* GL_MODELVIEW11_ARB */
- 952, /* GL_MODELVIEW12_ARB */
- 953, /* GL_MODELVIEW13_ARB */
- 954, /* GL_MODELVIEW14_ARB */
- 955, /* GL_MODELVIEW15_ARB */
- 956, /* GL_MODELVIEW16_ARB */
- 957, /* GL_MODELVIEW17_ARB */
- 958, /* GL_MODELVIEW18_ARB */
- 959, /* GL_MODELVIEW19_ARB */
- 961, /* GL_MODELVIEW20_ARB */
- 962, /* GL_MODELVIEW21_ARB */
- 963, /* GL_MODELVIEW22_ARB */
- 964, /* GL_MODELVIEW23_ARB */
- 965, /* GL_MODELVIEW24_ARB */
- 966, /* GL_MODELVIEW25_ARB */
- 967, /* GL_MODELVIEW26_ARB */
- 968, /* GL_MODELVIEW27_ARB */
- 969, /* GL_MODELVIEW28_ARB */
- 970, /* GL_MODELVIEW29_ARB */
- 972, /* GL_MODELVIEW30_ARB */
- 973, /* GL_MODELVIEW31_ARB */
- 386, /* GL_DOT3_RGB_EXT */
- 384, /* GL_DOT3_RGBA_EXT */
- 944, /* GL_MIRROR_CLAMP_EXT */
- 947, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- 985, /* GL_MODULATE_ADD_ATI */
- 986, /* GL_MODULATE_SIGNED_ADD_ATI */
- 987, /* GL_MODULATE_SUBTRACT_ATI */
- 1838, /* GL_YCBCR_MESA */
- 1076, /* GL_PACK_INVERT_MESA */
- 337, /* GL_DEBUG_OBJECT_MESA */
- 338, /* GL_DEBUG_PRINT_MESA */
- 336, /* GL_DEBUG_ASSERT_MESA */
- 109, /* GL_BUFFER_SIZE */
- 111, /* GL_BUFFER_USAGE */
- 115, /* GL_BUMP_ROT_MATRIX_ATI */
- 116, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
- 114, /* GL_BUMP_NUM_TEX_UNITS_ATI */
- 118, /* GL_BUMP_TEX_UNITS_ATI */
- 445, /* GL_DUDV_ATI */
- 444, /* GL_DU8DV8_ATI */
- 113, /* GL_BUMP_ENVMAP_ATI */
- 117, /* GL_BUMP_TARGET_ATI */
- 1480, /* GL_STENCIL_BACK_FUNC */
- 1478, /* GL_STENCIL_BACK_FAIL */
- 1482, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1484, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- 529, /* GL_FRAGMENT_PROGRAM_ARB */
- 1214, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1242, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1241, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1226, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1232, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1231, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 879, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 902, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 901, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- 892, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 898, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 897, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 862, /* GL_MAX_DRAW_BUFFERS */
- 390, /* GL_DRAW_BUFFER0 */
- 393, /* GL_DRAW_BUFFER1 */
- 414, /* GL_DRAW_BUFFER2 */
- 417, /* GL_DRAW_BUFFER3 */
- 420, /* GL_DRAW_BUFFER4 */
- 423, /* GL_DRAW_BUFFER5 */
- 426, /* GL_DRAW_BUFFER6 */
- 429, /* GL_DRAW_BUFFER7 */
- 432, /* GL_DRAW_BUFFER8 */
- 435, /* GL_DRAW_BUFFER9 */
- 394, /* GL_DRAW_BUFFER10 */
- 397, /* GL_DRAW_BUFFER11 */
- 400, /* GL_DRAW_BUFFER12 */
- 403, /* GL_DRAW_BUFFER13 */
- 406, /* GL_DRAW_BUFFER14 */
- 409, /* GL_DRAW_BUFFER15 */
- 81, /* GL_BLEND_EQUATION_ALPHA */
- 842, /* GL_MATRIX_PALETTE_ARB */
- 873, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- 876, /* GL_MAX_PALETTE_MATRICES_ARB */
- 319, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- 836, /* GL_MATRIX_INDEX_ARRAY_ARB */
- 314, /* GL_CURRENT_MATRIX_INDEX_ARB */
- 838, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- 840, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- 839, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- 837, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 1662, /* GL_TEXTURE_DEPTH_SIZE */
- 374, /* GL_DEPTH_TEXTURE_MODE */
- 1627, /* GL_TEXTURE_COMPARE_MODE */
- 1625, /* GL_TEXTURE_COMPARE_FUNC */
- 241, /* GL_COMPARE_R_TO_TEXTURE */
- 1148, /* GL_POINT_SPRITE */
- 294, /* GL_COORD_REPLACE */
- 1152, /* GL_POINT_SPRITE_R_MODE_NV */
- 1271, /* GL_QUERY_COUNTER_BITS */
- 321, /* GL_CURRENT_QUERY */
- 1273, /* GL_QUERY_RESULT */
- 1275, /* GL_QUERY_RESULT_AVAILABLE */
- 924, /* GL_MAX_VERTEX_ATTRIBS */
- 1800, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- 372, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- 371, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- 910, /* GL_MAX_TEXTURE_COORDS */
- 912, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- 1219, /* GL_PROGRAM_ERROR_STRING_ARB */
- 1221, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- 1220, /* GL_PROGRAM_FORMAT_ARB */
- 1711, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- 351, /* GL_DEPTH_BOUNDS_TEST_EXT */
- 350, /* GL_DEPTH_BOUNDS_EXT */
- 52, /* GL_ARRAY_BUFFER */
- 458, /* GL_ELEMENT_ARRAY_BUFFER */
- 53, /* GL_ARRAY_BUFFER_BINDING */
- 459, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 1774, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- 1011, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- 148, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- 621, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 1640, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- 454, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- 1394, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- 507, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 1826, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1796, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- 1222, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- 885, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- 1228, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 894, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1240, /* GL_PROGRAM_TEMPORARIES_ARB */
- 900, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- 1230, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 896, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1234, /* GL_PROGRAM_PARAMETERS_ARB */
- 899, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- 1229, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- 895, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1215, /* GL_PROGRAM_ATTRIBS_ARB */
- 880, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- 1227, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- 893, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1213, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- 878, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1225, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 891, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 886, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- 882, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- 1243, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1722, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- 1284, /* GL_READ_ONLY */
- 1834, /* GL_WRITE_ONLY */
- 1286, /* GL_READ_WRITE */
- 101, /* GL_BUFFER_ACCESS */
- 104, /* GL_BUFFER_MAPPED */
- 106, /* GL_BUFFER_MAP_POINTER */
- 1716, /* GL_TIME_ELAPSED_EXT */
- 796, /* GL_MATRIX0_ARB */
- 808, /* GL_MATRIX1_ARB */
- 820, /* GL_MATRIX2_ARB */
- 824, /* GL_MATRIX3_ARB */
- 826, /* GL_MATRIX4_ARB */
- 828, /* GL_MATRIX5_ARB */
- 830, /* GL_MATRIX6_ARB */
- 832, /* GL_MATRIX7_ARB */
- 834, /* GL_MATRIX8_ARB */
- 835, /* GL_MATRIX9_ARB */
- 798, /* GL_MATRIX10_ARB */
- 799, /* GL_MATRIX11_ARB */
- 800, /* GL_MATRIX12_ARB */
- 801, /* GL_MATRIX13_ARB */
- 802, /* GL_MATRIX14_ARB */
- 803, /* GL_MATRIX15_ARB */
- 804, /* GL_MATRIX16_ARB */
- 805, /* GL_MATRIX17_ARB */
- 806, /* GL_MATRIX18_ARB */
- 807, /* GL_MATRIX19_ARB */
- 810, /* GL_MATRIX20_ARB */
- 811, /* GL_MATRIX21_ARB */
- 812, /* GL_MATRIX22_ARB */
- 813, /* GL_MATRIX23_ARB */
- 814, /* GL_MATRIX24_ARB */
- 815, /* GL_MATRIX25_ARB */
- 816, /* GL_MATRIX26_ARB */
- 817, /* GL_MATRIX27_ARB */
- 818, /* GL_MATRIX28_ARB */
- 819, /* GL_MATRIX29_ARB */
- 822, /* GL_MATRIX30_ARB */
- 823, /* GL_MATRIX31_ARB */
- 1513, /* GL_STREAM_DRAW */
- 1515, /* GL_STREAM_READ */
- 1511, /* GL_STREAM_COPY */
- 1471, /* GL_STATIC_DRAW */
- 1473, /* GL_STATIC_READ */
- 1469, /* GL_STATIC_COPY */
- 448, /* GL_DYNAMIC_DRAW */
- 450, /* GL_DYNAMIC_READ */
- 446, /* GL_DYNAMIC_COPY */
- 1116, /* GL_PIXEL_PACK_BUFFER */
- 1120, /* GL_PIXEL_UNPACK_BUFFER */
- 1117, /* GL_PIXEL_PACK_BUFFER_BINDING */
- 1121, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- 345, /* GL_DEPTH24_STENCIL8 */
- 1708, /* GL_TEXTURE_STENCIL_SIZE */
- 1660, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- 881, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- 884, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- 888, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- 887, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- 845, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- 1504, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 1847, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 1824, /* GL_VERTEX_BLEND_ARB */
+ 336, /* GL_CURRENT_WEIGHT_ARB */
+ 1846, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 1845, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 1844, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 1843, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 1840, /* GL_WEIGHT_ARRAY_ARB */
+ 383, /* GL_DOT3_RGB */
+ 384, /* GL_DOT3_RGBA */
+ 263, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ 258, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ 993, /* GL_MULTISAMPLE_3DFX */
+ 1386, /* GL_SAMPLE_BUFFERS_3DFX */
+ 1377, /* GL_SAMPLES_3DFX */
+ 974, /* GL_MODELVIEW2_ARB */
+ 977, /* GL_MODELVIEW3_ARB */
+ 978, /* GL_MODELVIEW4_ARB */
+ 979, /* GL_MODELVIEW5_ARB */
+ 980, /* GL_MODELVIEW6_ARB */
+ 981, /* GL_MODELVIEW7_ARB */
+ 982, /* GL_MODELVIEW8_ARB */
+ 983, /* GL_MODELVIEW9_ARB */
+ 953, /* GL_MODELVIEW10_ARB */
+ 954, /* GL_MODELVIEW11_ARB */
+ 955, /* GL_MODELVIEW12_ARB */
+ 956, /* GL_MODELVIEW13_ARB */
+ 957, /* GL_MODELVIEW14_ARB */
+ 958, /* GL_MODELVIEW15_ARB */
+ 959, /* GL_MODELVIEW16_ARB */
+ 960, /* GL_MODELVIEW17_ARB */
+ 961, /* GL_MODELVIEW18_ARB */
+ 962, /* GL_MODELVIEW19_ARB */
+ 964, /* GL_MODELVIEW20_ARB */
+ 965, /* GL_MODELVIEW21_ARB */
+ 966, /* GL_MODELVIEW22_ARB */
+ 967, /* GL_MODELVIEW23_ARB */
+ 968, /* GL_MODELVIEW24_ARB */
+ 969, /* GL_MODELVIEW25_ARB */
+ 970, /* GL_MODELVIEW26_ARB */
+ 971, /* GL_MODELVIEW27_ARB */
+ 972, /* GL_MODELVIEW28_ARB */
+ 973, /* GL_MODELVIEW29_ARB */
+ 975, /* GL_MODELVIEW30_ARB */
+ 976, /* GL_MODELVIEW31_ARB */
+ 388, /* GL_DOT3_RGB_EXT */
+ 386, /* GL_DOT3_RGBA_EXT */
+ 947, /* GL_MIRROR_CLAMP_EXT */
+ 950, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ 988, /* GL_MODULATE_ADD_ATI */
+ 989, /* GL_MODULATE_SIGNED_ADD_ATI */
+ 990, /* GL_MODULATE_SUBTRACT_ATI */
+ 1853, /* GL_YCBCR_MESA */
+ 1080, /* GL_PACK_INVERT_MESA */
+ 339, /* GL_DEBUG_OBJECT_MESA */
+ 340, /* GL_DEBUG_PRINT_MESA */
+ 338, /* GL_DEBUG_ASSERT_MESA */
+ 110, /* GL_BUFFER_SIZE */
+ 112, /* GL_BUFFER_USAGE */
+ 116, /* GL_BUMP_ROT_MATRIX_ATI */
+ 117, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
+ 115, /* GL_BUMP_NUM_TEX_UNITS_ATI */
+ 119, /* GL_BUMP_TEX_UNITS_ATI */
+ 447, /* GL_DUDV_ATI */
+ 446, /* GL_DU8DV8_ATI */
+ 114, /* GL_BUMP_ENVMAP_ATI */
+ 118, /* GL_BUMP_TARGET_ATI */
+ 1485, /* GL_STENCIL_BACK_FUNC */
+ 1483, /* GL_STENCIL_BACK_FAIL */
+ 1487, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ 1489, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 531, /* GL_FRAGMENT_PROGRAM_ARB */
+ 1218, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 1246, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 1245, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 1230, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 1236, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 1235, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 881, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 904, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 903, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 894, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 900, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 899, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 864, /* GL_MAX_DRAW_BUFFERS */
+ 392, /* GL_DRAW_BUFFER0 */
+ 395, /* GL_DRAW_BUFFER1 */
+ 416, /* GL_DRAW_BUFFER2 */
+ 419, /* GL_DRAW_BUFFER3 */
+ 422, /* GL_DRAW_BUFFER4 */
+ 425, /* GL_DRAW_BUFFER5 */
+ 428, /* GL_DRAW_BUFFER6 */
+ 431, /* GL_DRAW_BUFFER7 */
+ 434, /* GL_DRAW_BUFFER8 */
+ 437, /* GL_DRAW_BUFFER9 */
+ 396, /* GL_DRAW_BUFFER10 */
+ 399, /* GL_DRAW_BUFFER11 */
+ 402, /* GL_DRAW_BUFFER12 */
+ 405, /* GL_DRAW_BUFFER13 */
+ 408, /* GL_DRAW_BUFFER14 */
+ 411, /* GL_DRAW_BUFFER15 */
+ 82, /* GL_BLEND_EQUATION_ALPHA */
+ 844, /* GL_MATRIX_PALETTE_ARB */
+ 875, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ 878, /* GL_MAX_PALETTE_MATRICES_ARB */
+ 321, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ 838, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ 316, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ 840, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ 842, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ 841, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ 839, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ 1673, /* GL_TEXTURE_DEPTH_SIZE */
+ 376, /* GL_DEPTH_TEXTURE_MODE */
+ 1638, /* GL_TEXTURE_COMPARE_MODE */
+ 1636, /* GL_TEXTURE_COMPARE_FUNC */
+ 242, /* GL_COMPARE_R_TO_TEXTURE */
+ 1152, /* GL_POINT_SPRITE */
+ 296, /* GL_COORD_REPLACE */
+ 1156, /* GL_POINT_SPRITE_R_MODE_NV */
+ 1275, /* GL_QUERY_COUNTER_BITS */
+ 323, /* GL_CURRENT_QUERY */
+ 1277, /* GL_QUERY_RESULT */
+ 1279, /* GL_QUERY_RESULT_AVAILABLE */
+ 927, /* GL_MAX_VERTEX_ATTRIBS */
+ 1814, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 374, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ 373, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ 913, /* GL_MAX_TEXTURE_COORDS */
+ 915, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ 1223, /* GL_PROGRAM_ERROR_STRING_ARB */
+ 1225, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ 1224, /* GL_PROGRAM_FORMAT_ARB */
+ 1722, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ 353, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ 352, /* GL_DEPTH_BOUNDS_EXT */
+ 53, /* GL_ARRAY_BUFFER */
+ 460, /* GL_ELEMENT_ARRAY_BUFFER */
+ 54, /* GL_ARRAY_BUFFER_BINDING */
+ 461, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ 1788, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1014, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ 149, /* GL_COLOR_ARRAY_BUFFER_BINDING */
+ 623, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ 1651, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 456, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ 1398, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ 509, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ 1841, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 1810, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1226, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ 887, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ 1232, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 896, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 1244, /* GL_PROGRAM_TEMPORARIES_ARB */
+ 902, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ 1234, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 898, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 1238, /* GL_PROGRAM_PARAMETERS_ARB */
+ 901, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ 1233, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 897, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 1219, /* GL_PROGRAM_ATTRIBS_ARB */
+ 882, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ 1231, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 895, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 1217, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 880, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 1229, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 893, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 888, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ 884, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ 1247, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ 1735, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1288, /* GL_READ_ONLY */
+ 1849, /* GL_WRITE_ONLY */
+ 1290, /* GL_READ_WRITE */
+ 102, /* GL_BUFFER_ACCESS */
+ 105, /* GL_BUFFER_MAPPED */
+ 107, /* GL_BUFFER_MAP_POINTER */
+ 1729, /* GL_TIME_ELAPSED_EXT */
+ 798, /* GL_MATRIX0_ARB */
+ 810, /* GL_MATRIX1_ARB */
+ 822, /* GL_MATRIX2_ARB */
+ 826, /* GL_MATRIX3_ARB */
+ 828, /* GL_MATRIX4_ARB */
+ 830, /* GL_MATRIX5_ARB */
+ 832, /* GL_MATRIX6_ARB */
+ 834, /* GL_MATRIX7_ARB */
+ 836, /* GL_MATRIX8_ARB */
+ 837, /* GL_MATRIX9_ARB */
+ 800, /* GL_MATRIX10_ARB */
+ 801, /* GL_MATRIX11_ARB */
+ 802, /* GL_MATRIX12_ARB */
+ 803, /* GL_MATRIX13_ARB */
+ 804, /* GL_MATRIX14_ARB */
+ 805, /* GL_MATRIX15_ARB */
+ 806, /* GL_MATRIX16_ARB */
+ 807, /* GL_MATRIX17_ARB */
+ 808, /* GL_MATRIX18_ARB */
+ 809, /* GL_MATRIX19_ARB */
+ 812, /* GL_MATRIX20_ARB */
+ 813, /* GL_MATRIX21_ARB */
+ 814, /* GL_MATRIX22_ARB */
+ 815, /* GL_MATRIX23_ARB */
+ 816, /* GL_MATRIX24_ARB */
+ 817, /* GL_MATRIX25_ARB */
+ 818, /* GL_MATRIX26_ARB */
+ 819, /* GL_MATRIX27_ARB */
+ 820, /* GL_MATRIX28_ARB */
+ 821, /* GL_MATRIX29_ARB */
+ 824, /* GL_MATRIX30_ARB */
+ 825, /* GL_MATRIX31_ARB */
+ 1518, /* GL_STREAM_DRAW */
+ 1520, /* GL_STREAM_READ */
+ 1516, /* GL_STREAM_COPY */
+ 1476, /* GL_STATIC_DRAW */
+ 1478, /* GL_STATIC_READ */
+ 1474, /* GL_STATIC_COPY */
+ 450, /* GL_DYNAMIC_DRAW */
+ 452, /* GL_DYNAMIC_READ */
+ 448, /* GL_DYNAMIC_COPY */
+ 1120, /* GL_PIXEL_PACK_BUFFER */
+ 1124, /* GL_PIXEL_UNPACK_BUFFER */
+ 1121, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ 1125, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ 347, /* GL_DEPTH24_STENCIL8 */
+ 1719, /* GL_TEXTURE_STENCIL_SIZE */
+ 1671, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ 883, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ 886, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ 890, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ 889, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ 847, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ 1509, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
17, /* GL_ACTIVE_STENCIL_FACE_EXT */
- 945, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- 1375, /* GL_SAMPLES_PASSED */
- 108, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
- 103, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
- 530, /* GL_FRAGMENT_SHADER */
- 1820, /* GL_VERTEX_SHADER */
- 1233, /* GL_PROGRAM_OBJECT_ARB */
- 1407, /* GL_SHADER_OBJECT_ARB */
- 869, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- 928, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- 922, /* GL_MAX_VARYING_FLOATS */
- 926, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- 854, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- 1036, /* GL_OBJECT_TYPE_ARB */
- 1409, /* GL_SHADER_TYPE */
- 495, /* GL_FLOAT_VEC2 */
- 497, /* GL_FLOAT_VEC3 */
- 499, /* GL_FLOAT_VEC4 */
- 648, /* GL_INT_VEC2 */
- 650, /* GL_INT_VEC3 */
- 652, /* GL_INT_VEC4 */
- 93, /* GL_BOOL */
- 95, /* GL_BOOL_VEC2 */
- 97, /* GL_BOOL_VEC3 */
- 99, /* GL_BOOL_VEC4 */
- 483, /* GL_FLOAT_MAT2 */
- 487, /* GL_FLOAT_MAT3 */
- 491, /* GL_FLOAT_MAT4 */
- 1366, /* GL_SAMPLER_1D */
- 1368, /* GL_SAMPLER_2D */
- 1370, /* GL_SAMPLER_3D */
- 1371, /* GL_SAMPLER_CUBE */
- 1367, /* GL_SAMPLER_1D_SHADOW */
- 1369, /* GL_SAMPLER_2D_SHADOW */
- 485, /* GL_FLOAT_MAT2x3 */
- 486, /* GL_FLOAT_MAT2x4 */
- 489, /* GL_FLOAT_MAT3x2 */
- 490, /* GL_FLOAT_MAT3x4 */
- 493, /* GL_FLOAT_MAT4x2 */
- 494, /* GL_FLOAT_MAT4x3 */
- 343, /* GL_DELETE_STATUS */
- 245, /* GL_COMPILE_STATUS */
- 703, /* GL_LINK_STATUS */
- 1768, /* GL_VALIDATE_STATUS */
- 633, /* GL_INFO_LOG_LENGTH */
- 55, /* GL_ATTACHED_SHADERS */
+ 948, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ 1379, /* GL_SAMPLES_PASSED */
+ 109, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
+ 104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
+ 532, /* GL_FRAGMENT_SHADER */
+ 1834, /* GL_VERTEX_SHADER */
+ 1237, /* GL_PROGRAM_OBJECT_ARB */
+ 1411, /* GL_SHADER_OBJECT_ARB */
+ 871, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ 931, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ 925, /* GL_MAX_VARYING_FLOATS */
+ 929, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ 856, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ 1040, /* GL_OBJECT_TYPE_ARB */
+ 1413, /* GL_SHADER_TYPE */
+ 497, /* GL_FLOAT_VEC2 */
+ 499, /* GL_FLOAT_VEC3 */
+ 501, /* GL_FLOAT_VEC4 */
+ 650, /* GL_INT_VEC2 */
+ 652, /* GL_INT_VEC3 */
+ 654, /* GL_INT_VEC4 */
+ 94, /* GL_BOOL */
+ 96, /* GL_BOOL_VEC2 */
+ 98, /* GL_BOOL_VEC3 */
+ 100, /* GL_BOOL_VEC4 */
+ 485, /* GL_FLOAT_MAT2 */
+ 489, /* GL_FLOAT_MAT3 */
+ 493, /* GL_FLOAT_MAT4 */
+ 1370, /* GL_SAMPLER_1D */
+ 1372, /* GL_SAMPLER_2D */
+ 1374, /* GL_SAMPLER_3D */
+ 1375, /* GL_SAMPLER_CUBE */
+ 1371, /* GL_SAMPLER_1D_SHADOW */
+ 1373, /* GL_SAMPLER_2D_SHADOW */
+ 487, /* GL_FLOAT_MAT2x3 */
+ 488, /* GL_FLOAT_MAT2x4 */
+ 491, /* GL_FLOAT_MAT3x2 */
+ 492, /* GL_FLOAT_MAT3x4 */
+ 495, /* GL_FLOAT_MAT4x2 */
+ 496, /* GL_FLOAT_MAT4x3 */
+ 345, /* GL_DELETE_STATUS */
+ 246, /* GL_COMPILE_STATUS */
+ 705, /* GL_LINK_STATUS */
+ 1782, /* GL_VALIDATE_STATUS */
+ 635, /* GL_INFO_LOG_LENGTH */
+ 56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
21, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */
- 1408, /* GL_SHADER_SOURCE_LENGTH */
+ 1412, /* GL_SHADER_SOURCE_LENGTH */
15, /* GL_ACTIVE_ATTRIBUTES */
16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */
- 532, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- 1411, /* GL_SHADING_LANGUAGE_VERSION */
- 320, /* GL_CURRENT_PROGRAM */
- 1085, /* GL_PALETTE4_RGB8_OES */
- 1087, /* GL_PALETTE4_RGBA8_OES */
- 1083, /* GL_PALETTE4_R5_G6_B5_OES */
- 1086, /* GL_PALETTE4_RGBA4_OES */
- 1084, /* GL_PALETTE4_RGB5_A1_OES */
- 1090, /* GL_PALETTE8_RGB8_OES */
- 1092, /* GL_PALETTE8_RGBA8_OES */
- 1088, /* GL_PALETTE8_R5_G6_B5_OES */
- 1091, /* GL_PALETTE8_RGBA4_OES */
- 1089, /* GL_PALETTE8_RGB5_A1_OES */
- 615, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- 614, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 1753, /* GL_UNSIGNED_NORMALIZED */
- 1595, /* GL_TEXTURE_1D_ARRAY_EXT */
- 1254, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- 1597, /* GL_TEXTURE_2D_ARRAY_EXT */
- 1257, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- 1603, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- 1605, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- 1463, /* GL_SRGB */
- 1464, /* GL_SRGB8 */
- 1466, /* GL_SRGB_ALPHA */
- 1465, /* GL_SRGB8_ALPHA8 */
- 1423, /* GL_SLUMINANCE_ALPHA */
- 1422, /* GL_SLUMINANCE8_ALPHA8 */
- 1420, /* GL_SLUMINANCE */
- 1421, /* GL_SLUMINANCE8 */
- 266, /* GL_COMPRESSED_SRGB */
- 267, /* GL_COMPRESSED_SRGB_ALPHA */
- 264, /* GL_COMPRESSED_SLUMINANCE */
- 265, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
- 1150, /* GL_POINT_SPRITE_COORD_ORIGIN */
- 711, /* GL_LOWER_LEFT */
- 1765, /* GL_UPPER_LEFT */
- 1486, /* GL_STENCIL_BACK_REF */
- 1487, /* GL_STENCIL_BACK_VALUE_MASK */
- 1488, /* GL_STENCIL_BACK_WRITEMASK */
- 439, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- 1300, /* GL_RENDERBUFFER_BINDING_EXT */
- 1281, /* GL_READ_FRAMEBUFFER */
- 438, /* GL_DRAW_FRAMEBUFFER */
- 1282, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- 1310, /* GL_RENDERBUFFER_SAMPLES */
- 542, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- 540, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- 551, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- 547, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- 549, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- 554, /* GL_FRAMEBUFFER_COMPLETE */
- 558, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- 564, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- 562, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- 560, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- 563, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- 561, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- 567, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- 570, /* GL_FRAMEBUFFER_UNSUPPORTED */
- 568, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- 851, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- 154, /* GL_COLOR_ATTACHMENT0 */
- 156, /* GL_COLOR_ATTACHMENT1 */
- 170, /* GL_COLOR_ATTACHMENT2 */
- 172, /* GL_COLOR_ATTACHMENT3 */
- 174, /* GL_COLOR_ATTACHMENT4 */
- 176, /* GL_COLOR_ATTACHMENT5 */
- 178, /* GL_COLOR_ATTACHMENT6 */
- 180, /* GL_COLOR_ATTACHMENT7 */
- 182, /* GL_COLOR_ATTACHMENT8 */
- 184, /* GL_COLOR_ATTACHMENT9 */
- 157, /* GL_COLOR_ATTACHMENT10 */
- 159, /* GL_COLOR_ATTACHMENT11 */
- 161, /* GL_COLOR_ATTACHMENT12 */
- 163, /* GL_COLOR_ATTACHMENT13 */
- 165, /* GL_COLOR_ATTACHMENT14 */
- 167, /* GL_COLOR_ATTACHMENT15 */
- 346, /* GL_DEPTH_ATTACHMENT */
- 1476, /* GL_STENCIL_ATTACHMENT */
- 533, /* GL_FRAMEBUFFER */
- 1298, /* GL_RENDERBUFFER */
- 1312, /* GL_RENDERBUFFER_WIDTH */
- 1305, /* GL_RENDERBUFFER_HEIGHT */
- 1307, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- 1499, /* GL_STENCIL_INDEX_EXT */
- 1496, /* GL_STENCIL_INDEX1_EXT */
- 1497, /* GL_STENCIL_INDEX4_EXT */
- 1498, /* GL_STENCIL_INDEX8_EXT */
- 1495, /* GL_STENCIL_INDEX16_EXT */
- 1309, /* GL_RENDERBUFFER_RED_SIZE */
- 1304, /* GL_RENDERBUFFER_GREEN_SIZE */
- 1301, /* GL_RENDERBUFFER_BLUE_SIZE */
- 1299, /* GL_RENDERBUFFER_ALPHA_SIZE */
- 1302, /* GL_RENDERBUFFER_DEPTH_SIZE */
- 1311, /* GL_RENDERBUFFER_STENCIL_SIZE */
- 566, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- 907, /* GL_MAX_SAMPLES */
- 1268, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
- 480, /* GL_FIRST_VERTEX_CONVENTION_EXT */
- 663, /* GL_LAST_VERTEX_CONVENTION_EXT */
- 1247, /* GL_PROVOKING_VERTEX_EXT */
- 300, /* GL_COPY_READ_BUFFER */
- 301, /* GL_COPY_WRITE_BUFFER */
- 1359, /* GL_RGBA_SNORM */
- 1355, /* GL_RGBA8_SNORM */
- 1416, /* GL_SIGNED_NORMALIZED */
- 465, /* GL_EVAL_BIT */
- 1279, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- 705, /* GL_LIST_BIT */
- 1611, /* GL_TEXTURE_BIT */
- 1390, /* GL_SCISSOR_BIT */
+ 534, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ 1415, /* GL_SHADING_LANGUAGE_VERSION */
+ 322, /* GL_CURRENT_PROGRAM */
+ 1089, /* GL_PALETTE4_RGB8_OES */
+ 1091, /* GL_PALETTE4_RGBA8_OES */
+ 1087, /* GL_PALETTE4_R5_G6_B5_OES */
+ 1090, /* GL_PALETTE4_RGBA4_OES */
+ 1088, /* GL_PALETTE4_RGB5_A1_OES */
+ 1094, /* GL_PALETTE8_RGB8_OES */
+ 1096, /* GL_PALETTE8_RGBA8_OES */
+ 1092, /* GL_PALETTE8_R5_G6_B5_OES */
+ 1095, /* GL_PALETTE8_RGBA4_OES */
+ 1093, /* GL_PALETTE8_RGB5_A1_OES */
+ 617, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ 616, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ 1767, /* GL_UNSIGNED_NORMALIZED */
+ 1606, /* GL_TEXTURE_1D_ARRAY_EXT */
+ 1258, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ 1608, /* GL_TEXTURE_2D_ARRAY_EXT */
+ 1261, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ 1614, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ 1616, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ 1468, /* GL_SRGB */
+ 1469, /* GL_SRGB8 */
+ 1471, /* GL_SRGB_ALPHA */
+ 1470, /* GL_SRGB8_ALPHA8 */
+ 1428, /* GL_SLUMINANCE_ALPHA */
+ 1427, /* GL_SLUMINANCE8_ALPHA8 */
+ 1425, /* GL_SLUMINANCE */
+ 1426, /* GL_SLUMINANCE8 */
+ 267, /* GL_COMPRESSED_SRGB */
+ 268, /* GL_COMPRESSED_SRGB_ALPHA */
+ 265, /* GL_COMPRESSED_SLUMINANCE */
+ 266, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
+ 1154, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ 713, /* GL_LOWER_LEFT */
+ 1779, /* GL_UPPER_LEFT */
+ 1491, /* GL_STENCIL_BACK_REF */
+ 1492, /* GL_STENCIL_BACK_VALUE_MASK */
+ 1493, /* GL_STENCIL_BACK_WRITEMASK */
+ 441, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ 1304, /* GL_RENDERBUFFER_BINDING_EXT */
+ 1285, /* GL_READ_FRAMEBUFFER */
+ 440, /* GL_DRAW_FRAMEBUFFER */
+ 1286, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ 1314, /* GL_RENDERBUFFER_SAMPLES */
+ 544, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ 542, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ 553, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ 549, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ 551, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ 556, /* GL_FRAMEBUFFER_COMPLETE */
+ 560, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ 566, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ 564, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ 562, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ 565, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ 563, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ 569, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ 572, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ 570, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ 853, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ 155, /* GL_COLOR_ATTACHMENT0 */
+ 157, /* GL_COLOR_ATTACHMENT1 */
+ 171, /* GL_COLOR_ATTACHMENT2 */
+ 173, /* GL_COLOR_ATTACHMENT3 */
+ 175, /* GL_COLOR_ATTACHMENT4 */
+ 177, /* GL_COLOR_ATTACHMENT5 */
+ 179, /* GL_COLOR_ATTACHMENT6 */
+ 181, /* GL_COLOR_ATTACHMENT7 */
+ 183, /* GL_COLOR_ATTACHMENT8 */
+ 185, /* GL_COLOR_ATTACHMENT9 */
+ 158, /* GL_COLOR_ATTACHMENT10 */
+ 160, /* GL_COLOR_ATTACHMENT11 */
+ 162, /* GL_COLOR_ATTACHMENT12 */
+ 164, /* GL_COLOR_ATTACHMENT13 */
+ 166, /* GL_COLOR_ATTACHMENT14 */
+ 168, /* GL_COLOR_ATTACHMENT15 */
+ 348, /* GL_DEPTH_ATTACHMENT */
+ 1481, /* GL_STENCIL_ATTACHMENT */
+ 535, /* GL_FRAMEBUFFER */
+ 1302, /* GL_RENDERBUFFER */
+ 1316, /* GL_RENDERBUFFER_WIDTH */
+ 1309, /* GL_RENDERBUFFER_HEIGHT */
+ 1311, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ 1504, /* GL_STENCIL_INDEX_EXT */
+ 1501, /* GL_STENCIL_INDEX1_EXT */
+ 1502, /* GL_STENCIL_INDEX4_EXT */
+ 1503, /* GL_STENCIL_INDEX8_EXT */
+ 1500, /* GL_STENCIL_INDEX16_EXT */
+ 1313, /* GL_RENDERBUFFER_RED_SIZE */
+ 1308, /* GL_RENDERBUFFER_GREEN_SIZE */
+ 1305, /* GL_RENDERBUFFER_BLUE_SIZE */
+ 1303, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ 1306, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ 1315, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ 568, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ 909, /* GL_MAX_SAMPLES */
+ 1272, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
+ 482, /* GL_FIRST_VERTEX_CONVENTION_EXT */
+ 665, /* GL_LAST_VERTEX_CONVENTION_EXT */
+ 1251, /* GL_PROVOKING_VERTEX_EXT */
+ 302, /* GL_COPY_READ_BUFFER */
+ 303, /* GL_COPY_WRITE_BUFFER */
+ 1363, /* GL_RGBA_SNORM */
+ 1359, /* GL_RGBA8_SNORM */
+ 1421, /* GL_SIGNED_NORMALIZED */
+ 910, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ 1039, /* GL_OBJECT_TYPE */
+ 1525, /* GL_SYNC_CONDITION */
+ 1530, /* GL_SYNC_STATUS */
+ 1527, /* GL_SYNC_FLAGS */
+ 1526, /* GL_SYNC_FENCE */
+ 1529, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ 1756, /* GL_UNSIGNALED */
+ 1420, /* GL_SIGNALED */
+ 46, /* GL_ALREADY_SIGNALED */
+ 1727, /* GL_TIMEOUT_EXPIRED */
+ 270, /* GL_CONDITION_SATISFIED */
+ 1839, /* GL_WAIT_FAILED */
+ 467, /* GL_EVAL_BIT */
+ 1283, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ 707, /* GL_LIST_BIT */
+ 1622, /* GL_TEXTURE_BIT */
+ 1394, /* GL_SCISSOR_BIT */
29, /* GL_ALL_ATTRIB_BITS */
- 992, /* GL_MULTISAMPLE_BIT */
+ 995, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
+ 1728, /* GL_TIMEOUT_IGNORED */
};
typedef int (*cfunc)(const void *, const void *);
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 195fdde3468..e3070b1547d 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -67,6 +67,7 @@ static const struct {
{ OFF, "GL_ARB_shading_language_120", F(ARB_shading_language_120) },
{ OFF, "GL_ARB_shadow", F(ARB_shadow) },
{ OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) },
+ { OFF, "GL_ARB_sync", F(ARB_sync) },
{ OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) },
{ ON, "GL_ARB_texture_compression", F(ARB_texture_compression) },
{ OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) },
@@ -240,6 +241,9 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
#if FEATURE_ARB_vertex_buffer_object
/*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/
#endif
+#if FEATURE_ARB_sync
+ ctx->Extensions.ARB_sync = GL_TRUE;
+#endif
ctx->Extensions.APPLE_vertex_array_object = GL_TRUE;
ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE;
#if FEATURE_ATI_fragment_shader
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 8e21a27f897..356476e35a5 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -46,6 +46,9 @@
#include "shader/prog_statevars.h"
+/** Max of number of lights and texture coord units */
+#define NUM_UNITS MAX2(MAX_TEXTURE_COORD_UNITS, MAX_LIGHTS)
+
struct state_key {
unsigned light_color_material_mask:12;
unsigned light_global_enabled:1;
@@ -77,7 +80,7 @@ struct state_key {
unsigned texgen_mode1:4;
unsigned texgen_mode2:4;
unsigned texgen_mode3:4;
- } unit[8];
+ } unit[NUM_UNITS];
};
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index d0c9cea00c7..477ed010304 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -19,9 +19,15 @@
#define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
+#define INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
+#define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
+
#define BOOLEAN_TO_INT(B) ( (GLint) (B) )
+#define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
#define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
+#define ENUM_TO_INT64(E) ( (GLint64) (E) )
+
/*
* Check if named extension is enabled, if not generate error and return.
@@ -1884,6 +1890,10 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
CHECK_EXT1(ARB_seamless_cube_map, "GetBooleanv");
params[0] = ctx->Texture.CubeMapSeamless;
break;
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ CHECK_EXT1(ARB_sync, "GetBooleanv");
+ params[0] = INT64_TO_BOOLEAN(ctx->Const.MaxServerWaitTimeout);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname);
}
@@ -3711,6 +3721,10 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
CHECK_EXT1(ARB_seamless_cube_map, "GetFloatv");
params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.CubeMapSeamless);
break;
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ CHECK_EXT1(ARB_sync, "GetFloatv");
+ params[0] = (GLfloat)(ctx->Const.MaxServerWaitTimeout);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname);
}
@@ -5538,11 +5552,1848 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
CHECK_EXT1(ARB_seamless_cube_map, "GetIntegerv");
params[0] = BOOLEAN_TO_INT(ctx->Texture.CubeMapSeamless);
break;
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ CHECK_EXT1(ARB_sync, "GetIntegerv");
+ params[0] = INT64_TO_INT(ctx->Const.MaxServerWaitTimeout);
+ break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname);
}
}
+#if FEATURE_ARB_sync
+void GLAPIENTRY
+_mesa_GetInteger64v( GLenum pname, GLint64 *params )
+{
+ GET_CURRENT_CONTEXT(ctx);
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (!params)
+ return;
+
+ if (ctx->NewState)
+ _mesa_update_state(ctx);
+
+ if (ctx->Driver.GetInteger64v &&
+ ctx->Driver.GetInteger64v(ctx, pname, params))
+ return;
+
+ switch (pname) {
+ case GL_ACCUM_RED_BITS:
+ params[0] = ctx->DrawBuffer->Visual.accumRedBits;
+ break;
+ case GL_ACCUM_GREEN_BITS:
+ params[0] = ctx->DrawBuffer->Visual.accumGreenBits;
+ break;
+ case GL_ACCUM_BLUE_BITS:
+ params[0] = ctx->DrawBuffer->Visual.accumBlueBits;
+ break;
+ case GL_ACCUM_ALPHA_BITS:
+ params[0] = ctx->DrawBuffer->Visual.accumAlphaBits;
+ break;
+ case GL_ACCUM_CLEAR_VALUE:
+ params[0] = FLOAT_TO_INT64(ctx->Accum.ClearColor[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Accum.ClearColor[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Accum.ClearColor[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Accum.ClearColor[3]);
+ break;
+ case GL_ALPHA_BIAS:
+ params[0] = IROUND64(ctx->Pixel.AlphaBias);
+ break;
+ case GL_ALPHA_BITS:
+ params[0] = ctx->DrawBuffer->Visual.alphaBits;
+ break;
+ case GL_ALPHA_SCALE:
+ params[0] = IROUND64(ctx->Pixel.AlphaScale);
+ break;
+ case GL_ALPHA_TEST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Color.AlphaEnabled);
+ break;
+ case GL_ALPHA_TEST_FUNC:
+ params[0] = ENUM_TO_INT64(ctx->Color.AlphaFunc);
+ break;
+ case GL_ALPHA_TEST_REF:
+ params[0] = FLOAT_TO_INT64(ctx->Color.AlphaRef);
+ break;
+ case GL_ATTRIB_STACK_DEPTH:
+ params[0] = ctx->AttribStackDepth;
+ break;
+ case GL_AUTO_NORMAL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.AutoNormal);
+ break;
+ case GL_AUX_BUFFERS:
+ params[0] = ctx->DrawBuffer->Visual.numAuxBuffers;
+ break;
+ case GL_BLEND:
+ params[0] = BOOLEAN_TO_INT64(ctx->Color.BlendEnabled);
+ break;
+ case GL_BLEND_DST:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendDstRGB);
+ break;
+ case GL_BLEND_SRC:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcRGB);
+ break;
+ case GL_BLEND_SRC_RGB_EXT:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcRGB);
+ break;
+ case GL_BLEND_DST_RGB_EXT:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendDstRGB);
+ break;
+ case GL_BLEND_SRC_ALPHA_EXT:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendSrcA);
+ break;
+ case GL_BLEND_DST_ALPHA_EXT:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendDstA);
+ break;
+ case GL_BLEND_EQUATION:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendEquationRGB );
+ break;
+ case GL_BLEND_EQUATION_ALPHA_EXT:
+ params[0] = ENUM_TO_INT64(ctx->Color.BlendEquationA );
+ break;
+ case GL_BLEND_COLOR_EXT:
+ params[0] = FLOAT_TO_INT64(ctx->Color.BlendColor[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Color.BlendColor[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Color.BlendColor[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Color.BlendColor[3]);
+ break;
+ case GL_BLUE_BIAS:
+ params[0] = IROUND64(ctx->Pixel.BlueBias);
+ break;
+ case GL_BLUE_BITS:
+ params[0] = ctx->DrawBuffer->Visual.blueBits;
+ break;
+ case GL_BLUE_SCALE:
+ params[0] = IROUND64(ctx->Pixel.BlueScale);
+ break;
+ case GL_CLIENT_ATTRIB_STACK_DEPTH:
+ params[0] = ctx->ClientAttribStackDepth;
+ break;
+ case GL_CLIP_PLANE0:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 0) & 1);
+ break;
+ case GL_CLIP_PLANE1:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 1) & 1);
+ break;
+ case GL_CLIP_PLANE2:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 2) & 1);
+ break;
+ case GL_CLIP_PLANE3:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 3) & 1);
+ break;
+ case GL_CLIP_PLANE4:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 4) & 1);
+ break;
+ case GL_CLIP_PLANE5:
+ params[0] = BOOLEAN_TO_INT64((ctx->Transform.ClipPlanesEnabled >> 5) & 1);
+ break;
+ case GL_COLOR_CLEAR_VALUE:
+ params[0] = FLOAT_TO_INT64(ctx->Color.ClearColor[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Color.ClearColor[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Color.ClearColor[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Color.ClearColor[3]);
+ break;
+ case GL_COLOR_MATERIAL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.ColorMaterialEnabled);
+ break;
+ case GL_COLOR_MATERIAL_FACE:
+ params[0] = ENUM_TO_INT64(ctx->Light.ColorMaterialFace);
+ break;
+ case GL_COLOR_MATERIAL_PARAMETER:
+ params[0] = ENUM_TO_INT64(ctx->Light.ColorMaterialMode);
+ break;
+ case GL_COLOR_WRITEMASK:
+ params[0] = ctx->Color.ColorMask[RCOMP] ? 1 : 0;
+ params[1] = ctx->Color.ColorMask[GCOMP] ? 1 : 0;
+ params[2] = ctx->Color.ColorMask[BCOMP] ? 1 : 0;
+ params[3] = ctx->Color.ColorMask[ACOMP] ? 1 : 0;
+ break;
+ case GL_CULL_FACE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.CullFlag);
+ break;
+ case GL_CULL_FACE_MODE:
+ params[0] = ENUM_TO_INT64(ctx->Polygon.CullFaceMode);
+ break;
+ case GL_CURRENT_COLOR:
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
+ params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
+ params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
+ params[3] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
+ }
+ break;
+ case GL_CURRENT_INDEX:
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]);
+ }
+ break;
+ case GL_CURRENT_NORMAL:
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
+ params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
+ params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
+ }
+ break;
+ case GL_CURRENT_RASTER_COLOR:
+ params[0] = FLOAT_TO_INT64(ctx->Current.RasterColor[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Current.RasterColor[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Current.RasterColor[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Current.RasterColor[3]);
+ break;
+ case GL_CURRENT_RASTER_DISTANCE:
+ params[0] = IROUND64(ctx->Current.RasterDistance);
+ break;
+ case GL_CURRENT_RASTER_INDEX:
+ params[0] = IROUND64(ctx->Current.RasterIndex);
+ break;
+ case GL_CURRENT_RASTER_POSITION:
+ params[0] = IROUND64(ctx->Current.RasterPos[0]);
+ params[1] = IROUND64(ctx->Current.RasterPos[1]);
+ params[2] = IROUND64(ctx->Current.RasterPos[2]);
+ params[3] = IROUND64(ctx->Current.RasterPos[3]);
+ break;
+ case GL_CURRENT_RASTER_SECONDARY_COLOR:
+ params[0] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Current.RasterSecondaryColor[3]);
+ break;
+ case GL_CURRENT_RASTER_TEXTURE_COORDS:
+ {
+ const GLuint texUnit = ctx->Texture.CurrentUnit;
+ params[0] = IROUND64(ctx->Current.RasterTexCoords[texUnit][0]);
+ params[1] = IROUND64(ctx->Current.RasterTexCoords[texUnit][1]);
+ params[2] = IROUND64(ctx->Current.RasterTexCoords[texUnit][2]);
+ params[3] = IROUND64(ctx->Current.RasterTexCoords[texUnit][3]);
+ }
+ break;
+ case GL_CURRENT_RASTER_POSITION_VALID:
+ params[0] = BOOLEAN_TO_INT64(ctx->Current.RasterPosValid);
+ break;
+ case GL_CURRENT_TEXTURE_COORDS:
+ {
+ const GLuint texUnit = ctx->Texture.CurrentUnit;
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
+ params[1] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
+ params[2] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
+ params[3] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
+ }
+ break;
+ case GL_DEPTH_BIAS:
+ params[0] = IROUND64(ctx->Pixel.DepthBias);
+ break;
+ case GL_DEPTH_BITS:
+ params[0] = ctx->DrawBuffer->Visual.depthBits;
+ break;
+ case GL_DEPTH_CLEAR_VALUE:
+ params[0] = FLOAT_TO_INT64(((GLfloat) ctx->Depth.Clear));
+ break;
+ case GL_DEPTH_FUNC:
+ params[0] = ENUM_TO_INT64(ctx->Depth.Func);
+ break;
+ case GL_DEPTH_RANGE:
+ params[0] = FLOAT_TO_INT64(ctx->Viewport.Near);
+ params[1] = FLOAT_TO_INT64(ctx->Viewport.Far);
+ break;
+ case GL_DEPTH_SCALE:
+ params[0] = IROUND64(ctx->Pixel.DepthScale);
+ break;
+ case GL_DEPTH_TEST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Depth.Test);
+ break;
+ case GL_DEPTH_WRITEMASK:
+ params[0] = BOOLEAN_TO_INT64(ctx->Depth.Mask);
+ break;
+ case GL_DITHER:
+ params[0] = BOOLEAN_TO_INT64(ctx->Color.DitherFlag);
+ break;
+ case GL_DOUBLEBUFFER:
+ params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.doubleBufferMode);
+ break;
+ case GL_DRAW_BUFFER:
+ params[0] = ENUM_TO_INT64(ctx->DrawBuffer->ColorDrawBuffer[0]);
+ break;
+ case GL_EDGE_FLAG:
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = BOOLEAN_TO_INT64((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0));
+ }
+ break;
+ case GL_FEEDBACK_BUFFER_SIZE:
+ params[0] = ctx->Feedback.BufferSize;
+ break;
+ case GL_FEEDBACK_BUFFER_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Feedback.Type);
+ break;
+ case GL_FOG:
+ params[0] = BOOLEAN_TO_INT64(ctx->Fog.Enabled);
+ break;
+ case GL_FOG_COLOR:
+ params[0] = FLOAT_TO_INT64(ctx->Fog.Color[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Fog.Color[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Fog.Color[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Fog.Color[3]);
+ break;
+ case GL_FOG_DENSITY:
+ params[0] = IROUND64(ctx->Fog.Density);
+ break;
+ case GL_FOG_END:
+ params[0] = IROUND64(ctx->Fog.End);
+ break;
+ case GL_FOG_HINT:
+ params[0] = ENUM_TO_INT64(ctx->Hint.Fog);
+ break;
+ case GL_FOG_INDEX:
+ params[0] = IROUND64(ctx->Fog.Index);
+ break;
+ case GL_FOG_MODE:
+ params[0] = ENUM_TO_INT64(ctx->Fog.Mode);
+ break;
+ case GL_FOG_START:
+ params[0] = IROUND64(ctx->Fog.Start);
+ break;
+ case GL_FRONT_FACE:
+ params[0] = ENUM_TO_INT64(ctx->Polygon.FrontFace);
+ break;
+ case GL_GREEN_BIAS:
+ params[0] = IROUND64(ctx->Pixel.GreenBias);
+ break;
+ case GL_GREEN_BITS:
+ params[0] = ctx->DrawBuffer->Visual.greenBits;
+ break;
+ case GL_GREEN_SCALE:
+ params[0] = IROUND64(ctx->Pixel.GreenScale);
+ break;
+ case GL_INDEX_BITS:
+ params[0] = ctx->DrawBuffer->Visual.indexBits;
+ break;
+ case GL_INDEX_CLEAR_VALUE:
+ params[0] = ctx->Color.ClearIndex;
+ break;
+ case GL_INDEX_MODE:
+ params[0] = BOOLEAN_TO_INT64(!ctx->DrawBuffer->Visual.rgbMode);
+ break;
+ case GL_INDEX_OFFSET:
+ params[0] = ctx->Pixel.IndexOffset;
+ break;
+ case GL_INDEX_SHIFT:
+ params[0] = ctx->Pixel.IndexShift;
+ break;
+ case GL_INDEX_WRITEMASK:
+ params[0] = ctx->Color.IndexMask;
+ break;
+ case GL_LIGHT0:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[0].Enabled);
+ break;
+ case GL_LIGHT1:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[1].Enabled);
+ break;
+ case GL_LIGHT2:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[2].Enabled);
+ break;
+ case GL_LIGHT3:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[3].Enabled);
+ break;
+ case GL_LIGHT4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[4].Enabled);
+ break;
+ case GL_LIGHT5:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[5].Enabled);
+ break;
+ case GL_LIGHT6:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[6].Enabled);
+ break;
+ case GL_LIGHT7:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Light[7].Enabled);
+ break;
+ case GL_LIGHTING:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Enabled);
+ break;
+ case GL_LIGHT_MODEL_AMBIENT:
+ params[0] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[0]);
+ params[1] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[1]);
+ params[2] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[2]);
+ params[3] = FLOAT_TO_INT64(ctx->Light.Model.Ambient[3]);
+ break;
+ case GL_LIGHT_MODEL_COLOR_CONTROL:
+ params[0] = ENUM_TO_INT64(ctx->Light.Model.ColorControl);
+ break;
+ case GL_LIGHT_MODEL_LOCAL_VIEWER:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Model.LocalViewer);
+ break;
+ case GL_LIGHT_MODEL_TWO_SIDE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.Model.TwoSide);
+ break;
+ case GL_LINE_SMOOTH:
+ params[0] = BOOLEAN_TO_INT64(ctx->Line.SmoothFlag);
+ break;
+ case GL_LINE_SMOOTH_HINT:
+ params[0] = ENUM_TO_INT64(ctx->Hint.LineSmooth);
+ break;
+ case GL_LINE_STIPPLE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Line.StippleFlag);
+ break;
+ case GL_LINE_STIPPLE_PATTERN:
+ params[0] = ctx->Line.StipplePattern;
+ break;
+ case GL_LINE_STIPPLE_REPEAT:
+ params[0] = ctx->Line.StippleFactor;
+ break;
+ case GL_LINE_WIDTH:
+ params[0] = IROUND64(ctx->Line.Width);
+ break;
+ case GL_LINE_WIDTH_GRANULARITY:
+ params[0] = IROUND64(ctx->Const.LineWidthGranularity);
+ break;
+ case GL_LINE_WIDTH_RANGE:
+ params[0] = IROUND64(ctx->Const.MinLineWidthAA);
+ params[1] = IROUND64(ctx->Const.MaxLineWidthAA);
+ break;
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ params[0] = IROUND64(ctx->Const.MinLineWidth);
+ params[1] = IROUND64(ctx->Const.MaxLineWidth);
+ break;
+ case GL_LIST_BASE:
+ params[0] = ctx->List.ListBase;
+ break;
+ case GL_LIST_INDEX:
+ params[0] = (ctx->ListState.CurrentList ? ctx->ListState.CurrentList->Name : 0);
+ break;
+ case GL_LIST_MODE:
+ {
+ GLenum mode;
+ if (!ctx->CompileFlag)
+ mode = 0;
+ else if (ctx->ExecuteFlag)
+ mode = GL_COMPILE_AND_EXECUTE;
+ else
+ mode = GL_COMPILE;
+ params[0] = ENUM_TO_INT64(mode);
+ }
+ break;
+ case GL_INDEX_LOGIC_OP:
+ params[0] = BOOLEAN_TO_INT64(ctx->Color.IndexLogicOpEnabled);
+ break;
+ case GL_COLOR_LOGIC_OP:
+ params[0] = BOOLEAN_TO_INT64(ctx->Color.ColorLogicOpEnabled);
+ break;
+ case GL_LOGIC_OP_MODE:
+ params[0] = ENUM_TO_INT64(ctx->Color.LogicOp);
+ break;
+ case GL_MAP1_COLOR_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Color4);
+ break;
+ case GL_MAP1_GRID_DOMAIN:
+ params[0] = IROUND64(ctx->Eval.MapGrid1u1);
+ params[1] = IROUND64(ctx->Eval.MapGrid1u2);
+ break;
+ case GL_MAP1_GRID_SEGMENTS:
+ params[0] = ctx->Eval.MapGrid1un;
+ break;
+ case GL_MAP1_INDEX:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Index);
+ break;
+ case GL_MAP1_NORMAL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Normal);
+ break;
+ case GL_MAP1_TEXTURE_COORD_1:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord1);
+ break;
+ case GL_MAP1_TEXTURE_COORD_2:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord2);
+ break;
+ case GL_MAP1_TEXTURE_COORD_3:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord3);
+ break;
+ case GL_MAP1_TEXTURE_COORD_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1TextureCoord4);
+ break;
+ case GL_MAP1_VERTEX_3:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Vertex3);
+ break;
+ case GL_MAP1_VERTEX_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Vertex4);
+ break;
+ case GL_MAP2_COLOR_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Color4);
+ break;
+ case GL_MAP2_GRID_DOMAIN:
+ params[0] = IROUND64(ctx->Eval.MapGrid2u1);
+ params[1] = IROUND64(ctx->Eval.MapGrid2u2);
+ params[2] = IROUND64(ctx->Eval.MapGrid2v1);
+ params[3] = IROUND64(ctx->Eval.MapGrid2v2);
+ break;
+ case GL_MAP2_GRID_SEGMENTS:
+ params[0] = ctx->Eval.MapGrid2un;
+ params[1] = ctx->Eval.MapGrid2vn;
+ break;
+ case GL_MAP2_INDEX:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Index);
+ break;
+ case GL_MAP2_NORMAL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Normal);
+ break;
+ case GL_MAP2_TEXTURE_COORD_1:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord1);
+ break;
+ case GL_MAP2_TEXTURE_COORD_2:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord2);
+ break;
+ case GL_MAP2_TEXTURE_COORD_3:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord3);
+ break;
+ case GL_MAP2_TEXTURE_COORD_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2TextureCoord4);
+ break;
+ case GL_MAP2_VERTEX_3:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Vertex3);
+ break;
+ case GL_MAP2_VERTEX_4:
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map2Vertex4);
+ break;
+ case GL_MAP_COLOR:
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MapColorFlag);
+ break;
+ case GL_MAP_STENCIL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MapStencilFlag);
+ break;
+ case GL_MATRIX_MODE:
+ params[0] = ENUM_TO_INT64(ctx->Transform.MatrixMode);
+ break;
+ case GL_MAX_ATTRIB_STACK_DEPTH:
+ params[0] = MAX_ATTRIB_STACK_DEPTH;
+ break;
+ case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
+ params[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH;
+ break;
+ case GL_MAX_CLIP_PLANES:
+ params[0] = ctx->Const.MaxClipPlanes;
+ break;
+ case GL_MAX_ELEMENTS_VERTICES:
+ params[0] = ctx->Const.MaxArrayLockSize;
+ break;
+ case GL_MAX_ELEMENTS_INDICES:
+ params[0] = ctx->Const.MaxArrayLockSize;
+ break;
+ case GL_MAX_EVAL_ORDER:
+ params[0] = MAX_EVAL_ORDER;
+ break;
+ case GL_MAX_LIGHTS:
+ params[0] = ctx->Const.MaxLights;
+ break;
+ case GL_MAX_LIST_NESTING:
+ params[0] = MAX_LIST_NESTING;
+ break;
+ case GL_MAX_MODELVIEW_STACK_DEPTH:
+ params[0] = MAX_MODELVIEW_STACK_DEPTH;
+ break;
+ case GL_MAX_NAME_STACK_DEPTH:
+ params[0] = MAX_NAME_STACK_DEPTH;
+ break;
+ case GL_MAX_PIXEL_MAP_TABLE:
+ params[0] = MAX_PIXEL_MAP_TABLE;
+ break;
+ case GL_MAX_PROJECTION_STACK_DEPTH:
+ params[0] = MAX_PROJECTION_STACK_DEPTH;
+ break;
+ case GL_MAX_TEXTURE_SIZE:
+ params[0] = 1 << (ctx->Const.MaxTextureLevels - 1);
+ break;
+ case GL_MAX_3D_TEXTURE_SIZE:
+ params[0] = 1 << (ctx->Const.Max3DTextureLevels - 1);
+ break;
+ case GL_MAX_TEXTURE_STACK_DEPTH:
+ params[0] = MAX_TEXTURE_STACK_DEPTH;
+ break;
+ case GL_MAX_VIEWPORT_DIMS:
+ params[0] = ctx->Const.MaxViewportWidth;
+ params[1] = ctx->Const.MaxViewportHeight;
+ break;
+ case GL_MODELVIEW_MATRIX:
+ {
+ const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[1]);
+ params[2] = IROUND64(matrix[2]);
+ params[3] = IROUND64(matrix[3]);
+ params[4] = IROUND64(matrix[4]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[6]);
+ params[7] = IROUND64(matrix[7]);
+ params[8] = IROUND64(matrix[8]);
+ params[9] = IROUND64(matrix[9]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[11]);
+ params[12] = IROUND64(matrix[12]);
+ params[13] = IROUND64(matrix[13]);
+ params[14] = IROUND64(matrix[14]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_MODELVIEW_STACK_DEPTH:
+ params[0] = ctx->ModelviewMatrixStack.Depth + 1;
+ break;
+ case GL_NAME_STACK_DEPTH:
+ params[0] = ctx->Select.NameStackDepth;
+ break;
+ case GL_NORMALIZE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Transform.Normalize);
+ break;
+ case GL_PACK_ALIGNMENT:
+ params[0] = ctx->Pack.Alignment;
+ break;
+ case GL_PACK_LSB_FIRST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Pack.LsbFirst);
+ break;
+ case GL_PACK_ROW_LENGTH:
+ params[0] = ctx->Pack.RowLength;
+ break;
+ case GL_PACK_SKIP_PIXELS:
+ params[0] = ctx->Pack.SkipPixels;
+ break;
+ case GL_PACK_SKIP_ROWS:
+ params[0] = ctx->Pack.SkipRows;
+ break;
+ case GL_PACK_SWAP_BYTES:
+ params[0] = BOOLEAN_TO_INT64(ctx->Pack.SwapBytes);
+ break;
+ case GL_PACK_SKIP_IMAGES_EXT:
+ params[0] = ctx->Pack.SkipImages;
+ break;
+ case GL_PACK_IMAGE_HEIGHT_EXT:
+ params[0] = ctx->Pack.ImageHeight;
+ break;
+ case GL_PACK_INVERT_MESA:
+ params[0] = BOOLEAN_TO_INT64(ctx->Pack.Invert);
+ break;
+ case GL_PERSPECTIVE_CORRECTION_HINT:
+ params[0] = ENUM_TO_INT64(ctx->Hint.PerspectiveCorrection);
+ break;
+ case GL_PIXEL_MAP_A_TO_A_SIZE:
+ params[0] = ctx->PixelMaps.AtoA.Size;
+ break;
+ case GL_PIXEL_MAP_B_TO_B_SIZE:
+ params[0] = ctx->PixelMaps.BtoB.Size;
+ break;
+ case GL_PIXEL_MAP_G_TO_G_SIZE:
+ params[0] = ctx->PixelMaps.GtoG.Size;
+ break;
+ case GL_PIXEL_MAP_I_TO_A_SIZE:
+ params[0] = ctx->PixelMaps.ItoA.Size;
+ break;
+ case GL_PIXEL_MAP_I_TO_B_SIZE:
+ params[0] = ctx->PixelMaps.ItoB.Size;
+ break;
+ case GL_PIXEL_MAP_I_TO_G_SIZE:
+ params[0] = ctx->PixelMaps.ItoG.Size;
+ break;
+ case GL_PIXEL_MAP_I_TO_I_SIZE:
+ params[0] = ctx->PixelMaps.ItoI.Size;
+ break;
+ case GL_PIXEL_MAP_I_TO_R_SIZE:
+ params[0] = ctx->PixelMaps.ItoR.Size;
+ break;
+ case GL_PIXEL_MAP_R_TO_R_SIZE:
+ params[0] = ctx->PixelMaps.RtoR.Size;
+ break;
+ case GL_PIXEL_MAP_S_TO_S_SIZE:
+ params[0] = ctx->PixelMaps.StoS.Size;
+ break;
+ case GL_POINT_SIZE:
+ params[0] = IROUND64(ctx->Point.Size);
+ break;
+ case GL_POINT_SIZE_GRANULARITY:
+ params[0] = IROUND64(ctx->Const.PointSizeGranularity);
+ break;
+ case GL_POINT_SIZE_RANGE:
+ params[0] = IROUND64(ctx->Const.MinPointSizeAA);
+ params[1] = IROUND64(ctx->Const.MaxPointSizeAA);
+ break;
+ case GL_ALIASED_POINT_SIZE_RANGE:
+ params[0] = IROUND64(ctx->Const.MinPointSize);
+ params[1] = IROUND64(ctx->Const.MaxPointSize);
+ break;
+ case GL_POINT_SMOOTH:
+ params[0] = BOOLEAN_TO_INT64(ctx->Point.SmoothFlag);
+ break;
+ case GL_POINT_SMOOTH_HINT:
+ params[0] = ENUM_TO_INT64(ctx->Hint.PointSmooth);
+ break;
+ case GL_POINT_SIZE_MIN_EXT:
+ params[0] = IROUND64(ctx->Point.MinSize);
+ break;
+ case GL_POINT_SIZE_MAX_EXT:
+ params[0] = IROUND64(ctx->Point.MaxSize);
+ break;
+ case GL_POINT_FADE_THRESHOLD_SIZE_EXT:
+ params[0] = IROUND64(ctx->Point.Threshold);
+ break;
+ case GL_DISTANCE_ATTENUATION_EXT:
+ params[0] = IROUND64(ctx->Point.Params[0]);
+ params[1] = IROUND64(ctx->Point.Params[1]);
+ params[2] = IROUND64(ctx->Point.Params[2]);
+ break;
+ case GL_POLYGON_MODE:
+ params[0] = ENUM_TO_INT64(ctx->Polygon.FrontMode);
+ params[1] = ENUM_TO_INT64(ctx->Polygon.BackMode);
+ break;
+ case GL_POLYGON_OFFSET_BIAS_EXT:
+ params[0] = IROUND64(ctx->Polygon.OffsetUnits);
+ break;
+ case GL_POLYGON_OFFSET_FACTOR:
+ params[0] = IROUND64(ctx->Polygon.OffsetFactor );
+ break;
+ case GL_POLYGON_OFFSET_UNITS:
+ params[0] = IROUND64(ctx->Polygon.OffsetUnits );
+ break;
+ case GL_POLYGON_OFFSET_POINT:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetPoint);
+ break;
+ case GL_POLYGON_OFFSET_LINE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetLine);
+ break;
+ case GL_POLYGON_OFFSET_FILL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.OffsetFill);
+ break;
+ case GL_POLYGON_SMOOTH:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.SmoothFlag);
+ break;
+ case GL_POLYGON_SMOOTH_HINT:
+ params[0] = ENUM_TO_INT64(ctx->Hint.PolygonSmooth);
+ break;
+ case GL_POLYGON_STIPPLE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Polygon.StippleFlag);
+ break;
+ case GL_PROJECTION_MATRIX:
+ {
+ const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[1]);
+ params[2] = IROUND64(matrix[2]);
+ params[3] = IROUND64(matrix[3]);
+ params[4] = IROUND64(matrix[4]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[6]);
+ params[7] = IROUND64(matrix[7]);
+ params[8] = IROUND64(matrix[8]);
+ params[9] = IROUND64(matrix[9]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[11]);
+ params[12] = IROUND64(matrix[12]);
+ params[13] = IROUND64(matrix[13]);
+ params[14] = IROUND64(matrix[14]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_PROJECTION_STACK_DEPTH:
+ params[0] = ctx->ProjectionMatrixStack.Depth + 1;
+ break;
+ case GL_READ_BUFFER:
+ params[0] = ENUM_TO_INT64(ctx->ReadBuffer->ColorReadBuffer);
+ break;
+ case GL_RED_BIAS:
+ params[0] = IROUND64(ctx->Pixel.RedBias);
+ break;
+ case GL_RED_BITS:
+ params[0] = ctx->DrawBuffer->Visual.redBits;
+ break;
+ case GL_RED_SCALE:
+ params[0] = IROUND64(ctx->Pixel.RedScale);
+ break;
+ case GL_RENDER_MODE:
+ params[0] = ENUM_TO_INT64(ctx->RenderMode);
+ break;
+ case GL_RESCALE_NORMAL:
+ params[0] = BOOLEAN_TO_INT64(ctx->Transform.RescaleNormals);
+ break;
+ case GL_RGBA_MODE:
+ params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.rgbMode);
+ break;
+ case GL_SCISSOR_BOX:
+ params[0] = ctx->Scissor.X;
+ params[1] = ctx->Scissor.Y;
+ params[2] = ctx->Scissor.Width;
+ params[3] = ctx->Scissor.Height;
+ break;
+ case GL_SCISSOR_TEST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Scissor.Enabled);
+ break;
+ case GL_SELECTION_BUFFER_SIZE:
+ params[0] = ctx->Select.BufferSize;
+ break;
+ case GL_SHADE_MODEL:
+ params[0] = ENUM_TO_INT64(ctx->Light.ShadeModel);
+ break;
+ case GL_SHARED_TEXTURE_PALETTE_EXT:
+ params[0] = BOOLEAN_TO_INT64(ctx->Texture.SharedPalette);
+ break;
+ case GL_STENCIL_BITS:
+ params[0] = ctx->DrawBuffer->Visual.stencilBits;
+ break;
+ case GL_STENCIL_CLEAR_VALUE:
+ params[0] = ctx->Stencil.Clear;
+ break;
+ case GL_STENCIL_FAIL:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]);
+ break;
+ case GL_STENCIL_FUNC:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.Function[ctx->Stencil.ActiveFace]);
+ break;
+ case GL_STENCIL_PASS_DEPTH_FAIL:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]);
+ break;
+ case GL_STENCIL_PASS_DEPTH_PASS:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]);
+ break;
+ case GL_STENCIL_REF:
+ params[0] = ctx->Stencil.Ref[ctx->Stencil.ActiveFace];
+ break;
+ case GL_STENCIL_TEST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Stencil.Enabled);
+ break;
+ case GL_STENCIL_VALUE_MASK:
+ params[0] = ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace];
+ break;
+ case GL_STENCIL_WRITEMASK:
+ params[0] = ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace];
+ break;
+ case GL_STEREO:
+ params[0] = BOOLEAN_TO_INT64(ctx->DrawBuffer->Visual.stereoMode);
+ break;
+ case GL_SUBPIXEL_BITS:
+ params[0] = ctx->Const.SubPixelBits;
+ break;
+ case GL_TEXTURE_1D:
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D));
+ break;
+ case GL_TEXTURE_2D:
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D));
+ break;
+ case GL_TEXTURE_3D:
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_3D));
+ break;
+ case GL_TEXTURE_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT));
+ break;
+ case GL_TEXTURE_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT));
+ break;
+ case GL_TEXTURE_BINDING_1D:
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_INDEX]->Name;
+ break;
+ case GL_TEXTURE_BINDING_2D:
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name;
+ break;
+ case GL_TEXTURE_BINDING_3D:
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name;
+ break;
+ case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetInteger64v");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_1D_ARRAY_INDEX]->Name;
+ break;
+ case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
+ CHECK_EXT1(MESA_texture_array, "GetInteger64v");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_ARRAY_INDEX]->Name;
+ break;
+ case GL_TEXTURE_GEN_S:
+ params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0));
+ break;
+ case GL_TEXTURE_GEN_T:
+ params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0));
+ break;
+ case GL_TEXTURE_GEN_R:
+ params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0));
+ break;
+ case GL_TEXTURE_GEN_Q:
+ params[0] = BOOLEAN_TO_INT64(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0));
+ break;
+ case GL_TEXTURE_MATRIX:
+ {
+ const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[1]);
+ params[2] = IROUND64(matrix[2]);
+ params[3] = IROUND64(matrix[3]);
+ params[4] = IROUND64(matrix[4]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[6]);
+ params[7] = IROUND64(matrix[7]);
+ params[8] = IROUND64(matrix[8]);
+ params[9] = IROUND64(matrix[9]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[11]);
+ params[12] = IROUND64(matrix[12]);
+ params[13] = IROUND64(matrix[13]);
+ params[14] = IROUND64(matrix[14]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_TEXTURE_STACK_DEPTH:
+ params[0] = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1;
+ break;
+ case GL_UNPACK_ALIGNMENT:
+ params[0] = ctx->Unpack.Alignment;
+ break;
+ case GL_UNPACK_LSB_FIRST:
+ params[0] = BOOLEAN_TO_INT64(ctx->Unpack.LsbFirst);
+ break;
+ case GL_UNPACK_ROW_LENGTH:
+ params[0] = ctx->Unpack.RowLength;
+ break;
+ case GL_UNPACK_SKIP_PIXELS:
+ params[0] = ctx->Unpack.SkipPixels;
+ break;
+ case GL_UNPACK_SKIP_ROWS:
+ params[0] = ctx->Unpack.SkipRows;
+ break;
+ case GL_UNPACK_SWAP_BYTES:
+ params[0] = BOOLEAN_TO_INT64(ctx->Unpack.SwapBytes);
+ break;
+ case GL_UNPACK_SKIP_IMAGES_EXT:
+ params[0] = ctx->Unpack.SkipImages;
+ break;
+ case GL_UNPACK_IMAGE_HEIGHT_EXT:
+ params[0] = ctx->Unpack.ImageHeight;
+ break;
+ case GL_UNPACK_CLIENT_STORAGE_APPLE:
+ params[0] = BOOLEAN_TO_INT64(ctx->Unpack.ClientStorage);
+ break;
+ case GL_VIEWPORT:
+ params[0] = ctx->Viewport.X;
+ params[1] = ctx->Viewport.Y;
+ params[2] = ctx->Viewport.Width;
+ params[3] = ctx->Viewport.Height;
+ break;
+ case GL_ZOOM_X:
+ params[0] = IROUND64(ctx->Pixel.ZoomX);
+ break;
+ case GL_ZOOM_Y:
+ params[0] = IROUND64(ctx->Pixel.ZoomY);
+ break;
+ case GL_VERTEX_ARRAY:
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Vertex.Enabled);
+ break;
+ case GL_VERTEX_ARRAY_SIZE:
+ params[0] = ctx->Array.ArrayObj->Vertex.Size;
+ break;
+ case GL_VERTEX_ARRAY_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Vertex.Type);
+ break;
+ case GL_VERTEX_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->Vertex.Stride;
+ break;
+ case GL_VERTEX_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_NORMAL_ARRAY:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Normal.Enabled);
+ break;
+ case GL_NORMAL_ARRAY_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Normal.Type);
+ break;
+ case GL_NORMAL_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->Normal.Stride;
+ break;
+ case GL_NORMAL_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_COLOR_ARRAY:
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Color.Enabled);
+ break;
+ case GL_COLOR_ARRAY_SIZE:
+ params[0] = ctx->Array.ArrayObj->Color.Size;
+ break;
+ case GL_COLOR_ARRAY_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Color.Type);
+ break;
+ case GL_COLOR_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->Color.Stride;
+ break;
+ case GL_COLOR_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_INDEX_ARRAY:
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->Index.Enabled);
+ break;
+ case GL_INDEX_ARRAY_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->Index.Type);
+ break;
+ case GL_INDEX_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->Index.Stride;
+ break;
+ case GL_INDEX_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_TEXTURE_COORD_ARRAY:
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled);
+ break;
+ case GL_TEXTURE_COORD_ARRAY_SIZE:
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size;
+ break;
+ case GL_TEXTURE_COORD_ARRAY_TYPE:
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type);
+ break;
+ case GL_TEXTURE_COORD_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride;
+ break;
+ case GL_TEXTURE_COORD_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_EDGE_FLAG_ARRAY:
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->EdgeFlag.Enabled);
+ break;
+ case GL_EDGE_FLAG_ARRAY_STRIDE:
+ params[0] = ctx->Array.ArrayObj->EdgeFlag.Stride;
+ break;
+ case GL_EDGE_FLAG_ARRAY_COUNT_EXT:
+ params[0] = 0;
+ break;
+ case GL_MAX_TEXTURE_UNITS_ARB:
+ CHECK_EXT1(ARB_multitexture, "GetInteger64v");
+ params[0] = ctx->Const.MaxTextureUnits;
+ break;
+ case GL_ACTIVE_TEXTURE_ARB:
+ CHECK_EXT1(ARB_multitexture, "GetInteger64v");
+ params[0] = GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit;
+ break;
+ case GL_CLIENT_ACTIVE_TEXTURE_ARB:
+ CHECK_EXT1(ARB_multitexture, "GetInteger64v");
+ params[0] = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture;
+ break;
+ case GL_TEXTURE_CUBE_MAP_ARB:
+ CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB));
+ break;
+ case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
+ CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name;
+ break;
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
+ CHECK_EXT1(ARB_texture_cube_map, "GetInteger64v");
+ params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1));
+ break;
+ case GL_TEXTURE_COMPRESSION_HINT_ARB:
+ params[0] = ctx->Hint.TextureCompression;
+ break;
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
+ params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE);
+ break;
+ case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
+ {
+ GLint formats[100];
+ GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
+ ASSERT(n <= 100);
+ for (i = 0; i < n; i++)
+ params[i] = ENUM_TO_INT64(formats[i]);
+ }
+ break;
+ case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
+ CHECK_EXT1(EXT_compiled_vertex_array, "GetInteger64v");
+ params[0] = ctx->Array.LockFirst;
+ break;
+ case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT:
+ CHECK_EXT1(EXT_compiled_vertex_array, "GetInteger64v");
+ params[0] = ctx->Array.LockCount;
+ break;
+ case GL_TRANSPOSE_COLOR_MATRIX_ARB:
+ {
+ const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[4]);
+ params[2] = IROUND64(matrix[8]);
+ params[3] = IROUND64(matrix[12]);
+ params[4] = IROUND64(matrix[1]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[9]);
+ params[7] = IROUND64(matrix[13]);
+ params[8] = IROUND64(matrix[2]);
+ params[9] = IROUND64(matrix[6]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[14]);
+ params[12] = IROUND64(matrix[3]);
+ params[13] = IROUND64(matrix[7]);
+ params[14] = IROUND64(matrix[11]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
+ {
+ const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[4]);
+ params[2] = IROUND64(matrix[8]);
+ params[3] = IROUND64(matrix[12]);
+ params[4] = IROUND64(matrix[1]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[9]);
+ params[7] = IROUND64(matrix[13]);
+ params[8] = IROUND64(matrix[2]);
+ params[9] = IROUND64(matrix[6]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[14]);
+ params[12] = IROUND64(matrix[3]);
+ params[13] = IROUND64(matrix[7]);
+ params[14] = IROUND64(matrix[11]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_TRANSPOSE_PROJECTION_MATRIX_ARB:
+ {
+ const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[4]);
+ params[2] = IROUND64(matrix[8]);
+ params[3] = IROUND64(matrix[12]);
+ params[4] = IROUND64(matrix[1]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[9]);
+ params[7] = IROUND64(matrix[13]);
+ params[8] = IROUND64(matrix[2]);
+ params[9] = IROUND64(matrix[6]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[14]);
+ params[12] = IROUND64(matrix[3]);
+ params[13] = IROUND64(matrix[7]);
+ params[14] = IROUND64(matrix[11]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_TRANSPOSE_TEXTURE_MATRIX_ARB:
+ {
+ const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[4]);
+ params[2] = IROUND64(matrix[8]);
+ params[3] = IROUND64(matrix[12]);
+ params[4] = IROUND64(matrix[1]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[9]);
+ params[7] = IROUND64(matrix[13]);
+ params[8] = IROUND64(matrix[2]);
+ params[9] = IROUND64(matrix[6]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[14]);
+ params[12] = IROUND64(matrix[3]);
+ params[13] = IROUND64(matrix[7]);
+ params[14] = IROUND64(matrix[11]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_COLOR_MATRIX_SGI:
+ {
+ const GLfloat *matrix = ctx->ColorMatrixStack.Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[1]);
+ params[2] = IROUND64(matrix[2]);
+ params[3] = IROUND64(matrix[3]);
+ params[4] = IROUND64(matrix[4]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[6]);
+ params[7] = IROUND64(matrix[7]);
+ params[8] = IROUND64(matrix[8]);
+ params[9] = IROUND64(matrix[9]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[11]);
+ params[12] = IROUND64(matrix[12]);
+ params[13] = IROUND64(matrix[13]);
+ params[14] = IROUND64(matrix[14]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_COLOR_MATRIX_STACK_DEPTH_SGI:
+ params[0] = ctx->ColorMatrixStack.Depth + 1;
+ break;
+ case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI:
+ params[0] = MAX_COLOR_STACK_DEPTH;
+ break;
+ case GL_POST_COLOR_MATRIX_RED_SCALE_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[0]);
+ break;
+ case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[1]);
+ break;
+ case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[2]);
+ break;
+ case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixScale[3]);
+ break;
+ case GL_POST_COLOR_MATRIX_RED_BIAS_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[0]);
+ break;
+ case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[1]);
+ break;
+ case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[2]);
+ break;
+ case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI:
+ params[0] = IROUND64(ctx->Pixel.PostColorMatrixBias[3]);
+ break;
+ case GL_CONVOLUTION_1D_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Convolution1DEnabled);
+ break;
+ case GL_CONVOLUTION_2D_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Convolution2DEnabled);
+ break;
+ case GL_SEPARABLE_2D_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.Separable2DEnabled);
+ break;
+ case GL_POST_CONVOLUTION_RED_SCALE_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[0]);
+ break;
+ case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[1]);
+ break;
+ case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[2]);
+ break;
+ case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionScale[3]);
+ break;
+ case GL_POST_CONVOLUTION_RED_BIAS_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[0]);
+ break;
+ case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[1]);
+ break;
+ case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[2]);
+ break;
+ case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:
+ CHECK_EXT1(EXT_convolution, "GetInteger64v");
+ params[0] = IROUND64(ctx->Pixel.PostConvolutionBias[3]);
+ break;
+ case GL_HISTOGRAM:
+ CHECK_EXT1(EXT_histogram, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.HistogramEnabled);
+ break;
+ case GL_MINMAX:
+ CHECK_EXT1(EXT_histogram, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.MinMaxEnabled);
+ break;
+ case GL_COLOR_TABLE_SGI:
+ CHECK_EXT1(SGI_color_table, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]);
+ break;
+ case GL_POST_CONVOLUTION_COLOR_TABLE_SGI:
+ CHECK_EXT1(SGI_color_table, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]);
+ break;
+ case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI:
+ CHECK_EXT1(SGI_color_table, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]);
+ break;
+ case GL_TEXTURE_COLOR_TABLE_SGI:
+ CHECK_EXT1(SGI_texture_color_table, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled);
+ break;
+ case GL_COLOR_SUM_EXT:
+ CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Fog.ColorSumEnabled);
+ break;
+ case GL_CURRENT_SECONDARY_COLOR_EXT:
+ CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]);
+ params[1] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]);
+ params[2] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]);
+ params[3] = FLOAT_TO_INT64(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]);
+ }
+ break;
+ case GL_SECONDARY_COLOR_ARRAY_EXT:
+ CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->SecondaryColor.Enabled);
+ break;
+ case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT:
+ CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->SecondaryColor.Type);
+ break;
+ case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT:
+ CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.Stride;
+ break;
+ case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT:
+ CHECK_EXT1(EXT_secondary_color, "GetInteger64v");
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.Size;
+ break;
+ case GL_CURRENT_FOG_COORDINATE_EXT:
+ CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
+ {
+ FLUSH_CURRENT(ctx, 0);
+ params[0] = IROUND64(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]);
+ }
+ break;
+ case GL_FOG_COORDINATE_ARRAY_EXT:
+ CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->FogCoord.Enabled);
+ break;
+ case GL_FOG_COORDINATE_ARRAY_TYPE_EXT:
+ CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Array.ArrayObj->FogCoord.Type);
+ break;
+ case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT:
+ CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
+ params[0] = ctx->Array.ArrayObj->FogCoord.Stride;
+ break;
+ case GL_FOG_COORDINATE_SOURCE_EXT:
+ CHECK_EXT1(EXT_fog_coord, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Fog.FogCoordinateSource);
+ break;
+ case GL_MAX_TEXTURE_LOD_BIAS_EXT:
+ CHECK_EXT1(EXT_texture_lod_bias, "GetInteger64v");
+ params[0] = IROUND64(ctx->Const.MaxTextureLodBias);
+ break;
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ CHECK_EXT1(EXT_texture_filter_anisotropic, "GetInteger64v");
+ params[0] = IROUND64(ctx->Const.MaxTextureMaxAnisotropy);
+ break;
+ case GL_MULTISAMPLE_ARB:
+ params[0] = BOOLEAN_TO_INT64(ctx->Multisample.Enabled);
+ break;
+ case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
+ params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleAlphaToCoverage);
+ break;
+ case GL_SAMPLE_ALPHA_TO_ONE_ARB:
+ params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleAlphaToOne);
+ break;
+ case GL_SAMPLE_COVERAGE_ARB:
+ params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleCoverage);
+ break;
+ case GL_SAMPLE_COVERAGE_VALUE_ARB:
+ params[0] = IROUND64(ctx->Multisample.SampleCoverageValue);
+ break;
+ case GL_SAMPLE_COVERAGE_INVERT_ARB:
+ params[0] = BOOLEAN_TO_INT64(ctx->Multisample.SampleCoverageInvert);
+ break;
+ case GL_SAMPLE_BUFFERS_ARB:
+ params[0] = ctx->DrawBuffer->Visual.sampleBuffers;
+ break;
+ case GL_SAMPLES_ARB:
+ params[0] = ctx->DrawBuffer->Visual.samples;
+ break;
+ case GL_RASTER_POSITION_UNCLIPPED_IBM:
+ CHECK_EXT1(IBM_rasterpos_clip, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Transform.RasterPositionUnclipped);
+ break;
+ case GL_POINT_SPRITE_NV:
+ CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Point.PointSprite);
+ break;
+ case GL_POINT_SPRITE_R_MODE_NV:
+ CHECK_EXT1(NV_point_sprite, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Point.SpriteRMode);
+ break;
+ case GL_POINT_SPRITE_COORD_ORIGIN:
+ CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Point.SpriteOrigin);
+ break;
+ case GL_GENERATE_MIPMAP_HINT_SGIS:
+ CHECK_EXT1(SGIS_generate_mipmap, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Hint.GenerateMipmap);
+ break;
+ case GL_VERTEX_PROGRAM_BINDING_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = (ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY0_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[0].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY1_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[1].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY2_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[2].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY3_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[3].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[4].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY5_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[5].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY6_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[6].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY7_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[7].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY8_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[8].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY9_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[9].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY10_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[10].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY11_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[11].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY12_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[12].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY13_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[13].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY14_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[14].Enabled);
+ break;
+ case GL_VERTEX_ATTRIB_ARRAY15_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Array.ArrayObj->VertexAttrib[15].Enabled);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB0_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[0]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB1_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[1]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB2_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[2]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB3_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[3]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB4_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[4]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB5_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[5]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB6_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[6]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB7_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[7]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB8_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[8]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB9_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[9]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB10_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[10]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB11_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[11]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB12_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[12]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB13_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[13]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB14_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[14]);
+ break;
+ case GL_MAP1_VERTEX_ATTRIB15_4_NV:
+ CHECK_EXT1(NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Eval.Map1Attrib[15]);
+ break;
+ case GL_FRAGMENT_PROGRAM_NV:
+ CHECK_EXT1(NV_fragment_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->FragmentProgram.Enabled);
+ break;
+ case GL_FRAGMENT_PROGRAM_BINDING_NV:
+ CHECK_EXT1(NV_fragment_program, "GetInteger64v");
+ params[0] = ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0;
+ break;
+ case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV:
+ CHECK_EXT1(NV_fragment_program, "GetInteger64v");
+ params[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
+ break;
+ case GL_TEXTURE_RECTANGLE_NV:
+ CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV));
+ break;
+ case GL_TEXTURE_BINDING_RECTANGLE_NV:
+ CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
+ params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_RECT_INDEX]->Name;
+ break;
+ case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
+ CHECK_EXT1(NV_texture_rectangle, "GetInteger64v");
+ params[0] = ctx->Const.MaxTextureRectSize;
+ break;
+ case GL_STENCIL_TEST_TWO_SIDE_EXT:
+ CHECK_EXT1(EXT_stencil_two_side, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Stencil.TestTwoSide);
+ break;
+ case GL_ACTIVE_STENCIL_FACE_EXT:
+ CHECK_EXT1(EXT_stencil_two_side, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT);
+ break;
+ case GL_MAX_SHININESS_NV:
+ CHECK_EXT1(NV_light_max_exponent, "GetInteger64v");
+ params[0] = IROUND64(ctx->Const.MaxShininess);
+ break;
+ case GL_MAX_SPOT_EXPONENT_NV:
+ CHECK_EXT1(NV_light_max_exponent, "GetInteger64v");
+ params[0] = IROUND64(ctx->Const.MaxSpotExponent);
+ break;
+ case GL_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayBufferObj->Name;
+ break;
+ case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->Vertex.BufferObj->Name;
+ break;
+ case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->Normal.BufferObj->Name;
+ break;
+ case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->Color.BufferObj->Name;
+ break;
+ case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->Index.BufferObj->Name;
+ break;
+ case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name;
+ break;
+ case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name;
+ break;
+ case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name;
+ break;
+ case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ArrayObj->FogCoord.BufferObj->Name;
+ break;
+ case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
+ params[0] = ctx->Array.ElementArrayBufferObj->Name;
+ break;
+ case GL_PIXEL_PACK_BUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_pixel_buffer_object, "GetInteger64v");
+ params[0] = ctx->Pack.BufferObj->Name;
+ break;
+ case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_pixel_buffer_object, "GetInteger64v");
+ params[0] = ctx->Unpack.BufferObj->Name;
+ break;
+ case GL_VERTEX_PROGRAM_ARB:
+ CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.Enabled);
+ break;
+ case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
+ CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.PointSizeEnabled);
+ break;
+ case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
+ CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->VertexProgram.TwoSideEnabled);
+ break;
+ case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
+ CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
+ params[0] = ctx->Const.MaxProgramMatrixStackDepth;
+ break;
+ case GL_MAX_PROGRAM_MATRICES_ARB:
+ CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
+ params[0] = ctx->Const.MaxProgramMatrices;
+ break;
+ case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
+ CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->CurrentStack->Depth + 1);
+ break;
+ case GL_CURRENT_MATRIX_ARB:
+ CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetInteger64v");
+ {
+ const GLfloat *matrix = ctx->CurrentStack->Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[1]);
+ params[2] = IROUND64(matrix[2]);
+ params[3] = IROUND64(matrix[3]);
+ params[4] = IROUND64(matrix[4]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[6]);
+ params[7] = IROUND64(matrix[7]);
+ params[8] = IROUND64(matrix[8]);
+ params[9] = IROUND64(matrix[9]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[11]);
+ params[12] = IROUND64(matrix[12]);
+ params[13] = IROUND64(matrix[13]);
+ params[14] = IROUND64(matrix[14]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
+ CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetInteger64v");
+ {
+ const GLfloat *matrix = ctx->CurrentStack->Top->m;
+ params[0] = IROUND64(matrix[0]);
+ params[1] = IROUND64(matrix[4]);
+ params[2] = IROUND64(matrix[8]);
+ params[3] = IROUND64(matrix[12]);
+ params[4] = IROUND64(matrix[1]);
+ params[5] = IROUND64(matrix[5]);
+ params[6] = IROUND64(matrix[9]);
+ params[7] = IROUND64(matrix[13]);
+ params[8] = IROUND64(matrix[2]);
+ params[9] = IROUND64(matrix[6]);
+ params[10] = IROUND64(matrix[10]);
+ params[11] = IROUND64(matrix[14]);
+ params[12] = IROUND64(matrix[3]);
+ params[13] = IROUND64(matrix[7]);
+ params[14] = IROUND64(matrix[11]);
+ params[15] = IROUND64(matrix[15]);
+ }
+ break;
+ case GL_MAX_VERTEX_ATTRIBS_ARB:
+ CHECK_EXT1(ARB_vertex_program, "GetInteger64v");
+ params[0] = ctx->Const.VertexProgram.MaxAttribs;
+ break;
+ case GL_PROGRAM_ERROR_POSITION_ARB:
+ CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetInteger64v");
+ params[0] = ctx->Program.ErrorPos;
+ break;
+ case GL_FRAGMENT_PROGRAM_ARB:
+ CHECK_EXT1(ARB_fragment_program, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->FragmentProgram.Enabled);
+ break;
+ case GL_MAX_TEXTURE_COORDS_ARB:
+ CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetInteger64v");
+ params[0] = ctx->Const.MaxTextureCoordUnits;
+ break;
+ case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
+ CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetInteger64v");
+ params[0] = ctx->Const.MaxTextureImageUnits;
+ break;
+ case GL_DEPTH_BOUNDS_TEST_EXT:
+ CHECK_EXT1(EXT_depth_bounds_test, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Depth.BoundsTest);
+ break;
+ case GL_DEPTH_BOUNDS_EXT:
+ CHECK_EXT1(EXT_depth_bounds_test, "GetInteger64v");
+ params[0] = IROUND64(ctx->Depth.BoundsMin);
+ params[1] = IROUND64(ctx->Depth.BoundsMax);
+ break;
+ case GL_MAX_DRAW_BUFFERS_ARB:
+ params[0] = ctx->Const.MaxDrawBuffers;
+ break;
+ case GL_DRAW_BUFFER0_ARB:
+ params[0] = ENUM_TO_INT64(ctx->DrawBuffer->ColorDrawBuffer[0]);
+ break;
+ case GL_DRAW_BUFFER1_ARB:
+ {
+ GLenum buffer;
+ if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
+ return;
+ }
+ buffer = ctx->DrawBuffer->ColorDrawBuffer[1];
+ params[0] = ENUM_TO_INT64(buffer);
+ }
+ break;
+ case GL_DRAW_BUFFER2_ARB:
+ {
+ GLenum buffer;
+ if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
+ return;
+ }
+ buffer = ctx->DrawBuffer->ColorDrawBuffer[2];
+ params[0] = ENUM_TO_INT64(buffer);
+ }
+ break;
+ case GL_DRAW_BUFFER3_ARB:
+ {
+ GLenum buffer;
+ if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)");
+ return;
+ }
+ buffer = ctx->DrawBuffer->ColorDrawBuffer[3];
+ params[0] = ENUM_TO_INT64(buffer);
+ }
+ break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
+ CHECK_EXT1(OES_read_format, "GetInteger64v");
+ params[0] = ctx->Const.ColorReadType;
+ break;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
+ CHECK_EXT1(OES_read_format, "GetInteger64v");
+ params[0] = ctx->Const.ColorReadFormat;
+ break;
+ case GL_NUM_FRAGMENT_REGISTERS_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 6;
+ break;
+ case GL_NUM_FRAGMENT_CONSTANTS_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 8;
+ break;
+ case GL_NUM_PASSES_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 2;
+ break;
+ case GL_NUM_INSTRUCTIONS_PER_PASS_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 8;
+ break;
+ case GL_NUM_INSTRUCTIONS_TOTAL_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 16;
+ break;
+ case GL_COLOR_ALPHA_PAIRING_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(GL_TRUE);
+ break;
+ case GL_NUM_LOOPBACK_COMPONENTS_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 3;
+ break;
+ case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI:
+ CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
+ params[0] = 3;
+ break;
+ case GL_STENCIL_BACK_FUNC:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.Function[1]);
+ break;
+ case GL_STENCIL_BACK_VALUE_MASK:
+ params[0] = ctx->Stencil.ValueMask[1];
+ break;
+ case GL_STENCIL_BACK_WRITEMASK:
+ params[0] = ctx->Stencil.WriteMask[1];
+ break;
+ case GL_STENCIL_BACK_REF:
+ params[0] = ctx->Stencil.Ref[1];
+ break;
+ case GL_STENCIL_BACK_FAIL:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.FailFunc[1]);
+ break;
+ case GL_STENCIL_BACK_PASS_DEPTH_FAIL:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.ZFailFunc[1]);
+ break;
+ case GL_STENCIL_BACK_PASS_DEPTH_PASS:
+ params[0] = ENUM_TO_INT64(ctx->Stencil.ZPassFunc[1]);
+ break;
+ case GL_FRAMEBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
+ params[0] = ctx->DrawBuffer->Name;
+ break;
+ case GL_RENDERBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
+ params[0] = ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0;
+ break;
+ case GL_MAX_COLOR_ATTACHMENTS_EXT:
+ CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
+ params[0] = ctx->Const.MaxColorAttachments;
+ break;
+ case GL_MAX_RENDERBUFFER_SIZE_EXT:
+ CHECK_EXT1(EXT_framebuffer_object, "GetInteger64v");
+ params[0] = ctx->Const.MaxRenderbufferSize;
+ break;
+ case GL_READ_FRAMEBUFFER_BINDING_EXT:
+ CHECK_EXT1(EXT_framebuffer_blit, "GetInteger64v");
+ params[0] = ctx->ReadBuffer->Name;
+ break;
+ case GL_PROVOKING_VERTEX_EXT:
+ CHECK_EXT1(EXT_provoking_vertex, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Light.ProvokingVertex);
+ break;
+ case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
+ CHECK_EXT1(EXT_provoking_vertex, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Const.QuadsFollowProvokingVertexConvention);
+ break;
+ case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
+ CHECK_EXT1(ARB_fragment_shader, "GetInteger64v");
+ params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;
+ break;
+ case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB:
+ CHECK_EXT1(ARB_fragment_shader, "GetInteger64v");
+ params[0] = ENUM_TO_INT64(ctx->Hint.FragmentShaderDerivative);
+ break;
+ case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB:
+ CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
+ params[0] = ctx->Const.VertexProgram.MaxUniformComponents;
+ break;
+ case GL_MAX_VARYING_FLOATS_ARB:
+ CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
+ params[0] = ctx->Const.MaxVarying * 4;
+ break;
+ case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB:
+ CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
+ params[0] = ctx->Const.MaxVertexTextureImageUnits;
+ break;
+ case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB:
+ CHECK_EXT1(ARB_vertex_shader, "GetInteger64v");
+ params[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
+ break;
+ case GL_CURRENT_PROGRAM:
+ CHECK_EXT1(ARB_shader_objects, "GetInteger64v");
+ params[0] = ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0;
+ break;
+ case GL_MAX_SAMPLES:
+ CHECK_EXT1(ARB_framebuffer_object, "GetInteger64v");
+ params[0] = ctx->Const.MaxSamples;
+ break;
+ case GL_VERTEX_ARRAY_BINDING_APPLE:
+ CHECK_EXT1(APPLE_vertex_array_object, "GetInteger64v");
+ params[0] = ctx->Array.ArrayObj->Name;
+ break;
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ CHECK_EXT1(ARB_seamless_cube_map, "GetInteger64v");
+ params[0] = BOOLEAN_TO_INT64(ctx->Texture.CubeMapSeamless);
+ break;
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ CHECK_EXT1(ARB_sync, "GetInteger64v");
+ params[0] = ctx->Const.MaxServerWaitTimeout;
+ break;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetInteger64v(pname=0x%x)", pname);
+ }
+}
+#endif /* FEATURE_ARB_sync */
+
void GLAPIENTRY
_mesa_GetDoublev( GLenum pname, GLdouble *params )
diff --git a/src/mesa/main/get.h b/src/mesa/main/get.h
index 9b47b230a98..77a9a7d04b4 100644
--- a/src/mesa/main/get.h
+++ b/src/mesa/main/get.h
@@ -48,6 +48,9 @@ extern void GLAPIENTRY
_mesa_GetIntegerv( GLenum pname, GLint *params );
extern void GLAPIENTRY
+_mesa_GetInteger64v( GLenum pname, GLint64 *params );
+
+extern void GLAPIENTRY
_mesa_GetPointerv( GLenum pname, GLvoid **params );
extern const GLubyte * GLAPIENTRY
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index 97dc7850201..2878c1b5526 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -35,6 +35,7 @@ GLfloat = 3
GLdouble = 4
GLboolean = 5
GLfloatN = 6 # A normalized value, such as a color or depth range
+GLint64 = 7
TypeStrings = {
@@ -42,7 +43,8 @@ TypeStrings = {
GLenum : "GLenum",
GLfloat : "GLfloat",
GLdouble : "GLdouble",
- GLboolean : "GLboolean"
+ GLboolean : "GLboolean",
+ GLint64 : "GLint64"
}
@@ -1020,6 +1022,10 @@ StateVars = [
# GL_ARB_seamless_cube_map
( "GL_TEXTURE_CUBE_MAP_SEAMLESS", GLboolean, ["ctx->Texture.CubeMapSeamless"], "",
["ARB_seamless_cube_map"] ),
+
+ # GL_ARB_sync
+ ( "GL_MAX_SERVER_WAIT_TIMEOUT", GLint64, ["ctx->Const.MaxServerWaitTimeout"], "",
+ ["ARB_sync"] ),
]
@@ -1029,10 +1035,16 @@ def ConversionFunc(fromType, toType):
return ""
elif fromType == GLfloat and toType == GLint:
return "IROUND"
+ elif fromType == GLfloat and toType == GLint64:
+ return "IROUND64"
elif fromType == GLfloatN and toType == GLfloat:
return ""
elif fromType == GLint and toType == GLfloat: # but not GLfloatN!
return "(GLfloat)"
+ elif fromType == GLint and toType == GLint64:
+ return ""
+ elif fromType == GLint64 and toType == GLfloat: # but not GLfloatN!
+ return "(GLfloat)"
else:
if fromType == GLfloatN:
fromType = GLfloat
@@ -1047,6 +1059,7 @@ def EmitGetFunction(stateVars, returnType):
"""Emit the code to implement glGetBooleanv, glGetIntegerv or glGetFloatv."""
assert (returnType == GLboolean or
returnType == GLint or
+ returnType == GLint64 or
returnType == GLfloat)
strType = TypeStrings[returnType]
@@ -1057,9 +1070,14 @@ def EmitGetFunction(stateVars, returnType):
function = "GetBooleanv"
elif returnType == GLfloat:
function = "GetFloatv"
+ elif returnType == GLint64:
+ function = "GetInteger64v"
else:
abort()
+ if returnType == GLint64:
+ print "#if FEATURE_ARB_sync"
+
print "void GLAPIENTRY"
print "_mesa_%s( GLenum pname, %s *params )" % (function, strType)
print "{"
@@ -1113,6 +1131,8 @@ def EmitGetFunction(stateVars, returnType):
print ' _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(pname=0x%%x)", pname);' % function
print " }"
print "}"
+ if returnType == GLint64:
+ print "#endif /* FEATURE_ARB_sync */"
print ""
return
@@ -1141,9 +1161,15 @@ def EmitHeader():
#define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
+#define INT64_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
+#define INT64_TO_INT(I) ( (GLint)((I > INT_MAX) ? INT_MAX : ((I < INT_MIN) ? INT_MIN : (I))) )
+
#define BOOLEAN_TO_INT(B) ( (GLint) (B) )
+#define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
#define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
+#define ENUM_TO_INT64(E) ( (GLint64) (E) )
+
/*
* Check if named extension is enabled, if not generate error and return.
@@ -1221,5 +1247,6 @@ EmitHeader()
EmitGetFunction(StateVars, GLboolean)
EmitGetFunction(StateVars, GLfloat)
EmitGetFunction(StateVars, GLint)
+EmitGetFunction(StateVars, GLint64)
EmitGetDoublev()
diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c
index 726a50d3b1b..ceb0d5a6a86 100644
--- a/src/mesa/main/histogram.c
+++ b/src/mesa/main/histogram.c
@@ -649,29 +649,11 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvo
return;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack min/max values into a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Pack, 2, 1, 1,
- format, type, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetMinMax(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx, GL_INVALID_OPERATION,"glGetMinMax(PBO is mapped)");
- return;
- }
- values = ADD_POINTERS(buf, values);
- }
- else if (!values) {
- /* not an error */
+
+ values = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack, 2, 1, 1,
+ format, type, values, "glGetMinmax");
+ if (!values)
return;
- }
{
GLfloat minmax[2][4];
@@ -687,10 +669,7 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvo
format, type, values, &ctx->Pack, 0x0);
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
if (reset) {
_mesa_ResetMinmax(GL_MINMAX);
@@ -733,38 +712,18 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, G
return;
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack min/max values into a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(1, &ctx->Pack, ctx->Histogram.Width, 1, 1,
- format, type, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetHistogram(invalid PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
- _mesa_error(ctx,GL_INVALID_OPERATION,"glGetHistogram(PBO is mapped)");
- return;
- }
- values = ADD_POINTERS(buf, values);
- }
- else if (!values) {
- /* not an error */
+ values = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack,
+ ctx->Histogram.Width, 1, 1,
+ format, type, values,
+ "glGetHistogram");
+ if (!values)
return;
- }
pack_histogram(ctx, ctx->Histogram.Width,
(CONST GLuint (*)[4]) ctx->Histogram.Count,
format, type, values, &ctx->Pack);
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
if (reset) {
GLuint i;
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index d77c593ac7c..baecbab0a35 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -689,6 +689,22 @@ _mesa_is_depth_format(GLenum format)
/**
+ * Test if the given image format is a stencil format.
+ */
+GLboolean
+_mesa_is_stencil_format(GLenum format)
+{
+ switch (format) {
+ case GL_STENCIL_INDEX:
+ case GL_DEPTH_STENCIL:
+ return GL_TRUE;
+ default:
+ return GL_FALSE;
+ }
+}
+
+
+/**
* Test if the given image format is a YCbCr format.
*/
GLboolean
@@ -1243,6 +1259,91 @@ _mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source,
}
+/**
+ * "Expand" a bitmap from 1-bit per pixel to 8-bits per pixel.
+ * This is typically used to convert a bitmap into a GLubyte/pixel texture.
+ * "On" bits will set texels to \p onValue.
+ * "Off" bits will not modify texels.
+ * \param width src bitmap width in pixels
+ * \param height src bitmap height in pixels
+ * \param unpack bitmap unpacking state
+ * \param bitmap the src bitmap data
+ * \param destBuffer start of dest buffer
+ * \param destStride row stride in dest buffer
+ * \param onValue if bit is 1, set destBuffer pixel to this value
+ */
+void
+_mesa_expand_bitmap(GLsizei width, GLsizei height,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLubyte *bitmap,
+ GLubyte *destBuffer, GLint destStride,
+ GLubyte onValue)
+{
+ const GLubyte *srcRow = (const GLubyte *)
+ _mesa_image_address2d(unpack, bitmap, width, height,
+ GL_COLOR_INDEX, GL_BITMAP, 0, 0);
+ const GLint srcStride = _mesa_image_row_stride(unpack, width,
+ GL_COLOR_INDEX, GL_BITMAP);
+ GLint row, col;
+
+#define SET_PIXEL(COL, ROW) \
+ destBuffer[(ROW) * destStride + (COL)] = onValue;
+
+ for (row = 0; row < height; row++) {
+ const GLubyte *src = srcRow;
+
+ if (unpack->LsbFirst) {
+ /* Lsb first */
+ GLubyte mask = 1U << (unpack->SkipPixels & 0x7);
+ for (col = 0; col < width; col++) {
+
+ if (*src & mask) {
+ SET_PIXEL(col, row);
+ }
+
+ if (mask == 128U) {
+ src++;
+ mask = 1U;
+ }
+ else {
+ mask = mask << 1;
+ }
+ }
+
+ /* get ready for next row */
+ if (mask != 1)
+ src++;
+ }
+ else {
+ /* Msb first */
+ GLubyte mask = 128U >> (unpack->SkipPixels & 0x7);
+ for (col = 0; col < width; col++) {
+
+ if (*src & mask) {
+ SET_PIXEL(col, row);
+ }
+
+ if (mask == 1U) {
+ src++;
+ mask = 128U;
+ }
+ else {
+ mask = mask >> 1;
+ }
+ }
+
+ /* get ready for next row */
+ if (mask != 128)
+ src++;
+ }
+
+ srcRow += srcStride;
+ } /* row */
+
+#undef SET_PIXEL
+}
+
+
/**********************************************************************/
/***** Pixel processing functions ******/
/**********************************************************************/
diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h
index 20459a5f1e1..72717d67873 100644
--- a/src/mesa/main/image.h
+++ b/src/mesa/main/image.h
@@ -64,6 +64,9 @@ extern GLboolean
_mesa_is_depth_format(GLenum format);
extern GLboolean
+_mesa_is_stencil_format(GLenum format);
+
+extern GLboolean
_mesa_is_ycbcr_format(GLenum format);
extern GLboolean
@@ -131,6 +134,13 @@ extern void
_mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source,
GLubyte *dest, const struct gl_pixelstore_attrib *packing );
+extern void
+_mesa_expand_bitmap(GLsizei width, GLsizei height,
+ const struct gl_pixelstore_attrib *unpack,
+ const GLubyte *bitmap,
+ GLubyte *destBuffer, GLint destStride,
+ GLubyte onValue);
+
/** \name Pixel processing functions */
/*@{*/
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index fb85f0862c6..7d4012a8560 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -291,6 +291,7 @@ long iround(float f);
#define IROUND(f) ((int) (((f) >= 0.0F) ? ((f) + 0.5F) : ((f) - 0.5F)))
#endif
+#define IROUND64(f) ((GLint64) (((f) >= 0.0F) ? ((f) + 0.5F) : ((f) - 0.5F)))
/***
*** IROUND_POS: return (as an integer) positive float rounded to nearest int
diff --git a/src/mesa/main/macros.h b/src/mesa/main/macros.h
index 4ca7957ffad..3d9a1aba98d 100644
--- a/src/mesa/main/macros.h
+++ b/src/mesa/main/macros.h
@@ -99,6 +99,9 @@ extern GLfloat _mesa_ubyte_to_float_color_tab[256];
/* a close approximation: */
#define FLOAT_TO_INT(X) ( (GLint) (2147483647.0 * (X)) )
+/** Convert GLfloat in [-1.0,1.0] to GLint64 in [-(1<<63),(1 << 63) -1] */
+#define FLOAT_TO_INT64(X) ( (GLint64) (9223372036854775807.0 * (double)(X)) )
+
/** Convert GLint in [-2147483648,2147483647] to GLfloat in [-1.0,1.0], texture/fb data */
#define INT_TO_FLOAT_TEX(I) ((I) == -2147483648 ? -1.0F : (I) * (1.0F/2147483647.0))
diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h
index ef973314e35..e23cdb1f426 100644
--- a/src/mesa/main/mfeatures.h
+++ b/src/mesa/main/mfeatures.h
@@ -70,6 +70,7 @@
#define FEATURE_ARB_shader_objects (FEATURE_ARB_vertex_shader || FEATURE_ARB_fragment_shader)
#define FEATURE_ARB_shading_language_100 FEATURE_ARB_shader_objects
#define FEATURE_ARB_shading_language_120 FEATURE_ARB_shader_objects
+#define FEATURE_ARB_sync _HAVE_FULL_GL
#define FEATURE_EXT_framebuffer_blit _HAVE_FULL_GL
#define FEATURE_EXT_framebuffer_object _HAVE_FULL_GL
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 53dc6360ea1..6b64bf8139f 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -40,6 +40,7 @@
#include "main/mfeatures.h"
#include "glapi/glapi.h"
#include "math/m_matrix.h" /* GLmatrix */
+#include "main/simple_list.h" /* struct simple_node */
/**
@@ -1986,6 +1987,21 @@ struct gl_query_state
};
+/** Sync object state */
+struct gl_sync_object {
+ struct simple_node link;
+ GLenum Type; /**< GL_SYNC_FENCE */
+ GLuint Name; /**< Fence name */
+ GLint RefCount; /**< Reference count */
+ GLboolean DeletePending; /**< Object was deleted while there were still
+ * live references (e.g., sync not yet finished)
+ */
+ GLenum SyncCondition;
+ GLbitfield Flags; /**< Flags passed to glFenceSync */
+ GLuint StatusFlag:1; /**< Has the sync object been signaled? */
+};
+
+
/** Set by #pragma directives */
struct gl_sl_pragmas
{
@@ -2131,6 +2147,10 @@ struct gl_shared_state
struct _mesa_HashTable *FrameBuffers;
#endif
+#if FEATURE_ARB_sync
+ struct simple_node SyncObjects;
+#endif
+
void *DriverData; /**< Device driver shared state */
};
@@ -2435,6 +2455,12 @@ struct gl_constants
GLbitfield SupportedBumpUnits; /**> units supporting GL_ATI_envmap_bumpmap as targets */
+ /**
+ * Maximum amount of time, measured in nanseconds, that the server can wait.
+ */
+ GLuint64 MaxServerWaitTimeout;
+
+
/**< GL_EXT_provoking_vertex */
GLboolean QuadsFollowProvokingVertexConvention;
};
@@ -2467,6 +2493,7 @@ struct gl_extensions
GLboolean ARB_shading_language_120;
GLboolean ARB_shadow;
GLboolean ARB_shadow_ambient; /* or GL_ARB_shadow_ambient */
+ GLboolean ARB_sync;
GLboolean ARB_texture_border_clamp;
GLboolean ARB_texture_compression;
GLboolean ARB_texture_cube_map;
diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c
index 25f55a422fa..fcef6dfd422 100644
--- a/src/mesa/main/pixel.c
+++ b/src/mesa/main/pixel.c
@@ -136,6 +136,33 @@ store_pixelmap(GLcontext *ctx, GLenum map, GLsizei mapsize,
}
+/**
+ * Convenience wrapper for _mesa_validate_pbo_access() for gl[Get]PixelMap().
+ */
+static GLboolean
+validate_pbo_access(GLcontext *ctx, struct gl_pixelstore_attrib *pack,
+ GLsizei mapsize, GLenum format, GLenum type,
+ const GLvoid *ptr)
+{
+ GLboolean ok;
+
+ /* Note, need to use DefaultPacking and Unpack's buffer object */
+ ctx->DefaultPacking.BufferObj = pack->BufferObj;
+
+ ok = _mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
+ format, type, ptr);
+
+ /* restore */
+ ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
+
+ if (!ok) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glPixelMap(invalid PBO access)");
+ }
+ return ok;
+}
+
+
void GLAPIENTRY
_mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
{
@@ -158,40 +185,23 @@ _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack pixelmap from PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Unpack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Unpack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_FLOAT, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPixelMapfv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
+ GL_INTENSITY, GL_FLOAT, values)) {
+ return;
+ }
+
+ values = (const GLfloat *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapfv(PBO is mapped)");
- return;
}
- values = (const GLfloat *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
store_pixelmap(ctx, map, mapsize, values);
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
}
@@ -217,31 +227,17 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack pixelmap from PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Unpack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Unpack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_UNSIGNED_INT, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPixelMapuiv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
+ GL_INTENSITY, GL_UNSIGNED_INT, values)) {
+ return;
+ }
+
+ values = (const GLuint *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapuiv(PBO is mapped)");
- return;
}
- values = (const GLuint *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
@@ -259,10 +255,7 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
}
}
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
store_pixelmap(ctx, map, mapsize, fvalues);
}
@@ -290,32 +283,17 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
FLUSH_VERTICES(ctx, _NEW_PIXEL);
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* unpack pixelmap from PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Unpack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Unpack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_UNSIGNED_SHORT,
- values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPixelMapusv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Unpack, mapsize,
+ GL_INTENSITY, GL_UNSIGNED_SHORT, values)) {
+ return;
+ }
+
+ values = (const GLushort *) _mesa_map_pbo_source(ctx, &ctx->Unpack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glPixelMapusv(PBO is mapped)");
- return;
}
- values = (const GLushort *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
@@ -333,10 +311,7 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
}
}
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
store_pixelmap(ctx, map, mapsize, fvalues);
}
@@ -359,31 +334,17 @@ _mesa_GetPixelMapfv( GLenum map, GLfloat *values )
mapsize = pm->Size;
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack pixelmap into PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Pack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Pack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_FLOAT, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetPixelMapfv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
+ GL_INTENSITY, GL_FLOAT, values)) {
+ return;
+ }
+
+ values = (GLfloat *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapfv(PBO is mapped)");
- return;
}
- values = (GLfloat *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
@@ -397,10 +358,7 @@ _mesa_GetPixelMapfv( GLenum map, GLfloat *values )
MEMCPY(values, pm->Map, mapsize * sizeof(GLfloat));
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
@@ -420,31 +378,17 @@ _mesa_GetPixelMapuiv( GLenum map, GLuint *values )
}
mapsize = pm->Size;
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack pixelmap into PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Pack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Pack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_UNSIGNED_INT, values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetPixelMapuiv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
+ GL_INTENSITY, GL_UNSIGNED_INT, values)) {
+ return;
+ }
+
+ values = (GLuint *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapuiv(PBO is mapped)");
- return;
}
- values = (GLuint *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
@@ -458,10 +402,7 @@ _mesa_GetPixelMapuiv( GLenum map, GLuint *values )
}
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
@@ -481,32 +422,17 @@ _mesa_GetPixelMapusv( GLenum map, GLushort *values )
}
mapsize = pm ? pm->Size : 0;
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* pack pixelmap into PBO */
- GLubyte *buf;
- /* Note, need to use DefaultPacking and Pack's buffer object */
- ctx->DefaultPacking.BufferObj = ctx->Pack.BufferObj;
- if (!_mesa_validate_pbo_access(1, &ctx->DefaultPacking, mapsize, 1, 1,
- GL_INTENSITY, GL_UNSIGNED_SHORT,
- values)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetPixelMapusv(invalid PBO access)");
- return;
- }
- /* restore */
- ctx->DefaultPacking.BufferObj = ctx->Shared->NullBufferObj;
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- /* buffer is already mapped - that's an error */
+ if (!validate_pbo_access(ctx, &ctx->Pack, mapsize,
+ GL_INTENSITY, GL_UNSIGNED_SHORT, values)) {
+ return;
+ }
+
+ values = (GLushort *) _mesa_map_pbo_dest(ctx, &ctx->Pack, values);
+ if (!values) {
+ if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetPixelMapusv(PBO is mapped)");
- return;
}
- values = (GLushort *) ADD_POINTERS(buf, values);
- }
- else if (!values) {
return;
}
@@ -528,10 +454,7 @@ _mesa_GetPixelMapusv( GLenum map, GLushort *values )
}
}
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c
index d11c9424d5e..376a87a3967 100644
--- a/src/mesa/main/polygon.c
+++ b/src/mesa/main/polygon.c
@@ -193,32 +193,16 @@ _mesa_PolygonMode( GLenum face, GLenum mode )
void
_mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern)
{
- if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) {
- /* Get/unpack the stipple pattern from a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(2, &ctx->Unpack, 32, 32, 1,
- GL_COLOR_INDEX, GL_BITMAP, pattern)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPolygonStipple(bad PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- GL_READ_ONLY_ARB,
- ctx->Unpack.BufferObj);
- if (!buf) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glPolygonStipple(PBO mapped)");
- return;
- }
- buf = ADD_POINTERS(buf, pattern);
- _mesa_unpack_polygon_stipple(buf, ctx->PolygonStipple, &ctx->Unpack);
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT,
- ctx->Unpack.BufferObj);
- }
- else {
- /* Get/unpack the stipple pattern from user memory */
- _mesa_unpack_polygon_stipple(pattern, ctx->PolygonStipple, &ctx->Unpack);
- }
+ pattern = _mesa_map_validate_pbo_source(ctx, 2,
+ &ctx->Unpack, 32, 32, 1,
+ GL_COLOR_INDEX, GL_BITMAP, pattern,
+ "glPolygonStipple");
+ if (!pattern)
+ return;
+
+ _mesa_unpack_polygon_stipple(pattern, ctx->PolygonStipple, &ctx->Unpack);
+
+ _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
}
@@ -255,35 +239,16 @@ _mesa_GetPolygonStipple( GLubyte *dest )
if (MESA_VERBOSE&VERBOSE_API)
_mesa_debug(ctx, "glGetPolygonStipple\n");
- /* XXX someday we may put this code into a separate function and call
- * it with ctx->Driver.GetPolygonStipple().
- */
- if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) {
- /* Put/pack the stipple pattern into a PBO */
- GLubyte *buf;
- if (!_mesa_validate_pbo_access(2, &ctx->Pack, 32, 32, 1,
- GL_COLOR_INDEX, GL_BITMAP, dest)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetPolygonStipple(bad PBO access)");
- return;
- }
- buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- GL_WRITE_ONLY_ARB,
- ctx->Pack.BufferObj);
- if (!buf) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetPolygonStipple(PBO mapped)");
- return;
- }
- buf = ADD_POINTERS(buf, dest);
- _mesa_pack_polygon_stipple(ctx->PolygonStipple, buf, &ctx->Pack);
- ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_PACK_BUFFER_EXT,
- ctx->Pack.BufferObj);
- }
- else {
- /* Put/pack the stipple pattern into user memory */
- _mesa_pack_polygon_stipple(ctx->PolygonStipple, dest, &ctx->Pack);
- }
+ dest = _mesa_map_validate_pbo_dest(ctx, 2,
+ &ctx->Pack, 32, 32, 1,
+ GL_COLOR_INDEX, GL_BITMAP, dest,
+ "glGetPolygonStipple");
+ if (!dest)
+ return;
+
+ _mesa_pack_polygon_stipple(ctx->PolygonStipple, dest, &ctx->Pack);
+
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
}
diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c
index 93bbccd3c7f..643ad3354e7 100644
--- a/src/mesa/main/shared.c
+++ b/src/mesa/main/shared.c
@@ -43,7 +43,9 @@
#if FEATURE_ATI_fragment_shader
#include "shader/atifragshader.h"
#endif
-
+#if FEATURE_ARB_sync
+#include "syncobj.h"
+#endif
/**
* Allocate and initialize a shared context state structure.
@@ -127,6 +129,10 @@ _mesa_alloc_shared_state(GLcontext *ctx)
shared->RenderBuffers = _mesa_NewHashTable();
#endif
+#if FEATURE_ARB_sync
+ make_empty_list(& shared->SyncObjects);
+#endif
+
return shared;
}
@@ -336,6 +342,17 @@ _mesa_free_shared_state(GLcontext *ctx, struct gl_shared_state *shared)
ctx->Driver.DeleteBuffer(ctx, shared->NullBufferObj);
#endif
+#if FEATURE_ARB_sync
+ {
+ struct simple_node *node;
+ struct simple_node *temp;
+
+ foreach_s(node, temp, & shared->SyncObjects) {
+ _mesa_unref_sync_object(ctx, (struct gl_sync_object *) node);
+ }
+ }
+#endif
+
/*
* Free texture objects (after FBOs since some textures might have
* been bound to FBOs).
diff --git a/src/mesa/main/simple_list.h b/src/mesa/main/simple_list.h
index 63475f6f740..ff7f8882382 100644
--- a/src/mesa/main/simple_list.h
+++ b/src/mesa/main/simple_list.h
@@ -37,6 +37,11 @@
#ifndef _SIMPLE_LIST_H
#define _SIMPLE_LIST_H
+struct simple_node {
+ struct simple_node *next;
+ struct simple_node *prev;
+};
+
/**
* Remove an element from list.
*
diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c
new file mode 100644
index 00000000000..64f923ff91f
--- /dev/null
+++ b/src/mesa/main/syncobj.c
@@ -0,0 +1,409 @@
+/*
+ * Copyright © 2009 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.
+ */
+
+/**
+ * \file syncobj.c
+ * Sync object management.
+ *
+ * Unlike textures and other objects that are shared between contexts, sync
+ * objects are not bound to the context. As a result, the reference counting
+ * and delete behavior of sync objects is slightly different. References to
+ * sync objects are added:
+ *
+ * - By \c glFencSynce. This sets the initial reference count to 1.
+ * - At the start of \c glClientWaitSync. The reference is held for the
+ * duration of the wait call.
+ *
+ * References are removed:
+ *
+ * - By \c glDeleteSync.
+ * - At the end of \c glClientWaitSync.
+ *
+ * Additionally, drivers may call \c _mesa_ref_sync_object and
+ * \c _mesa_unref_sync_object as needed to implement \c ServerWaitSync.
+ *
+ * As with shader objects, sync object names become invalid as soon as
+ * \c glDeleteSync is called. For this reason \c glDeleteSync sets the
+ * \c DeletePending flag. All functions validate object handles by testing
+ * this flag.
+ *
+ * \note
+ * Only \c GL_ARB_sync objects are shared between contexts. If support is ever
+ * added for either \c GL_NV_fence or \c GL_APPLE_fence different semantics
+ * will need to be implemented.
+ *
+ * \author Ian Romanick <[email protected]>
+ */
+
+#include "glheader.h"
+#include "imports.h"
+#include "context.h"
+#include "macros.h"
+
+#if FEATURE_ARB_sync
+#include "syncobj.h"
+
+static struct gl_sync_object *
+_mesa_new_sync_object(GLcontext *ctx, GLenum type)
+{
+ struct gl_sync_object *s = MALLOC_STRUCT(gl_sync_object);
+ (void) ctx;
+ (void) type;
+
+ return s;
+}
+
+
+static void
+_mesa_delete_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj)
+{
+ (void) ctx;
+ _mesa_free(syncObj);
+}
+
+
+static void
+_mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj,
+ GLenum condition, GLbitfield flags)
+{
+ (void) ctx;
+ (void) condition;
+ (void) flags;
+
+ syncObj->StatusFlag = 1;
+}
+
+
+static void
+_mesa_check_sync(GLcontext *ctx, struct gl_sync_object *syncObj)
+{
+ (void) ctx;
+ (void) syncObj;
+
+ /* No-op for software rendering. Hardware drivers will need to determine
+ * whether the state of the sync object has changed.
+ */
+}
+
+
+static void
+_mesa_wait_sync(GLcontext *ctx, struct gl_sync_object *syncObj,
+ GLbitfield flags, GLuint64 timeout)
+{
+ (void) ctx;
+ (void) syncObj;
+ (void) flags;
+ (void) timeout;
+
+ /* No-op for software rendering. Hardware drivers will need to wait until
+ * the state of the sync object changes or the timeout expires.
+ */
+}
+
+
+void
+_mesa_init_sync_object_functions(struct dd_function_table *driver)
+{
+ driver->NewSyncObject = _mesa_new_sync_object;
+ driver->FenceSync = _mesa_fence_sync;
+ driver->DeleteSyncObject = _mesa_delete_sync_object;
+ driver->CheckSync = _mesa_check_sync;
+
+ /* Use the same no-op wait function for both.
+ */
+ driver->ClientWaitSync = _mesa_wait_sync;
+ driver->ServerWaitSync = _mesa_wait_sync;
+}
+
+
+/**
+ * Allocate/init the context state related to sync objects.
+ */
+void
+_mesa_init_sync(GLcontext *ctx)
+{
+ (void) ctx;
+}
+
+
+/**
+ * Free the context state related to sync objects.
+ */
+void
+_mesa_free_sync_data(GLcontext *ctx)
+{
+ (void) ctx;
+}
+
+
+static int
+_mesa_validate_sync(struct gl_sync_object *syncObj)
+{
+ return (syncObj != NULL)
+ && (syncObj->Type == GL_SYNC_FENCE)
+ && !syncObj->DeletePending;
+}
+
+
+void
+_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj)
+{
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
+ syncObj->RefCount++;
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
+}
+
+
+void
+_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj)
+{
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
+ syncObj->RefCount--;
+ if (syncObj->RefCount == 0) {
+ remove_from_list(& syncObj->link);
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
+
+ ctx->Driver.DeleteSyncObject(ctx, syncObj);
+ } else {
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
+ }
+}
+
+
+GLboolean
+_mesa_IsSync(GLsync sync)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
+ ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
+
+ return _mesa_validate_sync(syncObj) ? GL_TRUE : GL_FALSE;
+}
+
+
+void
+_mesa_DeleteSync(GLsync sync)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ /* From the GL_ARB_sync spec:
+ *
+ * DeleteSync will silently ignore a <sync> value of zero. An
+ * INVALID_VALUE error is generated if <sync> is neither zero nor the
+ * name of a sync object.
+ */
+ if (sync == 0) {
+ return;
+ }
+
+ if (!_mesa_validate_sync(syncObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDeleteSync");
+ return;
+ }
+
+ /* If there are no client-waits or server-waits pending on this sync, delete
+ * the underlying object.
+ */
+ syncObj->DeletePending = GL_TRUE;
+ _mesa_unref_sync_object(ctx, syncObj);
+}
+
+
+GLsync
+_mesa_FenceSync(GLenum condition, GLbitfield flags)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *syncObj;
+ ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0);
+
+ if (condition != GL_SYNC_GPU_COMMANDS_COMPLETE) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glFenceSync(condition=0x%x)",
+ condition);
+ return 0;
+ }
+
+ if (flags != 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glFenceSync(flags=0x%x)",
+ condition);
+ return 0;
+ }
+
+ syncObj = ctx->Driver.NewSyncObject(ctx, GL_SYNC_FENCE);
+ if (syncObj != NULL) {
+ syncObj->Type = GL_SYNC_FENCE;
+ /* The name is not currently used, and it is never visible to
+ * applications. If sync support is extended to provide support for
+ * NV_fence, this field will be used. We'll also need to add an object
+ * ID hashtable.
+ */
+ syncObj->Name = 1;
+ syncObj->RefCount = 1;
+ syncObj->DeletePending = GL_FALSE;
+ syncObj->SyncCondition = condition;
+ syncObj->Flags = flags;
+ syncObj->StatusFlag = 0;
+
+ ctx->Driver.FenceSync(ctx, syncObj, condition, flags);
+
+ _glthread_LOCK_MUTEX(ctx->Shared->Mutex);
+ insert_at_tail(& ctx->Shared->SyncObjects, & syncObj->link);
+ _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex);
+
+ return (GLsync) syncObj;
+ }
+
+ return NULL;
+}
+
+
+GLenum
+_mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
+ GLenum ret;
+ ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_WAIT_FAILED);
+
+ if (!_mesa_validate_sync(syncObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glClientWaitSync");
+ return GL_WAIT_FAILED;
+ }
+
+ if ((flags & ~GL_SYNC_FLUSH_COMMANDS_BIT) != 0) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glClientWaitSync(flags=0x%x)", flags);
+ return GL_WAIT_FAILED;
+ }
+
+ _mesa_ref_sync_object(ctx, syncObj);
+
+ /* From the GL_ARB_sync spec:
+ *
+ * ClientWaitSync returns one of four status values. A return value of
+ * ALREADY_SIGNALED indicates that <sync> was signaled at the time
+ * ClientWaitSync was called. ALREADY_SIGNALED will always be returned
+ * if <sync> was signaled, even if the value of <timeout> is zero.
+ */
+ ctx->Driver.CheckSync(ctx, syncObj);
+ if (syncObj->StatusFlag) {
+ ret = GL_ALREADY_SIGNALED;
+ } else {
+ ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
+
+ ret = syncObj->StatusFlag ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED;
+ }
+
+ _mesa_unref_sync_object(ctx, syncObj);
+ return ret;
+}
+
+
+void
+_mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (!_mesa_validate_sync(syncObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glWaitSync");
+ return;
+ }
+
+ if (flags != 0) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glWaitSync(flags=0x%x)", flags);
+ return;
+ }
+
+ /* From the GL_ARB_sync spec:
+ *
+ * If the value of <timeout> is zero, then WaitSync does nothing.
+ */
+ if (timeout == 0) {
+ return;
+ }
+
+ ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout);
+}
+
+
+void
+_mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length,
+ GLint *values)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
+ GLsizei size = 0;
+ GLint v[1];
+ ASSERT_OUTSIDE_BEGIN_END(ctx);
+
+ if (!_mesa_validate_sync(syncObj)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetSynciv");
+ return;
+ }
+
+ switch (pname) {
+ case GL_OBJECT_TYPE:
+ v[0] = syncObj->Type;
+ size = 1;
+ break;
+
+ case GL_SYNC_CONDITION:
+ v[0] = syncObj->SyncCondition;
+ size = 1;
+ break;
+
+ case GL_SYNC_STATUS:
+ /* Update the state of the sync by dipping into the driver. Note that
+ * this call won't block. It just updates state in the common object
+ * data from the current driver state.
+ */
+ ctx->Driver.CheckSync(ctx, syncObj);
+
+ v[0] = (syncObj->StatusFlag) ? GL_SIGNALED : GL_UNSIGNALED;
+ size = 1;
+ break;
+
+ case GL_SYNC_FLAGS:
+ v[0] = syncObj->Flags;
+ size = 1;
+ break;
+
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM, "glGetSynciv(pname=0x%x)\n", pname);
+ return;
+ }
+
+ if (size > 0) {
+ const GLsizei copy_count = MIN2(size, bufSize);
+
+ _mesa_memcpy(values, v, sizeof(GLint) * copy_count);
+ }
+
+ if (length != NULL) {
+ *length = size;
+ }
+}
+
+#endif /* FEATURE_ARB_sync */
diff --git a/src/mesa/main/syncobj.h b/src/mesa/main/syncobj.h
new file mode 100644
index 00000000000..fc160af2893
--- /dev/null
+++ b/src/mesa/main/syncobj.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright © 2009 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.
+ */
+
+/**
+ * \file syncobj.h
+ * Sync object management.
+ *
+ * \author Ian Romanick <[email protected]>
+ */
+
+#ifndef SYNCOBJ_H
+#define SYNCOBJ_H
+
+#include "context.h"
+
+extern void
+_mesa_init_sync_object_functions(struct dd_function_table *driver);
+
+extern void
+_mesa_init_sync(GLcontext *);
+
+extern void
+_mesa_free_sync_data(GLcontext *);
+
+extern void
+_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj);
+
+extern void
+_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj);
+
+extern GLboolean
+_mesa_IsSync(GLsync sync);
+
+extern void
+_mesa_DeleteSync(GLsync sync);
+
+extern GLsync
+_mesa_FenceSync(GLenum condition, GLbitfield flags);
+
+extern GLenum
+_mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+extern void
+_mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+extern void
+_mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length,
+ GLint *values);
+
+#endif /* SYNCOBJ_H */
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
index 3736138b9ed..870970a3554 100644
--- a/src/mesa/main/texenvprogram.c
+++ b/src/mesa/main/texenvprogram.c
@@ -27,8 +27,7 @@
**************************************************************************/
#include "glheader.h"
-#include "macros.h"
-#include "enums.h"
+#include "imports.h"
#include "shader/program.h"
#include "shader/prog_parameter.h"
#include "shader/prog_cache.h"
@@ -83,8 +82,13 @@ texenv_doing_secondary_color(GLcontext *ctx)
#define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM)
struct mode_opt {
- GLuint Source:4;
- GLuint Operand:3;
+#ifdef __GNUC__
+ __extension__ GLubyte Source:4; /**< SRC_x */
+ __extension__ GLubyte Operand:3; /**< OPR_x */
+#else
+ GLubyte Source; /**< SRC_x */
+ GLubyte Operand; /**< OPR_x */
+#endif
};
struct state_key {
@@ -92,24 +96,26 @@ struct state_key {
GLuint enabled_units:8;
GLuint separate_specular:1;
GLuint fog_enabled:1;
- GLuint fog_mode:2;
+ GLuint fog_mode:2; /**< FOG_x */
GLuint inputs_available:12;
+ /* NOTE: This array of structs must be last! (see "keySize" below) */
struct {
GLuint enabled:1;
- GLuint source_index:3; /* one of TEXTURE_1D/2D/3D/CUBE/RECT_INDEX */
+ GLuint source_index:3; /**< TEXTURE_x_INDEX */
GLuint shadow:1;
GLuint ScaleShiftRGB:2;
GLuint ScaleShiftA:2;
- GLuint NumArgsRGB:3;
- GLuint ModeRGB:5;
- struct mode_opt OptRGB[MAX_COMBINER_TERMS];
+ GLuint NumArgsRGB:3; /**< up to MAX_COMBINER_TERMS */
+ GLuint ModeRGB:5; /**< MODE_x */
+
+ GLuint NumArgsA:3; /**< up to MAX_COMBINER_TERMS */
+ GLuint ModeA:5; /**< MODE_x */
- GLuint NumArgsA:3;
- GLuint ModeA:5;
+ struct mode_opt OptRGB[MAX_COMBINER_TERMS];
struct mode_opt OptA[MAX_COMBINER_TERMS];
- } unit[8];
+ } unit[MAX_TEXTURE_UNITS];
};
#define FOG_LINEAR 0
@@ -240,25 +246,17 @@ static GLuint translate_mode( GLenum envMode, GLenum mode )
}
}
-#define TEXTURE_UNKNOWN_INDEX 7
+
+/**
+ * Translate TEXTURE_x_BIT to TEXTURE_x_INDEX.
+ */
static GLuint translate_tex_src_bit( GLbitfield bit )
{
- /* make sure number of switch cases is correct */
- assert(NUM_TEXTURE_TARGETS == 7);
- switch (bit) {
- case TEXTURE_1D_BIT: return TEXTURE_1D_INDEX;
- case TEXTURE_2D_BIT: return TEXTURE_2D_INDEX;
- case TEXTURE_RECT_BIT: return TEXTURE_RECT_INDEX;
- case TEXTURE_3D_BIT: return TEXTURE_3D_INDEX;
- case TEXTURE_CUBE_BIT: return TEXTURE_CUBE_INDEX;
- case TEXTURE_1D_ARRAY_BIT: return TEXTURE_1D_ARRAY_INDEX;
- case TEXTURE_2D_ARRAY_BIT: return TEXTURE_2D_ARRAY_INDEX;
- default:
- assert(0);
- return TEXTURE_UNKNOWN_INDEX;
- }
+ ASSERT(bit);
+ return _mesa_ffs(bit) - 1;
}
+
#define VERT_BIT_TEX_ANY (0xff << VERT_ATTRIB_TEX0)
#define VERT_RESULT_TEX_ANY (0xff << VERT_RESULT_TEX0)
@@ -371,55 +369,55 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx )
* Examine current texture environment state and generate a unique
* key to identify it.
*/
-static void make_state_key( GLcontext *ctx, struct state_key *key )
+static GLuint make_state_key( GLcontext *ctx, struct state_key *key )
{
GLuint i, j;
GLbitfield inputs_referenced = FRAG_BIT_COL0;
- GLbitfield inputs_available = get_fp_input_mask( ctx );
+ const GLbitfield inputs_available = get_fp_input_mask( ctx );
+ GLuint keySize;
memset(key, 0, sizeof(*key));
/* _NEW_TEXTURE */
for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i];
+ const struct gl_texture_object *texObj = texUnit->_Current;
+ const struct gl_tex_env_combine_state *comb = texUnit->_CurrentCombine;
GLenum format;
if (!texUnit->_ReallyEnabled || !texUnit->Enabled)
continue;
- format = texUnit->_Current->Image[0][texUnit->_Current->BaseLevel]->_BaseFormat;
+ format = texObj->Image[0][texObj->BaseLevel]->_BaseFormat;
key->unit[i].enabled = 1;
key->enabled_units |= (1<<i);
- key->nr_enabled_units = i+1;
+ key->nr_enabled_units = i + 1;
inputs_referenced |= FRAG_BIT_TEX(i);
- key->unit[i].source_index =
- translate_tex_src_bit(texUnit->_ReallyEnabled);
- key->unit[i].shadow = ((texUnit->_Current->CompareMode == GL_COMPARE_R_TO_TEXTURE) &&
+ key->unit[i].source_index =
+ translate_tex_src_bit(texUnit->_ReallyEnabled);
+
+ key->unit[i].shadow = ((texObj->CompareMode == GL_COMPARE_R_TO_TEXTURE) &&
((format == GL_DEPTH_COMPONENT) ||
(format == GL_DEPTH_STENCIL_EXT)));
- key->unit[i].NumArgsRGB = texUnit->_CurrentCombine->_NumArgsRGB;
- key->unit[i].NumArgsA = texUnit->_CurrentCombine->_NumArgsA;
+ key->unit[i].NumArgsRGB = comb->_NumArgsRGB;
+ key->unit[i].NumArgsA = comb->_NumArgsA;
key->unit[i].ModeRGB =
- translate_mode(texUnit->EnvMode, texUnit->_CurrentCombine->ModeRGB);
+ translate_mode(texUnit->EnvMode, comb->ModeRGB);
key->unit[i].ModeA =
- translate_mode(texUnit->EnvMode, texUnit->_CurrentCombine->ModeA);
+ translate_mode(texUnit->EnvMode, comb->ModeA);
- key->unit[i].ScaleShiftRGB = texUnit->_CurrentCombine->ScaleShiftRGB;
- key->unit[i].ScaleShiftA = texUnit->_CurrentCombine->ScaleShiftA;
+ key->unit[i].ScaleShiftRGB = comb->ScaleShiftRGB;
+ key->unit[i].ScaleShiftA = comb->ScaleShiftA;
for (j = 0; j < MAX_COMBINER_TERMS; j++) {
- key->unit[i].OptRGB[j].Operand =
- translate_operand(texUnit->_CurrentCombine->OperandRGB[j]);
- key->unit[i].OptA[j].Operand =
- translate_operand(texUnit->_CurrentCombine->OperandA[j]);
- key->unit[i].OptRGB[j].Source =
- translate_source(texUnit->_CurrentCombine->SourceRGB[j]);
- key->unit[i].OptA[j].Source =
- translate_source(texUnit->_CurrentCombine->SourceA[j]);
+ key->unit[i].OptRGB[j].Operand = translate_operand(comb->OperandRGB[j]);
+ key->unit[i].OptA[j].Operand = translate_operand(comb->OperandA[j]);
+ key->unit[i].OptRGB[j].Source = translate_source(comb->SourceRGB[j]);
+ key->unit[i].OptA[j].Source = translate_source(comb->SourceA[j]);
}
if (key->unit[i].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
@@ -447,8 +445,15 @@ static void make_state_key( GLcontext *ctx, struct state_key *key )
}
key->inputs_available = (inputs_available & inputs_referenced);
+
+ /* compute size of state key, ignoring unused texture units */
+ keySize = sizeof(*key) - sizeof(key->unit)
+ + key->nr_enabled_units * sizeof(key->unit[0]);
+
+ return keySize;
}
+
/**
* Use uregs to represent registers internally, translate to Mesa's
* expected formats on emit.
@@ -466,10 +471,8 @@ struct ureg {
GLuint file:4;
GLuint idx:8;
GLuint negatebase:1;
- GLuint abs:1;
- GLuint negateabs:1;
GLuint swz:12;
- GLuint pad:5;
+ GLuint pad:7;
};
static const struct ureg undef = {
@@ -477,8 +480,6 @@ static const struct ureg undef = {
~0,
0,
0,
- 0,
- 0,
0
};
@@ -487,7 +488,6 @@ static const struct ureg undef = {
*/
struct texenv_fragment_program {
struct gl_fragment_program *program;
- GLcontext *ctx;
struct state_key *state;
GLbitfield alu_temps; /**< Track texture indirections, see spec. */
@@ -524,8 +524,6 @@ static struct ureg make_ureg(GLuint file, GLuint idx)
reg.file = file;
reg.idx = idx;
reg.negatebase = 0;
- reg.abs = 0;
- reg.negateabs = 0;
reg.swz = SWIZZLE_NOOP;
reg.pad = 0;
return reg;
@@ -691,7 +689,7 @@ static void emit_arg( struct prog_src_register *reg,
reg->Index = ureg.idx;
reg->Swizzle = ureg.swz;
reg->Negate = ureg.negatebase ? NEGATE_XYZW : NEGATE_NONE;
- reg->Abs = ureg.abs;
+ reg->Abs = GL_FALSE;
}
static void emit_dst( struct prog_dst_register *dst,
@@ -714,7 +712,7 @@ emit_op(struct texenv_fragment_program *p,
struct ureg src1,
struct ureg src2 )
{
- GLuint nr = p->program->Base.NumInstructions++;
+ const GLuint nr = p->program->Base.NumInstructions++;
struct prog_instruction *inst = &p->program->Base.Instructions[nr];
assert(nr < MAX_INSTRUCTIONS);
@@ -952,17 +950,22 @@ static struct ureg emit_combine_source( struct texenv_fragment_program *p,
}
}
-static GLboolean args_match( struct state_key *key, GLuint unit )
+/**
+ * Check if the RGB and Alpha sources and operands match for the given
+ * texture unit's combinder state. When the RGB and A sources and
+ * operands match, we can emit fewer instructions.
+ */
+static GLboolean args_match( const struct state_key *key, GLuint unit )
{
- GLuint i, nr = key->unit[unit].NumArgsRGB;
+ GLuint i, numArgs = key->unit[unit].NumArgsRGB;
- for (i = 0 ; i < nr ; i++) {
+ for (i = 0; i < numArgs; i++) {
if (key->unit[unit].OptA[i].Source != key->unit[unit].OptRGB[i].Source)
return GL_FALSE;
- switch(key->unit[unit].OptA[i].Operand) {
+ switch (key->unit[unit].OptA[i].Operand) {
case OPR_SRC_ALPHA:
- switch(key->unit[unit].OptRGB[i].Operand) {
+ switch (key->unit[unit].OptRGB[i].Operand) {
case OPR_SRC_COLOR:
case OPR_SRC_ALPHA:
break;
@@ -971,7 +974,7 @@ static GLboolean args_match( struct state_key *key, GLuint unit )
}
break;
case OPR_ONE_MINUS_SRC_ALPHA:
- switch(key->unit[unit].OptRGB[i].Operand) {
+ switch (key->unit[unit].OptRGB[i].Operand) {
case OPR_ONE_MINUS_SRC_COLOR:
case OPR_ONE_MINUS_SRC_ALPHA:
break;
@@ -1112,11 +1115,10 @@ static struct ureg emit_combine( struct texenv_fragment_program *p,
static struct ureg
emit_texenv(struct texenv_fragment_program *p, GLuint unit)
{
- struct state_key *key = p->state;
- GLboolean saturate = (unit < p->last_tex_stage);
+ const struct state_key *key = p->state;
+ GLboolean saturate;
GLuint rgb_shift, alpha_shift;
- struct ureg out, shift;
- struct ureg dest;
+ struct ureg out, dest;
if (!key->unit[unit].enabled) {
return get_source(p, SRC_PREVIOUS, 0);
@@ -1141,6 +1143,11 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
break;
}
+ /* If we'll do rgb/alpha shifting don't saturate in emit_combine().
+ * We don't want to clamp twice.
+ */
+ saturate = !(rgb_shift || alpha_shift);
+
/* If this is the very last calculation, emit direct to output reg:
*/
if (key->separate_specular ||
@@ -1163,7 +1170,6 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
}
else if (key->unit[unit].ModeRGB == MODE_DOT3_RGBA_EXT ||
key->unit[unit].ModeRGB == MODE_DOT3_RGBA) {
-
out = emit_combine( p, dest, WRITEMASK_XYZW, saturate,
unit,
key->unit[unit].NumArgsRGB,
@@ -1189,6 +1195,10 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
/* Deal with the final shift:
*/
if (alpha_shift || rgb_shift) {
+ struct ureg shift;
+
+ saturate = GL_TRUE; /* always saturate at this point */
+
if (rgb_shift == alpha_shift) {
shift = register_scalar_const(p, (GLfloat)(1<<rgb_shift));
}
@@ -1213,7 +1223,7 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
static void load_texture( struct texenv_fragment_program *p, GLuint unit )
{
if (is_undef(p->src_texture[unit])) {
- GLuint texTarget = p->state->unit[unit].source_index;
+ const GLuint texTarget = p->state->unit[unit].source_index;
struct ureg texcoord;
struct ureg tmp = get_tex_temp( p );
@@ -1225,9 +1235,6 @@ static void load_texture( struct texenv_fragment_program *p, GLuint unit )
texcoord = p->texcoord_tex[unit];
}
- if (texTarget == TEXTURE_UNKNOWN_INDEX)
- program_error(p, "TexSrcBit");
-
/* TODO: Use D0_MASK_XY where possible.
*/
if (p->state->unit[unit].enabled) {
@@ -1286,9 +1293,9 @@ static GLboolean load_texenv_source( struct texenv_fragment_program *p,
* Generate instructions for loading all texture source terms.
*/
static GLboolean
-load_texunit_sources( struct texenv_fragment_program *p, int unit )
+load_texunit_sources( struct texenv_fragment_program *p, GLuint unit )
{
- struct state_key *key = p->state;
+ const struct state_key *key = p->state;
GLuint i;
for (i = 0; i < key->unit[unit].NumArgsRGB; i++) {
@@ -1306,9 +1313,9 @@ load_texunit_sources( struct texenv_fragment_program *p, int unit )
* Generate instructions for loading bump map textures.
*/
static GLboolean
-load_texunit_bumpmap( struct texenv_fragment_program *p, int unit )
+load_texunit_bumpmap( struct texenv_fragment_program *p, GLuint unit )
{
- struct state_key *key = p->state;
+ const struct state_key *key = p->state;
GLuint bumpedUnitNr = key->unit[unit].OptRGB[1].Source - SRC_TEXTURE0;
struct ureg texcDst, bumpMapRes;
struct ureg constdudvcolor = register_const4f(p, 0.0, 0.0, 0.0, 1.0);
@@ -1322,17 +1329,20 @@ load_texunit_bumpmap( struct texenv_fragment_program *p, int unit )
texcDst = get_tex_temp( p );
p->texcoord_tex[bumpedUnitNr] = texcDst;
- /* apply rot matrix and add coords to be available in next phase */
- /* dest = (Arg0.xxxx * rotMat0 + Arg1) + (Arg0.yyyy * rotMat1) */
- /* note only 2 coords are affected the rest are left unchanged (mul by 0) */
+ /* Apply rot matrix and add coords to be available in next phase.
+ * dest = (Arg0.xxxx * rotMat0 + Arg1) + (Arg0.yyyy * rotMat1)
+ * note only 2 coords are affected the rest are left unchanged (mul by 0)
+ */
emit_arith( p, OPCODE_MAD, texcDst, WRITEMASK_XYZW, 0,
swizzle1(bumpMapRes, SWIZZLE_X), rotMat0, texcSrc );
emit_arith( p, OPCODE_MAD, texcDst, WRITEMASK_XYZW, 0,
swizzle1(bumpMapRes, SWIZZLE_Y), rotMat1, texcDst );
- /* move 0,0,0,1 into bumpmap src if someone (crossbar) is foolish
- enough to access this later, should optimize away */
- emit_arith( p, OPCODE_MOV, bumpMapRes, WRITEMASK_XYZW, 0, constdudvcolor, undef, undef );
+ /* Move 0,0,0,1 into bumpmap src if someone (crossbar) is foolish
+ * enough to access this later, should optimize away.
+ */
+ emit_arith( p, OPCODE_MOV, bumpMapRes, WRITEMASK_XYZW, 0,
+ constdudvcolor, undef, undef );
return GL_TRUE;
}
@@ -1351,7 +1361,6 @@ create_new_program(GLcontext *ctx, struct state_key *key,
struct ureg cf, out;
_mesa_memset(&p, 0, sizeof(p));
- p.ctx = ctx;
p.state = key;
p.program = program;
@@ -1360,17 +1369,17 @@ create_new_program(GLcontext *ctx, struct state_key *key,
*/
p.program->Base.Instructions = instBuffer;
p.program->Base.Target = GL_FRAGMENT_PROGRAM_ARB;
- p.program->Base.NumTexIndirections = 1;
+ p.program->Base.String = NULL;
+ p.program->Base.NumTexIndirections = 1; /* is this right? */
p.program->Base.NumTexInstructions = 0;
p.program->Base.NumAluInstructions = 0;
- p.program->Base.String = NULL;
- p.program->Base.NumInstructions =
- p.program->Base.NumTemporaries =
- p.program->Base.NumParameters =
- p.program->Base.NumAttributes = p.program->Base.NumAddressRegs = 0;
+ p.program->Base.NumInstructions = 0;
+ p.program->Base.NumTemporaries = 0;
+ p.program->Base.NumParameters = 0;
+ p.program->Base.NumAttributes = 0;
+ p.program->Base.NumAddressRegs = 0;
p.program->Base.Parameters = _mesa_new_parameter_list();
-
- p.program->Base.InputsRead = 0;
+ p.program->Base.InputsRead = 0x0;
p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR;
for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) {
@@ -1387,10 +1396,12 @@ create_new_program(GLcontext *ctx, struct state_key *key,
release_temps(ctx, &p);
if (key->enabled_units) {
- GLboolean needbumpstage = GL_FALSE;
+ GLboolean needbumpstage = GL_FALSE;
+
/* Zeroth pass - bump map textures first */
- for (unit = 0 ; unit < ctx->Const.MaxTextureUnits ; unit++)
- if (key->unit[unit].enabled && key->unit[unit].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
+ for (unit = 0; unit < key->nr_enabled_units; unit++)
+ if (key->unit[unit].enabled &&
+ key->unit[unit].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
needbumpstage = GL_TRUE;
load_texunit_bumpmap( &p, unit );
}
@@ -1401,7 +1412,7 @@ create_new_program(GLcontext *ctx, struct state_key *key,
* all referenced texture sources and emit texld instructions
* for each:
*/
- for (unit = 0 ; unit < ctx->Const.MaxTextureUnits ; unit++)
+ for (unit = 0; unit < key->nr_enabled_units; unit++)
if (key->unit[unit].enabled) {
load_texunit_sources( &p, unit );
p.last_tex_stage = unit;
@@ -1409,8 +1420,8 @@ create_new_program(GLcontext *ctx, struct state_key *key,
/* Second pass - emit combine instructions to build final color:
*/
- for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++)
- if (key->enabled_units & (1<<unit)) {
+ for (unit = 0; unit < key->nr_enabled_units; unit++)
+ if (key->unit[unit].enabled) {
p.src_previous = emit_texenv( &p, unit );
reserve_temp(&p, p.src_previous); /* don't re-use this temp reg */
release_temps(ctx, &p); /* release all temps */
@@ -1443,9 +1454,11 @@ create_new_program(GLcontext *ctx, struct state_key *key,
* a reduced value and not what is expected in FogOption
*/
p.program->FogOption = ctx->Fog.Mode;
- p.program->Base.InputsRead |= FRAG_BIT_FOGC; /* XXX new */
- } else
+ p.program->Base.InputsRead |= FRAG_BIT_FOGC;
+ }
+ else {
p.program->FogOption = GL_NONE;
+ }
if (p.program->Base.NumTexIndirections > ctx->Const.FragmentProgram.MaxTexIndirections)
program_error(&p, "Exceeded max nr indirect texture lookups");
@@ -1498,12 +1511,13 @@ _mesa_get_fixed_func_fragment_program(GLcontext *ctx)
{
struct gl_fragment_program *prog;
struct state_key key;
+ GLuint keySize;
- make_state_key(ctx, &key);
+ keySize = make_state_key(ctx, &key);
prog = (struct gl_fragment_program *)
_mesa_search_program_cache(ctx->FragmentProgram.Cache,
- &key, sizeof(key));
+ &key, keySize);
if (!prog) {
prog = (struct gl_fragment_program *)
@@ -1512,7 +1526,7 @@ _mesa_get_fixed_func_fragment_program(GLcontext *ctx)
create_new_program(ctx, &key, prog);
_mesa_program_cache_insert(ctx, ctx->FragmentProgram.Cache,
- &key, sizeof(key), &prog->Base);
+ &key, keySize, &prog->Base);
}
return prog;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 6e0c0c688a1..861c5f37c4e 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -729,14 +729,7 @@ init_texture_unit( GLcontext *ctx, GLuint unit )
ASSIGN_4V( texUnit->GenT.EyePlane, 0.0, 1.0, 0.0, 0.0 );
ASSIGN_4V( texUnit->GenR.EyePlane, 0.0, 0.0, 0.0, 0.0 );
ASSIGN_4V( texUnit->GenQ.EyePlane, 0.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenS.ObjectPlane, 1.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenT.ObjectPlane, 0.0, 1.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenR.ObjectPlane, 0.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenQ.ObjectPlane, 0.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenS.EyePlane, 1.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenT.EyePlane, 0.0, 1.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenR.EyePlane, 0.0, 0.0, 0.0, 0.0 );
- ASSIGN_4V( texUnit->GenQ.EyePlane, 0.0, 0.0, 0.0, 0.0 );
+
/* no mention of this in spec, but maybe id matrix expected? */
ASSIGN_4V( texUnit->RotMatrix, 1.0, 0.0, 0.0, 1.0 );
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index be1c03cec2a..6cd2a2f4f64 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -1038,24 +1038,6 @@ _mesa_MultiDrawArraysEXT( GLenum mode, GLint *first,
}
-/* GL_EXT_multi_draw_arrays */
-void GLAPIENTRY
-_mesa_MultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type,
- const GLvoid **indices, GLsizei primcount )
-{
- GET_CURRENT_CONTEXT(ctx);
- GLint i;
-
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
- for (i = 0; i < primcount; i++) {
- if (count[i] > 0) {
- CALL_DrawElements(ctx->Exec, (mode, count[i], type, indices[i]));
- }
- }
-}
-
-
/* GL_IBM_multimode_draw_arrays */
void GLAPIENTRY
_mesa_MultiModeDrawArraysIBM( const GLenum * mode, const GLint * first,
diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c
index 1f807dc3dc3..8d6f560a80a 100644
--- a/src/mesa/main/vtxfmt.c
+++ b/src/mesa/main/vtxfmt.c
@@ -133,6 +133,7 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt )
SET_DrawArrays(tab, vfmt->DrawArrays);
SET_DrawElements(tab, vfmt->DrawElements);
SET_DrawRangeElements(tab, vfmt->DrawRangeElements);
+ SET_MultiDrawElementsEXT(tab, vfmt->MultiDrawElementsEXT);
SET_EvalMesh1(tab, vfmt->EvalMesh1);
SET_EvalMesh2(tab, vfmt->EvalMesh2);
ASSERT(tab->EvalMesh2);
diff --git a/src/mesa/main/vtxfmt_tmp.h b/src/mesa/main/vtxfmt_tmp.h
index 6f5d01e40f2..1308d0aa466 100644
--- a/src/mesa/main/vtxfmt_tmp.h
+++ b/src/mesa/main/vtxfmt_tmp.h
@@ -335,6 +335,17 @@ static void GLAPIENTRY TAG(DrawElements)( GLenum mode, GLsizei count, GLenum typ
CALL_DrawElements(GET_DISPATCH(), ( mode, count, type, indices ));
}
+static void GLAPIENTRY TAG(MultiDrawElementsEXT)( GLenum mode,
+ const GLsizei *count,
+ GLenum type,
+ const GLvoid **indices,
+ GLsizei primcount)
+{
+ PRE_LOOPBACK( MultiDrawElementsEXT );
+ CALL_MultiDrawElementsEXT(GET_DISPATCH(), ( mode, count, type, indices,
+ primcount ));
+}
+
static void GLAPIENTRY TAG(DrawRangeElements)( GLenum mode, GLuint start,
GLuint end, GLsizei count,
GLenum type, const GLvoid *indices )
@@ -522,6 +533,7 @@ static GLvertexformat TAG(vtxfmt) = {
TAG(DrawArrays),
TAG(DrawElements),
TAG(DrawRangeElements),
+ TAG(MultiDrawElementsEXT),
TAG(EvalMesh1),
TAG(EvalMesh2)
};
diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c
index 6d661bd1874..709426f3a63 100644
--- a/src/mesa/shader/lex.yy.c
+++ b/src/mesa/shader/lex.yy.c
@@ -53,6 +53,7 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-#endif /* ! C99 */
-
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -158,15 +157,7 @@ typedef void* yyscan_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -910,6 +901,7 @@ static yyconst flex_int16_t yy_chk[1023] =
*/
#include "main/glheader.h"
#include "prog_instruction.h"
+#include "prog_statevars.h"
#include "program_parser.h"
#include "program_parse.tab.h"
@@ -1011,7 +1003,7 @@ swiz_from_char(char c)
} while(0);
#define YY_EXTRA_TYPE struct asm_parser_state *
-#line 1015 "lex.yy.c"
+#line 1007 "lex.yy.c"
#define INITIAL 0
@@ -1148,12 +1140,7 @@ static int input (yyscan_t yyscanner );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -1161,7 +1148,7 @@ static int input (yyscan_t yyscanner );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -1172,7 +1159,7 @@ static int input (yyscan_t yyscanner );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ unsigned n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -1257,10 +1244,10 @@ YY_DECL
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-#line 135 "program_lexer.l"
+#line 136 "program_lexer.l"
-#line 1264 "lex.yy.c"
+#line 1251 "lex.yy.c"
yylval = yylval_param;
@@ -1349,17 +1336,17 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 137 "program_lexer.l"
+#line 138 "program_lexer.l"
{ return ARBvp_10; }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 138 "program_lexer.l"
+#line 139 "program_lexer.l"
{ return ARBfp_10; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 139 "program_lexer.l"
+#line 140 "program_lexer.l"
{
yylval->integer = at_address;
return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS);
@@ -1367,747 +1354,747 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 143 "program_lexer.l"
+#line 144 "program_lexer.l"
{ return ALIAS; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 144 "program_lexer.l"
+#line 145 "program_lexer.l"
{ return ATTRIB; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 145 "program_lexer.l"
+#line 146 "program_lexer.l"
{ return END; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 146 "program_lexer.l"
+#line 147 "program_lexer.l"
{ return OPTION; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 147 "program_lexer.l"
+#line 148 "program_lexer.l"
{ return OUTPUT; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 148 "program_lexer.l"
+#line 149 "program_lexer.l"
{ return PARAM; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 149 "program_lexer.l"
+#line 150 "program_lexer.l"
{ yylval->integer = at_temp; return TEMP; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 151 "program_lexer.l"
+#line 152 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, ABS, OFF); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 152 "program_lexer.l"
+#line 153 "program_lexer.l"
{ return_opcode(require_ARB_fp, VECTOR_OP, ABS, ZERO_ONE); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 153 "program_lexer.l"
+#line 154 "program_lexer.l"
{ return_opcode( 1, BIN_OP, ADD, OFF); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 154 "program_lexer.l"
+#line 155 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, ADD, ZERO_ONE); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 155 "program_lexer.l"
+#line 156 "program_lexer.l"
{ return_opcode(require_ARB_vp, ARL, ARL, OFF); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 157 "program_lexer.l"
+#line 158 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, CMP, OFF); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 158 "program_lexer.l"
+#line 159 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 159 "program_lexer.l"
+#line 160 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 160 "program_lexer.l"
+#line 161 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 162 "program_lexer.l"
+#line 163 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP3, OFF); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 163 "program_lexer.l"
+#line 164 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 164 "program_lexer.l"
+#line 165 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DP4, OFF); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 165 "program_lexer.l"
+#line 166 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 166 "program_lexer.l"
+#line 167 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DPH, OFF); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 167 "program_lexer.l"
+#line 168 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 168 "program_lexer.l"
+#line 169 "program_lexer.l"
{ return_opcode( 1, BIN_OP, DST, OFF); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 169 "program_lexer.l"
+#line 170 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 171 "program_lexer.l"
+#line 172 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, EX2, OFF); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 172 "program_lexer.l"
+#line 173 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 173 "program_lexer.l"
+#line 174 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 175 "program_lexer.l"
+#line 176 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FLR, OFF); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 176 "program_lexer.l"
+#line 177 "program_lexer.l"
{ return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 177 "program_lexer.l"
+#line 178 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, FRC, OFF); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 178 "program_lexer.l"
+#line 179 "program_lexer.l"
{ return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 180 "program_lexer.l"
+#line 181 "program_lexer.l"
{ return_opcode(require_ARB_fp, KIL, KIL, OFF); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 182 "program_lexer.l"
+#line 183 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, LIT, OFF); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 183 "program_lexer.l"
+#line 184 "program_lexer.l"
{ return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 184 "program_lexer.l"
+#line 185 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, LG2, OFF); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 185 "program_lexer.l"
+#line 186 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 186 "program_lexer.l"
+#line 187 "program_lexer.l"
{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 187 "program_lexer.l"
+#line 188 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 188 "program_lexer.l"
+#line 189 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 190 "program_lexer.l"
+#line 191 "program_lexer.l"
{ return_opcode( 1, TRI_OP, MAD, OFF); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 191 "program_lexer.l"
+#line 192 "program_lexer.l"
{ return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 192 "program_lexer.l"
+#line 193 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MAX, OFF); }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 193 "program_lexer.l"
+#line 194 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 194 "program_lexer.l"
+#line 195 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MIN, OFF); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 195 "program_lexer.l"
+#line 196 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 196 "program_lexer.l"
+#line 197 "program_lexer.l"
{ return_opcode( 1, VECTOR_OP, MOV, OFF); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 197 "program_lexer.l"
+#line 198 "program_lexer.l"
{ return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 198 "program_lexer.l"
+#line 199 "program_lexer.l"
{ return_opcode( 1, BIN_OP, MUL, OFF); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 199 "program_lexer.l"
+#line 200 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 201 "program_lexer.l"
+#line 202 "program_lexer.l"
{ return_opcode( 1, BINSC_OP, POW, OFF); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 202 "program_lexer.l"
+#line 203 "program_lexer.l"
{ return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 204 "program_lexer.l"
+#line 205 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RCP, OFF); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 205 "program_lexer.l"
+#line 206 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 206 "program_lexer.l"
+#line 207 "program_lexer.l"
{ return_opcode( 1, SCALAR_OP, RSQ, OFF); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 207 "program_lexer.l"
+#line 208 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 209 "program_lexer.l"
+#line 210 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 210 "program_lexer.l"
+#line 211 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 211 "program_lexer.l"
+#line 212 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SGE, OFF); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 212 "program_lexer.l"
+#line 213 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 213 "program_lexer.l"
+#line 214 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 214 "program_lexer.l"
+#line 215 "program_lexer.l"
{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 215 "program_lexer.l"
+#line 216 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SLT, OFF); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 216 "program_lexer.l"
+#line 217 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 217 "program_lexer.l"
+#line 218 "program_lexer.l"
{ return_opcode( 1, BIN_OP, SUB, OFF); }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 218 "program_lexer.l"
+#line 219 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 219 "program_lexer.l"
+#line 220 "program_lexer.l"
{ return_opcode( 1, SWZ, SWZ, OFF); }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 220 "program_lexer.l"
+#line 221 "program_lexer.l"
{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 222 "program_lexer.l"
+#line 223 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 223 "program_lexer.l"
+#line 224 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 224 "program_lexer.l"
+#line 225 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 225 "program_lexer.l"
+#line 226 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 226 "program_lexer.l"
+#line 227 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 227 "program_lexer.l"
+#line 228 "program_lexer.l"
{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 229 "program_lexer.l"
+#line 230 "program_lexer.l"
{ return_opcode( 1, BIN_OP, XPD, OFF); }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 230 "program_lexer.l"
+#line 231 "program_lexer.l"
{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 232 "program_lexer.l"
+#line 233 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 233 "program_lexer.l"
+#line 234 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 234 "program_lexer.l"
+#line 235 "program_lexer.l"
{ return PROGRAM; }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 235 "program_lexer.l"
+#line 236 "program_lexer.l"
{ return STATE; }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 236 "program_lexer.l"
+#line 237 "program_lexer.l"
{ return RESULT; }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 238 "program_lexer.l"
+#line 239 "program_lexer.l"
{ return AMBIENT; }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 239 "program_lexer.l"
+#line 240 "program_lexer.l"
{ return ATTENUATION; }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 240 "program_lexer.l"
+#line 241 "program_lexer.l"
{ return BACK; }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 241 "program_lexer.l"
+#line 242 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, CLIP); }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 242 "program_lexer.l"
+#line 243 "program_lexer.l"
{ return COLOR; }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 243 "program_lexer.l"
+#line 244 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, DEPTH); }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 244 "program_lexer.l"
+#line 245 "program_lexer.l"
{ return DIFFUSE; }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 245 "program_lexer.l"
+#line 246 "program_lexer.l"
{ return DIRECTION; }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 246 "program_lexer.l"
+#line 247 "program_lexer.l"
{ return EMISSION; }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 247 "program_lexer.l"
+#line 248 "program_lexer.l"
{ return ENV; }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 248 "program_lexer.l"
+#line 249 "program_lexer.l"
{ return EYE; }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 249 "program_lexer.l"
+#line 250 "program_lexer.l"
{ return FOGCOORD; }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 250 "program_lexer.l"
+#line 251 "program_lexer.l"
{ return FOG; }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 251 "program_lexer.l"
+#line 252 "program_lexer.l"
{ return FRONT; }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 252 "program_lexer.l"
+#line 253 "program_lexer.l"
{ return HALF; }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 253 "program_lexer.l"
+#line 254 "program_lexer.l"
{ return INVERSE; }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 254 "program_lexer.l"
+#line 255 "program_lexer.l"
{ return INVTRANS; }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 255 "program_lexer.l"
+#line 256 "program_lexer.l"
{ return LIGHT; }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 256 "program_lexer.l"
+#line 257 "program_lexer.l"
{ return LIGHTMODEL; }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 257 "program_lexer.l"
+#line 258 "program_lexer.l"
{ return LIGHTPROD; }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 258 "program_lexer.l"
+#line 259 "program_lexer.l"
{ return LOCAL; }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 259 "program_lexer.l"
+#line 260 "program_lexer.l"
{ return MATERIAL; }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 260 "program_lexer.l"
+#line 261 "program_lexer.l"
{ return MAT_PROGRAM; }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 261 "program_lexer.l"
+#line 262 "program_lexer.l"
{ return MATRIX; }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 262 "program_lexer.l"
+#line 263 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 263 "program_lexer.l"
+#line 264 "program_lexer.l"
{ return MODELVIEW; }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 264 "program_lexer.l"
+#line 265 "program_lexer.l"
{ return MVP; }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 265 "program_lexer.l"
+#line 266 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, NORMAL); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 266 "program_lexer.l"
+#line 267 "program_lexer.l"
{ return OBJECT; }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 267 "program_lexer.l"
+#line 268 "program_lexer.l"
{ return PALETTE; }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 268 "program_lexer.l"
+#line 269 "program_lexer.l"
{ return PARAMS; }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 269 "program_lexer.l"
+#line 270 "program_lexer.l"
{ return PLANE; }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 270 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, POINT); }
+#line 271 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, POINT_TOK); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 271 "program_lexer.l"
+#line 272 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 272 "program_lexer.l"
+#line 273 "program_lexer.l"
{ return POSITION; }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 273 "program_lexer.l"
+#line 274 "program_lexer.l"
{ return PRIMARY; }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 274 "program_lexer.l"
+#line 275 "program_lexer.l"
{ return PROJECTION; }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 275 "program_lexer.l"
+#line 276 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, RANGE); }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 276 "program_lexer.l"
+#line 277 "program_lexer.l"
{ return ROW; }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 277 "program_lexer.l"
+#line 278 "program_lexer.l"
{ return SCENECOLOR; }
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 278 "program_lexer.l"
+#line 279 "program_lexer.l"
{ return SECONDARY; }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 279 "program_lexer.l"
+#line 280 "program_lexer.l"
{ return SHININESS; }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 280 "program_lexer.l"
-{ return_token_or_DOT(require_ARB_vp, SIZE); }
+#line 281 "program_lexer.l"
+{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 281 "program_lexer.l"
+#line 282 "program_lexer.l"
{ return SPECULAR; }
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 282 "program_lexer.l"
+#line 283 "program_lexer.l"
{ return SPOT; }
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 283 "program_lexer.l"
+#line 284 "program_lexer.l"
{ return TEXCOORD; }
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 284 "program_lexer.l"
+#line 285 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, TEXENV); }
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 285 "program_lexer.l"
+#line 286 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN); }
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 286 "program_lexer.l"
+#line 287 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); }
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 287 "program_lexer.l"
+#line 288 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); }
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 288 "program_lexer.l"
+#line 289 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); }
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 289 "program_lexer.l"
+#line 290 "program_lexer.l"
{ return TEXTURE; }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 290 "program_lexer.l"
+#line 291 "program_lexer.l"
{ return TRANSPOSE; }
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 291 "program_lexer.l"
+#line 292 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 292 "program_lexer.l"
+#line 293 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, WEIGHT); }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 294 "program_lexer.l"
+#line 295 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); }
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 295 "program_lexer.l"
+#line 296 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); }
YY_BREAK
case 141:
YY_RULE_SETUP
-#line 296 "program_lexer.l"
+#line 297 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); }
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 297 "program_lexer.l"
+#line 298 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); }
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 298 "program_lexer.l"
+#line 299 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); }
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 299 "program_lexer.l"
+#line 300 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); }
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 300 "program_lexer.l"
+#line 301 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); }
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 301 "program_lexer.l"
+#line 302 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); }
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 302 "program_lexer.l"
+#line 303 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); }
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 303 "program_lexer.l"
+#line 304 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); }
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 304 "program_lexer.l"
+#line 305 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); }
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 305 "program_lexer.l"
+#line 306 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); }
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 306 "program_lexer.l"
+#line 307 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); }
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 308 "program_lexer.l"
+#line 309 "program_lexer.l"
{
yylval->string = strdup(yytext);
return IDENTIFIER;
@@ -2115,12 +2102,12 @@ YY_RULE_SETUP
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 313 "program_lexer.l"
+#line 314 "program_lexer.l"
{ return DOT_DOT; }
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 315 "program_lexer.l"
+#line 316 "program_lexer.l"
{
yylval->integer = strtol(yytext, NULL, 10);
return INTEGER;
@@ -2128,7 +2115,7 @@ YY_RULE_SETUP
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 319 "program_lexer.l"
+#line 320 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2140,7 +2127,7 @@ case 156:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 323 "program_lexer.l"
+#line 324 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2148,7 +2135,7 @@ YY_RULE_SETUP
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 327 "program_lexer.l"
+#line 328 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2156,7 +2143,7 @@ YY_RULE_SETUP
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 331 "program_lexer.l"
+#line 332 "program_lexer.l"
{
yylval->real = strtod(yytext, NULL);
return REAL;
@@ -2164,7 +2151,7 @@ YY_RULE_SETUP
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 336 "program_lexer.l"
+#line 337 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2173,7 +2160,7 @@ YY_RULE_SETUP
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 342 "program_lexer.l"
+#line 343 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2183,7 +2170,7 @@ YY_RULE_SETUP
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 348 "program_lexer.l"
+#line 349 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2192,7 +2179,7 @@ YY_RULE_SETUP
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 353 "program_lexer.l"
+#line 354 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2201,7 +2188,7 @@ YY_RULE_SETUP
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 359 "program_lexer.l"
+#line 360 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2211,7 +2198,7 @@ YY_RULE_SETUP
YY_BREAK
case 164:
YY_RULE_SETUP
-#line 365 "program_lexer.l"
+#line 366 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2221,7 +2208,7 @@ YY_RULE_SETUP
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 371 "program_lexer.l"
+#line 372 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2230,7 +2217,7 @@ YY_RULE_SETUP
YY_BREAK
case 166:
YY_RULE_SETUP
-#line 377 "program_lexer.l"
+#line 378 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2240,7 +2227,7 @@ YY_RULE_SETUP
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 384 "program_lexer.l"
+#line 385 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2252,7 +2239,7 @@ YY_RULE_SETUP
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 393 "program_lexer.l"
+#line 394 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_NOOP;
yylval->swiz_mask.mask = WRITEMASK_XYZW;
@@ -2261,7 +2248,7 @@ YY_RULE_SETUP
YY_BREAK
case 169:
YY_RULE_SETUP
-#line 399 "program_lexer.l"
+#line 400 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XY
@@ -2271,7 +2258,7 @@ YY_RULE_SETUP
YY_BREAK
case 170:
YY_RULE_SETUP
-#line 405 "program_lexer.l"
+#line 406 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_XZW;
@@ -2280,7 +2267,7 @@ YY_RULE_SETUP
YY_BREAK
case 171:
YY_RULE_SETUP
-#line 410 "program_lexer.l"
+#line 411 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_YZW;
@@ -2289,7 +2276,7 @@ YY_RULE_SETUP
YY_BREAK
case 172:
YY_RULE_SETUP
-#line 416 "program_lexer.l"
+#line 417 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_X
@@ -2299,7 +2286,7 @@ YY_RULE_SETUP
YY_BREAK
case 173:
YY_RULE_SETUP
-#line 422 "program_lexer.l"
+#line 423 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_Y
@@ -2309,7 +2296,7 @@ YY_RULE_SETUP
YY_BREAK
case 174:
YY_RULE_SETUP
-#line 428 "program_lexer.l"
+#line 429 "program_lexer.l"
{
yylval->swiz_mask.swizzle = SWIZZLE_INVAL;
yylval->swiz_mask.mask = WRITEMASK_ZW;
@@ -2318,7 +2305,7 @@ YY_RULE_SETUP
YY_BREAK
case 175:
YY_RULE_SETUP
-#line 434 "program_lexer.l"
+#line 435 "program_lexer.l"
{
const unsigned s = swiz_from_char(yytext[1]);
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s);
@@ -2328,7 +2315,7 @@ YY_RULE_SETUP
YY_BREAK
case 176:
YY_RULE_SETUP
-#line 442 "program_lexer.l"
+#line 443 "program_lexer.l"
{
if (require_ARB_vp) {
return TEXGEN_R;
@@ -2342,7 +2329,7 @@ YY_RULE_SETUP
YY_BREAK
case 177:
YY_RULE_SETUP
-#line 453 "program_lexer.l"
+#line 454 "program_lexer.l"
{
yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]),
swiz_from_char(yytext[2]),
@@ -2354,13 +2341,13 @@ YY_RULE_SETUP
YY_BREAK
case 178:
YY_RULE_SETUP
-#line 462 "program_lexer.l"
+#line 463 "program_lexer.l"
{ return DOT; }
YY_BREAK
case 179:
/* rule 179 can match eol */
YY_RULE_SETUP
-#line 464 "program_lexer.l"
+#line 465 "program_lexer.l"
{
yylloc->first_line++;
yylloc->first_column = 1;
@@ -2371,7 +2358,7 @@ YY_RULE_SETUP
YY_BREAK
case 180:
YY_RULE_SETUP
-#line 471 "program_lexer.l"
+#line 472 "program_lexer.l"
/* eat whitespace */ ;
YY_BREAK
case 181:
@@ -2379,20 +2366,20 @@ case 181:
yyg->yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 472 "program_lexer.l"
+#line 473 "program_lexer.l"
/* eat comments */ ;
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 473 "program_lexer.l"
+#line 474 "program_lexer.l"
{ return yytext[0]; }
YY_BREAK
case 183:
YY_RULE_SETUP
-#line 474 "program_lexer.l"
+#line 475 "program_lexer.l"
ECHO;
YY_BREAK
-#line 2396 "lex.yy.c"
+#line 2383 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -3160,8 +3147,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yyscanner The scanner object.
* @return the newly allocated buffer state object.
*/
@@ -3567,7 +3554,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 474 "program_lexer.l"
+#line 475 "program_lexer.l"
diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c
index f4beb9a78b6..c8a762f8ff7 100644
--- a/src/mesa/shader/prog_execute.c
+++ b/src/mesa/shader/prog_execute.c
@@ -922,6 +922,11 @@ _mesa_execute_program(GLcontext * ctx,
{
GLfloat a[4];
fetch_vector4(&inst->SrcReg[0], machine, a);
+ if (DEBUG_PROG) {
+ printf("KIL if (%g %g %g %g) <= 0.0\n",
+ a[0], a[1], a[2], a[3]);
+ }
+
if (a[0] < 0.0F || a[1] < 0.0F || a[2] < 0.0F || a[3] < 0.0F) {
return GL_FALSE;
}
diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l
index c50c7c57399..d2402174816 100644
--- a/src/mesa/shader/program_lexer.l
+++ b/src/mesa/shader/program_lexer.l
@@ -23,6 +23,7 @@
*/
#include "main/glheader.h"
#include "prog_instruction.h"
+#include "prog_statevars.h"
#include "program_parser.h"
#include "program_parse.tab.h"
@@ -267,7 +268,7 @@ result { return RESULT; }
{dot}palette { return PALETTE; }
{dot}params { return PARAMS; }
{dot}plane { return PLANE; }
-{dot}point { return_token_or_DOT(require_ARB_vp, POINT); }
+{dot}point { return_token_or_DOT(require_ARB_vp, POINT_TOK); }
{dot}pointsize { return_token_or_DOT(require_ARB_vp, POINTSIZE); }
{dot}position { return POSITION; }
{dot}primary { return PRIMARY; }
@@ -277,7 +278,7 @@ result { return RESULT; }
{dot}scenecolor { return SCENECOLOR; }
{dot}secondary { return SECONDARY; }
{dot}shininess { return SHININESS; }
-{dot}size { return_token_or_DOT(require_ARB_vp, SIZE); }
+{dot}size { return_token_or_DOT(require_ARB_vp, SIZE_TOK); }
{dot}specular { return SPECULAR; }
{dot}spot { return SPOT; }
{dot}texcoord { return TEXCOORD; }
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c
index 5c604c2fd1f..9f2d4de90fc 100644
--- a/src/mesa/shader/program_parse.tab.c
+++ b/src/mesa/shader/program_parse.tab.c
@@ -251,7 +251,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
PALETTE = 309,
PARAMS = 310,
PLANE = 311,
- POINT = 312,
+ POINT_TOK = 312,
POINTSIZE = 313,
POSITION = 314,
PRIMARY = 315,
@@ -263,7 +263,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
SCENECOLOR = 321,
SECONDARY = 322,
SHININESS = 323,
- SIZE = 324,
+ SIZE_TOK = 324,
SPECULAR = 325,
SPOT = 326,
STATE = 327,
@@ -324,7 +324,7 @@ typedef union YYSTYPE
unsigned attrib;
int integer;
float real;
- unsigned state[5];
+ gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
gl_inst_opcode opcode;
@@ -587,7 +587,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 340
+#define YYLAST 342
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 115
@@ -596,7 +596,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 264
/* YYNRULES -- Number of states. */
-#define YYNSTATES 434
+#define YYNSTATES 436
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -671,14 +671,14 @@ static const yytype_uint16 yyprhs[] =
440, 442, 447, 449, 451, 453, 455, 457, 459, 462,
464, 466, 472, 474, 477, 479, 481, 487, 490, 491,
498, 502, 503, 505, 507, 509, 511, 513, 516, 518,
- 520, 523, 528, 533, 534, 536, 538, 540, 542, 545,
- 547, 549, 551, 553, 559, 561, 565, 571, 577, 579,
- 583, 589, 591, 593, 595, 597, 599, 601, 603, 605,
- 607, 611, 617, 625, 635, 638, 641, 643, 645, 646,
- 647, 651, 652, 656, 660, 662, 667, 670, 673, 676,
- 679, 683, 686, 690, 691, 693, 695, 696, 698, 700,
- 701, 703, 705, 706, 708, 710, 711, 715, 716, 720,
- 721, 725, 727, 729, 731
+ 520, 523, 528, 533, 534, 538, 540, 542, 544, 547,
+ 549, 551, 553, 555, 561, 563, 567, 573, 579, 581,
+ 585, 591, 593, 595, 597, 599, 601, 603, 605, 607,
+ 609, 613, 619, 627, 637, 640, 643, 645, 647, 648,
+ 649, 653, 654, 658, 662, 664, 669, 672, 675, 678,
+ 681, 685, 688, 692, 693, 695, 697, 698, 700, 702,
+ 703, 705, 707, 708, 710, 712, 713, 717, 718, 722,
+ 723, 727, 729, 731, 733
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -737,27 +737,27 @@ static const yytype_int16 yyrhs[] =
204, -1, -1, 205, -1, 40, -1, 81, -1, 41,
-1, 22, -1, 50, 208, -1, 62, -1, 51, -1,
80, 242, -1, 54, 108, 210, 109, -1, 47, 108,
- 211, 109, -1, -1, 209, -1, 22, -1, 22, -1,
- 22, -1, 29, 63, -1, 217, -1, 220, -1, 215,
- -1, 218, -1, 61, 33, 108, 216, 109, -1, 221,
- -1, 221, 104, 221, -1, 61, 33, 108, 221, 109,
- -1, 61, 45, 108, 219, 109, -1, 222, -1, 222,
- 104, 222, -1, 61, 45, 108, 222, 109, -1, 22,
- -1, 22, -1, 225, -1, 227, -1, 226, -1, 227,
- -1, 228, -1, 23, -1, 22, -1, 113, 228, 114,
- -1, 113, 228, 107, 228, 114, -1, 113, 228, 107,
- 228, 107, 228, 114, -1, 113, 228, 107, 228, 107,
- 228, 107, 228, 114, -1, 229, 23, -1, 229, 22,
- -1, 110, -1, 111, -1, -1, -1, 11, 231, 234,
- -1, -1, 5, 233, 234, -1, 234, 107, 98, -1,
- 98, -1, 9, 98, 112, 236, -1, 64, 59, -1,
- 64, 36, -1, 64, 237, -1, 64, 58, -1, 64,
- 73, 242, -1, 64, 29, -1, 28, 238, 239, -1,
- -1, 38, -1, 26, -1, -1, 60, -1, 67, -1,
- -1, 38, -1, 26, -1, -1, 60, -1, 67, -1,
- -1, 108, 245, 109, -1, -1, 108, 246, 109, -1,
- -1, 108, 247, 109, -1, 22, -1, 22, -1, 22,
- -1, 6, 98, 112, 98, -1
+ 211, 109, -1, -1, 108, 209, 109, -1, 22, -1,
+ 22, -1, 22, -1, 29, 63, -1, 217, -1, 220,
+ -1, 215, -1, 218, -1, 61, 33, 108, 216, 109,
+ -1, 221, -1, 221, 104, 221, -1, 61, 33, 108,
+ 221, 109, -1, 61, 45, 108, 219, 109, -1, 222,
+ -1, 222, 104, 222, -1, 61, 45, 108, 222, 109,
+ -1, 22, -1, 22, -1, 225, -1, 227, -1, 226,
+ -1, 227, -1, 228, -1, 23, -1, 22, -1, 113,
+ 228, 114, -1, 113, 228, 107, 228, 114, -1, 113,
+ 228, 107, 228, 107, 228, 114, -1, 113, 228, 107,
+ 228, 107, 228, 107, 228, 114, -1, 229, 23, -1,
+ 229, 22, -1, 110, -1, 111, -1, -1, -1, 11,
+ 231, 234, -1, -1, 5, 233, 234, -1, 234, 107,
+ 98, -1, 98, -1, 9, 98, 112, 236, -1, 64,
+ 59, -1, 64, 36, -1, 64, 237, -1, 64, 58,
+ -1, 64, 73, 242, -1, 64, 29, -1, 28, 238,
+ 239, -1, -1, 38, -1, 26, -1, -1, 60, -1,
+ 67, -1, -1, 38, -1, 26, -1, -1, 60, -1,
+ 67, -1, -1, 108, 245, 109, -1, -1, 108, 246,
+ 109, -1, -1, 108, 247, 109, -1, 22, -1, 22,
+ -1, 22, -1, 6, 98, 112, 98, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -806,9 +806,9 @@ static const char *const yytname[] =
"EYE", "FOG", "FOGCOORD", "FRAGMENT", "FRONT", "HALF", "INVERSE",
"INVTRANS", "LIGHT", "LIGHTMODEL", "LIGHTPROD", "LOCAL", "MATERIAL",
"MAT_PROGRAM", "MATRIX", "MATRIXINDEX", "MODELVIEW", "MVP", "NORMAL",
- "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT", "POINTSIZE", "POSITION",
- "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
- "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE", "SPECULAR", "SPOT",
+ "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT_TOK", "POINTSIZE",
+ "POSITION", "PRIMARY", "PROGRAM", "PROJECTION", "RANGE", "RESULT", "ROW",
+ "SCENECOLOR", "SECONDARY", "SHININESS", "SIZE_TOK", "SPECULAR", "SPOT",
"STATE", "TEXCOORD", "TEXENV", "TEXGEN", "TEXGEN_Q", "TEXGEN_R",
"TEXGEN_S", "TEXGEN_T", "TEXTURE", "TRANSPOSE", "TEXTURE_UNIT", "TEX_1D",
"TEX_2D", "TEX_3D", "TEX_CUBE", "TEX_RECT", "TEX_SHADOW1D",
@@ -934,7 +934,7 @@ static const yytype_uint8 yyr2[] =
1, 4, 1, 1, 1, 1, 1, 1, 2, 1,
1, 5, 1, 2, 1, 1, 5, 2, 0, 6,
3, 0, 1, 1, 1, 1, 1, 2, 1, 1,
- 2, 4, 4, 0, 1, 1, 1, 1, 2, 1,
+ 2, 4, 4, 0, 3, 1, 1, 1, 2, 1,
1, 1, 1, 5, 1, 3, 5, 5, 1, 3,
5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 5, 7, 9, 2, 2, 1, 1, 0, 0,
@@ -977,111 +977,111 @@ static const yytype_uint16 yydefact[] =
0, 92, 228, 220, 62, 0, 60, 61, 0, 228,
0, 110, 256, 27, 26, 72, 45, 257, 0, 0,
211, 0, 212, 0, 172, 0, 160, 0, 152, 0,
- 157, 158, 141, 142, 159, 139, 140, 0, 195, 187,
- 194, 0, 190, 183, 185, 184, 180, 182, 263, 0,
- 156, 155, 162, 163, 0, 0, 102, 0, 99, 0,
- 0, 0, 55, 70, 64, 44, 0, 0, 228, 0,
- 31, 0, 228, 206, 210, 0, 0, 249, 197, 0,
- 196, 0, 260, 167, 166, 164, 165, 161, 186, 0,
- 97, 98, 101, 228, 221, 0, 0, 63, 228, 51,
- 52, 50, 0, 0, 0, 115, 123, 126, 124, 201,
- 202, 125, 262, 0, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 29, 28, 171, 146,
- 148, 145, 0, 143, 144, 0, 192, 191, 176, 0,
- 67, 65, 68, 66, 0, 0, 0, 127, 178, 228,
- 114, 258, 149, 147, 153, 154, 228, 222, 228, 0,
- 0, 0, 177, 116, 0, 0, 0, 204, 0, 208,
- 0, 223, 228, 203, 0, 207, 0, 0, 49, 205,
- 209, 0, 0, 179
+ 157, 158, 141, 142, 159, 139, 140, 0, 0, 187,
+ 0, 190, 183, 185, 184, 180, 182, 263, 0, 156,
+ 155, 162, 163, 0, 0, 102, 0, 99, 0, 0,
+ 0, 55, 70, 64, 44, 0, 0, 228, 0, 31,
+ 0, 228, 206, 210, 0, 0, 249, 197, 0, 195,
+ 0, 196, 0, 260, 167, 166, 164, 165, 161, 186,
+ 0, 97, 98, 101, 228, 221, 0, 0, 63, 228,
+ 51, 52, 50, 0, 0, 0, 115, 123, 126, 124,
+ 201, 202, 125, 262, 0, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 29, 28, 171,
+ 146, 148, 145, 0, 143, 144, 0, 192, 194, 191,
+ 176, 0, 67, 65, 68, 66, 0, 0, 0, 127,
+ 178, 228, 114, 258, 149, 147, 153, 154, 228, 222,
+ 228, 0, 0, 0, 177, 116, 0, 0, 0, 204,
+ 0, 208, 0, 223, 228, 203, 0, 207, 0, 0,
+ 49, 205, 209, 0, 0, 179
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 3, 4, 6, 8, 9, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 268, 376,
- 39, 146, 71, 58, 67, 315, 316, 351, 114, 59,
- 115, 255, 256, 257, 347, 391, 393, 68, 314, 105,
- 266, 196, 97, 40, 41, 116, 191, 309, 251, 307,
- 157, 42, 43, 44, 131, 83, 261, 354, 132, 117,
- 355, 356, 118, 171, 285, 172, 383, 403, 173, 228,
- 174, 404, 175, 301, 286, 277, 176, 304, 337, 177,
- 223, 178, 275, 179, 241, 180, 397, 412, 181, 296,
- 297, 339, 238, 289, 290, 331, 329, 182, 119, 358,
- 359, 416, 120, 360, 418, 121, 271, 273, 361, 122,
+ 31, 32, 33, 34, 35, 36, 37, 38, 268, 377,
+ 39, 146, 71, 58, 67, 314, 315, 352, 114, 59,
+ 115, 255, 256, 257, 348, 393, 395, 68, 313, 105,
+ 266, 196, 97, 40, 41, 116, 191, 308, 251, 306,
+ 157, 42, 43, 44, 131, 83, 261, 355, 132, 117,
+ 356, 357, 118, 171, 285, 172, 384, 405, 173, 228,
+ 174, 406, 175, 300, 286, 277, 176, 303, 338, 177,
+ 223, 178, 275, 179, 241, 180, 399, 414, 181, 295,
+ 296, 340, 238, 289, 330, 332, 328, 182, 119, 359,
+ 360, 418, 120, 361, 420, 121, 271, 273, 362, 122,
136, 123, 124, 138, 72, 45, 55, 46, 50, 77,
- 47, 60, 91, 142, 205, 229, 215, 144, 320, 243,
- 207, 363, 299, 48
+ 47, 60, 91, 142, 205, 229, 215, 144, 319, 243,
+ 207, 364, 298, 48
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -334
+#define YYPACT_NINF -369
static const yytype_int16 yypact[] =
{
- 134, -334, -334, 41, -334, -334, 47, -49, -334, 169,
- 20, -334, 34, 61, 75, 115, -334, -334, -19, -19,
- -19, -19, -19, -19, 116, 44, -19, -334, 109, -334,
- -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- 110, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- 119, 106, 107, 111, -22, 119, 4, -334, 5, 104,
- -334, 113, 114, 117, 118, 120, -334, 121, 124, -334,
- -334, -334, -15, 122, -334, -334, -334, 123, 133, -14,
- 158, 210, -11, -334, 123, 21, -334, -334, -334, -334,
- 127, -334, 44, -334, -334, -334, -334, -334, 44, 44,
- 44, 44, 44, 44, -334, -334, -334, -334, 1, 68,
- 87, -1, 132, 44, 65, 135, -334, -334, -334, -334,
- -334, -334, -334, -334, -334, -15, 141, -334, -334, -334,
- -334, 136, -334, -334, -334, -334, -334, -334, -334, 149,
- -334, -334, 58, 219, -334, 137, 139, -15, 140, -334,
- 142, -334, -334, 74, -334, -334, 127, -334, 143, 144,
- 145, 179, 15, 146, 81, 147, 83, 89, 0, 148,
- 127, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- -334, 183, -334, 74, -334, 150, -334, -334, 127, 151,
- 152, -334, 43, -334, -334, -334, -334, -10, 155, -334,
- 138, -334, -334, -334, -334, -334, -334, 154, 44, 44,
- 162, 175, 44, -334, -334, -334, -334, 243, 245, 246,
- -334, -334, -334, -334, 247, -334, -334, -334, -334, 204,
- 247, -4, 163, 250, -334, 165, -334, 127, 27, -334,
- -334, -334, 252, 248, 18, 167, -334, 255, -334, 256,
- 255, -334, 44, -334, -334, 170, -334, -334, 178, 44,
- 168, -334, -334, -334, -334, -334, -334, 174, 176, 177,
- -334, 180, -334, 181, -334, 182, -334, 184, -334, 185,
- -334, -334, -334, -334, -334, -334, -334, 263, -334, -334,
- -334, 264, -334, -334, -334, -334, -334, -334, -334, 186,
- -334, -334, -334, -334, 131, 265, -334, 188, -334, 189,
- 190, 46, -334, -334, 101, -334, 193, -5, -7, 266,
- -334, 108, 44, -334, -334, 236, 14, 83, -334, 192,
- -334, 194, -334, -334, -334, -334, -334, -334, -334, 195,
- -334, -334, -334, 44, -334, 280, 283, -334, 44, -334,
- -334, -334, 78, 87, 49, -334, -334, -334, -334, -334,
- -334, -334, -334, 197, -334, -334, -334, -334, -334, -334,
- -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- -334, -334, 276, -334, -334, 6, -334, -334, -334, 51,
- -334, -334, -334, -334, 201, 202, 203, -334, 244, -7,
- -334, -334, -334, -334, -334, -334, 44, -334, 44, 243,
- 245, 205, -334, -334, 198, 207, 206, 212, 211, 217,
- 265, -334, 44, -334, 243, -334, 245, -17, -334, -334,
- -334, 265, 213, -334
+ 143, -369, -369, 36, -369, -369, 45, -39, -369, 169,
+ -33, -369, -19, -6, -4, 12, -369, -369, -34, -34,
+ -34, -34, -34, -34, 15, 62, -34, -369, 26, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ 60, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ 20, 56, 107, 110, 37, 20, -3, -369, 111, 109,
+ -369, 113, 114, 116, 117, 118, -369, 119, 125, -369,
+ -369, -369, -15, 121, -369, -369, -369, 122, 132, -18,
+ 167, 210, -11, -369, 122, 63, -369, -369, -369, -369,
+ 130, -369, 62, -369, -369, -369, -369, -369, 62, 62,
+ 62, 62, 62, 62, -369, -369, -369, -369, 9, 72,
+ 87, -1, 131, 62, 104, 134, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -15, 142, -369, -369, -369,
+ -369, 135, -369, -369, -369, -369, -369, -369, -369, 182,
+ -369, -369, 52, 219, -369, 138, 139, -15, 140, -369,
+ 141, -369, -369, 61, -369, -369, 130, -369, 144, 145,
+ 146, 180, 11, 147, 85, 148, 99, 89, -2, 149,
+ 130, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, 184, -369, 61, -369, 150, -369, -369, 130, 151,
+ 152, -369, 27, -369, -369, -369, -369, -10, 154, -369,
+ 153, -369, -369, -369, -369, -369, -369, 155, 62, 62,
+ 161, 168, 62, -369, -369, -369, -369, 229, 244, 246,
+ -369, -369, -369, -369, 247, -369, -369, -369, -369, 204,
+ 247, 17, 163, 164, -369, 165, -369, 130, 67, -369,
+ -369, -369, 252, 248, 18, 170, -369, 253, -369, 255,
+ 253, -369, 62, -369, -369, 171, -369, -369, 177, 62,
+ 172, -369, -369, -369, -369, -369, -369, 173, 175, 176,
+ -369, 178, -369, 179, -369, 181, -369, 183, -369, 185,
+ -369, -369, -369, -369, -369, -369, -369, 262, 264, -369,
+ 267, -369, -369, -369, -369, -369, -369, -369, 186, -369,
+ -369, -369, -369, 136, 269, -369, 187, -369, 188, 190,
+ 43, -369, -369, 106, -369, 193, -5, -7, 271, -369,
+ 108, 62, -369, -369, 245, 4, 99, -369, 194, -369,
+ 195, -369, 196, -369, -369, -369, -369, -369, -369, -369,
+ 197, -369, -369, -369, 62, -369, 280, 285, -369, 62,
+ -369, -369, -369, 93, 87, 53, -369, -369, -369, -369,
+ -369, -369, -369, -369, 199, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, 278, -369, -369, 8, -369, -369, -369,
+ -369, 57, -369, -369, -369, -369, 203, 205, 206, -369,
+ 250, -7, -369, -369, -369, -369, -369, -369, 62, -369,
+ 62, 229, 244, 208, -369, -369, 198, 211, 202, 213,
+ 214, 218, 269, -369, 62, -369, 229, -369, 244, 54,
+ -369, -369, -369, 269, 215, -369
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- -334, -94, -88, 126, -334, -334, -333, -334, -91, -334,
- -334, -334, -334, -334, -334, -334, -334, 128, -334, -334,
- -334, -334, -334, -334, -334, 249, -334, -334, -334, 73,
- -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
- -72, -334, -81, -334, -334, -334, -334, -334, -334, -334,
- -334, -334, -334, -334, -307, 99, -334, -334, -334, -334,
- -334, -334, -334, -334, -334, -334, -334, -334, -23, -334,
- -334, -303, -334, -334, -334, -334, -334, -334, 251, -334,
- -334, -334, -334, -334, -334, -334, -327, -316, 253, -334,
- -334, -334, -80, -110, -82, -334, -334, -334, -334, 277,
- -334, 254, -334, -334, -334, -161, 153, -146, -334, -334,
- -334, -334, -334, -334
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -369, -94, -88, 133, -369, -369, -334, -369, -85, -369,
+ -369, -369, -369, -369, -369, -369, -369, 128, -369, -369,
+ -369, -369, -369, -369, -369, 251, -369, -369, -369, 77,
+ -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+ -72, -369, -81, -369, -369, -369, -369, -369, -369, -369,
+ -369, -369, -369, -369, -305, 101, -369, -369, -369, -369,
+ -369, -369, -369, -369, -369, -369, -369, -369, -22, -369,
+ -369, -336, -369, -369, -369, -369, -369, -369, 254, -369,
+ -369, -369, -369, -369, -369, -369, -342, -368, 256, -369,
+ -369, -369, -80, -110, -82, -369, -369, -369, -369, 279,
+ -369, 257, -369, -369, -369, -161, 156, -146, -369, -369,
+ -369, -369, -369, -369
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1092,79 +1092,79 @@ static const yytype_int16 yypgoto[] =
static const yytype_int16 yytable[] =
{
139, 133, 137, 192, 145, 231, 149, 106, 107, 152,
- 216, 148, 254, 150, 151, 394, 147, 349, 147, 384,
- 280, 147, 108, 108, 244, 239, 281, 183, 282, 153,
- 280, 139, 85, 86, 198, 184, 281, 154, 280, 379,
- 87, 5, 248, 221, 281, 56, 109, 140, 185, 10,
- 109, 186, 302, 380, 352, 7, 210, 110, 187, 141,
- 155, 110, 88, 89, 283, 353, 284, 293, 294, 240,
- 222, 303, 188, 381, 156, 415, 284, 90, 405, 57,
- 111, 111, 417, 112, 284, 382, 81, 431, 66, 428,
- 82, 292, 388, 350, 419, 189, 190, 429, 113, 69,
- 70, 158, 113, 69, 70, 225, 113, 226, 295, 226,
- 430, 395, 92, 159, 160, 264, 161, 427, 203, 227,
- 263, 227, 162, 396, 269, 204, 49, 147, 432, 163,
- 164, 165, 51, 166, 213, 167, 232, 1, 2, 233,
- 234, 214, 311, 235, 168, 61, 62, 63, 64, 65,
- 252, 236, 73, 343, 69, 70, 399, 253, 406, 52,
- 344, 169, 170, 400, 193, 407, 385, 194, 195, 237,
- 139, 201, 202, 53, 11, 12, 13, 317, 14, 15,
+ 216, 148, 254, 150, 151, 396, 147, 350, 147, 108,
+ 385, 147, 108, 239, 244, 85, 86, 183, 280, 380,
+ 56, 139, 280, 87, 281, 184, 5, 153, 281, 221,
+ 198, 280, 248, 381, 421, 154, 109, 281, 185, 282,
+ 109, 186, 301, 7, 353, 88, 89, 110, 187, 10,
+ 432, 110, 210, 382, 57, 354, 222, 240, 155, 419,
+ 90, 302, 188, 49, 284, 383, 417, 111, 284, 51,
+ 111, 407, 156, 112, 431, 283, 429, 284, 66, 140,
+ 430, 291, 52, 351, 53, 189, 190, 434, 113, 69,
+ 70, 141, 113, 69, 70, 158, 113, 292, 293, 225,
+ 54, 226, 203, 66, 160, 264, 161, 159, 76, 204,
+ 263, 213, 162, 227, 269, 226, 397, 147, 214, 163,
+ 164, 165, 74, 166, 252, 167, 232, 227, 398, 233,
+ 234, 253, 310, 235, 168, 81, 1, 2, 294, 82,
+ 344, 236, 61, 62, 63, 64, 65, 345, 433, 73,
+ 401, 169, 170, 390, 408, 386, 75, 402, 78, 237,
+ 139, 409, 69, 70, 11, 12, 13, 316, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 364, 365, 366, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 93, 94, 95, 96, 333, 334, 335,
- 336, 345, 346, 54, 66, 74, 75, 76, 78, 79,
- 98, 99, 56, 80, 100, 101, 104, 102, 103, 125,
- 126, 127, 130, 389, 377, 143, 139, 357, 137, 199,
- -59, 206, 220, 197, 208, 200, 209, 211, 245, 212,
- 260, 217, 218, 219, 224, 230, 242, 267, 247, 249,
- 250, 139, 259, 262, 265, 270, 317, 272, 274, 276,
- 278, 287, 288, 291, 298, 305, 300, 306, 308, 312,
- 313, 318, 319, 321, 322, 328, 330, 338, 362, 323,
- 324, 325, 378, 326, 327, 332, 414, 340, 341, 342,
- 348, 386, 390, 387, 388, 392, 401, 402, 408, 411,
- 409, 410, 421, 420, 422, 423, 424, 139, 357, 137,
- 425, 426, 433, 310, 139, 258, 317, 413, 128, 279,
- 398, 0, 84, 134, 129, 135, 246, 0, 0, 0,
- 317
+ 26, 365, 366, 367, 368, 369, 370, 371, 372, 373,
+ 374, 375, 376, 193, 201, 202, 194, 195, 93, 94,
+ 95, 96, 334, 335, 336, 337, 346, 347, 92, 79,
+ 98, 99, 80, 100, 101, 102, 103, 104, 125, 126,
+ 127, 56, 130, 378, 391, 139, 358, 137, 143, -59,
+ 199, 206, 197, 220, 200, 208, 209, 211, 212, 245,
+ 267, 270, 217, 218, 219, 224, 230, 242, 247, 249,
+ 250, 259, 139, 265, 262, 260, 272, 316, 274, 276,
+ 278, 287, 288, 290, 297, 305, 299, 307, 304, 312,
+ 311, 318, 320, 321, 327, 317, 329, 322, 323, 331,
+ 324, 339, 325, 363, 326, 333, 341, 342, 416, 343,
+ 349, 379, 392, 387, 388, 389, 390, 394, 403, 404,
+ 410, 425, 423, 411, 412, 413, 422, 426, 424, 139,
+ 358, 137, 428, 427, 435, 258, 139, 309, 316, 415,
+ 128, 279, 400, 0, 84, 0, 134, 129, 135, 246,
+ 0, 0, 316
};
static const yytype_int16 yycheck[] =
{
82, 82, 82, 113, 92, 166, 100, 22, 23, 103,
- 156, 99, 22, 101, 102, 348, 98, 22, 100, 326,
- 24, 103, 37, 37, 170, 25, 30, 28, 32, 28,
- 24, 113, 28, 29, 125, 36, 30, 36, 24, 25,
- 36, 0, 188, 28, 30, 64, 61, 26, 49, 98,
- 61, 52, 34, 39, 61, 8, 147, 72, 59, 38,
- 59, 72, 58, 59, 68, 72, 70, 40, 41, 69,
- 55, 53, 73, 59, 73, 408, 70, 73, 385, 98,
- 95, 95, 409, 98, 70, 71, 108, 104, 98, 422,
- 112, 237, 109, 98, 410, 96, 97, 424, 113, 110,
- 111, 33, 113, 110, 111, 24, 113, 26, 81, 26,
- 426, 33, 107, 45, 27, 209, 29, 420, 60, 38,
- 208, 38, 35, 45, 212, 67, 106, 209, 431, 42,
- 43, 44, 98, 46, 60, 48, 47, 3, 4, 50,
- 51, 67, 252, 54, 57, 19, 20, 21, 22, 23,
- 107, 62, 26, 107, 110, 111, 107, 114, 107, 98,
- 114, 74, 75, 114, 99, 114, 327, 102, 103, 80,
- 252, 22, 23, 98, 5, 6, 7, 259, 9, 10,
+ 156, 99, 22, 101, 102, 349, 98, 22, 100, 37,
+ 325, 103, 37, 25, 170, 28, 29, 28, 24, 25,
+ 64, 113, 24, 36, 30, 36, 0, 28, 30, 28,
+ 125, 24, 188, 39, 412, 36, 61, 30, 49, 32,
+ 61, 52, 34, 8, 61, 58, 59, 72, 59, 98,
+ 428, 72, 147, 59, 98, 72, 55, 69, 59, 411,
+ 73, 53, 73, 106, 70, 71, 410, 95, 70, 98,
+ 95, 386, 73, 98, 426, 68, 422, 70, 98, 26,
+ 424, 237, 98, 98, 98, 96, 97, 433, 113, 110,
+ 111, 38, 113, 110, 111, 33, 113, 40, 41, 24,
+ 98, 26, 60, 98, 27, 209, 29, 45, 98, 67,
+ 208, 60, 35, 38, 212, 26, 33, 209, 67, 42,
+ 43, 44, 106, 46, 107, 48, 47, 38, 45, 50,
+ 51, 114, 252, 54, 57, 108, 3, 4, 81, 112,
+ 107, 62, 19, 20, 21, 22, 23, 114, 104, 26,
+ 107, 74, 75, 109, 107, 326, 106, 114, 112, 80,
+ 252, 114, 110, 111, 5, 6, 7, 259, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 99, 100, 101, 102, 76, 77, 78,
- 79, 110, 111, 98, 98, 106, 106, 98, 112, 112,
- 107, 107, 64, 112, 107, 107, 102, 107, 107, 107,
- 107, 98, 22, 343, 322, 108, 318, 318, 318, 98,
- 108, 22, 63, 108, 107, 109, 107, 107, 65, 107,
- 112, 108, 108, 108, 108, 108, 108, 82, 108, 108,
- 108, 343, 107, 109, 102, 22, 348, 22, 22, 22,
- 66, 108, 22, 108, 22, 108, 28, 22, 22, 109,
- 102, 113, 108, 107, 107, 22, 22, 22, 22, 109,
- 109, 109, 56, 109, 109, 109, 406, 109, 109, 109,
- 107, 109, 22, 109, 109, 22, 109, 31, 107, 65,
- 108, 108, 114, 108, 107, 109, 104, 399, 399, 399,
- 109, 104, 109, 250, 406, 197, 408, 399, 79, 230,
- 353, -1, 55, 82, 80, 82, 183, -1, -1, -1,
- 422
+ 92, 93, 94, 99, 22, 23, 102, 103, 99, 100,
+ 101, 102, 76, 77, 78, 79, 110, 111, 107, 112,
+ 107, 107, 112, 107, 107, 107, 107, 102, 107, 107,
+ 98, 64, 22, 321, 344, 317, 317, 317, 108, 108,
+ 98, 22, 108, 63, 109, 107, 107, 107, 107, 65,
+ 82, 22, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 107, 344, 102, 109, 112, 22, 349, 22, 22,
+ 66, 108, 108, 108, 22, 22, 28, 22, 108, 102,
+ 109, 108, 107, 107, 22, 113, 22, 109, 109, 22,
+ 109, 22, 109, 22, 109, 109, 109, 109, 408, 109,
+ 107, 56, 22, 109, 109, 109, 109, 22, 109, 31,
+ 107, 109, 114, 108, 108, 65, 108, 104, 107, 401,
+ 401, 401, 104, 109, 109, 197, 408, 250, 410, 401,
+ 79, 230, 354, -1, 55, -1, 82, 80, 82, 183,
+ -1, -1, 424
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1199,22 +1199,22 @@ static const yytype_uint8 yystos[] =
108, 163, 107, 114, 22, 146, 147, 148, 152, 107,
112, 171, 109, 137, 136, 102, 155, 82, 133, 137,
22, 221, 22, 222, 22, 197, 22, 190, 66, 190,
- 24, 30, 32, 68, 70, 179, 189, 108, 22, 208,
- 209, 108, 242, 40, 41, 81, 204, 205, 22, 247,
- 28, 188, 34, 53, 192, 108, 22, 164, 22, 162,
- 164, 228, 109, 102, 153, 140, 141, 229, 113, 108,
- 243, 107, 107, 109, 109, 109, 109, 109, 22, 211,
- 22, 210, 109, 76, 77, 78, 79, 193, 22, 206,
- 109, 109, 109, 107, 114, 110, 111, 149, 107, 22,
- 98, 142, 61, 72, 172, 175, 176, 177, 214, 215,
- 218, 223, 22, 246, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 134, 137, 56, 25,
- 39, 59, 71, 181, 189, 240, 109, 109, 109, 228,
- 22, 150, 22, 151, 141, 33, 45, 201, 203, 107,
- 114, 109, 31, 182, 186, 189, 107, 114, 107, 108,
- 108, 65, 202, 175, 228, 141, 216, 221, 219, 222,
- 108, 114, 107, 109, 104, 109, 104, 206, 141, 221,
- 222, 104, 206, 109
+ 24, 30, 32, 68, 70, 179, 189, 108, 108, 208,
+ 108, 242, 40, 41, 81, 204, 205, 22, 247, 28,
+ 188, 34, 53, 192, 108, 22, 164, 22, 162, 164,
+ 228, 109, 102, 153, 140, 141, 229, 113, 108, 243,
+ 107, 107, 109, 109, 109, 109, 109, 22, 211, 22,
+ 209, 22, 210, 109, 76, 77, 78, 79, 193, 22,
+ 206, 109, 109, 109, 107, 114, 110, 111, 149, 107,
+ 22, 98, 142, 61, 72, 172, 175, 176, 177, 214,
+ 215, 218, 223, 22, 246, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 134, 137, 56,
+ 25, 39, 59, 71, 181, 189, 240, 109, 109, 109,
+ 109, 228, 22, 150, 22, 151, 141, 33, 45, 201,
+ 203, 107, 114, 109, 31, 182, 186, 189, 107, 114,
+ 107, 108, 108, 65, 202, 175, 228, 141, 216, 221,
+ 219, 222, 108, 114, 107, 109, 104, 109, 104, 206,
+ 141, 221, 222, 104, 206, 109
};
#define yyerrok (yyerrstatus = 0)
@@ -3899,7 +3899,7 @@ yyreduce:
/* Line 1455 of yacc.c */
#line 1496 "program_parse.y"
{
- (yyval.integer) = (yyvsp[(1) - (1)].integer);
+ (yyval.integer) = (yyvsp[(2) - (3)].integer);
;}
break;
@@ -4946,8 +4946,7 @@ int add_state_reference(struct gl_program_parameter_list *param_list,
name = _mesa_program_state_string(tokens);
index = _mesa_add_parameter(param_list, PROGRAM_STATE_VAR, name,
- size, GL_NONE,
- NULL, (gl_state_index *) tokens, 0x0);
+ size, GL_NONE, NULL, tokens, 0x0);
param_list->StateFlags |= _mesa_program_state_flags(tokens);
/* free name string here since we duplicated it in add_parameter() */
diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h
index de08fb747f2..dabb3bf1a36 100644
--- a/src/mesa/shader/program_parse.tab.h
+++ b/src/mesa/shader/program_parse.tab.h
@@ -93,7 +93,7 @@
PALETTE = 309,
PARAMS = 310,
PLANE = 311,
- POINT = 312,
+ POINT_TOK = 312,
POINTSIZE = 313,
POSITION = 314,
PRIMARY = 315,
@@ -105,7 +105,7 @@
SCENECOLOR = 321,
SECONDARY = 322,
SHININESS = 323,
- SIZE = 324,
+ SIZE_TOK = 324,
SPECULAR = 325,
SPOT = 326,
STATE = 327,
@@ -166,7 +166,7 @@ typedef union YYSTYPE
unsigned attrib;
int integer;
float real;
- unsigned state[5];
+ gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
gl_inst_opcode opcode;
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index e2e83e484f5..06c1915fbee 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -117,7 +117,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
unsigned attrib;
int integer;
float real;
- unsigned state[5];
+ gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
gl_inst_opcode opcode;
@@ -159,9 +159,9 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
%token MATERIAL MAT_PROGRAM MATRIX MATRIXINDEX MODELVIEW MVP
%token NORMAL
%token OBJECT
-%token PALETTE PARAMS PLANE POINT POINTSIZE POSITION PRIMARY PROGRAM PROJECTION
+%token PALETTE PARAMS PLANE POINT_TOK POINTSIZE POSITION PRIMARY PROGRAM PROJECTION
%token RANGE RESULT ROW
-%token SCENECOLOR SECONDARY SHININESS SIZE SPECULAR SPOT STATE
+%token SCENECOLOR SECONDARY SHININESS SIZE_TOK SPECULAR SPOT STATE
%token TEXCOORD TEXENV TEXGEN TEXGEN_Q TEXGEN_R TEXGEN_S TEXGEN_T TEXTURE TRANSPOSE
%token TEXTURE_UNIT TEX_1D TEX_2D TEX_3D TEX_CUBE TEX_RECT
%token TEX_SHADOW1D TEX_SHADOW2D TEX_SHADOWRECT
@@ -1353,14 +1353,14 @@ stateClipPlaneNum: INTEGER
}
;
-statePointItem: POINT statePointProperty
+statePointItem: POINT_TOK statePointProperty
{
memset($$, 0, sizeof($$));
$$[0] = $2;
}
;
-statePointProperty: SIZE
+statePointProperty: SIZE_TOK
{
$$ = STATE_POINT_SIZE;
}
@@ -1492,9 +1492,9 @@ stateOptModMatNum:
{
$$ = 0;
}
- | stateModMatNum
+ | '[' stateModMatNum ']'
{
- $$ = $1;
+ $$ = $2;
}
;
stateModMatNum: INTEGER
@@ -2077,8 +2077,7 @@ int add_state_reference(struct gl_program_parameter_list *param_list,
name = _mesa_program_state_string(tokens);
index = _mesa_add_parameter(param_list, PROGRAM_STATE_VAR, name,
- size, GL_NONE,
- NULL, (gl_state_index *) tokens, 0x0);
+ size, GL_NONE, NULL, tokens, 0x0);
param_list->StateFlags |= _mesa_program_state_flags(tokens);
/* free name string here since we duplicated it in add_parameter() */
diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak
index 9a9c988ed96..fa2a6307a4b 100644
--- a/src/mesa/sources.mak
+++ b/src/mesa/sources.mak
@@ -61,6 +61,7 @@ MAIN_SOURCES = \
main/shared.c \
main/state.c \
main/stencil.c \
+ main/syncobj.c \
main/texcompress.c \
main/texcompress_s3tc.c \
main/texcompress_fxt1.c \
diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S
index 34c1e09ad83..5b2c9e4a9aa 100644
--- a/src/mesa/sparc/glapi_sparc.S
+++ b/src/mesa/sparc/glapi_sparc.S
@@ -764,23 +764,30 @@ gl_dispatch_functions_start:
GL_STUB(glBindVertexArray, _gloffset_BindVertexArray)
GL_STUB(glGenVertexArrays, _gloffset_GenVertexArrays)
GL_STUB(glCopyBufferSubData, _gloffset_CopyBufferSubData)
+ GL_STUB(glClientWaitSync, _gloffset_ClientWaitSync)
+ GL_STUB(glDeleteSync, _gloffset_DeleteSync)
+ GL_STUB(glFenceSync, _gloffset_FenceSync)
+ GL_STUB(glGetInteger64v, _gloffset_GetInteger64v)
+ GL_STUB(glGetSynciv, _gloffset_GetSynciv)
+ GL_STUB(glIsSync, _gloffset_IsSync)
+ GL_STUB(glWaitSync, _gloffset_WaitSync)
GL_STUB(glPolygonOffsetEXT, _gloffset_PolygonOffsetEXT)
- GL_STUB(gl_dispatch_stub_568, _gloffset_GetPixelTexGenParameterfvSGIS)
- HIDDEN(gl_dispatch_stub_568)
- GL_STUB(gl_dispatch_stub_569, _gloffset_GetPixelTexGenParameterivSGIS)
- HIDDEN(gl_dispatch_stub_569)
- GL_STUB(gl_dispatch_stub_570, _gloffset_PixelTexGenParameterfSGIS)
- HIDDEN(gl_dispatch_stub_570)
- GL_STUB(gl_dispatch_stub_571, _gloffset_PixelTexGenParameterfvSGIS)
- HIDDEN(gl_dispatch_stub_571)
- GL_STUB(gl_dispatch_stub_572, _gloffset_PixelTexGenParameteriSGIS)
- HIDDEN(gl_dispatch_stub_572)
- GL_STUB(gl_dispatch_stub_573, _gloffset_PixelTexGenParameterivSGIS)
- HIDDEN(gl_dispatch_stub_573)
- GL_STUB(gl_dispatch_stub_574, _gloffset_SampleMaskSGIS)
- HIDDEN(gl_dispatch_stub_574)
- GL_STUB(gl_dispatch_stub_575, _gloffset_SamplePatternSGIS)
+ GL_STUB(gl_dispatch_stub_575, _gloffset_GetPixelTexGenParameterfvSGIS)
HIDDEN(gl_dispatch_stub_575)
+ GL_STUB(gl_dispatch_stub_576, _gloffset_GetPixelTexGenParameterivSGIS)
+ HIDDEN(gl_dispatch_stub_576)
+ GL_STUB(gl_dispatch_stub_577, _gloffset_PixelTexGenParameterfSGIS)
+ HIDDEN(gl_dispatch_stub_577)
+ GL_STUB(gl_dispatch_stub_578, _gloffset_PixelTexGenParameterfvSGIS)
+ HIDDEN(gl_dispatch_stub_578)
+ GL_STUB(gl_dispatch_stub_579, _gloffset_PixelTexGenParameteriSGIS)
+ HIDDEN(gl_dispatch_stub_579)
+ GL_STUB(gl_dispatch_stub_580, _gloffset_PixelTexGenParameterivSGIS)
+ HIDDEN(gl_dispatch_stub_580)
+ GL_STUB(gl_dispatch_stub_581, _gloffset_SampleMaskSGIS)
+ HIDDEN(gl_dispatch_stub_581)
+ GL_STUB(gl_dispatch_stub_582, _gloffset_SamplePatternSGIS)
+ HIDDEN(gl_dispatch_stub_582)
GL_STUB(glColorPointerEXT, _gloffset_ColorPointerEXT)
GL_STUB(glEdgeFlagPointerEXT, _gloffset_EdgeFlagPointerEXT)
GL_STUB(glIndexPointerEXT, _gloffset_IndexPointerEXT)
@@ -791,10 +798,10 @@ gl_dispatch_functions_start:
GL_STUB(glPointParameterfvEXT, _gloffset_PointParameterfvEXT)
GL_STUB(glLockArraysEXT, _gloffset_LockArraysEXT)
GL_STUB(glUnlockArraysEXT, _gloffset_UnlockArraysEXT)
- GL_STUB(gl_dispatch_stub_586, _gloffset_CullParameterdvEXT)
- HIDDEN(gl_dispatch_stub_586)
- GL_STUB(gl_dispatch_stub_587, _gloffset_CullParameterfvEXT)
- HIDDEN(gl_dispatch_stub_587)
+ GL_STUB(gl_dispatch_stub_593, _gloffset_CullParameterdvEXT)
+ HIDDEN(gl_dispatch_stub_593)
+ GL_STUB(gl_dispatch_stub_594, _gloffset_CullParameterfvEXT)
+ HIDDEN(gl_dispatch_stub_594)
GL_STUB(glSecondaryColor3bEXT, _gloffset_SecondaryColor3bEXT)
GL_STUB(glSecondaryColor3bvEXT, _gloffset_SecondaryColor3bvEXT)
GL_STUB(glSecondaryColor3dEXT, _gloffset_SecondaryColor3dEXT)
@@ -819,8 +826,8 @@ gl_dispatch_functions_start:
GL_STUB(glFogCoorddvEXT, _gloffset_FogCoorddvEXT)
GL_STUB(glFogCoordfEXT, _gloffset_FogCoordfEXT)
GL_STUB(glFogCoordfvEXT, _gloffset_FogCoordfvEXT)
- GL_STUB(gl_dispatch_stub_612, _gloffset_PixelTexGenSGIX)
- HIDDEN(gl_dispatch_stub_612)
+ GL_STUB(gl_dispatch_stub_619, _gloffset_PixelTexGenSGIX)
+ HIDDEN(gl_dispatch_stub_619)
GL_STUB(glBlendFuncSeparateEXT, _gloffset_BlendFuncSeparateEXT)
GL_STUB(glFlushVertexArrayRangeNV, _gloffset_FlushVertexArrayRangeNV)
GL_STUB(glVertexArrayRangeNV, _gloffset_VertexArrayRangeNV)
@@ -862,24 +869,24 @@ gl_dispatch_functions_start:
GL_STUB(glWindowPos4ivMESA, _gloffset_WindowPos4ivMESA)
GL_STUB(glWindowPos4sMESA, _gloffset_WindowPos4sMESA)
GL_STUB(glWindowPos4svMESA, _gloffset_WindowPos4svMESA)
- GL_STUB(gl_dispatch_stub_654, _gloffset_MultiModeDrawArraysIBM)
- HIDDEN(gl_dispatch_stub_654)
- GL_STUB(gl_dispatch_stub_655, _gloffset_MultiModeDrawElementsIBM)
- HIDDEN(gl_dispatch_stub_655)
- GL_STUB(gl_dispatch_stub_656, _gloffset_DeleteFencesNV)
- HIDDEN(gl_dispatch_stub_656)
- GL_STUB(gl_dispatch_stub_657, _gloffset_FinishFenceNV)
- HIDDEN(gl_dispatch_stub_657)
- GL_STUB(gl_dispatch_stub_658, _gloffset_GenFencesNV)
- HIDDEN(gl_dispatch_stub_658)
- GL_STUB(gl_dispatch_stub_659, _gloffset_GetFenceivNV)
- HIDDEN(gl_dispatch_stub_659)
- GL_STUB(gl_dispatch_stub_660, _gloffset_IsFenceNV)
- HIDDEN(gl_dispatch_stub_660)
- GL_STUB(gl_dispatch_stub_661, _gloffset_SetFenceNV)
+ GL_STUB(gl_dispatch_stub_661, _gloffset_MultiModeDrawArraysIBM)
HIDDEN(gl_dispatch_stub_661)
- GL_STUB(gl_dispatch_stub_662, _gloffset_TestFenceNV)
+ GL_STUB(gl_dispatch_stub_662, _gloffset_MultiModeDrawElementsIBM)
HIDDEN(gl_dispatch_stub_662)
+ GL_STUB(gl_dispatch_stub_663, _gloffset_DeleteFencesNV)
+ HIDDEN(gl_dispatch_stub_663)
+ GL_STUB(gl_dispatch_stub_664, _gloffset_FinishFenceNV)
+ HIDDEN(gl_dispatch_stub_664)
+ GL_STUB(gl_dispatch_stub_665, _gloffset_GenFencesNV)
+ HIDDEN(gl_dispatch_stub_665)
+ GL_STUB(gl_dispatch_stub_666, _gloffset_GetFenceivNV)
+ HIDDEN(gl_dispatch_stub_666)
+ GL_STUB(gl_dispatch_stub_667, _gloffset_IsFenceNV)
+ HIDDEN(gl_dispatch_stub_667)
+ GL_STUB(gl_dispatch_stub_668, _gloffset_SetFenceNV)
+ HIDDEN(gl_dispatch_stub_668)
+ GL_STUB(gl_dispatch_stub_669, _gloffset_TestFenceNV)
+ HIDDEN(gl_dispatch_stub_669)
GL_STUB(glAreProgramsResidentNV, _gloffset_AreProgramsResidentNV)
GL_STUB(glBindProgramNV, _gloffset_BindProgramNV)
GL_STUB(glDeleteProgramsNV, _gloffset_DeleteProgramsNV)
@@ -960,26 +967,26 @@ gl_dispatch_functions_start:
GL_STUB(glSetFragmentShaderConstantATI, _gloffset_SetFragmentShaderConstantATI)
GL_STUB(glPointParameteriNV, _gloffset_PointParameteriNV)
GL_STUB(glPointParameterivNV, _gloffset_PointParameterivNV)
- GL_STUB(gl_dispatch_stub_743, _gloffset_ActiveStencilFaceEXT)
- HIDDEN(gl_dispatch_stub_743)
- GL_STUB(gl_dispatch_stub_744, _gloffset_BindVertexArrayAPPLE)
- HIDDEN(gl_dispatch_stub_744)
- GL_STUB(gl_dispatch_stub_745, _gloffset_DeleteVertexArraysAPPLE)
- HIDDEN(gl_dispatch_stub_745)
- GL_STUB(gl_dispatch_stub_746, _gloffset_GenVertexArraysAPPLE)
- HIDDEN(gl_dispatch_stub_746)
- GL_STUB(gl_dispatch_stub_747, _gloffset_IsVertexArrayAPPLE)
- HIDDEN(gl_dispatch_stub_747)
+ GL_STUB(gl_dispatch_stub_750, _gloffset_ActiveStencilFaceEXT)
+ HIDDEN(gl_dispatch_stub_750)
+ GL_STUB(gl_dispatch_stub_751, _gloffset_BindVertexArrayAPPLE)
+ HIDDEN(gl_dispatch_stub_751)
+ GL_STUB(gl_dispatch_stub_752, _gloffset_DeleteVertexArraysAPPLE)
+ HIDDEN(gl_dispatch_stub_752)
+ GL_STUB(gl_dispatch_stub_753, _gloffset_GenVertexArraysAPPLE)
+ HIDDEN(gl_dispatch_stub_753)
+ GL_STUB(gl_dispatch_stub_754, _gloffset_IsVertexArrayAPPLE)
+ HIDDEN(gl_dispatch_stub_754)
GL_STUB(glGetProgramNamedParameterdvNV, _gloffset_GetProgramNamedParameterdvNV)
GL_STUB(glGetProgramNamedParameterfvNV, _gloffset_GetProgramNamedParameterfvNV)
GL_STUB(glProgramNamedParameter4dNV, _gloffset_ProgramNamedParameter4dNV)
GL_STUB(glProgramNamedParameter4dvNV, _gloffset_ProgramNamedParameter4dvNV)
GL_STUB(glProgramNamedParameter4fNV, _gloffset_ProgramNamedParameter4fNV)
GL_STUB(glProgramNamedParameter4fvNV, _gloffset_ProgramNamedParameter4fvNV)
- GL_STUB(gl_dispatch_stub_754, _gloffset_DepthBoundsEXT)
- HIDDEN(gl_dispatch_stub_754)
- GL_STUB(gl_dispatch_stub_755, _gloffset_BlendEquationSeparateEXT)
- HIDDEN(gl_dispatch_stub_755)
+ GL_STUB(gl_dispatch_stub_761, _gloffset_DepthBoundsEXT)
+ HIDDEN(gl_dispatch_stub_761)
+ GL_STUB(gl_dispatch_stub_762, _gloffset_BlendEquationSeparateEXT)
+ HIDDEN(gl_dispatch_stub_762)
GL_STUB(glBindFramebufferEXT, _gloffset_BindFramebufferEXT)
GL_STUB(glBindRenderbufferEXT, _gloffset_BindRenderbufferEXT)
GL_STUB(glCheckFramebufferStatusEXT, _gloffset_CheckFramebufferStatusEXT)
@@ -997,28 +1004,28 @@ gl_dispatch_functions_start:
GL_STUB(glIsFramebufferEXT, _gloffset_IsFramebufferEXT)
GL_STUB(glIsRenderbufferEXT, _gloffset_IsRenderbufferEXT)
GL_STUB(glRenderbufferStorageEXT, _gloffset_RenderbufferStorageEXT)
- GL_STUB(gl_dispatch_stub_773, _gloffset_BlitFramebufferEXT)
- HIDDEN(gl_dispatch_stub_773)
- GL_STUB(gl_dispatch_stub_774, _gloffset_BufferParameteriAPPLE)
- HIDDEN(gl_dispatch_stub_774)
- GL_STUB(gl_dispatch_stub_775, _gloffset_FlushMappedBufferRangeAPPLE)
- HIDDEN(gl_dispatch_stub_775)
- GL_STUB(glFramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT)
- GL_STUB(glProvokingVertexEXT, _gloffset_ProvokingVertexEXT)
- GL_STUB(gl_dispatch_stub_778, _gloffset_GetTexParameterPointervAPPLE)
- HIDDEN(gl_dispatch_stub_778)
- GL_STUB(gl_dispatch_stub_779, _gloffset_TextureRangeAPPLE)
- HIDDEN(gl_dispatch_stub_779)
- GL_STUB(gl_dispatch_stub_780, _gloffset_StencilFuncSeparateATI)
+ GL_STUB(gl_dispatch_stub_780, _gloffset_BlitFramebufferEXT)
HIDDEN(gl_dispatch_stub_780)
- GL_STUB(gl_dispatch_stub_781, _gloffset_ProgramEnvParameters4fvEXT)
+ GL_STUB(gl_dispatch_stub_781, _gloffset_BufferParameteriAPPLE)
HIDDEN(gl_dispatch_stub_781)
- GL_STUB(gl_dispatch_stub_782, _gloffset_ProgramLocalParameters4fvEXT)
+ GL_STUB(gl_dispatch_stub_782, _gloffset_FlushMappedBufferRangeAPPLE)
HIDDEN(gl_dispatch_stub_782)
- GL_STUB(gl_dispatch_stub_783, _gloffset_GetQueryObjecti64vEXT)
- HIDDEN(gl_dispatch_stub_783)
- GL_STUB(gl_dispatch_stub_784, _gloffset_GetQueryObjectui64vEXT)
- HIDDEN(gl_dispatch_stub_784)
+ GL_STUB(glFramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT)
+ GL_STUB(glProvokingVertexEXT, _gloffset_ProvokingVertexEXT)
+ GL_STUB(gl_dispatch_stub_785, _gloffset_GetTexParameterPointervAPPLE)
+ HIDDEN(gl_dispatch_stub_785)
+ GL_STUB(gl_dispatch_stub_786, _gloffset_TextureRangeAPPLE)
+ HIDDEN(gl_dispatch_stub_786)
+ GL_STUB(gl_dispatch_stub_787, _gloffset_StencilFuncSeparateATI)
+ HIDDEN(gl_dispatch_stub_787)
+ GL_STUB(gl_dispatch_stub_788, _gloffset_ProgramEnvParameters4fvEXT)
+ HIDDEN(gl_dispatch_stub_788)
+ GL_STUB(gl_dispatch_stub_789, _gloffset_ProgramLocalParameters4fvEXT)
+ HIDDEN(gl_dispatch_stub_789)
+ GL_STUB(gl_dispatch_stub_790, _gloffset_GetQueryObjecti64vEXT)
+ HIDDEN(gl_dispatch_stub_790)
+ GL_STUB(gl_dispatch_stub_791, _gloffset_GetQueryObjectui64vEXT)
+ HIDDEN(gl_dispatch_stub_791)
GL_STUB_ALIAS(glArrayElementEXT, glArrayElement)
GL_STUB_ALIAS(glBindTextureEXT, glBindTexture)
GL_STUB_ALIAS(glDrawArraysEXT, glDrawArrays)
diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
index ccf972f8055..902fb38d1a7 100644
--- a/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/src/mesa/state_tracker/st_cb_bitmap.c
@@ -241,7 +241,7 @@ combined_bitmap_fragment_program(GLcontext *ctx)
/**
* Copy user-provide bitmap bits into texture buffer, expanding
* bits into texels.
- * "On" bits will set texels to 0xff.
+ * "On" bits will set texels to 0x0.
* "Off" bits will not modify texels.
* Note that the image is actually going to be upside down in
* the texture. We deal with that with texcoords.
@@ -253,63 +253,10 @@ unpack_bitmap(struct st_context *st,
const GLubyte *bitmap,
ubyte *destBuffer, uint destStride)
{
- GLint row, col;
-
-#define SET_PIXEL(COL, ROW) \
- destBuffer[(py + (ROW)) * destStride + px + (COL)] = 0x0;
-
- for (row = 0; row < height; row++) {
- const GLubyte *src = (const GLubyte *) _mesa_image_address2d(unpack,
- bitmap, width, height, GL_COLOR_INDEX, GL_BITMAP, row, 0);
-
- if (unpack->LsbFirst) {
- /* Lsb first */
- GLubyte mask = 1U << (unpack->SkipPixels & 0x7);
- for (col = 0; col < width; col++) {
-
- if (*src & mask) {
- SET_PIXEL(col, row);
- }
-
- if (mask == 128U) {
- src++;
- mask = 1U;
- }
- else {
- mask = mask << 1;
- }
- }
-
- /* get ready for next row */
- if (mask != 1)
- src++;
- }
- else {
- /* Msb first */
- GLubyte mask = 128U >> (unpack->SkipPixels & 0x7);
- for (col = 0; col < width; col++) {
-
- if (*src & mask) {
- SET_PIXEL(col, row);
- }
-
- if (mask == 1U) {
- src++;
- mask = 128U;
- }
- else {
- mask = mask >> 1;
- }
- }
-
- /* get ready for next row */
- if (mask != 128)
- src++;
- }
-
- } /* row */
+ destBuffer += py * destStride + px;
-#undef SET_PIXEL
+ _mesa_expand_bitmap(width, height, unpack, bitmap,
+ destBuffer, destStride, 0x0);
}
@@ -328,7 +275,7 @@ make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height,
struct pipe_texture *pt;
/* PBO source... */
- bitmap = _mesa_map_bitmap_pbo(ctx, unpack, bitmap);
+ bitmap = _mesa_map_pbo_source(ctx, unpack, bitmap);
if (!bitmap) {
return NULL;
}
@@ -340,7 +287,7 @@ make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height,
0, width, height, 1,
PIPE_TEXTURE_USAGE_SAMPLER);
if (!pt) {
- _mesa_unmap_bitmap_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
return NULL;
}
@@ -355,7 +302,7 @@ make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height,
unpack_bitmap(ctx->st, 0, 0, width, height, unpack, bitmap,
dest, transfer->stride);
- _mesa_unmap_bitmap_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
/* Release transfer */
screen->transfer_unmap(screen, transfer);
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c
index 8c1fd5ce025..8e09d0b9324 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -134,9 +134,10 @@ st_bufferobj_get_subdata(GLcontext *ctx,
* Allocate space for and store data in a buffer object. Any data that was
* previously stored in the buffer object is lost. If data is NULL,
* memory will be allocated, but no copy will occur.
- * Called via glBufferDataARB().
+ * Called via ctx->Driver.BufferData().
+ * \return GL_TRUE for success, GL_FALSE if out of memory
*/
-static void
+static GLboolean
st_bufferobj_data(GLcontext *ctx,
GLenum target,
GLsizeiptrARB size,
@@ -172,13 +173,13 @@ st_bufferobj_data(GLcontext *ctx,
st_obj->buffer = pipe_buffer_create( pipe->screen, 32, buffer_usage, size );
if (!st_obj->buffer) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBufferDataARB");
- return;
+ return GL_FALSE;
}
if (data)
st_no_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer, 0,
size, data);
+ return GL_TRUE;
}
@@ -228,7 +229,6 @@ st_bufferobj_map_range(GLcontext *ctx, GLenum target,
struct pipe_context *pipe = st_context(ctx)->pipe;
struct st_buffer_object *st_obj = st_buffer_object(obj);
uint flags = 0x0;
- char *map;
if (access & GL_MAP_WRITE_BIT)
flags |= PIPE_BUFFER_USAGE_CPU_WRITE;
@@ -250,14 +250,15 @@ st_bufferobj_map_range(GLcontext *ctx, GLenum target,
assert(offset < obj->Size);
assert(offset + length <= obj->Size);
- map = obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags);
- if(obj->Pointer) {
+ obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags);
+ if (obj->Pointer) {
+ obj->Pointer = (ubyte *) obj->Pointer + offset;
obj->Offset = offset;
obj->Length = length;
- map += offset;
+ obj->AccessFlags = access;
}
- return map;
+ return obj->Pointer;
}
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index d19a88fa7c1..a9cafbf8cdc 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -353,7 +353,7 @@ make_texture(struct st_context *st,
assert(pipeFormat);
cpp = st_sizeof_format(pipeFormat);
- pixels = _mesa_map_drawpix_pbo(ctx, unpack, pixels);
+ pixels = _mesa_map_pbo_source(ctx, unpack, pixels);
if (!pixels)
return NULL;
@@ -381,7 +381,7 @@ make_texture(struct st_context *st,
pt = st_texture_create(st, PIPE_TEXTURE_2D, pipeFormat, 0, ptw, pth, 1,
PIPE_TEXTURE_USAGE_SAMPLER);
if (!pt) {
- _mesa_unmap_drawpix_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
return NULL;
}
@@ -428,7 +428,7 @@ make_texture(struct st_context *st,
ctx->_ImageTransferState = imageTransferStateSave;
}
- _mesa_unmap_drawpix_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
return pt;
}
@@ -681,7 +681,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
stmap = screen->transfer_map(screen, pt);
- pixels = _mesa_map_drawpix_pbo(ctx, unpack, pixels);
+ pixels = _mesa_map_pbo_source(ctx, unpack, pixels);
assert(pixels);
/* if width > MAX_WIDTH, have to process image in chunks */
@@ -775,7 +775,7 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y,
skipPixels += spanWidth;
}
- _mesa_unmap_drawpix_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
/* unmap the stencil buffer */
screen->transfer_unmap(screen, pt);
@@ -865,6 +865,10 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy,
usage = PIPE_TRANSFER_READ_WRITE;
else
usage = PIPE_TRANSFER_WRITE;
+
+ if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) {
+ dsty = rbDraw->Base.Height - dsty - height;
+ }
ptDraw = st_cond_flush_get_tex_transfer(st_context(ctx),
rbDraw->texture, 0, 0, 0,
diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c
index ccf1a0b5634..75424aa2e70 100644
--- a/src/mesa/state_tracker/st_cb_readpixels.c
+++ b/src/mesa/state_tracker/st_cb_readpixels.c
@@ -353,7 +353,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
return;
}
- dest = _mesa_map_readpix_pbo(ctx, &clippedPacking, dest);
+ dest = _mesa_map_pbo_dest(ctx, &clippedPacking, dest);
if (!dest)
return;
@@ -380,7 +380,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
if (st_fast_readpixels(ctx, strb, x, y, width, height,
format, type, pack, dest)) {
/* success! */
- _mesa_unmap_readpix_pbo(ctx, &clippedPacking);
+ _mesa_unmap_pbo_dest(ctx, &clippedPacking);
return;
}
@@ -534,7 +534,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
screen->tex_transfer_destroy(trans);
- _mesa_unmap_readpix_pbo(ctx, &clippedPacking);
+ _mesa_unmap_pbo_dest(ctx, &clippedPacking);
}
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 90a059ca69a..abaf9d2c353 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -56,6 +56,7 @@
#include "pipe/p_context.h"
#include "pipe/p_defines.h"
#include "pipe/p_inlines.h"
+#include "pipe/p_shader_tokens.h"
#include "util/u_tile.h"
#include "util/u_blit.h"
#include "util/u_surface.h"
@@ -516,9 +517,9 @@ st_TexImage(GLcontext * ctx,
struct st_texture_image *stImage = st_texture_image(texImage);
GLint postConvWidth, postConvHeight;
GLint texelBytes, sizeInBytes;
- GLuint dstRowStride;
+ GLuint dstRowStride = 0;
struct gl_pixelstore_attrib unpackNB;
- enum pipe_transfer_usage transfer_usage;
+ enum pipe_transfer_usage transfer_usage = 0;
DBG("%s target %s level %d %dx%dx%d border %d\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(target), level, width, height, depth, border);
@@ -870,7 +871,7 @@ decompress_with_blit(GLcontext * ctx, GLenum target, GLint level,
PIPE_TRANSFER_READ,
0, 0, width, height);
- pixels = _mesa_map_readpix_pbo(ctx, &ctx->Pack, pixels);
+ pixels = _mesa_map_pbo_dest(ctx, &ctx->Pack, pixels);
/* copy/pack data into user buffer */
if (st_equal_formats(stImage->pt->format, format, type)) {
@@ -903,7 +904,7 @@ decompress_with_blit(GLcontext * ctx, GLenum target, GLint level,
}
}
- _mesa_unmap_readpix_pbo(ctx, &ctx->Pack);
+ _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
/* destroy the temp / dest surface */
util_destroy_rgba_surface(dst_texture, dst_surface);
@@ -1393,6 +1394,36 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level,
}
+static unsigned
+compatible_src_dst_formats(const struct gl_renderbuffer *src,
+ const struct gl_texture_image *dst)
+{
+ const GLenum srcFormat = src->_BaseFormat;
+ const GLenum dstLogicalFormat = dst->_BaseFormat;
+
+ if (srcFormat == dstLogicalFormat) {
+ /* This is the same as matching_base_formats, which should
+ * always pass, as it did previously.
+ */
+ return TGSI_WRITEMASK_XYZW;
+ }
+ else if (srcFormat == GL_RGBA &&
+ dstLogicalFormat == GL_RGB) {
+ /* Add a single special case to cope with RGBA->RGB transfers,
+ * setting A to 1.0 to cope with situations where the RGB
+ * destination is actually stored as RGBA.
+ */
+ return TGSI_WRITEMASK_XYZ; /* A ==> 1.0 */
+ }
+ else {
+ /* Otherwise fail.
+ */
+ return 0;
+ }
+}
+
+
+
/**
* Do a CopyTex[Sub]Image1/2/3D() using a hardware (blit) path if possible.
* Note that the region to copy has already been clipped so we know we
@@ -1422,6 +1453,9 @@ st_copy_texsubimage(GLcontext *ctx,
enum pipe_format dest_format, src_format;
GLboolean use_fallback = GL_TRUE;
GLboolean matching_base_formats;
+ GLuint format_writemask;
+ struct pipe_surface *dest_surface = NULL;
+ GLboolean do_flip = (st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP);
/* any rendering in progress must flushed before we grab the fb image */
st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE, NULL);
@@ -1492,13 +1526,14 @@ st_copy_texsubimage(GLcontext *ctx,
* textured-quad paths.
*/
matching_base_formats = (strb->Base._BaseFormat == texImage->_BaseFormat);
+ format_writemask = compatible_src_dst_formats(&strb->Base, texImage);
- if (matching_base_formats && ctx->_ImageTransferState == 0x0) {
- /* try potential hardware path */
- struct pipe_surface *dest_surface = NULL;
- boolean do_flip = (st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP);
+ if (ctx->_ImageTransferState == 0x0) {
- if (src_format == dest_format && !do_flip) {
+ if (matching_base_formats &&
+ src_format == dest_format &&
+ !do_flip)
+ {
/* use surface_copy() / blit */
dest_surface = screen->get_tex_surface(screen, stImage->pt,
@@ -1518,7 +1553,8 @@ st_copy_texsubimage(GLcontext *ctx,
width, height);
use_fallback = GL_FALSE;
}
- else if (screen->is_format_supported(screen, src_format,
+ else if (format_writemask &&
+ screen->is_format_supported(screen, src_format,
PIPE_TEXTURE_2D,
PIPE_TEXTURE_USAGE_SAMPLER,
0) &&
@@ -1542,14 +1578,15 @@ st_copy_texsubimage(GLcontext *ctx,
srcY0 = srcY;
srcY1 = srcY0 + height;
}
- util_blit_pixels(ctx->st->blit,
- strb->surface,
- srcX, srcY0,
- srcX + width, srcY1,
- dest_surface,
- destX, destY,
- destX + width, destY + height,
- 0.0, PIPE_TEX_MIPFILTER_NEAREST);
+ util_blit_pixels_writemask(ctx->st->blit,
+ strb->surface,
+ srcX, srcY0,
+ srcX + width, srcY1,
+ dest_surface,
+ destX, destY,
+ destX + width, destY + height,
+ 0.0, PIPE_TEX_MIPFILTER_NEAREST,
+ format_writemask);
use_fallback = GL_FALSE;
}
diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c
index 5e7822cf323..3dbdf2a61a8 100644
--- a/src/mesa/swrast/s_bitmap.c
+++ b/src/mesa/swrast/s_bitmap.c
@@ -56,7 +56,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py,
ASSERT(ctx->RenderMode == GL_RENDER);
- bitmap = _mesa_map_bitmap_pbo(ctx, unpack, bitmap);
+ bitmap = (const GLubyte *) _mesa_map_pbo_source(ctx, unpack, bitmap);
if (!bitmap)
return;
@@ -133,7 +133,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py,
swrast_render_finish(ctx);
- _mesa_unmap_bitmap_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
}
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c
index e7c2ace32c7..abf00085651 100644
--- a/src/mesa/swrast/s_context.c
+++ b/src/mesa/swrast/s_context.c
@@ -220,6 +220,9 @@ _swrast_update_deferred_texture(GLcontext *ctx)
/* Z comes from fragment program/shader */
swrast->_DeferredTexture = GL_FALSE;
}
+ else if (fprog && fprog->UsesKill) {
+ swrast->_DeferredTexture = GL_FALSE;
+ }
else if (ctx->Query.CurrentOcclusionObject) {
/* occlusion query depends on shader discard/kill results */
swrast->_DeferredTexture = GL_FALSE;
diff --git a/src/mesa/swrast/s_drawpix.c b/src/mesa/swrast/s_drawpix.c
index a9ef8e685f1..6970b2e9cb5 100644
--- a/src/mesa/swrast/s_drawpix.c
+++ b/src/mesa/swrast/s_drawpix.c
@@ -831,11 +831,13 @@ _swrast_DrawPixels( GLcontext *ctx,
SWcontext *swrast = SWRAST_CONTEXT(ctx);
GLboolean save_vp_override = ctx->VertexProgram._Overriden;
- /* We are creating fragments directly, without going through vertex programs.
+ /* We are creating fragments directly, without going through vertex
+ * programs.
*
- * This override flag tells the fragment processing code that its input comes
- * from a non-standard source, and it may therefore not rely on optimizations
- * that assume e.g. constant color if there is no color vertex array.
+ * This override flag tells the fragment processing code that its input
+ * comes from a non-standard source, and it may therefore not rely on
+ * optimizations that assume e.g. constant color if there is no color
+ * vertex array.
*/
_mesa_set_vp_override(ctx, GL_TRUE);
@@ -847,7 +849,7 @@ _swrast_DrawPixels( GLcontext *ctx,
if (swrast->NewState)
_swrast_validate_derived( ctx );
- pixels = _mesa_map_drawpix_pbo(ctx, unpack, pixels);
+ pixels = _mesa_map_pbo_source(ctx, unpack, pixels);
if (!pixels) {
swrast_render_finish(ctx);
_mesa_set_vp_override(ctx, save_vp_override);
@@ -892,58 +894,5 @@ _swrast_DrawPixels( GLcontext *ctx,
swrast_render_finish(ctx);
_mesa_set_vp_override(ctx, save_vp_override);
- _mesa_unmap_drawpix_pbo(ctx, unpack);
+ _mesa_unmap_pbo_source(ctx, unpack);
}
-
-
-
-#if 0 /* experimental */
-/*
- * Execute glDrawDepthPixelsMESA().
- */
-void
-_swrast_DrawDepthPixelsMESA( GLcontext *ctx,
- GLint x, GLint y,
- GLsizei width, GLsizei height,
- GLenum colorFormat, GLenum colorType,
- const GLvoid *colors,
- GLenum depthType, const GLvoid *depths,
- const struct gl_pixelstore_attrib *unpack )
-{
- SWcontext *swrast = SWRAST_CONTEXT(ctx);
-
- if (swrast->NewState)
- _swrast_validate_derived( ctx );
-
- swrast_render_start(ctx);
-
- switch (colorFormat) {
- case GL_COLOR_INDEX:
- if (ctx->Visual.rgbMode)
- draw_rgba_pixels(ctx, x,y, width, height, colorFormat, colorType,
- unpack, colors);
- else
- draw_index_pixels(ctx, x, y, width, height, colorType,
- unpack, colors);
- break;
- case GL_RED:
- case GL_GREEN:
- case GL_BLUE:
- case GL_ALPHA:
- case GL_LUMINANCE:
- case GL_LUMINANCE_ALPHA:
- case GL_RGB:
- case GL_BGR:
- case GL_RGBA:
- case GL_BGRA:
- case GL_ABGR_EXT:
- draw_rgba_pixels(ctx, x, y, width, height, colorFormat, colorType,
- unpack, colors);
- break;
- default:
- _mesa_problem(ctx, "unexpected format in glDrawDepthPixelsMESA");
- }
-
- swrast_render_finish(ctx);
-}
-#endif
diff --git a/src/mesa/swrast/s_readpix.c b/src/mesa/swrast/s_readpix.c
index e901fc6b5dc..48b9408d242 100644
--- a/src/mesa/swrast/s_readpix.c
+++ b/src/mesa/swrast/s_readpix.c
@@ -574,7 +574,7 @@ _swrast_ReadPixels( GLcontext *ctx,
return;
}
- pixels = _mesa_map_readpix_pbo(ctx, &clippedPacking, pixels);
+ pixels = _mesa_map_pbo_dest(ctx, &clippedPacking, pixels);
if (!pixels)
return;
@@ -616,5 +616,5 @@ _swrast_ReadPixels( GLcontext *ctx,
swrast_render_finish(ctx);
- _mesa_unmap_readpix_pbo(ctx, &clippedPacking);
+ _mesa_unmap_pbo_dest(ctx, &clippedPacking);
}
diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c
index 1d2fed71691..1ab0e19f922 100644
--- a/src/mesa/swrast/s_triangle.c
+++ b/src/mesa/swrast/s_triangle.c
@@ -61,7 +61,7 @@ _swrast_culltriangle( GLcontext *ctx,
GLfloat fy = v2->attrib[FRAG_ATTRIB_WPOS][1] - v0->attrib[FRAG_ATTRIB_WPOS][1];
GLfloat c = ex*fy-ey*fx;
- if (c * swrast->_BackfaceSign * swrast->_BackfaceCullSign < 0.0F)
+ if (c * swrast->_BackfaceSign * swrast->_BackfaceCullSign <= 0.0F)
return GL_FALSE;
return GL_TRUE;
diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 4148469ef45..12911f5750c 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -33,6 +33,7 @@
#include "main/api_noop.h"
#include "main/varray.h"
#include "main/bufferobj.h"
+#include "main/macros.h"
#include "glapi/dispatch.h"
#include "vbo_context.h"
@@ -721,6 +722,152 @@ vbo_exec_DrawElements(GLenum mode, GLsizei count, GLenum type,
count, type, indices);
}
+/* Inner support for both _mesa_DrawElements and _mesa_DrawRangeElements */
+static void
+vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode,
+ const GLsizei *count, GLenum type,
+ const GLvoid **indices, GLsizei primcount)
+{
+ struct vbo_context *vbo = vbo_context(ctx);
+ struct vbo_exec_context *exec = &vbo->exec;
+ struct _mesa_index_buffer ib;
+ struct _mesa_prim *prim;
+ unsigned int index_type_size = 0;
+ uintptr_t min_index_ptr, max_index_ptr;
+ GLboolean fallback = GL_FALSE;
+ int i;
+
+ if (primcount == 0)
+ return;
+
+ FLUSH_CURRENT( ctx, 0 );
+
+ if (ctx->NewState)
+ _mesa_update_state( ctx );
+
+ if (!_mesa_valid_to_render(ctx, "glMultiDrawElements")) {
+ return;
+ }
+
+ if (ctx->NewState)
+ _mesa_update_state( ctx );
+
+ prim = _mesa_calloc(primcount * sizeof(*prim));
+ if (prim == NULL) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glMultiDrawElements");
+ return;
+ }
+
+ /* Decide if we can do this all as one set of primitives sharing the
+ * same index buffer, or if we have to reset the index pointer per primitive.
+ */
+ bind_arrays( ctx );
+
+ switch (type) {
+ case GL_UNSIGNED_INT:
+ index_type_size = 4;
+ break;
+ case GL_UNSIGNED_SHORT:
+ index_type_size = 2;
+ break;
+ case GL_UNSIGNED_BYTE:
+ index_type_size = 1;
+ break;
+ default:
+ assert(0);
+ }
+
+ min_index_ptr = (uintptr_t)indices[0];
+ max_index_ptr = 0;
+ for (i = 0; i < primcount; i++) {
+ min_index_ptr = MIN2(min_index_ptr, (uintptr_t)indices[i]);
+ max_index_ptr = MAX2(max_index_ptr, (uintptr_t)indices[i] +
+ index_type_size * count[i]);
+ }
+
+ /* Check if we can handle this thing as a bunch of index offsets from the
+ * same index pointer. If we can't, then we have to fall back to doing
+ * a draw_prims per primitive.
+ */
+ if (index_type_size != 1) {
+ for (i = 0; i < primcount; i++) {
+ if ((((uintptr_t)indices[i] - min_index_ptr) % index_type_size) != 0) {
+ fallback = GL_TRUE;
+ break;
+ }
+ }
+ }
+
+ /* If the index buffer isn't in a VBO, then treating the application's
+ * subranges of the index buffer as one large index buffer may lead to
+ * us reading unmapped memory.
+ */
+ if (!_mesa_is_bufferobj(ctx->Array.ElementArrayBufferObj))
+ fallback = GL_TRUE;
+
+ if (!fallback) {
+ ib.count = (max_index_ptr - min_index_ptr) / index_type_size;
+ ib.type = type;
+ ib.obj = ctx->Array.ElementArrayBufferObj;
+ ib.ptr = (void *)min_index_ptr;
+
+ for (i = 0; i < primcount; i++) {
+ prim[i].begin = (i == 0);
+ prim[i].end = (i == primcount - 1);
+ prim[i].weak = 0;
+ prim[i].pad = 0;
+ prim[i].mode = mode;
+ prim[i].start = ((uintptr_t)indices[i] - min_index_ptr) / index_type_size;
+ prim[i].count = count[i];
+ prim[i].indexed = 1;
+ }
+
+ vbo->draw_prims(ctx, exec->array.inputs, prim, primcount, &ib,
+ GL_FALSE, ~0, ~0);
+ } else {
+ for (i = 0; i < primcount; i++) {
+ ib.count = count[i];
+ ib.type = type;
+ ib.obj = ctx->Array.ElementArrayBufferObj;
+ ib.ptr = indices[i];
+
+
+ prim[0].begin = 1;
+ prim[0].end = 1;
+ prim[0].weak = 0;
+ prim[0].pad = 0;
+ prim[0].mode = mode;
+ prim[0].start = 0;
+ prim[0].count = count[i];
+ prim[0].indexed = 1;
+ }
+
+ vbo->draw_prims(ctx, exec->array.inputs, prim, 1, &ib,
+ GL_FALSE, ~0, ~0);
+ }
+ _mesa_free(prim);
+}
+
+static void GLAPIENTRY
+vbo_exec_MultiDrawElements(GLenum mode,
+ const GLsizei *count, GLenum type,
+ const GLvoid **indices,
+ GLsizei primcount)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ GLint i;
+
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+
+ for (i = 0; i < primcount; i++) {
+ if (!_mesa_validate_DrawElements( ctx, mode, count[i], type, indices[i] ))
+ return;
+ }
+
+ vbo_validated_multidrawelements(ctx, mode, count, type, indices, primcount);
+}
+
+
/***********************************************************************
* Initialization
@@ -733,10 +880,12 @@ vbo_exec_array_init( struct vbo_exec_context *exec )
exec->vtxfmt.DrawArrays = vbo_exec_DrawArrays;
exec->vtxfmt.DrawElements = vbo_exec_DrawElements;
exec->vtxfmt.DrawRangeElements = vbo_exec_DrawRangeElements;
+ exec->vtxfmt.MultiDrawElementsEXT = vbo_exec_MultiDrawElements;
#else
exec->vtxfmt.DrawArrays = _mesa_noop_DrawArrays;
exec->vtxfmt.DrawElements = _mesa_noop_DrawElements;
exec->vtxfmt.DrawRangeElements = _mesa_noop_DrawRangeElements;
+ exec->vtxfmt.MultiDrawElementsEXT = _mesa_noop_MultiDrawElements;
#endif
}
@@ -772,3 +921,11 @@ _mesa_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count,
{
vbo_exec_DrawRangeElements(mode, start, end, count, type, indices);
}
+
+/* GL_EXT_multi_draw_arrays */
+void GLAPIENTRY
+_mesa_MultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type,
+ const GLvoid **indices, GLsizei primcount)
+{
+ vbo_exec_MultiDrawElements(mode, count, type, indices, primcount);
+}
diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c
index cdbbc9c1876..1771510d848 100644
--- a/src/mesa/vbo/vbo_save_api.c
+++ b/src/mesa/vbo/vbo_save_api.c
@@ -73,6 +73,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "main/dlist.h"
#include "main/enums.h"
#include "main/macros.h"
+#include "main/api_noop.h"
#include "main/api_validate.h"
#include "main/api_arrayelt.h"
#include "main/vtxfmt.h"
@@ -1038,6 +1039,8 @@ static void _save_vtxfmt_init( GLcontext *ctx )
vfmt->DrawArrays = _save_DrawArrays;
vfmt->DrawElements = _save_DrawElements;
vfmt->DrawRangeElements = _save_DrawRangeElements;
+ /* Loops back into vfmt->DrawElements */
+ vfmt->MultiDrawElementsEXT = _mesa_noop_MultiDrawElements;
}
@@ -1228,6 +1231,8 @@ void vbo_save_api_init( struct vbo_save_context *save )
ctx->ListState.ListVtxfmt.DrawArrays = _save_OBE_DrawArrays;
ctx->ListState.ListVtxfmt.DrawElements = _save_OBE_DrawElements;
ctx->ListState.ListVtxfmt.DrawRangeElements = _save_OBE_DrawRangeElements;
+ /* loops back into _save_OBE_DrawElements */
+ ctx->ListState.ListVtxfmt.MultiDrawElementsEXT = _mesa_noop_MultiDrawElements;
_mesa_install_save_vtxfmt( ctx, &ctx->ListState.ListVtxfmt );
}
diff --git a/src/mesa/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S
index 10525d4c656..db917f3982f 100644
--- a/src/mesa/x86-64/glapi_x86-64.S
+++ b/src/mesa/x86-64/glapi_x86-64.S
@@ -21350,12 +21350,263 @@ GL_PREFIX(CopyBufferSubData):
.size GL_PREFIX(CopyBufferSubData), .-GL_PREFIX(CopyBufferSubData)
.p2align 4,,15
+ .globl GL_PREFIX(ClientWaitSync)
+ .type GL_PREFIX(ClientWaitSync), @function
+GL_PREFIX(ClientWaitSync):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4536(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _x86_64_get_dispatch@PLT
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4536(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4536(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _glapi_get_dispatch
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4536(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(ClientWaitSync), .-GL_PREFIX(ClientWaitSync)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(DeleteSync)
+ .type GL_PREFIX(DeleteSync), @function
+GL_PREFIX(DeleteSync):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4544(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ call _x86_64_get_dispatch@PLT
+ popq %rdi
+ movq 4544(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4544(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ call _glapi_get_dispatch
+ popq %rdi
+ movq 4544(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(DeleteSync), .-GL_PREFIX(DeleteSync)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(FenceSync)
+ .type GL_PREFIX(FenceSync), @function
+GL_PREFIX(FenceSync):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4552(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rbp
+ call _x86_64_get_dispatch@PLT
+ popq %rbp
+ popq %rsi
+ popq %rdi
+ movq 4552(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4552(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rbp
+ call _glapi_get_dispatch
+ popq %rbp
+ popq %rsi
+ popq %rdi
+ movq 4552(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(FenceSync), .-GL_PREFIX(FenceSync)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(GetInteger64v)
+ .type GL_PREFIX(GetInteger64v), @function
+GL_PREFIX(GetInteger64v):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4560(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rbp
+ call _x86_64_get_dispatch@PLT
+ popq %rbp
+ popq %rsi
+ popq %rdi
+ movq 4560(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4560(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rbp
+ call _glapi_get_dispatch
+ popq %rbp
+ popq %rsi
+ popq %rdi
+ movq 4560(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(GetInteger64v), .-GL_PREFIX(GetInteger64v)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(GetSynciv)
+ .type GL_PREFIX(GetSynciv), @function
+GL_PREFIX(GetSynciv):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4568(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ pushq %rcx
+ pushq %r8
+ call _x86_64_get_dispatch@PLT
+ popq %r8
+ popq %rcx
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4568(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4568(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ pushq %rcx
+ pushq %r8
+ call _glapi_get_dispatch
+ popq %r8
+ popq %rcx
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4568(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(GetSynciv), .-GL_PREFIX(GetSynciv)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(IsSync)
+ .type GL_PREFIX(IsSync), @function
+GL_PREFIX(IsSync):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4576(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ call _x86_64_get_dispatch@PLT
+ popq %rdi
+ movq 4576(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4576(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ call _glapi_get_dispatch
+ popq %rdi
+ movq 4576(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(IsSync), .-GL_PREFIX(IsSync)
+
+ .p2align 4,,15
+ .globl GL_PREFIX(WaitSync)
+ .type GL_PREFIX(WaitSync), @function
+GL_PREFIX(WaitSync):
+#if defined(GLX_USE_TLS)
+ call _x86_64_get_dispatch@PLT
+ movq 4584(%rax), %r11
+ jmp *%r11
+#elif defined(PTHREADS)
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _x86_64_get_dispatch@PLT
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4584(%rax), %r11
+ jmp *%r11
+#else
+ movq _glapi_Dispatch(%rip), %rax
+ testq %rax, %rax
+ je 1f
+ movq 4584(%rax), %r11
+ jmp *%r11
+1:
+ pushq %rdi
+ pushq %rsi
+ pushq %rdx
+ call _glapi_get_dispatch
+ popq %rdx
+ popq %rsi
+ popq %rdi
+ movq 4584(%rax), %r11
+ jmp *%r11
+#endif /* defined(GLX_USE_TLS) */
+ .size GL_PREFIX(WaitSync), .-GL_PREFIX(WaitSync)
+
+ .p2align 4,,15
.globl GL_PREFIX(PolygonOffsetEXT)
.type GL_PREFIX(PolygonOffsetEXT), @function
GL_PREFIX(PolygonOffsetEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4536(%rax), %r11
+ movq 4592(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -21365,13 +21616,13 @@ GL_PREFIX(PolygonOffsetEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4536(%rax), %r11
+ movq 4592(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4536(%rax), %r11
+ movq 4592(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -21381,19 +21632,19 @@ GL_PREFIX(PolygonOffsetEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4536(%rax), %r11
+ movq 4592(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PolygonOffsetEXT), .-GL_PREFIX(PolygonOffsetEXT)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_568)
- .type GL_PREFIX(_dispatch_stub_568), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_568))
-GL_PREFIX(_dispatch_stub_568):
+ .globl GL_PREFIX(_dispatch_stub_575)
+ .type GL_PREFIX(_dispatch_stub_575), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_575))
+GL_PREFIX(_dispatch_stub_575):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4544(%rax), %r11
+ movq 4600(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21403,13 +21654,13 @@ GL_PREFIX(_dispatch_stub_568):
popq %rbp
popq %rsi
popq %rdi
- movq 4544(%rax), %r11
+ movq 4600(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4544(%rax), %r11
+ movq 4600(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21419,19 +21670,19 @@ GL_PREFIX(_dispatch_stub_568):
popq %rbp
popq %rsi
popq %rdi
- movq 4544(%rax), %r11
+ movq 4600(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_568), .-GL_PREFIX(_dispatch_stub_568)
+ .size GL_PREFIX(_dispatch_stub_575), .-GL_PREFIX(_dispatch_stub_575)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_569)
- .type GL_PREFIX(_dispatch_stub_569), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_569))
-GL_PREFIX(_dispatch_stub_569):
+ .globl GL_PREFIX(_dispatch_stub_576)
+ .type GL_PREFIX(_dispatch_stub_576), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_576))
+GL_PREFIX(_dispatch_stub_576):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4552(%rax), %r11
+ movq 4608(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21441,13 +21692,13 @@ GL_PREFIX(_dispatch_stub_569):
popq %rbp
popq %rsi
popq %rdi
- movq 4552(%rax), %r11
+ movq 4608(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4552(%rax), %r11
+ movq 4608(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21457,19 +21708,19 @@ GL_PREFIX(_dispatch_stub_569):
popq %rbp
popq %rsi
popq %rdi
- movq 4552(%rax), %r11
+ movq 4608(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_569), .-GL_PREFIX(_dispatch_stub_569)
+ .size GL_PREFIX(_dispatch_stub_576), .-GL_PREFIX(_dispatch_stub_576)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_570)
- .type GL_PREFIX(_dispatch_stub_570), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_570))
-GL_PREFIX(_dispatch_stub_570):
+ .globl GL_PREFIX(_dispatch_stub_577)
+ .type GL_PREFIX(_dispatch_stub_577), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_577))
+GL_PREFIX(_dispatch_stub_577):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4560(%rax), %r11
+ movq 4616(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -21479,13 +21730,13 @@ GL_PREFIX(_dispatch_stub_570):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4560(%rax), %r11
+ movq 4616(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4560(%rax), %r11
+ movq 4616(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -21495,19 +21746,19 @@ GL_PREFIX(_dispatch_stub_570):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4560(%rax), %r11
+ movq 4616(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_570), .-GL_PREFIX(_dispatch_stub_570)
+ .size GL_PREFIX(_dispatch_stub_577), .-GL_PREFIX(_dispatch_stub_577)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_571)
- .type GL_PREFIX(_dispatch_stub_571), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_571))
-GL_PREFIX(_dispatch_stub_571):
+ .globl GL_PREFIX(_dispatch_stub_578)
+ .type GL_PREFIX(_dispatch_stub_578), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_578))
+GL_PREFIX(_dispatch_stub_578):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4568(%rax), %r11
+ movq 4624(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21517,13 +21768,13 @@ GL_PREFIX(_dispatch_stub_571):
popq %rbp
popq %rsi
popq %rdi
- movq 4568(%rax), %r11
+ movq 4624(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4568(%rax), %r11
+ movq 4624(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21533,19 +21784,19 @@ GL_PREFIX(_dispatch_stub_571):
popq %rbp
popq %rsi
popq %rdi
- movq 4568(%rax), %r11
+ movq 4624(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_571), .-GL_PREFIX(_dispatch_stub_571)
+ .size GL_PREFIX(_dispatch_stub_578), .-GL_PREFIX(_dispatch_stub_578)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_572)
- .type GL_PREFIX(_dispatch_stub_572), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_572))
-GL_PREFIX(_dispatch_stub_572):
+ .globl GL_PREFIX(_dispatch_stub_579)
+ .type GL_PREFIX(_dispatch_stub_579), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_579))
+GL_PREFIX(_dispatch_stub_579):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4576(%rax), %r11
+ movq 4632(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21555,13 +21806,13 @@ GL_PREFIX(_dispatch_stub_572):
popq %rbp
popq %rsi
popq %rdi
- movq 4576(%rax), %r11
+ movq 4632(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4576(%rax), %r11
+ movq 4632(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21571,19 +21822,19 @@ GL_PREFIX(_dispatch_stub_572):
popq %rbp
popq %rsi
popq %rdi
- movq 4576(%rax), %r11
+ movq 4632(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_572), .-GL_PREFIX(_dispatch_stub_572)
+ .size GL_PREFIX(_dispatch_stub_579), .-GL_PREFIX(_dispatch_stub_579)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_573)
- .type GL_PREFIX(_dispatch_stub_573), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_573))
-GL_PREFIX(_dispatch_stub_573):
+ .globl GL_PREFIX(_dispatch_stub_580)
+ .type GL_PREFIX(_dispatch_stub_580), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_580))
+GL_PREFIX(_dispatch_stub_580):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4584(%rax), %r11
+ movq 4640(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21593,13 +21844,13 @@ GL_PREFIX(_dispatch_stub_573):
popq %rbp
popq %rsi
popq %rdi
- movq 4584(%rax), %r11
+ movq 4640(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4584(%rax), %r11
+ movq 4640(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21609,19 +21860,19 @@ GL_PREFIX(_dispatch_stub_573):
popq %rbp
popq %rsi
popq %rdi
- movq 4584(%rax), %r11
+ movq 4640(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_573), .-GL_PREFIX(_dispatch_stub_573)
+ .size GL_PREFIX(_dispatch_stub_580), .-GL_PREFIX(_dispatch_stub_580)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_574)
- .type GL_PREFIX(_dispatch_stub_574), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_574))
-GL_PREFIX(_dispatch_stub_574):
+ .globl GL_PREFIX(_dispatch_stub_581)
+ .type GL_PREFIX(_dispatch_stub_581), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_581))
+GL_PREFIX(_dispatch_stub_581):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4592(%rax), %r11
+ movq 4648(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21631,13 +21882,13 @@ GL_PREFIX(_dispatch_stub_574):
popq %rbp
popq %rsi
popq %rdi
- movq 4592(%rax), %r11
+ movq 4648(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4592(%rax), %r11
+ movq 4648(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21647,40 +21898,40 @@ GL_PREFIX(_dispatch_stub_574):
popq %rbp
popq %rsi
popq %rdi
- movq 4592(%rax), %r11
+ movq 4648(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_574), .-GL_PREFIX(_dispatch_stub_574)
+ .size GL_PREFIX(_dispatch_stub_581), .-GL_PREFIX(_dispatch_stub_581)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_575)
- .type GL_PREFIX(_dispatch_stub_575), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_575))
-GL_PREFIX(_dispatch_stub_575):
+ .globl GL_PREFIX(_dispatch_stub_582)
+ .type GL_PREFIX(_dispatch_stub_582), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_582))
+GL_PREFIX(_dispatch_stub_582):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4600(%rax), %r11
+ movq 4656(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4600(%rax), %r11
+ movq 4656(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4600(%rax), %r11
+ movq 4656(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4600(%rax), %r11
+ movq 4656(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_575), .-GL_PREFIX(_dispatch_stub_575)
+ .size GL_PREFIX(_dispatch_stub_582), .-GL_PREFIX(_dispatch_stub_582)
.p2align 4,,15
.globl GL_PREFIX(ColorPointerEXT)
@@ -21688,7 +21939,7 @@ GL_PREFIX(_dispatch_stub_575):
GL_PREFIX(ColorPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4608(%rax), %r11
+ movq 4664(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21702,13 +21953,13 @@ GL_PREFIX(ColorPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4608(%rax), %r11
+ movq 4664(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4608(%rax), %r11
+ movq 4664(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21722,7 +21973,7 @@ GL_PREFIX(ColorPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4608(%rax), %r11
+ movq 4664(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ColorPointerEXT), .-GL_PREFIX(ColorPointerEXT)
@@ -21733,7 +21984,7 @@ GL_PREFIX(ColorPointerEXT):
GL_PREFIX(EdgeFlagPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4616(%rax), %r11
+ movq 4672(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21743,13 +21994,13 @@ GL_PREFIX(EdgeFlagPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4616(%rax), %r11
+ movq 4672(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4616(%rax), %r11
+ movq 4672(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21759,7 +22010,7 @@ GL_PREFIX(EdgeFlagPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4616(%rax), %r11
+ movq 4672(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(EdgeFlagPointerEXT), .-GL_PREFIX(EdgeFlagPointerEXT)
@@ -21770,7 +22021,7 @@ GL_PREFIX(EdgeFlagPointerEXT):
GL_PREFIX(IndexPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4624(%rax), %r11
+ movq 4680(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21784,13 +22035,13 @@ GL_PREFIX(IndexPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4624(%rax), %r11
+ movq 4680(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4624(%rax), %r11
+ movq 4680(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21804,7 +22055,7 @@ GL_PREFIX(IndexPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4624(%rax), %r11
+ movq 4680(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(IndexPointerEXT), .-GL_PREFIX(IndexPointerEXT)
@@ -21815,7 +22066,7 @@ GL_PREFIX(IndexPointerEXT):
GL_PREFIX(NormalPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4632(%rax), %r11
+ movq 4688(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21829,13 +22080,13 @@ GL_PREFIX(NormalPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4632(%rax), %r11
+ movq 4688(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4632(%rax), %r11
+ movq 4688(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21849,7 +22100,7 @@ GL_PREFIX(NormalPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4632(%rax), %r11
+ movq 4688(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(NormalPointerEXT), .-GL_PREFIX(NormalPointerEXT)
@@ -21860,7 +22111,7 @@ GL_PREFIX(NormalPointerEXT):
GL_PREFIX(TexCoordPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4640(%rax), %r11
+ movq 4696(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21874,13 +22125,13 @@ GL_PREFIX(TexCoordPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4640(%rax), %r11
+ movq 4696(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4640(%rax), %r11
+ movq 4696(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21894,7 +22145,7 @@ GL_PREFIX(TexCoordPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4640(%rax), %r11
+ movq 4696(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(TexCoordPointerEXT), .-GL_PREFIX(TexCoordPointerEXT)
@@ -21905,7 +22156,7 @@ GL_PREFIX(TexCoordPointerEXT):
GL_PREFIX(VertexPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4648(%rax), %r11
+ movq 4704(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21919,13 +22170,13 @@ GL_PREFIX(VertexPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4648(%rax), %r11
+ movq 4704(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4648(%rax), %r11
+ movq 4704(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -21939,7 +22190,7 @@ GL_PREFIX(VertexPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4648(%rax), %r11
+ movq 4704(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexPointerEXT), .-GL_PREFIX(VertexPointerEXT)
@@ -21950,7 +22201,7 @@ GL_PREFIX(VertexPointerEXT):
GL_PREFIX(PointParameterfEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4656(%rax), %r11
+ movq 4712(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -21960,13 +22211,13 @@ GL_PREFIX(PointParameterfEXT):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4656(%rax), %r11
+ movq 4712(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4656(%rax), %r11
+ movq 4712(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -21976,7 +22227,7 @@ GL_PREFIX(PointParameterfEXT):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4656(%rax), %r11
+ movq 4712(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PointParameterfEXT), .-GL_PREFIX(PointParameterfEXT)
@@ -21987,7 +22238,7 @@ GL_PREFIX(PointParameterfEXT):
GL_PREFIX(PointParameterfvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4664(%rax), %r11
+ movq 4720(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -21997,13 +22248,13 @@ GL_PREFIX(PointParameterfvEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 4664(%rax), %r11
+ movq 4720(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4664(%rax), %r11
+ movq 4720(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22013,7 +22264,7 @@ GL_PREFIX(PointParameterfvEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 4664(%rax), %r11
+ movq 4720(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PointParameterfvEXT), .-GL_PREFIX(PointParameterfvEXT)
@@ -22024,7 +22275,7 @@ GL_PREFIX(PointParameterfvEXT):
GL_PREFIX(LockArraysEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4672(%rax), %r11
+ movq 4728(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22034,13 +22285,13 @@ GL_PREFIX(LockArraysEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 4672(%rax), %r11
+ movq 4728(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4672(%rax), %r11
+ movq 4728(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22050,7 +22301,7 @@ GL_PREFIX(LockArraysEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 4672(%rax), %r11
+ movq 4728(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(LockArraysEXT), .-GL_PREFIX(LockArraysEXT)
@@ -22061,37 +22312,37 @@ GL_PREFIX(LockArraysEXT):
GL_PREFIX(UnlockArraysEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4680(%rax), %r11
+ movq 4736(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
- movq 4680(%rax), %r11
+ movq 4736(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4680(%rax), %r11
+ movq 4736(%rax), %r11
jmp *%r11
1:
pushq %rbp
call _glapi_get_dispatch
popq %rbp
- movq 4680(%rax), %r11
+ movq 4736(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(UnlockArraysEXT), .-GL_PREFIX(UnlockArraysEXT)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_586)
- .type GL_PREFIX(_dispatch_stub_586), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_586))
-GL_PREFIX(_dispatch_stub_586):
+ .globl GL_PREFIX(_dispatch_stub_593)
+ .type GL_PREFIX(_dispatch_stub_593), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_593))
+GL_PREFIX(_dispatch_stub_593):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4688(%rax), %r11
+ movq 4744(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22101,13 +22352,13 @@ GL_PREFIX(_dispatch_stub_586):
popq %rbp
popq %rsi
popq %rdi
- movq 4688(%rax), %r11
+ movq 4744(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4688(%rax), %r11
+ movq 4744(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22117,19 +22368,19 @@ GL_PREFIX(_dispatch_stub_586):
popq %rbp
popq %rsi
popq %rdi
- movq 4688(%rax), %r11
+ movq 4744(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_586), .-GL_PREFIX(_dispatch_stub_586)
+ .size GL_PREFIX(_dispatch_stub_593), .-GL_PREFIX(_dispatch_stub_593)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_587)
- .type GL_PREFIX(_dispatch_stub_587), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_587))
-GL_PREFIX(_dispatch_stub_587):
+ .globl GL_PREFIX(_dispatch_stub_594)
+ .type GL_PREFIX(_dispatch_stub_594), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_594))
+GL_PREFIX(_dispatch_stub_594):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4696(%rax), %r11
+ movq 4752(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22139,13 +22390,13 @@ GL_PREFIX(_dispatch_stub_587):
popq %rbp
popq %rsi
popq %rdi
- movq 4696(%rax), %r11
+ movq 4752(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4696(%rax), %r11
+ movq 4752(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22155,10 +22406,10 @@ GL_PREFIX(_dispatch_stub_587):
popq %rbp
popq %rsi
popq %rdi
- movq 4696(%rax), %r11
+ movq 4752(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_587), .-GL_PREFIX(_dispatch_stub_587)
+ .size GL_PREFIX(_dispatch_stub_594), .-GL_PREFIX(_dispatch_stub_594)
.p2align 4,,15
.globl GL_PREFIX(SecondaryColor3bEXT)
@@ -22166,7 +22417,7 @@ GL_PREFIX(_dispatch_stub_587):
GL_PREFIX(SecondaryColor3bEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4704(%rax), %r11
+ movq 4760(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22176,13 +22427,13 @@ GL_PREFIX(SecondaryColor3bEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4704(%rax), %r11
+ movq 4760(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4704(%rax), %r11
+ movq 4760(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22192,7 +22443,7 @@ GL_PREFIX(SecondaryColor3bEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4704(%rax), %r11
+ movq 4760(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3bEXT), .-GL_PREFIX(SecondaryColor3bEXT)
@@ -22203,25 +22454,25 @@ GL_PREFIX(SecondaryColor3bEXT):
GL_PREFIX(SecondaryColor3bvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4712(%rax), %r11
+ movq 4768(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4712(%rax), %r11
+ movq 4768(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4712(%rax), %r11
+ movq 4768(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4712(%rax), %r11
+ movq 4768(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3bvEXT), .-GL_PREFIX(SecondaryColor3bvEXT)
@@ -22232,7 +22483,7 @@ GL_PREFIX(SecondaryColor3bvEXT):
GL_PREFIX(SecondaryColor3dEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4720(%rax), %r11
+ movq 4776(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -22244,13 +22495,13 @@ GL_PREFIX(SecondaryColor3dEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4720(%rax), %r11
+ movq 4776(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4720(%rax), %r11
+ movq 4776(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -22262,7 +22513,7 @@ GL_PREFIX(SecondaryColor3dEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4720(%rax), %r11
+ movq 4776(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3dEXT), .-GL_PREFIX(SecondaryColor3dEXT)
@@ -22273,25 +22524,25 @@ GL_PREFIX(SecondaryColor3dEXT):
GL_PREFIX(SecondaryColor3dvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4728(%rax), %r11
+ movq 4784(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4728(%rax), %r11
+ movq 4784(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4728(%rax), %r11
+ movq 4784(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4728(%rax), %r11
+ movq 4784(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3dvEXT), .-GL_PREFIX(SecondaryColor3dvEXT)
@@ -22302,7 +22553,7 @@ GL_PREFIX(SecondaryColor3dvEXT):
GL_PREFIX(SecondaryColor3fEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4736(%rax), %r11
+ movq 4792(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -22314,13 +22565,13 @@ GL_PREFIX(SecondaryColor3fEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4736(%rax), %r11
+ movq 4792(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4736(%rax), %r11
+ movq 4792(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -22332,7 +22583,7 @@ GL_PREFIX(SecondaryColor3fEXT):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 4736(%rax), %r11
+ movq 4792(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3fEXT), .-GL_PREFIX(SecondaryColor3fEXT)
@@ -22343,25 +22594,25 @@ GL_PREFIX(SecondaryColor3fEXT):
GL_PREFIX(SecondaryColor3fvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4744(%rax), %r11
+ movq 4800(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4744(%rax), %r11
+ movq 4800(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4744(%rax), %r11
+ movq 4800(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4744(%rax), %r11
+ movq 4800(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3fvEXT), .-GL_PREFIX(SecondaryColor3fvEXT)
@@ -22372,7 +22623,7 @@ GL_PREFIX(SecondaryColor3fvEXT):
GL_PREFIX(SecondaryColor3iEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4752(%rax), %r11
+ movq 4808(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22382,13 +22633,13 @@ GL_PREFIX(SecondaryColor3iEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4752(%rax), %r11
+ movq 4808(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4752(%rax), %r11
+ movq 4808(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22398,7 +22649,7 @@ GL_PREFIX(SecondaryColor3iEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4752(%rax), %r11
+ movq 4808(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3iEXT), .-GL_PREFIX(SecondaryColor3iEXT)
@@ -22409,25 +22660,25 @@ GL_PREFIX(SecondaryColor3iEXT):
GL_PREFIX(SecondaryColor3ivEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4760(%rax), %r11
+ movq 4816(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4760(%rax), %r11
+ movq 4816(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4760(%rax), %r11
+ movq 4816(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4760(%rax), %r11
+ movq 4816(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3ivEXT), .-GL_PREFIX(SecondaryColor3ivEXT)
@@ -22438,7 +22689,7 @@ GL_PREFIX(SecondaryColor3ivEXT):
GL_PREFIX(SecondaryColor3sEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4768(%rax), %r11
+ movq 4824(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22448,13 +22699,13 @@ GL_PREFIX(SecondaryColor3sEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4768(%rax), %r11
+ movq 4824(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4768(%rax), %r11
+ movq 4824(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22464,7 +22715,7 @@ GL_PREFIX(SecondaryColor3sEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4768(%rax), %r11
+ movq 4824(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3sEXT), .-GL_PREFIX(SecondaryColor3sEXT)
@@ -22475,25 +22726,25 @@ GL_PREFIX(SecondaryColor3sEXT):
GL_PREFIX(SecondaryColor3svEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4776(%rax), %r11
+ movq 4832(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4776(%rax), %r11
+ movq 4832(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4776(%rax), %r11
+ movq 4832(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4776(%rax), %r11
+ movq 4832(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3svEXT), .-GL_PREFIX(SecondaryColor3svEXT)
@@ -22504,7 +22755,7 @@ GL_PREFIX(SecondaryColor3svEXT):
GL_PREFIX(SecondaryColor3ubEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4784(%rax), %r11
+ movq 4840(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22514,13 +22765,13 @@ GL_PREFIX(SecondaryColor3ubEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4784(%rax), %r11
+ movq 4840(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4784(%rax), %r11
+ movq 4840(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22530,7 +22781,7 @@ GL_PREFIX(SecondaryColor3ubEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4784(%rax), %r11
+ movq 4840(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3ubEXT), .-GL_PREFIX(SecondaryColor3ubEXT)
@@ -22541,25 +22792,25 @@ GL_PREFIX(SecondaryColor3ubEXT):
GL_PREFIX(SecondaryColor3ubvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4792(%rax), %r11
+ movq 4848(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4792(%rax), %r11
+ movq 4848(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4792(%rax), %r11
+ movq 4848(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4792(%rax), %r11
+ movq 4848(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3ubvEXT), .-GL_PREFIX(SecondaryColor3ubvEXT)
@@ -22570,7 +22821,7 @@ GL_PREFIX(SecondaryColor3ubvEXT):
GL_PREFIX(SecondaryColor3uiEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4800(%rax), %r11
+ movq 4856(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22580,13 +22831,13 @@ GL_PREFIX(SecondaryColor3uiEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4800(%rax), %r11
+ movq 4856(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4800(%rax), %r11
+ movq 4856(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22596,7 +22847,7 @@ GL_PREFIX(SecondaryColor3uiEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4800(%rax), %r11
+ movq 4856(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3uiEXT), .-GL_PREFIX(SecondaryColor3uiEXT)
@@ -22607,25 +22858,25 @@ GL_PREFIX(SecondaryColor3uiEXT):
GL_PREFIX(SecondaryColor3uivEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4808(%rax), %r11
+ movq 4864(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4808(%rax), %r11
+ movq 4864(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4808(%rax), %r11
+ movq 4864(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4808(%rax), %r11
+ movq 4864(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3uivEXT), .-GL_PREFIX(SecondaryColor3uivEXT)
@@ -22636,7 +22887,7 @@ GL_PREFIX(SecondaryColor3uivEXT):
GL_PREFIX(SecondaryColor3usEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4816(%rax), %r11
+ movq 4872(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22646,13 +22897,13 @@ GL_PREFIX(SecondaryColor3usEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4816(%rax), %r11
+ movq 4872(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4816(%rax), %r11
+ movq 4872(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22662,7 +22913,7 @@ GL_PREFIX(SecondaryColor3usEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4816(%rax), %r11
+ movq 4872(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3usEXT), .-GL_PREFIX(SecondaryColor3usEXT)
@@ -22673,25 +22924,25 @@ GL_PREFIX(SecondaryColor3usEXT):
GL_PREFIX(SecondaryColor3usvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4824(%rax), %r11
+ movq 4880(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4824(%rax), %r11
+ movq 4880(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4824(%rax), %r11
+ movq 4880(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4824(%rax), %r11
+ movq 4880(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColor3usvEXT), .-GL_PREFIX(SecondaryColor3usvEXT)
@@ -22702,7 +22953,7 @@ GL_PREFIX(SecondaryColor3usvEXT):
GL_PREFIX(SecondaryColorPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4832(%rax), %r11
+ movq 4888(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22716,13 +22967,13 @@ GL_PREFIX(SecondaryColorPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4832(%rax), %r11
+ movq 4888(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4832(%rax), %r11
+ movq 4888(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22736,7 +22987,7 @@ GL_PREFIX(SecondaryColorPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4832(%rax), %r11
+ movq 4888(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SecondaryColorPointerEXT), .-GL_PREFIX(SecondaryColorPointerEXT)
@@ -22747,7 +22998,7 @@ GL_PREFIX(SecondaryColorPointerEXT):
GL_PREFIX(MultiDrawArraysEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4840(%rax), %r11
+ movq 4896(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22761,13 +23012,13 @@ GL_PREFIX(MultiDrawArraysEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4840(%rax), %r11
+ movq 4896(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4840(%rax), %r11
+ movq 4896(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22781,7 +23032,7 @@ GL_PREFIX(MultiDrawArraysEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4840(%rax), %r11
+ movq 4896(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(MultiDrawArraysEXT), .-GL_PREFIX(MultiDrawArraysEXT)
@@ -22792,7 +23043,7 @@ GL_PREFIX(MultiDrawArraysEXT):
GL_PREFIX(MultiDrawElementsEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4848(%rax), %r11
+ movq 4904(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22806,13 +23057,13 @@ GL_PREFIX(MultiDrawElementsEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4848(%rax), %r11
+ movq 4904(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4848(%rax), %r11
+ movq 4904(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22826,7 +23077,7 @@ GL_PREFIX(MultiDrawElementsEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4848(%rax), %r11
+ movq 4904(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(MultiDrawElementsEXT), .-GL_PREFIX(MultiDrawElementsEXT)
@@ -22837,7 +23088,7 @@ GL_PREFIX(MultiDrawElementsEXT):
GL_PREFIX(FogCoordPointerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4856(%rax), %r11
+ movq 4912(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -22847,13 +23098,13 @@ GL_PREFIX(FogCoordPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4856(%rax), %r11
+ movq 4912(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4856(%rax), %r11
+ movq 4912(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -22863,7 +23114,7 @@ GL_PREFIX(FogCoordPointerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4856(%rax), %r11
+ movq 4912(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FogCoordPointerEXT), .-GL_PREFIX(FogCoordPointerEXT)
@@ -22874,7 +23125,7 @@ GL_PREFIX(FogCoordPointerEXT):
GL_PREFIX(FogCoorddEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4864(%rax), %r11
+ movq 4920(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $8, %rsp
@@ -22882,13 +23133,13 @@ GL_PREFIX(FogCoorddEXT):
call _x86_64_get_dispatch@PLT
movq (%rsp), %xmm0
addq $8, %rsp
- movq 4864(%rax), %r11
+ movq 4920(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4864(%rax), %r11
+ movq 4920(%rax), %r11
jmp *%r11
1:
subq $8, %rsp
@@ -22896,7 +23147,7 @@ GL_PREFIX(FogCoorddEXT):
call _glapi_get_dispatch
movq (%rsp), %xmm0
addq $8, %rsp
- movq 4864(%rax), %r11
+ movq 4920(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FogCoorddEXT), .-GL_PREFIX(FogCoorddEXT)
@@ -22907,25 +23158,25 @@ GL_PREFIX(FogCoorddEXT):
GL_PREFIX(FogCoorddvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4872(%rax), %r11
+ movq 4928(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4872(%rax), %r11
+ movq 4928(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4872(%rax), %r11
+ movq 4928(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4872(%rax), %r11
+ movq 4928(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FogCoorddvEXT), .-GL_PREFIX(FogCoorddvEXT)
@@ -22936,7 +23187,7 @@ GL_PREFIX(FogCoorddvEXT):
GL_PREFIX(FogCoordfEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4880(%rax), %r11
+ movq 4936(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $8, %rsp
@@ -22944,13 +23195,13 @@ GL_PREFIX(FogCoordfEXT):
call _x86_64_get_dispatch@PLT
movq (%rsp), %xmm0
addq $8, %rsp
- movq 4880(%rax), %r11
+ movq 4936(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4880(%rax), %r11
+ movq 4936(%rax), %r11
jmp *%r11
1:
subq $8, %rsp
@@ -22958,7 +23209,7 @@ GL_PREFIX(FogCoordfEXT):
call _glapi_get_dispatch
movq (%rsp), %xmm0
addq $8, %rsp
- movq 4880(%rax), %r11
+ movq 4936(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FogCoordfEXT), .-GL_PREFIX(FogCoordfEXT)
@@ -22969,58 +23220,58 @@ GL_PREFIX(FogCoordfEXT):
GL_PREFIX(FogCoordfvEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4888(%rax), %r11
+ movq 4944(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4888(%rax), %r11
+ movq 4944(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4888(%rax), %r11
+ movq 4944(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4888(%rax), %r11
+ movq 4944(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FogCoordfvEXT), .-GL_PREFIX(FogCoordfvEXT)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_612)
- .type GL_PREFIX(_dispatch_stub_612), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_612))
-GL_PREFIX(_dispatch_stub_612):
+ .globl GL_PREFIX(_dispatch_stub_619)
+ .type GL_PREFIX(_dispatch_stub_619), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_619))
+GL_PREFIX(_dispatch_stub_619):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4896(%rax), %r11
+ movq 4952(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 4896(%rax), %r11
+ movq 4952(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4896(%rax), %r11
+ movq 4952(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 4896(%rax), %r11
+ movq 4952(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_612), .-GL_PREFIX(_dispatch_stub_612)
+ .size GL_PREFIX(_dispatch_stub_619), .-GL_PREFIX(_dispatch_stub_619)
.p2align 4,,15
.globl GL_PREFIX(BlendFuncSeparateEXT)
@@ -23028,7 +23279,7 @@ GL_PREFIX(_dispatch_stub_612):
GL_PREFIX(BlendFuncSeparateEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4904(%rax), %r11
+ movq 4960(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23042,13 +23293,13 @@ GL_PREFIX(BlendFuncSeparateEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4904(%rax), %r11
+ movq 4960(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4904(%rax), %r11
+ movq 4960(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23062,7 +23313,7 @@ GL_PREFIX(BlendFuncSeparateEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 4904(%rax), %r11
+ movq 4960(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BlendFuncSeparateEXT), .-GL_PREFIX(BlendFuncSeparateEXT)
@@ -23073,25 +23324,25 @@ GL_PREFIX(BlendFuncSeparateEXT):
GL_PREFIX(FlushVertexArrayRangeNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4912(%rax), %r11
+ movq 4968(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
- movq 4912(%rax), %r11
+ movq 4968(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4912(%rax), %r11
+ movq 4968(%rax), %r11
jmp *%r11
1:
pushq %rbp
call _glapi_get_dispatch
popq %rbp
- movq 4912(%rax), %r11
+ movq 4968(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FlushVertexArrayRangeNV), .-GL_PREFIX(FlushVertexArrayRangeNV)
@@ -23102,7 +23353,7 @@ GL_PREFIX(FlushVertexArrayRangeNV):
GL_PREFIX(VertexArrayRangeNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4920(%rax), %r11
+ movq 4976(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23112,13 +23363,13 @@ GL_PREFIX(VertexArrayRangeNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4920(%rax), %r11
+ movq 4976(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4920(%rax), %r11
+ movq 4976(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23128,7 +23379,7 @@ GL_PREFIX(VertexArrayRangeNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4920(%rax), %r11
+ movq 4976(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexArrayRangeNV), .-GL_PREFIX(VertexArrayRangeNV)
@@ -23139,7 +23390,7 @@ GL_PREFIX(VertexArrayRangeNV):
GL_PREFIX(CombinerInputNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4928(%rax), %r11
+ movq 4984(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23157,13 +23408,13 @@ GL_PREFIX(CombinerInputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4928(%rax), %r11
+ movq 4984(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4928(%rax), %r11
+ movq 4984(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23181,7 +23432,7 @@ GL_PREFIX(CombinerInputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4928(%rax), %r11
+ movq 4984(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerInputNV), .-GL_PREFIX(CombinerInputNV)
@@ -23192,7 +23443,7 @@ GL_PREFIX(CombinerInputNV):
GL_PREFIX(CombinerOutputNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4936(%rax), %r11
+ movq 4992(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23210,13 +23461,13 @@ GL_PREFIX(CombinerOutputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4936(%rax), %r11
+ movq 4992(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4936(%rax), %r11
+ movq 4992(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23234,7 +23485,7 @@ GL_PREFIX(CombinerOutputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4936(%rax), %r11
+ movq 4992(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerOutputNV), .-GL_PREFIX(CombinerOutputNV)
@@ -23245,7 +23496,7 @@ GL_PREFIX(CombinerOutputNV):
GL_PREFIX(CombinerParameterfNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4944(%rax), %r11
+ movq 5000(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -23255,13 +23506,13 @@ GL_PREFIX(CombinerParameterfNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4944(%rax), %r11
+ movq 5000(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4944(%rax), %r11
+ movq 5000(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -23271,7 +23522,7 @@ GL_PREFIX(CombinerParameterfNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 4944(%rax), %r11
+ movq 5000(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerParameterfNV), .-GL_PREFIX(CombinerParameterfNV)
@@ -23282,7 +23533,7 @@ GL_PREFIX(CombinerParameterfNV):
GL_PREFIX(CombinerParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4952(%rax), %r11
+ movq 5008(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23292,13 +23543,13 @@ GL_PREFIX(CombinerParameterfvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4952(%rax), %r11
+ movq 5008(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4952(%rax), %r11
+ movq 5008(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23308,7 +23559,7 @@ GL_PREFIX(CombinerParameterfvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4952(%rax), %r11
+ movq 5008(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerParameterfvNV), .-GL_PREFIX(CombinerParameterfvNV)
@@ -23319,7 +23570,7 @@ GL_PREFIX(CombinerParameterfvNV):
GL_PREFIX(CombinerParameteriNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4960(%rax), %r11
+ movq 5016(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23329,13 +23580,13 @@ GL_PREFIX(CombinerParameteriNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4960(%rax), %r11
+ movq 5016(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4960(%rax), %r11
+ movq 5016(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23345,7 +23596,7 @@ GL_PREFIX(CombinerParameteriNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4960(%rax), %r11
+ movq 5016(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerParameteriNV), .-GL_PREFIX(CombinerParameteriNV)
@@ -23356,7 +23607,7 @@ GL_PREFIX(CombinerParameteriNV):
GL_PREFIX(CombinerParameterivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4968(%rax), %r11
+ movq 5024(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23366,13 +23617,13 @@ GL_PREFIX(CombinerParameterivNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4968(%rax), %r11
+ movq 5024(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4968(%rax), %r11
+ movq 5024(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23382,7 +23633,7 @@ GL_PREFIX(CombinerParameterivNV):
popq %rbp
popq %rsi
popq %rdi
- movq 4968(%rax), %r11
+ movq 5024(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CombinerParameterivNV), .-GL_PREFIX(CombinerParameterivNV)
@@ -23393,7 +23644,7 @@ GL_PREFIX(CombinerParameterivNV):
GL_PREFIX(FinalCombinerInputNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4976(%rax), %r11
+ movq 5032(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23407,13 +23658,13 @@ GL_PREFIX(FinalCombinerInputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4976(%rax), %r11
+ movq 5032(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4976(%rax), %r11
+ movq 5032(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23427,7 +23678,7 @@ GL_PREFIX(FinalCombinerInputNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4976(%rax), %r11
+ movq 5032(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FinalCombinerInputNV), .-GL_PREFIX(FinalCombinerInputNV)
@@ -23438,7 +23689,7 @@ GL_PREFIX(FinalCombinerInputNV):
GL_PREFIX(GetCombinerInputParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4984(%rax), %r11
+ movq 5040(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23452,13 +23703,13 @@ GL_PREFIX(GetCombinerInputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4984(%rax), %r11
+ movq 5040(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4984(%rax), %r11
+ movq 5040(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23472,7 +23723,7 @@ GL_PREFIX(GetCombinerInputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4984(%rax), %r11
+ movq 5040(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetCombinerInputParameterfvNV), .-GL_PREFIX(GetCombinerInputParameterfvNV)
@@ -23483,7 +23734,7 @@ GL_PREFIX(GetCombinerInputParameterfvNV):
GL_PREFIX(GetCombinerInputParameterivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 4992(%rax), %r11
+ movq 5048(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23497,13 +23748,13 @@ GL_PREFIX(GetCombinerInputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4992(%rax), %r11
+ movq 5048(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 4992(%rax), %r11
+ movq 5048(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23517,7 +23768,7 @@ GL_PREFIX(GetCombinerInputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 4992(%rax), %r11
+ movq 5048(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetCombinerInputParameterivNV), .-GL_PREFIX(GetCombinerInputParameterivNV)
@@ -23528,7 +23779,7 @@ GL_PREFIX(GetCombinerInputParameterivNV):
GL_PREFIX(GetCombinerOutputParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5000(%rax), %r11
+ movq 5056(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23542,13 +23793,13 @@ GL_PREFIX(GetCombinerOutputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5000(%rax), %r11
+ movq 5056(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5000(%rax), %r11
+ movq 5056(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23562,7 +23813,7 @@ GL_PREFIX(GetCombinerOutputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5000(%rax), %r11
+ movq 5056(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetCombinerOutputParameterfvNV), .-GL_PREFIX(GetCombinerOutputParameterfvNV)
@@ -23573,7 +23824,7 @@ GL_PREFIX(GetCombinerOutputParameterfvNV):
GL_PREFIX(GetCombinerOutputParameterivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5008(%rax), %r11
+ movq 5064(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23587,13 +23838,13 @@ GL_PREFIX(GetCombinerOutputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5008(%rax), %r11
+ movq 5064(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5008(%rax), %r11
+ movq 5064(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23607,7 +23858,7 @@ GL_PREFIX(GetCombinerOutputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5008(%rax), %r11
+ movq 5064(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetCombinerOutputParameterivNV), .-GL_PREFIX(GetCombinerOutputParameterivNV)
@@ -23618,7 +23869,7 @@ GL_PREFIX(GetCombinerOutputParameterivNV):
GL_PREFIX(GetFinalCombinerInputParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5016(%rax), %r11
+ movq 5072(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23628,13 +23879,13 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5016(%rax), %r11
+ movq 5072(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5016(%rax), %r11
+ movq 5072(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23644,7 +23895,7 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5016(%rax), %r11
+ movq 5072(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetFinalCombinerInputParameterfvNV), .-GL_PREFIX(GetFinalCombinerInputParameterfvNV)
@@ -23655,7 +23906,7 @@ GL_PREFIX(GetFinalCombinerInputParameterfvNV):
GL_PREFIX(GetFinalCombinerInputParameterivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5024(%rax), %r11
+ movq 5080(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23665,13 +23916,13 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5024(%rax), %r11
+ movq 5080(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5024(%rax), %r11
+ movq 5080(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23681,7 +23932,7 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5024(%rax), %r11
+ movq 5080(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetFinalCombinerInputParameterivNV), .-GL_PREFIX(GetFinalCombinerInputParameterivNV)
@@ -23692,25 +23943,25 @@ GL_PREFIX(GetFinalCombinerInputParameterivNV):
GL_PREFIX(ResizeBuffersMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5032(%rax), %r11
+ movq 5088(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
- movq 5032(%rax), %r11
+ movq 5088(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5032(%rax), %r11
+ movq 5088(%rax), %r11
jmp *%r11
1:
pushq %rbp
call _glapi_get_dispatch
popq %rbp
- movq 5032(%rax), %r11
+ movq 5088(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ResizeBuffersMESA), .-GL_PREFIX(ResizeBuffersMESA)
@@ -23721,7 +23972,7 @@ GL_PREFIX(ResizeBuffersMESA):
GL_PREFIX(WindowPos2dMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5040(%rax), %r11
+ movq 5096(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -23731,13 +23982,13 @@ GL_PREFIX(WindowPos2dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5040(%rax), %r11
+ movq 5096(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5040(%rax), %r11
+ movq 5096(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -23747,7 +23998,7 @@ GL_PREFIX(WindowPos2dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5040(%rax), %r11
+ movq 5096(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2dMESA), .-GL_PREFIX(WindowPos2dMESA)
@@ -23758,25 +24009,25 @@ GL_PREFIX(WindowPos2dMESA):
GL_PREFIX(WindowPos2dvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5048(%rax), %r11
+ movq 5104(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5048(%rax), %r11
+ movq 5104(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5048(%rax), %r11
+ movq 5104(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5048(%rax), %r11
+ movq 5104(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2dvMESA), .-GL_PREFIX(WindowPos2dvMESA)
@@ -23787,7 +24038,7 @@ GL_PREFIX(WindowPos2dvMESA):
GL_PREFIX(WindowPos2fMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5056(%rax), %r11
+ movq 5112(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -23797,13 +24048,13 @@ GL_PREFIX(WindowPos2fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5056(%rax), %r11
+ movq 5112(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5056(%rax), %r11
+ movq 5112(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -23813,7 +24064,7 @@ GL_PREFIX(WindowPos2fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5056(%rax), %r11
+ movq 5112(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2fMESA), .-GL_PREFIX(WindowPos2fMESA)
@@ -23824,25 +24075,25 @@ GL_PREFIX(WindowPos2fMESA):
GL_PREFIX(WindowPos2fvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5064(%rax), %r11
+ movq 5120(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5064(%rax), %r11
+ movq 5120(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5064(%rax), %r11
+ movq 5120(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5064(%rax), %r11
+ movq 5120(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2fvMESA), .-GL_PREFIX(WindowPos2fvMESA)
@@ -23853,7 +24104,7 @@ GL_PREFIX(WindowPos2fvMESA):
GL_PREFIX(WindowPos2iMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5072(%rax), %r11
+ movq 5128(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23863,13 +24114,13 @@ GL_PREFIX(WindowPos2iMESA):
popq %rbp
popq %rsi
popq %rdi
- movq 5072(%rax), %r11
+ movq 5128(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5072(%rax), %r11
+ movq 5128(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23879,7 +24130,7 @@ GL_PREFIX(WindowPos2iMESA):
popq %rbp
popq %rsi
popq %rdi
- movq 5072(%rax), %r11
+ movq 5128(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2iMESA), .-GL_PREFIX(WindowPos2iMESA)
@@ -23890,25 +24141,25 @@ GL_PREFIX(WindowPos2iMESA):
GL_PREFIX(WindowPos2ivMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5080(%rax), %r11
+ movq 5136(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5080(%rax), %r11
+ movq 5136(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5080(%rax), %r11
+ movq 5136(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5080(%rax), %r11
+ movq 5136(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2ivMESA), .-GL_PREFIX(WindowPos2ivMESA)
@@ -23919,7 +24170,7 @@ GL_PREFIX(WindowPos2ivMESA):
GL_PREFIX(WindowPos2sMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5088(%rax), %r11
+ movq 5144(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -23929,13 +24180,13 @@ GL_PREFIX(WindowPos2sMESA):
popq %rbp
popq %rsi
popq %rdi
- movq 5088(%rax), %r11
+ movq 5144(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5088(%rax), %r11
+ movq 5144(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -23945,7 +24196,7 @@ GL_PREFIX(WindowPos2sMESA):
popq %rbp
popq %rsi
popq %rdi
- movq 5088(%rax), %r11
+ movq 5144(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2sMESA), .-GL_PREFIX(WindowPos2sMESA)
@@ -23956,25 +24207,25 @@ GL_PREFIX(WindowPos2sMESA):
GL_PREFIX(WindowPos2svMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5096(%rax), %r11
+ movq 5152(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5096(%rax), %r11
+ movq 5152(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5096(%rax), %r11
+ movq 5152(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5096(%rax), %r11
+ movq 5152(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos2svMESA), .-GL_PREFIX(WindowPos2svMESA)
@@ -23985,7 +24236,7 @@ GL_PREFIX(WindowPos2svMESA):
GL_PREFIX(WindowPos3dMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5104(%rax), %r11
+ movq 5160(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -23997,13 +24248,13 @@ GL_PREFIX(WindowPos3dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5104(%rax), %r11
+ movq 5160(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5104(%rax), %r11
+ movq 5160(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -24015,7 +24266,7 @@ GL_PREFIX(WindowPos3dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5104(%rax), %r11
+ movq 5160(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3dMESA), .-GL_PREFIX(WindowPos3dMESA)
@@ -24026,25 +24277,25 @@ GL_PREFIX(WindowPos3dMESA):
GL_PREFIX(WindowPos3dvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5112(%rax), %r11
+ movq 5168(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5112(%rax), %r11
+ movq 5168(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5112(%rax), %r11
+ movq 5168(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5112(%rax), %r11
+ movq 5168(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3dvMESA), .-GL_PREFIX(WindowPos3dvMESA)
@@ -24055,7 +24306,7 @@ GL_PREFIX(WindowPos3dvMESA):
GL_PREFIX(WindowPos3fMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5120(%rax), %r11
+ movq 5176(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -24067,13 +24318,13 @@ GL_PREFIX(WindowPos3fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5120(%rax), %r11
+ movq 5176(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5120(%rax), %r11
+ movq 5176(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -24085,7 +24336,7 @@ GL_PREFIX(WindowPos3fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $24, %rsp
- movq 5120(%rax), %r11
+ movq 5176(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3fMESA), .-GL_PREFIX(WindowPos3fMESA)
@@ -24096,25 +24347,25 @@ GL_PREFIX(WindowPos3fMESA):
GL_PREFIX(WindowPos3fvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5128(%rax), %r11
+ movq 5184(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5128(%rax), %r11
+ movq 5184(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5128(%rax), %r11
+ movq 5184(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5128(%rax), %r11
+ movq 5184(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3fvMESA), .-GL_PREFIX(WindowPos3fvMESA)
@@ -24125,7 +24376,7 @@ GL_PREFIX(WindowPos3fvMESA):
GL_PREFIX(WindowPos3iMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5136(%rax), %r11
+ movq 5192(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24135,13 +24386,13 @@ GL_PREFIX(WindowPos3iMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5136(%rax), %r11
+ movq 5192(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5136(%rax), %r11
+ movq 5192(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24151,7 +24402,7 @@ GL_PREFIX(WindowPos3iMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5136(%rax), %r11
+ movq 5192(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3iMESA), .-GL_PREFIX(WindowPos3iMESA)
@@ -24162,25 +24413,25 @@ GL_PREFIX(WindowPos3iMESA):
GL_PREFIX(WindowPos3ivMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5144(%rax), %r11
+ movq 5200(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5144(%rax), %r11
+ movq 5200(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5144(%rax), %r11
+ movq 5200(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5144(%rax), %r11
+ movq 5200(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3ivMESA), .-GL_PREFIX(WindowPos3ivMESA)
@@ -24191,7 +24442,7 @@ GL_PREFIX(WindowPos3ivMESA):
GL_PREFIX(WindowPos3sMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5152(%rax), %r11
+ movq 5208(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24201,13 +24452,13 @@ GL_PREFIX(WindowPos3sMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5152(%rax), %r11
+ movq 5208(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5152(%rax), %r11
+ movq 5208(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24217,7 +24468,7 @@ GL_PREFIX(WindowPos3sMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5152(%rax), %r11
+ movq 5208(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3sMESA), .-GL_PREFIX(WindowPos3sMESA)
@@ -24228,25 +24479,25 @@ GL_PREFIX(WindowPos3sMESA):
GL_PREFIX(WindowPos3svMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5160(%rax), %r11
+ movq 5216(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5160(%rax), %r11
+ movq 5216(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5160(%rax), %r11
+ movq 5216(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5160(%rax), %r11
+ movq 5216(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos3svMESA), .-GL_PREFIX(WindowPos3svMESA)
@@ -24257,7 +24508,7 @@ GL_PREFIX(WindowPos3svMESA):
GL_PREFIX(WindowPos4dMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5168(%rax), %r11
+ movq 5224(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -24271,13 +24522,13 @@ GL_PREFIX(WindowPos4dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $40, %rsp
- movq 5168(%rax), %r11
+ movq 5224(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5168(%rax), %r11
+ movq 5224(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -24291,7 +24542,7 @@ GL_PREFIX(WindowPos4dMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $40, %rsp
- movq 5168(%rax), %r11
+ movq 5224(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4dMESA), .-GL_PREFIX(WindowPos4dMESA)
@@ -24302,25 +24553,25 @@ GL_PREFIX(WindowPos4dMESA):
GL_PREFIX(WindowPos4dvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5176(%rax), %r11
+ movq 5232(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5176(%rax), %r11
+ movq 5232(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5176(%rax), %r11
+ movq 5232(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5176(%rax), %r11
+ movq 5232(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4dvMESA), .-GL_PREFIX(WindowPos4dvMESA)
@@ -24331,7 +24582,7 @@ GL_PREFIX(WindowPos4dvMESA):
GL_PREFIX(WindowPos4fMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5184(%rax), %r11
+ movq 5240(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -24345,13 +24596,13 @@ GL_PREFIX(WindowPos4fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $40, %rsp
- movq 5184(%rax), %r11
+ movq 5240(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5184(%rax), %r11
+ movq 5240(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -24365,7 +24616,7 @@ GL_PREFIX(WindowPos4fMESA):
movq 8(%rsp), %xmm1
movq (%rsp), %xmm0
addq $40, %rsp
- movq 5184(%rax), %r11
+ movq 5240(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4fMESA), .-GL_PREFIX(WindowPos4fMESA)
@@ -24376,25 +24627,25 @@ GL_PREFIX(WindowPos4fMESA):
GL_PREFIX(WindowPos4fvMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5192(%rax), %r11
+ movq 5248(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5192(%rax), %r11
+ movq 5248(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5192(%rax), %r11
+ movq 5248(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5192(%rax), %r11
+ movq 5248(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4fvMESA), .-GL_PREFIX(WindowPos4fvMESA)
@@ -24405,7 +24656,7 @@ GL_PREFIX(WindowPos4fvMESA):
GL_PREFIX(WindowPos4iMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5200(%rax), %r11
+ movq 5256(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24419,13 +24670,13 @@ GL_PREFIX(WindowPos4iMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5200(%rax), %r11
+ movq 5256(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5200(%rax), %r11
+ movq 5256(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24439,7 +24690,7 @@ GL_PREFIX(WindowPos4iMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5200(%rax), %r11
+ movq 5256(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4iMESA), .-GL_PREFIX(WindowPos4iMESA)
@@ -24450,25 +24701,25 @@ GL_PREFIX(WindowPos4iMESA):
GL_PREFIX(WindowPos4ivMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5208(%rax), %r11
+ movq 5264(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5208(%rax), %r11
+ movq 5264(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5208(%rax), %r11
+ movq 5264(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5208(%rax), %r11
+ movq 5264(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4ivMESA), .-GL_PREFIX(WindowPos4ivMESA)
@@ -24479,7 +24730,7 @@ GL_PREFIX(WindowPos4ivMESA):
GL_PREFIX(WindowPos4sMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5216(%rax), %r11
+ movq 5272(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24493,13 +24744,13 @@ GL_PREFIX(WindowPos4sMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5216(%rax), %r11
+ movq 5272(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5216(%rax), %r11
+ movq 5272(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24513,7 +24764,7 @@ GL_PREFIX(WindowPos4sMESA):
popq %rdx
popq %rsi
popq %rdi
- movq 5216(%rax), %r11
+ movq 5272(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4sMESA), .-GL_PREFIX(WindowPos4sMESA)
@@ -24524,37 +24775,37 @@ GL_PREFIX(WindowPos4sMESA):
GL_PREFIX(WindowPos4svMESA):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5224(%rax), %r11
+ movq 5280(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5224(%rax), %r11
+ movq 5280(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5224(%rax), %r11
+ movq 5280(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5224(%rax), %r11
+ movq 5280(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(WindowPos4svMESA), .-GL_PREFIX(WindowPos4svMESA)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_654)
- .type GL_PREFIX(_dispatch_stub_654), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_654))
-GL_PREFIX(_dispatch_stub_654):
+ .globl GL_PREFIX(_dispatch_stub_661)
+ .type GL_PREFIX(_dispatch_stub_661), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_661))
+GL_PREFIX(_dispatch_stub_661):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5232(%rax), %r11
+ movq 5288(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24568,13 +24819,13 @@ GL_PREFIX(_dispatch_stub_654):
popq %rdx
popq %rsi
popq %rdi
- movq 5232(%rax), %r11
+ movq 5288(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5232(%rax), %r11
+ movq 5288(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24588,19 +24839,19 @@ GL_PREFIX(_dispatch_stub_654):
popq %rdx
popq %rsi
popq %rdi
- movq 5232(%rax), %r11
+ movq 5288(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_654), .-GL_PREFIX(_dispatch_stub_654)
+ .size GL_PREFIX(_dispatch_stub_661), .-GL_PREFIX(_dispatch_stub_661)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_655)
- .type GL_PREFIX(_dispatch_stub_655), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_655))
-GL_PREFIX(_dispatch_stub_655):
+ .globl GL_PREFIX(_dispatch_stub_662)
+ .type GL_PREFIX(_dispatch_stub_662), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_662))
+GL_PREFIX(_dispatch_stub_662):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5240(%rax), %r11
+ movq 5296(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24618,13 +24869,13 @@ GL_PREFIX(_dispatch_stub_655):
popq %rdx
popq %rsi
popq %rdi
- movq 5240(%rax), %r11
+ movq 5296(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5240(%rax), %r11
+ movq 5296(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24642,19 +24893,19 @@ GL_PREFIX(_dispatch_stub_655):
popq %rdx
popq %rsi
popq %rdi
- movq 5240(%rax), %r11
+ movq 5296(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_655), .-GL_PREFIX(_dispatch_stub_655)
+ .size GL_PREFIX(_dispatch_stub_662), .-GL_PREFIX(_dispatch_stub_662)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_656)
- .type GL_PREFIX(_dispatch_stub_656), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_656))
-GL_PREFIX(_dispatch_stub_656):
+ .globl GL_PREFIX(_dispatch_stub_663)
+ .type GL_PREFIX(_dispatch_stub_663), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_663))
+GL_PREFIX(_dispatch_stub_663):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5248(%rax), %r11
+ movq 5304(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24664,13 +24915,13 @@ GL_PREFIX(_dispatch_stub_656):
popq %rbp
popq %rsi
popq %rdi
- movq 5248(%rax), %r11
+ movq 5304(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5248(%rax), %r11
+ movq 5304(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24680,49 +24931,49 @@ GL_PREFIX(_dispatch_stub_656):
popq %rbp
popq %rsi
popq %rdi
- movq 5248(%rax), %r11
+ movq 5304(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_656), .-GL_PREFIX(_dispatch_stub_656)
+ .size GL_PREFIX(_dispatch_stub_663), .-GL_PREFIX(_dispatch_stub_663)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_657)
- .type GL_PREFIX(_dispatch_stub_657), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_657))
-GL_PREFIX(_dispatch_stub_657):
+ .globl GL_PREFIX(_dispatch_stub_664)
+ .type GL_PREFIX(_dispatch_stub_664), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_664))
+GL_PREFIX(_dispatch_stub_664):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5256(%rax), %r11
+ movq 5312(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5256(%rax), %r11
+ movq 5312(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5256(%rax), %r11
+ movq 5312(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5256(%rax), %r11
+ movq 5312(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_657), .-GL_PREFIX(_dispatch_stub_657)
+ .size GL_PREFIX(_dispatch_stub_664), .-GL_PREFIX(_dispatch_stub_664)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_658)
- .type GL_PREFIX(_dispatch_stub_658), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_658))
-GL_PREFIX(_dispatch_stub_658):
+ .globl GL_PREFIX(_dispatch_stub_665)
+ .type GL_PREFIX(_dispatch_stub_665), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_665))
+GL_PREFIX(_dispatch_stub_665):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5264(%rax), %r11
+ movq 5320(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24732,13 +24983,13 @@ GL_PREFIX(_dispatch_stub_658):
popq %rbp
popq %rsi
popq %rdi
- movq 5264(%rax), %r11
+ movq 5320(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5264(%rax), %r11
+ movq 5320(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24748,19 +24999,19 @@ GL_PREFIX(_dispatch_stub_658):
popq %rbp
popq %rsi
popq %rdi
- movq 5264(%rax), %r11
+ movq 5320(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_658), .-GL_PREFIX(_dispatch_stub_658)
+ .size GL_PREFIX(_dispatch_stub_665), .-GL_PREFIX(_dispatch_stub_665)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_659)
- .type GL_PREFIX(_dispatch_stub_659), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_659))
-GL_PREFIX(_dispatch_stub_659):
+ .globl GL_PREFIX(_dispatch_stub_666)
+ .type GL_PREFIX(_dispatch_stub_666), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_666))
+GL_PREFIX(_dispatch_stub_666):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5272(%rax), %r11
+ movq 5328(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24770,13 +25021,13 @@ GL_PREFIX(_dispatch_stub_659):
popq %rdx
popq %rsi
popq %rdi
- movq 5272(%rax), %r11
+ movq 5328(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5272(%rax), %r11
+ movq 5328(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24786,49 +25037,49 @@ GL_PREFIX(_dispatch_stub_659):
popq %rdx
popq %rsi
popq %rdi
- movq 5272(%rax), %r11
+ movq 5328(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_659), .-GL_PREFIX(_dispatch_stub_659)
+ .size GL_PREFIX(_dispatch_stub_666), .-GL_PREFIX(_dispatch_stub_666)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_660)
- .type GL_PREFIX(_dispatch_stub_660), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_660))
-GL_PREFIX(_dispatch_stub_660):
+ .globl GL_PREFIX(_dispatch_stub_667)
+ .type GL_PREFIX(_dispatch_stub_667), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_667))
+GL_PREFIX(_dispatch_stub_667):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5280(%rax), %r11
+ movq 5336(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5280(%rax), %r11
+ movq 5336(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5280(%rax), %r11
+ movq 5336(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5280(%rax), %r11
+ movq 5336(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_660), .-GL_PREFIX(_dispatch_stub_660)
+ .size GL_PREFIX(_dispatch_stub_667), .-GL_PREFIX(_dispatch_stub_667)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_661)
- .type GL_PREFIX(_dispatch_stub_661), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_661))
-GL_PREFIX(_dispatch_stub_661):
+ .globl GL_PREFIX(_dispatch_stub_668)
+ .type GL_PREFIX(_dispatch_stub_668), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_668))
+GL_PREFIX(_dispatch_stub_668):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5288(%rax), %r11
+ movq 5344(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24838,13 +25089,13 @@ GL_PREFIX(_dispatch_stub_661):
popq %rbp
popq %rsi
popq %rdi
- movq 5288(%rax), %r11
+ movq 5344(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5288(%rax), %r11
+ movq 5344(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24854,40 +25105,40 @@ GL_PREFIX(_dispatch_stub_661):
popq %rbp
popq %rsi
popq %rdi
- movq 5288(%rax), %r11
+ movq 5344(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_661), .-GL_PREFIX(_dispatch_stub_661)
+ .size GL_PREFIX(_dispatch_stub_668), .-GL_PREFIX(_dispatch_stub_668)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_662)
- .type GL_PREFIX(_dispatch_stub_662), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_662))
-GL_PREFIX(_dispatch_stub_662):
+ .globl GL_PREFIX(_dispatch_stub_669)
+ .type GL_PREFIX(_dispatch_stub_669), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_669))
+GL_PREFIX(_dispatch_stub_669):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5296(%rax), %r11
+ movq 5352(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5296(%rax), %r11
+ movq 5352(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5296(%rax), %r11
+ movq 5352(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5296(%rax), %r11
+ movq 5352(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_662), .-GL_PREFIX(_dispatch_stub_662)
+ .size GL_PREFIX(_dispatch_stub_669), .-GL_PREFIX(_dispatch_stub_669)
.p2align 4,,15
.globl GL_PREFIX(AreProgramsResidentNV)
@@ -24895,7 +25146,7 @@ GL_PREFIX(_dispatch_stub_662):
GL_PREFIX(AreProgramsResidentNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5304(%rax), %r11
+ movq 5360(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24905,13 +25156,13 @@ GL_PREFIX(AreProgramsResidentNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5304(%rax), %r11
+ movq 5360(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5304(%rax), %r11
+ movq 5360(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24921,7 +25172,7 @@ GL_PREFIX(AreProgramsResidentNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5304(%rax), %r11
+ movq 5360(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(AreProgramsResidentNV), .-GL_PREFIX(AreProgramsResidentNV)
@@ -24932,7 +25183,7 @@ GL_PREFIX(AreProgramsResidentNV):
GL_PREFIX(BindProgramNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5312(%rax), %r11
+ movq 5368(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24942,13 +25193,13 @@ GL_PREFIX(BindProgramNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5312(%rax), %r11
+ movq 5368(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5312(%rax), %r11
+ movq 5368(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24958,7 +25209,7 @@ GL_PREFIX(BindProgramNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5312(%rax), %r11
+ movq 5368(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BindProgramNV), .-GL_PREFIX(BindProgramNV)
@@ -24969,7 +25220,7 @@ GL_PREFIX(BindProgramNV):
GL_PREFIX(DeleteProgramsNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5320(%rax), %r11
+ movq 5376(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -24979,13 +25230,13 @@ GL_PREFIX(DeleteProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5320(%rax), %r11
+ movq 5376(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5320(%rax), %r11
+ movq 5376(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -24995,7 +25246,7 @@ GL_PREFIX(DeleteProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5320(%rax), %r11
+ movq 5376(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(DeleteProgramsNV), .-GL_PREFIX(DeleteProgramsNV)
@@ -25006,7 +25257,7 @@ GL_PREFIX(DeleteProgramsNV):
GL_PREFIX(ExecuteProgramNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5328(%rax), %r11
+ movq 5384(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25016,13 +25267,13 @@ GL_PREFIX(ExecuteProgramNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5328(%rax), %r11
+ movq 5384(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5328(%rax), %r11
+ movq 5384(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25032,7 +25283,7 @@ GL_PREFIX(ExecuteProgramNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5328(%rax), %r11
+ movq 5384(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ExecuteProgramNV), .-GL_PREFIX(ExecuteProgramNV)
@@ -25043,7 +25294,7 @@ GL_PREFIX(ExecuteProgramNV):
GL_PREFIX(GenProgramsNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5336(%rax), %r11
+ movq 5392(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25053,13 +25304,13 @@ GL_PREFIX(GenProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5336(%rax), %r11
+ movq 5392(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5336(%rax), %r11
+ movq 5392(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25069,7 +25320,7 @@ GL_PREFIX(GenProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5336(%rax), %r11
+ movq 5392(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GenProgramsNV), .-GL_PREFIX(GenProgramsNV)
@@ -25080,7 +25331,7 @@ GL_PREFIX(GenProgramsNV):
GL_PREFIX(GetProgramParameterdvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5344(%rax), %r11
+ movq 5400(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25094,13 +25345,13 @@ GL_PREFIX(GetProgramParameterdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5344(%rax), %r11
+ movq 5400(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5344(%rax), %r11
+ movq 5400(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25114,7 +25365,7 @@ GL_PREFIX(GetProgramParameterdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5344(%rax), %r11
+ movq 5400(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramParameterdvNV), .-GL_PREFIX(GetProgramParameterdvNV)
@@ -25125,7 +25376,7 @@ GL_PREFIX(GetProgramParameterdvNV):
GL_PREFIX(GetProgramParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5352(%rax), %r11
+ movq 5408(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25139,13 +25390,13 @@ GL_PREFIX(GetProgramParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5352(%rax), %r11
+ movq 5408(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5352(%rax), %r11
+ movq 5408(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25159,7 +25410,7 @@ GL_PREFIX(GetProgramParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5352(%rax), %r11
+ movq 5408(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramParameterfvNV), .-GL_PREFIX(GetProgramParameterfvNV)
@@ -25170,7 +25421,7 @@ GL_PREFIX(GetProgramParameterfvNV):
GL_PREFIX(GetProgramStringNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5360(%rax), %r11
+ movq 5416(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25180,13 +25431,13 @@ GL_PREFIX(GetProgramStringNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5360(%rax), %r11
+ movq 5416(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5360(%rax), %r11
+ movq 5416(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25196,7 +25447,7 @@ GL_PREFIX(GetProgramStringNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5360(%rax), %r11
+ movq 5416(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramStringNV), .-GL_PREFIX(GetProgramStringNV)
@@ -25207,7 +25458,7 @@ GL_PREFIX(GetProgramStringNV):
GL_PREFIX(GetProgramivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5368(%rax), %r11
+ movq 5424(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25217,13 +25468,13 @@ GL_PREFIX(GetProgramivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5368(%rax), %r11
+ movq 5424(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5368(%rax), %r11
+ movq 5424(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25233,7 +25484,7 @@ GL_PREFIX(GetProgramivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5368(%rax), %r11
+ movq 5424(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramivNV), .-GL_PREFIX(GetProgramivNV)
@@ -25244,7 +25495,7 @@ GL_PREFIX(GetProgramivNV):
GL_PREFIX(GetTrackMatrixivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5376(%rax), %r11
+ movq 5432(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25258,13 +25509,13 @@ GL_PREFIX(GetTrackMatrixivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5376(%rax), %r11
+ movq 5432(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5376(%rax), %r11
+ movq 5432(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25278,7 +25529,7 @@ GL_PREFIX(GetTrackMatrixivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5376(%rax), %r11
+ movq 5432(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetTrackMatrixivNV), .-GL_PREFIX(GetTrackMatrixivNV)
@@ -25289,7 +25540,7 @@ GL_PREFIX(GetTrackMatrixivNV):
GL_PREFIX(GetVertexAttribPointervNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5384(%rax), %r11
+ movq 5440(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25299,13 +25550,13 @@ GL_PREFIX(GetVertexAttribPointervNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5384(%rax), %r11
+ movq 5440(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5384(%rax), %r11
+ movq 5440(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25315,7 +25566,7 @@ GL_PREFIX(GetVertexAttribPointervNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5384(%rax), %r11
+ movq 5440(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetVertexAttribPointervNV), .-GL_PREFIX(GetVertexAttribPointervNV)
@@ -25326,7 +25577,7 @@ GL_PREFIX(GetVertexAttribPointervNV):
GL_PREFIX(GetVertexAttribdvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5392(%rax), %r11
+ movq 5448(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25336,13 +25587,13 @@ GL_PREFIX(GetVertexAttribdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5392(%rax), %r11
+ movq 5448(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5392(%rax), %r11
+ movq 5448(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25352,7 +25603,7 @@ GL_PREFIX(GetVertexAttribdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5392(%rax), %r11
+ movq 5448(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetVertexAttribdvNV), .-GL_PREFIX(GetVertexAttribdvNV)
@@ -25363,7 +25614,7 @@ GL_PREFIX(GetVertexAttribdvNV):
GL_PREFIX(GetVertexAttribfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5400(%rax), %r11
+ movq 5456(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25373,13 +25624,13 @@ GL_PREFIX(GetVertexAttribfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5400(%rax), %r11
+ movq 5456(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5400(%rax), %r11
+ movq 5456(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25389,7 +25640,7 @@ GL_PREFIX(GetVertexAttribfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5400(%rax), %r11
+ movq 5456(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetVertexAttribfvNV), .-GL_PREFIX(GetVertexAttribfvNV)
@@ -25400,7 +25651,7 @@ GL_PREFIX(GetVertexAttribfvNV):
GL_PREFIX(GetVertexAttribivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5408(%rax), %r11
+ movq 5464(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25410,13 +25661,13 @@ GL_PREFIX(GetVertexAttribivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5408(%rax), %r11
+ movq 5464(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5408(%rax), %r11
+ movq 5464(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25426,7 +25677,7 @@ GL_PREFIX(GetVertexAttribivNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5408(%rax), %r11
+ movq 5464(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetVertexAttribivNV), .-GL_PREFIX(GetVertexAttribivNV)
@@ -25437,25 +25688,25 @@ GL_PREFIX(GetVertexAttribivNV):
GL_PREFIX(IsProgramNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5416(%rax), %r11
+ movq 5472(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5416(%rax), %r11
+ movq 5472(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5416(%rax), %r11
+ movq 5472(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5416(%rax), %r11
+ movq 5472(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(IsProgramNV), .-GL_PREFIX(IsProgramNV)
@@ -25466,7 +25717,7 @@ GL_PREFIX(IsProgramNV):
GL_PREFIX(LoadProgramNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5424(%rax), %r11
+ movq 5480(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25480,13 +25731,13 @@ GL_PREFIX(LoadProgramNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5424(%rax), %r11
+ movq 5480(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5424(%rax), %r11
+ movq 5480(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25500,7 +25751,7 @@ GL_PREFIX(LoadProgramNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5424(%rax), %r11
+ movq 5480(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(LoadProgramNV), .-GL_PREFIX(LoadProgramNV)
@@ -25511,7 +25762,7 @@ GL_PREFIX(LoadProgramNV):
GL_PREFIX(ProgramParameters4dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5432(%rax), %r11
+ movq 5488(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25525,13 +25776,13 @@ GL_PREFIX(ProgramParameters4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5432(%rax), %r11
+ movq 5488(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5432(%rax), %r11
+ movq 5488(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25545,7 +25796,7 @@ GL_PREFIX(ProgramParameters4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5432(%rax), %r11
+ movq 5488(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramParameters4dvNV), .-GL_PREFIX(ProgramParameters4dvNV)
@@ -25556,7 +25807,7 @@ GL_PREFIX(ProgramParameters4dvNV):
GL_PREFIX(ProgramParameters4fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5440(%rax), %r11
+ movq 5496(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25570,13 +25821,13 @@ GL_PREFIX(ProgramParameters4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5440(%rax), %r11
+ movq 5496(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5440(%rax), %r11
+ movq 5496(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25590,7 +25841,7 @@ GL_PREFIX(ProgramParameters4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5440(%rax), %r11
+ movq 5496(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramParameters4fvNV), .-GL_PREFIX(ProgramParameters4fvNV)
@@ -25601,7 +25852,7 @@ GL_PREFIX(ProgramParameters4fvNV):
GL_PREFIX(RequestResidentProgramsNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5448(%rax), %r11
+ movq 5504(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25611,13 +25862,13 @@ GL_PREFIX(RequestResidentProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5448(%rax), %r11
+ movq 5504(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5448(%rax), %r11
+ movq 5504(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25627,7 +25878,7 @@ GL_PREFIX(RequestResidentProgramsNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5448(%rax), %r11
+ movq 5504(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(RequestResidentProgramsNV), .-GL_PREFIX(RequestResidentProgramsNV)
@@ -25638,7 +25889,7 @@ GL_PREFIX(RequestResidentProgramsNV):
GL_PREFIX(TrackMatrixNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5456(%rax), %r11
+ movq 5512(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25652,13 +25903,13 @@ GL_PREFIX(TrackMatrixNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5456(%rax), %r11
+ movq 5512(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5456(%rax), %r11
+ movq 5512(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25672,7 +25923,7 @@ GL_PREFIX(TrackMatrixNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5456(%rax), %r11
+ movq 5512(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(TrackMatrixNV), .-GL_PREFIX(TrackMatrixNV)
@@ -25683,7 +25934,7 @@ GL_PREFIX(TrackMatrixNV):
GL_PREFIX(VertexAttrib1dNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5464(%rax), %r11
+ movq 5520(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -25693,13 +25944,13 @@ GL_PREFIX(VertexAttrib1dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5464(%rax), %r11
+ movq 5520(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5464(%rax), %r11
+ movq 5520(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -25709,7 +25960,7 @@ GL_PREFIX(VertexAttrib1dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5464(%rax), %r11
+ movq 5520(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1dNV), .-GL_PREFIX(VertexAttrib1dNV)
@@ -25720,7 +25971,7 @@ GL_PREFIX(VertexAttrib1dNV):
GL_PREFIX(VertexAttrib1dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5472(%rax), %r11
+ movq 5528(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25730,13 +25981,13 @@ GL_PREFIX(VertexAttrib1dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5472(%rax), %r11
+ movq 5528(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5472(%rax), %r11
+ movq 5528(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25746,7 +25997,7 @@ GL_PREFIX(VertexAttrib1dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5472(%rax), %r11
+ movq 5528(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1dvNV), .-GL_PREFIX(VertexAttrib1dvNV)
@@ -25757,7 +26008,7 @@ GL_PREFIX(VertexAttrib1dvNV):
GL_PREFIX(VertexAttrib1fNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5480(%rax), %r11
+ movq 5536(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -25767,13 +26018,13 @@ GL_PREFIX(VertexAttrib1fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5480(%rax), %r11
+ movq 5536(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5480(%rax), %r11
+ movq 5536(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -25783,7 +26034,7 @@ GL_PREFIX(VertexAttrib1fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5480(%rax), %r11
+ movq 5536(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1fNV), .-GL_PREFIX(VertexAttrib1fNV)
@@ -25794,7 +26045,7 @@ GL_PREFIX(VertexAttrib1fNV):
GL_PREFIX(VertexAttrib1fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5488(%rax), %r11
+ movq 5544(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25804,13 +26055,13 @@ GL_PREFIX(VertexAttrib1fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5488(%rax), %r11
+ movq 5544(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5488(%rax), %r11
+ movq 5544(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25820,7 +26071,7 @@ GL_PREFIX(VertexAttrib1fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5488(%rax), %r11
+ movq 5544(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1fvNV), .-GL_PREFIX(VertexAttrib1fvNV)
@@ -25831,7 +26082,7 @@ GL_PREFIX(VertexAttrib1fvNV):
GL_PREFIX(VertexAttrib1sNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5496(%rax), %r11
+ movq 5552(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25841,13 +26092,13 @@ GL_PREFIX(VertexAttrib1sNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5496(%rax), %r11
+ movq 5552(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5496(%rax), %r11
+ movq 5552(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25857,7 +26108,7 @@ GL_PREFIX(VertexAttrib1sNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5496(%rax), %r11
+ movq 5552(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1sNV), .-GL_PREFIX(VertexAttrib1sNV)
@@ -25868,7 +26119,7 @@ GL_PREFIX(VertexAttrib1sNV):
GL_PREFIX(VertexAttrib1svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5504(%rax), %r11
+ movq 5560(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25878,13 +26129,13 @@ GL_PREFIX(VertexAttrib1svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5504(%rax), %r11
+ movq 5560(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5504(%rax), %r11
+ movq 5560(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25894,7 +26145,7 @@ GL_PREFIX(VertexAttrib1svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5504(%rax), %r11
+ movq 5560(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib1svNV), .-GL_PREFIX(VertexAttrib1svNV)
@@ -25905,7 +26156,7 @@ GL_PREFIX(VertexAttrib1svNV):
GL_PREFIX(VertexAttrib2dNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5512(%rax), %r11
+ movq 5568(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -25917,13 +26168,13 @@ GL_PREFIX(VertexAttrib2dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5512(%rax), %r11
+ movq 5568(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5512(%rax), %r11
+ movq 5568(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -25935,7 +26186,7 @@ GL_PREFIX(VertexAttrib2dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5512(%rax), %r11
+ movq 5568(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2dNV), .-GL_PREFIX(VertexAttrib2dNV)
@@ -25946,7 +26197,7 @@ GL_PREFIX(VertexAttrib2dNV):
GL_PREFIX(VertexAttrib2dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5520(%rax), %r11
+ movq 5576(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -25956,13 +26207,13 @@ GL_PREFIX(VertexAttrib2dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5520(%rax), %r11
+ movq 5576(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5520(%rax), %r11
+ movq 5576(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -25972,7 +26223,7 @@ GL_PREFIX(VertexAttrib2dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5520(%rax), %r11
+ movq 5576(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2dvNV), .-GL_PREFIX(VertexAttrib2dvNV)
@@ -25983,7 +26234,7 @@ GL_PREFIX(VertexAttrib2dvNV):
GL_PREFIX(VertexAttrib2fNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5528(%rax), %r11
+ movq 5584(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $24, %rsp
@@ -25995,13 +26246,13 @@ GL_PREFIX(VertexAttrib2fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5528(%rax), %r11
+ movq 5584(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5528(%rax), %r11
+ movq 5584(%rax), %r11
jmp *%r11
1:
subq $24, %rsp
@@ -26013,7 +26264,7 @@ GL_PREFIX(VertexAttrib2fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $24, %rsp
- movq 5528(%rax), %r11
+ movq 5584(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2fNV), .-GL_PREFIX(VertexAttrib2fNV)
@@ -26024,7 +26275,7 @@ GL_PREFIX(VertexAttrib2fNV):
GL_PREFIX(VertexAttrib2fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5536(%rax), %r11
+ movq 5592(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26034,13 +26285,13 @@ GL_PREFIX(VertexAttrib2fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5536(%rax), %r11
+ movq 5592(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5536(%rax), %r11
+ movq 5592(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26050,7 +26301,7 @@ GL_PREFIX(VertexAttrib2fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5536(%rax), %r11
+ movq 5592(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2fvNV), .-GL_PREFIX(VertexAttrib2fvNV)
@@ -26061,7 +26312,7 @@ GL_PREFIX(VertexAttrib2fvNV):
GL_PREFIX(VertexAttrib2sNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5544(%rax), %r11
+ movq 5600(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26071,13 +26322,13 @@ GL_PREFIX(VertexAttrib2sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5544(%rax), %r11
+ movq 5600(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5544(%rax), %r11
+ movq 5600(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26087,7 +26338,7 @@ GL_PREFIX(VertexAttrib2sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5544(%rax), %r11
+ movq 5600(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2sNV), .-GL_PREFIX(VertexAttrib2sNV)
@@ -26098,7 +26349,7 @@ GL_PREFIX(VertexAttrib2sNV):
GL_PREFIX(VertexAttrib2svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5552(%rax), %r11
+ movq 5608(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26108,13 +26359,13 @@ GL_PREFIX(VertexAttrib2svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5552(%rax), %r11
+ movq 5608(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5552(%rax), %r11
+ movq 5608(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26124,7 +26375,7 @@ GL_PREFIX(VertexAttrib2svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5552(%rax), %r11
+ movq 5608(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib2svNV), .-GL_PREFIX(VertexAttrib2svNV)
@@ -26135,7 +26386,7 @@ GL_PREFIX(VertexAttrib2svNV):
GL_PREFIX(VertexAttrib3dNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5560(%rax), %r11
+ movq 5616(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -26149,13 +26400,13 @@ GL_PREFIX(VertexAttrib3dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5560(%rax), %r11
+ movq 5616(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5560(%rax), %r11
+ movq 5616(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -26169,7 +26420,7 @@ GL_PREFIX(VertexAttrib3dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5560(%rax), %r11
+ movq 5616(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3dNV), .-GL_PREFIX(VertexAttrib3dNV)
@@ -26180,7 +26431,7 @@ GL_PREFIX(VertexAttrib3dNV):
GL_PREFIX(VertexAttrib3dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5568(%rax), %r11
+ movq 5624(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26190,13 +26441,13 @@ GL_PREFIX(VertexAttrib3dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5568(%rax), %r11
+ movq 5624(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5568(%rax), %r11
+ movq 5624(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26206,7 +26457,7 @@ GL_PREFIX(VertexAttrib3dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5568(%rax), %r11
+ movq 5624(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3dvNV), .-GL_PREFIX(VertexAttrib3dvNV)
@@ -26217,7 +26468,7 @@ GL_PREFIX(VertexAttrib3dvNV):
GL_PREFIX(VertexAttrib3fNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5576(%rax), %r11
+ movq 5632(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -26231,13 +26482,13 @@ GL_PREFIX(VertexAttrib3fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5576(%rax), %r11
+ movq 5632(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5576(%rax), %r11
+ movq 5632(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -26251,7 +26502,7 @@ GL_PREFIX(VertexAttrib3fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5576(%rax), %r11
+ movq 5632(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3fNV), .-GL_PREFIX(VertexAttrib3fNV)
@@ -26262,7 +26513,7 @@ GL_PREFIX(VertexAttrib3fNV):
GL_PREFIX(VertexAttrib3fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5584(%rax), %r11
+ movq 5640(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26272,13 +26523,13 @@ GL_PREFIX(VertexAttrib3fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5584(%rax), %r11
+ movq 5640(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5584(%rax), %r11
+ movq 5640(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26288,7 +26539,7 @@ GL_PREFIX(VertexAttrib3fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5584(%rax), %r11
+ movq 5640(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3fvNV), .-GL_PREFIX(VertexAttrib3fvNV)
@@ -26299,7 +26550,7 @@ GL_PREFIX(VertexAttrib3fvNV):
GL_PREFIX(VertexAttrib3sNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5592(%rax), %r11
+ movq 5648(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26313,13 +26564,13 @@ GL_PREFIX(VertexAttrib3sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5592(%rax), %r11
+ movq 5648(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5592(%rax), %r11
+ movq 5648(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26333,7 +26584,7 @@ GL_PREFIX(VertexAttrib3sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5592(%rax), %r11
+ movq 5648(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3sNV), .-GL_PREFIX(VertexAttrib3sNV)
@@ -26344,7 +26595,7 @@ GL_PREFIX(VertexAttrib3sNV):
GL_PREFIX(VertexAttrib3svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5600(%rax), %r11
+ movq 5656(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26354,13 +26605,13 @@ GL_PREFIX(VertexAttrib3svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5600(%rax), %r11
+ movq 5656(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5600(%rax), %r11
+ movq 5656(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26370,7 +26621,7 @@ GL_PREFIX(VertexAttrib3svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5600(%rax), %r11
+ movq 5656(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib3svNV), .-GL_PREFIX(VertexAttrib3svNV)
@@ -26381,7 +26632,7 @@ GL_PREFIX(VertexAttrib3svNV):
GL_PREFIX(VertexAttrib4dNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5608(%rax), %r11
+ movq 5664(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -26397,13 +26648,13 @@ GL_PREFIX(VertexAttrib4dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5608(%rax), %r11
+ movq 5664(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5608(%rax), %r11
+ movq 5664(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -26419,7 +26670,7 @@ GL_PREFIX(VertexAttrib4dNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5608(%rax), %r11
+ movq 5664(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4dNV), .-GL_PREFIX(VertexAttrib4dNV)
@@ -26430,7 +26681,7 @@ GL_PREFIX(VertexAttrib4dNV):
GL_PREFIX(VertexAttrib4dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5616(%rax), %r11
+ movq 5672(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26440,13 +26691,13 @@ GL_PREFIX(VertexAttrib4dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5616(%rax), %r11
+ movq 5672(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5616(%rax), %r11
+ movq 5672(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26456,7 +26707,7 @@ GL_PREFIX(VertexAttrib4dvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5616(%rax), %r11
+ movq 5672(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4dvNV), .-GL_PREFIX(VertexAttrib4dvNV)
@@ -26467,7 +26718,7 @@ GL_PREFIX(VertexAttrib4dvNV):
GL_PREFIX(VertexAttrib4fNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5624(%rax), %r11
+ movq 5680(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $40, %rsp
@@ -26483,13 +26734,13 @@ GL_PREFIX(VertexAttrib4fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5624(%rax), %r11
+ movq 5680(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5624(%rax), %r11
+ movq 5680(%rax), %r11
jmp *%r11
1:
subq $40, %rsp
@@ -26505,7 +26756,7 @@ GL_PREFIX(VertexAttrib4fNV):
movq 8(%rsp), %xmm0
movq (%rsp), %rdi
addq $40, %rsp
- movq 5624(%rax), %r11
+ movq 5680(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4fNV), .-GL_PREFIX(VertexAttrib4fNV)
@@ -26516,7 +26767,7 @@ GL_PREFIX(VertexAttrib4fNV):
GL_PREFIX(VertexAttrib4fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5632(%rax), %r11
+ movq 5688(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26526,13 +26777,13 @@ GL_PREFIX(VertexAttrib4fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5632(%rax), %r11
+ movq 5688(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5632(%rax), %r11
+ movq 5688(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26542,7 +26793,7 @@ GL_PREFIX(VertexAttrib4fvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5632(%rax), %r11
+ movq 5688(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4fvNV), .-GL_PREFIX(VertexAttrib4fvNV)
@@ -26553,7 +26804,7 @@ GL_PREFIX(VertexAttrib4fvNV):
GL_PREFIX(VertexAttrib4sNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5640(%rax), %r11
+ movq 5696(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26567,13 +26818,13 @@ GL_PREFIX(VertexAttrib4sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5640(%rax), %r11
+ movq 5696(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5640(%rax), %r11
+ movq 5696(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26587,7 +26838,7 @@ GL_PREFIX(VertexAttrib4sNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5640(%rax), %r11
+ movq 5696(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4sNV), .-GL_PREFIX(VertexAttrib4sNV)
@@ -26598,7 +26849,7 @@ GL_PREFIX(VertexAttrib4sNV):
GL_PREFIX(VertexAttrib4svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5648(%rax), %r11
+ movq 5704(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26608,13 +26859,13 @@ GL_PREFIX(VertexAttrib4svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5648(%rax), %r11
+ movq 5704(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5648(%rax), %r11
+ movq 5704(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26624,7 +26875,7 @@ GL_PREFIX(VertexAttrib4svNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5648(%rax), %r11
+ movq 5704(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4svNV), .-GL_PREFIX(VertexAttrib4svNV)
@@ -26635,7 +26886,7 @@ GL_PREFIX(VertexAttrib4svNV):
GL_PREFIX(VertexAttrib4ubNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5656(%rax), %r11
+ movq 5712(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26649,13 +26900,13 @@ GL_PREFIX(VertexAttrib4ubNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5656(%rax), %r11
+ movq 5712(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5656(%rax), %r11
+ movq 5712(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26669,7 +26920,7 @@ GL_PREFIX(VertexAttrib4ubNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5656(%rax), %r11
+ movq 5712(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4ubNV), .-GL_PREFIX(VertexAttrib4ubNV)
@@ -26680,7 +26931,7 @@ GL_PREFIX(VertexAttrib4ubNV):
GL_PREFIX(VertexAttrib4ubvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5664(%rax), %r11
+ movq 5720(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26690,13 +26941,13 @@ GL_PREFIX(VertexAttrib4ubvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5664(%rax), %r11
+ movq 5720(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5664(%rax), %r11
+ movq 5720(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26706,7 +26957,7 @@ GL_PREFIX(VertexAttrib4ubvNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5664(%rax), %r11
+ movq 5720(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttrib4ubvNV), .-GL_PREFIX(VertexAttrib4ubvNV)
@@ -26717,7 +26968,7 @@ GL_PREFIX(VertexAttrib4ubvNV):
GL_PREFIX(VertexAttribPointerNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5672(%rax), %r11
+ movq 5728(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26731,13 +26982,13 @@ GL_PREFIX(VertexAttribPointerNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5672(%rax), %r11
+ movq 5728(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5672(%rax), %r11
+ movq 5728(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26751,7 +27002,7 @@ GL_PREFIX(VertexAttribPointerNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5672(%rax), %r11
+ movq 5728(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribPointerNV), .-GL_PREFIX(VertexAttribPointerNV)
@@ -26762,7 +27013,7 @@ GL_PREFIX(VertexAttribPointerNV):
GL_PREFIX(VertexAttribs1dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5680(%rax), %r11
+ movq 5736(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26772,13 +27023,13 @@ GL_PREFIX(VertexAttribs1dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5680(%rax), %r11
+ movq 5736(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5680(%rax), %r11
+ movq 5736(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26788,7 +27039,7 @@ GL_PREFIX(VertexAttribs1dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5680(%rax), %r11
+ movq 5736(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs1dvNV), .-GL_PREFIX(VertexAttribs1dvNV)
@@ -26799,7 +27050,7 @@ GL_PREFIX(VertexAttribs1dvNV):
GL_PREFIX(VertexAttribs1fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5688(%rax), %r11
+ movq 5744(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26809,13 +27060,13 @@ GL_PREFIX(VertexAttribs1fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5688(%rax), %r11
+ movq 5744(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5688(%rax), %r11
+ movq 5744(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26825,7 +27076,7 @@ GL_PREFIX(VertexAttribs1fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5688(%rax), %r11
+ movq 5744(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs1fvNV), .-GL_PREFIX(VertexAttribs1fvNV)
@@ -26836,7 +27087,7 @@ GL_PREFIX(VertexAttribs1fvNV):
GL_PREFIX(VertexAttribs1svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5696(%rax), %r11
+ movq 5752(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26846,13 +27097,13 @@ GL_PREFIX(VertexAttribs1svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5696(%rax), %r11
+ movq 5752(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5696(%rax), %r11
+ movq 5752(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26862,7 +27113,7 @@ GL_PREFIX(VertexAttribs1svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5696(%rax), %r11
+ movq 5752(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs1svNV), .-GL_PREFIX(VertexAttribs1svNV)
@@ -26873,7 +27124,7 @@ GL_PREFIX(VertexAttribs1svNV):
GL_PREFIX(VertexAttribs2dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5704(%rax), %r11
+ movq 5760(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26883,13 +27134,13 @@ GL_PREFIX(VertexAttribs2dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5704(%rax), %r11
+ movq 5760(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5704(%rax), %r11
+ movq 5760(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26899,7 +27150,7 @@ GL_PREFIX(VertexAttribs2dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5704(%rax), %r11
+ movq 5760(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs2dvNV), .-GL_PREFIX(VertexAttribs2dvNV)
@@ -26910,7 +27161,7 @@ GL_PREFIX(VertexAttribs2dvNV):
GL_PREFIX(VertexAttribs2fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5712(%rax), %r11
+ movq 5768(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26920,13 +27171,13 @@ GL_PREFIX(VertexAttribs2fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5712(%rax), %r11
+ movq 5768(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5712(%rax), %r11
+ movq 5768(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26936,7 +27187,7 @@ GL_PREFIX(VertexAttribs2fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5712(%rax), %r11
+ movq 5768(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs2fvNV), .-GL_PREFIX(VertexAttribs2fvNV)
@@ -26947,7 +27198,7 @@ GL_PREFIX(VertexAttribs2fvNV):
GL_PREFIX(VertexAttribs2svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5720(%rax), %r11
+ movq 5776(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26957,13 +27208,13 @@ GL_PREFIX(VertexAttribs2svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5720(%rax), %r11
+ movq 5776(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5720(%rax), %r11
+ movq 5776(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -26973,7 +27224,7 @@ GL_PREFIX(VertexAttribs2svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5720(%rax), %r11
+ movq 5776(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs2svNV), .-GL_PREFIX(VertexAttribs2svNV)
@@ -26984,7 +27235,7 @@ GL_PREFIX(VertexAttribs2svNV):
GL_PREFIX(VertexAttribs3dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5728(%rax), %r11
+ movq 5784(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -26994,13 +27245,13 @@ GL_PREFIX(VertexAttribs3dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5728(%rax), %r11
+ movq 5784(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5728(%rax), %r11
+ movq 5784(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27010,7 +27261,7 @@ GL_PREFIX(VertexAttribs3dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5728(%rax), %r11
+ movq 5784(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs3dvNV), .-GL_PREFIX(VertexAttribs3dvNV)
@@ -27021,7 +27272,7 @@ GL_PREFIX(VertexAttribs3dvNV):
GL_PREFIX(VertexAttribs3fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5736(%rax), %r11
+ movq 5792(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27031,13 +27282,13 @@ GL_PREFIX(VertexAttribs3fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5736(%rax), %r11
+ movq 5792(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5736(%rax), %r11
+ movq 5792(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27047,7 +27298,7 @@ GL_PREFIX(VertexAttribs3fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5736(%rax), %r11
+ movq 5792(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs3fvNV), .-GL_PREFIX(VertexAttribs3fvNV)
@@ -27058,7 +27309,7 @@ GL_PREFIX(VertexAttribs3fvNV):
GL_PREFIX(VertexAttribs3svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5744(%rax), %r11
+ movq 5800(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27068,13 +27319,13 @@ GL_PREFIX(VertexAttribs3svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5744(%rax), %r11
+ movq 5800(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5744(%rax), %r11
+ movq 5800(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27084,7 +27335,7 @@ GL_PREFIX(VertexAttribs3svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5744(%rax), %r11
+ movq 5800(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs3svNV), .-GL_PREFIX(VertexAttribs3svNV)
@@ -27095,7 +27346,7 @@ GL_PREFIX(VertexAttribs3svNV):
GL_PREFIX(VertexAttribs4dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5752(%rax), %r11
+ movq 5808(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27105,13 +27356,13 @@ GL_PREFIX(VertexAttribs4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5752(%rax), %r11
+ movq 5808(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5752(%rax), %r11
+ movq 5808(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27121,7 +27372,7 @@ GL_PREFIX(VertexAttribs4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5752(%rax), %r11
+ movq 5808(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs4dvNV), .-GL_PREFIX(VertexAttribs4dvNV)
@@ -27132,7 +27383,7 @@ GL_PREFIX(VertexAttribs4dvNV):
GL_PREFIX(VertexAttribs4fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5760(%rax), %r11
+ movq 5816(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27142,13 +27393,13 @@ GL_PREFIX(VertexAttribs4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5760(%rax), %r11
+ movq 5816(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5760(%rax), %r11
+ movq 5816(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27158,7 +27409,7 @@ GL_PREFIX(VertexAttribs4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5760(%rax), %r11
+ movq 5816(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs4fvNV), .-GL_PREFIX(VertexAttribs4fvNV)
@@ -27169,7 +27420,7 @@ GL_PREFIX(VertexAttribs4fvNV):
GL_PREFIX(VertexAttribs4svNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5768(%rax), %r11
+ movq 5824(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27179,13 +27430,13 @@ GL_PREFIX(VertexAttribs4svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5768(%rax), %r11
+ movq 5824(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5768(%rax), %r11
+ movq 5824(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27195,7 +27446,7 @@ GL_PREFIX(VertexAttribs4svNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5768(%rax), %r11
+ movq 5824(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs4svNV), .-GL_PREFIX(VertexAttribs4svNV)
@@ -27206,7 +27457,7 @@ GL_PREFIX(VertexAttribs4svNV):
GL_PREFIX(VertexAttribs4ubvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5776(%rax), %r11
+ movq 5832(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27216,13 +27467,13 @@ GL_PREFIX(VertexAttribs4ubvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5776(%rax), %r11
+ movq 5832(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5776(%rax), %r11
+ movq 5832(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27232,7 +27483,7 @@ GL_PREFIX(VertexAttribs4ubvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5776(%rax), %r11
+ movq 5832(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(VertexAttribs4ubvNV), .-GL_PREFIX(VertexAttribs4ubvNV)
@@ -27243,7 +27494,7 @@ GL_PREFIX(VertexAttribs4ubvNV):
GL_PREFIX(GetTexBumpParameterfvATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5784(%rax), %r11
+ movq 5840(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27253,13 +27504,13 @@ GL_PREFIX(GetTexBumpParameterfvATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5784(%rax), %r11
+ movq 5840(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5784(%rax), %r11
+ movq 5840(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27269,7 +27520,7 @@ GL_PREFIX(GetTexBumpParameterfvATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5784(%rax), %r11
+ movq 5840(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetTexBumpParameterfvATI), .-GL_PREFIX(GetTexBumpParameterfvATI)
@@ -27280,7 +27531,7 @@ GL_PREFIX(GetTexBumpParameterfvATI):
GL_PREFIX(GetTexBumpParameterivATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5792(%rax), %r11
+ movq 5848(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27290,13 +27541,13 @@ GL_PREFIX(GetTexBumpParameterivATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5792(%rax), %r11
+ movq 5848(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5792(%rax), %r11
+ movq 5848(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27306,7 +27557,7 @@ GL_PREFIX(GetTexBumpParameterivATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5792(%rax), %r11
+ movq 5848(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetTexBumpParameterivATI), .-GL_PREFIX(GetTexBumpParameterivATI)
@@ -27317,7 +27568,7 @@ GL_PREFIX(GetTexBumpParameterivATI):
GL_PREFIX(TexBumpParameterfvATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5800(%rax), %r11
+ movq 5856(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27327,13 +27578,13 @@ GL_PREFIX(TexBumpParameterfvATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5800(%rax), %r11
+ movq 5856(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5800(%rax), %r11
+ movq 5856(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27343,7 +27594,7 @@ GL_PREFIX(TexBumpParameterfvATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5800(%rax), %r11
+ movq 5856(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(TexBumpParameterfvATI), .-GL_PREFIX(TexBumpParameterfvATI)
@@ -27354,7 +27605,7 @@ GL_PREFIX(TexBumpParameterfvATI):
GL_PREFIX(TexBumpParameterivATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5808(%rax), %r11
+ movq 5864(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27364,13 +27615,13 @@ GL_PREFIX(TexBumpParameterivATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5808(%rax), %r11
+ movq 5864(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5808(%rax), %r11
+ movq 5864(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27380,7 +27631,7 @@ GL_PREFIX(TexBumpParameterivATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5808(%rax), %r11
+ movq 5864(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(TexBumpParameterivATI), .-GL_PREFIX(TexBumpParameterivATI)
@@ -27391,7 +27642,7 @@ GL_PREFIX(TexBumpParameterivATI):
GL_PREFIX(AlphaFragmentOp1ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5816(%rax), %r11
+ movq 5872(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27409,13 +27660,13 @@ GL_PREFIX(AlphaFragmentOp1ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5816(%rax), %r11
+ movq 5872(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5816(%rax), %r11
+ movq 5872(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27433,7 +27684,7 @@ GL_PREFIX(AlphaFragmentOp1ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5816(%rax), %r11
+ movq 5872(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(AlphaFragmentOp1ATI), .-GL_PREFIX(AlphaFragmentOp1ATI)
@@ -27444,7 +27695,7 @@ GL_PREFIX(AlphaFragmentOp1ATI):
GL_PREFIX(AlphaFragmentOp2ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5824(%rax), %r11
+ movq 5880(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27462,13 +27713,13 @@ GL_PREFIX(AlphaFragmentOp2ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5824(%rax), %r11
+ movq 5880(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5824(%rax), %r11
+ movq 5880(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27486,7 +27737,7 @@ GL_PREFIX(AlphaFragmentOp2ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5824(%rax), %r11
+ movq 5880(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(AlphaFragmentOp2ATI), .-GL_PREFIX(AlphaFragmentOp2ATI)
@@ -27497,7 +27748,7 @@ GL_PREFIX(AlphaFragmentOp2ATI):
GL_PREFIX(AlphaFragmentOp3ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5832(%rax), %r11
+ movq 5888(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27515,13 +27766,13 @@ GL_PREFIX(AlphaFragmentOp3ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5832(%rax), %r11
+ movq 5888(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5832(%rax), %r11
+ movq 5888(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27539,7 +27790,7 @@ GL_PREFIX(AlphaFragmentOp3ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5832(%rax), %r11
+ movq 5888(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(AlphaFragmentOp3ATI), .-GL_PREFIX(AlphaFragmentOp3ATI)
@@ -27550,25 +27801,25 @@ GL_PREFIX(AlphaFragmentOp3ATI):
GL_PREFIX(BeginFragmentShaderATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5840(%rax), %r11
+ movq 5896(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
- movq 5840(%rax), %r11
+ movq 5896(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5840(%rax), %r11
+ movq 5896(%rax), %r11
jmp *%r11
1:
pushq %rbp
call _glapi_get_dispatch
popq %rbp
- movq 5840(%rax), %r11
+ movq 5896(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BeginFragmentShaderATI), .-GL_PREFIX(BeginFragmentShaderATI)
@@ -27579,25 +27830,25 @@ GL_PREFIX(BeginFragmentShaderATI):
GL_PREFIX(BindFragmentShaderATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5848(%rax), %r11
+ movq 5904(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5848(%rax), %r11
+ movq 5904(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5848(%rax), %r11
+ movq 5904(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5848(%rax), %r11
+ movq 5904(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BindFragmentShaderATI), .-GL_PREFIX(BindFragmentShaderATI)
@@ -27608,7 +27859,7 @@ GL_PREFIX(BindFragmentShaderATI):
GL_PREFIX(ColorFragmentOp1ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5856(%rax), %r11
+ movq 5912(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27626,13 +27877,13 @@ GL_PREFIX(ColorFragmentOp1ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5856(%rax), %r11
+ movq 5912(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5856(%rax), %r11
+ movq 5912(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27650,7 +27901,7 @@ GL_PREFIX(ColorFragmentOp1ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5856(%rax), %r11
+ movq 5912(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ColorFragmentOp1ATI), .-GL_PREFIX(ColorFragmentOp1ATI)
@@ -27661,7 +27912,7 @@ GL_PREFIX(ColorFragmentOp1ATI):
GL_PREFIX(ColorFragmentOp2ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5864(%rax), %r11
+ movq 5920(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27679,13 +27930,13 @@ GL_PREFIX(ColorFragmentOp2ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5864(%rax), %r11
+ movq 5920(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5864(%rax), %r11
+ movq 5920(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27703,7 +27954,7 @@ GL_PREFIX(ColorFragmentOp2ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5864(%rax), %r11
+ movq 5920(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ColorFragmentOp2ATI), .-GL_PREFIX(ColorFragmentOp2ATI)
@@ -27714,7 +27965,7 @@ GL_PREFIX(ColorFragmentOp2ATI):
GL_PREFIX(ColorFragmentOp3ATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5872(%rax), %r11
+ movq 5928(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27732,13 +27983,13 @@ GL_PREFIX(ColorFragmentOp3ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5872(%rax), %r11
+ movq 5928(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5872(%rax), %r11
+ movq 5928(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27756,7 +28007,7 @@ GL_PREFIX(ColorFragmentOp3ATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5872(%rax), %r11
+ movq 5928(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ColorFragmentOp3ATI), .-GL_PREFIX(ColorFragmentOp3ATI)
@@ -27767,25 +28018,25 @@ GL_PREFIX(ColorFragmentOp3ATI):
GL_PREFIX(DeleteFragmentShaderATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5880(%rax), %r11
+ movq 5936(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5880(%rax), %r11
+ movq 5936(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5880(%rax), %r11
+ movq 5936(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5880(%rax), %r11
+ movq 5936(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(DeleteFragmentShaderATI), .-GL_PREFIX(DeleteFragmentShaderATI)
@@ -27796,25 +28047,25 @@ GL_PREFIX(DeleteFragmentShaderATI):
GL_PREFIX(EndFragmentShaderATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5888(%rax), %r11
+ movq 5944(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
- movq 5888(%rax), %r11
+ movq 5944(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5888(%rax), %r11
+ movq 5944(%rax), %r11
jmp *%r11
1:
pushq %rbp
call _glapi_get_dispatch
popq %rbp
- movq 5888(%rax), %r11
+ movq 5944(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(EndFragmentShaderATI), .-GL_PREFIX(EndFragmentShaderATI)
@@ -27825,25 +28076,25 @@ GL_PREFIX(EndFragmentShaderATI):
GL_PREFIX(GenFragmentShadersATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5896(%rax), %r11
+ movq 5952(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5896(%rax), %r11
+ movq 5952(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5896(%rax), %r11
+ movq 5952(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5896(%rax), %r11
+ movq 5952(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GenFragmentShadersATI), .-GL_PREFIX(GenFragmentShadersATI)
@@ -27854,7 +28105,7 @@ GL_PREFIX(GenFragmentShadersATI):
GL_PREFIX(PassTexCoordATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5904(%rax), %r11
+ movq 5960(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27864,13 +28115,13 @@ GL_PREFIX(PassTexCoordATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5904(%rax), %r11
+ movq 5960(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5904(%rax), %r11
+ movq 5960(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27880,7 +28131,7 @@ GL_PREFIX(PassTexCoordATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5904(%rax), %r11
+ movq 5960(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PassTexCoordATI), .-GL_PREFIX(PassTexCoordATI)
@@ -27891,7 +28142,7 @@ GL_PREFIX(PassTexCoordATI):
GL_PREFIX(SampleMapATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5912(%rax), %r11
+ movq 5968(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27901,13 +28152,13 @@ GL_PREFIX(SampleMapATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5912(%rax), %r11
+ movq 5968(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5912(%rax), %r11
+ movq 5968(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27917,7 +28168,7 @@ GL_PREFIX(SampleMapATI):
popq %rdx
popq %rsi
popq %rdi
- movq 5912(%rax), %r11
+ movq 5968(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SampleMapATI), .-GL_PREFIX(SampleMapATI)
@@ -27928,7 +28179,7 @@ GL_PREFIX(SampleMapATI):
GL_PREFIX(SetFragmentShaderConstantATI):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5920(%rax), %r11
+ movq 5976(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27938,13 +28189,13 @@ GL_PREFIX(SetFragmentShaderConstantATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5920(%rax), %r11
+ movq 5976(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5920(%rax), %r11
+ movq 5976(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27954,7 +28205,7 @@ GL_PREFIX(SetFragmentShaderConstantATI):
popq %rbp
popq %rsi
popq %rdi
- movq 5920(%rax), %r11
+ movq 5976(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(SetFragmentShaderConstantATI), .-GL_PREFIX(SetFragmentShaderConstantATI)
@@ -27965,7 +28216,7 @@ GL_PREFIX(SetFragmentShaderConstantATI):
GL_PREFIX(PointParameteriNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5928(%rax), %r11
+ movq 5984(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -27975,13 +28226,13 @@ GL_PREFIX(PointParameteriNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5928(%rax), %r11
+ movq 5984(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5928(%rax), %r11
+ movq 5984(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -27991,7 +28242,7 @@ GL_PREFIX(PointParameteriNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5928(%rax), %r11
+ movq 5984(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PointParameteriNV), .-GL_PREFIX(PointParameteriNV)
@@ -28002,7 +28253,7 @@ GL_PREFIX(PointParameteriNV):
GL_PREFIX(PointParameterivNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5936(%rax), %r11
+ movq 5992(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28012,13 +28263,13 @@ GL_PREFIX(PointParameterivNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5936(%rax), %r11
+ movq 5992(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5936(%rax), %r11
+ movq 5992(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28028,79 +28279,79 @@ GL_PREFIX(PointParameterivNV):
popq %rbp
popq %rsi
popq %rdi
- movq 5936(%rax), %r11
+ movq 5992(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(PointParameterivNV), .-GL_PREFIX(PointParameterivNV)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_743)
- .type GL_PREFIX(_dispatch_stub_743), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_743))
-GL_PREFIX(_dispatch_stub_743):
+ .globl GL_PREFIX(_dispatch_stub_750)
+ .type GL_PREFIX(_dispatch_stub_750), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_750))
+GL_PREFIX(_dispatch_stub_750):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5944(%rax), %r11
+ movq 6000(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5944(%rax), %r11
+ movq 6000(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5944(%rax), %r11
+ movq 6000(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5944(%rax), %r11
+ movq 6000(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_743), .-GL_PREFIX(_dispatch_stub_743)
+ .size GL_PREFIX(_dispatch_stub_750), .-GL_PREFIX(_dispatch_stub_750)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_744)
- .type GL_PREFIX(_dispatch_stub_744), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_744))
-GL_PREFIX(_dispatch_stub_744):
+ .globl GL_PREFIX(_dispatch_stub_751)
+ .type GL_PREFIX(_dispatch_stub_751), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_751))
+GL_PREFIX(_dispatch_stub_751):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5952(%rax), %r11
+ movq 6008(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5952(%rax), %r11
+ movq 6008(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5952(%rax), %r11
+ movq 6008(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5952(%rax), %r11
+ movq 6008(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_744), .-GL_PREFIX(_dispatch_stub_744)
+ .size GL_PREFIX(_dispatch_stub_751), .-GL_PREFIX(_dispatch_stub_751)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_745)
- .type GL_PREFIX(_dispatch_stub_745), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_745))
-GL_PREFIX(_dispatch_stub_745):
+ .globl GL_PREFIX(_dispatch_stub_752)
+ .type GL_PREFIX(_dispatch_stub_752), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_752))
+GL_PREFIX(_dispatch_stub_752):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5960(%rax), %r11
+ movq 6016(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28110,13 +28361,13 @@ GL_PREFIX(_dispatch_stub_745):
popq %rbp
popq %rsi
popq %rdi
- movq 5960(%rax), %r11
+ movq 6016(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5960(%rax), %r11
+ movq 6016(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28126,19 +28377,19 @@ GL_PREFIX(_dispatch_stub_745):
popq %rbp
popq %rsi
popq %rdi
- movq 5960(%rax), %r11
+ movq 6016(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_745), .-GL_PREFIX(_dispatch_stub_745)
+ .size GL_PREFIX(_dispatch_stub_752), .-GL_PREFIX(_dispatch_stub_752)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_746)
- .type GL_PREFIX(_dispatch_stub_746), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_746))
-GL_PREFIX(_dispatch_stub_746):
+ .globl GL_PREFIX(_dispatch_stub_753)
+ .type GL_PREFIX(_dispatch_stub_753), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_753))
+GL_PREFIX(_dispatch_stub_753):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5968(%rax), %r11
+ movq 6024(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28148,13 +28399,13 @@ GL_PREFIX(_dispatch_stub_746):
popq %rbp
popq %rsi
popq %rdi
- movq 5968(%rax), %r11
+ movq 6024(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5968(%rax), %r11
+ movq 6024(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28164,40 +28415,40 @@ GL_PREFIX(_dispatch_stub_746):
popq %rbp
popq %rsi
popq %rdi
- movq 5968(%rax), %r11
+ movq 6024(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_746), .-GL_PREFIX(_dispatch_stub_746)
+ .size GL_PREFIX(_dispatch_stub_753), .-GL_PREFIX(_dispatch_stub_753)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_747)
- .type GL_PREFIX(_dispatch_stub_747), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_747))
-GL_PREFIX(_dispatch_stub_747):
+ .globl GL_PREFIX(_dispatch_stub_754)
+ .type GL_PREFIX(_dispatch_stub_754), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_754))
+GL_PREFIX(_dispatch_stub_754):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5976(%rax), %r11
+ movq 6032(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 5976(%rax), %r11
+ movq 6032(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5976(%rax), %r11
+ movq 6032(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 5976(%rax), %r11
+ movq 6032(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_747), .-GL_PREFIX(_dispatch_stub_747)
+ .size GL_PREFIX(_dispatch_stub_754), .-GL_PREFIX(_dispatch_stub_754)
.p2align 4,,15
.globl GL_PREFIX(GetProgramNamedParameterdvNV)
@@ -28205,7 +28456,7 @@ GL_PREFIX(_dispatch_stub_747):
GL_PREFIX(GetProgramNamedParameterdvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5984(%rax), %r11
+ movq 6040(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28219,13 +28470,13 @@ GL_PREFIX(GetProgramNamedParameterdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5984(%rax), %r11
+ movq 6040(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5984(%rax), %r11
+ movq 6040(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28239,7 +28490,7 @@ GL_PREFIX(GetProgramNamedParameterdvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5984(%rax), %r11
+ movq 6040(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramNamedParameterdvNV), .-GL_PREFIX(GetProgramNamedParameterdvNV)
@@ -28250,7 +28501,7 @@ GL_PREFIX(GetProgramNamedParameterdvNV):
GL_PREFIX(GetProgramNamedParameterfvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 5992(%rax), %r11
+ movq 6048(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28264,13 +28515,13 @@ GL_PREFIX(GetProgramNamedParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5992(%rax), %r11
+ movq 6048(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 5992(%rax), %r11
+ movq 6048(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28284,7 +28535,7 @@ GL_PREFIX(GetProgramNamedParameterfvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 5992(%rax), %r11
+ movq 6048(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetProgramNamedParameterfvNV), .-GL_PREFIX(GetProgramNamedParameterfvNV)
@@ -28295,7 +28546,7 @@ GL_PREFIX(GetProgramNamedParameterfvNV):
GL_PREFIX(ProgramNamedParameter4dNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6000(%rax), %r11
+ movq 6056(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $56, %rsp
@@ -28315,13 +28566,13 @@ GL_PREFIX(ProgramNamedParameter4dNV):
movq 8(%rsp), %rsi
movq (%rsp), %rdi
addq $56, %rsp
- movq 6000(%rax), %r11
+ movq 6056(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6000(%rax), %r11
+ movq 6056(%rax), %r11
jmp *%r11
1:
subq $56, %rsp
@@ -28341,7 +28592,7 @@ GL_PREFIX(ProgramNamedParameter4dNV):
movq 8(%rsp), %rsi
movq (%rsp), %rdi
addq $56, %rsp
- movq 6000(%rax), %r11
+ movq 6056(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramNamedParameter4dNV), .-GL_PREFIX(ProgramNamedParameter4dNV)
@@ -28352,7 +28603,7 @@ GL_PREFIX(ProgramNamedParameter4dNV):
GL_PREFIX(ProgramNamedParameter4dvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6008(%rax), %r11
+ movq 6064(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28366,13 +28617,13 @@ GL_PREFIX(ProgramNamedParameter4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 6008(%rax), %r11
+ movq 6064(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6008(%rax), %r11
+ movq 6064(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28386,7 +28637,7 @@ GL_PREFIX(ProgramNamedParameter4dvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 6008(%rax), %r11
+ movq 6064(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramNamedParameter4dvNV), .-GL_PREFIX(ProgramNamedParameter4dvNV)
@@ -28397,7 +28648,7 @@ GL_PREFIX(ProgramNamedParameter4dvNV):
GL_PREFIX(ProgramNamedParameter4fNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6016(%rax), %r11
+ movq 6072(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
subq $56, %rsp
@@ -28417,13 +28668,13 @@ GL_PREFIX(ProgramNamedParameter4fNV):
movq 8(%rsp), %rsi
movq (%rsp), %rdi
addq $56, %rsp
- movq 6016(%rax), %r11
+ movq 6072(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6016(%rax), %r11
+ movq 6072(%rax), %r11
jmp *%r11
1:
subq $56, %rsp
@@ -28443,7 +28694,7 @@ GL_PREFIX(ProgramNamedParameter4fNV):
movq 8(%rsp), %rsi
movq (%rsp), %rdi
addq $56, %rsp
- movq 6016(%rax), %r11
+ movq 6072(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramNamedParameter4fNV), .-GL_PREFIX(ProgramNamedParameter4fNV)
@@ -28454,7 +28705,7 @@ GL_PREFIX(ProgramNamedParameter4fNV):
GL_PREFIX(ProgramNamedParameter4fvNV):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6024(%rax), %r11
+ movq 6080(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28468,13 +28719,13 @@ GL_PREFIX(ProgramNamedParameter4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 6024(%rax), %r11
+ movq 6080(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6024(%rax), %r11
+ movq 6080(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28488,19 +28739,19 @@ GL_PREFIX(ProgramNamedParameter4fvNV):
popq %rdx
popq %rsi
popq %rdi
- movq 6024(%rax), %r11
+ movq 6080(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProgramNamedParameter4fvNV), .-GL_PREFIX(ProgramNamedParameter4fvNV)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_754)
- .type GL_PREFIX(_dispatch_stub_754), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_754))
-GL_PREFIX(_dispatch_stub_754):
+ .globl GL_PREFIX(_dispatch_stub_761)
+ .type GL_PREFIX(_dispatch_stub_761), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_761))
+GL_PREFIX(_dispatch_stub_761):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6032(%rax), %r11
+ movq 6088(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28510,13 +28761,13 @@ GL_PREFIX(_dispatch_stub_754):
popq %rbp
popq %rsi
popq %rdi
- movq 6032(%rax), %r11
+ movq 6088(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6032(%rax), %r11
+ movq 6088(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28526,19 +28777,19 @@ GL_PREFIX(_dispatch_stub_754):
popq %rbp
popq %rsi
popq %rdi
- movq 6032(%rax), %r11
+ movq 6088(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_754), .-GL_PREFIX(_dispatch_stub_754)
+ .size GL_PREFIX(_dispatch_stub_761), .-GL_PREFIX(_dispatch_stub_761)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_755)
- .type GL_PREFIX(_dispatch_stub_755), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_755))
-GL_PREFIX(_dispatch_stub_755):
+ .globl GL_PREFIX(_dispatch_stub_762)
+ .type GL_PREFIX(_dispatch_stub_762), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_762))
+GL_PREFIX(_dispatch_stub_762):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6040(%rax), %r11
+ movq 6096(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28548,13 +28799,13 @@ GL_PREFIX(_dispatch_stub_755):
popq %rbp
popq %rsi
popq %rdi
- movq 6040(%rax), %r11
+ movq 6096(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6040(%rax), %r11
+ movq 6096(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28564,10 +28815,10 @@ GL_PREFIX(_dispatch_stub_755):
popq %rbp
popq %rsi
popq %rdi
- movq 6040(%rax), %r11
+ movq 6096(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_755), .-GL_PREFIX(_dispatch_stub_755)
+ .size GL_PREFIX(_dispatch_stub_762), .-GL_PREFIX(_dispatch_stub_762)
.p2align 4,,15
.globl GL_PREFIX(BindFramebufferEXT)
@@ -28575,7 +28826,7 @@ GL_PREFIX(_dispatch_stub_755):
GL_PREFIX(BindFramebufferEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6048(%rax), %r11
+ movq 6104(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28585,13 +28836,13 @@ GL_PREFIX(BindFramebufferEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6048(%rax), %r11
+ movq 6104(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6048(%rax), %r11
+ movq 6104(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28601,7 +28852,7 @@ GL_PREFIX(BindFramebufferEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6048(%rax), %r11
+ movq 6104(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BindFramebufferEXT), .-GL_PREFIX(BindFramebufferEXT)
@@ -28612,7 +28863,7 @@ GL_PREFIX(BindFramebufferEXT):
GL_PREFIX(BindRenderbufferEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6056(%rax), %r11
+ movq 6112(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28622,13 +28873,13 @@ GL_PREFIX(BindRenderbufferEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6056(%rax), %r11
+ movq 6112(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6056(%rax), %r11
+ movq 6112(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28638,7 +28889,7 @@ GL_PREFIX(BindRenderbufferEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6056(%rax), %r11
+ movq 6112(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(BindRenderbufferEXT), .-GL_PREFIX(BindRenderbufferEXT)
@@ -28649,25 +28900,25 @@ GL_PREFIX(BindRenderbufferEXT):
GL_PREFIX(CheckFramebufferStatusEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6064(%rax), %r11
+ movq 6120(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 6064(%rax), %r11
+ movq 6120(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6064(%rax), %r11
+ movq 6120(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 6064(%rax), %r11
+ movq 6120(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(CheckFramebufferStatusEXT), .-GL_PREFIX(CheckFramebufferStatusEXT)
@@ -28678,7 +28929,7 @@ GL_PREFIX(CheckFramebufferStatusEXT):
GL_PREFIX(DeleteFramebuffersEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6072(%rax), %r11
+ movq 6128(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28688,13 +28939,13 @@ GL_PREFIX(DeleteFramebuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6072(%rax), %r11
+ movq 6128(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6072(%rax), %r11
+ movq 6128(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28704,7 +28955,7 @@ GL_PREFIX(DeleteFramebuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6072(%rax), %r11
+ movq 6128(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(DeleteFramebuffersEXT), .-GL_PREFIX(DeleteFramebuffersEXT)
@@ -28715,7 +28966,7 @@ GL_PREFIX(DeleteFramebuffersEXT):
GL_PREFIX(DeleteRenderbuffersEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6080(%rax), %r11
+ movq 6136(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28725,13 +28976,13 @@ GL_PREFIX(DeleteRenderbuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6080(%rax), %r11
+ movq 6136(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6080(%rax), %r11
+ movq 6136(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28741,7 +28992,7 @@ GL_PREFIX(DeleteRenderbuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6080(%rax), %r11
+ movq 6136(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(DeleteRenderbuffersEXT), .-GL_PREFIX(DeleteRenderbuffersEXT)
@@ -28752,7 +29003,7 @@ GL_PREFIX(DeleteRenderbuffersEXT):
GL_PREFIX(FramebufferRenderbufferEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6088(%rax), %r11
+ movq 6144(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28766,13 +29017,13 @@ GL_PREFIX(FramebufferRenderbufferEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6088(%rax), %r11
+ movq 6144(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6088(%rax), %r11
+ movq 6144(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28786,7 +29037,7 @@ GL_PREFIX(FramebufferRenderbufferEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6088(%rax), %r11
+ movq 6144(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FramebufferRenderbufferEXT), .-GL_PREFIX(FramebufferRenderbufferEXT)
@@ -28797,7 +29048,7 @@ GL_PREFIX(FramebufferRenderbufferEXT):
GL_PREFIX(FramebufferTexture1DEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6096(%rax), %r11
+ movq 6152(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28811,13 +29062,13 @@ GL_PREFIX(FramebufferTexture1DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6096(%rax), %r11
+ movq 6152(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6096(%rax), %r11
+ movq 6152(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28831,7 +29082,7 @@ GL_PREFIX(FramebufferTexture1DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6096(%rax), %r11
+ movq 6152(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FramebufferTexture1DEXT), .-GL_PREFIX(FramebufferTexture1DEXT)
@@ -28842,7 +29093,7 @@ GL_PREFIX(FramebufferTexture1DEXT):
GL_PREFIX(FramebufferTexture2DEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6104(%rax), %r11
+ movq 6160(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28856,13 +29107,13 @@ GL_PREFIX(FramebufferTexture2DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6104(%rax), %r11
+ movq 6160(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6104(%rax), %r11
+ movq 6160(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28876,7 +29127,7 @@ GL_PREFIX(FramebufferTexture2DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6104(%rax), %r11
+ movq 6160(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FramebufferTexture2DEXT), .-GL_PREFIX(FramebufferTexture2DEXT)
@@ -28887,7 +29138,7 @@ GL_PREFIX(FramebufferTexture2DEXT):
GL_PREFIX(FramebufferTexture3DEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6112(%rax), %r11
+ movq 6168(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28905,13 +29156,13 @@ GL_PREFIX(FramebufferTexture3DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6112(%rax), %r11
+ movq 6168(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6112(%rax), %r11
+ movq 6168(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28929,7 +29180,7 @@ GL_PREFIX(FramebufferTexture3DEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6112(%rax), %r11
+ movq 6168(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FramebufferTexture3DEXT), .-GL_PREFIX(FramebufferTexture3DEXT)
@@ -28940,7 +29191,7 @@ GL_PREFIX(FramebufferTexture3DEXT):
GL_PREFIX(GenFramebuffersEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6120(%rax), %r11
+ movq 6176(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28950,13 +29201,13 @@ GL_PREFIX(GenFramebuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6120(%rax), %r11
+ movq 6176(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6120(%rax), %r11
+ movq 6176(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -28966,7 +29217,7 @@ GL_PREFIX(GenFramebuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6120(%rax), %r11
+ movq 6176(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GenFramebuffersEXT), .-GL_PREFIX(GenFramebuffersEXT)
@@ -28977,7 +29228,7 @@ GL_PREFIX(GenFramebuffersEXT):
GL_PREFIX(GenRenderbuffersEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6128(%rax), %r11
+ movq 6184(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -28987,13 +29238,13 @@ GL_PREFIX(GenRenderbuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6128(%rax), %r11
+ movq 6184(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6128(%rax), %r11
+ movq 6184(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29003,7 +29254,7 @@ GL_PREFIX(GenRenderbuffersEXT):
popq %rbp
popq %rsi
popq %rdi
- movq 6128(%rax), %r11
+ movq 6184(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GenRenderbuffersEXT), .-GL_PREFIX(GenRenderbuffersEXT)
@@ -29014,25 +29265,25 @@ GL_PREFIX(GenRenderbuffersEXT):
GL_PREFIX(GenerateMipmapEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6136(%rax), %r11
+ movq 6192(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 6136(%rax), %r11
+ movq 6192(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6136(%rax), %r11
+ movq 6192(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 6136(%rax), %r11
+ movq 6192(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GenerateMipmapEXT), .-GL_PREFIX(GenerateMipmapEXT)
@@ -29043,7 +29294,7 @@ GL_PREFIX(GenerateMipmapEXT):
GL_PREFIX(GetFramebufferAttachmentParameterivEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6144(%rax), %r11
+ movq 6200(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29057,13 +29308,13 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6144(%rax), %r11
+ movq 6200(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6144(%rax), %r11
+ movq 6200(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29077,7 +29328,7 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6144(%rax), %r11
+ movq 6200(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetFramebufferAttachmentParameterivEXT), .-GL_PREFIX(GetFramebufferAttachmentParameterivEXT)
@@ -29088,7 +29339,7 @@ GL_PREFIX(GetFramebufferAttachmentParameterivEXT):
GL_PREFIX(GetRenderbufferParameterivEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6152(%rax), %r11
+ movq 6208(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29098,13 +29349,13 @@ GL_PREFIX(GetRenderbufferParameterivEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6152(%rax), %r11
+ movq 6208(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6152(%rax), %r11
+ movq 6208(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29114,7 +29365,7 @@ GL_PREFIX(GetRenderbufferParameterivEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6152(%rax), %r11
+ movq 6208(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(GetRenderbufferParameterivEXT), .-GL_PREFIX(GetRenderbufferParameterivEXT)
@@ -29125,25 +29376,25 @@ GL_PREFIX(GetRenderbufferParameterivEXT):
GL_PREFIX(IsFramebufferEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6160(%rax), %r11
+ movq 6216(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 6160(%rax), %r11
+ movq 6216(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6160(%rax), %r11
+ movq 6216(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 6160(%rax), %r11
+ movq 6216(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(IsFramebufferEXT), .-GL_PREFIX(IsFramebufferEXT)
@@ -29154,25 +29405,25 @@ GL_PREFIX(IsFramebufferEXT):
GL_PREFIX(IsRenderbufferEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6168(%rax), %r11
+ movq 6224(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 6168(%rax), %r11
+ movq 6224(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6168(%rax), %r11
+ movq 6224(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 6168(%rax), %r11
+ movq 6224(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(IsRenderbufferEXT), .-GL_PREFIX(IsRenderbufferEXT)
@@ -29183,7 +29434,7 @@ GL_PREFIX(IsRenderbufferEXT):
GL_PREFIX(RenderbufferStorageEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6176(%rax), %r11
+ movq 6232(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29197,13 +29448,13 @@ GL_PREFIX(RenderbufferStorageEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6176(%rax), %r11
+ movq 6232(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6176(%rax), %r11
+ movq 6232(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29217,19 +29468,19 @@ GL_PREFIX(RenderbufferStorageEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6176(%rax), %r11
+ movq 6232(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(RenderbufferStorageEXT), .-GL_PREFIX(RenderbufferStorageEXT)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_773)
- .type GL_PREFIX(_dispatch_stub_773), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_773))
-GL_PREFIX(_dispatch_stub_773):
+ .globl GL_PREFIX(_dispatch_stub_780)
+ .type GL_PREFIX(_dispatch_stub_780), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_780))
+GL_PREFIX(_dispatch_stub_780):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6184(%rax), %r11
+ movq 6240(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29247,13 +29498,13 @@ GL_PREFIX(_dispatch_stub_773):
popq %rdx
popq %rsi
popq %rdi
- movq 6184(%rax), %r11
+ movq 6240(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6184(%rax), %r11
+ movq 6240(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29271,19 +29522,19 @@ GL_PREFIX(_dispatch_stub_773):
popq %rdx
popq %rsi
popq %rdi
- movq 6184(%rax), %r11
+ movq 6240(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_773), .-GL_PREFIX(_dispatch_stub_773)
+ .size GL_PREFIX(_dispatch_stub_780), .-GL_PREFIX(_dispatch_stub_780)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_774)
- .type GL_PREFIX(_dispatch_stub_774), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_774))
-GL_PREFIX(_dispatch_stub_774):
+ .globl GL_PREFIX(_dispatch_stub_781)
+ .type GL_PREFIX(_dispatch_stub_781), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_781))
+GL_PREFIX(_dispatch_stub_781):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6192(%rax), %r11
+ movq 6248(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29293,13 +29544,13 @@ GL_PREFIX(_dispatch_stub_774):
popq %rdx
popq %rsi
popq %rdi
- movq 6192(%rax), %r11
+ movq 6248(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6192(%rax), %r11
+ movq 6248(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29309,19 +29560,19 @@ GL_PREFIX(_dispatch_stub_774):
popq %rdx
popq %rsi
popq %rdi
- movq 6192(%rax), %r11
+ movq 6248(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_774), .-GL_PREFIX(_dispatch_stub_774)
+ .size GL_PREFIX(_dispatch_stub_781), .-GL_PREFIX(_dispatch_stub_781)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_775)
- .type GL_PREFIX(_dispatch_stub_775), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_775))
-GL_PREFIX(_dispatch_stub_775):
+ .globl GL_PREFIX(_dispatch_stub_782)
+ .type GL_PREFIX(_dispatch_stub_782), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_782))
+GL_PREFIX(_dispatch_stub_782):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6200(%rax), %r11
+ movq 6256(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29331,13 +29582,13 @@ GL_PREFIX(_dispatch_stub_775):
popq %rdx
popq %rsi
popq %rdi
- movq 6200(%rax), %r11
+ movq 6256(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6200(%rax), %r11
+ movq 6256(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29347,10 +29598,10 @@ GL_PREFIX(_dispatch_stub_775):
popq %rdx
popq %rsi
popq %rdi
- movq 6200(%rax), %r11
+ movq 6256(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_775), .-GL_PREFIX(_dispatch_stub_775)
+ .size GL_PREFIX(_dispatch_stub_782), .-GL_PREFIX(_dispatch_stub_782)
.p2align 4,,15
.globl GL_PREFIX(FramebufferTextureLayerEXT)
@@ -29358,7 +29609,7 @@ GL_PREFIX(_dispatch_stub_775):
GL_PREFIX(FramebufferTextureLayerEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6208(%rax), %r11
+ movq 6264(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29372,13 +29623,13 @@ GL_PREFIX(FramebufferTextureLayerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6208(%rax), %r11
+ movq 6264(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6208(%rax), %r11
+ movq 6264(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29392,7 +29643,7 @@ GL_PREFIX(FramebufferTextureLayerEXT):
popq %rdx
popq %rsi
popq %rdi
- movq 6208(%rax), %r11
+ movq 6264(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(FramebufferTextureLayerEXT), .-GL_PREFIX(FramebufferTextureLayerEXT)
@@ -29403,37 +29654,37 @@ GL_PREFIX(FramebufferTextureLayerEXT):
GL_PREFIX(ProvokingVertexEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6216(%rax), %r11
+ movq 6272(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
call _x86_64_get_dispatch@PLT
popq %rdi
- movq 6216(%rax), %r11
+ movq 6272(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6216(%rax), %r11
+ movq 6272(%rax), %r11
jmp *%r11
1:
pushq %rdi
call _glapi_get_dispatch
popq %rdi
- movq 6216(%rax), %r11
+ movq 6272(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(ProvokingVertexEXT), .-GL_PREFIX(ProvokingVertexEXT)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_778)
- .type GL_PREFIX(_dispatch_stub_778), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_778))
-GL_PREFIX(_dispatch_stub_778):
+ .globl GL_PREFIX(_dispatch_stub_785)
+ .type GL_PREFIX(_dispatch_stub_785), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_785))
+GL_PREFIX(_dispatch_stub_785):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6224(%rax), %r11
+ movq 6280(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29443,13 +29694,13 @@ GL_PREFIX(_dispatch_stub_778):
popq %rdx
popq %rsi
popq %rdi
- movq 6224(%rax), %r11
+ movq 6280(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6224(%rax), %r11
+ movq 6280(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29459,19 +29710,19 @@ GL_PREFIX(_dispatch_stub_778):
popq %rdx
popq %rsi
popq %rdi
- movq 6224(%rax), %r11
+ movq 6280(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_778), .-GL_PREFIX(_dispatch_stub_778)
+ .size GL_PREFIX(_dispatch_stub_785), .-GL_PREFIX(_dispatch_stub_785)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_779)
- .type GL_PREFIX(_dispatch_stub_779), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_779))
-GL_PREFIX(_dispatch_stub_779):
+ .globl GL_PREFIX(_dispatch_stub_786)
+ .type GL_PREFIX(_dispatch_stub_786), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_786))
+GL_PREFIX(_dispatch_stub_786):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6232(%rax), %r11
+ movq 6288(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29481,13 +29732,13 @@ GL_PREFIX(_dispatch_stub_779):
popq %rdx
popq %rsi
popq %rdi
- movq 6232(%rax), %r11
+ movq 6288(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6232(%rax), %r11
+ movq 6288(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29497,19 +29748,19 @@ GL_PREFIX(_dispatch_stub_779):
popq %rdx
popq %rsi
popq %rdi
- movq 6232(%rax), %r11
+ movq 6288(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_779), .-GL_PREFIX(_dispatch_stub_779)
+ .size GL_PREFIX(_dispatch_stub_786), .-GL_PREFIX(_dispatch_stub_786)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_780)
- .type GL_PREFIX(_dispatch_stub_780), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_780))
-GL_PREFIX(_dispatch_stub_780):
+ .globl GL_PREFIX(_dispatch_stub_787)
+ .type GL_PREFIX(_dispatch_stub_787), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_787))
+GL_PREFIX(_dispatch_stub_787):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6240(%rax), %r11
+ movq 6296(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29523,13 +29774,13 @@ GL_PREFIX(_dispatch_stub_780):
popq %rdx
popq %rsi
popq %rdi
- movq 6240(%rax), %r11
+ movq 6296(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6240(%rax), %r11
+ movq 6296(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29543,19 +29794,19 @@ GL_PREFIX(_dispatch_stub_780):
popq %rdx
popq %rsi
popq %rdi
- movq 6240(%rax), %r11
+ movq 6296(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_780), .-GL_PREFIX(_dispatch_stub_780)
+ .size GL_PREFIX(_dispatch_stub_787), .-GL_PREFIX(_dispatch_stub_787)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_781)
- .type GL_PREFIX(_dispatch_stub_781), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_781))
-GL_PREFIX(_dispatch_stub_781):
+ .globl GL_PREFIX(_dispatch_stub_788)
+ .type GL_PREFIX(_dispatch_stub_788), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_788))
+GL_PREFIX(_dispatch_stub_788):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6248(%rax), %r11
+ movq 6304(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29569,13 +29820,13 @@ GL_PREFIX(_dispatch_stub_781):
popq %rdx
popq %rsi
popq %rdi
- movq 6248(%rax), %r11
+ movq 6304(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6248(%rax), %r11
+ movq 6304(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29589,19 +29840,19 @@ GL_PREFIX(_dispatch_stub_781):
popq %rdx
popq %rsi
popq %rdi
- movq 6248(%rax), %r11
+ movq 6304(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_781), .-GL_PREFIX(_dispatch_stub_781)
+ .size GL_PREFIX(_dispatch_stub_788), .-GL_PREFIX(_dispatch_stub_788)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_782)
- .type GL_PREFIX(_dispatch_stub_782), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_782))
-GL_PREFIX(_dispatch_stub_782):
+ .globl GL_PREFIX(_dispatch_stub_789)
+ .type GL_PREFIX(_dispatch_stub_789), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_789))
+GL_PREFIX(_dispatch_stub_789):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6256(%rax), %r11
+ movq 6312(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29615,13 +29866,13 @@ GL_PREFIX(_dispatch_stub_782):
popq %rdx
popq %rsi
popq %rdi
- movq 6256(%rax), %r11
+ movq 6312(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6256(%rax), %r11
+ movq 6312(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29635,19 +29886,19 @@ GL_PREFIX(_dispatch_stub_782):
popq %rdx
popq %rsi
popq %rdi
- movq 6256(%rax), %r11
+ movq 6312(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_782), .-GL_PREFIX(_dispatch_stub_782)
+ .size GL_PREFIX(_dispatch_stub_789), .-GL_PREFIX(_dispatch_stub_789)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_783)
- .type GL_PREFIX(_dispatch_stub_783), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_783))
-GL_PREFIX(_dispatch_stub_783):
+ .globl GL_PREFIX(_dispatch_stub_790)
+ .type GL_PREFIX(_dispatch_stub_790), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_790))
+GL_PREFIX(_dispatch_stub_790):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6264(%rax), %r11
+ movq 6320(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29657,13 +29908,13 @@ GL_PREFIX(_dispatch_stub_783):
popq %rdx
popq %rsi
popq %rdi
- movq 6264(%rax), %r11
+ movq 6320(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6264(%rax), %r11
+ movq 6320(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29673,19 +29924,19 @@ GL_PREFIX(_dispatch_stub_783):
popq %rdx
popq %rsi
popq %rdi
- movq 6264(%rax), %r11
+ movq 6320(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_783), .-GL_PREFIX(_dispatch_stub_783)
+ .size GL_PREFIX(_dispatch_stub_790), .-GL_PREFIX(_dispatch_stub_790)
.p2align 4,,15
- .globl GL_PREFIX(_dispatch_stub_784)
- .type GL_PREFIX(_dispatch_stub_784), @function
- HIDDEN(GL_PREFIX(_dispatch_stub_784))
-GL_PREFIX(_dispatch_stub_784):
+ .globl GL_PREFIX(_dispatch_stub_791)
+ .type GL_PREFIX(_dispatch_stub_791), @function
+ HIDDEN(GL_PREFIX(_dispatch_stub_791))
+GL_PREFIX(_dispatch_stub_791):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
- movq 6272(%rax), %r11
+ movq 6328(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
@@ -29695,13 +29946,13 @@ GL_PREFIX(_dispatch_stub_784):
popq %rdx
popq %rsi
popq %rdi
- movq 6272(%rax), %r11
+ movq 6328(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
- movq 6272(%rax), %r11
+ movq 6328(%rax), %r11
jmp *%r11
1:
pushq %rdi
@@ -29711,10 +29962,10 @@ GL_PREFIX(_dispatch_stub_784):
popq %rdx
popq %rsi
popq %rdi
- movq 6272(%rax), %r11
+ movq 6328(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
- .size GL_PREFIX(_dispatch_stub_784), .-GL_PREFIX(_dispatch_stub_784)
+ .size GL_PREFIX(_dispatch_stub_791), .-GL_PREFIX(_dispatch_stub_791)
.globl GL_PREFIX(ArrayElementEXT) ; .set GL_PREFIX(ArrayElementEXT), GL_PREFIX(ArrayElement)
.globl GL_PREFIX(BindTextureEXT) ; .set GL_PREFIX(BindTextureEXT), GL_PREFIX(BindTexture)
@@ -29969,9 +30220,9 @@ GL_PREFIX(_dispatch_stub_784):
.globl GL_PREFIX(IsProgramARB) ; .set GL_PREFIX(IsProgramARB), GL_PREFIX(IsProgramNV)
.globl GL_PREFIX(PointParameteri) ; .set GL_PREFIX(PointParameteri), GL_PREFIX(PointParameteriNV)
.globl GL_PREFIX(PointParameteriv) ; .set GL_PREFIX(PointParameteriv), GL_PREFIX(PointParameterivNV)
- .globl GL_PREFIX(DeleteVertexArrays) ; .set GL_PREFIX(DeleteVertexArrays), GL_PREFIX(_dispatch_stub_745)
- .globl GL_PREFIX(IsVertexArray) ; .set GL_PREFIX(IsVertexArray), GL_PREFIX(_dispatch_stub_747)
- .globl GL_PREFIX(BlendEquationSeparate) ; .set GL_PREFIX(BlendEquationSeparate), GL_PREFIX(_dispatch_stub_755)
+ .globl GL_PREFIX(DeleteVertexArrays) ; .set GL_PREFIX(DeleteVertexArrays), GL_PREFIX(_dispatch_stub_752)
+ .globl GL_PREFIX(IsVertexArray) ; .set GL_PREFIX(IsVertexArray), GL_PREFIX(_dispatch_stub_754)
+ .globl GL_PREFIX(BlendEquationSeparate) ; .set GL_PREFIX(BlendEquationSeparate), GL_PREFIX(_dispatch_stub_762)
.globl GL_PREFIX(BindFramebuffer) ; .set GL_PREFIX(BindFramebuffer), GL_PREFIX(BindFramebufferEXT)
.globl GL_PREFIX(BindRenderbuffer) ; .set GL_PREFIX(BindRenderbuffer), GL_PREFIX(BindRenderbufferEXT)
.globl GL_PREFIX(CheckFramebufferStatus) ; .set GL_PREFIX(CheckFramebufferStatus), GL_PREFIX(CheckFramebufferStatusEXT)
@@ -29989,7 +30240,7 @@ GL_PREFIX(_dispatch_stub_784):
.globl GL_PREFIX(IsFramebuffer) ; .set GL_PREFIX(IsFramebuffer), GL_PREFIX(IsFramebufferEXT)
.globl GL_PREFIX(IsRenderbuffer) ; .set GL_PREFIX(IsRenderbuffer), GL_PREFIX(IsRenderbufferEXT)
.globl GL_PREFIX(RenderbufferStorage) ; .set GL_PREFIX(RenderbufferStorage), GL_PREFIX(RenderbufferStorageEXT)
- .globl GL_PREFIX(BlitFramebuffer) ; .set GL_PREFIX(BlitFramebuffer), GL_PREFIX(_dispatch_stub_773)
+ .globl GL_PREFIX(BlitFramebuffer) ; .set GL_PREFIX(BlitFramebuffer), GL_PREFIX(_dispatch_stub_780)
.globl GL_PREFIX(FramebufferTextureLayer) ; .set GL_PREFIX(FramebufferTextureLayer), GL_PREFIX(FramebufferTextureLayerEXT)
#if defined(GLX_USE_TLS) && defined(__linux__)
diff --git a/src/mesa/x86/Makefile b/src/mesa/x86/Makefile
index aa49a9134aa..69122c114b0 100644
--- a/src/mesa/x86/Makefile
+++ b/src/mesa/x86/Makefile
@@ -21,7 +21,7 @@ clean:
gen_matypes: gen_matypes.c
- $(HOST_CC) $(INCLUDE_DIRS) $(HOST_CFLAGS) gen_matypes.c -o gen_matypes
+ $(HOST_CC) $(ARCH_FLAGS) $(INCLUDE_DIRS) $(HOST_CFLAGS) gen_matypes.c -o gen_matypes
# need some special rules here, unfortunately
matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes
diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S
index 204175b72da..46794adaf7a 100644
--- a/src/mesa/x86/glapi_x86.S
+++ b/src/mesa/x86/glapi_x86.S
@@ -718,23 +718,30 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(BindVertexArray, _gloffset_BindVertexArray, BindVertexArray@4)
GL_STUB(GenVertexArrays, _gloffset_GenVertexArrays, GenVertexArrays@8)
GL_STUB(CopyBufferSubData, _gloffset_CopyBufferSubData, CopyBufferSubData@20)
+ GL_STUB(ClientWaitSync, _gloffset_ClientWaitSync, ClientWaitSync@12)
+ GL_STUB(DeleteSync, _gloffset_DeleteSync, DeleteSync@4)
+ GL_STUB(FenceSync, _gloffset_FenceSync, FenceSync@8)
+ GL_STUB(GetInteger64v, _gloffset_GetInteger64v, GetInteger64v@8)
+ GL_STUB(GetSynciv, _gloffset_GetSynciv, GetSynciv@20)
+ GL_STUB(IsSync, _gloffset_IsSync, IsSync@4)
+ GL_STUB(WaitSync, _gloffset_WaitSync, WaitSync@12)
GL_STUB(PolygonOffsetEXT, _gloffset_PolygonOffsetEXT, PolygonOffsetEXT@8)
- GL_STUB(_dispatch_stub_568, _gloffset_GetPixelTexGenParameterfvSGIS, _dispatch_stub_568@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_568, _dispatch_stub_568@8))
- GL_STUB(_dispatch_stub_569, _gloffset_GetPixelTexGenParameterivSGIS, _dispatch_stub_569@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_569, _dispatch_stub_569@8))
- GL_STUB(_dispatch_stub_570, _gloffset_PixelTexGenParameterfSGIS, _dispatch_stub_570@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_570, _dispatch_stub_570@8))
- GL_STUB(_dispatch_stub_571, _gloffset_PixelTexGenParameterfvSGIS, _dispatch_stub_571@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_571, _dispatch_stub_571@8))
- GL_STUB(_dispatch_stub_572, _gloffset_PixelTexGenParameteriSGIS, _dispatch_stub_572@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_572, _dispatch_stub_572@8))
- GL_STUB(_dispatch_stub_573, _gloffset_PixelTexGenParameterivSGIS, _dispatch_stub_573@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_573, _dispatch_stub_573@8))
- GL_STUB(_dispatch_stub_574, _gloffset_SampleMaskSGIS, _dispatch_stub_574@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_574, _dispatch_stub_574@8))
- GL_STUB(_dispatch_stub_575, _gloffset_SamplePatternSGIS, _dispatch_stub_575@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_575, _dispatch_stub_575@4))
+ GL_STUB(_dispatch_stub_575, _gloffset_GetPixelTexGenParameterfvSGIS, _dispatch_stub_575@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_575, _dispatch_stub_575@8))
+ GL_STUB(_dispatch_stub_576, _gloffset_GetPixelTexGenParameterivSGIS, _dispatch_stub_576@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_576, _dispatch_stub_576@8))
+ GL_STUB(_dispatch_stub_577, _gloffset_PixelTexGenParameterfSGIS, _dispatch_stub_577@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_577, _dispatch_stub_577@8))
+ GL_STUB(_dispatch_stub_578, _gloffset_PixelTexGenParameterfvSGIS, _dispatch_stub_578@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_578, _dispatch_stub_578@8))
+ GL_STUB(_dispatch_stub_579, _gloffset_PixelTexGenParameteriSGIS, _dispatch_stub_579@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_579, _dispatch_stub_579@8))
+ GL_STUB(_dispatch_stub_580, _gloffset_PixelTexGenParameterivSGIS, _dispatch_stub_580@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_580, _dispatch_stub_580@8))
+ GL_STUB(_dispatch_stub_581, _gloffset_SampleMaskSGIS, _dispatch_stub_581@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_581, _dispatch_stub_581@8))
+ GL_STUB(_dispatch_stub_582, _gloffset_SamplePatternSGIS, _dispatch_stub_582@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_582, _dispatch_stub_582@4))
GL_STUB(ColorPointerEXT, _gloffset_ColorPointerEXT, ColorPointerEXT@20)
GL_STUB(EdgeFlagPointerEXT, _gloffset_EdgeFlagPointerEXT, EdgeFlagPointerEXT@12)
GL_STUB(IndexPointerEXT, _gloffset_IndexPointerEXT, IndexPointerEXT@16)
@@ -745,10 +752,10 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(PointParameterfvEXT, _gloffset_PointParameterfvEXT, PointParameterfvEXT@8)
GL_STUB(LockArraysEXT, _gloffset_LockArraysEXT, LockArraysEXT@8)
GL_STUB(UnlockArraysEXT, _gloffset_UnlockArraysEXT, UnlockArraysEXT@0)
- GL_STUB(_dispatch_stub_586, _gloffset_CullParameterdvEXT, _dispatch_stub_586@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_586, _dispatch_stub_586@8))
- GL_STUB(_dispatch_stub_587, _gloffset_CullParameterfvEXT, _dispatch_stub_587@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_587, _dispatch_stub_587@8))
+ GL_STUB(_dispatch_stub_593, _gloffset_CullParameterdvEXT, _dispatch_stub_593@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_593, _dispatch_stub_593@8))
+ GL_STUB(_dispatch_stub_594, _gloffset_CullParameterfvEXT, _dispatch_stub_594@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_594, _dispatch_stub_594@8))
GL_STUB(SecondaryColor3bEXT, _gloffset_SecondaryColor3bEXT, SecondaryColor3bEXT@12)
GL_STUB(SecondaryColor3bvEXT, _gloffset_SecondaryColor3bvEXT, SecondaryColor3bvEXT@4)
GL_STUB(SecondaryColor3dEXT, _gloffset_SecondaryColor3dEXT, SecondaryColor3dEXT@24)
@@ -773,8 +780,8 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(FogCoorddvEXT, _gloffset_FogCoorddvEXT, FogCoorddvEXT@4)
GL_STUB(FogCoordfEXT, _gloffset_FogCoordfEXT, FogCoordfEXT@4)
GL_STUB(FogCoordfvEXT, _gloffset_FogCoordfvEXT, FogCoordfvEXT@4)
- GL_STUB(_dispatch_stub_612, _gloffset_PixelTexGenSGIX, _dispatch_stub_612@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_612, _dispatch_stub_612@4))
+ GL_STUB(_dispatch_stub_619, _gloffset_PixelTexGenSGIX, _dispatch_stub_619@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_619, _dispatch_stub_619@4))
GL_STUB(BlendFuncSeparateEXT, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparateEXT@16)
GL_STUB(FlushVertexArrayRangeNV, _gloffset_FlushVertexArrayRangeNV, FlushVertexArrayRangeNV@0)
GL_STUB(VertexArrayRangeNV, _gloffset_VertexArrayRangeNV, VertexArrayRangeNV@8)
@@ -816,24 +823,24 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(WindowPos4ivMESA, _gloffset_WindowPos4ivMESA, WindowPos4ivMESA@4)
GL_STUB(WindowPos4sMESA, _gloffset_WindowPos4sMESA, WindowPos4sMESA@16)
GL_STUB(WindowPos4svMESA, _gloffset_WindowPos4svMESA, WindowPos4svMESA@4)
- GL_STUB(_dispatch_stub_654, _gloffset_MultiModeDrawArraysIBM, _dispatch_stub_654@20)
- HIDDEN(GL_PREFIX(_dispatch_stub_654, _dispatch_stub_654@20))
- GL_STUB(_dispatch_stub_655, _gloffset_MultiModeDrawElementsIBM, _dispatch_stub_655@24)
- HIDDEN(GL_PREFIX(_dispatch_stub_655, _dispatch_stub_655@24))
- GL_STUB(_dispatch_stub_656, _gloffset_DeleteFencesNV, _dispatch_stub_656@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_656, _dispatch_stub_656@8))
- GL_STUB(_dispatch_stub_657, _gloffset_FinishFenceNV, _dispatch_stub_657@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_657, _dispatch_stub_657@4))
- GL_STUB(_dispatch_stub_658, _gloffset_GenFencesNV, _dispatch_stub_658@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_658, _dispatch_stub_658@8))
- GL_STUB(_dispatch_stub_659, _gloffset_GetFenceivNV, _dispatch_stub_659@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_659, _dispatch_stub_659@12))
- GL_STUB(_dispatch_stub_660, _gloffset_IsFenceNV, _dispatch_stub_660@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_660, _dispatch_stub_660@4))
- GL_STUB(_dispatch_stub_661, _gloffset_SetFenceNV, _dispatch_stub_661@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_661, _dispatch_stub_661@8))
- GL_STUB(_dispatch_stub_662, _gloffset_TestFenceNV, _dispatch_stub_662@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_662, _dispatch_stub_662@4))
+ GL_STUB(_dispatch_stub_661, _gloffset_MultiModeDrawArraysIBM, _dispatch_stub_661@20)
+ HIDDEN(GL_PREFIX(_dispatch_stub_661, _dispatch_stub_661@20))
+ GL_STUB(_dispatch_stub_662, _gloffset_MultiModeDrawElementsIBM, _dispatch_stub_662@24)
+ HIDDEN(GL_PREFIX(_dispatch_stub_662, _dispatch_stub_662@24))
+ GL_STUB(_dispatch_stub_663, _gloffset_DeleteFencesNV, _dispatch_stub_663@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_663, _dispatch_stub_663@8))
+ GL_STUB(_dispatch_stub_664, _gloffset_FinishFenceNV, _dispatch_stub_664@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_664, _dispatch_stub_664@4))
+ GL_STUB(_dispatch_stub_665, _gloffset_GenFencesNV, _dispatch_stub_665@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_665, _dispatch_stub_665@8))
+ GL_STUB(_dispatch_stub_666, _gloffset_GetFenceivNV, _dispatch_stub_666@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_666, _dispatch_stub_666@12))
+ GL_STUB(_dispatch_stub_667, _gloffset_IsFenceNV, _dispatch_stub_667@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_667, _dispatch_stub_667@4))
+ GL_STUB(_dispatch_stub_668, _gloffset_SetFenceNV, _dispatch_stub_668@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_668, _dispatch_stub_668@8))
+ GL_STUB(_dispatch_stub_669, _gloffset_TestFenceNV, _dispatch_stub_669@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_669, _dispatch_stub_669@4))
GL_STUB(AreProgramsResidentNV, _gloffset_AreProgramsResidentNV, AreProgramsResidentNV@12)
GL_STUB(BindProgramNV, _gloffset_BindProgramNV, BindProgramNV@8)
GL_STUB(DeleteProgramsNV, _gloffset_DeleteProgramsNV, DeleteProgramsNV@8)
@@ -914,26 +921,26 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(SetFragmentShaderConstantATI, _gloffset_SetFragmentShaderConstantATI, SetFragmentShaderConstantATI@8)
GL_STUB(PointParameteriNV, _gloffset_PointParameteriNV, PointParameteriNV@8)
GL_STUB(PointParameterivNV, _gloffset_PointParameterivNV, PointParameterivNV@8)
- GL_STUB(_dispatch_stub_743, _gloffset_ActiveStencilFaceEXT, _dispatch_stub_743@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_743, _dispatch_stub_743@4))
- GL_STUB(_dispatch_stub_744, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_744@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_744, _dispatch_stub_744@4))
- GL_STUB(_dispatch_stub_745, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_745@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_745, _dispatch_stub_745@8))
- GL_STUB(_dispatch_stub_746, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_746@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_746, _dispatch_stub_746@8))
- GL_STUB(_dispatch_stub_747, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_747@4)
- HIDDEN(GL_PREFIX(_dispatch_stub_747, _dispatch_stub_747@4))
+ GL_STUB(_dispatch_stub_750, _gloffset_ActiveStencilFaceEXT, _dispatch_stub_750@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_750, _dispatch_stub_750@4))
+ GL_STUB(_dispatch_stub_751, _gloffset_BindVertexArrayAPPLE, _dispatch_stub_751@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_751, _dispatch_stub_751@4))
+ GL_STUB(_dispatch_stub_752, _gloffset_DeleteVertexArraysAPPLE, _dispatch_stub_752@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_752, _dispatch_stub_752@8))
+ GL_STUB(_dispatch_stub_753, _gloffset_GenVertexArraysAPPLE, _dispatch_stub_753@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_753, _dispatch_stub_753@8))
+ GL_STUB(_dispatch_stub_754, _gloffset_IsVertexArrayAPPLE, _dispatch_stub_754@4)
+ HIDDEN(GL_PREFIX(_dispatch_stub_754, _dispatch_stub_754@4))
GL_STUB(GetProgramNamedParameterdvNV, _gloffset_GetProgramNamedParameterdvNV, GetProgramNamedParameterdvNV@16)
GL_STUB(GetProgramNamedParameterfvNV, _gloffset_GetProgramNamedParameterfvNV, GetProgramNamedParameterfvNV@16)
GL_STUB(ProgramNamedParameter4dNV, _gloffset_ProgramNamedParameter4dNV, ProgramNamedParameter4dNV@44)
GL_STUB(ProgramNamedParameter4dvNV, _gloffset_ProgramNamedParameter4dvNV, ProgramNamedParameter4dvNV@16)
GL_STUB(ProgramNamedParameter4fNV, _gloffset_ProgramNamedParameter4fNV, ProgramNamedParameter4fNV@28)
GL_STUB(ProgramNamedParameter4fvNV, _gloffset_ProgramNamedParameter4fvNV, ProgramNamedParameter4fvNV@16)
- GL_STUB(_dispatch_stub_754, _gloffset_DepthBoundsEXT, _dispatch_stub_754@16)
- HIDDEN(GL_PREFIX(_dispatch_stub_754, _dispatch_stub_754@16))
- GL_STUB(_dispatch_stub_755, _gloffset_BlendEquationSeparateEXT, _dispatch_stub_755@8)
- HIDDEN(GL_PREFIX(_dispatch_stub_755, _dispatch_stub_755@8))
+ GL_STUB(_dispatch_stub_761, _gloffset_DepthBoundsEXT, _dispatch_stub_761@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_761, _dispatch_stub_761@16))
+ GL_STUB(_dispatch_stub_762, _gloffset_BlendEquationSeparateEXT, _dispatch_stub_762@8)
+ HIDDEN(GL_PREFIX(_dispatch_stub_762, _dispatch_stub_762@8))
GL_STUB(BindFramebufferEXT, _gloffset_BindFramebufferEXT, BindFramebufferEXT@8)
GL_STUB(BindRenderbufferEXT, _gloffset_BindRenderbufferEXT, BindRenderbufferEXT@8)
GL_STUB(CheckFramebufferStatusEXT, _gloffset_CheckFramebufferStatusEXT, CheckFramebufferStatusEXT@4)
@@ -951,28 +958,28 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(IsFramebufferEXT, _gloffset_IsFramebufferEXT, IsFramebufferEXT@4)
GL_STUB(IsRenderbufferEXT, _gloffset_IsRenderbufferEXT, IsRenderbufferEXT@4)
GL_STUB(RenderbufferStorageEXT, _gloffset_RenderbufferStorageEXT, RenderbufferStorageEXT@16)
- GL_STUB(_dispatch_stub_773, _gloffset_BlitFramebufferEXT, _dispatch_stub_773@40)
- HIDDEN(GL_PREFIX(_dispatch_stub_773, _dispatch_stub_773@40))
- GL_STUB(_dispatch_stub_774, _gloffset_BufferParameteriAPPLE, _dispatch_stub_774@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_774, _dispatch_stub_774@12))
- GL_STUB(_dispatch_stub_775, _gloffset_FlushMappedBufferRangeAPPLE, _dispatch_stub_775@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_775, _dispatch_stub_775@12))
+ GL_STUB(_dispatch_stub_780, _gloffset_BlitFramebufferEXT, _dispatch_stub_780@40)
+ HIDDEN(GL_PREFIX(_dispatch_stub_780, _dispatch_stub_780@40))
+ GL_STUB(_dispatch_stub_781, _gloffset_BufferParameteriAPPLE, _dispatch_stub_781@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_781, _dispatch_stub_781@12))
+ GL_STUB(_dispatch_stub_782, _gloffset_FlushMappedBufferRangeAPPLE, _dispatch_stub_782@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_782, _dispatch_stub_782@12))
GL_STUB(FramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20)
GL_STUB(ProvokingVertexEXT, _gloffset_ProvokingVertexEXT, ProvokingVertexEXT@4)
- GL_STUB(_dispatch_stub_778, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_778@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_778, _dispatch_stub_778@12))
- GL_STUB(_dispatch_stub_779, _gloffset_TextureRangeAPPLE, _dispatch_stub_779@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_779, _dispatch_stub_779@12))
- GL_STUB(_dispatch_stub_780, _gloffset_StencilFuncSeparateATI, _dispatch_stub_780@16)
- HIDDEN(GL_PREFIX(_dispatch_stub_780, _dispatch_stub_780@16))
- GL_STUB(_dispatch_stub_781, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_781@16)
- HIDDEN(GL_PREFIX(_dispatch_stub_781, _dispatch_stub_781@16))
- GL_STUB(_dispatch_stub_782, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_782@16)
- HIDDEN(GL_PREFIX(_dispatch_stub_782, _dispatch_stub_782@16))
- GL_STUB(_dispatch_stub_783, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_783@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_783, _dispatch_stub_783@12))
- GL_STUB(_dispatch_stub_784, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_784@12)
- HIDDEN(GL_PREFIX(_dispatch_stub_784, _dispatch_stub_784@12))
+ GL_STUB(_dispatch_stub_785, _gloffset_GetTexParameterPointervAPPLE, _dispatch_stub_785@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_785, _dispatch_stub_785@12))
+ GL_STUB(_dispatch_stub_786, _gloffset_TextureRangeAPPLE, _dispatch_stub_786@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_786, _dispatch_stub_786@12))
+ GL_STUB(_dispatch_stub_787, _gloffset_StencilFuncSeparateATI, _dispatch_stub_787@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_787, _dispatch_stub_787@16))
+ GL_STUB(_dispatch_stub_788, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_788@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_788, _dispatch_stub_788@16))
+ GL_STUB(_dispatch_stub_789, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_789@16)
+ HIDDEN(GL_PREFIX(_dispatch_stub_789, _dispatch_stub_789@16))
+ GL_STUB(_dispatch_stub_790, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_790@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_790, _dispatch_stub_790@12))
+ GL_STUB(_dispatch_stub_791, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_791@12)
+ HIDDEN(GL_PREFIX(_dispatch_stub_791, _dispatch_stub_791@12))
GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
GL_STUB_ALIAS(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)