From 500b2604947cfe99f38119d9e3860fcf5ba8d499 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 31 Aug 2009 12:55:56 +1000 Subject: nouveau: hack winsys to compile again, it's broken still however --- src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') 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 3167ccfdc1..cdf67b7ffa 100644 --- a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c +++ b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c @@ -24,9 +24,11 @@ dri_surface_from_handle(struct drm_api *api, struct pipe_screen *screen, 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 | @@ -269,10 +271,12 @@ nouveau_drm_name_from_pb(struct drm_api *api, struct pipe_screen *pscreen, struct drm_api drm_api_hooks = { .create_screen = nouveau_drm_create_screen, .create_context = nouveau_drm_create_context, +#if 0 .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, +#endif }; struct drm_api * -- cgit v1.2.3 From 02f32454487f2caba00931590254260d871ae795 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 31 Aug 2009 13:00:34 +1000 Subject: nouveau: introduce nouveau_miptree common to all nouveau pipe drivers The winsys once again has to know about textures it seems, so we need a common representation between all our pipe drivers to store some information the winsys will need. Only the nv50 driver has been fixed so far. --- src/gallium/drivers/nouveau/nouveau_screen.h | 11 +++++++++++ src/gallium/drivers/nv50/nv50_context.h | 4 +--- src/gallium/drivers/nv50/nv50_miptree.c | 25 +++++++++++++------------ src/gallium/drivers/nv50/nv50_state_validate.c | 4 ++-- src/gallium/drivers/nv50/nv50_surface.c | 2 +- src/gallium/drivers/nv50/nv50_tex.c | 16 ++++++++-------- src/gallium/drivers/nv50/nv50_transfer.c | 8 ++++---- 7 files changed, 40 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/nouveau/nouveau_screen.h b/src/gallium/drivers/nouveau/nouveau_screen.h index 9968b07896..ebfc67ad1c 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 4de6e8cfa2..1e9e8e49bf 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 dd1b0303bd..03b9243b82 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_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index 99d5b96e45..344c2cf6dd 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 edaf4b055a..b266324f58 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 14c68b96e1..033cb50c11 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 d2b5e4d75d..e9c3562194 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, -- cgit v1.2.3 From 1ea114958baba14ff3bcac1d92bb6acf93289e59 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 31 Aug 2009 13:14:23 +1000 Subject: nouveau: fix for dri state tracker changes --- .../winsys/drm/nouveau/drm/nouveau_drm_api.c | 129 +++++++++------------ 1 file changed, 53 insertions(+), 76 deletions(-) (limited to 'src') 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 cdf67b7ffa..091cbbcfed 100644 --- a/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c +++ b/src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c @@ -12,53 +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 * @@ -207,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; @@ -240,43 +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, -#if 0 - .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, -#endif + .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 * -- cgit v1.2.3 From 9f0495aa765ae53b877b1e7fdffba70f4ee1a056 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 31 Aug 2009 10:22:19 +0200 Subject: Gallium xlib: Add support for BGRA visuals. --- src/gallium/state_trackers/glx/xlib/xm_api.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index f4c5893427..651a9a9fea 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 -- cgit v1.2.3 From b995af25d073df7101ec6caba207ad3131281725 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Mon, 31 Aug 2009 09:33:41 +0100 Subject: llvmpipe: Actually commit lp_buffer.[ch]. Thanks Michel. --- src/gallium/drivers/llvmpipe/lp_buffer.c | 150 +++++++++++++++++++++++++++++++ src/gallium/drivers/llvmpipe/lp_buffer.h | 55 ++++++++++++ 2 files changed, 205 insertions(+) create mode 100644 src/gallium/drivers/llvmpipe/lp_buffer.c create mode 100644 src/gallium/drivers/llvmpipe/lp_buffer.h (limited to 'src') diff --git a/src/gallium/drivers/llvmpipe/lp_buffer.c b/src/gallium/drivers/llvmpipe/lp_buffer.c new file mode 100644 index 0000000000..66f1f8e138 --- /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 0000000000..d6b8184a0b --- /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 */ -- cgit v1.2.3 From 45fb66ab7bc1cbb150e055826dc61b542739cc35 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Mon, 31 Aug 2009 10:00:38 +0100 Subject: llvmpipe: In the abcense of a min/max intrinsic, use the comparison intrinsics. --- src/gallium/drivers/llvmpipe/lp_bld_arit.c | 15 +++++---------- src/gallium/drivers/llvmpipe/lp_bld_logic.c | 1 - src/gallium/drivers/llvmpipe/lp_bld_logic.h | 2 ++ 3 files changed, 7 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/llvmpipe/lp_bld_arit.c b/src/gallium/drivers/llvmpipe/lp_bld_arit.c index 710e6246d7..09a57ff33d 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 1e1ecf805b..d6dfd85342 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" diff --git a/src/gallium/drivers/llvmpipe/lp_bld_logic.h b/src/gallium/drivers/llvmpipe/lp_bld_logic.h index 0989f9f207..29b9e1c45b 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_logic.h +++ b/src/gallium/drivers/llvmpipe/lp_bld_logic.h @@ -39,6 +39,8 @@ #include +#include "pipe/p_defines.h" /* For PIPE_FUNC_xxx */ + union lp_type type; struct lp_build_context; -- cgit v1.2.3 From 241c3a1d8001fc5a30e2af4b4636b48e6f99690a Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Mon, 31 Aug 2009 10:22:36 +0100 Subject: llvmpipe: Fallback to element-wise comparisons when no comparison intrinsic is available. Although selection of vector elements is valid LLVM IR, no machine target supports it yet. This is a last-resort option, but it allows llvmpipe to be used on any target supported by LLVM without modifications. Obviously better performance is attainable by emitting SIMD intrinsics where otherwise LLVM doesn't. --- src/gallium/drivers/llvmpipe/lp_bld_logic.c | 47 +++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/llvmpipe/lp_bld_logic.c b/src/gallium/drivers/llvmpipe/lp_bld_logic.c index d6dfd85342..8631efd6c3 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_logic.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_logic.c @@ -51,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; @@ -67,7 +69,6 @@ lp_build_cmp(struct lp_build_context *bld, LLVMValueRef args[3]; unsigned cc; boolean swap; - LLVMValueRef res; swap = FALSE; switch(func) { @@ -218,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; @@ -245,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; } -- cgit v1.2.3 From c69a4dce75d5282fc88f76da5ac0d27e65012727 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 08:49:22 -0600 Subject: st/mesa: fix obj->Pointer offset in st_bufferobj_map_range() This fixes a bunch of gallium regressions since commit 8096aa521369c3bcf5226c060efa6dd06e48ddc8 --- src/mesa/state_tracker/st_cb_bufferobjects.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index 8c1fd5ce02..69dd76d083 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.c +++ b/src/mesa/state_tracker/st_cb_bufferobjects.c @@ -228,7 +228,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 +249,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; } -- cgit v1.2.3 From 92033a9516942d7272ce4bf36ecd422009bbaf60 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 08:50:15 -0600 Subject: mesa: new assertions, comments about buffer mapping Since ctx->Driver.MapBuffer() and ctx->Driver.MapBufferRange() may be called from other places in Mesa (such as VBO) it's important that the driver callbacks set all the buffer object fields properly (Pointer, Offset, Length, etc). Add assertions to make sure that the driver does that. --- src/mesa/main/bufferobj.c | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index f96185a4b5..715a6e650b 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -1165,6 +1165,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 +1199,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)"); } - bufObj->AccessFlags = accessFlags; - bufObj->Offset = 0; - bufObj->Length = bufObj->Size; + if (map) { + /* 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; + } if (access == GL_WRITE_ONLY_ARB || access == GL_READ_WRITE_ARB) bufObj->Written = GL_TRUE; @@ -1455,6 +1464,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 +1529,20 @@ _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) { + /* 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; } -- cgit v1.2.3 From 28c159d61461dab0963860725b77fc56566838fa Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 09:01:21 -0600 Subject: intel: clear buffer fields in intel_bufferobj_unmap() --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 3cf0ea0991..6f7077e17f 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -418,6 +418,8 @@ intel_bufferobj_unmap(GLcontext * ctx, } } obj->Pointer = NULL; + obj->Offset = 0; + obj->Length = 0; return GL_TRUE; } -- cgit v1.2.3 From 822c7964819ca1fcc270880d4ca8b3de8a4276d0 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 08:59:38 -0600 Subject: mesa: additional assertions for ctx->Driver.UnmapBuffer() The Pointer, Offset and Lenght fields should be cleared by the driver function since ctx->Driver.Unmap() may be called from VBO code, etc. --- src/mesa/main/bufferobj.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 715a6e650b..3fd1d17ff9 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -484,6 +484,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; } @@ -1095,7 +1098,7 @@ _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); @@ -1304,9 +1307,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; } -- cgit v1.2.3 From d1da8acd82190542cef7ffea41517974c0c9cc25 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 09:05:28 -0600 Subject: mesa: set Length/Offset fields in _mesa_buffer_map() --- src/mesa/main/bufferobj.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 3fd1d17ff9..165eec019a 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -428,6 +428,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; } -- cgit v1.2.3 From 2b6ab615a42bd162b4a870218a5951ca32416c20 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 09:12:04 -0600 Subject: mesa: set additional fields in _mesa_buffer_map_range() --- src/mesa/main/bufferobj.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 165eec019a..ebca798635 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -445,11 +445,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; } -- cgit v1.2.3 From ad25d450ec2a0f04f628c58f89fe9f2c7b4d3bf3 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sat, 29 Aug 2009 11:32:32 +0100 Subject: i915g: Rename screen field on screen to base --- src/gallium/drivers/i915simple/i915_screen.c | 28 ++++++++++++++-------------- src/gallium/drivers/i915simple/i915_screen.h | 3 ++- 2 files changed, 16 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c index a3de38d586..c9a9e90f0e 100644 --- a/src/gallium/drivers/i915simple/i915_screen.c +++ b/src/gallium/drivers/i915simple/i915_screen.c @@ -328,22 +328,22 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) i915screen->pci_id = pci_id; - i915screen->screen.winsys = winsys; + i915screen->base.winsys = winsys; - i915screen->screen.destroy = i915_destroy_screen; + i915screen->base.destroy = i915_destroy_screen; - 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; + i915screen->base.get_name = i915_get_name; + i915screen->base.get_vendor = i915_get_vendor; + i915screen->base.get_param = i915_get_param; + i915screen->base.get_paramf = i915_get_paramf; + i915screen->base.is_format_supported = i915_is_format_supported; + i915screen->base.get_tex_transfer = i915_get_tex_transfer; + i915screen->base.tex_transfer_destroy = i915_tex_transfer_destroy; + i915screen->base.transfer_map = i915_transfer_map; + i915screen->base.transfer_unmap = i915_transfer_unmap; - i915_init_screen_texture_functions(&i915screen->screen); - u_simple_screen_init(&i915screen->screen); + i915_init_screen_texture_functions(&i915screen->base); + u_simple_screen_init(&i915screen->base); - return &i915screen->screen; + return &i915screen->base; } diff --git a/src/gallium/drivers/i915simple/i915_screen.h b/src/gallium/drivers/i915simple/i915_screen.h index 5284c32595..7d5f0f05a5 100644 --- a/src/gallium/drivers/i915simple/i915_screen.h +++ b/src/gallium/drivers/i915simple/i915_screen.h @@ -30,6 +30,7 @@ #define I915_SCREEN_H +#include "pipe/p_state.h" #include "pipe/p_screen.h" @@ -43,7 +44,7 @@ extern "C" { */ struct i915_screen { - struct pipe_screen screen; + struct pipe_screen base; boolean is_i945; uint pci_id; -- cgit v1.2.3 From e1741dbe45ef1f43432457fab088275ecf953d17 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sat, 29 Aug 2009 11:46:46 +0100 Subject: i915g: Rename pipe field on context to base --- src/gallium/drivers/i915simple/i915_context.c | 24 ++++----- src/gallium/drivers/i915simple/i915_context.h | 3 +- src/gallium/drivers/i915simple/i915_flush.c | 2 +- src/gallium/drivers/i915simple/i915_prim_vbuf.c | 8 +-- src/gallium/drivers/i915simple/i915_state.c | 68 ++++++++++++------------- src/gallium/drivers/i915simple/i915_surface.c | 4 +- 6 files changed, 55 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c index bf69c8e9f5..132ed31f38 100644 --- a/src/gallium/drivers/i915simple/i915_context.c +++ b/src/gallium/drivers/i915simple/i915_context.c @@ -179,20 +179,20 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, return NULL; i915->winsys = i915_winsys; - i915->pipe.winsys = pipe_winsys; - i915->pipe.screen = screen; + i915->base.winsys = pipe_winsys; + 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->pipe.draw_arrays = i915_draw_arrays; - i915->pipe.draw_elements = i915_draw_elements; - i915->pipe.draw_range_elements = i915_draw_range_elements; + 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.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. @@ -211,8 +211,8 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, 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; @@ -222,6 +222,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, i915->batch = i915_winsys->batch_get(i915_winsys); i915->batch->winsys = i915_winsys; - 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 b6983ba86e..76aec4cd93 100644 --- a/src/gallium/drivers/i915simple/i915_context.h +++ b/src/gallium/drivers/i915simple/i915_context.h @@ -213,7 +213,8 @@ struct i915_batchbuffer; struct i915_context { - struct pipe_context pipe; + struct pipe_context base; + struct i915_winsys *winsys; struct draw_context *draw; diff --git a/src/gallium/drivers/i915simple/i915_flush.c b/src/gallium/drivers/i915simple/i915_flush.c index 472e0ab774..b223dadab6 100644 --- a/src/gallium/drivers/i915simple/i915_flush.c +++ b/src/gallium/drivers/i915simple/i915_flush.c @@ -74,5 +74,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_vbuf.c b/src/gallium/drivers/i915simple/i915_prim_vbuf.c index 9bdd91f288..3ab09b58d7 100644 --- a/src/gallium/drivers/i915simple/i915_prim_vbuf.c +++ b/src/gallium/drivers/i915simple/i915_prim_vbuf.c @@ -116,7 +116,7 @@ i915_vbuf_render_allocate_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 pipe_screen *screen = i915->base.screen; size_t size = (size_t)vertex_size * (size_t)nr_vertices; /* FIXME: handle failure */ @@ -155,7 +155,7 @@ 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 pipe_screen *screen = i915->base.screen; if (i915->vbo_flushed) debug_printf("%s bad vbo flush occured stalling on hw\n"); @@ -174,7 +174,7 @@ i915_vbuf_render_unmap_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 pipe_screen *screen = i915->base.screen; 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); @@ -515,7 +515,7 @@ static struct vbuf_render * 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 pipe_screen *screen = i915->base.screen; i915_render->i915 = i915; diff --git a/src/gallium/drivers/i915simple/i915_state.c b/src/gallium/drivers/i915simple/i915_state.c index 273e74002a..272c1b1338 100644 --- a/src/gallium/drivers/i915simple/i915_state.c +++ b/src/gallium/drivers/i915simple/i915_state.c @@ -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_surface.c b/src/gallium/drivers/i915simple/i915_surface.c index 09b2c499b8..ab8331f3e6 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; } -- cgit v1.2.3 From 4224bda684aaee92d27e09c5545a7094cda0ae76 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sat, 29 Aug 2009 22:02:49 +0100 Subject: i915g: Cleanup texture init functions a bit --- src/gallium/drivers/i915simple/i915_context.c | 1 - src/gallium/drivers/i915simple/i915_screen.c | 2 +- src/gallium/drivers/i915simple/i915_texture.c | 18 ++++++------------ src/gallium/drivers/i915simple/i915_texture.h | 11 ++--------- 4 files changed, 9 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c index 132ed31f38..b77a831ca0 100644 --- a/src/gallium/drivers/i915simple/i915_context.c +++ b/src/gallium/drivers/i915simple/i915_context.c @@ -209,7 +209,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, 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->base); draw_install_aapoint_stage(i915->draw, &i915->base); diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c index c9a9e90f0e..a7a95edaa0 100644 --- a/src/gallium/drivers/i915simple/i915_screen.c +++ b/src/gallium/drivers/i915simple/i915_screen.c @@ -342,7 +342,7 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) i915screen->base.transfer_map = i915_transfer_map; i915screen->base.transfer_unmap = i915_transfer_unmap; - i915_init_screen_texture_functions(&i915screen->base); + i915_init_screen_texture_functions(i915screen); u_simple_screen_init(&i915screen->base); return &i915screen->base; diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index 0dc6a54746..975602a166 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -718,12 +718,6 @@ i915_texture_blanket(struct pipe_screen * screen, 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) { @@ -732,13 +726,13 @@ i915_tex_surface_destroy(struct pipe_surface *surf) } void -i915_init_screen_texture_functions(struct pipe_screen *screen) +i915_init_screen_texture_functions(struct i915_screen *is) { - 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; + is->base.texture_create = i915_texture_create; + is->base.texture_destroy = i915_texture_destroy; + is->base.get_tex_surface = i915_get_tex_surface; + is->base.texture_blanket = i915_texture_blanket; + is->base.tex_surface_destroy = i915_tex_surface_destroy; } boolean i915_get_texture_buffer( struct pipe_texture *texture, diff --git a/src/gallium/drivers/i915simple/i915_texture.h b/src/gallium/drivers/i915simple/i915_texture.h index 7225016a9f..51a1dd984c 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 */ -- cgit v1.2.3 From 00b07280948fc7608fdede4be73c504499247f17 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 13:57:37 +0100 Subject: i915g: Cleanup i915_texture.c --- src/gallium/drivers/i915simple/i915_texture.c | 36 +++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index 975602a166..d363962889 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -133,7 +133,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); @@ -165,11 +165,11 @@ 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) { @@ -195,7 +195,7 @@ i915_scanout_layout(struct i915_texture *tex) } static void -i945_miptree_layout_2d( struct i915_texture *tex ) +i945_miptree_layout_2d(struct i915_texture *tex) { struct pipe_texture *pt = &tex->base; const int align_x = 2, align_y = 4; @@ -210,7 +210,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 +221,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 +247,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); @@ -468,7 +468,7 @@ i915_miptree_layout(struct i915_texture * tex) nblocksy = round_up(MAX2(2, nblocksy), 2); - tex->total_nblocksy += nblocksy; + tex->total_nblocksy += nblocksy; width = minify(width); height = minify(height); @@ -596,10 +596,10 @@ i915_texture_create(struct pipe_screen *screen, if (i915screen->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; @@ -735,9 +735,9 @@ i915_init_screen_texture_functions(struct i915_screen *is) is->base.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(struct pipe_texture *texture, + struct pipe_buffer **buf, + unsigned *stride) { struct i915_texture *tex = (struct i915_texture *)texture; -- cgit v1.2.3 From 5d929366aac54e815e1ecacd7349700989d76b03 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 15:42:10 +0100 Subject: i915g: Cleanup i915_state_emit.c --- src/gallium/drivers/i915simple/i915_state_emit.c | 154 +++++++++++------------ 1 file changed, 77 insertions(+), 77 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_state_emit.c b/src/gallium/drivers/i915simple/i915_state_emit.c index 1e1fb968b4..ab361e3d4b 100644 --- a/src/gallium/drivers/i915simple/i915_state_emit.c +++ b/src/gallium/drivers/i915simple/i915_state_emit.c @@ -107,7 +107,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 +123,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 +137,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 +173,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, 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 +200,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 +211,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->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, + I915_BUFFER_ACCESS_WRITE, + 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->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, + I915_BUFFER_ACCESS_WRITE, + 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 ); } } @@ -315,20 +315,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<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<current.sampler[i][0] ); + OUT_BATCH( i915->current.sampler[i][1] ); + OUT_BATCH( i915->current.sampler[i][2] ); + } + } } } #endif -- cgit v1.2.3 From 7864b0e717755a26688891195e85a62714d50baa Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 20:41:00 +0100 Subject: i915g: Cleanup i915_blit.[c|h] --- src/gallium/drivers/i915simple/i915_blit.c | 75 ++++++++++++++---------------- src/gallium/drivers/i915simple/i915_blit.h | 32 ++++++------- 2 files changed, 50 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_blit.c b/src/gallium/drivers/i915simple/i915_blit.c index 448a4708ce..63e9ed83d2 100644 --- a/src/gallium/drivers/i915simple/i915_blit.c +++ b/src/gallium/drivers/i915simple/i915_blit.c @@ -26,7 +26,6 @@ **************************************************************************/ -#include "i915_context.h" #include "i915_winsys.h" #include "i915_blit.h" #include "i915_reg.h" @@ -37,33 +36,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 pipe_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 +78,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, I915_BUFFER_ACCESS_WRITE, 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 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) { unsigned CMD, BR13; int dst_y2 = dst_y + h; @@ -105,32 +103,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 +136,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)); @@ -155,5 +150,3 @@ i915_copy_blit( struct i915_context *i915, OUT_RELOC(src_buffer, I915_BUFFER_ACCESS_READ, src_offset); FLUSH_BATCH(NULL); } - - diff --git a/src/gallium/drivers/i915simple/i915_blit.h b/src/gallium/drivers/i915simple/i915_blit.h index 0bb3453861..2dba57eef0 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 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); 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 pipe_buffer *dst_buffer, + unsigned dst_offset, + short x, short y, + short w, short h, unsigned color); #endif -- cgit v1.2.3 From 1b5f46a3b8d1d1ffa7cbb60b557deb8c2c448a3a Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 21:03:43 +0100 Subject: i915g: Cleanup i915_context.c --- src/gallium/drivers/i915simple/i915_context.c | 128 ++++++++++++++------------ 1 file changed, 71 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c index b77a831ca0..0f99b1c1b6 100644 --- a/src/gallium/drivers/i915simple/i915_context.c +++ b/src/gallium/drivers/i915simple/i915_context.c @@ -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,27 @@ 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->winsys->destroy) + i915->winsys->destroy(i915->winsys); + + FREE(i915); +} + +struct pipe_context * +i915_create_context(struct pipe_screen *screen, + struct pipe_winsys *pipe_winsys, + struct i915_winsys *i915_winsys) { struct i915_context *i915; @@ -186,7 +203,6 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, 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; @@ -201,8 +217,7 @@ 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)); } @@ -223,4 +238,3 @@ struct pipe_context *i915_create_context( struct pipe_screen *screen, return &i915->base; } - -- cgit v1.2.3 From 1bb3a2c648e0d6feea12bfff7f739159339f034a Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 21:10:36 +0100 Subject: i915g: Cleanup i915_screen.[c|h] --- src/gallium/drivers/i915simple/i915_screen.c | 65 ++++++++++++---------------- src/gallium/drivers/i915simple/i915_screen.h | 20 +++------ 2 files changed, 34 insertions(+), 51 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c index a7a95edaa0..dccd0e287b 100644 --- a/src/gallium/drivers/i915simple/i915_screen.c +++ b/src/gallium/drivers/i915simple/i915_screen.c @@ -40,19 +40,18 @@ 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 +85,6 @@ i915_get_name( struct pipe_screen *pscreen ) return buffer; } - static int i915_get_param(struct pipe_screen *screen, int param) { @@ -122,7 +120,6 @@ i915_get_param(struct pipe_screen *screen, int param) } } - static float i915_get_paramf(struct pipe_screen *screen, int param) { @@ -148,13 +145,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 +169,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; @@ -192,9 +187,8 @@ i915_is_format_supported( struct pipe_screen *screen, return FALSE; } - static void -i915_destroy_screen( struct pipe_screen *screen ) +i915_destroy_screen(struct pipe_screen *screen) { struct pipe_winsys *winsys = screen->winsys; @@ -204,7 +198,6 @@ i915_destroy_screen( struct pipe_screen *screen ) FREE(screen); } - static struct pipe_transfer* i915_get_tex_transfer(struct pipe_screen *screen, struct pipe_texture *texture, @@ -292,23 +285,21 @@ i915_transfer_unmap(struct pipe_screen *screen, pipe_buffer_unmap( screen, tex->buffer ); } - - /** * Create a new i915_screen object */ struct pipe_screen * i915_create_screen(struct pipe_winsys *winsys, 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 +308,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 +317,24 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) return NULL; } - i915screen->pci_id = pci_id; + is->pci_id = pci_id; - i915screen->base.winsys = winsys; + is->base.winsys = winsys; - i915screen->base.destroy = i915_destroy_screen; + is->base.destroy = i915_destroy_screen; - i915screen->base.get_name = i915_get_name; - i915screen->base.get_vendor = i915_get_vendor; - i915screen->base.get_param = i915_get_param; - i915screen->base.get_paramf = i915_get_paramf; - i915screen->base.is_format_supported = i915_is_format_supported; - i915screen->base.get_tex_transfer = i915_get_tex_transfer; - i915screen->base.tex_transfer_destroy = i915_tex_transfer_destroy; - i915screen->base.transfer_map = i915_transfer_map; - i915screen->base.transfer_unmap = i915_transfer_unmap; + 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; + is->base.get_tex_transfer = i915_get_tex_transfer; + is->base.tex_transfer_destroy = i915_tex_transfer_destroy; + is->base.transfer_map = i915_transfer_map; + is->base.transfer_unmap = i915_transfer_unmap; - i915_init_screen_texture_functions(i915screen); - u_simple_screen_init(&i915screen->base); + i915_init_screen_texture_functions(is); + u_simple_screen_init(&is->base); - return &i915screen->base; + return &is->base; } diff --git a/src/gallium/drivers/i915simple/i915_screen.h b/src/gallium/drivers/i915simple/i915_screen.h index 7d5f0f05a5..757baa76b8 100644 --- a/src/gallium/drivers/i915simple/i915_screen.h +++ b/src/gallium/drivers/i915simple/i915_screen.h @@ -25,20 +25,13 @@ * **************************************************************************/ - #ifndef I915_SCREEN_H #define I915_SCREEN_H - #include "pipe/p_state.h" #include "pipe/p_screen.h" -#ifdef __cplusplus -extern "C" { -#endif - - /** * Subclass of pipe_screen */ @@ -50,7 +43,6 @@ struct i915_screen uint pci_id; }; - /** * Subclass of pipe_transfer */ @@ -62,7 +54,11 @@ struct i915_transfer }; -/** cast wrappers */ +/* + * Cast wrappers + */ + + static INLINE struct i915_screen * i915_screen(struct pipe_screen *pscreen) { @@ -70,14 +66,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 */ -- cgit v1.2.3 From bd0c51874f6dc7610b87d55c182b696517358dbe Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Mon, 31 Aug 2009 00:36:24 +0100 Subject: i915g: Cleanup i915_prim_vbuf.c --- src/gallium/drivers/i915simple/i915_prim_vbuf.c | 203 +++++++++++------------- 1 file changed, 97 insertions(+), 106 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_prim_vbuf.c b/src/gallium/drivers/i915simple/i915_prim_vbuf.c index 3ab09b58d7..656333d897 100644 --- a/src/gallium/drivers/i915simple/i915_prim_vbuf.c +++ b/src/gallium/drivers/i915simple/i915_prim_vbuf.c @@ -59,7 +59,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; @@ -87,32 +87,30 @@ 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; @@ -149,9 +147,8 @@ 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; @@ -168,9 +165,9 @@ i915_vbuf_render_map_vertices( struct vbuf_render *render ) } 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; @@ -181,8 +178,8 @@ i915_vbuf_render_unmap_vertices( struct vbuf_render *render, } 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 +231,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 +246,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 +277,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 +298,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 +363,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 +375,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 +409,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 +430,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 +440,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,20 +493,18 @@ 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->base.screen; @@ -551,11 +543,10 @@ i915_vbuf_render_create( struct i915_context *i915 ) 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 +555,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; -- cgit v1.2.3 From f26065215317b1d320d11f636c65d4903788b431 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 17:45:47 +0100 Subject: i915g: Don't use winsys directly in the driver --- src/gallium/drivers/i915simple/i915_batch.h | 2 +- src/gallium/drivers/i915simple/i915_state.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_batch.h b/src/gallium/drivers/i915simple/i915_batch.h index c6e68ea38a..1e58c5b2a8 100644 --- a/src/gallium/drivers/i915simple/i915_batch.h +++ b/src/gallium/drivers/i915simple/i915_batch.h @@ -109,7 +109,7 @@ i915_batchbuffer_flush( struct i915_batchbuffer *batch, i915_batchbuffer_reloc( i915->batch, buf, flags, delta ) #define FLUSH_BATCH(fence) do { \ - i915->winsys->batch_flush( i915->winsys, fence ); \ + i915_batchbuffer_flush( i915->batch, fence ); \ i915->hardware_dirty = ~0; \ } while (0) diff --git a/src/gallium/drivers/i915simple/i915_state.c b/src/gallium/drivers/i915simple/i915_state.c index 272c1b1338..0087dfa410 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)); } -- cgit v1.2.3 From 5374aff56f1ebd161f11b5469f7427ea73c09a41 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 19:20:45 +0100 Subject: i915g: Reorg texture code a bit --- src/gallium/drivers/i915simple/i915_texture.c | 89 ++++++++++++++++----------- 1 file changed, 53 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index d363962889..1ed38563a0 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -44,10 +44,12 @@ #include "i915_screen.h" #include "i915_winsys.h" + /* * Helper function and arrays */ + /** * Initial offset for Cube map. */ @@ -487,7 +489,6 @@ i915_miptree_layout(struct i915_texture * tex) return TRUE; } - static boolean i945_miptree_layout(struct i915_texture * tex) { @@ -575,6 +576,11 @@ i945_miptree_layout(struct i915_texture * tex) } +/* + * Screen texture functions + */ + + static struct pipe_texture * i915_texture_create(struct pipe_screen *screen, const struct pipe_texture *templat) @@ -629,6 +635,39 @@ 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) +{ + 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; +} static void i915_texture_destroy(struct pipe_texture *pt) @@ -649,6 +688,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,40 +729,6 @@ 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) -{ - 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; -} - static void i915_tex_surface_destroy(struct pipe_surface *surf) { @@ -725,13 +736,19 @@ i915_tex_surface_destroy(struct pipe_surface *surf) FREE(surf); } + +/* + * 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.texture_blanket = i915_texture_blanket; is->base.tex_surface_destroy = i915_tex_surface_destroy; } -- cgit v1.2.3 From 761c8c7076f23e044fcbc9987c95d5178482e846 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 19:31:14 +0100 Subject: i915g: Move transfer functions into i915_texture.c --- src/gallium/drivers/i915simple/i915_screen.c | 91 -------------------------- src/gallium/drivers/i915simple/i915_texture.c | 93 +++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 91 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c index dccd0e287b..a03d740b1b 100644 --- a/src/gallium/drivers/i915simple/i915_screen.c +++ b/src/gallium/drivers/i915simple/i915_screen.c @@ -198,93 +198,6 @@ i915_destroy_screen(struct pipe_screen *screen) FREE(screen); } -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_tex_transfer_destroy(struct pipe_transfer *trans) -{ - pipe_texture_reference(&trans->texture, NULL); - FREE(trans); -} - -static void * -i915_transfer_map( struct pipe_screen *screen, - struct pipe_transfer *transfer ) -{ - struct i915_texture *tex = (struct i915_texture *)transfer->texture; - char *map; - unsigned flags = 0; - - if (transfer->usage != PIPE_TRANSFER_WRITE) - flags |= PIPE_BUFFER_USAGE_CPU_READ; - - 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; - - 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) -{ - struct i915_texture *tex = (struct i915_texture *)transfer->texture; - pipe_buffer_unmap( screen, tex->buffer ); -} - /** * Create a new i915_screen object */ @@ -328,10 +241,6 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) is->base.get_param = i915_get_param; is->base.get_paramf = i915_get_paramf; is->base.is_format_supported = i915_is_format_supported; - is->base.get_tex_transfer = i915_get_tex_transfer; - is->base.tex_transfer_destroy = i915_tex_transfer_destroy; - is->base.transfer_map = i915_transfer_map; - is->base.transfer_unmap = i915_transfer_unmap; i915_init_screen_texture_functions(is); u_simple_screen_init(&is->base); diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index 1ed38563a0..7f0a4dbd93 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -737,6 +737,95 @@ i915_tex_surface_destroy(struct pipe_surface *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; + char *map; + unsigned flags = 0; + + if (transfer->usage != PIPE_TRANSFER_WRITE) + flags |= PIPE_BUFFER_USAGE_CPU_READ; + + 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; + + if (flags & PIPE_BUFFER_USAGE_CPU_WRITE) { + /* XXX Do something to notify contexts of a texture change. */ + } + + 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; + pipe_buffer_unmap(screen, tex->buffer); +} + +static void +i915_tex_transfer_destroy(struct pipe_transfer *trans) +{ + pipe_texture_reference(&trans->texture, NULL); + FREE(trans); +} + + /* * Other texture functions */ @@ -750,6 +839,10 @@ i915_init_screen_texture_functions(struct i915_screen *is) 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; } boolean i915_get_texture_buffer(struct pipe_texture *texture, -- cgit v1.2.3 From 5f7b46ae5fc7854ec68f7003c2a69672c19b3464 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 20:25:17 +0100 Subject: i915g: Reorg texture layout code --- src/gallium/drivers/i915simple/i915_texture.c | 403 +++++++++++++------------- 1 file changed, 207 insertions(+), 196 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index 7f0a4dbd93..5cb62b164f 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -152,7 +152,7 @@ i915_miptree_set_image_offset(struct i915_texture *tex, /* - * Layout functions + * i915 layout functions, some used by i945 */ @@ -196,6 +196,148 @@ i915_scanout_layout(struct i915_texture *tex) return 1; } +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 +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) { @@ -262,6 +404,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) { @@ -363,215 +562,27 @@ 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; } -- cgit v1.2.3 From 1b1673fa63b1ac66cf188711ab8421a73dde1724 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 31 Aug 2009 12:18:44 -0400 Subject: r600: add missing r7xx pci id --- src/mesa/drivers/dri/radeon/radeon_chipset.h | 1 + src/mesa/drivers/dri/radeon/radeon_screen.c | 1 + 2 files changed, 2 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_chipset.h b/src/mesa/drivers/dri/radeon/radeon_chipset.h index 0da1c0f9ee..46a9cd5ff8 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_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c index e8b2dc89fe..3d06c95a18 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.c +++ b/src/mesa/drivers/dri/radeon/radeon_screen.c @@ -868,6 +868,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: -- cgit v1.2.3 From 366efd8c4b69e8ec1b6f4ec5ba5df54e6574f8f1 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 31 Aug 2009 18:41:53 +0200 Subject: st/xorg: Don't always fall back for solid fills. --- src/gallium/state_trackers/xorg/xorg_exa.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 18afa01dbd..7b607cb798 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -188,9 +188,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; -- cgit v1.2.3 From 40e3148a81f93f590c7400b00a6c2d536a2258b0 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 31 Aug 2009 18:41:54 +0200 Subject: st/xorg: Simplify EXA ModifyPixmapHeader hook for pPixmap != NULL. Just let the upper layers handle it. --- src/gallium/state_trackers/xorg/xorg_exa.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 7b607cb798..5d205dd823 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -427,7 +427,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) @@ -476,24 +476,11 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, } #ifdef DRM_MODE_FEATURE_DIRTYFB - if (!priv->tex) { - if (pPixData) - pPixmap->devPrivate.ptr = pPixData; - else + if (!priv->tex) pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height * pPixmap->devKind); - } else #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) { + + if (priv->tex && pPixmap->devPrivate.ptr) { struct pipe_transfer *transfer; if (priv->map_count != 0) -- cgit v1.2.3 From 3c3ad915d831a962b284da42659ad15bcadcffa1 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 31 Aug 2009 18:41:54 +0200 Subject: st/xorg: Re-organize the EXA ModifyPixmapHeader hook a bit. This should also handle the case where the pixmap is backed by a (different) texture before and afterwards. --- src/gallium/state_trackers/xorg/xorg_exa.c | 97 ++++++++++++++++++------------ 1 file changed, 57 insertions(+), 40 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 5d205dd823..8077c9388f 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -449,52 +449,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 { + 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) - pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height * pPixmap->devKind); + else { + xfree(pPixmap->devPrivate.ptr); + pPixmap->devPrivate.ptr = xalloc(pPixmap->drawable.height * + pPixmap->devKind); + } #endif - 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; -- cgit v1.2.3 From 9ccbadb22d74c649a634c515cd1123fe96781357 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Fri, 28 Aug 2009 16:43:21 -0400 Subject: st/xorg: setup constant buffers for vertex and fragment shaders --- src/gallium/state_trackers/xorg/xorg_composite.c | 74 ++++++++++++++++++------ 1 file changed, 57 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index af4ae05fb4..ad14eb75ed 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -172,27 +172,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); } static void @@ -295,6 +278,61 @@ bind_samplers(struct exa_context *exa, int op, cso_set_sampler_textures(exa->cso, 3, 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, int op, PicturePtr pSrcPicture, @@ -312,6 +350,8 @@ boolean xorg_composite_bind_state(struct exa_context *exa, bind_samplers(exa, op, pSrcPicture, pMaskPicture, pDstPicture, pSrc, pMask, pDst); + setup_constant_buffers(exa, pDstPicture); + return FALSE; } -- cgit v1.2.3 From f315c0128b5f6317f910f6c54119fea97256254c Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Fri, 28 Aug 2009 17:19:23 -0400 Subject: st/xorg: add code to render textured quads for composite acceleration --- src/gallium/state_trackers/xorg/xorg_composite.c | 74 ++++++++++++++++++++++-- src/gallium/state_trackers/xorg/xorg_exa.c | 8 +++ src/gallium/state_trackers/xorg/xorg_exa.h | 2 + 3 files changed, 78 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index ad14eb75ed..86402a0d13 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 +#include "cso_cache/cso_context.h" +#include "util/u_draw_quad.h" -#include +#include "pipe/p_inlines.h" struct xorg_composite_blend { int op:8; @@ -75,19 +76,80 @@ blend_for_op(int op) return xorg_blends[BLEND_OP_OVER]; } + +static struct pipe_buffer * +setup_vertex_data_tex(struct exa_context *ctx, + float x0, float y0, float x1, float y1, + float x2, float y2, float x3, float y3, + float s0, float t0, float s1, float t1, + float z) +{ + ctx->vertices[0][0][0] = x0; + ctx->vertices[0][0][1] = y0; + ctx->vertices[0][0][2] = z; + ctx->vertices[0][1][0] = s0; /*s*/ + ctx->vertices[0][1][1] = t0; /*t*/ + + ctx->vertices[1][0][0] = x1; + ctx->vertices[1][0][1] = y1; + ctx->vertices[1][0][2] = z; + ctx->vertices[1][1][0] = s1; /*s*/ + ctx->vertices[1][1][1] = t0; /*t*/ + + ctx->vertices[2][0][0] = x2; + ctx->vertices[2][0][1] = y2; + ctx->vertices[2][0][2] = z; + ctx->vertices[2][1][0] = s1; + ctx->vertices[2][1][1] = t1; + + ctx->vertices[3][0][0] = x3; + ctx->vertices[3][0][1] = y3; + ctx->vertices[3][0][2] = z; + ctx->vertices[3][1][0] = s0; + ctx->vertices[3][1][1] = t1; + + return pipe_user_buffer_create(ctx->ctx->screen, + ctx->vertices, + sizeof(ctx->vertices)); +} + static void -draw_texture(struct exa_context *exa) +draw_texture(struct exa_context *exa, + struct pipe_texture *tex, + float x1offset, float y1offset, + float x2offset, float y2offset, + float x1, float y1, + float x2, float y2, + float x3, float y3, + float x4, float y4) { -#if 0 + struct pipe_context *pipe = exa->ctx; + struct pipe_buffer *buf; + float s0, t0, s1, t1; + + assert(tex->width[0] != 0); + assert(tex->height[0] != 0); + + s0 = x1offset / tex->width[0]; + s1 = x2offset / tex->width[0]; + t0 = y1offset / tex->height[0]; + t1 = y2offset / tex->height[0]; + + /* draw quad */ + buf = setup_vertex_data_tex(exa, x1, y1, x2, y2, x3, y3, x4, y4, + s0, t0, s1, t1, 0.0f); + if (buf) { util_draw_vertex_buffer(pipe, buf, 0, PIPE_PRIM_TRIANGLE_FAN, 4, /* verts */ 2); /* attribs/vert */ - pipe_buffer_reference(&buf, NULL); + pipe_buffer_reference(&buf, + NULL); } -#endif + + cso_restore_vertex_shader(exa->cso); } boolean xorg_composite_accelerated(int op, diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 8077c9388f..305d75d520 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -563,6 +563,7 @@ xorg_exa_init(ScrnInfoPtr pScrn) modesettingPtr ms = modesettingPTR(pScrn); struct exa_context *exa; ExaDriverPtr pExa; + int i; exa = xcalloc(1, sizeof(struct exa_context)); if (!exa) @@ -614,6 +615,13 @@ xorg_exa_init(ScrnInfoPtr pScrn) /* Share context with DRI */ ms->ctx = exa->ctx; + /* common vertex data setup */ + for (i = 0; i < 4; ++i) { + exa->vertices[i][0][3] = 1.0f; /* w */ + exa->vertices[i][1][2] = 0.0f; /* r */ + exa->vertices[i][1][3] = 1.0f; /* q */ + } + exa->cso = cso_create_context(exa->ctx); exa->shaders = xorg_shaders_create(exa); diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index 0a93fa0bd7..90ad8400ff 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.h +++ b/src/gallium/state_trackers/xorg/xorg_exa.h @@ -18,6 +18,8 @@ struct exa_context struct pipe_constant_buffer vs_const_buffer; struct pipe_constant_buffer fs_const_buffer; + + float vertices[4][2][4]; }; -- cgit v1.2.3 From c705e7238292d6c534d18dddcc03ecc6a24a5d66 Mon Sep 17 00:00:00 2001 From: Marc Dietrich Date: Mon, 31 Aug 2009 08:56:33 -0700 Subject: mesa: fix 32bit cross compilation on a 64bit machine When cross compiling on a 64bit machine, gen_matypes.c is build for the host machine (64bit) but must generates code for the target machine (32bit). This causes wrong offsets all over the place and crashes googleearth on my machine. Solution is to add -m32 when cross compiling. Attached patch is compatible with linux-x86-32 and autoconf based builds. --- configure.ac | 1 + src/mesa/x86/Makefile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/configure.ac b/configure.ac index 9d318b3fc2..c5ef676e2e 100644 --- a/configure.ac +++ b/configure.ac @@ -126,6 +126,7 @@ AC_ARG_ENABLE([32-bit], if test "x$enable_32bit" = xyes; then if test "x$GCC" = xyes; then CFLAGS="$CFLAGS -m32" + ARCH_FLAGS="$ARCH_FLAGS -m32" fi if test "x$GXX" = xyes; then CXXFLAGS="$CXXFLAGS -m32" diff --git a/src/mesa/x86/Makefile b/src/mesa/x86/Makefile index aa49a9134a..69122c114b 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 -- cgit v1.2.3 From 956e6c3978abe918348377cf05e5c92971e50d3f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 11:14:16 -0600 Subject: mesa: fix saturation logic in emit_texenv() We need to clamp/saturate after each texenv stage, not just the last one. Fixes glean texEnv failure for softpipe (and probably other fragment program- based drivers). --- src/mesa/main/texenvprogram.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 3736138b9e..847db5cfb6 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1113,7 +1113,7 @@ 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); + GLboolean saturate; GLuint rgb_shift, alpha_shift; struct ureg out, shift; struct ureg dest; @@ -1141,6 +1141,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 || @@ -1189,6 +1194,7 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit) /* Deal with the final shift: */ if (alpha_shift || rgb_shift) { + saturate = GL_TRUE; /* always saturate at this point */ if (rgb_shift == alpha_shift) { shift = register_scalar_const(p, (GLfloat)(1< Date: Mon, 31 Aug 2009 11:17:59 -0600 Subject: mesa: added const qualifiers, move local var --- src/mesa/main/texenvprogram.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 847db5cfb6..3e5d65c875 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -952,7 +952,7 @@ static struct ureg emit_combine_source( struct texenv_fragment_program *p, } } -static GLboolean args_match( struct state_key *key, GLuint unit ) +static GLboolean args_match( const struct state_key *key, GLuint unit ) { GLuint i, nr = key->unit[unit].NumArgsRGB; @@ -1112,11 +1112,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; + 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); @@ -1168,7 +1167,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, @@ -1194,7 +1192,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<state; + const struct state_key *key = p->state; GLuint i; for (i = 0; i < key->unit[unit].NumArgsRGB; i++) { @@ -1314,7 +1315,7 @@ load_texunit_sources( struct texenv_fragment_program *p, int unit ) static GLboolean load_texunit_bumpmap( struct texenv_fragment_program *p, int 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); -- cgit v1.2.3 From f9a4a0a9710c23a2041673eec290ff2f9260cbd0 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 16:48:33 +0300 Subject: radeon: Add common debugging functions. These function are aiming to make it very simple to add and keep large amount of debugging code without having runtime impact in relase builds. Basic idea is to expose simple printf style debugging functions that are inlined. Level parameter will be evalueted in compile time so compiler can optimise some of debugging functions out if compile time request for debug level is too tight. --- src/mesa/drivers/dri/r200/radeon_debug.c | 1 + src/mesa/drivers/dri/r200/radeon_debug.h | 1 + src/mesa/drivers/dri/r300/radeon_debug.c | 1 + src/mesa/drivers/dri/r300/radeon_debug.h | 1 + src/mesa/drivers/dri/r600/radeon_debug.c | 1 + src/mesa/drivers/dri/r600/radeon_debug.h | 1 + src/mesa/drivers/dri/radeon/radeon_debug.c | 62 ++++++++++++ src/mesa/drivers/dri/radeon/radeon_debug.h | 145 +++++++++++++++++++++++++++++ 8 files changed, 213 insertions(+) create mode 120000 src/mesa/drivers/dri/r200/radeon_debug.c create mode 120000 src/mesa/drivers/dri/r200/radeon_debug.h create mode 120000 src/mesa/drivers/dri/r300/radeon_debug.c create mode 120000 src/mesa/drivers/dri/r300/radeon_debug.h create mode 120000 src/mesa/drivers/dri/r600/radeon_debug.c create mode 120000 src/mesa/drivers/dri/r600/radeon_debug.h create mode 100644 src/mesa/drivers/dri/radeon/radeon_debug.c create mode 100644 src/mesa/drivers/dri/radeon/radeon_debug.h (limited to 'src') 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 0000000000..c98c2e074c --- /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 0000000000..bd8aa28e89 --- /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/radeon_debug.c b/src/mesa/drivers/dri/r300/radeon_debug.c new file mode 120000 index 0000000000..c98c2e074c --- /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 0000000000..bd8aa28e89 --- /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/radeon_debug.c b/src/mesa/drivers/dri/r600/radeon_debug.c new file mode 120000 index 0000000000..c98c2e074c --- /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 0000000000..bd8aa28e89 --- /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/radeon_debug.c b/src/mesa/drivers/dri/radeon/radeon_debug.c new file mode 100644 index 0000000000..b5e7b668ce --- /dev/null +++ b/src/mesa/drivers/dri/radeon/radeon_debug.c @@ -0,0 +1,62 @@ +/* + * 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 + */ + +#include "utils.h" + +#include "radeon_debug.h" + +static const struct dri_debug_control debug_control[] = { + {"fall", RADEON_FALLBACKS}, + {"tex", RADEON_TEXTURE}, + {"ioctl", RADEON_IOCTL}, + {"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; +} 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 0000000000..63827103d5 --- /dev/null +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -0,0 +1,145 @@ +/* + * 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 + */ + +#ifndef RADEON_DEBUG_H_INCLUDED +#define RADEON_DEBUG_H_INCLUDED + +#include +#include + +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. + */ +#ifndef RADEON_DEBUG_LEVEL +#define RADEON_DEBUG_LEVEL RADEON_NORMAL +#endif + +typedef enum radeon_debug_types { + RADEON_TEXTURE = 0x0001, + RADEON_STATE = 0x0002, + RADEON_IOCTL = 0x0004, + RADEON_RENDER = 0x0008, + RADEON_SWRENDER = 0x0010, + RADEON_FALLBACKS = 0x0020, + RADEON_VFMT = 0x0040, + RADEON_SHADER = 0x0080, + RADEON_CS = 0x0100, + RADEON_DRI = 0x0200, + RADEON_DMA = 0x0400, + RADEON_SANITY = 0x0800, + RADEON_SYNC = 0x1000, + RADEON_PIXEL = 0x2000, + RADEON_MEMORY = 0x4000, + RADEON_GENERAL = 0x8000 /* Used for errors and warnings */ +} radeon_debug_type_t; + +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); +} + +/** + * 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 ); + vfprintf(stderr, message, values); + va_end( values ); + } +} + +/** + * 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 ); +} + +/** + * 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); + +/* 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 -- cgit v1.2.3 From 4e0d99a63588c67a955f797733da32d04e6f4ee6 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 19:44:16 +0300 Subject: r100: Use shared debug code. Converted r100 to use shared debug code with sed and fast compile check. New code has compability layer so old debugging code doesn't have to be changed all immidiatly. --- src/mesa/drivers/dri/radeon/Makefile | 11 ++-- src/mesa/drivers/dri/radeon/radeon_bo_legacy.c | 4 +- src/mesa/drivers/dri/radeon/radeon_common.c | 59 ++++++++++------------ .../drivers/dri/radeon/radeon_common_context.c | 14 ++--- .../drivers/dri/radeon/radeon_common_context.h | 45 +---------------- src/mesa/drivers/dri/radeon/radeon_context.c | 19 ------- src/mesa/drivers/dri/radeon/radeon_debug.c | 1 + src/mesa/drivers/dri/radeon/radeon_debug.h | 33 ++++++------ src/mesa/drivers/dri/radeon/radeon_dma.c | 26 +++++----- src/mesa/drivers/dri/radeon/radeon_fbo.c | 2 +- src/mesa/drivers/dri/radeon/radeon_ioctl.c | 16 +++--- src/mesa/drivers/dri/radeon/radeon_lighting.c | 6 +-- src/mesa/drivers/dri/radeon/radeon_lock.c | 2 +- src/mesa/drivers/dri/radeon/radeon_maos_arrays.c | 10 ++-- src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h | 3 +- src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c | 2 +- src/mesa/drivers/dri/radeon/radeon_sanity.c | 4 +- src/mesa/drivers/dri/radeon/radeon_screen.c | 33 ++---------- src/mesa/drivers/dri/radeon/radeon_state.c | 8 +-- src/mesa/drivers/dri/radeon/radeon_swtcl.c | 14 ++--- src/mesa/drivers/dri/radeon/radeon_tcl.c | 6 +-- src/mesa/drivers/dri/radeon/radeon_tex.c | 11 ++-- src/mesa/drivers/dri/radeon/radeon_texstate.c | 8 +-- src/mesa/drivers/dri/radeon/radeon_texture.c | 10 ++-- 24 files changed, 125 insertions(+), 222 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/Makefile b/src/mesa/drivers/dri/radeon/Makefile index 8fe9d98a0b..1f286776b5 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 a10c6b73ab..3e7547d2f9 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_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index ee0cbf65ca..aaa5165bc8 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -91,7 +91,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 @@ -521,7 +521,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 +615,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 +875,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 +981,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 +1006,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 +1018,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 +1046,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 +1063,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 +1092,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 +1132,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 +1142,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 +1162,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 +1254,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 +1323,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,14 +1382,13 @@ 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); } diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c index b76efa8eaa..71ee06d9a7 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 3463b4d264..d17060d5cc 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 *); @@ -621,15 +589,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 32485a7270..8f4485aee7 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_debug.c b/src/mesa/drivers/dri/radeon/radeon_debug.c index b5e7b668ce..cb1fd63cf7 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.c +++ b/src/mesa/drivers/dri/radeon/radeon_debug.c @@ -35,6 +35,7 @@ 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}, diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index 63827103d5..ace8a99e26 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -49,22 +49,23 @@ typedef enum radeon_debug_levels { #endif typedef enum radeon_debug_types { - RADEON_TEXTURE = 0x0001, - RADEON_STATE = 0x0002, - RADEON_IOCTL = 0x0004, - RADEON_RENDER = 0x0008, - RADEON_SWRENDER = 0x0010, - RADEON_FALLBACKS = 0x0020, - RADEON_VFMT = 0x0040, - RADEON_SHADER = 0x0080, - RADEON_CS = 0x0100, - RADEON_DRI = 0x0200, - RADEON_DMA = 0x0400, - RADEON_SANITY = 0x0800, - RADEON_SYNC = 0x1000, - RADEON_PIXEL = 0x2000, - RADEON_MEMORY = 0x4000, - RADEON_GENERAL = 0x8000 /* Used for errors and warnings */ + 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; extern radeon_debug_type_t radeon_enabled_debug_types; diff --git a/src/mesa/drivers/dri/radeon/radeon_dma.c b/src/mesa/drivers/dri/radeon/radeon_dma.c index 386262b126..2eefa3f2b1 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 6f0cc08770..d83b166742 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 9ced62418b..a0106d00fa 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 ac3b94e4a6..ba444f2b10 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 6294b7e42b..02de8e5fd1 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 7c6ea0530e..08e1c5d00d 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 034cda8a65..515783135d 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 eba9f5857f..d9f17cfc58 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); diff --git a/src/mesa/drivers/dri/radeon/radeon_sanity.c b/src/mesa/drivers/dri/radeon/radeon_sanity.c index bbed838b59..1ab570f507 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 3d06c95a18..daee3b85d9 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[]; @@ -966,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); @@ -1301,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, diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index e03551d666..c8cc7f9bcf 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]); } diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.c b/src/mesa/drivers/dri/radeon/radeon_swtcl.c index 32df569257..e61f59eaea 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 2404f28450..b334ea05e5 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 2549d5cb5c..99865fff27 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 c29105d7b8..9d252aa74c 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 fa16f44c18..181b23c396 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -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,7 +964,7 @@ 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); if (!t->mt) { @@ -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); } -- cgit v1.2.3 From b6ebcf8156c4735c2e96e5aad26c3a8dc29f50a6 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 22:07:13 +0300 Subject: radeon: Add gcc attribute to enable pritnf format warnings. --- src/mesa/drivers/dri/radeon/radeon_debug.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index ace8a99e26..445217474c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -81,6 +81,20 @@ static inline int radeon_is_debug_enabled(const radeon_debug_type_t type, 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 + +/** + * 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 @@ -101,6 +115,7 @@ static inline void radeon_print(const radeon_debug_type_t type, } } +static inline void radeon_error(const char* message, ...) __attribute__((format(printf,1,2))); /** * printf style function for writing error messages. */ @@ -112,6 +127,7 @@ static inline void radeon_error(const char* message, ...) va_end( values ); } +static inline void radeon_warning(const char* message, ...) __attribute__((format(printf,1,2))); /** * printf style function for writing warnings. */ -- cgit v1.2.3 From fe62e4c3ff13888a85274c23b88354777760401e Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 22:07:49 +0300 Subject: radeon: Make OQ to use new style debugging. --- src/mesa/drivers/dri/radeon/radeon_queryobj.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_queryobj.c b/src/mesa/drivers/dri/radeon/radeon_queryobj.c index 7eef4faaf6..ed5ebd18e4 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); @@ -147,7 +148,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 +161,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 +172,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); -- cgit v1.2.3 From aabb36fdd58ff891e3a0946e2326d458f5a4d832 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 22:08:38 +0300 Subject: r600: Convert to shared debug code and add a few new debug messages. There is only a few functions that have debugging enabled now. --- src/mesa/drivers/dri/r600/Makefile | 9 ++-- src/mesa/drivers/dri/r600/r600_context.c | 10 +++- src/mesa/drivers/dri/r600/r600_emit.c | 28 ++++++----- src/mesa/drivers/dri/r600/r600_tex.c | 20 ++++---- src/mesa/drivers/dri/r600/r600_texstate.c | 8 ++-- src/mesa/drivers/dri/r600/r700_assembler.c | 72 ++++++++++++++--------------- src/mesa/drivers/dri/r600/r700_chip.c | 34 ++++++++++++++ src/mesa/drivers/dri/r600/r700_clear.c | 5 +- src/mesa/drivers/dri/r600/r700_debug.c | 35 +++----------- src/mesa/drivers/dri/r600/r700_debug.h | 60 ++---------------------- src/mesa/drivers/dri/r600/r700_oglprog.c | 6 +++ src/mesa/drivers/dri/r600/r700_render.c | 10 ++-- src/mesa/drivers/dri/r600/r700_shaderinst.c | 14 +++--- src/mesa/drivers/dri/r600/r700_vertprog.c | 3 +- 14 files changed, 141 insertions(+), 173 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/Makefile b/src/mesa/drivers/dri/r600/Makefile index 3c3100ab91..d925a2dfe3 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_context.c b/src/mesa/drivers/dri/r600/r600_context.c index 6a066f3510..251c124cbf 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" @@ -225,8 +226,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 +258,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 +351,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 +381,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 f8c56e7774..5c250c2418 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 a06a1fa921..d105b90cd1 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 9f1bf45246..237eaa8249 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -567,7 +567,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 +593,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; } @@ -675,9 +675,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) diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c index 834c23593b..2d8480daaf 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 16f1a3df36..4fc624ed0b 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; @@ -264,6 +271,7 @@ static void r700SendDepthTargetState(GLcontext *ctx, struct radeon_state_atom *a 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) { @@ -303,6 +311,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) { @@ -352,6 +361,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 +395,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 +427,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 +469,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 +502,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 +540,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 +562,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 +636,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 +682,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 +697,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 +739,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 +786,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 +817,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 +872,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 +904,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 +937,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 +994,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 +1025,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 +1046,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 +1062,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 +1074,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 +1089,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 +1101,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 +1114,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 +1134,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 6d4ea90ccc..c6546ab00c 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 dabd0d2c25..cd1ba9eca3 100644 --- a/src/mesa/drivers/dri/r600/r700_debug.c +++ b/src/mesa/drivers/dri/r600/r700_debug.c @@ -25,31 +25,8 @@ * CooperYuan , */ -#include -#include -#include -#include - -#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 e810e6da08..c0921bf610 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 c49b90c1cc..3c8c1fd7a3 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 0b3ceb01ba..4753c757a1 100644 --- a/src/mesa/drivers/dri/r600/r700_render.c +++ b/src/mesa/drivers/dri/r600/r700_render.c @@ -327,8 +327,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 +342,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 @@ -388,8 +387,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 c1bffee91f..f120d9f941 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_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.c index 86a67ab766..d107f99e7b 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 } -- cgit v1.2.3 From 239105c6c87da0b0c5c15ae54b19fe39492b0f29 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 23:06:05 +0300 Subject: r200: Convert r200 to use new style debug code. Only very few places where realy converted so there isa lot of to do. --- src/mesa/drivers/dri/r200/Makefile | 11 ++++++----- src/mesa/drivers/dri/r200/r200_cmdbuf.c | 29 +++++++++++------------------ src/mesa/drivers/dri/r200/r200_context.c | 27 --------------------------- src/mesa/drivers/dri/r200/r200_ioctl.c | 10 +++++----- src/mesa/drivers/dri/r200/r200_pixel.c | 28 ++++++++++++++-------------- src/mesa/drivers/dri/r200/r200_sanity.c | 4 ++-- src/mesa/drivers/dri/r200/r200_state.c | 12 ++++++------ src/mesa/drivers/dri/r200/r200_swtcl.c | 12 ++++++------ src/mesa/drivers/dri/r200/r200_tcl.c | 14 +++++++------- src/mesa/drivers/dri/r200/r200_tex.c | 8 ++++---- src/mesa/drivers/dri/r200/r200_texstate.c | 10 +++++----- src/mesa/drivers/dri/r200/r200_vertprog.c | 14 +++++++------- 12 files changed, 73 insertions(+), 106 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r200/Makefile b/src/mesa/drivers/dri/r200/Makefile index 25ecbef609..42635bf9d9 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 1fe68c2b4c..7d0df5519d 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; @@ -240,8 +234,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 +253,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 0898617a3d..3ddb5bf7d6 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_ioctl.c b/src/mesa/drivers/dri/r200/r200_ioctl.c index 4dbda39eb9..b238adb972 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_pixel.c b/src/mesa/drivers/dri/r200/r200_pixel.c index 7201ddad2d..95773871e0 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 36530c224e..1241a926ba 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 ab1ba1f283..fea7681c8a 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); diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.c b/src/mesa/drivers/dri/r200/r200_swtcl.c index 0e7d24e7e9..240fb45078 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 0f35d4d5b1..348294cefc 100644 --- a/src/mesa/drivers/dri/r200/r200_tcl.c +++ b/src/mesa/drivers/dri/r200/r200_tcl.c @@ -416,8 +416,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 +454,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 +650,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 +692,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 +701,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 9f79157915..36d9e37d87 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 4e53672aee..90da44bc01 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 ); } @@ -1276,7 +1276,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 +1302,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 +1330,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 +1380,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 620f29b5c6..11405d7cae 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; -- cgit v1.2.3 From 012e990160edcd0f233b43a39f6efdd34a6ca194 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 23:39:15 +0300 Subject: r300: Convert to shared debug code. --- src/mesa/drivers/dri/r300/Makefile | 13 ++++----- src/mesa/drivers/dri/r300/r300_cmdbuf.c | 4 +-- src/mesa/drivers/dri/r300/r300_draw.c | 34 +++++++++++++++++------- src/mesa/drivers/dri/r300/r300_fragprog_common.c | 2 +- src/mesa/drivers/dri/r300/r300_ioctl.c | 6 ++--- src/mesa/drivers/dri/r300/r300_render.c | 4 +-- src/mesa/drivers/dri/r300/r300_state.c | 10 +++---- src/mesa/drivers/dri/r300/r300_swtcl.c | 34 ++++++++++++------------ src/mesa/drivers/dri/r300/r300_tex.c | 8 +++--- src/mesa/drivers/dri/r300/r300_vertprog.c | 2 +- 10 files changed, 66 insertions(+), 51 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r300/Makefile b/src/mesa/drivers/dri/r300/Makefile index 188efcb7a0..5d8d6f6658 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/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c index 451f1fd0fa..0fe32a5443 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_draw.c b/src/mesa/drivers/dri/r300/r300_draw.c index 2e475b1adf..e9968f9ffe 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 e1dc231027..469c278b51 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c +++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c @@ -202,7 +202,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 3303078e39..5cb04e2bb6 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_render.c b/src/mesa/drivers/dri/r300/r300_render.c index 446cf40131..b5ddfdc9f8 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 4fe9175b61..9301543d38 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); diff --git a/src/mesa/drivers/dri/r300/r300_swtcl.c b/src/mesa/drivers/dri/r300/r300_swtcl.c index b3793e28d5..ee2c71e1a7 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 0af5bb4f46..433e5a87d4 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 9fe6c18f56..dd0f27f9cb 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); -- cgit v1.2.3 From 6c963fbdd1c9a8a2c2efe87598bfbf0485c036fb Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 23:46:58 +0300 Subject: radeon: Change default debug level to verbose. Verbose is a lot better for developement but we should considre changing it to normal in stable branch. --- src/mesa/drivers/dri/radeon/radeon_debug.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index 445217474c..681e34c210 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -45,7 +45,7 @@ typedef enum radeon_debug_levels { * Compile time option to change level of debugging compiled to dri driver. */ #ifndef RADEON_DEBUG_LEVEL -#define RADEON_DEBUG_LEVEL RADEON_NORMAL +#define RADEON_DEBUG_LEVEL RADEON_VERBOSE #endif typedef enum radeon_debug_types { -- cgit v1.2.3 From 7870edc778338556a65a4d4167d20ad01d6a1995 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Sun, 30 Aug 2009 23:58:45 +0300 Subject: radeon: Add comment warning about not choosing critical debug level. --- src/mesa/drivers/dri/radeon/radeon_debug.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index 681e34c210..2b35044fb6 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -43,6 +43,9 @@ typedef enum radeon_debug_levels { /** * 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 -- cgit v1.2.3 From fde929c4fdee2e998542f071ff7165d87f572593 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Mon, 31 Aug 2009 20:25:33 +0300 Subject: radeon: Add support for indenting debug output. Indetion can be used to make it easier to read debug code when sections of debug output are indented. --- .../drivers/dri/radeon/radeon_common_context.h | 2 ++ src/mesa/drivers/dri/radeon/radeon_cs_legacy.c | 1 + src/mesa/drivers/dri/radeon/radeon_cs_legacy.h | 2 +- src/mesa/drivers/dri/radeon/radeon_debug.c | 35 ++++++++++++++++++++++ src/mesa/drivers/dri/radeon/radeon_debug.h | 30 +++++++++++++++++-- 5 files changed, 67 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.h b/src/mesa/drivers/dri/radeon/radeon_common_context.h index d17060d5cc..0309345393 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common_context.h +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.h @@ -467,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; diff --git a/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c b/src/mesa/drivers/dri/radeon/radeon_cs_legacy.c index 587e2acf91..f1addb299e 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 #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 e177b4bafe..cafbc9e576 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 index cb1fd63cf7..691680e956 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.c +++ b/src/mesa/drivers/dri/radeon/radeon_debug.c @@ -30,6 +30,7 @@ #include "utils.h" #include "radeon_debug.h" +#include "radeon_common_context.h" static const struct dri_debug_control debug_control[] = { {"fall", RADEON_FALLBACKS}, @@ -61,3 +62,37 @@ void radeon_init_debug(void) 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); + radeonContextPtr radeon = RADEON_CONTEXT(ctx); + // FIXME: Make this multi thread safe + 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 index 2b35044fb6..3e1481dfa1 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -71,6 +71,13 @@ typedef enum radeon_debug_types { 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; /** @@ -91,6 +98,11 @@ static inline int radeon_is_debug_enabled(const radeon_debug_type_t type, #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! */ @@ -113,7 +125,7 @@ static inline void radeon_print(const radeon_debug_type_t type, va_list values; va_start( values, message ); - vfprintf(stderr, message, values); + _radeon_print(type, level, message, values); va_end( values ); } } @@ -142,8 +154,22 @@ static inline void radeon_warning(const char* message, ...) 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 -- cgit v1.2.3 From d028cf9313aa0d2c43566acec4bbf4f6167f060e Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Mon, 31 Aug 2009 20:44:11 +0300 Subject: r600: Add more trace debug output to rendering pipeline. --- src/mesa/drivers/dri/r600/r700_render.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c index 4753c757a1..e1bbbfef35 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) @@ -257,6 +261,10 @@ static void r700RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim 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; @@ -364,6 +372,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]); @@ -371,6 +380,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); -- cgit v1.2.3 From c4a3e036ed1c755a291018251c4f55c45ac17079 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Tue, 1 Sep 2009 00:39:20 +0300 Subject: radeon: Fix null pointer reference in debug system if no context is bind. --- src/mesa/drivers/dri/radeon/radeon_debug.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.c b/src/mesa/drivers/dri/radeon/radeon_debug.c index 691680e956..a1ed39683f 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.c +++ b/src/mesa/drivers/dri/radeon/radeon_debug.c @@ -91,8 +91,11 @@ extern void _radeon_print(const radeon_debug_type_t type, va_list values) { GET_CURRENT_CONTEXT(ctx); - radeonContextPtr radeon = RADEON_CONTEXT(ctx); - // FIXME: Make this multi thread safe - fprintf(stderr, "%s", radeon->debug.indent); + 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); } -- cgit v1.2.3 From 7b32da0b11a769be057cdd3e619d582b433bbb0e Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Tue, 1 Sep 2009 00:24:53 +0100 Subject: st/xorg: Fix crash in MPH --- src/gallium/state_trackers/xorg/xorg_exa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 305d75d520..3697d26363 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -485,7 +485,7 @@ ExaModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, exa->scrn->tex_surface_destroy(dst_surf); exa->scrn->tex_surface_destroy(priv->src_surf); priv->src_surf = NULL; - } else { + } else if (pPixmap->devPrivate.ptr) { struct pipe_transfer *transfer; if (priv->map_count != 0) -- cgit v1.2.3 From 105e4b093e28d6cd9e8ec2db9dbc23980d265796 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 16:26:01 +0100 Subject: i915g: Add new buffer code not yet hocked up --- src/gallium/drivers/i915simple/Makefile | 1 + src/gallium/drivers/i915simple/SConscript | 1 + src/gallium/drivers/i915simple/i915_buffer.c | 136 +++++++++++++++++++++++++++ src/gallium/drivers/i915simple/i915_buffer.h | 31 ++++++ 4 files changed, 169 insertions(+) create mode 100644 src/gallium/drivers/i915simple/i915_buffer.c create mode 100644 src/gallium/drivers/i915simple/i915_buffer.h (limited to 'src') diff --git a/src/gallium/drivers/i915simple/Makefile b/src/gallium/drivers/i915simple/Makefile index 8870b39866..fb533c1796 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 2366e1247f..778c4ed0fd 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_buffer.c b/src/gallium/drivers/i915simple/i915_buffer.c new file mode 100644 index 0000000000..effeba1297 --- /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 0000000000..80fda7c62f --- /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 -- cgit v1.2.3 From dd040753d7703ac5edbf1aeb336c0093862a2486 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 18:30:35 +0100 Subject: i915g: Add header file for new winsys interface --- src/gallium/drivers/i915simple/intel_winsys.h | 219 ++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 src/gallium/drivers/i915simple/intel_winsys.h (limited to 'src') diff --git a/src/gallium/drivers/i915simple/intel_winsys.h b/src/gallium/drivers/i915simple/intel_winsys.h new file mode 100644 index 0000000000..e123c32d88 --- /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. + */ + /*{@*/ + void *map; + void *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 -- cgit v1.2.3 From d2110064c2075a8537d4b7f87ba894ebaa6ccb33 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Sun, 30 Aug 2009 20:49:01 +0100 Subject: i915g: Switch from pipe_winsys to intel_winsys Also includes moving lots of functions from i915_batch.h into intel_batchbuffer.h --- src/gallium/drivers/i915simple/i915_batch.h | 89 ++----------- src/gallium/drivers/i915simple/i915_blit.c | 13 +- src/gallium/drivers/i915simple/i915_blit.h | 6 +- src/gallium/drivers/i915simple/i915_context.c | 17 +-- src/gallium/drivers/i915simple/i915_context.h | 20 +-- src/gallium/drivers/i915simple/i915_debug.c | 3 +- src/gallium/drivers/i915simple/i915_debug.h | 4 +- src/gallium/drivers/i915simple/i915_prim_emit.c | 1 - src/gallium/drivers/i915simple/i915_prim_vbuf.c | 43 +++--- src/gallium/drivers/i915simple/i915_screen.c | 73 +++++++++-- src/gallium/drivers/i915simple/i915_screen.h | 5 + src/gallium/drivers/i915simple/i915_state_emit.c | 18 +-- .../drivers/i915simple/i915_state_sampler.c | 2 +- src/gallium/drivers/i915simple/i915_texture.c | 109 ++++++++++------ src/gallium/drivers/i915simple/i915_winsys.h | 144 --------------------- src/gallium/drivers/i915simple/intel_batchbuffer.h | 87 +++++++++++++ 16 files changed, 294 insertions(+), 340 deletions(-) delete mode 100644 src/gallium/drivers/i915simple/i915_winsys.h create mode 100644 src/gallium/drivers/i915simple/intel_batchbuffer.h (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_batch.h b/src/gallium/drivers/i915simple/i915_batch.h index 1e58c5b2a8..b813784723 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_batchbuffer_flush( i915->batch, 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 63e9ed83d2..83dfc33528 100644 --- a/src/gallium/drivers/i915simple/i915_blit.c +++ b/src/gallium/drivers/i915simple/i915_blit.c @@ -26,7 +26,6 @@ **************************************************************************/ -#include "i915_winsys.h" #include "i915_blit.h" #include "i915_reg.h" #include "i915_batch.h" @@ -38,7 +37,7 @@ void i915_fill_blit(struct i915_context *i915, unsigned cpp, unsigned short dst_pitch, - struct pipe_buffer *dst_buffer, + struct intel_buffer *dst_buffer, unsigned dst_offset, short x, short y, short w, short h, @@ -78,7 +77,7 @@ 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); } @@ -88,10 +87,10 @@ i915_copy_blit(struct i915_context *i915, unsigned do_flip, unsigned cpp, unsigned short src_pitch, - struct pipe_buffer *src_buffer, + struct intel_buffer *src_buffer, unsigned src_offset, unsigned short dst_pitch, - struct pipe_buffer *dst_buffer, + struct intel_buffer *dst_buffer, unsigned dst_offset, short src_x, short src_y, short dst_x, short dst_y, @@ -144,9 +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 2dba57eef0..8ce3220cfd 100644 --- a/src/gallium/drivers/i915simple/i915_blit.h +++ b/src/gallium/drivers/i915simple/i915_blit.h @@ -34,10 +34,10 @@ extern void i915_copy_blit(struct i915_context *i915, unsigned do_flip, unsigned cpp, unsigned short src_pitch, - struct pipe_buffer *src_buffer, + struct intel_buffer *src_buffer, unsigned src_offset, unsigned short dst_pitch, - struct pipe_buffer *dst_buffer, + struct intel_buffer *dst_buffer, unsigned dst_offset, short srcx, short srcy, short dstx, short dsty, @@ -46,7 +46,7 @@ extern void i915_copy_blit(struct i915_context *i915, extern void i915_fill_blit(struct i915_context *i915, unsigned cpp, unsigned short dst_pitch, - struct pipe_buffer *dst_buffer, + struct intel_buffer *dst_buffer, unsigned dst_offset, short x, short y, short w, short h, unsigned color); diff --git a/src/gallium/drivers/i915simple/i915_context.c b/src/gallium/drivers/i915simple/i915_context.c index 0f99b1c1b6..b43f735245 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" @@ -178,16 +178,14 @@ static void i915_destroy(struct pipe_context *pipe) draw_destroy(i915->draw); - if(i915->winsys->destroy) - i915->winsys->destroy(i915->winsys); + if(i915->batch) + i915->iws->batchbuffer_destroy(i915->batch); FREE(i915); } struct pipe_context * -i915_create_context(struct pipe_screen *screen, - struct pipe_winsys *pipe_winsys, - struct i915_winsys *i915_winsys) +i915_create_context(struct pipe_screen *screen) { struct i915_context *i915; @@ -195,8 +193,8 @@ i915_create_context(struct pipe_screen *screen, if (i915 == NULL) return NULL; - i915->winsys = i915_winsys; - i915->base.winsys = pipe_winsys; + i915->iws = i915_screen(screen)->iws; + i915->base.winsys = NULL; i915->base.screen = screen; i915->base.destroy = i915_destroy; @@ -233,8 +231,7 @@ i915_create_context(struct pipe_screen *screen, /* 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->base; } diff --git a/src/gallium/drivers/i915simple/i915_context.h b/src/gallium/drivers/i915simple/i915_context.h index 76aec4cd93..234b441ce6 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,16 +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 base; - struct i915_winsys *winsys; + struct intel_winsys *iws; + struct draw_context *draw; /* The most recent drawing state as set by the driver: @@ -244,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 e08582efab..ce92d1af9a 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 16ca7277c7..dd9b86e17b 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_prim_emit.c b/src/gallium/drivers/i915simple/i915_prim_emit.c index 8f1f58b2dd..d9a5c40ab9 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 656333d897..508f4560e4 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" @@ -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; @@ -114,7 +112,7 @@ i915_vbuf_render_allocate_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->base.screen; + struct intel_winsys *iws = i915->iws; size_t size = (size_t)vertex_size * (size_t)nr_vertices; /* FIXME: handle failure */ @@ -123,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); } @@ -152,14 +150,12 @@ 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->base.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; } @@ -171,10 +167,10 @@ i915_vbuf_render_unmap_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->base.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 @@ -507,7 +503,7 @@ static struct vbuf_render * i915_vbuf_render_create(struct i915_context *i915) { struct i915_vbuf_render *i915_render = CALLOC_STRUCT(i915_vbuf_render); - struct pipe_screen *screen = i915->base.screen; + struct intel_winsys *iws = i915->iws; i915_render->i915 = i915; @@ -531,14 +527,11 @@ 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; } diff --git a/src/gallium/drivers/i915simple/i915_screen.c b/src/gallium/drivers/i915simple/i915_screen.c index a03d740b1b..9f017a14cc 100644 --- a/src/gallium/drivers/i915simple/i915_screen.c +++ b/src/gallium/drivers/i915simple/i915_screen.c @@ -26,17 +26,21 @@ **************************************************************************/ -#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 * @@ -187,22 +191,64 @@ i915_is_format_supported(struct pipe_screen *screen, return FALSE; } + +/* + * Fence functions + */ + + +static void +i915_fence_reference(struct pipe_screen *screen, + struct pipe_fence_handle **ptr, + struct pipe_fence_handle *fence) +{ + struct i915_screen *is = i915_screen(screen); + + is->iws->fence_reference(is->iws, ptr, fence); +} + +static int +i915_fence_signalled(struct pipe_screen *screen, + struct pipe_fence_handle *fence, + unsigned flags) +{ + struct i915_screen *is = i915_screen(screen); + + return is->iws->fence_signalled(is->iws, fence); +} + +static int +i915_fence_finish(struct pipe_screen *screen, + struct pipe_fence_handle *fence, + unsigned flags) +{ + struct i915_screen *is = i915_screen(screen); + + return is->iws->fence_finish(is->iws, fence); +} + + +/* + * Generic functions + */ + + static void i915_destroy_screen(struct pipe_screen *screen) { - struct pipe_winsys *winsys = screen->winsys; + struct i915_screen *is = i915_screen(screen); - if(winsys->destroy) - winsys->destroy(winsys); + if (is->iws) + is->iws->destroy(is->iws); - FREE(screen); + 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 *is = CALLOC_STRUCT(i915_screen); @@ -231,8 +277,9 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) } is->pci_id = pci_id; + is->iws = iws; - is->base.winsys = winsys; + is->base.winsys = NULL; is->base.destroy = i915_destroy_screen; @@ -242,8 +289,12 @@ i915_create_screen(struct pipe_winsys *winsys, uint pci_id) is->base.get_paramf = i915_get_paramf; is->base.is_format_supported = i915_is_format_supported; + 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(is); - u_simple_screen_init(&is->base); + i915_init_screen_buffer_functions(is); return &is->base; } diff --git a/src/gallium/drivers/i915simple/i915_screen.h b/src/gallium/drivers/i915simple/i915_screen.h index 757baa76b8..5126485caa 100644 --- a/src/gallium/drivers/i915simple/i915_screen.h +++ b/src/gallium/drivers/i915simple/i915_screen.h @@ -32,6 +32,9 @@ #include "pipe/p_screen.h" +struct intel_winsys; + + /** * Subclass of pipe_screen */ @@ -39,6 +42,8 @@ struct i915_screen { struct pipe_screen base; + struct intel_winsys *iws; + boolean is_i945; uint pci_id; }; diff --git a/src/gallium/drivers/i915simple/i915_state_emit.c b/src/gallium/drivers/i915simple/i915_state_emit.c index ab361e3d4b..a3d4e3b04e 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" @@ -183,7 +182,7 @@ i915_emit_hardware_state(struct i915_context *i915 ) 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 */ @@ -216,7 +215,7 @@ i915_emit_hardware_state(struct i915_context *i915 ) cbuf_surface->texture; assert(tex); - if (tex && tex->tiled) { + if (tex && tex->sw_tiled) { ctile = BUF_3D_TILED_SURFACE; } @@ -227,7 +226,7 @@ i915_emit_hardware_state(struct i915_context *i915 ) ctile); OUT_RELOC(tex->buffer, - I915_BUFFER_ACCESS_WRITE, + INTEL_USAGE_RENDER, cbuf_surface->offset); } @@ -239,7 +238,7 @@ i915_emit_hardware_state(struct i915_context *i915 ) depth_surface->texture; assert(tex); - if (tex && tex->tiled) { + if (tex && tex->sw_tiled) { ztile = BUF_3D_TILED_SURFACE; } @@ -250,7 +249,7 @@ i915_emit_hardware_state(struct i915_context *i915 ) ztile); OUT_RELOC(tex->buffer, - I915_BUFFER_ACCESS_WRITE, + INTEL_USAGE_RENDER, depth_surface->offset); } @@ -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 */ } diff --git a/src/gallium/drivers/i915simple/i915_state_sampler.c b/src/gallium/drivers/i915simple/i915_state_sampler.c index 3667ed1afa..c5e9084d12 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_texture.c b/src/gallium/drivers/i915simple/i915_texture.c index 5cb62b164f..6a6c654271 100644 --- a/src/gallium/drivers/i915simple/i915_texture.c +++ b/src/gallium/drivers/i915simple/i915_texture.c @@ -42,7 +42,7 @@ #include "i915_texture.h" #include "i915_debug.h" #include "i915_screen.h" -#include "i915_winsys.h" +#include "intel_winsys.h" /* @@ -173,27 +173,22 @@ i915_scanout_layout(struct i915_texture *tex) 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 @@ -596,7 +591,8 @@ 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; @@ -611,7 +607,7 @@ 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; } else { @@ -621,17 +617,25 @@ i915_texture_create(struct pipe_screen *screen, 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); @@ -652,6 +656,7 @@ i915_texture_blanket(struct pipe_screen * screen, const unsigned *stride, struct pipe_buffer *buffer) { +#if 0 struct i915_texture *tex; assert(screen); @@ -678,19 +683,23 @@ i915_texture_blanket(struct pipe_screen * screen, 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]) @@ -799,23 +808,17 @@ 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; - unsigned flags = 0; - - if (transfer->usage != PIPE_TRANSFER_WRITE) - flags |= PIPE_BUFFER_USAGE_CPU_READ; + boolean write = FALSE; if (transfer->usage != PIPE_TRANSFER_READ) - flags |= PIPE_BUFFER_USAGE_CPU_WRITE; + write = TRUE; - map = pipe_buffer_map(screen, tex->buffer, flags); + map = iws->buffer_map(iws, tex->buffer, write); if (map == NULL) return NULL; - if (flags & PIPE_BUFFER_USAGE_CPU_WRITE) { - /* XXX Do something to notify contexts of a texture change. */ - } - return map + i915_transfer(transfer)->offset + transfer->y / transfer->block.height * transfer->stride + transfer->x / transfer->block.width * transfer->block.size; @@ -826,7 +829,8 @@ i915_transfer_unmap(struct pipe_screen *screen, struct pipe_transfer *transfer) { struct i915_texture *tex = (struct i915_texture *)transfer->texture; - pipe_buffer_unmap(screen, tex->buffer); + struct intel_winsys *iws = i915_screen(tex->base.screen)->iws; + iws->buffer_unmap(iws, tex->buffer); } static void @@ -856,19 +860,52 @@ i915_init_screen_texture_functions(struct i915_screen *is) is->base.tex_transfer_destroy = i915_tex_transfer_destroy; } -boolean i915_get_texture_buffer(struct pipe_texture *texture, - struct pipe_buffer **buf, - unsigned *stride) +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 = (struct i915_texture *)texture; + 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 FALSE; + return NULL; + + tex->base = *base; + pipe_reference_init(&tex->base.reference, 1); + tex->base.screen = screen; - pipe_buffer_reference(buf, tex->buffer); + 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); + + tex->buffer = buffer; + + return &tex->base; +} + +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 (!texture) + return FALSE; - if (stride) - *stride = tex->stride; + *stride = tex->stride; + *buffer = tex->buffer; return TRUE; } diff --git a/src/gallium/drivers/i915simple/i915_winsys.h b/src/gallium/drivers/i915simple/i915_winsys.h deleted file mode 100644 index 711db91c36..0000000000 --- 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 0000000000..db12dfd2ac --- /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 -- cgit v1.2.3 From 935e4c56e5b10a0a702d95f78e9f4e6660c452dc Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Tue, 1 Sep 2009 00:42:39 +0100 Subject: i915g: Implement new winsys --- src/gallium/winsys/drm/intel/gem/Makefile | 8 +- src/gallium/winsys/drm/intel/gem/SConscript | 8 +- src/gallium/winsys/drm/intel/gem/intel_be_api.c | 36 -- src/gallium/winsys/drm/intel/gem/intel_be_api.h | 18 - .../winsys/drm/intel/gem/intel_be_batchbuffer.c | 156 ------- .../winsys/drm/intel/gem/intel_be_batchbuffer.h | 55 --- .../winsys/drm/intel/gem/intel_be_context.c | 117 ----- .../winsys/drm/intel/gem/intel_be_context.h | 31 -- src/gallium/winsys/drm/intel/gem/intel_be_device.c | 474 --------------------- src/gallium/winsys/drm/intel/gem/intel_be_device.h | 107 ----- src/gallium/winsys/drm/intel/gem/intel_be_fence.h | 34 -- src/gallium/winsys/drm/intel/gem/intel_drm_api.c | 202 +++++++++ .../winsys/drm/intel/gem/intel_drm_batchbuffer.c | 211 +++++++++ .../winsys/drm/intel/gem/intel_drm_buffer.c | 134 ++++++ src/gallium/winsys/drm/intel/gem/intel_drm_fence.c | 81 ++++ .../winsys/drm/intel/gem/intel_drm_winsys.h | 78 ++++ 16 files changed, 714 insertions(+), 1036 deletions(-) delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_api.c delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_api.h delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.c delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_batchbuffer.h delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_context.c delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_context.h delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_device.c delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_device.h delete mode 100644 src/gallium/winsys/drm/intel/gem/intel_be_fence.h create mode 100644 src/gallium/winsys/drm/intel/gem/intel_drm_api.c create mode 100644 src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c create mode 100644 src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c create mode 100644 src/gallium/winsys/drm/intel/gem/intel_drm_fence.c create mode 100644 src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h (limited to 'src') diff --git a/src/gallium/winsys/drm/intel/gem/Makefile b/src/gallium/winsys/drm/intel/gem/Makefile index 7ab1a2a771..0d6d4e37db 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 ea8a2e55f6..26717f391f 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 3e90088d5e..0000000000 --- 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 f286b62eb8..0000000000 --- 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 c4a79586e6..0000000000 --- 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 - -#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 195bf8dee7..0000000000 --- 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 ff4518f868..0000000000 --- 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 5a369669c0..0000000000 --- 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 2d8e9f1a24..0000000000 --- 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 - -#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 15916b0b10..0000000000 --- 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 a8abb01a9e..0000000000 --- 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 0000000000..4c5a1d2ea8 --- /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 0000000000..77b3fec17a --- /dev/null +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -0,0 +1,211 @@ + +#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 + +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 = 100;/*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 { + /* 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); + } + + if (fence) { + ibatch->iws->fence_reference(ibatch->iws, fence, NULL); + +#if 0 + (*fence) = intel_drm_fence_create(batch->bo); +#else + /* we run synced to GPU so just pass null */ + (*fence) = intel_drm_fence_create(NULL); +#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 0000000000..e017cd2e98 --- /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 0000000000..e70bfe7b44 --- /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 0000000000..415c45feea --- /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 -- cgit v1.2.3 From e3a17904ddf5af6425efaa926a17813e59e7ce83 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 1 Sep 2009 10:12:20 +1000 Subject: r200: emit max vtx info for index buffer. We need this for the CS bounds checking. --- src/mesa/drivers/dri/r200/r200_cmdbuf.c | 10 ++++++++++ src/mesa/drivers/dri/r200/r200_ioctl.h | 1 + src/mesa/drivers/dri/r200/r200_tcl.c | 1 + 3 files changed, 12 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r200/r200_cmdbuf.c b/src/mesa/drivers/dri/r200/r200_cmdbuf.c index 7d0df5519d..1d1bea6f5f 100644 --- a/src/mesa/drivers/dri/r200/r200_cmdbuf.c +++ b/src/mesa/drivers/dri/r200/r200_cmdbuf.c @@ -225,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, diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.h b/src/mesa/drivers/dri/r200/r200_ioctl.h index 9f06d23b38..8d51aefa04 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_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c index 348294cefc..c702910ef2 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 ); } } -- cgit v1.2.3 From 31a5a9e9cc943ae38077658302e43c05b80983d7 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 1 Sep 2009 10:50:40 +1000 Subject: r300/compiler: fix warning due to no newline --- src/mesa/drivers/dri/r300/compiler/radeon_code.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.h b/src/mesa/drivers/dri/r300/compiler/radeon_code.h index 0806fb1b5c..3e88554ba1 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_code.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_code.h @@ -203,4 +203,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 */ + -- cgit v1.2.3 From 18656201ef62da1892d66e0899001ae82e2555c2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 13:28:31 -0600 Subject: swrast: can't use deferred texture/shading if using KIL instruction If the fragment program uses KIL, we have to execute it before z/stencil testing. Otherwise, deferred texture/shading lets us skip shading for pixels that fail z/stencil testing. --- src/mesa/swrast/s_context.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index e7c2ace32c..abf0008565 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; -- cgit v1.2.3 From c0633ddabbcc91dcf06fd4452eb7516c624752c0 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 14:57:59 -0600 Subject: mesa: debug printf for KIL --- src/mesa/shader/prog_execute.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c index f4beb9a78b..c8a762f8ff 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; } -- cgit v1.2.3 From a1d3855fb0c3969a32825d0b899076917d5ccce6 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 17:54:46 -0600 Subject: swrast: fix selection/feedback regression This fixes a conform selection/feedback regression introduced by commit 8f4d66c5f893b49eb3973aa3b31a856314c045c7 --- src/mesa/swrast/s_triangle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c index 1d2fed7169..1ab0e19f92 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; -- cgit v1.2.3 From 10d81f466794c61c11225c94b2125bf2dd23748e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 19:26:00 -0600 Subject: mesa: added _mesa_is_stencil_format() --- src/mesa/main/image.c | 16 ++++++++++++++++ src/mesa/main/image.h | 3 +++ 2 files changed, 19 insertions(+) (limited to 'src') diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index d77c593ac7..006a55116b 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -688,6 +688,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. */ diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h index 20459a5f1e..a082f37457 100644 --- a/src/mesa/main/image.h +++ b/src/mesa/main/image.h @@ -63,6 +63,9 @@ _mesa_is_index_format(GLenum format); extern GLboolean _mesa_is_depth_format(GLenum format); +extern GLboolean +_mesa_is_stencil_format(GLenum format); + extern GLboolean _mesa_is_ycbcr_format(GLenum format); -- cgit v1.2.3 From 9c41931c0fbfc108eeba0af18db29a24b394d091 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 19:27:42 -0600 Subject: mesa: remove accidentally commited debug/disabled code --- src/mesa/drivers/common/meta.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 02194a39b4..5aa1301ae7 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -694,7 +694,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 +703,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); -- cgit v1.2.3 From 1fc713a1e78278e7b62bd5d8e11ac5c0093677bf Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 19:28:11 -0600 Subject: mesa: implement depth/stencil formats for meta glDrawPixels --- src/mesa/drivers/common/meta.c | 263 +++++++++++++++++++++++++++++++++++------ 1 file changed, 229 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 5aa1301ae7..7be7d13b1b 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -54,6 +54,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" @@ -142,7 +143,7 @@ struct blit_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][4]; /** four verts of X,Y,S,T */ + GLfloat verts[4][4]; /**< four verts of X,Y,S,T */ }; @@ -153,7 +154,7 @@ struct clear_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][7]; /** four verts of X,Y,Z,R,G,B,A */ + GLfloat verts[4][7]; /**< four verts of X,Y,Z,R,G,B,A */ }; @@ -164,7 +165,7 @@ struct copypix_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][5]; /** four verts of X,Y,Z,S,T */ + GLfloat verts[4][5]; /**< four verts of X,Y,Z,S,T */ }; @@ -175,7 +176,10 @@ struct drawpix_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][5]; /** four verts of X,Y,Z,S,T */ + 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 +243,34 @@ _mesa_meta_free(GLcontext *ctx) { struct gl_meta_state *meta = ctx->Meta; - if (meta->TempTex.TexObj) { - _mesa_DeleteTextures(1, &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(). + */ - if (meta->Blit.VBO) { - _mesa_DeleteBuffersARB(1, & meta->Blit.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->Blit.ArrayObj); - } + if (meta->TempTex.TexObj) { + _mesa_DeleteTextures(1, &meta->TempTex.TexObj); + } - if (meta->Clear.VBO) { - _mesa_DeleteBuffersARB(1, & meta->Clear.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->Clear.ArrayObj); - } + if (meta->Blit.VBO) { + _mesa_DeleteBuffersARB(1, & meta->Blit.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->Blit.ArrayObj); + } - if (meta->CopyPix.VBO) { - _mesa_DeleteBuffersARB(1, & meta->CopyPix.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->CopyPix.ArrayObj); - } + if (meta->Clear.VBO) { + _mesa_DeleteBuffersARB(1, & meta->Clear.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->Clear.ArrayObj); + } + + if (meta->CopyPix.VBO) { + _mesa_DeleteBuffersARB(1, & meta->CopyPix.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->CopyPix.ArrayObj); + } - if (meta->DrawPix.VBO) { - _mesa_DeleteBuffersARB(1, & meta->DrawPix.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->DrawPix.ArrayObj); + if (meta->DrawPix.VBO) { + _mesa_DeleteBuffersARB(1, & meta->DrawPix.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->DrawPix.ArrayObj); + } } _mesa_free(ctx->Meta); @@ -730,7 +740,7 @@ alloc_texture(struct temp_texture *tex, { GLboolean newTex = GL_FALSE; - if (width > tex->Width || + if (1|| width > tex->Width || height > tex->Height || intFormat != tex->IntFormat) { /* alloc new texture (larger or different format) */ @@ -984,9 +994,14 @@ void _mesa_meta_clear(GLcontext *ctx, GLbitfield buffers) { struct clear_state *clear = &ctx->Meta->Clear; + GLbitfield metaSave = META_ALL - META_SCISSOR; /* all but scissor */ + + if (buffers & BUFFER_BITS_COLOR) { + /* if clearing color buffers, don't save/restore colormask */ + metaSave -= META_COLOR_MASK; + } - /* only scissor and color mask effects clearing */ - _mesa_meta_begin(ctx, ~(META_SCISSOR | META_COLOR_MASK)); + _mesa_meta_begin(ctx, metaSave); if (clear->ArrayObj == 0) { /* one-time setup */ @@ -1018,6 +1033,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); } @@ -1234,6 +1250,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. @@ -1250,6 +1364,7 @@ _mesa_meta_draw_pixels(GLcontext *ctx, const struct gl_pixelstore_attrib unpackSave = ctx->Unpack; GLenum texIntFormat; GLboolean fallback, newTex; + GLbitfield metaExtraSave = 0x0; /* * Determine if we can do the glDrawPixels with texture mapping. @@ -1261,7 +1376,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 +1436,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 */ @@ -1357,18 +1504,66 @@ _mesa_meta_draw_pixels(GLcontext *ctx, /* 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; + + _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); } -- cgit v1.2.3 From 8126dfa9c24c972794193bf652d6d09a1d01b376 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 19:29:24 -0600 Subject: xlib: option to enable/test meta functions (disabled) --- src/mesa/drivers/x11/xm_api.c | 7 +++++++ src/mesa/drivers/x11/xm_dd.c | 15 +++++++++++---- src/mesa/drivers/x11/xmesaP.h | 4 ++++ 3 files changed, 22 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index 6ae5b6fd58..1eb31b9d4c 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 @@ -1641,6 +1642,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 +1659,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 9a01465bdf..7ee88e8058 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,13 +1148,19 @@ xmesa_init_driver_functions( XMesaVisual xmvisual, driver->IndexMask = index_mask; driver->ColorMask = color_mask; driver->Enable = enable; - driver->Clear = clear_buffers; + if (TEST_META_FUNCS) + driver->Clear = _mesa_meta_clear; + else + 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) { + if (TEST_META_FUNCS) { + driver->DrawPixels = _mesa_meta_draw_pixels; + } + else 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) { diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h index 65e747d7b9..25db55862e 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 -- cgit v1.2.3 From 97aa3d553f73d955a5c3eced33384348158307a7 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 1 Sep 2009 12:15:32 +1000 Subject: r200: emit cube for kms correctly + fix tex emit reset CS checker found some issues. --- src/mesa/drivers/dri/r200/r200_state_init.c | 4 ++-- src/mesa/drivers/dri/r200/r200_texstate.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r200/r200_state_init.c b/src/mesa/drivers/dri/r200/r200_state_init.c index 4c484d067e..3e0cebaa07 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(); diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c index 90da44bc01..c94834752e 100644 --- a/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/src/mesa/drivers/dri/r200/r200_texstate.c @@ -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<radeon.glCtx, (R200_TCL_FALLBACK_TEXGEN_0< Date: Mon, 31 Aug 2009 19:49:40 -0600 Subject: mesa: make verts[] arrays local vars --- src/mesa/drivers/common/meta.c | 199 ++++++++++++++++++++--------------------- 1 file changed, 98 insertions(+), 101 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 7be7d13b1b..09c5779c2a 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -143,7 +143,6 @@ struct blit_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][4]; /**< four verts of X,Y,S,T */ }; @@ -154,7 +153,6 @@ struct clear_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][7]; /**< four verts of X,Y,Z,R,G,B,A */ }; @@ -165,7 +163,6 @@ struct copypix_state { GLuint ArrayObj; GLuint VBO; - GLfloat verts[4][5]; /**< four verts of X,Y,Z,S,T */ }; @@ -176,7 +173,6 @@ 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 */ @@ -883,6 +879,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) { @@ -917,13 +914,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); @@ -937,27 +934,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); @@ -994,6 +990,7 @@ 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 */ GLbitfield metaSave = META_ALL - META_SCISSOR; /* all but scissor */ if (buffers & BUFFER_BITS_COLOR) { @@ -1013,12 +1010,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); @@ -1069,27 +1067,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 */ @@ -1110,6 +1107,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; @@ -1143,13 +1141,13 @@ _mesa_meta_copy_pixels(GLcontext *ctx, GLint srcX, GLint srcY, /* create vertex array buffer */ _mesa_GenBuffersARB(1, ©pix->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); @@ -1169,30 +1167,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 */ @@ -1362,6 +1359,7 @@ _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; + GLfloat verts[4][5]; /* four verts of X,Y,Z,S,T */ GLenum texIntFormat; GLboolean fallback, newTex; GLbitfield metaExtraSave = 0x0; @@ -1449,13 +1447,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); @@ -1475,30 +1473,29 @@ _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 */ -- cgit v1.2.3 From 7a78e6e8af50f1254a6d9d1d8746a7b10add9668 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 20:25:10 -0600 Subject: mesa: disable another debug test --- src/mesa/drivers/common/meta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 09c5779c2a..8ed6479e34 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -736,7 +736,7 @@ alloc_texture(struct temp_texture *tex, { GLboolean newTex = GL_FALSE; - if (1|| width > tex->Width || + if (width > tex->Width || height > tex->Height || intFormat != tex->IntFormat) { /* alloc new texture (larger or different format) */ -- cgit v1.2.3 From 056612241ae8f8bc836ab78705a154a6d6477e0f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 21:13:41 -0600 Subject: mesa: implement GL_DEPTH_BUFFER_BIT for _mesa_meta_blit_framebuffer() --- src/mesa/drivers/common/meta.c | 120 ++++++++++++++++++++++++++++++++--------- src/mesa/drivers/common/meta.h | 1 + 2 files changed, 96 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 8ed6479e34..ec0da71fb9 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" @@ -83,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; @@ -143,6 +144,7 @@ struct blit_state { GLuint ArrayObj; GLuint VBO; + GLuint DepthFP; }; @@ -244,29 +246,26 @@ _mesa_meta_free(GLcontext *ctx) * still get freed by _mesa_free_context_data(). */ - if (meta->TempTex.TexObj) { - _mesa_DeleteTextures(1, &meta->TempTex.TexObj); - } + _mesa_DeleteTextures(1, &meta->TempTex.TexObj); - if (meta->Blit.VBO) { - _mesa_DeleteBuffersARB(1, & meta->Blit.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->Blit.ArrayObj); - } + /* glBlitFramebuffer */ + _mesa_DeleteBuffersARB(1, & meta->Blit.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->Blit.ArrayObj); + _mesa_DeletePrograms(1, &meta->Blit.DepthFP); - if (meta->Clear.VBO) { - _mesa_DeleteBuffersARB(1, & meta->Clear.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->Clear.ArrayObj); - } + /* glClear */ + _mesa_DeleteBuffersARB(1, & meta->Clear.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->Clear.ArrayObj); - if (meta->CopyPix.VBO) { - _mesa_DeleteBuffersARB(1, & meta->CopyPix.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->CopyPix.ArrayObj); - } + /* glCopyPixels */ + _mesa_DeleteBuffersARB(1, & meta->CopyPix.VBO); + _mesa_DeleteVertexArraysAPPLE(1, &meta->CopyPix.ArrayObj); - if (meta->DrawPix.VBO) { - _mesa_DeleteBuffersARB(1, & meta->DrawPix.VBO); - _mesa_DeleteVertexArraysAPPLE(1, &meta->DrawPix.ArrayObj); - } + /* 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); @@ -324,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; @@ -514,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); @@ -860,6 +871,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. @@ -964,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 */ } @@ -975,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); } @@ -991,7 +1060,8 @@ _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 */ - GLbitfield metaSave = META_ALL - META_SCISSOR; /* all but scissor */ + /* save all state but scissor, pixel pack/unpack */ + GLbitfield metaSave = META_ALL - META_SCISSOR - META_PIXEL_STORE; if (buffers & BUFFER_BITS_COLOR) { /* if clearing color buffers, don't save/restore colormask */ diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h index a9c5f98043..b03b64c48a 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 /*@}*/ -- cgit v1.2.3 From ae5d78198f35941046b238712d70091cb94be44e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 31 Aug 2009 21:14:50 -0600 Subject: xlib: plug in more meta functions, if TEST_META_FUNCS is set --- src/mesa/drivers/x11/xm_dd.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c index 7ee88e8058..465a40ac8d 100644 --- a/src/mesa/drivers/x11/xm_dd.c +++ b/src/mesa/drivers/x11/xm_dd.c @@ -1148,23 +1148,25 @@ xmesa_init_driver_functions( XMesaVisual xmvisual, driver->IndexMask = index_mask; driver->ColorMask = color_mask; driver->Enable = enable; - if (TEST_META_FUNCS) - driver->Clear = _mesa_meta_clear; - else - driver->Clear = clear_buffers; driver->Viewport = xmesa_viewport; -#ifndef XFree86Server - driver->CopyPixels = xmesa_CopyPixels; 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_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; + 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; -- cgit v1.2.3 From a2bd13fec9ac2bd77ee21cb85a636fde80ce0368 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 1 Sep 2009 15:18:17 +1000 Subject: r100: fixup cubemap domains --- src/mesa/drivers/dri/radeon/radeon_state_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_state_init.c b/src/mesa/drivers/dri/radeon/radeon_state_init.c index d014fb5c06..8236199b9b 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(); } -- cgit v1.2.3 From 7d361537661b93a501c9533271458a41b965ea79 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 1 Sep 2009 16:04:39 +1000 Subject: radeon: fix r100/r200 polygon stipple under kms There really need to use state emits under kms, otherwise we end up with some dwords in the command buffer before we've ever emitted any useful state. Signed-off-by: Dave Airlie --- src/mesa/drivers/dri/r200/r200_context.h | 6 ++++++ src/mesa/drivers/dri/r200/r200_state.c | 17 ++++++++++++++++- src/mesa/drivers/dri/r200/r200_state_init.c | 9 +++++++++ src/mesa/drivers/dri/radeon/radeon_common.c | 25 ------------------------- src/mesa/drivers/dri/radeon/radeon_common.h | 1 - src/mesa/drivers/dri/radeon/radeon_context.h | 7 ++++++- src/mesa/drivers/dri/radeon/radeon_state.c | 16 ++++++++++++++++ src/mesa/drivers/dri/radeon/radeon_state_init.c | 10 +++++++++- 8 files changed, 62 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r200/r200_context.h b/src/mesa/drivers/dri/r200/r200_context.h index c5dccf0a75..246f98c6dc 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_state.c b/src/mesa/drivers/dri/r200/r200_state.c index fea7681c8a..76852e315c 100644 --- a/src/mesa/drivers/dri/r200/r200_state.c +++ b/src/mesa/drivers/dri/r200/r200_state.c @@ -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 3e0cebaa07..7697306d88 100644 --- a/src/mesa/drivers/dri/r200/r200_state_init.c +++ b/src/mesa/drivers/dri/r200/r200_state_init.c @@ -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/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index aaa5165bc8..1836dbc79a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -312,31 +312,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 diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h b/src/mesa/drivers/dri/radeon/radeon_common.h index ba983e5ab6..f3201911ac 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_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h index 572acbb006..4e2c52c835 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_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index c8cc7f9bcf..4d0d35ee0c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -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 8236199b9b..f3ad0dd17a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state_init.c +++ b/src/mesa/drivers/dri/radeon/radeon_state_init.c @@ -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); -- cgit v1.2.3 From 165e87c49180380b67b096211b4c5f9670e3020a Mon Sep 17 00:00:00 2001 From: Cooper Yuan Date: Tue, 1 Sep 2009 17:59:03 +0800 Subject: r300g: Fix clear issue on r300 --- src/gallium/drivers/r300/r300_surface.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_surface.h b/src/gallium/drivers/r300/r300_surface.h index d01f0b143f..f9e98b2ec9 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, -- cgit v1.2.3 From 8c3f622a34fd9ecebbe3562aa803780bf1c82c9f Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Tue, 1 Sep 2009 11:56:14 +0200 Subject: trace: Don't set surface_[fill|copy] if not set on pipe --- src/gallium/drivers/trace/tr_context.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/trace/tr_context.c b/src/gallium/drivers/trace/tr_context.c index 4ab718f233..ae0af4d055 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; -- cgit v1.2.3 From 836a9f0ae6e03d2f92dc024703015c25a5b3c353 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Tue, 1 Sep 2009 12:22:52 +0100 Subject: scons: Tool for LLVM. Gracefully disable llvmpipe if LLVM not found. --- scons/llvm.py | 81 +++++++++++++++++++++++++++++++++ src/gallium/drivers/llvmpipe/SConscript | 8 ++-- src/gallium/winsys/xlib/SConscript | 12 ++--- 3 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 scons/llvm.py (limited to 'src') diff --git a/scons/llvm.py b/scons/llvm.py new file mode 100644 index 0000000000..14306bc0fe --- /dev/null +++ b/scons/llvm.py @@ -0,0 +1,81 @@ +"""llvm + +Tool-specific initialization for LLVM + +""" + +# +# Copyright (c) 2009 VMware, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +import os +import os.path +import subprocess + +import SCons.Action +import SCons.Errors +import SCons.Util + + +def generate(env): + try: + llvm_dir = os.environ['LLVM'] + except KeyError: + # Do nothing -- use the system headers/libs + pass + else: + if not os.path.isdir(llvm_dir): + raise SCons.Errors.InternalError, "Specified LLVM directory not found" + + if env['debug']: + llvm_subdir = 'Debug' + else: + llvm_subdir = 'Release' + + llvm_bin_dir = os.path.join(llvm_dir, llvm_subdir, 'bin') + if not os.path.isdir(llvm_bin_dir): + raise SCons.Errors.InternalError, "LLVM build directory not found" + + env.PrependENVPath('PATH', llvm_bin_dir) + + if env.Detect('llvm-config'): + pipe = SCons.Action._subproc(env, + ['llvm-config', '--version'], + stdin = 'devnull', + stderr = 'devnull', + stdout = subprocess.PIPE) + if pipe.wait() != 0: + return + line = pipe.stdout.read().strip() + if not line: + return + env['LLVM_VERSION'] = line + + env.ParseConfig('llvm-config --cppflags') + env.ParseConfig('llvm-config --libs jit interpreter nativecodegen bitwriter') + env.ParseConfig('llvm-config --ldflags') + env['LINK'] = env['CXX'] + +def exists(env): + return True + +# vim:set ts=4 sw=4 et: diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript index 6bceb84da4..5c29bdac56 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/winsys/xlib/SConscript b/src/gallium/winsys/xlib/SConscript index 518fd2b5a8..467d595d33 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') -- cgit v1.2.3 From b3f4b56a3b7f979c631358caefed635c6ec56453 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 1 Sep 2009 17:29:24 +0100 Subject: tgsi: remove redundant CND0 opcode Can be implemented with CMP src2, src1, src0 --- src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt | 6 +----- src/gallium/auxiliary/tgsi/tgsi_exec.c | 10 ---------- src/gallium/auxiliary/tgsi/tgsi_info.c | 2 +- src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h | 1 - src/gallium/auxiliary/tgsi/tgsi_sse2.c | 4 ---- src/gallium/drivers/cell/spu/spu_exec.c | 4 ---- src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c | 4 ---- src/gallium/drivers/r300/r300_tgsi_to_rc.c | 1 - src/gallium/include/pipe/p_shader_tokens.h | 2 +- 9 files changed, 3 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt index 802ec37118..a989514b75 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 diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index 711e86d6ed..d3ffd4a85f 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 ); diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c index ccf4b205ff..e69cd05213 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_info.c +++ b/src/gallium/auxiliary/tgsi/tgsi_info.c @@ -51,7 +51,7 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] = { 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 }, + { 0, 0, 0, 0, "", 20 }, /* removed */ { 1, 3, 0, 0, "DP2A", TGSI_OPCODE_DP2A }, { 0, 0, 0, 0, "", 22 }, /* removed */ { 0, 0, 0, 0, "", 23 }, /* removed */ diff --git a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h index ed594a3e2c..e7bcf4bf75 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_sse2.c b/src/gallium/auxiliary/tgsi/tgsi_sse2.c index 46f2387c15..3cdf8b9f35 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/drivers/cell/spu/spu_exec.c b/src/gallium/drivers/cell/spu/spu_exec.c index 6db9501128..0eaae2e451 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/llvmpipe/lp_bld_tgsi_soa.c b/src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c index bce26607f9..d4d18febec 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/r300/r300_tgsi_to_rc.c b/src/gallium/drivers/r300/r300_tgsi_to_rc.c index 3adbb715f3..d68a104106 100644 --- a/src/gallium/drivers/r300/r300_tgsi_to_rc.c +++ b/src/gallium/drivers/r300/r300_tgsi_to_rc.c @@ -53,7 +53,6 @@ static unsigned translate_opcode(unsigned opcode) case TGSI_OPCODE_SUB: return OPCODE_SUB; case TGSI_OPCODE_LRP: return OPCODE_LRP; /* case TGSI_OPCODE_CND: return OPCODE_CND; */ - /* case TGSI_OPCODE_CND0: return OPCODE_CND0; */ case TGSI_OPCODE_DP2A: return OPCODE_DP2A; /* gap */ case TGSI_OPCODE_FRC: return OPCODE_FRC; diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index f0ba4fb308..5fa6c9af30 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 -- cgit v1.2.3 From 847bc5c852214a344b6b39c619d182cb1058ecbc Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 11:10:05 -0700 Subject: ARB prog parser: Fix handling of stateOptModMatNum The optional array index should clearly be enclosed in square brackets. This helps the oglconform test vp_binding.c get a bit farther, but it still fails. --- src/mesa/shader/program_parse.tab.c | 402 ++++++++++++++++++------------------ src/mesa/shader/program_parse.y | 4 +- 2 files changed, 203 insertions(+), 203 deletions(-) (limited to 'src') diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 5c604c2fd1..979e574921 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -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. */ @@ -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; diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index e2e83e484f..46f300408b 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -1492,9 +1492,9 @@ stateOptModMatNum: { $$ = 0; } - | stateModMatNum + | '[' stateModMatNum ']' { - $$ = $1; + $$ = $2; } ; stateModMatNum: INTEGER -- cgit v1.2.3 From 91c366359ce0bf5f450fd1d774b771c95ed2f651 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 1 Sep 2009 14:43:04 -0400 Subject: st/xorg: start rendering and compositing pictures --- src/gallium/state_trackers/xorg/xorg_composite.c | 240 +++++++++++++++++------ src/gallium/state_trackers/xorg/xorg_exa.c | 8 - src/gallium/state_trackers/xorg/xorg_exa.h | 8 +- 3 files changed, 185 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index 86402a0d13..8a12c03267 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -77,79 +77,189 @@ blend_for_op(int op) } +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_data_tex(struct exa_context *ctx, - float x0, float y0, float x1, float y1, - float x2, float y2, float x3, float y3, - float s0, float t0, float s1, float t1, - float z) +setup_vertex_data0(struct exa_context *ctx, + int srcX, int srcY, int maskX, int maskY, + int dstX, int dstY, int width, int height) { - ctx->vertices[0][0][0] = x0; - ctx->vertices[0][0][1] = y0; - ctx->vertices[0][0][2] = z; - ctx->vertices[0][1][0] = s0; /*s*/ - ctx->vertices[0][1][1] = t0; /*t*/ - - ctx->vertices[1][0][0] = x1; - ctx->vertices[1][0][1] = y1; - ctx->vertices[1][0][2] = z; - ctx->vertices[1][1][0] = s1; /*s*/ - ctx->vertices[1][1][1] = t0; /*t*/ - - ctx->vertices[2][0][0] = x2; - ctx->vertices[2][0][1] = y2; - ctx->vertices[2][0][2] = z; - ctx->vertices[2][1][0] = s1; - ctx->vertices[2][1][1] = t1; - - ctx->vertices[3][0][0] = x3; - ctx->vertices[3][0][1] = y3; - ctx->vertices[3][0][2] = z; - ctx->vertices[3][1][0] = s0; - ctx->vertices[3][1][1] = t1; + 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, - ctx->vertices, - sizeof(ctx->vertices)); + vertices, + sizeof(vertices)); } -static void -draw_texture(struct exa_context *exa, - struct pipe_texture *tex, - float x1offset, float y1offset, - float x2offset, float y2offset, - float x1, float y1, - float x2, float y2, - float x3, float y3, - float x4, float y4) +static INLINE void +setup_vertex1(float vertex[2][4], float x, float y, float s, float t) { - struct pipe_context *pipe = exa->ctx; - struct pipe_buffer *buf; + 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); - assert(tex->width[0] != 0); - assert(tex->height[0] != 0); + return pipe_user_buffer_create(ctx->ctx->screen, + vertices, + sizeof(vertices)); +} - s0 = x1offset / tex->width[0]; - s1 = x2offset / tex->width[0]; - t0 = y1offset / tex->height[0]; - t1 = y2offset / tex->height[0]; - /* draw quad */ - buf = setup_vertex_data_tex(exa, x1, y1, x2, y2, x3, y3, x4, y4, - s0, t0, s1, t1, 0.0f); +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)); +} + + +static void +draw_pictures(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 */ - 2); /* attribs/vert */ + 1 + exa->num_bound_samplers); /* attribs/vert */ - pipe_buffer_reference(&buf, - NULL); + pipe_buffer_reference(&buf, NULL); } - - cso_restore_vertex_shader(exa->cso); } boolean xorg_composite_accelerated(int op, @@ -309,9 +419,10 @@ 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)); @@ -322,7 +433,8 @@ bind_samplers(struct exa_context *exa, int op, 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) { @@ -332,12 +444,14 @@ bind_samplers(struct exa_context *exa, int op, 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 @@ -409,8 +523,8 @@ 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); @@ -422,5 +536,7 @@ void xorg_composite(struct exa_context *exa, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { + draw_pictures(exa, srcX, srcY, maskX, maskY, + dstX, dstY, width, height); } diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 3697d26363..1ed807de93 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -563,7 +563,6 @@ xorg_exa_init(ScrnInfoPtr pScrn) modesettingPtr ms = modesettingPTR(pScrn); struct exa_context *exa; ExaDriverPtr pExa; - int i; exa = xcalloc(1, sizeof(struct exa_context)); if (!exa) @@ -615,13 +614,6 @@ xorg_exa_init(ScrnInfoPtr pScrn) /* Share context with DRI */ ms->ctx = exa->ctx; - /* common vertex data setup */ - for (i = 0; i < 4; ++i) { - exa->vertices[i][0][3] = 1.0f; /* w */ - exa->vertices[i][1][2] = 0.0f; /* r */ - exa->vertices[i][1][3] = 1.0f; /* q */ - } - exa->cso = cso_create_context(exa->ctx); exa->shaders = xorg_shaders_create(exa); diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index 90ad8400ff..d4ffe5ce2e 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; @@ -19,7 +22,10 @@ struct exa_context struct pipe_constant_buffer vs_const_buffer; struct pipe_constant_buffer fs_const_buffer; - float vertices[4][2][4]; + struct pipe_texture *bound_textures[MAX_EXA_SAMPLERS]; + int num_bound_samplers; + + float solid_color[4]; }; -- cgit v1.2.3 From 811aa02c7a0f4804189a8978395f07d27fb726ec Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 1 Sep 2009 14:43:59 -0400 Subject: st/xorg: fold back the helper function into core --- src/gallium/state_trackers/xorg/xorg_composite.c | 74 ++++++++++-------------- 1 file changed, 32 insertions(+), 42 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index 8a12c03267..132c05e4ac 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -222,46 +222,6 @@ setup_vertex_data2(struct exa_context *ctx, sizeof(vertices)); } - -static void -draw_pictures(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); - } -} - boolean xorg_composite_accelerated(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, @@ -536,7 +496,37 @@ void xorg_composite(struct exa_context *exa, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { - draw_pictures(exa, srcX, srcY, maskX, maskY, - dstX, dstY, width, 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); + } } -- cgit v1.2.3 From a8cbb1563213086f58d3b82b6d0755a59eb43c79 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 1 Sep 2009 17:49:32 -0400 Subject: st/xorg: setup solid fills --- src/gallium/state_trackers/xorg/xorg_composite.c | 34 ++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index 132c05e4ac..fafd77f052 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -40,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; @@ -355,8 +373,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_FILL; + vs_traits |= VS_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) { -- cgit v1.2.3 From 5c746d9214b72c181aa80f09aa527542e5b2f213 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 1 Sep 2009 18:59:01 -0400 Subject: st/xorg: redo the vertex shader --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 49 ++++++++++++++++++------- 1 file changed, 35 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index b5288bde4f..8e26b6f4a4 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) @@ -92,6 +94,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,17 +105,33 @@ 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, 0); ureg_MOV(ureg, dst, src); } - if ((vs_traits & VS_MASK)) { + if (is_fill) { + src = ureg_DECL_vs_input(ureg, + TGSI_SEMANTIC_COLOR, 1); + dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 0); + ureg_MOV(ureg, dst, src); + } + + if (has_mask) { src = ureg_DECL_vs_input(ureg, - TGSI_SEMANTIC_POSITION, 1); + TGSI_SEMANTIC_GENERIC, 2); dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 1); ureg_MOV(ureg, dst, src); } -- cgit v1.2.3 From 7e4487ad5c1dcaa77df980bd6ef598ee880dc1c4 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 1 Sep 2009 19:01:05 -0400 Subject: st/xorg: getting indexes right tends to be helpful --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 8e26b6f4a4..8876482ba1 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -119,20 +119,20 @@ create_vs(struct pipe_context *pipe, if (is_composite) { src = ureg_DECL_vs_input(ureg, TGSI_SEMANTIC_GENERIC, 1); - dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 0); + dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 1); ureg_MOV(ureg, dst, src); } if (is_fill) { src = ureg_DECL_vs_input(ureg, TGSI_SEMANTIC_COLOR, 1); - dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 0); + 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, 1); + dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 2); ureg_MOV(ureg, dst, src); } -- cgit v1.2.3 From 9f650e19dda3809e87c838b50b39669ea844a3b1 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Wed, 2 Sep 2009 01:28:46 +0300 Subject: radeon: Fix debug output to filter out less critical messages instead of more critical. --- src/mesa/drivers/dri/radeon/radeon_debug.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_debug.h b/src/mesa/drivers/dri/radeon/radeon_debug.h index 3e1481dfa1..132e27351d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_debug.h +++ b/src/mesa/drivers/dri/radeon/radeon_debug.h @@ -88,7 +88,7 @@ extern radeon_debug_type_t 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 + return RADEON_DEBUG_LEVEL >= level && (type & radeon_enabled_debug_types); } /* -- cgit v1.2.3 From 06bf6628aabd6744ebf4268319eba4a1d377ffe2 Mon Sep 17 00:00:00 2001 From: Pauli Nieminen Date: Wed, 2 Sep 2009 02:03:13 +0300 Subject: radeon: Fix OQ to set ful lstate as dirty too. --- src/mesa/drivers/dri/radeon/radeon_queryobj.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_queryobj.c b/src/mesa/drivers/dri/radeon/radeon_queryobj.c index ed5ebd18e4..b79d864ba2 100644 --- a/src/mesa/drivers/dri/radeon/radeon_queryobj.c +++ b/src/mesa/drivers/dri/radeon/radeon_queryobj.c @@ -133,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); } -- cgit v1.2.3 From 50d8b295f6c950da3b8783ff6e1803bdfbb5c7cc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:05:41 -0600 Subject: intel: use _mesa_meta_clear(), it's a bit faster --- src/mesa/drivers/dri/intel/intel_clear.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c index 630d2adab8..117a46f71e 100644 --- a/src/mesa/drivers/dri/intel/intel_clear.c +++ b/src/mesa/drivers/dri/intel/intel_clear.c @@ -46,6 +46,7 @@ #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" @@ -186,7 +187,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) { -- cgit v1.2.3 From 90cba4a8398bd0eacf4d17573732bec760cbd7c3 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:07:52 -0600 Subject: intel: trim down #includes --- src/mesa/drivers/dri/intel/intel_clear.c | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c index 117a46f71e..d1e7cb5361 100644 --- a/src/mesa/drivers/dri/intel/intel_clear.c +++ b/src/mesa/drivers/dri/intel/intel_clear.c @@ -27,24 +27,7 @@ **************************************************************************/ #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" -- cgit v1.2.3 From 886a0a715076213266b4f96118d15de5be2bff27 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:16:13 -0600 Subject: intel: use _mesa_meta_draw_pixels() The textured quad path is slightly faster and will work with POT textures on i945. --- src/mesa/drivers/dri/intel/intel_pixel_draw.c | 151 +------------------------- 1 file changed, 4 insertions(+), 147 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_pixel_draw.c b/src/mesa/drivers/dri/intel/intel_pixel_draw.c index a6b6824164..f94c6e4bc4 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_draw.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_draw.c @@ -48,6 +48,7 @@ #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" @@ -59,145 +60,8 @@ #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 +268,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); } -- cgit v1.2.3 From be229d24c4902b42b22e4533ad58c92a4fb11b05 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:18:55 -0600 Subject: intel: trim down #includes --- src/mesa/drivers/dri/intel/intel_pixel_draw.c | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_pixel_draw.c b/src/mesa/drivers/dri/intel/intel_pixel_draw.c index f94c6e4bc4..8c113881d6 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,23 +39,17 @@ #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" -- cgit v1.2.3 From 15e6d08670eeaf843ae3d6e557d595da750a5e99 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:23:01 -0600 Subject: intel: use _mesa_meta_copy_pixels() when do_blit_copypixels() fails Also, trim down #includes. --- src/mesa/drivers/dri/intel/intel_pixel_copy.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c index ca796b3655..07ca8f7ddb 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); } -- cgit v1.2.3 From a1e869b417745175e82377934619231363b1caba Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:23:52 -0600 Subject: intel: set Length/Offset fields in intel_bufferobj_map() --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 6f7077e17f..a3aabe9f37 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -267,6 +267,9 @@ intel_bufferobj_map(GLcontext * ctx, } obj->Pointer = intel_obj->buffer->virtual; + obj->Length = obj->Size; + obj->Offset = 0; + return obj->Pointer; } -- cgit v1.2.3 From 92d63931e2c42ececaec33f68e1bc388764dd62e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:24:30 -0600 Subject: mesa: obey stencil write mask in _mesa_meta_draw_pixels() --- src/mesa/drivers/common/meta.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index ec0da71fb9..965fb8697e 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -1429,6 +1429,7 @@ _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; @@ -1593,14 +1594,15 @@ _mesa_meta_draw_pixels(GLcontext *ctx, 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_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_ProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 0, - 255.0 / mask, 0.5, 0.0, 0.0); - - _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4); + _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4); + } } } else if (_mesa_is_depth_format(format)) { -- cgit v1.2.3 From 18916986b4a7155e3cba2efb5dfd79dc561cfa41 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:28:48 -0600 Subject: radeon: use _mesa_meta_clear() --- src/mesa/drivers/dri/radeon/radeon_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index 1836dbc79a..fa7cf3c42b 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -58,6 +58,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "tnl/tnl.h" #include "tnl/t_pipeline.h" #include "swrast_setup/swrast_setup.h" +#include "drivers/common/meta.h" #include "main/blend.h" #include "main/bufferobj.h" @@ -1370,6 +1371,5 @@ void rcommonBeginBatch(radeonContextPtr rmesa, int n, void radeonUserClear(GLcontext *ctx, GLuint mask) { - radeonContextPtr rmesa = RADEON_CONTEXT(ctx); - meta_clear_tris(&rmesa->meta, mask); + _mesa_meta_clear(ctx, mask); } -- cgit v1.2.3 From 85d35623859135fa6c6875be52b5c13a8d3263ba Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:32:01 -0600 Subject: radeon: trim down #includes --- src/mesa/drivers/dri/radeon/radeon_common.c | 28 ---------------------------- 1 file changed, 28 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index fa7cf3c42b..e53eb0904d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -45,45 +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 "drivers/common/meta.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 "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" /** -- cgit v1.2.3 From 5353961344dd75f839cfee50f226497171725cce Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:39:30 -0600 Subject: intel: fix incorrect parameter type for intel_bufferobj_map_range() --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index a3aabe9f37..920da1f4e0 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -291,7 +291,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); -- cgit v1.2.3 From c2542cdaffbd9b77ce0a710553d78834c04c4820 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:41:32 -0600 Subject: intel: use BUFFER_BITS_COLOR --- src/mesa/drivers/dri/intel/intel_clear.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c index d1e7cb5361..bce23724b3 100644 --- a/src/mesa/drivers/dri/intel/intel_clear.c +++ b/src/mesa/drivers/dri/intel/intel_clear.c @@ -124,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)); -- cgit v1.2.3 From 51334d840112557d7351b53be1208cb228add2cf Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 12:43:23 -0600 Subject: dri: remove unused meta_clear_tris() --- src/mesa/drivers/dri/common/dri_metaops.c | 246 ------------------------------ src/mesa/drivers/dri/common/dri_metaops.h | 22 +-- 2 files changed, 2 insertions(+), 266 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/common/dri_metaops.c b/src/mesa/drivers/dri/common/dri_metaops.c index cdbea34495..c7bea07dc9 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 bb4079d535..2487145326 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 -- cgit v1.2.3 From d55a28e3dc712342e4a2f25aa9b661add7461e82 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 15:34:16 -0600 Subject: mesa: replace 8 with MAX_TEXTURE_UNITS --- src/mesa/main/texenvprogram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 3e5d65c875..f19bb99300 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -109,7 +109,7 @@ struct state_key { GLuint NumArgsA:3; GLuint ModeA:5; struct mode_opt OptA[MAX_COMBINER_TERMS]; - } unit[8]; + } unit[MAX_TEXTURE_UNITS]; }; #define FOG_LINEAR 0 -- cgit v1.2.3 From f337e2c4954b4779dcf2c2b4e0e068cb3ed7b841 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 15:49:55 -0600 Subject: mesa: minor code clean-ups, comments --- src/mesa/main/texenvprogram.c | 58 +++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index f19bb99300..0898581485 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -83,8 +83,8 @@ texenv_doing_secondary_color(GLcontext *ctx) #define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM) struct mode_opt { - GLuint Source:4; - GLuint Operand:3; + GLuint Source:4; /**< SRC_x */ + GLuint Operand:3; /**< OPR_x */ }; struct state_key { @@ -103,11 +103,11 @@ struct state_key { GLuint ScaleShiftA:2; GLuint NumArgsRGB:3; - GLuint ModeRGB:5; + GLuint ModeRGB:5; /**< MODE_x */ struct mode_opt OptRGB[MAX_COMBINER_TERMS]; GLuint NumArgsA:3; - GLuint ModeA:5; + GLuint ModeA:5; /**< MODE_x */ struct mode_opt OptA[MAX_COMBINER_TERMS]; } unit[MAX_TEXTURE_UNITS]; }; @@ -240,7 +240,12 @@ 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 */ @@ -259,6 +264,7 @@ static GLuint translate_tex_src_bit( GLbitfield bit ) } } + #define VERT_BIT_TEX_ANY (0xff << VERT_ATTRIB_TEX0) #define VERT_RESULT_TEX_ANY (0xff << VERT_RESULT_TEX0) @@ -375,51 +381,50 @@ static void 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 ); 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<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) { @@ -952,6 +957,11 @@ static struct ureg emit_combine_source( struct texenv_fragment_program *p, } } +/** + * 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; @@ -1234,7 +1244,7 @@ static void load_texture( struct texenv_fragment_program *p, GLuint unit ) if (texTarget == TEXTURE_UNKNOWN_INDEX) program_error(p, "TexSrcBit"); - + /* TODO: Use D0_MASK_XY where possible. */ if (p->state->unit[unit].enabled) { -- cgit v1.2.3 From b5ec0a68589c5d8f0d4be2556ea6d6b01fd4e37d Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 15:51:23 -0600 Subject: mesa: simplify translate_tex_src_bit() --- src/mesa/main/texenvprogram.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 0898581485..ea0aa448e1 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -241,27 +241,13 @@ 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; } @@ -1230,7 +1216,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 ); @@ -1242,9 +1228,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) { -- cgit v1.2.3 From 9ed0315271c38f5fe9cdd65020a54cbb7f61ed2b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 15:57:36 -0600 Subject: mesa: more comments, clean-ups --- src/mesa/main/texenvprogram.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index ea0aa448e1..54960a1fa1 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -92,21 +92,21 @@ 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; 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 NumArgsRGB:3; /**< up to MAX_COMBINER_TERMS */ GLuint ModeRGB:5; /**< MODE_x */ struct mode_opt OptRGB[MAX_COMBINER_TERMS]; - GLuint NumArgsA:3; + GLuint NumArgsA:3; /**< up to MAX_COMBINER_TERMS */ GLuint ModeA:5; /**< MODE_x */ struct mode_opt OptA[MAX_COMBINER_TERMS]; } unit[MAX_TEXTURE_UNITS]; @@ -705,7 +705,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); @@ -950,15 +950,15 @@ static struct ureg emit_combine_source( struct texenv_fragment_program *p, */ 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; @@ -967,7 +967,7 @@ static GLboolean args_match( const 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; -- cgit v1.2.3 From c7ba2b8622d8a924b3ac4c7d94a3c19d12e88e03 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 15:58:49 -0600 Subject: mesa: remove unused ureg:negateabs field --- src/mesa/main/texenvprogram.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 54960a1fa1..869d8d026b 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -458,9 +458,8 @@ struct ureg { GLuint idx:8; GLuint negatebase:1; GLuint abs:1; - GLuint negateabs:1; GLuint swz:12; - GLuint pad:5; + GLuint pad:6; }; static const struct ureg undef = { @@ -469,7 +468,6 @@ static const struct ureg undef = { 0, 0, 0, - 0, 0 }; @@ -516,7 +514,6 @@ static struct ureg make_ureg(GLuint file, GLuint idx) reg.idx = idx; reg.negatebase = 0; reg.abs = 0; - reg.negateabs = 0; reg.swz = SWIZZLE_NOOP; reg.pad = 0; return reg; -- cgit v1.2.3 From 1480bcacfec8f215c5827278a5f984c6bf68ba69 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:01:12 -0600 Subject: mesa: remove unused ureg::abs field --- src/mesa/main/texenvprogram.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 869d8d026b..8c588538b1 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -457,9 +457,8 @@ struct ureg { GLuint file:4; GLuint idx:8; GLuint negatebase:1; - GLuint abs:1; GLuint swz:12; - GLuint pad:6; + GLuint pad:7; }; static const struct ureg undef = { @@ -467,7 +466,6 @@ static const struct ureg undef = { ~0, 0, 0, - 0, 0 }; @@ -513,7 +511,6 @@ static struct ureg make_ureg(GLuint file, GLuint idx) reg.file = file; reg.idx = idx; reg.negatebase = 0; - reg.abs = 0; reg.swz = SWIZZLE_NOOP; reg.pad = 0; return reg; @@ -679,7 +676,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, -- cgit v1.2.3 From 95136694ab28829f75c0a9f955a79836a0c433c7 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:03:28 -0600 Subject: mesa: remove unused texenv_fragment_program::ctx field --- src/mesa/main/texenvprogram.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 8c588538b1..5c61c97354 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -474,7 +474,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. */ @@ -1345,7 +1344,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; -- cgit v1.2.3 From 25e5a6f279cec0863dcc341805aa7ca71189b626 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:05:07 -0600 Subject: mesa: updated #includes --- src/mesa/main/texenvprogram.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 5c61c97354..7efb10c5a0 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" -- cgit v1.2.3 From 84d6bed4d6844110af23a995e2fad0280a92d46c Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:10:57 -0600 Subject: mesa: change conditional to match the previous one --- src/mesa/main/texenvprogram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 7efb10c5a0..b316c25809 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1401,7 +1401,7 @@ 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[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 */ -- cgit v1.2.3 From 457e427e32324884acb064b756e327dc131ff135 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:22:02 -0600 Subject: mesa: more clean-ups --- src/mesa/main/texenvprogram.c | 55 ++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index b316c25809..5913957969 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -944,7 +944,7 @@ static GLboolean args_match( const struct state_key *key, GLuint unit ) { GLuint i, numArgs = key->unit[unit].NumArgsRGB; - for (i = 0 ; i < numArgs ; i++) { + for (i = 0; i < numArgs; i++) { if (key->unit[unit].OptA[i].Source != key->unit[unit].OptRGB[i].Source) return GL_FALSE; @@ -1278,7 +1278,7 @@ 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 ) { const struct state_key *key = p->state; GLuint i; @@ -1298,7 +1298,7 @@ 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 ) { const struct state_key *key = p->state; GLuint bumpedUnitNr = key->unit[unit].OptRGB[1].Source - SRC_TEXTURE0; @@ -1314,17 +1314,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,17 +1354,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++) { @@ -1378,10 +1381,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 < ctx->Const.MaxTextureUnits; unit++) + if (key->unit[unit].enabled && + key->unit[unit].ModeRGB == MODE_BUMP_ENVMAP_ATI) { needbumpstage = GL_TRUE; load_texunit_bumpmap( &p, unit ); } @@ -1392,7 +1397,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 < ctx->Const.MaxTextureUnits; unit++) if (key->unit[unit].enabled) { load_texunit_sources( &p, unit ); p.last_tex_stage = unit; @@ -1400,7 +1405,7 @@ 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++) + for (unit = 0; unit < ctx->Const.MaxTextureUnits; 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 */ @@ -1434,9 +1439,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"); -- cgit v1.2.3 From 921bbfc94278d6897d44d1b6ae230315e2ab6e8c Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 16:26:03 -0600 Subject: mesa: remove redundant assignments --- src/mesa/main/texstate.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index 6e0c0c688a..861c5f37c4 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 ); -- cgit v1.2.3 From 278e76832fc26678592368b7b89bfddc137e0e93 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 17:11:35 -0600 Subject: mesa: new _mesa_expand_bitmap() function --- src/mesa/main/image.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/mesa/main/image.h | 7 +++++ 2 files changed, 92 insertions(+) (limited to 'src') diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index 006a55116b..baecbab0a3 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -1259,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 a082f37457..72717d6787 100644 --- a/src/mesa/main/image.h +++ b/src/mesa/main/image.h @@ -134,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 */ /*@{*/ -- cgit v1.2.3 From d5b6dd0001c90b896400e69067d21297d7601f32 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 17:11:59 -0600 Subject: st/mesa: use new _mesa_expand_bitmap() function --- src/mesa/state_tracker/st_cb_bitmap.c | 61 +++-------------------------------- 1 file changed, 4 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index ccf972f805..3171b67376 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); } -- cgit v1.2.3 From 29e22059a927a6279d035cdb149b053f8a3e0bf4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 17:12:47 -0600 Subject: intel: use _mesa_expand_bitmap() to skip an intermediate buffer --- src/mesa/drivers/dri/intel/intel_pixel_bitmap.c | 27 ++++++------------------- 1 file changed, 6 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c index 540e7620a9..b543a0bbc3 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, -- cgit v1.2.3 From 282f578dbd790d7e5d7f371c51b72f116cda3934 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 1 Sep 2009 17:40:07 -0600 Subject: mesa: skip bitmap drawing code if width==0 or height==0 --- src/mesa/main/drawpix.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index 67311f71a2..aef6585641 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) { -- cgit v1.2.3 From a82cd55a5cb1ad617960551560b107edffad1e9a Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 2 Sep 2009 12:03:42 +1000 Subject: nv50: SWZ is the same as MOV from our perspective --- src/gallium/drivers/nv50/nv50_program.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 289c3485e0..1cb1ce74bd 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -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; -- cgit v1.2.3 From 60b08eb1fdf287d28ec66b9282513ab35a61aee0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 31 Aug 2009 10:13:22 -0700 Subject: mesa: Make MultiDrawElements submit multiple primitives at once. Previously, MultiDrawElements just called DrawElements a bunch of times. By sending several primitives down the pipeline at once, we avoid a bunch of validation. On my GL demo, this improves fps by 2.5% (+/- .41%) and reduces CPU usage by 70.5% (+/- 2.9%) (n=3). Reviewed by: Ian Romanick --- src/mesa/main/api_exec.c | 1 - src/mesa/main/api_noop.c | 15 ++++ src/mesa/main/api_noop.h | 4 ++ src/mesa/main/dd.h | 6 +- src/mesa/main/dlist.c | 14 +--- src/mesa/main/varray.c | 18 ----- src/mesa/main/vtxfmt.c | 1 + src/mesa/main/vtxfmt_tmp.h | 12 ++++ src/mesa/vbo/vbo_exec_array.c | 157 ++++++++++++++++++++++++++++++++++++++++++ src/mesa/vbo/vbo_save_api.c | 5 ++ 10 files changed, 200 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index 199550b35d..cbf48615bf 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -529,7 +529,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 */ diff --git a/src/mesa/main/api_noop.c b/src/mesa/main/api_noop.c index 66f9c4e6bd..09ba7e5062 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 8bf4660800..a7956d00b3 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/dd.h b/src/mesa/main/dd.h index 1d92e510a4..f02e868d4a 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1150,7 +1150,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 9b68b3e116..8cff9ea64a 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/varray.c b/src/mesa/main/varray.c index be1c03cec2..6cd2a2f4f6 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 1f807dc3dc..8d6f560a80 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 6f5d01e40f..1308d0aa46 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/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index 4148469ef4..12911f5750 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 cdbbc9c187..1771510d84 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 ); } -- cgit v1.2.3 From f5539b6991e336aa1cf302dbdb1a29b3e85cff36 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Thu, 20 Aug 2009 18:19:36 +0800 Subject: i965: validate sf state --- src/mesa/drivers/dri/i965/brw_misc_state.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c index 85a7706404..ea71857548 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); } -- cgit v1.2.3 From 98a8744e02c5c1aa0c97c0265680f09f92a68818 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Wed, 2 Sep 2009 13:27:25 +0800 Subject: i965: CS FENCE in URB_FENCE is 11-bits wide --- src/mesa/drivers/dri/i965/brw_structs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_structs.h b/src/mesa/drivers/dri/i965/brw_structs.h index a6de09207b..66d4127271 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; }; -- cgit v1.2.3 From 385620e5ebcbd5ee1fb4eaf75083ea540ac53955 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 2 Sep 2009 15:41:40 +0200 Subject: st/xorg: Add EXA UploadToScreen and DownloadFromScreen hooks. --- src/gallium/state_trackers/xorg/xorg_exa.c | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 1ed807de93..a17a71f23a 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -97,6 +97,68 @@ ExaMarkSync(ScreenPtr pScreen) return 1; } +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) { @@ -599,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; -- cgit v1.2.3 From 0b26d97f4d48e5f7e5a4230a411e3a1d91928bb4 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 2 Sep 2009 15:41:41 +0200 Subject: st/dri: Slight consolidation of DRI2 buffer handling. Always use / assume a combined depth/stencil buffer. Also update drawable formats from surfaces returned by the driver. --- src/gallium/state_trackers/dri/dri_drawable.c | 54 +++++++++++++-------------- src/gallium/state_trackers/dri/dri_drawable.h | 3 +- 2 files changed, 27 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/dri/dri_drawable.c b/src/gallium/state_trackers/dri/dri_drawable.c index bcfd1c06fe..5cec9e329d 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 9f9cb29b97..b910930db4 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 * -- cgit v1.2.3 From ea55f8ed8fc18245d74e04c0ae8e1a4911a37f26 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 2 Sep 2009 16:00:30 +0200 Subject: st/xorg: Add support for xserver Git master DRI2 interface. Reorganize to handle both interfaces with common code. --- src/gallium/state_trackers/xorg/xorg_dri2.c | 231 ++++++++++++++++++---------- src/gallium/state_trackers/xorg/xorg_exa.h | 1 + 2 files changed, 151 insertions(+), 81 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c index 3b90421de9..537ce2d9a8 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,55 @@ 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: + 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 */ + 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 +105,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 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 +227,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 +239,8 @@ driDestroyBuffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count) } } +#endif /* DRI2INFOREC_VERSION */ + static void driCopyRegion(DrawablePtr pDraw, RegionPtr pRegion, DRI2BufferPtr pDestBuffer, DRI2BufferPtr pSrcBuffer) @@ -273,15 +336,21 @@ driScreenInit(ScreenPtr pScreen) modesettingPtr ms = modesettingPTR(pScrn); DRI2InfoRec dri2info; - dri2info.version = 1; + dri2info.version = DRI2INFOREC_VERSION; dri2info.fd = ms->fd; dri2info.driverName = pScrn->driverName; dri2info.deviceName = "/dev/dri/card0"; /* FIXME */ +#if 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_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index d4ffe5ce2e..5b515be139 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.h +++ b/src/gallium/state_trackers/xorg/xorg_exa.h @@ -35,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 */ -- cgit v1.2.3 From c0cf0fd163397d68acfb2e226a6b9a569ded54cd Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 2 Sep 2009 16:01:21 +0200 Subject: st/xorg: Remove code no longer support by xserver Git master. Shouldn't be necessary with older versions either. --- src/gallium/state_trackers/xorg/xorg_driver.c | 41 ------------------------ src/gallium/state_trackers/xorg/xorg_winsys.h | 2 -- src/gallium/winsys/drm/intel/xorg/intel_xorg.c | 10 ++---- src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c | 10 ++---- 4 files changed, 4 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index bc3fd54bdb..643b6b3b9e 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 @@ -84,42 +82,10 @@ static const OptionInfoRec Options[] = { {-1, NULL, OPTV_NONE, {0}, FALSE} }; -/* - * 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_winsys.h b/src/gallium/state_trackers/xorg/xorg_winsys.h index d523080e90..47ee4b9ffd 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/xorg/intel_xorg.c b/src/gallium/winsys/drm/intel/xorg/intel_xorg.c index 28107f4b80..369dc356cf 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 = { @@ -104,12 +104,6 @@ intel_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin) setupDone = 1; 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/radeon/xorg/radeon_xorg.c b/src/gallium/winsys/drm/radeon/xorg/radeon_xorg.c index f2c6ee5f9a..837f2aa8fe 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 = { @@ -105,12 +105,6 @@ radeon_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin) setupDone = 1; 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. -- cgit v1.2.3 From a46e32787d98192d35bf2834011cfa5537e0e703 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 2 Sep 2009 05:11:25 -0700 Subject: mesa: Compact state key for TexEnv program cache By rearranging the bitfields within the key we can reduce the size of the key from 644 to 196 bytes, reducing the cost of both the hashing and equality tests. --- src/mesa/main/texenvprogram.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 5913957969..b16b8dd36b 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -82,8 +82,8 @@ texenv_doing_secondary_color(GLcontext *ctx) #define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM) struct mode_opt { - GLuint Source:4; /**< SRC_x */ - GLuint Operand:3; /**< OPR_x */ + GLubyte Source:4; /**< SRC_x */ + GLubyte Operand:3; /**< OPR_x */ }; struct state_key { @@ -103,10 +103,11 @@ struct state_key { GLuint NumArgsRGB:3; /**< up to MAX_COMBINER_TERMS */ GLuint ModeRGB:5; /**< MODE_x */ - struct mode_opt OptRGB[MAX_COMBINER_TERMS]; GLuint NumArgsA:3; /**< up to MAX_COMBINER_TERMS */ GLuint ModeA:5; /**< MODE_x */ + + struct mode_opt OptRGB[MAX_COMBINER_TERMS]; struct mode_opt OptA[MAX_COMBINER_TERMS]; } unit[MAX_TEXTURE_UNITS]; }; @@ -1497,6 +1498,7 @@ _mesa_get_fixed_func_fragment_program(GLcontext *ctx) struct gl_fragment_program *prog; struct state_key key; + printf("SIZE OF KEY %d\n", sizeof(key)); make_state_key(ctx, &key); prog = (struct gl_fragment_program *) -- cgit v1.2.3 From 83e4470d9a3367883b3fe699629f1d8648459a89 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 08:45:34 -0600 Subject: mesa: added #ifdef __GNUC__ around GLubyte bitfield usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It would be nice if there were a #pragma or something to disable the warnings: main/texenvprogram.c:87: warning: type of bit-field ‘Source’ is a GCC extension main/texenvprogram.c:88: warning: type of bit-field ‘Operand’ is a GCC extension but there doesn't appear to be a way to do that. --- src/mesa/main/texenvprogram.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index b16b8dd36b..770a2c26f7 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -82,8 +82,13 @@ texenv_doing_secondary_color(GLcontext *ctx) #define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM) struct mode_opt { +#ifdef __GNUC__ GLubyte Source:4; /**< SRC_x */ GLubyte Operand:3; /**< OPR_x */ +#else + GLubyte Source; /**< SRC_x */ + GLubyte Operand; /**< OPR_x */ +#endif }; struct state_key { -- cgit v1.2.3 From 8cb651578de8dc4c956eaa8c0e5f1d442a3d4a92 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 09:25:28 -0600 Subject: mesa: remove accidentally committed printf --- src/mesa/main/texenvprogram.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 770a2c26f7..d5343d44db 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1503,7 +1503,6 @@ _mesa_get_fixed_func_fragment_program(GLcontext *ctx) struct gl_fragment_program *prog; struct state_key key; - printf("SIZE OF KEY %d\n", sizeof(key)); make_state_key(ctx, &key); prog = (struct gl_fragment_program *) -- cgit v1.2.3 From a7a3d3c27144595b2134f4271996cba901938d12 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 09:43:00 -0600 Subject: mesa: replace 8 with NUM_UNITS --- src/mesa/main/ffvertex_prog.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 8e21a27f89..356476e35a 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]; }; -- cgit v1.2.3 From d98b9f4edbbee1654b66c8df7b1deeb401b3dc5f Mon Sep 17 00:00:00 2001 From: Gary Wong Date: Wed, 2 Sep 2009 10:11:15 -0600 Subject: mesa: silence gcc bit-field warning --- src/mesa/main/texenvprogram.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index d5343d44db..b4923e904d 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -83,8 +83,8 @@ texenv_doing_secondary_color(GLcontext *ctx) struct mode_opt { #ifdef __GNUC__ - GLubyte Source:4; /**< SRC_x */ - GLubyte Operand:3; /**< OPR_x */ + __extension__ GLubyte Source:4; /**< SRC_x */ + __extension__ GLubyte Operand:3; /**< OPR_x */ #else GLubyte Source; /**< SRC_x */ GLubyte Operand; /**< OPR_x */ -- cgit v1.2.3 From 4b08e7498230eac30eea1721f33994b30999acd4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 10:12:15 -0600 Subject: mesa: fix the non-GNU C bit-field case --- src/mesa/main/texenvprogram.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index b4923e904d..165d464e3b 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -86,8 +86,8 @@ struct mode_opt { __extension__ GLubyte Source:4; /**< SRC_x */ __extension__ GLubyte Operand:3; /**< OPR_x */ #else - GLubyte Source; /**< SRC_x */ - GLubyte Operand; /**< OPR_x */ + GLuint Source; /**< SRC_x */ + GLuint Operand; /**< OPR_x */ #endif }; -- cgit v1.2.3 From 5e809216a8d2e7ad093a1d25f3f6495f29e57572 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 10:38:46 -0600 Subject: Revert "mesa: fix the non-GNU C bit-field case" This reverts commit 4b08e7498230eac30eea1721f33994b30999acd4. Don't know what I was thinking there. --- src/mesa/main/texenvprogram.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 165d464e3b..b4923e904d 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -86,8 +86,8 @@ struct mode_opt { __extension__ GLubyte Source:4; /**< SRC_x */ __extension__ GLubyte Operand:3; /**< OPR_x */ #else - GLuint Source; /**< SRC_x */ - GLuint Operand; /**< OPR_x */ + GLubyte Source; /**< SRC_x */ + GLubyte Operand; /**< OPR_x */ #endif }; -- cgit v1.2.3 From 7d8f33590f656e406b35cebc7144e958e829ca3e Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 2 Sep 2009 19:48:49 +0200 Subject: st/xorg: Guard against realy old versions of Xorg --- src/gallium/state_trackers/xorg/xorg_dri2.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c index 537ce2d9a8..6431a0fe25 100644 --- a/src/gallium/state_trackers/xorg/xorg_dri2.c +++ b/src/gallium/state_trackers/xorg/xorg_dri2.c @@ -79,11 +79,13 @@ driDoCreateBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int format) 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); @@ -151,7 +153,7 @@ driDoDestroyBuffer(DrawablePtr pDraw, DRI2BufferPtr buffer) (*pScreen->DestroyPixmap)(private->pPixmap); } -#if DRI2INFOREC_VERSION > 2 +#if defined(DRI2INFOREC_VERSION) && DRI2INFOREC_VERSION > 2 static DRI2BufferPtr driCreateBuffer(DrawablePtr pDraw, unsigned int attachment, unsigned int format) @@ -336,13 +338,17 @@ 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 DRI2INFOREC_VERSION > 2 +#if defined(DRI2INFOREC_VERSION) && DRI2INFOREC_VERSION > 2 dri2info.CreateBuffer = driCreateBuffer; dri2info.DestroyBuffer = driDestroyBuffer; #else -- cgit v1.2.3 From aecba6b1c8c6a82018183460450f5a4bf53d02ce Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 1 Sep 2009 22:07:37 -0700 Subject: intel: Move MapBufferRange mesa state setting up to cover the 915 case. --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 920da1f4e0..b7e50b0027 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -299,6 +299,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; @@ -314,13 +321,6 @@ intel_bufferobj_map_range(GLcontext * ctx, if ((access & GL_MAP_WRITE_BIT) && !(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; -- cgit v1.2.3 From 82313eed01b191320721dab63d353a1634f89231 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 2 Sep 2009 11:33:08 -0700 Subject: intel: Sync a synchronized READ_BIT map buffer range with GL drawing to it. It's probably uncommon, but would obviously have gone wrong. --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index b7e50b0027..b8a0363b74 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -318,7 +318,7 @@ 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); if (intel_obj->buffer == NULL) { -- cgit v1.2.3 From ec32ef12b3a496008cc982acfefca570a88e92eb Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 2 Sep 2009 12:07:37 -0700 Subject: intel: Add support for FlushMappedBufferRange for ARB_map_buffer_range. This should help for the usage by the VBO module, where we would upload the whole remaining chunk of the buffer for a series of range maps that should cover just a segment of it. --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 73 ++++++++++++++++++----- src/mesa/drivers/dri/intel/intel_buffer_objects.h | 1 + 2 files changed, 59 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index b8a0363b74..ae6f3064a8 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -344,19 +344,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; } @@ -373,6 +378,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(). @@ -388,6 +425,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); @@ -395,10 +441,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, @@ -528,6 +570,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 06a8ab9824..bf3e08a320 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; -- cgit v1.2.3 From cbde2765804a4fc62bcf092230a01376aedbf2cd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 2 Sep 2009 12:17:28 -0700 Subject: Revert "i965: Use VBOs in the VBO module on 965, now that we have ARB_map_buffer_range." This reverts commit 00413d87426f14df47d90ba3c995e1889e9f88ca. Even with fixes, using ARB_map_buffer_range in the VBO module isn't showing up as a significant win, and some cases apparently regressed. Bug #23624. --- src/mesa/drivers/dri/i965/brw_context.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index e76e9fdcc8..3c5b848319 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; } -- cgit v1.2.3 From d918896a754460bfcc5a9ba1e2844255f21ecab7 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 2 Sep 2009 17:16:03 -0400 Subject: st/xorg: handle solid fills in the fragment shader --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 8876482ba1..4fe8a30e3d 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -150,20 +150,34 @@ create_fs(struct pipe_context *pipe, struct ureg_src dst_pos, src_pos, mask_pos; struct ureg_src src, mask; struct ureg_dst out; + boolean is_fill = fs_traits & VS_FILL; + boolean is_composite = fs_traits & VS_COMPOSITE; + boolean has_mask = fs_traits & VS_MASK; 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_pos = ureg_DECL_fs_input(ureg, + TGSI_SEMANTIC_POSITION, + 0, + TGSI_INTERPOLATE_PERSPECTIVE); + } + if (is_fill) { + src_pos = ureg_DECL_fs_input(ureg, + TGSI_SEMANTIC_COLOR, + 0, + TGSI_INTERPOLATE_PERSPECTIVE); + } if ((fs_traits & FS_MASK)) { mask_sampler = ureg_DECL_sampler(ureg); -- cgit v1.2.3 From dc9de8064f52b12d29d9ecd51b765973ac293fac Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 2 Sep 2009 17:21:28 -0400 Subject: st/xorg: flip the coordinate system --- src/gallium/state_trackers/xorg/xorg_composite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index fafd77f052..d0cac75855 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -325,7 +325,7 @@ bind_viewport_state(struct exa_context *exa, PicturePtr pDstPicture) int width = pDstPicture->pDrawable->width; int height = pDstPicture->pDrawable->height; - set_viewport(exa, width, height, Y0_BOTTOM); + set_viewport(exa, width, height, Y0_TOP); } static void -- cgit v1.2.3 From d6b58a97c2f94ca54852414103c4ac2832279f2f Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 2 Sep 2009 18:38:23 -0400 Subject: st/xorg: handle xrender repeat modes --- src/gallium/state_trackers/xorg/xorg_composite.c | 30 ++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index d0cac75855..7fa36fda51 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -94,6 +94,24 @@ blend_for_op(int op) return xorg_blends[BLEND_OP_OVER]; } +static INLINE int +render_repeat_to_gallium(int mode) +{ + 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"); + } + return PIPE_TEX_WRAP_REPEAT; +} + static INLINE void setup_vertex0(float vertex[2][4], float x, float y, @@ -417,8 +435,10 @@ bind_samplers(struct exa_context *exa, int op, 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; @@ -428,8 +448,10 @@ bind_samplers(struct exa_context *exa, int op, } 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; -- cgit v1.2.3 From 206eb504930e5c5f8c947949bcaf20b11627fac7 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 2 Sep 2009 18:39:21 -0400 Subject: st/xorg: fix warnings --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 4fe8a30e3d..38b3a3aaab 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -146,13 +146,13 @@ 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 /*dst_sampler,*/ src_sampler, mask_sampler; + struct ureg_src /*dst_pos,*/ src_pos, mask_pos; struct ureg_src src, mask; struct ureg_dst out; boolean is_fill = fs_traits & VS_FILL; boolean is_composite = fs_traits & VS_COMPOSITE; - boolean has_mask = fs_traits & VS_MASK; + /*boolean has_mask = fs_traits & VS_MASK;*/ ureg = ureg_create(TGSI_PROCESSOR_FRAGMENT); if (ureg == NULL) -- cgit v1.2.3 From e5b93e116180d7ae360af1fd3e7b05f14ebce656 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 3 Sep 2009 12:01:27 +1000 Subject: radeon/dri2: add gl20 bits for r300/r600 just like dri1 does --- src/mesa/drivers/dri/radeon/radeon_screen.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c index daee3b85d9..5ffb55db5e 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.c +++ b/src/mesa/drivers/dri/radeon/radeon_screen.c @@ -1690,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)) { -- cgit v1.2.3 From 5f7c532b1e5414f65e126948b35cf9e1ef10c3a1 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 3 Sep 2009 12:01:52 +1000 Subject: radeon: pass internal format into the miptree. We need to figure out if the compression format changes. without this texcmp segfaults if you change format enough times. --- src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c | 16 +++++++++------- src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h | 5 +++-- src/mesa/drivers/dri/radeon/radeon_texture.c | 4 ++-- 3 files changed, 14 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c index d9f17cfc58..38db305e2a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c +++ b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c @@ -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 7ece688493..db28252da3 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_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index 181b23c396..fad3d1ceda 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; @@ -966,7 +966,7 @@ int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *t if (!t->mt) { 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; -- cgit v1.2.3 From a25d0dc9ec66e5de932e6e154f6bef9ffa6ab653 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 3 Sep 2009 14:14:31 +1000 Subject: r600: make sure the active shader bo is re-added to persistent list. --- src/mesa/drivers/dri/r600/r600_texstate.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index 237eaa8249..9fb083d33e 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -49,6 +49,7 @@ 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" void r600UpdateTextureState(GLcontext * ctx); @@ -647,6 +648,7 @@ GLboolean r600ValidateBuffers(GLcontext * ctx) { context_t *rmesa = R700_CONTEXT(ctx); struct radeon_renderbuffer *rrb; + struct radeon_bo *pbo; int i; int ret; @@ -688,6 +690,12 @@ 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); + } + 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; -- cgit v1.2.3 From c19b52f10fe11282f0a3466eda2eeb1d422b7aa3 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 3 Sep 2009 14:14:47 +1000 Subject: r600: visual depth has no meaning here. fbos get angry when this happens. --- src/mesa/drivers/dri/r600/r700_state.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 91cb492ce6..09344426f4 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -1451,18 +1451,8 @@ static void r700SetDepthTarget(context_t *context) 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); - } + SETfield(r700->DB_DEPTH_INFO.u32All, DEPTH_8_24, + DB_DEPTH_INFO__FORMAT_shift, DB_DEPTH_INFO__FORMAT_mask); } else { -- cgit v1.2.3 From e938d4a0535a6dc18c170ac40585424754961cc4 Mon Sep 17 00:00:00 2001 From: Cooper Yuan Date: Thu, 3 Sep 2009 17:06:18 +0800 Subject: r300g: specify point/line/triangle have stuffed texture coord --- src/gallium/drivers/r300/r300_state_invariant.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_state_invariant.c b/src/gallium/drivers/r300/r300_state_invariant.c index 1e92374a4e..7d822fec48 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. -- cgit v1.2.3 From c8258b95d63dd002d532309abdc95b51c57e6b45 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Thu, 3 Sep 2009 12:37:05 +0200 Subject: nv50: fix draw_elements_inline_u08/16 We've been emitting the same two indices over and over without incrementing map. --- src/gallium/drivers/nv50/nv50_vbo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c index 36f1b24b2f..daa49cf463 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; -- cgit v1.2.3 From ffee352726750849b1e1efd00c52ddae813805f3 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Thu, 3 Sep 2009 12:39:46 +0200 Subject: nv50: fix vbo_static_attrib method size error The VTX_ATTR_3/2/1F methods also had size 4 ... a stupid copy/paste error. --- src/gallium/drivers/nv50/nv50_vbo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c index daa49cf463..eeed148c7b 100644 --- a/src/gallium/drivers/nv50/nv50_vbo.c +++ b/src/gallium/drivers/nv50/nv50_vbo.c @@ -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: -- cgit v1.2.3 From 8b1ef3fa357f5bbd6d3f73714a86ce380b867a71 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Thu, 3 Sep 2009 12:54:41 +0200 Subject: nv50: move centroid, flat bits when making interp long Before this, just the perspective divide bit was moved in convert_to_long of the load interpolant instruction. --- src/gallium/drivers/nv50/nv50_program.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 1cb1ce74bd..4a838529de 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 */ -- cgit v1.2.3 From 848ab8be8c34b00b2afe6120882f8c29f047ced5 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Thu, 3 Sep 2009 15:16:25 +0100 Subject: aux/tgsi: pull back ureg work from 0.1 branch Manual merge of ureg changes on the branch. Too much unrelated stuff for a proper merge. --- src/gallium/auxiliary/tgsi/tgsi_dump.c | 31 ++-- src/gallium/auxiliary/tgsi/tgsi_exec.c | 61 ++++++- src/gallium/auxiliary/tgsi/tgsi_exec.h | 8 + src/gallium/auxiliary/tgsi/tgsi_info.c | 238 +++++++++++++------------- src/gallium/auxiliary/tgsi/tgsi_info.h | 10 +- src/gallium/auxiliary/tgsi/tgsi_sanity.c | 4 +- src/gallium/auxiliary/tgsi/tgsi_ureg.c | 122 ++++++++++--- src/gallium/auxiliary/tgsi/tgsi_ureg.h | 119 ++++++++++++- src/gallium/auxiliary/tgsi/tgsi_util.h | 4 + src/gallium/auxiliary/util/u_math.h | 4 + src/gallium/auxiliary/util/u_simple_shaders.c | 2 +- 11 files changed, 429 insertions(+), 174 deletions(-) (limited to 'src') diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c index 05b07a3a73..111d95b666 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 d3ffd4a85f..60ffa188df 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -3094,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 */ @@ -3101,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); @@ -3112,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 */ @@ -3121,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 fd9ef6f35d..3baa94dbdd 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 e69cd05213..17af4cb7ad 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 }, - { 0, 0, 0, 0, "", 20 }, /* removed */ - { 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 b2375c6971..74713c3b98 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_sanity.c b/src/gallium/auxiliary/tgsi/tgsi_sanity.c index 4fe8553c42..8a13885da9 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_ureg.c b/src/gallium/auxiliary/tgsi/tgsi_ureg.c index c0a0627e0b..f7096bd8e2 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 8836a1ea0e..acbca59040 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 7877f34558..21eb656327 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_math.h b/src/gallium/auxiliary/util/u_math.h index b0807c1339..4c6c2bc00e 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 d54a1d8c74..eb311d29f9 100644 --- a/src/gallium/auxiliary/util/u_simple_shaders.c +++ b/src/gallium/auxiliary/util/u_simple_shaders.c @@ -103,7 +103,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, -- cgit v1.2.3 From 2f6d2a9e27f8582591dc60655f7d7b14d7552bbc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 09:41:41 -0600 Subject: mesa: change ctx->Driver.BufferData() to return GLboolean for success/failure Return GL_FALSE if we failed to allocate the buffer. Then raise GL_OUT_OF_MEMORY in core Mesa. --- src/mesa/drivers/dri/intel/intel_buffer_objects.c | 11 ++++++--- .../drivers/dri/radeon/radeon_buffer_objects.c | 9 ++++++-- src/mesa/main/bufferobj.c | 26 +++++++++++++++------- src/mesa/main/dd.h | 6 ++--- src/mesa/state_tracker/st_cb_bufferobjects.c | 9 ++++---- 5 files changed, 41 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index ae6f3064a8..c55c5c426e 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; } diff --git a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c index e8ae51e6ea..a24b6dac26 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/main/bufferobj.c b/src/mesa/main/bufferobj.c index ebca798635..81b77b6ff2 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; } } @@ -1107,8 +1113,6 @@ _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size, FLUSH_VERTICES(ctx, _NEW_BUFFER_OBJECT); - ASSERT(ctx->Driver.BufferData); - bufObj->Written = GL_TRUE; #ifdef VBO_DEBUG @@ -1119,8 +1123,11 @@ _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size, #ifdef BOUNDS_CHECK size += 100; #endif - /* Give the buffer object to the driver! 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)"); + } } @@ -1209,9 +1216,9 @@ _mesa_MapBufferARB(GLenum target, GLenum access) map = ctx->Driver.MapBuffer( ctx, target, access, bufObj ); if (!map) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glMapBufferARB(access)"); + return NULL; } - - if (map) { + else { /* The driver callback should have set these fields. * This is important because other modules (like VBO) might call * the driver function directly. @@ -1538,7 +1545,10 @@ _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, ASSERT(ctx->Driver.MapBufferRange); map = ctx->Driver.MapBufferRange(ctx, target, offset, length, access, bufObj); - if (map) { + 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. diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index f02e868d4a..4400e166c6 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -783,9 +783,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, diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index 69dd76d083..8e09d0b932 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; } -- cgit v1.2.3 From 07f9ad5c322ce409fdd4b86e3913f7cc085520b5 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 3 Sep 2009 12:38:10 -0400 Subject: st/xorg: adjust enums in preperation for gradients --- src/gallium/state_trackers/xorg/xorg_composite.c | 4 ++-- src/gallium/state_trackers/xorg/xorg_exa_tgsi.h | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index 7fa36fda51..c708ac3170 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -393,8 +393,8 @@ bind_shaders(struct exa_context *exa, int op, if (pSrcPicture) { if (pSrcPicture->pSourcePict) { if (pSrcPicture->pSourcePict->type == SourcePictTypeSolidFill) { - fs_traits |= FS_FILL; - vs_traits |= VS_FILL; + fs_traits |= FS_SOLID_FILL; + vs_traits |= VS_SOLID_FILL; pixel_to_float4(pSrcPicture->pFormat, pSrcPicture->pSourcePict->solidFill.color, exa->solid_color); diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h index 003e5d8caf..1535a0c8c3 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 { -- cgit v1.2.3 From 5643942517f05c7a986d208be4402927a111555e Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 3 Sep 2009 12:44:15 -0400 Subject: st/xorg: cleanup and adjust to the changes in the ureg code --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 38b3a3aaab..f9b10d8569 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -165,8 +165,8 @@ create_fs(struct pipe_context *pipe, TGSI_SEMANTIC_COLOR, 0); - src_sampler = ureg_DECL_sampler(ureg); if (is_composite) { + src_sampler = ureg_DECL_sampler(ureg, 0); src_pos = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0, @@ -180,7 +180,7 @@ create_fs(struct pipe_context *pipe, } if ((fs_traits & FS_MASK)) { - mask_sampler = ureg_DECL_sampler(ureg); + mask_sampler = ureg_DECL_sampler(ureg, 1); mask_pos = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 1, @@ -188,7 +188,7 @@ 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, -- cgit v1.2.3 From 87a4fa56ae473946b84233fda59d40dd479a4d64 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 3 Sep 2009 19:28:38 +0100 Subject: i915g: Don't send flush flags to HW --- src/gallium/drivers/i915simple/i915_flush.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/i915_flush.c b/src/gallium/drivers/i915simple/i915_flush.c index b223dadab6..1582168eba 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: */ -- cgit v1.2.3 From 8303c722cbfd75bc181b5d281ab3be836104b088 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 3 Sep 2009 19:30:36 +0100 Subject: i915g: Don't run in sync with HW --- src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c index 77b3fec17a..5c3e66fb57 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -12,6 +12,8 @@ #define INTEL_BATCH_NO_CLIPRECTS 0x1 #define INTEL_BATCH_CLIPRECTS 0x2 +#undef INTEL_RUN_SYNC + struct intel_drm_batchbuffer { struct intel_batchbuffer base; @@ -172,19 +174,20 @@ intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch, drm_intel_bo_unmap(batch->bo); } else { - /* TODO figgure out why the gpu hangs if we don't run sync */ +#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); -#if 0 - (*fence) = intel_drm_fence_create(batch->bo); -#else +#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 } -- cgit v1.2.3 From 3070b13f4c418359ca11f6cf44b39dcf630b29fb Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 3 Sep 2009 19:30:54 +0100 Subject: i915g: Up the number of relocs --- src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c index 5c3e66fb57..5ca3ad9762 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -60,7 +60,7 @@ intel_drm_batchbuffer_create(struct intel_winsys *iws) batch->base.size = 0; batch->base.relocs = 0; - batch->base.max_relocs = 100;/*INTEL_DEFAULT_RELOCS;*/ + batch->base.max_relocs = 300;/*INTEL_DEFAULT_RELOCS;*/ batch->base.iws = iws; -- cgit v1.2.3 From e0ec405a9fa6fbc1cf2ac531ed5efd1a64e01f18 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 10:36:49 -0600 Subject: intel: helper to debug bufmgr (disabled) --- src/mesa/drivers/dri/intel/intel_context.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index 46f1a7f720..ec96747f05 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -640,6 +640,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; -- cgit v1.2.3 From 1b448c7a5cafa68eeead2a4c45f4362a9883383b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 11:29:18 -0600 Subject: mesa: consolidate PBO map/unmap helpers Instead of _mesa_map_readpix_pbo() use _mesa_map_pbo_source(). Instead of _mesa_map_drawpix_pbo() and _mesa_map_bitmap_pbo() use _mesa_map_pbo_dest(). --- src/mesa/main/bufferobj.c | 99 ++++++++++--------------------- src/mesa/main/bufferobj.h | 27 +++------ src/mesa/state_tracker/st_cb_bitmap.c | 6 +- src/mesa/state_tracker/st_cb_drawpixels.c | 10 ++-- src/mesa/state_tracker/st_cb_readpixels.c | 6 +- src/mesa/state_tracker/st_cb_texture.c | 4 +- src/mesa/swrast/s_bitmap.c | 4 +- src/mesa/swrast/s_drawpix.c | 4 +- src/mesa/swrast/s_readpix.c | 4 +- 9 files changed, 60 insertions(+), 104 deletions(-) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 81b77b6ff2..1ae63a0ef6 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -658,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 @@ -676,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! */ @@ -708,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; @@ -730,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; @@ -742,13 +746,13 @@ _mesa_map_bitmap_pbo(GLcontext *ctx, /** - * Counterpart to _mesa_map_bitmap_pbo() - * This is a helper function for (some) drivers. + * Counterpart to _mesa_map_pbo_source() */ void -_mesa_unmap_bitmap_pbo(GLcontext *ctx, +_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); @@ -757,57 +761,17 @@ _mesa_unmap_bitmap_pbo(GLcontext *ctx, /** - * \sa _mesa_map_bitmap_pbo - */ -const GLvoid * -_mesa_map_drawpix_pbo(GLcontext *ctx, - const struct gl_pixelstore_attrib *unpack, - const GLvoid *pixels) -{ - const GLvoid *buf; - - 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; - - buf = ADD_POINTERS(buf, pixels); - } - else { - /* unpack from normal memory */ - buf = pixels; - } - - return buf; -} - - -/** - * \sa _mesa_unmap_bitmap_pbo - */ -void -_mesa_unmap_drawpix_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); - } -} - - -/** - * 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; @@ -831,12 +795,13 @@ _mesa_map_readpix_pbo(GLcontext *ctx, /** - * Counterpart to _mesa_map_readpix_pbo() + * 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); } diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index decb44a65e..2e7afc2d76 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -81,32 +81,23 @@ _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); + const GLvoid *src); extern void -_mesa_unmap_bitmap_pbo(GLcontext *ctx, +_mesa_unmap_pbo_source(GLcontext *ctx, const struct gl_pixelstore_attrib *unpack); -extern const GLvoid * -_mesa_map_drawpix_pbo(GLcontext *ctx, - const struct gl_pixelstore_attrib *unpack, - const GLvoid *pixels); - -extern void -_mesa_unmap_drawpix_pbo(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 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/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 3171b67376..902fb38d1a 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -275,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; } @@ -287,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; } @@ -302,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_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index d19a88fa7c..e00754a036 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); diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index ccf1a0b563..75424aa2e7 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 90a059ca69..dc39a70121 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -870,7 +870,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 +903,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); diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c index 5e7822cf32..3dbdf2a61a 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_drawpix.c b/src/mesa/swrast/s_drawpix.c index a9ef8e685f..d31c402eea 100644 --- a/src/mesa/swrast/s_drawpix.c +++ b/src/mesa/swrast/s_drawpix.c @@ -847,7 +847,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,7 +892,7 @@ _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); } diff --git a/src/mesa/swrast/s_readpix.c b/src/mesa/swrast/s_readpix.c index e901fc6b5d..48b9408d24 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); } -- cgit v1.2.3 From 203f395aaf717a6faf21a76979cc24d544ae148b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 10:41:14 -0600 Subject: mesa: use new _mesa_map_pbo_source/dest() functions in more places This trims down the code a bit. The next step would be to combine the validate and map operations into one helper... --- src/mesa/main/colortab.c | 63 +++++------- src/mesa/main/convolve.c | 100 +++++++------------ src/mesa/main/histogram.c | 67 +++++-------- src/mesa/main/pixel.c | 239 ++++++++++++++++------------------------------ src/mesa/main/polygon.c | 77 ++++++--------- 5 files changed, 192 insertions(+), 354 deletions(-) (limited to 'src') diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index 36304065eb..91c29882ec 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -179,27 +179,22 @@ 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) { + 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; + } + + data = _mesa_map_pbo_source(ctx, &ctx->Unpack, data); + if (!data) { + if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glColor[Sub]Table(PBO mapped)"); - return; } - data = ADD_POINTERS(buf, data); + return; } - { /* convert user-provided data to GLfloat values */ GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4]; @@ -279,10 +274,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 +688,27 @@ _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) { + 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; + } + + data = _mesa_map_pbo_dest(ctx, &ctx->Pack, data); + if (!data) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { /* buffer is already mapped - that's an error */ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetColorTable(PBO is mapped)"); - return; } - data = ADD_POINTERS(buf, 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/convolve.c b/src/mesa/main/convolve.c index 69dba72ed3..7e0761e68b 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -144,27 +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 */ + 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; + } + + image = _mesa_map_pbo_source(ctx, &ctx->Unpack, image); + if (!image) { + if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glConvolutionFilter1D(PBO is mapped)"); - return; } - image = ADD_POINTERS(buf, image); - } - else if (!image) { return; } @@ -173,10 +165,7 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G 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,27 +231,19 @@ _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 */ + 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; + } + + image = _mesa_map_pbo_source(ctx, &ctx->Unpack, image); + if (!image) { + if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glConvolutionFilter2D(PBO is mapped)"); - return; } - image = ADD_POINTERS(buf, image); - } - else if (!image) { return; } @@ -276,10 +257,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,26 +576,21 @@ _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 */ + 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; + } + + image = _mesa_map_pbo_dest(ctx, &ctx->Pack, image); + if (!image) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glGetConvolutionFilter(PBO is mapped)"); - return; } - image = ADD_POINTERS(image, buf); + return; } for (row = 0; row < filter->Height; row++) { @@ -629,10 +602,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); } diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c index 726a50d3b1..f1d01cdb62 100644 --- a/src/mesa/main/histogram.c +++ b/src/mesa/main/histogram.c @@ -649,27 +649,19 @@ _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) { + 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; + } + + values = _mesa_map_pbo_dest(ctx, &ctx->Pack, values); + if (!values) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { /* 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 */ return; } @@ -687,10 +679,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,27 +722,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 */ + 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; + } + + values = _mesa_map_pbo_dest(ctx, &ctx->Pack, values); + if (!values) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { _mesa_error(ctx,GL_INVALID_OPERATION,"glGetHistogram(PBO is mapped)"); - return; } - values = ADD_POINTERS(buf, values); - } - else if (!values) { - /* not an error */ return; } @@ -761,10 +741,7 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, G (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/pixel.c b/src/mesa/main/pixel.c index 25f55a422f..fcef6dfd42 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 d11c9424d5..e327a52415 100644 --- a/src/mesa/main/polygon.c +++ b/src/mesa/main/polygon.c @@ -193,32 +193,25 @@ _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) { + 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; + } + + pattern = _mesa_map_pbo_source(ctx, &ctx->Unpack, pattern); + if (!pattern) { + if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { _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); + return; } + + _mesa_unpack_polygon_stipple(pattern, ctx->PolygonStipple, &ctx->Unpack); + + _mesa_unmap_pbo_source(ctx, &ctx->Unpack); } @@ -255,35 +248,25 @@ _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) { + 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; + } + + dest = _mesa_map_pbo_dest(ctx, &ctx->Pack, dest); + if (!dest) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { _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); + return; } + + _mesa_pack_polygon_stipple(ctx->PolygonStipple, dest, &ctx->Pack); + + _mesa_unmap_pbo_dest(ctx, &ctx->Pack); } -- cgit v1.2.3 From dc947c8f92732fab75f89015e2d506e964a41ace Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 11:22:27 -0600 Subject: mesa: combined PBO validate/map helpers --- src/mesa/main/bufferobj.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++ src/mesa/main/bufferobj.h | 16 +++++++++ 2 files changed, 98 insertions(+) (limited to 'src') diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 1ae63a0ef6..b95e00af5b 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -745,6 +745,47 @@ _mesa_map_pbo_source(GLcontext *ctx, } +/** + * 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_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) +{ + 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_source(ctx, unpack, ptr); + return ptr; +} + + /** * Counterpart to _mesa_map_pbo_source() */ @@ -794,6 +835,47 @@ _mesa_map_pbo_dest(GLcontext *ctx, } +/** + * 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() */ diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index 2e7afc2d76..9f732ec0c0 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -86,6 +86,14 @@ _mesa_map_pbo_source(GLcontext *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src); +extern const GLvoid * +_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_pbo_source(GLcontext *ctx, const struct gl_pixelstore_attrib *unpack); @@ -95,6 +103,14 @@ _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_pbo_dest(GLcontext *ctx, const struct gl_pixelstore_attrib *pack); -- cgit v1.2.3 From 95027a00870bc1d12ea24dfb092a0cad6cbd5035 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 11:23:05 -0600 Subject: mesa: use new combined PBO validate/map helpers --- src/mesa/main/colortab.c | 39 ++++++++----------------------- src/mesa/main/convolve.c | 58 ++++++++++++----------------------------------- src/mesa/main/histogram.c | 34 +++++++-------------------- src/mesa/main/polygon.c | 38 ++++++++----------------------- 4 files changed, 43 insertions(+), 126 deletions(-) (limited to 'src') diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index 91c29882ec..5a7de5f209 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -179,21 +179,12 @@ store_colortable_entries(GLcontext *ctx, struct gl_color_table *table, GLfloat bScale, GLfloat bBias, GLfloat aScale, GLfloat aBias) { - 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)"); + data = _mesa_map_validate_pbo_source(ctx, + 1, &ctx->Unpack, count, 1, 1, + format, type, data, + "glColor[Sub]Table"); + if (!data) return; - } - - data = _mesa_map_pbo_source(ctx, &ctx->Unpack, data); - if (!data) { - if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glColor[Sub]Table(PBO mapped)"); - } - return; - } { /* convert user-provided data to GLfloat values */ @@ -688,22 +679,12 @@ _mesa_GetColorTable( GLenum target, GLenum format, return; } - 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)"); + data = _mesa_map_validate_pbo_dest(ctx, + 1, &ctx->Pack, table->Size, 1, 1, + format, type, data, + "glGetColorTable"); + if (!data) return; - } - - data = _mesa_map_pbo_dest(ctx, &ctx->Pack, data); - if (!data) { - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - /* buffer is already mapped - that's an error */ - _mesa_error(ctx, GL_INVALID_OPERATION, - "glGetColorTable(PBO is mapped)"); - } - return; - } _mesa_pack_rgba_span_float(ctx, table->Size, rgba, format, type, data, &ctx->Pack, 0x0); diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c index 7e0761e68b..714909f451 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -144,21 +144,12 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G ctx->Convolution1D.Width = width; ctx->Convolution1D.Height = 1; - if (!_mesa_validate_pbo_access(1, &ctx->Unpack, width, 1, 1, - format, type, image)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glConvolutionFilter1D(invalid PBO access)"); + image = _mesa_map_validate_pbo_source(ctx, + 1, &ctx->Unpack, width, 1, 1, + format, type, image, + "glConvolutionFilter1D"); + if (!image) return; - } - - image = _mesa_map_pbo_source(ctx, &ctx->Unpack, image); - if (!image) { - if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glConvolutionFilter1D(PBO is mapped)"); - } - return; - } _mesa_unpack_color_span_float(ctx, width, GL_RGBA, ctx->Convolution1D.Filter, @@ -231,21 +222,12 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G ctx->Convolution2D.Width = width; ctx->Convolution2D.Height = height; - if (!_mesa_validate_pbo_access(2, &ctx->Unpack, width, height, 1, - format, type, image)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glConvolutionFilter2D(invalid PBO access)"); + image = _mesa_map_validate_pbo_source(ctx, + 2, &ctx->Unpack, width, height, 1, + format, type, image, + "glConvolutionFilter2D"); + if (!image) return; - } - - image = _mesa_map_pbo_source(ctx, &ctx->Unpack, image); - if (!image) { - if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glConvolutionFilter2D(PBO is mapped)"); - } - return; - } /* Unpack filter image. We always store filters in RGBA format. */ for (i = 0; i < height; i++) { @@ -576,22 +558,12 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, return; } - 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; - } - - image = _mesa_map_pbo_dest(ctx, &ctx->Pack, image); - if (!image) { - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glGetConvolutionFilter(PBO is mapped)"); - } + 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, diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c index f1d01cdb62..ceb0d5a6a8 100644 --- a/src/mesa/main/histogram.c +++ b/src/mesa/main/histogram.c @@ -649,21 +649,11 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvo return; } - 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; - } - values = _mesa_map_pbo_dest(ctx, &ctx->Pack, values); - if (!values) { - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - /* buffer is already mapped - that's an error */ - _mesa_error(ctx, GL_INVALID_OPERATION,"glGetMinMax(PBO is mapped)"); - } + values = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack, 2, 1, 1, + format, type, values, "glGetMinmax"); + if (!values) return; - } { GLfloat minmax[2][4]; @@ -722,20 +712,12 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, G return; } - 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)"); + values = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack, + ctx->Histogram.Width, 1, 1, + format, type, values, + "glGetHistogram"); + if (!values) return; - } - - values = _mesa_map_pbo_dest(ctx, &ctx->Pack, values); - if (!values) { - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - _mesa_error(ctx,GL_INVALID_OPERATION,"glGetHistogram(PBO is mapped)"); - } - return; - } pack_histogram(ctx, ctx->Histogram.Width, (CONST GLuint (*)[4]) ctx->Histogram.Count, diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c index e327a52415..376a87a396 100644 --- a/src/mesa/main/polygon.c +++ b/src/mesa/main/polygon.c @@ -193,21 +193,12 @@ _mesa_PolygonMode( GLenum face, GLenum mode ) void _mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern) { - 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)"); + pattern = _mesa_map_validate_pbo_source(ctx, 2, + &ctx->Unpack, 32, 32, 1, + GL_COLOR_INDEX, GL_BITMAP, pattern, + "glPolygonStipple"); + if (!pattern) return; - } - - pattern = _mesa_map_pbo_source(ctx, &ctx->Unpack, pattern); - if (!pattern) { - if (_mesa_is_bufferobj(ctx->Unpack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glPolygonStipple(PBO mapped)"); - } - return; - } _mesa_unpack_polygon_stipple(pattern, ctx->PolygonStipple, &ctx->Unpack); @@ -248,21 +239,12 @@ _mesa_GetPolygonStipple( GLubyte *dest ) if (MESA_VERBOSE&VERBOSE_API) _mesa_debug(ctx, "glGetPolygonStipple\n"); - 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)"); + dest = _mesa_map_validate_pbo_dest(ctx, 2, + &ctx->Pack, 32, 32, 1, + GL_COLOR_INDEX, GL_BITMAP, dest, + "glGetPolygonStipple"); + if (!dest) return; - } - - dest = _mesa_map_pbo_dest(ctx, &ctx->Pack, dest); - if (!dest) { - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glGetPolygonStipple(PBO mapped)"); - } - return; - } _mesa_pack_polygon_stipple(ctx->PolygonStipple, dest, &ctx->Pack); -- cgit v1.2.3 From 2db37ef659a43267dcb4c7a3c69b410a60a2a5d6 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 11:41:29 -0600 Subject: mesa: use new combined PBO validate/map helpers in convolution/filter funcs --- src/mesa/main/convolve.c | 89 +++++++++++++----------------------------------- 1 file changed, 23 insertions(+), 66 deletions(-) (limited to 'src') diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c index 714909f451..4d17f533d7 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -744,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, row, + "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); - } } @@ -847,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, + "glSeperableFilter2D"); 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], @@ -892,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, row, + "glSeperableFilter2D"); if (column) { _mesa_unpack_color_span_float(ctx, height, GL_RGBA, &ctx->Separable2D.Filter[colStart], @@ -911,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)) { -- cgit v1.2.3 From 5cd7042088bdd0b5d9a92f4fc927029a46a23734 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 11:46:28 -0600 Subject: swrast: wrap comment to 80 columns, remove dead code --- src/mesa/swrast/s_drawpix.c | 63 +++++---------------------------------------- 1 file changed, 6 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/mesa/swrast/s_drawpix.c b/src/mesa/swrast/s_drawpix.c index d31c402eea..6970b2e9cb 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); @@ -894,56 +896,3 @@ _swrast_DrawPixels( GLcontext *ctx, _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 -- cgit v1.2.3 From 7a7d5879e28607c151132a8b6a07cf4be36b5b3e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Sep 2009 15:39:13 -0600 Subject: mesa: compute tex env program key size based on nr_enabled_units When no textures are enabled, the key size is 4 bytes. If unit[0] is enabled, the key size is 16 bytes. Inspired by a patch from Chris Wilson. --- src/mesa/main/texenvprogram.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index b4923e904d..870970a355 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -99,6 +99,7 @@ struct state_key { 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; /**< TEXTURE_x_INDEX */ @@ -368,11 +369,12 @@ 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; const GLbitfield inputs_available = get_fp_input_mask( ctx ); + GLuint keySize; memset(key, 0, sizeof(*key)); @@ -390,7 +392,7 @@ static void make_state_key( GLcontext *ctx, struct state_key *key ) key->unit[i].enabled = 1; key->enabled_units |= (1<nr_enabled_units = i+1; + key->nr_enabled_units = i + 1; inputs_referenced |= FRAG_BIT_TEX(i); key->unit[i].source_index = @@ -443,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. @@ -1390,7 +1399,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, GLboolean needbumpstage = GL_FALSE; /* Zeroth pass - bump map textures first */ - for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) + 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; @@ -1403,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; @@ -1411,7 +1420,7 @@ 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++) + 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 */ @@ -1502,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 *) @@ -1516,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; -- cgit v1.2.3 From d75a99edd6386ab26d69a3f0cbbed4c79fe5fad4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 12:10:53 -0600 Subject: mesa: fix typos in separable filter functions --- src/mesa/main/convolve.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mesa/main/convolve.c b/src/mesa/main/convolve.c index 4d17f533d7..70951112a1 100644 --- a/src/mesa/main/convolve.c +++ b/src/mesa/main/convolve.c @@ -761,7 +761,7 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type, /* get column filter */ column = _mesa_map_validate_pbo_dest(ctx, 1, &ctx->Pack, filter->Height, 1, 1, - format, type, row, + format, type, column, "glGetConvolutionFilter"); if (column) { GLvoid *dst = _mesa_image_address1d(&ctx->Pack, column, filter->Height, @@ -827,7 +827,7 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs row = _mesa_map_validate_pbo_source(ctx, 1, &ctx->Unpack, width, 1, 1, format, type, row, - "glSeperableFilter2D"); + "glSeparableFilter2D"); if (row) { _mesa_unpack_color_span_float(ctx, width, GL_RGBA, ctx->Separable2D.Filter, @@ -849,8 +849,8 @@ _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLs /* unpack column filter */ column = _mesa_map_validate_pbo_source(ctx, 1, &ctx->Unpack, height, 1, 1, - format, type, row, - "glSeperableFilter2D"); + format, type, column, + "glSeparableFilter2D"); if (column) { _mesa_unpack_color_span_float(ctx, height, GL_RGBA, &ctx->Separable2D.Filter[colStart], -- cgit v1.2.3 From 10067e464132e6d484c34dd277da5eb5e21cf491 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Aug 2009 15:37:25 -0700 Subject: ARB sync: Add infrastructure for glGetInteger64v --- src/mesa/main/dd.h | 2 + src/mesa/main/get.c | 1832 ++++++++++++++++++++++++++++++++++++++++++++++ src/mesa/main/get.h | 3 + src/mesa/main/get_gen.py | 22 +- src/mesa/main/imports.h | 1 + src/mesa/main/macros.h | 3 + 6 files changed, 1862 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 4400e166c6..3a59872b5a 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); /*@}*/ diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index d0c9cea00c..fc742c4a90 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -20,8 +20,11 @@ #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE ) #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. @@ -5543,6 +5546,1835 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) } } +#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; + 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 9b47b230a9..77a9a7d04b 100644 --- a/src/mesa/main/get.h +++ b/src/mesa/main/get.h @@ -47,6 +47,9 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ); 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 ); diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py index 97dc785020..4f0feaad3c 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" } @@ -1029,10 +1031,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 +1055,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 +1066,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 +1127,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 @@ -1142,8 +1158,11 @@ def EmitHeader(): #define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE ) #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 +1240,6 @@ EmitHeader() EmitGetFunction(StateVars, GLboolean) EmitGetFunction(StateVars, GLfloat) EmitGetFunction(StateVars, GLint) +EmitGetFunction(StateVars, GLint64) EmitGetDoublev() diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index fb85f0862c..7d4012a856 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 4ca7957ffa..3d9a1aba98 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)) -- cgit v1.2.3 From 10a09e49fc57fb4fee432a9f41ee4cf07e55fa74 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Aug 2009 15:49:27 -0700 Subject: ARB sync: Add base infrastructure for GL_ARB_sync --- src/mesa/glapi/ARB_sync.xml | 81 +++++++++++++++++++++++++++++++++++++++++++++ src/mesa/glapi/Makefile | 1 + src/mesa/glapi/gl_API.xml | 2 ++ 3 files changed, 84 insertions(+) create mode 100644 src/mesa/glapi/ARB_sync.xml (limited to 'src') diff --git a/src/mesa/glapi/ARB_sync.xml b/src/mesa/glapi/ARB_sync.xml new file mode 100644 index 0000000000..58989b084a --- /dev/null +++ b/src/mesa/glapi/ARB_sync.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mesa/glapi/Makefile b/src/mesa/glapi/Makefile index f706309b56..65edab7cec 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/gl_API.xml b/src/mesa/glapi/gl_API.xml index d2fcc6dc1f..1dfd92be08 100644 --- a/src/mesa/glapi/gl_API.xml +++ b/src/mesa/glapi/gl_API.xml @@ -7954,6 +7954,8 @@ + + -- cgit v1.2.3 From 064913430dd288c40351b41ab9e4040d3e92f0df Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Aug 2009 15:50:28 -0700 Subject: ARB sync: Regenerate files from previous commit --- src/mesa/drivers/dri/common/extension_helper.h | 62 + src/mesa/glapi/dispatch.h | 487 +- src/mesa/glapi/glapioffsets.h | 452 +- src/mesa/glapi/glapitable.h | 443 +- src/mesa/glapi/glapitemp.h | 268 +- src/mesa/glapi/glprocs.h | 1184 ++--- src/mesa/main/enums.c | 6230 ++++++++++++------------ src/mesa/sparc/glapi_sparc.S | 147 +- src/mesa/x86-64/glapi_x86-64.S | 2373 +++++---- src/mesa/x86/glapi_x86.S | 155 +- 10 files changed, 6149 insertions(+), 5652 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/common/extension_helper.h b/src/mesa/drivers/dri/common/extension_helper.h index 08a97bb111..790a2bc896 100644 --- a/src/mesa/drivers/dri/common/extension_helper.h +++ b/src/mesa/drivers/dri/common/extension_helper.h @@ -383,6 +383,13 @@ static const char ReplacementCodeuiNormal3fVertex3fSUN_names[] = ""; #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[] = "iip\0" /* Parameter signature */ @@ -1065,6 +1072,13 @@ static const char VertexAttrib1sARB_names[] = ""; #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[] = "iiii\0" /* Parameter signature */ @@ -1346,6 +1360,13 @@ static const char LoadProgramNV_names[] = ""; #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[] = "ip\0" /* Parameter signature */ @@ -2219,6 +2240,13 @@ static const char VertexAttrib2dARB_names[] = ""; #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[] = "iiii\0" /* Parameter signature */ @@ -3334,6 +3362,13 @@ static const char VertexAttrib3fvARB_names[] = ""; #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[] = "ip\0" /* Parameter signature */ @@ -4324,6 +4359,13 @@ static const char DrawMeshArraysSUN_names[] = ""; #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[] = "iiiiiip\0" /* Parameter signature */ @@ -4616,6 +4658,13 @@ static const char GetShaderiv_names[] = ""; #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[] = "i\0" /* Parameter signature */ @@ -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/glapi/dispatch.h b/src/mesa/glapi/dispatch.h index 2f5cc55f00..8288c0a263 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, (void (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, (GLuint (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/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index 01fd6f7158..6d4ab09b07 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 c23e9a63cf..2c661a0ae5 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 */ + void (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 567 */ + void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 568 */ + GLuint (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 68e7a9a4f0..7b211918c1 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 void KEYWORD2 NAME(ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) +{ + 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 GLuint 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 21e96a9325..ae6603262e 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/enums.c b/src/mesa/main/enums.c index ad40bb6e78..9f650dadd3 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/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S index 34c1e09ad8..5b2c9e4a9a 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/x86-64/glapi_x86-64.S b/src/mesa/x86-64/glapi_x86-64.S index 10525d4c65..db917f3982 100644 --- a/src/mesa/x86-64/glapi_x86-64.S +++ b/src/mesa/x86-64/glapi_x86-64.S @@ -21349,13 +21349,264 @@ GL_PREFIX(CopyBufferSubData): #endif /* defined(GLX_USE_TLS) */ .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/glapi_x86.S b/src/mesa/x86/glapi_x86.S index 204175b72d..46794adaf7 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) -- cgit v1.2.3 From 96bdd993ec2e02da676b2f7c6a15017e022e7185 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Aug 2009 15:53:00 -0700 Subject: Eliminate trailing whitespace in extension_helper.c --- src/mesa/drivers/dri/common/extension_helper.h | 1346 ++++++++++++------------ src/mesa/glapi/extension_helper.py | 2 +- 2 files changed, 674 insertions(+), 674 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/common/extension_helper.h b/src/mesa/drivers/dri/common/extension_helper.h index 790a2bc896..40a030ce0d 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,28 +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[] = +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" @@ -406,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" @@ -414,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" @@ -422,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" @@ -451,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" @@ -466,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" @@ -502,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" @@ -531,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" @@ -548,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" @@ -584,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" @@ -606,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" @@ -614,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" @@ -622,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" @@ -637,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" @@ -694,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" @@ -709,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" @@ -745,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" @@ -753,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" @@ -845,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" @@ -854,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" @@ -862,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" @@ -898,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" @@ -906,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" @@ -921,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" @@ -936,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" @@ -986,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" @@ -1022,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" @@ -1065,7 +1065,7 @@ 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" @@ -1073,35 +1073,35 @@ static const char VertexAttrib1sARB_names[] = #endif #if defined(need_GL_ARB_sync) -static const char FenceSync_names[] = +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" @@ -1109,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" @@ -1117,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" @@ -1125,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" @@ -1133,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" @@ -1149,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" @@ -1159,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" @@ -1168,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" @@ -1176,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" @@ -1212,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" @@ -1241,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" @@ -1249,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" @@ -1258,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" @@ -1273,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" @@ -1288,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" @@ -1303,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" @@ -1332,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" @@ -1347,42 +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[] = +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" @@ -1390,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" @@ -1398,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" @@ -1413,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" @@ -1435,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" @@ -1457,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" @@ -1465,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" @@ -1480,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" @@ -1509,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" @@ -1538,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" @@ -1546,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" @@ -1589,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" @@ -1618,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" @@ -1633,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" @@ -1663,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" @@ -1671,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" @@ -1679,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" @@ -1694,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" @@ -1709,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" @@ -1724,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" @@ -1732,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" @@ -1754,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" @@ -1762,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" @@ -1777,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" @@ -1792,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" @@ -1800,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" @@ -1843,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" @@ -1851,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" @@ -1873,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" @@ -1902,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" @@ -1917,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" @@ -1967,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" @@ -2003,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" @@ -2018,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" @@ -2033,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" @@ -2084,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" @@ -2099,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" @@ -2107,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" @@ -2115,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" @@ -2130,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" @@ -2180,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" @@ -2195,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" @@ -2218,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" @@ -2233,7 +2233,7 @@ 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" @@ -2241,21 +2241,21 @@ static const char VertexAttrib2dARB_names[] = #endif #if defined(need_GL_ARB_sync) -static const char GetInteger64v_names[] = +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" @@ -2264,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" @@ -2272,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" @@ -2280,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" @@ -2302,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" @@ -2310,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" @@ -2318,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" @@ -2326,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" @@ -2376,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" @@ -2384,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" @@ -2434,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" @@ -2442,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" @@ -2450,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" @@ -2472,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" @@ -2480,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" @@ -2488,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" @@ -2496,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" @@ -2518,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" @@ -2526,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" @@ -2548,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" @@ -2556,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" @@ -2571,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" @@ -2579,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" @@ -2608,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" @@ -2616,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" @@ -2645,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" @@ -2682,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" @@ -2690,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" @@ -2698,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" @@ -2727,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" @@ -2742,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" @@ -2772,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" @@ -2808,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" @@ -2816,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" @@ -2838,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" @@ -2853,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" @@ -2875,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" @@ -2883,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" @@ -2905,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" @@ -2920,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" @@ -2935,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" @@ -2964,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" @@ -2972,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" @@ -2987,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" @@ -2995,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" @@ -3010,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" @@ -3025,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" @@ -3033,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" @@ -3042,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" @@ -3050,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" @@ -3058,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" @@ -3066,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" @@ -3081,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" @@ -3131,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" @@ -3139,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" @@ -3148,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" @@ -3163,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" @@ -3178,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" @@ -3186,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" @@ -3194,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" @@ -3202,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" @@ -3238,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" @@ -3253,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" @@ -3275,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" @@ -3283,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" @@ -3298,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" @@ -3355,7 +3355,7 @@ 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" @@ -3363,14 +3363,14 @@ static const char VertexAttrib3fvARB_names[] = #endif #if defined(need_GL_ARB_sync) -static const char GetSynciv_names[] = +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" @@ -3378,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" @@ -3393,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" @@ -3408,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" @@ -3445,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" @@ -3460,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" @@ -3475,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" @@ -3490,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" @@ -3512,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" @@ -3541,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" @@ -3549,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" @@ -3564,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" @@ -3594,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" @@ -3602,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" @@ -3617,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" @@ -3625,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" @@ -3661,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" @@ -3669,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" @@ -3712,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" @@ -3720,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" @@ -3735,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" @@ -3744,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" @@ -3752,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" @@ -3767,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" @@ -3810,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" @@ -3818,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" @@ -3826,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" @@ -3834,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" @@ -3842,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" @@ -3857,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" @@ -3865,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" @@ -3881,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" @@ -3889,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" @@ -3897,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" @@ -3919,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" @@ -3955,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" @@ -3977,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" @@ -3999,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" @@ -4035,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" @@ -4043,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" @@ -4051,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" @@ -4059,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" @@ -4074,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" @@ -4110,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" @@ -4118,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" @@ -4126,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" @@ -4142,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" @@ -4192,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" @@ -4200,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" @@ -4215,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" @@ -4265,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" @@ -4280,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" @@ -4302,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" @@ -4331,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" @@ -4339,42 +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[] = +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" @@ -4383,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" @@ -4412,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" @@ -4434,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" @@ -4442,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" @@ -4450,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" @@ -4465,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" @@ -4487,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" @@ -4502,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" @@ -4511,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" @@ -4526,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" @@ -4541,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" @@ -4577,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" @@ -4599,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" @@ -4607,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" @@ -4615,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" @@ -4637,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" @@ -4645,35 +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[] = +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" @@ -4681,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" @@ -4689,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" @@ -4697,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" @@ -4733,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" @@ -4749,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" @@ -4757,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" @@ -4772,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" @@ -4780,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" @@ -4844,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" @@ -4852,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" @@ -4874,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" @@ -4889,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" @@ -4918,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" @@ -4954,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" @@ -4962,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" @@ -4970,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" @@ -5006,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" @@ -5014,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" diff --git a/src/mesa/glapi/extension_helper.py b/src/mesa/glapi/extension_helper.py index 64f64a2fd8..83471d89f5 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(): -- cgit v1.2.3 From f37070bab6af350caec905ea7658e9241042b6cc Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 28 Aug 2009 20:10:05 -0700 Subject: ARB sync: Add support for GL_ARB_sync to swrast This isn't quite right yet. The delete behavior and the context clean-up needs some work. --- src/mesa/drivers/common/driverfuncs.c | 8 + src/mesa/drivers/dri/swrast/swrast.c | 2 + src/mesa/main/api_exec.c | 14 ++ src/mesa/main/context.c | 12 ++ src/mesa/main/dd.h | 16 ++ src/mesa/main/extensions.c | 4 + src/mesa/main/get.c | 19 ++ src/mesa/main/get_gen.py | 7 + src/mesa/main/mfeatures.h | 1 + src/mesa/main/mtypes.h | 21 ++ src/mesa/main/syncobj.c | 372 ++++++++++++++++++++++++++++++++++ src/mesa/main/syncobj.h | 64 ++++++ src/mesa/sources.mak | 1 + 13 files changed, 541 insertions(+) create mode 100644 src/mesa/main/syncobj.c create mode 100644 src/mesa/main/syncobj.h (limited to 'src') diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c index 3b397fef7d..a9f3c8e727 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/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 3aa7843b1b..69b92e9e44 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 }, { "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/main/api_exec.c b/src/mesa/main/api_exec.c index cbf48615bf..02550ae108 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" @@ -823,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/context.c b/src/mesa/main/context.c index 4651760d78..f6d4ac4595 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 @@ -1013,6 +1022,9 @@ _mesa_free_context_data( GLcontext *ctx ) _mesa_free_shader_state(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); diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 3a59872b5a..4a700b5cb4 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1044,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 }; diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 195fdde346..e3070b1547 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) }, @@ -239,6 +240,9 @@ _mesa_enable_sw_extensions(GLcontext *ctx) #endif #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; diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index fc742c4a90..477ed01030 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -19,6 +19,9 @@ #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 ) @@ -1887,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); } @@ -3714,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); } @@ -5541,6 +5552,10 @@ _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); } @@ -7369,6 +7384,10 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params ) 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); } diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py index 4f0feaad3c..2878c1b552 100644 --- a/src/mesa/main/get_gen.py +++ b/src/mesa/main/get_gen.py @@ -1022,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"] ), ] @@ -1157,6 +1161,9 @@ 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 ) diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h index ef973314e3..e23cdb1f42 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 53dc6360ea..58da5d15eb 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1986,6 +1986,20 @@ struct gl_query_state }; +/** Sync object state */ +struct gl_sync_object { + 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 Status:1; /**< Has the sync object been signaled? */ +}; + + /** Set by #pragma directives */ struct gl_sl_pragmas { @@ -2435,6 +2449,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 +2487,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/syncobj.c b/src/mesa/main/syncobj.c new file mode 100644 index 0000000000..eeeeb49175 --- /dev/null +++ b/src/mesa/main/syncobj.c @@ -0,0 +1,372 @@ +/* + * 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. + * + * \author Ian Romanick + */ + +#include "glheader.h" +#include "hash.h" +#include "imports.h" +#include "context.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->Status = 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; +} + + +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 ((syncObj != NULL) && (syncObj->Type == GL_SYNC_FENCE)) + ? GL_TRUE : GL_FALSE; +} + + +static void +_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +{ + syncObj->RefCount--; + if (syncObj->RefCount == 0) { + (*ctx->Driver.DeleteSyncObject)(ctx, syncObj); + } else { + syncObj->DeletePending = 1; + } +} + + +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 value of zero. An + * INVALID_VALUE error is generated if is neither zero nor the + * name of a sync object. + */ + if (sync == 0) { + return; + } + + if (syncObj->Type != GL_SYNC_FENCE) { + _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. + */ + _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->Status = 0; + + (*ctx->Driver.FenceSync)(ctx, syncObj, condition, flags); + + 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 ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + _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; + } + + + /* From the GL_ARB_sync spec: + * + * ClientWaitSync returns one of four status values. A return value of + * ALREADY_SIGNALED indicates that was signaled at the time + * ClientWaitSync was called. ALREADY_SIGNALED will always be returned + * if was signaled, even if the value of is zero. + */ + (*ctx->Driver.CheckSync)(ctx, syncObj); + + if (syncObj->Status) { + return GL_ALREADY_SIGNALED; + } + + + (*ctx->Driver.ClientWaitSync)(ctx, syncObj, flags, timeout); + + ret = syncObj->Status ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; + + if (syncObj->DeletePending && syncObj->Status) { + _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 ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + _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 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 ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + _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->Status) ? 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 = (size > bufSize) ? bufSize : size; + + _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 0000000000..d2b4d051c9 --- /dev/null +++ b/src/mesa/main/syncobj.h @@ -0,0 +1,64 @@ +/* + * 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 + */ + +#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 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/sources.mak b/src/mesa/sources.mak index 9a9c988ed9..fa2a6307a4 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 \ -- cgit v1.2.3 From f5a22721c5731c7a4c20f86d9925d9e58324c7a5 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 31 Aug 2009 14:49:33 -0700 Subject: Add dummy list node type 'struct simple_node' --- src/mesa/main/simple_list.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/mesa/main/simple_list.h b/src/mesa/main/simple_list.h index 63475f6f74..ff7f888238 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. * -- cgit v1.2.3 From 16b393d05990b6e917e144f9de87d0103b4c3e6d Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 31 Aug 2009 14:57:50 -0700 Subject: ARB sync: Fix delete behavior and context destruction behavior I believe this resolves the outstanding issues WRT sync object deletetion. I have also added a large comment at the top of syncobj.c describing the expected memory management behavior. I'm still a little uncertain about the locking on ctx->Shared. --- src/mesa/main/mtypes.h | 6 ++++ src/mesa/main/shared.c | 19 +++++++++- src/mesa/main/syncobj.c | 96 +++++++++++++++++++++++++++++++++++++------------ src/mesa/main/syncobj.h | 6 ++++ 4 files changed, 103 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 58da5d15eb..bd3bf28328 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 */ /** @@ -1988,6 +1989,7 @@ 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 */ @@ -2145,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 */ }; diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index 93bbccd3c7..643ad3354e 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/syncobj.c b/src/mesa/main/syncobj.c index eeeeb49175..0471a0ad7f 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -25,6 +25,33 @@ * \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 */ @@ -130,31 +157,52 @@ _mesa_free_sync_data(GLcontext *ctx) } -GLboolean -_mesa_IsSync(GLsync sync) +static int +_mesa_validate_sync(struct gl_sync_object *syncObj) { - 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 (syncObj != NULL) + && (syncObj->Type == GL_SYNC_FENCE) + && !syncObj->DeletePending; +} - return ((syncObj != NULL) && (syncObj->Type == GL_SYNC_FENCE)) - ? GL_TRUE : GL_FALSE; +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); } -static void +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 { - syncObj->DeletePending = 1; + _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) { @@ -173,7 +221,7 @@ _mesa_DeleteSync(GLsync sync) return; } - if (syncObj->Type != GL_SYNC_FENCE) { + if (!_mesa_validate_sync(syncObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glDeleteSync"); return; } @@ -182,6 +230,7 @@ _mesa_DeleteSync(GLsync sync) /* 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); } @@ -224,6 +273,10 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) (*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; } @@ -240,7 +293,7 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_WAIT_FAILED); - if ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + if (!_mesa_validate_sync(syncObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glClientWaitSync"); return GL_WAIT_FAILED; } @@ -251,6 +304,8 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) } + _mesa_ref_sync_object(ctx, syncObj); + /* From the GL_ARB_sync spec: * * ClientWaitSync returns one of four status values. A return value of @@ -259,20 +314,15 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) * if was signaled, even if the value of is zero. */ (*ctx->Driver.CheckSync)(ctx, syncObj); - if (syncObj->Status) { - return GL_ALREADY_SIGNALED; - } - - - (*ctx->Driver.ClientWaitSync)(ctx, syncObj, flags, timeout); - - ret = syncObj->Status ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; + ret = GL_ALREADY_SIGNALED; + } else { + (*ctx->Driver.ClientWaitSync)(ctx, syncObj, flags, timeout); - if (syncObj->DeletePending && syncObj->Status) { - _mesa_unref_sync_object(ctx, syncObj); + ret = syncObj->Status ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; } + _mesa_unref_sync_object(ctx, syncObj); return ret; } @@ -285,7 +335,7 @@ _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) ASSERT_OUTSIDE_BEGIN_END(ctx); - if ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + if (!_mesa_validate_sync(syncObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glWaitSync"); return; } @@ -318,7 +368,7 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, ASSERT_OUTSIDE_BEGIN_END(ctx); - if ((syncObj == NULL) || (syncObj->Type != GL_SYNC_FENCE)) { + if (!_mesa_validate_sync(syncObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glGetSynciv"); return; } diff --git a/src/mesa/main/syncobj.h b/src/mesa/main/syncobj.h index d2b4d051c9..fc160af289 100644 --- a/src/mesa/main/syncobj.h +++ b/src/mesa/main/syncobj.h @@ -42,6 +42,12 @@ _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); -- cgit v1.2.3 From 0f8fdd81989de5026c8e415f1525931b74dd8647 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 11:24:54 -0700 Subject: Use MIN2 instead of open-coded version Based on review comments by Brian Paul. --- src/mesa/main/syncobj.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index 0471a0ad7f..cbeda4b384 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -59,6 +59,7 @@ #include "hash.h" #include "imports.h" #include "context.h" +#include "macros.h" #if FEATURE_ARB_sync #include "syncobj.h" @@ -408,7 +409,7 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, if (size > 0) { - const GLsizei copy_count = (size > bufSize) ? bufSize : size; + const GLsizei copy_count = MIN2(size, bufSize); _mesa_memcpy(values, v, sizeof(GLint) * copy_count); } -- cgit v1.2.3 From 6af24b6b03a2ce8300c7ae78fd06c6b1edd02017 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 11:56:34 -0700 Subject: Whitespace and include file clean-up. Based on review comments by Brian Paul. --- src/mesa/main/syncobj.c | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'src') diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index cbeda4b384..b3c75c747a 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -56,7 +56,6 @@ */ #include "glheader.h" -#include "hash.h" #include "imports.h" #include "context.h" #include "macros.h" @@ -116,7 +115,6 @@ _mesa_wait_sync(GLcontext *ctx, struct gl_sync_object *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. */ @@ -199,7 +197,6 @@ _mesa_IsSync(GLsync sync) 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; } @@ -211,7 +208,6 @@ _mesa_DeleteSync(GLsync sync) 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 value of zero. An @@ -227,7 +223,6 @@ _mesa_DeleteSync(GLsync sync) return; } - /* If there are no client-waits or server-waits pending on this sync, delete * the underlying object. */ @@ -236,7 +231,6 @@ _mesa_DeleteSync(GLsync sync) } - GLsync _mesa_FenceSync(GLenum condition, GLbitfield flags) { @@ -244,7 +238,6 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) 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); @@ -293,7 +286,6 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) 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; @@ -304,7 +296,6 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) return GL_WAIT_FAILED; } - _mesa_ref_sync_object(ctx, syncObj); /* From the GL_ARB_sync spec: @@ -335,7 +326,6 @@ _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) 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; @@ -368,13 +358,11 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, 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; @@ -407,14 +395,12 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, return; } - if (size > 0) { const GLsizei copy_count = MIN2(size, bufSize); _mesa_memcpy(values, v, sizeof(GLint) * copy_count); } - if (length != NULL) { *length = size; } -- cgit v1.2.3 From 18d3409571eaf78a93430d6d107c54cf79807213 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 11:57:40 -0700 Subject: Add syncobj.c to SConscript --- src/mesa/SConscript | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/mesa/SConscript b/src/mesa/SConscript index 6617c9dbe5..cad5676320 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', -- cgit v1.2.3 From 0342dce226fe79d7a6c0e7cd735c596fad3e8aac Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 11:58:36 -0700 Subject: Don't dereference function pointers in calls. I'm apparently alone in prefering this calling convention, so I'll be a team player. :p Based on review comments by Brian Paul and Eric Anholt. --- src/mesa/main/syncobj.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index b3c75c747a..075931c7ce 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -183,7 +183,7 @@ _mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) remove_from_list(& syncObj->link); _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex); - (*ctx->Driver.DeleteSyncObject)(ctx, syncObj); + ctx->Driver.DeleteSyncObject(ctx, syncObj); } else { _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex); } @@ -250,7 +250,7 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) return 0; } - syncObj = (*ctx->Driver.NewSyncObject)(ctx, GL_SYNC_FENCE); + 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 @@ -265,7 +265,7 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) syncObj->Flags = flags; syncObj->Status = 0; - (*ctx->Driver.FenceSync)(ctx, syncObj, condition, flags); + ctx->Driver.FenceSync(ctx, syncObj, condition, flags); _glthread_LOCK_MUTEX(ctx->Shared->Mutex); insert_at_tail(& ctx->Shared->SyncObjects, & syncObj->link); @@ -305,11 +305,11 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) * ClientWaitSync was called. ALREADY_SIGNALED will always be returned * if was signaled, even if the value of is zero. */ - (*ctx->Driver.CheckSync)(ctx, syncObj); + ctx->Driver.CheckSync(ctx, syncObj); if (syncObj->Status) { ret = GL_ALREADY_SIGNALED; } else { - (*ctx->Driver.ClientWaitSync)(ctx, syncObj, flags, timeout); + ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout); ret = syncObj->Status ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; } @@ -344,7 +344,7 @@ _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) return; } - (*ctx->Driver.ServerWaitSync)(ctx, syncObj, flags, timeout); + ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout); } @@ -379,7 +379,7 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, * this call won't block. It just updates state in the common object * data from the current driver state. */ - (*ctx->Driver.CheckSync)(ctx, syncObj); + ctx->Driver.CheckSync(ctx, syncObj); v[0] = (syncObj->Status) ? GL_SIGNALED : GL_UNSIGNALED; size = 1; -- cgit v1.2.3 From aee282faa74ea862064b91d847ddc279d2191b01 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 12:15:51 -0700 Subject: ARB sync / swrast: Use GL_ARB_sync_functions instead of GL_ARB_sync. Oops. --- src/mesa/drivers/dri/swrast/swrast.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 69b92e9e44..a858af30c1 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -98,7 +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 }, + { "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 }, -- cgit v1.2.3 From afd6141934a0fb52fc1739a2a9992db3ac34682b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 1 Sep 2009 12:20:10 -0700 Subject: intel: Add support for ARB_sync. We currently weasel out of supporting the timeout parameter, but otherwise this extension looks ready, and should make the common case happy. --- src/mesa/drivers/dri/i915/Makefile | 1 + src/mesa/drivers/dri/i915/intel_syncobj.c | 1 + src/mesa/drivers/dri/i965/Makefile | 1 + src/mesa/drivers/dri/i965/intel_syncobj.c | 1 + src/mesa/drivers/dri/intel/intel_context.c | 1 + src/mesa/drivers/dri/intel/intel_context.h | 8 ++ src/mesa/drivers/dri/intel/intel_extensions.c | 2 + src/mesa/drivers/dri/intel/intel_syncobj.c | 132 ++++++++++++++++++++++++++ 8 files changed, 147 insertions(+) create mode 120000 src/mesa/drivers/dri/i915/intel_syncobj.c create mode 120000 src/mesa/drivers/dri/i965/intel_syncobj.c create mode 100644 src/mesa/drivers/dri/intel/intel_syncobj.c (limited to 'src') diff --git a/src/mesa/drivers/dri/i915/Makefile b/src/mesa/drivers/dri/i915/Makefile index beaf9a4b12..9d049dea8f 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 0000000000..0b2e56ab24 --- /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 128afb5686..6e9a9a29a3 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/intel_syncobj.c b/src/mesa/drivers/dri/i965/intel_syncobj.c new file mode 120000 index 0000000000..0b2e56ab24 --- /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_context.c b/src/mesa/drivers/dri/intel/intel_context.c index ec96747f05..89f99f7ffd 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); } diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index 0d9db5eb1d..03e7cf39d6 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 7aee70f0a8..2e61c556d8 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_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c new file mode 100644 index 0000000000..d447b6a0fa --- /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 + * + */ + +/** @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->Status = 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->Status = 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; +} -- cgit v1.2.3 From 19420f02d4540654731840e345bdcd367389ed40 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 1 Sep 2009 12:31:24 -0700 Subject: s3v: Fix driver build for ARB_sync. This driver was including Xlibint.h to get the CARD32 typedef to use for 32-bit unsigned integers, which #defined Status to something. CARD32 isn't actually a 32-bit unsigned integer, so replacing with uint32_t usage should fix bugs on 64-bit along with the build. --- src/mesa/drivers/dri/s3v/s3v_state.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/s3v/s3v_state.c b/src/mesa/drivers/dri/s3v/s3v_state.c index c71c89a3e1..561f42c705 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 */ -#include #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)); -- cgit v1.2.3 From d5ea2dce93e6fa2782889d088b91c9c1f1d3be14 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 1 Sep 2009 12:37:51 -0700 Subject: savage: Fix driver build post-ARB_sync. Like s3v, clean up absurd use of Xlib in the driver, avoiding namespace pollution. --- src/mesa/drivers/dri/savage/savage_xmesa.c | 13 ++++++------- src/mesa/drivers/dri/savage/savagecontext.h | 1 - 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c index a94f1c076c..931ceff0a8 100644 --- a/src/mesa/drivers/dri/savage/savage_xmesa.c +++ b/src/mesa/drivers/dri/savage/savage_xmesa.c @@ -23,7 +23,6 @@ */ -#include #include #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 fd6399d6a6..53a37db1cb 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 #include "dri_util.h" #include "main/mtypes.h" #include "xf86drm.h" -- cgit v1.2.3 From 5e448a8d4d1d6e8ad6430378c21c1332bc9b7588 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 1 Sep 2009 14:26:22 -0700 Subject: Add ARB_sync to the xorg sw dri driver. --- src/mesa/drivers/x11/xm_api.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index 1eb31b9d4c..2c7be9f182 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -1318,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 @@ -1347,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 }, -- cgit v1.2.3 From e059885ce357dee8b847f10e8e8c515a4a20042e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 12:47:25 -0600 Subject: mesa: rename gl_sync_object::Status to StatusFlag There's a symbol collision with X11/Xlib.h #define Status int in the Mesa xlib code. This seems the simpliest way to work around this. --- src/mesa/drivers/dri/intel/intel_syncobj.c | 4 ++-- src/mesa/main/mtypes.h | 2 +- src/mesa/main/syncobj.c | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c index d447b6a0fa..1286fe929b 100644 --- a/src/mesa/drivers/dri/intel/intel_syncobj.c +++ b/src/mesa/drivers/dri/intel/intel_syncobj.c @@ -94,7 +94,7 @@ static void intel_client_wait_sync(GLcontext *ctx, struct gl_sync_object *s, if (sync->bo) { drm_intel_bo_wait_rendering(sync->bo); - s->Status = 1; + s->StatusFlag = 1; drm_intel_bo_unreference(sync->bo); sync->bo = NULL; } @@ -117,7 +117,7 @@ static void intel_check_sync(GLcontext *ctx, struct gl_sync_object *s) if (sync->bo && drm_intel_bo_busy(sync->bo)) { drm_intel_bo_unreference(sync->bo); sync->bo = NULL; - s->Status = 1; + s->StatusFlag = 1; } } diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index bd3bf28328..6b64bf8139 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1998,7 +1998,7 @@ struct gl_sync_object { */ GLenum SyncCondition; GLbitfield Flags; /**< Flags passed to glFenceSync */ - GLuint Status:1; /**< Has the sync object been signaled? */ + GLuint StatusFlag:1; /**< Has the sync object been signaled? */ }; diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index 075931c7ce..64f923ff91 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -90,7 +90,7 @@ _mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj, (void) condition; (void) flags; - syncObj->Status = 1; + syncObj->StatusFlag = 1; } @@ -263,7 +263,7 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) syncObj->DeletePending = GL_FALSE; syncObj->SyncCondition = condition; syncObj->Flags = flags; - syncObj->Status = 0; + syncObj->StatusFlag = 0; ctx->Driver.FenceSync(ctx, syncObj, condition, flags); @@ -306,12 +306,12 @@ _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) * if was signaled, even if the value of is zero. */ ctx->Driver.CheckSync(ctx, syncObj); - if (syncObj->Status) { + if (syncObj->StatusFlag) { ret = GL_ALREADY_SIGNALED; } else { ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout); - ret = syncObj->Status ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; + ret = syncObj->StatusFlag ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED; } _mesa_unref_sync_object(ctx, syncObj); @@ -381,7 +381,7 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, */ ctx->Driver.CheckSync(ctx, syncObj); - v[0] = (syncObj->Status) ? GL_SIGNALED : GL_UNSIGNALED; + v[0] = (syncObj->StatusFlag) ? GL_SIGNALED : GL_UNSIGNALED; size = 1; break; -- cgit v1.2.3 From dc60d0db5253e3b3f0813394f666d32378723353 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 13:02:41 -0600 Subject: glapi: fix incorrect/missing return types for glFenceSync(), glClientWaitSync() --- src/mesa/glapi/ARB_sync.xml | 3 ++- src/mesa/glapi/dispatch.h | 4 ++-- src/mesa/glapi/glapitable.h | 4 ++-- src/mesa/glapi/glapitemp.h | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/glapi/ARB_sync.xml b/src/mesa/glapi/ARB_sync.xml index 58989b084a..37f474980c 100644 --- a/src/mesa/glapi/ARB_sync.xml +++ b/src/mesa/glapi/ARB_sync.xml @@ -40,7 +40,7 @@ - + @@ -56,6 +56,7 @@ + diff --git a/src/mesa/glapi/dispatch.h b/src/mesa/glapi/dispatch.h index 8288c0a263..0d32045916 100644 --- a/src/mesa/glapi/dispatch.h +++ b/src/mesa/glapi/dispatch.h @@ -3304,13 +3304,13 @@ 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, (void (GLAPIENTRYP)(GLsync, GLbitfield, GLuint64)), driDispatchRemapTable[ClientWaitSync_remap_index], parameters) +#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, (GLuint (GLAPIENTRYP)(GLenum, GLbitfield)), driDispatchRemapTable[FenceSync_remap_index], parameters) +#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) diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 2c661a0ae5..855fcaa7fe 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -607,9 +607,9 @@ 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 ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 567 */ + GLenum (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 567 */ void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 568 */ - GLuint (GLAPIENTRYP FenceSync)(GLenum condition, GLbitfield flags); /* 569 */ + 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 */ diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index 7b211918c1..e08f9548f5 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -4036,9 +4036,9 @@ 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 void KEYWORD2 NAME(ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) +KEYWORD1 GLenum KEYWORD2 NAME(ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) { - DISPATCH(ClientWaitSync, (sync, flags, timeout), (F, "glClientWaitSync(%d, %d, %d);\n", sync, flags, timeout)); + RETURN_DISPATCH(ClientWaitSync, (sync, flags, timeout), (F, "glClientWaitSync(%d, %d, %d);\n", sync, flags, timeout)); } KEYWORD1 void KEYWORD2 NAME(DeleteSync)(GLsync sync) @@ -4046,7 +4046,7 @@ KEYWORD1 void KEYWORD2 NAME(DeleteSync)(GLsync sync) DISPATCH(DeleteSync, (sync), (F, "glDeleteSync(%d);\n", sync)); } -KEYWORD1 GLuint KEYWORD2 NAME(FenceSync)(GLenum condition, GLbitfield flags) +KEYWORD1 GLsync KEYWORD2 NAME(FenceSync)(GLenum condition, GLbitfield flags) { RETURN_DISPATCH(FenceSync, (condition, flags), (F, "glFenceSync(0x%x, %d);\n", condition, flags)); } -- cgit v1.2.3 From 8c1d85cebe2a7f9aa9adf46deb698ee062cc33b7 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Thu, 3 Sep 2009 15:22:16 -0400 Subject: r600: make sure the active vertex shader bo is re-added to persistent list. --- src/mesa/drivers/dri/r600/r600_texstate.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index 9fb083d33e..49b603b65e 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -50,6 +50,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_mipmap_tree.h" #include "r600_tex.h" #include "r700_fragprog.h" +#include "r700_vertprog.h" void r600UpdateTextureState(GLcontext * ctx); @@ -696,6 +697,12 @@ GLboolean r600ValidateBuffers(GLcontext * ctx) 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; -- cgit v1.2.3 From 5571c4fe3650d062d9c469b774ff4930f43c4354 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 3 Sep 2009 14:18:05 -0400 Subject: st/xorg: linear gradient shader --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index f9b10d8569..9fb1f3f6cb 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -86,6 +86,65 @@ 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 * create_vs(struct pipe_context *pipe, unsigned vs_traits) -- cgit v1.2.3 From 007a843991cd2c03369590fa15cbb60a9b261c65 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 3 Sep 2009 15:33:31 -0400 Subject: st/xorg: radial gradient shader --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 85 +++++++++++++++++++++++++ 1 file changed, 85 insertions(+) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index 9fb1f3f6cb..b15f31e8ae 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -145,6 +145,91 @@ linear_gradient(struct ureg_program *ureg, 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) -- cgit v1.2.3 From 323440b3e204a6de8faa8009eea9bb05c3b11991 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Thu, 3 Sep 2009 16:51:31 -0400 Subject: st/xorg: add linear and radial gradient acceleration --- src/gallium/state_trackers/xorg/xorg_exa_tgsi.c | 91 +++++++++++++++++++------ 1 file changed, 71 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c index b15f31e8ae..cfee10c3b3 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c +++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.c @@ -291,12 +291,15 @@ create_fs(struct pipe_context *pipe, { 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_pos,*/ src_input, mask_pos; + struct ureg_dst src, mask; struct ureg_dst out; - boolean is_fill = fs_traits & VS_FILL; - boolean is_composite = fs_traits & VS_COMPOSITE; - /*boolean has_mask = fs_traits & VS_MASK;*/ + 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) @@ -311,19 +314,25 @@ create_fs(struct pipe_context *pipe, if (is_composite) { src_sampler = ureg_DECL_sampler(ureg, 0); - src_pos = ureg_DECL_fs_input(ureg, - TGSI_SEMANTIC_POSITION, - 0, - TGSI_INTERPOLATE_PERSPECTIVE); + src_input = ureg_DECL_fs_input(ureg, + TGSI_SEMANTIC_POSITION, + 0, + TGSI_INTERPOLATE_PERSPECTIVE); } if (is_fill) { - src_pos = ureg_DECL_fs_input(ureg, - TGSI_SEMANTIC_COLOR, - 0, - TGSI_INTERPOLATE_PERSPECTIVE); + 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)) { + if (has_mask) { mask_sampler = ureg_DECL_sampler(ureg, 1); mask_pos = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, @@ -339,14 +348,56 @@ create_fs(struct pipe_context *pipe, 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); -- cgit v1.2.3 From 6a97cca0817b743e0633ff76630a5bef24469d1b Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Thu, 3 Sep 2009 18:02:54 -0400 Subject: r600: rework cb/db setup Setup the regs when we emit rather than during state setup. In certain cases a proper CB target was never emitted. This fixes bug 23658. --- src/mesa/drivers/dri/r600/r700_chip.c | 91 +++++++++++++++++++++ src/mesa/drivers/dri/r600/r700_state.c | 145 ++++----------------------------- src/mesa/drivers/dri/r600/r700_state.h | 3 - 3 files changed, 109 insertions(+), 130 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r700_chip.c b/src/mesa/drivers/dri/r600/r700_chip.c index 4fc624ed0b..37bff56f5a 100644 --- a/src/mesa/drivers/dri/r600/r700_chip.c +++ b/src/mesa/drivers/dri/r600/r700_chip.c @@ -265,6 +265,93 @@ 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); @@ -279,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); @@ -319,6 +408,8 @@ static void r700SendRenderTargetState(GLcontext *ctx, struct radeon_state_atom * return; } + r700SetRenderTarget(context, 0); + if (id > R700_MAX_RENDER_TARGETS) return; diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 09344426f4..1f4724e838 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,21 @@ 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); - - r700UpdateDrawBuffer(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); + } - r700UpdateStateParameters(ctx, new_state); + r700UpdateStateParameters(ctx, new_state); R600_STATECHANGE(context, cl); R600_STATECHANGE(context, spi); @@ -1373,97 +1351,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) - { - 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 r700InitSQConfig(GLcontext * ctx) { context_t *context = R700_CONTEXT(ctx); @@ -1666,6 +1553,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); @@ -1859,6 +1747,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 30eb54e8b0..0f53d5b4c5 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 */ -- cgit v1.2.3 From 862724d3c2761fe148d985e9205ebb1cc36f3011 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 2 Sep 2009 17:58:52 +0100 Subject: util: add version of u_blit_pixels which takes a writemask Values outside the writemask are set in the destination to {0,0,0,1} --- src/gallium/auxiliary/util/u_blit.c | 55 ++++++++++++++++++++------- src/gallium/auxiliary/util/u_blit.h | 11 ++++++ src/gallium/auxiliary/util/u_simple_shaders.c | 14 ++++++- src/gallium/auxiliary/util/u_simple_shaders.h | 4 ++ 4 files changed, 69 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c index cda6dbd46d..c516317d70 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 c35beceda8..a102021529 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_simple_shaders.c b/src/gallium/auxiliary/util/u_simple_shaders.c index eb311d29f9..1b8da9b685 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; @@ -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 6f8d96af9b..d2e80d6eb4 100644 --- a/src/gallium/auxiliary/util/u_simple_shaders.h +++ b/src/gallium/auxiliary/util/u_simple_shaders.h @@ -49,6 +49,10 @@ util_make_vertex_passthrough_shader(struct pipe_context *pipe, const uint *semantic_indexes); +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); -- cgit v1.2.3 From 8fc945cd847aa5d343a5f76eb2f9f2c9075cccdd Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 2 Sep 2009 18:30:11 +0100 Subject: st/mesa: Do GL_RGBA->GL_RGB texsubimage on hardware State tracker currently backs GL_RGB textures with RGBA almost always. This means we need to maintain A==1 in these textures to give correct GL_RGB sampling results. This change offloads the RGBA->RGB copy to hardware using the new writemask version of u_blit_pixels. More src/dstLogical/dstActual triples could be shifted to hardware by this technique in future patches. --- src/mesa/state_tracker/st_cb_texture.c | 65 ++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index dc39a70121..74602b4cae 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" @@ -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; } -- cgit v1.2.3 From beb05393c8d92d71ccb0f4af0bcdbe58ae8a9cdd Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 14:39:53 -0600 Subject: st/mesa: fix glCopyPixels(GL_STENCIL_INDEX) inverted position If the renderbuffer orientation is Y=0=TOP we need to invert the dstY position. --- src/mesa/state_tracker/st_cb_drawpixels.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index e00754a036..a9cafbf8cd 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -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, -- cgit v1.2.3 From 5a8e1ddf193bb25c5cf05b70088c64ede772d7e9 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 15:04:49 -0600 Subject: st/mesa: silence uninitialized var warnings --- src/mesa/state_tracker/st_cb_texture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 74602b4cae..abaf9d2c35 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -517,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); -- cgit v1.2.3 From 9e711b6865fdd2842d1dbfa15ab03488dfd2e86f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 15:23:15 -0600 Subject: gallium/xlib: silence uninitialized var warning --- src/gallium/winsys/xlib/xlib_brw_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/winsys/xlib/xlib_brw_screen.c b/src/gallium/winsys/xlib/xlib_brw_screen.c index 6f3861e2cd..ef545796f3 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: -- cgit v1.2.3 From 7ec865202e6b054c3afaba6180d42a29f30f8964 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 15:44:22 -0600 Subject: gallium/xlib: silence unitialized var warning --- src/gallium/state_trackers/glx/xlib/xm_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 651a9a9fea..2c7b27a1fb 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -755,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; -- cgit v1.2.3 From ce39cd6696efbc72c13187217ca5d74ab00ab37f Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Fri, 4 Sep 2009 09:31:22 +0200 Subject: tgsi: Document differencies between vs_1_1 and vs_2_0 for EXPP and LOGP. --- src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt index a989514b75..eb492076b7 100644 --- a/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt +++ b/src/gallium/auxiliary/tgsi/tgsi-instruction-set.txt @@ -1027,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 @@ -1049,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 ============================== -- cgit v1.2.3 From 65c79c9cbd58b164a61b72f7ffe13031c33485cf Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Fri, 4 Sep 2009 10:27:17 +0100 Subject: i915g: Fix warnings in scons build by using byte pointers scons build complained about void pointer math --- src/gallium/drivers/i915simple/intel_winsys.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/i915simple/intel_winsys.h b/src/gallium/drivers/i915simple/intel_winsys.h index e123c32d88..f949f52a9c 100644 --- a/src/gallium/drivers/i915simple/intel_winsys.h +++ b/src/gallium/drivers/i915simple/intel_winsys.h @@ -69,8 +69,8 @@ struct intel_batchbuffer { * each dword written. */ /*{@*/ - void *map; - void *ptr; + uint8_t *map; + uint8_t *ptr; size_t size; size_t relocs; -- cgit v1.2.3 From 40636fe6f2763e6be4141516a9eba5004b371915 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 3 Sep 2009 17:16:19 -0600 Subject: gallium/xlib: minor clean-ups --- src/gallium/state_trackers/glx/xlib/xm_api.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 2c7b27a1fb..957002ddd5 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -668,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; } @@ -781,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; @@ -795,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; } @@ -1165,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; } -- cgit v1.2.3 From 3fedd08779c2bc4a5f02c035e7ca4cab5da649dd Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 4 Sep 2009 09:06:40 -0600 Subject: ARB prog: rename POINT, SIZE to POINT_TOK, SIZE_TOK Fixes symbol collisions with typedefs in Microsoft headers. Perhaps we should prefix/suffix all the lexer tokens to avoid this. --- src/mesa/shader/lex.yy.c | 34 ++++++++++------------------------ src/mesa/shader/program_lexer.l | 4 ++-- src/mesa/shader/program_parse.tab.c | 10 +++++----- src/mesa/shader/program_parse.tab.h | 4 ++-- src/mesa/shader/program_parse.y | 8 ++++---- 5 files changed, 23 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 6d661bd187..2ff2a4f5a3 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. @@ -1011,7 +1002,7 @@ swiz_from_char(char c) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1015 "lex.yy.c" +#line 1006 "lex.yy.c" #define INITIAL 0 @@ -1148,12 +1139,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 +1147,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 +1158,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; \ @@ -1260,7 +1246,7 @@ YY_DECL #line 135 "program_lexer.l" -#line 1264 "lex.yy.c" +#line 1250 "lex.yy.c" yylval = yylval_param; @@ -1928,7 +1914,7 @@ YY_RULE_SETUP case 116: YY_RULE_SETUP #line 270 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINT); } +{ return_token_or_DOT(require_ARB_vp, POINT_TOK); } YY_BREAK case 117: YY_RULE_SETUP @@ -1978,7 +1964,7 @@ YY_RULE_SETUP case 126: YY_RULE_SETUP #line 280 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, SIZE); } +{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); } YY_BREAK case 127: YY_RULE_SETUP @@ -2392,7 +2378,7 @@ YY_RULE_SETUP #line 474 "program_lexer.l" ECHO; YY_BREAK -#line 2396 "lex.yy.c" +#line 2382 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -3160,8 +3146,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. */ diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index c50c7c5739..bc209435ef 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -267,7 +267,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 +277,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 979e574921..4d99e45fbe 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, @@ -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", diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h index de08fb747f..b0f757ffa0 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, diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 46f300408b..2f5d3037f4 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -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; } -- cgit v1.2.3 From 592a6642fc5c9f697bcc6521c99fe00b2de827c8 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 4 Sep 2009 09:15:35 -0600 Subject: ARB prog: replace 'unsigned' with 'gl_state_index' Fixes compilation warnings with MSVC. --- src/mesa/shader/lex.yy.c | 377 ++++++++++++++++++------------------ src/mesa/shader/program_lexer.l | 1 + src/mesa/shader/program_parse.tab.c | 5 +- src/mesa/shader/program_parse.tab.h | 2 +- src/mesa/shader/program_parse.y | 5 +- 5 files changed, 195 insertions(+), 195 deletions(-) (limited to 'src') diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 2ff2a4f5a3..709426f3a6 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -901,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" @@ -1002,7 +1003,7 @@ swiz_from_char(char c) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1006 "lex.yy.c" +#line 1007 "lex.yy.c" #define INITIAL 0 @@ -1243,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 1250 "lex.yy.c" +#line 1251 "lex.yy.c" yylval = yylval_param; @@ -1335,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); @@ -1353,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" +#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" +#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; @@ -2101,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; @@ -2114,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; @@ -2126,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; @@ -2134,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; @@ -2142,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; @@ -2150,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; @@ -2159,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 @@ -2169,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; @@ -2178,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; @@ -2187,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 @@ -2197,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 @@ -2207,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; @@ -2216,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); @@ -2226,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]), @@ -2238,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; @@ -2247,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 @@ -2257,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; @@ -2266,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; @@ -2275,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 @@ -2285,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 @@ -2295,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; @@ -2304,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); @@ -2314,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; @@ -2328,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]), @@ -2340,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; @@ -2357,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: @@ -2365,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 2382 "lex.yy.c" +#line 2383 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -3553,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/program_lexer.l b/src/mesa/shader/program_lexer.l index bc209435ef..d240217481 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" diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 4d99e45fbe..9f2d4de90f 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -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; @@ -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 b0f757ffa0..dabb3bf1a3 100644 --- a/src/mesa/shader/program_parse.tab.h +++ b/src/mesa/shader/program_parse.tab.h @@ -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 2f5d3037f4..06c1915fbe 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; @@ -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() */ -- cgit v1.2.3 From b13a553dd419cc6997725d4bce956daa7eb64806 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 4 Sep 2009 14:03:51 -0400 Subject: r600: fix Elts handling Patch from taiu on IRC. fixes bug 23585 --- src/mesa/drivers/dri/r600/r600_cmdbuf.c | 12 ++++++++++-- src/mesa/drivers/dri/r600/r700_render.c | 7 ++++++- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r600_cmdbuf.c b/src/mesa/drivers/dri/r600/r600_cmdbuf.c index 65930ff589..3cfe03a45f 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/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c index e1bbbfef35..3566bf3ca7 100644 --- a/src/mesa/drivers/dri/r600/r700_render.c +++ b/src/mesa/drivers/dri/r600/r700_render.c @@ -257,6 +257,8 @@ 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); @@ -300,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(); -- cgit v1.2.3 From 8f7f22ca1d1594f9a4c6bdef181e24cbdd2c921c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 3 Sep 2009 09:11:44 -0700 Subject: i965: Add support for KIL_NV in brw_wm_emit.c I ran into this lack of support when writing a shader that always discarded the fragments. --- src/mesa/drivers/dri/i965/brw_wm_emit.c | 18 ++++++++++++++++++ src/mesa/drivers/dri/i965/brw_wm_pass1.c | 1 + 2 files changed, 19 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c index 268f7965c0..981864323e 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 3436a24717..9c68bfd78b 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; } -- cgit v1.2.3 From a47858e45efd95d798468cfff34616c0de200032 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 3 Sep 2009 09:19:43 -0700 Subject: i965: Add support for 2 threads in the GS. This brings noop vertex shader throughput from 6.8M verts/sec to 10.4M verts/sec using GL_QUADs on my GM45. --- src/mesa/drivers/dri/i965/brw_gs_state.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_gs_state.c b/src/mesa/drivers/dri/i965/brw_gs_state.c index a761c03153..ed9d2ffe60 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; -- cgit v1.2.3 From 0612ad4f19ecde4963e55551bc316610f97282ae Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 4 Aug 2009 00:26:42 -0700 Subject: i965: Don't set the complete field when there is more VUE yet to come. This should help with things like lightsmark, but I don't have a testcase for this commit. --- src/mesa/drivers/dri/i965/brw_vs_emit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c index 108e19cdbc..584fdbdfc3 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); -- cgit v1.2.3 From 8fd7586bcccc49a627c9dfe23653be6620b95320 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 4 Sep 2009 18:08:31 -0400 Subject: r600: Add support for GL_EXT_provoking_vertex --- src/mesa/drivers/dri/r600/r600_context.c | 2 ++ src/mesa/drivers/dri/r600/r700_state.c | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c index 251c124cbf..7a5bcd9ac2 100644 --- a/src/mesa/drivers/dri/r600/r600_context.c +++ b/src/mesa/drivers/dri/r600/r600_context.c @@ -85,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 @@ -117,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}, diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 1f4724e838..93b4ebfdb9 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -171,6 +171,14 @@ static void r700InvalidateState(GLcontext * ctx, GLuint new_state) //----------- R600_STATECHANGE(context, db_target); } + 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); R600_STATECHANGE(context, cl); -- cgit v1.2.3 From 60ca65c0165874bb18f1f89951da0281ee235cb3 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 4 Sep 2009 18:21:34 -0400 Subject: r300: Add support for GL_EXT_provoking_vertex --- src/mesa/drivers/dri/r300/r300_context.c | 2 ++ src/mesa/drivers/dri/r300/r300_reg.h | 6 ++---- src/mesa/drivers/dri/r300/r300_state.c | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c index 2ea1b826de..6fcf209af6 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_reg.h b/src/mesa/drivers/dri/r300/r300_reg.h index 39b4b61a10..98512d778e 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_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 9301543d38..d4c3ecee66 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -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; } -- cgit v1.2.3 From 9ab19a39001ab5b6afa71a4d1f16714e6907b67c Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Fri, 4 Sep 2009 18:45:09 -0400 Subject: r600: add support for EXT_texture_sRGB --- src/mesa/drivers/dri/r600/r600_context.c | 1 + src/mesa/drivers/dri/r600/r600_texstate.c | 43 +++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) (limited to 'src') diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c index 7a5bcd9ac2..07a7bcf11f 100644 --- a/src/mesa/drivers/dri/r600/r600_context.c +++ b/src/mesa/drivers/dri/r600/r600_context.c @@ -130,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}, diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index 49b603b65e..fff6e74386 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -531,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; -- cgit v1.2.3 From 8f990f928b1d6cb395ea4f3d4c1d7e3a670f1ad6 Mon Sep 17 00:00:00 2001 From: Cooper Yuan Date: Sat, 5 Sep 2009 10:26:39 +0800 Subject: r300g: need to validate scissor and viewport state if bind new rasterizer --- src/gallium/drivers/r300/r300_state.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index c16cadd040..5642aed663 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -429,6 +429,8 @@ 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_SCISSOR; + r300->dirty_state |= R300_NEW_VIEWPORT; } /* Free rasterizer state. */ -- cgit v1.2.3 From 80ea03bd174ab7824c754faa9944d7736bf513f2 Mon Sep 17 00:00:00 2001 From: Cooper Yuan Date: Sat, 5 Sep 2009 14:26:39 +0800 Subject: r300g: update rs_block state after changing rasterizer --- src/gallium/drivers/r300/r300_state.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 5642aed663..81808017f8 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -429,6 +429,7 @@ 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; } -- cgit v1.2.3 From 9778731732b4753e79a1b786c65325a52392411d Mon Sep 17 00:00:00 2001 From: Cooper Yuan Date: Sat, 5 Sep 2009 20:58:32 +0800 Subject: r300g: update the value of register VAP_VF_MAX_VTX_INDX according to actual vertex index count. --- src/gallium/drivers/r300/r300_render.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c index cd458d019a..aced4ab887 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); -- cgit v1.2.3