aboutsummaryrefslogtreecommitdiff
path: root/mesalib
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib')
-rw-r--r--mesalib/Android.common.mk9
-rw-r--r--mesalib/Android.mk12
-rw-r--r--mesalib/CleanSpec.mk1
-rw-r--r--mesalib/VERSION2
-rw-r--r--mesalib/configure.ac32
-rw-r--r--mesalib/docs/GL3.txt16
-rw-r--r--mesalib/docs/devinfo.html394
-rw-r--r--mesalib/docs/index.html19
-rw-r--r--mesalib/docs/relnotes.html3
-rw-r--r--mesalib/docs/relnotes/10.5.6.html147
-rw-r--r--mesalib/docs/relnotes/10.5.7.html103
-rw-r--r--mesalib/docs/relnotes/10.6.0.html248
-rw-r--r--mesalib/docs/relnotes/10.7.0.html60
-rw-r--r--mesalib/include/EGL/egl.h562
-rw-r--r--mesalib/include/EGL/eglext.h258
-rw-r--r--mesalib/include/EGL/eglmesaext.h33
-rw-r--r--mesalib/include/EGL/eglplatform.h19
-rw-r--r--mesalib/include/KHR/khrplatform.h19
-rw-r--r--mesalib/scons/llvm.py4
-rw-r--r--mesalib/src/Makefile.am3
-rw-r--r--mesalib/src/gallium/Android.common.mk8
-rw-r--r--mesalib/src/gallium/Android.mk15
-rw-r--r--mesalib/src/gallium/auxiliary/Android.mk11
-rw-r--r--mesalib/src/gallium/auxiliary/hud/hud_context.c6
-rw-r--r--mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c3
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blit.c6
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.c27
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.h16
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_dump_state.c2
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format_etc.c3
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_math.h20
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_tests.h8
-rw-r--r--mesalib/src/glsl/Android.mk1
-rw-r--r--mesalib/src/glsl/Makefile.am33
-rw-r--r--mesalib/src/glsl/SConscript4
-rw-r--r--mesalib/src/glsl/ast_array_index.cpp2
-rw-r--r--mesalib/src/glsl/ast_function.cpp30
-rw-r--r--mesalib/src/glsl/ast_to_hir.cpp128
-rw-r--r--mesalib/src/glsl/builtin_functions.cpp18
-rw-r--r--mesalib/src/glsl/glsl_parser_extras.cpp4
-rw-r--r--mesalib/src/glsl/glsl_types.cpp2
-rw-r--r--mesalib/src/glsl/glsl_types.h14
-rw-r--r--mesalib/src/glsl/ir.cpp4
-rw-r--r--mesalib/src/glsl/ir.h24
-rw-r--r--mesalib/src/glsl/ir_hierarchical_visitor.cpp9
-rw-r--r--mesalib/src/glsl/ir_hierarchical_visitor.h3
-rw-r--r--mesalib/src/glsl/ir_hv_accept.cpp6
-rw-r--r--mesalib/src/glsl/ir_print_visitor.cpp5
-rw-r--r--mesalib/src/glsl/ir_print_visitor.h1
-rw-r--r--mesalib/src/glsl/ir_uniform.h5
-rw-r--r--mesalib/src/glsl/ir_visitor.h2
-rw-r--r--mesalib/src/glsl/link_atomics.cpp2
-rw-r--r--mesalib/src/glsl/link_uniform_initializers.cpp4
-rw-r--r--mesalib/src/glsl/link_uniforms.cpp55
-rw-r--r--mesalib/src/glsl/link_varyings.cpp2
-rw-r--r--mesalib/src/glsl/linker.cpp30
-rw-r--r--mesalib/src/glsl/lower_clip_distance.cpp8
-rw-r--r--mesalib/src/glsl/main.cpp8
-rw-r--r--mesalib/src/glsl/nir/glsl_to_nir.cpp15
-rw-r--r--mesalib/src/glsl/nir/nir_intrinsics.h20
-rw-r--r--mesalib/src/glsl/nir/nir_lower_atomics.c2
-rw-r--r--mesalib/src/glsl/nir/nir_lower_io.c2
-rw-r--r--mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c5
-rw-r--r--mesalib/src/glsl/nir/nir_opt_algebraic.py2
-rw-r--r--mesalib/src/glsl/nir/nir_opt_peephole_ffma.c19
-rw-r--r--mesalib/src/glsl/standalone_scaffolding.cpp2
-rw-r--r--mesalib/src/loader/Android.mk2
-rw-r--r--mesalib/src/loader/Makefile.am10
-rw-r--r--mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml22
-rw-r--r--mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_base_instance.xml9
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_clip_control.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_copy_image.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml158
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml11
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml46
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml36
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml3
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_robustness.xml40
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml28
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml122
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_sync.xml14
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_texture_view.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml14
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml12
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml106
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml28
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml94
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml16
-rw-r--r--mesalib/src/mapi/glapi/gen/GL3x.xml100
-rw-r--r--mesalib/src/mapi/glapi/gen/GL4x.xml10
-rw-r--r--mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/KHR_debug.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/Makefile.am8
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml4
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml2
-rw-r--r--mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml20
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_EGL_image.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_fixed_point.xml123
-rw-r--r--mesalib/src/mapi/glapi/gen/OES_single_precision.xml17
-rw-r--r--mesalib/src/mapi/glapi/gen/apiexec.py240
-rw-r--r--mesalib/src/mapi/glapi/gen/es_EXT.xml166
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_recv.py62
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_send.py70
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_proto_size.py99
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_server_table.py38
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_API.dtd2
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_API.xml1741
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py41
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_XML.py20
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_and_es_API.xml86
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_apitemp.py44
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_enums.py34
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_genexec.py90
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_gentable.py34
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_procs.py52
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_table.py97
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py47
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_x86_asm.py45
-rw-r--r--mesalib/src/mapi/glapi/gen/remap_helper.py53
-rw-r--r--mesalib/src/mapi/glapi/gen/static_data.py1729
-rw-r--r--mesalib/src/mesa/Android.gen.mk16
-rw-r--r--mesalib/src/mesa/Android.libmesa_glsl_utils.mk6
-rw-r--r--mesalib/src/mesa/Makefile.am1
-rw-r--r--mesalib/src/mesa/drivers/SConscript3
-rw-r--r--mesalib/src/mesa/drivers/common/meta_blit.c6
-rw-r--r--mesalib/src/mesa/drivers/common/meta_tex_subimage.c12
-rw-r--r--mesalib/src/mesa/drivers/dri/Makefile.am1
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Android.mk8
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Makefile.am6
-rw-r--r--mesalib/src/mesa/drivers/dri/common/Makefile.sources4
-rw-r--r--mesalib/src/mesa/drivers/dri/common/SConscript2
-rw-r--r--mesalib/src/mesa/drivers/dri/common/dri_util.c22
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/swrast.c4
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SConscript33
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp697
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h95
-rw-r--r--mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef39
-rw-r--r--mesalib/src/mesa/main/api_exec.h3
-rw-r--r--mesalib/src/mesa/main/api_loopback.c2
-rw-r--r--mesalib/src/mesa/main/arrayobj.c22
-rw-r--r--mesalib/src/mesa/main/attrib.c22
-rw-r--r--mesalib/src/mesa/main/blit.c7
-rw-r--r--mesalib/src/mesa/main/bufferobj.c105
-rw-r--r--mesalib/src/mesa/main/buffers.c21
-rw-r--r--mesalib/src/mesa/main/clear.c32
-rw-r--r--mesalib/src/mesa/main/config.h13
-rw-r--r--mesalib/src/mesa/main/context.c73
-rw-r--r--mesalib/src/mesa/main/copyimage.c39
-rw-r--r--mesalib/src/mesa/main/depth.c6
-rw-r--r--mesalib/src/mesa/main/dlist.c30
-rw-r--r--mesalib/src/mesa/main/errors.c1
-rw-r--r--mesalib/src/mesa/main/extensions.c2
-rw-r--r--mesalib/src/mesa/main/fbobject.c103
-rw-r--r--mesalib/src/mesa/main/formats.c11
-rw-r--r--mesalib/src/mesa/main/genmipmap.c7
-rw-r--r--mesalib/src/mesa/main/get.c12
-rw-r--r--mesalib/src/mesa/main/get_hash_params.py8
-rw-r--r--mesalib/src/mesa/main/getstring.c16
-rw-r--r--mesalib/src/mesa/main/glformats.c43
-rw-r--r--mesalib/src/mesa/main/glformats.h2
-rw-r--r--mesalib/src/mesa/main/glheader.h6
-rw-r--r--mesalib/src/mesa/main/hash.c28
-rw-r--r--mesalib/src/mesa/main/hash.h3
-rw-r--r--mesalib/src/mesa/main/mtypes.h14
-rw-r--r--mesalib/src/mesa/main/pipelineobj.c6
-rw-r--r--mesalib/src/mesa/main/program_resource.c6
-rw-r--r--mesalib/src/mesa/main/queryobj.c7
-rw-r--r--mesalib/src/mesa/main/readpix.c25
-rw-r--r--mesalib/src/mesa/main/readpix.h3
-rw-r--r--mesalib/src/mesa/main/samplerobj.c7
-rw-r--r--mesalib/src/mesa/main/shader_query.cpp25
-rw-r--r--mesalib/src/mesa/main/shaderapi.c6
-rw-r--r--mesalib/src/mesa/main/shaderobj.c4
-rw-r--r--mesalib/src/mesa/main/shared.c1
-rw-r--r--mesalib/src/mesa/main/state.c2
-rw-r--r--mesalib/src/mesa/main/texgetimage.c14
-rw-r--r--mesalib/src/mesa/main/teximage.c76
-rw-r--r--mesalib/src/mesa/main/texobj.c14
-rw-r--r--mesalib/src/mesa/main/texparam.c84
-rw-r--r--mesalib/src/mesa/main/texstorage.c7
-rw-r--r--mesalib/src/mesa/main/textureview.c95
-rw-r--r--mesalib/src/mesa/main/textureview.h9
-rw-r--r--mesalib/src/mesa/main/transformfeedback.c42
-rw-r--r--mesalib/src/mesa/main/uniform_query.cpp15
-rw-r--r--mesalib/src/mesa/main/uniforms.h4
-rw-r--r--mesalib/src/mesa/main/varray.c64
-rw-r--r--mesalib/src/mesa/main/version.c75
-rw-r--r--mesalib/src/mesa/main/version.h3
-rw-r--r--mesalib/src/mesa/main/vtxfmt.c2
-rw-r--r--mesalib/src/mesa/program/dummy_errors.c30
-rw-r--r--mesalib/src/mesa/program/ir_to_mesa.cpp20
-rw-r--r--mesalib/src/mesa/program/prog_execute.c2
-rw-r--r--mesalib/src/mesa/program/prog_instruction.c12
-rw-r--r--mesalib/src/mesa/program/prog_instruction.h33
-rw-r--r--mesalib/src/mesa/program/prog_optimize.c4
-rw-r--r--mesalib/src/mesa/program/prog_print.c8
-rw-r--r--mesalib/src/mesa/program/prog_to_nir.c108
-rw-r--r--mesalib/src/mesa/program/program.c24
-rw-r--r--mesalib/src/mesa/program/program_parse.y8
-rw-r--r--mesalib/src/mesa/program/program_parse_extra.c4
-rw-r--r--mesalib/src/mesa/program/programopt.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_atom_shader.c2
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_bitmap.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_blit.c4
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_clear.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_drawpixels.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_drawtex.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_program.c8
-rw-r--r--mesalib/src/mesa/state_tracker/st_context.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_draw.c2
-rw-r--r--mesalib/src/mesa/state_tracker/st_extensions.c6
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp829
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h2
-rw-r--r--mesalib/src/mesa/state_tracker/st_manager.c3
-rw-r--r--mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c9
-rw-r--r--mesalib/src/mesa/state_tracker/st_program.c24
-rw-r--r--mesalib/src/mesa/state_tracker/st_program.h1
-rw-r--r--mesalib/src/mesa/tnl/t_context.c1
-rw-r--r--mesalib/src/mesa/vbo/vbo_exec_array.c5
248 files changed, 6976 insertions, 5040 deletions
diff --git a/mesalib/Android.common.mk b/mesalib/Android.common.mk
index edf52d6fa..d662d6018 100644
--- a/mesalib/Android.common.mk
+++ b/mesalib/Android.common.mk
@@ -68,7 +68,16 @@ LOCAL_CFLAGS += \
endif
endif
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_CFLAGS += \
+ -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=2 \
+ -D__STDC_CONSTANT_MACROS \
+ -D__STDC_FORMAT_MACROS \
+ -D__STDC_LIMIT_MACROS
+endif
+
LOCAL_CPPFLAGS += \
+ $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \
-Wno-error=non-virtual-dtor \
-Wno-non-virtual-dtor
diff --git a/mesalib/Android.mk b/mesalib/Android.mk
index b19419ba7..69e0d33f1 100644
--- a/mesalib/Android.mk
+++ b/mesalib/Android.mk
@@ -24,7 +24,7 @@
# BOARD_GPU_DRIVERS should be defined. The valid values are
#
# classic drivers: i915 i965
-# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
+# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vc4 vmwgfx
#
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
# module will also be built. DRI modules will be loaded by libGLES_mesa.
@@ -48,7 +48,7 @@ MESA_PYTHON2 := python
DRM_GRALLOC_TOP := hardware/drm_gralloc
classic_drivers := i915 i965
-gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
+gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx vc4
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
@@ -80,6 +80,8 @@ else
MESA_BUILD_GALLIUM := false
endif
+MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false)
+
# add subdirectories
ifneq ($(strip $(MESA_GPU_DRIVERS)),)
@@ -89,13 +91,9 @@ SUBDIRS := \
src/glsl \
src/mesa \
src/util \
- src/egl/main
-
-ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
-SUBDIRS += \
+ src/egl/main \
src/egl/drivers/dri2 \
src/mesa/drivers/dri
-endif
ifeq ($(strip $(MESA_BUILD_GALLIUM)),true)
SUBDIRS += src/gallium
diff --git a/mesalib/CleanSpec.mk b/mesalib/CleanSpec.mk
index 20681638e..d08b0def7 100644
--- a/mesalib/CleanSpec.mk
+++ b/mesalib/CleanSpec.mk
@@ -13,3 +13,4 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_int
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates)
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
diff --git a/mesalib/VERSION b/mesalib/VERSION
index 8d3030650..1edd8fc00 100644
--- a/mesalib/VERSION
+++ b/mesalib/VERSION
@@ -1 +1 @@
-10.6.0-devel
+10.7.0-devel
diff --git a/mesalib/configure.ac b/mesalib/configure.ac
index 095e23e69..34d1ac988 100644
--- a/mesalib/configure.ac
+++ b/mesalib/configure.ac
@@ -649,6 +649,7 @@ if test "x$enable_asm" = xyes; then
fi
AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
+AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
dnl Check to see if dlopen is in default libraries (like Solaris, which
@@ -713,15 +714,15 @@ AC_ARG_ENABLE([opengl],
[enable_opengl="$enableval"],
[enable_opengl=yes])
AC_ARG_ENABLE([gles1],
- [AS_HELP_STRING([--enable-gles1],
- [enable support for OpenGL ES 1.x API @<:@default=disabled@:>@])],
+ [AS_HELP_STRING([--disable-gles1],
+ [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
[enable_gles1="$enableval"],
- [enable_gles1=no])
+ [enable_gles1=yes])
AC_ARG_ENABLE([gles2],
- [AS_HELP_STRING([--enable-gles2],
- [enable support for OpenGL ES 2.x API @<:@default=disabled@:>@])],
+ [AS_HELP_STRING([--disable-gles2],
+ [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
[enable_gles2="$enableval"],
- [enable_gles2=no])
+ [enable_gles2=yes])
AC_ARG_ENABLE([dri],
[AS_HELP_STRING([--enable-dri],
@@ -1920,10 +1921,7 @@ if test "x$enable_gallium_llvm" = xyes; then
AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
fi
- LLVM_COMPONENTS="engine bitwriter"
- if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
- LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
- fi
+ LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
if test "x$enable_opencl" = xyes; then
llvm_check_version_for "3" "5" "0" "opencl"
@@ -2050,16 +2048,19 @@ require_egl_drm() {
}
radeon_llvm_check() {
+ if test ${LLVM_VERSION_INT} -lt 307; then
+ amdgpu_llvm_target_name='r600'
+ else
+ amdgpu_llvm_target_name='amdgpu'
+ fi
if test "x$enable_gallium_llvm" != "xyes"; then
AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
fi
llvm_check_version_for "3" "4" "2" $1
- if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
- AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM
- sources with the --enable-experimental-targets=R600
- configure flag])
+ if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
+ AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
fi
- LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
+ LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
NEED_RADEON_LLVM=yes
if test "x$have_libelf" != xyes; then
AC_MSG_ERROR([$1 requires libelf when using llvm])
@@ -2352,7 +2353,6 @@ AC_CONFIG_FILES([Makefile
src/gallium/drivers/svga/Makefile
src/gallium/drivers/trace/Makefile
src/gallium/drivers/vc4/Makefile
- src/gallium/drivers/vc4/kernel/Makefile
src/gallium/state_trackers/clover/Makefile
src/gallium/state_trackers/dri/Makefile
src/gallium/state_trackers/glx/xlib/Makefile
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index c7009308a..f2d06f173 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -102,8 +102,8 @@ GL 4.0, GLSL 4.00:
- Dynamically uniform UBO array indices DONE (r600)
- Implicit signed -> unsigned conversions DONE
- Fused multiply-add DONE ()
- - Packing/bitfield/conversion functions DONE (r600, radeonsi)
- - Enhanced textureGather DONE (r600, radeonsi)
+ - Packing/bitfield/conversion functions DONE (r600, radeonsi, softpipe)
+ - Enhanced textureGather DONE (r600, radeonsi, softpipe)
- Geometry shader instancing DONE (r600)
- Geometry shader multiple streams DONE ()
- Enhanced per-sample shading DONE (r600, radeonsi)
@@ -115,7 +115,7 @@ GL 4.0, GLSL 4.00:
GL_ARB_tessellation_shader started (Chris, Ilia)
GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
- GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
+ GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi)
GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
@@ -153,7 +153,7 @@ GL 4.3, GLSL 4.30:
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
GL_ARB_clear_buffer_object DONE (all drivers)
GL_ARB_compute_shader in progress (jljusten)
- GL_ARB_copy_image DONE (i965)
+ GL_ARB_copy_image DONE (i965) (gallium - in progress, VMware)
GL_KHR_debug DONE (all drivers)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600, llvmpipe)
@@ -164,7 +164,7 @@ GL 4.3, GLSL 4.30:
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_robust_buffer_access_behavior not started
GL_ARB_shader_image_size in progress (Martin Peres)
- GL_ARB_shader_storage_buffer_object not started
+ GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias)
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe)
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
@@ -177,7 +177,7 @@ GL 4.4, GLSL 4.40:
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi)
- GL_ARB_clear_texture DONE (i965)
+ GL_ARB_clear_texture DONE (i965) (gallium - in progress, VMware)
GL_ARB_enhanced_layouts not started
GL_ARB_multi_bind DONE (all drivers)
GL_ARB_query_buffer_object not started
@@ -190,7 +190,7 @@ GL 4.5, GLSL 4.50:
GL_ARB_ES3_1_compatibility not started
GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe)
- GL_ARB_cull_distance not started
+ GL_ARB_cull_distance in progress (Tobias)
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
GL_ARB_direct_state_access DONE (all drivers)
- Transform Feedback object DONE
@@ -221,7 +221,7 @@ GLES3.1, GLSL ES 3.1
GL_ARB_shader_atomic_counters DONE (i965)
GL_ARB_shader_image_load_store in progress (curro)
GL_ARB_shader_image_size in progress (Martin Peres)
- GL_ARB_shader_storage_buffer_object not started
+ GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias)
GL_ARB_shading_language_packing DONE (all drivers)
GL_ARB_separate_shader_objects DONE (all drivers)
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
diff --git a/mesalib/docs/devinfo.html b/mesalib/docs/devinfo.html
index 8d20eea3c..0da18b9b7 100644
--- a/mesalib/docs/devinfo.html
+++ b/mesalib/docs/devinfo.html
@@ -17,159 +17,241 @@
<h1>Development Notes</h1>
-<h2>Adding Extensions</h2>
-
-<p>
-To add a new GL extension to Mesa you have to do at least the following.
-
<ul>
-<li>
- If glext.h doesn't define the extension, edit include/GL/gl.h and add
- code like this:
- <pre>
- #ifndef GL_EXT_the_extension_name
- #define GL_EXT_the_extension_name 1
- /* declare the new enum tokens */
- /* prototype the new functions */
- /* TYPEDEFS for the new functions */
- #endif
- </pre>
-</li>
-<li>
- In the src/mapi/glapi/gen/ directory, add the new extension functions and
- enums to the gl_API.xml file.
- Then, a bunch of source files must be regenerated by executing the
- corresponding Python scripts.
-</li>
-<li>
- Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
-</li>
-<li>
- Update the <code>extensions.c</code> file.
-</li>
-<li>
- From this point, the best way to proceed is to find another extension,
- similar to the new one, that's already implemented in Mesa and use it
- as an example.
-</li>
-<li>
- If the new extension adds new GL state, the functions in get.c, enable.c
- and attrib.c will most likely require new code.
-</li>
-<li>
- The dispatch tests check_table.cpp and dispatch_sanity.cpp
- should be updated with details about the new extensions functions. These
- tests are run using 'make check'
-</li>
+<li><a href="#style">Coding Style</a>
+<li><a href="#submitting">Submitting Patches</a>
+<li><a href="#release">Making a New Mesa Release</a>
+<li><a href="#extensions">Adding Extensions</a>
</ul>
-
-<h2>Coding Style</h2>
+<h2 id="style">Coding Style</h2>
<p>
-Mesa's code style has changed over the years. Here's the latest.
+Mesa is over 20 years old and the coding style has evolved over time.
+Some old parts use a style that's a bit out of date.
+If the guidelines below don't cover something, try following the format of
+existing, neighboring code.
</p>
<p>
-Comment your code! It's extremely important that open-source code be
-well documented. Also, strive to write clean, easily understandable code.
+Basic formatting guidelines
</p>
-<p>
-3-space indentation
-</p>
+<ul>
+<li>3-space indentation, no tabs.
+<li>Limit lines to 78 or fewer characters. The idea is to prevent line
+wrapping in 80-column editors and terminals. There are exceptions, such
+as if you're defining a large, static table of information.
+<li>Opening braces go on the same line as the if/for/while statement.
+For example:
+<pre>
+ if (condition) {
+ foo;
+ } else {
+ bar;
+ }
+</pre>
-<p>
-If you use tabs, set them to 8 columns
-</p>
+<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
+and not <tt>a=b+c;</tt>
-<p>
-Line width: the preferred width to fill comments and code in Mesa is 78
-columns. Exceptions are sometimes made for clarity (e.g. tabular data is
-sometimes filled to a much larger width so that extraneous carriage returns
-don't obscure the table).
-</p>
+<li>This GNU indent command generally does the right thing for formatting:
+<pre>
+ indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+</pre>
-<p>
-Brace example:
-</p>
+<li>Use comments wherever you think it would be helpful for other developers.
+Several specific cases and style examples follow. Note that we roughly
+follow <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
+<br>
+<br>
+Single-line comments:
+<pre>
+ /* null-out pointer to prevent dangling reference below */
+ bufferObj = NULL;
+</pre>
+Or,
+<pre>
+ bufferObj = NULL; /* prevent dangling reference below */
+</pre>
+Multi-line comment:
<pre>
- if (condition) {
- foo;
- }
- else {
- bar;
- }
-
- switch (condition) {
- case 0:
- foo();
- break;
-
- case 1: {
- ...
- break;
- }
-
- default:
- ...
- break;
- }
+ /* If this is a new buffer object id, or one which was generated but
+ * never used before, allocate a buffer object now.
+ */
+</pre>
+We try to quote the OpenGL specification where prudent:
+<pre>
+ /* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
+ *
+ * "An INVALID_OPERATION error is generated for any of the following
+ * conditions:
+ *
+ * * <length> is zero."
+ *
+ * Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
+ * (30.10.2014) also says this, so it's no longer allowed for desktop GL,
+ * either.
+ */
+</pre>
+Function comment example:
+<pre>
+ /**
+ * Create and initialize a new buffer object. Called via the
+ * ctx->Driver.CreateObject() driver callback function.
+ * \param name integer name of the object
+ * \param type one of GL_FOO, GL_BAR, etc.
+ * \return pointer to new object or NULL if error
+ */
+ struct gl_object *
+ _mesa_create_object(GLuint name, GLenum type)
+ {
+ /* function body */
+ }
</pre>
-<p>
-Here's the GNU indent command which will best approximate my preferred style:
-(Note that it won't format switch statements in the preferred way)
-</p>
+<li>Put the function return type and qualifiers on one line and the function
+name and parameters on the next, as seen above. This makes it easy to use
+<code>grep ^function_name dir/*</code> to find function definitions. Also,
+the opening brace goes on the next line by itself (see above.)
+
+<li>Function names follow various conventions depending on the type of function:
<pre>
- indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+ glFooBar() - a public GL entry point (in glapi_dispatch.c)
+ _mesa_FooBar() - the internal immediate mode function
+ save_FooBar() - retained mode (display list) function in dlist.c
+ foo_bar() - a static (private) function
+ _mesa_foo_bar() - an internal non-static Mesa function
</pre>
+<li>Constants, macros and enumerant names are ALL_UPPERCASE, with _ between
+words.
+<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
+while gallium typically uses underscores (Ex: "local_var_name").
+<li>Global variables are almost never used because Mesa should be thread-safe.
-<p>
-Local variable name example: localVarName (no underscores)
-</p>
+<li>Booleans. Places that are not directly visible to the GL API
+should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
+<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
+<tt>GL_FALSE</tt>. In C code, this may mean that
+<tt>#include &lt;stdbool.h&gt;</tt> needs to be added. The
+<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
+src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
-<p>
-Constants and macros are ALL_UPPERCASE, with _ between words
-</p>
+</ul>
+
+
+<h2 id="submitting">Submitting patches</h2>
<p>
-Global variables are not allowed.
+The basic guidelines for submitting patches are:
</p>
+<ul>
+<li>Patches should be sufficiently tested before submitting.
+<li>Code patches should follow Mesa coding conventions.
+<li>Whenever possible, patches should only effect individual Mesa/Gallium
+components.
+<li>Patches should never introduce build breaks and should be bisectable (see
+<code>git bisect</code>.)
+<li>Patches should be properly formatted (see below).
+<li>Patches should be submitted to mesa-dev for review using
+<code>git send-email</code>.
+<li>Patches should not mix code changes with code formatting changes (except,
+perhaps, in very trivial cases.)
+</ul>
+
+<h3>Patch formatting</h3>
+
<p>
-Function name examples:
+The basic rules for patch formatting are:
</p>
+
+<ul>
+<li>Lines should be limited to 75 characters or less so that git logs
+displayed in 80-column terminals avoid line wrapping. Note that git
+log uses 4 spaces of indentation (4 + 75 &lt; 80).
+<li>The first line should be a short, concise summary of the change prefixed
+with a module name. Examples:
+<pre>
+ mesa: Add support for querying GL_VERTEX_ATTRIB_ARRAY_LONG
+
+ gallium: add PIPE_CAP_DEVICE_RESET_STATUS_QUERY
+
+ i965: Fix missing type in local variable declaration.
+</pre>
+<li>Subsequent patch comments should describe the change in more detail,
+if needed. For example:
+<pre>
+ i965: Remove end-of-thread SEND alignment code.
+
+ This was present in Eric's initial implementation of the compaction code
+ for Sandybridge (commit 077d01b6). There is no documentation saying this
+ is necessary, and removing it causes no regressions in piglit on any
+ platform.
+</pre>
+<li>A "Signed-off-by:" line is not required, but not discouraged either.
+<li>If a patch address a bugzilla issue, that should be noted in the
+patch comment. For example:
+<pre>
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
+</pre>
+<li>If there have been several revisions to a patch during the review
+process, they should be noted such as in this example:
<pre>
- glFooBar() - a public GL entry point (in glapi_dispatch.c)
- _mesa_FooBar() - the internal immediate mode function
- save_FooBar() - retained mode (display list) function in dlist.c
- foo_bar() - a static (private) function
- _mesa_foo_bar() - an internal non-static Mesa function
+ st/mesa: add ARB_texture_stencil8 support (v4)
+
+ if we support stencil texturing, enable texture_stencil8
+ there is no requirement to support native S8 for this,
+ the texture can be converted to x24s8 fine.
+
+ v2: fold fixes from Marek in:
+ a) put S8 last in the list
+ b) fix renderable to always test for d/s renderable
+ fixup the texture case to use a stencil only format
+ for picking the format for the texture view.
+ v3: hit fallback for getteximage
+ v4: put s8 back in front, it shouldn't get picked now (Ilia)
</pre>
+<li>If someone tested your patch, document it with a line like this:
+<pre>
+ Tested-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+<li>If the patch was reviewed (usually the case) or acked by someone,
+that should be documented with:
+<pre>
+ Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+ Acked-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+</ul>
+
+
+
+<h3>Testing Patches</h3>
<p>
-Places that are not directly visible to the GL API should prefer the use
-of <tt>bool</tt>, <tt>true</tt>, and
-<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
-<tt>GL_FALSE</tt>. In C code, this may mean that
-<tt>#include &lt;stdbool.h&gt;</tt> needs to be added. The
-<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
-src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
+It should go without saying that patches must be tested. In general,
+do whatever testing is prudent.
</p>
-<h2>Submitting patches</h2>
-
<p>
-You should always run the Mesa Testsuite before submitting patches.
-The Testsuite can be run using the 'make check' command. All tests
+You should always run the Mesa test suite before submitting patches.
+The test suite can be run using the 'make check' command. All tests
must pass before patches will be accepted, this may mean you have
to update the tests themselves.
</p>
<p>
+Whenever possible and applicable, test the patch with
+<a href="http://people.freedesktop.org/~nh/piglit/">Piglit</a> to
+check for regressions.
+</p>
+
+
+<h3>Mailing Patches</h3>
+
+<p>
Patches should be sent to the Mesa mailing list for review.
When submitting a patch make sure to use git send-email rather than attaching
patches to emails. Sending patches as attachments prevents people from being
@@ -184,7 +266,32 @@ re-sending the whole series). Using --in-reply-to makes
it harder for reviewers to accidentally review old patches.
</p>
-<h2>Marking a commit as a candidate for a stable branch</h2>
+<h3>Reviewing Patches</h3>
+
+<p>
+When you've reviewed a patch on the mailing list, please be unambiguous
+about your review. That is, state either
+<pre>
+ Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+or
+<pre>
+ Acked-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+Rather than saying just "LGTM" or "Seems OK".
+</p>
+
+<p>
+If small changes are suggested, it's OK to say something like:
+<pre>
+ With the above fixes, Reviewed-by: Joe Hacker &lt;jhacker@foo.com&gt;
+</pre>
+which tells the patch author that the patch can be committed, as long
+as the issues are resolved first.
+</p>
+
+
+<h3>Marking a commit as a candidate for a stable branch</h3>
<p>
If you want a commit to be applied to a stable branch,
@@ -221,7 +328,7 @@ the upcoming stable release can always be seen on the
<a href="http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
page.
-<h2>Criteria for accepting patches to the stable branch</h2>
+<h3>Criteria for accepting patches to the stable branch</h3>
Mesa has a designated release manager for each stable branch, and the release
manager is the only developer that should be pushing changes to these
@@ -306,7 +413,8 @@ be rejected:
regression that is unaacceptable for the stable branch.</li>
</ul>
-<h2>Making a New Mesa Release</h2>
+
+<h2 id="release">Making a New Mesa Release</h2>
<p>
These are the instructions for making a new Mesa release.
@@ -456,7 +564,7 @@ Edit docs/relnotes/X.Y.Z.html to add the sha256sums printed as part of "make
tarballs" in the previous step. Commit this change.
</p>
-<h3>Push all commits and the tag creates above</h3>
+<h3>Push all commits and the tag created above</h3>
<p>
This is the first step that cannot easily be undone. The release is going
@@ -483,7 +591,7 @@ signatures to the freedesktop.org server:
mv ~/MesaLib-X.Y.Z* .
</pre>
-<h3>Back on mesa master, andd the new release notes into the tree</h3>
+<h3>Back on mesa master, add the new release notes into the tree</h3>
<p>
Something like the following steps will do the trick:
@@ -543,6 +651,56 @@ release announcement:
</pre>
</p>
+
+<h2 id="extensions">Adding Extensions</h2>
+
+<p>
+To add a new GL extension to Mesa you have to do at least the following.
+
+<ul>
+<li>
+ If glext.h doesn't define the extension, edit include/GL/gl.h and add
+ code like this:
+ <pre>
+ #ifndef GL_EXT_the_extension_name
+ #define GL_EXT_the_extension_name 1
+ /* declare the new enum tokens */
+ /* prototype the new functions */
+ /* TYPEDEFS for the new functions */
+ #endif
+ </pre>
+</li>
+<li>
+ In the src/mapi/glapi/gen/ directory, add the new extension functions and
+ enums to the gl_API.xml file.
+ Then, a bunch of source files must be regenerated by executing the
+ corresponding Python scripts.
+</li>
+<li>
+ Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
+</li>
+<li>
+ Update the <code>extensions.c</code> file.
+</li>
+<li>
+ From this point, the best way to proceed is to find another extension,
+ similar to the new one, that's already implemented in Mesa and use it
+ as an example.
+</li>
+<li>
+ If the new extension adds new GL state, the functions in get.c, enable.c
+ and attrib.c will most likely require new code.
+</li>
+<li>
+ The dispatch tests check_table.cpp and dispatch_sanity.cpp
+ should be updated with details about the new extensions functions. These
+ tests are run using 'make check'
+</li>
+</ul>
+
+
+
+
</div>
</body>
</html>
diff --git a/mesalib/docs/index.html b/mesalib/docs/index.html
index 325e554df..252242495 100644
--- a/mesalib/docs/index.html
+++ b/mesalib/docs/index.html
@@ -16,6 +16,25 @@
<h1>News</h1>
+<h2>June 14, 2015</h2>
+<p>
+<a href="relnotes/10.6.0.html">Mesa 10.6.0</a> is released. This is a new
+development release. See the release notes for more information about
+the release.
+</p>
+
+<h2>June 07, 2015</h2>
+<p>
+<a href="relnotes/10.5.7.html">Mesa 10.5.7</a> is released.
+This is a bug-fix release.
+</p>
+
+<h2>May 23, 2015</h2>
+<p>
+<a href="relnotes/10.5.6.html">Mesa 10.5.6</a> is released.
+This is a bug-fix release.
+</p>
+
<h2>May 11, 2015</h2>
<p>
<a href="relnotes/10.5.5.html">Mesa 10.5.5</a> is released.
diff --git a/mesalib/docs/relnotes.html b/mesalib/docs/relnotes.html
index 6ba9e5904..a037b9684 100644
--- a/mesalib/docs/relnotes.html
+++ b/mesalib/docs/relnotes.html
@@ -21,6 +21,9 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<ul>
+<li><a href="relnotes/10.6.0.html">10.6.0 release notes</a>
+<li><a href="relnotes/10.5.7.html">10.5.7 release notes</a>
+<li><a href="relnotes/10.5.6.html">10.5.6 release notes</a>
<li><a href="relnotes/10.5.5.html">10.5.5 release notes</a>
<li><a href="relnotes/10.5.4.html">10.5.4 release notes</a>
<li><a href="relnotes/10.5.3.html">10.5.3 release notes</a>
diff --git a/mesalib/docs/relnotes/10.5.6.html b/mesalib/docs/relnotes/10.5.6.html
new file mode 100644
index 000000000..0046b8ff9
--- /dev/null
+++ b/mesalib/docs/relnotes/10.5.6.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.5.6 Release Notes / May 23, 2015</h1>
+
+<p>
+Mesa 10.5.6 is a bug fix release which fixes bugs found since the 10.5.5 release.
+</p>
+<p>
+Mesa 10.5.6 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+89ff9cb08d0f6e3f34154864c3071253057cd21020759457c8ae27e0f70985d3 mesa-10.5.6.tar.gz
+66017853bde5f7a6647db3eede30512a091a3491daa1708e0ad8027c328ba595 mesa-10.5.6.tar.xz
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86792">Bug 86792</a> - [NVC0] Portal 2 Crashes in Wine</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90147">Bug 90147</a> - swrast: build error undeclared _SC_PHYS_PAGES on osx</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90350">Bug 90350</a> - [G96] Portal's portal are incorrectly rendered</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90363">Bug 90363</a> - [nv50] HW state is not reset correctly when using a new GL context</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Alex Deucher (1):</p>
+<ul>
+ <li>radeonsi: add new bonaire pci id</li>
+</ul>
+
+<p>Axel Davy (2):</p>
+<ul>
+ <li>egl/wayland: properly destroy wayland objects</li>
+ <li>glx/dri3: Add additional check for gpu offloading case</li>
+</ul>
+
+<p>Emil Velikov (4):</p>
+<ul>
+ <li>docs: Add sha256 sums for the 10.5.5 release</li>
+ <li>egl/main: fix EGL_KHR_get_all_proc_addresses</li>
+ <li>targets/osmesa: drop the -module tag from LDFLAGS</li>
+ <li>Update version to 10.5.6</li>
+</ul>
+
+<p>Francisco Jerez (4):</p>
+<ul>
+ <li>clover: Refactor event::trigger and ::abort to prevent deadlock and reentrancy issues.</li>
+ <li>clover: Wrap event::_status in a method to prevent unlocked access.</li>
+ <li>clover: Implement locking of the wait_count, _chain and _status members of event.</li>
+ <li>i965: Fix PBO cache coherency issue after _mesa_meta_pbo_GetTexSubImage().</li>
+</ul>
+
+<p>Fredrik Höglund (2):</p>
+<ul>
+ <li>main: Require that the texture exists in framebuffer_texture</li>
+ <li>mesa: Generate GL_INVALID_VALUE in framebuffer_texture when layer &lt; 0</li>
+</ul>
+
+<p>Ilia Mirkin (7):</p>
+<ul>
+ <li>nv50/ir: only propagate saturate up if some actual folding took place</li>
+ <li>nv50: keep track of PGRAPH state in nv50_screen</li>
+ <li>nvc0: keep track of PGRAPH state in nvc0_screen</li>
+ <li>nvc0: reset the instanced elements state when doing blit using 3d engine</li>
+ <li>nv50/ir: only enable mul saturate on G200+</li>
+ <li>st/mesa: make sure to create a "clean" bool when doing i2b</li>
+ <li>nvc0: switch mechanism for shader eviction to be a while loop</li>
+</ul>
+
+<p>Jeremy Huddleston Sequoia (2):</p>
+<ul>
+ <li>swrast: Build fix for darwin</li>
+ <li>darwin: Fix install name of libOSMesa</li>
+</ul>
+
+<p>Laura Ekstrand (2):</p>
+<ul>
+ <li>main: Fix an error generated by FramebufferTexture</li>
+ <li>main: Complete error conditions for glInvalidate*Framebuffer.</li>
+</ul>
+
+<p>Marta Lofstedt (1):</p>
+<ul>
+ <li>main: glGetIntegeri_v fails for GL_VERTEX_BINDING_STRIDE</li>
+</ul>
+
+<p>Rob Clark (2):</p>
+<ul>
+ <li>freedreno: enable a306</li>
+ <li>freedreno: fix bug in tile/slot calculation</li>
+</ul>
+
+<p>Roland Scheidegger (1):</p>
+<ul>
+ <li>draw: (trivial) fix out-of-bounds vector initialization</li>
+</ul>
+
+<p>Tim Rowley (1):</p>
+<ul>
+ <li>mesa: fix shininess check for ffvertex_prog v2</li>
+</ul>
+
+<p>Tom Stellard (2):</p>
+<ul>
+ <li>clover: Add a mutex to guard queue::queued_events</li>
+ <li>clover: Fix a bug with multi-threaded events v2</li>
+</ul>
+
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.5.7.html b/mesalib/docs/relnotes/10.5.7.html
new file mode 100644
index 000000000..68c838549
--- /dev/null
+++ b/mesalib/docs/relnotes/10.5.7.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.5.7 Release Notes / June 07, 2015</h1>
+
+<p>
+Mesa 10.5.7 is a bug fix release which fixes bugs found since the 10.5.6 release.
+</p>
+<p>
+Mesa 10.5.7 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+8f865ce497435fdf25d4e35f3b5551b2bcd5f9bc6570561183be82af20d18b82 mesa-10.5.7.tar.gz
+04d06890cd69af8089d6ca76f40e46dcf9cacfe4a9788b32be620574d4638818 mesa-10.5.7.tar.xz
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89131">Bug 89131</a> - [Bisected] Graphical corruption in Weston, shows old framebuffer pieces</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Ben Widawsky (1):</p>
+<ul>
+ <li>i965: Emit 3DSTATE_MULTISAMPLE before WM_HZ_OP (gen8+)</li>
+</ul>
+
+<p>Emil Velikov (4):</p>
+<ul>
+ <li>docs: Add sha256sums for the 10.5.6 release</li>
+ <li>get-pick-list.sh: Require explicit "10.5" for nominating stable patches</li>
+ <li>cherry-ignore: add clover build fix not applicable for 10.5</li>
+ <li>Update version to 10.5.7</li>
+</ul>
+
+<p>Ilia Mirkin (18):</p>
+<ul>
+ <li>nvc0/ir: set ftz when sources are floats, not just destinations</li>
+ <li>nv50/ir: guess that the constant offset is the starting slot of array</li>
+ <li>nvc0/ir: LOAD's can't be used for shader inputs</li>
+ <li>nvc0: a geometry shader can have up to 1024 vertices output</li>
+ <li>nv50/ir: avoid messing up arg1 of PFETCH</li>
+ <li>nv30: don't leak fragprog consts</li>
+ <li>nv30: avoid leaking render state and draw shaders</li>
+ <li>nv30: fix clip plane uploads and enable changes</li>
+ <li>nv30/draw: avoid leaving stale pointers in draw state</li>
+ <li>nv30/draw: draw expects constbuf size in bytes, not vec4 units</li>
+ <li>st/mesa: don't leak glsl_to_tgsi object on link failure</li>
+ <li>glsl: avoid leaking linked gl_shader when there's a late linker error</li>
+ <li>nv30/draw: fix indexed draws with swtnl path and a resource index buffer</li>
+ <li>nv30/draw: only use the DMA1 object (GART) if the bo is not in VRAM</li>
+ <li>nv30/draw: allocate vertex buffers in gart</li>
+ <li>nv30/draw: switch varying hookup logic to know about texcoords</li>
+ <li>nv30: falling back to draw path for edgeflag does no good</li>
+ <li>nv30: avoid doing extra work on clear and hitting unexpected states</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+ <li>i965/fs: Fix implied_mrf_writes for scratch writes</li>
+</ul>
+
+<p>Marek Olšák (1):</p>
+<ul>
+ <li>st/dri: fix postprocessing crash when there's no depth buffer</li>
+</ul>
+
+
+</div>
+</body>
+</html>
diff --git a/mesalib/docs/relnotes/10.6.0.html b/mesalib/docs/relnotes/10.6.0.html
index 474a2c71f..ebd1f104d 100644
--- a/mesalib/docs/relnotes/10.6.0.html
+++ b/mesalib/docs/relnotes/10.6.0.html
@@ -14,7 +14,7 @@
<iframe src="../contents.html"></iframe>
<div class="content">
-<h1>Mesa 10.6.0 Release Notes / TBD</h1>
+<h1>Mesa 10.6.0 Release Notes / June 14, 2015</h1>
<p>
Mesa 10.6.0 is a new development release.
@@ -31,9 +31,10 @@ because compatibility contexts are not supported.
</p>
-<h2>MD5 checksums</h2>
+<h2>SHA256 checksums</h2>
<pre>
-TBD.
+9bc659abdba26202509304f259723aaa4343dba6aac4bd87d5baea11d23c8c63 mesa-10.6.0.tar.gz
+f37e2633978deed02ff0522abc36c709586e2b555fd439a82ab71dce2c866c76 mesa-10.6.0.tar.xz
</pre>
@@ -71,7 +72,246 @@ Note: some of the new features are only available with certain drivers.
<h2>Bug fixes</h2>
-TBD.
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=15006">Bug 15006</a> - translate &amp; rotate the line cause Aliasing</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27007">Bug 27007</a> - Lines disappear with GL_LINE_SMOOTH</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=28832">Bug 28832</a> - piglit/general/line-aa-width fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45348">Bug 45348</a> - [swrast] piglit fbo-drawbuffers-arbfp regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60797">Bug 60797</a> - 1px lines in octave plot aliased to 0</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67564">Bug 67564</a> - HiZ buffers are much larger than necessary</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69226">Bug 69226</a> - Cannot enable basic shaders with Second Life aborts attempt</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71591">Bug 71591</a> - Second Life shaders fail to compile (extension declared in middle of shader)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79202">Bug 79202</a> - valgrind errors in glsl-fs-uniform-array-loop-unroll.shader_test; random code generation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81025">Bug 81025</a> - [IVB/BYT Bisected]Piglit spec_ARB_draw_indirect_arb_draw_indirect-draw-elements-prim-restart-ugly fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82477">Bug 82477</a> - [softpipe] piglit fp-long-alu regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82668">Bug 82668</a> - Can't set int attributes to certain values on 32-bit</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82831">Bug 82831</a> - i965: Support GL_ARB_blend_func_extended in SIMD16</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83962">Bug 83962</a> - [HSW/BYT]Piglit spec_ARB_gpu_shader5_arb_gpu_shader5-emitstreamvertex_nodraw fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84613">Bug 84613</a> - [G965, bisected] piglit regressions : glslparsertest.glsl2</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86747">Bug 86747</a> - Noise in Football Manager 2014 textures</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86792">Bug 86792</a> - [NVC0] Portal 2 Crashes in Wine</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86811">Bug 86811</a> - [BDW/BSW Bisected]Piglit spec_arb_shading_language_packing_execution_built-in-functions_vs-unpackSnorm4x8 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86837">Bug 86837</a> - kodi segfault since auxiliary/vl: rework the build of the VL code</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86944">Bug 86944</a> - glsl_parser_extras.cpp&quot;, line 1455: Error: Badly formed expression. (Oracle Studio)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86974">Bug 86974</a> - INTEL_DEBUG=shader_time always asserts in fs_generator::generate_code() when Mesa is built with --enable-debug (= with asserts)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86980">Bug 86980</a> - [swrast] piglit fp-rfl regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87258">Bug 87258</a> - [BDW/BSW Bisected]Piglit spec_ARB_shader_atomic_counters_array-indexing fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88246">Bug 88246</a> - Commit 2881b12 causes 43 DrawElements test regressions</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88248">Bug 88248</a> - Calling glClear while there is an occlusion query in progress messes up the results</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88521">Bug 88521</a> - GLBenchmark 2.7 TRex renders with artifacts on Gen8 with !UXA</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88534">Bug 88534</a> - include/c11/threads_posix.h PTHREAD_MUTEX_RECURSIVE_NP not defined</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88561">Bug 88561</a> - [radeonsi][regression,bisected] Depth test/buffer issues in Portal</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88793">Bug 88793</a> - [BDW/BSW Bisected]Piglit/shaders_glsl-max-varyings fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88815">Bug 88815</a> - Incorrect handling of GLSL #line directive</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88883">Bug 88883</a> - ir-a2xx.c: variable changed in assert statement</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88885">Bug 88885</a> - Transform feedback uses incorrect interleaving if a previous draw did not write gl_Position</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88905">Bug 88905</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88999">Bug 88999</a> - [SKL] Compiz crashes after opening unity dash</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89014">Bug 89014</a> - PIPE_QUERY_GPU_FINISHED is not acting as expected on SI</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89026">Bug 89026</a> - Renderbuffer layered state used for framebuffer completeness test</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89032">Bug 89032</a> - [BDW/BSW/SKL Bisected]Piglit spec_OpenGL_1.1_infinite-spot-light fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89037">Bug 89037</a> - [SKL]Piglit spec_EXT_texture_array_copyteximage_1D_ARRAY_samples=2 sporadically causes GPU hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89039">Bug 89039</a> - [SKL]etqw system hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89058">Bug 89058</a> - [SKL]Render error in some games (etqw-demo, nexuiz, portal)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89068">Bug 89068</a> - glTexImage2D regression by texstore_rgba switch to _mesa_format_convert</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89069">Bug 89069</a> - Lack of grass in The Talos Principle on radeonsi (native\wine\nine)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89094">Bug 89094</a> - [SNB/IVB/HSW/BYT Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89095">Bug 89095</a> - [SNB/IVB/BYT Bisected]Webglc conformance/glsl/functions/glsl-function-mix-float.html fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89112">Bug 89112</a> - u_atomic_test: u_atomic_test.c:124: test_atomic_8bits_bool: Assertion `r == 65 &amp;&amp; &quot;p_atomic_add&quot;' failed.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89118">Bug 89118</a> - [SKL Bisected]many Ogles3conform cases core dumped</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89131">Bug 89131</a> - [Bisected] Graphical corruption in Weston, shows old framebuffer pieces</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89156">Bug 89156</a> - r300g: GL_COMPRESSED_RED_RGTC1 / ATI1N support broken</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89180">Bug 89180</a> - [IVB regression] Rendering issues in Mass Effect through VMware Workstation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89210">Bug 89210</a> - GS statistics fail on SNB</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89218">Bug 89218</a> - lower_instructions.cpp:648:48: error: invalid suffix 'd' on floating constant</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89224">Bug 89224</a> - Incorrect rendering of Unigine Valley running in VM on VMware Workstation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89260">Bug 89260</a> - macros.h:34:25: fatal error: util/u_math.h: No such file or directory</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89292">Bug 89292</a> - [regression,bisected] incomplete screenshots in some cases</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89311">Bug 89311</a> - [regression, bisected] dEQP: Added entry points for glCompressedTextureSubImage*D.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89312">Bug 89312</a> - [regression, bisected] main: Added entry points for CopyTextureSubImage*D. (d6b7c40cecfe01)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89315">Bug 89315</a> - [HSW, regression, bisected] i965/fs: Emit MAD instructions when possible.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89317">Bug 89317</a> - [HSW, regression, bisected] i965: Add LINTERP/CINTERP to can_do_cmod() (d91390634)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89328">Bug 89328</a> - python required to build Mesa release tarballs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89342">Bug 89342</a> - main/light.c:159:62: error: 'M_PI' undeclared (first use in this function)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89343">Bug 89343</a> - compiler/tests/radeon_compiler_optimize_tests.c:43:3: error: implicit declaration of function ‘fprintf’ [-Werror=implicit-function-declaration]</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89345">Bug 89345</a> - imports.h:452:58: error: expected declaration specifiers or '...' before 'va_list'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89364">Bug 89364</a> - c99_alloca.h:40:22: fatal error: alloca.h: No such file or directory</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89372">Bug 89372</a> - [softpipe] piglit glsl-1.50 generate-zero-primitives regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89387">Bug 89387</a> - Double delete in lp_bld_misc.cpp</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89416">Bug 89416</a> - UE4Editor crash after load project</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89430">Bug 89430</a> - [g965][bisected] arb_copy_image-targets gl_texture* tests fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89433">Bug 89433</a> - GCC 4.2 does not support -Wvla</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89455">Bug 89455</a> - [NVC0/Gallium] Unigine Heaven black and white boxes</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89457">Bug 89457</a> - [BSW Bisected]ogles3conform ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89477">Bug 89477</a> - include/no_extern_c.h:47:1: error: template with C linkage</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89508">Bug 89508</a> - Bad int(floatBitsToInt(vec4))</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89530">Bug 89530</a> - FTBFS in loader: missing fstat</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89569">Bug 89569</a> - Papo &amp; Yo crash on startup [HSW]</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89590">Bug 89590</a> - Crash in glLinkProgram with shaders with multiple constant arrays</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89662">Bug 89662</a> - context.c:943: undefined reference to `_glapi_new_nop_table'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89670">Bug 89670</a> - cmod_propagation_test.andnz_one regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89679">Bug 89679</a> - [NV50] Portal/Half-Life 2 will not start (native Steam)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89689">Bug 89689</a> - [Regression] Weston on DRM backend won't start with new version of mesa</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89722">Bug 89722</a> - [ILK Bisected]Ogles2conform/ES2-CTS.gtf.GL.equal.equal_vec2_frag fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89726">Bug 89726</a> - [Bisected] dEQP-GLES3: uniform linking logic in the presence of structs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89746">Bug 89746</a> - Mesa and LLVM 3.6+ break opengl for genymotion</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89754">Bug 89754</a> - vertexAttrib fails WebGL Conformance test with mesa drivers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89758">Bug 89758</a> - pow WebGL Conformance test with mesa drivers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89759">Bug 89759</a> - WebGL OGL ES GLSL conformance test with mesa drivers fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89831">Bug 89831</a> - [r600] r600_asm.c:310:assign_alu_units: Assertion `0' failed.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89899">Bug 89899</a> - nir/nir_lower_tex_projector.c:112: error: unknown field ‘ssa’ specified in initializer</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89957">Bug 89957</a> - vm protection faults in piglit lest: texsubimage cube_map_array pbo</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89960">Bug 89960</a> - [softpipe] piglit copy-pixels regreession</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89961">Bug 89961</a> - [BDW/BSW Bisected]Synmark2_v6 OglDrvRes/OglDrvShComp/OglDrvState/OglPSPom Image Validation fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89963">Bug 89963</a> - lp_bld_debug.cpp:100:31: error: no matching function for call to ‘llvm::raw_ostream::raw_ostream()’</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90000">Bug 90000</a> - [i965 Bisected NIR] Piglit/gglean_fragprog1-z-write_test fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90109">Bug 90109</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.uniform_block.random.basic_arrays.3 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90114">Bug 90114</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.struct.uniform.sampler_array_fragment fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90130">Bug 90130</a> - gl_PrimitiveId seems to reset at 340</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90147">Bug 90147</a> - swrast: build error undeclared _SC_PHYS_PAGES on osx</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90149">Bug 90149</a> - [SNB+ Bisected]ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_getactiveuniformsiv_for_nonexistent_uniform_indices fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90153">Bug 90153</a> - [SKL Bisected]ES3-CTS.gtf.GL3Tests.uniform_buffer_object.uniform_buffer_object_all_valid_basic_types fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90167">Bug 90167</a> - [softpipe] piglit depthstencil-default_fb-drawpixels-32f_24_8_rev regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90207">Bug 90207</a> - [r600g, bisected] regression: NI/Turks crash on WebGL Water (most WebGL stuff)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90213">Bug 90213</a> - glDrawPixels with GL_COLOR_INDEX never returns.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90243">Bug 90243</a> - [bisected] regression: spec.!opengl 3_2.get-active-attrib-returns-all-inputs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90258">Bug 90258</a> - [IVB] spec.glsl-1_10.execution.fs-dfdy-accuracy fails intermittently</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90310">Bug 90310</a> - Fails to build gallium_dri.so at linking stage with clang because of multiple redefinitions</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90350">Bug 90350</a> - [G96] Portal's portal are incorrectly rendered</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90363">Bug 90363</a> - [nv50] HW state is not reset correctly when using a new GL context</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90397">Bug 90397</a> - ARB_program_interface_query: glGetProgramResourceiv() returns wrong value for GL_REFERENCED_BY_*_SHADER prop for GL_UNIFORM for members of an interface block with an instance name</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90466">Bug 90466</a> - arm: linker error ndefined reference to `nir_metadata_preserve'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90520">Bug 90520</a> - Register spilling clobbers registers used elsewhere in the shader</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90547">Bug 90547</a> - [BDW/BSW/SKL Bisected]Piglit/glean&#64;vertprog1-rsq_test_2_(reciprocal_square_root_of_negative_value) fais</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90580">Bug 90580</a> - [HSW bisected] integer multiplication bug</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90629">Bug 90629</a> - [i965] SIMD16 dual_source_blend assertion `src[i].file != GRF || src[i].width == dst.width' failed</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90749">Bug 90749</a> - [BDW Bisected]dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90830">Bug 90830</a> - [bsw bisected regression] GPU hang for spec.arb_gpu_shader5.execution.sampler_array_indexing.vs-nonzero-base</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90839">Bug 90839</a> - [10.5.5/10.6 regression, bisected] PBO glDrawPixels no longer using blit fastpath</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90905">Bug 90905</a> - mesa: Finish subdir-objects transition</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=9951">Bug 9951</a> - GL_LINE_SMOOTH and GL_POLYGON_SMOOTH with i965 driver</li>
+
+</ul>
+
<h2>Changes</h2>
diff --git a/mesalib/docs/relnotes/10.7.0.html b/mesalib/docs/relnotes/10.7.0.html
new file mode 100644
index 000000000..7518389ba
--- /dev/null
+++ b/mesalib/docs/relnotes/10.7.0.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.7.0 Release Notes / TBD</h1>
+
+<p>
+Mesa 10.7.0 is a new development release.
+People who are concerned with stability and reliability should stick
+with a previous release or wait for Mesa 10.7.1.
+</p>
+<p>
+Mesa 10.7.0 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD.
+</pre>
+
+
+<h2>New features</h2>
+
+<p>
+Note: some of the new features are only available with certain drivers.
+</p>
+
+<ul>
+<li>GL_ARB_shader_stencil_export on llvmpipe</li>
+</ul>
+
+<h2>Bug fixes</h2>
+
+TBD.
+
+<h2>Changes</h2>
+
+TBD.
+
+</div>
+</body>
+</html>
diff --git a/mesalib/include/EGL/egl.h b/mesalib/include/EGL/egl.h
index 99ea342a4..0d514e4de 100644
--- a/mesalib/include/EGL/egl.h
+++ b/mesalib/include/EGL/egl.h
@@ -1,11 +1,12 @@
-/* -*- mode: c; tab-width: 8; -*- */
-/* vi: set sw=4 ts=8: */
-/* Reference version of egl.h for EGL 1.4.
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
- */
+#ifndef __egl_h_
+#define __egl_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -26,304 +27,277 @@
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 31039 $ on $Date: 2015-05-04 17:01:57 -0700 (Mon, 04 May 2015) $
+*/
-#ifndef __egl_h_
-#define __egl_h_
-
-/* All platform-dependent types and macro boilerplate (such as EGLAPI
- * and EGLAPIENTRY) should go in eglplatform.h.
- */
#include <EGL/eglplatform.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+/* Generated on date 20150504 */
+
+/* Generated C header for:
+ * API: egl
+ * Versions considered: .*
+ * Versions emitted: .*
+ * Default extensions included: None
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
-/* EGL Types */
-/* EGLint is defined in eglplatform.h */
+#ifndef EGL_VERSION_1_0
+#define EGL_VERSION_1_0 1
typedef unsigned int EGLBoolean;
-typedef unsigned int EGLenum;
-typedef void *EGLConfig;
-typedef void *EGLContext;
typedef void *EGLDisplay;
+#include <KHR/khrplatform.h>
+#include <EGL/eglplatform.h>
+typedef void *EGLConfig;
typedef void *EGLSurface;
-typedef void *EGLClientBuffer;
-
-/* EGL Versioning */
-#define EGL_VERSION_1_0 1
-#define EGL_VERSION_1_1 1
-#define EGL_VERSION_1_2 1
-#define EGL_VERSION_1_3 1
-#define EGL_VERSION_1_4 1
-
-/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
- * enums are assigned unique values starting at 0x3000.
- */
-
-/* EGL aliases */
-#define EGL_FALSE 0
-#define EGL_TRUE 1
-
-/* Out-of-band handle values */
-#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
-#define EGL_NO_CONTEXT ((EGLContext)0)
-#define EGL_NO_DISPLAY ((EGLDisplay)0)
-#define EGL_NO_SURFACE ((EGLSurface)0)
-
-/* Out-of-band attribute value */
-#define EGL_DONT_CARE ((EGLint)-1)
-
-/* Errors / GetError return values */
-#define EGL_SUCCESS 0x3000
-#define EGL_NOT_INITIALIZED 0x3001
-#define EGL_BAD_ACCESS 0x3002
-#define EGL_BAD_ALLOC 0x3003
-#define EGL_BAD_ATTRIBUTE 0x3004
-#define EGL_BAD_CONFIG 0x3005
-#define EGL_BAD_CONTEXT 0x3006
-#define EGL_BAD_CURRENT_SURFACE 0x3007
-#define EGL_BAD_DISPLAY 0x3008
-#define EGL_BAD_MATCH 0x3009
-#define EGL_BAD_NATIVE_PIXMAP 0x300A
-#define EGL_BAD_NATIVE_WINDOW 0x300B
-#define EGL_BAD_PARAMETER 0x300C
-#define EGL_BAD_SURFACE 0x300D
-#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
-
-/* Reserved 0x300F-0x301F for additional errors */
-
-/* Config attributes */
-#define EGL_BUFFER_SIZE 0x3020
-#define EGL_ALPHA_SIZE 0x3021
-#define EGL_BLUE_SIZE 0x3022
-#define EGL_GREEN_SIZE 0x3023
-#define EGL_RED_SIZE 0x3024
-#define EGL_DEPTH_SIZE 0x3025
-#define EGL_STENCIL_SIZE 0x3026
-#define EGL_CONFIG_CAVEAT 0x3027
-#define EGL_CONFIG_ID 0x3028
-#define EGL_LEVEL 0x3029
-#define EGL_MAX_PBUFFER_HEIGHT 0x302A
-#define EGL_MAX_PBUFFER_PIXELS 0x302B
-#define EGL_MAX_PBUFFER_WIDTH 0x302C
-#define EGL_NATIVE_RENDERABLE 0x302D
-#define EGL_NATIVE_VISUAL_ID 0x302E
-#define EGL_NATIVE_VISUAL_TYPE 0x302F
-#define EGL_SAMPLES 0x3031
-#define EGL_SAMPLE_BUFFERS 0x3032
-#define EGL_SURFACE_TYPE 0x3033
-#define EGL_TRANSPARENT_TYPE 0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
-#define EGL_TRANSPARENT_RED_VALUE 0x3037
-#define EGL_NONE 0x3038 /* Attrib list terminator */
-#define EGL_BIND_TO_TEXTURE_RGB 0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
-#define EGL_MIN_SWAP_INTERVAL 0x303B
-#define EGL_MAX_SWAP_INTERVAL 0x303C
-#define EGL_LUMINANCE_SIZE 0x303D
-#define EGL_ALPHA_MASK_SIZE 0x303E
-#define EGL_COLOR_BUFFER_TYPE 0x303F
-#define EGL_RENDERABLE_TYPE 0x3040
-#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
-#define EGL_CONFORMANT 0x3042
-
-/* Reserved 0x3041-0x304F for additional config attributes */
-
-/* Config attribute values */
-#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
-#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
-#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
-#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
-#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
-
-/* More config attribute values, for EGL_TEXTURE_FORMAT */
-#define EGL_NO_TEXTURE 0x305C
-#define EGL_TEXTURE_RGB 0x305D
-#define EGL_TEXTURE_RGBA 0x305E
-#define EGL_TEXTURE_2D 0x305F
-
-/* Config attribute mask bits */
-#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */
-#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */
-
-#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */
-
-/* QueryString targets */
-#define EGL_VENDOR 0x3053
-#define EGL_VERSION 0x3054
-#define EGL_EXTENSIONS 0x3055
-#define EGL_CLIENT_APIS 0x308D
-
-/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
-#define EGL_HEIGHT 0x3056
-#define EGL_WIDTH 0x3057
-#define EGL_LARGEST_PBUFFER 0x3058
-#define EGL_TEXTURE_FORMAT 0x3080
-#define EGL_TEXTURE_TARGET 0x3081
-#define EGL_MIPMAP_TEXTURE 0x3082
-#define EGL_MIPMAP_LEVEL 0x3083
-#define EGL_RENDER_BUFFER 0x3086
-#define EGL_VG_COLORSPACE 0x3087
-#define EGL_VG_ALPHA_FORMAT 0x3088
-#define EGL_HORIZONTAL_RESOLUTION 0x3090
-#define EGL_VERTICAL_RESOLUTION 0x3091
-#define EGL_PIXEL_ASPECT_RATIO 0x3092
-#define EGL_SWAP_BEHAVIOR 0x3093
-#define EGL_MULTISAMPLE_RESOLVE 0x3099
-
-/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
-#define EGL_BACK_BUFFER 0x3084
-#define EGL_SINGLE_BUFFER 0x3085
-
-/* OpenVG color spaces */
-#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */
-#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */
-
-/* OpenVG alpha formats */
-#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
-#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
-
-/* Constant scale factor by which fractional display resolutions &
- * aspect ratio are scaled when queried as integer values.
- */
-#define EGL_DISPLAY_SCALING 10000
-
-/* Unknown display resolution/aspect ratio */
-#define EGL_UNKNOWN ((EGLint)-1)
-
-/* Back buffer swap behaviors */
-#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
-#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
-
-/* CreatePbufferFromClientBuffer buffer types */
-#define EGL_OPENVG_IMAGE 0x3096
-
-/* QueryContext targets */
-#define EGL_CONTEXT_CLIENT_TYPE 0x3097
-
-/* CreateContext attributes */
-#define EGL_CONTEXT_CLIENT_VERSION 0x3098
-
-/* Multisample resolution behaviors */
-#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */
-#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */
-
-/* BindAPI/QueryAPI targets */
-#define EGL_OPENGL_ES_API 0x30A0
-#define EGL_OPENVG_API 0x30A1
-#define EGL_OPENGL_API 0x30A2
-
-/* GetCurrentSurface targets */
-#define EGL_DRAW 0x3059
-#define EGL_READ 0x305A
-
-/* WaitNative engines */
-#define EGL_CORE_NATIVE_ENGINE 0x305B
-
-/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
-#define EGL_COLORSPACE EGL_VG_COLORSPACE
-#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT
-#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB
-#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR
-#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE
-#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE
-
-/* EGL extensions must request enum blocks from the Khronos
- * API Registrar, who maintains the enumerant registry. Submit
- * a bug in Khronos Bugzilla against task "Registry".
- */
-
-
-
-/* EGL Functions */
-
-EGLAPI EGLint EGLAPIENTRY eglGetError(void);
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
-EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
-EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
-
-EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
- EGLint config_size, EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
- EGLConfig *configs, EGLint config_size,
- EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativeWindowType win,
- const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
- const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativePixmapType pixmap,
- const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
-EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
- EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
- EGLConfig config, const EGLint *attrib_list);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint value);
-EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
-
-
-EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
- EGLContext share_context,
- const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
-EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
- EGLSurface read, EGLContext ctx);
-
-EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
-EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
-EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
- EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
- EGLNativePixmapType target);
-
-/* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
+typedef void *EGLContext;
typedef void (*__eglMustCastToProperFunctionPointerType)(void);
-
-/* Now, define eglGetProcAddress using the generic function ptr. type */
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
- eglGetProcAddress(const char *procname);
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_DONT_CARE ((EGLint)-1)
+#define EGL_DRAW 0x3059
+#define EGL_EXTENSIONS 0x3055
+#define EGL_FALSE 0
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_HEIGHT 0x3056
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_NONE 0x3038
+#define EGL_NON_CONFORMANT_CONFIG 0x3051
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+#define EGL_PBUFFER_BIT 0x0001
+#define EGL_PIXMAP_BIT 0x0002
+#define EGL_READ 0x305A
+#define EGL_RED_SIZE 0x3024
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SLOW_CONFIG 0x3050
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_SUCCESS 0x3000
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_TRANSPARENT_RGB 0x3052
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRUE 1
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_WIDTH 0x3057
+#define EGL_WINDOW_BIT 0x0004
+EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
+EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
+EGLAPI EGLint EGLAPIENTRY eglGetError (void);
+EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
+EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
+EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
+#endif /* EGL_VERSION_1_0 */
+
+#ifndef EGL_VERSION_1_1
+#define EGL_VERSION_1_1 1
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_CONTEXT_LOST 0x300E
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_2D 0x305F
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_TARGET 0x3081
+EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
+#endif /* EGL_VERSION_1_1 */
+
+#ifndef EGL_VERSION_1_2
+#define EGL_VERSION_1_2 1
+typedef unsigned int EGLenum;
+typedef void *EGLClientBuffer;
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_ALPHA_FORMAT_PRE 0x308C
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_BUFFER_PRESERVED 0x3094
+#define EGL_BUFFER_DESTROYED 0x3095
+#define EGL_CLIENT_APIS 0x308D
+#define EGL_COLORSPACE 0x3087
+#define EGL_COLORSPACE_sRGB 0x3089
+#define EGL_COLORSPACE_LINEAR 0x308A
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+#define EGL_DISPLAY_SCALING 10000
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_LUMINANCE_BUFFER 0x308F
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_OPENGL_ES_BIT 0x0001
+#define EGL_OPENVG_BIT 0x0002
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+#define EGL_OPENVG_IMAGE 0x3096
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_RGB_BUFFER 0x308E
+#define EGL_SINGLE_BUFFER 0x3085
+#define EGL_SWAP_BEHAVIOR 0x3093
+#define EGL_UNKNOWN ((EGLint)-1)
+#define EGL_VERTICAL_RESOLUTION 0x3091
+EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
+EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
+#endif /* EGL_VERSION_1_2 */
+
+#ifndef EGL_VERSION_1_3
+#define EGL_VERSION_1_3 1
+#define EGL_CONFORMANT 0x3042
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041
+#define EGL_OPENGL_ES2_BIT 0x0004
+#define EGL_VG_ALPHA_FORMAT 0x3088
+#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
+#define EGL_VG_COLORSPACE 0x3087
+#define EGL_VG_COLORSPACE_sRGB 0x3089
+#define EGL_VG_COLORSPACE_LINEAR 0x308A
+#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
+#endif /* EGL_VERSION_1_3 */
+
+#ifndef EGL_VERSION_1_4
+#define EGL_VERSION_1_4 1
+#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
+#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
+#define EGL_MULTISAMPLE_RESOLVE 0x3099
+#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
+#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
+#define EGL_OPENGL_API 0x30A2
+#define EGL_OPENGL_BIT 0x0008
+#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
+EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
+#endif /* EGL_VERSION_1_4 */
+
+#ifndef EGL_VERSION_1_5
+#define EGL_VERSION_1_5 1
+typedef void *EGLSync;
+typedef intptr_t EGLAttrib;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef void *EGLImage;
+#define EGL_CONTEXT_MAJOR_VERSION 0x3098
+#define EGL_CONTEXT_MINOR_VERSION 0x30FB
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+#define EGL_NO_RESET_NOTIFICATION 0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+#define EGL_OPENGL_ES3_BIT 0x00000040
+#define EGL_CL_EVENT_HANDLE 0x309C
+#define EGL_SYNC_CL_EVENT 0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
+#define EGL_SYNC_TYPE 0x30F7
+#define EGL_SYNC_STATUS 0x30F1
+#define EGL_SYNC_CONDITION 0x30F8
+#define EGL_SIGNALED 0x30F2
+#define EGL_UNSIGNALED 0x30F3
+#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
+#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull
+#define EGL_TIMEOUT_EXPIRED 0x30F5
+#define EGL_CONDITION_SATISFIED 0x30F6
+#define EGL_NO_SYNC ((EGLSync)0)
+#define EGL_SYNC_FENCE 0x30F9
+#define EGL_GL_COLORSPACE 0x309D
+#define EGL_GL_COLORSPACE_SRGB 0x3089
+#define EGL_GL_COLORSPACE_LINEAR 0x308A
+#define EGL_GL_RENDERBUFFER 0x30B9
+#define EGL_GL_TEXTURE_2D 0x30B1
+#define EGL_GL_TEXTURE_LEVEL 0x30BC
+#define EGL_GL_TEXTURE_3D 0x30B2
+#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
+#define EGL_IMAGE_PRESERVED 0x30D2
+#define EGL_NO_IMAGE ((EGLImage)0)
+EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
+EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
+#endif /* EGL_VERSION_1_5 */
#ifdef __cplusplus
}
#endif
-#endif /* __egl_h_ */
+#endif
diff --git a/mesalib/include/EGL/eglext.h b/mesalib/include/EGL/eglext.h
index 88b39dbc4..6043b374f 100644
--- a/mesalib/include/EGL/eglext.h
+++ b/mesalib/include/EGL/eglext.h
@@ -6,7 +6,7 @@ extern "C" {
#endif
/*
-** Copyright (c) 2013 The Khronos Group Inc.
+** Copyright (c) 2013-2014 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -33,12 +33,12 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 24567 $ on $Date: 2013-12-18 09:50:17 -0800 (Wed, 18 Dec 2013) $
+** Khronos $Revision$ on $Date$
*/
#include <EGL/eglplatform.h>
-#define EGL_EGLEXT_VERSION 20131218
+#define EGL_EGLEXT_VERSION 20150508
/* Generated C header for:
* API: egl
@@ -94,12 +94,28 @@ EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type,
#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
#endif /* EGL_KHR_create_context */
+#ifndef EGL_KHR_create_context_no_error
+#define EGL_KHR_create_context_no_error 1
+#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
+#endif /* EGL_KHR_create_context_no_error */
+
#ifndef EGL_KHR_fence_sync
#define EGL_KHR_fence_sync 1
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#ifdef KHRONOS_SUPPORT_INT64
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
#define EGL_SYNC_CONDITION_KHR 0x30F8
#define EGL_SYNC_FENCE_KHR 0x30F9
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#endif
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_KHR_fence_sync */
@@ -207,9 +223,38 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface s
#endif
#endif /* EGL_KHR_lock_surface3 */
+#ifndef EGL_KHR_partial_update
+#define EGL_KHR_partial_update 1
+#define EGL_BUFFER_AGE_KHR 0x313D
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_partial_update */
+
+#ifndef EGL_KHR_platform_android
+#define EGL_KHR_platform_android 1
+#define EGL_PLATFORM_ANDROID_KHR 0x3141
+#endif /* EGL_KHR_platform_android */
+
+#ifndef EGL_KHR_platform_gbm
+#define EGL_KHR_platform_gbm 1
+#define EGL_PLATFORM_GBM_KHR 0x31D7
+#endif /* EGL_KHR_platform_gbm */
+
+#ifndef EGL_KHR_platform_wayland
+#define EGL_KHR_platform_wayland 1
+#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
+#endif /* EGL_KHR_platform_wayland */
+
+#ifndef EGL_KHR_platform_x11
+#define EGL_KHR_platform_x11 1
+#define EGL_PLATFORM_X11_KHR 0x31D5
+#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
+#endif /* EGL_KHR_platform_x11 */
+
#ifndef EGL_KHR_reusable_sync
#define EGL_KHR_reusable_sync 1
-typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#ifdef KHRONOS_SUPPORT_INT64
#define EGL_SYNC_STATUS_KHR 0x30F1
#define EGL_SIGNALED_KHR 0x30F2
@@ -221,17 +266,9 @@ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0)
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
-EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
#endif
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_KHR_reusable_sync */
@@ -333,6 +370,14 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy,
#define EGL_KHR_surfaceless_context 1
#endif /* EGL_KHR_surfaceless_context */
+#ifndef EGL_KHR_swap_buffers_with_damage
+#define EGL_KHR_swap_buffers_with_damage 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_swap_buffers_with_damage */
+
#ifndef EGL_KHR_vg_parent_image
#define EGL_KHR_vg_parent_image 1
#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
@@ -389,6 +434,12 @@ EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
+#ifndef EGL_ANGLE_device_d3d
+#define EGL_ANGLE_device_d3d 1
+#define EGL_D3D9_DEVICE_ANGLE 0x33A0
+#define EGL_D3D11_DEVICE_ANGLE 0x33A1
+#endif /* EGL_ANGLE_device_d3d */
+
#ifndef EGL_ANGLE_query_surface_pointer
#define EGL_ANGLE_query_surface_pointer 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
@@ -401,6 +452,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
+#ifndef EGL_ANGLE_window_fixed_size
+#define EGL_ANGLE_window_fixed_size 1
+#define EGL_FIXED_SIZE_ANGLE 0x3201
+#endif /* EGL_ANGLE_window_fixed_size */
+
#ifndef EGL_ARM_pixmap_multisample_discard
#define EGL_ARM_pixmap_multisample_discard 1
#define EGL_DISCARD_SAMPLES_ARM 0x3286
@@ -423,6 +479,42 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
#endif /* EGL_EXT_create_context_robustness */
+#ifndef EGL_EXT_device_base
+#define EGL_EXT_device_base 1
+typedef void *EGLDeviceEXT;
+#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0))
+#define EGL_BAD_DEVICE_EXT 0x322B
+#define EGL_DEVICE_EXT 0x322C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#endif
+#endif /* EGL_EXT_device_base */
+
+#ifndef EGL_EXT_device_drm
+#define EGL_EXT_device_drm 1
+#define EGL_DRM_DEVICE_FILE_EXT 0x3233
+#endif /* EGL_EXT_device_drm */
+
+#ifndef EGL_EXT_device_enumeration
+#define EGL_EXT_device_enumeration 1
+#endif /* EGL_EXT_device_enumeration */
+
+#ifndef EGL_EXT_device_openwf
+#define EGL_EXT_device_openwf 1
+#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
+#endif /* EGL_EXT_device_openwf */
+
+#ifndef EGL_EXT_device_query
+#define EGL_EXT_device_query 1
+#endif /* EGL_EXT_device_query */
+
#ifndef EGL_EXT_image_dma_buf_import
#define EGL_EXT_image_dma_buf_import 1
#define EGL_LINUX_DMA_BUF_EXT 0x3270
@@ -454,6 +546,48 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
#endif /* EGL_EXT_multiview_window */
+#ifndef EGL_EXT_output_base
+#define EGL_EXT_output_base 1
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0)
+#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0)
+#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
+#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
+#define EGL_SWAP_INTERVAL_EXT 0x322F
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#endif
+#endif /* EGL_EXT_output_base */
+
+#ifndef EGL_EXT_output_drm
+#define EGL_EXT_output_drm 1
+#define EGL_DRM_CRTC_EXT 0x3234
+#define EGL_DRM_PLANE_EXT 0x3235
+#define EGL_DRM_CONNECTOR_EXT 0x3236
+#endif /* EGL_EXT_output_drm */
+
+#ifndef EGL_EXT_output_openwf
+#define EGL_EXT_output_openwf 1
+#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
+#define EGL_OPENWF_PORT_ID_EXT 0x3239
+#endif /* EGL_EXT_output_openwf */
+
#ifndef EGL_EXT_platform_base
#define EGL_EXT_platform_base 1
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
@@ -466,6 +600,11 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
#endif
#endif /* EGL_EXT_platform_base */
+#ifndef EGL_EXT_platform_device
+#define EGL_EXT_platform_device 1
+#define EGL_PLATFORM_DEVICE_EXT 0x313F
+#endif /* EGL_EXT_platform_device */
+
#ifndef EGL_EXT_platform_wayland
#define EGL_EXT_platform_wayland 1
#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
@@ -477,6 +616,19 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
#endif /* EGL_EXT_platform_x11 */
+#ifndef EGL_EXT_protected_surface
+#define EGL_EXT_protected_surface 1
+#define EGL_PROTECTED_CONTENT_EXT 0x32C0
+#endif /* EGL_EXT_protected_surface */
+
+#ifndef EGL_EXT_stream_consumer_egloutput
+#define EGL_EXT_stream_consumer_egloutput 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#endif
+#endif /* EGL_EXT_stream_consumer_egloutput */
+
#ifndef EGL_EXT_swap_buffers_with_damage
#define EGL_EXT_swap_buffers_with_damage 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
@@ -485,6 +637,35 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSu
#endif
#endif /* EGL_EXT_swap_buffers_with_damage */
+#ifndef EGL_EXT_yuv_surface
+#define EGL_EXT_yuv_surface 1
+#define EGL_YUV_ORDER_EXT 0x3301
+#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+#define EGL_YUV_SUBSAMPLE_EXT 0x3312
+#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
+#define EGL_YUV_CSC_STANDARD_EXT 0x330A
+#define EGL_YUV_PLANE_BPP_EXT 0x331A
+#define EGL_YUV_BUFFER_EXT 0x3300
+#define EGL_YUV_ORDER_YUV_EXT 0x3302
+#define EGL_YUV_ORDER_YVU_EXT 0x3303
+#define EGL_YUV_ORDER_YUYV_EXT 0x3304
+#define EGL_YUV_ORDER_UYVY_EXT 0x3305
+#define EGL_YUV_ORDER_YVYU_EXT 0x3306
+#define EGL_YUV_ORDER_VYUY_EXT 0x3307
+#define EGL_YUV_ORDER_AYUV_EXT 0x3308
+#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
+#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
+#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
+#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
+#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
+#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
+#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
+#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
+#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
+#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
+#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
+#endif /* EGL_EXT_yuv_surface */
+
#ifndef EGL_HI_clientpixmap
#define EGL_HI_clientpixmap 1
struct EGLClientPixmapHI {
@@ -533,11 +714,42 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#endif
#endif /* EGL_MESA_drm_image */
+#ifndef EGL_MESA_image_dma_buf_export
+#define EGL_MESA_image_dma_buf_export 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#endif
+#endif /* EGL_MESA_image_dma_buf_export */
+
#ifndef EGL_MESA_platform_gbm
#define EGL_MESA_platform_gbm 1
#define EGL_PLATFORM_GBM_MESA 0x31D7
#endif /* EGL_MESA_platform_gbm */
+#ifndef EGL_NOK_swap_region
+#define EGL_NOK_swap_region 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region */
+
+#ifndef EGL_NOK_swap_region2
+#define EGL_NOK_swap_region2 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region2 */
+
+#ifndef EGL_NOK_texture_from_pixmap
+#define EGL_NOK_texture_from_pixmap 1
+#define EGL_Y_INVERTED_NOK 0x307F
+#endif /* EGL_NOK_texture_from_pixmap */
+
#ifndef EGL_NV_3dvision_surface
#define EGL_NV_3dvision_surface 1
#define EGL_AUTO_STEREO_NV 0x3136
@@ -556,6 +768,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
#endif /* EGL_NV_coverage_sample_resolve */
+#ifndef EGL_NV_cuda_event
+#define EGL_NV_cuda_event 1
+#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
+#define EGL_SYNC_CUDA_EVENT_NV 0x323C
+#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
+#endif /* EGL_NV_cuda_event */
+
#ifndef EGL_NV_depth_nonlinear
#define EGL_NV_depth_nonlinear 1
#define EGL_DEPTH_ENCODING_NV 0x30E2
@@ -563,6 +782,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
#endif /* EGL_NV_depth_nonlinear */
+#ifndef EGL_NV_device_cuda
+#define EGL_NV_device_cuda 1
+#define EGL_CUDA_DEVICE_NV 0x323A
+#endif /* EGL_NV_device_cuda */
+
#ifndef EGL_NV_native_query
#define EGL_NV_native_query 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
@@ -645,6 +869,16 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
#endif /* KHRONOS_SUPPORT_INT64 */
#endif /* EGL_NV_system_time */
+#ifndef EGL_TIZEN_image_native_buffer
+#define EGL_TIZEN_image_native_buffer 1
+#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
+#endif /* EGL_TIZEN_image_native_buffer */
+
+#ifndef EGL_TIZEN_image_native_surface
+#define EGL_TIZEN_image_native_surface 1
+#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
+#endif /* EGL_TIZEN_image_native_surface */
+
#include <EGL/eglmesaext.h>
#include <EGL/eglextchromium.h>
diff --git a/mesalib/include/EGL/eglmesaext.h b/mesalib/include/EGL/eglmesaext.h
index 87748cadb..917a2043c 100644
--- a/mesalib/include/EGL/eglmesaext.h
+++ b/mesalib/include/EGL/eglmesaext.h
@@ -87,45 +87,14 @@ typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) (
#endif
-#ifndef EGL_NOK_swap_region
-#define EGL_NOK_swap_region 1
-
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-#endif
-
+/* remnant of EGL_NOK_swap_region kept for compatibility because of a non-standard type name */
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-#endif
-
-#ifndef EGL_NOK_texture_from_pixmap
-#define EGL_NOK_texture_from_pixmap 1
-
-#define EGL_Y_INVERTED_NOK 0x307F
-#endif /* EGL_NOK_texture_from_pixmap */
-
-#ifndef EGL_ANDROID_image_native_buffer
-#define EGL_ANDROID_image_native_buffer 1
-#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
-#endif
#ifndef EGL_MESA_configless_context
#define EGL_MESA_configless_context 1
#define EGL_NO_CONFIG_MESA ((EGLConfig)0)
#endif
-#if KHRONOS_SUPPORT_INT64
-#ifndef EGL_MESA_image_dma_buf_export
-#define EGL_MESA_image_dma_buf_export 1
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers);
-EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
-#endif
-#endif
-
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESA) (EGLDisplay dpy, EGLImageKHR image, EGLint *fourcc, EGLint *nplanes, EGLuint64KHR *modifiers);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESA) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
-
-#endif
#ifdef __cplusplus
}
#endif
diff --git a/mesalib/include/EGL/eglplatform.h b/mesalib/include/EGL/eglplatform.h
index 2eb686590..7802542ad 100644
--- a/mesalib/include/EGL/eglplatform.h
+++ b/mesalib/include/EGL/eglplatform.h
@@ -2,7 +2,7 @@
#define __eglplatform_h_
/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
+** Copyright (c) 2007-2013 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -25,7 +25,7 @@
*/
/* Platform-specific types and definitions for egl.h
- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
+ * $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $
*
* Adopters may modify khrplatform.h and this file to suit their platform.
* You are encouraged to submit all modifications to the Khronos group so that
@@ -77,7 +77,7 @@ typedef HDC EGLNativeDisplayType;
typedef HBITMAP EGLNativePixmapType;
typedef HWND EGLNativeWindowType;
-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
+#elif defined(__APPLE__) || defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
typedef int EGLNativeDisplayType;
typedef void *EGLNativeWindowType;
@@ -95,14 +95,15 @@ typedef struct gbm_device *EGLNativeDisplayType;
typedef struct gbm_bo *EGLNativePixmapType;
typedef void *EGLNativeWindowType;
-#elif defined(ANDROID) /* Android */
+#elif defined(__ANDROID__) || defined(ANDROID)
+
+#include <android/native_window.h>
-struct ANativeWindow;
struct egl_native_pixmap_t;
-typedef struct ANativeWindow *EGLNativeWindowType;
-typedef struct egl_native_pixmap_t *EGLNativePixmapType;
-typedef void *EGLNativeDisplayType;
+typedef struct ANativeWindow* EGLNativeWindowType;
+typedef struct egl_native_pixmap_t* EGLNativePixmapType;
+typedef void* EGLNativeDisplayType;
#elif defined(__unix__)
@@ -131,9 +132,7 @@ typedef khronos_uintptr_t EGLNativePixmapType;
typedef khronos_uintptr_t EGLNativeWindowType;
#else
-
#error "Platform not recognized"
-
#endif
/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
diff --git a/mesalib/include/KHR/khrplatform.h b/mesalib/include/KHR/khrplatform.h
index 447953940..790de44b8 100644
--- a/mesalib/include/KHR/khrplatform.h
+++ b/mesalib/include/KHR/khrplatform.h
@@ -26,7 +26,7 @@
/* Khronos platform-specific types and definitions.
*
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
+ * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
*
* Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos
@@ -106,9 +106,9 @@
#elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C
#elif (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303) \
- || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+ || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
/* KHRONOS_APIATTRIBUTES is not used by the client API headers yet */
-# define KHRONOS_APICALL __attribute__((visibility("default")))
+# define KHRONOS_APICALL __attribute__((visibility("default")))
#else
# define KHRONOS_APICALL
#endif
@@ -229,10 +229,23 @@ typedef signed char khronos_int8_t;
typedef unsigned char khronos_uint8_t;
typedef signed short int khronos_int16_t;
typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef _WIN64
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t;
typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t;
+#endif
#if KHRONOS_SUPPORT_FLOAT
/*
diff --git a/mesalib/scons/llvm.py b/mesalib/scons/llvm.py
index 17278df88..c59b8cb93 100644
--- a/mesalib/scons/llvm.py
+++ b/mesalib/scons/llvm.py
@@ -120,6 +120,7 @@ def generate(env):
])
elif llvm_version >= distutils.version.LooseVersion('3.5'):
env.Prepend(LIBS = [
+ 'LLVMMCDisassembler',
'LLVMBitWriter', 'LLVMMCJIT', 'LLVMRuntimeDyld',
'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen',
'LLVMSelectionDAG', 'LLVMAsmPrinter', 'LLVMX86Desc',
@@ -132,6 +133,7 @@ def generate(env):
])
else:
env.Prepend(LIBS = [
+ 'LLVMMCDisassembler',
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
@@ -189,7 +191,7 @@ def generate(env):
if '-fno-rtti' in cxxflags:
env.Append(CXXFLAGS = ['-fno-rtti'])
- components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter']
+ components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler']
env.ParseConfig('llvm-config --libs ' + ' '.join(components))
env.ParseConfig('llvm-config --ldflags')
diff --git a/mesalib/src/Makefile.am b/mesalib/src/Makefile.am
index 18cb4ce76..5d69abd99 100644
--- a/mesalib/src/Makefile.am
+++ b/mesalib/src/Makefile.am
@@ -72,4 +72,5 @@ noinst_LTLIBRARIES = libglsl_util.la
libglsl_util_la_SOURCES = \
mesa/main/imports.c \
mesa/program/prog_hash_table.c \
- mesa/program/symbol_table.c
+ mesa/program/symbol_table.c \
+ mesa/program/dummy_errors.c
diff --git a/mesalib/src/gallium/Android.common.mk b/mesalib/src/gallium/Android.common.mk
index 782510ff0..7c6c7ac68 100644
--- a/mesalib/src/gallium/Android.common.mk
+++ b/mesalib/src/gallium/Android.common.mk
@@ -29,4 +29,12 @@ LOCAL_C_INCLUDES += \
$(GALLIUM_TOP)/winsys \
$(GALLIUM_TOP)/drivers
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_C_INCLUDES += \
+ external/llvm/include \
+ external/llvm/device/include \
+ external/libcxx/include \
+ external/elfutils/$(if $(filter true,$(MESA_LOLLIPOP_BUILD)),0.153/)libelf
+endif
+
include $(MESA_COMMON_MK)
diff --git a/mesalib/src/gallium/Android.mk b/mesalib/src/gallium/Android.mk
index b2662ffca..b94668184 100644
--- a/mesalib/src/gallium/Android.mk
+++ b/mesalib/src/gallium/Android.mk
@@ -33,7 +33,9 @@ SUBDIRS := auxiliary
#
# swrast
-SUBDIRS += winsys/sw/android drivers/softpipe
+ifneq ($(filter swrast,$(MESA_GPU_DRIVERS)),)
+SUBDIRS += winsys/sw/dri winsys/sw/kms-dri drivers/softpipe
+endif
# freedreno
ifneq ($(filter freedreno, $(MESA_GPU_DRIVERS)),)
@@ -74,10 +76,17 @@ endif
endif
endif
+# vc4
+ifneq ($(filter vc4, $(MESA_GPU_DRIVERS)),)
+SUBDIRS += winsys/vc4/drm drivers/vc4
+endif
+
# vmwgfx
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
SUBDIRS += winsys/svga/drm drivers/svga
endif
-mkfiles := $(patsubst %,$(GALLIUM_TOP)/%/Android.mk,$(SUBDIRS))
-include $(mkfiles)
+# Gallium state trackers and target for dri
+SUBDIRS += state_trackers/dri targets/dri
+
+include $(call all-named-subdir-makefiles,$(SUBDIRS))
diff --git a/mesalib/src/gallium/auxiliary/Android.mk b/mesalib/src/gallium/auxiliary/Android.mk
index 96a2125de..86430eb6a 100644
--- a/mesalib/src/gallium/auxiliary/Android.mk
+++ b/mesalib/src/gallium/auxiliary/Android.mk
@@ -30,12 +30,23 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
$(C_SOURCES) \
+ $(NIR_SOURCES) \
$(VL_STUB_SOURCES)
LOCAL_C_INCLUDES := \
$(GALLIUM_TOP)/auxiliary/util
+ifeq ($(MESA_ENABLE_LLVM),true)
+LOCAL_SRC_FILES += \
+ $(GALLIVM_SOURCES) \
+ $(GALLIVM_CPP_SOURCES)
+
+LOCAL_CPPFLAGS := -std=c++11
+endif
+
+# We need libmesa_glsl to get NIR's generated include directories.
LOCAL_MODULE := libmesa_gallium
+LOCAL_STATIC_LIBRARIES += libmesa_glsl
# generate sources
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
diff --git a/mesalib/src/gallium/auxiliary/hud/hud_context.c b/mesalib/src/gallium/auxiliary/hud/hud_context.c
index 00ec20589..6a124f7d7 100644
--- a/mesalib/src/gallium/auxiliary/hud/hud_context.c
+++ b/mesalib/src/gallium/auxiliary/hud/hud_context.c
@@ -423,6 +423,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_save_viewport(cso);
cso_save_stream_outputs(cso);
cso_save_geometry_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_vertex_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -456,6 +458,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_set_rasterizer(cso, &hud->rasterizer);
cso_set_viewport(cso, &viewport);
cso_set_stream_outputs(cso, 0, NULL, NULL);
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
cso_set_vertex_shader_handle(cso, hud->vs);
cso_set_vertex_elements(cso, 2, hud->velems);
@@ -548,6 +552,8 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
cso_restore_rasterizer(cso);
cso_restore_viewport(cso);
cso_restore_stream_outputs(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_shader(cso);
cso_restore_vertex_elements(cso);
diff --git a/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c b/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
index 59aaf6778..1702b4139 100644
--- a/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
+++ b/mesalib/src/gallium/auxiliary/nir/tgsi_to_nir.c
@@ -401,7 +401,6 @@ ttn_src_for_file_and_index(struct ttn_compile *c, unsigned file, unsigned index,
load->num_components = 4;
load->const_index[0] = index;
- load->const_index[1] = 1;
if (dim) {
if (dimind) {
load->src[srcn] =
@@ -1625,7 +1624,6 @@ ttn_emit_instruction(struct ttn_compile *c)
}
if (tgsi_inst->Instruction.Saturate) {
- assert(tgsi_inst->Instruction.Saturate == TGSI_SAT_ZERO_ONE);
assert(!dest.dest.is_ssa);
ttn_move_dest(b, dest, nir_fsat(b, ttn_src_for_dest(b, &dest)));
}
@@ -1672,7 +1670,6 @@ ttn_add_output_stores(struct ttn_compile *c)
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_output);
store->num_components = 4;
store->const_index[0] = var->data.driver_location + i;
- store->const_index[1] = 1;
store->src[0].reg.reg = c->output_regs[var->data.driver_location].reg;
nir_instr_insert_after_cf_list(b->cf_node_list, &store->instr);
}
diff --git a/mesalib/src/gallium/auxiliary/util/u_blit.c b/mesalib/src/gallium/auxiliary/util/u_blit.c
index 90408ffdc..3f3b5fe63 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blit.c
+++ b/mesalib/src/gallium/auxiliary/util/u_blit.c
@@ -535,6 +535,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
cso_save_framebuffer(ctx->cso);
cso_save_fragment_shader(ctx->cso);
cso_save_vertex_shader(ctx->cso);
+ cso_save_tessctrl_shader(ctx->cso);
+ cso_save_tesseval_shader(ctx->cso);
cso_save_geometry_shader(ctx->cso);
cso_save_vertex_elements(ctx->cso);
cso_save_aux_vertex_buffer_slot(ctx->cso);
@@ -571,6 +573,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
set_fragment_shader(ctx, TGSI_WRITEMASK_XYZW,
src_sampler_view->texture->target);
set_vertex_shader(ctx);
+ cso_set_tessctrl_shader_handle(ctx->cso, NULL);
+ cso_set_tesseval_shader_handle(ctx->cso, NULL);
cso_set_geometry_shader_handle(ctx->cso, NULL);
/* drawing dest */
@@ -611,6 +615,8 @@ util_blit_pixels_tex(struct blit_state *ctx,
cso_restore_framebuffer(ctx->cso);
cso_restore_fragment_shader(ctx->cso);
cso_restore_vertex_shader(ctx->cso);
+ cso_restore_tessctrl_shader(ctx->cso);
+ cso_restore_tesseval_shader(ctx->cso);
cso_restore_geometry_shader(ctx->cso);
cso_restore_vertex_elements(ctx->cso);
cso_restore_aux_vertex_buffer_slot(ctx->cso);
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.c b/mesalib/src/gallium/auxiliary/util/u_blitter.c
index 24a5b93e1..16bf90fc9 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.c
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.c
@@ -130,6 +130,7 @@ struct blitter_context_priv
unsigned dst_height;
boolean has_geometry_shader;
+ boolean has_tessellation;
boolean has_layered;
boolean has_stream_out;
boolean has_stencil_export;
@@ -183,6 +184,11 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe)
ctx->has_geometry_shader =
pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_GEOMETRY,
PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0;
+
+ ctx->has_tessellation =
+ pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_TESS_CTRL,
+ PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0;
+
ctx->has_stream_out =
pipe->screen->get_param(pipe->screen,
PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS) != 0;
@@ -510,6 +516,8 @@ static void blitter_check_saved_vertex_states(struct blitter_context_priv *ctx)
assert(ctx->base.saved_velem_state != INVALID_PTR);
assert(ctx->base.saved_vs != INVALID_PTR);
assert(!ctx->has_geometry_shader || ctx->base.saved_gs != INVALID_PTR);
+ assert(!ctx->has_tessellation || ctx->base.saved_tcs != INVALID_PTR);
+ assert(!ctx->has_tessellation || ctx->base.saved_tes != INVALID_PTR);
assert(!ctx->has_stream_out || ctx->base.saved_num_so_targets != ~0);
assert(ctx->base.saved_rs_state != INVALID_PTR);
}
@@ -538,6 +546,13 @@ static void blitter_restore_vertex_states(struct blitter_context_priv *ctx)
ctx->base.saved_gs = INVALID_PTR;
}
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, ctx->base.saved_tcs);
+ pipe->bind_tes_state(pipe, ctx->base.saved_tes);
+ ctx->base.saved_tcs = INVALID_PTR;
+ ctx->base.saved_tes = INVALID_PTR;
+ }
+
/* Stream outputs. */
if (ctx->has_stream_out) {
unsigned offsets[PIPE_MAX_SO_BUFFERS];
@@ -1108,6 +1123,10 @@ static void blitter_set_common_draw_rect_state(struct blitter_context_priv *ctx,
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
if (ctx->has_stream_out)
pipe->set_stream_output_targets(pipe, 0, NULL, NULL);
}
@@ -1967,6 +1986,10 @@ void util_blitter_copy_buffer(struct blitter_context *blitter,
bind_vs_pos_only(ctx);
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
pipe->bind_rasterizer_state(pipe, ctx->rs_discard_state);
so_target = pipe->create_stream_output_target(pipe, dst, dstx, size);
@@ -2027,6 +2050,10 @@ void util_blitter_clear_buffer(struct blitter_context *blitter,
bind_vs_pos_only(ctx);
if (ctx->has_geometry_shader)
pipe->bind_gs_state(pipe, NULL);
+ if (ctx->has_tessellation) {
+ pipe->bind_tcs_state(pipe, NULL);
+ pipe->bind_tes_state(pipe, NULL);
+ }
pipe->bind_rasterizer_state(pipe, ctx->rs_discard_state);
so_target = pipe->create_stream_output_target(pipe, dst, offset, size);
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.h b/mesalib/src/gallium/auxiliary/util/u_blitter.h
index 1568030ac..93b0e513b 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.h
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.h
@@ -102,7 +102,7 @@ struct blitter_context
void *saved_dsa_state; /**< depth stencil alpha state */
void *saved_velem_state; /**< vertex elements state */
void *saved_rs_state; /**< rasterizer state */
- void *saved_fs, *saved_vs, *saved_gs; /**< shaders */
+ void *saved_fs, *saved_vs, *saved_gs, *saved_tcs, *saved_tes; /**< shaders */
struct pipe_framebuffer_state saved_fb_state; /**< framebuffer state */
struct pipe_stencil_ref saved_stencil_ref; /**< stencil ref */
@@ -427,6 +427,20 @@ void util_blitter_save_geometry_shader(struct blitter_context *blitter,
blitter->saved_gs = gs;
}
+static INLINE void
+util_blitter_save_tessctrl_shader(struct blitter_context *blitter,
+ void *sh)
+{
+ blitter->saved_tcs = sh;
+}
+
+static INLINE void
+util_blitter_save_tesseval_shader(struct blitter_context *blitter,
+ void *sh)
+{
+ blitter->saved_tes = sh;
+}
+
static INLINE
void util_blitter_save_framebuffer(struct blitter_context *blitter,
const struct pipe_framebuffer_state *state)
diff --git a/mesalib/src/gallium/auxiliary/util/u_dump_state.c b/mesalib/src/gallium/auxiliary/util/u_dump_state.c
index e6614d5d2..7f620b50c 100644
--- a/mesalib/src/gallium/auxiliary/util/u_dump_state.c
+++ b/mesalib/src/gallium/auxiliary/util/u_dump_state.c
@@ -750,6 +750,8 @@ util_dump_draw_info(FILE *stream, const struct pipe_draw_info *state)
util_dump_member(stream, uint, state, start_instance);
util_dump_member(stream, uint, state, instance_count);
+ util_dump_member(stream, uint, state, vertices_per_patch);
+
util_dump_member(stream, int, state, index_bias);
util_dump_member(stream, uint, state, min_index);
util_dump_member(stream, uint, state, max_index);
diff --git a/mesalib/src/gallium/auxiliary/util/u_format_etc.c b/mesalib/src/gallium/auxiliary/util/u_format_etc.c
index f909b1608..63e03ff5c 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format_etc.c
+++ b/mesalib/src/gallium/auxiliary/util/u_format_etc.c
@@ -65,11 +65,10 @@ util_format_etc1_rgb8_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, con
void
util_format_etc1_rgb8_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
{
- const unsigned bw = 4, bh = 4;
struct etc1_block block;
uint8_t tmp[3];
- assert(i < bw && j < bh);
+ assert(i < 4 && j < 4); /* check i, j against 4x4 block size */
etc1_parse_block(&block, src);
etc1_fetch_texel(&block, i, j, tmp);
diff --git a/mesalib/src/gallium/auxiliary/util/u_math.h b/mesalib/src/gallium/auxiliary/util/u_math.h
index 3d27a59e8..3b4040f0e 100644
--- a/mesalib/src/gallium/auxiliary/util/u_math.h
+++ b/mesalib/src/gallium/auxiliary/util/u_math.h
@@ -42,6 +42,7 @@
#include "pipe/p_compiler.h"
#include "c99_math.h"
+#include <assert.h>
#include <float.h>
#include <stdarg.h>
@@ -424,6 +425,25 @@ util_last_bit(unsigned u)
}
/**
+ * Find last bit set in a word. The least significant bit is 1.
+ * Return 0 if no bits are set.
+ */
+static INLINE unsigned
+util_last_bit64(uint64_t u)
+{
+#if defined(HAVE___BUILTIN_CLZLL)
+ return u == 0 ? 0 : 64 - __builtin_clzll(u);
+#else
+ unsigned r = 0;
+ while (u) {
+ r++;
+ u >>= 1;
+ }
+ return r;
+#endif
+}
+
+/**
* Find last bit in a word that does not match the sign bit. The least
* significant bit is 1.
* Return 0 if no bits are set.
diff --git a/mesalib/src/gallium/auxiliary/util/u_tests.h b/mesalib/src/gallium/auxiliary/util/u_tests.h
index 49ae54f87..106b0a0a9 100644
--- a/mesalib/src/gallium/auxiliary/util/u_tests.h
+++ b/mesalib/src/gallium/auxiliary/util/u_tests.h
@@ -30,8 +30,16 @@
#include "pipe/p_compiler.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct pipe_screen;
void util_run_tests(struct pipe_screen *screen);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/mesalib/src/glsl/Android.mk b/mesalib/src/glsl/Android.mk
index f20741e0d..f63b7daf2 100644
--- a/mesalib/src/glsl/Android.mk
+++ b/mesalib/src/glsl/Android.mk
@@ -46,7 +46,6 @@ LOCAL_C_INCLUDES := \
LOCAL_MODULE := libmesa_glsl
-include external/stlport/libstlport.mk
include $(LOCAL_PATH)/Android.gen.mk
include $(MESA_COMMON_MK)
include $(BUILD_STATIC_LIBRARY)
diff --git a/mesalib/src/glsl/Makefile.am b/mesalib/src/glsl/Makefile.am
index 23c6fe8bb..fa8c9f5d3 100644
--- a/mesalib/src/glsl/Makefile.am
+++ b/mesalib/src/glsl/Makefile.am
@@ -89,8 +89,7 @@ tests_general_ir_test_SOURCES = \
tests/builtin_variable_test.cpp \
tests/invalidate_locations_test.cpp \
tests/general_ir_test.cpp \
- tests/varyings_test.cpp \
- tests/common.c
+ tests/varyings_test.cpp
tests_general_ir_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_general_ir_test_LDADD = \
@@ -103,8 +102,7 @@ tests_uniform_initializer_test_SOURCES = \
tests/copy_constant_to_storage_tests.cpp \
tests/set_uniform_initializer_tests.cpp \
tests/uniform_initializer_utils.cpp \
- tests/uniform_initializer_utils.h \
- tests/common.c
+ tests/uniform_initializer_utils.h
tests_uniform_initializer_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_uniform_initializer_test_LDADD = \
@@ -114,8 +112,7 @@ tests_uniform_initializer_test_LDADD = \
$(PTHREAD_LIBS)
tests_sampler_types_test_SOURCES = \
- tests/sampler_types_test.cpp \
- tests/common.c
+ tests/sampler_types_test.cpp
tests_sampler_types_test_CFLAGS = \
$(PTHREAD_CFLAGS)
tests_sampler_types_test_LDADD = \
@@ -133,8 +130,7 @@ libglcpp_la_SOURCES = \
$(LIBGLCPP_FILES)
glcpp_glcpp_SOURCES = \
- glcpp/glcpp.c \
- tests/common.c
+ glcpp/glcpp.c
glcpp_glcpp_LDADD = \
libglcpp.la \
$(top_builddir)/src/libglsl_util.la \
@@ -164,7 +160,6 @@ glsl_compiler_LDADD = \
glsl_test_SOURCES = \
standalone_scaffolding.cpp \
- tests/common.c \
test.cpp \
test_optpass.cpp \
test_optpass.h
@@ -247,21 +242,21 @@ dist-hook:
$(RM) glcpp/tests/subtest*/*.out
nir/nir_builder_opcodes.h: nir/nir_opcodes.py nir/nir_builder_opcodes_h.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_builder_opcodes_h.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_builder_opcodes_h.py > $@
nir/nir_constant_expressions.c: nir/nir_opcodes.py nir/nir_constant_expressions.py nir/nir_constant_expressions.h
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_constant_expressions.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_constant_expressions.py > $@
nir/nir_opcodes.h: nir/nir_opcodes.py nir/nir_opcodes_h.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_h.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_h.py > $@
nir/nir_opcodes.c: nir/nir_opcodes.py nir/nir_opcodes_c.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_c.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opcodes_c.py > $@
nir/nir_opt_algebraic.c: nir/nir_opt_algebraic.py nir/nir_algebraic.py
- $(MKDIR_P) nir; \
- $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opt_algebraic.py > $@
+ $(AM_V_at)$(MKDIR_P) nir
+ $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/nir/nir_opt_algebraic.py > $@
diff --git a/mesalib/src/glsl/SConscript b/mesalib/src/glsl/SConscript
index 284b37584..89c603580 100644
--- a/mesalib/src/glsl/SConscript
+++ b/mesalib/src/glsl/SConscript
@@ -71,6 +71,7 @@ env.Command('imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE'))
env.Prepend(CPPPATH = ['#src/mesa/program'])
env.Command('prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE'))
env.Command('symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE'))
+env.Command('dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TARGET', '$SOURCE'))
compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES'])
@@ -78,6 +79,7 @@ mesa_objs = env.StaticObject([
'imports.c',
'prog_hash_table.c',
'symbol_table.c',
+ 'dummy_errors.c',
])
compiler_objs += mesa_objs
@@ -115,6 +117,6 @@ env.Alias('glsl_compiler', glsl_compiler)
glcpp = env.Program(
target = 'glcpp/glcpp',
- source = ['glcpp/glcpp.c', 'tests/common.c'] + mesa_objs,
+ source = ['glcpp/glcpp.c'] + mesa_objs,
)
env.Alias('glcpp', glcpp)
diff --git a/mesalib/src/glsl/ast_array_index.cpp b/mesalib/src/glsl/ast_array_index.cpp
index ecef651f7..752d86f72 100644
--- a/mesalib/src/glsl/ast_array_index.cpp
+++ b/mesalib/src/glsl/ast_array_index.cpp
@@ -225,7 +225,7 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
* values *do* diverge, then the behavior of the operation requiring a
* dynamically uniform expression is undefined.
*/
- if (array->type->element_type()->is_sampler()) {
+ if (array->type->without_array()->is_sampler()) {
if (!state->is_version(130, 100)) {
if (state->es_shader) {
_mesa_glsl_warning(&loc, state,
diff --git a/mesalib/src/glsl/ast_function.cpp b/mesalib/src/glsl/ast_function.cpp
index 758361324..92e26bf24 100644
--- a/mesalib/src/glsl/ast_function.cpp
+++ b/mesalib/src/glsl/ast_function.cpp
@@ -863,7 +863,7 @@ process_array_constructor(exec_list *instructions,
if (is_unsized_array) {
constructor_type =
- glsl_type::get_array_instance(constructor_type->element_type(),
+ glsl_type::get_array_instance(constructor_type->fields.array,
parameter_count);
assert(constructor_type != NULL);
assert(constructor_type->length == parameter_count);
@@ -876,7 +876,7 @@ process_array_constructor(exec_list *instructions,
ir_rvalue *result = ir;
const glsl_base_type element_base_type =
- constructor_type->element_type()->base_type;
+ constructor_type->fields.array->base_type;
/* Apply implicit conversions (not the scalar constructor rules!). See
* the spec quote above. */
@@ -896,10 +896,10 @@ process_array_constructor(exec_list *instructions,
}
}
- if (result->type != constructor_type->element_type()) {
+ if (result->type != constructor_type->fields.array) {
_mesa_glsl_error(loc, state, "type error in array constructor: "
"expected: %s, found %s",
- constructor_type->element_type()->name,
+ constructor_type->fields.array->name,
result->type->name);
return ir_rvalue::error_value(ctx);
}
@@ -993,11 +993,15 @@ emit_inline_vector_constructor(const glsl_type *type,
ir_variable *var = new(ctx) ir_variable(type, "vec_ctor", ir_var_temporary);
instructions->push_tail(var);
- /* There are two kinds of vector constructors.
+ /* There are three kinds of vector constructors.
*
* - Construct a vector from a single scalar by replicating that scalar to
* all components of the vector.
*
+ * - Construct a vector from at least a matrix. This case should already
+ * have been taken care of in ast_function_expression::hir by breaking
+ * down the matrix into a series of column vectors.
+ *
* - Construct a vector from an arbirary combination of vectors and
* scalars. The components of the constructor parameters are assigned
* to the vector in order until the vector is full.
@@ -1091,6 +1095,14 @@ emit_inline_vector_constructor(const glsl_type *type,
rhs_components = lhs_components - base_component;
}
+ /* If we do not have any components left to copy, break out of the
+ * loop. This can happen when initializing a vec4 with a mat3 as the
+ * mat3 would have been broken into a series of column vectors.
+ */
+ if (rhs_components == 0) {
+ break;
+ }
+
const ir_constant *const c = param->as_constant();
if (c == NULL) {
/* Mask of fields to be written in the assignment.
@@ -1681,11 +1693,11 @@ ast_function_expression::hir(exec_list *instructions,
return ir_rvalue::error_value(ctx);
}
- /* Later, we cast each parameter to the same base type as the
- * constructor. Since there are no non-floating point matrices, we
- * need to break them up into a series of column vectors.
+ /* Matrices can never be consumed as is by any constructor but matrix
+ * constructors. If the constructor type is not matrix, always break the
+ * matrix up into a series of column vectors.
*/
- if (constructor_type->base_type != GLSL_TYPE_FLOAT) {
+ if (!constructor_type->is_matrix()) {
foreach_in_list_safe(ir_rvalue, matrix, &actual_parameters) {
if (!matrix->type->is_matrix())
continue;
diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp
index 14e630905..fc24305b2 100644
--- a/mesalib/src/glsl/ast_to_hir.cpp
+++ b/mesalib/src/glsl/ast_to_hir.cpp
@@ -678,7 +678,7 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
* is handled by ir_dereference::is_lvalue.
*/
if (lhs_type->is_unsized_array() && rhs->type->is_array()
- && (lhs_type->element_type() == rhs->type->element_type())) {
+ && (lhs_type->fields.array == rhs->type->fields.array)) {
if (is_initializer) {
return rhs;
} else {
@@ -820,7 +820,7 @@ do_assignment(exec_list *instructions, struct _mesa_glsl_parse_state *state,
var->data.max_array_access);
}
- var->type = glsl_type::get_array_instance(lhs->type->element_type(),
+ var->type = glsl_type::get_array_instance(lhs->type->fields.array,
rhs->type->array_size());
d->type = var->type;
}
@@ -2330,8 +2330,7 @@ apply_image_qualifier_to_variable(const struct ast_type_qualifier *qual,
struct _mesa_glsl_parse_state *state,
YYLTYPE *loc)
{
- const glsl_type *base_type =
- (var->type->is_array() ? var->type->element_type() : var->type);
+ const glsl_type *base_type = var->type->without_array();
if (base_type->is_image()) {
if (var->data.mode != ir_var_uniform &&
@@ -2730,7 +2729,7 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
* GL_ARB_conservative_depth
* GL_ARB_gpu_shader5
* GL_ARB_separate_shader_objects
- * GL_ARB_tesselation_shader
+ * GL_ARB_tessellation_shader
* GL_ARB_transform_feedback3
* GL_ARB_uniform_buffer_object
*
@@ -2855,7 +2854,7 @@ get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
* type and specify a size."
*/
if (earlier->type->is_unsized_array() && var->type->is_array()
- && (var->type->element_type() == earlier->type->element_type())) {
+ && (var->type->fields.array == earlier->type->fields.array)) {
/* FINISHME: This doesn't match the qualifiers on the two
* FINISHME: declarations. It's not 100% clear whether this is
* FINISHME: required or not.
@@ -3608,6 +3607,51 @@ ast_declarator_list::hir(exec_list *instructions,
}
handle_geometry_shader_input_decl(state, loc, var);
+ } else if (state->stage == MESA_SHADER_FRAGMENT) {
+ /* From section 4.3.4 (Input Variables) of the GLSL ES 3.10 spec:
+ *
+ * It is a compile-time error to declare a fragment shader
+ * input with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * An array of arrays
+ * * An array of structures
+ * * A structure containing an array
+ * * A structure containing a structure
+ */
+ if (state->es_shader) {
+ const glsl_type *check_type = var->type->without_array();
+ if (check_type->is_boolean() ||
+ check_type->contains_opaque()) {
+ _mesa_glsl_error(&loc, state,
+ "fragment shader input cannot have type %s",
+ check_type->name);
+ }
+ if (var->type->is_array() &&
+ var->type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "%s shader output "
+ "cannot have an array of arrays",
+ _mesa_shader_stage_to_string(state->stage));
+ }
+ if (var->type->is_array() &&
+ var->type->fields.array->is_record()) {
+ _mesa_glsl_error(&loc, state,
+ "fragment shader input "
+ "cannot have an array of structs");
+ }
+ if (var->type->is_record()) {
+ for (unsigned i = 0; i < var->type->length; i++) {
+ if (var->type->fields.structure[i].type->is_array() ||
+ var->type->fields.structure[i].type->is_record())
+ _mesa_glsl_error(&loc, state,
+ "fragement shader input cannot have "
+ "a struct that contains an "
+ "array or struct");
+ }
+ }
+ }
}
} else if (var->data.mode == ir_var_shader_out) {
const glsl_type *check_type = var->type->without_array();
@@ -3642,7 +3686,7 @@ ast_declarator_list::hir(exec_list *instructions,
if (check_type->is_record() || check_type->is_matrix())
_mesa_glsl_error(&loc, state,
"fragment shader output "
- "cannot have struct or array type");
+ "cannot have struct or matrix type");
switch (check_type->base_type) {
case GLSL_TYPE_UINT:
case GLSL_TYPE_INT:
@@ -3654,6 +3698,55 @@ ast_declarator_list::hir(exec_list *instructions,
"type %s", check_type->name);
}
}
+
+ /* From section 4.3.6 (Output Variables) of the GLSL ES 3.10 spec:
+ *
+ * It is a compile-time error to declare a vertex shader output
+ * with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * An array of arrays
+ * * An array of structures
+ * * A structure containing an array
+ * * A structure containing a structure
+ *
+ * It is a compile-time error to declare a fragment shader output
+ * with, or that contains, any of the following types:
+ *
+ * * A boolean type
+ * * An opaque type
+ * * A matrix
+ * * A structure
+ * * An array of array
+ */
+ if (state->es_shader) {
+ if (var->type->is_array() &&
+ var->type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "%s shader output "
+ "cannot have an array of arrays",
+ _mesa_shader_stage_to_string(state->stage));
+ }
+ if (state->stage == MESA_SHADER_VERTEX) {
+ if (var->type->is_array() &&
+ var->type->fields.array->is_record()) {
+ _mesa_glsl_error(&loc, state,
+ "vertex shader output "
+ "cannot have an array of structs");
+ }
+ if (var->type->is_record()) {
+ for (unsigned i = 0; i < var->type->length; i++) {
+ if (var->type->fields.structure[i].type->is_array() ||
+ var->type->fields.structure[i].type->is_record())
+ _mesa_glsl_error(&loc, state,
+ "vertex shader output cannot have a "
+ "struct that contains an "
+ "array or struct");
+ }
+ }
+ }
+ }
}
/* Integer fragment inputs must be qualified with 'flat'. In GLSL ES,
@@ -3850,7 +3943,15 @@ ast_declarator_list::hir(exec_list *instructions,
decl->identifier);
}
- if (state->es_shader) {
+ /* GLSL ES 3.10 removes the restriction on unsized arrays.
+ *
+ * Section 4.1.9 (Arrays) of the GLSL ES 3.10 spec says:
+ *
+ * "Variables of the same type can be aggregated into arrays by
+ * declaring a name followed by brackets ([ ]) enclosing an
+ * optional size."
+ */
+ if (state->es_shader && state->language_version < 310) {
const glsl_type *const t = (earlier == NULL)
? var->type : earlier->type;
@@ -5746,6 +5847,17 @@ ast_interface_block::hir(exec_list *instructions,
const glsl_type *block_array_type =
process_array_type(&loc, block_type, this->array_specifier, state);
+ /* From section 4.3.9 (Interface Blocks) of the GLSL ES 3.10 spec:
+ *
+ * * Arrays of arrays of blocks are not allowed
+ */
+ if (state->es_shader && block_array_type->is_array() &&
+ block_array_type->fields.array->is_array()) {
+ _mesa_glsl_error(&loc, state,
+ "arrays of arrays interface blocks are "
+ "not allowed");
+ }
+
var = new(state) ir_variable(block_array_type,
this->instance_name,
var_mode);
diff --git a/mesalib/src/glsl/builtin_functions.cpp b/mesalib/src/glsl/builtin_functions.cpp
index 97055d85d..efab29919 100644
--- a/mesalib/src/glsl/builtin_functions.cpp
+++ b/mesalib/src/glsl/builtin_functions.cpp
@@ -410,6 +410,13 @@ fp64(const _mesa_glsl_parse_state *state)
return state->has_double();
}
+static bool
+barrier_supported(const _mesa_glsl_parse_state *state)
+{
+ return state->stage == MESA_SHADER_COMPUTE;
+ /* TODO: || stage->state == MESA_SHADER_TESS_CTRL; */
+}
+
/** @} */
/******************************************************************************/
@@ -654,6 +661,7 @@ private:
const glsl_type *stream_type);
ir_function_signature *_EndStreamPrimitive(builtin_available_predicate avail,
const glsl_type *stream_type);
+ B0(barrier)
B2(textureQueryLod);
B1(textureQueryLevels);
@@ -1933,6 +1941,7 @@ builtin_builder::create_builtins()
_EndStreamPrimitive(gs_streams, glsl_type::uint_type),
_EndStreamPrimitive(gs_streams, glsl_type::int_type),
NULL);
+ add_function("barrier", _barrier(), NULL);
add_function("textureQueryLOD",
_textureQueryLod(glsl_type::sampler1D_type, glsl_type::float_type),
@@ -4296,6 +4305,15 @@ builtin_builder::_EndStreamPrimitive(builtin_available_predicate avail,
}
ir_function_signature *
+builtin_builder::_barrier()
+{
+ MAKE_SIG(glsl_type::void_type, barrier_supported, 0);
+
+ body.emit(new(mem_ctx) ir_barrier());
+ return sig;
+}
+
+ir_function_signature *
builtin_builder::_textureQueryLod(const glsl_type *sampler_type,
const glsl_type *coord_type)
{
diff --git a/mesalib/src/glsl/glsl_parser_extras.cpp b/mesalib/src/glsl/glsl_parser_extras.cpp
index be6713c46..046d5d7b5 100644
--- a/mesalib/src/glsl/glsl_parser_extras.cpp
+++ b/mesalib/src/glsl/glsl_parser_extras.cpp
@@ -778,7 +778,7 @@ _mesa_ast_set_aggregate_type(const glsl_type *type,
/* If the aggregate is an array, recursively set its elements' types. */
if (type->is_array()) {
- /* Each array element has the type type->element_type().
+ /* Each array element has the type type->fields.array.
*
* E.g., if <type> if struct S[2] we want to set each element's type to
* struct S.
@@ -790,7 +790,7 @@ _mesa_ast_set_aggregate_type(const glsl_type *type,
link);
if (expr->oper == ast_aggregate)
- _mesa_ast_set_aggregate_type(type->element_type(), expr);
+ _mesa_ast_set_aggregate_type(type->fields.array, expr);
}
/* If the aggregate is a struct, recursively set its fields' types. */
diff --git a/mesalib/src/glsl/glsl_types.cpp b/mesalib/src/glsl/glsl_types.cpp
index 9c9b7efcb..f675e90cb 100644
--- a/mesalib/src/glsl/glsl_types.cpp
+++ b/mesalib/src/glsl/glsl_types.cpp
@@ -217,7 +217,7 @@ glsl_type::contains_opaque() const {
case GLSL_TYPE_ATOMIC_UINT:
return true;
case GLSL_TYPE_ARRAY:
- return element_type()->contains_opaque();
+ return fields.array->contains_opaque();
case GLSL_TYPE_STRUCT:
for (unsigned int i = 0; i < length; i++) {
if (fields.structure[i].type->contains_opaque())
diff --git a/mesalib/src/glsl/glsl_types.h b/mesalib/src/glsl/glsl_types.h
index 5645dcd50..f54a9393e 100644
--- a/mesalib/src/glsl/glsl_types.h
+++ b/mesalib/src/glsl/glsl_types.h
@@ -228,18 +228,6 @@ struct glsl_type {
const glsl_type *get_scalar_type() const;
/**
- * Query the type of elements in an array
- *
- * \return
- * Pointer to the type of elements in the array for array types, or \c NULL
- * for non-array types.
- */
- const glsl_type *element_type() const
- {
- return is_array() ? fields.array : NULL;
- }
-
- /**
* Get the instance of a built-in scalar, vector, or matrix type
*/
static const glsl_type *get_instance(unsigned base_type, unsigned rows,
@@ -556,7 +544,7 @@ struct glsl_type {
if (base_type == GLSL_TYPE_ATOMIC_UINT)
return ATOMIC_COUNTER_SIZE;
else if (is_array())
- return length * element_type()->atomic_size();
+ return length * fields.array->atomic_size();
else
return 0;
}
diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp
index 9e3238552..dbd064fee 100644
--- a/mesalib/src/glsl/ir.cpp
+++ b/mesalib/src/glsl/ir.cpp
@@ -912,7 +912,7 @@ ir_constant::zero(void *mem_ctx, const glsl_type *type)
c->array_elements = ralloc_array(c, ir_constant *, type->length);
for (unsigned i = 0; i < type->length; i++)
- c->array_elements[i] = ir_constant::zero(c, type->element_type());
+ c->array_elements[i] = ir_constant::zero(c, type->fields.array);
}
if (type->is_record()) {
@@ -1341,7 +1341,7 @@ ir_dereference_array::set_array(ir_rvalue *value)
const glsl_type *const vt = this->array->type;
if (vt->is_array()) {
- type = vt->element_type();
+ type = vt->fields.array;
} else if (vt->is_matrix()) {
type = vt->column_type();
} else if (vt->is_vector()) {
diff --git a/mesalib/src/glsl/ir.h b/mesalib/src/glsl/ir.h
index fab1cd2d2..f90455535 100644
--- a/mesalib/src/glsl/ir.h
+++ b/mesalib/src/glsl/ir.h
@@ -78,6 +78,7 @@ enum ir_node_type {
ir_type_discard,
ir_type_emit_vertex,
ir_type_end_primitive,
+ ir_type_barrier,
ir_type_max, /**< maximum ir_type enum number, for validation */
ir_type_unset = ir_type_max
};
@@ -2396,6 +2397,29 @@ public:
ir_rvalue *stream;
};
+/**
+ * IR instruction for tessellation control and compute shader barrier.
+ */
+class ir_barrier : public ir_instruction {
+public:
+ ir_barrier()
+ : ir_instruction(ir_type_barrier)
+ {
+ }
+
+ virtual void accept(ir_visitor *v)
+ {
+ v->visit(this);
+ }
+
+ virtual ir_barrier *clone(void *mem_ctx, struct hash_table *) const
+ {
+ return new(mem_ctx) ir_barrier();
+ }
+
+ virtual ir_visitor_status accept(ir_hierarchical_visitor *);
+};
+
/*@}*/
/**
diff --git a/mesalib/src/glsl/ir_hierarchical_visitor.cpp b/mesalib/src/glsl/ir_hierarchical_visitor.cpp
index adb629414..1d23a7766 100644
--- a/mesalib/src/glsl/ir_hierarchical_visitor.cpp
+++ b/mesalib/src/glsl/ir_hierarchical_visitor.cpp
@@ -80,6 +80,15 @@ ir_hierarchical_visitor::visit(ir_dereference_variable *ir)
}
ir_visitor_status
+ir_hierarchical_visitor::visit(ir_barrier *ir)
+{
+ if (this->callback_enter != NULL)
+ this->callback_enter(ir, this->data_enter);
+
+ return visit_continue;
+}
+
+ir_visitor_status
ir_hierarchical_visitor::visit_enter(ir_loop *ir)
{
if (this->callback_enter != NULL)
diff --git a/mesalib/src/glsl/ir_hierarchical_visitor.h b/mesalib/src/glsl/ir_hierarchical_visitor.h
index faa52fd79..28517b6e4 100644
--- a/mesalib/src/glsl/ir_hierarchical_visitor.h
+++ b/mesalib/src/glsl/ir_hierarchical_visitor.h
@@ -59,7 +59,7 @@ enum ir_visitor_status {
* in the composite's \c accept method. The \c accept method for a leaf-node
* class will simply call the \c visit method, as usual, and pass its return
* value on. The \c accept method for internal-node classes will call the \c
- * visit_enter method, call the \c accpet method of each child node, and,
+ * visit_enter method, call the \c accept method of each child node, and,
* finally, call the \c visit_leave method. If any of these return a value
* other that \c visit_continue, the correct action must be taken.
*
@@ -87,6 +87,7 @@ public:
virtual ir_visitor_status visit(class ir_variable *);
virtual ir_visitor_status visit(class ir_constant *);
virtual ir_visitor_status visit(class ir_loop_jump *);
+ virtual ir_visitor_status visit(class ir_barrier *);
/**
* ir_dereference_variable isn't technically a leaf, but it is treated as a
diff --git a/mesalib/src/glsl/ir_hv_accept.cpp b/mesalib/src/glsl/ir_hv_accept.cpp
index be5b3eaa0..d3662cf50 100644
--- a/mesalib/src/glsl/ir_hv_accept.cpp
+++ b/mesalib/src/glsl/ir_hv_accept.cpp
@@ -429,3 +429,9 @@ ir_end_primitive::accept(ir_hierarchical_visitor *v)
return (s == visit_stop) ? s : v->visit_leave(this);
}
+
+ir_visitor_status
+ir_barrier::accept(ir_hierarchical_visitor *v)
+{
+ return v->visit(this);
+}
diff --git a/mesalib/src/glsl/ir_print_visitor.cpp b/mesalib/src/glsl/ir_print_visitor.cpp
index 01f52e85f..f5de6ac06 100644
--- a/mesalib/src/glsl/ir_print_visitor.cpp
+++ b/mesalib/src/glsl/ir_print_visitor.cpp
@@ -573,5 +573,10 @@ ir_print_visitor::visit(ir_end_primitive *ir)
fprintf(f, "(end-primitive ");
ir->stream->accept(this);
fprintf(f, ")\n");
+}
+void
+ir_print_visitor::visit(ir_barrier *ir)
+{
+ fprintf(f, "(barrier)\n");
}
diff --git a/mesalib/src/glsl/ir_print_visitor.h b/mesalib/src/glsl/ir_print_visitor.h
index 98f041d1a..965e63ade 100644
--- a/mesalib/src/glsl/ir_print_visitor.h
+++ b/mesalib/src/glsl/ir_print_visitor.h
@@ -71,6 +71,7 @@ public:
virtual void visit(ir_loop_jump *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
private:
diff --git a/mesalib/src/glsl/ir_uniform.h b/mesalib/src/glsl/ir_uniform.h
index 21b5d05c1..e1b801477 100644
--- a/mesalib/src/glsl/ir_uniform.h
+++ b/mesalib/src/glsl/ir_uniform.h
@@ -181,6 +181,11 @@ struct gl_uniform_storage {
* via the API.
*/
bool hidden;
+
+ /**
+ * This is a built-in uniform that should not be modified through any gl API.
+ */
+ bool builtin;
};
#ifdef __cplusplus
diff --git a/mesalib/src/glsl/ir_visitor.h b/mesalib/src/glsl/ir_visitor.h
index 40f96ffbc..7c38481cd 100644
--- a/mesalib/src/glsl/ir_visitor.h
+++ b/mesalib/src/glsl/ir_visitor.h
@@ -65,6 +65,7 @@ public:
virtual void visit(class ir_loop_jump *) = 0;
virtual void visit(class ir_emit_vertex *) = 0;
virtual void visit(class ir_end_primitive *) = 0;
+ virtual void visit(class ir_barrier *) = 0;
/*@}*/
};
@@ -85,6 +86,7 @@ public:
virtual void visit(class ir_call *) {}
virtual void visit(class ir_emit_vertex *) {}
virtual void visit(class ir_end_primitive *) {}
+ virtual void visit(class ir_barrier *) {}
};
#endif /* __cplusplus */
diff --git a/mesalib/src/glsl/link_atomics.cpp b/mesalib/src/glsl/link_atomics.cpp
index 603873a5d..100d03c4e 100644
--- a/mesalib/src/glsl/link_atomics.cpp
+++ b/mesalib/src/glsl/link_atomics.cpp
@@ -207,7 +207,7 @@ link_assign_atomic_counter_resources(struct gl_context *ctx,
storage->atomic_buffer_index = i;
storage->offset = var->data.atomic.offset;
storage->array_stride = (var->type->is_array() ?
- var->type->element_type()->atomic_size() : 0);
+ var->type->without_array()->atomic_size() : 0);
}
/* Assign stage-specific fields. */
diff --git a/mesalib/src/glsl/link_uniform_initializers.cpp b/mesalib/src/glsl/link_uniform_initializers.cpp
index 69073841e..204acfa22 100644
--- a/mesalib/src/glsl/link_uniform_initializers.cpp
+++ b/mesalib/src/glsl/link_uniform_initializers.cpp
@@ -103,7 +103,7 @@ void
set_sampler_binding(gl_shader_program *prog, const char *name, int binding)
{
struct gl_uniform_storage *const storage =
- get_storage(prog->UniformStorage, prog->NumUserUniformStorage, name);
+ get_storage(prog->UniformStorage, prog->NumUniformStorage, name);
if (storage == NULL) {
assert(storage != NULL);
@@ -193,7 +193,7 @@ set_uniform_initializer(void *mem_ctx, gl_shader_program *prog,
struct gl_uniform_storage *const storage =
get_storage(prog->UniformStorage,
- prog->NumUserUniformStorage,
+ prog->NumUniformStorage,
name);
if (storage == NULL) {
assert(storage != NULL);
diff --git a/mesalib/src/glsl/link_uniforms.cpp b/mesalib/src/glsl/link_uniforms.cpp
index 2c928e144..11ae06f9b 100644
--- a/mesalib/src/glsl/link_uniforms.cpp
+++ b/mesalib/src/glsl/link_uniforms.cpp
@@ -589,12 +589,13 @@ private:
handle_samplers(base_type, &this->uniforms[id]);
handle_images(base_type, &this->uniforms[id]);
- /* If there is already storage associated with this uniform, it means
- * that it was set while processing an earlier shader stage. For
- * example, we may be processing the uniform in the fragment shader, but
- * the uniform was already processed in the vertex shader.
+ /* If there is already storage associated with this uniform or if the
+ * uniform is set as builtin, it means that it was set while processing
+ * an earlier shader stage. For example, we may be processing the
+ * uniform in the fragment shader, but the uniform was already processed
+ * in the vertex shader.
*/
- if (this->uniforms[id].storage != NULL) {
+ if (this->uniforms[id].storage != NULL || this->uniforms[id].builtin) {
return;
}
@@ -619,10 +620,15 @@ private:
this->uniforms[id].initialized = 0;
this->uniforms[id].num_driver_storage = 0;
this->uniforms[id].driver_storage = NULL;
- this->uniforms[id].storage = this->values;
this->uniforms[id].atomic_buffer_index = -1;
this->uniforms[id].hidden =
current_var->data.how_declared == ir_var_hidden;
+ this->uniforms[id].builtin = is_gl_identifier(name);
+
+ /* Do not assign storage if the uniform is builtin */
+ if (!this->uniforms[id].builtin)
+ this->uniforms[id].storage = this->values;
+
if (this->ubo_block_index != -1) {
this->uniforms[id].block_index = this->ubo_block_index;
@@ -894,7 +900,7 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
{
ralloc_free(prog->UniformStorage);
prog->UniformStorage = NULL;
- prog->NumUserUniformStorage = 0;
+ prog->NumUniformStorage = 0;
if (prog->UniformHash != NULL) {
prog->UniformHash->clear();
@@ -940,14 +946,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
if ((var == NULL) || (var->data.mode != ir_var_uniform))
continue;
- /* FINISHME: Update code to process built-in uniforms!
- */
- if (is_gl_identifier(var->name)) {
- uniform_size.num_shader_uniform_components +=
- var->type->component_slots();
- continue;
- }
-
uniform_size.process(var);
}
@@ -962,16 +960,16 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
}
- const unsigned num_user_uniforms = uniform_size.num_active_uniforms;
+ const unsigned num_uniforms = uniform_size.num_active_uniforms;
const unsigned num_data_slots = uniform_size.num_values;
/* On the outside chance that there were no uniforms, bail out.
*/
- if (num_user_uniforms == 0)
+ if (num_uniforms == 0)
return;
struct gl_uniform_storage *uniforms =
- rzalloc_array(prog, struct gl_uniform_storage, num_user_uniforms);
+ rzalloc_array(prog, struct gl_uniform_storage, num_uniforms);
union gl_constant_value *data =
rzalloc_array(uniforms, union gl_constant_value, num_data_slots);
#ifndef NDEBUG
@@ -992,11 +990,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
if ((var == NULL) || (var->data.mode != ir_var_uniform))
continue;
- /* FINISHME: Update code to process built-in uniforms!
- */
- if (is_gl_identifier(var->name))
- continue;
-
parcel.set_and_process(prog, var);
}
@@ -1009,10 +1002,10 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
const unsigned hidden_uniforms =
- move_hidden_uniforms_to_end(prog, uniforms, num_user_uniforms);
+ move_hidden_uniforms_to_end(prog, uniforms, num_uniforms);
/* Reserve all the explicit locations of the active uniforms. */
- for (unsigned i = 0; i < num_user_uniforms; i++) {
+ for (unsigned i = 0; i < num_uniforms; i++) {
if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC) {
/* How many new entries for this uniform? */
const unsigned entries = MAX2(1, uniforms[i].array_elements);
@@ -1028,7 +1021,11 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
/* Reserve locations for rest of the uniforms. */
- for (unsigned i = 0; i < num_user_uniforms; i++) {
+ for (unsigned i = 0; i < num_uniforms; i++) {
+
+ /* Built-in uniforms should not get any location. */
+ if (uniforms[i].builtin)
+ continue;
/* Explicit ones have been set already. */
if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC)
@@ -1055,14 +1052,14 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
}
#ifndef NDEBUG
- for (unsigned i = 0; i < num_user_uniforms; i++) {
- assert(uniforms[i].storage != NULL);
+ for (unsigned i = 0; i < num_uniforms; i++) {
+ assert(uniforms[i].storage != NULL || uniforms[i].builtin);
}
assert(parcel.values == data_end);
#endif
- prog->NumUserUniformStorage = num_user_uniforms;
+ prog->NumUniformStorage = num_uniforms;
prog->NumHiddenUniforms = hidden_uniforms;
prog->UniformStorage = uniforms;
diff --git a/mesalib/src/glsl/link_varyings.cpp b/mesalib/src/glsl/link_varyings.cpp
index 605748a9c..7b2d4bd23 100644
--- a/mesalib/src/glsl/link_varyings.cpp
+++ b/mesalib/src/glsl/link_varyings.cpp
@@ -56,7 +56,7 @@ cross_validate_types_and_qualifiers(struct gl_shader_program *prog,
const glsl_type *type_to_match = input->type;
if (consumer_stage == MESA_SHADER_GEOMETRY) {
assert(type_to_match->is_array()); /* Enforced by ast_to_hir */
- type_to_match = type_to_match->element_type();
+ type_to_match = type_to_match->fields.array;
}
if (type_to_match != output->type) {
/* There is a bit of a special case for gl_TexCoord. This
diff --git a/mesalib/src/glsl/linker.cpp b/mesalib/src/glsl/linker.cpp
index ea73c6f9d..99783800b 100644
--- a/mesalib/src/glsl/linker.cpp
+++ b/mesalib/src/glsl/linker.cpp
@@ -224,7 +224,7 @@ public:
return visit_continue;
}
- var->type = glsl_type::get_array_instance(var->type->element_type(),
+ var->type = glsl_type::get_array_instance(var->type->fields.array,
this->num_vertices);
var->data.max_array_access = this->num_vertices - 1;
@@ -245,7 +245,7 @@ public:
{
const glsl_type *const vt = ir->array->type;
if (vt->is_array())
- ir->type = vt->element_type();
+ ir->type = vt->fields.array;
return visit_continue;
}
};
@@ -1400,8 +1400,8 @@ link_fs_input_layout_qualifiers(struct gl_shader_program *prog,
"layout qualifiers for gl_FragCoord\n");
}
- /* Update the linked shader state.  Note that uses_gl_fragcoord should
- * accumulate the results.  The other values should replace.  If there
+ /* Update the linked shader state. Note that uses_gl_fragcoord should
+ * accumulate the results. The other values should replace. If there
* are multiple redeclarations, all the fields except uses_gl_fragcoord
* are already known to be the same.
*/
@@ -2693,13 +2693,23 @@ build_program_resource_list(struct gl_context *ctx,
}
/* Add uniforms from uniform storage. */
- for (unsigned i = 0; i < shProg->NumUserUniformStorage; i++) {
+ for (unsigned i = 0; i < shProg->NumUniformStorage; i++) {
/* Do not add uniforms internally used by Mesa. */
if (shProg->UniformStorage[i].hidden)
continue;
uint8_t stageref =
build_stageref(shProg, shProg->UniformStorage[i].name);
+
+ /* Add stagereferences for uniforms in a uniform block. */
+ int block_index = shProg->UniformStorage[i].block_index;
+ if (block_index != -1) {
+ for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) {
+ if (shProg->UniformBlockStageIndex[j][block_index] != -1)
+ stageref |= (1 << j);
+ }
+ }
+
if (!add_program_resource(shProg, GL_UNIFORM,
&shProg->UniformStorage[i], stageref))
return;
@@ -2819,8 +2829,11 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
link_intrastage_shaders(mem_ctx, ctx, prog, shader_list[stage],
num_shaders[stage]);
- if (!prog->LinkStatus)
+ if (!prog->LinkStatus) {
+ if (sh)
+ ctx->Driver.DeleteShader(ctx, sh);
goto done;
+ }
switch (stage) {
case MESA_SHADER_VERTEX:
@@ -2833,8 +2846,11 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
validate_fragment_shader_executable(prog, sh);
break;
}
- if (!prog->LinkStatus)
+ if (!prog->LinkStatus) {
+ if (sh)
+ ctx->Driver.DeleteShader(ctx, sh);
goto done;
+ }
_mesa_reference_shader(ctx, &prog->_LinkedShaders[stage], sh);
}
diff --git a/mesalib/src/glsl/lower_clip_distance.cpp b/mesalib/src/glsl/lower_clip_distance.cpp
index 2d6138d5a..01f028b1f 100644
--- a/mesalib/src/glsl/lower_clip_distance.cpp
+++ b/mesalib/src/glsl/lower_clip_distance.cpp
@@ -114,7 +114,7 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
return visit_continue;
assert (ir->type->is_array());
- if (!ir->type->element_type()->is_array()) {
+ if (!ir->type->fields.array->is_array()) {
/* 1D gl_ClipDistance (used for vertex and geometry output, and fragment
* input).
*/
@@ -123,7 +123,7 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
this->progress = true;
this->old_clip_distance_1d_var = ir;
- assert (ir->type->element_type() == glsl_type::float_type);
+ assert (ir->type->fields.array == glsl_type::float_type);
unsigned new_size = (ir->type->array_size() + 3) / 4;
/* Clone the old var so that we inherit all of its properties */
@@ -148,8 +148,8 @@ lower_clip_distance_visitor::visit(ir_variable *ir)
this->progress = true;
this->old_clip_distance_2d_var = ir;
- assert (ir->type->element_type()->element_type() == glsl_type::float_type);
- unsigned new_size = (ir->type->element_type()->array_size() + 3) / 4;
+ assert (ir->type->fields.array->fields.array == glsl_type::float_type);
+ unsigned new_size = (ir->type->fields.array->array_size() + 3) / 4;
/* Clone the old var so that we inherit all of its properties */
this->new_clip_distance_2d_var = ir->clone(ralloc_parent(ir), NULL);
diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp
index ccac83996..23412980d 100644
--- a/mesalib/src/glsl/main.cpp
+++ b/mesalib/src/glsl/main.cpp
@@ -41,12 +41,6 @@
static int glsl_version = 330;
-extern "C" void
-_mesa_error_no_memory(const char *caller)
-{
- fprintf(stderr, "Mesa error: out of memory in %s", caller);
-}
-
static void
initialize_context(struct gl_context *ctx, gl_api api)
{
@@ -282,7 +276,7 @@ usage_fail(const char *name)
"usage: %s [options] <file.vert | file.geom | file.frag>\n"
"\n"
"Possible options are:\n";
- printf(header, name, name);
+ printf(header, name);
for (const struct option *o = compiler_opts; o->name != 0; ++o) {
printf(" --%s\n", o->name);
}
diff --git a/mesalib/src/glsl/nir/glsl_to_nir.cpp b/mesalib/src/glsl/nir/glsl_to_nir.cpp
index af758ceb0..95531bbcd 100644
--- a/mesalib/src/glsl/nir/glsl_to_nir.cpp
+++ b/mesalib/src/glsl/nir/glsl_to_nir.cpp
@@ -65,6 +65,7 @@ public:
virtual void visit(ir_dereference_variable *);
virtual void visit(ir_dereference_record *);
virtual void visit(ir_dereference_array *);
+ virtual void visit(ir_barrier *);
void create_function(ir_function *ir);
@@ -930,13 +931,9 @@ nir_visitor::evaluate_rvalue(ir_rvalue* ir)
}
nir_dest *dest = get_instr_dest(this->result);
-
assert(dest->is_ssa);
- nir_src src = NIR_SRC_INIT;
- src.is_ssa = true;
- src.ssa = &dest->ssa;
- return src;
+ return nir_src_for_ssa(&dest->ssa);
}
nir_alu_instr *
@@ -1893,3 +1890,11 @@ nir_visitor::visit(ir_dereference_array *ir)
ralloc_steal(this->deref_tail, deref);
this->deref_tail = &deref->deref;
}
+
+void
+nir_visitor::visit(ir_barrier *ir)
+{
+ nir_intrinsic_instr *instr =
+ nir_intrinsic_instr_create(this->shader, nir_intrinsic_barrier);
+ nir_instr_insert_after_cf_list(this->cf_node_list, &instr->instr);
+}
diff --git a/mesalib/src/glsl/nir/nir_intrinsics.h b/mesalib/src/glsl/nir/nir_intrinsics.h
index 10192c531..bc6e6b8f4 100644
--- a/mesalib/src/glsl/nir/nir_intrinsics.h
+++ b/mesalib/src/glsl/nir/nir_intrinsics.h
@@ -67,6 +67,7 @@ INTRINSIC(interp_var_at_offset, 1, ARR(2), true, 0, 1, 0,
*/
#define BARRIER(name) INTRINSIC(name, 0, ARR(), false, 0, 0, 0, 0)
+BARRIER(barrier)
BARRIER(discard)
/*
@@ -138,12 +139,11 @@ SYSTEM_VALUE(sample_mask_in, 1)
SYSTEM_VALUE(invocation_id, 1)
/*
- * The first index is the address to load from, and the second index is the
- * number of array elements to load. Indirect loads have an additional
- * register input, which is added to the constant address to compute the
- * final address to load from. For UBO's (and SSBO's), the first source is
- * the (possibly constant) UBO buffer index and the indirect (if it exists)
- * is the second source.
+ * The first and only index is the base address to load from. Indirect
+ * loads have an additional register input, which is added to the constant
+ * address to compute the final address to load from. For UBO's (and
+ * SSBO's), the first source is the (possibly constant) UBO buffer index
+ * and the indirect (if it exists) is the second source.
*
* For vector backends, the address is in terms of one vec4, and so each array
* element is +4 scalar components from the previous array element. For scalar
@@ -152,9 +152,9 @@ SYSTEM_VALUE(invocation_id, 1)
*/
#define LOAD(name, extra_srcs, flags) \
- INTRINSIC(load_##name, extra_srcs, ARR(1), true, 0, 0, 2, flags) \
+ INTRINSIC(load_##name, extra_srcs, ARR(1), true, 0, 0, 1, flags) \
INTRINSIC(load_##name##_indirect, extra_srcs + 1, ARR(1, 1), \
- true, 0, 0, 2, flags)
+ true, 0, 0, 1, flags)
LOAD(uniform, 0, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
LOAD(ubo, 1, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
@@ -172,7 +172,7 @@ LOAD(input, 0, NIR_INTRINSIC_CAN_ELIMINATE | NIR_INTRINSIC_CAN_REORDER)
INTRINSIC(store_##name##_indirect, 2, ARR(0, 1), false, 0, 0, \
num_indices, flags) \
-STORE(output, 2, 0)
-/* STORE(ssbo, 3, 0) */
+STORE(output, 1, 0)
+/* STORE(ssbo, 2, 0) */
LAST_INTRINSIC(store_output_indirect)
diff --git a/mesalib/src/glsl/nir/nir_lower_atomics.c b/mesalib/src/glsl/nir/nir_lower_atomics.c
index f6f89020f..0457de60d 100644
--- a/mesalib/src/glsl/nir/nir_lower_atomics.c
+++ b/mesalib/src/glsl/nir/nir_lower_atomics.c
@@ -109,7 +109,7 @@ lower_instr(nir_intrinsic_instr *instr, nir_function_impl *impl)
}
new_instr->src[0].is_ssa = true;
- new_instr->src[0].ssa = offset_def;;
+ new_instr->src[0].ssa = offset_def;
if (instr->dest.is_ssa) {
nir_ssa_dest_init(&new_instr->instr, &new_instr->dest,
diff --git a/mesalib/src/glsl/nir/nir_lower_io.c b/mesalib/src/glsl/nir/nir_lower_io.c
index 03eed04e1..6761d5bad 100644
--- a/mesalib/src/glsl/nir/nir_lower_io.c
+++ b/mesalib/src/glsl/nir/nir_lower_io.c
@@ -288,7 +288,6 @@ nir_lower_io_block(nir_block *block, void *void_state)
offset += intrin->variables[0]->var->data.driver_location;
load->const_index[0] = offset;
- load->const_index[1] = 1;
if (has_indirect)
load->src[0] = indirect;
@@ -331,7 +330,6 @@ nir_lower_io_block(nir_block *block, void *void_state)
offset += intrin->variables[0]->var->data.driver_location;
store->const_index[0] = offset;
- store->const_index[1] = 1;
nir_src_copy(&store->src[0], &intrin->src[0], state->mem_ctx);
diff --git a/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c b/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
index 4bdb80072..a57d25397 100644
--- a/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
+++ b/mesalib/src/glsl/nir/nir_lower_phis_to_scalar.c
@@ -153,6 +153,11 @@ should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state)
break;
}
+ /* The hash table entry for 'phi' may have changed while recursing the
+ * dependence graph, so we need to reset it */
+ entry = _mesa_hash_table_search(state->phi_table, phi);
+ assert(entry);
+
entry->data = (void *)(intptr_t)scalarizable;
return scalarizable;
diff --git a/mesalib/src/glsl/nir/nir_opt_algebraic.py b/mesalib/src/glsl/nir/nir_opt_algebraic.py
index fa039222f..eace791f5 100644
--- a/mesalib/src/glsl/nir/nir_opt_algebraic.py
+++ b/mesalib/src/glsl/nir/nir_opt_algebraic.py
@@ -156,6 +156,8 @@ optimizations = [
(('fpow', a, 2.0), ('fmul', a, a)),
(('fpow', a, 4.0), ('fmul', ('fmul', a, a), ('fmul', a, a))),
(('fpow', 2.0, a), ('fexp2', a)),
+ (('fpow', ('fpow', a, 2.2), 0.454545), a),
+ (('fpow', ('fabs', ('fpow', a, 2.2)), 0.454545), ('fabs', a)),
(('fsqrt', ('fexp2', a)), ('fexp2', ('fmul', 0.5, a))),
(('frcp', ('fexp2', a)), ('fexp2', ('fneg', a))),
(('frsq', ('fexp2', a)), ('fexp2', ('fmul', -0.5, a))),
diff --git a/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c b/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
index b430eac8e..798506b75 100644
--- a/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
+++ b/mesalib/src/glsl/nir/nir_opt_peephole_ffma.c
@@ -73,7 +73,8 @@ are_all_uses_fadd(nir_ssa_def *def)
}
static nir_alu_instr *
-get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
+get_mul_for_src(nir_alu_src *src, int num_components,
+ uint8_t swizzle[4], bool *negate, bool *abs)
{
assert(src->src.is_ssa && !src->abs && !src->negate);
@@ -85,16 +86,16 @@ get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
switch (alu->op) {
case nir_op_imov:
case nir_op_fmov:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
break;
case nir_op_fneg:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
*negate = !*negate;
break;
case nir_op_fabs:
- alu = get_mul_for_src(&alu->src[0], swizzle, negate, abs);
+ alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
*negate = false;
*abs = true;
break;
@@ -115,12 +116,8 @@ get_mul_for_src(nir_alu_src *src, uint8_t swizzle[4], bool *negate, bool *abs)
if (!alu)
return NULL;
- for (unsigned i = 0; i < 4; i++) {
- if (!(alu->dest.write_mask & (1 << i)))
- break;
-
+ for (unsigned i = 0; i < num_components; i++)
swizzle[i] = swizzle[src->swizzle[i]];
- }
return alu;
}
@@ -160,7 +157,9 @@ nir_opt_peephole_ffma_block(nir_block *block, void *void_state)
negate = false;
abs = false;
- mul = get_mul_for_src(&add->src[add_mul_src], swizzle, &negate, &abs);
+ mul = get_mul_for_src(&add->src[add_mul_src],
+ add->dest.dest.ssa.num_components,
+ swizzle, &negate, &abs);
if (mul != NULL)
break;
diff --git a/mesalib/src/glsl/standalone_scaffolding.cpp b/mesalib/src/glsl/standalone_scaffolding.cpp
index a109c4e92..00db61e40 100644
--- a/mesalib/src/glsl/standalone_scaffolding.cpp
+++ b/mesalib/src/glsl/standalone_scaffolding.cpp
@@ -89,7 +89,7 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
{
unsigned i;
- shProg->NumUserUniformStorage = 0;
+ shProg->NumUniformStorage = 0;
shProg->UniformStorage = NULL;
shProg->NumUniformRemapTable = 0;
shProg->UniformRemapTable = NULL;
diff --git a/mesalib/src/loader/Android.mk b/mesalib/src/loader/Android.mk
index 8e215de3c..92d9fd20d 100644
--- a/mesalib/src/loader/Android.mk
+++ b/mesalib/src/loader/Android.mk
@@ -40,6 +40,8 @@ else
LOCAL_SHARED_LIBRARIES := libdrm
endif
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
+
LOCAL_MODULE := libmesa_loader
include $(MESA_COMMON_MK)
diff --git a/mesalib/src/loader/Makefile.am b/mesalib/src/loader/Makefile.am
index 36ddba82b..aef1bd61b 100644
--- a/mesalib/src/loader/Makefile.am
+++ b/mesalib/src/loader/Makefile.am
@@ -41,15 +41,11 @@ libloader_la_CPPFLAGS += \
-I$(top_builddir)/src/mesa/drivers/dri/common/ \
-I$(top_srcdir)/src/mesa/ \
-I$(top_srcdir)/src/mapi/ \
- -DUSE_DRICONF \
- $(EXPAT_CFLAGS)
+ -DUSE_DRICONF
-libloader_la_SOURCES += \
- $(top_srcdir)/src/mesa/drivers/dri/common/xmlconfig.c
+ libloader_la_LIBADD += \
+ $(top_builddir)/src/mesa/drivers/dri/common/libxmlconfig.la
-libloader_la_LIBADD += \
- -lm \
- $(EXPAT_LIBS)
endif
if !HAVE_LIBDRM
diff --git a/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
index b96b263db..41b520838 100644
--- a/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
+++ b/mesalib/src/mapi/glapi/gen/AMD_performance_monitor.xml
@@ -5,13 +5,13 @@
<category name="GL_AMD_performance_monitor" number="360">
- <function name="GetPerfMonitorGroupsAMD" offset="assign">
+ <function name="GetPerfMonitorGroupsAMD">
<param name="numGroups" type="GLint *"/>
<param name="groupsSize" type="GLsizei"/>
<param name="groups" type="GLuint *"/>
</function>
- <function name="GetPerfMonitorCountersAMD" offset="assign">
+ <function name="GetPerfMonitorCountersAMD">
<param name="group" type="GLuint"/>
<param name="numCounters" type="GLint *"/>
<param name="maxActiveCounters" type="GLint *"/>
@@ -19,14 +19,14 @@
<param name="counters" type="GLuint *"/>
</function>
- <function name="GetPerfMonitorGroupStringAMD" offset="assign">
+ <function name="GetPerfMonitorGroupStringAMD">
<param name="group" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
<param name="groupString" type="GLchar *"/>
</function>
- <function name="GetPerfMonitorCounterStringAMD" offset="assign">
+ <function name="GetPerfMonitorCounterStringAMD">
<param name="group" type="GLuint"/>
<param name="counter" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -34,24 +34,24 @@
<param name="counterString" type="GLchar *"/>
</function>
- <function name="GetPerfMonitorCounterInfoAMD" offset="assign">
+ <function name="GetPerfMonitorCounterInfoAMD">
<param name="group" type="GLuint"/>
<param name="counter" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="data" type="GLvoid *"/>
</function>
- <function name="GenPerfMonitorsAMD" offset="assign">
+ <function name="GenPerfMonitorsAMD">
<param name="n" type="GLsizei"/>
<param name="monitors" type="GLuint *"/>
</function>
- <function name="DeletePerfMonitorsAMD" offset="assign">
+ <function name="DeletePerfMonitorsAMD">
<param name="n" type="GLsizei"/>
<param name="monitors" type="GLuint *"/>
</function>
- <function name="SelectPerfMonitorCountersAMD" offset="assign">
+ <function name="SelectPerfMonitorCountersAMD">
<param name="monitor" type="GLuint"/>
<param name="enable" type="GLboolean"/>
<param name="group" type="GLuint"/>
@@ -59,15 +59,15 @@
<param name="counterList" type="GLuint *"/>
</function>
- <function name="BeginPerfMonitorAMD" offset="assign">
+ <function name="BeginPerfMonitorAMD">
<param name="monitor" type="GLuint"/>
</function>
- <function name="EndPerfMonitorAMD" offset="assign">
+ <function name="EndPerfMonitorAMD">
<param name="monitor" type="GLuint"/>
</function>
- <function name="GetPerfMonitorCounterDataAMD" offset="assign">
+ <function name="GetPerfMonitorCounterDataAMD">
<param name="monitor" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="dataSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml b/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
index 62fa64ad2..829fc2631 100644
--- a/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
+++ b/mesalib/src/mapi/glapi/gen/APPLE_object_purgeable.xml
@@ -13,21 +13,21 @@
<enum name="BUFFER_OBJECT_APPLE" value="0x85B3"/>
- <function name="ObjectPurgeableAPPLE" offset="assign">
+ <function name="ObjectPurgeableAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="option" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="ObjectUnpurgeableAPPLE" offset="assign">
+ <function name="ObjectUnpurgeableAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="option" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="GetObjectParameterivAPPLE" offset="assign">
+ <function name="GetObjectParameterivAPPLE">
<param name="objectType" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="pname" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
index 5eb53b14e..7312f9b35 100644
--- a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
+++ b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
@@ -5,23 +5,21 @@
<category name="GL_APPLE_vertex_array_object" number="273">
<enum name="VERTEX_ARRAY_BINDING_APPLE" value="0x85B5"/>
- <function name="BindVertexArrayAPPLE" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="BindVertexArrayAPPLE" deprecated="3.1">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysAPPLE" static_dispatch="false" alias="DeleteVertexArrays">
+ <function name="DeleteVertexArraysAPPLE" alias="DeleteVertexArrays">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *"/>
</function>
- <function name="GenVertexArraysAPPLE" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="GenVertexArraysAPPLE" deprecated="3.1">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" count="n" output="true"/>
</function>
- <function name="IsVertexArrayAPPLE" static_dispatch="false" alias="IsVertexArray">
+ <function name="IsVertexArrayAPPLE" alias="IsVertexArray">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml b/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
index d15736612..c96e71c44 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_ES2_compatibility.xml
@@ -18,17 +18,17 @@
<enum name="MAX_VARYING_VECTORS" value="0x8DFC"/>
<enum name="MAX_FRAGMENT_UNIFORM_VECTORS" value="0x8DFD"/>
- <function name="GetShaderPrecisionFormat" offset="assign" es2="2.0">
+ <function name="GetShaderPrecisionFormat" es2="2.0">
<param name="shadertype" type="GLenum"/>
<param name="precisiontype" type="GLenum"/>
<param name="range" type="GLint *"/>
<param name="precision" type="GLint *"/>
</function>
- <function name="ReleaseShaderCompiler" offset="assign" es2="2.0">
+ <function name="ReleaseShaderCompiler" es2="2.0">
</function>
- <function name="ShaderBinary" offset="assign" es2="2.0">
+ <function name="ShaderBinary" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="shaders" type="const GLuint *"/>
<param name="binaryformat" type="GLenum"/>
@@ -45,11 +45,11 @@
<enum name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B"/>
<!-- from GL_OES_single_precision -->
- <function name="ClearDepthf" offset="assign" es1="1.0" es2="2.0">
+ <function name="ClearDepthf" es1="1.0" es2="2.0">
<param name="depth" type="GLclampf"/>
</function>
- <function name="DepthRangef" offset="assign" es1="1.0" es2="2.0">
+ <function name="DepthRangef" es1="1.0" es2="2.0">
<param name="zNear" type="GLclampf"/>
<param name="zFar" type="GLclampf"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
index 1478e3970..56de639e9 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml
@@ -8,8 +8,7 @@
<category name="GL_ARB_base_instance" number="107">
- <function name="DrawArraysInstancedBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawArraysInstancedBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
@@ -17,8 +16,7 @@
<param name="baseinstance" type="GLuint"/>
</function>
- <function name="DrawElementsInstancedBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -27,8 +25,7 @@
<param name="baseinstance" type="GLuint"/>
</function>
- <function name="DrawElementsInstancedBaseVertexBaseInstance" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseVertexBaseInstance" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml b/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
index 32adcde77..406140f7d 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_blend_func_extended.xml
@@ -8,14 +8,14 @@
<category name="GL_ARB_blend_func_extended" number="78">
- <function name="BindFragDataLocationIndexed" offset="assign">
+ <function name="BindFragDataLocationIndexed">
<param name="program" type="GLuint"/>
<param name="colorNumber" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="name" type="const GLchar *"/>
</function>
- <function name="GetFragDataIndex" offset="assign">
+ <function name="GetFragDataIndex">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
index cb97a0185..2284eacd6 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clear_buffer_object.xml
@@ -8,7 +8,7 @@
<category name="GL_ARB_clear_buffer_object" number="121">
- <function name ="ClearBufferData" offset="assign">
+ <function name ="ClearBufferData">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="format" type="GLenum"/>
@@ -16,7 +16,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name ="ClearBufferSubData" offset="assign">
+ <function name ="ClearBufferSubData">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="offset" type="GLintptr"/>
@@ -26,7 +26,7 @@
<param name="data" type="const GLvoid *"/>
</function>
-<!-- <function name="ClearNamedBufferDataEXT" offset="assign">
+<!-- <function name="ClearNamedBufferDataEXT">
<param name="buffer" type="GLuint"/>
<param name="internalformat" type="GLenum"/>
<param name="format" type="GLenum"/>
@@ -35,7 +35,7 @@
</function>
- <function name="ClearNamedBufferSubDataEXT" offset="assign">
+ <function name="ClearNamedBufferSubDataEXT">
<param name="buffer" type="GLuint"/>
<param name="internalformat" type="GLenum"/>
<param name="offset" type="GLintptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml b/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
index bd9116f8b..1ff981ea8 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clear_texture.xml
@@ -7,7 +7,7 @@
<enum name="CLEAR_TEXTURE" value="0x9365"/>
- <function name ="ClearTexImage" offset="assign">
+ <function name ="ClearTexImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -15,7 +15,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name ="ClearTexSubImage" offset="assign">
+ <function name ="ClearTexSubImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml b/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
index ab1a3883e..ecce133bb 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_clip_control.xml
@@ -14,7 +14,7 @@
<enum name="CLIP_ORIGIN" value = "0x935C"/>
<enum name="CLIP_DEPTH_MODE" value = "0x935D"/>
- <function name="ClipControl" offset="assign">
+ <function name="ClipControl">
<param name="origin" type="GLenum"/>
<param name="depth" type="GLenum"/>
<!-- <glx rop="1340"/> -->
diff --git a/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml b/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
index 1db373e99..c2ec842ef 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_compute_shader.xml
@@ -26,13 +26,13 @@
<enum name="DISPATCH_INDIRECT_BUFFER_BINDING" value="0x90EF"/>
<enum name="COMPUTE_SHADER_BIT" value="0x00000020"/>
- <function name="DispatchCompute" offset="assign">
+ <function name="DispatchCompute" es2="3.1">
<param name="num_groups_x" type="GLuint"/>
<param name="num_groups_y" type="GLuint"/>
<param name="num_groups_z" type="GLuint"/>
</function>
- <function name="DispatchComputeIndirect" offset="assign">
+ <function name="DispatchComputeIndirect" es2="3.1">
<param name="indirect" type="GLintptr"/>
</function>
</category>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml b/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
index 6982ed1d2..d1c6f1fec 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_copy_buffer.xml
@@ -11,7 +11,7 @@
<enum name="COPY_READ_BUFFER" value="0x8F36"/>
<enum name="COPY_WRITE_BUFFER" value="0x8F37"/>
- <function name="CopyBufferSubData" offset="assign" es2="3.0">
+ <function name="CopyBufferSubData" es2="3.0">
<param name="readTarget" type="GLenum"/>
<param name="writeTarget" type="GLenum"/>
<param name="readOffset" type="GLintptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml b/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
index 2fbd84557..af672cd38 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_copy_image.xml
@@ -5,7 +5,7 @@
<category name="GL_ARB_copy_image" number="123">
- <function name="CopyImageSubData" offset="assign">
+ <function name="CopyImageSubData">
<param name="srcName" type="GLuint"/>
<param name="srcTarget" type="GLenum"/>
<param name="srcLevel" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml b/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
index bb9baf5a3..4c8f73ede 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_direct_state_access.xml
@@ -9,18 +9,18 @@
<!-- Transform Feedback object functions -->
- <function name="CreateTransformFeedbacks" offset="assign">
+ <function name="CreateTransformFeedbacks">
<param name="n" type="GLsizei" />
<param name="ids" type="GLuint *" />
</function>
- <function name="TransformFeedbackBufferBase" offset="assign">
+ <function name="TransformFeedbackBufferBase">
<param name="xfb" type="GLuint" />
<param name="index" type="GLuint" />
<param name="buffer" type="GLuint" />
</function>
- <function name="TransformFeedbackBufferRange" offset="assign">
+ <function name="TransformFeedbackBufferRange">
<param name="xfb" type="GLuint" />
<param name="index" type="GLuint" />
<param name="buffer" type="GLuint" />
@@ -28,20 +28,20 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="GetTransformFeedbackiv" offset="assign">
+ <function name="GetTransformFeedbackiv">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetTransformFeedbacki_v" offset="assign">
+ <function name="GetTransformFeedbacki_v">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="index" type="GLuint" />
<param name="param" type="GLint *" />
</function>
- <function name="GetTransformFeedbacki64_v" offset="assign">
+ <function name="GetTransformFeedbacki64_v">
<param name="xfb" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="index" type="GLuint" />
@@ -50,33 +50,33 @@
<!-- Buffer object functions -->
- <function name="CreateBuffers" offset="assign">
+ <function name="CreateBuffers">
<param name="n" type="GLsizei" />
<param name="buffers" type="GLuint *" />
</function>
- <function name="NamedBufferStorage" offset="assign">
+ <function name="NamedBufferStorage">
<param name="buffer" type="GLuint" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
<param name="flags" type="GLbitfield" />
</function>
- <function name="NamedBufferData" offset="assign">
+ <function name="NamedBufferData">
<param name="buffer" type="GLuint" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
<param name="usage" type="GLenum" />
</function>
- <function name="NamedBufferSubData" offset="assign">
+ <function name="NamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="size" type="GLsizeiptr" />
<param name="data" type="const GLvoid *" />
</function>
- <function name="CopyNamedBufferSubData" offset="assign">
+ <function name="CopyNamedBufferSubData">
<param name="readBuffer" type="GLuint" />
<param name="writeBuffer" type="GLuint" />
<param name="readOffset" type="GLintptr" />
@@ -84,7 +84,7 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="ClearNamedBufferData" offset="assign">
+ <function name="ClearNamedBufferData">
<param name="buffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="format" type="GLenum" />
@@ -92,7 +92,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="ClearNamedBufferSubData" offset="assign">
+ <function name="ClearNamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="offset" type="GLintptr" />
@@ -102,13 +102,13 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="MapNamedBuffer" offset="assign">
+ <function name="MapNamedBuffer">
<return type="GLvoid *" />
<param name="buffer" type="GLuint" />
<param name="access" type="GLenum" />
</function>
- <function name="MapNamedBufferRange" offset="assign">
+ <function name="MapNamedBufferRange">
<return type="GLvoid *" />
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
@@ -116,36 +116,36 @@
<param name="access" type="GLbitfield" />
</function>
- <function name="UnmapNamedBuffer" offset="assign">
+ <function name="UnmapNamedBuffer">
<return type="GLboolean" />
<param name="buffer" type="GLuint" />
</function>
- <function name="FlushMappedNamedBufferRange" offset="assign">
+ <function name="FlushMappedNamedBufferRange">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="length" type="GLsizeiptr" />
</function>
- <function name="GetNamedBufferParameteriv" offset="assign">
+ <function name="GetNamedBufferParameteriv">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetNamedBufferParameteri64v" offset="assign">
+ <function name="GetNamedBufferParameteri64v">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint64 *" />
</function>
- <function name="GetNamedBufferPointerv" offset="assign">
+ <function name="GetNamedBufferPointerv">
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLvoid **" />
</function>
- <function name="GetNamedBufferSubData" offset="assign">
+ <function name="GetNamedBufferSubData">
<param name="buffer" type="GLuint" />
<param name="offset" type="GLintptr" />
<param name="size" type="GLsizeiptr" />
@@ -283,19 +283,19 @@
<!-- Renderbuffer object functions -->
- <function name="CreateRenderbuffers" offset="assign">
+ <function name="CreateRenderbuffers">
<param name="n" type="GLsizei" />
<param name="renderbuffers" type="GLuint *" />
</function>
- <function name="NamedRenderbufferStorage" offset="assign">
+ <function name="NamedRenderbufferStorage">
<param name="renderbuffer" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="width" type="GLsizei" />
<param name="height" type="GLsizei" />
</function>
- <function name="NamedRenderbufferStorageMultisample" offset="assign">
+ <function name="NamedRenderbufferStorageMultisample">
<param name="renderbuffer" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -303,7 +303,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="GetNamedRenderbufferParameteriv" offset="assign">
+ <function name="GetNamedRenderbufferParameteriv">
<param name="renderbuffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
@@ -311,19 +311,19 @@
<!-- Texture object functions -->
- <function name="CreateTextures" offset="assign">
+ <function name="CreateTextures">
<param name="target" type="GLenum" />
<param name="n" type="GLsizei" />
<param name="textures" type="GLuint *" />
</function>
- <function name="TextureBuffer" offset="assign">
+ <function name="TextureBuffer">
<param name="texture" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="buffer" type="GLuint" />
</function>
- <function name="TextureBufferRange" offset="assign">
+ <function name="TextureBufferRange">
<param name="texture" type="GLuint" />
<param name="internalformat" type="GLenum" />
<param name="buffer" type="GLuint" />
@@ -331,14 +331,14 @@
<param name="size" type="GLsizeiptr" />
</function>
- <function name="TextureStorage1D" offset="assign">
+ <function name="TextureStorage1D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
<param name="width" type="GLsizei" />
</function>
- <function name="TextureStorage2D" offset="assign">
+ <function name="TextureStorage2D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -346,7 +346,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="TextureStorage3D" offset="assign">
+ <function name="TextureStorage3D">
<param name="texture" type="GLuint" />
<param name="levels" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -355,7 +355,7 @@
<param name="depth" type="GLsizei" />
</function>
- <function name="TextureStorage2DMultisample" offset="assign">
+ <function name="TextureStorage2DMultisample">
<param name="texture" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -364,7 +364,7 @@
<param name="fixedsamplelocations" type="GLboolean" />
</function>
- <function name="TextureStorage3DMultisample" offset="assign">
+ <function name="TextureStorage3DMultisample">
<param name="texture" type="GLuint" />
<param name="samples" type="GLsizei" />
<param name="internalformat" type="GLenum" />
@@ -374,7 +374,7 @@
<param name="fixedsamplelocations" type="GLboolean" />
</function>
- <function name="TextureSubImage1D" offset="assign">
+ <function name="TextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -384,7 +384,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="TextureSubImage2D" offset="assign">
+ <function name="TextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -396,7 +396,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="TextureSubImage3D" offset="assign">
+ <function name="TextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -410,7 +410,7 @@
<param name="pixels" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage1D" offset="assign">
+ <function name="CompressedTextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -420,7 +420,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage2D" offset="assign">
+ <function name="CompressedTextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -432,7 +432,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CompressedTextureSubImage3D" offset="assign">
+ <function name="CompressedTextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -446,7 +446,7 @@
<param name="data" type="const GLvoid *" />
</function>
- <function name="CopyTextureSubImage1D" offset="assign">
+ <function name="CopyTextureSubImage1D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -455,7 +455,7 @@
<param name="width" type="GLsizei" />
</function>
- <function name="CopyTextureSubImage2D" offset="assign">
+ <function name="CopyTextureSubImage2D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -466,7 +466,7 @@
<param name="height" type="GLsizei" />
</function>
- <function name="CopyTextureSubImage3D" offset="assign">
+ <function name="CopyTextureSubImage3D">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="xoffset" type="GLint" />
@@ -478,52 +478,52 @@
<param name="height" type="GLsizei" />
</function>
- <function name="TextureParameterf" offset="assign">
+ <function name="TextureParameterf">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLfloat" />
</function>
- <function name="TextureParameterfv" offset="assign">
+ <function name="TextureParameterfv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="const GLfloat *" />
</function>
- <function name="TextureParameteri" offset="assign">
+ <function name="TextureParameteri">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint" />
</function>
- <function name="TextureParameterIiv" offset="assign">
+ <function name="TextureParameterIiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="const GLint *" />
</function>
- <function name="TextureParameterIuiv" offset="assign">
+ <function name="TextureParameterIuiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="const GLuint *" />
</function>
- <function name="TextureParameteriv" offset="assign">
+ <function name="TextureParameteriv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="const GLint *" />
</function>
- <function name="GenerateTextureMipmap" offset="assign">
+ <function name="GenerateTextureMipmap">
<param name="texture" type="GLuint" />
</function>
- <function name="BindTextureUnit" offset="assign">
+ <function name="BindTextureUnit">
<param name="unit" type="GLuint" />
<param name="texture" type="GLuint" />
</function>
- <function name="GetTextureImage" offset="assign">
+ <function name="GetTextureImage">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="format" type="GLenum" />
@@ -532,46 +532,46 @@
<param name="pixels" type="GLvoid *" />
</function>
- <function name="GetCompressedTextureImage" offset="assign">
+ <function name="GetCompressedTextureImage">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="bufSize" type="GLsizei" />
<param name="pixels" type="GLvoid *" />
</function>
- <function name="GetTextureLevelParameterfv" offset="assign">
+ <function name="GetTextureLevelParameterfv">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLfloat *" />
</function>
- <function name="GetTextureLevelParameteriv" offset="assign">
+ <function name="GetTextureLevelParameteriv">
<param name="texture" type="GLuint" />
<param name="level" type="GLint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetTextureParameterfv" offset="assign">
+ <function name="GetTextureParameterfv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLfloat *" />
</function>
- <function name="GetTextureParameterIiv" offset="assign">
+ <function name="GetTextureParameterIiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="GetTextureParameterIuiv" offset="assign">
+ <function name="GetTextureParameterIuiv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLuint *" />
</function>
- <function name="GetTextureParameteriv" offset="assign">
+ <function name="GetTextureParameteriv">
<param name="texture" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
@@ -579,27 +579,27 @@
<!-- Vertex Array object functions -->
- <function name="CreateVertexArrays" offset="assign">
+ <function name="CreateVertexArrays">
<param name="n" type="GLsizei" />
<param name="arrays" type="GLuint *" />
</function>
- <function name="DisableVertexArrayAttrib" offset="assign">
+ <function name="DisableVertexArrayAttrib">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
</function>
- <function name="EnableVertexArrayAttrib" offset="assign">
+ <function name="EnableVertexArrayAttrib">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
</function>
- <function name="VertexArrayElementBuffer" offset="assign">
+ <function name="VertexArrayElementBuffer">
<param name="vaobj" type="GLuint" />
<param name="buffer" type="GLuint" />
</function>
- <function name="VertexArrayVertexBuffer" offset="assign">
+ <function name="VertexArrayVertexBuffer">
<param name="vaobj" type="GLuint" />
<param name="bindingindex" type="GLuint" />
<param name="buffer" type="GLuint" />
@@ -607,7 +607,7 @@
<param name="stride" type="GLsizei" />
</function>
- <function name="VertexArrayVertexBuffers" offset="assign">
+ <function name="VertexArrayVertexBuffers">
<param name="vaobj" type="GLuint" />
<param name="first" type="GLuint" />
<param name="count" type="GLsizei" />
@@ -616,7 +616,7 @@
<param name="strides" type="const GLsizei *" />
</function>
- <function name="VertexArrayAttribFormat" offset="assign">
+ <function name="VertexArrayAttribFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -625,7 +625,7 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribIFormat" offset="assign">
+ <function name="VertexArrayAttribIFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -633,7 +633,7 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribLFormat" offset="assign">
+ <function name="VertexArrayAttribLFormat">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="size" type="GLint" />
@@ -641,32 +641,32 @@
<param name="relativeoffset" type="GLuint" />
</function>
- <function name="VertexArrayAttribBinding" offset="assign">
+ <function name="VertexArrayAttribBinding">
<param name="vaobj" type="GLuint" />
<param name="attribindex" type="GLuint" />
<param name="bindingindex" type="GLuint" />
</function>
- <function name="VertexArrayBindingDivisor" offset="assign">
+ <function name="VertexArrayBindingDivisor">
<param name="vaobj" type="GLuint" />
<param name="bindingindex" type="GLuint" />
<param name="divisor" type="GLuint" />
</function>
- <function name="GetVertexArrayiv" offset="assign">
+ <function name="GetVertexArrayiv">
<param name="vaobj" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetVertexArrayIndexediv" offset="assign">
+ <function name="GetVertexArrayIndexediv">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="param" type="GLint *" />
</function>
- <function name="GetVertexArrayIndexed64iv" offset="assign">
+ <function name="GetVertexArrayIndexed64iv">
<param name="vaobj" type="GLuint" />
<param name="index" type="GLuint" />
<param name="pname" type="GLenum" />
@@ -675,48 +675,48 @@
<!-- Sampler object functions -->
- <function name="CreateSamplers" offset="assign">
+ <function name="CreateSamplers">
<param name="n" type="GLsizei" />
<param name="samplers" type="GLuint *" />
</function>
<!-- Program Pipeline object functions -->
- <function name="CreateProgramPipelines" offset="assign">
+ <function name="CreateProgramPipelines">
<param name="n" type="GLsizei" />
<param name="pipelines" type="GLuint *" />
</function>
<!-- Query object functions -->
- <function name="CreateQueries" offset="assign">
+ <function name="CreateQueries">
<param name="target" type="GLenum" />
<param name="n" type="GLsizei" />
<param name="ids" type="GLuint *" />
</function>
- <function name="GetQueryBufferObjectiv" offset="assign">
+ <function name="GetQueryBufferObjectiv">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjectuiv" offset="assign">
+ <function name="GetQueryBufferObjectuiv">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjecti64v" offset="assign">
+ <function name="GetQueryBufferObjecti64v">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="offset" type="GLintptr" />
</function>
- <function name="GetQueryBufferObjectui64v" offset="assign">
+ <function name="GetQueryBufferObjectui64v">
<param name="id" type="GLuint" />
<param name="buffer" type="GLuint" />
<param name="pname" type="GLenum" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
index 0b6947cc5..8c33fbf89 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml
@@ -8,24 +8,24 @@
<category name="GL_ARB_draw_buffers_blend" number="69">
- <function name="BlendEquationiARB" offset="assign">
+ <function name="BlendEquationiARB">
<param name="buf" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="BlendEquationSeparateiARB" offset="assign">
+ <function name="BlendEquationSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
- <function name="BlendFunciARB" offset="assign">
+ <function name="BlendFunciARB">
<param name="buf" type="GLuint"/>
<param name="src" type="GLenum"/>
<param name="dst" type="GLenum"/>
</function>
- <function name="BlendFuncSeparateiARB" offset="assign">
+ <function name="BlendFuncSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="srcRGB" type="GLenum"/>
<param name="dstRGB" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
index 986654848..120bda13d 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
@@ -8,7 +8,7 @@
<category name="GL_ARB_draw_elements_base_vertex" number="62">
- <function name="DrawElementsBaseVertex" offset="assign" exec="dynamic">
+ <function name="DrawElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -16,8 +16,7 @@
<param name="basevertex" type="GLint"/>
</function>
- <function name="DrawRangeElementsBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="DrawRangeElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="start" type="GLuint"/>
<param name="end" type="GLuint"/>
@@ -27,8 +26,7 @@
<param name="basevertex" type="GLint"/>
</function>
- <function name="MultiDrawElementsBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="MultiDrawElementsBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -37,8 +35,7 @@
<param name="basevertex" type="const GLint *"/>
</function>
- <function name="DrawElementsInstancedBaseVertex" offset="assign"
- exec="dynamic">
+ <function name="DrawElementsInstancedBaseVertex" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
index 7de03cd35..3b29d6b86 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_indirect.xml
@@ -8,12 +8,12 @@
<enum name="DRAW_INDIRECT_BUFFER" value="0x8F3F"/>
<enum name="DRAW_INDIRECT_BUFFER_BINDING" value="0x8F43"/>
- <function name="DrawArraysIndirect" offset="assign" exec="dynamic">
+ <function name="DrawArraysIndirect" exec="dynamic" es2="3.1">
<param name="mode" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
</function>
- <function name="DrawElementsIndirect" offset="assign" exec="dynamic">
+ <function name="DrawElementsIndirect" exec="dynamic" es2="3.1">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
@@ -24,14 +24,14 @@
<category name="GL_ARB_multi_draw_indirect" number="133">
- <function name="MultiDrawArraysIndirect" offset="assign" exec="dynamic">
+ <function name="MultiDrawArraysIndirect" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
<param name="primcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</function>
- <function name="MultiDrawElementsIndirect" offset="assign" exec="dynamic">
+ <function name="MultiDrawElementsIndirect" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="const GLvoid *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
index 7ee7629c7..b1c822144 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml
@@ -8,14 +8,14 @@
<category name="GL_ARB_draw_instanced" number="44">
- <function name="DrawArraysInstancedARB" offset="assign" exec="dynamic">
+ <function name="DrawArraysInstancedARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="primcount" type="GLsizei"/>
</function>
- <function name="DrawElementsInstancedARB" offset="assign" exec="dynamic">
+ <function name="DrawElementsInstancedARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
index 999a8ef13..1573e7e96 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_framebuffer_object.xml
@@ -140,33 +140,31 @@
- <function name="IsRenderbuffer" es2="2.0" offset="assign">
+ <function name="IsRenderbuffer" es2="2.0">
<param name="renderbuffer" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1422"/>
</function>
- <function name="BindRenderbuffer" es2="2.0" offset="assign">
+ <function name="BindRenderbuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
<glx rop="235"/>
</function>
- <function name="DeleteRenderbuffers"
- es2="2.0" offset="assign">
+ <function name="DeleteRenderbuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="const GLuint *" count="n"/>
<glx rop="4317"/>
</function>
- <function name="GenRenderbuffers" es2="2.0" offset="assign">
+ <function name="GenRenderbuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="GLuint *" count="n" output="true"/>
<glx vendorpriv="1423" always_array="true"/>
</function>
- <function name="RenderbufferStorage"
- es2="2.0" offset="assign">
+ <function name="RenderbufferStorage" es2="2.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -174,7 +172,7 @@
<glx rop="4318"/>
</function>
- <function name="RenderbufferStorageMultisample" offset="assign" es2="3.0">
+ <function name="RenderbufferStorageMultisample" es2="3.0">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -183,46 +181,44 @@
<glx rop="4331"/>
</function>
- <function name="GetRenderbufferParameteriv" es2="2.0" offset="assign">
+ <function name="GetRenderbufferParameteriv" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx vendorpriv="1424"/>
</function>
- <function name="IsFramebuffer" es2="2.0" offset="assign">
+ <function name="IsFramebuffer" es2="2.0">
<param name="framebuffer" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1425"/>
</function>
- <function name="BindFramebuffer" es2="2.0" offset="assign">
+ <function name="BindFramebuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
<glx rop="236"/>
</function>
- <function name="DeleteFramebuffers"
- es2="2.0" offset="assign">
+ <function name="DeleteFramebuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="const GLuint *" count="n"/>
<glx rop="4320"/>
</function>
- <function name="GenFramebuffers" es2="2.0" offset="assign">
+ <function name="GenFramebuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="GLuint *" count="n" output="true"/>
<glx vendorpriv="1426" always_array="true"/>
</function>
- <function name="CheckFramebufferStatus"
- es2="2.0" offset="assign">
+ <function name="CheckFramebufferStatus" es2="2.0">
<param name="target" type="GLenum"/>
<return type="GLenum"/>
<glx vendorpriv="1427"/>
</function>
- <function name="FramebufferTexture1D" offset="assign">
+ <function name="FramebufferTexture1D">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -231,8 +227,7 @@
<glx rop="4321"/>
</function>
- <function name="FramebufferTexture2D"
- es2="2.0" offset="assign">
+ <function name="FramebufferTexture2D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -241,7 +236,7 @@
<glx rop="4322"/>
</function>
- <function name="FramebufferTexture3D" offset="assign">
+ <function name="FramebufferTexture3D">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -251,7 +246,7 @@
<glx rop="4323"/>
</function>
- <function name="FramebufferTextureLayer" es2="3.0" offset="assign">
+ <function name="FramebufferTextureLayer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
@@ -260,8 +255,7 @@
<glx rop="237"/>
</function>
- <function name="FramebufferRenderbuffer"
- es2="2.0" offset="assign">
+ <function name="FramebufferRenderbuffer" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="renderbuffertarget" type="GLenum"/>
@@ -269,7 +263,7 @@
<glx rop="4324"/>
</function>
- <function name="GetFramebufferAttachmentParameteriv" es2="2.0" offset="assign">
+ <function name="GetFramebufferAttachmentParameteriv" es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="pname" type="GLenum"/>
@@ -277,7 +271,7 @@
<glx vendorpriv="1428"/>
</function>
- <function name="BlitFramebuffer" es2="3.0" offset="assign">
+ <function name="BlitFramebuffer" es2="3.0">
<param name="srcX0" type="GLint"/>
<param name="srcY0" type="GLint"/>
<param name="srcX1" type="GLint"/>
@@ -291,7 +285,7 @@
<glx rop="4330"/>
</function>
- <function name="GenerateMipmap" es2="2.0" offset="assign">
+ <function name="GenerateMipmap" es2="2.0">
<param name="target" type="GLenum"/>
<glx rop="4325"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
index e62047c9b..280e7a075 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml
@@ -45,7 +45,7 @@
<param name="level" type="GLint"/>
<param name="layer" type="GLint"/>
</function>
- <function name="FramebufferTextureFaceARB" exec="skip" offset="assign">
+ <function name="FramebufferTextureFaceARB" exec="skip">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
index e84d0678e..25e0a37c8 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml
@@ -11,7 +11,7 @@
<enum name="NUM_PROGRAM_BINARY_FORMATS" value="0x87FE"/>
<enum name="PROGRAM_BINARY_FORMATS" value="0x87FF"/>
- <function name="GetProgramBinary" offset="assign" es2="3.0">
+ <function name="GetProgramBinary" es2="3.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -19,14 +19,14 @@
<param name="binary" type="GLvoid *"/>
</function>
- <function name="ProgramBinary" offset="assign" es2="3.0">
+ <function name="ProgramBinary" es2="3.0">
<param name="program" type="GLuint"/>
<param name="binaryFormat" type="GLenum"/>
<param name="binary" type="const GLvoid *"/>
<param name="length" type="GLsizei"/>
</function>
- <function name="ProgramParameteri" offset="assign" es2="3.0">
+ <function name="ProgramParameteri" es2="3.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml b/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
index 4f860ef8c..fd1ad117e 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml
@@ -5,25 +5,25 @@
<category name="GL_ARB_gpu_shader_fp64" number="89">
- <function name="Uniform1d" offset="assign">
+ <function name="Uniform1d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="Uniform2d" offset="assign">
+ <function name="Uniform2d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="Uniform3d" offset="assign">
+ <function name="Uniform3d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="Uniform4d" offset="assign">
+ <function name="Uniform4d">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -31,94 +31,94 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="Uniform1dv" offset="assign">
+ <function name="Uniform1dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform2dv" offset="assign">
+ <function name="Uniform2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform3dv" offset="assign">
+ <function name="Uniform3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="Uniform4dv" offset="assign">
+ <function name="Uniform4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2dv" offset="assign">
+ <function name="UniformMatrix2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3dv" offset="assign">
+ <function name="UniformMatrix3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4dv" offset="assign">
+ <function name="UniformMatrix4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2x3dv" offset="assign">
+ <function name="UniformMatrix2x3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix2x4dv" offset="assign">
+ <function name="UniformMatrix2x4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3x2dv" offset="assign">
+ <function name="UniformMatrix3x2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix3x4dv" offset="assign">
+ <function name="UniformMatrix3x4dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4x2dv" offset="assign">
+ <function name="UniformMatrix4x2dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="UniformMatrix4x3dv" offset="assign">
+ <function name="UniformMatrix4x3dv">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
- <function name="GetUniformdv" offset="assign">
+ <function name="GetUniformdv">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
index 70a2a3109..16d14b1b7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
@@ -8,8 +8,7 @@
<enum name="NUM_SAMPLE_COUNTS" value="0x9380"/>
- <function name="GetInternalformativ" offset="assign" static_dispatch="false"
- es2="3.0">
+ <function name="GetInternalformativ" es2="3.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="pname" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml b/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
index 31b515cdb..052816ad7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_invalidate_subdata.xml
@@ -3,7 +3,7 @@
<OpenGLAPI>
<category name="GL_ARB_invalidate_subdata" number="666">
- <function name="InvalidateTexSubImage" offset="assign">
+ <function name="InvalidateTexSubImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -14,22 +14,22 @@
<param name="depth" type="GLsizei"/>
</function>
- <function name="InvalidateTexImage" offset="assign">
+ <function name="InvalidateTexImage">
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
</function>
- <function name="InvalidateBufferSubData" offset="assign">
+ <function name="InvalidateBufferSubData">
<param name="buffer" type="GLuint"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
</function>
- <function name="InvalidateBufferData" offset="assign">
+ <function name="InvalidateBufferData">
<param name="buffer" type="GLuint"/>
</function>
- <function name="InvalidateSubFramebuffer" offset="assign" es2="3.0">
+ <function name="InvalidateSubFramebuffer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei" counter="true"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
@@ -39,7 +39,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="InvalidateFramebuffer" offset="assign" es2="3.0">
+ <function name="InvalidateFramebuffer" es2="3.0">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei" counter="true"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml b/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
index d87450446..cf7b21148 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_map_buffer_range.xml
@@ -15,7 +15,7 @@
<enum name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010"/>
<enum name="MAP_UNSYNCHRONIZED_BIT" value="0x0020"/>
- <function name="MapBufferRange" offset="assign" es2="3.0">
+ <function name="MapBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
@@ -23,7 +23,7 @@
<return type="GLvoid *"/>
</function>
- <function name="FlushMappedBufferRange" offset="assign" es2="3.0">
+ <function name="FlushMappedBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml b/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
index 4f2f2a259..f42eaa28e 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_multi_bind.xml
@@ -7,14 +7,14 @@
<category name="GL_ARB_multi_bind" number="147">
- <function name="BindBuffersBase" offset="assign">
+ <function name="BindBuffersBase">
<param name="target" type="GLenum"/>
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="buffers" type="const GLuint *"/>
</function>
- <function name="BindBuffersRange" offset="assign">
+ <function name="BindBuffersRange">
<param name="target" type="GLenum"/>
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
@@ -23,25 +23,25 @@
<param name="sizes" type="const GLsizeiptr *"/>
</function>
- <function name="BindTextures" offset="assign">
+ <function name="BindTextures">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="textures" type="const GLuint *"/>
</function>
- <function name="BindSamplers" offset="assign">
+ <function name="BindSamplers">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="samplers" type="const GLuint *"/>
</function>
- <function name="BindImageTextures" offset="assign">
+ <function name="BindImageTextures">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="textures" type="const GLuint *"/>
</function>
- <function name="BindVertexBuffers" offset="assign">
+ <function name="BindVertexBuffers">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="buffers" type="const GLuint *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml b/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
index 59eb59c64..c3162f5ed 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_program_interface_query.xml
@@ -56,21 +56,21 @@
<enum name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A"/>
<enum name="COMPATIBLE_SUBROUTINES" value="0x8E4B"/>
- <function name="GetProgramInterfaceiv" offset="assign">
+ <function name="GetProgramInterfaceiv" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetProgramResourceIndex" offset="assign">
+ <function name="GetProgramResourceIndex" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
<return type="GLuint"/>
</function>
- <function name="GetProgramResourceName" offset="assign">
+ <function name="GetProgramResourceName" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -79,7 +79,7 @@
<param name="name" type="GLchar *" output="true"/>
</function>
- <function name="GetProgramResourceiv" offset="assign">
+ <function name="GetProgramResourceiv" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -90,14 +90,14 @@
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetProgramResourceLocation" offset="assign">
+ <function name="GetProgramResourceLocation" es2="3.1">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
</function>
- <function name="GetProgramResourceLocationIndex" offset="assign">
+ <function name="GetProgramResourceLocationIndex">
<param name="program" type="GLuint"/>
<param name="programInterface" type="GLenum"/>
<param name="name" type="const GLchar *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
index 65843149c..9b2f2f0a7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml
@@ -20,26 +20,26 @@
<enum name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004"/>
- <function name="GetGraphicsResetStatusARB" offset="assign">
+ <function name="GetGraphicsResetStatusARB">
<return type="GLenum"/>
</function>
<!-- OpenGL 1.0 sized buffer queries -->
- <function name="GetnMapdvARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="v" type="GLdouble *" output="true"/>
</function>
- <function name="GetnMapfvARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="v" type="GLfloat *" output="true"/>
</function>
- <function name="GetnMapivARB" offset="assign" deprecated="3.1">
+ <function name="GetnMapivARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
@@ -48,19 +48,19 @@
- <function name="GetnPixelMapfvARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapfvARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLfloat *" output="true"/>
</function>
- <function name="GetnPixelMapuivARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapuivARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLuint *" output="true"/>
</function>
- <function name="GetnPixelMapusvARB" offset="assign" deprecated="3.1">
+ <function name="GetnPixelMapusvARB" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
<param name="values" type="GLushort *" output="true"/>
@@ -68,12 +68,12 @@
- <function name="GetnPolygonStippleARB" offset="assign">
+ <function name="GetnPolygonStippleARB">
<param name="bufSize" type="GLsizei"/>
<param name="pattern" type="GLubyte *" output="true"/>
</function>
- <function name="GetnTexImageARB" offset="assign">
+ <function name="GetnTexImageARB">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -82,7 +82,7 @@
<param name="img" type="GLvoid *" output="true"/>
</function>
- <function name="ReadnPixelsARB" offset="assign">
+ <function name="ReadnPixelsARB">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -95,7 +95,7 @@
<!-- ARB_imaging sized buffer queries -->
- <function name="GetnColorTableARB" offset="assign" deprecated="3.1">
+ <function name="GetnColorTableARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -103,7 +103,7 @@
<param name="table" type="GLvoid *" output="true"/>
</function>
- <function name="GetnConvolutionFilterARB" offset="assign" deprecated="3.1">
+ <function name="GetnConvolutionFilterARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -111,7 +111,7 @@
<param name="image" type="GLvoid *" output="true"/>
</function>
- <function name="GetnSeparableFilterARB" offset="assign" deprecated="3.1">
+ <function name="GetnSeparableFilterARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -122,7 +122,7 @@
<param name="span" type="GLvoid *" output="true"/>
</function>
- <function name="GetnHistogramARB" offset="assign" deprecated="3.1">
+ <function name="GetnHistogramARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -131,7 +131,7 @@
<param name="values" type="GLvoid *" output="true"/>
</function>
- <function name="GetnMinmaxARB" offset="assign" deprecated="3.1">
+ <function name="GetnMinmaxARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -142,7 +142,7 @@
<!-- OpenGL 1.3 sized buffer queries -->
- <function name="GetnCompressedTexImageARB" offset="assign">
+ <function name="GetnCompressedTexImageARB">
<param name="target" type="GLenum"/>
<param name="lod" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
@@ -151,28 +151,28 @@
<!-- OpenGL 2.0 sized buffer queries -->
- <function name="GetnUniformfvARB" offset="assign">
+ <function name="GetnUniformfvARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLfloat *" output="true"/>
</function>
- <function name="GetnUniformivARB" offset="assign">
+ <function name="GetnUniformivARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="GetnUniformuivARB" offset="assign">
+ <function name="GetnUniformuivARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
<param name="params" type="GLuint *" output="true"/>
</function>
- <function name="GetnUniformdvARB" offset="assign">
+ <function name="GetnUniformdvARB">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="bufSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml b/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
index 9173dee5c..bc69e97bd 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_sampler_objects.xml
@@ -7,81 +7,81 @@
<category name="GL_ARB_sampler_objects" number="81">
- <function name="GenSamplers" offset="assign" es2="3.0">
+ <function name="GenSamplers" es2="3.0">
<param name="count" type="GLsizei"/>
<param name="samplers" type="GLuint *"/>
</function>
- <function name="DeleteSamplers" offset="assign" es2="3.0">
+ <function name="DeleteSamplers" es2="3.0">
<param name="count" type="GLsizei"/>
<param name="samplers" type="const GLuint *"/>
</function>
- <function name="IsSampler" offset="assign" es2="3.0">
+ <function name="IsSampler" es2="3.0">
<param name="sampler" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="BindSampler" offset="assign" es2="3.0">
+ <function name="BindSampler" es2="3.0">
<param name="unit" type="GLuint"/>
<param name="sampler" type="GLuint"/>
</function>
- <function name="SamplerParameteri" offset="assign" es2="3.0">
+ <function name="SamplerParameteri" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="SamplerParameterf" offset="assign" es2="3.0">
+ <function name="SamplerParameterf" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="SamplerParameteriv" offset="assign" es2="3.0">
+ <function name="SamplerParameteriv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="SamplerParameterfv" offset="assign" es2="3.0">
+ <function name="SamplerParameterfv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="SamplerParameterIiv" offset="assign">
+ <function name="SamplerParameterIiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="SamplerParameterIuiv" offset="assign">
+ <function name="SamplerParameterIuiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLuint *"/>
</function>
- <function name="GetSamplerParameteriv" offset="assign" es2="3.0">
+ <function name="GetSamplerParameteriv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetSamplerParameterfv" offset="assign" es2="3.0">
+ <function name="GetSamplerParameterfv" es2="3.0">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *"/>
</function>
- <function name="GetSamplerParameterIiv" offset="assign">
+ <function name="GetSamplerParameterIiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetSamplerParameterIuiv" offset="assign">
+ <function name="GetSamplerParameterIuiv">
<param name="sampler" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml b/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
index 96ae2b9cb..c9f481d8b 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_separate_shader_objects.xml
@@ -15,69 +15,69 @@
<enum name="ALL_SHADER_BITS" value="0xFFFFFFFF"/>
<enum name="PROGRAM_SEPARABLE" value="0x8258"/>
- <function name="UseProgramStages" offset="assign" static_dispatch="false">
+ <function name="UseProgramStages" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="stages" type="GLbitfield" />
<param name="program" type="GLuint" />
</function>
- <function name="ActiveShaderProgram" offset="assign" static_dispatch="false">
+ <function name="ActiveShaderProgram" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="program" type="GLuint" />
</function>
- <function name="CreateShaderProgramv" offset="assign" static_dispatch="false">
+ <function name="CreateShaderProgramv" es2="3.1">
<param name="type" type="GLenum" />
<param name="count" type="GLsizei" />
<param name="strings" type="const GLchar * const *" />
<return type="GLuint"/>
</function>
- <function name="BindProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="BindProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
</function>
- <function name="DeleteProgramPipelines" offset="assign" static_dispatch="false">
+ <function name="DeleteProgramPipelines" es2="3.1">
<param name="n" type="GLsizei" />
<param name="pipelines" type="const GLuint *" />
</function>
- <function name="GenProgramPipelines" offset="assign" static_dispatch="false">
+ <function name="GenProgramPipelines" es2="3.1">
<param name="n" type="GLsizei" />
<param name="pipelines" type="GLuint *" />
</function>
- <function name="IsProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="IsProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
<return type="GLboolean"/>
</function>
<!-- Function already included on ARB_get_program_binary.xml. Keep a commented
version here for completeness -->
<!--
- <function name="ProgramParameteri" offset="assign" es2="3.0" static_dispatch="false">
+ <function name="ProgramParameteri" es2="3.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
</function>
-->
- <function name="GetProgramPipelineiv" offset="assign" static_dispatch="false">
+ <function name="GetProgramPipelineiv" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
- <function name="ProgramUniform1i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
</function>
- <function name="ProgramUniform2i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
</function>
- <function name="ProgramUniform3i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
<param name="y" type="GLint" />
<param name="z" type="GLint" />
</function>
- <function name="ProgramUniform4i" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4i" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLint" />
@@ -85,25 +85,25 @@
<param name="z" type="GLint" />
<param name="w" type="GLint" />
</function>
- <function name="ProgramUniform1ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
</function>
- <function name="ProgramUniform2ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
</function>
- <function name="ProgramUniform3ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
<param name="y" type="GLuint" />
<param name="z" type="GLuint" />
</function>
- <function name="ProgramUniform4ui" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4ui" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLuint" />
@@ -111,25 +111,25 @@
<param name="z" type="GLuint" />
<param name="w" type="GLuint" />
</function>
- <function name="ProgramUniform1f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
</function>
- <function name="ProgramUniform2f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
</function>
- <function name="ProgramUniform3f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
<param name="y" type="GLfloat" />
<param name="z" type="GLfloat" />
</function>
- <function name="ProgramUniform4f" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4f" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLfloat" />
@@ -137,170 +137,170 @@
<param name="z" type="GLfloat" />
<param name="w" type="GLfloat" />
</function>
- <function name="ProgramUniform1iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform2iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform3iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform4iv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4iv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLint *" />
</function>
- <function name="ProgramUniform1uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform2uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform3uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform4uiv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4uiv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLuint *" />
</function>
- <function name="ProgramUniform1fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniform4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2x3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3x2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix2x4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4x2fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x2fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix3x4fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x4fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ProgramUniformMatrix4x3fv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x3fv" es2="3.1">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLfloat *" />
</function>
- <function name="ValidateProgramPipeline" offset="assign" static_dispatch="false">
+ <function name="ValidateProgramPipeline" es2="3.1">
<param name="pipeline" type="GLuint" />
</function>
- <function name="GetProgramPipelineInfoLog" offset="assign" static_dispatch="false">
+ <function name="GetProgramPipelineInfoLog" es2="3.1">
<param name="pipeline" type="GLuint" />
<param name="bufSize" type="GLsizei" />
<param name="length" type="GLsizei *" />
<param name="infoLog" type="GLchar *" />
</function>
- <function name="ProgramUniform1d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
</function>
- <function name="ProgramUniform2d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
</function>
- <function name="ProgramUniform3d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
<param name="y" type="GLdouble" />
<param name="z" type="GLdouble" />
</function>
- <function name="ProgramUniform4d" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4d">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="x" type="GLdouble" />
@@ -308,88 +308,88 @@
<param name="z" type="GLdouble" />
<param name="w" type="GLdouble" />
</function>
- <function name="ProgramUniformMatrix2x3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3x2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix2x4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4x2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3x4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3x4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4x3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4x3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniformMatrix4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniformMatrix4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="transpose" type="GLboolean" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform1dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform1dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform2dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform2dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform3dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform3dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
- <function name="ProgramUniform4dv" offset="assign" static_dispatch="false">
+ <function name="ProgramUniform4dv">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
<param name="count" type="GLsizei" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml b/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
index f3b74e9c2..0b0b60fa7 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_shader_atomic_counters.xml
@@ -35,7 +35,7 @@
<enum name="UNSIGNED_INT_ATOMIC_COUNTER" value="0x92DB"/>
<enum name="MAX_ATOMIC_COUNTER_BUFFER_BINDINGS" value="0x92DC"/>
-<function name="GetActiveAtomicCounterBufferiv" offset="assign">
+<function name="GetActiveAtomicCounterBufferiv">
<param name="program" type="GLuint" />
<param name="bufferIndex" type="GLuint" />
<param name="pname" type="GLenum" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml b/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
index 7ccfca41d..178e930f1 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_shader_image_load_store.xml
@@ -70,7 +70,7 @@
<enum name="MAX_FRAGMENT_IMAGE_UNIFORMS" value="0x90CE"/>
<enum name="MAX_COMBINED_IMAGE_UNIFORMS" value="0x90CF"/>
-<function name="BindImageTexture" offset="assign">
+<function name="BindImageTexture" es2="3.1">
<param name="unit" type="GLuint"/>
<param name="texture" type="GLuint"/>
<param name="level" type="GLint"/>
@@ -80,7 +80,7 @@
<param name="format" type="GLenum"/>
</function>
-<function name="MemoryBarrier" offset="assign">
+<function name="MemoryBarrier" es2="3.1">
<param name="barriers" type="GLbitfield"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_sync.xml b/mesalib/src/mapi/glapi/gen/ARB_sync.xml
index 58f1639c4..d8a1c34e0 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_sync.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_sync.xml
@@ -39,40 +39,40 @@
-->
- <function name="FenceSync" offset="assign" es2="3.0">
+ <function name="FenceSync" es2="3.0">
<param name="condition" type="GLenum"/>
<param name="flags" type="GLbitfield"/>
<return type="GLsync"/>
</function>
- <function name="IsSync" offset="assign" es2="3.0">
+ <function name="IsSync" es2="3.0">
<param name="sync" type="GLsync"/>
<return type="GLboolean"/>
</function>
- <function name="DeleteSync" offset="assign" es2="3.0">
+ <function name="DeleteSync" es2="3.0">
<param name="sync" type="GLsync"/>
</function>
- <function name="ClientWaitSync" offset="assign" es2="3.0">
+ <function name="ClientWaitSync" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="flags" type="GLbitfield"/>
<param name="timeout" type="GLuint64"/>
<return type="GLenum"/>
</function>
- <function name="WaitSync" offset="assign" es2="3.0">
+ <function name="WaitSync" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="flags" type="GLbitfield"/>
<param name="timeout" type="GLuint64"/>
</function>
- <function name="GetInteger64v" offset="assign" es2="3.0">
+ <function name="GetInteger64v" es2="3.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *" output="true" variable_param="pname"/>
</function>
- <function name="GetSynciv" offset="assign" es2="3.0">
+ <function name="GetSynciv" es2="3.0">
<param name="sync" type="GLsync"/>
<param name="pname" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
index 2176c08ef..36bcc4932 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_range.xml
@@ -9,7 +9,7 @@
<enum name="TEXTURE_BUFFER_SIZE" value="0x919E"/>
<enum name="TEXTURE_BUFFER_OFFSET_ALIGNMENT" value="0x919F"/>
- <function name="TexBufferRange" offset="assign">
+ <function name="TexBufferRange">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="buffer" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
index 1f65a8bcf..595e1c7ea 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_multisample.xml
@@ -34,7 +34,7 @@
<enum name="INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910C"/>
<enum name="UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY" value="0x910D"/>
- <function name="TexImage2DMultisample" offset="assign">
+ <function name="TexImage2DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -43,7 +43,7 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="TexImage3DMultisample" offset="assign">
+ <function name="TexImage3DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -53,13 +53,13 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="GetMultisamplefv" offset="assign">
+ <function name="GetMultisamplefv" es2="3.1">
<param name="pname" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="val" type="GLfloat *"/>
</function>
- <function name="SampleMaski" offset="assign">
+ <function name="SampleMaski" es2="3.1">
<param name="index" type="GLuint"/>
<param name="mask" type="GLbitfield"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
index 1d63e7ce3..7df394241 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_storage.xml
@@ -10,14 +10,14 @@
<enum name="TEXTURE_IMMUTABLE_FORMAT" value="0x912F"/>
- <function name="TexStorage1D" offset="assign">
+ <function name="TexStorage1D">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
<param name="width" type="GLsizei"/>
</function>
- <function name="TexStorage2D" offset="assign" es2="3.0">
+ <function name="TexStorage2D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
@@ -25,7 +25,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="TexStorage3D" offset="assign" es2="3.0">
+ <function name="TexStorage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
<param name="internalFormat" type="GLenum"/>
@@ -34,7 +34,7 @@
<param name="depth" type="GLsizei"/>
</function>
- <function name="TextureStorage1DEXT" offset="assign">
+ <function name="TextureStorage1DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
@@ -42,7 +42,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="TextureStorage2DEXT" offset="assign">
+ <function name="TextureStorage2DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
@@ -51,7 +51,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="TextureStorage3DEXT" offset="assign">
+ <function name="TextureStorage3DEXT">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="levels" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
index 0f9d323d4..6ed8f1a01 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_storage_multisample.xml
@@ -7,7 +7,7 @@
<category name="GL_ARB_texture_storage_multisample" number="141">
- <function name="TexStorage2DMultisample" offset="assign">
+ <function name="TexStorage2DMultisample" es2="3.1">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -16,7 +16,7 @@
<param name="fixedsamplelocations" type="GLboolean"/>
</function>
- <function name="TexStorage3DMultisample" offset="assign">
+ <function name="TexStorage3DMultisample">
<param name="target" type="GLenum"/>
<param name="samples" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
index 3e6b8c904..4215fc5bd 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_texture_view.xml
@@ -7,7 +7,7 @@
<category name="GL_ARB_texture_view" number="124">
- <function name="TextureView" offset="assign">
+ <function name="TextureView">
<param name="texture" type="GLuint"/>
<param name="target" type="GLenum"/>
<param name="origtexture" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
index 11aacb033..cf86bbb2f 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml
@@ -39,14 +39,14 @@
<enum name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
<enum name="INVALID_INDEX" value="0xFFFFFFFF" />
-<function name="GetUniformIndices" offset="assign" es2="3.0">
+<function name="GetUniformIndices" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformCount" type="GLsizei" />
<param name="uniformNames" type="const GLchar * const *" />
<param name="uniformIndices" type="GLuint *" />
</function>
-<function name="GetActiveUniformsiv" offset="assign" es2="3.0">
+<function name="GetActiveUniformsiv" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformCount" type="GLsizei" />
<param name="uniformIndices" type="const GLuint *" />
@@ -54,7 +54,7 @@
<param name="params" type="GLint *" />
</function>
-<function name="GetActiveUniformName" offset="assign">
+<function name="GetActiveUniformName">
<param name="program" type="GLuint" />
<param name="uniformIndex" type="GLuint" />
<param name="bufSize" type="GLsizei" />
@@ -62,20 +62,20 @@
<param name="uniformName" type="GLchar *" />
</function>
-<function name="GetUniformBlockIndex" offset="assign" es2="3.0">
+<function name="GetUniformBlockIndex" es2="3.0">
<return type="GLuint"/>
<param name="program" type="GLuint" />
<param name="uniformBlockName" type="const GLchar *" />
</function>
-<function name="GetActiveUniformBlockiv" offset="assign" es2="3.0">
+<function name="GetActiveUniformBlockiv" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="pname" type="GLenum" />
<param name="params" type="GLint *" />
</function>
-<function name="GetActiveUniformBlockName" offset="assign" es2="3.0">
+<function name="GetActiveUniformBlockName" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="bufSize" type="GLsizei" />
@@ -86,7 +86,7 @@
<!-- Duplicated with GL3x.xml: BindBufferRange, BindBufferBase,
GetIntegeri_v -->
-<function name="UniformBlockBinding" offset="assign" es2="3.0">
+<function name="UniformBlockBinding" es2="3.0">
<param name="program" type="GLuint" />
<param name="uniformBlockIndex" type="GLuint" />
<param name="uniformBlockBinding" type="GLuint" />
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
index f2277d2bc..4a392dbb4 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_array_object.xml
@@ -10,21 +10,21 @@
<enum name="VERTEX_ARRAY_BINDING" value="0x85B5"/>
- <function name="BindVertexArray" offset="assign" es2="3.0">
+ <function name="BindVertexArray" es2="3.0">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArrays" es2="3.0" offset="assign">
+ <function name="DeleteVertexArrays" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArrays" offset="assign" es2="3.0">
+ <function name="GenVertexArrays" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *"/>
</function>
- <function name="IsVertexArray" es2="3.0" offset="assign">
+ <function name="IsVertexArray" es2="3.0">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
index fc49f84b5..211642fc3 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
@@ -5,25 +5,25 @@
<category name="GL_ARB_vertex_attrib_64bit" number="99">
- <function name="VertexAttribL1d" offset="assign">
+ <function name="VertexAttribL1d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttribL2d" offset="assign">
+ <function name="VertexAttribL2d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttribL3d" offset="assign">
+ <function name="VertexAttribL3d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttribL4d" offset="assign">
+ <function name="VertexAttribL4d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -31,27 +31,27 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttribL1dv" offset="assign">
+ <function name="VertexAttribL1dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL2dv" offset="assign">
+ <function name="VertexAttribL2dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL3dv" offset="assign">
+ <function name="VertexAttribL3dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribL4dv" offset="assign">
+ <function name="VertexAttribL4dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttribLPointer" offset="assign">
+ <function name="VertexAttribLPointer">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -59,7 +59,7 @@
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="GetVertexAttribLdv" offset="assign">
+ <function name="GetVertexAttribLdv">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
index 7e6268877..ba9ca57bb 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml
@@ -7,14 +7,14 @@
<category name="GL_ARB_vertex_attrib_binding" number="125">
- <function name="BindVertexBuffer" offset="assign">
+ <function name="BindVertexBuffer" es2="3.1">
<param name="bindingindex" type="GLuint"/>
<param name="buffer" type="GLuint"/>
<param name="offset" type="GLintptr"/>
<param name="stride" type="GLsizei"/>
</function>
- <function name="VertexAttribFormat" offset="assign">
+ <function name="VertexAttribFormat" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -22,26 +22,26 @@
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribIFormat" offset="assign">
+ <function name="VertexAttribIFormat" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribLFormat" offset="assign">
+ <function name="VertexAttribLFormat">
<param name="attribindex" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="relativeoffset" type="GLuint"/>
</function>
- <function name="VertexAttribBinding" offset="assign">
+ <function name="VertexAttribBinding" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="bindingindex" type="GLuint"/>
</function>
- <function name="VertexBindingDivisor" offset="assign">
+ <function name="VertexBindingDivisor" es2="3.1">
<param name="attribindex" type="GLuint"/>
<param name="divisor" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
index 6c6090c1c..92ec6e167 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
@@ -7,244 +7,214 @@
<enum name="INT_2_10_10_10_REV" value = "0x8D9F"/>
- <function name="VertexP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP2ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP2uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="TexCoordP1ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP1ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP2ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="TexCoordP1uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP1uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP2uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="TexCoordP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoordP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP1ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP1ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP2ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP2ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP3ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP4ui" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="MultiTexCoordP1uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP1uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP2uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP2uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP3uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="MultiTexCoordP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="MultiTexCoordP4uiv" deprecated="3.1" exec="dynamic">
<param name="texture" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="NormalP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="NormalP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="GLuint"/>
</function>
- <function name="NormalP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="NormalP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="coords" type="const GLuint *"/>
</function>
- <function name="ColorP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="ColorP4ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP4ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="ColorP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="ColorP4uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="ColorP4uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="SecondaryColorP3ui" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="SecondaryColorP3ui" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="GLuint"/>
</function>
- <function name="SecondaryColorP3uiv" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="SecondaryColorP3uiv" deprecated="3.1" exec="dynamic">
<param name="type" type="GLenum"/>
<param name="color" type="const GLuint *"/>
</function>
- <function name="VertexAttribP1ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP1ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP2ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP2ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP3ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP3ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP4ui" offset="assign" exec="dynamic">
+ <function name="VertexAttribP4ui" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="GLuint"/>
</function>
- <function name="VertexAttribP1uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP1uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP2uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP2uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP3uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP3uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="VertexAttribP4uiv" offset="assign" exec="dynamic">
+ <function name="VertexAttribP4uiv" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="type" type="GLenum"/>
<param name="normalized" type="GLboolean"/>
diff --git a/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml b/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
index e1c6c2d81..b20cf612c 100644
--- a/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
+++ b/mesalib/src/mapi/glapi/gen/ARB_viewport_array.xml
@@ -21,54 +21,54 @@
<enum name="PROVOKING_VERTEX" value="0x8E4F"/>
<enum name="UNDEFINED_VERTEX" value="0x8260"/>
- <function name="ViewportArrayv" offset="assign">
+ <function name="ViewportArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="ViewportIndexedf" offset="assign">
+ <function name="ViewportIndexedf">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="w" type="GLfloat"/>
<param name="h" type="GLfloat"/>
</function>
- <function name="ViewportIndexedfv" offset="assign">
+ <function name="ViewportIndexedfv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="ScissorArrayv" offset="assign">
+ <function name="ScissorArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const int *"/>
</function>
- <function name="ScissorIndexed" offset="assign">
+ <function name="ScissorIndexed">
<param name="index" type="GLuint"/>
<param name="left" type="GLint"/>
<param name="bottom" type="GLint"/>
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
</function>
- <function name="ScissorIndexedv" offset="assign">
+ <function name="ScissorIndexedv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="DepthRangeArrayv" offset="assign">
+ <function name="DepthRangeArrayv">
<param name="first" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="v" type="const GLclampd *"/>
</function>
- <function name="DepthRangeIndexed" offset="assign">
+ <function name="DepthRangeIndexed">
<param name="index" type="GLuint"/>
<param name="n" type="GLclampd"/>
<param name="f" type="GLclampd"/>
</function>
- <function name="GetFloati_v" offset="assign">
+ <function name="GetFloati_v">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLfloat *"/>
</function>
- <function name="GetDoublei_v" offset="assign">
+ <function name="GetDoublei_v">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLdouble *"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml b/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
index 2cf75bc67..9ae029152 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_framebuffer_object.xml
@@ -78,7 +78,7 @@
<return type="GLboolean"/>
</function>
- <function name="BindRenderbufferEXT" offset="assign" deprecated="3.1">
+ <function name="BindRenderbufferEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
<glx rop="4316"/>
@@ -112,7 +112,7 @@
<return type="GLboolean"/>
</function>
- <function name="BindFramebufferEXT" offset="assign" deprecated="3.1">
+ <function name="BindFramebufferEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
<glx rop="4319"/>
@@ -186,7 +186,7 @@
<enum name="READ_FRAMEBUFFER_BINDING_EXT" count="1" value="0x8CAA">
<size name="Get" mode="get"/>
</enum>
- <function name="BlitFramebufferEXT" static_dispatch="false" alias="BlitFramebuffer">
+ <function name="BlitFramebufferEXT" alias="BlitFramebuffer">
<param name="srcX0" type="GLint"/>
<param name="srcY0" type="GLint"/>
<param name="srcX1" type="GLint"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
index d204c3fc7..b1f7eae26 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml
@@ -44,25 +44,25 @@
</enum>
- <function name="VertexAttribI1iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI1iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
</function>
- <function name="VertexAttribI2iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="VertexAttribI3iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="VertexAttribI4iEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4iEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
@@ -70,25 +70,25 @@
<param name="w" type="GLint"/>
</function>
- <function name="VertexAttribI1uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI1uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="VertexAttribI2uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="VertexAttribI3uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="VertexAttribI4uiEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4uiEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
@@ -101,17 +101,17 @@
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI2ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI3ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI4ivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4ivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
@@ -121,17 +121,17 @@
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI2uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI2uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI3uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI3uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI4uivEXT" offset="assign" exec="dynamic">
+ <function name="VertexAttribI4uivEXT" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml b/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
index eb872098d..3d1ae771e 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_provoking_vertex.xml
@@ -26,7 +26,7 @@
<enum name="PROVOKING_VERTEX" value="0x8E4F"/>
<enum name="QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION" value="0x8E4C"/>
- <function name="ProvokingVertex" offset="assign">
+ <function name="ProvokingVertex">
<param name="mode" type="GLenum"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
index c6163a193..1fa699fbc 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml
@@ -8,16 +8,16 @@
<!-- Alias of CURRENT_PROGRAM -->
<!-- <enum name="ACTIVE_PROGRAM_EXT" value="0x8B8D"/> -->
- <function name="UseShaderProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="UseShaderProgramEXT" deprecated="3.1" exec="skip">
<param name="type" type="GLenum"/>
<param name="program" type="GLuint"/>
</function>
- <function name="ActiveProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="ActiveProgramEXT" deprecated="3.1" exec="skip">
<param name="program" type="GLuint"/>
</function>
- <function name="CreateShaderProgramEXT" deprecated="3.1" offset="assign" exec="skip">
+ <function name="CreateShaderProgramEXT" deprecated="3.1" exec="skip">
<param name="type" type="GLenum"/>
<param name="string" type="const GLchar *"/>
<return type="GLuint"/>
@@ -31,65 +31,65 @@
<enum name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF"/>
<enum name="PROGRAM_SEPARABLE_EXT" value="0x8258"/>
- <function name="UseProgramStagesEXT" alias="UseProgramStages" static_dispatch="false" es2="2.0">
+ <function name="UseProgramStagesEXT" alias="UseProgramStages" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="stages" type="GLbitfield"/>
<param name="program" type="GLuint"/>
</function>
- <function name="ActiveShaderProgramEXT" alias="ActiveShaderProgram" static_dispatch="false" es2="2.0">
+ <function name="ActiveShaderProgramEXT" alias="ActiveShaderProgram" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="program" type="GLuint"/>
</function>
- <function name="CreateShaderProgramvEXT" alias="CreateShaderProgramv" static_dispatch="false" es2="2.0">
+ <function name="CreateShaderProgramvEXT" alias="CreateShaderProgramv" es2="2.0">
<param name="type" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="strings" type="const GLchar * const *"/>
<return type="GLuint"/>
</function>
- <function name="BindProgramPipelineEXT" alias="BindProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="BindProgramPipelineEXT" alias="BindProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
</function>
- <function name="DeleteProgramPipelinesEXT" alias="DeleteProgramPipelines" static_dispatch="false" es2="2.0">
+ <function name="DeleteProgramPipelinesEXT" alias="DeleteProgramPipelines" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="pipelines" type="const GLuint *"/>
</function>
- <function name="GenProgramPipelinesEXT" alias="GenProgramPipelines" static_dispatch="false" es2="2.0">
+ <function name="GenProgramPipelinesEXT" alias="GenProgramPipelines" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="pipelines" type="GLuint *"/>
</function>
- <function name="IsProgramPipelineEXT" alias="IsProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="IsProgramPipelineEXT" alias="IsProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="ProgramParameteriEXT" alias="ProgramParameteri" static_dispatch="false" es2="2.0">
+ <function name="ProgramParameteriEXT" alias="ProgramParameteri" es2="2.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="value" type="GLint"/>
</function>
- <function name="GetProgramPipelineivEXT" alias="GetProgramPipelineiv" static_dispatch="false" es2="2.0">
+ <function name="GetProgramPipelineivEXT" alias="GetProgramPipelineiv" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="ProgramUniform1iEXT" alias="ProgramUniform1i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1iEXT" alias="ProgramUniform1i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
</function>
- <function name="ProgramUniform2iEXT" alias="ProgramUniform2i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2iEXT" alias="ProgramUniform2i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="ProgramUniform3iEXT" alias="ProgramUniform3i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3iEXT" alias="ProgramUniform3i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="ProgramUniform4iEXT" alias="ProgramUniform4i" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4iEXT" alias="ProgramUniform4i" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLint"/>
@@ -97,25 +97,25 @@
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="ProgramUniform1uiEXT" alias="ProgramUniform1ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform1uiEXT" alias="ProgramUniform1ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="ProgramUniform2uiEXT" alias="ProgramUniform2ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform2uiEXT" alias="ProgramUniform2ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="ProgramUniform3uiEXT" alias="ProgramUniform3ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform3uiEXT" alias="ProgramUniform3ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="ProgramUniform4uiEXT" alias="ProgramUniform4ui" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform4uiEXT" alias="ProgramUniform4ui" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
@@ -123,25 +123,25 @@
<param name="z" type="GLuint"/>
<param name="w" type="GLuint"/>
</function>
- <function name="ProgramUniform1fEXT" alias="ProgramUniform1f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1fEXT" alias="ProgramUniform1f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="ProgramUniform2fEXT" alias="ProgramUniform2f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2fEXT" alias="ProgramUniform2f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="ProgramUniform3fEXT" alias="ProgramUniform3f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3fEXT" alias="ProgramUniform3f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="ProgramUniform4fEXT" alias="ProgramUniform4f" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4fEXT" alias="ProgramUniform4f" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="x" type="GLfloat"/>
@@ -149,145 +149,145 @@
<param name="z" type="GLfloat"/>
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramUniform1ivEXT" alias="ProgramUniform1iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1ivEXT" alias="ProgramUniform1iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform2ivEXT" alias="ProgramUniform2iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2ivEXT" alias="ProgramUniform2iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform3ivEXT" alias="ProgramUniform3iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3ivEXT" alias="ProgramUniform3iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform4ivEXT" alias="ProgramUniform4iv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4ivEXT" alias="ProgramUniform4iv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ProgramUniform1uivEXT" alias="ProgramUniform1uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform1uivEXT" alias="ProgramUniform1uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform2uivEXT" alias="ProgramUniform2uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform2uivEXT" alias="ProgramUniform2uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform3uivEXT" alias="ProgramUniform3uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform3uivEXT" alias="ProgramUniform3uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform4uivEXT" alias="ProgramUniform4uiv" static_dispatch="false" es2="3.0">
+ <function name="ProgramUniform4uivEXT" alias="ProgramUniform4uiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ProgramUniform1fvEXT" alias="ProgramUniform1fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform1fvEXT" alias="ProgramUniform1fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform2fvEXT" alias="ProgramUniform2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform2fvEXT" alias="ProgramUniform2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform3fvEXT" alias="ProgramUniform3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform3fvEXT" alias="ProgramUniform3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniform4fvEXT" alias="ProgramUniform4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniform4fvEXT" alias="ProgramUniform4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2fvEXT" alias="ProgramUniformMatrix2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2fvEXT" alias="ProgramUniformMatrix2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3fvEXT" alias="ProgramUniformMatrix3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3fvEXT" alias="ProgramUniformMatrix3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4fvEXT" alias="ProgramUniformMatrix4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4fvEXT" alias="ProgramUniformMatrix4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2x3fvEXT" alias="ProgramUniformMatrix2x3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2x3fvEXT" alias="ProgramUniformMatrix2x3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3x2fvEXT" alias="ProgramUniformMatrix3x2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3x2fvEXT" alias="ProgramUniformMatrix3x2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix2x4fvEXT" alias="ProgramUniformMatrix2x4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix2x4fvEXT" alias="ProgramUniformMatrix2x4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4x2fvEXT" alias="ProgramUniformMatrix4x2fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4x2fvEXT" alias="ProgramUniformMatrix4x2fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix3x4fvEXT" alias="ProgramUniformMatrix3x4fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix3x4fvEXT" alias="ProgramUniformMatrix3x4fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ProgramUniformMatrix4x3fvEXT" alias="ProgramUniformMatrix4x3fv" static_dispatch="false" es2="2.0">
+ <function name="ProgramUniformMatrix4x3fvEXT" alias="ProgramUniformMatrix4x3fv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ValidateProgramPipelineEXT" alias="ValidateProgramPipeline" static_dispatch="false" es2="2.0">
+ <function name="ValidateProgramPipelineEXT" alias="ValidateProgramPipeline" es2="2.0">
<param name="pipeline" type="GLuint"/>
</function>
- <function name="GetProgramPipelineInfoLogEXT" alias="GetProgramPipelineInfoLog" static_dispatch="false" es2="2.0">
+ <function name="GetProgramPipelineInfoLogEXT" alias="GetProgramPipelineInfoLog" es2="2.0">
<param name="pipeline" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
index aca21f4b1..5f9ea2963 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml
@@ -55,14 +55,14 @@
<enum name="LUMINANCE_INTEGER_EXT" value="0x8D9C"/>
<enum name="LUMINANCE_ALPHA_INTEGER_EXT" value="0x8D9D"/>
- <function name="ClearColorIiEXT" offset="assign">
+ <function name="ClearColorIiEXT">
<param name="r" type="GLint"/>
<param name="g" type="GLint"/>
<param name="b" type="GLint"/>
<param name="a" type="GLint"/>
</function>
- <function name="ClearColorIuiEXT" offset="assign">
+ <function name="ClearColorIuiEXT">
<param name="r" type="GLuint"/>
<param name="g" type="GLuint"/>
<param name="b" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
index 65259fc1f..2aa26ad72 100644
--- a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
+++ b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml
@@ -32,7 +32,7 @@
<param name="size" type="GLsizeiptr"/>
</function>
- <function name="BindBufferOffsetEXT" offset="assign">
+ <function name="BindBufferOffsetEXT">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
@@ -82,33 +82,33 @@
<enum name="TRANSFORM_FEEDBACK_BUFFER_ACTIVE" value="0x8E24"/>
<enum name="TRANSFORM_FEEDBACK_BINDING" value="0x8E25"/>
- <function name="BindTransformFeedback" offset="assign" es2="3.0">
+ <function name="BindTransformFeedback" es2="3.0">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
</function>
- <function name="DeleteTransformFeedbacks" offset="assign" es2="3.0">
+ <function name="DeleteTransformFeedbacks" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="ids" type="const GLuint *"/>
</function>
- <function name="GenTransformFeedbacks" offset="assign" es2="3.0">
+ <function name="GenTransformFeedbacks" es2="3.0">
<param name="n" type="GLsizei"/>
<param name="ids" type="GLuint *"/>
</function>
- <function name="IsTransformFeedback" offset="assign" es2="3.0">
+ <function name="IsTransformFeedback" es2="3.0">
<param name="id" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="PauseTransformFeedback" offset="assign" es2="3.0">
+ <function name="PauseTransformFeedback" es2="3.0">
</function>
- <function name="ResumeTransformFeedback" offset="assign" es2="3.0">
+ <function name="ResumeTransformFeedback" es2="3.0">
</function>
- <function name="DrawTransformFeedback" offset="assign" exec="dynamic">
+ <function name="DrawTransformFeedback" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml
index 5078f7b6d..7919d6577 100644
--- a/mesalib/src/mapi/glapi/gen/GL3x.xml
+++ b/mesalib/src/mapi/glapi/gen/GL3x.xml
@@ -119,38 +119,38 @@
<!-- These functions are unique to GL3 -->
- <function name="ClearBufferiv" offset="assign" es2="3.0">
+ <function name="ClearBufferiv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLint *"/>
</function>
- <function name="ClearBufferuiv" offset="assign" es2="3.0">
+ <function name="ClearBufferuiv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLuint *"/>
</function>
- <function name="ClearBufferfv" offset="assign" es2="3.0">
+ <function name="ClearBufferfv" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="value" type="const GLfloat *"/>
</function>
- <function name="ClearBufferfi" offset="assign" es2="3.0">
+ <function name="ClearBufferfi" es2="3.0">
<param name="buffer" type="GLenum"/>
<param name="drawbuffer" type="GLint"/>
<param name="depth" type="GLfloat"/>
<param name="stencil" type="GLint"/>
</function>
- <function name="GetStringi" offset="assign" es2="3.0">
+ <function name="GetStringi" es2="3.0">
<param name="name" type="GLenum"/>
<param name="index" type="GLuint"/>
<return type="const GLubyte *"/>
</function>
- <function name="ClampColor" offset="assign">
+ <function name="ClampColor">
<param name="target" type="GLenum"/>
<param name="clamp" type="GLenum"/>
<glx rop="234"/>
@@ -158,7 +158,7 @@
<!-- These functions alias ones form GL_ARB_draw_buffers2 -->
- <function name="ColorMaski" offset="assign">
+ <function name="ColorMaski">
<param name="buf" type="GLuint"/>
<param name="r" type="GLboolean"/>
<param name="g" type="GLboolean"/>
@@ -166,29 +166,29 @@
<param name="a" type="GLboolean"/>
</function>
- <function name="GetBooleani_v" offset="assign">
+ <function name="GetBooleani_v" es2="3.1">
<param name="value" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLboolean *"/>
</function>
- <function name="GetIntegeri_v" es2="3.0" offset="assign">
+ <function name="GetIntegeri_v" es2="3.0">
<param name="value" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLint *"/>
</function>
- <function name="Enablei" offset="assign">
+ <function name="Enablei">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="Disablei" offset="assign">
+ <function name="Disablei">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="IsEnabledi" offset="assign">
+ <function name="IsEnabledi">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<return type="GLboolean"/>
@@ -196,26 +196,26 @@
<!-- These functions alias ones form GL_EXT_transform_feedback -->
- <function name="GetFragDataLocation" es2="3.0" offset="assign">
+ <function name="GetFragDataLocation" es2="3.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
</function>
- <function name="BindFragDataLocation" offset="assign">
+ <function name="BindFragDataLocation">
<param name="program" type="GLuint"/>
<param name="colorNumber" type="GLuint"/>
<param name="name" type="const GLchar *"/>
</function>
- <function name="BeginTransformFeedback" es2="3.0" offset="assign">
+ <function name="BeginTransformFeedback" es2="3.0">
<param name="mode" type="GLenum"/>
</function>
- <function name="EndTransformFeedback" es2="3.0" offset="assign">
+ <function name="EndTransformFeedback" es2="3.0">
</function>
- <function name="BindBufferRange" es2="3.0" offset="assign">
+ <function name="BindBufferRange" es2="3.0">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
@@ -223,20 +223,20 @@
<param name="size" type="GLsizeiptr"/>
</function>
- <function name="BindBufferBase" es2="3.0" offset="assign">
+ <function name="BindBufferBase" es2="3.0">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="buffer" type="GLuint"/>
</function>
- <function name="TransformFeedbackVaryings" es2="3.0" offset="assign">
+ <function name="TransformFeedbackVaryings" es2="3.0">
<param name="program" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="varyings" type="const GLchar * const *"/>
<param name="bufferMode" type="GLenum"/>
</function>
- <function name="GetTransformFeedbackVarying" es2="3.0" offset="assign">
+ <function name="GetTransformFeedbackVarying" es2="3.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -248,17 +248,17 @@
<!-- These functions alias ones from GL_NV_conditional_render -->
- <function name="BeginConditionalRender" offset="assign">
+ <function name="BeginConditionalRender">
<param name="query" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="EndConditionalRender" offset="assign">
+ <function name="EndConditionalRender">
</function>
<!-- These functions alias ones from GL_EXT_gpu_shader4 -->
- <function name="VertexAttribIPointer" es2="3.0" offset="assign">
+ <function name="VertexAttribIPointer" es2="3.0">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -266,13 +266,13 @@
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="GetVertexAttribIiv" es2="3.0" offset="assign">
+ <function name="GetVertexAttribIiv" es2="3.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetVertexAttribIuiv" es2="3.0" offset="assign">
+ <function name="GetVertexAttribIuiv" es2="3.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
@@ -330,7 +330,7 @@
<param name="w" type="GLuint"/>
</function>
- <function name="VertexAttribI1iv" offset="assign">
+ <function name="VertexAttribI1iv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *"/>
</function>
@@ -350,7 +350,7 @@
<param name="v" type="const GLint *"/>
</function>
- <function name="VertexAttribI1uiv" offset="assign">
+ <function name="VertexAttribI1uiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *"/>
</function>
@@ -370,51 +370,51 @@
<param name="v" type="const GLuint *"/>
</function>
- <function name="VertexAttribI4bv" offset="assign">
+ <function name="VertexAttribI4bv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *"/>
</function>
- <function name="VertexAttribI4sv" offset="assign">
+ <function name="VertexAttribI4sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *"/>
</function>
- <function name="VertexAttribI4ubv" offset="assign">
+ <function name="VertexAttribI4ubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *"/>
</function>
- <function name="VertexAttribI4usv" offset="assign">
+ <function name="VertexAttribI4usv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *"/>
</function>
- <function name="GetUniformuiv" es2="3.0" offset="assign">
+ <function name="GetUniformuiv" es2="3.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLuint *"/>
</function>
- <function name="Uniform1ui" es2="3.0" offset="assign">
+ <function name="Uniform1ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
</function>
- <function name="Uniform2ui" es2="3.0" offset="assign">
+ <function name="Uniform2ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
</function>
- <function name="Uniform3ui" es2="3.0" offset="assign">
+ <function name="Uniform3ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
<param name="z" type="GLuint"/>
</function>
- <function name="Uniform4ui" es2="3.0" offset="assign">
+ <function name="Uniform4ui" es2="3.0">
<param name="location" type="GLint"/>
<param name="x" type="GLuint"/>
<param name="y" type="GLuint"/>
@@ -422,25 +422,25 @@
<param name="w" type="GLuint"/>
</function>
- <function name="Uniform1uiv" es2="3.0" offset="assign">
+ <function name="Uniform1uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count"/>
</function>
- <function name="Uniform2uiv" es2="3.0" offset="assign">
+ <function name="Uniform2uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="2"/>
</function>
- <function name="Uniform3uiv" es2="3.0" offset="assign">
+ <function name="Uniform3uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="3"/>
</function>
- <function name="Uniform4uiv" es2="3.0" offset="assign">
+ <function name="Uniform4uiv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLuint *" count="count" count_scale="4"/>
@@ -448,25 +448,25 @@
<!-- These functions alias ones from GL_EXT_texture_integer -->
- <function name="TexParameterIiv" offset="assign">
+ <function name="TexParameterIiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="TexParameterIuiv" offset="assign">
+ <function name="TexParameterIuiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLuint *"/>
</function>
- <function name="GetTexParameterIiv" offset="assign">
+ <function name="GetTexParameterIiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
</function>
- <function name="GetTexParameterIuiv" offset="assign">
+ <function name="GetTexParameterIuiv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *"/>
@@ -557,13 +557,13 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="TexBuffer" offset="assign">
+ <function name="TexBuffer">
<param name="target" type="GLenum"/>
<param name="internalFormat" type="GLenum"/>
<param name="buffer" type="GLuint"/>
</function>
- <function name="PrimitiveRestartIndex" offset="assign">
+ <function name="PrimitiveRestartIndex">
<param name="index" type="GLuint"/>
</function>
@@ -595,19 +595,19 @@
<enum name="MAX_FRAGMENT_INPUT_COMPONENTS" value="0x9125"/>
<enum name="CONTEXT_PROFILE_MASK" value="0x9126"/>
- <function name="GetInteger64i_v" offset="assign" es2="3.0">
+ <function name="GetInteger64i_v" es2="3.0">
<param name="cap" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="data" type="GLint64 *"/>
</function>
- <function name="GetBufferParameteri64v" offset="assign" es2="3.0">
+ <function name="GetBufferParameteri64v" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *"/>
</function>
- <function name="FramebufferTexture" offset="assign">
+ <function name="FramebufferTexture">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="texture" type="GLuint"/>
@@ -625,7 +625,7 @@
<enum name="TEXTURE_SWIZZLE_A" value="0x8E45"/>
<enum name="TEXTURE_SWIZZLE_RGBA" value="0x8E46"/>
- <function name="VertexAttribDivisor" offset="assign" es2="3.0">
+ <function name="VertexAttribDivisor" es2="3.0">
<param name="index" type="GLuint"/>
<param name="divisor" type="GLuint"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/GL4x.xml b/mesalib/src/mapi/glapi/gen/GL4x.xml
index 848316e9e..94ddfb729 100644
--- a/mesalib/src/mapi/glapi/gen/GL4x.xml
+++ b/mesalib/src/mapi/glapi/gen/GL4x.xml
@@ -9,17 +9,17 @@
<enum name="SAMPLE_SHADING" value="0x8C36"/>
<enum name="MIN_SAMPLE_SHADING_VALUE" value="0x8C37"/>
- <function name="MinSampleShading" offset="assign">
+ <function name="MinSampleShading">
<param name="value" type="GLfloat"/>
</function>
- <function name="BlendFunci" static_dispatch="false" alias="BlendFunciARB">
+ <function name="BlendFunci" alias="BlendFunciARB">
<param name="buf" type="GLuint"/>
<param name="sfactor" type="GLenum"/>
<param name="dfactor" type="GLenum"/>
</function>
- <function name="BlendFuncSeparatei" static_dispatch="false" alias="BlendFuncSeparateiARB">
+ <function name="BlendFuncSeparatei" alias="BlendFuncSeparateiARB">
<param name="buf" type="GLuint"/>
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
@@ -27,12 +27,12 @@
<param name="dfactorAlpha" type="GLenum"/>
</function>
- <function name="BlendEquationi" static_dispatch="false" alias="BlendEquationiARB">
+ <function name="BlendEquationi" alias="BlendEquationiARB">
<param name="buf" type="GLuint"/>
<param name="mode" type="GLenum"/>
</function>
- <function name="BlendEquationSeparatei" static_dispatch="false" alias="BlendEquationSeparateiARB" >
+ <function name="BlendEquationSeparatei" alias="BlendEquationSeparateiARB" >
<param name="buf" type="GLuint"/>
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
diff --git a/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml b/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
index 25cd1817f..9573cb1bd 100644
--- a/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
+++ b/mesalib/src/mapi/glapi/gen/INTEL_performance_query.xml
@@ -5,21 +5,21 @@
<category name="GL_INTEL_performance_query" number="443">
- <function name="GetFirstPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetFirstPerfQueryIdINTEL" es2="2.0">
<param name="queryId" type="GLuint *"/>
</function>
- <function name="GetNextPerfQueryIdINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetNextPerfQueryIdINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="nextQueryId" type="GLuint *"/>
</function>
- <function name="GetPerfQueryIdByNameINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryIdByNameINTEL" es2="2.0">
<param name="queryName" type="GLchar *"/>
<param name="queryId" type="GLuint *"/>
</function>
- <function name="GetPerfQueryInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryInfoINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="queryNameLength" type="GLuint"/>
<param name="queryName" type="GLchar *"/>
@@ -29,7 +29,7 @@
<param name="capsMask" type="GLuint *"/>
</function>
- <function name="GetPerfCounterInfoINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfCounterInfoINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="counterId" type="GLuint"/>
<param name="counterNameLength" type="GLuint"/>
@@ -43,24 +43,24 @@
<param name="rawCounterMaxValue" type="GLuint64 *"/>
</function>
- <function name="CreatePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="CreatePerfQueryINTEL" es2="2.0">
<param name="queryId" type="GLuint"/>
<param name="queryHandle" type="GLuint *"/>
</function>
- <function name="DeletePerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="DeletePerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="BeginPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="BeginPerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="EndPerfQueryINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="EndPerfQueryINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
</function>
- <function name="GetPerfQueryDataINTEL" offset="assign" static_dispatch="false" es2="2.0">
+ <function name="GetPerfQueryDataINTEL" es2="2.0">
<param name="queryHandle" type="GLuint"/>
<param name="flags" type="GLuint"/>
<param name="dataSize" type="GLsizei"/>
diff --git a/mesalib/src/mapi/glapi/gen/KHR_debug.xml b/mesalib/src/mapi/glapi/gen/KHR_debug.xml
index 48f7fa762..77956d61e 100644
--- a/mesalib/src/mapi/glapi/gen/KHR_debug.xml
+++ b/mesalib/src/mapi/glapi/gen/KHR_debug.xml
@@ -73,7 +73,7 @@
<!-- Compatibility Profile -->
<enum name="DISPLAY_LIST" value="0x82E7"/>
- <function name="DebugMessageControl" offset="assign">
+ <function name="DebugMessageControl">
<param name="source" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="severity" type="GLenum"/>
@@ -82,7 +82,7 @@
<param name="enabled" type="GLboolean"/>
</function>
- <function name="DebugMessageInsert" offset="assign">
+ <function name="DebugMessageInsert">
<param name="source" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="id" type="GLuint"/>
@@ -91,12 +91,12 @@
<param name="buf" type="const GLchar *"/>
</function>
- <function name="DebugMessageCallback" offset="assign">
+ <function name="DebugMessageCallback">
<param name="callback" type="GLDEBUGPROC"/>
<param name="userParam" type="const GLvoid *"/>
</function>
- <function name="GetDebugMessageLog" offset="assign">
+ <function name="GetDebugMessageLog">
<return type="GLuint"/>
<param name="count" type="GLuint"/>
<param name="bufsize" type="GLsizei"/>
@@ -108,23 +108,23 @@
<param name="messageLog" type="GLchar *" output="true"/>
</function>
- <function name="PushDebugGroup" offset="assign">
+ <function name="PushDebugGroup">
<param name="source" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="length" type="GLsizei"/>
<param name="message" type="const GLchar *"/>
</function>
- <function name="PopDebugGroup" offset="assign"/>
+ <function name="PopDebugGroup" />
- <function name="ObjectLabel" offset="assign">
+ <function name="ObjectLabel">
<param name="identifier" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="length" type="GLsizei"/>
<param name="label" type="const GLchar *"/>
</function>
- <function name="GetObjectLabel" offset="assign">
+ <function name="GetObjectLabel">
<param name="identifier" type="GLenum"/>
<param name="name" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -132,13 +132,13 @@
<param name="label" type="GLchar *"/>
</function>
- <function name="ObjectPtrLabel" offset="assign">
+ <function name="ObjectPtrLabel">
<param name="ptr" type="const GLvoid *"/>
<param name="length" type="GLsizei"/>
<param name="label" type="const GLchar *"/>
</function>
- <function name="GetObjectPtrLabel" offset="assign">
+ <function name="GetObjectPtrLabel">
<param name="ptr" type="const GLvoid *"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
diff --git a/mesalib/src/mapi/glapi/gen/Makefile.am b/mesalib/src/mapi/glapi/gen/Makefile.am
index c8d417468..34602579c 100644
--- a/mesalib/src/mapi/glapi/gen/Makefile.am
+++ b/mesalib/src/mapi/glapi/gen/Makefile.am
@@ -61,6 +61,7 @@ EXTRA_DIST= \
$(MESA_GLAPI_DIR)/glapi_x86-64.S \
$(MESA_GLAPI_DIR)/glapi_sparc.S \
$(COMMON_GLX) \
+ apiexec.py \
gl_apitemp.py \
gl_enums.py \
gl_genexec.py \
@@ -75,6 +76,7 @@ EXTRA_DIST= \
glX_proto_size.py \
glX_server_table.py \
remap_helper.py \
+ static_data.py \
SConscript \
gl_API.dtd
@@ -140,6 +142,7 @@ API_XML = \
ARB_map_buffer_range.xml \
ARB_multi_bind.xml \
ARB_pipeline_statistics_query.xml \
+ ARB_program_interface_query.xml \
ARB_robustness.xml \
ARB_sample_shading.xml \
ARB_sampler_objects.xml \
@@ -197,6 +200,7 @@ COMMON = $(API_XML) \
gl_XML.py \
glX_XML.py \
license.py \
+ static_data.py \
typeexpr.py
COMMON_GLX = $(COMMON) glX_API.xml glX_XML.py glX_proto_common.py
@@ -264,7 +268,7 @@ $(MESA_GLAPI_DIR)/glapi_sparc.S: gl_SPARC_asm.py $(COMMON)
$(MESA_DIR)/main/enums.c: gl_enums.py $(COMMON)
$(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@
-$(MESA_DIR)/main/api_exec.c: gl_genexec.py $(COMMON)
+$(MESA_DIR)/main/api_exec.c: gl_genexec.py apiexec.py $(COMMON)
$(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@
$(MESA_DIR)/main/dispatch.h: gl_table.py $(COMMON)
@@ -287,7 +291,7 @@ $(MESA_GLX_DIR)/indirect_init.c: glX_proto_send.py $(COMMON_GLX)
$(MESA_GLX_DIR)/indirect_size.h $(XORG_GLX_DIR)/indirect_size.h: glX_proto_size.py $(COMMON_GLX)
$(PYTHON_GEN) $< -f $(srcdir)/gl_API.xml -m size_h --only-set \
- -h _INDIRECT_SIZE_H_ \
+ --header-tag _INDIRECT_SIZE_H_ \
| $(INDENT) $(INDENT_FLAGS) > $@
$(MESA_GLX_DIR)/indirect_size.c: glX_proto_size.py $(COMMON_GLX)
diff --git a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
index 39edafe31..232665236 100644
--- a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml
@@ -11,9 +11,7 @@
<enum name="PRIMITIVE_RESTART_NV" value="0x8558"/>
<enum name="PRIMITIVE_RESTART_INDEX_NV" value="0x8559"/>
- <function name="PrimitiveRestartNV" offset="assign" deprecated="3.1"
- exec="dynamic">
- </function>
+ <function name="PrimitiveRestartNV" deprecated="3.1" exec="dynamic"/>
<function name="PrimitiveRestartIndexNV" alias="PrimitiveRestartIndex">
<param name="index" type="GLuint"/>
diff --git a/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml b/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
index 52b1a3c08..b4c361cc3 100644
--- a/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_texture_barrier.xml
@@ -7,7 +7,7 @@
<OpenGLAPI>
<category name="GL_NV_texture_barrier" number="381">
- <function name="TextureBarrierNV" offset="assign" />
+ <function name="TextureBarrierNV"/>
</category>
</OpenGLAPI>
diff --git a/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml b/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
index 0b19e1a85..ceef7bdc9 100644
--- a/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
+++ b/mesalib/src/mapi/glapi/gen/NV_vdpau_interop.xml
@@ -5,14 +5,14 @@
<category name="GL_NV_vdpau_interop" number="396">
- <function name="VDPAUInitNV" offset="assign">
+ <function name="VDPAUInitNV">
<param name="vdpDevice" type="const GLvoid *"/>
<param name="getProcAddress" type="const GLvoid *"/>
</function>
- <function name="VDPAUFiniNV" offset="assign"/>
+ <function name="VDPAUFiniNV"/>
- <function name="VDPAURegisterVideoSurfaceNV" offset="assign">
+ <function name="VDPAURegisterVideoSurfaceNV">
<return type="GLintptr"/>
<param name="vdpSurface" type="const GLvoid *"/>
<param name="target" type="GLenum"/>
@@ -20,7 +20,7 @@
<param name="textureNames" type="const GLuint *"/>
</function>
- <function name="VDPAURegisterOutputSurfaceNV" offset="assign">
+ <function name="VDPAURegisterOutputSurfaceNV">
<return type="GLintptr"/>
<param name="vdpSurface" type="const GLvoid *"/>
<param name="target" type="GLenum"/>
@@ -28,16 +28,16 @@
<param name="textureNames" type="const GLuint *"/>
</function>
- <function name="VDPAUIsSurfaceNV" offset="assign">
+ <function name="VDPAUIsSurfaceNV">
<return type="GLboolean"/>
<param name="surface" type="GLintptr"/>
</function>
- <function name="VDPAUUnregisterSurfaceNV" offset="assign">
+ <function name="VDPAUUnregisterSurfaceNV">
<param name="surface" type="GLintptr"/>
</function>
- <function name="VDPAUGetSurfaceivNV" offset="assign">
+ <function name="VDPAUGetSurfaceivNV">
<param name="surface" type="GLintptr"/>
<param name="pname" type="GLenum"/>
<param name="bufSize" type="GLsizei"/>
@@ -45,17 +45,17 @@
<param name="values" type="GLint *"/>
</function>
- <function name="VDPAUSurfaceAccessNV" offset="assign">
+ <function name="VDPAUSurfaceAccessNV">
<param name="surface" type="GLintptr"/>
<param name="access" type="GLenum"/>
</function>
- <function name="VDPAUMapSurfacesNV" offset="assign">
+ <function name="VDPAUMapSurfacesNV">
<param name="numSurfaces" type="GLsizei"/>
<param name="surfaces" type="const GLintptr *"/>
</function>
- <function name="VDPAUUnmapSurfacesNV" offset="assign">
+ <function name="VDPAUUnmapSurfacesNV">
<param name="numSurfaces" type="GLsizei"/>
<param name="surfaces" type="const GLintptr *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml b/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
index a995cad6c..c483e91f1 100644
--- a/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_EGL_image.xml
@@ -5,14 +5,12 @@
<category name="GL_OES_EGL_image">
- <function name="EGLImageTargetTexture2DOES" offset="assign" es1="1.0"
- es2="2.0">
+ <function name="EGLImageTargetTexture2DOES" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="writeOffset" type="GLvoid *"/>
</function>
- <function name="EGLImageTargetRenderbufferStorageOES" offset="assign"
- es1="1.0" es2="2.0">
+ <function name="EGLImageTargetRenderbufferStorageOES" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="writeOffset" type="GLvoid *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
index d62d6e2ec..edd0acdba 100644
--- a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml
@@ -13,52 +13,45 @@
<type name="clampx" size="4" />
<!-- OpenGL ES 1.0 -->
- <function name="AlphaFuncxOES" static_dispatch="false"
- es1="1.0" alias="AlphaFuncx">
+ <function name="AlphaFuncxOES" es1="1.0" alias="AlphaFuncx">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampx"/>
</function>
- <function name="ClearColorxOES" static_dispatch="false"
- es1="1.0" alias="ClearColorx">
+ <function name="ClearColorxOES" es1="1.0" alias="ClearColorx">
<param name="red" type="GLclampx"/>
<param name="green" type="GLclampx"/>
<param name="blue" type="GLclampx"/>
<param name="alpha" type="GLclampx"/>
</function>
- <function name="ClearDepthxOES" static_dispatch="false"
- es1="1.0" alias="ClearDepthx">
+ <function name="ClearDepthxOES" es1="1.0" alias="ClearDepthx">
<param name="depth" type="GLclampx"/>
</function>
- <function name="Color4xOES" static_dispatch="false"
- es1="1.0" alias="Color4x">
+ <function name="Color4xOES" es1="1.0" alias="Color4x">
<param name="red" type="GLfixed"/>
<param name="green" type="GLfixed"/>
<param name="blue" type="GLfixed"/>
<param name="alpha" type="GLfixed"/>
</function>
- <function name="DepthRangexOES" static_dispatch="false"
- es1="1.0" alias="DepthRangex">
+ <function name="DepthRangexOES" es1="1.0" alias="DepthRangex">
<param name="zNear" type="GLclampx"/>
<param name="zFar" type="GLclampx"/>
</function>
- <function name="FogxOES" static_dispatch="false" es1="1.0" alias="Fogx">
+ <function name="FogxOES" es1="1.0" alias="Fogx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="FogxvOES" static_dispatch="false"
- es1="1.0" alias="Fogxv">
+ <function name="FogxvOES" es1="1.0" alias="Fogxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="FrustumxOES" static_dispatch="false"
- es1="1.0" alias="Frustumx">
+ <function name="FrustumxOES" es1="1.0" alias="Frustumx">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -67,63 +60,53 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="LightModelxOES" static_dispatch="false"
- es1="1.0" alias="LightModelx">
+ <function name="LightModelxOES" es1="1.0" alias="LightModelx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightModelxvOES" static_dispatch="false"
- es1="1.0" alias="LightModelxv">
+ <function name="LightModelxvOES" es1="1.0" alias="LightModelxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="LightxOES" static_dispatch="false"
- es1="1.0" alias="Lightx">
+ <function name="LightxOES" es1="1.0" alias="Lightx">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightxvOES" static_dispatch="false"
- es1="1.0" alias="Lightxv">
+ <function name="LightxvOES" es1="1.0" alias="Lightxv">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="LineWidthxOES" static_dispatch="false"
- es1="1.0" alias="LineWidthx">
+ <function name="LineWidthxOES" es1="1.0" alias="LineWidthx">
<param name="width" type="GLfixed"/>
</function>
- <function name="LoadMatrixxOES" static_dispatch="false"
- es1="1.0" alias="LoadMatrixx">
+ <function name="LoadMatrixxOES" es1="1.0" alias="LoadMatrixx">
<param name="m" type="const GLfixed *"/>
</function>
- <function name="MaterialxOES" static_dispatch="false"
- es1="1.0" alias="Materialx">
+ <function name="MaterialxOES" es1="1.0" alias="Materialx">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="MaterialxvOES" static_dispatch="false"
- es1="1.0" alias="Materialxv">
+ <function name="MaterialxvOES" es1="1.0" alias="Materialxv">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="MultMatrixxOES" static_dispatch="false"
- es1="1.0" alias="MultMatrixx">
+ <function name="MultMatrixxOES" es1="1.0" alias="MultMatrixx">
<param name="m" type="const GLfixed *"/>
</function>
- <function name="MultiTexCoord4xOES" static_dispatch="false"
- es1="1.0" alias="MultiTexCoord4x">
+ <function name="MultiTexCoord4xOES" es1="1.0" alias="MultiTexCoord4x">
<param name="target" type="GLenum"/>
<param name="s" type="GLfixed"/>
<param name="t" type="GLfixed"/>
@@ -131,15 +114,13 @@
<param name="q" type="GLfixed"/>
</function>
- <function name="Normal3xOES" static_dispatch="false"
- es1="1.0" alias="Normal3x">
+ <function name="Normal3xOES" es1="1.0" alias="Normal3x">
<param name="nx" type="GLfixed"/>
<param name="ny" type="GLfixed"/>
<param name="nz" type="GLfixed"/>
</function>
- <function name="OrthoxOES" static_dispatch="false"
- es1="1.0" alias="Orthox">
+ <function name="OrthoxOES" es1="1.0" alias="Orthox">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -148,149 +129,129 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="PointSizexOES" static_dispatch="false"
- es1="1.0" alias="PointSizex">
+ <function name="PointSizexOES" es1="1.0" alias="PointSizex">
<param name="size" type="GLfixed"/>
</function>
- <function name="PolygonOffsetxOES" static_dispatch="false"
- es1="1.0" alias="PolygonOffsetx">
+ <function name="PolygonOffsetxOES" es1="1.0" alias="PolygonOffsetx">
<param name="factor" type="GLfixed"/>
<param name="units" type="GLfixed"/>
</function>
- <function name="RotatexOES" static_dispatch="false"
- es1="1.0" alias="Rotatex">
+ <function name="RotatexOES" es1="1.0" alias="Rotatex">
<param name="angle" type="GLfixed"/>
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="SampleCoveragexOES" static_dispatch="false"
- es1="1.0" alias="SampleCoveragex">
+ <function name="SampleCoveragexOES" es1="1.0" alias="SampleCoveragex">
<param name="value" type="GLclampx"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="ScalexOES" static_dispatch="false"
- es1="1.0" alias="Scalex">
+ <function name="ScalexOES" es1="1.0" alias="Scalex">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="TexEnvxOES" static_dispatch="false"
- es1="1.0" alias="TexEnvx">
+ <function name="TexEnvxOES" es1="1.0" alias="TexEnvx">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TexEnvxvOES" static_dispatch="false"
- es1="1.0" alias="TexEnvxv">
+ <function name="TexEnvxvOES" es1="1.0" alias="TexEnvxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxOES" static_dispatch="false"
- es1="1.0" alias="TexParameterx">
+ <function name="TexParameterxOES" es1="1.0" alias="TexParameterx">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TranslatexOES" static_dispatch="false"
- es1="1.0" alias="Translatex">
+ <function name="TranslatexOES" es1="1.0" alias="Translatex">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
<!-- OpenGL ES 1.1 -->
- <function name="ClipPlanexOES" static_dispatch="false"
- es1="1.0" alias="ClipPlanex">
+ <function name="ClipPlanexOES" es1="1.0" alias="ClipPlanex">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfixed *"/>
</function>
- <function name="GetClipPlanexOES" static_dispatch="false"
+ <function name="GetClipPlanexOES"
es1="1.0" desktop="false" alias="GetClipPlanex">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfixed *"/>
</function>
- <function name="GetFixedvOES" static_dispatch="false"
- es1="1.0" alias="GetFixedv">
+ <function name="GetFixedvOES" es1="1.0" alias="GetFixedv">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetLightxvOES" static_dispatch="false"
- es1="1.0" alias="GetLightxv">
+ <function name="GetLightxvOES" es1="1.0" alias="GetLightxv">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetMaterialxvOES" static_dispatch="false"
- es1="1.0" alias="GetMaterialxv">
+ <function name="GetMaterialxvOES" es1="1.0" alias="GetMaterialxv">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetTexEnvxvOES" static_dispatch="false"
- es1="1.0" alias="GetTexEnvxv">
+ <function name="GetTexEnvxvOES" es1="1.0" alias="GetTexEnvxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="GetTexParameterxvOES"
- static_dispatch="false" es1="1.0" alias="GetTexParameterxv">
+ <function name="GetTexParameterxvOES" es1="1.0" alias="GetTexParameterxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *"/>
</function>
- <function name="PointParameterxOES" static_dispatch="false"
- es1="1.0" alias="PointParameterx">
+ <function name="PointParameterxOES" es1="1.0" alias="PointParameterx">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="PointParameterxvOES"
- static_dispatch="false" es1="1.0" alias="PointParameterxv">
+ <function name="PointParameterxvOES" es1="1.0" alias="PointParameterxv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxvOES" static_dispatch="false"
- es1="1.0" alias="TexParameterxv">
+ <function name="TexParameterxvOES" es1="1.0" alias="TexParameterxv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
<!-- texgen -->
- <function name="GetTexGenxvOES" offset="assign" static_dispatch="false"
+ <function name="GetTexGenxvOES"
es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="TexGenxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="TexGenxOES" es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="TexGenxvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="TexGenxvOES" es1="1.0" desktop="false">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
diff --git a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
index 8346b64ee..c6795042e 100644
--- a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
+++ b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml
@@ -6,31 +6,27 @@
<OpenGLAPI>
<category name="GL_OES_single_precision" number="293">
- <function name="ClearDepthfOES" alias="ClearDepthf" static_dispatch="false"
- es1="1.0">
+ <function name="ClearDepthfOES" alias="ClearDepthf" es1="1.0">
<param name="depth" type="GLclampf"/>
</function>
- <function name="ClipPlanefOES" static_dispatch="false"
- es1="1.0" alias="ClipPlanef">
+ <function name="ClipPlanefOES" es1="1.0" alias="ClipPlanef">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfloat *"/>
</function>
- <function name="DepthRangefOES" alias="DepthRangef" static_dispatch="false"
- es1="1.0">
+ <function name="DepthRangefOES" alias="DepthRangef" es1="1.0">
<param name="zNear" type="GLclampf"/>
<param name="zFar" type="GLclampf"/>
</function>
- <function name="GetClipPlanefOES" static_dispatch="false"
+ <function name="GetClipPlanefOES"
es1="1.0" desktop="false" alias="GetClipPlanef">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfloat *"/>
</function>
- <function name="FrustumfOES" static_dispatch="false"
- es1="1.0" alias="Frustumf">
+ <function name="FrustumfOES" es1="1.0" alias="Frustumf">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -39,8 +35,7 @@
<param name="zFar" type="GLfloat"/>
</function>
- <function name="OrthofOES" static_dispatch="false"
- es1="1.0" alias="Orthof">
+ <function name="OrthofOES" es1="1.0" alias="Orthof">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
diff --git a/mesalib/src/mapi/glapi/gen/apiexec.py b/mesalib/src/mapi/glapi/gen/apiexec.py
new file mode 100644
index 000000000..535de8a43
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/apiexec.py
@@ -0,0 +1,240 @@
+# Copyright (C) 2015 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.
+
+class exec_info():
+ """Information relating GL APIs to a function.
+
+ Each of the four attributes of this class, compatibility, core, es1, and
+ es2, specify the minimum API version where a function can possibly exist
+ in Mesa. The version is specified as an integer of (real GL version *
+ 10). For example, glCreateProgram was added in OpenGL 2.0, so
+ compatibility=20 and core=31.
+
+ If the attribute is None, then it cannot be supported by that
+ API. For example, glNewList was removed from core profiles, so
+ compatibility=10 and core=None.
+
+ Each of the attributes that is not None must have a valid value. The
+ valid ranges are:
+
+ compatiblity: [10, 30]
+ core: [31, )
+ es1: [10, 11]
+ es2: [20, )
+
+ These ranges are enforced by the constructor.
+ """
+ def __init__(self, compatibility=None, core=None, es1=None, es2=None):
+ if compatibility is not None:
+ assert isinstance(compatibility, int)
+ assert compatibility >= 10
+ assert compatibility <= 30
+
+ if core is not None:
+ assert isinstance(core, int)
+ assert core >= 31
+
+ if es1 is not None:
+ assert isinstance(es1, int)
+ assert es1 == 10 or es1 == 11
+
+ if es2 is not None:
+ assert isinstance(es2, int)
+ assert es2 >= 20
+
+ self.compatibility = compatibility
+ self.core = core
+ self.es1 = es1
+ self.es2 = es2
+
+functions = {
+ # OpenGL 3.1 / GL_ARB_texture_buffer_object. Mesa only exposes this
+ # extension with core profile.
+ "TexBuffer": exec_info(core=31),
+
+ # OpenGL 3.2 / GL_ARB_geometry_shader4. Mesa does not support
+ # GL_ARB_geometry_shader4, so OpenGL 3.2 is required.
+ "FramebufferTexture": exec_info(core=32),
+
+ # OpenGL 4.0 / GL_ARB_gpu_shader_fp64. The extension spec says:
+ #
+ # "OpenGL 3.2 and GLSL 1.50 are required."
+ "Uniform1d": exec_info(core=32),
+ "Uniform2d": exec_info(core=32),
+ "Uniform3d": exec_info(core=32),
+ "Uniform4d": exec_info(core=32),
+ "Uniform1dv": exec_info(core=32),
+ "Uniform2dv": exec_info(core=32),
+ "Uniform3dv": exec_info(core=32),
+ "Uniform4dv": exec_info(core=32),
+ "UniformMatrix2dv": exec_info(core=32),
+ "UniformMatrix3dv": exec_info(core=32),
+ "UniformMatrix4dv": exec_info(core=32),
+ "UniformMatrix2x3dv": exec_info(core=32),
+ "UniformMatrix2x4dv": exec_info(core=32),
+ "UniformMatrix3x2dv": exec_info(core=32),
+ "UniformMatrix3x4dv": exec_info(core=32),
+ "UniformMatrix4x2dv": exec_info(core=32),
+ "UniformMatrix4x3dv": exec_info(core=32),
+ "GetUniformdv": exec_info(core=32),
+
+ # OpenGL 4.1 / GL_ARB_vertex_attrib_64bit. The extension spec says:
+ #
+ # "OpenGL 3.0 and GLSL 1.30 are required.
+ #
+ # ARB_gpu_shader_fp64 (or equivalent functionality) is required."
+ #
+ # For Mesa this effectively means OpenGL 3.2 is required. It seems
+ # unlikely that Mesa will ever get support for any of the NV extensions
+ # that add "equivalent functionality."
+ "VertexAttribL1d": exec_info(core=32),
+ "VertexAttribL2d": exec_info(core=32),
+ "VertexAttribL3d": exec_info(core=32),
+ "VertexAttribL4d": exec_info(core=32),
+ "VertexAttribL1dv": exec_info(core=32),
+ "VertexAttribL2dv": exec_info(core=32),
+ "VertexAttribL3dv": exec_info(core=32),
+ "VertexAttribL4dv": exec_info(core=32),
+ "VertexAttribLPointer": exec_info(core=32),
+ "GetVertexAttribLdv": exec_info(core=32),
+
+ # OpenGL 4.1 / GL_ARB_viewport_array. The extension spec says:
+ #
+ # "OpenGL 3.2 or the EXT_geometry_shader4 or ARB_geometry_shader4
+ # extensions are required."
+ #
+ # Mesa does not support either of the geometry shader extensions, so
+ # OpenGL 3.2 is required.
+ "ViewportArrayv": exec_info(core=32),
+ "ViewportIndexedf": exec_info(core=32),
+ "ViewportIndexedfv": exec_info(core=32),
+ "ScissorArrayv": exec_info(core=32),
+ "ScissorIndexed": exec_info(core=32),
+ "ScissorIndexedv": exec_info(core=32),
+ "DepthRangeArrayv": exec_info(core=32),
+ "DepthRangeIndexed": exec_info(core=32),
+ # GetFloati_v also GL_ARB_shader_atomic_counters
+ # GetDoublei_v also GL_ARB_shader_atomic_counters
+
+ # OpenGL 4.3 / GL_ARB_texture_buffer_range. Mesa can expose the extension
+ # with OpenGL 3.1.
+ "TexBufferRange": exec_info(core=31),
+
+ # OpenGL 4.5 / GL_ARB_direct_state_access. Mesa can expose the extension
+ # with core profile.
+ "CreateTransformFeedbacks": exec_info(core=31),
+ "TransformFeedbackBufferBase": exec_info(core=31),
+ "TransformFeedbackBufferRange": exec_info(core=31),
+ "GetTransformFeedbackiv": exec_info(core=31),
+ "GetTransformFeedbacki_v": exec_info(core=31),
+ "GetTransformFeedbacki64_v": exec_info(core=31),
+ "CreateBuffers": exec_info(core=31),
+ "NamedBufferStorage": exec_info(core=31),
+ "NamedBufferData": exec_info(core=31),
+ "NamedBufferSubData": exec_info(core=31),
+ "CopyNamedBufferSubData": exec_info(core=31),
+ "ClearNamedBufferData": exec_info(core=31),
+ "ClearNamedBufferSubData": exec_info(core=31),
+ "MapNamedBuffer": exec_info(core=31),
+ "MapNamedBufferRange": exec_info(core=31),
+ "UnmapNamedBuffer": exec_info(core=31),
+ "FlushMappedNamedBufferRange": exec_info(core=31),
+ "GetNamedBufferParameteriv": exec_info(core=31),
+ "GetNamedBufferParameteri64v": exec_info(core=31),
+ "GetNamedBufferPointerv": exec_info(core=31),
+ "GetNamedBufferSubData": exec_info(core=31),
+ "CreateFramebuffers": exec_info(core=31),
+ "NamedFramebufferRenderbuffer": exec_info(core=31),
+ "NamedFramebufferParameteri": exec_info(core=31),
+ "NamedFramebufferTexture": exec_info(core=31),
+ "NamedFramebufferTextureLayer": exec_info(core=31),
+ "NamedFramebufferDrawBuffer": exec_info(core=31),
+ "NamedFramebufferDrawBuffers": exec_info(core=31),
+ "NamedFramebufferReadBuffer": exec_info(core=31),
+ "InvalidateNamedFramebufferData": exec_info(core=31),
+ "InvalidateNamedFramebufferSubData": exec_info(core=31),
+ "ClearNamedFramebufferiv": exec_info(core=31),
+ "ClearNamedFramebufferuiv": exec_info(core=31),
+ "ClearNamedFramebufferfv": exec_info(core=31),
+ "ClearNamedFramebufferfi": exec_info(core=31),
+ "BlitNamedFramebuffer": exec_info(core=31),
+ "CheckNamedFramebufferStatus": exec_info(core=31),
+ "GetNamedFramebufferParameteriv": exec_info(core=31),
+ "GetNamedFramebufferAttachmentParameteriv": exec_info(core=31),
+ "CreateRenderbuffers": exec_info(core=31),
+ "NamedRenderbufferStorage": exec_info(core=31),
+ "NamedRenderbufferStorageMultisample": exec_info(core=31),
+ "GetNamedRenderbufferParameteriv": exec_info(core=31),
+ "CreateTextures": exec_info(core=31),
+ "TextureBuffer": exec_info(core=31),
+ "TextureBufferRange": exec_info(core=31),
+ "TextureStorage1D": exec_info(core=31),
+ "TextureStorage2D": exec_info(core=31),
+ "TextureStorage3D": exec_info(core=31),
+ "TextureStorage2DMultisample": exec_info(core=31),
+ "TextureStorage3DMultisample": exec_info(core=31),
+ "TextureSubImage1D": exec_info(core=31),
+ "TextureSubImage2D": exec_info(core=31),
+ "TextureSubImage3D": exec_info(core=31),
+ "CompressedTextureSubImage1D": exec_info(core=31),
+ "CompressedTextureSubImage2D": exec_info(core=31),
+ "CompressedTextureSubImage3D": exec_info(core=31),
+ "CopyTextureSubImage1D": exec_info(core=31),
+ "CopyTextureSubImage2D": exec_info(core=31),
+ "CopyTextureSubImage3D": exec_info(core=31),
+ "TextureParameterf": exec_info(core=31),
+ "TextureParameterfv": exec_info(core=31),
+ "TextureParameteri": exec_info(core=31),
+ "TextureParameterIiv": exec_info(core=31),
+ "TextureParameterIuiv": exec_info(core=31),
+ "TextureParameteriv": exec_info(core=31),
+ "GenerateTextureMipmap": exec_info(core=31),
+ "BindTextureUnit": exec_info(core=31),
+ "GetTextureImage": exec_info(core=31),
+ "GetCompressedTextureImage": exec_info(core=31),
+ "GetTextureLevelParameterfv": exec_info(core=31),
+ "GetTextureLevelParameteriv": exec_info(core=31),
+ "GetTextureParameterfv": exec_info(core=31),
+ "GetTextureParameterIiv": exec_info(core=31),
+ "GetTextureParameterIuiv": exec_info(core=31),
+ "GetTextureParameteriv": exec_info(core=31),
+ "CreateVertexArrays": exec_info(core=31),
+ "DisableVertexArrayAttrib": exec_info(core=31),
+ "EnableVertexArrayAttrib": exec_info(core=31),
+ "VertexArrayElementBuffer": exec_info(core=31),
+ "VertexArrayVertexBuffer": exec_info(core=31),
+ "VertexArrayVertexBuffers": exec_info(core=31),
+ "VertexArrayAttribFormat": exec_info(core=31),
+ "VertexArrayAttribIFormat": exec_info(core=31),
+ "VertexArrayAttribLFormat": exec_info(core=31),
+ "VertexArrayAttribBinding": exec_info(core=31),
+ "VertexArrayBindingDivisor": exec_info(core=31),
+ "GetVertexArrayiv": exec_info(core=31),
+ "GetVertexArrayIndexediv": exec_info(core=31),
+ "GetVertexArrayIndexed64iv": exec_info(core=31),
+ "CreateSamplers": exec_info(core=31),
+ "CreateProgramPipelines": exec_info(core=31),
+ "CreateQueries": exec_info(core=31),
+ "GetQueryBufferObjectiv": exec_info(core=31),
+ "GetQueryBufferObjectuiv": exec_info(core=31),
+ "GetQueryBufferObjecti64v": exec_info(core=31),
+ "GetQueryBufferObjectui64v": exec_info(core=31),
+}
diff --git a/mesalib/src/mapi/glapi/gen/es_EXT.xml b/mesalib/src/mapi/glapi/gen/es_EXT.xml
index 3a2adeb04..642e3b319 100644
--- a/mesalib/src/mapi/glapi/gen/es_EXT.xml
+++ b/mesalib/src/mapi/glapi/gen/es_EXT.xml
@@ -11,7 +11,7 @@
<enum name="BLEND_EQUATION_ALPHA_OES" value="0x883D"/>
<function name="BlendEquationSeparateOES" alias="BlendEquationSeparate"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -24,8 +24,7 @@
<enum name="BLEND_DST_ALPHA_OES" value="0x80CA"/>
<enum name="BLEND_SRC_ALPHA_OES" value="0x80CB"/>
- <function name="BlendFuncSeparateOES" alias="BlendFuncSeparate"
- static_dispatch="false" es1="1.0">
+ <function name="BlendFuncSeparateOES" alias="BlendFuncSeparate" es1="1.0">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -40,8 +39,7 @@
<enum name="FUNC_SUBTRACT_OES" value="0x800A"/>
<enum name="FUNC_REVERSE_SUBTRACT_OES" value="0x800B"/>
- <function name="BlendEquationOES" alias="BlendEquation"
- static_dispatch="false" es1="1.0">
+ <function name="BlendEquationOES" alias="BlendEquation" es1="1.0">
<param name="mode" type="GLenum"/>
</function>
</category>
@@ -72,8 +70,7 @@
<category name="GL_OES_draw_texture" number="7">
<enum name="TEXTURE_CROP_RECT_OES" value="0x8B9D"/>
- <function name="DrawTexiOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexiOES" es1="1.0" desktop="false">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
@@ -81,13 +78,11 @@
<param name="height" type="GLint"/>
</function>
- <function name="DrawTexivOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexivOES" es1="1.0" desktop="false">
<param name="coords" type="const GLint *" count="5"/>
</function>
- <function name="DrawTexfOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexfOES" es1="1.0" desktop="false">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
@@ -95,13 +90,11 @@
<param name="height" type="GLfloat"/>
</function>
- <function name="DrawTexfvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexfvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLfloat *" count="5"/>
</function>
- <function name="DrawTexsOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexsOES" es1="1.0" desktop="false">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
@@ -109,13 +102,11 @@
<param name="height" type="GLshort"/>
</function>
- <function name="DrawTexsvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexsvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLshort *" count="5"/>
</function>
- <function name="DrawTexxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexxOES" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
@@ -123,8 +114,7 @@
<param name="height" type="GLfixed"/>
</function>
- <function name="DrawTexxvOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="DrawTexxvOES" es1="1.0" desktop="false">
<param name="coords" type="const GLfixed *" count="5"/>
</function>
@@ -177,40 +167,35 @@
<enum name="RENDERBUFFER_STENCIL_SIZE_OES" value="0x8D55"/>
<enum name="RGB565_OES" value="0x8D62"/>
- <function name="BindFramebufferOES" alias="BindFramebuffer"
- static_dispatch="false" es1="1.0">
+ <function name="BindFramebufferOES" alias="BindFramebuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="framebuffer" type="GLuint"/>
</function>
- <function name="BindRenderbufferOES" alias="BindRenderbuffer"
- static_dispatch="false" es1="1.0">
+ <function name="BindRenderbufferOES" alias="BindRenderbuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="renderbuffer" type="GLuint"/>
</function>
<function name="CheckFramebufferStatusOES"
- alias="CheckFramebufferStatus" static_dispatch="false"
- es1="1.0">
+ alias="CheckFramebufferStatus" es1="1.0">
<param name="target" type="GLenum"/>
<return type="GLenum"/>
</function>
- <function name="DeleteFramebuffersOES" alias="DeleteFramebuffers"
- static_dispatch="false" es1="1.0">
+ <function name="DeleteFramebuffersOES" alias="DeleteFramebuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="const GLuint *" count="n"/>
</function>
<function name="DeleteRenderbuffersOES" alias="DeleteRenderbuffers"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="const GLuint *" count="n"/>
</function>
<function name="FramebufferRenderbufferOES"
- alias="FramebufferRenderbuffer" static_dispatch="false"
- es1="1.0">
+ alias="FramebufferRenderbuffer" es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="renderbuffertarget" type="GLenum"/>
@@ -218,7 +203,7 @@
</function>
<function name="FramebufferTexture2DOES" alias="FramebufferTexture2D"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -226,26 +211,22 @@
<param name="level" type="GLint"/>
</function>
- <function name="GenerateMipmapOES" alias="GenerateMipmap"
- static_dispatch="false" es1="1.0">
+ <function name="GenerateMipmapOES" alias="GenerateMipmap" es1="1.0">
<param name="target" type="GLenum"/>
</function>
- <function name="GenFramebuffersOES" alias="GenFramebuffers"
- static_dispatch="false" es1="1.0">
+ <function name="GenFramebuffersOES" alias="GenFramebuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="framebuffers" type="GLuint *" count="n" output="true"/>
</function>
- <function name="GenRenderbuffersOES" alias="GenRenderbuffers"
- static_dispatch="false" es1="1.0">
+ <function name="GenRenderbuffersOES" alias="GenRenderbuffers" es1="1.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="renderbuffers" type="GLuint *" count="n" output="true"/>
</function>
<function name="GetFramebufferAttachmentParameterivOES"
- alias="GetFramebufferAttachmentParameteriv"
- static_dispatch="false" es1="1.0">
+ alias="GetFramebufferAttachmentParameteriv" es1="1.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="pname" type="GLenum"/>
@@ -253,27 +234,24 @@
</function>
<function name="GetRenderbufferParameterivOES"
- alias="GetRenderbufferParameteriv" static_dispatch="false"
- es1="1.0">
+ alias="GetRenderbufferParameteriv" es1="1.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
</function>
- <function name="IsFramebufferOES" alias="IsFramebuffer"
- static_dispatch="false" es1="1.0">
+ <function name="IsFramebufferOES" alias="IsFramebuffer" es1="1.0">
<param name="framebuffer" type="GLuint"/>
<return type="GLboolean"/>
</function>
- <function name="IsRenderbufferOES" alias="IsRenderbuffer"
- static_dispatch="false" es1="1.0">
+ <function name="IsRenderbufferOES" alias="IsRenderbuffer" es1="1.0">
<param name="renderbuffer" type="GLuint"/>
<return type="GLboolean"/>
</function>
<function name="RenderbufferStorageOES" alias="RenderbufferStorage"
- static_dispatch="false" es1="1.0">
+ es1="1.0">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -308,25 +286,23 @@
<enum name="MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" value="0x8B9E"/>
<function name="CurrentPaletteMatrixOES" alias="CurrentPaletteMatrixARB"
- static_dispatch="false" exec="skip">
+ exec="skip">
<param name="matrixpaletteindex" type="GLuint"/>
</function>
<!-- no offset -->
- <function name="LoadPaletteFromModelViewMatrixOES" static_dispatch="false"
- exec="skip">
+ <function name="LoadPaletteFromModelViewMatrixOES" exec="skip">
</function>
<function name="MatrixIndexPointerOES" alias="MatrixIndexPointerARB"
- static_dispatch="false" exec="skip">
+ exec="skip">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
</function>
- <function name="WeightPointerOES" alias="WeightPointerARB"
- static_dispatch="false" exec="skip">
+ <function name="WeightPointerOES" alias="WeightPointerARB" exec="skip">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -342,8 +318,7 @@
<enum name="POINT_SIZE_ARRAY_OES" value="0x8B9C"/>
<enum name="POINT_SIZE_ARRAY_BUFFER_BINDING_OES" value="0x8B9F"/>
- <function name="PointSizePointerOES" offset="assign"
- static_dispatch="true" es1="1.0" desktop="false">
+ <function name="PointSizePointerOES" es1="1.0" desktop="false">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
@@ -358,8 +333,7 @@
<!-- optional for es1.0 -->
<category name="GL_OES_query_matrix" number="16">
- <function name="QueryMatrixxOES" offset="assign" static_dispatch="false"
- es1="1.0" desktop="false">
+ <function name="QueryMatrixxOES" es1="1.0" desktop="false">
<param name="mantissa" type="GLfixed *" count="16" />
<param name="exponent" type="GLint *" count="16" />
<return type="GLbitfield"/>
@@ -388,43 +362,37 @@
<enum name="MAX_CUBE_MAP_TEXTURE_SIZE_OES" value="0x851C"/>
<enum name="TEXTURE_GEN_STR_OES" value="0x8D60"/>
- <function name="GetTexGenfvOES" alias="GetTexGenfv" static_dispatch="false"
- es1="1.0">
+ <function name="GetTexGenfvOES" alias="GetTexGenfv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexGenivOES" alias="GetTexGeniv" static_dispatch="false"
- es1="1.0">
+ <function name="GetTexGenivOES" alias="GetTexGeniv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
</function>
- <function name="TexGenfOES" alias="TexGenf" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenfOES" alias="TexGenf" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="TexGenfvOES" alias="TexGenfv" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenfvOES" alias="TexGenfv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
</function>
- <function name="TexGeniOES" alias="TexGeni" static_dispatch="false"
- es1="1.0">
+ <function name="TexGeniOES" alias="TexGeni" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="TexGenivOES" alias="TexGeniv" static_dispatch="false"
- es1="1.0">
+ <function name="TexGenivOES" alias="TexGeniv" es1="1.0">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
@@ -460,21 +428,19 @@
<enum name="BUFFER_MAP_POINTER_OES" value="0x88BD"/>
<function name="GetBufferPointervOES" alias="GetBufferPointerv"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **"/>
</function>
- <function name="MapBufferOES" alias="MapBuffer" static_dispatch="false"
- es1="1.0" es2="2.0">
+ <function name="MapBufferOES" alias="MapBuffer" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="access" type="GLenum"/>
<return type="GLvoid *"/>
</function>
- <function name="UnmapBufferOES" alias="UnmapBuffer"
- static_dispatch="false" es1="1.0" es2="2.0">
+ <function name="UnmapBufferOES" alias="UnmapBuffer" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<return type="GLboolean"/>
</function>
@@ -506,7 +472,7 @@
<enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" value="0x8CD4"/>
<function name="CompressedTexImage3DOES" alias="CompressedTexImage3D"
- static_dispatch="false" es2="2.0">
+ es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -519,8 +485,7 @@
</function>
<function name="CompressedTexSubImage3DOES"
- alias="CompressedTexSubImage3D" static_dispatch="false"
- es2="2.0">
+ alias="CompressedTexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -534,8 +499,7 @@
<param name="data" type="const GLvoid *" count="imageSize"/>
</function>
- <function name="CopyTexSubImage3DOES" alias="CopyTexSubImage3D"
- static_dispatch="false" es2="2.0">
+ <function name="CopyTexSubImage3DOES" alias="CopyTexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -548,7 +512,7 @@
</function>
<function name="FramebufferTexture3DOES" alias="FramebufferTexture3D"
- static_dispatch="false" es2="2.0">
+ es2="2.0">
<param name="target" type="GLenum"/>
<param name="attachment" type="GLenum"/>
<param name="textarget" type="GLenum"/>
@@ -557,8 +521,7 @@
<param name="zoffset" type="GLint"/>
</function>
- <function name="TexImage3DOES" alias="TexImage3D" static_dispatch="false"
- es2="2.0">
+ <function name="TexImage3DOES" alias="TexImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -571,8 +534,7 @@
<param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/>
</function>
- <function name="TexSubImage3DOES" alias="TexSubImage3D"
- static_dispatch="false" es2="2.0">
+ <function name="TexSubImage3DOES" alias="TexSubImage3D" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -630,8 +592,7 @@
<enum name="NUM_PROGRAM_BINARY_FORMATS_OES" value="0x87FE"/>
<enum name="PROGRAM_BINARY_FORMATS_OES" value="0x87FF"/>
- <function name="GetProgramBinaryOES" alias="GetProgramBinary"
- static_dispatch="false" es2="2.0">
+ <function name="GetProgramBinaryOES" alias="GetProgramBinary" es2="2.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -639,8 +600,7 @@
<param name="binary" type="GLvoid *"/>
</function>
- <function name="ProgramBinaryOES" alias="ProgramBinary"
- static_dispatch="false" es2="2.0">
+ <function name="ProgramBinaryOES" alias="ProgramBinary" es2="2.0">
<param name="program" type="GLuint"/>
<param name="binaryFormat" type="GLenum"/>
<param name="binary" type="const GLvoid *"/>
@@ -666,8 +626,7 @@
<!-- 64. GL_EXT_discard_framebuffer -->
<category name="GL_EXT_discard_framebuffer" number="64">
- <function name="DiscardFramebufferEXT" es1="1.0" es2="2.0"
- offset="assign" static_dispatch="false" desktop="false">
+ <function name="DiscardFramebufferEXT" es1="1.0" es2="2.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="numAttachments" type="GLsizei"/>
<param name="attachments" type="const GLenum *" count="numAttachments"/>
@@ -689,25 +648,21 @@
<!-- 71. GL_OES_vertex_array_object -->
<category name="GL_OES_vertex_array_object" number="71">
- <function name="BindVertexArrayOES" alias="BindVertexArray"
- static_dispatch="false" es2="2.0">
+ <function name="BindVertexArrayOES" alias="BindVertexArray" es2="2.0">
<param name="array" type="GLuint"/>
</function>
- <function name="DeleteVertexArraysOES" alias="DeleteVertexArrays"
- static_dispatch="false" es2="2.0">
+ <function name="DeleteVertexArraysOES" alias="DeleteVertexArrays" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="const GLuint *" count="n"/>
</function>
- <function name="GenVertexArraysOES" alias="GenVertexArrays"
- static_dispatch="false" es2="2.0">
+ <function name="GenVertexArraysOES" alias="GenVertexArrays" es2="2.0">
<param name="n" type="GLsizei"/>
<param name="arrays" type="GLuint *" output="true" count="n"/>
</function>
- <function name="IsVertexArrayOES" alias="IsVertexArray"
- static_dispatch="false" es2="2.0">
+ <function name="IsVertexArrayOES" alias="IsVertexArray" es2="2.0">
<param name="array" type="GLuint"/>
<return type="GLboolean"/>
</function>
@@ -782,8 +737,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="DrawBuffersNV" alias="DrawBuffers"
- static_dispatch="false" es2="2.0">
+ <function name="DrawBuffersNV" alias="DrawBuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
</function>
@@ -791,8 +745,7 @@
<!-- 93. GL_NV_read_buffer -->
<category name="GL_NV_read_buffer">
- <function name="ReadBufferNV" alias="ReadBuffer"
- static_dispatch="false" es2="2.0">
+ <function name="ReadBufferNV" alias="ReadBuffer" es2="2.0">
<param name="mode" type="GLenum"/>
</function>
</category>
@@ -821,7 +774,7 @@
<enum name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020"/>
<function name="MapBufferRangeEXT" alias="MapBufferRange"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr"/>
@@ -830,7 +783,7 @@
</function>
<function name="FlushMappedBufferRangeEXT" alias="FlushMappedBufferRange"
- static_dispatch="false" es1="1.0" es2="2.0">
+ es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="length" type="GLsizeiptr"/>
@@ -839,8 +792,7 @@
<!-- 151. GL_EXT_draw_buffers -->
<category name="GL_EXT_draw_buffers" number="151">
- <function name="DrawBuffersEXT" alias="DrawBuffers"
- static_dispatch="false" es2="2.0">
+ <function name="DrawBuffersEXT" alias="DrawBuffers" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
index d076409c2..da468dc58 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
@@ -25,8 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import string
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt, string
class PrintGlxDispatch_h(gl_XML.gl_print_base):
@@ -524,31 +526,39 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
return
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:s")
- except Exception,e:
- show_usage()
-
- mode = "dispatch_c"
- do_swap = 0
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-s":
- do_swap = 1
-
- if mode == "dispatch_c":
- printer = PrintGlxDispatchFunctions(do_swap)
- elif mode == "dispatch_h":
+def _parser():
+ """Parse any arguments passed and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='an xml file describing an OpenGL API')
+ parser.add_argument('-m',
+ dest='mode',
+ default='dispatch_c',
+ choices=['dispatch_c', 'dispatch_h'],
+ help='what file to generate')
+ parser.add_argument('-s',
+ dest='swap',
+ action='store_true',
+ help='emit swap in GlXDispatchFunctions')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args._mode == "dispatch_c":
+ printer = PrintGlxDispatchFunctions(args.swap)
+ elif args._mode == "dispatch_h":
printer = PrintGlxDispatch_h()
- else:
- show_usage()
- api = gl_XML.parse_GL_API( file_name, glX_proto_common.glx_proto_item_factory() )
+ api = gl_XML.parse_GL_API(
+ args.filename, glX_proto_common.glx_proto_item_factory())
+
+ printer.Print(api)
- printer.Print( api )
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_send.py b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
index b93989f75..2b3303078 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_send.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004, 2005
# All Rights Reserved.
+# Copyright (c) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -26,8 +27,10 @@
# Ian Romanick <idr@us.ibm.com>
# Jeremy Kolb <jkolb@brandeis.edu>
+import argparse
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt, copy, string
+import copy, string
def convertStringForXCB(str):
tmp = ""
@@ -1085,42 +1088,41 @@ extern _X_HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupVendorRequest(
print '#endif'
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode] [-d]" % sys.argv[0]
- print " -m output_mode Output mode can be one of 'proto', 'init_c' or 'init_h'."
- print " -d Enable extra debug information in the generated code."
- sys.exit(1)
-
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:d")
- except Exception,e:
- show_usage()
-
- debug = 0
- mode = "proto"
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-d":
- debug = 1
-
- if mode == "proto":
+def _parser():
+ """Parse input and returned a parsed namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ default='gl_API.xml',
+ dest='filename',
+ help='An XML file describing an API')
+ parser.add_argument('-m',
+ required=True,
+ dest='mode',
+ choices=frozenset(['proto', 'init_c', 'init_h']),
+ help='which file to generate')
+ parser.add_argument('-d',
+ action='store_true',
+ dest='debug',
+ help='turn debug mode on.')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args.mode == "proto":
printer = PrintGlxProtoStubs()
- elif mode == "init_c":
+ elif args.mode == "init_c":
printer = PrintGlxProtoInit_c()
- elif mode == "init_h":
+ elif args.mode == "init_h":
printer = PrintGlxProtoInit_h()
- else:
- show_usage()
-
- printer.debug = debug
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+ printer.debug = args.debug
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print( api )
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
index 4737fbf71..75fc26f5d 100644
--- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
@@ -25,9 +25,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import sys, string
+
import gl_XML, glX_XML
import license
-import sys, getopt, copy, string
class glx_enum_function(object):
@@ -650,54 +652,57 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
return alias
-def show_usage():
- print "Usage: %s [-f input_file_name] -m output_mode [--only-get | --only-set] [--get-alias-set]" % sys.argv[0]
- print " -m output_mode Output mode can be one of 'size_c' or 'size_h'."
- print " --only-get Only emit 'get'-type functions."
- print " --only-set Only emit 'set'-type functions."
- print ""
- print "By default, both 'get' and 'set'-type functions are emitted."
- sys.exit(1)
-
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:h:", ["only-get", "only-set", "header-tag"])
- except Exception,e:
- show_usage()
-
- mode = None
- header_tag = None
- which_functions = PrintGlxSizeStubs_common.do_get | PrintGlxSizeStubs_common.do_set
-
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "--only-get":
- which_functions = PrintGlxSizeStubs_common.do_get
- elif arg == "--only-set":
- which_functions = PrintGlxSizeStubs_common.do_set
- elif (arg == '-h') or (arg == "--header-tag"):
- header_tag = val
-
- if mode == "size_c":
- printer = PrintGlxSizeStubs_c( which_functions )
- elif mode == "size_h":
- printer = PrintGlxSizeStubs_h( which_functions )
- if header_tag:
- printer.header_tag = header_tag
- elif mode == "reqsize_c":
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.set_defaults(which_functions=(PrintGlxSizeStubs_common.do_get |
+ PrintGlxSizeStubs_common.do_set))
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='an XML file describing an OpenGL API.')
+ parser.add_argument('-m',
+ dest='mode',
+ choices=['size_c', 'size_h', 'reqsize_c', 'reqsize_h'],
+ help='Which file to generate')
+ getset = parser.add_mutually_exclusive_group()
+ getset.add_argument('--only-get',
+ dest='which_functions',
+ action='store_const',
+ const=PrintGlxSizeStubs_common.do_get,
+ help='only emit "get-type" functions')
+ getset.add_argument('--only-set',
+ dest='which_functions',
+ action='store_const',
+ const=PrintGlxSizeStubs_common.do_set,
+ help='only emit "set-type" functions')
+ parser.add_argument('--header-tag',
+ dest='header_tag',
+ action='store',
+ default=None,
+ help='set header tag value')
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ if args.mode == "size_c":
+ printer = PrintGlxSizeStubs_c(args.which_functions)
+ elif args.mode == "size_h":
+ printer = PrintGlxSizeStubs_h(args.which_functions)
+ if args.header_tag is not None:
+ printer.header_tag = args.header_tag
+ elif args.mode == "reqsize_c":
printer = PrintGlxReqSize_c()
- elif mode == "reqsize_h":
+ elif args.mode == "reqsize_h":
printer = PrintGlxReqSize_h()
- else:
- show_usage()
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
+
+ printer.Print(api)
- printer.Print( api )
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py
index 47aa11116..2d21f4e4e 100644
--- a/mesalib/src/mapi/glapi/gen/glX_server_table.py
+++ b/mesalib/src/mapi/glapi/gen/glX_server_table.py
@@ -25,8 +25,9 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt
def log2(value):
@@ -383,28 +384,19 @@ class PrintGlxDispatchTables(glX_proto_common.glx_print_proto):
return
-if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m")
- except Exception,e:
- show_usage()
-
- mode = "table_c"
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
+def _parser():
+ """Parse arguments and return namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file describing an API.')
+ return parser.parse_args()
- if mode == "table_c":
- printer = PrintGlxDispatchTables()
- else:
- show_usage()
-
-
- api = gl_XML.parse_GL_API( file_name, glX_XML.glx_item_factory() )
+if __name__ == '__main__':
+ args = _parser()
+ printer = PrintGlxDispatchTables()
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- printer.Print( api )
+ printer.Print(api)
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.dtd b/mesalib/src/mapi/glapi/gen/gl_API.dtd
index ab321fad0..bdc62f1c8 100644
--- a/mesalib/src/mapi/glapi/gen/gl_API.dtd
+++ b/mesalib/src/mapi/glapi/gen/gl_API.dtd
@@ -33,8 +33,6 @@
value NMTOKEN #REQUIRED>
<!ATTLIST function name NMTOKEN #REQUIRED
alias NMTOKEN #IMPLIED
- offset CDATA #IMPLIED
- static_dispatch (true | false) "true"
vectorequiv NMTOKEN #IMPLIED
es1 CDATA "none"
es2 CDATA "none"
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml
index d1565989c..bd8db6203 100644
--- a/mesalib/src/mapi/glapi/gen/gl_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_API.xml
@@ -1109,51 +1109,51 @@
<type name="DEBUGPROCARB" size="4" pointer="true"/>
<type name="DEBUGPROC" size="4" pointer="true"/>
- <function name="NewList" offset="0" deprecated="3.1">
+ <function name="NewList" deprecated="3.1">
<param name="list" type="GLuint"/>
<param name="mode" type="GLenum"/>
<glx sop="101"/>
</function>
- <function name="EndList" offset="1" deprecated="3.1">
+ <function name="EndList" deprecated="3.1">
<glx sop="102"/>
</function>
- <function name="CallList" offset="2" deprecated="3.1">
+ <function name="CallList" deprecated="3.1">
<param name="list" type="GLuint"/>
<glx rop="1"/>
</function>
- <function name="CallLists" offset="3" deprecated="3.1">
+ <function name="CallLists" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="type" type="GLenum"/>
<param name="lists" type="const GLvoid *" variable_param="type" count="n"/>
<glx rop="2" large="true"/>
</function>
- <function name="DeleteLists" offset="4" deprecated="3.1">
+ <function name="DeleteLists" deprecated="3.1">
<param name="list" type="GLuint"/>
<param name="range" type="GLsizei"/>
<glx sop="103"/>
</function>
- <function name="GenLists" offset="5" deprecated="3.1">
+ <function name="GenLists" deprecated="3.1">
<param name="range" type="GLsizei"/>
<return type="GLuint"/>
<glx sop="104"/>
</function>
- <function name="ListBase" offset="6" deprecated="3.1">
+ <function name="ListBase" deprecated="3.1">
<param name="base" type="GLuint"/>
<glx rop="3"/>
</function>
- <function name="Begin" offset="7" deprecated="3.1" exec="dynamic">
+ <function name="Begin" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<glx rop="4"/>
</function>
- <function name="Bitmap" offset="8" deprecated="3.1">
+ <function name="Bitmap" deprecated="3.1">
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="xorig" type="GLfloat"/>
@@ -1164,129 +1164,120 @@
<glx rop="5" large="true"/>
</function>
- <function name="Color3b" offset="9" vectorequiv="Color3bv"
- deprecated="3.1">
+ <function name="Color3b" vectorequiv="Color3bv" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
</function>
- <function name="Color3bv" offset="10" deprecated="3.1">
+ <function name="Color3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="6"/>
</function>
- <function name="Color3d" offset="11" vectorequiv="Color3dv"
- deprecated="3.1">
+ <function name="Color3d" vectorequiv="Color3dv" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
</function>
- <function name="Color3dv" offset="12" deprecated="3.1">
+ <function name="Color3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="7"/>
</function>
- <function name="Color3f" offset="13" vectorequiv="Color3fv"
- deprecated="3.1" exec="dynamic">
+ <function name="Color3f" vectorequiv="Color3fv"
+ deprecated="3.1" exec="dynamic">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
</function>
- <function name="Color3fv" offset="14" deprecated="3.1" exec="dynamic">
+ <function name="Color3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="8"/>
</function>
- <function name="Color3i" offset="15" vectorequiv="Color3iv"
- deprecated="3.1">
+ <function name="Color3i" vectorequiv="Color3iv" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
</function>
- <function name="Color3iv" offset="16" deprecated="3.1">
+ <function name="Color3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="9"/>
</function>
- <function name="Color3s" offset="17" vectorequiv="Color3sv"
- deprecated="3.1">
+ <function name="Color3s" vectorequiv="Color3sv" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
</function>
- <function name="Color3sv" offset="18" deprecated="3.1">
+ <function name="Color3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="10"/>
</function>
- <function name="Color3ub" offset="19" vectorequiv="Color3ubv"
- deprecated="3.1">
+ <function name="Color3ub" vectorequiv="Color3ubv" deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
<param name="blue" type="GLubyte"/>
</function>
- <function name="Color3ubv" offset="20" deprecated="3.1">
+ <function name="Color3ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="3"/>
<glx rop="11"/>
</function>
- <function name="Color3ui" offset="21" vectorequiv="Color3uiv"
- deprecated="3.1">
+ <function name="Color3ui" vectorequiv="Color3uiv" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
</function>
- <function name="Color3uiv" offset="22" deprecated="3.1">
+ <function name="Color3uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="3"/>
<glx rop="12"/>
</function>
- <function name="Color3us" offset="23" vectorequiv="Color3usv"
- deprecated="3.1">
+ <function name="Color3us" vectorequiv="Color3usv" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
</function>
- <function name="Color3usv" offset="24" deprecated="3.1">
+ <function name="Color3usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="3"/>
<glx rop="13"/>
</function>
- <function name="Color4b" offset="25" vectorequiv="Color4bv"
- deprecated="3.1">
+ <function name="Color4b" vectorequiv="Color4bv" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
<param name="alpha" type="GLbyte"/>
</function>
- <function name="Color4bv" offset="26" deprecated="3.1">
+ <function name="Color4bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="14"/>
</function>
- <function name="Color4d" offset="27" vectorequiv="Color4dv"
- deprecated="3.1">
+ <function name="Color4d" vectorequiv="Color4dv" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
<param name="alpha" type="GLdouble"/>
</function>
- <function name="Color4dv" offset="28" deprecated="3.1">
+ <function name="Color4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="15"/>
</function>
- <function name="Color4f" offset="29" vectorequiv="Color4fv" es1="1.0"
+ <function name="Color4f" vectorequiv="Color4fv" es1="1.0"
deprecated="3.1" exec="dynamic">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
@@ -1294,38 +1285,36 @@
<param name="alpha" type="GLfloat"/>
</function>
- <function name="Color4fv" offset="30" deprecated="3.1" exec="dynamic">
+ <function name="Color4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="16"/>
</function>
- <function name="Color4i" offset="31" vectorequiv="Color4iv"
- deprecated="3.1">
+ <function name="Color4i" vectorequiv="Color4iv" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
<param name="alpha" type="GLint"/>
</function>
- <function name="Color4iv" offset="32" deprecated="3.1">
+ <function name="Color4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="17"/>
</function>
- <function name="Color4s" offset="33" vectorequiv="Color4sv"
- deprecated="3.1">
+ <function name="Color4s" vectorequiv="Color4sv" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
<param name="alpha" type="GLshort"/>
</function>
- <function name="Color4sv" offset="34" deprecated="3.1">
+ <function name="Color4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="18"/>
</function>
- <function name="Color4ub" offset="35" vectorequiv="Color4ubv" es1="1.1"
+ <function name="Color4ub" vectorequiv="Color4ubv" es1="1.1"
deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
@@ -1333,494 +1322,462 @@
<param name="alpha" type="GLubyte"/>
</function>
- <function name="Color4ubv" offset="36" deprecated="3.1">
+ <function name="Color4ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="19"/>
</function>
- <function name="Color4ui" offset="37" vectorequiv="Color4uiv"
- deprecated="3.1">
+ <function name="Color4ui" vectorequiv="Color4uiv" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
<param name="alpha" type="GLuint"/>
</function>
- <function name="Color4uiv" offset="38" deprecated="3.1">
+ <function name="Color4uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="4"/>
<glx rop="20"/>
</function>
- <function name="Color4us" offset="39" vectorequiv="Color4usv"
- deprecated="3.1">
+ <function name="Color4us" vectorequiv="Color4usv" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
<param name="alpha" type="GLushort"/>
</function>
- <function name="Color4usv" offset="40" deprecated="3.1">
+ <function name="Color4usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="4"/>
<glx rop="21"/>
</function>
- <function name="EdgeFlag" offset="41" vectorequiv="EdgeFlagv"
+ <function name="EdgeFlag" vectorequiv="EdgeFlagv"
deprecated="3.1" exec="dynamic">
<param name="flag" type="GLboolean"/>
</function>
- <function name="EdgeFlagv" offset="42" deprecated="3.1">
+ <function name="EdgeFlagv" deprecated="3.1">
<param name="flag" type="const GLboolean *" count="1"/>
<glx rop="22"/>
</function>
- <function name="End" offset="43" deprecated="3.1" exec="dynamic">
+ <function name="End" deprecated="3.1" exec="dynamic">
<glx rop="23"/>
</function>
- <function name="Indexd" offset="44" vectorequiv="Indexdv" deprecated="3.1">
+ <function name="Indexd" vectorequiv="Indexdv" deprecated="3.1">
<param name="c" type="GLdouble"/>
</function>
- <function name="Indexdv" offset="45" deprecated="3.1">
+ <function name="Indexdv" deprecated="3.1">
<param name="c" type="const GLdouble *" count="1"/>
<glx rop="24"/>
</function>
- <function name="Indexf" offset="46" vectorequiv="Indexfv" deprecated="3.1"
+ <function name="Indexf" vectorequiv="Indexfv" deprecated="3.1"
exec="dynamic">
<param name="c" type="GLfloat"/>
</function>
- <function name="Indexfv" offset="47" deprecated="3.1" exec="dynamic">
+ <function name="Indexfv" deprecated="3.1" exec="dynamic">
<param name="c" type="const GLfloat *" count="1"/>
<glx rop="25"/>
</function>
- <function name="Indexi" offset="48" vectorequiv="Indexiv" deprecated="3.1">
+ <function name="Indexi" vectorequiv="Indexiv" deprecated="3.1">
<param name="c" type="GLint"/>
</function>
- <function name="Indexiv" offset="49" deprecated="3.1">
+ <function name="Indexiv" deprecated="3.1">
<param name="c" type="const GLint *" count="1"/>
<glx rop="26"/>
</function>
- <function name="Indexs" offset="50" vectorequiv="Indexsv" deprecated="3.1">
+ <function name="Indexs" vectorequiv="Indexsv" deprecated="3.1">
<param name="c" type="GLshort"/>
</function>
- <function name="Indexsv" offset="51" deprecated="3.1">
+ <function name="Indexsv" deprecated="3.1">
<param name="c" type="const GLshort *" count="1"/>
<glx rop="27"/>
</function>
- <function name="Normal3b" offset="52" vectorequiv="Normal3bv"
- deprecated="3.1">
+ <function name="Normal3b" vectorequiv="Normal3bv" deprecated="3.1">
<param name="nx" type="GLbyte"/>
<param name="ny" type="GLbyte"/>
<param name="nz" type="GLbyte"/>
</function>
- <function name="Normal3bv" offset="53" deprecated="3.1">
+ <function name="Normal3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="28"/>
</function>
- <function name="Normal3d" offset="54" vectorequiv="Normal3dv"
- deprecated="3.1">
+ <function name="Normal3d" vectorequiv="Normal3dv" deprecated="3.1">
<param name="nx" type="GLdouble"/>
<param name="ny" type="GLdouble"/>
<param name="nz" type="GLdouble"/>
</function>
- <function name="Normal3dv" offset="55" deprecated="3.1">
+ <function name="Normal3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="29"/>
</function>
- <function name="Normal3f" offset="56" vectorequiv="Normal3fv" es1="1.0"
+ <function name="Normal3f" vectorequiv="Normal3fv" es1="1.0"
deprecated="3.1" exec="dynamic">
<param name="nx" type="GLfloat"/>
<param name="ny" type="GLfloat"/>
<param name="nz" type="GLfloat"/>
</function>
- <function name="Normal3fv" offset="57" deprecated="3.1" exec="dynamic">
+ <function name="Normal3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="30"/>
</function>
- <function name="Normal3i" offset="58" vectorequiv="Normal3iv"
- deprecated="3.1">
+ <function name="Normal3i" vectorequiv="Normal3iv" deprecated="3.1">
<param name="nx" type="GLint"/>
<param name="ny" type="GLint"/>
<param name="nz" type="GLint"/>
</function>
- <function name="Normal3iv" offset="59" deprecated="3.1">
+ <function name="Normal3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="31"/>
</function>
- <function name="Normal3s" offset="60" vectorequiv="Normal3sv"
- deprecated="3.1">
+ <function name="Normal3s" vectorequiv="Normal3sv" deprecated="3.1">
<param name="nx" type="GLshort"/>
<param name="ny" type="GLshort"/>
<param name="nz" type="GLshort"/>
</function>
- <function name="Normal3sv" offset="61" deprecated="3.1">
+ <function name="Normal3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="32"/>
</function>
- <function name="RasterPos2d" offset="62" vectorequiv="RasterPos2dv"
- deprecated="3.1">
+ <function name="RasterPos2d" vectorequiv="RasterPos2dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="RasterPos2dv" offset="63" deprecated="3.1">
+ <function name="RasterPos2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="33"/>
</function>
- <function name="RasterPos2f" offset="64" vectorequiv="RasterPos2fv"
- deprecated="3.1">
+ <function name="RasterPos2f" vectorequiv="RasterPos2fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="RasterPos2fv" offset="65" deprecated="3.1">
+ <function name="RasterPos2fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="34"/>
</function>
- <function name="RasterPos2i" offset="66" vectorequiv="RasterPos2iv"
- deprecated="3.1">
+ <function name="RasterPos2i" vectorequiv="RasterPos2iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="RasterPos2iv" offset="67" deprecated="3.1">
+ <function name="RasterPos2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="35"/>
</function>
- <function name="RasterPos2s" offset="68" vectorequiv="RasterPos2sv"
- deprecated="3.1">
+ <function name="RasterPos2s" vectorequiv="RasterPos2sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="RasterPos2sv" offset="69" deprecated="3.1">
+ <function name="RasterPos2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="36"/>
</function>
- <function name="RasterPos3d" offset="70" vectorequiv="RasterPos3dv"
- deprecated="3.1">
+ <function name="RasterPos3d" vectorequiv="RasterPos3dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="RasterPos3dv" offset="71" deprecated="3.1">
+ <function name="RasterPos3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="37"/>
</function>
- <function name="RasterPos3f" offset="72" vectorequiv="RasterPos3fv"
- deprecated="3.1">
+ <function name="RasterPos3f" vectorequiv="RasterPos3fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="RasterPos3fv" offset="73" deprecated="3.1">
+ <function name="RasterPos3fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="38"/>
</function>
- <function name="RasterPos3i" offset="74" vectorequiv="RasterPos3iv"
- deprecated="3.1">
+ <function name="RasterPos3i" vectorequiv="RasterPos3iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="RasterPos3iv" offset="75" deprecated="3.1">
+ <function name="RasterPos3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="39"/>
</function>
- <function name="RasterPos3s" offset="76" vectorequiv="RasterPos3sv"
- deprecated="3.1">
+ <function name="RasterPos3s" vectorequiv="RasterPos3sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="RasterPos3sv" offset="77" deprecated="3.1">
+ <function name="RasterPos3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="40"/>
</function>
- <function name="RasterPos4d" offset="78" vectorequiv="RasterPos4dv"
- deprecated="3.1">
+ <function name="RasterPos4d" vectorequiv="RasterPos4dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="RasterPos4dv" offset="79" deprecated="3.1">
+ <function name="RasterPos4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="41"/>
</function>
- <function name="RasterPos4f" offset="80" vectorequiv="RasterPos4fv"
- deprecated="3.1">
+ <function name="RasterPos4f" vectorequiv="RasterPos4fv" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<param name="w" type="GLfloat"/>
</function>
- <function name="RasterPos4fv" offset="81" deprecated="3.1">
+ <function name="RasterPos4fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="42"/>
</function>
- <function name="RasterPos4i" offset="82" vectorequiv="RasterPos4iv"
- deprecated="3.1">
+ <function name="RasterPos4i" vectorequiv="RasterPos4iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="RasterPos4iv" offset="83" deprecated="3.1">
+ <function name="RasterPos4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="43"/>
</function>
- <function name="RasterPos4s" offset="84" vectorequiv="RasterPos4sv"
- deprecated="3.1">
+ <function name="RasterPos4s" vectorequiv="RasterPos4sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="RasterPos4sv" offset="85" deprecated="3.1">
+ <function name="RasterPos4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="44"/>
</function>
- <function name="Rectd" offset="86" vectorequiv="Rectdv" deprecated="3.1">
+ <function name="Rectd" vectorequiv="Rectdv" deprecated="3.1">
<param name="x1" type="GLdouble"/>
<param name="y1" type="GLdouble"/>
<param name="x2" type="GLdouble"/>
<param name="y2" type="GLdouble"/>
</function>
- <function name="Rectdv" offset="87" deprecated="3.1">
+ <function name="Rectdv" deprecated="3.1">
<param name="v1" type="const GLdouble *" count="2"/>
<param name="v2" type="const GLdouble *" count="2"/>
<glx rop="45"/>
</function>
- <function name="Rectf" offset="88" vectorequiv="Rectfv" deprecated="3.1"
- exec="dynamic">
+ <function name="Rectf" vectorequiv="Rectfv" deprecated="3.1" exec="dynamic">
<param name="x1" type="GLfloat"/>
<param name="y1" type="GLfloat"/>
<param name="x2" type="GLfloat"/>
<param name="y2" type="GLfloat"/>
</function>
- <function name="Rectfv" offset="89" deprecated="3.1">
+ <function name="Rectfv" deprecated="3.1">
<param name="v1" type="const GLfloat *" count="2"/>
<param name="v2" type="const GLfloat *" count="2"/>
<glx rop="46"/>
</function>
- <function name="Recti" offset="90" vectorequiv="Rectiv" deprecated="3.1">
+ <function name="Recti" vectorequiv="Rectiv" deprecated="3.1">
<param name="x1" type="GLint"/>
<param name="y1" type="GLint"/>
<param name="x2" type="GLint"/>
<param name="y2" type="GLint"/>
</function>
- <function name="Rectiv" offset="91" deprecated="3.1">
+ <function name="Rectiv" deprecated="3.1">
<param name="v1" type="const GLint *" count="2"/>
<param name="v2" type="const GLint *" count="2"/>
<glx rop="47"/>
</function>
- <function name="Rects" offset="92" vectorequiv="Rectsv" deprecated="3.1">
+ <function name="Rects" vectorequiv="Rectsv" deprecated="3.1">
<param name="x1" type="GLshort"/>
<param name="y1" type="GLshort"/>
<param name="x2" type="GLshort"/>
<param name="y2" type="GLshort"/>
</function>
- <function name="Rectsv" offset="93" deprecated="3.1">
+ <function name="Rectsv" deprecated="3.1">
<param name="v1" type="const GLshort *" count="2"/>
<param name="v2" type="const GLshort *" count="2"/>
<glx rop="48"/>
</function>
- <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv"
- deprecated="3.1">
+ <function name="TexCoord1d" vectorequiv="TexCoord1dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
</function>
- <function name="TexCoord1dv" offset="95" deprecated="3.1">
+ <function name="TexCoord1dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="49"/>
</function>
- <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv"
+ <function name="TexCoord1f" vectorequiv="TexCoord1fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
</function>
- <function name="TexCoord1fv" offset="97" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord1fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="50"/>
</function>
- <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv"
- deprecated="3.1">
+ <function name="TexCoord1i" vectorequiv="TexCoord1iv" deprecated="3.1">
<param name="s" type="GLint"/>
</function>
- <function name="TexCoord1iv" offset="99" deprecated="3.1">
+ <function name="TexCoord1iv" deprecated="3.1">
<param name="v" type="const GLint *" count="1"/>
<glx rop="51"/>
</function>
- <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv"
- deprecated="3.1">
+ <function name="TexCoord1s" vectorequiv="TexCoord1sv" deprecated="3.1">
<param name="s" type="GLshort"/>
</function>
- <function name="TexCoord1sv" offset="101" deprecated="3.1">
+ <function name="TexCoord1sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="1"/>
<glx rop="52"/>
</function>
- <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv"
- deprecated="3.1">
+ <function name="TexCoord2d" vectorequiv="TexCoord2dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
</function>
- <function name="TexCoord2dv" offset="103" deprecated="3.1">
+ <function name="TexCoord2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="53"/>
</function>
- <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv"
+ <function name="TexCoord2f" vectorequiv="TexCoord2fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
</function>
- <function name="TexCoord2fv" offset="105" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord2fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="54"/>
</function>
- <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv"
- deprecated="3.1">
+ <function name="TexCoord2i" vectorequiv="TexCoord2iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
</function>
- <function name="TexCoord2iv" offset="107" deprecated="3.1">
+ <function name="TexCoord2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="55"/>
</function>
- <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv"
- deprecated="3.1">
+ <function name="TexCoord2s" vectorequiv="TexCoord2sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
</function>
- <function name="TexCoord2sv" offset="109" deprecated="3.1">
+ <function name="TexCoord2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="56"/>
</function>
- <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv"
- deprecated="3.1">
+ <function name="TexCoord3d" vectorequiv="TexCoord3dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
</function>
- <function name="TexCoord3dv" offset="111" deprecated="3.1">
+ <function name="TexCoord3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="57"/>
</function>
- <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv"
+ <function name="TexCoord3f" vectorequiv="TexCoord3fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
<param name="r" type="GLfloat"/>
</function>
- <function name="TexCoord3fv" offset="113" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="58"/>
</function>
- <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv"
- deprecated="3.1">
+ <function name="TexCoord3i" vectorequiv="TexCoord3iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
</function>
- <function name="TexCoord3iv" offset="115" deprecated="3.1">
+ <function name="TexCoord3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="59"/>
</function>
- <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv"
- deprecated="3.1">
+ <function name="TexCoord3s" vectorequiv="TexCoord3sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
</function>
- <function name="TexCoord3sv" offset="117" deprecated="3.1">
+ <function name="TexCoord3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="60"/>
</function>
- <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv"
- deprecated="3.1">
+ <function name="TexCoord4d" vectorequiv="TexCoord4dv" deprecated="3.1">
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
<param name="q" type="GLdouble"/>
</function>
- <function name="TexCoord4dv" offset="119" deprecated="3.1">
+ <function name="TexCoord4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="61"/>
</function>
- <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv"
+ <function name="TexCoord4f" vectorequiv="TexCoord4fv"
deprecated="3.1" exec="dynamic">
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
@@ -1828,146 +1785,134 @@
<param name="q" type="GLfloat"/>
</function>
- <function name="TexCoord4fv" offset="121" deprecated="3.1"
- exec="dynamic">
+ <function name="TexCoord4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="62"/>
</function>
- <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv"
- deprecated="3.1">
+ <function name="TexCoord4i" vectorequiv="TexCoord4iv" deprecated="3.1">
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
<param name="q" type="GLint"/>
</function>
- <function name="TexCoord4iv" offset="123" deprecated="3.1">
+ <function name="TexCoord4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="63"/>
</function>
- <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv"
- deprecated="3.1">
+ <function name="TexCoord4s" vectorequiv="TexCoord4sv" deprecated="3.1">
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
<param name="q" type="GLshort"/>
</function>
- <function name="TexCoord4sv" offset="125" deprecated="3.1">
+ <function name="TexCoord4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="64"/>
</function>
- <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv"
- deprecated="3.1">
+ <function name="Vertex2d" vectorequiv="Vertex2dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="Vertex2dv" offset="127" deprecated="3.1">
+ <function name="Vertex2dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="65"/>
</function>
- <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv"
+ <function name="Vertex2f" vectorequiv="Vertex2fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="Vertex2fv" offset="129" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex2fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="66"/>
</function>
- <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv"
- deprecated="3.1">
+ <function name="Vertex2i" vectorequiv="Vertex2iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
</function>
- <function name="Vertex2iv" offset="131" deprecated="3.1">
+ <function name="Vertex2iv" deprecated="3.1">
<param name="v" type="const GLint *" count="2"/>
<glx rop="67"/>
</function>
- <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv"
- deprecated="3.1">
+ <function name="Vertex2s" vectorequiv="Vertex2sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="Vertex2sv" offset="133" deprecated="3.1">
+ <function name="Vertex2sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="2"/>
<glx rop="68"/>
</function>
- <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv"
- deprecated="3.1">
+ <function name="Vertex3d" vectorequiv="Vertex3dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="Vertex3dv" offset="135" deprecated="3.1">
+ <function name="Vertex3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="69"/>
</function>
- <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv"
+ <function name="Vertex3f" vectorequiv="Vertex3fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="Vertex3fv" offset="137" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex3fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="70"/>
</function>
- <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv"
- deprecated="3.1">
+ <function name="Vertex3i" vectorequiv="Vertex3iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
</function>
- <function name="Vertex3iv" offset="139" deprecated="3.1">
+ <function name="Vertex3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="71"/>
</function>
- <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv"
- deprecated="3.1">
+ <function name="Vertex3s" vectorequiv="Vertex3sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="Vertex3sv" offset="141" deprecated="3.1">
+ <function name="Vertex3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="72"/>
</function>
- <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv"
- deprecated="3.1">
+ <function name="Vertex4d" vectorequiv="Vertex4dv" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="Vertex4dv" offset="143" deprecated="3.1">
+ <function name="Vertex4dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="73"/>
</function>
- <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv"
+ <function name="Vertex4f" vectorequiv="Vertex4fv"
deprecated="3.1" exec="dynamic">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -1975,199 +1920,195 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="Vertex4fv" offset="145" deprecated="3.1"
- exec="dynamic">
+ <function name="Vertex4fv" deprecated="3.1" exec="dynamic">
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="74"/>
</function>
- <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv"
- deprecated="3.1">
+ <function name="Vertex4i" vectorequiv="Vertex4iv" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<param name="w" type="GLint"/>
</function>
- <function name="Vertex4iv" offset="147" deprecated="3.1">
+ <function name="Vertex4iv" deprecated="3.1">
<param name="v" type="const GLint *" count="4"/>
<glx rop="75"/>
</function>
- <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv"
- deprecated="3.1">
+ <function name="Vertex4s" vectorequiv="Vertex4sv" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="Vertex4sv" offset="149" deprecated="3.1">
+ <function name="Vertex4sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="4"/>
<glx rop="76"/>
</function>
- <function name="ClipPlane" offset="150" deprecated="3.1">
+ <function name="ClipPlane" deprecated="3.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLdouble *" count="4"/>
<glx rop="77"/>
</function>
- <function name="ColorMaterial" offset="151" deprecated="3.1">
+ <function name="ColorMaterial" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="78"/>
</function>
- <function name="CullFace" offset="152" es1="1.0" es2="2.0">
+ <function name="CullFace" es1="1.0" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="79"/>
</function>
- <function name="Fogf" offset="153" es1="1.0" deprecated="3.1">
+ <function name="Fogf" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="80"/>
</function>
- <function name="Fogfv" offset="154" es1="1.0" deprecated="3.1">
+ <function name="Fogfv" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="81"/>
</function>
- <function name="Fogi" offset="155" deprecated="3.1">
+ <function name="Fogi" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="82"/>
</function>
- <function name="Fogiv" offset="156" deprecated="3.1">
+ <function name="Fogiv" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="83"/>
</function>
- <function name="FrontFace" offset="157" es1="1.0" es2="2.0">
+ <function name="FrontFace" es1="1.0" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="84"/>
</function>
- <function name="Hint" offset="158" es1="1.0" es2="2.0">
+ <function name="Hint" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="85"/>
</function>
- <function name="Lightf" offset="159" es1="1.0" deprecated="3.1">
+ <function name="Lightf" es1="1.0" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="86"/>
</function>
- <function name="Lightfv" offset="160" es1="1.0" deprecated="3.1">
+ <function name="Lightfv" es1="1.0" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="87"/>
</function>
- <function name="Lighti" offset="161" deprecated="3.1">
+ <function name="Lighti" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="88"/>
</function>
- <function name="Lightiv" offset="162" deprecated="3.1">
+ <function name="Lightiv" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="89"/>
</function>
- <function name="LightModelf" offset="163" es1="1.0" deprecated="3.1">
+ <function name="LightModelf" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="90"/>
</function>
- <function name="LightModelfv" offset="164" es1="1.0" deprecated="3.1">
+ <function name="LightModelfv" es1="1.0" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="91"/>
</function>
- <function name="LightModeli" offset="165" deprecated="3.1">
+ <function name="LightModeli" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="92"/>
</function>
- <function name="LightModeliv" offset="166" deprecated="3.1">
+ <function name="LightModeliv" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="93"/>
</function>
- <function name="LineStipple" offset="167" deprecated="3.1">
+ <function name="LineStipple" deprecated="3.1">
<param name="factor" type="GLint"/>
<param name="pattern" type="GLushort"/>
<glx rop="94"/>
</function>
- <function name="LineWidth" offset="168" es1="1.0" es2="2.0">
+ <function name="LineWidth" es1="1.0" es2="2.0">
<param name="width" type="GLfloat"/>
<glx rop="95"/>
</function>
- <function name="Materialf" offset="169" es1="1.0" deprecated="3.1">
+ <function name="Materialf" es1="1.0" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="96"/>
</function>
- <function name="Materialfv" offset="170" es1="1.0" deprecated="3.1"
- exec="dynamic">
+ <function name="Materialfv" es1="1.0" deprecated="3.1" exec="dynamic">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="97"/>
</function>
- <function name="Materiali" offset="171" deprecated="3.1">
+ <function name="Materiali" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="98"/>
</function>
- <function name="Materialiv" offset="172" deprecated="3.1">
+ <function name="Materialiv" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="99"/>
</function>
- <function name="PointSize" offset="173" es1="1.0">
+ <function name="PointSize" es1="1.0">
<param name="size" type="GLfloat"/>
<glx rop="100"/>
</function>
- <function name="PolygonMode" offset="174">
+ <function name="PolygonMode">
<param name="face" type="GLenum"/>
<param name="mode" type="GLenum"/>
<glx rop="101"/>
</function>
- <function name="PolygonStipple" offset="175" deprecated="3.1">
+ <function name="PolygonStipple" deprecated="3.1">
<param name="mask" type="const GLubyte *" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/>
<glx rop="102"/>
</function>
- <function name="Scissor" offset="176" es1="1.0" es2="2.0">
+ <function name="Scissor" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2175,40 +2116,40 @@
<glx rop="103"/>
</function>
- <function name="ShadeModel" offset="177" es1="1.0" deprecated="3.1">
+ <function name="ShadeModel" es1="1.0" deprecated="3.1">
<param name="mode" type="GLenum"/>
<glx rop="104"/>
</function>
- <function name="TexParameterf" offset="178" es1="1.0" es2="2.0">
+ <function name="TexParameterf" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="105"/>
</function>
- <function name="TexParameterfv" offset="179" es1="1.1" es2="2.0">
+ <function name="TexParameterfv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="106"/>
</function>
- <function name="TexParameteri" offset="180" es1="1.1" es2="2.0">
+ <function name="TexParameteri" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="107"/>
</function>
- <function name="TexParameteriv" offset="181" es1="1.1" es2="2.0">
+ <function name="TexParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="108"/>
</function>
- <function name="TexImage1D" offset="182">
+ <function name="TexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -2220,7 +2161,7 @@
<glx rop="109" large="true"/>
</function>
- <function name="TexImage2D" offset="183" es1="1.0" es2="2.0">
+ <function name="TexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -2233,129 +2174,129 @@
<glx rop="110" large="true"/>
</function>
- <function name="TexEnvf" offset="184" es1="1.0" deprecated="3.1">
+ <function name="TexEnvf" es1="1.0" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="111"/>
</function>
- <function name="TexEnvfv" offset="185" es1="1.0" deprecated="3.1">
+ <function name="TexEnvfv" es1="1.0" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="112"/>
</function>
- <function name="TexEnvi" offset="186" es1="1.1" deprecated="3.1">
+ <function name="TexEnvi" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="113"/>
</function>
- <function name="TexEnviv" offset="187" es1="1.1" deprecated="3.1">
+ <function name="TexEnviv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="114"/>
</function>
- <function name="TexGend" offset="188" deprecated="3.1">
+ <function name="TexGend" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLdouble"/>
<glx rop="115"/>
</function>
- <function name="TexGendv" offset="189" deprecated="3.1">
+ <function name="TexGendv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLdouble *" variable_param="pname"/>
<glx rop="116"/>
</function>
- <function name="TexGenf" offset="190" deprecated="3.1">
+ <function name="TexGenf" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="117"/>
</function>
- <function name="TexGenfv" offset="191" deprecated="3.1">
+ <function name="TexGenfv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="118"/>
</function>
- <function name="TexGeni" offset="192" deprecated="3.1">
+ <function name="TexGeni" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="119"/>
</function>
- <function name="TexGeniv" offset="193" deprecated="3.1">
+ <function name="TexGeniv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="120"/>
</function>
- <function name="FeedbackBuffer" offset="194" deprecated="3.1">
+ <function name="FeedbackBuffer" deprecated="3.1">
<param name="size" type="GLsizei"/>
<param name="type" type="GLenum"/>
<param name="buffer" type="GLfloat *" output="true"/>
<glx sop="105" handcode="true"/>
</function>
- <function name="SelectBuffer" offset="195" deprecated="3.1">
+ <function name="SelectBuffer" deprecated="3.1">
<param name="size" type="GLsizei"/>
<param name="buffer" type="GLuint *" output="true"/>
<glx sop="106" handcode="true"/>
</function>
- <function name="RenderMode" offset="196" deprecated="3.1">
+ <function name="RenderMode" deprecated="3.1">
<param name="mode" type="GLenum"/>
<return type="GLint"/>
<glx sop="107" handcode="true"/>
</function>
- <function name="InitNames" offset="197" deprecated="3.1">
+ <function name="InitNames" deprecated="3.1">
<glx rop="121"/>
</function>
- <function name="LoadName" offset="198" deprecated="3.1">
+ <function name="LoadName" deprecated="3.1">
<param name="name" type="GLuint"/>
<glx rop="122"/>
</function>
- <function name="PassThrough" offset="199" deprecated="3.1">
+ <function name="PassThrough" deprecated="3.1">
<param name="token" type="GLfloat"/>
<glx rop="123"/>
</function>
- <function name="PopName" offset="200" deprecated="3.1">
+ <function name="PopName" deprecated="3.1">
<glx rop="124"/>
</function>
- <function name="PushName" offset="201" deprecated="3.1">
+ <function name="PushName" deprecated="3.1">
<param name="name" type="GLuint"/>
<glx rop="125"/>
</function>
- <function name="DrawBuffer" offset="202">
+ <function name="DrawBuffer">
<param name="mode" type="GLenum"/>
<glx rop="126"/>
</function>
- <function name="Clear" offset="203" es1="1.0" es2="2.0">
+ <function name="Clear" es1="1.0" es2="2.0">
<param name="mask" type="GLbitfield"/>
<glx rop="127"/>
</function>
- <function name="ClearAccum" offset="204" deprecated="3.1">
+ <function name="ClearAccum" deprecated="3.1">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
@@ -2363,12 +2304,12 @@
<glx rop="128"/>
</function>
- <function name="ClearIndex" offset="205" deprecated="3.1">
+ <function name="ClearIndex" deprecated="3.1">
<param name="c" type="GLfloat"/>
<glx rop="129"/>
</function>
- <function name="ClearColor" offset="206" es1="1.0" es2="2.0">
+ <function name="ClearColor" es1="1.0" es2="2.0">
<param name="red" type="GLclampf"/>
<param name="green" type="GLclampf"/>
<param name="blue" type="GLclampf"/>
@@ -2376,22 +2317,22 @@
<glx rop="130"/>
</function>
- <function name="ClearStencil" offset="207" es1="1.0" es2="2.0">
+ <function name="ClearStencil" es1="1.0" es2="2.0">
<param name="s" type="GLint"/>
<glx rop="131"/>
</function>
- <function name="ClearDepth" offset="208">
+ <function name="ClearDepth">
<param name="depth" type="GLclampd"/>
<glx rop="132"/>
</function>
- <function name="StencilMask" offset="209" es1="1.0" es2="2.0">
+ <function name="StencilMask" es1="1.0" es2="2.0">
<param name="mask" type="GLuint"/>
<glx rop="133"/>
</function>
- <function name="ColorMask" offset="210" es1="1.0" es2="2.0">
+ <function name="ColorMask" es1="1.0" es2="2.0">
<param name="red" type="GLboolean"/>
<param name="green" type="GLboolean"/>
<param name="blue" type="GLboolean"/>
@@ -2399,50 +2340,50 @@
<glx rop="134"/>
</function>
- <function name="DepthMask" offset="211" es1="1.0" es2="2.0">
+ <function name="DepthMask" es1="1.0" es2="2.0">
<param name="flag" type="GLboolean"/>
<glx rop="135"/>
</function>
- <function name="IndexMask" offset="212" deprecated="3.1">
+ <function name="IndexMask" deprecated="3.1">
<param name="mask" type="GLuint"/>
<glx rop="136"/>
</function>
- <function name="Accum" offset="213" deprecated="3.1">
+ <function name="Accum" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="value" type="GLfloat"/>
<glx rop="137"/>
</function>
- <function name="Disable" offset="214" es1="1.0" es2="2.0">
+ <function name="Disable" es1="1.0" es2="2.0">
<param name="cap" type="GLenum"/>
<glx rop="138" handcode="client"/>
</function>
- <function name="Enable" offset="215" es1="1.0" es2="2.0">
+ <function name="Enable" es1="1.0" es2="2.0">
<param name="cap" type="GLenum"/>
<glx rop="139" handcode="client"/>
</function>
- <function name="Finish" offset="216" es1="1.0" es2="2.0">
+ <function name="Finish" es1="1.0" es2="2.0">
<glx sop="108" handcode="true"/>
</function>
- <function name="Flush" offset="217" es1="1.0" es2="2.0">
+ <function name="Flush" es1="1.0" es2="2.0">
<glx sop="142" handcode="true"/>
</function>
- <function name="PopAttrib" offset="218" deprecated="3.1">
+ <function name="PopAttrib" deprecated="3.1">
<glx rop="141"/>
</function>
- <function name="PushAttrib" offset="219" deprecated="3.1">
+ <function name="PushAttrib" deprecated="3.1">
<param name="mask" type="GLbitfield"/>
<glx rop="142"/>
</function>
- <function name="Map1d" offset="220" deprecated="3.1">
+ <function name="Map1d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2452,7 +2393,7 @@
<glx rop="143" handcode="true"/>
</function>
- <function name="Map1f" offset="221" deprecated="3.1">
+ <function name="Map1f" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2462,7 +2403,7 @@
<glx rop="144" handcode="true"/>
</function>
- <function name="Map2d" offset="222" deprecated="3.1">
+ <function name="Map2d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2476,7 +2417,7 @@
<glx rop="145" handcode="true"/>
</function>
- <function name="Map2f" offset="223" deprecated="3.1">
+ <function name="Map2f" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2490,21 +2431,21 @@
<glx rop="146" handcode="true"/>
</function>
- <function name="MapGrid1d" offset="224" deprecated="3.1">
+ <function name="MapGrid1d" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
<glx rop="147"/>
</function>
- <function name="MapGrid1f" offset="225" deprecated="3.1">
+ <function name="MapGrid1f" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
<glx rop="148"/>
</function>
- <function name="MapGrid2d" offset="226" deprecated="3.1">
+ <function name="MapGrid2d" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLdouble"/>
<param name="u2" type="GLdouble"/>
@@ -2514,7 +2455,7 @@
<glx rop="149"/>
</function>
- <function name="MapGrid2f" offset="227" deprecated="3.1">
+ <function name="MapGrid2f" deprecated="3.1">
<param name="un" type="GLint"/>
<param name="u1" type="GLfloat"/>
<param name="u2" type="GLfloat"/>
@@ -2524,64 +2465,59 @@
<glx rop="150"/>
</function>
- <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv"
- deprecated="3.1">
+ <function name="EvalCoord1d" vectorequiv="EvalCoord1dv" deprecated="3.1">
<param name="u" type="GLdouble"/>
</function>
- <function name="EvalCoord1dv" offset="229" deprecated="3.1">
+ <function name="EvalCoord1dv" deprecated="3.1">
<param name="u" type="const GLdouble *" count="1"/>
<glx rop="151"/>
</function>
- <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv"
+ <function name="EvalCoord1f" vectorequiv="EvalCoord1fv"
deprecated="3.1" exec="dynamic">
<param name="u" type="GLfloat"/>
</function>
- <function name="EvalCoord1fv" offset="231" deprecated="3.1">
+ <function name="EvalCoord1fv" deprecated="3.1">
<param name="u" type="const GLfloat *" count="1"/>
<glx rop="152"/>
</function>
- <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv"
- deprecated="3.1">
+ <function name="EvalCoord2d" vectorequiv="EvalCoord2dv" deprecated="3.1">
<param name="u" type="GLdouble"/>
<param name="v" type="GLdouble"/>
</function>
- <function name="EvalCoord2dv" offset="233" deprecated="3.1">
+ <function name="EvalCoord2dv" deprecated="3.1">
<param name="u" type="const GLdouble *" count="2"/>
<glx rop="153"/>
</function>
- <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv"
+ <function name="EvalCoord2f" vectorequiv="EvalCoord2fv"
deprecated="3.1" exec="dynamic">
<param name="u" type="GLfloat"/>
<param name="v" type="GLfloat"/>
</function>
- <function name="EvalCoord2fv" offset="235" deprecated="3.1">
+ <function name="EvalCoord2fv" deprecated="3.1">
<param name="u" type="const GLfloat *" count="2"/>
<glx rop="154"/>
</function>
- <function name="EvalMesh1" offset="236" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalMesh1" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="i1" type="GLint"/>
<param name="i2" type="GLint"/>
<glx rop="155"/>
</function>
- <function name="EvalPoint1" offset="237" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalPoint1" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<glx rop="156"/>
</function>
- <function name="EvalMesh2" offset="238" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalMesh2" deprecated="3.1" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="i1" type="GLint"/>
<param name="i2" type="GLint"/>
@@ -2590,106 +2526,105 @@
<glx rop="157"/>
</function>
- <function name="EvalPoint2" offset="239" deprecated="3.1"
- exec="dynamic">
+ <function name="EvalPoint2" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<param name="j" type="GLint"/>
<glx rop="158"/>
</function>
- <function name="AlphaFunc" offset="240" es1="1.0" deprecated="3.1">
+ <function name="AlphaFunc" es1="1.0" deprecated="3.1">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampf"/>
<glx rop="159"/>
</function>
- <function name="BlendFunc" offset="241" es1="1.0" es2="2.0">
+ <function name="BlendFunc" es1="1.0" es2="2.0">
<param name="sfactor" type="GLenum"/>
<param name="dfactor" type="GLenum"/>
<glx rop="160"/>
</function>
- <function name="LogicOp" offset="242" es1="1.0">
+ <function name="LogicOp" es1="1.0">
<param name="opcode" type="GLenum"/>
<glx rop="161"/>
</function>
- <function name="StencilFunc" offset="243" es1="1.0" es2="2.0">
+ <function name="StencilFunc" es1="1.0" es2="2.0">
<param name="func" type="GLenum"/>
<param name="ref" type="GLint"/>
<param name="mask" type="GLuint"/>
<glx rop="162"/>
</function>
- <function name="StencilOp" offset="244" es1="1.0" es2="2.0">
+ <function name="StencilOp" es1="1.0" es2="2.0">
<param name="fail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
<param name="zpass" type="GLenum"/>
<glx rop="163"/>
</function>
- <function name="DepthFunc" offset="245" es1="1.0" es2="2.0">
+ <function name="DepthFunc" es1="1.0" es2="2.0">
<param name="func" type="GLenum"/>
<glx rop="164"/>
</function>
- <function name="PixelZoom" offset="246" deprecated="3.1">
+ <function name="PixelZoom" deprecated="3.1">
<param name="xfactor" type="GLfloat"/>
<param name="yfactor" type="GLfloat"/>
<glx rop="165"/>
</function>
- <function name="PixelTransferf" offset="247" deprecated="3.1">
+ <function name="PixelTransferf" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="166"/>
</function>
- <function name="PixelTransferi" offset="248" deprecated="3.1">
+ <function name="PixelTransferi" deprecated="3.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="167"/>
</function>
- <function name="PixelStoref" offset="249">
+ <function name="PixelStoref">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx sop="109" handcode="client"/>
</function>
- <function name="PixelStorei" offset="250" es1="1.0" es2="2.0">
+ <function name="PixelStorei" es1="1.0" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx sop="110" handcode="client"/>
</function>
- <function name="PixelMapfv" offset="251" deprecated="3.1">
+ <function name="PixelMapfv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLfloat *" count="mapsize"/>
<glx rop="168" large="true"/>
</function>
- <function name="PixelMapuiv" offset="252" deprecated="3.1">
+ <function name="PixelMapuiv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLuint *" count="mapsize"/>
<glx rop="169" large="true"/>
</function>
- <function name="PixelMapusv" offset="253" deprecated="3.1">
+ <function name="PixelMapusv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="mapsize" type="GLsizei" counter="true"/>
<param name="values" type="const GLushort *" count="mapsize"/>
<glx rop="170" large="true"/>
</function>
- <function name="ReadBuffer" offset="254" es2="3.0">
+ <function name="ReadBuffer" es2="3.0">
<param name="mode" type="GLenum"/>
<glx rop="171"/>
</function>
- <function name="CopyPixels" offset="255" deprecated="3.1">
+ <function name="CopyPixels" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2698,7 +2633,7 @@
<glx rop="172"/>
</function>
- <function name="ReadPixels" offset="256" es1="1.0" es2="2.0">
+ <function name="ReadPixels" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -2709,7 +2644,7 @@
<glx sop="111"/>
</function>
- <function name="DrawPixels" offset="257" deprecated="3.1">
+ <function name="DrawPixels" deprecated="3.1">
<param name="width" type="GLsizei"/>
<param name="height" type="GLsizei"/>
<param name="format" type="GLenum"/>
@@ -2718,155 +2653,155 @@
<glx rop="173" large="true"/>
</function>
- <function name="GetBooleanv" offset="258" es1="1.1" es2="2.0">
+ <function name="GetBooleanv" es1="1.1" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLboolean *" output="true" variable_param="pname"/>
<glx sop="112" handcode="client"/>
</function>
- <function name="GetClipPlane" offset="259" deprecated="3.1">
+ <function name="GetClipPlane" deprecated="3.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLdouble *" output="true" count="4"/>
<glx sop="113" always_array="true"/>
</function>
- <function name="GetDoublev" offset="260">
+ <function name="GetDoublev">
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx sop="114" handcode="client"/>
</function>
- <function name="GetError" offset="261" es1="1.0" es2="2.0">
+ <function name="GetError" es1="1.0" es2="2.0">
<return type="GLenum"/>
<glx sop="115" handcode="client"/>
</function>
- <function name="GetFloatv" offset="262" es1="1.1" es2="2.0">
+ <function name="GetFloatv" es1="1.1" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="116" handcode="client"/>
</function>
- <function name="GetIntegerv" offset="263" es1="1.0" es2="2.0">
+ <function name="GetIntegerv" es1="1.0" es2="2.0">
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="117" handcode="client"/>
</function>
- <function name="GetLightfv" offset="264" es1="1.1" deprecated="3.1">
+ <function name="GetLightfv" es1="1.1" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="118"/>
</function>
- <function name="GetLightiv" offset="265" deprecated="3.1">
+ <function name="GetLightiv" deprecated="3.1">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="119"/>
</function>
- <function name="GetMapdv" offset="266" deprecated="3.1">
+ <function name="GetMapdv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLdouble *" output="true" variable_param="target query"/>
<glx sop="120"/>
</function>
- <function name="GetMapfv" offset="267" deprecated="3.1">
+ <function name="GetMapfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLfloat *" output="true" variable_param="target query"/>
<glx sop="121"/>
</function>
- <function name="GetMapiv" offset="268" deprecated="3.1">
+ <function name="GetMapiv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="query" type="GLenum"/>
<param name="v" type="GLint *" output="true" variable_param="target query"/>
<glx sop="122"/>
</function>
- <function name="GetMaterialfv" offset="269" es1="1.1" deprecated="3.1">
+ <function name="GetMaterialfv" es1="1.1" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="123"/>
</function>
- <function name="GetMaterialiv" offset="270" deprecated="3.1">
+ <function name="GetMaterialiv" deprecated="3.1">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="124"/>
</function>
- <function name="GetPixelMapfv" offset="271" deprecated="3.1">
+ <function name="GetPixelMapfv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLfloat *" output="true" variable_param="map"/>
<glx sop="125"/>
</function>
- <function name="GetPixelMapuiv" offset="272" deprecated="3.1">
+ <function name="GetPixelMapuiv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLuint *" output="true" variable_param="map"/>
<glx sop="126"/>
</function>
- <function name="GetPixelMapusv" offset="273" deprecated="3.1">
+ <function name="GetPixelMapusv" deprecated="3.1">
<param name="map" type="GLenum"/>
<param name="values" type="GLushort *" output="true" variable_param="map"/>
<glx sop="127"/>
</function>
- <function name="GetPolygonStipple" offset="274" deprecated="3.1">
+ <function name="GetPolygonStipple" deprecated="3.1">
<param name="mask" type="GLubyte *" output="true" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP"/>
<glx sop="128"/>
</function>
- <function name="GetString" offset="275" es1="1.0" es2="2.0">
+ <function name="GetString" es1="1.0" es2="2.0">
<param name="name" type="GLenum"/>
<return type="const GLubyte *"/>
<glx sop="129" handcode="true"/>
</function>
- <function name="GetTexEnvfv" offset="276" es1="1.1" deprecated="3.1">
+ <function name="GetTexEnvfv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="130"/>
</function>
- <function name="GetTexEnviv" offset="277" es1="1.1" deprecated="3.1">
+ <function name="GetTexEnviv" es1="1.1" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="131"/>
</function>
- <function name="GetTexGendv" offset="278" deprecated="3.1">
+ <function name="GetTexGendv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx sop="132"/>
</function>
- <function name="GetTexGenfv" offset="279" deprecated="3.1">
+ <function name="GetTexGenfv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="133"/>
</function>
- <function name="GetTexGeniv" offset="280" deprecated="3.1">
+ <function name="GetTexGeniv" deprecated="3.1">
<param name="coord" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="134"/>
</function>
- <function name="GetTexImage" offset="281">
+ <function name="GetTexImage">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="format" type="GLenum"/>
@@ -2875,21 +2810,21 @@
<glx sop="135" dimensions_in_reply="true"/>
</function>
- <function name="GetTexParameterfv" offset="282" es1="1.1" es2="2.0">
+ <function name="GetTexParameterfv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="136"/>
</function>
- <function name="GetTexParameteriv" offset="283" es1="1.1" es2="2.0">
+ <function name="GetTexParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="137"/>
</function>
- <function name="GetTexLevelParameterfv" offset="284">
+ <function name="GetTexLevelParameterfv" es2="3.1">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="pname" type="GLenum"/>
@@ -2897,7 +2832,7 @@
<glx sop="138"/>
</function>
- <function name="GetTexLevelParameteriv" offset="285">
+ <function name="GetTexLevelParameteriv" es2="3.1">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="pname" type="GLenum"/>
@@ -2905,25 +2840,25 @@
<glx sop="139"/>
</function>
- <function name="IsEnabled" offset="286" es1="1.1" es2="2.0">
+ <function name="IsEnabled" es1="1.1" es2="2.0">
<param name="cap" type="GLenum"/>
<return type="GLboolean"/>
<glx sop="140" handcode="client"/>
</function>
- <function name="IsList" offset="287" deprecated="3.1">
+ <function name="IsList" deprecated="3.1">
<param name="list" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="141"/>
</function>
- <function name="DepthRange" offset="288">
+ <function name="DepthRange">
<param name="zNear" type="GLclampd"/>
<param name="zFar" type="GLclampd"/>
<glx rop="174"/>
</function>
- <function name="Frustum" offset="289" deprecated="3.1">
+ <function name="Frustum" deprecated="3.1">
<param name="left" type="GLdouble"/>
<param name="right" type="GLdouble"/>
<param name="bottom" type="GLdouble"/>
@@ -2933,36 +2868,36 @@
<glx rop="175"/>
</function>
- <function name="LoadIdentity" offset="290" es1="1.0" deprecated="3.1">
+ <function name="LoadIdentity" es1="1.0" deprecated="3.1">
<glx rop="176"/>
</function>
- <function name="LoadMatrixf" offset="291" es1="1.0" deprecated="3.1">
+ <function name="LoadMatrixf" es1="1.0" deprecated="3.1">
<param name="m" type="const GLfloat *" count="16"/>
<glx rop="177"/>
</function>
- <function name="LoadMatrixd" offset="292" deprecated="3.1">
+ <function name="LoadMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *" count="16"/>
<glx rop="178"/>
</function>
- <function name="MatrixMode" offset="293" es1="1.0" deprecated="3.1">
+ <function name="MatrixMode" es1="1.0" deprecated="3.1">
<param name="mode" type="GLenum"/>
<glx rop="179"/>
</function>
- <function name="MultMatrixf" offset="294" es1="1.0" deprecated="3.1">
+ <function name="MultMatrixf" es1="1.0" deprecated="3.1">
<param name="m" type="const GLfloat *" count="16"/>
<glx rop="180"/>
</function>
- <function name="MultMatrixd" offset="295" deprecated="3.1">
+ <function name="MultMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *" count="16"/>
<glx rop="181"/>
</function>
- <function name="Ortho" offset="296" deprecated="3.1">
+ <function name="Ortho" deprecated="3.1">
<param name="left" type="GLdouble"/>
<param name="right" type="GLdouble"/>
<param name="bottom" type="GLdouble"/>
@@ -2972,15 +2907,15 @@
<glx rop="182"/>
</function>
- <function name="PopMatrix" offset="297" es1="1.0" deprecated="3.1">
+ <function name="PopMatrix" es1="1.0" deprecated="3.1">
<glx rop="183"/>
</function>
- <function name="PushMatrix" offset="298" es1="1.0" deprecated="3.1">
+ <function name="PushMatrix" es1="1.0" deprecated="3.1">
<glx rop="184"/>
</function>
- <function name="Rotated" offset="299" deprecated="3.1">
+ <function name="Rotated" deprecated="3.1">
<param name="angle" type="GLdouble"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
@@ -2988,7 +2923,7 @@
<glx rop="185"/>
</function>
- <function name="Rotatef" offset="300" es1="1.0" deprecated="3.1">
+ <function name="Rotatef" es1="1.0" deprecated="3.1">
<param name="angle" type="GLfloat"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -2996,35 +2931,35 @@
<glx rop="186"/>
</function>
- <function name="Scaled" offset="301" deprecated="3.1">
+ <function name="Scaled" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx rop="187"/>
</function>
- <function name="Scalef" offset="302" es1="1.0" deprecated="3.1">
+ <function name="Scalef" es1="1.0" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<glx rop="188"/>
</function>
- <function name="Translated" offset="303" deprecated="3.1">
+ <function name="Translated" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx rop="189"/>
</function>
- <function name="Translatef" offset="304" es1="1.0" deprecated="3.1">
+ <function name="Translatef" es1="1.0" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
<glx rop="190"/>
</function>
- <function name="Viewport" offset="305" es1="1.0" es2="2.0">
+ <function name="Viewport" es1="1.0" es2="2.0">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="width" type="GLsizei"/>
@@ -3207,13 +3142,12 @@
<enum name="ALL_CLIENT_ATTRIB_BITS" value="0xFFFFFFFF"/>
<enum name="CLIENT_ALL_ATTRIB_BITS" value="0xFFFFFFFF"/>
- <function name="ArrayElement" offset="306" deprecated="3.1"
- exec="dynamic">
+ <function name="ArrayElement" deprecated="3.1" exec="dynamic">
<param name="i" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="ColorPointer" offset="308" es1="1.0" deprecated="3.1">
+ <function name="ColorPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3221,22 +3155,19 @@
<glx handcode="true"/>
</function>
- <function name="DisableClientState" offset="309" es1="1.0"
- deprecated="3.1">
+ <function name="DisableClientState" es1="1.0" deprecated="3.1">
<param name="array" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="DrawArrays" offset="310" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<glx rop="193" handcode="true"/>
</function>
- <function name="DrawElements" offset="311" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="GLsizei"/>
<param name="type" type="GLenum"/>
@@ -3244,45 +3175,45 @@
<glx handcode="true"/>
</function>
- <function name="EdgeFlagPointer" offset="312" deprecated="3.1">
+ <function name="EdgeFlagPointer" deprecated="3.1">
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="EnableClientState" offset="313" es1="1.0" deprecated="3.1">
+ <function name="EnableClientState" es1="1.0" deprecated="3.1">
<param name="array" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="GetPointerv" offset="329" es1="1.1">
+ <function name="GetPointerv" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **" output="true"/>
<glx handcode="true"/>
</function>
- <function name="IndexPointer" offset="314" deprecated="3.1">
+ <function name="IndexPointer" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="InterleavedArrays" offset="317" deprecated="3.1">
+ <function name="InterleavedArrays" deprecated="3.1">
<param name="format" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="NormalPointer" offset="318" es1="1.0" deprecated="3.1">
+ <function name="NormalPointer" es1="1.0" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="TexCoordPointer" offset="320" es1="1.0" deprecated="3.1">
+ <function name="TexCoordPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3290,7 +3221,7 @@
<glx handcode="true"/>
</function>
- <function name="VertexPointer" offset="321" es1="1.0" deprecated="3.1">
+ <function name="VertexPointer" es1="1.0" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -3298,13 +3229,13 @@
<glx handcode="true"/>
</function>
- <function name="PolygonOffset" offset="319" es1="1.0" es2="2.0">
+ <function name="PolygonOffset" es1="1.0" es2="2.0">
<param name="factor" type="GLfloat"/>
<param name="units" type="GLfloat"/>
<glx rop="192"/>
</function>
- <function name="CopyTexImage1D" offset="323">
+ <function name="CopyTexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -3315,7 +3246,7 @@
<glx rop="4119"/>
</function>
- <function name="CopyTexImage2D" offset="324" es1="1.0" es2="2.0">
+ <function name="CopyTexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -3327,7 +3258,7 @@
<glx rop="4120"/>
</function>
- <function name="CopyTexSubImage1D" offset="325">
+ <function name="CopyTexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3337,7 +3268,7 @@
<glx rop="4121"/>
</function>
- <function name="CopyTexSubImage2D" offset="326" es1="1.0" es2="2.0">
+ <function name="CopyTexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3349,7 +3280,7 @@
<glx rop="4122"/>
</function>
- <function name="TexSubImage1D" offset="332">
+ <function name="TexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3361,7 +3292,7 @@
<glx rop="4099" large="true"/>
</function>
- <function name="TexSubImage2D" offset="333" es1="1.0" es2="2.0">
+ <function name="TexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -3375,7 +3306,7 @@
<glx rop="4100" large="true"/>
</function>
- <function name="AreTexturesResident" offset="322" deprecated="3.1">
+ <function name="AreTexturesResident" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -3383,52 +3314,51 @@
<glx sop="143" handcode="client" always_array="true"/>
</function>
- <function name="BindTexture" offset="307" es1="1.0" es2="2.0">
+ <function name="BindTexture" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="texture" type="GLuint"/>
<glx rop="4117"/>
</function>
- <function name="DeleteTextures" offset="327" es1="1.0" es2="2.0">
+ <function name="DeleteTextures" es1="1.0" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<glx sop="144"/>
</function>
- <function name="GenTextures" offset="328" es1="1.0" es2="2.0">
+ <function name="GenTextures" es1="1.0" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="GLuint *" output="true" count="n"/>
<glx sop="145" always_array="true"/>
</function>
- <function name="IsTexture" offset="330" es1="1.1" es2="2.0">
+ <function name="IsTexture" es1="1.1" es2="2.0">
<param name="texture" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="146"/>
</function>
- <function name="PrioritizeTextures" offset="331" deprecated="3.1">
+ <function name="PrioritizeTextures" deprecated="3.1">
<param name="n" type="GLsizei" counter="true"/>
<param name="textures" type="const GLuint *" count="n"/>
<param name="priorities" type="const GLclampf *" count="n"/>
<glx rop="4118"/>
</function>
- <function name="Indexub" offset="315" vectorequiv="Indexubv"
- deprecated="3.1">
+ <function name="Indexub" vectorequiv="Indexubv" deprecated="3.1">
<param name="c" type="GLubyte"/>
</function>
- <function name="Indexubv" offset="316" deprecated="3.1">
+ <function name="Indexubv" deprecated="3.1">
<param name="c" type="const GLubyte *" count="1"/>
<glx rop="194"/>
</function>
- <function name="PopClientAttrib" offset="334" deprecated="3.1">
+ <function name="PopClientAttrib" deprecated="3.1">
<glx handcode="true"/>
</function>
- <function name="PushClientAttrib" offset="335" deprecated="3.1">
+ <function name="PushClientAttrib" deprecated="3.1">
<param name="mask" type="GLbitfield"/>
<glx handcode="true"/>
</function>
@@ -3781,7 +3711,7 @@
</enum>
- <function name="BlendColor" offset="336" es2="2.0">
+ <function name="BlendColor" es2="2.0">
<param name="red" type="GLclampf"/>
<param name="green" type="GLclampf"/>
<param name="blue" type="GLclampf"/>
@@ -3789,13 +3719,12 @@
<glx rop="4096"/>
</function>
- <function name="BlendEquation" offset="337" es2="2.0">
+ <function name="BlendEquation" es2="2.0">
<param name="mode" type="GLenum"/>
<glx rop="4097"/>
</function>
- <function name="DrawRangeElements" offset="338" es2="3.0"
- exec="dynamic">
+ <function name="DrawRangeElements" es2="3.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="start" type="GLuint"/>
<param name="end" type="GLuint"/>
@@ -3805,7 +3734,7 @@
<glx handcode="true"/>
</function>
- <function name="ColorTable" offset="339" deprecated="3.1">
+ <function name="ColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3815,21 +3744,21 @@
<glx rop="2053" large="true"/>
</function>
- <function name="ColorTableParameterfv" offset="340" deprecated="3.1">
+ <function name="ColorTableParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="2054"/>
</function>
- <function name="ColorTableParameteriv" offset="341" deprecated="3.1">
+ <function name="ColorTableParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="2055"/>
</function>
- <function name="CopyColorTable" offset="342" deprecated="3.1">
+ <function name="CopyColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3838,7 +3767,7 @@
<glx rop="2056"/>
</function>
- <function name="GetColorTable" offset="343" deprecated="3.1">
+ <function name="GetColorTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3846,21 +3775,21 @@
<glx sop="147" dimensions_in_reply="true"/>
</function>
- <function name="GetColorTableParameterfv" offset="344" deprecated="3.1">
+ <function name="GetColorTableParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="148"/>
</function>
- <function name="GetColorTableParameteriv" offset="345" deprecated="3.1">
+ <function name="GetColorTableParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="149"/>
</function>
- <function name="ColorSubTable" offset="346" deprecated="3.1">
+ <function name="ColorSubTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -3870,7 +3799,7 @@
<glx rop="195" large="true"/>
</function>
- <function name="CopyColorSubTable" offset="347" deprecated="3.1">
+ <function name="CopyColorSubTable" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="x" type="GLint"/>
@@ -3879,7 +3808,7 @@
<glx rop="196"/>
</function>
- <function name="ConvolutionFilter1D" offset="348" deprecated="3.1">
+ <function name="ConvolutionFilter1D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3889,7 +3818,7 @@
<glx rop="4101" large="true"/>
</function>
- <function name="ConvolutionFilter2D" offset="349" deprecated="3.1">
+ <function name="ConvolutionFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3900,35 +3829,35 @@
<glx rop="4102" large="true"/>
</function>
- <function name="ConvolutionParameterf" offset="350" deprecated="3.1">
+ <function name="ConvolutionParameterf" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat"/>
<glx rop="4103"/>
</function>
- <function name="ConvolutionParameterfv" offset="351" deprecated="3.1">
+ <function name="ConvolutionParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="4104"/>
</function>
- <function name="ConvolutionParameteri" offset="352" deprecated="3.1">
+ <function name="ConvolutionParameteri" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint"/>
<glx rop="4105"/>
</function>
- <function name="ConvolutionParameteriv" offset="353" deprecated="3.1">
+ <function name="ConvolutionParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="4106"/>
</function>
- <function name="CopyConvolutionFilter1D" offset="354" deprecated="3.1">
+ <function name="CopyConvolutionFilter1D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3937,7 +3866,7 @@
<glx rop="4107"/>
</function>
- <function name="CopyConvolutionFilter2D" offset="355" deprecated="3.1">
+ <function name="CopyConvolutionFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -3947,7 +3876,7 @@
<glx rop="4108"/>
</function>
- <function name="GetConvolutionFilter" offset="356" deprecated="3.1">
+ <function name="GetConvolutionFilter" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3955,21 +3884,21 @@
<glx sop="150" dimensions_in_reply="true"/>
</function>
- <function name="GetConvolutionParameterfv" offset="357" deprecated="3.1">
+ <function name="GetConvolutionParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="151"/>
</function>
- <function name="GetConvolutionParameteriv" offset="358" deprecated="3.1">
+ <function name="GetConvolutionParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="152"/>
</function>
- <function name="GetSeparableFilter" offset="359" deprecated="3.1">
+ <function name="GetSeparableFilter" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -3979,7 +3908,7 @@
<glx sop="153" handcode="true"/>
</function>
- <function name="SeparableFilter2D" offset="360" deprecated="3.1">
+ <function name="SeparableFilter2D" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -3991,7 +3920,7 @@
<glx rop="4109" handcode="true"/>
</function>
- <function name="GetHistogram" offset="361" deprecated="3.1">
+ <function name="GetHistogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -4000,21 +3929,21 @@
<glx sop="154" dimensions_in_reply="true" img_reset="reset"/>
</function>
- <function name="GetHistogramParameterfv" offset="362" deprecated="3.1">
+ <function name="GetHistogramParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="155"/>
</function>
- <function name="GetHistogramParameteriv" offset="363" deprecated="3.1">
+ <function name="GetHistogramParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="156"/>
</function>
- <function name="GetMinmax" offset="364" deprecated="3.1">
+ <function name="GetMinmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -4023,21 +3952,21 @@
<glx sop="157" img_reset="reset"/>
</function>
- <function name="GetMinmaxParameterfv" offset="365" deprecated="3.1">
+ <function name="GetMinmaxParameterfv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx sop="158"/>
</function>
- <function name="GetMinmaxParameteriv" offset="366" deprecated="3.1">
+ <function name="GetMinmaxParameteriv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="159"/>
</function>
- <function name="Histogram" offset="367" deprecated="3.1">
+ <function name="Histogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="width" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
@@ -4045,24 +3974,24 @@
<glx rop="4110"/>
</function>
- <function name="Minmax" offset="368" deprecated="3.1">
+ <function name="Minmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
<glx rop="4111"/>
</function>
- <function name="ResetHistogram" offset="369" deprecated="3.1">
+ <function name="ResetHistogram" deprecated="3.1">
<param name="target" type="GLenum"/>
<glx rop="4112"/>
</function>
- <function name="ResetMinmax" offset="370" deprecated="3.1">
+ <function name="ResetMinmax" deprecated="3.1">
<param name="target" type="GLenum"/>
<glx rop="4113"/>
</function>
- <function name="TexImage3D" offset="371" es2="3.0">
+ <function name="TexImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLint"/>
@@ -4076,7 +4005,7 @@
<glx rop="4114" large="true"/>
</function>
- <function name="TexSubImage3D" offset="372" es2="3.0">
+ <function name="TexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4092,7 +4021,7 @@
<glx rop="4115" large="true"/>
</function>
- <function name="CopyTexSubImage3D" offset="373" es2="3.0">
+ <function name="CopyTexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4319,33 +4248,28 @@
<enum name="DOT3_RGB" value="0x86AE"/>
<enum name="DOT3_RGBA" value="0x86AF"/>
- <function name="ActiveTexture" es1="1.0"
- es2="2.0" offset="374">
+ <function name="ActiveTexture" es1="1.0" es2="2.0">
<param name="texture" type="GLenum"/>
<glx rop="197"/>
</function>
- <function name="ClientActiveTexture"
- es1="1.0" deprecated="3.1" offset="375">
+ <function name="ClientActiveTexture" es1="1.0" deprecated="3.1">
<param name="texture" type="GLenum"/>
<glx handcode="true"/>
</function>
- <function name="MultiTexCoord1d"
- deprecated="3.1" offset="376">
+ <function name="MultiTexCoord1d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
</function>
- <function name="MultiTexCoord1dv"
- deprecated="3.1" offset="377">
+ <function name="MultiTexCoord1dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="198"/>
</function>
- <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB"
- deprecated="3.1">
+ <function name="MultiTexCoord1f" alias="MultiTexCoord1fARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
</function>
@@ -4356,41 +4280,35 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord1i"
- deprecated="3.1" offset="380">
+ <function name="MultiTexCoord1i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
</function>
- <function name="MultiTexCoord1iv"
- deprecated="3.1" offset="381">
+ <function name="MultiTexCoord1iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="1"/>
<glx rop="200"/>
</function>
- <function name="MultiTexCoord1s"
- deprecated="3.1" offset="382">
+ <function name="MultiTexCoord1s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
</function>
- <function name="MultiTexCoord1sv"
- deprecated="3.1" offset="383">
+ <function name="MultiTexCoord1sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="201"/>
</function>
- <function name="MultiTexCoord2d"
- deprecated="3.1" offset="384">
+ <function name="MultiTexCoord2d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
</function>
- <function name="MultiTexCoord2dv"
- deprecated="3.1" offset="385">
+ <function name="MultiTexCoord2dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="202"/>
@@ -4409,44 +4327,38 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord2i"
- deprecated="3.1" offset="388">
+ <function name="MultiTexCoord2i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
</function>
- <function name="MultiTexCoord2iv"
- deprecated="3.1" offset="389">
+ <function name="MultiTexCoord2iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="2"/>
<glx rop="204"/>
</function>
- <function name="MultiTexCoord2s"
- deprecated="3.1" offset="390">
+ <function name="MultiTexCoord2s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
</function>
- <function name="MultiTexCoord2sv"
- deprecated="3.1" offset="391">
+ <function name="MultiTexCoord2sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="205"/>
</function>
- <function name="MultiTexCoord3d"
- deprecated="3.1" offset="392">
+ <function name="MultiTexCoord3d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
<param name="r" type="GLdouble"/>
</function>
- <function name="MultiTexCoord3dv"
- deprecated="3.1" offset="393">
+ <function name="MultiTexCoord3dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="206"/>
@@ -4466,38 +4378,33 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord3i"
- deprecated="3.1" offset="396">
+ <function name="MultiTexCoord3i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
<param name="r" type="GLint"/>
</function>
- <function name="MultiTexCoord3iv"
- deprecated="3.1" offset="397">
+ <function name="MultiTexCoord3iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="3"/>
<glx rop="208"/>
</function>
- <function name="MultiTexCoord3s"
- deprecated="3.1" offset="398">
+ <function name="MultiTexCoord3s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
<param name="r" type="GLshort"/>
</function>
- <function name="MultiTexCoord3sv"
- deprecated="3.1" offset="399">
+ <function name="MultiTexCoord3sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="209"/>
</function>
- <function name="MultiTexCoord4d"
- deprecated="3.1" offset="400">
+ <function name="MultiTexCoord4d" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLdouble"/>
<param name="t" type="GLdouble"/>
@@ -4505,8 +4412,7 @@
<param name="q" type="GLdouble"/>
</function>
- <function name="MultiTexCoord4dv"
- deprecated="3.1" offset="401">
+ <function name="MultiTexCoord4dv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="210"/>
@@ -4527,8 +4433,7 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="MultiTexCoord4i"
- deprecated="3.1" offset="404">
+ <function name="MultiTexCoord4i" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLint"/>
<param name="t" type="GLint"/>
@@ -4536,15 +4441,13 @@
<param name="q" type="GLint"/>
</function>
- <function name="MultiTexCoord4iv"
- deprecated="3.1" offset="405">
+ <function name="MultiTexCoord4iv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="212"/>
</function>
- <function name="MultiTexCoord4s"
- deprecated="3.1" offset="406">
+ <function name="MultiTexCoord4s" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="s" type="GLshort"/>
<param name="t" type="GLshort"/>
@@ -4552,45 +4455,39 @@
<param name="q" type="GLshort"/>
</function>
- <function name="MultiTexCoord4sv"
- deprecated="3.1" offset="407">
+ <function name="MultiTexCoord4sv" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="213"/>
</function>
- <function name="LoadTransposeMatrixf"
- deprecated="3.1" offset="assign">
+ <function name="LoadTransposeMatrixf" deprecated="3.1">
<param name="m" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="LoadTransposeMatrixd"
- deprecated="3.1" offset="assign">
+ <function name="LoadTransposeMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="MultTransposeMatrixf"
- deprecated="3.1" offset="assign">
+ <function name="MultTransposeMatrixf" deprecated="3.1">
<param name="m" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="MultTransposeMatrixd"
- deprecated="3.1" offset="assign">
+ <function name="MultTransposeMatrixd" deprecated="3.1">
<param name="m" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="SampleCoverage" es1="1.0"
- es2="2.0" offset="assign">
+ <function name="SampleCoverage" es1="1.0" es2="2.0">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
<glx rop="229"/>
</function>
- <function name="CompressedTexImage3D" es2="3.0" offset="assign">
+ <function name="CompressedTexImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4603,8 +4500,7 @@
<glx rop="216" handcode="client"/>
</function>
- <function name="CompressedTexImage2D"
- es1="1.0" es2="2.0" offset="assign">
+ <function name="CompressedTexImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4616,7 +4512,7 @@
<glx rop="215" handcode="client"/>
</function>
- <function name="CompressedTexImage1D" offset="assign">
+ <function name="CompressedTexImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="internalformat" type="GLenum"/>
@@ -4627,7 +4523,7 @@
<glx rop="214" handcode="client"/>
</function>
- <function name="CompressedTexSubImage3D" es2="3.0" offset="assign">
+ <function name="CompressedTexSubImage3D" es2="3.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4642,8 +4538,7 @@
<glx rop="219" handcode="client"/>
</function>
- <function name="CompressedTexSubImage2D"
- es1="1.0" es2="2.0" offset="assign">
+ <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4656,7 +4551,7 @@
<glx rop="218" handcode="client"/>
</function>
- <function name="CompressedTexSubImage1D" offset="assign">
+ <function name="CompressedTexSubImage1D">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="xoffset" type="GLint"/>
@@ -4667,7 +4562,7 @@
<glx rop="217" handcode="client"/>
</function>
- <function name="GetCompressedTexImage" offset="assign">
+ <function name="GetCompressedTexImage">
<param name="target" type="GLenum"/>
<param name="level" type="GLint"/>
<param name="img" type="GLvoid *" output="true"/>
@@ -4790,7 +4685,7 @@
</enum>
<enum name="COMPARE_R_TO_TEXTURE" value="0x884E"/>
- <function name="BlendFuncSeparate" es2="2.0" offset="assign">
+ <function name="BlendFuncSeparate" es2="2.0">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -4806,24 +4701,23 @@
<param name="coord" type="const GLfloat *"/>
</function>
- <function name="FogCoordd" deprecated="3.1" offset="assign">
+ <function name="FogCoordd" deprecated="3.1">
<param name="coord" type="GLdouble"/>
</function>
- <function name="FogCoorddv" deprecated="3.1" offset="assign">
+ <function name="FogCoorddv" deprecated="3.1">
<param name="coord" type="const GLdouble *" count="1"/>
<glx rop="4125"/>
</function>
- <function name="FogCoordPointer"
- deprecated="3.1" offset="assign">
+ <function name="FogCoordPointer" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
<glx handcode="true"/>
</function>
- <function name="MultiDrawArrays" offset="assign">
+ <function name="MultiDrawArrays">
<param name="mode" type="GLenum"/>
<param name="first" type="const GLint *"/>
<param name="count" type="const GLsizei *"/>
@@ -4839,52 +4733,48 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="PointParameterf" es1="1.1" offset="assign">
+ <function name="PointParameterf" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
<glx rop="2065"/>
</function>
- <function name="PointParameterfv" es1="1.1" offset="assign">
+ <function name="PointParameterfv" es1="1.1">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *" variable_param="pname"/>
<glx rop="2066"/>
</function>
- <function name="PointParameteri" offset="assign">
+ <function name="PointParameteri">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
<glx rop="4221"/>
</function>
- <function name="PointParameteriv" offset="assign">
+ <function name="PointParameteriv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *" variable_param="pname"/>
<glx rop="4222"/>
</function>
- <function name="SecondaryColor3b"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3b" deprecated="3.1">
<param name="red" type="GLbyte"/>
<param name="green" type="GLbyte"/>
<param name="blue" type="GLbyte"/>
</function>
- <function name="SecondaryColor3bv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3bv" deprecated="3.1">
<param name="v" type="const GLbyte *" count="3"/>
<glx rop="4126"/>
</function>
- <function name="SecondaryColor3d"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3d" deprecated="3.1">
<param name="red" type="GLdouble"/>
<param name="green" type="GLdouble"/>
<param name="blue" type="GLdouble"/>
</function>
- <function name="SecondaryColor3dv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3dv" deprecated="3.1">
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4130"/>
</function>
@@ -4901,73 +4791,62 @@
<param name="v" type="const GLfloat *"/>
</function>
- <function name="SecondaryColor3i"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3i" deprecated="3.1">
<param name="red" type="GLint"/>
<param name="green" type="GLint"/>
<param name="blue" type="GLint"/>
</function>
- <function name="SecondaryColor3iv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3iv" deprecated="3.1">
<param name="v" type="const GLint *" count="3"/>
<glx rop="4128"/>
</function>
- <function name="SecondaryColor3s"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3s" deprecated="3.1">
<param name="red" type="GLshort"/>
<param name="green" type="GLshort"/>
<param name="blue" type="GLshort"/>
</function>
- <function name="SecondaryColor3sv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3sv" deprecated="3.1">
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4127"/>
</function>
- <function name="SecondaryColor3ub"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ub" deprecated="3.1">
<param name="red" type="GLubyte"/>
<param name="green" type="GLubyte"/>
<param name="blue" type="GLubyte"/>
</function>
- <function name="SecondaryColor3ubv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ubv" deprecated="3.1">
<param name="v" type="const GLubyte *" count="3"/>
<glx rop="4131"/>
</function>
- <function name="SecondaryColor3ui"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3ui" deprecated="3.1">
<param name="red" type="GLuint"/>
<param name="green" type="GLuint"/>
<param name="blue" type="GLuint"/>
</function>
- <function name="SecondaryColor3uiv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3uiv" deprecated="3.1">
<param name="v" type="const GLuint *" count="3"/>
<glx rop="4133"/>
</function>
- <function name="SecondaryColor3us"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3us" deprecated="3.1">
<param name="red" type="GLushort"/>
<param name="green" type="GLushort"/>
<param name="blue" type="GLushort"/>
</function>
- <function name="SecondaryColor3usv"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColor3usv" deprecated="3.1">
<param name="v" type="const GLushort *" count="3"/>
<glx rop="4132"/>
</function>
- <function name="SecondaryColorPointer"
- deprecated="3.1" offset="assign">
+ <function name="SecondaryColorPointer" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -4975,93 +4854,93 @@
<glx handcode="true"/>
</function>
- <function name="WindowPos2d" deprecated="3.1" offset="assign">
+ <function name="WindowPos2d" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2dv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2dv" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2f" deprecated="3.1" offset="assign">
+ <function name="WindowPos2f" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2fv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2fv" deprecated="3.1">
<param name="v" type="const GLfloat *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2i" deprecated="3.1" offset="assign">
+ <function name="WindowPos2i" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2iv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2iv" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2s" deprecated="3.1" offset="assign">
+ <function name="WindowPos2s" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos2sv" deprecated="3.1" offset="assign">
+ <function name="WindowPos2sv" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3d" deprecated="3.1" offset="assign">
+ <function name="WindowPos3d" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3dv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3dv" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3f" deprecated="3.1" offset="assign">
+ <function name="WindowPos3f" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="WindowPos3fv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3fv" deprecated="3.1">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="230"/>
</function>
- <function name="WindowPos3i" deprecated="3.1" offset="assign">
+ <function name="WindowPos3i" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3iv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3iv" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3s" deprecated="3.1" offset="assign">
+ <function name="WindowPos3s" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<glx handcode="true"/>
</function>
- <function name="WindowPos3sv" deprecated="3.1" offset="assign">
+ <function name="WindowPos3sv" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx handcode="true"/>
</function>
@@ -5132,13 +5011,13 @@
<type name="intptr" size="4" glx_name="CARD32"/>
<type name="sizeiptr" size="4" unsigned="true" glx_name="CARD32"/>
- <function name="BindBuffer" es1="1.1" es2="2.0" offset="assign">
+ <function name="BindBuffer" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="buffer" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BufferData" es1="1.1" es2="2.0" offset="assign">
+ <function name="BufferData" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="size" type="GLsizeiptr" counter="true"/>
<param name="data" type="const GLvoid *" count="size" img_null_flag="true"/>
@@ -5146,8 +5025,7 @@
<glx ignore="true"/>
</function>
- <function name="BufferSubData" es1="1.1"
- es2="2.0" offset="assign">
+ <function name="BufferSubData" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr" counter="true"/>
@@ -5155,35 +5033,33 @@
<glx ignore="true"/>
</function>
- <function name="DeleteBuffers" es1="1.1"
- es2="2.0" offset="assign">
+ <function name="DeleteBuffers" es1="1.1" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="buffer" type="const GLuint *" count="n"/>
<glx ignore="true"/>
</function>
- <function name="GenBuffers" es1="1.1" es2="2.0" offset="assign">
+ <function name="GenBuffers" es1="1.1" es2="2.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="buffer" type="GLuint *" output="true" count="n"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferParameteriv"
- es1="1.1" es2="2.0" offset="assign">
+ <function name="GetBufferParameteriv" es1="1.1" es2="2.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferPointerv" es2="3.0" offset="assign">
+ <function name="GetBufferPointerv" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLvoid **" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetBufferSubData" offset="assign">
+ <function name="GetBufferSubData">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr" counter="true"/>
@@ -5191,69 +5067,69 @@
<glx ignore="true"/>
</function>
- <function name="IsBuffer" es1="1.1" es2="2.0" offset="assign">
+ <function name="IsBuffer" es1="1.1" es2="2.0">
<param name="buffer" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="MapBuffer" offset="assign">
+ <function name="MapBuffer">
<param name="target" type="GLenum"/>
<param name="access" type="GLenum"/>
<return type="GLvoid *"/>
<glx ignore="true"/>
</function>
- <function name="UnmapBuffer" es2="3.0" offset="assign">
+ <function name="UnmapBuffer" es2="3.0">
<param name="target" type="GLenum"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="GenQueries" es2="3.0" offset="assign">
+ <function name="GenQueries" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="GLuint *" output="true" count="n"/>
<glx sop="162" always_array="true"/>
</function>
- <function name="DeleteQueries" es2="3.0" offset="assign">
+ <function name="DeleteQueries" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<glx sop="161"/>
</function>
- <function name="IsQuery" es2="3.0" offset="assign">
+ <function name="IsQuery" es2="3.0">
<param name="id" type="GLuint"/>
<return type="GLboolean"/>
<glx sop="163"/>
</function>
- <function name="BeginQuery" es2="3.0" offset="assign">
+ <function name="BeginQuery" es2="3.0">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<glx rop="231"/>
</function>
- <function name="EndQuery" es2="3.0" offset="assign">
+ <function name="EndQuery" es2="3.0">
<param name="target" type="GLenum"/>
<glx rop="232"/>
</function>
- <function name="GetQueryiv" es2="3.0" offset="assign">
+ <function name="GetQueryiv" es2="3.0">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="164"/>
</function>
- <function name="GetQueryObjectiv" offset="assign">
+ <function name="GetQueryObjectiv">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx sop="165"/>
</function>
- <function name="GetQueryObjectuiv" es2="3.0" offset="assign">
+ <function name="GetQueryObjectuiv" es2="3.0">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint *" output="true" variable_param="pname"/>
@@ -5356,20 +5232,19 @@
<enum name="STENCIL_BACK_VALUE_MASK" value="0x8CA4"/>
<enum name="STENCIL_BACK_WRITEMASK" value="0x8CA5"/>
- <function name="BlendEquationSeparate"
- es2="2.0" offset="assign">
+ <function name="BlendEquationSeparate" es2="2.0">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
<glx rop="4228"/>
</function>
- <function name="DrawBuffers" es2="3.0" offset="assign">
+ <function name="DrawBuffers" es2="3.0">
<param name="n" type="GLsizei" counter="true"/>
<param name="bufs" type="const GLenum *" count="n"/>
<glx rop="233" large="true"/>
</function>
- <function name="StencilFuncSeparate" offset="assign" es2="2.0">
+ <function name="StencilFuncSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="func" type="GLenum"/>
<param name="ref" type="GLint"/>
@@ -5377,7 +5252,7 @@
<glx ignore="true"/>
</function>
- <function name="StencilOpSeparate" offset="assign" es2="2.0">
+ <function name="StencilOpSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="sfail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
@@ -5385,72 +5260,70 @@
<glx ignore="true"/>
</function>
- <function name="StencilMaskSeparate" offset="assign" es2="2.0">
+ <function name="StencilMaskSeparate" es2="2.0">
<param name="face" type="GLenum"/>
<param name="mask" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="AttachShader" offset="assign" es2="2.0">
+ <function name="AttachShader" es2="2.0">
<param name="program" type="GLuint"/>
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BindAttribLocation"
- es2="2.0" offset="assign">
+ <function name="BindAttribLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<glx ignore="true"/>
</function>
- <function name="CompileShader" es2="2.0" offset="assign">
+ <function name="CompileShader" es2="2.0">
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="CreateProgram" offset="assign" es2="2.0">
+ <function name="CreateProgram" es2="2.0">
<return type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="CreateShader" offset="assign" es2="2.0">
+ <function name="CreateShader" es2="2.0">
<param name="type" type="GLenum"/>
<return type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteProgram" offset="assign" es2="2.0">
+ <function name="DeleteProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteShader" offset="assign" es2="2.0">
+ <function name="DeleteShader" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DetachShader" offset="assign" es2="2.0">
+ <function name="DetachShader" es2="2.0">
<param name="program" type="GLuint"/>
<param name="shader" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DisableVertexAttribArray" es2="2.0" offset="assign">
+ <function name="DisableVertexAttribArray" es2="2.0">
<param name="index" type="GLuint"/>
<glx ignore="true"/>
<glx handcode="true"/>
</function>
- <function name="EnableVertexAttribArray"
- es2="2.0" offset="assign">
+ <function name="EnableVertexAttribArray" es2="2.0">
<param name="index" type="GLuint"/>
<glx ignore="true"/>
<glx handcode="true"/>
</function>
- <function name="GetActiveAttrib" es2="2.0" offset="assign">
+ <function name="GetActiveAttrib" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei "/>
@@ -5461,7 +5334,7 @@
<glx ignore="true"/>
</function>
- <function name="GetActiveUniform" es2="2.0" offset="assign">
+ <function name="GetActiveUniform" es2="2.0">
<param name="program" type="GLuint"/>
<param name="index" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
@@ -5472,7 +5345,7 @@
<glx ignore="true"/>
</function>
- <function name="GetAttachedShaders" offset="assign" es2="2.0">
+ <function name="GetAttachedShaders" es2="2.0">
<param name="program" type="GLuint"/>
<param name="maxCount" type="GLsizei"/>
<param name="count" type="GLsizei *" output="true"/>
@@ -5480,21 +5353,21 @@
<glx ignore="true"/>
</function>
- <function name="GetAttribLocation" es2="2.0" offset="assign">
+ <function name="GetAttribLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="GetProgramiv" offset="assign" es2="2.0">
+ <function name="GetProgramiv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetProgramInfoLog" offset="assign" es2="2.0">
+ <function name="GetProgramInfoLog" es2="2.0">
<param name="program" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -5502,14 +5375,14 @@
<glx ignore="true"/>
</function>
- <function name="GetShaderiv" offset="assign" es2="2.0">
+ <function name="GetShaderiv" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *"/>
<glx ignore="true"/>
</function>
- <function name="GetShaderInfoLog" offset="assign" es2="2.0">
+ <function name="GetShaderInfoLog" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *"/>
@@ -5517,7 +5390,7 @@
<glx ignore="true"/>
</function>
- <function name="GetShaderSource" es2="2.0" offset="assign">
+ <function name="GetShaderSource" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="bufSize" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -5525,29 +5398,28 @@
<glx ignore="true"/>
</function>
- <function name="GetUniformLocation"
- es2="2.0" offset="assign">
+ <function name="GetUniformLocation" es2="2.0">
<param name="program" type="GLuint"/>
<param name="name" type="const GLchar *"/>
<return type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="GetUniformfv" es2="2.0" offset="assign">
+ <function name="GetUniformfv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLfloat *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetUniformiv" es2="2.0" offset="assign">
+ <function name="GetUniformiv" es2="2.0">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetVertexAttribdv" offset="assign">
+ <function name="GetVertexAttribdv">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
@@ -5555,7 +5427,7 @@
<glx handcode="client" vendorpriv="1301"/>
</function>
- <function name="GetVertexAttribfv" es2="2.0" offset="assign">
+ <function name="GetVertexAttribfv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
@@ -5563,7 +5435,7 @@
<glx handcode="client" vendorpriv="1302"/>
</function>
- <function name="GetVertexAttribiv" es2="2.0" offset="assign">
+ <function name="GetVertexAttribiv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -5571,8 +5443,7 @@
<glx handcode="client" vendorpriv="1303"/>
</function>
- <function name="GetVertexAttribPointerv"
- es2="2.0" offset="assign">
+ <function name="GetVertexAttribPointerv" es2="2.0">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="pointer" type="GLvoid **" output="true"/>
@@ -5580,24 +5451,24 @@
<glx handcode="true"/>
</function>
- <function name="IsProgram" offset="assign" es2="2.0">
+ <function name="IsProgram" es2="2.0">
<param name="program" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="IsShader" offset="assign" es2="2.0">
+ <function name="IsShader" es2="2.0">
<param name="shader" type="GLuint"/>
<return type="GLboolean"/>
<glx ignore="true"/>
</function>
- <function name="LinkProgram" es2="2.0" offset="assign">
+ <function name="LinkProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="ShaderSource" es2="2.0" offset="assign">
+ <function name="ShaderSource" es2="2.0">
<param name="shader" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="string" type="const GLchar * const *"/>
@@ -5605,30 +5476,30 @@
<glx ignore="true"/>
</function>
- <function name="UseProgram" es2="2.0" offset="assign">
+ <function name="UseProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform1f" es2="2.0" offset="assign">
+ <function name="Uniform1f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2f" es2="2.0" offset="assign">
+ <function name="Uniform2f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3f" es2="2.0" offset="assign">
+ <function name="Uniform3f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
<param name="v2" type="GLfloat"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4f" es2="2.0" offset="assign">
+ <function name="Uniform4f" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLfloat"/>
<param name="v1" type="GLfloat"/>
@@ -5637,25 +5508,25 @@
<glx ignore="true"/>
</function>
- <function name="Uniform1i" es2="2.0" offset="assign">
+ <function name="Uniform1i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2i" es2="2.0" offset="assign">
+ <function name="Uniform2i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3i" es2="2.0" offset="assign">
+ <function name="Uniform3i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
<param name="v2" type="GLint"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4i" es2="2.0" offset="assign">
+ <function name="Uniform4i" es2="2.0">
<param name="location" type="GLint"/>
<param name="v0" type="GLint"/>
<param name="v1" type="GLint"/>
@@ -5664,71 +5535,71 @@
<glx ignore="true"/>
</function>
- <function name="Uniform1fv" es2="2.0" offset="assign">
+ <function name="Uniform1fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2fv" es2="2.0" offset="assign">
+ <function name="Uniform2fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="2"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3fv" es2="2.0" offset="assign">
+ <function name="Uniform3fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="3"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4fv" es2="2.0" offset="assign">
+ <function name="Uniform4fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLfloat *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="Uniform1iv" es2="2.0" offset="assign">
+ <function name="Uniform1iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count"/>
<glx ignore="true"/>
</function>
- <function name="Uniform2iv" es2="2.0" offset="assign">
+ <function name="Uniform2iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="2"/>
<glx ignore="true"/>
</function>
- <function name="Uniform3iv" es2="2.0" offset="assign">
+ <function name="Uniform3iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="3"/>
<glx ignore="true"/>
</function>
- <function name="Uniform4iv" es2="2.0" offset="assign">
+ <function name="Uniform4iv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="value" type="const GLint *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix2fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix2fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="4"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix3fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="9"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4fv" es2="2.0" offset="assign">
+ <function name="UniformMatrix4fv" es2="2.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
@@ -5736,16 +5607,16 @@
<glx ignore="true"/>
</function>
- <function name="ValidateProgram" es2="2.0" offset="assign">
+ <function name="ValidateProgram" es2="2.0">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="VertexAttrib1d" offset="assign">
+ <function name="VertexAttrib1d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttrib1dv" offset="assign">
+ <function name="VertexAttrib1dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="4197" doubles_in_order="true"/>
@@ -5758,22 +5629,22 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib1s" offset="assign">
+ <function name="VertexAttrib1s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
</function>
- <function name="VertexAttrib1sv" offset="assign">
+ <function name="VertexAttrib1sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="4189"/>
</function>
- <function name="VertexAttrib2d" offset="assign">
+ <function name="VertexAttrib2d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttrib2dv" offset="assign">
+ <function name="VertexAttrib2dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="4198" doubles_in_order="true"/>
@@ -5787,24 +5658,24 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib2s" offset="assign">
+ <function name="VertexAttrib2s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="VertexAttrib2sv" offset="assign">
+ <function name="VertexAttrib2sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="4190"/>
</function>
- <function name="VertexAttrib3d" offset="assign">
+ <function name="VertexAttrib3d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttrib3dv" offset="assign">
+ <function name="VertexAttrib3dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4199" doubles_in_order="true"/>
@@ -5819,68 +5690,68 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib3s" offset="assign">
+ <function name="VertexAttrib3s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
</function>
- <function name="VertexAttrib3sv" offset="assign">
+ <function name="VertexAttrib3sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4191"/>
</function>
- <function name="VertexAttrib4Nbv" offset="assign">
+ <function name="VertexAttrib4Nbv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="4235"/>
</function>
- <function name="VertexAttrib4Niv" offset="assign">
+ <function name="VertexAttrib4Niv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="4237"/>
</function>
- <function name="VertexAttrib4Nsv" offset="assign">
+ <function name="VertexAttrib4Nsv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4236"/>
</function>
- <function name="VertexAttrib4Nub" offset="assign">
+ <function name="VertexAttrib4Nub">
<param name="index" type="GLuint"/>
<param name="x" type="GLubyte"/>
<param name="y" type="GLubyte"/>
<param name="z" type="GLubyte"/>
<param name="w" type="GLubyte"/>
</function>
- <function name="VertexAttrib4Nubv" offset="assign">
+ <function name="VertexAttrib4Nubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4201"/>
</function>
- <function name="VertexAttrib4Nuiv" offset="assign">
+ <function name="VertexAttrib4Nuiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *" count="4"/>
<glx rop="4239"/>
</function>
- <function name="VertexAttrib4Nusv" offset="assign">
+ <function name="VertexAttrib4Nusv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *" count="4"/>
<glx rop="4238"/>
</function>
- <function name="VertexAttrib4bv" offset="assign">
+ <function name="VertexAttrib4bv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLbyte *" count="4"/>
<glx rop="4230"/>
</function>
- <function name="VertexAttrib4d" offset="assign">
+ <function name="VertexAttrib4d">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttrib4dv" offset="assign">
+ <function name="VertexAttrib4dv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="4200" doubles_in_order="true"/>
@@ -5896,41 +5767,40 @@
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *"/>
</function>
- <function name="VertexAttrib4iv" offset="assign">
+ <function name="VertexAttrib4iv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLint *" count="4"/>
<glx rop="4231"/>
</function>
- <function name="VertexAttrib4s" offset="assign">
+ <function name="VertexAttrib4s">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
<param name="w" type="GLshort"/>
</function>
- <function name="VertexAttrib4sv" offset="assign">
+ <function name="VertexAttrib4sv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4192"/>
</function>
- <function name="VertexAttrib4ubv" offset="assign">
+ <function name="VertexAttrib4ubv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4232"/>
</function>
- <function name="VertexAttrib4uiv" offset="assign">
+ <function name="VertexAttrib4uiv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLuint *" count="4"/>
<glx rop="4234"/>
</function>
- <function name="VertexAttrib4usv" offset="assign">
+ <function name="VertexAttrib4usv">
<param name="index" type="GLuint"/>
<param name="v" type="const GLushort *" count="4"/>
<glx rop="4233"/>
</function>
- <function name="VertexAttribPointer"
- es2="2.0" offset="assign">
+ <function name="VertexAttribPointer" es2="2.0">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -5971,42 +5841,42 @@
<enum name="COMPRESSED_SLUMINANCE" value="0x8C4A"/>
<enum name="COMPRESSED_SLUMINANCE_ALPHA" value="0x8C4B"/>
- <function name="UniformMatrix2x3fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix2x3fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3x2fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix3x2fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix2x4fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix2x4fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="6"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4x2fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix4x2fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="8"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix3x4fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix3x4fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLfloat *" count="count" count_scale="12"/>
<glx ignore="true"/>
</function>
- <function name="UniformMatrix4x3fv" offset="assign" es2="3.0">
+ <function name="UniformMatrix4x3fv" es2="3.0">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei" counter="true"/>
<param name="transpose" type="GLboolean"/>
@@ -6081,13 +5951,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord1fARB" offset="378"
+ <function name="MultiTexCoord1fARB"
vectorequiv="MultiTexCoord1fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
</function>
- <function name="MultiTexCoord1fvARB" offset="379" exec="dynamic">
+ <function name="MultiTexCoord1fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="199"/>
@@ -6127,14 +5997,14 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord2fARB" offset="386"
+ <function name="MultiTexCoord2fARB"
vectorequiv="MultiTexCoord2fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
<param name="t" type="GLfloat"/>
</function>
- <function name="MultiTexCoord2fvARB" offset="387" exec="dynamic">
+ <function name="MultiTexCoord2fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="203"/>
@@ -6177,7 +6047,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord3fARB" offset="394"
+ <function name="MultiTexCoord3fARB"
vectorequiv="MultiTexCoord3fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
@@ -6185,7 +6055,7 @@
<param name="r" type="GLfloat"/>
</function>
- <function name="MultiTexCoord3fvARB" offset="395" exec="dynamic">
+ <function name="MultiTexCoord3fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="207"/>
@@ -6231,7 +6101,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="MultiTexCoord4fARB" offset="402"
+ <function name="MultiTexCoord4fARB"
vectorequiv="MultiTexCoord4fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="s" type="GLfloat"/>
@@ -6240,7 +6110,7 @@
<param name="q" type="GLfloat"/>
</function>
- <function name="MultiTexCoord4fvARB" offset="403" exec="dynamic">
+ <function name="MultiTexCoord4fvARB" exec="dynamic">
<param name="target" type="GLenum"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="211"/>
@@ -6672,7 +6542,7 @@
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
- <glx handcode="true"/>
+ <glx ignore="true" handcode="true"/>
</function>
<function name="VertexBlendARB" exec="skip">
@@ -6738,7 +6608,7 @@
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="pointer" type="const GLvoid *"/>
- <glx handcode="true"/>
+ <glx ignore="true" handcode="true"/>
</function>
</category>
@@ -7108,13 +6978,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib1fARB" offset="assign"
- vectorequiv="VertexAttrib1fvARB" exec="dynamic">
+ <function name="VertexAttrib1fARB"
+ vectorequiv="VertexAttrib1fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="VertexAttrib1fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib1fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="4193"/>
@@ -7143,14 +7013,14 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib2fARB" offset="assign"
+ <function name="VertexAttrib2fARB"
vectorequiv="VertexAttrib2fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="VertexAttrib2fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib2fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="4194"/>
@@ -7181,7 +7051,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib3fARB" offset="assign"
+ <function name="VertexAttrib3fARB"
vectorequiv="VertexAttrib3fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
@@ -7189,7 +7059,7 @@
<param name="z" type="GLfloat"/>
</function>
- <function name="VertexAttrib3fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib3fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4195"/>
@@ -7222,7 +7092,7 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="VertexAttrib4fARB" offset="assign"
+ <function name="VertexAttrib4fARB"
vectorequiv="VertexAttrib4fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
@@ -7231,7 +7101,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="VertexAttrib4fvARB" offset="assign" exec="dynamic">
+ <function name="VertexAttrib4fvARB" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="4196"/>
@@ -7332,7 +7202,7 @@
<param name="index" type="GLuint"/>
</function>
- <function name="ProgramStringARB" offset="assign" deprecated="3.1">
+ <function name="ProgramStringARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="len" type="GLsizei" counter="true"/>
@@ -7340,31 +7210,31 @@
<glx rop="4217" large="true"/>
</function>
- <function name="BindProgramARB" offset="assign">
+ <function name="BindProgramARB">
<param name="target" type="GLenum"/>
<param name="program" type="GLuint"/>
<glx rop="4180"/>
</function>
- <function name="DeleteProgramsARB" offset="assign">
+ <function name="DeleteProgramsARB">
<param name="n" type="GLsizei" counter="true"/>
<param name="programs" type="const GLuint *" count="n"/>
<glx vendorpriv="1294"/>
</function>
- <function name="GenProgramsARB" offset="assign">
+ <function name="GenProgramsARB">
<param name="n" type="GLsizei" counter="true"/>
<param name="programs" type="GLuint *" output="true" count="n"/>
<glx vendorpriv="1295" always_array="true"/>
</function>
- <function name="IsProgramARB" offset="assign">
+ <function name="IsProgramARB">
<param name="program" type="GLuint"/>
<return type="GLboolean"/>
<glx vendorpriv="1304"/>
</function>
- <function name="ProgramEnvParameter4dARB" offset="assign"
+ <function name="ProgramEnvParameter4dARB"
vectorequiv="ProgramEnvParameter4dvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7374,7 +7244,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramEnvParameter4dvARB" offset="assign"
+ <function name="ProgramEnvParameter4dvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7382,7 +7252,7 @@
<glx rop="4185" doubles_in_order="true"/>
</function>
- <function name="ProgramEnvParameter4fARB" offset="assign"
+ <function name="ProgramEnvParameter4fARB"
vectorequiv="ProgramEnvParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7392,7 +7262,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramEnvParameter4fvARB" offset="assign"
+ <function name="ProgramEnvParameter4fvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7400,7 +7270,7 @@
<glx rop="4184"/>
</function>
- <function name="ProgramLocalParameter4dARB" offset="assign"
+ <function name="ProgramLocalParameter4dARB"
vectorequiv="ProgramLocalParameter4dvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7410,7 +7280,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramLocalParameter4dvARB" offset="assign"
+ <function name="ProgramLocalParameter4dvARB"
deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7418,7 +7288,7 @@
<glx rop="4216" doubles_in_order="true"/>
</function>
- <function name="ProgramLocalParameter4fARB" offset="assign"
+ <function name="ProgramLocalParameter4fARB"
vectorequiv="ProgramLocalParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
@@ -7428,8 +7298,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramLocalParameter4fvARB" offset="assign"
- deprecated="3.1">
+ <function name="ProgramLocalParameter4fvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="const GLfloat *" count="4"/>
@@ -7448,32 +7317,28 @@
the ARB_vertex_program protocol to unused padding.
-->
- <function name="GetProgramEnvParameterdvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramEnvParameterdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLdouble *" output="true" count="4"/>
<glx vendorpriv="1297" handcode="client" doubles_in_order="true"/>
</function>
- <function name="GetProgramEnvParameterfvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramEnvParameterfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLfloat *" output="true" count="4"/>
<glx vendorpriv="1296" handcode="client"/>
</function>
- <function name="GetProgramLocalParameterdvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramLocalParameterdvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLdouble *" output="true" count="4"/>
<glx vendorpriv="1306" handcode="client" doubles_in_order="true"/>
</function>
- <function name="GetProgramLocalParameterfvARB" offset="assign"
- deprecated="3.1">
+ <function name="GetProgramLocalParameterfvARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="params" type="GLfloat *" output="true" count="4"/>
@@ -7481,14 +7346,14 @@
</function>
- <function name="GetProgramivARB" offset="assign" deprecated="3.1">
+ <function name="GetProgramivARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="1307"/>
</function>
- <function name="GetProgramStringARB" offset="assign" deprecated="3.1">
+ <function name="GetProgramStringARB" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="string" type="GLvoid *" output="true"/>
@@ -7774,24 +7639,24 @@
<type name="charARB" size="1" glx_name="CARD8"/>
<type name="handleARB" size="4" glx_name="CARD32"/>
- <function name="DeleteObjectARB" offset="assign">
+ <function name="DeleteObjectARB">
<param name="obj" type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="GetHandleARB" offset="assign">
+ <function name="GetHandleARB">
<param name="pname" type="GLenum"/>
<return type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="DetachObjectARB" offset="assign">
+ <function name="DetachObjectARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="attachedObj" type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="CreateShaderObjectARB" offset="assign">
+ <function name="CreateShaderObjectARB">
<param name="shaderType" type="GLenum"/>
<return type="GLhandleARB"/>
<glx ignore="true"/>
@@ -7808,12 +7673,12 @@
<param name="shader" type="GLhandleARB"/>
</function>
- <function name="CreateProgramObjectARB" offset="assign">
+ <function name="CreateProgramObjectARB">
<return type="GLhandleARB"/>
<glx ignore="true"/>
</function>
- <function name="AttachObjectARB" offset="assign">
+ <function name="AttachObjectARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="obj" type="GLhandleARB"/>
<glx ignore="true"/>
@@ -7952,21 +7817,21 @@
<param name="value" type="const GLfloat *"/>
</function>
- <function name="GetObjectParameterfvARB" offset="assign">
+ <function name="GetObjectParameterfvARB">
<param name="obj" type="GLhandleARB"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetObjectParameterivARB" offset="assign">
+ <function name="GetObjectParameterivARB">
<param name="obj" type="GLhandleARB"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true"/>
<glx ignore="true"/>
</function>
- <function name="GetInfoLogARB" offset="assign">
+ <function name="GetInfoLogARB">
<param name="obj" type="GLhandleARB"/>
<param name="maxLength" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -7974,7 +7839,7 @@
<glx ignore="true"/>
</function>
- <function name="GetAttachedObjectsARB" offset="assign">
+ <function name="GetAttachedObjectsARB">
<param name="containerObj" type="GLhandleARB"/>
<param name="maxLength" type="GLsizei"/>
<param name="length" type="GLsizei *" output="true"/>
@@ -8189,17 +8054,17 @@
<enum name="TIMESTAMP" value="0x8E28"/>
<type name="int64" size="8"/>
<type name="uint64" unsigned="true" size="8"/>
- <function name="GetQueryObjecti64v" static_dispatch="false" offset="assign">
+ <function name="GetQueryObjecti64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64 *"/>
</function>
- <function name="GetQueryObjectui64v" static_dispatch="false" offset="assign">
+ <function name="GetQueryObjectui64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint64 *"/>
</function>
- <function name="QueryCounter" offset="assign" static_dispatch="false">
+ <function name="QueryCounter">
<param name="id" type="GLuint"/>
<param name="target" type="GLenum"/>
</function>
@@ -8219,25 +8084,24 @@
<enum name="MAX_TRANSFORM_FEEDBACK_BUFFERS" value="0x8E70"/>
<enum name="MAX_VERTEX_STREAMS" value="0x8E71"/>
- <function name="DrawTransformFeedbackStream" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackStream" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="stream" type="GLuint"/>
</function>
- <function name="BeginQueryIndexed" offset="assign">
+ <function name="BeginQueryIndexed">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="id" type="GLuint"/>
</function>
- <function name="EndQueryIndexed" offset="assign">
+ <function name="EndQueryIndexed">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
</function>
- <function name="GetQueryIndexediv" offset="assign">
+ <function name="GetQueryIndexediv">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -8268,15 +8132,13 @@
<xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_ARB_transform_feedback_instanced" number="109">
- <function name="DrawTransformFeedbackInstanced" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackInstanced" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="primcount" type="GLsizei"/>
</function>
- <function name="DrawTransformFeedbackStreamInstanced" offset="assign"
- exec="dynamic">
+ <function name="DrawTransformFeedbackStreamInstanced" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="stream" type="GLuint"/>
@@ -8360,7 +8222,7 @@
<enum name="BUFFER_STORAGE_FLAGS" value="0x8220" />
<enum name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x4000" />
- <function name="BufferStorage" offset="assign">
+ <function name="BufferStorage">
<param name="target" type="GLenum"/>
<param name="size" type="GLsizeiptr"/>
<param name="data" type="const GLvoid *"/>
@@ -8420,7 +8282,7 @@
<category name="GL_EXT_polygon_offset" number="3">
<enum name="POLYGON_OFFSET_BIAS_EXT" value="0x8039"/>
- <function name="PolygonOffsetEXT" offset="assign" deprecated="3.1">
+ <function name="PolygonOffsetEXT" deprecated="3.1">
<param name="factor" type="GLfloat"/>
<param name="bias" type="GLfloat"/>
<glx rop="4098" ignore="true"/>
@@ -8669,7 +8531,7 @@
</enum>
<enum name="TABLE_TOO_LARGE_EXT" value="0x8031"/>
- <function name="GetHistogramEXT" alias="GetHistogram" static_dispatch="false">
+ <function name="GetHistogramEXT" alias="GetHistogram">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -8678,21 +8540,21 @@
<glx vendorpriv="5" dimensions_in_reply="true" img_reset="reset"/>
</function>
- <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv" static_dispatch="false">
+ <function name="GetHistogramParameterfvEXT" alias="GetHistogramParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="6"/>
</function>
- <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv" static_dispatch="false">
+ <function name="GetHistogramParameterivEXT" alias="GetHistogramParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="7"/>
</function>
- <function name="GetMinmaxEXT" alias="GetMinmax" static_dispatch="false">
+ <function name="GetMinmaxEXT" alias="GetMinmax">
<param name="target" type="GLenum"/>
<param name="reset" type="GLboolean"/>
<param name="format" type="GLenum"/>
@@ -8701,38 +8563,38 @@
<glx vendorpriv="8" img_reset="reset"/>
</function>
- <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv" static_dispatch="false">
+ <function name="GetMinmaxParameterfvEXT" alias="GetMinmaxParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="9"/>
</function>
- <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv" static_dispatch="false">
+ <function name="GetMinmaxParameterivEXT" alias="GetMinmaxParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="10"/>
</function>
- <function name="HistogramEXT" alias="Histogram" static_dispatch="false">
+ <function name="HistogramEXT" alias="Histogram">
<param name="target" type="GLenum"/>
<param name="width" type="GLsizei"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
</function>
- <function name="MinmaxEXT" alias="Minmax" static_dispatch="false">
+ <function name="MinmaxEXT" alias="Minmax">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="sink" type="GLboolean"/>
</function>
- <function name="ResetHistogramEXT" alias="ResetHistogram" static_dispatch="false">
+ <function name="ResetHistogramEXT" alias="ResetHistogram">
<param name="target" type="GLenum"/>
</function>
- <function name="ResetMinmaxEXT" alias="ResetMinmax" static_dispatch="false">
+ <function name="ResetMinmaxEXT" alias="ResetMinmax">
<param name="target" type="GLenum"/>
</function>
</category>
@@ -8804,7 +8666,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D" static_dispatch="false">
+ <function name="ConvolutionFilter1DEXT" alias="ConvolutionFilter1D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8813,7 +8675,7 @@
<param name="image" type="const GLvoid *"/>
</function>
- <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D" static_dispatch="false">
+ <function name="ConvolutionFilter2DEXT" alias="ConvolutionFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8823,31 +8685,31 @@
<param name="image" type="const GLvoid *"/>
</function>
- <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf" static_dispatch="false">
+ <function name="ConvolutionParameterfEXT" alias="ConvolutionParameterf">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat"/>
</function>
- <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv" static_dispatch="false">
+ <function name="ConvolutionParameterfvEXT" alias="ConvolutionParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri" static_dispatch="false">
+ <function name="ConvolutionParameteriEXT" alias="ConvolutionParameteri">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint"/>
</function>
- <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv" static_dispatch="false">
+ <function name="ConvolutionParameterivEXT" alias="ConvolutionParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D" static_dispatch="false">
+ <function name="CopyConvolutionFilter1DEXT" alias="CopyConvolutionFilter1D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8855,7 +8717,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D" static_dispatch="false">
+ <function name="CopyConvolutionFilter2DEXT" alias="CopyConvolutionFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8864,7 +8726,7 @@
<param name="height" type="GLsizei"/>
</function>
- <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter" static_dispatch="false">
+ <function name="GetConvolutionFilterEXT" alias="GetConvolutionFilter">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -8872,21 +8734,21 @@
<glx vendorpriv="1" dimensions_in_reply="true"/>
</function>
- <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv" static_dispatch="false">
+ <function name="GetConvolutionParameterfvEXT" alias="GetConvolutionParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="2"/>
</function>
- <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv" static_dispatch="false">
+ <function name="GetConvolutionParameterivEXT" alias="GetConvolutionParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="3"/>
</function>
- <function name="GetSeparableFilterEXT" alias="GetSeparableFilter" static_dispatch="false">
+ <function name="GetSeparableFilterEXT" alias="GetSeparableFilter">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -8896,7 +8758,7 @@
<glx vendorpriv="4" handcode="true"/>
</function>
- <function name="SeparableFilter2DEXT" alias="SeparableFilter2D" static_dispatch="false">
+ <function name="SeparableFilter2DEXT" alias="SeparableFilter2D">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8968,7 +8830,7 @@
<size name="GetColorTableParameterivSGI" mode="get"/>
</enum>
- <function name="ColorTableSGI" alias="ColorTable" static_dispatch="false">
+ <function name="ColorTableSGI" alias="ColorTable">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="width" type="GLsizei"/>
@@ -8977,19 +8839,19 @@
<param name="table" type="const GLvoid *"/>
</function>
- <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv" static_dispatch="false">
+ <function name="ColorTableParameterfvSGI" alias="ColorTableParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv" static_dispatch="false">
+ <function name="ColorTableParameterivSGI" alias="ColorTableParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLint *"/>
</function>
- <function name="CopyColorTableSGI" alias="CopyColorTable" static_dispatch="false">
+ <function name="CopyColorTableSGI" alias="CopyColorTable">
<param name="target" type="GLenum"/>
<param name="internalformat" type="GLenum"/>
<param name="x" type="GLint"/>
@@ -8997,7 +8859,7 @@
<param name="width" type="GLsizei"/>
</function>
- <function name="GetColorTableSGI" alias="GetColorTable" static_dispatch="false">
+ <function name="GetColorTableSGI" alias="GetColorTable">
<param name="target" type="GLenum"/>
<param name="format" type="GLenum"/>
<param name="type" type="GLenum"/>
@@ -9005,14 +8867,14 @@
<glx vendorpriv="4098" dimensions_in_reply="true"/>
</function>
- <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv" static_dispatch="false">
+ <function name="GetColorTableParameterfvSGI" alias="GetColorTableParameterfv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="4099"/>
</function>
- <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv" static_dispatch="false">
+ <function name="GetColorTableParameterivSGI" alias="GetColorTableParameteriv">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -9170,15 +9032,13 @@
</category>
<category name="GL_SGIS_multisample" number="25">
- <function name="SampleMaskSGIS" offset="assign" static_dispatch="false"
- exec="skip">
+ <function name="SampleMaskSGIS" exec="skip">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
<glx rop="2048"/>
</function>
- <function name="SamplePatternSGIS" offset="assign" static_dispatch="false"
- exec="skip">
+ <function name="SamplePatternSGIS" exec="skip">
<param name="pattern" type="GLenum"/>
<glx rop="2049"/>
</function>
@@ -9209,7 +9069,7 @@
<param name="i" type="GLint"/>
</function>
- <function name="ColorPointerEXT" offset="assign" deprecated="3.1">
+ <function name="ColorPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9224,7 +9084,7 @@
<param name="count" type="GLsizei"/>
</function>
- <function name="EdgeFlagPointerEXT" offset="assign" deprecated="3.1">
+ <function name="EdgeFlagPointerEXT" deprecated="3.1">
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
<param name="pointer" type="const GLboolean *"/>
@@ -9236,7 +9096,7 @@
<param name="params" type="GLvoid **" output="true"/>
</function>
- <function name="IndexPointerEXT" offset="assign" deprecated="3.1">
+ <function name="IndexPointerEXT" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9244,7 +9104,7 @@
<glx handcode="true"/>
</function>
- <function name="NormalPointerEXT" offset="assign" deprecated="3.1">
+ <function name="NormalPointerEXT" deprecated="3.1">
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9252,7 +9112,7 @@
<glx handcode="true"/>
</function>
- <function name="TexCoordPointerEXT" offset="assign" deprecated="3.1">
+ <function name="TexCoordPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9261,7 +9121,7 @@
<glx handcode="true"/>
</function>
- <function name="VertexPointerEXT" offset="assign" deprecated="3.1">
+ <function name="VertexPointerEXT" deprecated="3.1">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
@@ -9589,7 +9449,7 @@
<!-- Extension number 73 is not listed in the extension registry. -->
<category name="GL_EXT_color_subtable" number="74">
- <function name="ColorSubTableEXT" alias="ColorSubTable" static_dispatch="false">
+ <function name="ColorSubTableEXT" alias="ColorSubTable">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="count" type="GLsizei"/>
@@ -9598,7 +9458,7 @@
<param name="data" type="const GLvoid *"/>
</function>
- <function name="CopyColorSubTableEXT" alias="CopyColorSubTable" static_dispatch="false">
+ <function name="CopyColorSubTableEXT" alias="CopyColorSubTable">
<param name="target" type="GLenum"/>
<param name="start" type="GLsizei"/>
<param name="x" type="GLint"/>
@@ -9800,13 +9660,13 @@
<enum name="ARRAY_ELEMENT_LOCK_FIRST_EXT" value="0x81A8"/>
<enum name="ARRAY_ELEMENT_LOCK_COUNT_EXT" value="0x81A9"/>
- <function name="LockArraysEXT" offset="assign" deprecated="3.1">
+ <function name="LockArraysEXT" deprecated="3.1">
<param name="first" type="GLint"/>
<param name="count" type="GLsizei"/>
<glx handcode="true" ignore="true"/>
</function>
- <function name="UnlockArraysEXT" offset="assign" deprecated="3.1">
+ <function name="UnlockArraysEXT" deprecated="3.1">
<glx handcode="true" ignore="true"/>
</function>
</category>
@@ -10148,13 +10008,13 @@
<param name="v" type="const GLdouble *"/>
</function>
- <function name="SecondaryColor3fEXT" offset="assign" vectorequiv="SecondaryColor3fvEXT">
+ <function name="SecondaryColor3fEXT" vectorequiv="SecondaryColor3fvEXT">
<param name="red" type="GLfloat"/>
<param name="green" type="GLfloat"/>
<param name="blue" type="GLfloat"/>
</function>
- <function name="SecondaryColor3fvEXT" offset="assign">
+ <function name="SecondaryColor3fvEXT">
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4129"/>
</function>
@@ -10236,8 +10096,7 @@
<param name="primcount" type="GLsizei"/>
</function>
- <function name="MultiDrawElementsEXT" offset="assign" es1="1.0" es2="2.0"
- exec="dynamic">
+ <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -10248,12 +10107,11 @@
</category>
<category name="GL_EXT_fog_coord" number="149">
- <function name="FogCoordfEXT" offset="assign" vectorequiv="FogCoordfvEXT"
- exec="dynamic">
+ <function name="FogCoordfEXT" vectorequiv="FogCoordfvEXT" exec="dynamic">
<param name="coord" type="GLfloat"/>
</function>
- <function name="FogCoordfvEXT" offset="assign" exec="dynamic">
+ <function name="FogCoordfvEXT" exec="dynamic">
<param name="coord" type="const GLfloat *" count="1"/>
<glx rop="4124"/>
</function>
@@ -11105,7 +10963,7 @@
</category>
<category name="GL_MESA_resize_buffers" number="196">
- <function name="ResizeBuffersMESA" offset="assign" exec="skip">
+ <function name="ResizeBuffersMESA" exec="skip">
<glx ignore="true"/>
</function>
</category>
@@ -11187,7 +11045,7 @@
<param name="v" type="const GLshort *"/>
</function>
- <function name="WindowPos4dMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4dMESA" deprecated="3.1">
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
@@ -11195,12 +11053,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4dvMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4dvMESA" deprecated="3.1">
<param name="v" type="const GLdouble *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4fMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4fMESA" deprecated="3.1">
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
@@ -11208,12 +11066,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4fvMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4fvMESA" deprecated="3.1">
<param name="v" type="const GLfloat *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4iMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4iMESA" deprecated="3.1">
<param name="x" type="GLint"/>
<param name="y" type="GLint"/>
<param name="z" type="GLint"/>
@@ -11221,12 +11079,12 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4ivMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4ivMESA" deprecated="3.1">
<param name="v" type="const GLint *"/>
<glx ignore="true"/>
</function>
- <function name="WindowPos4sMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4sMESA" deprecated="3.1">
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
<param name="z" type="GLshort"/>
@@ -11234,7 +11092,7 @@
<glx ignore="true"/>
</function>
- <function name="WindowPos4svMESA" offset="assign" deprecated="3.1">
+ <function name="WindowPos4svMESA" deprecated="3.1">
<param name="v" type="const GLshort *"/>
<glx ignore="true"/>
</function>
@@ -11248,7 +11106,7 @@
</category>
<category name="GL_IBM_multimode_draw_arrays" number="200">
- <function name="MultiModeDrawArraysIBM" offset="assign" static_dispatch="false">
+ <function name="MultiModeDrawArraysIBM">
<param name="mode" type="const GLenum *"/>
<param name="first" type="const GLint *"/>
<param name="count" type="const GLsizei *"/>
@@ -11257,7 +11115,7 @@
<glx handcode="true" ignore="true"/>
</function>
- <function name="MultiModeDrawElementsIBM" offset="assign" static_dispatch="false">
+ <function name="MultiModeDrawElementsIBM">
<param name="mode" type="const GLenum *"/>
<param name="count" type="const GLsizei *"/>
<param name="type" type="GLenum"/>
@@ -11354,12 +11212,12 @@
</category>
<category name="GL_EXT_multisample" number="209">
- <function name="SampleMaskEXT" alias="SampleMaskSGIS" static_dispatch="false">
+ <function name="SampleMaskEXT" alias="SampleMaskSGIS">
<param name="value" type="GLclampf"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="SamplePatternEXT" alias="SamplePatternSGIS" static_dispatch="false">
+ <function name="SamplePatternEXT" alias="SamplePatternSGIS">
<param name="pattern" type="GLenum"/>
</function>
</category>
@@ -11656,8 +11514,7 @@
<enum name="MAP2_VERTEX_ATTRIB14_4_NV" value="0x867E"/>
<enum name="MAP2_VERTEX_ATTRIB15_4_NV" value="0x867F"/>
- <function name="AreProgramsResidentNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="AreProgramsResidentNV" deprecated="3.1" exec="skip">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<param name="residences" type="GLboolean *" output="true" count="n"/>
@@ -11675,8 +11532,7 @@
<param name="programs" type="const GLuint *"/>
</function>
- <function name="ExecuteProgramNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ExecuteProgramNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="params" type="const GLfloat *" count="4"/>
@@ -11694,8 +11550,7 @@
of these functions.
-->
- <function name="GetProgramParameterdvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramParameterdvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11703,8 +11558,7 @@
<glx vendorpriv="1297"/>
</function>
- <function name="GetProgramParameterfvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramParameterfvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11712,24 +11566,21 @@
<glx vendorpriv="1296"/>
</function>
- <function name="GetProgramivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramivNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
<glx vendorpriv="1298"/>
</function>
- <function name="GetProgramStringNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetProgramStringNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="program" type="GLubyte *" output="true"/>
<glx vendorpriv="1299" handcode="server" always_array="true"/>
</function>
- <function name="GetTrackMatrixivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetTrackMatrixivNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="address" type="GLuint"/>
<param name="pname" type="GLenum"/>
@@ -11737,24 +11588,21 @@
<glx vendorpriv="1300"/>
</function>
- <function name="GetVertexAttribdvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribdvNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLdouble *" output="true" variable_param="pname"/>
<glx vendorpriv="1301"/>
</function>
- <function name="GetVertexAttribfvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribfvNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfloat *" output="true" variable_param="pname"/>
<glx vendorpriv="1302"/>
</function>
- <function name="GetVertexAttribivNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="GetVertexAttribivNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint *" output="true" variable_param="pname"/>
@@ -11772,8 +11620,7 @@
<return type="GLboolean"/>
</function>
- <function name="LoadProgramNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="LoadProgramNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
@@ -11811,8 +11658,7 @@
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramParameters4dvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ProgramParameters4dvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="num" type="GLsizei" counter="true"/>
@@ -11820,8 +11666,7 @@
<glx rop="4187"/>
</function>
- <function name="ProgramParameters4fvNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="ProgramParameters4fvNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="num" type="GLsizei" counter="true"/>
@@ -11829,15 +11674,13 @@
<glx rop="4186"/>
</function>
- <function name="RequestResidentProgramsNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="RequestResidentProgramsNV" deprecated="3.1" exec="skip">
<param name="n" type="GLsizei" counter="true"/>
<param name="ids" type="const GLuint *" count="n"/>
<glx rop="4182"/>
</function>
- <function name="TrackMatrixNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="TrackMatrixNV" deprecated="3.1" exec="skip">
<param name="target" type="GLenum"/>
<param name="address" type="GLuint"/>
<param name="matrix" type="GLenum"/>
@@ -11845,8 +11688,7 @@
<glx rop="4188"/>
</function>
- <function name="VertexAttribPointerNV" offset="assign" deprecated="3.1"
- exec="skip">
+ <function name="VertexAttribPointerNV" deprecated="3.1" exec="skip">
<param name="index" type="GLuint"/>
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
@@ -11855,32 +11697,32 @@
<glx handcode="true"/>
</function>
- <function name="VertexAttrib1sNV" offset="assign"
+ <function name="VertexAttrib1sNV"
vectorequiv="VertexAttrib1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
</function>
- <function name="VertexAttrib1svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="1"/>
<glx rop="4265"/>
</function>
- <function name="VertexAttrib2sNV" offset="assign"
+ <function name="VertexAttrib2sNV"
vectorequiv="VertexAttrib2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
<param name="y" type="GLshort"/>
</function>
- <function name="VertexAttrib2svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="2"/>
<glx rop="4266"/>
</function>
- <function name="VertexAttrib3sNV" offset="assign"
+ <function name="VertexAttrib3sNV"
vectorequiv="VertexAttrib3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
@@ -11888,13 +11730,13 @@
<param name="z" type="GLshort"/>
</function>
- <function name="VertexAttrib3svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="3"/>
<glx rop="4267"/>
</function>
- <function name="VertexAttrib4sNV" offset="assign"
+ <function name="VertexAttrib4sNV"
vectorequiv="VertexAttrib4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLshort"/>
@@ -11903,60 +11745,53 @@
<param name="w" type="GLshort"/>
</function>
- <function name="VertexAttrib4svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLshort *" count="4"/>
<glx rop="4268"/>
</function>
- <function name="VertexAttrib1fNV" offset="assign"
- vectorequiv="VertexAttrib1fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib1fNV"
+ vectorequiv="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
</function>
- <function name="VertexAttrib1fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib1fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="1"/>
<glx rop="4269"/>
</function>
- <function name="VertexAttrib2fNV" offset="assign"
- vectorequiv="VertexAttrib2fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib2fNV"
+ vectorequiv="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
</function>
- <function name="VertexAttrib2fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib2fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="2"/>
<glx rop="4270"/>
</function>
- <function name="VertexAttrib3fNV" offset="assign"
- vectorequiv="VertexAttrib3fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib3fNV"
+ vectorequiv="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
<param name="z" type="GLfloat"/>
</function>
- <function name="VertexAttrib3fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib3fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="3"/>
<glx rop="4271"/>
</function>
- <function name="VertexAttrib4fNV" offset="assign"
- vectorequiv="VertexAttrib4fvNV" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib4fNV"
+ vectorequiv="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="x" type="GLfloat"/>
<param name="y" type="GLfloat"/>
@@ -11964,39 +11799,38 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="VertexAttrib4fvNV" offset="assign" deprecated="3.1"
- exec="dynamic">
+ <function name="VertexAttrib4fvNV" deprecated="3.1" exec="dynamic">
<param name="index" type="GLuint"/>
<param name="v" type="const GLfloat *" count="4"/>
<glx rop="4272"/>
</function>
- <function name="VertexAttrib1dNV" offset="assign"
+ <function name="VertexAttrib1dNV"
vectorequiv="VertexAttrib1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
</function>
- <function name="VertexAttrib1dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="1"/>
<glx rop="4273" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib2dNV" offset="assign"
+ <function name="VertexAttrib2dNV"
vectorequiv="VertexAttrib2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
- <function name="VertexAttrib2dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="2"/>
<glx rop="4274" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib3dNV" offset="assign"
+ <function name="VertexAttrib3dNV"
vectorequiv="VertexAttrib3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
@@ -12004,13 +11838,13 @@
<param name="z" type="GLdouble"/>
</function>
- <function name="VertexAttrib3dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="3"/>
<glx rop="4275" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib4dNV" offset="assign"
+ <function name="VertexAttrib4dNV"
vectorequiv="VertexAttrib4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLdouble"/>
@@ -12019,13 +11853,13 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="VertexAttrib4dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLdouble *" count="4"/>
<glx rop="4276" doubles_in_order="true"/>
</function>
- <function name="VertexAttrib4ubNV" offset="assign"
+ <function name="VertexAttrib4ubNV"
vectorequiv="VertexAttrib4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="x" type="GLubyte"/>
@@ -12034,97 +11868,97 @@
<param name="w" type="GLubyte"/>
</function>
- <function name="VertexAttrib4ubvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttrib4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="v" type="const GLubyte *" count="4"/>
<glx rop="4277"/>
</function>
- <function name="VertexAttribs1svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n"/>
<glx rop="4202"/>
</function>
- <function name="VertexAttribs2svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="2"/>
<glx rop="4203"/>
</function>
- <function name="VertexAttribs3svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="3"/>
<glx rop="4204"/>
</function>
- <function name="VertexAttribs4svNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4svNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLshort *" count="n" count_scale="4"/>
<glx rop="4205"/>
</function>
- <function name="VertexAttribs1fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n"/>
<glx rop="4206"/>
</function>
- <function name="VertexAttribs2fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="2"/>
<glx rop="4207"/>
</function>
- <function name="VertexAttribs3fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="3"/>
<glx rop="4208"/>
</function>
- <function name="VertexAttribs4fvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4fvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLfloat *" count="n" count_scale="4"/>
<glx rop="4209"/>
</function>
- <function name="VertexAttribs1dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs1dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n"/>
<glx rop="4210" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs2dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs2dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="2"/>
<glx rop="4211" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs3dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs3dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="3"/>
<glx rop="4212" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs4dvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4dvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLdouble *" count="n" count_scale="4"/>
<glx rop="4213" doubles_in_order="true"/>
</function>
- <function name="VertexAttribs4ubvNV" offset="assign" deprecated="3.1">
+ <function name="VertexAttribs4ubvNV" deprecated="3.1">
<param name="index" type="GLuint"/>
<param name="n" type="GLsizei" counter="true"/>
<param name="v" type="const GLubyte *" count="n" count_scale="4"/>
@@ -12193,22 +12027,22 @@
<size name="GetTexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
</enum>
- <function name="TexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="TexBumpParameterfvATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="const GLfloat *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="TexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="TexBumpParameterivATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="const GLint *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetTexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="GetTexBumpParameterfvATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat *" variable_param="pname"/>
<glx ignore="true"/>
</function>
- <function name="GetTexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
+ <function name="GetTexBumpParameterivATI" deprecated="3.1" exec="skip">
<param name="pname" type="GLenum"/>
<param name="param" type="GLint *" variable_param="pname"/>
<glx ignore="true"/>
@@ -12327,45 +12161,45 @@
redudndant garbage. There are a lot of enums with the value 0x00000001.
-->
- <function name="GenFragmentShadersATI" offset="assign" deprecated="3.1">
+ <function name="GenFragmentShadersATI" deprecated="3.1">
<return type="GLuint"/>
<param name="range" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BindFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="BindFragmentShaderATI" deprecated="3.1">
<param name="id" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="DeleteFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="DeleteFragmentShaderATI" deprecated="3.1">
<param name="id" type="GLuint"/>
<glx ignore="true"/>
</function>
- <function name="BeginFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="BeginFragmentShaderATI" deprecated="3.1">
<glx ignore="true"/>
</function>
- <function name="EndFragmentShaderATI" offset="assign" deprecated="3.1">
+ <function name="EndFragmentShaderATI" deprecated="3.1">
<glx ignore="true"/>
</function>
- <function name="PassTexCoordATI" offset="assign" deprecated="3.1">
+ <function name="PassTexCoordATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="coord" type="GLuint"/>
<param name="swizzle" type="GLenum"/>
<glx ignore="true"/>
</function>
- <function name="SampleMapATI" offset="assign" deprecated="3.1">
+ <function name="SampleMapATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="interp" type="GLuint"/>
<param name="swizzle" type="GLenum"/>
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp1ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp1ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12376,7 +12210,7 @@
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp2ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp2ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12390,7 +12224,7 @@
<glx ignore="true"/>
</function>
- <function name="ColorFragmentOp3ATI" offset="assign" deprecated="3.1">
+ <function name="ColorFragmentOp3ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMask" type="GLuint"/>
@@ -12407,7 +12241,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp1ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp1ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12417,7 +12251,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp2ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp2ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12430,7 +12264,7 @@
<glx ignore="true"/>
</function>
- <function name="AlphaFragmentOp3ATI" offset="assign" deprecated="3.1">
+ <function name="AlphaFragmentOp3ATI" deprecated="3.1">
<param name="op" type="GLenum"/>
<param name="dst" type="GLuint"/>
<param name="dstMod" type="GLuint"/>
@@ -12446,8 +12280,7 @@
<glx ignore="true"/>
</function>
- <function name="SetFragmentShaderConstantATI" offset="assign"
- deprecated="3.1">
+ <function name="SetFragmentShaderConstantATI" deprecated="3.1">
<param name="dst" type="GLuint"/>
<param name="value" type="const GLfloat *"/>
<glx ignore="true"/>
@@ -12547,8 +12380,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="ActiveStencilFaceEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ActiveStencilFaceEXT" deprecated="3.1">
<param name="face" type="GLenum"/>
<glx rop="4220"/>
</function>
@@ -12588,7 +12420,7 @@
<enum name="MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV" value="0x8868"/>
<enum name="PROGRAM_ERROR_STRING_NV" value="0x8874"/>
- <function name="ProgramNamedParameter4fNV" offset="assign"
+ <function name="ProgramNamedParameter4fNV"
vectorequiv="ProgramNamedParameter4fvNV" deprecated="3.1"
exec="skip">
<param name="id" type="GLuint"/>
@@ -12600,7 +12432,7 @@
<param name="w" type="GLfloat"/>
</function>
- <function name="ProgramNamedParameter4dNV" offset="assign"
+ <function name="ProgramNamedParameter4dNV"
vectorequiv="ProgramNamedParameter4dvNV" deprecated="3.1"
exec="skip">
<param name="id" type="GLuint"/>
@@ -12612,8 +12444,7 @@
<param name="w" type="GLdouble"/>
</function>
- <function name="ProgramNamedParameter4fvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="ProgramNamedParameter4fvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12621,8 +12452,7 @@
<glx rop="4218"/>
</function>
- <function name="ProgramNamedParameter4dvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="ProgramNamedParameter4dvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12630,8 +12460,7 @@
<glx rop="4219"/>
</function>
- <function name="GetProgramNamedParameterfvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="GetProgramNamedParameterfvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12639,8 +12468,7 @@
<glx vendorpriv="1310" always_array="true"/>
</function>
- <function name="GetProgramNamedParameterdvNV" offset="assign"
- deprecated="3.1" exec="skip">
+ <function name="GetProgramNamedParameterdvNV" deprecated="3.1" exec="skip">
<param name="id" type="GLuint"/>
<param name="len" type="GLsizei" counter="true"/>
<param name="name" type="const GLubyte *" count="len"/>
@@ -12684,7 +12512,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="DepthBoundsEXT" offset="assign" static_dispatch="false">
+ <function name="DepthBoundsEXT">
<param name="zmin" type="GLclampd"/>
<param name="zmax" type="GLclampd"/>
<glx rop="4229" ignore="true"/>
@@ -12705,7 +12533,7 @@
<size name="Get" mode="get"/>
</enum>
- <function name="BlendEquationSeparateEXT" static_dispatch="false" alias="BlendEquationSeparate">
+ <function name="BlendEquationSeparateEXT" alias="BlendEquationSeparate">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -12789,14 +12617,12 @@
<enum name="BUFFER_FLUSHING_UNMAP_APPLE" count="1" value="0x8A13">
<size name="GetBufferParameteriv" mode="get"/>
</enum>
- <function name="BufferParameteriAPPLE" offset="assign"
- static_dispatch="false" exec="skip">
+ <function name="BufferParameteriAPPLE" exec="skip">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLint"/>
</function>
- <function name="FlushMappedBufferRangeAPPLE" offset="assign"
- static_dispatch="false" exec="skip">
+ <function name="FlushMappedBufferRangeAPPLE" exec="skip">
<param name="target" type="GLenum"/>
<param name="offset" type="GLintptr"/>
<param name="size" type="GLsizeiptr"/>
@@ -12875,7 +12701,7 @@
<enum name="POLYGON_OFFSET_CLAMP_EXT" value="0x8E1B">
<size name="Get" mode="get"/>
</enum>
- <function name="PolygonOffsetClampEXT" offset="assign">
+ <function name="PolygonOffsetClampEXT">
<param name="factor" type="GLfloat"/>
<param name="units" type="GLfloat"/>
<param name="clamp" type="GLfloat"/>
@@ -12885,7 +12711,7 @@
<!-- Unnumbered extensions sorted by name. -->
<category name="GL_ATI_blend_equation_separate">
- <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate" static_dispatch="false">
+ <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate">
<param name="modeRGB" type="GLenum"/>
<param name="modeA" type="GLenum"/>
</function>
@@ -12905,14 +12731,13 @@
<size name="Get" mode="get"/>
</enum>
- <function name="StencilOpSeparateATI" alias="StencilOpSeparate" static_dispatch="false">
+ <function name="StencilOpSeparateATI" alias="StencilOpSeparate">
<param name="face" type="GLenum"/>
<param name="sfail" type="GLenum"/>
<param name="zfail" type="GLenum"/>
<param name="zpass" type="GLenum"/>
</function>
- <function name="StencilFuncSeparateATI" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="StencilFuncSeparateATI" deprecated="3.1">
<param name="frontfunc" type="GLenum"/>
<param name="backfunc" type="GLenum"/>
<param name="ref" type="GLint"/>
@@ -12922,16 +12747,14 @@
</category>
<category name="GL_EXT_gpu_program_parameters">
- <function name="ProgramEnvParameters4fvEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ProgramEnvParameters4fvEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
<param name="params" type="const GLfloat *"/>
</function>
- <function name="ProgramLocalParameters4fvEXT" offset="assign"
- static_dispatch="false" deprecated="3.1">
+ <function name="ProgramLocalParameters4fvEXT" deprecated="3.1">
<param name="target" type="GLenum"/>
<param name="index" type="GLuint"/>
<param name="count" type="GLsizei"/>
@@ -12943,12 +12766,12 @@
<enum name="TIME_ELAPSED_EXT" value="0x88BF"/>
<type name="int64EXT" size="8"/>
<type name="uint64EXT" unsigned="true" size="8"/>
- <function name="GetQueryObjecti64vEXT" static_dispatch="false" alias="GetQueryObjecti64v">
+ <function name="GetQueryObjecti64vEXT" alias="GetQueryObjecti64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLint64EXT *"/>
</function>
- <function name="GetQueryObjectui64vEXT" static_dispatch="false" alias="GetQueryObjectui64v">
+ <function name="GetQueryObjectui64vEXT" alias="GetQueryObjectui64v">
<param name="id" type="GLuint"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLuint64EXT *"/>
@@ -12956,7 +12779,7 @@
</category>
<category name="GL_INGR_blend_func_separate">
- <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate" static_dispatch="false">
+ <function name="BlendFuncSeparateINGR" alias="BlendFuncSeparate">
<param name="sfactorRGB" type="GLenum"/>
<param name="dfactorRGB" type="GLenum"/>
<param name="sfactorAlpha" type="GLenum"/>
@@ -12984,12 +12807,12 @@
<size name="PointParameterfv"/>
</enum>
- <function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false">
+ <function name="PointParameterfSGIS" alias="PointParameterf">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfloat"/>
</function>
- <function name="PointParameterfvSGIS" alias="PointParameterfv" static_dispatch="false">
+ <function name="PointParameterfvSGIS" alias="PointParameterfv">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfloat *"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py b/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
index 23e23295b..fa6217e1b 100644
--- a/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_SPARC_asm.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
class PrintGenericStubs(gl_XML.gl_print_base):
def __init__(self):
@@ -244,30 +245,24 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML description of an API.')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
+def main():
+ """Main function."""
+ args = _parser()
+ printer = PrintGenericStubs()
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
+ printer.Print(api)
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
- printer.Print(api)
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_XML.py b/mesalib/src/mapi/glapi/gen/gl_XML.py
index 1a2bc2b91..67aba81a7 100644
--- a/mesalib/src/mapi/glapi/gen/gl_XML.py
+++ b/mesalib/src/mapi/glapi/gen/gl_XML.py
@@ -30,6 +30,7 @@ import xml.etree.ElementTree as ET
import re, sys, string
import os.path
import typeexpr
+import static_data
def parse_GL_API( file_name, factory = None ):
@@ -625,7 +626,7 @@ class gl_function( gl_item ):
# Decimal('1.1') }.
self.api_map = {}
- self.assign_offset = 0
+ self.assign_offset = False
self.static_entry_points = []
@@ -649,7 +650,7 @@ class gl_function( gl_item ):
name = element.get( "name" )
alias = element.get( "alias" )
- if is_attr_true(element, "static_dispatch", "true"):
+ if name in static_data.functions:
self.static_entry_points.append(name)
self.entry_points.append( name )
@@ -684,16 +685,11 @@ class gl_function( gl_item ):
# Only try to set the offset when a non-alias entry-point
# is being processed.
- offset = element.get( "offset" )
- if offset:
- try:
- o = int( offset )
- self.offset = o
- except Exception, e:
- self.offset = -1
- if offset == "assign":
- self.assign_offset = 1
-
+ if name in static_data.offsets:
+ self.offset = static_data.offsets[name]
+ else:
+ self.offset = -1
+ self.assign_offset = self.exec_flavor != "skip" or name in static_data.unused_functions
if not self.name:
self.name = true_name
diff --git a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
index d158a6b31..fc1528410 100644
--- a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml
@@ -18,45 +18,45 @@
<type name="fixed" size="4" />
<type name="clampx" size="4" />
- <function name="AlphaFuncx" es1="1.0" desktop="false" offset="assign">
+ <function name="AlphaFuncx" es1="1.0" desktop="false">
<param name="func" type="GLenum"/>
<param name="ref" type="GLclampx"/>
</function>
- <function name="ClearColorx" es1="1.0" desktop="false" offset="assign">
+ <function name="ClearColorx" es1="1.0" desktop="false">
<param name="red" type="GLclampx"/>
<param name="green" type="GLclampx"/>
<param name="blue" type="GLclampx"/>
<param name="alpha" type="GLclampx"/>
</function>
- <function name="ClearDepthx" es1="1.0" desktop="false" offset="assign">
+ <function name="ClearDepthx" es1="1.0" desktop="false">
<param name="depth" type="GLclampx"/>
</function>
- <function name="Color4x" es1="1.0" desktop="false" offset="assign">
+ <function name="Color4x" es1="1.0" desktop="false">
<param name="red" type="GLfixed"/>
<param name="green" type="GLfixed"/>
<param name="blue" type="GLfixed"/>
<param name="alpha" type="GLfixed"/>
</function>
- <function name="DepthRangex" es1="1.0" desktop="false" offset="assign">
+ <function name="DepthRangex" es1="1.0" desktop="false">
<param name="zNear" type="GLclampx"/>
<param name="zFar" type="GLclampx"/>
</function>
- <function name="Fogx" es1="1.0" desktop="false" offset="assign">
+ <function name="Fogx" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Fogxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Fogxv" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="Frustumx" es1="1.0" desktop="false" offset="assign">
+ <function name="Frustumx" es1="1.0" desktop="false">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -65,53 +65,53 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="LightModelx" es1="1.0" desktop="false" offset="assign">
+ <function name="LightModelx" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="LightModelxv" es1="1.0" desktop="false" offset="assign">
+ <function name="LightModelxv" es1="1.0" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="Lightx" es1="1.0" desktop="false" offset="assign">
+ <function name="Lightx" es1="1.0" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Lightxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Lightxv" es1="1.0" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="LineWidthx" es1="1.0" desktop="false" offset="assign">
+ <function name="LineWidthx" es1="1.0" desktop="false">
<param name="width" type="GLfixed"/>
</function>
- <function name="LoadMatrixx" es1="1.0" desktop="false" offset="assign">
+ <function name="LoadMatrixx" es1="1.0" desktop="false">
<param name="m" type="const GLfixed *" count="16"/>
</function>
- <function name="Materialx" es1="1.0" desktop="false" offset="assign">
+ <function name="Materialx" es1="1.0" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Materialxv" es1="1.0" desktop="false" offset="assign">
+ <function name="Materialxv" es1="1.0" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="MultMatrixx" es1="1.0" desktop="false" offset="assign">
+ <function name="MultMatrixx" es1="1.0" desktop="false">
<param name="m" type="const GLfixed *" count="16"/>
</function>
- <function name="MultiTexCoord4x" es1="1.0" desktop="false" offset="assign">
+ <function name="MultiTexCoord4x" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="s" type="GLfixed"/>
<param name="t" type="GLfixed"/>
@@ -119,13 +119,13 @@
<param name="q" type="GLfixed"/>
</function>
- <function name="Normal3x" es1="1.0" desktop="false" offset="assign">
+ <function name="Normal3x" es1="1.0" desktop="false">
<param name="nx" type="GLfixed"/>
<param name="ny" type="GLfixed"/>
<param name="nz" type="GLfixed"/>
</function>
- <function name="Orthox" es1="1.0" desktop="false" offset="assign">
+ <function name="Orthox" es1="1.0" desktop="false">
<param name="left" type="GLfixed"/>
<param name="right" type="GLfixed"/>
<param name="bottom" type="GLfixed"/>
@@ -134,59 +134,59 @@
<param name="zFar" type="GLfixed"/>
</function>
- <function name="PointSizex" es1="1.0" desktop="false" offset="assign">
+ <function name="PointSizex" es1="1.0" desktop="false">
<param name="size" type="GLfixed"/>
</function>
- <function name="PolygonOffsetx" es1="1.0" desktop="false" offset="assign">
+ <function name="PolygonOffsetx" es1="1.0" desktop="false">
<param name="factor" type="GLfixed"/>
<param name="units" type="GLfixed"/>
</function>
- <function name="Rotatex" es1="1.0" desktop="false" offset="assign">
+ <function name="Rotatex" es1="1.0" desktop="false">
<param name="angle" type="GLfixed"/>
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="SampleCoveragex" es1="1.0" desktop="false" offset="assign">
+ <function name="SampleCoveragex" es1="1.0" desktop="false">
<param name="value" type="GLclampx"/>
<param name="invert" type="GLboolean"/>
</function>
- <function name="Scalex" es1="1.0" desktop="false" offset="assign">
+ <function name="Scalex" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
- <function name="TexEnvx" es1="1.0" desktop="false" offset="assign">
+ <function name="TexEnvx" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="TexEnvxv" es1="1.0" desktop="false" offset="assign">
+ <function name="TexEnvxv" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
- <function name="TexParameterx" es1="1.0" desktop="false" offset="assign">
+ <function name="TexParameterx" es1="1.0" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="Translatex" es1="1.0" desktop="false" offset="assign">
+ <function name="Translatex" es1="1.0" desktop="false">
<param name="x" type="GLfixed"/>
<param name="y" type="GLfixed"/>
<param name="z" type="GLfixed"/>
</function>
<!-- from GL_OES_single_precision -->
- <function name="Frustumf" es1="1.0" desktop="false" offset="assign">
+ <function name="Frustumf" es1="1.0" desktop="false">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -195,7 +195,7 @@
<param name="zFar" type="GLfloat"/>
</function>
- <function name="Orthof" es1="1.0" desktop="false" offset="assign">
+ <function name="Orthof" es1="1.0" desktop="false">
<param name="left" type="GLfloat"/>
<param name="right" type="GLfloat"/>
<param name="bottom" type="GLfloat"/>
@@ -207,68 +207,68 @@
<category name="es1.1">
<!-- from GL_OES_fixed_point -->
- <function name="ClipPlanex" es1="1.1" desktop="false" offset="assign">
+ <function name="ClipPlanex" es1="1.1" desktop="false">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfixed *" count="4"/>
</function>
- <function name="GetClipPlanex" es1="1.1" offset="assign">
+ <function name="GetClipPlanex" es1="1.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfixed *" output="true" count="4"/>
</function>
- <function name="GetFixedv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetFixedv" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetLightxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetLightxv" es1="1.1" desktop="false">
<param name="light" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetMaterialxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetMaterialxv" es1="1.1" desktop="false">
<param name="face" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexEnvxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetTexEnvxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="GetTexParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="GetTexParameterxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="GLfixed *" output="true" variable_param="pname"/>
</function>
- <function name="PointParameterx" es1="1.1" desktop="false" offset="assign">
+ <function name="PointParameterx" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="param" type="GLfixed"/>
</function>
- <function name="PointParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="PointParameterxv" es1="1.1" desktop="false">
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *"/>
</function>
- <function name="TexParameterxv" es1="1.1" desktop="false" offset="assign">
+ <function name="TexParameterxv" es1="1.1" desktop="false">
<param name="target" type="GLenum"/>
<param name="pname" type="GLenum"/>
<param name="params" type="const GLfixed *" variable_param="pname"/>
</function>
<!-- from GL_OES_single_precision -->
- <function name="ClipPlanef" es1="1.1" desktop="false" offset="assign">
+ <function name="ClipPlanef" es1="1.1" desktop="false">
<param name="plane" type="GLenum"/>
<param name="equation" type="const GLfloat *" count="4"/>
</function>
- <function name="GetClipPlanef" es1="1.1" offset="assign">
+ <function name="GetClipPlanef" es1="1.1">
<param name="plane" type="GLenum"/>
<param name="equation" type="GLfloat *" output="true" count="4"/>
</function>
diff --git a/mesalib/src/mapi/glapi/gen/gl_apitemp.py b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
index 4157032c5..5e985a2ec 100644
--- a/mesalib/src/mapi/glapi/gen/gl_apitemp.py
+++ b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML, glX_XML
import license
-import sys, getopt
class PrintGlOffsets(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -301,27 +302,30 @@ _glapi_proc UNUSED_TABLE_NAME[] = {"""
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c]" % sys.argv[0]
- print "-c Enable compatibility with OpenGL ES."
- sys.exit(1)
-
-if __name__ == '__main__':
- file_name = "gl_API.xml"
+def _parser():
+ """Parser arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ metavar='<input file name>',
+ dest='filename',
+ default="gl_API.xml",
+ help="An XML file describing the API.")
+ parser.add_argument('-c',
+ action='store_true',
+ dest='es',
+ help="Enable OpenGL ES compatibility")
+ return parser.parse_args()
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c")
- except Exception,e:
- show_usage()
- es = False
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = True
+def main():
+ """Main function."""
+ args = _parser()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- printer = PrintGlOffsets(es)
+ printer = PrintGlOffsets(args.es)
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_enums.py b/mesalib/src/mapi/glapi/gen/gl_enums.py
index f45782df8..955f27d08 100644
--- a/mesalib/src/mapi/glapi/gen/gl_enums.py
+++ b/mesalib/src/mapi/glapi/gen/gl_enums.py
@@ -1,8 +1,8 @@
#!/usr/bin/python2
# -*- Mode: Python; py-indent-offset: 8 -*-
-# (C) Copyright Zack Rusin 2005
-# All Rights Reserved.
+# (C) Copyright Zack Rusin 2005. All Rights Reserved.
+# Copyright (C) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -26,6 +26,8 @@
# Authors:
# Zack Rusin <zack@kde.org>
+import argparse
+
import license
import gl_XML
import sys, getopt
@@ -201,21 +203,21 @@ _mesa_lookup_prim_by_nr(GLuint nr)
enum.append( [name, priority] )
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--input_file',
+ required=True,
+ help="Choose an xml file to parse.")
+ return parser.parse_args()
-if __name__ == '__main__':
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:")
- except Exception,e:
- show_usage()
- api_list = []
- for (arg,val) in args:
- if arg == "-f":
- api = gl_XML.parse_GL_API( val )
- api_list.append(api);
+def main():
+ args = _parser()
+ api_list = [gl_XML.parse_GL_API(args.input_file)]
printer = PrintGlEnums()
- printer.Print( api_list )
+ printer.Print(api_list)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_genexec.py b/mesalib/src/mapi/glapi/gen/gl_genexec.py
index 4e76fe3c2..26d8e7bfb 100644
--- a/mesalib/src/mapi/glapi/gen/gl_genexec.py
+++ b/mesalib/src/mapi/glapi/gen/gl_genexec.py
@@ -25,10 +25,12 @@
# _mesa_initialize_exec_table(). It is responsible for populating all
# entries in the "exec" dispatch table that aren't dynamic.
+import argparse
import collections
import license
import gl_XML
-import sys, getopt
+import sys
+import apiexec
exec_flavor_map = {
@@ -175,18 +177,49 @@ class PrintCode(gl_XML.gl_print_base):
raise Exception(
'Unrecognized exec flavor {0!r}'.format(f.exec_flavor))
condition_parts = []
- if f.desktop:
- if f.deprecated:
+ if f.name in apiexec.functions:
+ ex = apiexec.functions[f.name]
+ unconditional_count = 0
+
+ if ex.compatibility is not None:
condition_parts.append('ctx->API == API_OPENGL_COMPAT')
- else:
- condition_parts.append('_mesa_is_desktop_gl(ctx)')
- if 'es1' in f.api_map:
- condition_parts.append('ctx->API == API_OPENGLES')
- if 'es2' in f.api_map:
- if f.api_map['es2'] > 2.0:
- condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(int(f.api_map['es2'] * 10)))
- else:
- condition_parts.append('ctx->API == API_OPENGLES2')
+ unconditional_count += 1
+
+ if ex.core is not None:
+ condition_parts.append('ctx->API == API_OPENGL_CORE')
+ unconditional_count += 1
+
+ if ex.es1 is not None:
+ condition_parts.append('ctx->API == API_OPENGLES')
+ unconditional_count += 1
+
+ if ex.es2 is not None:
+ if ex.es2 > 20:
+ condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(ex.es2))
+ else:
+ condition_parts.append('ctx->API == API_OPENGLES2')
+ unconditional_count += 1
+
+ # If the function is unconditionally available in all four
+ # APIs, then it is always available. Replace the complex
+ # tautology condition with "true" and let GCC do the right
+ # thing.
+ if unconditional_count == 4:
+ condition_parts = ['true']
+ else:
+ if f.desktop:
+ if f.deprecated:
+ condition_parts.append('ctx->API == API_OPENGL_COMPAT')
+ else:
+ condition_parts.append('_mesa_is_desktop_gl(ctx)')
+ if 'es1' in f.api_map:
+ condition_parts.append('ctx->API == API_OPENGLES')
+ if 'es2' in f.api_map:
+ if f.api_map['es2'] > 2.0:
+ condition_parts.append('(ctx->API == API_OPENGLES2 && ctx->Version >= {0})'.format(int(f.api_map['es2'] * 10)))
+ else:
+ condition_parts.append('ctx->API == API_OPENGLES2')
+
if not condition_parts:
# This function does not exist in any API.
continue
@@ -207,24 +240,23 @@ class PrintCode(gl_XML.gl_print_base):
print ' }'
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
-
+def _parser():
+ """Parse arguments and return namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_and_es_API.xml',
+ help='an xml file describing an API')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_and_es_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
+def main():
+ """Main function."""
+ args = _parser()
printer = PrintCode()
-
- api = gl_XML.parse_GL_API(file_name)
+ api = gl_XML.parse_GL_API(args.filename)
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_gentable.py b/mesalib/src/mapi/glapi/gen/gl_gentable.py
index 06a5ebf04..1b3eb7247 100644
--- a/mesalib/src/mapi/glapi/gen/gl_gentable.py
+++ b/mesalib/src/mapi/glapi/gen/gl_gentable.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004, 2005
# (C) Copyright Apple Inc. 2011
+# Copyright (C) 2015 Intel Corporation
# All Rights Reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
@@ -29,9 +30,10 @@
# Based on code ogiginally by:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
header = """/* GLXEXT is the define used in the xserver when the GLX extension is being
* built. Hijack this to determine whether this file is being built for the
@@ -186,23 +188,27 @@ class PrintCode(gl_XML.gl_print_base):
print body_template % vars
return
-def show_usage():
- print "Usage: %s [-f input_file_name]" % sys.argv[0]
- sys.exit(1)
-if __name__ == '__main__':
- file_name = "gl_API.xml"
+def _parser():
+ """Parse arguments and return a namespace object."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file description of an API')
+
+ return parser.parse_args()
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
+def main():
+ """Main function."""
+ args = _parser()
printer = PrintCode()
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_procs.py b/mesalib/src/mapi/glapi/gen/gl_procs.py
index b1fffc4ca..685e2fac3 100644
--- a/mesalib/src/mapi/glapi/gen/gl_procs.py
+++ b/mesalib/src/mapi/glapi/gen/gl_procs.py
@@ -25,9 +25,12 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
-import gl_XML, glX_XML
-import sys, getopt
+import gl_XML
+import glX_XML
+
class PrintGlProcs(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -39,7 +42,6 @@ class PrintGlProcs(gl_XML.gl_print_base):
"""Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
(C) Copyright IBM Corporation 2004, 2006""", "BRIAN PAUL, IBM")
-
def printRealHeader(self):
print """
/* This file is only included by glapi.c and is used for
@@ -161,26 +163,28 @@ typedef struct {
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c]" % sys.argv[0]
- print "-c Enable compatibility with OpenGL ES."
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namepsace."""
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default='gl_API.xml',
+ metavar="input_file_name",
+ dest='file_name',
+ help="Path to an XML description of OpenGL API.")
+ parser.add_argument('-c', '--es-version',
+ dest='es',
+ action="store_true",
+ help="filter functions for es")
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+ api = gl_XML.parse_GL_API(args.file_name, glX_XML.glx_item_factory())
+ PrintGlProcs(args.es).Print(api)
+
if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c")
- except Exception,e:
- show_usage()
-
- es = False
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = True
-
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
- printer = PrintGlProcs(es)
- printer.Print(api)
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py
index fd384689f..3f0290230 100644
--- a/mesalib/src/mapi/glapi/gen/gl_table.py
+++ b/mesalib/src/mapi/glapi/gen/gl_table.py
@@ -2,6 +2,7 @@
# (C) Copyright IBM Corporation 2004
# All Rights Reserved.
+# Copyright (c) 2014 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -25,9 +26,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import gl_XML
import license
-import sys, getopt
+
class PrintGlTable(gl_XML.gl_print_base):
def __init__(self, es=False):
@@ -39,21 +42,20 @@ class PrintGlTable(gl_XML.gl_print_base):
self.license = license.bsd_license_template % ( \
"""Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM")
- self.ifdef_emitted = False;
+ self.ifdef_emitted = False
return
-
def printBody(self, api):
for f in api.functionIterateByOffset():
if not f.is_abi() and not self.ifdef_emitted:
print '#if !defined HAVE_SHARED_GLAPI'
self.ifdef_emitted = True
arg_string = f.get_parameter_string()
- print ' %s (GLAPIENTRYP %s)(%s); /* %d */' % (f.return_type, f.name, arg_string, f.offset)
+ print ' %s (GLAPIENTRYP %s)(%s); /* %d */' % (
+ f.return_type, f.name, arg_string, f.offset)
print '#endif /* !defined HAVE_SHARED_GLAPI */'
-
def printRealHeader(self):
print '#ifndef GLAPIENTRYP'
print '# ifndef GLAPIENTRY'
@@ -68,7 +70,6 @@ class PrintGlTable(gl_XML.gl_print_base):
print '{'
return
-
def printRealFooter(self):
print '};'
return
@@ -81,7 +82,8 @@ class PrintRemapTable(gl_XML.gl_print_base):
self.es = es
self.header_tag = '_DISPATCH_H_'
self.name = "gl_table.py (from Mesa)"
- self.license = license.bsd_license_template % ("(C) Copyright IBM Corporation 2005", "IBM")
+ self.license = license.bsd_license_template % (
+ "(C) Copyright IBM Corporation 2005", "IBM")
return
@@ -100,6 +102,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
"""
return
+
def printBody(self, api):
print '#define CALL_by_offset(disp, cast, offset, parameters) \\'
print ' (*(cast (GET_by_offset(disp, offset)))) parameters'
@@ -124,10 +127,10 @@ class PrintRemapTable(gl_XML.gl_print_base):
count = 0
for f in api.functionIterateByOffset():
if not f.is_abi():
- functions.append( [f, count] )
+ functions.append([f, count])
count += 1
else:
- abi_functions.append( [f, -1] )
+ abi_functions.append([f, -1])
if self.es:
# remember functions with aliases
@@ -165,7 +168,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
print ''
for f, index in abi_functions + functions:
- arg_string = gl_XML.create_parameter_string( f.parameters, 0 )
+ arg_string = gl_XML.create_parameter_string(f.parameters, 0)
print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string)
print '#define CALL_%s(disp, parameters) \\' % (f.name)
@@ -199,40 +202,44 @@ class PrintRemapTable(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m mode] [-c ver]" % sys.argv[0]
- print " -m mode Mode can be 'table' or 'remap_table'."
- print " -c ver Version can be 'es1' or 'es2'."
- sys.exit(1)
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default='gl_API.xml',
+ metavar="input_file_name",
+ dest='file_name',
+ help="Path to an XML description of OpenGL API.")
+ parser.add_argument('-m', '--mode',
+ choices=['table', 'remap_table'],
+ default='table',
+ metavar="mode",
+ help="Generate either a table or a remap_table")
+ parser.add_argument('-c', '--es-version',
+ choices=[None, 'es1', 'es2'],
+ default=None,
+ metavar="ver",
+ dest='es',
+ help="filter functions for es")
+ return parser.parse_args()
+
+
+def main():
+ """Main function."""
+ args = _parser()
+
+ api = gl_XML.parse_GL_API(args.file_name)
+
+ if args.mode == "table":
+ printer = PrintGlTable(args.es)
+ elif args.mode == "remap_table":
+ printer = PrintRemapTable(args.es)
+
+ if args.es is not None:
+ api.filter_functions_by_api(args.es)
+
+ printer.Print(api)
+
if __name__ == '__main__':
- file_name = "gl_API.xml"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:m:c:")
- except Exception,e:
- show_usage()
-
- mode = "table"
- es = None
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-m":
- mode = val
- elif arg == "-c":
- es = val
-
- if mode == "table":
- printer = PrintGlTable(es)
- elif mode == "remap_table":
- printer = PrintRemapTable(es)
- else:
- show_usage()
-
- api = gl_XML.parse_GL_API( file_name )
-
- if es is not None:
- api.filter_functions_by_api(es)
-
- printer.Print( api )
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py b/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
index 7afc2b108..cf42371f8 100644
--- a/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_x86-64_asm.py
@@ -25,9 +25,11 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+import copy
+
import license
import gl_XML, glX_XML
-import sys, getopt, copy
def should_use_push(registers):
for [reg, offset] in registers:
@@ -289,30 +291,25 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
-
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
+def _parser():
+ """Parse arguments and return a namespace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ default='gl_API.xml',
+ dest='filename',
+ help='An XML file describing an API')
+ return parser.parse_args()
+
+
+def main():
+ """Main file."""
+ args = _parser()
+ printer = PrintGenericStubs()
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/gl_x86_asm.py b/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
index f855dbaaa..c0c7941ce 100644
--- a/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
+++ b/mesalib/src/mapi/glapi/gen/gl_x86_asm.py
@@ -25,9 +25,10 @@
# Authors:
# Ian Romanick <idr@us.ibm.com>
+import argparse
+
import license
import gl_XML, glX_XML
-import sys, getopt
class PrintGenericStubs(gl_XML.gl_print_base):
@@ -217,30 +218,22 @@ class PrintGenericStubs(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-m output_mode]" % sys.argv[0]
- sys.exit(1)
+def _parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f',
+ dest='filename',
+ default='gl_API.xml',
+ help='An XML file describing an API.')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- mode = "generic"
-
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "m:f:")
- except Exception,e:
- show_usage()
-
- for (arg,val) in args:
- if arg == '-m':
- mode = val
- elif arg == "-f":
- file_name = val
-
- if mode == "generic":
- printer = PrintGenericStubs()
- else:
- print "ERROR: Invalid mode \"%s\" specified." % mode
- show_usage()
-
- api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory())
+
+def main():
+ args = _parser()
+ printer = PrintGenericStubs()
+
+ api = gl_XML.parse_GL_API(args.filename, glX_XML.glx_item_factory())
printer.Print(api)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/remap_helper.py b/mesalib/src/mapi/glapi/gen/remap_helper.py
index e1a13d0b3..94ae1936d 100644
--- a/mesalib/src/mapi/glapi/gen/remap_helper.py
+++ b/mesalib/src/mapi/glapi/gen/remap_helper.py
@@ -24,9 +24,11 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
-import gl_XML
+import argparse
+
import license
-import sys, getopt, string
+import gl_XML
+
def get_function_spec(func):
sig = ""
@@ -54,6 +56,7 @@ def get_function_spec(func):
return spec
+
class PrintGlRemap(gl_XML.gl_print_base):
def __init__(self):
gl_XML.gl_print_base.__init__(self)
@@ -163,30 +166,34 @@ class PrintGlRemap(gl_XML.gl_print_base):
return
-def show_usage():
- print "Usage: %s [-f input_file_name] [-c ver]" % sys.argv[0]
- print " -c ver Version can be 'es1' or 'es2'."
- sys.exit(1)
+def _parser():
+ """Parse input options and return a namsepace."""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-f', '--filename',
+ default="gl_API.xml",
+ metavar="input_file_name",
+ dest='file_name',
+ help="An xml description file.")
+ parser.add_argument('-c', '--es-version',
+ choices=[None, 'es1', 'es2'],
+ default=None,
+ metavar='ver',
+ dest='es',
+ help='A GLES version to support')
+ return parser.parse_args()
-if __name__ == '__main__':
- file_name = "gl_API.xml"
- try:
- (args, trail) = getopt.getopt(sys.argv[1:], "f:c:")
- except Exception,e:
- show_usage()
+def main():
+ """Main function."""
+ args = _parser()
- es = None
- for (arg,val) in args:
- if arg == "-f":
- file_name = val
- elif arg == "-c":
- es = val
+ api = gl_XML.parse_GL_API(args.file_name)
+ if args.es is not None:
+ api.filter_functions_by_api(args.es)
- api = gl_XML.parse_GL_API( file_name )
+ printer = PrintGlRemap()
+ printer.Print(api)
- if es is not None:
- api.filter_functions_by_api(es)
- printer = PrintGlRemap()
- printer.Print( api )
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/mapi/glapi/gen/static_data.py b/mesalib/src/mapi/glapi/gen/static_data.py
new file mode 100644
index 000000000..142c503b0
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/static_data.py
@@ -0,0 +1,1729 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2015 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.
+
+"""Table of functions that have ABI-mandated offsets in the dispatch table.
+
+This list will never change."""
+offsets = {
+ "NewList": 0,
+ "EndList": 1,
+ "CallList": 2,
+ "CallLists": 3,
+ "DeleteLists": 4,
+ "GenLists": 5,
+ "ListBase": 6,
+ "Begin": 7,
+ "Bitmap": 8,
+ "Color3b": 9,
+ "Color3bv": 10,
+ "Color3d": 11,
+ "Color3dv": 12,
+ "Color3f": 13,
+ "Color3fv": 14,
+ "Color3i": 15,
+ "Color3iv": 16,
+ "Color3s": 17,
+ "Color3sv": 18,
+ "Color3ub": 19,
+ "Color3ubv": 20,
+ "Color3ui": 21,
+ "Color3uiv": 22,
+ "Color3us": 23,
+ "Color3usv": 24,
+ "Color4b": 25,
+ "Color4bv": 26,
+ "Color4d": 27,
+ "Color4dv": 28,
+ "Color4f": 29,
+ "Color4fv": 30,
+ "Color4i": 31,
+ "Color4iv": 32,
+ "Color4s": 33,
+ "Color4sv": 34,
+ "Color4ub": 35,
+ "Color4ubv": 36,
+ "Color4ui": 37,
+ "Color4uiv": 38,
+ "Color4us": 39,
+ "Color4usv": 40,
+ "EdgeFlag": 41,
+ "EdgeFlagv": 42,
+ "End": 43,
+ "Indexd": 44,
+ "Indexdv": 45,
+ "Indexf": 46,
+ "Indexfv": 47,
+ "Indexi": 48,
+ "Indexiv": 49,
+ "Indexs": 50,
+ "Indexsv": 51,
+ "Normal3b": 52,
+ "Normal3bv": 53,
+ "Normal3d": 54,
+ "Normal3dv": 55,
+ "Normal3f": 56,
+ "Normal3fv": 57,
+ "Normal3i": 58,
+ "Normal3iv": 59,
+ "Normal3s": 60,
+ "Normal3sv": 61,
+ "RasterPos2d": 62,
+ "RasterPos2dv": 63,
+ "RasterPos2f": 64,
+ "RasterPos2fv": 65,
+ "RasterPos2i": 66,
+ "RasterPos2iv": 67,
+ "RasterPos2s": 68,
+ "RasterPos2sv": 69,
+ "RasterPos3d": 70,
+ "RasterPos3dv": 71,
+ "RasterPos3f": 72,
+ "RasterPos3fv": 73,
+ "RasterPos3i": 74,
+ "RasterPos3iv": 75,
+ "RasterPos3s": 76,
+ "RasterPos3sv": 77,
+ "RasterPos4d": 78,
+ "RasterPos4dv": 79,
+ "RasterPos4f": 80,
+ "RasterPos4fv": 81,
+ "RasterPos4i": 82,
+ "RasterPos4iv": 83,
+ "RasterPos4s": 84,
+ "RasterPos4sv": 85,
+ "Rectd": 86,
+ "Rectdv": 87,
+ "Rectf": 88,
+ "Rectfv": 89,
+ "Recti": 90,
+ "Rectiv": 91,
+ "Rects": 92,
+ "Rectsv": 93,
+ "TexCoord1d": 94,
+ "TexCoord1dv": 95,
+ "TexCoord1f": 96,
+ "TexCoord1fv": 97,
+ "TexCoord1i": 98,
+ "TexCoord1iv": 99,
+ "TexCoord1s": 100,
+ "TexCoord1sv": 101,
+ "TexCoord2d": 102,
+ "TexCoord2dv": 103,
+ "TexCoord2f": 104,
+ "TexCoord2fv": 105,
+ "TexCoord2i": 106,
+ "TexCoord2iv": 107,
+ "TexCoord2s": 108,
+ "TexCoord2sv": 109,
+ "TexCoord3d": 110,
+ "TexCoord3dv": 111,
+ "TexCoord3f": 112,
+ "TexCoord3fv": 113,
+ "TexCoord3i": 114,
+ "TexCoord3iv": 115,
+ "TexCoord3s": 116,
+ "TexCoord3sv": 117,
+ "TexCoord4d": 118,
+ "TexCoord4dv": 119,
+ "TexCoord4f": 120,
+ "TexCoord4fv": 121,
+ "TexCoord4i": 122,
+ "TexCoord4iv": 123,
+ "TexCoord4s": 124,
+ "TexCoord4sv": 125,
+ "Vertex2d": 126,
+ "Vertex2dv": 127,
+ "Vertex2f": 128,
+ "Vertex2fv": 129,
+ "Vertex2i": 130,
+ "Vertex2iv": 131,
+ "Vertex2s": 132,
+ "Vertex2sv": 133,
+ "Vertex3d": 134,
+ "Vertex3dv": 135,
+ "Vertex3f": 136,
+ "Vertex3fv": 137,
+ "Vertex3i": 138,
+ "Vertex3iv": 139,
+ "Vertex3s": 140,
+ "Vertex3sv": 141,
+ "Vertex4d": 142,
+ "Vertex4dv": 143,
+ "Vertex4f": 144,
+ "Vertex4fv": 145,
+ "Vertex4i": 146,
+ "Vertex4iv": 147,
+ "Vertex4s": 148,
+ "Vertex4sv": 149,
+ "ClipPlane": 150,
+ "ColorMaterial": 151,
+ "CullFace": 152,
+ "Fogf": 153,
+ "Fogfv": 154,
+ "Fogi": 155,
+ "Fogiv": 156,
+ "FrontFace": 157,
+ "Hint": 158,
+ "Lightf": 159,
+ "Lightfv": 160,
+ "Lighti": 161,
+ "Lightiv": 162,
+ "LightModelf": 163,
+ "LightModelfv": 164,
+ "LightModeli": 165,
+ "LightModeliv": 166,
+ "LineStipple": 167,
+ "LineWidth": 168,
+ "Materialf": 169,
+ "Materialfv": 170,
+ "Materiali": 171,
+ "Materialiv": 172,
+ "PointSize": 173,
+ "PolygonMode": 174,
+ "PolygonStipple": 175,
+ "Scissor": 176,
+ "ShadeModel": 177,
+ "TexParameterf": 178,
+ "TexParameterfv": 179,
+ "TexParameteri": 180,
+ "TexParameteriv": 181,
+ "TexImage1D": 182,
+ "TexImage2D": 183,
+ "TexEnvf": 184,
+ "TexEnvfv": 185,
+ "TexEnvi": 186,
+ "TexEnviv": 187,
+ "TexGend": 188,
+ "TexGendv": 189,
+ "TexGenf": 190,
+ "TexGenfv": 191,
+ "TexGeni": 192,
+ "TexGeniv": 193,
+ "FeedbackBuffer": 194,
+ "SelectBuffer": 195,
+ "RenderMode": 196,
+ "InitNames": 197,
+ "LoadName": 198,
+ "PassThrough": 199,
+ "PopName": 200,
+ "PushName": 201,
+ "DrawBuffer": 202,
+ "Clear": 203,
+ "ClearAccum": 204,
+ "ClearIndex": 205,
+ "ClearColor": 206,
+ "ClearStencil": 207,
+ "ClearDepth": 208,
+ "StencilMask": 209,
+ "ColorMask": 210,
+ "DepthMask": 211,
+ "IndexMask": 212,
+ "Accum": 213,
+ "Disable": 214,
+ "Enable": 215,
+ "Finish": 216,
+ "Flush": 217,
+ "PopAttrib": 218,
+ "PushAttrib": 219,
+ "Map1d": 220,
+ "Map1f": 221,
+ "Map2d": 222,
+ "Map2f": 223,
+ "MapGrid1d": 224,
+ "MapGrid1f": 225,
+ "MapGrid2d": 226,
+ "MapGrid2f": 227,
+ "EvalCoord1d": 228,
+ "EvalCoord1dv": 229,
+ "EvalCoord1f": 230,
+ "EvalCoord1fv": 231,
+ "EvalCoord2d": 232,
+ "EvalCoord2dv": 233,
+ "EvalCoord2f": 234,
+ "EvalCoord2fv": 235,
+ "EvalMesh1": 236,
+ "EvalPoint1": 237,
+ "EvalMesh2": 238,
+ "EvalPoint2": 239,
+ "AlphaFunc": 240,
+ "BlendFunc": 241,
+ "LogicOp": 242,
+ "StencilFunc": 243,
+ "StencilOp": 244,
+ "DepthFunc": 245,
+ "PixelZoom": 246,
+ "PixelTransferf": 247,
+ "PixelTransferi": 248,
+ "PixelStoref": 249,
+ "PixelStorei": 250,
+ "PixelMapfv": 251,
+ "PixelMapuiv": 252,
+ "PixelMapusv": 253,
+ "ReadBuffer": 254,
+ "CopyPixels": 255,
+ "ReadPixels": 256,
+ "DrawPixels": 257,
+ "GetBooleanv": 258,
+ "GetClipPlane": 259,
+ "GetDoublev": 260,
+ "GetError": 261,
+ "GetFloatv": 262,
+ "GetIntegerv": 263,
+ "GetLightfv": 264,
+ "GetLightiv": 265,
+ "GetMapdv": 266,
+ "GetMapfv": 267,
+ "GetMapiv": 268,
+ "GetMaterialfv": 269,
+ "GetMaterialiv": 270,
+ "GetPixelMapfv": 271,
+ "GetPixelMapuiv": 272,
+ "GetPixelMapusv": 273,
+ "GetPolygonStipple": 274,
+ "GetString": 275,
+ "GetTexEnvfv": 276,
+ "GetTexEnviv": 277,
+ "GetTexGendv": 278,
+ "GetTexGenfv": 279,
+ "GetTexGeniv": 280,
+ "GetTexImage": 281,
+ "GetTexParameterfv": 282,
+ "GetTexParameteriv": 283,
+ "GetTexLevelParameterfv": 284,
+ "GetTexLevelParameteriv": 285,
+ "IsEnabled": 286,
+ "IsList": 287,
+ "DepthRange": 288,
+ "Frustum": 289,
+ "LoadIdentity": 290,
+ "LoadMatrixf": 291,
+ "LoadMatrixd": 292,
+ "MatrixMode": 293,
+ "MultMatrixf": 294,
+ "MultMatrixd": 295,
+ "Ortho": 296,
+ "PopMatrix": 297,
+ "PushMatrix": 298,
+ "Rotated": 299,
+ "Rotatef": 300,
+ "Scaled": 301,
+ "Scalef": 302,
+ "Translated": 303,
+ "Translatef": 304,
+ "Viewport": 305,
+ "ArrayElement": 306,
+ "ColorPointer": 308,
+ "DisableClientState": 309,
+ "DrawArrays": 310,
+ "DrawElements": 311,
+ "EdgeFlagPointer": 312,
+ "EnableClientState": 313,
+ "GetPointerv": 329,
+ "IndexPointer": 314,
+ "InterleavedArrays": 317,
+ "NormalPointer": 318,
+ "TexCoordPointer": 320,
+ "VertexPointer": 321,
+ "PolygonOffset": 319,
+ "CopyTexImage1D": 323,
+ "CopyTexImage2D": 324,
+ "CopyTexSubImage1D": 325,
+ "CopyTexSubImage2D": 326,
+ "TexSubImage1D": 332,
+ "TexSubImage2D": 333,
+ "AreTexturesResident": 322,
+ "BindTexture": 307,
+ "DeleteTextures": 327,
+ "GenTextures": 328,
+ "IsTexture": 330,
+ "PrioritizeTextures": 331,
+ "Indexub": 315,
+ "Indexubv": 316,
+ "PopClientAttrib": 334,
+ "PushClientAttrib": 335,
+ "BlendColor": 336,
+ "BlendEquation": 337,
+ "DrawRangeElements": 338,
+ "ColorTable": 339,
+ "ColorTableParameterfv": 340,
+ "ColorTableParameteriv": 341,
+ "CopyColorTable": 342,
+ "GetColorTable": 343,
+ "GetColorTableParameterfv": 344,
+ "GetColorTableParameteriv": 345,
+ "ColorSubTable": 346,
+ "CopyColorSubTable": 347,
+ "ConvolutionFilter1D": 348,
+ "ConvolutionFilter2D": 349,
+ "ConvolutionParameterf": 350,
+ "ConvolutionParameterfv": 351,
+ "ConvolutionParameteri": 352,
+ "ConvolutionParameteriv": 353,
+ "CopyConvolutionFilter1D": 354,
+ "CopyConvolutionFilter2D": 355,
+ "GetConvolutionFilter": 356,
+ "GetConvolutionParameterfv": 357,
+ "GetConvolutionParameteriv": 358,
+ "GetSeparableFilter": 359,
+ "SeparableFilter2D": 360,
+ "GetHistogram": 361,
+ "GetHistogramParameterfv": 362,
+ "GetHistogramParameteriv": 363,
+ "GetMinmax": 364,
+ "GetMinmaxParameterfv": 365,
+ "GetMinmaxParameteriv": 366,
+ "Histogram": 367,
+ "Minmax": 368,
+ "ResetHistogram": 369,
+ "ResetMinmax": 370,
+ "TexImage3D": 371,
+ "TexSubImage3D": 372,
+ "CopyTexSubImage3D": 373,
+ "ActiveTexture": 374,
+ "ClientActiveTexture": 375,
+ "MultiTexCoord1d": 376,
+ "MultiTexCoord1dv": 377,
+ "MultiTexCoord1fARB": 378,
+ "MultiTexCoord1fvARB": 379,
+ "MultiTexCoord1i": 380,
+ "MultiTexCoord1iv": 381,
+ "MultiTexCoord1s": 382,
+ "MultiTexCoord1sv": 383,
+ "MultiTexCoord2d": 384,
+ "MultiTexCoord2dv": 385,
+ "MultiTexCoord2fARB": 386,
+ "MultiTexCoord2fvARB": 387,
+ "MultiTexCoord2i": 388,
+ "MultiTexCoord2iv": 389,
+ "MultiTexCoord2s": 390,
+ "MultiTexCoord2sv": 391,
+ "MultiTexCoord3d": 392,
+ "MultiTexCoord3dv": 393,
+ "MultiTexCoord3fARB": 394,
+ "MultiTexCoord3fvARB": 395,
+ "MultiTexCoord3i": 396,
+ "MultiTexCoord3iv": 397,
+ "MultiTexCoord3s": 398,
+ "MultiTexCoord3sv": 399,
+ "MultiTexCoord4d": 400,
+ "MultiTexCoord4dv": 401,
+ "MultiTexCoord4fARB": 402,
+ "MultiTexCoord4fvARB": 403,
+ "MultiTexCoord4i": 404,
+ "MultiTexCoord4iv": 405,
+ "MultiTexCoord4s": 406,
+ "MultiTexCoord4sv": 407
+}
+
+functions = [
+ "Accum",
+ "ActiveTexture",
+ "ActiveTextureARB",
+ "AlphaFunc",
+ "AlphaFuncx",
+ "AreTexturesResident",
+ "AreTexturesResidentEXT",
+ "ArrayElement",
+ "ArrayElementEXT",
+ "AttachObjectARB",
+ "AttachShader",
+ "Begin",
+ "BeginConditionalRender",
+ "BeginConditionalRenderNV",
+ "BeginQuery",
+ "BeginQueryARB",
+ "BeginQueryIndexed",
+ "BeginTransformFeedback",
+ "BindAttribLocation",
+ "BindAttribLocationARB",
+ "BindBuffer",
+ "BindBufferARB",
+ "BindBufferBase",
+ "BindBufferRange",
+ "BindBuffersBase",
+ "BindBuffersRange",
+ "BindFragDataLocation",
+ "BindFragDataLocationEXT",
+ "BindFragDataLocationIndexed",
+ "BindFramebuffer",
+ "BindFramebufferEXT",
+ "BindImageTexture",
+ "BindImageTextures",
+ "BindProgramARB",
+ "BindRenderbuffer",
+ "BindRenderbufferEXT",
+ "BindSampler",
+ "BindSamplers",
+ "BindTexture",
+ "BindTextureEXT",
+ "BindTextures",
+ "BindTransformFeedback",
+ "BindVertexArray",
+ "BindVertexBuffer",
+ "BindVertexBuffers",
+ "Bitmap",
+ "BlendColor",
+ "BlendColorEXT",
+ "BlendEquation",
+ "BlendEquationEXT",
+ "BlendEquationiARB",
+ "BlendEquationSeparate",
+ "BlendEquationSeparateiARB",
+ "BlendFunc",
+ "BlendFunciARB",
+ "BlendFuncSeparate",
+ "BlendFuncSeparateEXT",
+ "BlendFuncSeparateiARB",
+ "BlitFramebuffer",
+ "BufferData",
+ "BufferDataARB",
+ "BufferStorage",
+ "BufferSubData",
+ "BufferSubDataARB",
+ "CallList",
+ "CallLists",
+ "CheckFramebufferStatus",
+ "CheckFramebufferStatusEXT",
+ "ClampColor",
+ "ClampColorARB",
+ "Clear",
+ "ClearAccum",
+ "ClearBufferData",
+ "ClearBufferfi",
+ "ClearBufferfv",
+ "ClearBufferiv",
+ "ClearBufferSubData",
+ "ClearBufferuiv",
+ "ClearColor",
+ "ClearColorIiEXT",
+ "ClearColorIuiEXT",
+ "ClearColorx",
+ "ClearDepth",
+ "ClearDepthf",
+ "ClearDepthx",
+ "ClearIndex",
+ "ClearStencil",
+ "ClearTexImage",
+ "ClearTexSubImage",
+ "ClientActiveTexture",
+ "ClientActiveTextureARB",
+ "ClientWaitSync",
+ "ClipPlane",
+ "ClipPlanef",
+ "ClipPlanex",
+ "Color3b",
+ "Color3bv",
+ "Color3d",
+ "Color3dv",
+ "Color3f",
+ "Color3fv",
+ "Color3i",
+ "Color3iv",
+ "Color3s",
+ "Color3sv",
+ "Color3ub",
+ "Color3ubv",
+ "Color3ui",
+ "Color3uiv",
+ "Color3us",
+ "Color3usv",
+ "Color4b",
+ "Color4bv",
+ "Color4d",
+ "Color4dv",
+ "Color4f",
+ "Color4fv",
+ "Color4i",
+ "Color4iv",
+ "Color4s",
+ "Color4sv",
+ "Color4ub",
+ "Color4ubv",
+ "Color4ui",
+ "Color4uiv",
+ "Color4us",
+ "Color4usv",
+ "Color4x",
+ "ColorMask",
+ "ColorMaski",
+ "ColorMaskIndexedEXT",
+ "ColorMaterial",
+ "ColorP3ui",
+ "ColorP3uiv",
+ "ColorP4ui",
+ "ColorP4uiv",
+ "ColorPointer",
+ "ColorPointerEXT",
+ "ColorSubTable",
+ "ColorTable",
+ "ColorTableParameterfv",
+ "ColorTableParameteriv",
+ "CompileShader",
+ "CompileShaderARB",
+ "CompressedTexImage1D",
+ "CompressedTexImage1DARB",
+ "CompressedTexImage2D",
+ "CompressedTexImage2DARB",
+ "CompressedTexImage3D",
+ "CompressedTexImage3DARB",
+ "CompressedTexSubImage1D",
+ "CompressedTexSubImage1DARB",
+ "CompressedTexSubImage2D",
+ "CompressedTexSubImage2DARB",
+ "CompressedTexSubImage3D",
+ "CompressedTexSubImage3DARB",
+ "ConvolutionFilter1D",
+ "ConvolutionFilter2D",
+ "ConvolutionParameterf",
+ "ConvolutionParameterfv",
+ "ConvolutionParameteri",
+ "ConvolutionParameteriv",
+ "CopyBufferSubData",
+ "CopyColorSubTable",
+ "CopyColorTable",
+ "CopyConvolutionFilter1D",
+ "CopyConvolutionFilter2D",
+ "CopyImageSubData",
+ "CopyPixels",
+ "CopyTexImage1D",
+ "CopyTexImage2D",
+ "CopyTexSubImage1D",
+ "CopyTexSubImage2D",
+ "CopyTexSubImage3D",
+ "CopyTexSubImage3DEXT",
+ "CreateProgram",
+ "CreateProgramObjectARB",
+ "CreateShader",
+ "CreateShaderObjectARB",
+ "CullFace",
+ "DebugMessageCallback",
+ "DebugMessageCallbackARB",
+ "DebugMessageControl",
+ "DebugMessageControlARB",
+ "DebugMessageInsert",
+ "DebugMessageInsertARB",
+ "DeleteBuffers",
+ "DeleteBuffersARB",
+ "DeleteFramebuffers",
+ "DeleteFramebuffersEXT",
+ "DeleteLists",
+ "DeleteObjectARB",
+ "DeleteProgram",
+ "DeleteProgramsARB",
+ "DeleteQueries",
+ "DeleteQueriesARB",
+ "DeleteRenderbuffers",
+ "DeleteRenderbuffersEXT",
+ "DeleteSamplers",
+ "DeleteShader",
+ "DeleteSync",
+ "DeleteTextures",
+ "DeleteTexturesEXT",
+ "DeleteTransformFeedbacks",
+ "DeleteVertexArrays",
+ "DepthFunc",
+ "DepthMask",
+ "DepthRange",
+ "DepthRangeArrayv",
+ "DepthRangef",
+ "DepthRangeIndexed",
+ "DepthRangex",
+ "DetachObjectARB",
+ "DetachShader",
+ "Disable",
+ "DisableClientState",
+ "Disablei",
+ "DisableIndexedEXT",
+ "DisableVertexAttribArray",
+ "DisableVertexAttribArrayARB",
+ "DispatchCompute",
+ "DispatchComputeIndirect",
+ "DrawArrays",
+ "DrawArraysEXT",
+ "DrawArraysIndirect",
+ "DrawArraysInstanced",
+ "DrawArraysInstancedARB",
+ "DrawArraysInstancedBaseInstance",
+ "DrawArraysInstancedEXT",
+ "DrawBuffer",
+ "DrawBuffers",
+ "DrawBuffersARB",
+ "DrawBuffersATI",
+ "DrawElements",
+ "DrawElementsBaseVertex",
+ "DrawElementsIndirect",
+ "DrawElementsInstanced",
+ "DrawElementsInstancedARB",
+ "DrawElementsInstancedBaseInstance",
+ "DrawElementsInstancedBaseVertex",
+ "DrawElementsInstancedBaseVertexBaseInstance",
+ "DrawElementsInstancedEXT",
+ "DrawPixels",
+ "DrawRangeElements",
+ "DrawRangeElementsBaseVertex",
+ "DrawRangeElementsEXT",
+ "DrawTransformFeedback",
+ "DrawTransformFeedbackInstanced",
+ "DrawTransformFeedbackStream",
+ "DrawTransformFeedbackStreamInstanced",
+ "EdgeFlag",
+ "EdgeFlagPointer",
+ "EdgeFlagPointerEXT",
+ "EdgeFlagv",
+ "Enable",
+ "EnableClientState",
+ "Enablei",
+ "EnableIndexedEXT",
+ "EnableVertexAttribArray",
+ "EnableVertexAttribArrayARB",
+ "End",
+ "EndConditionalRender",
+ "EndConditionalRenderNV",
+ "EndList",
+ "EndQuery",
+ "EndQueryARB",
+ "EndQueryIndexed",
+ "EndTransformFeedback",
+ "EvalCoord1d",
+ "EvalCoord1dv",
+ "EvalCoord1f",
+ "EvalCoord1fv",
+ "EvalCoord2d",
+ "EvalCoord2dv",
+ "EvalCoord2f",
+ "EvalCoord2fv",
+ "EvalMesh1",
+ "EvalMesh2",
+ "EvalPoint1",
+ "EvalPoint2",
+ "FeedbackBuffer",
+ "FenceSync",
+ "Finish",
+ "Flush",
+ "FlushMappedBufferRange",
+ "FogCoordd",
+ "FogCoorddEXT",
+ "FogCoorddv",
+ "FogCoorddvEXT",
+ "FogCoordf",
+ "FogCoordfEXT",
+ "FogCoordfv",
+ "FogCoordfvEXT",
+ "FogCoordPointer",
+ "FogCoordPointerEXT",
+ "Fogf",
+ "Fogfv",
+ "Fogi",
+ "Fogiv",
+ "Fogx",
+ "Fogxv",
+ "FramebufferRenderbuffer",
+ "FramebufferRenderbufferEXT",
+ "FramebufferTexture",
+ "FramebufferTexture1D",
+ "FramebufferTexture1DEXT",
+ "FramebufferTexture2D",
+ "FramebufferTexture2DEXT",
+ "FramebufferTexture3D",
+ "FramebufferTexture3DEXT",
+ "FramebufferTextureARB",
+ "FramebufferTextureLayer",
+ "FramebufferTextureLayerARB",
+ "FramebufferTextureLayerEXT",
+ "FrontFace",
+ "Frustum",
+ "Frustumf",
+ "Frustumx",
+ "GenBuffers",
+ "GenBuffersARB",
+ "GenerateMipmap",
+ "GenerateMipmapEXT",
+ "GenFramebuffers",
+ "GenFramebuffersEXT",
+ "GenLists",
+ "GenProgramsARB",
+ "GenQueries",
+ "GenQueriesARB",
+ "GenRenderbuffers",
+ "GenRenderbuffersEXT",
+ "GenSamplers",
+ "GenTextures",
+ "GenTexturesEXT",
+ "GenTransformFeedbacks",
+ "GenVertexArrays",
+ "GetActiveAtomicCounterBufferiv",
+ "GetActiveAttrib",
+ "GetActiveAttribARB",
+ "GetActiveUniform",
+ "GetActiveUniformARB",
+ "GetActiveUniformBlockiv",
+ "GetActiveUniformBlockName",
+ "GetActiveUniformName",
+ "GetActiveUniformsiv",
+ "GetAttachedObjectsARB",
+ "GetAttachedShaders",
+ "GetAttribLocation",
+ "GetAttribLocationARB",
+ "GetBooleanIndexedvEXT",
+ "GetBooleani_v",
+ "GetBooleanv",
+ "GetBufferParameteri64v",
+ "GetBufferParameteriv",
+ "GetBufferParameterivARB",
+ "GetBufferPointerv",
+ "GetBufferPointervARB",
+ "GetBufferSubData",
+ "GetBufferSubDataARB",
+ "GetClipPlane",
+ "GetClipPlanef",
+ "GetClipPlanex",
+ "GetColorTable",
+ "GetColorTableParameterfv",
+ "GetColorTableParameteriv",
+ "GetCompressedTexImage",
+ "GetCompressedTexImageARB",
+ "GetConvolutionFilter",
+ "GetConvolutionParameterfv",
+ "GetConvolutionParameteriv",
+ "GetDebugMessageLog",
+ "GetDebugMessageLogARB",
+ "GetDoublei_v",
+ "GetDoublev",
+ "GetError",
+ "GetFixedv",
+ "GetFloati_v",
+ "GetFloatv",
+ "GetFragDataIndex",
+ "GetFragDataLocation",
+ "GetFragDataLocationEXT",
+ "GetFramebufferAttachmentParameteriv",
+ "GetFramebufferAttachmentParameterivEXT",
+ "GetGraphicsResetStatusARB",
+ "GetHandleARB",
+ "GetHistogram",
+ "GetHistogramParameterfv",
+ "GetHistogramParameteriv",
+ "GetInfoLogARB",
+ "GetInteger64i_v",
+ "GetInteger64v",
+ "GetIntegerIndexedvEXT",
+ "GetIntegeri_v",
+ "GetIntegerv",
+ "GetLightfv",
+ "GetLightiv",
+ "GetLightxv",
+ "GetMapdv",
+ "GetMapfv",
+ "GetMapiv",
+ "GetMaterialfv",
+ "GetMaterialiv",
+ "GetMaterialxv",
+ "GetMinmax",
+ "GetMinmaxParameterfv",
+ "GetMinmaxParameteriv",
+ "GetMultisamplefv",
+ "GetnColorTableARB",
+ "GetnCompressedTexImageARB",
+ "GetnConvolutionFilterARB",
+ "GetnHistogramARB",
+ "GetnMapdvARB",
+ "GetnMapfvARB",
+ "GetnMapivARB",
+ "GetnMinmaxARB",
+ "GetnPixelMapfvARB",
+ "GetnPixelMapuivARB",
+ "GetnPixelMapusvARB",
+ "GetnPolygonStippleARB",
+ "GetnSeparableFilterARB",
+ "GetnTexImageARB",
+ "GetnUniformdvARB",
+ "GetnUniformfvARB",
+ "GetnUniformivARB",
+ "GetnUniformuivARB",
+ "GetObjectLabel",
+ "GetObjectParameterfvARB",
+ "GetObjectParameterivARB",
+ "GetObjectPtrLabel",
+ "GetPixelMapfv",
+ "GetPixelMapuiv",
+ "GetPixelMapusv",
+ "GetPointerv",
+ "GetPointervEXT",
+ "GetPolygonStipple",
+ "GetProgramBinary",
+ "GetProgramEnvParameterdvARB",
+ "GetProgramEnvParameterfvARB",
+ "GetProgramInfoLog",
+ "GetProgramiv",
+ "GetProgramivARB",
+ "GetProgramLocalParameterdvARB",
+ "GetProgramLocalParameterfvARB",
+ "GetProgramStringARB",
+ "GetQueryIndexediv",
+ "GetQueryiv",
+ "GetQueryivARB",
+ "GetQueryObjectiv",
+ "GetQueryObjectivARB",
+ "GetQueryObjectuiv",
+ "GetQueryObjectuivARB",
+ "GetRenderbufferParameteriv",
+ "GetRenderbufferParameterivEXT",
+ "GetSamplerParameterfv",
+ "GetSamplerParameterIiv",
+ "GetSamplerParameterIuiv",
+ "GetSamplerParameteriv",
+ "GetSeparableFilter",
+ "GetShaderInfoLog",
+ "GetShaderiv",
+ "GetShaderPrecisionFormat",
+ "GetShaderSource",
+ "GetShaderSourceARB",
+ "GetString",
+ "GetStringi",
+ "GetSynciv",
+ "GetTexEnvfv",
+ "GetTexEnviv",
+ "GetTexEnvxv",
+ "GetTexGendv",
+ "GetTexGenfv",
+ "GetTexGeniv",
+ "GetTexImage",
+ "GetTexLevelParameterfv",
+ "GetTexLevelParameteriv",
+ "GetTexParameterfv",
+ "GetTexParameterIiv",
+ "GetTexParameterIivEXT",
+ "GetTexParameterIuiv",
+ "GetTexParameterIuivEXT",
+ "GetTexParameteriv",
+ "GetTexParameterxv",
+ "GetTransformFeedbackVarying",
+ "GetUniformBlockIndex",
+ "GetUniformfv",
+ "GetUniformfvARB",
+ "GetUniformIndices",
+ "GetUniformiv",
+ "GetUniformivARB",
+ "GetUniformLocation",
+ "GetUniformLocationARB",
+ "GetUniformuiv",
+ "GetUniformuivEXT",
+ "GetVertexAttribdv",
+ "GetVertexAttribdvARB",
+ "GetVertexAttribfv",
+ "GetVertexAttribfvARB",
+ "GetVertexAttribIiv",
+ "GetVertexAttribIivEXT",
+ "GetVertexAttribIuiv",
+ "GetVertexAttribIuivEXT",
+ "GetVertexAttribiv",
+ "GetVertexAttribivARB",
+ "GetVertexAttribPointerv",
+ "GetVertexAttribPointervARB",
+ "Hint",
+ "Histogram",
+ "Indexd",
+ "Indexdv",
+ "Indexf",
+ "Indexfv",
+ "Indexi",
+ "Indexiv",
+ "IndexMask",
+ "IndexPointer",
+ "IndexPointerEXT",
+ "Indexs",
+ "Indexsv",
+ "Indexub",
+ "Indexubv",
+ "InitNames",
+ "InterleavedArrays",
+ "InvalidateBufferData",
+ "InvalidateBufferSubData",
+ "InvalidateFramebuffer",
+ "InvalidateSubFramebuffer",
+ "InvalidateTexImage",
+ "InvalidateTexSubImage",
+ "IsBuffer",
+ "IsBufferARB",
+ "IsEnabled",
+ "IsEnabledi",
+ "IsEnabledIndexedEXT",
+ "IsFramebuffer",
+ "IsFramebufferEXT",
+ "IsList",
+ "IsProgram",
+ "IsProgramARB",
+ "IsQuery",
+ "IsQueryARB",
+ "IsRenderbuffer",
+ "IsRenderbufferEXT",
+ "IsSampler",
+ "IsShader",
+ "IsSync",
+ "IsTexture",
+ "IsTextureEXT",
+ "IsTransformFeedback",
+ "IsVertexArray",
+ "Lightf",
+ "Lightfv",
+ "Lighti",
+ "Lightiv",
+ "LightModelf",
+ "LightModelfv",
+ "LightModeli",
+ "LightModeliv",
+ "LightModelx",
+ "LightModelxv",
+ "Lightx",
+ "Lightxv",
+ "LineStipple",
+ "LineWidth",
+ "LineWidthx",
+ "LinkProgram",
+ "LinkProgramARB",
+ "ListBase",
+ "LoadIdentity",
+ "LoadMatrixd",
+ "LoadMatrixf",
+ "LoadMatrixx",
+ "LoadName",
+ "LoadTransposeMatrixd",
+ "LoadTransposeMatrixdARB",
+ "LoadTransposeMatrixf",
+ "LoadTransposeMatrixfARB",
+ "LockArraysEXT",
+ "LogicOp",
+ "Map1d",
+ "Map1f",
+ "Map2d",
+ "Map2f",
+ "MapBuffer",
+ "MapBufferARB",
+ "MapBufferRange",
+ "MapGrid1d",
+ "MapGrid1f",
+ "MapGrid2d",
+ "MapGrid2f",
+ "Materialf",
+ "Materialfv",
+ "Materiali",
+ "Materialiv",
+ "Materialx",
+ "Materialxv",
+ "MatrixMode",
+ "MemoryBarrier",
+ "Minmax",
+ "MinSampleShading",
+ "MinSampleShadingARB",
+ "MultiDrawArrays",
+ "MultiDrawArraysEXT",
+ "MultiDrawArraysIndirect",
+ "MultiDrawElements",
+ "MultiDrawElementsBaseVertex",
+ "MultiDrawElementsEXT",
+ "MultiDrawElementsIndirect",
+ "MultiTexCoord1d",
+ "MultiTexCoord1dARB",
+ "MultiTexCoord1dv",
+ "MultiTexCoord1dvARB",
+ "MultiTexCoord1f",
+ "MultiTexCoord1fARB",
+ "MultiTexCoord1fv",
+ "MultiTexCoord1fvARB",
+ "MultiTexCoord1i",
+ "MultiTexCoord1iARB",
+ "MultiTexCoord1iv",
+ "MultiTexCoord1ivARB",
+ "MultiTexCoord1s",
+ "MultiTexCoord1sARB",
+ "MultiTexCoord1sv",
+ "MultiTexCoord1svARB",
+ "MultiTexCoord2d",
+ "MultiTexCoord2dARB",
+ "MultiTexCoord2dv",
+ "MultiTexCoord2dvARB",
+ "MultiTexCoord2f",
+ "MultiTexCoord2fARB",
+ "MultiTexCoord2fv",
+ "MultiTexCoord2fvARB",
+ "MultiTexCoord2i",
+ "MultiTexCoord2iARB",
+ "MultiTexCoord2iv",
+ "MultiTexCoord2ivARB",
+ "MultiTexCoord2s",
+ "MultiTexCoord2sARB",
+ "MultiTexCoord2sv",
+ "MultiTexCoord2svARB",
+ "MultiTexCoord3d",
+ "MultiTexCoord3dARB",
+ "MultiTexCoord3dv",
+ "MultiTexCoord3dvARB",
+ "MultiTexCoord3f",
+ "MultiTexCoord3fARB",
+ "MultiTexCoord3fv",
+ "MultiTexCoord3fvARB",
+ "MultiTexCoord3i",
+ "MultiTexCoord3iARB",
+ "MultiTexCoord3iv",
+ "MultiTexCoord3ivARB",
+ "MultiTexCoord3s",
+ "MultiTexCoord3sARB",
+ "MultiTexCoord3sv",
+ "MultiTexCoord3svARB",
+ "MultiTexCoord4d",
+ "MultiTexCoord4dARB",
+ "MultiTexCoord4dv",
+ "MultiTexCoord4dvARB",
+ "MultiTexCoord4f",
+ "MultiTexCoord4fARB",
+ "MultiTexCoord4fv",
+ "MultiTexCoord4fvARB",
+ "MultiTexCoord4i",
+ "MultiTexCoord4iARB",
+ "MultiTexCoord4iv",
+ "MultiTexCoord4ivARB",
+ "MultiTexCoord4s",
+ "MultiTexCoord4sARB",
+ "MultiTexCoord4sv",
+ "MultiTexCoord4svARB",
+ "MultiTexCoord4x",
+ "MultiTexCoordP1ui",
+ "MultiTexCoordP1uiv",
+ "MultiTexCoordP2ui",
+ "MultiTexCoordP2uiv",
+ "MultiTexCoordP3ui",
+ "MultiTexCoordP3uiv",
+ "MultiTexCoordP4ui",
+ "MultiTexCoordP4uiv",
+ "MultMatrixd",
+ "MultMatrixf",
+ "MultMatrixx",
+ "MultTransposeMatrixd",
+ "MultTransposeMatrixdARB",
+ "MultTransposeMatrixf",
+ "MultTransposeMatrixfARB",
+ "NewList",
+ "Normal3b",
+ "Normal3bv",
+ "Normal3d",
+ "Normal3dv",
+ "Normal3f",
+ "Normal3fv",
+ "Normal3i",
+ "Normal3iv",
+ "Normal3s",
+ "Normal3sv",
+ "Normal3x",
+ "NormalP3ui",
+ "NormalP3uiv",
+ "NormalPointer",
+ "NormalPointerEXT",
+ "ObjectLabel",
+ "ObjectPtrLabel",
+ "Ortho",
+ "Orthof",
+ "Orthox",
+ "PassThrough",
+ "PauseTransformFeedback",
+ "PixelMapfv",
+ "PixelMapuiv",
+ "PixelMapusv",
+ "PixelStoref",
+ "PixelStorei",
+ "PixelTransferf",
+ "PixelTransferi",
+ "PixelZoom",
+ "PointParameterf",
+ "PointParameterfARB",
+ "PointParameterfEXT",
+ "PointParameterfv",
+ "PointParameterfvARB",
+ "PointParameterfvEXT",
+ "PointParameteri",
+ "PointParameteriv",
+ "PointParameterx",
+ "PointParameterxv",
+ "PointSize",
+ "PointSizePointerOES",
+ "PointSizex",
+ "PolygonMode",
+ "PolygonOffset",
+ "PolygonOffsetx",
+ "PolygonStipple",
+ "PopAttrib",
+ "PopClientAttrib",
+ "PopDebugGroup",
+ "PopMatrix",
+ "PopName",
+ "PrimitiveRestartIndex",
+ "PrimitiveRestartIndexNV",
+ "PrimitiveRestartNV",
+ "PrioritizeTextures",
+ "PrioritizeTexturesEXT",
+ "ProgramBinary",
+ "ProgramEnvParameter4dARB",
+ "ProgramEnvParameter4dvARB",
+ "ProgramEnvParameter4fARB",
+ "ProgramEnvParameter4fvARB",
+ "ProgramLocalParameter4dARB",
+ "ProgramLocalParameter4dvARB",
+ "ProgramLocalParameter4fARB",
+ "ProgramLocalParameter4fvARB",
+ "ProgramParameteri",
+ "ProgramParameteriARB",
+ "ProgramStringARB",
+ "ProvokingVertex",
+ "ProvokingVertexEXT",
+ "PushAttrib",
+ "PushClientAttrib",
+ "PushDebugGroup",
+ "PushMatrix",
+ "PushName",
+ "RasterPos2d",
+ "RasterPos2dv",
+ "RasterPos2f",
+ "RasterPos2fv",
+ "RasterPos2i",
+ "RasterPos2iv",
+ "RasterPos2s",
+ "RasterPos2sv",
+ "RasterPos3d",
+ "RasterPos3dv",
+ "RasterPos3f",
+ "RasterPos3fv",
+ "RasterPos3i",
+ "RasterPos3iv",
+ "RasterPos3s",
+ "RasterPos3sv",
+ "RasterPos4d",
+ "RasterPos4dv",
+ "RasterPos4f",
+ "RasterPos4fv",
+ "RasterPos4i",
+ "RasterPos4iv",
+ "RasterPos4s",
+ "RasterPos4sv",
+ "ReadBuffer",
+ "ReadnPixelsARB",
+ "ReadPixels",
+ "Rectd",
+ "Rectdv",
+ "Rectf",
+ "Rectfv",
+ "Recti",
+ "Rectiv",
+ "Rects",
+ "Rectsv",
+ "ReleaseShaderCompiler",
+ "RenderbufferStorage",
+ "RenderbufferStorageEXT",
+ "RenderbufferStorageMultisample",
+ "RenderbufferStorageMultisampleEXT",
+ "RenderMode",
+ "ResetHistogram",
+ "ResetMinmax",
+ "ResumeTransformFeedback",
+ "Rotated",
+ "Rotatef",
+ "Rotatex",
+ "SampleCoverage",
+ "SampleCoverageARB",
+ "SampleCoveragex",
+ "SampleMaski",
+ "SamplerParameterf",
+ "SamplerParameterfv",
+ "SamplerParameteri",
+ "SamplerParameterIiv",
+ "SamplerParameterIuiv",
+ "SamplerParameteriv",
+ "Scaled",
+ "Scalef",
+ "Scalex",
+ "Scissor",
+ "ScissorArrayv",
+ "ScissorIndexed",
+ "ScissorIndexedv",
+ "SecondaryColor3b",
+ "SecondaryColor3bEXT",
+ "SecondaryColor3bv",
+ "SecondaryColor3bvEXT",
+ "SecondaryColor3d",
+ "SecondaryColor3dEXT",
+ "SecondaryColor3dv",
+ "SecondaryColor3dvEXT",
+ "SecondaryColor3f",
+ "SecondaryColor3fEXT",
+ "SecondaryColor3fv",
+ "SecondaryColor3fvEXT",
+ "SecondaryColor3i",
+ "SecondaryColor3iEXT",
+ "SecondaryColor3iv",
+ "SecondaryColor3ivEXT",
+ "SecondaryColor3s",
+ "SecondaryColor3sEXT",
+ "SecondaryColor3sv",
+ "SecondaryColor3svEXT",
+ "SecondaryColor3ub",
+ "SecondaryColor3ubEXT",
+ "SecondaryColor3ubv",
+ "SecondaryColor3ubvEXT",
+ "SecondaryColor3ui",
+ "SecondaryColor3uiEXT",
+ "SecondaryColor3uiv",
+ "SecondaryColor3uivEXT",
+ "SecondaryColor3us",
+ "SecondaryColor3usEXT",
+ "SecondaryColor3usv",
+ "SecondaryColor3usvEXT",
+ "SecondaryColorP3ui",
+ "SecondaryColorP3uiv",
+ "SecondaryColorPointer",
+ "SecondaryColorPointerEXT",
+ "SelectBuffer",
+ "SeparableFilter2D",
+ "ShadeModel",
+ "ShaderBinary",
+ "ShaderSource",
+ "ShaderSourceARB",
+ "StencilFunc",
+ "StencilFuncSeparate",
+ "StencilMask",
+ "StencilMaskSeparate",
+ "StencilOp",
+ "StencilOpSeparate",
+ "TexBuffer",
+ "TexBufferARB",
+ "TexBufferRange",
+ "TexCoord1d",
+ "TexCoord1dv",
+ "TexCoord1f",
+ "TexCoord1fv",
+ "TexCoord1i",
+ "TexCoord1iv",
+ "TexCoord1s",
+ "TexCoord1sv",
+ "TexCoord2d",
+ "TexCoord2dv",
+ "TexCoord2f",
+ "TexCoord2fv",
+ "TexCoord2i",
+ "TexCoord2iv",
+ "TexCoord2s",
+ "TexCoord2sv",
+ "TexCoord3d",
+ "TexCoord3dv",
+ "TexCoord3f",
+ "TexCoord3fv",
+ "TexCoord3i",
+ "TexCoord3iv",
+ "TexCoord3s",
+ "TexCoord3sv",
+ "TexCoord4d",
+ "TexCoord4dv",
+ "TexCoord4f",
+ "TexCoord4fv",
+ "TexCoord4i",
+ "TexCoord4iv",
+ "TexCoord4s",
+ "TexCoord4sv",
+ "TexCoordP1ui",
+ "TexCoordP1uiv",
+ "TexCoordP2ui",
+ "TexCoordP2uiv",
+ "TexCoordP3ui",
+ "TexCoordP3uiv",
+ "TexCoordP4ui",
+ "TexCoordP4uiv",
+ "TexCoordPointer",
+ "TexCoordPointerEXT",
+ "TexEnvf",
+ "TexEnvfv",
+ "TexEnvi",
+ "TexEnviv",
+ "TexEnvx",
+ "TexEnvxv",
+ "TexGend",
+ "TexGendv",
+ "TexGenf",
+ "TexGenfv",
+ "TexGeni",
+ "TexGeniv",
+ "TexImage1D",
+ "TexImage2D",
+ "TexImage2DMultisample",
+ "TexImage3D",
+ "TexImage3DEXT",
+ "TexImage3DMultisample",
+ "TexParameterf",
+ "TexParameterfv",
+ "TexParameteri",
+ "TexParameterIiv",
+ "TexParameterIivEXT",
+ "TexParameterIuiv",
+ "TexParameterIuivEXT",
+ "TexParameteriv",
+ "TexParameterx",
+ "TexParameterxv",
+ "TexStorage1D",
+ "TexStorage2D",
+ "TexStorage2DMultisample",
+ "TexStorage3D",
+ "TexStorage3DMultisample",
+ "TexSubImage1D",
+ "TexSubImage2D",
+ "TexSubImage3D",
+ "TexSubImage3DEXT",
+ "TextureBarrierNV",
+ "TextureStorage1DEXT",
+ "TextureStorage2DEXT",
+ "TextureStorage3DEXT",
+ "TextureView",
+ "TransformFeedbackVaryings",
+ "Translated",
+ "Translatef",
+ "Translatex",
+ "Uniform1f",
+ "Uniform1fARB",
+ "Uniform1fv",
+ "Uniform1fvARB",
+ "Uniform1i",
+ "Uniform1iARB",
+ "Uniform1iv",
+ "Uniform1ivARB",
+ "Uniform1ui",
+ "Uniform1uiEXT",
+ "Uniform1uiv",
+ "Uniform1uivEXT",
+ "Uniform2f",
+ "Uniform2fARB",
+ "Uniform2fv",
+ "Uniform2fvARB",
+ "Uniform2i",
+ "Uniform2iARB",
+ "Uniform2iv",
+ "Uniform2ivARB",
+ "Uniform2ui",
+ "Uniform2uiEXT",
+ "Uniform2uiv",
+ "Uniform2uivEXT",
+ "Uniform3f",
+ "Uniform3fARB",
+ "Uniform3fv",
+ "Uniform3fvARB",
+ "Uniform3i",
+ "Uniform3iARB",
+ "Uniform3iv",
+ "Uniform3ivARB",
+ "Uniform3ui",
+ "Uniform3uiEXT",
+ "Uniform3uiv",
+ "Uniform3uivEXT",
+ "Uniform4f",
+ "Uniform4fARB",
+ "Uniform4fv",
+ "Uniform4fvARB",
+ "Uniform4i",
+ "Uniform4iARB",
+ "Uniform4iv",
+ "Uniform4ivARB",
+ "Uniform4ui",
+ "Uniform4uiEXT",
+ "Uniform4uiv",
+ "Uniform4uivEXT",
+ "UniformBlockBinding",
+ "UniformMatrix2fv",
+ "UniformMatrix2fvARB",
+ "UniformMatrix2x3fv",
+ "UniformMatrix2x4fv",
+ "UniformMatrix3fv",
+ "UniformMatrix3fvARB",
+ "UniformMatrix3x2fv",
+ "UniformMatrix3x4fv",
+ "UniformMatrix4fv",
+ "UniformMatrix4fvARB",
+ "UniformMatrix4x2fv",
+ "UniformMatrix4x3fv",
+ "UnlockArraysEXT",
+ "UnmapBuffer",
+ "UnmapBufferARB",
+ "UseProgram",
+ "UseProgramObjectARB",
+ "ValidateProgram",
+ "ValidateProgramARB",
+ "Vertex2d",
+ "Vertex2dv",
+ "Vertex2f",
+ "Vertex2fv",
+ "Vertex2i",
+ "Vertex2iv",
+ "Vertex2s",
+ "Vertex2sv",
+ "Vertex3d",
+ "Vertex3dv",
+ "Vertex3f",
+ "Vertex3fv",
+ "Vertex3i",
+ "Vertex3iv",
+ "Vertex3s",
+ "Vertex3sv",
+ "Vertex4d",
+ "Vertex4dv",
+ "Vertex4f",
+ "Vertex4fv",
+ "Vertex4i",
+ "Vertex4iv",
+ "Vertex4s",
+ "Vertex4sv",
+ "VertexAttrib1d",
+ "VertexAttrib1dARB",
+ "VertexAttrib1dv",
+ "VertexAttrib1dvARB",
+ "VertexAttrib1f",
+ "VertexAttrib1fARB",
+ "VertexAttrib1fv",
+ "VertexAttrib1fvARB",
+ "VertexAttrib1s",
+ "VertexAttrib1sARB",
+ "VertexAttrib1sv",
+ "VertexAttrib1svARB",
+ "VertexAttrib2d",
+ "VertexAttrib2dARB",
+ "VertexAttrib2dv",
+ "VertexAttrib2dvARB",
+ "VertexAttrib2f",
+ "VertexAttrib2fARB",
+ "VertexAttrib2fv",
+ "VertexAttrib2fvARB",
+ "VertexAttrib2s",
+ "VertexAttrib2sARB",
+ "VertexAttrib2sv",
+ "VertexAttrib2svARB",
+ "VertexAttrib3d",
+ "VertexAttrib3dARB",
+ "VertexAttrib3dv",
+ "VertexAttrib3dvARB",
+ "VertexAttrib3f",
+ "VertexAttrib3fARB",
+ "VertexAttrib3fv",
+ "VertexAttrib3fvARB",
+ "VertexAttrib3s",
+ "VertexAttrib3sARB",
+ "VertexAttrib3sv",
+ "VertexAttrib3svARB",
+ "VertexAttrib4bv",
+ "VertexAttrib4bvARB",
+ "VertexAttrib4d",
+ "VertexAttrib4dARB",
+ "VertexAttrib4dv",
+ "VertexAttrib4dvARB",
+ "VertexAttrib4f",
+ "VertexAttrib4fARB",
+ "VertexAttrib4fv",
+ "VertexAttrib4fvARB",
+ "VertexAttrib4iv",
+ "VertexAttrib4ivARB",
+ "VertexAttrib4Nbv",
+ "VertexAttrib4NbvARB",
+ "VertexAttrib4Niv",
+ "VertexAttrib4NivARB",
+ "VertexAttrib4Nsv",
+ "VertexAttrib4NsvARB",
+ "VertexAttrib4Nub",
+ "VertexAttrib4NubARB",
+ "VertexAttrib4Nubv",
+ "VertexAttrib4NubvARB",
+ "VertexAttrib4Nuiv",
+ "VertexAttrib4NuivARB",
+ "VertexAttrib4Nusv",
+ "VertexAttrib4NusvARB",
+ "VertexAttrib4s",
+ "VertexAttrib4sARB",
+ "VertexAttrib4sv",
+ "VertexAttrib4svARB",
+ "VertexAttrib4ubv",
+ "VertexAttrib4ubvARB",
+ "VertexAttrib4uiv",
+ "VertexAttrib4uivARB",
+ "VertexAttrib4usv",
+ "VertexAttrib4usvARB",
+ "VertexAttribBinding",
+ "VertexAttribDivisor",
+ "VertexAttribDivisorARB",
+ "VertexAttribFormat",
+ "VertexAttribI1i",
+ "VertexAttribI1iEXT",
+ "VertexAttribI1iv",
+ "VertexAttribI1ivEXT",
+ "VertexAttribI1ui",
+ "VertexAttribI1uiEXT",
+ "VertexAttribI1uiv",
+ "VertexAttribI1uivEXT",
+ "VertexAttribI2i",
+ "VertexAttribI2iEXT",
+ "VertexAttribI2iv",
+ "VertexAttribI2ivEXT",
+ "VertexAttribI2ui",
+ "VertexAttribI2uiEXT",
+ "VertexAttribI2uiv",
+ "VertexAttribI2uivEXT",
+ "VertexAttribI3i",
+ "VertexAttribI3iEXT",
+ "VertexAttribI3iv",
+ "VertexAttribI3ivEXT",
+ "VertexAttribI3ui",
+ "VertexAttribI3uiEXT",
+ "VertexAttribI3uiv",
+ "VertexAttribI3uivEXT",
+ "VertexAttribI4bv",
+ "VertexAttribI4bvEXT",
+ "VertexAttribI4i",
+ "VertexAttribI4iEXT",
+ "VertexAttribI4iv",
+ "VertexAttribI4ivEXT",
+ "VertexAttribI4sv",
+ "VertexAttribI4svEXT",
+ "VertexAttribI4ubv",
+ "VertexAttribI4ubvEXT",
+ "VertexAttribI4ui",
+ "VertexAttribI4uiEXT",
+ "VertexAttribI4uiv",
+ "VertexAttribI4uivEXT",
+ "VertexAttribI4usv",
+ "VertexAttribI4usvEXT",
+ "VertexAttribIFormat",
+ "VertexAttribIPointer",
+ "VertexAttribIPointerEXT",
+ "VertexAttribLFormat",
+ "VertexAttribP1ui",
+ "VertexAttribP1uiv",
+ "VertexAttribP2ui",
+ "VertexAttribP2uiv",
+ "VertexAttribP3ui",
+ "VertexAttribP3uiv",
+ "VertexAttribP4ui",
+ "VertexAttribP4uiv",
+ "VertexAttribPointer",
+ "VertexAttribPointerARB",
+ "VertexBindingDivisor",
+ "VertexP2ui",
+ "VertexP2uiv",
+ "VertexP3ui",
+ "VertexP3uiv",
+ "VertexP4ui",
+ "VertexP4uiv",
+ "VertexPointer",
+ "VertexPointerEXT",
+ "Viewport",
+ "ViewportArrayv",
+ "ViewportIndexedf",
+ "ViewportIndexedfv",
+ "WaitSync",
+ "WindowPos2d",
+ "WindowPos2dARB",
+ "WindowPos2dv",
+ "WindowPos2dvARB",
+ "WindowPos2f",
+ "WindowPos2fARB",
+ "WindowPos2fv",
+ "WindowPos2fvARB",
+ "WindowPos2i",
+ "WindowPos2iARB",
+ "WindowPos2iv",
+ "WindowPos2ivARB",
+ "WindowPos2s",
+ "WindowPos2sARB",
+ "WindowPos2sv",
+ "WindowPos2svARB",
+ "WindowPos3d",
+ "WindowPos3dARB",
+ "WindowPos3dv",
+ "WindowPos3dvARB",
+ "WindowPos3f",
+ "WindowPos3fARB",
+ "WindowPos3fv",
+ "WindowPos3fvARB",
+ "WindowPos3i",
+ "WindowPos3iARB",
+ "WindowPos3iv",
+ "WindowPos3ivARB",
+ "WindowPos3s",
+ "WindowPos3sARB",
+ "WindowPos3sv",
+ "WindowPos3svARB",
+]
+
+"""Functions that need dispatch slots but are not used
+
+Some of these functions may have GLX protocol support (for
+indirect-rendering). Other were used in previous versions of Mesa. They keep
+slots in the dispatch table so that newer versions of libGL can still be used
+with older drivers."""
+unused_functions = [
+ # SGIS_multisample
+ "SampleMaskSGIS",
+ "SamplePatternSGIS",
+
+ # NV_vertex_program
+ "AreProgramsResidentNV",
+ "ExecuteProgramNV",
+ "GetProgramParameterdvNV",
+ "GetProgramParameterfvNV",
+ "GetProgramivNV",
+ "GetProgramStringNV",
+ "GetTrackMatrixivNV",
+ "GetVertexAttribdvNV",
+ "GetVertexAttribfvNV",
+ "GetVertexAttribivNV",
+ "LoadProgramNV",
+ "ProgramParameters4dvNV",
+ "ProgramParameters4fvNV",
+ "RequestResidentProgramsNV",
+ "TrackMatrixNV",
+ "VertexAttribPointerNV",
+
+ # MESA_resize_buffers
+ "ResizeBuffersMESA",
+
+ # ATI_envmap_bumpmap
+ "TexBumpParameterfvATI",
+ "TexBumpParameterivATI",
+ "GetTexBumpParameterfvATI",
+ "GetTexBumpParameterivATI",
+
+ # NV_fragment_program
+ "ProgramNamedParameter4fNV",
+ "ProgramNamedParameter4dNV",
+ "ProgramNamedParameter4fvNV",
+ "ProgramNamedParameter4dvNV",
+ "GetProgramNamedParameterfvNV",
+ "GetProgramNamedParameterdvNV",
+
+ # APPLE_flush_buffer_range
+ "BufferParameteriAPPLE",
+ "FlushMappedBufferRangeAPPLE",
+
+ # EXT_separate_shader_objects
+ "UseShaderProgramEXT",
+ "ActiveProgramEXT",
+ "CreateShaderProgramEXT",
+]
diff --git a/mesalib/src/mesa/Android.gen.mk b/mesalib/src/mesa/Android.gen.mk
index cc979547e..145f2594c 100644
--- a/mesalib/src/mesa/Android.gen.mk
+++ b/mesalib/src/mesa/Android.gen.mk
@@ -115,9 +115,11 @@ $(intermediates)/main/api_exec.c: $(dispatch_deps)
GET_HASH_GEN := $(LOCAL_PATH)/main/get_hash_generator.py
+$(intermediates)/main/get_hash.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(GET_HASH_GEN)
+$(intermediates)/main/get_hash.h: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml
$(intermediates)/main/get_hash.h: $(glapi)/gl_and_es_API.xml \
$(LOCAL_PATH)/main/get_hash_params.py $(GET_HASH_GEN)
- @$(MESA_PYTHON2) $(GET_HASH_GEN) -f $< > $@
+ $(call es-gen)
FORMAT_INFO := $(LOCAL_PATH)/main/format_info.py
format_info_deps := \
@@ -125,8 +127,10 @@ format_info_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_INFO)
+$(intermediates)/main/format_info.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_INFO)
+$(intermediates)/main/format_info.h: PRIVATE_XML :=
$(intermediates)/main/format_info.h: $(format_info_deps)
- @$(MESA_PYTHON2) $(FORMAT_INFO) $< > $@
+ $(call es-gen, $<)
FORMAT_PACK := $(LOCAL_PATH)/main/format_pack.py
format_pack_deps := \
@@ -134,8 +138,10 @@ format_pack_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_PACK)
+$(intermediates)/main/format_pack.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_PACK)
+$(intermediates)/main/format_pack.c: PRIVATE_XML :=
$(intermediates)/main/format_pack.c: $(format_pack_deps)
- $(hide) $(MESA_PYTHON2) $(FORMAT_PACK) $< > $@
+ $(call es-gen, $<)
FORMAT_UNPACK := $(LOCAL_PATH)/main/format_unpack.py
format_unpack_deps := \
@@ -143,5 +149,7 @@ format_unpack_deps := \
$(LOCAL_PATH)/main/format_parser.py \
$(FORMAT_UNPACK)
+$(intermediates)/main/format_unpack.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(FORMAT_UNPACK)
+$(intermediates)/main/format_unpack.c: PRIVATE_XML :=
$(intermediates)/main/format_unpack.c: $(format_unpack_deps)
- $(hide) $(MESA_PYTHON2) $(FORMAT_UNPACK) $< > $@
+ $(call es-gen, $<)
diff --git a/mesalib/src/mesa/Android.libmesa_glsl_utils.mk b/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
index 3497377af..ed620ac64 100644
--- a/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
+++ b/mesalib/src/mesa/Android.libmesa_glsl_utils.mk
@@ -44,7 +44,8 @@ LOCAL_C_INCLUDES := \
LOCAL_SRC_FILES := \
main/imports.c \
program/prog_hash_table.c \
- program/symbol_table.c
+ program/symbol_table.c \
+ program/dummy_errors.c
include $(MESA_COMMON_MK)
include $(BUILD_STATIC_LIBRARY)
@@ -68,7 +69,8 @@ LOCAL_C_INCLUDES := \
LOCAL_SRC_FILES := \
main/imports.c \
program/prog_hash_table.c \
- program/symbol_table.c
+ program/symbol_table.c \
+ program/dummy_errors.c
include $(MESA_COMMON_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/mesalib/src/mesa/Makefile.am b/mesalib/src/mesa/Makefile.am
index 60114e4f6..71794b5da 100644
--- a/mesalib/src/mesa/Makefile.am
+++ b/mesalib/src/mesa/Makefile.am
@@ -60,7 +60,6 @@ main/git_sha1.h: main/git_sha1.h.tmp
include Makefile.sources
EXTRA_DIST = \
- drivers/haiku \
drivers/SConscript \
main/format_info.py \
main/format_pack.py \
diff --git a/mesalib/src/mesa/drivers/SConscript b/mesalib/src/mesa/drivers/SConscript
index db656780c..5d654f538 100644
--- a/mesalib/src/mesa/drivers/SConscript
+++ b/mesalib/src/mesa/drivers/SConscript
@@ -8,6 +8,3 @@ if env['dri']:
'dri/common/xmlpool/SConscript',
'dri/common/SConscript',
])
-
-if env['platform'] == 'haiku':
- SConscript('haiku/swrast/SConscript')
diff --git a/mesalib/src/mesa/drivers/common/meta_blit.c b/mesalib/src/mesa/drivers/common/meta_blit.c
index bb2164276..9cace2b24 100644
--- a/mesalib/src/mesa/drivers/common/meta_blit.c
+++ b/mesalib/src/mesa/drivers/common/meta_blit.c
@@ -82,7 +82,7 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx,
y_scale = samples * 0.5;
/* We expect only power of 2 samples in source multisample buffer. */
- assert(samples > 0 && (samples & (samples - 1)) == 0);
+ assert(samples > 0 && is_power_of_two(samples));
while (samples >> (shader_offset + 1)) {
shader_offset++;
}
@@ -263,7 +263,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
}
/* We expect only power of 2 samples in source multisample buffer. */
- assert(samples > 0 && (samples & (samples - 1)) == 0);
+ assert(samples > 0 && is_power_of_two(samples));
while (samples >> (shader_offset + 1)) {
shader_offset++;
}
@@ -434,7 +434,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
* (so the floating point exponent just gets increased), rather than
* doing a naive sum and dividing.
*/
- assert((samples & (samples - 1)) == 0);
+ assert(is_power_of_two(samples));
/* Fetch each individual sample. */
sample_resolve = rzalloc_size(mem_ctx, 1);
for (i = 0; i < samples; i++) {
diff --git a/mesalib/src/mesa/drivers/common/meta_tex_subimage.c b/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
index ad6e7873e..d2474f527 100644
--- a/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
+++ b/mesalib/src/mesa/drivers/common/meta_tex_subimage.c
@@ -34,6 +34,7 @@
#include "macros.h"
#include "meta.h"
#include "pbo.h"
+#include "readpix.h"
#include "shaderapi.h"
#include "state.h"
#include "teximage.h"
@@ -150,7 +151,8 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
bool success = false;
int z;
- if (!_mesa_is_bufferobj(packing->BufferObj) && !create_pbo)
+ if (!_mesa_is_bufferobj(packing->BufferObj) &&
+ (!create_pbo || pixels == NULL))
return false;
if (format == GL_DEPTH_COMPONENT ||
@@ -257,6 +259,7 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
GLuint pbo = 0, pbo_tex = 0, fbos[2] = { 0, 0 };
int full_height, image_height;
struct gl_texture_image *pbo_tex_image;
+ struct gl_renderbuffer *rb = NULL;
GLenum status;
bool success = false;
int z;
@@ -273,6 +276,13 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
if (ctx->_ImageTransferState)
return false;
+
+ if (!tex_image) {
+ rb = ctx->ReadBuffer->_ColorReadBuffer;
+ if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format))
+ return false;
+ }
+
/* For arrays, use a tall (height * depth) 2D texture but taking into
* account the inter-image padding specified with the image height packing
* property.
diff --git a/mesalib/src/mesa/drivers/dri/Makefile.am b/mesalib/src/mesa/drivers/dri/Makefile.am
index fa1de103b..08a8e6455 100644
--- a/mesalib/src/mesa/drivers/dri/Makefile.am
+++ b/mesalib/src/mesa/drivers/dri/Makefile.am
@@ -60,6 +60,7 @@ mesa_dri_drivers_la_LIBADD = \
../../libmesa.la \
common/libmegadriver_stub.la \
common/libdricommon.la \
+ common/libxmlconfig.la \
$(MEGADRIVERS_DEPS) \
$(DRI_LIB_DEPS) \
$()
diff --git a/mesalib/src/mesa/drivers/dri/common/Android.mk b/mesalib/src/mesa/drivers/dri/common/Android.mk
index a7fcd6d57..6986f5e8c 100644
--- a/mesalib/src/mesa/drivers/dri/common/Android.mk
+++ b/mesalib/src/mesa/drivers/dri/common/Android.mk
@@ -39,7 +39,9 @@ intermediates := $(call local-generated-sources-dir)
LOCAL_C_INCLUDES := \
$(MESA_DRI_C_INCLUDES)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+ $(LOCAL_PATH) \
+ $(intermediates)
# swrast only
ifeq ($(MESA_GPU_DRIVERS),swrast)
@@ -48,7 +50,9 @@ else
LOCAL_SHARED_LIBRARIES := libdrm
endif
-LOCAL_SRC_FILES := $(DRI_COMMON_FILES)
+LOCAL_SRC_FILES := \
+ $(DRI_COMMON_FILES) \
+ $(XMLCONFIG_FILES)
MESA_DRI_OPTIONS_H := $(intermediates)/xmlpool/options.h
LOCAL_GENERATED_SOURCES := $(MESA_DRI_OPTIONS_H)
diff --git a/mesalib/src/mesa/drivers/dri/common/Makefile.am b/mesalib/src/mesa/drivers/dri/common/Makefile.am
index da8f97a98..ae19fcb35 100644
--- a/mesalib/src/mesa/drivers/dri/common/Makefile.am
+++ b/mesalib/src/mesa/drivers/dri/common/Makefile.am
@@ -33,16 +33,20 @@ AM_CFLAGS = \
-I$(top_srcdir)/src/gallium/include \
-I$(top_srcdir)/src/gallium/auxiliary \
$(DEFINES) \
- $(EXPAT_CFLAGS) \
$(VISIBILITY_CFLAGS)
noinst_LTLIBRARIES = \
libdricommon.la \
+ libxmlconfig.la \
libmegadriver_stub.la \
libdri_test_stubs.la
libdricommon_la_SOURCES = $(DRI_COMMON_FILES)
+libxmlconfig_la_SOURCES = $(XMLCONFIG_FILES)
+libxmlconfig_la_CFLAGS = $(AM_CFLAGS) $(EXPAT_CFLAGS)
+libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm
+
libdri_test_stubs_la_SOURCES = $(test_stubs_FILES)
libdri_test_stubs_la_CFLAGS = $(AM_CFLAGS) -DNO_MAIN
diff --git a/mesalib/src/mesa/drivers/dri/common/Makefile.sources b/mesalib/src/mesa/drivers/dri/common/Makefile.sources
index d00ec5f73..d5d8da8fc 100644
--- a/mesalib/src/mesa/drivers/dri/common/Makefile.sources
+++ b/mesalib/src/mesa/drivers/dri/common/Makefile.sources
@@ -2,7 +2,9 @@ DRI_COMMON_FILES := \
utils.c \
utils.h \
dri_util.c \
- dri_util.h \
+ dri_util.h
+
+XMLCONFIG_FILES := \
xmlconfig.c \
xmlconfig.h
diff --git a/mesalib/src/mesa/drivers/dri/common/SConscript b/mesalib/src/mesa/drivers/dri/common/SConscript
index 0bee1b41f..b402736db 100644
--- a/mesalib/src/mesa/drivers/dri/common/SConscript
+++ b/mesalib/src/mesa/drivers/dri/common/SConscript
@@ -37,7 +37,7 @@ drienv.PkgUseModules('DRM')
# else
#env.Append(CPPDEFINES = ['__NOT_HAVE_DRM_H'])
-sources = drienv.ParseSourceList('Makefile.sources', 'DRI_COMMON_FILES')
+sources = drienv.ParseSourceList('Makefile.sources', ['DRI_COMMON_FILES', 'XMLCONFIG_FILES' ])
dri_common = drienv.ConvenienceLibrary(
target = 'dri_common',
diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c
index d6e875fcf..e7ababe0b 100644
--- a/mesalib/src/mesa/drivers/dri/common/dri_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c
@@ -162,13 +162,21 @@ driCreateNewScreen2(int scrn, int fd,
return NULL;
}
- int gl_version_override = _mesa_get_gl_version_override();
- if (gl_version_override >= 31) {
- psp->max_gl_core_version = MAX2(psp->max_gl_core_version,
- gl_version_override);
- } else {
- psp->max_gl_compat_version = MAX2(psp->max_gl_compat_version,
- gl_version_override);
+ struct gl_constants consts = { 0 };
+ gl_api api;
+ unsigned version;
+
+ api = API_OPENGLES2;
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version))
+ psp->max_gl_es2_version = version;
+
+ api = API_OPENGL_COMPAT;
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version)) {
+ if (api == API_OPENGL_CORE) {
+ psp->max_gl_core_version = version;
+ } else {
+ psp->max_gl_compat_version = version;
+ }
}
psp->api_mask = (1 << __DRI_API_OPENGL);
diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast.c b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
index cbc946c3f..2d4bb702f 100644
--- a/mesalib/src/mesa/drivers/dri/swrast/swrast.c
+++ b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
@@ -62,7 +62,9 @@
#include "swrast/s_context.h"
#include <sys/types.h>
-#include <sys/sysctl.h>
+#ifdef HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
const __DRIextension **__driDriverGetExtensions_swrast(void);
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SConscript b/mesalib/src/mesa/drivers/haiku/swrast/SConscript
deleted file mode 100644
index 907325e32..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SConscript
+++ /dev/null
@@ -1,33 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/main',
- '#/include/HaikuGL',
- '/boot/system/develop/headers/private',
- Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
-])
-
-env.Prepend(LIBS = [
- mesautil,
- glsl,
- mesa,
-])
-
-env.Prepend(LIBS = [libgl])
-
-sources = [
- 'SoftwareRast.cpp'
-]
-
-# Disallow undefined symbols
-#env.Append(SHLINKFLAGS = ['-Wl,-z,defs'])
-
-libswrast = env.SharedLibrary(
- target = 'swrast',
- source = sources
-)
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
deleted file mode 100644
index 813ad1ff2..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.cpp
+++ /dev/null
@@ -1,697 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- * Alexander von Gluck, kallisti5@unixzen.com
- */
-
-
-#include <kernel/image.h>
-#include "SoftwareRast.h"
-
-#include <Autolock.h>
-#include <interface/DirectWindowPrivate.h>
-#include <GraphicsDefs.h>
-#include <Screen.h>
-#include <stdio.h>
-#include <string.h>
-
-extern "C" {
-#include "extensions.h"
-#include "drivers/common/driverfuncs.h"
-#include "drivers/common/meta.h"
-#include "main/api_exec.h"
-#include "main/colormac.h"
-#include "main/cpuinfo.h"
-#include "main/buffers.h"
-#include "main/formats.h"
-#include "main/framebuffer.h"
-#include "main/renderbuffer.h"
-#include "main/version.h"
-#include "main/vtxfmt.h"
-#include "swrast/swrast.h"
-#include "swrast/s_renderbuffer.h"
-#include "swrast_setup/swrast_setup.h"
-#include "tnl/tnl.h"
-#include "tnl/t_context.h"
-#include "tnl/t_pipeline.h"
-#include "vbo/vbo.h"
-
-
-#ifdef DEBUG
-# define TRACE(x...) printf("MesaSoftwareRast: " x)
-# define CALLED() printf("MesaSoftwareRast: %s\n", __PRETTY_FUNCTION__)
-#else
-# define TRACE(x...)
-# define CALLED()
-#endif
-
-#define ERROR(x...) printf("MesaSoftwareRast: " x)
-}
-
-
-extern const char* color_space_name(color_space space);
-
-
-extern "C" _EXPORT BGLRenderer*
-instantiate_gl_renderer(BGLView* view, ulong options,
- BGLDispatcher* dispatcher)
-{
- return new MesaSoftwareRast(view, options, dispatcher);
-}
-
-
-MesaSoftwareRast::MesaSoftwareRast(BGLView* view, ulong options,
- BGLDispatcher* dispatcher)
- : BGLRenderer(view, options, dispatcher),
- fBitmap(NULL),
- fDirectModeEnabled(false),
- fInfo(NULL),
- fInfoLocker("info locker"),
- fVisual(NULL),
- fFrameBuffer(NULL),
- fFrontRenderBuffer(NULL),
- fBackRenderBuffer(NULL),
- fColorSpace(B_NO_COLOR_SPACE)
-{
- CALLED();
-
- fColorSpace = BScreen(GLView()->Window()).ColorSpace();
-
- // We force single buffering for the time being
- options &= ~BGL_DOUBLE;
-
- const GLboolean rgbFlag = ((options & BGL_INDEX) == 0);
- const GLboolean alphaFlag = ((options & BGL_ALPHA) == BGL_ALPHA);
- const GLboolean dblFlag = ((options & BGL_DOUBLE) == BGL_DOUBLE);
- const GLboolean stereoFlag = false;
- const GLint depth = (options & BGL_DEPTH) ? 16 : 0;
- const GLint stencil = (options & BGL_STENCIL) ? 8 : 0;
- const GLint accum = (options & BGL_ACCUM) ? 16 : 0;
- const GLint red = rgbFlag ? 8 : 0;
- const GLint green = rgbFlag ? 8 : 0;
- const GLint blue = rgbFlag ? 8 : 0;
- const GLint alpha = alphaFlag ? 8 : 0;
-
- fOptions = options; // | BGL_INDIRECT;
- struct dd_function_table functions;
-
- fVisual = _mesa_create_visual(dblFlag, stereoFlag, red, green,
- blue, alpha, depth, stencil, accum, accum, accum,
- alpha ? accum : 0, 1);
-
- // Initialize device driver function table
- _mesa_init_driver_functions(&functions);
-
- functions.GetString = _GetString;
- functions.UpdateState = _UpdateState;
- functions.MapRenderbuffer = _RenderBufferMap;
- functions.Flush = _Flush;
-
- // create core context
- // We inherit gl_context to this class
- _mesa_initialize_context(this, API_OPENGL_COMPAT, fVisual, NULL,
- &functions);
-
- /* Initialize the software rasterizer and helper modules. */
- _swrast_CreateContext(this);
- _vbo_CreateContext(this);
- _tnl_CreateContext(this);
- _swsetup_CreateContext(this);
- _swsetup_Wakeup(this);
-
- // Use default TCL pipeline
- TNL_CONTEXT(this)->Driver.RunPipeline = _tnl_run_pipeline;
-
- _mesa_meta_init(this);
- _mesa_enable_sw_extensions(this);
-
- _mesa_compute_version(this);
-
- _mesa_initialize_dispatch_tables(this);
- _mesa_initialize_vbo_vtxfmt(this);
-
- // create core framebuffer
- fFrameBuffer = _mesa_create_framebuffer(fVisual);
- if (fFrameBuffer == NULL) {
- ERROR("%s: Unable to calloc GL FrameBuffer!\n", __func__);
- _mesa_destroy_visual(fVisual);
- return;
- }
-
- // Setup front render buffer
- fFrontRenderBuffer = _NewRenderBuffer(true);
- if (fFrontRenderBuffer == NULL) {
- ERROR("%s: FrontRenderBuffer is requested but unallocated!\n",
- __func__);
- _mesa_destroy_visual(fVisual);
- free(fFrameBuffer);
- return;
- }
- _mesa_add_renderbuffer(fFrameBuffer, BUFFER_FRONT_LEFT,
- &fFrontRenderBuffer->Base);
-
- // Setup back render buffer (if requested)
- if (fVisual->doubleBufferMode) {
- fBackRenderBuffer = _NewRenderBuffer(false);
- if (fBackRenderBuffer == NULL) {
- ERROR("%s: BackRenderBuffer is requested but unallocated!\n",
- __func__);
- _mesa_destroy_visual(fVisual);
- free(fFrameBuffer);
- return;
- }
- _mesa_add_renderbuffer(fFrameBuffer, BUFFER_BACK_LEFT,
- &fBackRenderBuffer->Base);
- }
-
- _swrast_add_soft_renderbuffers(fFrameBuffer, GL_FALSE,
- fVisual->haveDepthBuffer, fVisual->haveStencilBuffer,
- fVisual->haveAccumBuffer, alphaFlag, GL_FALSE);
-
- BRect bounds = view->Bounds();
- fWidth = (GLint)bounds.Width();
- fHeight = (GLint)bounds.Height();
-
- // some stupid applications (Quake2) don't even think about calling LockGL()
- // before using glGetString and its glGet*() friends...
- // so make sure there is at least a valid context.
-
- if (!_mesa_get_current_context()) {
- LockGL();
- // not needed, we don't have a looper yet: UnlockLooper();
- }
-}
-
-
-MesaSoftwareRast::~MesaSoftwareRast()
-{
- CALLED();
- _swsetup_DestroyContext(this);
- _swrast_DestroyContext(this);
- _tnl_DestroyContext(this);
- _vbo_DestroyContext(this);
- _mesa_destroy_visual(fVisual);
- _mesa_destroy_framebuffer(fFrameBuffer);
- _mesa_destroy_context(this);
-
- free(fInfo);
- free(fFrameBuffer);
-
- delete fBitmap;
-}
-
-
-void
-MesaSoftwareRast::LockGL()
-{
- CALLED();
- BGLRenderer::LockGL();
-
- _mesa_make_current(this, fFrameBuffer, fFrameBuffer);
-
- color_space colorSpace = BScreen(GLView()->Window()).ColorSpace();
-
- GLuint width = fWidth;
- GLuint height = fHeight;
-
- BAutolock lock(fInfoLocker);
- if (fDirectModeEnabled && fInfo != NULL) {
- width = fInfo->window_bounds.right
- - fInfo->window_bounds.left + 1;
- height = fInfo->window_bounds.bottom
- - fInfo->window_bounds.top + 1;
- }
-
- if (fColorSpace != colorSpace) {
- fColorSpace = colorSpace;
- _SetupRenderBuffer(&fFrontRenderBuffer->Base, fColorSpace);
- if (fVisual->doubleBufferMode)
- _SetupRenderBuffer(&fBackRenderBuffer->Base, fColorSpace);
- }
-
- _CheckResize(width, height);
-}
-
-
-void
-MesaSoftwareRast::UnlockGL()
-{
- CALLED();
- _mesa_make_current(this, NULL, NULL);
- BGLRenderer::UnlockGL();
-}
-
-
-void
-MesaSoftwareRast::SwapBuffers(bool VSync)
-{
- CALLED();
-
- if (!fBitmap)
- return;
-
- if (fVisual->doubleBufferMode)
- _mesa_notifySwapBuffers(this);
-
- if (!fDirectModeEnabled || fInfo == NULL) {
- if (GLView()->LockLooperWithTimeout(1000) == B_OK) {
- GLView()->DrawBitmap(fBitmap, B_ORIGIN);
- GLView()->UnlockLooper();
- }
- } else {
- // TODO: Here the BGLView needs to be drawlocked.
- _CopyToDirect();
- }
-
- if (VSync) {
- BScreen screen(GLView()->Window());
- screen.WaitForRetrace();
- }
-}
-
-
-void
-MesaSoftwareRast::Draw(BRect updateRect)
-{
- CALLED();
- if (fBitmap && (!fDirectModeEnabled || (fInfo == NULL)))
- GLView()->DrawBitmap(fBitmap, updateRect, updateRect);
-}
-
-
-status_t
-MesaSoftwareRast::CopyPixelsOut(BPoint location, BBitmap* bitmap)
-{
- CALLED();
- color_space scs = fBitmap->ColorSpace();
- color_space dcs = bitmap->ColorSpace();
-
- if (scs != dcs && (scs != B_RGBA32 || dcs != B_RGB32)) {
- fprintf(stderr, "CopyPixelsOut(): incompatible color space: %s != %s\n",
- color_space_name(scs),
- color_space_name(dcs));
- return B_BAD_TYPE;
- }
-
- BRect sr = fBitmap->Bounds();
- BRect dr = bitmap->Bounds();
-
- sr = sr & dr.OffsetBySelf(location);
- dr = sr.OffsetByCopy(-location.x, -location.y);
-
- uint8* ps = (uint8*)fBitmap->Bits();
- uint8* pd = (uint8*)bitmap->Bits();
- uint32* s;
- uint32* d;
- uint32 y;
- for (y = (uint32)sr.top; y <= (uint32)sr.bottom; y++) {
- s = (uint32*)(ps + y * fBitmap->BytesPerRow());
- s += (uint32)sr.left;
-
- d = (uint32*)(pd + (y + (uint32)(dr.top - sr.top))
- * bitmap->BytesPerRow());
- d += (uint32)dr.left;
-
- memcpy(d, s, dr.IntegerWidth() * 4);
- }
- return B_OK;
-}
-
-
-status_t
-MesaSoftwareRast::CopyPixelsIn(BBitmap* bitmap, BPoint location)
-{
- CALLED();
- color_space scs = bitmap->ColorSpace();
- color_space dcs = fBitmap->ColorSpace();
-
- if (scs != dcs && (dcs != B_RGBA32 || scs != B_RGB32)) {
- fprintf(stderr, "CopyPixelsIn(): incompatible color space: %s != %s\n",
- color_space_name(scs),
- color_space_name(dcs));
- return B_BAD_TYPE;
- }
-
- BRect sr = bitmap->Bounds();
- BRect dr = fBitmap->Bounds();
-
- sr = sr & dr.OffsetBySelf(location);
- dr = sr.OffsetByCopy(-location.x, -location.y);
-
- uint8* ps = (uint8*)bitmap->Bits();
- uint8* pd = (uint8*)fBitmap->Bits();
- uint32* s;
- uint32* d;
- uint32 y;
- for (y = (uint32)sr.top; y <= (uint32)sr.bottom; y++) {
- s = (uint32*)(ps + y * bitmap->BytesPerRow());
- s += (uint32)sr.left;
-
- d = (uint32*)(pd + (y + (uint32)(dr.top - sr.top))
- * fBitmap->BytesPerRow());
- d += (uint32)dr.left;
-
- memcpy(d, s, dr.IntegerWidth() * 4);
- }
- return B_OK;
-}
-
-
-void
-MesaSoftwareRast::EnableDirectMode(bool enabled)
-{
- fDirectModeEnabled = enabled;
-}
-
-
-void
-MesaSoftwareRast::DirectConnected(direct_buffer_info* info)
-{
- // TODO: I'm not sure we need to do this: BGLView already
- // keeps a local copy of the direct_buffer_info passed by
- // BDirectWindow::DirectConnected().
- BAutolock lock(fInfoLocker);
- if (info) {
- if (!fInfo) {
- fInfo = (direct_buffer_info*)malloc(DIRECT_BUFFER_INFO_AREA_SIZE);
- if (!fInfo)
- return;
- }
- memcpy(fInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE);
- } else if (fInfo) {
- free(fInfo);
- fInfo = NULL;
- }
-}
-
-
-void
-MesaSoftwareRast::FrameResized(float width, float height)
-{
- BAutolock lock(fInfoLocker);
- _CheckResize((GLuint)width, (GLuint)height);
-}
-
-
-void
-MesaSoftwareRast::_CheckResize(GLuint newWidth, GLuint newHeight)
-{
- CALLED();
-
- if (fBitmap && newWidth == fWidth
- && newHeight == fHeight) {
- return;
- }
-
- _mesa_resize_framebuffer(this, fFrameBuffer, newWidth, newHeight);
- fHeight = newHeight;
- fWidth = newWidth;
-
- _AllocateBitmap();
-}
-
-
-void
-MesaSoftwareRast::_AllocateBitmap()
-{
- CALLED();
-
- // allocate new size of back buffer bitmap
- delete fBitmap;
- fBitmap = NULL;
-
- if (fWidth < 1 || fHeight < 1) {
- TRACE("%s: Cannot allocate bitmap < 1x1!\n", __func__);
- return;
- }
-
- BRect rect(0.0, 0.0, fWidth - 1, fHeight - 1);
- fBitmap = new BBitmap(rect, fColorSpace);
-
- #if 0
- // Used for platform optimized drawing
- for (uint i = 0; i < fHeight; i++) {
- fRowAddr[fHeight - i - 1] = (GLvoid *)((GLubyte *)fBitmap->Bits()
- + i * fBitmap->BytesPerRow());
- }
- #endif
-
- fFrameBuffer->Width = fWidth;
- fFrameBuffer->Height = fHeight;
- TRACE("%s: Bitmap Size: %" B_PRIu32 "\n", __func__, fBitmap->BitsLength());
-
- fFrontRenderBuffer->Buffer = (GLubyte*)fBitmap->Bits();
-}
-
-
-// #pragma mark - static
-
-
-const GLubyte*
-MesaSoftwareRast::_GetString(gl_context* ctx, GLenum name)
-{
- switch (name) {
- case GL_VENDOR:
- return (const GLubyte*) "Mesa Project";
- case GL_RENDERER:
- return (const GLubyte*) "Software Rasterizer";
- default:
- // Let core library handle all other cases
- return NULL;
- }
-}
-
-
-void
-MesaSoftwareRast::_UpdateState(gl_context* ctx, GLuint new_state)
-{
- if (!ctx)
- return;
-
- CALLED();
- _swrast_InvalidateState(ctx, new_state);
- _swsetup_InvalidateState(ctx, new_state);
- _vbo_InvalidateState(ctx, new_state);
- _tnl_InvalidateState(ctx, new_state);
-}
-
-
-GLboolean
-MesaSoftwareRast::_RenderBufferStorage(gl_context* ctx,
- struct gl_renderbuffer* render, GLenum internalFormat,
- GLuint width, GLuint height)
-{
- CALLED();
-
- render->Width = width;
- render->Height = height;
-
- struct swrast_renderbuffer *swRenderBuffer = swrast_renderbuffer(render);
-
- swRenderBuffer->RowStride = width * _mesa_get_format_bytes(render->Format);
-
- return GL_TRUE;
-}
-
-
-GLboolean
-MesaSoftwareRast::_RenderBufferStorageMalloc(gl_context* ctx,
- struct gl_renderbuffer* render, GLenum internalFormat,
- GLuint width, GLuint height)
-{
- CALLED();
-
- render->Width = width;
- render->Height = height;
-
- struct swrast_renderbuffer *swRenderBuffer = swrast_renderbuffer(render);
-
- if (swRenderBuffer != NULL) {
- free(swRenderBuffer->Buffer);
- swRenderBuffer->RowStride
- = width * _mesa_get_format_bytes(render->Format);
-
- uint32 size = swRenderBuffer->RowStride * height;
- TRACE("%s: Allocate %" B_PRIu32 " bytes for RenderBuffer\n",
- __func__, size);
- swRenderBuffer->Buffer = (GLubyte*)malloc(size);
- if (!swRenderBuffer->Buffer) {
- ERROR("%s: Memory allocation failure!\n", __func__);
- return GL_FALSE;
- }
- } else {
- ERROR("%s: Couldn't obtain software renderbuffer!\n",
- __func__);
- return GL_FALSE;
- }
-
- return GL_TRUE;
-}
-
-
-void
-MesaSoftwareRast::_Flush(gl_context* ctx)
-{
- CALLED();
- MesaSoftwareRast* driverContext = static_cast<MesaSoftwareRast*>(ctx);
-
- //MesaSoftwareRast* driverContext = (MesaSoftwareRast*)ctx->DriverCtx;
- if ((driverContext->fOptions & BGL_DOUBLE) == 0) {
- // TODO: SwapBuffers() can call _CopyToDirect(), which should
- // be always called with with the BGLView drawlocked.
- // This is not always the case if called from here.
- driverContext->SwapBuffers();
- }
-}
-
-
-struct swrast_renderbuffer*
-MesaSoftwareRast::_NewRenderBuffer(bool front)
-{
- CALLED();
- struct swrast_renderbuffer *swRenderBuffer
- = (struct swrast_renderbuffer*)calloc(1, sizeof *swRenderBuffer);
-
- if (!swRenderBuffer) {
- ERROR("%s: Failed calloc RenderBuffer\n", __func__);
- return NULL;
- }
-
- _mesa_init_renderbuffer(&swRenderBuffer->Base, 0);
-
- swRenderBuffer->Base.ClassID = HAIKU_SWRAST_RENDERBUFFER_CLASS;
- swRenderBuffer->Base.RefCount = 1;
- swRenderBuffer->Base.Delete = _RenderBufferDelete;
-
- if (!front)
- swRenderBuffer->Base.AllocStorage = _RenderBufferStorageMalloc;
- else
- swRenderBuffer->Base.AllocStorage = _RenderBufferStorage;
-
- if (_SetupRenderBuffer(&swRenderBuffer->Base, fColorSpace) != B_OK) {
- free(swRenderBuffer);
- return NULL;
- }
-
- return swRenderBuffer;
-}
-
-
-status_t
-MesaSoftwareRast::_SetupRenderBuffer(struct gl_renderbuffer* rb,
- color_space colorSpace)
-{
- CALLED();
-
- rb->InternalFormat = GL_RGBA;
-
- switch (colorSpace) {
- case B_RGBA32:
- rb->_BaseFormat = GL_RGBA;
- rb->Format = MESA_FORMAT_B8G8R8A8_UNORM;
- break;
- case B_RGB32:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B8G8R8X8_UNORM;
- break;
- case B_RGB24:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_BGR_UNORM8;
- break;
- case B_RGB16:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B5G6R5_UNORM;
- break;
- case B_RGB15:
- rb->_BaseFormat = GL_RGB;
- rb->Format = MESA_FORMAT_B5G5R5A1_UNORM;
- break;
- default:
- fprintf(stderr, "Unsupported screen color space %s\n",
- color_space_name(fColorSpace));
- debugger("Unsupported OpenGL color space");
- return B_ERROR;
- }
- return B_OK;
-}
-
-
-/*! Y inverted Map RenderBuffer function
- We use a BBitmap for storage which has Y inverted.
- If the Mesa provided Map function ever allows external
- control of this we can omit this function.
-*/
-void
-MesaSoftwareRast::_RenderBufferMap(gl_context *ctx,
- struct gl_renderbuffer *rb, GLuint x, GLuint y, GLuint w, GLuint h,
- GLbitfield mode, GLubyte **mapOut, GLint *rowStrideOut)
-{
- if (rb->ClassID == HAIKU_SWRAST_RENDERBUFFER_CLASS) {
- struct swrast_renderbuffer *srb = swrast_renderbuffer(rb);
- const GLuint bpp = _mesa_get_format_bytes(rb->Format);
- GLint rowStride = rb->Width * bpp; // in Bytes
-
- y = rb->Height - y - 1;
-
- *rowStrideOut = -rowStride;
- *mapOut = (GLubyte *) srb->Buffer + y * rowStride + x * bpp;
- } else {
- _swrast_map_soft_renderbuffer(ctx, rb, x, y, w, h, mode,
- mapOut, rowStrideOut);
- }
-}
-
-
-void
-MesaSoftwareRast::_RenderBufferDelete(struct gl_context *ctx,
- struct gl_renderbuffer* rb)
-{
- CALLED();
- if (rb != NULL) {
- struct swrast_renderbuffer *swRenderBuffer
- = swrast_renderbuffer(rb);
- if (swRenderBuffer != NULL)
- free(swRenderBuffer->Buffer);
- }
- free(rb);
-}
-
-
-void
-MesaSoftwareRast::_CopyToDirect()
-{
- BAutolock lock(fInfoLocker);
-
- // check the bitmap size still matches the size
- if (fInfo->window_bounds.bottom - fInfo->window_bounds.top
- != fBitmap->Bounds().IntegerHeight()
- || fInfo->window_bounds.right - fInfo->window_bounds.left
- != fBitmap->Bounds().IntegerWidth())
- return;
-
- uint8 bytesPerPixel = fInfo->bits_per_pixel / 8;
- uint32 bytesPerRow = fBitmap->BytesPerRow();
- for (uint32 i = 0; i < fInfo->clip_list_count; i++) {
- clipping_rect *clip = &fInfo->clip_list[i];
- int32 height = clip->bottom - clip->top + 1;
- int32 bytesWidth
- = (clip->right - clip->left + 1) * bytesPerPixel;
- uint8* p = (uint8*)fInfo->bits + clip->top
- * fInfo->bytes_per_row + clip->left * bytesPerPixel;
- uint8* b = (uint8*)fBitmap->Bits()
- + (clip->top - fInfo->window_bounds.top) * bytesPerRow
- + (clip->left - fInfo->window_bounds.left)
- * bytesPerPixel;
-
- for (int y = 0; y < height; y++) {
- memcpy(p, b, bytesWidth);
- p += fInfo->bytes_per_row;
- b += bytesPerRow;
- }
- }
-}
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
deleted file mode 100644
index 8f0f01848..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- */
-#ifndef MESASOFTWARERENDERER_H
-#define MESASOFTWARERENDERER_H
-
-
-#define HAIKU_SWRAST_RENDERBUFFER_CLASS 0x737752 // swR
-
-
-#include "GLRenderer.h"
-
-extern "C" {
-#include "context.h"
-#include "main/version.h"
-#include "swrast/s_chan.h"
-#include "swrast/s_context.h"
-}
-
-
-class MesaSoftwareRast : public BGLRenderer, public gl_context {
-public:
- MesaSoftwareRast(BGLView* view,
- ulong bgl_options,
- BGLDispatcher* dispatcher);
- virtual ~MesaSoftwareRast();
-
- virtual void LockGL();
- virtual void UnlockGL();
-
- virtual void SwapBuffers(bool VSync = false);
- virtual void Draw(BRect updateRect);
- virtual status_t CopyPixelsOut(BPoint source, BBitmap* dest);
- virtual status_t CopyPixelsIn(BBitmap* source, BPoint dest);
- virtual void FrameResized(float width, float height);
-
- virtual void EnableDirectMode(bool enabled);
- virtual void DirectConnected(direct_buffer_info* info);
-
-private:
- static const GLubyte* _GetString(gl_context* ctx, GLenum name);
- void _CheckResize(GLuint newWidth, GLuint newHeight);
- static void _UpdateState(gl_context* ctx, GLuint newState);
- static void _Flush(gl_context *ctx);
-
- struct swrast_renderbuffer* _NewRenderBuffer(bool front);
- status_t _SetupRenderBuffer(struct gl_renderbuffer* rb,
- color_space colorSpace);
-
-/* Mesa callbacks */
- static void _RenderBufferDelete(struct gl_context *ctx,
- struct gl_renderbuffer* rb);
- static GLboolean _RenderBufferStorage(gl_context* ctx,
- struct gl_renderbuffer* render,
- GLenum internalFormat,
- GLuint width, GLuint height);
- static GLboolean _RenderBufferStorageMalloc(gl_context* ctx,
- struct gl_renderbuffer* render,
- GLenum internalFormat,
- GLuint width, GLuint height);
- static void _RenderBufferMap(gl_context *ctx,
- struct gl_renderbuffer *rb,
- GLuint x, GLuint y, GLuint w, GLuint h,
- GLbitfield mode, GLubyte **mapOut,
- GLint *rowStrideOut);
-
- void _AllocateBitmap();
- void _CopyToDirect();
-
- BBitmap* fBitmap;
- bool fDirectModeEnabled;
- direct_buffer_info* fInfo;
- BLocker fInfoLocker;
- ulong fOptions;
-
- gl_config* fVisual;
-
- struct gl_framebuffer* fFrameBuffer;
- struct swrast_renderbuffer* fFrontRenderBuffer;
- struct swrast_renderbuffer* fBackRenderBuffer;
-
- GLuint fWidth;
- GLuint fHeight;
- color_space fColorSpace;
-
- void* fRowAddr[SWRAST_MAX_HEIGHT];
-};
-
-#endif // MESASOFTWARERENDERER_H
diff --git a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef b/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef
deleted file mode 100644
index cb6033210..000000000
--- a/mesalib/src/mesa/drivers/haiku/swrast/SoftwareRast.rdef
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- */
-
-resource app_signature "application/x-vnd.Haiku-swrast";
-
-resource app_version {
- major = 9,
- middle = 0,
- minor = 0,
- variety = 0,
- internal = 0,
- short_info = "Software Rasterizer",
- long_info = "Haiku Mesa Software GL Rasterizer"
-};
-
-resource vector_icon {
- $"6E6369660A0200140294A9FF18020014028DFFFF97058C0500020006023B10B7"
- $"37F036BA1A993D466848C719BEBE2000919292FFD5D5D5020016023900000000"
- $"000000003EE0004AE00048E0005EF884C702000203392E8D383001BAD97F3C12"
- $"8B4786BD48B8AD0D97BBFFFF7B4168DBE9FF4168DB97020002023A0C1238D099"
- $"BE44203F4BD14B38844678240DF56A7D9FE1EA064CC704016B0500090A044024"
- $"2438404C5C380A044028243C40505C3C0A042438243B5C3C5C380608BFBE4D59"
- $"4D59515957575659585560406044603C5E3A5C3CCB4FBFBA5E3ECA9DC11F564B"
- $"584A544C504C0606AF0F2F3D2F3D393D4034BF593542324130432F42364432C0"
- $"3FBC5A2F48354A2F480608AE9A22303EB5BD3AB42542B755422E412F3C29322D"
- $"32223C0204263726372538263F253E263F304430443143303C313D303C02043D"
- $"423D423C433D4A3C493D4A495049504A4F49474A484947060DAEAAAE014E445A"
- $"3456365E325E3D5D3F5A3A5542544E4D573A4E364439463342324A2242310A0A"
- $"0002020102403CA00C88888C8CC1401673C40D6544F2950A01010002403CA000"
- $"0000000000401673C40D65446CF80A08020304023EC16A0000000000003EC16A"
- $"45DD1844C6550A030105123EC16A0000000000003EC16A45DD1844C655011784"
- $"22040A040105023EC16A0000000000003EC16A45DD1844C6550A030108123EC1"
- $"6A0000000000003EC16A45DD1844C65501178422040A0503080706023EC16A00"
- $"00000000003EC16A45DD1844C6550A030206071A3EC16A0000000000003EC16A"
- $"45DD1844C65510FF0215810004178222040A060106023EC16A0000000000003E"
- $"C16A45DD1844C6550A070107023EC16A0000000000003EC16A45DD1844C655"
-};
diff --git a/mesalib/src/mesa/main/api_exec.h b/mesalib/src/mesa/main/api_exec.h
index 12249fec2..655cb32d0 100644
--- a/mesalib/src/mesa/main/api_exec.h
+++ b/mesalib/src/mesa/main/api_exec.h
@@ -38,6 +38,9 @@ _mesa_initialize_exec_table(struct gl_context *ctx);
extern void
_mesa_initialize_dispatch_tables(struct gl_context *ctx);
+extern struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries);
+
#ifdef __cplusplus
} // extern "C"
#endif
diff --git a/mesalib/src/mesa/main/api_loopback.c b/mesalib/src/mesa/main/api_loopback.c
index 9932a8373..a7fd82c53 100644
--- a/mesalib/src/mesa/main/api_loopback.c
+++ b/mesalib/src/mesa/main/api_loopback.c
@@ -1772,7 +1772,9 @@ _mesa_loopback_init_api_table(const struct gl_context *ctx,
SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv);
SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv);
SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv);
+ }
+ if (ctx->API == API_OPENGL_CORE) {
/* GL 4.1 / GL_ARB_vertex_attrib_64bit */
SET_VertexAttribL1d(dest, _mesa_VertexAttribL1d);
SET_VertexAttribL2d(dest, _mesa_VertexAttribL2d);
diff --git a/mesalib/src/mesa/main/arrayobj.c b/mesalib/src/mesa/main/arrayobj.c
index 320f435ea..7c4004043 100644
--- a/mesalib/src/mesa/main/arrayobj.c
+++ b/mesalib/src/mesa/main/arrayobj.c
@@ -617,14 +617,6 @@ void GLAPIENTRY
_mesa_CreateVertexArrays(GLsizei n, GLuint *arrays)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateVertexArrays(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
gen_vertex_arrays(ctx, n, arrays, true, "glCreateVertexArrays");
}
@@ -667,13 +659,6 @@ _mesa_VertexArrayElementBuffer(GLuint vaobj, GLuint buffer)
struct gl_vertex_array_object *vao;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayElementBuffer(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
ASSERT_OUTSIDE_BEGIN_END(ctx);
/* The GL_ARB_direct_state_access specification says:
@@ -710,13 +695,6 @@ _mesa_GetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param)
ASSERT_OUTSIDE_BEGIN_END(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayiv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The GL_ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
diff --git a/mesalib/src/mesa/main/attrib.c b/mesalib/src/mesa/main/attrib.c
index b163c0aa6..53626e38b 100644
--- a/mesalib/src/mesa/main/attrib.c
+++ b/mesalib/src/mesa/main/attrib.c
@@ -177,6 +177,10 @@ struct texture_state
};
+/** An unused GL_*_BIT value */
+#define DUMMY_BIT 0x10000000
+
+
/**
* Allocate new attribute node of given type/kind. Attach payload data.
* Insert it into the linked list named by 'head'.
@@ -253,6 +257,15 @@ _mesa_PushAttrib(GLbitfield mask)
/* groups specified by the mask. */
head = NULL;
+ if (mask == 0) {
+ /* if mask is zero we still need to push something so that we
+ * don't get a GL_STACK_UNDERFLOW error in glPopAttrib().
+ */
+ GLuint dummy = 0;
+ if (!push_attrib(ctx, &head, DUMMY_BIT, sizeof(dummy), &dummy))
+ goto end;
+ }
+
if (mask & GL_ACCUM_BUFFER_BIT) {
if (!push_attrib(ctx, &head, GL_ACCUM_BUFFER_BIT,
sizeof(struct gl_accum_attrib),
@@ -928,6 +941,10 @@ _mesa_PopAttrib(void)
}
switch (attr->kind) {
+ case DUMMY_BIT:
+ /* do nothing */
+ break;
+
case GL_ACCUM_BUFFER_BIT:
{
const struct gl_accum_attrib *accum;
@@ -1074,6 +1091,11 @@ _mesa_PopAttrib(void)
_mesa_ClearDepth(depth->Clear);
_mesa_set_enable(ctx, GL_DEPTH_TEST, depth->Test);
_mesa_DepthMask(depth->Mask);
+ if (ctx->Extensions.EXT_depth_bounds_test) {
+ _mesa_set_enable(ctx, GL_DEPTH_BOUNDS_TEST_EXT,
+ depth->BoundsTest);
+ _mesa_DepthBoundsEXT(depth->BoundsMin, depth->BoundsMax);
+ }
}
break;
case GL_ENABLE_BIT:
diff --git a/mesalib/src/mesa/main/blit.c b/mesalib/src/mesa/main/blit.c
index fac972450..db8fee5a4 100644
--- a/mesalib/src/mesa/main/blit.c
+++ b/mesalib/src/mesa/main/blit.c
@@ -540,13 +540,6 @@ _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *readFb, *drawFb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitNamedFramebuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx,
"glBlitNamedFramebuffer(%u %u %d, %d, %d, %d, "
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index 660bc9489..66dee6802 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -1303,12 +1303,6 @@ create_buffers(GLsizei n, GLuint *buffers, bool dsa)
const char *func = dsa ? "glCreateBuffers" : "glGenBuffers";
- if (dsa && !ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "%s(%d)\n", func, n);
@@ -1483,13 +1477,6 @@ _mesa_NamedBufferStorage(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferStorage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferStorage");
if (!bufObj)
return;
@@ -1616,13 +1603,6 @@ _mesa_NamedBufferData(GLuint buffer, GLsizeiptr size, const GLvoid *data,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferData");
if (!bufObj)
return;
@@ -1693,13 +1673,6 @@ _mesa_NamedBufferSubData(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glNamedBufferSubData");
if (!bufObj)
return;
@@ -1737,13 +1710,6 @@ _mesa_GetNamedBufferSubData(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferSubData");
if (!bufObj)
@@ -1839,13 +1805,6 @@ _mesa_ClearNamedBufferData(GLuint buffer, GLenum internalformat,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedBufferData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glClearNamedBufferData");
if (!bufObj)
return;
@@ -1883,13 +1842,6 @@ _mesa_ClearNamedBufferSubData(GLuint buffer, GLenum internalformat,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glClearNamedBufferSubData");
if (!bufObj)
@@ -1978,13 +1930,6 @@ _mesa_UnmapNamedBuffer(GLuint buffer)
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glUnmapNamedBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return GL_FALSE;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glUnmapNamedBuffer");
if (!bufObj)
return GL_FALSE;
@@ -2094,13 +2039,6 @@ _mesa_GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params)
struct gl_buffer_object *bufObj;
GLint64 parameter;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferParameteriv");
if (!bufObj)
@@ -2121,13 +2059,6 @@ _mesa_GetNamedBufferParameteri64v(GLuint buffer, GLenum pname,
struct gl_buffer_object *bufObj;
GLint64 parameter;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferParameteri64v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glGetNamedBufferParameteri64v");
if (!bufObj)
@@ -2167,13 +2098,6 @@ _mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params)
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedBufferPointerv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (pname != GL_BUFFER_MAP_POINTER) {
_mesa_error(ctx, GL_INVALID_ENUM, "glGetNamedBufferPointerv(pname != "
"GL_BUFFER_MAP_POINTER)");
@@ -2288,13 +2212,6 @@ _mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *src, *dst;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCopyNamedBufferSubData(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
src = _mesa_lookup_bufferobj_err(ctx, readBuffer,
"glCopyNamedBufferSubData");
if (!src)
@@ -2513,13 +2430,6 @@ _mesa_MapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glMapNamedBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return NULL;
- }
-
if (!ctx->Extensions.ARB_map_buffer_range) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glMapNamedBufferRange("
@@ -2587,13 +2497,6 @@ _mesa_MapNamedBuffer(GLuint buffer, GLenum access)
struct gl_buffer_object *bufObj;
GLbitfield accessFlags;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glMapNamedBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return NULL;
- }
-
if (!get_map_buffer_access_flags(ctx, access, &accessFlags)) {
_mesa_error(ctx, GL_INVALID_ENUM, "glMapNamedBuffer(invalid access)");
return NULL;
@@ -2684,14 +2587,6 @@ _mesa_FlushMappedNamedBufferRange(GLuint buffer, GLintptr offset,
GET_CURRENT_CONTEXT(ctx);
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glFlushMappedNamedBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
-
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glFlushMappedNamedBufferRange");
if (!bufObj)
diff --git a/mesalib/src/mesa/main/buffers.c b/mesalib/src/mesa/main/buffers.c
index c83459add..0536266d7 100644
--- a/mesalib/src/mesa/main/buffers.c
+++ b/mesalib/src/mesa/main/buffers.c
@@ -303,13 +303,6 @@ _mesa_NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf)
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferDrawBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferDrawBuffer");
@@ -520,13 +513,6 @@ _mesa_NamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferDrawBuffers(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferDrawBuffers");
@@ -764,13 +750,6 @@ _mesa_NamedFramebufferReadBuffer(GLuint framebuffer, GLenum src)
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *fb;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferReadBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (framebuffer) {
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferReadBuffer");
diff --git a/mesalib/src/mesa/main/clear.c b/mesalib/src/mesa/main/clear.c
index c6999f7fd..426caea47 100644
--- a/mesalib/src/mesa/main/clear.c
+++ b/mesalib/src/mesa/main/clear.c
@@ -412,14 +412,6 @@ _mesa_ClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferiv(buffer, drawbuffer, value);
@@ -510,14 +502,6 @@ _mesa_ClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferuiv(buffer, drawbuffer, value);
@@ -629,14 +613,6 @@ _mesa_ClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferfv(buffer, drawbuffer, value);
@@ -719,14 +695,6 @@ _mesa_ClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer,
{
GLint oldfb;
- GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glClearNamedFramebufferfi(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
_mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb);
_mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
_mesa_ClearBufferfi(buffer, 0, depth, stencil);
diff --git a/mesalib/src/mesa/main/config.h b/mesalib/src/mesa/main/config.h
index 5a66a4eec..9c3baf4c6 100644
--- a/mesalib/src/mesa/main/config.h
+++ b/mesalib/src/mesa/main/config.h
@@ -213,19 +213,10 @@
/** For GL_ARB_fragment_program */
/*@{*/
#define MAX_FRAGMENT_PROGRAM_ADDRESS_REGS 0
+#define MAX_FRAGMENT_PROGRAM_PARAMS 64
+#define MAX_FRAGMENT_PROGRAM_INPUTS 12
/*@}*/
-/** For GL_NV_fragment_program */
-/*@{*/
-#define MAX_NV_FRAGMENT_PROGRAM_INSTRUCTIONS 1024 /* 72 for GL_ARB_f_p */
-#define MAX_NV_FRAGMENT_PROGRAM_TEMPS 96
-#define MAX_NV_FRAGMENT_PROGRAM_PARAMS 64
-#define MAX_NV_FRAGMENT_PROGRAM_INPUTS 12
-#define MAX_NV_FRAGMENT_PROGRAM_OUTPUTS 3
-#define MAX_NV_FRAGMENT_PROGRAM_WRITE_ONLYS 2
-/*@}*/
-
-
/** For GL_ARB_vertex_shader */
/*@{*/
#define MAX_VERTEX_GENERIC_ATTRIBS 16
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c
index 544cc142f..79fa01849 100644
--- a/mesalib/src/mesa/main/context.c
+++ b/mesalib/src/mesa/main/context.c
@@ -489,8 +489,8 @@ init_program_limits(struct gl_constants *consts, gl_shader_stage stage,
prog->MaxOutputComponents = 16 * 4; /* old limit not to break tnl and swrast */
break;
case MESA_SHADER_FRAGMENT:
- prog->MaxParameters = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
- prog->MaxAttribs = MAX_NV_FRAGMENT_PROGRAM_INPUTS;
+ prog->MaxParameters = MAX_FRAGMENT_PROGRAM_PARAMS;
+ prog->MaxAttribs = MAX_FRAGMENT_PROGRAM_INPUTS;
prog->MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
prog->MaxUniformComponents = 4 * MAX_UNIFORMS;
prog->MaxInputComponents = 16 * 4; /* old limit not to break tnl and swrast */
@@ -883,6 +883,19 @@ update_default_objects(struct gl_context *ctx)
}
+/* XXX this is temporary and should be removed at some point in the
+ * future when there's a reasonable expectation that the libGL library
+ * contains the _glapi_new_nop_table() and _glapi_set_nop_handler()
+ * functions which were added in Mesa 10.6.
+ */
+#if !defined(_WIN32)
+/* Avoid libGL / driver ABI break */
+#define USE_GLAPI_NOP_FEATURES 0
+#else
+#define USE_GLAPI_NOP_FEATURES 1
+#endif
+
+
/**
* This function is called by the glapi no-op functions. For each OpenGL
* function/entrypoint there's a simple no-op function. These "no-op"
@@ -898,6 +911,7 @@ update_default_objects(struct gl_context *ctx)
*
* \param name the name of the OpenGL function
*/
+#if USE_GLAPI_NOP_FEATURES
static void
nop_handler(const char *name)
{
@@ -914,6 +928,7 @@ nop_handler(const char *name)
}
#endif
}
+#endif
/**
@@ -923,12 +938,52 @@ nop_handler(const char *name)
static void GLAPIENTRY
nop_glFlush(void)
{
- /* don't record an error like we do in _mesa_generic_nop() */
+ /* don't record an error like we do in nop_handler() */
+}
+#endif
+
+
+#if !USE_GLAPI_NOP_FEATURES
+static int
+generic_nop(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "unsupported function called "
+ "(unsupported extension or deprecated function?)");
+ return 0;
}
#endif
/**
+ * Create a new API dispatch table in which all entries point to the
+ * generic_nop() function. This will not work on Windows because of
+ * the __stdcall convention which requires the callee to clean up the
+ * call stack. That's impossible with one generic no-op function.
+ */
+struct _glapi_table *
+_mesa_new_nop_table(unsigned numEntries)
+{
+ struct _glapi_table *table;
+
+#if !USE_GLAPI_NOP_FEATURES
+ table = malloc(numEntries * sizeof(_glapi_proc));
+ if (table) {
+ _glapi_proc *entry = (_glapi_proc *) table;
+ unsigned i;
+ for (i = 0; i < numEntries; i++) {
+ entry[i] = (_glapi_proc) generic_nop;
+ }
+ }
+#else
+ table = _glapi_new_nop_table(numEntries);
+#endif
+ return table;
+}
+
+
+/**
* Allocate and initialize a new dispatch table. The table will be
* populated with pointers to "no-op" functions. In turn, the no-op
* functions will call nop_handler() above.
@@ -941,8 +996,9 @@ alloc_dispatch_table(void)
* Mesa we do this to accommodate different versions of libGL and various
* DRI drivers.
*/
- GLint numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
- struct _glapi_table *table = _glapi_new_nop_table(numEntries);
+ int numEntries = MAX2(_glapi_get_dispatch_table_size(), _gloffset_COUNT);
+
+ struct _glapi_table *table = _mesa_new_nop_table(numEntries);
#if defined(_WIN32)
if (table) {
@@ -966,7 +1022,9 @@ alloc_dispatch_table(void)
}
#endif
+#if USE_GLAPI_NOP_FEATURES
_glapi_set_nop_handler(nop_handler);
+#endif
return table;
}
@@ -1111,9 +1169,7 @@ _mesa_initialize_context(struct gl_context *ctx,
ctx->HasConfig = GL_FALSE;
}
- if (_mesa_is_desktop_gl(ctx)) {
- _mesa_override_gl_version(ctx);
- }
+ _mesa_override_gl_version(ctx);
/* misc one-time initializations */
one_time_init(ctx);
@@ -1275,7 +1331,6 @@ _mesa_free_context_data( struct gl_context *ctx )
_mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current, NULL);
_mesa_reference_vertprog(ctx, &ctx->VertexProgram._TnlProgram, NULL);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current, NULL);
_mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, NULL);
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, NULL);
diff --git a/mesalib/src/mesa/main/copyimage.c b/mesalib/src/mesa/main/copyimage.c
index fd22f2889..e8732c617 100644
--- a/mesalib/src/mesa/main/copyimage.c
+++ b/mesalib/src/mesa/main/copyimage.c
@@ -40,14 +40,25 @@ enum mesa_block_class {
BLOCK_CLASS_64_BITS
};
+/**
+ * Prepare the source or destination resource, including:
+ * - Error checking
+ * - Creating texture wrappers for renderbuffers
+ * \param name the texture or renderbuffer name
+ * \param target GL_TEXTURE target or GL_RENDERBUFFER. For the later, will
+ * be changed to a compatible GL_TEXTURE target.
+ * \param level mipmap level
+ * \param tex_obj returns a pointer to a texture object
+ * \param tex_image returns a pointer to a texture image
+ * \param tmp_tex returns temporary texture object name
+ * \return true if success, false if error
+ */
static bool
prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
struct gl_texture_object **tex_obj,
struct gl_texture_image **tex_image, GLuint *tmp_tex,
const char *dbg_prefix)
{
- struct gl_renderbuffer *rb;
-
if (name == 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sName = %d)", dbg_prefix, name);
@@ -87,7 +98,7 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
}
if (*target == GL_RENDERBUFFER) {
- rb = _mesa_lookup_renderbuffer(ctx, name);
+ struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, name);
if (!rb) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sName = %u)", dbg_prefix, name);
@@ -169,8 +180,15 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level,
return true;
}
+
+/**
+ * Check that the x,y,z,width,height,region is within the texture image
+ * dimensions.
+ * \return true if bounds OK, false if regions is out of bounds
+ */
static bool
-check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
+check_region_bounds(struct gl_context *ctx,
+ const struct gl_texture_image *tex_image,
int x, int y, int z, int width, int height, int depth,
const char *dbg_prefix)
{
@@ -188,6 +206,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
return false;
}
+ /* Check X direction */
if (x + width > tex_image->Width) {
_mesa_error(ctx, GL_INVALID_VALUE,
"glCopyImageSubData(%sX or %sWidth exceeds image bounds)",
@@ -195,6 +214,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
return false;
}
+ /* Check Y direction */
switch (tex_image->TexObject->Target) {
case GL_TEXTURE_1D:
case GL_TEXTURE_1D_ARRAY:
@@ -215,6 +235,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
break;
}
+ /* Check Z direction */
switch (tex_image->TexObject->Target) {
case GL_TEXTURE_1D:
case GL_TEXTURE_2D:
@@ -260,7 +281,7 @@ check_region_bounds(struct gl_context *ctx, struct gl_texture_image *tex_image,
}
static bool
-compressed_format_compatible(struct gl_context *ctx,
+compressed_format_compatible(const struct gl_context *ctx,
GLenum compressedFormat, GLenum otherFormat)
{
enum mesa_block_class compressedClass, otherClass;
@@ -348,8 +369,8 @@ compressed_format_compatible(struct gl_context *ctx,
}
static bool
-copy_format_compatible(struct gl_context *ctx,
- GLenum srcFormat, GLenum dstFormat)
+copy_format_compatible(const struct gl_context *ctx,
+ GLenum srcFormat, GLenum dstFormat)
{
/*
* From ARB_copy_image spec:
@@ -389,7 +410,7 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel,
struct gl_texture_object *srcTexObj, *dstTexObj;
struct gl_texture_image *srcTexImage, *dstTexImage;
GLuint src_bw, src_bh, dst_bw, dst_bh;
- int i, srcNewZ, dstNewZ;
+ int i;
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glCopyImageSubData(%u, %s, %d, %d, %d, %d, "
@@ -447,6 +468,8 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel,
}
for (i = 0; i < srcDepth; ++i) {
+ int srcNewZ, dstNewZ;
+
if (srcTexObj->Target == GL_TEXTURE_CUBE_MAP) {
srcTexImage = srcTexObj->Image[i + srcZ][srcLevel];
srcNewZ = 0;
diff --git a/mesalib/src/mesa/main/depth.c b/mesalib/src/mesa/main/depth.c
index 29851ecb8..bb4591cf1 100644
--- a/mesalib/src/mesa/main/depth.c
+++ b/mesalib/src/mesa/main/depth.c
@@ -65,6 +65,9 @@ _mesa_DepthFunc( GLenum func )
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glDepthFunc %s\n", _mesa_lookup_enum_by_nr(func));
+ if (ctx->Depth.Func == func)
+ return;
+
switch (func) {
case GL_LESS: /* (default) pass if incoming z < stored z */
case GL_GEQUAL:
@@ -80,9 +83,6 @@ _mesa_DepthFunc( GLenum func )
return;
}
- if (ctx->Depth.Func == func)
- return;
-
FLUSH_VERTICES(ctx, _NEW_DEPTH);
ctx->Depth.Func = func;
diff --git a/mesalib/src/mesa/main/dlist.c b/mesalib/src/mesa/main/dlist.c
index 431c4b48b..aafe486fb 100644
--- a/mesalib/src/mesa/main/dlist.c
+++ b/mesalib/src/mesa/main/dlist.c
@@ -7592,28 +7592,6 @@ save_FramebufferTexture(GLenum target, GLenum attachment,
}
}
-static void GLAPIENTRY
-save_FramebufferTextureFace(GLenum target, GLenum attachment,
- GLuint texture, GLint level, GLenum face)
-{
- Node *n;
- GET_CURRENT_CONTEXT(ctx);
- ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
- n = alloc_instruction(ctx, OPCODE_FRAMEBUFFER_TEXTURE_FACE, 5);
- if (n) {
- n[1].e = target;
- n[2].e = attachment;
- n[3].ui = texture;
- n[4].i = level;
- n[5].e = face;
- }
- if (ctx->ExecuteFlag) {
- CALL_FramebufferTextureFaceARB(ctx->Exec, (target, attachment, texture,
- level, face));
- }
-}
-
-
static void GLAPIENTRY
save_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
@@ -8873,11 +8851,6 @@ execute_list(struct gl_context *ctx, GLuint list)
CALL_FramebufferTexture(ctx->Exec, (n[1].e, n[2].e,
n[3].ui, n[4].i));
break;
- case OPCODE_FRAMEBUFFER_TEXTURE_FACE:
- CALL_FramebufferTextureFaceARB(ctx->Exec, (n[1].e, n[2].e,
- n[3].ui, n[4].i, n[5].e));
- break;
-
/* GL_ARB_sync */
case OPCODE_WAIT_SYNC:
{
@@ -9644,10 +9617,9 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
SET_BlendEquationiARB(table, save_BlendEquationi);
SET_BlendEquationSeparateiARB(table, save_BlendEquationSeparatei);
- /* GL_ARB_geometry_shader4 */
+ /* OpenGL 3.2 */
SET_ProgramParameteri(table, save_ProgramParameteri);
SET_FramebufferTexture(table, save_FramebufferTexture);
- SET_FramebufferTextureFaceARB(table, save_FramebufferTextureFace);
/* GL_NV_conditional_render */
SET_BeginConditionalRender(table, save_BeginConditionalRender);
diff --git a/mesalib/src/mesa/main/errors.c b/mesalib/src/mesa/main/errors.c
index 2aa1deb63..16f10ddb6 100644
--- a/mesalib/src/mesa/main/errors.c
+++ b/mesalib/src/mesa/main/errors.c
@@ -39,6 +39,7 @@
#include "mtypes.h"
#include "version.h"
#include "util/hash_table.h"
+#include "util/simple_list.h"
static mtx_t DynamicIDMutex = _MTX_INITIALIZER_NP;
static GLuint NextDynamicID = 1;
diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c
index c82416aa0..f9bf503a0 100644
--- a/mesalib/src/mesa/main/extensions.c
+++ b/mesalib/src/mesa/main/extensions.c
@@ -104,7 +104,7 @@ static const struct extension extension_table[] = {
{ "GL_ARB_depth_clamp", o(ARB_depth_clamp), GL, 2003 },
{ "GL_ARB_depth_texture", o(ARB_depth_texture), GLL, 2001 },
{ "GL_ARB_derivative_control", o(ARB_derivative_control), GL, 2014 },
- { "GL_ARB_direct_state_access", o(ARB_direct_state_access), GL, 2014 },
+ { "GL_ARB_direct_state_access", o(dummy_true), GLC, 2014 },
{ "GL_ARB_draw_buffers", o(dummy_true), GL, 2002 },
{ "GL_ARB_draw_buffers_blend", o(ARB_draw_buffers_blend), GL, 2009 },
{ "GL_ARB_draw_elements_base_vertex", o(ARB_draw_elements_base_vertex), GL, 2009 },
diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c
index 8db651ca2..c5a702636 100644
--- a/mesalib/src/mesa/main/fbobject.c
+++ b/mesalib/src/mesa/main/fbobject.c
@@ -1489,14 +1489,6 @@ void GLAPIENTRY
_mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateRenderbuffers(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
create_render_buffers(ctx, n, renderbuffers, true);
}
@@ -1937,12 +1929,6 @@ renderbuffer_storage_named(GLuint renderbuffer, GLenum internalFormat,
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (MESA_VERBOSE & VERBOSE_API) {
if (samples == NO_SAMPLES)
_mesa_debug(ctx, "%s(%u, %s, %d, %d)\n",
@@ -2197,13 +2183,6 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedRenderbufferParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, renderbuffer);
if (!rb || rb == &DummyRenderbuffer) {
/* ID was reserved, but no real renderbuffer object made yet */
@@ -2475,12 +2454,6 @@ create_framebuffers(GLsizei n, GLuint *framebuffers, bool dsa)
const char *func = dsa ? "glCreateFramebuffers" : "glGenFramebuffers";
- if (dsa && !ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (n < 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "%s(n < 0)", func);
return;
@@ -2579,13 +2552,6 @@ _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target)
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCheckNamedFramebufferStatus(GL_ARB_direct_state_access "
- "is not supported)");
- return 0;
- }
-
/* Validate the target (for conformance's sake) and grab a reference to the
* default framebuffer in case framebuffer = 0.
* Section 9.4 Framebuffer Completeness of the OpenGL 4.5 core spec
@@ -2741,6 +2707,10 @@ check_texture_target(struct gl_context *ctx, GLenum target,
/* We're being called by glFramebufferTextureLayer().
* The only legal texture types for that function are 3D,
* cube-map, and 1D/2D/cube-map array textures.
+ *
+ * We don't need to check for GL_ARB_texture_cube_map_array because the
+ * application wouldn't have been able to create a texture with a
+ * GL_TEXTURE_CUBE_MAP_ARRAY target if the extension were not enabled.
*/
switch (target) {
case GL_TEXTURE_3D:
@@ -2750,10 +2720,13 @@ check_texture_target(struct gl_context *ctx, GLenum target,
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
return true;
case GL_TEXTURE_CUBE_MAP:
- /* This target is valid in TextureLayer when ARB_direct_state_access
- * or OpenGL 4.5 is supported.
+ /* We don't need to check the extension (GL_ARB_direct_state_access) or
+ * GL version (4.5) for GL_TEXTURE_CUBE_MAP because DSA is always
+ * enabled in core profile. This can be called from
+ * _mesa_FramebufferTextureLayer in compatibility profile (OpenGL 3.0),
+ * so we do have to check the profile.
*/
- return ctx->Extensions.ARB_direct_state_access;
+ return ctx->API == API_OPENGL_CORE;
}
_mesa_error(ctx, GL_INVALID_OPERATION,
@@ -3131,12 +3104,6 @@ _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
const char *func = "glNamedFramebufferTextureLayer";
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
/* Get the framebuffer object */
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer, func);
if (!fb)
@@ -3222,12 +3189,6 @@ _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment,
const char *func = "glNamedFramebufferTexture";
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", func);
- return;
- }
-
if (!_mesa_has_geometry_shaders(ctx)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"unsupported function (glNamedFramebufferTexture) called");
@@ -3353,15 +3314,10 @@ _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment,
struct gl_renderbuffer *rb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferRenderbuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glNamedFramebufferRenderbuffer");
+ if (!fb)
+ return;
if (renderbuffertarget != GL_RENDERBUFFER) {
_mesa_error(ctx, GL_INVALID_ENUM,
@@ -3692,13 +3648,6 @@ _mesa_GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_framebuffer *buffer;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetNamedFramebufferAttachmentParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
if (framebuffer) {
buffer = _mesa_lookup_framebuffer_err(ctx, framebuffer,
"glGetNamedFramebufferAttachmentParameteriv");
@@ -3731,13 +3680,6 @@ _mesa_NamedFramebufferParameteri(GLuint framebuffer, GLenum pname,
(void) pname;
(void) param;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferParameteri("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
_mesa_error(ctx, GL_INVALID_OPERATION,
"glNamedFramebufferParameteri not supported "
"(ARB_framebuffer_no_attachments not implemented)");
@@ -3754,13 +3696,6 @@ _mesa_GetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname,
(void) pname;
(void) param;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glNamedFramebufferParameteriv("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetNamedFramebufferParameteriv not supported "
"(ARB_framebuffer_no_attachments not implemented)");
@@ -3929,13 +3864,6 @@ _mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer,
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glInvalidateNamedFramebufferSubData("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
* default draw framebuffer is affected."
@@ -3997,13 +3925,6 @@ _mesa_InvalidateNamedFramebufferData(GLuint framebuffer,
struct gl_framebuffer *fb;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glInvalidateNamedFramebufferData("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
* default draw framebuffer is affected."
diff --git a/mesalib/src/mesa/main/formats.c b/mesalib/src/mesa/main/formats.c
index 8af44e905..baeb1bfe5 100644
--- a/mesalib/src/mesa/main/formats.c
+++ b/mesalib/src/mesa/main/formats.c
@@ -397,6 +397,11 @@ format_array_format_table_init(void)
format_array_format_table = _mesa_hash_table_create(NULL, NULL,
array_formats_equal);
+ if (!format_array_format_table) {
+ _mesa_error_no_memory(__func__);
+ return;
+ }
+
for (f = 1; f < MESA_FORMAT_COUNT; ++f) {
info = _mesa_get_format_info(f);
if (!info->ArrayFormat)
@@ -432,6 +437,12 @@ _mesa_format_from_array_format(uint32_t array_format)
call_once(&format_array_format_table_exists, format_array_format_table_init);
+ if (!format_array_format_table) {
+ static const once_flag once_flag_init = ONCE_FLAG_INIT;
+ format_array_format_table_exists = once_flag_init;
+ return MESA_FORMAT_NONE;
+ }
+
entry = _mesa_hash_table_search_pre_hashed(format_array_format_table,
array_format,
(void *)(intptr_t)array_format);
diff --git a/mesalib/src/mesa/main/genmipmap.c b/mesalib/src/mesa/main/genmipmap.c
index 32b9460ad..9aef09019 100644
--- a/mesalib/src/mesa/main/genmipmap.c
+++ b/mesalib/src/mesa/main/genmipmap.c
@@ -158,13 +158,6 @@ _mesa_GenerateTextureMipmap(GLuint texture)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGenerateTextureMipmap(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, "glGenerateTextureMipmap");
if (!texObj)
return;
diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c
index 8a6c81aff..1bc9b5d82 100644
--- a/mesalib/src/mesa/main/get.c
+++ b/mesalib/src/mesa/main/get.c
@@ -138,6 +138,7 @@ enum value_extra {
EXTRA_API_GL_CORE,
EXTRA_API_ES2,
EXTRA_API_ES3,
+ EXTRA_API_ES31,
EXTRA_NEW_BUFFERS,
EXTRA_NEW_FRAG_CLAMP,
EXTRA_VALID_DRAW_BUFFER,
@@ -348,6 +349,12 @@ static const int extra_ARB_shader_image_load_store_and_geometry_shader[] = {
EXTRA_END
};
+static const int extra_ARB_draw_indirect_es31[] = {
+ EXT(ARB_draw_indirect),
+ EXTRA_API_ES31,
+ EXTRA_END
+};
+
EXTRA_EXT(ARB_texture_cube_map);
EXTRA_EXT(EXT_texture_array);
EXTRA_EXT(NV_fog_distance);
@@ -1078,6 +1085,11 @@ check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d
if (_mesa_is_gles3(ctx))
api_found = GL_TRUE;
break;
+ case EXTRA_API_ES31:
+ api_check = GL_TRUE;
+ if (_mesa_is_gles31(ctx))
+ api_found = GL_TRUE;
+ break;
case EXTRA_API_GL:
api_check = GL_TRUE;
if (_mesa_is_desktop_gl(ctx))
diff --git a/mesalib/src/mesa/main/get_hash_params.py b/mesalib/src/mesa/main/get_hash_params.py
index 41cb2c17b..513d5d21b 100644
--- a/mesalib/src/mesa/main/get_hash_params.py
+++ b/mesalib/src/mesa/main/get_hash_params.py
@@ -409,6 +409,12 @@ descriptor=[
[ "SAMPLER_BINDING", "LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING, NO_EXTRA" ],
]},
+# Enums in OpenGL Core profile and ES 3.1
+{ "apis": ["GL_CORE", "GLES3"], "params": [
+# GL_ARB_draw_indirect / GLES 3.1
+ [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect_es31" ],
+]},
+
# Remaining enums are only in OpenGL
{ "apis": ["GL", "GL_CORE"], "params": [
[ "ACCUM_RED_BITS", "BUFFER_INT(Visual.accumRedBits), NO_EXTRA" ],
@@ -804,8 +810,6 @@ descriptor=[
{ "apis": ["GL_CORE"], "params": [
# GL_ARB_texture_buffer_range
[ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "CONTEXT_INT(Const.TextureBufferOffsetAlignment), extra_ARB_texture_buffer_range" ],
-# GL_ARB_draw_indirect
- [ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect" ],
# GL_ARB_viewport_array
[ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array" ],
diff --git a/mesalib/src/mesa/main/getstring.c b/mesalib/src/mesa/main/getstring.c
index 1b2c7f054..72d99ca4e 100644
--- a/mesalib/src/mesa/main/getstring.c
+++ b/mesalib/src/mesa/main/getstring.c
@@ -72,10 +72,18 @@ shading_language_version(struct gl_context *ctx)
break;
case API_OPENGLES2:
- return (ctx->Version < 30)
- ? (const GLubyte *) "OpenGL ES GLSL ES 1.0.16"
- : (const GLubyte *) "OpenGL ES GLSL ES 3.00";
-
+ switch (ctx->Version) {
+ case 20:
+ return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
+ case 30:
+ return (const GLubyte *) "OpenGL ES GLSL ES 3.00";
+ case 31:
+ return (const GLubyte *) "OpenGL ES GLSL ES 3.10";
+ default:
+ _mesa_problem(ctx,
+ "Invalid OpenGL ES version in shading_language_version()");
+ return (const GLubyte *) 0;
+ }
case API_OPENGLES:
/* fall-through */
diff --git a/mesalib/src/mesa/main/glformats.c b/mesalib/src/mesa/main/glformats.c
index 8ced57949..ac69fabcc 100644
--- a/mesalib/src/mesa/main/glformats.c
+++ b/mesalib/src/mesa/main/glformats.c
@@ -1200,7 +1200,7 @@ _mesa_is_depth_or_stencil_format(GLenum format)
* \return GL_TRUE if compressed, GL_FALSE if uncompressed
*/
GLboolean
-_mesa_is_compressed_format(struct gl_context *ctx, GLenum format)
+_mesa_is_compressed_format(const struct gl_context *ctx, GLenum format)
{
switch (format) {
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
@@ -1678,6 +1678,10 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
case GL_LUMINANCE:
case GL_ALPHA:
return GL_NO_ERROR;
+ case GL_RG:
+ case GL_RED:
+ if (_mesa_is_gles3(ctx) || ctx->Extensions.ARB_texture_rg)
+ return GL_NO_ERROR;
default:
return GL_INVALID_OPERATION;
}
@@ -2292,8 +2296,18 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
break;
case GL_HALF_FLOAT:
- if (internalFormat != GL_RG16F)
- return GL_INVALID_OPERATION;
+ case GL_HALF_FLOAT_OES:
+ switch (internalFormat) {
+ case GL_RG16F:
+ break;
+ case GL_RG:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_half_float)
+ break;
+ /* fallthrough */
+ default:
+ return GL_INVALID_OPERATION;
+ }
break;
case GL_FLOAT:
@@ -2301,6 +2315,11 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
case GL_RG16F:
case GL_RG32F:
break;
+ case GL_RG:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_float)
+ break;
+ /* fallthrough */
default:
return GL_INVALID_OPERATION;
}
@@ -2361,8 +2380,19 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
break;
case GL_HALF_FLOAT:
- if (internalFormat != GL_R16F)
+ case GL_HALF_FLOAT_OES:
+ switch (internalFormat) {
+ case GL_R16F:
+ break;
+ case GL_RG:
+ case GL_RED:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_half_float)
+ break;
+ /* fallthrough */
+ default:
return GL_INVALID_OPERATION;
+ }
break;
case GL_FLOAT:
@@ -2370,6 +2400,11 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx,
case GL_R16F:
case GL_R32F:
break;
+ case GL_RED:
+ if (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.OES_texture_float)
+ break;
+ /* fallthrough */
default:
return GL_INVALID_OPERATION;
}
diff --git a/mesalib/src/mesa/main/glformats.h b/mesalib/src/mesa/main/glformats.h
index e1ecd64d5..8881cb7d8 100644
--- a/mesalib/src/mesa/main/glformats.h
+++ b/mesalib/src/mesa/main/glformats.h
@@ -96,7 +96,7 @@ extern GLboolean
_mesa_is_depth_or_stencil_format(GLenum format);
extern GLboolean
-_mesa_is_compressed_format(struct gl_context *ctx, GLenum format);
+_mesa_is_compressed_format(const struct gl_context *ctx, GLenum format);
extern GLenum
_mesa_base_format_to_integer_format(GLenum format);
diff --git a/mesalib/src/mesa/main/glheader.h b/mesalib/src/mesa/main/glheader.h
index 7f7f9a39b..a2d98d4dd 100644
--- a/mesalib/src/mesa/main/glheader.h
+++ b/mesalib/src/mesa/main/glheader.h
@@ -135,12 +135,6 @@ typedef void *GLeglImageOES;
#define GL_SHADER_PROGRAM_MESA 0x9999
-/**
- * Internal token for geometry programs.
- * Use the value for GL_GEOMETRY_PROGRAM_NV for now.
- */
-#define MESA_GEOMETRY_PROGRAM 0x8c26
-
/* Several fields of struct gl_config can take these as values. Since
* GLX header files may not be available everywhere they need to be used,
* redefine them here.
diff --git a/mesalib/src/mesa/main/hash.c b/mesalib/src/mesa/main/hash.c
index d04cccd94..315b5d640 100644
--- a/mesalib/src/mesa/main/hash.c
+++ b/mesalib/src/mesa/main/hash.c
@@ -389,34 +389,6 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table,
/**
- * Clone all entries in a hash table, into a new table.
- *
- * \param table the hash table to clone
- */
-struct _mesa_HashTable *
-_mesa_HashClone(const struct _mesa_HashTable *table)
-{
- /* cast-away const */
- struct _mesa_HashTable *table2 = (struct _mesa_HashTable *) table;
- struct hash_entry *entry;
- struct _mesa_HashTable *clonetable;
-
- assert(table);
- mtx_lock(&table2->Mutex);
-
- clonetable = _mesa_NewHashTable();
- assert(clonetable);
- hash_table_foreach(table->ht, entry) {
- _mesa_HashInsert(clonetable, (GLint)(uintptr_t)entry->key, entry->data);
- }
-
- mtx_unlock(&table2->Mutex);
-
- return clonetable;
-}
-
-
-/**
* Walk over all entries in a hash table, calling callback function for each.
* Note: we use a separate mutex in this function to avoid a recursive
* locking deadlock (in case the callback calls _mesa_HashRemove()) and to
diff --git a/mesalib/src/mesa/main/hash.h b/mesalib/src/mesa/main/hash.h
index e3e8f492e..da3b9973d 100644
--- a/mesalib/src/mesa/main/hash.h
+++ b/mesalib/src/mesa/main/hash.h
@@ -59,9 +59,6 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table,
void (*callback)(GLuint key, void *data, void *userData),
void *userData);
-extern struct _mesa_HashTable *
-_mesa_HashClone(const struct _mesa_HashTable *table);
-
extern void
_mesa_HashWalk(const struct _mesa_HashTable *table,
void (*callback)(GLuint key, void *data, void *userData),
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index 83425176a..e67e8074a 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -43,7 +43,6 @@
#include "glapi/glapi.h"
#include "math/m_matrix.h" /* GLmatrix */
#include "glsl/shader_enums.h"
-#include "util/simple_list.h" /* struct simple_node */
#include "main/formats.h" /* MESA_FORMAT_COUNT */
@@ -398,7 +397,6 @@ struct gl_config
{
GLboolean rgbMode;
GLboolean floatMode;
- GLboolean colorIndexMode; /* XXX is this used anywhere? */
GLuint doubleBufferMode;
GLuint stereoMode;
@@ -2275,16 +2273,10 @@ struct gl_vertex_program_state
*/
struct gl_geometry_program_state
{
- GLboolean Enabled; /**< GL_ARB_GEOMETRY_SHADER4 */
- GLboolean _Enabled; /**< Enabled and valid program? */
- struct gl_geometry_program *Current; /**< user-bound geometry program */
-
/** Currently enabled and valid program (including internal programs
* and compiled shader programs).
*/
struct gl_geometry_program *_Current;
-
- GLfloat Parameters[MAX_PROGRAM_ENV_PARAMS][4]; /**< Env params */
};
/**
@@ -2320,8 +2312,6 @@ struct gl_fragment_program_state
*/
struct gl_compute_program_state
{
- struct gl_compute_program *Current; /**< user-bound compute program */
-
/** Currently enabled and valid program (including internal programs
* and compiled shader programs).
*/
@@ -2728,7 +2718,7 @@ struct gl_shader_program
} Comp;
/* post-link info: */
- unsigned NumUserUniformStorage;
+ unsigned NumUniformStorage;
unsigned NumHiddenUniforms;
struct gl_uniform_storage *UniformStorage;
@@ -3004,7 +2994,6 @@ struct gl_shared_state
struct _mesa_HashTable *Programs; /**< All vertex/fragment programs */
struct gl_vertex_program *DefaultVertexProgram;
struct gl_fragment_program *DefaultFragmentProgram;
- struct gl_geometry_program *DefaultGeometryProgram;
/*@}*/
/* GL_ATI_fragment_shader */
@@ -3621,7 +3610,6 @@ struct gl_extensions
GLboolean ARB_depth_clamp;
GLboolean ARB_depth_texture;
GLboolean ARB_derivative_control;
- GLboolean ARB_direct_state_access;
GLboolean ARB_draw_buffers_blend;
GLboolean ARB_draw_elements_base_vertex;
GLboolean ARB_draw_indirect;
diff --git a/mesalib/src/mesa/main/pipelineobj.c b/mesalib/src/mesa/main/pipelineobj.c
index a33cdd139..0fefa7d56 100644
--- a/mesalib/src/mesa/main/pipelineobj.c
+++ b/mesalib/src/mesa/main/pipelineobj.c
@@ -553,12 +553,6 @@ _mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glCreateProgramPipelines("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
create_program_pipelines(ctx, n, pipelines, true);
}
diff --git a/mesalib/src/mesa/main/program_resource.c b/mesalib/src/mesa/main/program_resource.c
index b15a13210..d857b84e6 100644
--- a/mesalib/src/mesa/main/program_resource.c
+++ b/mesalib/src/mesa/main/program_resource.c
@@ -220,12 +220,12 @@ _mesa_GetProgramResourceIndex(GLuint program, GLenum programInterface,
case GL_PROGRAM_INPUT:
case GL_PROGRAM_OUTPUT:
case GL_UNIFORM:
- case GL_UNIFORM_BLOCK:
case GL_TRANSFORM_FEEDBACK_VARYING:
- /* Validate name syntax for arrays. */
+ /* Validate name syntax for array variables */
if (!valid_program_resource_index_name(name))
return GL_INVALID_INDEX;
-
+ /* fall-through */
+ case GL_UNIFORM_BLOCK:
res = _mesa_program_resource_find_name(shProg, programInterface, name);
if (!res)
return GL_INVALID_INDEX;
diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c
index 2784b4c05..5ff1b9532 100644
--- a/mesalib/src/mesa/main/queryobj.c
+++ b/mesalib/src/mesa/main/queryobj.c
@@ -284,13 +284,6 @@ _mesa_CreateQueries(GLenum target, GLsizei n, GLuint *ids)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateQueries(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
switch (target) {
case GL_SAMPLES_PASSED:
case GL_ANY_SAMPLES_PASSED:
diff --git a/mesalib/src/mesa/main/readpix.c b/mesalib/src/mesa/main/readpix.c
index df46f8361..a3357cd64 100644
--- a/mesalib/src/mesa/main/readpix.c
+++ b/mesalib/src/mesa/main/readpix.c
@@ -46,15 +46,18 @@
/**
* Return true if the conversion L=R+G+B is needed.
*/
-static GLboolean
-need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format)
+GLboolean
+_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format)
{
GLenum baseTexFormat = _mesa_get_format_base_format(texFormat);
return (baseTexFormat == GL_RG ||
baseTexFormat == GL_RGB ||
baseTexFormat == GL_RGBA) &&
- (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA);
+ (format == GL_LUMINANCE ||
+ format == GL_LUMINANCE_ALPHA ||
+ format == GL_LUMINANCE_INTEGER_EXT ||
+ format == GL_LUMINANCE_ALPHA_INTEGER_EXT);
}
@@ -102,7 +105,7 @@ get_readpixels_transfer_ops(const struct gl_context *ctx, mesa_format texFormat,
* have any effect anyway.
*/
if (_mesa_get_format_datatype(texFormat) == GL_UNSIGNED_NORMALIZED &&
- !need_rgb_to_luminance_conversion(texFormat, format)) {
+ !_mesa_need_rgb_to_luminance_conversion(texFormat, format)) {
transferOps &= ~IMAGE_CLAMP_BIT;
}
@@ -146,7 +149,7 @@ _mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format,
default:
/* Color formats. */
- if (need_rgb_to_luminance_conversion(rb->Format, format)) {
+ if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format)) {
return GL_TRUE;
}
@@ -418,7 +421,7 @@ read_rgba_pixels( struct gl_context *ctx,
const struct gl_pixelstore_attrib *packing )
{
GLbitfield transferOps;
- bool dst_is_integer, dst_is_luminance, needs_rebase;
+ bool dst_is_integer, convert_rgb_to_lum, needs_rebase;
int dst_stride, src_stride, rb_stride;
uint32_t dst_format, src_format;
GLubyte *dst, *map;
@@ -439,10 +442,8 @@ read_rgba_pixels( struct gl_context *ctx,
dst_is_integer = _mesa_is_enum_format_integer(format);
dst_stride = _mesa_image_row_stride(packing, width, format, type);
dst_format = _mesa_format_from_format_and_type(format, type);
- dst_is_luminance = format == GL_LUMINANCE ||
- format == GL_LUMINANCE_ALPHA ||
- format == GL_LUMINANCE_INTEGER_EXT ||
- format == GL_LUMINANCE_ALPHA_INTEGER_EXT;
+ convert_rgb_to_lum =
+ _mesa_need_rgb_to_luminance_conversion(rb->Format, format);
dst = (GLubyte *) _mesa_image_address2d(packing, pixels, width, height,
format, type, 0, 0);
@@ -490,7 +491,7 @@ read_rgba_pixels( struct gl_context *ctx,
*/
assert(!transferOps || (transferOps && !dst_is_integer));
- needs_rgba = transferOps || dst_is_luminance;
+ needs_rgba = transferOps || convert_rgb_to_lum;
rgba = NULL;
if (needs_rgba) {
uint32_t rgba_format;
@@ -563,7 +564,7 @@ read_rgba_pixels( struct gl_context *ctx,
* If the dst format is Luminance, we need to do the conversion by computing
* L=R+G+B values.
*/
- if (!dst_is_luminance) {
+ if (!convert_rgb_to_lum) {
_mesa_format_convert(dst, dst_format, dst_stride,
src, src_format, src_stride,
width, height,
diff --git a/mesalib/src/mesa/main/readpix.h b/mesalib/src/mesa/main/readpix.h
index 4bb35e17e..1636dd9ce 100644
--- a/mesalib/src/mesa/main/readpix.h
+++ b/mesalib/src/mesa/main/readpix.h
@@ -37,6 +37,9 @@ extern GLboolean
_mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format,
GLenum type, GLboolean uses_blit);
+extern GLboolean
+_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format);
+
extern void
_mesa_readpixels(struct gl_context *ctx,
GLint x, GLint y, GLsizei width, GLsizei height,
diff --git a/mesalib/src/mesa/main/samplerobj.c b/mesalib/src/mesa/main/samplerobj.c
index 60711a5b5..a3aacc66a 100644
--- a/mesalib/src/mesa/main/samplerobj.c
+++ b/mesalib/src/mesa/main/samplerobj.c
@@ -221,13 +221,6 @@ void GLAPIENTRY
_mesa_CreateSamplers(GLsizei count, GLuint *samplers)
{
GET_CURRENT_CONTEXT(ctx);
-
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glCreateSamplers("
- "GL_ARB_direct_state_access is not supported)");
- return;
- }
-
create_samplers(ctx, count, samplers, "glCreateSamplers");
}
diff --git a/mesalib/src/mesa/main/shader_query.cpp b/mesalib/src/mesa/main/shader_query.cpp
index 3445f89a3..a6246a39a 100644
--- a/mesalib/src/mesa/main/shader_query.cpp
+++ b/mesalib/src/mesa/main/shader_query.cpp
@@ -479,12 +479,20 @@ _mesa_GetFragDataLocation(GLuint program, const GLchar *name)
const char*
_mesa_program_resource_name(struct gl_program_resource *res)
{
+ const ir_variable *var;
switch (res->Type) {
case GL_UNIFORM_BLOCK:
return RESOURCE_UBO(res)->Name;
case GL_TRANSFORM_FEEDBACK_VARYING:
return RESOURCE_XFB(res)->Name;
case GL_PROGRAM_INPUT:
+ var = RESOURCE_VAR(res);
+ /* Special case gl_VertexIDMESA -> gl_VertexID. */
+ if (var->data.mode == ir_var_system_value &&
+ var->data.location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE) {
+ return "gl_VertexID";
+ }
+ /* fallthrough */
case GL_PROGRAM_OUTPUT:
return RESOURCE_VAR(res)->name;
case GL_UNIFORM:
@@ -539,6 +547,17 @@ struct gl_program_resource *
_mesa_program_resource_find_name(struct gl_shader_program *shProg,
GLenum programInterface, const char *name)
{
+ GET_CURRENT_CONTEXT(ctx);
+ const char *full_name = name;
+
+ /* When context has 'VertexID_is_zero_based' set, gl_VertexID has been
+ * lowered to gl_VertexIDMESA.
+ */
+ if (name && ctx->Const.VertexID_is_zero_based) {
+ if (strcmp(name, "gl_VertexID") == 0)
+ full_name = "gl_VertexIDMESA";
+ }
+
struct gl_program_resource *res = shProg->ProgramResourceList;
for (unsigned i = 0; i < shProg->NumProgramResourceList; i++, res++) {
if (res->Type != programInterface)
@@ -563,7 +582,7 @@ _mesa_program_resource_find_name(struct gl_shader_program *shProg,
break;
case GL_PROGRAM_INPUT:
case GL_PROGRAM_OUTPUT:
- if (array_index_of_resource(res, name) >= 0)
+ if (array_index_of_resource(res, full_name) >= 0)
return res;
break;
default:
@@ -728,6 +747,10 @@ program_resource_location(struct gl_shader_program *shProg,
return -1;
}
+ /* Built-in locations should report GL_INVALID_INDEX. */
+ if (is_gl_identifier(name))
+ return GL_INVALID_INDEX;
+
/* VERT_ATTRIB_GENERIC0 and FRAG_RESULT_DATA0 are decremented as these
* offsets are used internally to differentiate between built-in attributes
* and user-defined attributes.
diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c
index a04b28711..a4296adf7 100644
--- a/mesalib/src/mesa/main/shaderapi.c
+++ b/mesalib/src/mesa/main/shaderapi.c
@@ -532,7 +532,7 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
/* True if geometry shaders (of the form that was adopted into GLSL 1.50
* and GL 3.2) are available in this context
*/
- const bool has_core_gs = _mesa_is_desktop_gl(ctx) && ctx->Version >= 32;
+ const bool has_core_gs = _mesa_has_geometry_shaders(ctx);
/* Are uniform buffer objects available in this context?
*/
@@ -569,13 +569,13 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
*params = _mesa_longest_attribute_name_length(shProg);
return;
case GL_ACTIVE_UNIFORMS:
- *params = shProg->NumUserUniformStorage - shProg->NumHiddenUniforms;
+ *params = shProg->NumUniformStorage - shProg->NumHiddenUniforms;
return;
case GL_ACTIVE_UNIFORM_MAX_LENGTH: {
unsigned i;
GLint max_len = 0;
const unsigned num_uniforms =
- shProg->NumUserUniformStorage - shProg->NumHiddenUniforms;
+ shProg->NumUniformStorage - shProg->NumHiddenUniforms;
for (i = 0; i < num_uniforms; i++) {
/* Add one for the terminating NUL character for a non-array, and
diff --git a/mesalib/src/mesa/main/shaderobj.c b/mesalib/src/mesa/main/shaderobj.c
index e42896036..110a18e1e 100644
--- a/mesalib/src/mesa/main/shaderobj.c
+++ b/mesalib/src/mesa/main/shaderobj.c
@@ -282,10 +282,10 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
unsigned i;
if (shProg->UniformStorage) {
- for (i = 0; i < shProg->NumUserUniformStorage; ++i)
+ for (i = 0; i < shProg->NumUniformStorage; ++i)
_mesa_uniform_detach_all_driver_storage(&shProg->UniformStorage[i]);
ralloc_free(shProg->UniformStorage);
- shProg->NumUserUniformStorage = 0;
+ shProg->NumUniformStorage = 0;
shProg->UniformStorage = NULL;
}
diff --git a/mesalib/src/mesa/main/shared.c b/mesalib/src/mesa/main/shared.c
index 0b76cc012..d5ac9f1fb 100644
--- a/mesalib/src/mesa/main/shared.c
+++ b/mesalib/src/mesa/main/shared.c
@@ -313,7 +313,6 @@ free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared)
_mesa_DeleteHashTable(shared->Programs);
_mesa_reference_vertprog(ctx, &shared->DefaultVertexProgram, NULL);
- _mesa_reference_geomprog(ctx, &shared->DefaultGeometryProgram, NULL);
_mesa_reference_fragprog(ctx, &shared->DefaultFragmentProgram, NULL);
_mesa_HashDeleteAll(shared->ATIShaders, delete_fragshader_cb, ctx);
diff --git a/mesalib/src/mesa/main/state.c b/mesalib/src/mesa/main/state.c
index 2657c532f..5b970081a 100644
--- a/mesalib/src/mesa/main/state.c
+++ b/mesalib/src/mesa/main/state.c
@@ -225,7 +225,7 @@ update_program(struct gl_context *ctx)
if (ctx->GeometryProgram._Current != prevGP) {
new_state |= _NEW_PROGRAM;
if (ctx->Driver.BindProgram) {
- ctx->Driver.BindProgram(ctx, MESA_GEOMETRY_PROGRAM,
+ ctx->Driver.BindProgram(ctx, GL_GEOMETRY_PROGRAM_NV,
(struct gl_program *) ctx->GeometryProgram._Current);
}
}
diff --git a/mesalib/src/mesa/main/texgetimage.c b/mesalib/src/mesa/main/texgetimage.c
index f582a7f78..92b4d6795 100644
--- a/mesalib/src/mesa/main/texgetimage.c
+++ b/mesalib/src/mesa/main/texgetimage.c
@@ -1108,13 +1108,6 @@ _mesa_GetTextureImage(GLuint texture, GLint level, GLenum format,
GLenum err;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureImage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/*
* This has been moved here because a format/type mismatch can cause a NULL
* texImage object, which in turn causes the mismatch error to be
@@ -1351,13 +1344,6 @@ _mesa_GetCompressedTextureImage(GLuint texture, GLint level,
GLint image_stride;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetCompressedTextureImage(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetCompressedTextureImage");
if (!texObj)
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index 7616fd7ce..3d85615fa 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -222,7 +222,7 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
}
}
- if (ctx->Extensions.ARB_stencil_texturing) {
+ if (ctx->Extensions.ARB_texture_stencil8) {
switch (internalFormat) {
case GL_STENCIL_INDEX:
case GL_STENCIL_INDEX1:
@@ -3624,13 +3624,6 @@ texturesubimage(struct gl_context *ctx, GLuint dims,
_mesa_lookup_enum_by_nr(format),
_mesa_lookup_enum_by_nr(type), pixels);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureSubImage%uD(GL_ARB_direct_state_access "
- "is not supported)", dims);
- return;
- }
-
/* Get the texture object by Name. */
texObj = _mesa_lookup_texture(ctx, texture);
if (!texObj) {
@@ -4190,12 +4183,6 @@ _mesa_CopyTextureSubImage1D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage1D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4220,12 +4207,6 @@ _mesa_CopyTextureSubImage2D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage2D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4253,12 +4234,6 @@ _mesa_CopyTextureSubImage3D(GLuint texture, GLint level,
const char *self = "glCopyTextureSubImage3D";
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported)", self);
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture, self);
if (!texObj)
return;
@@ -4854,13 +4829,6 @@ _mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage1D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage1D");
if (!texObj)
@@ -4939,13 +4907,6 @@ _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage2D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage2D");
if (!texObj)
@@ -5024,13 +4985,6 @@ _mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCompressedTextureSubImage3D(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glCompressedTextureSubImage3D");
if (!texObj)
@@ -5515,13 +5469,6 @@ _mesa_TextureBuffer(GLuint texture, GLenum internalFormat, GLuint buffer)
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureBuffer(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (buffer) {
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTextureBuffer");
if (!bufObj)
@@ -5550,13 +5497,6 @@ _mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer,
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
if (buffer) {
bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
"glTextureBufferRange");
@@ -5861,13 +5801,6 @@ _mesa_TextureStorage2DMultisample(GLuint texture, GLsizei samples,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage2DMultisample(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glTextureStorage2DMultisample");
if (!texObj)
@@ -5888,13 +5821,6 @@ _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage3DMultisample(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/* Get the texture object by Name. */
texObj = _mesa_lookup_texture_err(ctx, texture,
"glTextureStorage3DMultisample");
diff --git a/mesalib/src/mesa/main/texobj.c b/mesalib/src/mesa/main/texobj.c
index d51e6954b..c563f1e74 100644
--- a/mesalib/src/mesa/main/texobj.c
+++ b/mesalib/src/mesa/main/texobj.c
@@ -1317,13 +1317,6 @@ _mesa_CreateTextures(GLenum target, GLsizei n, GLuint *textures)
GLint targetIndex;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateTextures(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/*
* The 4.5 core profile spec (30.10.2014) doesn't specify what
* glCreateTextures should do with invalid targets, which was probably an
@@ -1815,13 +1808,6 @@ _mesa_BindTextureUnit(GLuint unit, GLuint texture)
_mesa_debug(ctx, "glBindTextureUnit %s %d\n",
_mesa_lookup_enum_by_nr(GL_TEXTURE0+unit), (GLint) texture);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBindTextureUnit(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
/* Section 8.1 (Texture Objects) of the OpenGL 4.5 core profile spec
* (20141030) says:
* "When texture is zero, each of the targets enumerated at the
diff --git a/mesalib/src/mesa/main/texparam.c b/mesalib/src/mesa/main/texparam.c
index 1fa583002..d74134f41 100644
--- a/mesalib/src/mesa/main/texparam.c
+++ b/mesalib/src/mesa/main/texparam.c
@@ -1108,13 +1108,6 @@ _mesa_TextureParameterfv(GLuint texture, GLenum pname, const GLfloat *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1131,13 +1124,6 @@ _mesa_TextureParameterf(GLuint texture, GLenum pname, GLfloat param)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterf(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1154,13 +1140,6 @@ _mesa_TextureParameteri(GLuint texture, GLenum pname, GLint param)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameteri(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1178,13 +1157,6 @@ _mesa_TextureParameteriv(GLuint texture, GLenum pname,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1202,13 +1174,6 @@ _mesa_TextureParameterIiv(GLuint texture, GLenum pname, const GLint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterIiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1226,13 +1191,6 @@ _mesa_TextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureParameterIuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_FALSE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -1692,13 +1650,6 @@ _mesa_GetTextureLevelParameterfv(GLuint texture, GLint level,
GLint iparam;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureLevelParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetTextureLevelParameterfv");
if (!texObj)
@@ -1717,13 +1668,6 @@ _mesa_GetTextureLevelParameteriv(GLuint texture, GLint level,
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureLevelParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = _mesa_lookup_texture_err(ctx, texture,
"glGetTextureLevelParameteriv");
if (!texObj)
@@ -2283,13 +2227,6 @@ _mesa_GetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params)
struct gl_texture_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterfv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!obj) {
/* User passed a non-generated name. */
@@ -2307,13 +2244,6 @@ _mesa_GetTextureParameteriv(GLuint texture, GLenum pname, GLint *params)
struct gl_texture_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameteriv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!obj) {
/* User passed a non-generated name. */
@@ -2331,13 +2261,6 @@ _mesa_GetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterIiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!texObj) {
/* User passed a non-generated name. */
@@ -2356,13 +2279,6 @@ _mesa_GetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params)
struct gl_texture_object *texObj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTextureParameterIuiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
texObj = get_texobj_by_name(ctx, texture, GL_TRUE);
if (!texObj) {
/* User passed a non-generated name. */
diff --git a/mesalib/src/mesa/main/texstorage.c b/mesalib/src/mesa/main/texstorage.c
index dee74a825..53cb2c091 100644
--- a/mesalib/src/mesa/main/texstorage.c
+++ b/mesalib/src/mesa/main/texstorage.c
@@ -507,13 +507,6 @@ texturestorage(GLuint dims, GLuint texture, GLsizei levels,
_mesa_lookup_enum_by_nr(internalformat),
width, height, depth);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureStorage%uD(GL_ARB_direct_state_access "
- "is not supported)", dims);
- return;
- }
-
/* Check the format to make sure it is sized. */
if (!_mesa_is_legal_tex_storage_format(ctx, internalformat)) {
_mesa_error(ctx, GL_INVALID_ENUM,
diff --git a/mesalib/src/mesa/main/textureview.c b/mesalib/src/mesa/main/textureview.c
index cd87a27d2..6b0aed4ea 100644
--- a/mesalib/src/mesa/main/textureview.c
+++ b/mesalib/src/mesa/main/textureview.c
@@ -167,7 +167,7 @@ static const struct internal_format_class_info s3tc_compatible_internal_formats[
* \return VIEW_CLASS if internalformat found in table, false otherwise.
*/
static GLenum
-lookup_view_class(struct gl_context *ctx, GLenum internalformat)
+lookup_view_class(const struct gl_context *ctx, GLenum internalformat)
{
GLuint i;
@@ -176,9 +176,11 @@ lookup_view_class(struct gl_context *ctx, GLenum internalformat)
return compatible_internal_formats[i].view_class;
}
- if (ctx->Extensions.EXT_texture_compression_s3tc && ctx->Extensions.EXT_texture_sRGB) {
+ if (ctx->Extensions.EXT_texture_compression_s3tc &&
+ ctx->Extensions.EXT_texture_sRGB) {
for (i = 0; i < ARRAY_SIZE(s3tc_compatible_internal_formats); i++) {
- if (s3tc_compatible_internal_formats[i].internal_format == internalformat)
+ if (s3tc_compatible_internal_formats[i].internal_format
+ == internalformat)
return s3tc_compatible_internal_formats[i].view_class;
}
}
@@ -226,7 +228,8 @@ initialize_texture_fields(struct gl_context *ctx,
0, internalFormat, texFormat);
}
- _mesa_next_mipmap_level_size(target, 0, levelWidth, levelHeight, levelDepth,
+ _mesa_next_mipmap_level_size(target, 0,
+ levelWidth, levelHeight, levelDepth,
&levelWidth, &levelHeight, &levelDepth);
}
@@ -320,8 +323,8 @@ target_valid(struct gl_context *ctx, GLenum origTarget, GLenum newTarget)
* If an error is found, record it with _mesa_error()
* \return false if any error, true otherwise.
*/
-GLboolean
-_mesa_texture_view_compatible_format(struct gl_context *ctx,
+bool
+_mesa_texture_view_compatible_format(const struct gl_context *ctx,
GLenum origInternalFormat,
GLenum newInternalFormat)
{
@@ -334,15 +337,16 @@ _mesa_texture_view_compatible_format(struct gl_context *ctx,
* or an INVALID_OPERATION error is generated.
*/
if (origInternalFormat == newInternalFormat)
- return GL_TRUE;
+ return true;
origViewClass = lookup_view_class(ctx, origInternalFormat);
newViewClass = lookup_view_class(ctx, newInternalFormat);
if ((origViewClass == newViewClass) && origViewClass != false)
- return GL_TRUE;
+ return true;
- return GL_FALSE;
+ return false;
}
+
/**
* Helper function for TexStorage and teximagemultisample to set immutable
* texture state needed by ARB_texture_view.
@@ -357,17 +361,19 @@ _mesa_set_texture_view_state(struct gl_context *ctx,
/* Get a reference to what will become this View's base level */
texImage = _mesa_select_tex_image(texObj, target, 0);
- /* When an immutable texture is created via glTexStorage or glTexImageMultisample,
+ /* When an immutable texture is created via glTexStorage or
+ * glTexImageMultisample,
* TEXTURE_IMMUTABLE_FORMAT becomes TRUE.
* TEXTURE_IMMUTABLE_LEVELS and TEXTURE_VIEW_NUM_LEVELS become levels.
* If the texture target is TEXTURE_1D_ARRAY then
* TEXTURE_VIEW_NUM_LAYERS becomes height.
* If the texture target is TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY,
- * or TEXTURE_2D_MULTISAMPLE_ARRAY then TEXTURE_VIEW_NUM_LAYERS becomes depth.
+ * or TEXTURE_2D_MULTISAMPLE_ARRAY then TEXTURE_VIEW_NUM_LAYERS becomes
+ * depth.
* If the texture target is TEXTURE_CUBE_MAP, then
* TEXTURE_VIEW_NUM_LAYERS becomes 6.
* For any other texture target, TEXTURE_VIEW_NUM_LAYERS becomes 1.
- *
+ *
* ARB_texture_multisample: Multisample textures do
* not have multiple image levels.
*/
@@ -401,7 +407,6 @@ _mesa_set_texture_view_state(struct gl_context *ctx,
case GL_TEXTURE_CUBE_MAP:
texObj->NumLayers = 6;
break;
-
}
}
@@ -435,16 +440,20 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
minlevel, numlevels, minlayer, numlayers);
if (origtexture == 0) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)", origtexture);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)",
+ origtexture);
return;
}
/* Need original texture information to validate arguments */
origTexObj = _mesa_lookup_texture(ctx, origtexture);
- /* If <origtexture> is not the name of a texture, INVALID_VALUE is generated. */
+ /* If <origtexture> is not the name of a texture, INVALID_VALUE
+ * is generated.
+ */
if (!origTexObj) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)", origtexture);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(origtexture = %u)",
+ origtexture);
return;
}
@@ -452,7 +461,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
* INVALID_OPERATION is generated.
*/
if (!origTexObj->Immutable) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(origtexture not immutable)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(origtexture not immutable)");
return;
}
@@ -467,7 +477,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
texObj = _mesa_lookup_texture(ctx, texture);
if (texObj == NULL) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(texture = %u non-gen name)", texture);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(texture = %u non-gen name)", texture);
return;
}
@@ -475,7 +486,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
* the error INVALID_OPERATION is generated.
*/
if (texObj->Target) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(texture = %u already bound)", texture);
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(texture = %u already bound)", texture);
return;
}
@@ -484,33 +496,35 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
return; /* error was recorded */
}
- /* minlevel and minlayer are relative to the view of origtexture
+ /* minlevel and minlayer are relative to the view of origtexture.
* If minlevel or minlayer is greater than level or layer, respectively,
- * of origtexture return INVALID_VALUE.
+ * return INVALID_VALUE.
*/
newViewMinLevel = origTexObj->MinLevel + minlevel;
newViewMinLayer = origTexObj->MinLayer + minlayer;
if (newViewMinLevel >= (origTexObj->MinLevel + origTexObj->NumLevels)) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(new minlevel (%d) > orig minlevel (%d) + orig numlevels (%d))",
+ "glTextureView(new minlevel (%d) > orig minlevel (%d)"
+ " + orig numlevels (%d))",
newViewMinLevel, origTexObj->MinLevel, origTexObj->NumLevels);
return;
}
if (newViewMinLayer >= (origTexObj->MinLayer + origTexObj->NumLayers)) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(new minlayer (%d) > orig minlayer (%d) + orig numlayers (%d))",
+ "glTextureView(new minlayer (%d) > orig minlayer (%d)"
+ " + orig numlayers (%d))",
newViewMinLayer, origTexObj->MinLayer, origTexObj->NumLayers);
return;
}
if (!_mesa_texture_view_compatible_format(ctx,
- origTexObj->Image[0][0]->InternalFormat,
- internalformat)) {
+ origTexObj->Image[0][0]->InternalFormat,
+ internalformat)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
- "glTextureView(internalformat %s not compatible with origtexture %s)",
- _mesa_lookup_enum_by_nr(internalformat),
- _mesa_lookup_enum_by_nr(origTexObj->Image[0][0]->InternalFormat));
+ "glTextureView(internalformat %s not compatible with origtexture %s)",
+ _mesa_lookup_enum_by_nr(internalformat),
+ _mesa_lookup_enum_by_nr(origTexObj->Image[0][0]->InternalFormat));
return;
}
@@ -569,14 +583,16 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
dimensionsOK = _mesa_legal_texture_dimensions(ctx, target, 0,
width, height, depth, 0);
if (!dimensionsOK) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(invalid width or height or depth)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(invalid width or height or depth)");
return;
}
sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 0, texFormat,
width, height, depth, 0);
if (!sizeOK) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(invalid texture size)");
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(invalid texture size)");
return;
}
@@ -591,17 +607,19 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
case GL_TEXTURE_RECTANGLE:
case GL_TEXTURE_2D_MULTISAMPLE:
if (numlayers != 1) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(numlayers %d != 1)", numlayers);
+ _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(numlayers %d != 1)",
+ numlayers);
return;
}
break;
case GL_TEXTURE_CUBE_MAP:
- /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped <numlayers>
- * must be equal to 6.
+ /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped
+ * <numlayers> must be equal to 6.
*/
if (newViewNumLayers != 6) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glTextureView(clamped numlayers %d != 6)",
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glTextureView(clamped numlayers %d != 6)",
newViewNumLayers);
return;
}
@@ -615,7 +633,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
if ((newViewNumLayers % 6) != 0) {
_mesa_error(ctx, GL_INVALID_VALUE,
- "glTextureView(clamped numlayers %d is not a multiple of 6)",
+ "glTextureView(clamped numlayers %d is not"
+ " a multiple of 6)",
newViewNumLayers);
return;
}
@@ -628,7 +647,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
*/
if ((target == GL_TEXTURE_CUBE_MAP || target == GL_TEXTURE_CUBE_MAP_ARRAY) &&
(origTexImage->Width != origTexImage->Height)) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(origtexture width (%d) != height (%d))",
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glTextureView(origtexture width (%d) != height (%d))",
origTexImage->Width, origTexImage->Height);
return;
}
@@ -662,7 +682,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
texObj->ImmutableLevels = origTexObj->ImmutableLevels;
texObj->Target = target;
- if (ctx->Driver.TextureView != NULL && !ctx->Driver.TextureView(ctx, texObj, origTexObj)) {
+ if (ctx->Driver.TextureView != NULL &&
+ !ctx->Driver.TextureView(ctx, texObj, origTexObj)) {
return; /* driver recorded error */
}
}
diff --git a/mesalib/src/mesa/main/textureview.h b/mesalib/src/mesa/main/textureview.h
index 549a13cd8..59e24b68d 100644
--- a/mesalib/src/mesa/main/textureview.h
+++ b/mesalib/src/mesa/main/textureview.h
@@ -29,8 +29,8 @@
#ifndef TEXTUREVIEW_H
#define TEXTUREVIEW_H
-GLboolean
-_mesa_texture_view_compatible_format(struct gl_context *ctx,
+bool
+_mesa_texture_view_compatible_format(const struct gl_context *ctx,
GLenum origInternalFormat,
GLenum newInternalFormat);
@@ -41,7 +41,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
GLuint minlayer, GLuint numlayers);
extern void
-_mesa_set_texture_view_state(struct gl_context *ctx, struct gl_texture_object *texObj,
- GLenum target, GLuint levels);
+_mesa_set_texture_view_state(struct gl_context *ctx,
+ struct gl_texture_object *texObj,
+ GLenum target, GLuint levels);
#endif /* TEXTUREVIEW_H */
diff --git a/mesalib/src/mesa/main/transformfeedback.c b/mesalib/src/mesa/main/transformfeedback.c
index 642fa9647..103011ce5 100644
--- a/mesalib/src/mesa/main/transformfeedback.c
+++ b/mesalib/src/mesa/main/transformfeedback.c
@@ -706,13 +706,6 @@ _mesa_TransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer)
struct gl_transform_feedback_object *obj;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTransformFeedbackBufferBase(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glTransformFeedbackBufferBase");
if(!obj) {
@@ -736,13 +729,6 @@ _mesa_TransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer,
struct gl_transform_feedback_object *obj;
struct gl_buffer_object *bufObj;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glTransformFeedbackBufferRange(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glTransformFeedbackBufferRange");
if(!obj) {
@@ -1059,13 +1045,6 @@ _mesa_CreateTransformFeedbacks(GLsizei n, GLuint *names)
{
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCreateTransformFeedbacks(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
create_transform_feedbacks(ctx, n, names, true);
}
@@ -1236,13 +1215,6 @@ _mesa_GetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbackiv(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbackiv");
if(!obj) {
@@ -1269,13 +1241,6 @@ _mesa_GetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index,
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbacki_v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbacki_v");
if(!obj) {
@@ -1305,13 +1270,6 @@ _mesa_GetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index,
struct gl_transform_feedback_object *obj;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetTransformFeedbacki64_v(GL_ARB_direct_state_access "
- "is not supported)");
- return;
- }
-
obj = lookup_transform_feedback_object_err(ctx, xfb,
"glGetTransformFeedbacki64_v");
if(!obj) {
diff --git a/mesalib/src/mesa/main/uniform_query.cpp b/mesalib/src/mesa/main/uniform_query.cpp
index 728bd1bac..cab5083e8 100644
--- a/mesalib/src/mesa/main/uniform_query.cpp
+++ b/mesalib/src/mesa/main/uniform_query.cpp
@@ -237,6 +237,13 @@ validate_uniform_parameters(struct gl_context *ctx,
struct gl_uniform_storage *const uni = shProg->UniformRemapTable[location];
+ /* Even though no location is assigned to a built-in uniform and this
+ * function should already have returned NULL, this test makes it explicit
+ * that we are not allowing to update the value of a built-in.
+ */
+ if (uni->builtin)
+ return NULL;
+
if (uni->array_elements == 0) {
if (count > 1) {
_mesa_error(ctx, GL_INVALID_OPERATION,
@@ -1028,6 +1035,10 @@ _mesa_get_uniform_location(struct gl_shader_program *shProg,
if (!found)
return GL_INVALID_INDEX;
+ /* If the uniform is built-in, fail. */
+ if (shProg->UniformStorage[location].builtin)
+ return GL_INVALID_INDEX;
+
/* If the uniform is an array, fail if the index is out of bounds.
* (A negative index is caught above.) This also fails if the uniform
* is not an array, but the user is trying to index it, because
@@ -1047,7 +1058,7 @@ _mesa_sampler_uniforms_are_valid(const struct gl_shader_program *shProg,
char *errMsg, size_t errMsgLength)
{
/* Shader does not have samplers. */
- if (shProg->NumUserUniformStorage == 0)
+ if (shProg->NumUniformStorage == 0)
return true;
if (!shProg->SamplersValidated) {
@@ -1087,7 +1098,7 @@ _mesa_sampler_uniforms_pipeline_are_valid(struct gl_pipeline_object *pipeline)
if (!shProg[idx])
continue;
- for (unsigned i = 0; i < shProg[idx]->NumUserUniformStorage; i++) {
+ for (unsigned i = 0; i < shProg[idx]->NumUniformStorage; i++) {
const struct gl_uniform_storage *const storage =
&shProg[idx]->UniformStorage[i];
const glsl_type *const t = (storage->type->is_array())
diff --git a/mesalib/src/mesa/main/uniforms.h b/mesalib/src/mesa/main/uniforms.h
index 55fa2357e..bd7b05e20 100644
--- a/mesalib/src/mesa/main/uniforms.h
+++ b/mesalib/src/mesa/main/uniforms.h
@@ -343,10 +343,6 @@ void GLAPIENTRY
_mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
-long
-_mesa_parse_program_resource_name(const GLchar *name,
- const GLchar **out_base_name_end);
-
unsigned
_mesa_get_uniform_location(struct gl_shader_program *shProg,
const GLchar *name, unsigned *offset);
diff --git a/mesalib/src/mesa/main/varray.c b/mesalib/src/mesa/main/varray.c
index da6bbce52..7389037ae 100644
--- a/mesalib/src/mesa/main/varray.c
+++ b/mesalib/src/mesa/main/varray.c
@@ -777,13 +777,6 @@ _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index)
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glEnableVertexArrayAttrib(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by EnableVertexArrayAttrib
@@ -837,13 +830,6 @@ _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index)
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glDisableVertexArrayAttrib(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by EnableVertexArrayAttrib
@@ -1108,13 +1094,6 @@ _mesa_GetVertexArrayIndexediv(GLuint vaobj, GLuint index,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayIndexediv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
@@ -1178,14 +1157,6 @@ _mesa_GetVertexArrayIndexed64iv(GLuint vaobj, GLuint index,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glGetVertexArrayIndexed64iv(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated if <vaobj> is not
@@ -1774,13 +1745,6 @@ _mesa_VertexArrayVertexBuffer(GLuint vaobj, GLuint bindingIndex, GLuint buffer,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayVertexBuffer(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayVertexBuffer
@@ -1946,14 +1910,6 @@ _mesa_VertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayVertexBuffers(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayVertexBuffer
@@ -2062,12 +2018,6 @@ vertex_array_attrib_format(GLuint vaobj, GLuint attribIndex, GLint size,
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "%s(GL_ARB_direct_state_access is not supported", func);
- return;
- }
-
ASSERT_OUTSIDE_BEGIN_END(ctx);
/* The ARB_direct_state_access spec says:
@@ -2205,13 +2155,6 @@ _mesa_VertexArrayAttribBinding(GLuint vaobj, GLuint attribIndex, GLuint bindingI
GET_CURRENT_CONTEXT(ctx);
struct gl_vertex_array_object *vao;
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayAttribBinding(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayAttribBinding
@@ -2286,13 +2229,6 @@ _mesa_VertexArrayBindingDivisor(GLuint vaobj, GLuint bindingIndex, GLuint diviso
struct gl_vertex_array_object *vao;
GET_CURRENT_CONTEXT(ctx);
- if (!ctx->Extensions.ARB_direct_state_access) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glVertexArrayBindingDivisor(GL_ARB_direct_state_access "
- "is not supported");
- return;
- }
-
/* The ARB_direct_state_access specification says:
*
* "An INVALID_OPERATION error is generated by VertexArrayBindingDivisor
diff --git a/mesalib/src/mesa/main/version.c b/mesalib/src/mesa/main/version.c
index 699a0de46..60c76040e 100644
--- a/mesalib/src/mesa/main/version.c
+++ b/mesalib/src/mesa/main/version.c
@@ -51,15 +51,20 @@ check_for_ending(const char *string, const char *ending)
* fwd_context is only valid if version > 0
*/
static void
-get_gl_override(int *version, bool *fwd_context, bool *compat_context)
+get_gl_override(gl_api api, int *version, bool *fwd_context,
+ bool *compat_context)
{
- const char *env_var = "MESA_GL_VERSION_OVERRIDE";
+ const char *env_var = (api == API_OPENGL_CORE || api == API_OPENGL_COMPAT)
+ ? "MESA_GL_VERSION_OVERRIDE" : "MESA_GLES_VERSION_OVERRIDE";
const char *version_str;
int major, minor, n;
static int override_version = -1;
static bool fc_suffix = false;
static bool compat_suffix = false;
+ if (api == API_OPENGLES)
+ goto exit;
+
if (override_version < 0) {
override_version = 0;
@@ -75,7 +80,12 @@ get_gl_override(int *version, bool *fwd_context, bool *compat_context)
override_version = 0;
} else {
override_version = major * 10 + minor;
- if (override_version < 30 && fc_suffix) {
+
+ /* There is no such thing as compatibility or forward-compatible for
+ * OpenGL ES 2.0 or 3.x APIs.
+ */
+ if ((override_version < 30 && fc_suffix) ||
+ (api == API_OPENGLES2 && (fc_suffix || compat_suffix))) {
fprintf(stderr, "error: invalid value for %s: %s\n",
env_var, version_str);
}
@@ -83,6 +93,7 @@ get_gl_override(int *version, bool *fwd_context, bool *compat_context)
}
}
+exit:
*version = override_version;
*fwd_context = fc_suffix;
*compat_context = compat_suffix;
@@ -130,18 +141,26 @@ _mesa_override_gl_version_contextless(struct gl_constants *consts,
int version;
bool fwd_context, compat_context;
- get_gl_override(&version, &fwd_context, &compat_context);
+ get_gl_override(*apiOut, &version, &fwd_context, &compat_context);
if (version > 0) {
*versionOut = version;
- if (version >= 30 && fwd_context) {
- *apiOut = API_OPENGL_CORE;
- consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
- } else if (version >= 31 && !compat_context) {
- *apiOut = API_OPENGL_CORE;
- } else {
- *apiOut = API_OPENGL_COMPAT;
+
+ /* If the API is a desktop API, adjust the context flags. We may also
+ * need to modify the API depending on the version. For example, Mesa
+ * does not support a GL 3.3 compatibility profile.
+ */
+ if (*apiOut == API_OPENGL_CORE || *apiOut == API_OPENGL_COMPAT) {
+ if (version >= 30 && fwd_context) {
+ *apiOut = API_OPENGL_CORE;
+ consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
+ } else if (version >= 31 && !compat_context) {
+ *apiOut = API_OPENGL_CORE;
+ } else {
+ *apiOut = API_OPENGL_COMPAT;
+ }
}
+
return true;
}
return false;
@@ -157,22 +176,6 @@ _mesa_override_gl_version(struct gl_context *ctx)
}
/**
- * Returns the gl override value
- *
- * version > 0 indicates there is an override requested
- */
-int
-_mesa_get_gl_version_override(void)
-{
- int version;
- bool fwd_context, compat_context;
-
- get_gl_override(&version, &fwd_context, &compat_context);
-
- return version;
-}
-
-/**
* Override the context's GLSL version if the environment variable
* MESA_GLSL_VERSION_OVERRIDE is set. Valid values for
* MESA_GLSL_VERSION_OVERRIDE are integers, such as "130".
@@ -433,7 +436,23 @@ compute_version_es2(const struct gl_extensions *extensions)
extensions->EXT_texture_snorm &&
extensions->NV_primitive_restart &&
extensions->OES_depth_texture_cube_map);
- if (ver_3_0) {
+ const bool ver_3_1 = (ver_3_0 &&
+ extensions->ARB_arrays_of_arrays &&
+ extensions->ARB_compute_shader &&
+ extensions->ARB_draw_indirect &&
+ false /*extensions->ARB_framebuffer_no_attachments*/ &&
+ extensions->ARB_shader_atomic_counters &&
+ extensions->ARB_shader_image_load_store &&
+ false /*extensions->ARB_shader_image_size*/ &&
+ false /*extensions->ARB_shader_storage_buffer_object*/ &&
+ extensions->ARB_shading_language_packing &&
+ extensions->ARB_stencil_texturing &&
+ extensions->ARB_gpu_shader5 &&
+ extensions->EXT_shader_integer_mix);
+
+ if (ver_3_1) {
+ return 31;
+ } else if (ver_3_0) {
return 30;
} else if (ver_2_0) {
return 20;
diff --git a/mesalib/src/mesa/main/version.h b/mesalib/src/mesa/main/version.h
index 450a0e31d..ee7cb7501 100644
--- a/mesalib/src/mesa/main/version.h
+++ b/mesalib/src/mesa/main/version.h
@@ -47,7 +47,4 @@ _mesa_override_gl_version(struct gl_context *ctx);
extern void
_mesa_override_glsl_version(struct gl_constants *consts);
-extern int
-_mesa_get_gl_version_override(void);
-
#endif /* VERSION_H */
diff --git a/mesalib/src/mesa/main/vtxfmt.c b/mesalib/src/mesa/main/vtxfmt.c
index d7ef7e278..81bf4c589 100644
--- a/mesalib/src/mesa/main/vtxfmt.c
+++ b/mesalib/src/mesa/main/vtxfmt.c
@@ -207,7 +207,7 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab,
SET_VertexAttribP4uiv(tab, vfmt->VertexAttribP4uiv);
}
- if (_mesa_is_desktop_gl(ctx)) {
+ if (ctx->API == API_OPENGL_CORE) {
SET_VertexAttribL1d(tab, vfmt->VertexAttribL1d);
SET_VertexAttribL2d(tab, vfmt->VertexAttribL2d);
SET_VertexAttribL3d(tab, vfmt->VertexAttribL3d);
diff --git a/mesalib/src/mesa/program/dummy_errors.c b/mesalib/src/mesa/program/dummy_errors.c
new file mode 100644
index 000000000..d69f54d1d
--- /dev/null
+++ b/mesalib/src/mesa/program/dummy_errors.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright © 2014 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.
+ */
+#include <stdio.h>
+#include "main/errors.h"
+
+void
+_mesa_error_no_memory(const char *caller)
+{
+ fprintf(stderr, "Mesa error: out of memory in %s", caller);
+}
diff --git a/mesalib/src/mesa/program/ir_to_mesa.cpp b/mesalib/src/mesa/program/ir_to_mesa.cpp
index 3dcb53702..18e3bc5d5 100644
--- a/mesalib/src/mesa/program/ir_to_mesa.cpp
+++ b/mesalib/src/mesa/program/ir_to_mesa.cpp
@@ -262,6 +262,7 @@ public:
virtual void visit(ir_if *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
src_reg result;
@@ -405,7 +406,7 @@ ir_to_mesa_visitor::emit_dp(ir_instruction *ir,
dst_reg dst, src_reg src0, src_reg src1,
unsigned elements)
{
- static const gl_inst_opcode dot_opcodes[] = {
+ static const enum prog_opcode dot_opcodes[] = {
OPCODE_DP2, OPCODE_DP3, OPCODE_DP4
};
@@ -2117,6 +2118,12 @@ ir_to_mesa_visitor::visit(ir_end_primitive *)
assert(!"Geometry shaders not supported.");
}
+void
+ir_to_mesa_visitor::visit(ir_barrier *)
+{
+ unreachable("GLSL barrier() not supported.");
+}
+
ir_to_mesa_visitor::ir_to_mesa_visitor()
{
result.file = PROGRAM_UNDEFINED;
@@ -2406,9 +2413,14 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
if (!found)
continue;
+ struct gl_uniform_storage *storage =
+ &shader_program->UniformStorage[location];
+
+ /* Do not associate any uniform storage to built-in uniforms */
+ if (storage->builtin)
+ continue;
+
if (location != last_location) {
- struct gl_uniform_storage *storage =
- &shader_program->UniformStorage[location];
enum gl_uniform_driver_format format = uniform_native;
unsigned columns = 0;
@@ -2720,7 +2732,7 @@ get_mesa_program(struct gl_context *ctx,
mesa_inst->Opcode = inst->op;
mesa_inst->CondUpdate = inst->cond_update;
if (inst->saturate)
- mesa_inst->SaturateMode = SATURATE_ZERO_ONE;
+ mesa_inst->Saturate = GL_TRUE;
mesa_inst->DstReg.File = inst->dst.file;
mesa_inst->DstReg.Index = inst->dst.index;
mesa_inst->DstReg.CondMask = inst->dst.cond_mask;
diff --git a/mesalib/src/mesa/program/prog_execute.c b/mesalib/src/mesa/program/prog_execute.c
index 16e8e340d..46260b548 100644
--- a/mesalib/src/mesa/program/prog_execute.c
+++ b/mesalib/src/mesa/program/prog_execute.c
@@ -397,7 +397,7 @@ store_vector4(const struct prog_instruction *inst,
struct gl_program_machine *machine, const GLfloat value[4])
{
const struct prog_dst_register *dstReg = &(inst->DstReg);
- const GLboolean clamp = inst->SaturateMode == SATURATE_ZERO_ONE;
+ const GLboolean clamp = inst->Saturate;
GLuint writeMask = dstReg->WriteMask;
GLfloat clampedValue[4];
GLfloat *dst = get_dst_register_pointer(dstReg, machine);
diff --git a/mesalib/src/mesa/program/prog_instruction.c b/mesalib/src/mesa/program/prog_instruction.c
index f9ebe4e8f..21ef35337 100644
--- a/mesalib/src/mesa/program/prog_instruction.c
+++ b/mesalib/src/mesa/program/prog_instruction.c
@@ -55,7 +55,7 @@ _mesa_init_instructions(struct prog_instruction *inst, GLuint count)
inst[i].DstReg.CondMask = COND_TR;
inst[i].DstReg.CondSwizzle = SWIZZLE_NOOP;
- inst[i].SaturateMode = SATURATE_OFF;
+ inst[i].Saturate = GL_FALSE;
inst[i].Precision = FLOAT32;
}
}
@@ -114,7 +114,7 @@ _mesa_free_instructions(struct prog_instruction *inst, GLuint count)
*/
struct instruction_info
{
- gl_inst_opcode Opcode;
+ enum prog_opcode Opcode;
const char *Name;
GLuint NumSrcRegs;
GLuint NumDstRegs;
@@ -198,7 +198,7 @@ static const struct instruction_info InstInfo[MAX_OPCODE] = {
* Return the number of src registers for the given instruction/opcode.
*/
GLuint
-_mesa_num_inst_src_regs(gl_inst_opcode opcode)
+_mesa_num_inst_src_regs(enum prog_opcode opcode)
{
assert(opcode < MAX_OPCODE);
assert(opcode == InstInfo[opcode].Opcode);
@@ -211,7 +211,7 @@ _mesa_num_inst_src_regs(gl_inst_opcode opcode)
* Return the number of dst registers for the given instruction/opcode.
*/
GLuint
-_mesa_num_inst_dst_regs(gl_inst_opcode opcode)
+_mesa_num_inst_dst_regs(enum prog_opcode opcode)
{
assert(opcode < MAX_OPCODE);
assert(opcode == InstInfo[opcode].Opcode);
@@ -221,7 +221,7 @@ _mesa_num_inst_dst_regs(gl_inst_opcode opcode)
GLboolean
-_mesa_is_tex_instruction(gl_inst_opcode opcode)
+_mesa_is_tex_instruction(enum prog_opcode opcode)
{
return (opcode == OPCODE_TEX ||
opcode == OPCODE_TXB ||
@@ -285,7 +285,7 @@ _mesa_check_soa_dependencies(const struct prog_instruction *inst)
* Return string name for given program opcode.
*/
const char *
-_mesa_opcode_string(gl_inst_opcode opcode)
+_mesa_opcode_string(enum prog_opcode opcode)
{
if (opcode < MAX_OPCODE)
return InstInfo[opcode].Name;
diff --git a/mesalib/src/mesa/program/prog_instruction.h b/mesalib/src/mesa/program/prog_instruction.h
index 96da198f8..d56f96cfa 100644
--- a/mesalib/src/mesa/program/prog_instruction.h
+++ b/mesalib/src/mesa/program/prog_instruction.h
@@ -118,15 +118,6 @@
/**
- * Saturation modes when storing values.
- */
-/*@{*/
-#define SATURATE_OFF 0
-#define SATURATE_ZERO_ONE 1
-/*@}*/
-
-
-/**
* Per-component negation masks
*/
/*@{*/
@@ -143,7 +134,7 @@
/**
* Program instruction opcodes for vertex, fragment and geometry programs.
*/
-typedef enum prog_opcode {
+enum prog_opcode {
/* ARB_vp ARB_fp NV_vp NV_fp GLSL */
/*------------------------------------------*/
OPCODE_NOP = 0, /* X */
@@ -213,7 +204,7 @@ typedef enum prog_opcode {
OPCODE_TRUNC, /* X */
OPCODE_XPD, /* X X */
MAX_OPCODE
-} gl_inst_opcode;
+};
/**
@@ -300,7 +291,7 @@ struct prog_dst_register
*/
struct prog_instruction
{
- gl_inst_opcode Opcode;
+ enum prog_opcode Opcode;
struct prog_src_register SrcReg[3];
struct prog_dst_register DstReg;
@@ -327,15 +318,12 @@ struct prog_instruction
GLuint CondDst:1;
/**
- * Saturate each value of the vectored result to the range [0,1] or the
- * range [-1,1]. \c SSAT mode (i.e., saturation to the range [-1,1]) is
- * only available in NV_fragment_program2 mode.
- * Value is one of the SATURATE_* tokens.
+ * Saturate each value of the vectored result to the range [0,1].
*
* \since
* NV_fragment_program_option, NV_vertex_program3.
*/
- GLuint SaturateMode:2;
+ GLuint Saturate:1;
/**
* Per-instruction selectable precision: FLOAT32, FLOAT16, FIXED12.
@@ -368,9 +356,6 @@ struct prog_instruction
*/
GLint BranchTarget;
- /** for driver use (try to remove someday) */
- GLint Aux;
-
/** for debugging purposes */
const char *Comment;
};
@@ -394,19 +379,19 @@ extern void
_mesa_free_instructions(struct prog_instruction *inst, GLuint count);
extern GLuint
-_mesa_num_inst_src_regs(gl_inst_opcode opcode);
+_mesa_num_inst_src_regs(enum prog_opcode opcode);
extern GLuint
-_mesa_num_inst_dst_regs(gl_inst_opcode opcode);
+_mesa_num_inst_dst_regs(enum prog_opcode opcode);
extern GLboolean
-_mesa_is_tex_instruction(gl_inst_opcode opcode);
+_mesa_is_tex_instruction(enum prog_opcode opcode);
extern GLboolean
_mesa_check_soa_dependencies(const struct prog_instruction *inst);
extern const char *
-_mesa_opcode_string(gl_inst_opcode opcode);
+_mesa_opcode_string(enum prog_opcode opcode);
#ifdef __cplusplus
diff --git a/mesalib/src/mesa/program/prog_optimize.c b/mesalib/src/mesa/program/prog_optimize.c
index 6d4485acb..f9e9035fc 100644
--- a/mesalib/src/mesa/program/prog_optimize.c
+++ b/mesalib/src/mesa/program/prog_optimize.c
@@ -478,7 +478,7 @@ can_upward_mov_be_modifed(const struct prog_instruction *mov)
return
can_downward_mov_be_modifed(mov) &&
mov->DstReg.File == PROGRAM_TEMPORARY &&
- mov->SaturateMode == SATURATE_OFF;
+ !mov->Saturate;
}
@@ -653,7 +653,7 @@ _mesa_merge_mov_into_inst(struct prog_instruction *inst,
if (mask != (inst->DstReg.WriteMask & mask))
return GL_FALSE;
- inst->SaturateMode |= mov->SaturateMode;
+ inst->Saturate |= mov->Saturate;
/* Depending on the instruction, we may need to recompute the swizzles.
* Also, some other instructions (like TEX) are not linear. We will only
diff --git a/mesalib/src/mesa/program/prog_print.c b/mesalib/src/mesa/program/prog_print.c
index d588d07ff..e4faa63c0 100644
--- a/mesalib/src/mesa/program/prog_print.c
+++ b/mesalib/src/mesa/program/prog_print.c
@@ -600,7 +600,7 @@ _mesa_fprint_alu_instruction(FILE *f,
fprintf(f, ".C");
/* frag prog only */
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
@@ -658,7 +658,7 @@ _mesa_fprint_instruction_opt(FILE *f,
switch (inst->Opcode) {
case OPCODE_SWZ:
fprintf(f, "SWZ");
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
fprint_dst_reg(f, &inst->DstReg, mode, prog);
@@ -675,7 +675,7 @@ _mesa_fprint_instruction_opt(FILE *f,
case OPCODE_TXB:
case OPCODE_TXD:
fprintf(f, "%s", _mesa_opcode_string(inst->Opcode));
- if (inst->SaturateMode == SATURATE_ZERO_ONE)
+ if (inst->Saturate)
fprintf(f, "_SAT");
fprintf(f, " ");
fprint_dst_reg(f, &inst->DstReg, mode, prog);
@@ -864,7 +864,7 @@ _mesa_fprint_program_opt(FILE *f,
else
fprintf(f, "# Fragment Program/Shader %u\n", prog->Id);
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
fprintf(f, "# Geometry Shader\n");
}
diff --git a/mesalib/src/mesa/program/prog_to_nir.c b/mesalib/src/mesa/program/prog_to_nir.c
index 6c5fa51ec..d54f93424 100644
--- a/mesalib/src/mesa/program/prog_to_nir.c
+++ b/mesalib/src/mesa/program/prog_to_nir.c
@@ -47,6 +47,7 @@ struct ptn_compile {
nir_builder build;
bool error;
+ nir_variable *parameters;
nir_variable *input_vars[VARYING_SLOT_MAX];
nir_variable *output_vars[VARYING_SLOT_MAX];
nir_register **output_regs;
@@ -112,21 +113,6 @@ ptn_get_dest(struct ptn_compile *c, const struct prog_dst_register *prog_dst)
return dest;
}
-/**
- * Multiply the contents of the ADDR register by 4 to convert from the number
- * of vec4s to the number of floating point components.
- */
-static nir_ssa_def *
-ptn_addr_reg_value(struct ptn_compile *c)
-{
- nir_builder *b = &c->build;
- nir_alu_src src;
- memset(&src, 0, sizeof(src));
- src.src = nir_src_for_reg(c->addr_reg);
-
- return nir_imul(b, nir_fmov_alu(b, src, 1), nir_imm_int(b, 4));
-}
-
static nir_ssa_def *
ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
{
@@ -180,27 +166,38 @@ ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
}
/* FALLTHROUGH */
case PROGRAM_STATE_VAR: {
- nir_intrinsic_op load_op =
- prog_src->RelAddr ? nir_intrinsic_load_uniform_indirect :
- nir_intrinsic_load_uniform;
- nir_intrinsic_instr *load = nir_intrinsic_instr_create(b->shader, load_op);
+ nir_intrinsic_instr *load =
+ nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_var);
nir_ssa_dest_init(&load->instr, &load->dest, 4, NULL);
load->num_components = 4;
- /* Multiply src->Index by 4 to scale from # of vec4s to components. */
- load->const_index[0] = 4 * prog_src->Index;
- load->const_index[1] = 1;
+ load->variables[0] = nir_deref_var_create(load, c->parameters);
+ nir_deref_array *deref_arr =
+ nir_deref_array_create(load->variables[0]);
+ deref_arr->deref.type = glsl_vec4_type();
+ load->variables[0]->deref.child = &deref_arr->deref;
if (prog_src->RelAddr) {
- nir_ssa_def *reladdr = ptn_addr_reg_value(c);
+ deref_arr->deref_array_type = nir_deref_array_type_indirect;
+
+ nir_alu_src addr_src = { NIR_SRC_INIT };
+ addr_src.src = nir_src_for_reg(c->addr_reg);
+ nir_ssa_def *reladdr = nir_imov_alu(b, addr_src, 1);
+
if (prog_src->Index < 0) {
/* This is a negative offset which should be added to the address
* register's value.
*/
- reladdr = nir_iadd(b, reladdr, nir_imm_int(b, load->const_index[0]));
- load->const_index[0] = 0;
+ reladdr = nir_iadd(b, reladdr, nir_imm_int(b, prog_src->Index));
+
+ deref_arr->base_offset = 0;
+ } else {
+ deref_arr->base_offset = prog_src->Index;
}
- load->src[0] = nir_src_for_ssa(reladdr);
+ deref_arr->indirect = nir_src_for_ssa(reladdr);
+ } else {
+ deref_arr->deref_array_type = nir_deref_array_type_direct;
+ deref_arr->base_offset = prog_src->Index;
}
nir_instr_insert_after_cf_list(b->cf_node_list, &load->instr);
@@ -700,7 +697,7 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_ADD] = nir_op_fadd,
[OPCODE_ARL] = 0,
[OPCODE_CMP] = 0,
- [OPCODE_COS] = nir_op_fcos,
+ [OPCODE_COS] = 0,
[OPCODE_DDX] = nir_op_fddx,
[OPCODE_DDY] = nir_op_fddy,
[OPCODE_DP2] = 0,
@@ -709,11 +706,11 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_DPH] = 0,
[OPCODE_DST] = 0,
[OPCODE_END] = 0,
- [OPCODE_EX2] = nir_op_fexp2,
+ [OPCODE_EX2] = 0,
[OPCODE_EXP] = 0,
[OPCODE_FLR] = nir_op_ffloor,
[OPCODE_FRC] = nir_op_ffract,
- [OPCODE_LG2] = nir_op_flog2,
+ [OPCODE_LG2] = 0,
[OPCODE_LIT] = 0,
[OPCODE_LOG] = 0,
[OPCODE_LRP] = 0,
@@ -722,15 +719,15 @@ static const nir_op op_trans[MAX_OPCODE] = {
[OPCODE_MIN] = nir_op_fmin,
[OPCODE_MOV] = nir_op_fmov,
[OPCODE_MUL] = nir_op_fmul,
- [OPCODE_POW] = nir_op_fpow,
- [OPCODE_RCP] = nir_op_frcp,
+ [OPCODE_POW] = 0,
+ [OPCODE_RCP] = 0,
- [OPCODE_RSQ] = nir_op_frsq,
+ [OPCODE_RSQ] = 0,
[OPCODE_SCS] = 0,
[OPCODE_SEQ] = 0,
[OPCODE_SGE] = 0,
[OPCODE_SGT] = 0,
- [OPCODE_SIN] = nir_op_fsin,
+ [OPCODE_SIN] = 0,
[OPCODE_SLE] = 0,
[OPCODE_SLT] = 0,
[OPCODE_SNE] = 0,
@@ -767,7 +764,8 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
switch (op) {
case OPCODE_RSQ:
- ptn_move_dest(b, dest, nir_frsq(b, ptn_channel(b, src[0], X)));
+ ptn_move_dest(b, dest,
+ nir_frsq(b, nir_fabs(b, ptn_channel(b, src[0], X))));
break;
case OPCODE_RCP:
@@ -894,7 +892,7 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
break;
default:
- if (op_trans[op] != 0 || op == OPCODE_MOV) {
+ if (op_trans[op] != 0) {
ptn_alu(b, op_trans[op], dest, src);
} else {
fprintf(stderr, "unknown opcode: %s\n", _mesa_opcode_string(op));
@@ -903,8 +901,8 @@ ptn_emit_instruction(struct ptn_compile *c, struct prog_instruction *prog_inst)
break;
}
- if (prog_inst->SaturateMode) {
- assert(prog_inst->SaturateMode == SATURATE_ZERO_ONE);
+ if (prog_inst->Saturate) {
+ assert(prog_inst->Saturate);
assert(!dest.dest.is_ssa);
ptn_move_dest(b, dest, nir_fsat(b, ptn_src_for_dest(c, &dest)));
}
@@ -926,10 +924,23 @@ ptn_add_output_stores(struct ptn_compile *c)
foreach_list_typed(nir_variable, var, node, &b->shader->outputs) {
nir_intrinsic_instr *store =
nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_var);
- store->num_components = 4;
+ store->num_components = glsl_get_vector_elements(var->type);
store->variables[0] =
nir_deref_var_create(store, c->output_vars[var->data.location]);
- store->src[0].reg.reg = c->output_regs[var->data.location];
+
+ if (c->prog->Target == GL_FRAGMENT_PROGRAM_ARB &&
+ var->data.location == FRAG_RESULT_DEPTH) {
+ /* result.depth has this strange convention of being the .z component of
+ * a vec4 with undefined .xyw components. We resolve it to a scalar, to
+ * match GLSL's gl_FragDepth and the expectations of most backends.
+ */
+ nir_alu_src alu_src = { NIR_SRC_INIT };
+ alu_src.src = nir_src_for_reg(c->output_regs[FRAG_RESULT_DEPTH]);
+ alu_src.swizzle[0] = SWIZZLE_Z;
+ store->src[0] = nir_src_for_ssa(nir_fmov_alu(b, alu_src, 1));
+ } else {
+ store->src[0].reg.reg = c->output_regs[var->data.location];
+ }
nir_instr_insert_after_cf_list(c->build.cf_node_list, &store->instr);
}
}
@@ -1022,7 +1033,10 @@ setup_registers_and_variables(struct ptn_compile *c)
reg->num_components = 4;
nir_variable *var = rzalloc(shader, nir_variable);
- var->type = glsl_vec4_type();
+ if (c->prog->Target == GL_FRAGMENT_PROGRAM_ARB && i == FRAG_RESULT_DEPTH)
+ var->type = glsl_float_type();
+ else
+ var->type = glsl_vec4_type();
var->data.mode = nir_var_shader_out;
var->name = ralloc_asprintf(var, "out_%d", i);
@@ -1057,13 +1071,11 @@ setup_registers_and_variables(struct ptn_compile *c)
}
reg->num_components = 1;
c->addr_reg = reg;
-
- /* Set the number of uniforms */
- shader->num_uniforms = 4 * c->prog->Parameters->NumParameters;
}
struct nir_shader *
-prog_to_nir(const struct gl_program *prog, const nir_shader_compiler_options *options)
+prog_to_nir(const struct gl_program *prog,
+ const nir_shader_compiler_options *options)
{
struct ptn_compile *c;
struct nir_shader *s;
@@ -1076,6 +1088,14 @@ prog_to_nir(const struct gl_program *prog, const nir_shader_compiler_options *op
goto fail;
c->prog = prog;
+ c->parameters = rzalloc(s, nir_variable);
+ c->parameters->type = glsl_array_type(glsl_vec4_type(),
+ prog->Parameters->NumParameters);
+ c->parameters->name = "parameters";
+ c->parameters->data.read_only = true;
+ c->parameters->data.mode = nir_var_uniform;
+ exec_list_push_tail(&s->uniforms, &c->parameters->node);
+
nir_function *func = nir_function_create(s, "main");
nir_function_overload *overload = nir_function_overload_create(func);
nir_function_impl *impl = nir_function_impl_create(overload);
diff --git a/mesalib/src/mesa/program/program.c b/mesalib/src/mesa/program/program.c
index fb61f4d36..c13e61b16 100644
--- a/mesalib/src/mesa/program/program.c
+++ b/mesalib/src/mesa/program/program.c
@@ -97,13 +97,6 @@ _mesa_init_program(struct gl_context *ctx)
assert(ctx->FragmentProgram.Current);
ctx->FragmentProgram.Cache = _mesa_new_program_cache();
- ctx->GeometryProgram.Enabled = GL_FALSE;
- /* right now by default we don't have a geometry program */
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current,
- NULL);
-
- _mesa_reference_compprog(ctx, &ctx->ComputeProgram.Current, NULL);
-
/* XXX probably move this stuff */
ctx->ATIFragmentShader.Enabled = GL_FALSE;
ctx->ATIFragmentShader.Current = ctx->Shared->DefaultFragmentShader;
@@ -122,8 +115,6 @@ _mesa_free_program_data(struct gl_context *ctx)
_mesa_delete_program_cache(ctx, ctx->VertexProgram.Cache);
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, NULL);
_mesa_delete_shader_cache(ctx, ctx->FragmentProgram.Cache);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current, NULL);
- _mesa_reference_compprog(ctx, &ctx->ComputeProgram.Current, NULL);
/* XXX probably move this stuff */
if (ctx->ATIFragmentShader.Current) {
@@ -153,9 +144,6 @@ _mesa_update_default_objects_program(struct gl_context *ctx)
ctx->Shared->DefaultFragmentProgram);
assert(ctx->FragmentProgram.Current);
- _mesa_reference_geomprog(ctx, &ctx->GeometryProgram.Current,
- ctx->Shared->DefaultGeometryProgram);
-
/* XXX probably move this stuff */
if (ctx->ATIFragmentShader.Current) {
ctx->ATIFragmentShader.Current->RefCount--;
@@ -340,7 +328,7 @@ _mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id)
CALLOC_STRUCT(gl_fragment_program),
target, id );
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
prog = _mesa_init_geometry_program(ctx,
CALLOC_STRUCT(gl_geometry_program),
target, id);
@@ -426,8 +414,8 @@ _mesa_reference_program_(struct gl_context *ctx,
else if ((*ptr)->Target == GL_FRAGMENT_PROGRAM_ARB)
assert(prog->Target == GL_FRAGMENT_PROGRAM_ARB ||
prog->Target == GL_FRAGMENT_PROGRAM_NV);
- else if ((*ptr)->Target == MESA_GEOMETRY_PROGRAM)
- assert(prog->Target == MESA_GEOMETRY_PROGRAM);
+ else if ((*ptr)->Target == GL_GEOMETRY_PROGRAM_NV)
+ assert(prog->Target == GL_GEOMETRY_PROGRAM_NV);
}
#endif
@@ -439,7 +427,7 @@ _mesa_reference_program_(struct gl_context *ctx,
printf("Program %p ID=%u Target=%s Refcount-- to %d\n",
*ptr, (*ptr)->Id,
((*ptr)->Target == GL_VERTEX_PROGRAM_ARB ? "VP" :
- ((*ptr)->Target == MESA_GEOMETRY_PROGRAM ? "GP" : "FP")),
+ ((*ptr)->Target == GL_GEOMETRY_PROGRAM_NV ? "GP" : "FP")),
(*ptr)->RefCount - 1);
#endif
assert((*ptr)->RefCount > 0);
@@ -464,7 +452,7 @@ _mesa_reference_program_(struct gl_context *ctx,
printf("Program %p ID=%u Target=%s Refcount++ to %d\n",
prog, prog->Id,
(prog->Target == GL_VERTEX_PROGRAM_ARB ? "VP" :
- (prog->Target == MESA_GEOMETRY_PROGRAM ? "GP" : "FP")),
+ (prog->Target == GL_GEOMETRY_PROGRAM_NV ? "GP" : "FP")),
prog->RefCount);
#endif
/*mtx_unlock(&prog->Mutex);*/
@@ -554,7 +542,7 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
fpc->PixelCenterInteger = fp->PixelCenterInteger;
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
const struct gl_geometry_program *gp = gl_geometry_program_const(prog);
struct gl_geometry_program *gpc = gl_geometry_program(clone);
diff --git a/mesalib/src/mesa/program/program_parse.y b/mesalib/src/mesa/program/program_parse.y
index 716b83d2d..635f5d09d 100644
--- a/mesalib/src/mesa/program/program_parse.y
+++ b/mesalib/src/mesa/program/program_parse.y
@@ -84,7 +84,7 @@ static void asm_instruction_set_operands(struct asm_instruction *inst,
const struct prog_dst_register *dst, const struct asm_src_register *src0,
const struct asm_src_register *src1, const struct asm_src_register *src2);
-static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op,
+static struct asm_instruction *asm_instruction_ctor(enum prog_opcode op,
const struct prog_dst_register *dst, const struct asm_src_register *src0,
const struct asm_src_register *src1, const struct asm_src_register *src2);
@@ -139,7 +139,7 @@ static struct asm_instruction *asm_instruction_copy_ctor(
gl_state_index state[STATE_LENGTH];
int negate;
struct asm_vector vector;
- gl_inst_opcode opcode;
+ enum prog_opcode opcode;
struct {
unsigned swz;
@@ -2275,7 +2275,7 @@ asm_instruction_set_operands(struct asm_instruction *inst,
struct asm_instruction *
-asm_instruction_ctor(gl_inst_opcode op,
+asm_instruction_ctor(enum prog_opcode op,
const struct prog_dst_register *dst,
const struct asm_src_register *src0,
const struct asm_src_register *src1,
@@ -2308,7 +2308,7 @@ asm_instruction_copy_ctor(const struct prog_instruction *base,
inst->Base.Opcode = base->Opcode;
inst->Base.CondUpdate = base->CondUpdate;
inst->Base.CondDst = base->CondDst;
- inst->Base.SaturateMode = base->SaturateMode;
+ inst->Base.Saturate = base->Saturate;
inst->Base.Precision = base->Precision;
asm_instruction_set_operands(inst, dst, src0, src1, src2);
diff --git a/mesalib/src/mesa/program/program_parse_extra.c b/mesalib/src/mesa/program/program_parse_extra.c
index a9e364045..32b54afc5 100644
--- a/mesalib/src/mesa/program/program_parse_extra.c
+++ b/mesalib/src/mesa/program/program_parse_extra.c
@@ -40,7 +40,7 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
{
inst->CondUpdate = 0;
inst->CondDst = 0;
- inst->SaturateMode = SATURATE_OFF;
+ inst->Saturate = GL_FALSE;
inst->Precision = FLOAT32;
@@ -82,7 +82,7 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
*/
if (state->mode == ARB_fragment) {
if (strcmp(suffix, "_SAT") == 0) {
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
suffix += 4;
}
}
diff --git a/mesalib/src/mesa/program/programopt.c b/mesalib/src/mesa/program/programopt.c
index e82c68a53..af78150d5 100644
--- a/mesalib/src/mesa/program/programopt.c
+++ b/mesalib/src/mesa/program/programopt.c
@@ -305,7 +305,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
/* change the instruction to write to colorTemp w/ clamping */
inst->DstReg.File = PROGRAM_TEMPORARY;
inst->DstReg.Index = colorTemp;
- inst->SaturateMode = saturate;
+ inst->Saturate = saturate;
/* don't break (may be several writes to result.color) */
}
inst++;
@@ -331,7 +331,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
inst->SrcReg[2].File = PROGRAM_STATE_VAR;
inst->SrcReg[2].Index = fogPRefOpt;
inst->SrcReg[2].Swizzle = SWIZZLE_YYYY;
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
inst++;
}
else {
@@ -374,7 +374,7 @@ _mesa_append_fog_code(struct gl_context *ctx,
inst->SrcReg[0].Index = fogFactorTemp;
inst->SrcReg[0].Negate = NEGATE_XYZW;
inst->SrcReg[0].Swizzle = SWIZZLE_XXXX;
- inst->SaturateMode = SATURATE_ZERO_ONE;
+ inst->Saturate = GL_TRUE;
inst++;
}
/* LRP result.color.xyz, fogFactorTemp.xxxx, colorTemp, fogColorRef; */
diff --git a/mesalib/src/mesa/state_tracker/st_atom_shader.c b/mesalib/src/mesa/state_tracker/st_atom_shader.c
index 629f54f25..ad8d2624f 100644
--- a/mesalib/src/mesa/state_tracker/st_atom_shader.c
+++ b/mesalib/src/mesa/state_tracker/st_atom_shader.c
@@ -189,7 +189,7 @@ update_gp( struct st_context *st )
}
stgp = st_geometry_program(st->ctx->GeometryProgram._Current);
- assert(stgp->Base.Base.Target == MESA_GEOMETRY_PROGRAM);
+ assert(stgp->Base.Base.Target == GL_GEOMETRY_PROGRAM_NV);
memset(&key, 0, sizeof(key));
key.st = st;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_bitmap.c b/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
index 2107ab167..c881e194f 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_bitmap.c
@@ -452,6 +452,8 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_save_fragment_shader(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -466,7 +468,9 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
/* vertex shader state: position + texcoord pass-through */
cso_set_vertex_shader_handle(cso, st->bitmap.vs);
- /* geometry shader state: disabled */
+ /* disable other shaders */
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
/* user samplers, plus our bitmap sampler */
@@ -536,6 +540,8 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_restore_viewport(cso);
cso_restore_fragment_shader(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_blit.c b/mesalib/src/mesa/state_tracker/st_cb_blit.c
index bbaedd108..6d9371852 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_blit.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_blit.c
@@ -36,6 +36,7 @@
#include "st_context.h"
#include "st_texture.h"
+#include "st_cb_bitmap.h"
#include "st_cb_blit.h"
#include "st_cb_fbo.h"
#include "st_atom.h"
@@ -93,6 +94,9 @@ st_BlitFramebuffer(struct gl_context *ctx,
st_validate_state(st);
+ /* Make sure bitmap rendering has landed in the framebuffers */
+ st_flush_bitmap_cache(st);
+
clip.srcX0 = srcX0;
clip.srcY0 = srcY0;
clip.srcX1 = srcX1;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_clear.c b/mesalib/src/mesa/state_tracker/st_cb_clear.c
index f10e9063a..137fac8a9 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_clear.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_clear.c
@@ -265,6 +265,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
cso_save_fragment_shader(st->cso_context);
cso_save_stream_outputs(st->cso_context);
cso_save_vertex_shader(st->cso_context);
+ cso_save_tessctrl_shader(st->cso_context);
+ cso_save_tesseval_shader(st->cso_context);
cso_save_geometry_shader(st->cso_context);
cso_save_vertex_elements(st->cso_context);
cso_save_aux_vertex_buffer_slot(st->cso_context);
@@ -347,6 +349,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
}
set_fragment_shader(st);
+ cso_set_tessctrl_shader_handle(st->cso_context, NULL);
+ cso_set_tesseval_shader_handle(st->cso_context, NULL);
if (num_layers > 1)
set_vertex_shader_layered(st);
@@ -371,6 +375,8 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers)
cso_restore_viewport(st->cso_context);
cso_restore_fragment_shader(st->cso_context);
cso_restore_vertex_shader(st->cso_context);
+ cso_restore_tessctrl_shader(st->cso_context);
+ cso_restore_tesseval_shader(st->cso_context);
cso_restore_geometry_shader(st->cso_context);
cso_restore_vertex_elements(st->cso_context);
cso_restore_aux_vertex_buffer_slot(st->cso_context);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
index 3edf31bad..a6a98c83a 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -693,6 +693,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_save_fragment_shader(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -746,7 +748,9 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
/* vertex shader state: position + texcoord pass-through */
cso_set_vertex_shader_handle(cso, driver_vp);
- /* geometry shader state: disabled */
+ /* disable other shaders */
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
/* texture sampling state: */
@@ -816,6 +820,8 @@ draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
cso_restore_sampler_views(cso, PIPE_SHADER_FRAGMENT);
cso_restore_fragment_shader(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawtex.c b/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
index 1420b96e5..2af4f6d4c 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_drawtex.c
@@ -229,6 +229,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
cso_save_viewport(cso);
cso_save_stream_outputs(cso);
cso_save_vertex_shader(cso);
+ cso_save_tessctrl_shader(cso);
+ cso_save_tesseval_shader(cso);
cso_save_geometry_shader(cso);
cso_save_vertex_elements(cso);
cso_save_aux_vertex_buffer_slot(cso);
@@ -238,6 +240,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
semantic_names, semantic_indexes);
cso_set_vertex_shader_handle(cso, vs);
}
+ cso_set_tessctrl_shader_handle(cso, NULL);
+ cso_set_tesseval_shader_handle(cso, NULL);
cso_set_geometry_shader_handle(cso, NULL);
for (i = 0; i < numAttribs; i++) {
@@ -279,6 +283,8 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
/* restore state */
cso_restore_viewport(cso);
cso_restore_vertex_shader(cso);
+ cso_restore_tessctrl_shader(cso);
+ cso_restore_tesseval_shader(cso);
cso_restore_geometry_shader(cso);
cso_restore_vertex_elements(cso);
cso_restore_aux_vertex_buffer_slot(cso);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_program.c b/mesalib/src/mesa/state_tracker/st_cb_program.c
index c382d7d2c..6aa7d5796 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_program.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_program.c
@@ -65,7 +65,7 @@ st_bind_program(struct gl_context *ctx, GLenum target, struct gl_program *prog)
case GL_FRAGMENT_PROGRAM_ARB:
st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
st->dirty.st |= ST_NEW_GEOMETRY_PROGRAM;
break;
}
@@ -105,7 +105,7 @@ st_new_program(struct gl_context *ctx, GLenum target, GLuint id)
return _mesa_init_fragment_program(ctx, &prog->Base, target, id);
}
- case MESA_GEOMETRY_PROGRAM: {
+ case GL_GEOMETRY_PROGRAM_NV: {
struct st_geometry_program *prog = ST_CALLOC_STRUCT(st_geometry_program);
return _mesa_init_geometry_program(ctx, &prog->Base, target, id);
}
@@ -135,7 +135,7 @@ st_delete_program(struct gl_context *ctx, struct gl_program *prog)
free_glsl_to_tgsi_visitor(stvp->glsl_to_tgsi);
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
struct st_geometry_program *stgp =
(struct st_geometry_program *) prog;
@@ -198,7 +198,7 @@ st_program_string_notify( struct gl_context *ctx,
if (st->fp == stfp)
st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
}
- else if (target == MESA_GEOMETRY_PROGRAM) {
+ else if (target == GL_GEOMETRY_PROGRAM_NV) {
struct st_geometry_program *stgp = (struct st_geometry_program *) prog;
st_release_gp_variants(st, stgp);
diff --git a/mesalib/src/mesa/state_tracker/st_context.c b/mesalib/src/mesa/state_tracker/st_context.c
index 69e0f929d..ed9ed0f1b 100644
--- a/mesalib/src/mesa/state_tracker/st_context.c
+++ b/mesalib/src/mesa/state_tracker/st_context.c
@@ -376,12 +376,6 @@ void st_destroy_context( struct st_context *st )
}
pipe_surface_reference(&st->state.framebuffer.zsbuf, NULL);
- pipe->set_index_buffer(pipe, NULL);
-
- for (i = 0; i < PIPE_SHADER_TYPES; i++) {
- pipe->set_constant_buffer(pipe, i, 0, NULL);
- }
-
_mesa_delete_program_cache(st->ctx, st->pixel_xfer.cache);
_vbo_DestroyContext(st->ctx);
diff --git a/mesalib/src/mesa/state_tracker/st_draw.c b/mesalib/src/mesa/state_tracker/st_draw.c
index 488f6ead2..8b43582c1 100644
--- a/mesalib/src/mesa/state_tracker/st_draw.c
+++ b/mesalib/src/mesa/state_tracker/st_draw.c
@@ -141,7 +141,7 @@ check_uniforms(struct gl_context *ctx)
if (shProg[j] == NULL || !shProg[j]->LinkStatus)
continue;
- for (i = 0; i < shProg[j]->NumUserUniformStorage; i++) {
+ for (i = 0; i < shProg[j]->NumUniformStorage; i++) {
const struct gl_uniform_storage *u = &shProg[j]->UniformStorage[i];
if (!u->initialized) {
_mesa_warning(ctx,
diff --git a/mesalib/src/mesa/state_tracker/st_extensions.c b/mesalib/src/mesa/state_tracker/st_extensions.c
index 23a45883d..b1057f3ea 100644
--- a/mesalib/src/mesa/state_tracker/st_extensions.c
+++ b/mesalib/src/mesa/state_tracker/st_extensions.c
@@ -650,12 +650,6 @@ void st_init_extensions(struct pipe_screen *screen,
ARRAY_SIZE(vertex_mapping), PIPE_BUFFER,
PIPE_BIND_VERTEX_BUFFER);
- /* ARB_direct_state_access requires OpenGL 2.0. Assume that all drivers
- * that support NPOT textures are able to support GL 2.0.
- */
- if (extensions->ARB_texture_non_power_of_two)
- extensions->ARB_direct_state_access = GL_TRUE;
-
if (extensions->ARB_stencil_texturing)
extensions->ARB_texture_stencil8 = GL_TRUE;
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index f0f2a77d0..03834b69a 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -57,11 +57,6 @@
(1 << PROGRAM_CONSTANT) | \
(1 << PROGRAM_UNIFORM))
-/**
- * Maximum number of arrays
- */
-#define MAX_ARRAYS 256
-
#define MAX_GLSL_TEXTURE_OFFSET 4
class st_src_reg;
@@ -89,6 +84,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg(gl_register_file file, int index, int type)
@@ -103,6 +99,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg(gl_register_file file, int index, int type, int index2D)
@@ -117,6 +114,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
st_src_reg()
@@ -131,6 +129,7 @@ public:
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = 0;
}
explicit st_src_reg(st_dst_reg reg);
@@ -150,6 +149,7 @@ public:
* currently used for input mapping only.
*/
bool double_reg2;
+ unsigned array_id;
};
class st_dst_reg {
@@ -162,6 +162,7 @@ public:
this->cond_mask = COND_TR;
this->reladdr = NULL;
this->type = type;
+ this->array_id = 0;
}
st_dst_reg(gl_register_file file, int writemask, int type)
@@ -172,6 +173,7 @@ public:
this->cond_mask = COND_TR;
this->reladdr = NULL;
this->type = type;
+ this->array_id = 0;
}
st_dst_reg()
@@ -182,6 +184,7 @@ public:
this->writemask = 0;
this->cond_mask = COND_TR;
this->reladdr = NULL;
+ this->array_id = 0;
}
explicit st_dst_reg(st_src_reg reg);
@@ -193,6 +196,7 @@ public:
int type; /** GLSL_TYPE_* from GLSL IR (enum glsl_base_type) */
/** Register index should be offset by the integer in this reg. */
st_src_reg *reladdr;
+ unsigned array_id;
};
st_src_reg::st_src_reg(st_dst_reg reg)
@@ -207,6 +211,7 @@ st_src_reg::st_src_reg(st_dst_reg reg)
this->reladdr2 = NULL;
this->has_index2 = false;
this->double_reg2 = false;
+ this->array_id = reg.array_id;
}
st_dst_reg::st_dst_reg(st_src_reg reg)
@@ -217,6 +222,7 @@ st_dst_reg::st_dst_reg(st_src_reg reg)
this->writemask = WRITEMASK_XYZW;
this->cond_mask = COND_TR;
this->reladdr = reg.reladdr;
+ this->array_id = reg.array_id;
}
class glsl_to_tgsi_instruction : public exec_node {
@@ -244,8 +250,9 @@ public:
class variable_storage : public exec_node {
public:
- variable_storage(ir_variable *var, gl_register_file file, int index)
- : file(file), index(index), var(var)
+ variable_storage(ir_variable *var, gl_register_file file, int index,
+ unsigned array_id = 0)
+ : file(file), index(index), var(var), array_id(array_id)
{
/* empty */
}
@@ -253,6 +260,7 @@ public:
gl_register_file file;
int index;
ir_variable *var; /* variable that maps to this, if any */
+ unsigned array_id;
};
class immediate_storage : public exec_node {
@@ -302,6 +310,15 @@ public:
st_src_reg return_reg;
};
+static st_src_reg undef_src = st_src_reg(PROGRAM_UNDEFINED, 0, GLSL_TYPE_ERROR);
+static st_dst_reg undef_dst = st_dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP, GLSL_TYPE_ERROR);
+
+struct array_decl {
+ unsigned mesa_index;
+ unsigned array_id;
+ unsigned array_size;
+};
+
struct glsl_to_tgsi_visitor : public ir_visitor {
public:
glsl_to_tgsi_visitor();
@@ -317,9 +334,15 @@ public:
int next_temp;
- unsigned array_sizes[MAX_ARRAYS];
+ unsigned *array_sizes;
+ unsigned max_num_arrays;
unsigned next_array;
+ struct array_decl input_arrays[PIPE_MAX_SHADER_INPUTS];
+ unsigned num_input_arrays;
+ struct array_decl output_arrays[PIPE_MAX_SHADER_OUTPUTS];
+ unsigned num_output_arrays;
+
int num_address_regs;
int samplers_used;
bool indirect_addr_consts;
@@ -372,6 +395,7 @@ public:
virtual void visit(ir_if *);
virtual void visit(ir_emit_vertex *);
virtual void visit(ir_end_primitive *);
+ virtual void visit(ir_barrier *);
/*@}*/
st_src_reg result;
@@ -390,31 +414,19 @@ public:
/** List of glsl_to_tgsi_instruction */
exec_list instructions;
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0);
+ glsl_to_tgsi_instruction *emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst = undef_dst,
+ st_src_reg src0 = undef_src,
+ st_src_reg src1 = undef_src,
+ st_src_reg src2 = undef_src,
+ st_src_reg src3 = undef_src);
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0, st_src_reg src1);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1, st_src_reg src2);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3);
-
- glsl_to_tgsi_instruction *emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3);
+ glsl_to_tgsi_instruction *emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst, st_dst_reg dst1,
+ st_src_reg src0 = undef_src,
+ st_src_reg src1 = undef_src,
+ st_src_reg src2 = undef_src,
+ st_src_reg src3 = undef_src);
unsigned get_opcode(ir_instruction *ir, unsigned op,
st_dst_reg dst,
@@ -468,10 +480,6 @@ public:
void *mem_ctx;
};
-static st_src_reg undef_src = st_src_reg(PROGRAM_UNDEFINED, 0, GLSL_TYPE_ERROR);
-
-static st_dst_reg undef_dst = st_dst_reg(PROGRAM_UNDEFINED, SWIZZLE_NOOP, GLSL_TYPE_ERROR);
-
static st_dst_reg address_reg = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 0);
static st_dst_reg address_reg2 = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 1);
static st_dst_reg sampler_reladdr = st_dst_reg(PROGRAM_ADDRESS, WRITEMASK_X, GLSL_TYPE_FLOAT, 2);
@@ -526,10 +534,10 @@ num_inst_src_regs(unsigned opcode)
}
glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3)
+glsl_to_tgsi_visitor::emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst, st_dst_reg dst1,
+ st_src_reg src0, st_src_reg src1,
+ st_src_reg src2, st_src_reg src3)
{
glsl_to_tgsi_instruction *inst = new(mem_ctx) glsl_to_tgsi_instruction();
int num_reladdr = 0, i, j;
@@ -716,48 +724,12 @@ glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
}
glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst,
- st_src_reg src0, st_src_reg src1,
- st_src_reg src2, st_src_reg src3)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, src2, src3);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0,
- st_src_reg src1, st_src_reg src2)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, src2, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0, st_src_reg src1)
-{
- return emit(ir, op, dst, undef_dst, src0, src1, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_src_reg src0)
-{
- assert(dst.writemask != 0);
- return emit(ir, op, dst, undef_dst, src0, undef_src, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
- st_dst_reg dst, st_dst_reg dst1, st_src_reg src0)
-{
- return emit(ir, op, dst, dst1, src0, undef_src, undef_src, undef_src);
-}
-
-glsl_to_tgsi_instruction *
-glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op)
+glsl_to_tgsi_visitor::emit_asm(ir_instruction *ir, unsigned op,
+ st_dst_reg dst,
+ st_src_reg src0, st_src_reg src1,
+ st_src_reg src2, st_src_reg src3)
{
- return emit(ir, op, undef_dst, undef_dst, undef_src, undef_src, undef_src, undef_src);
+ return emit_asm(ir, op, dst, undef_dst, src0, src1, src2, src3);
}
/**
@@ -879,7 +851,7 @@ glsl_to_tgsi_visitor::emit_dp(ir_instruction *ir,
TGSI_OPCODE_DP2, TGSI_OPCODE_DP3, TGSI_OPCODE_DP4
};
- return emit(ir, dot_opcodes[elements - 2], dst, src0, src1);
+ return emit_asm(ir, dot_opcodes[elements - 2], dst, src0, src1);
}
/**
@@ -929,7 +901,7 @@ glsl_to_tgsi_visitor::emit_scalar(ir_instruction *ir, unsigned op,
src1_swiz, src1_swiz);
dst.writemask = this_mask;
- emit(ir, op, dst, src0, src1);
+ emit_asm(ir, op, dst, src0, src1);
done_mask |= this_mask;
}
}
@@ -958,7 +930,7 @@ glsl_to_tgsi_visitor::emit_arl(ir_instruction *ir,
if (dst.index >= this->num_address_regs)
this->num_address_regs = dst.index + 1;
- emit(NULL, op, dst, src0);
+ emit_asm(NULL, op, dst, src0);
}
int
@@ -1142,6 +1114,12 @@ glsl_to_tgsi_visitor::get_temp(const glsl_type *type)
if (!options->EmitNoIndirectTemp &&
(type->is_array() || type->is_matrix())) {
+ if (next_array >= max_num_arrays) {
+ max_num_arrays += 32;
+ array_sizes = (unsigned*)
+ realloc(array_sizes, sizeof(array_sizes[0]) * max_num_arrays);
+ }
+
src.file = PROGRAM_ARRAY;
src.index = next_array << 16 | 0x8000;
array_sizes[next_array] = type_size(type);
@@ -1242,7 +1220,7 @@ glsl_to_tgsi_visitor::visit(ir_variable *ir)
*/
st_src_reg src(PROGRAM_STATE_VAR, index, GLSL_TYPE_FLOAT);
src.swizzle = slots[i].swizzle;
- emit(ir, TGSI_OPCODE_MOV, dst, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, dst, src);
/* even a float takes up a whole vec4 reg in a struct/array. */
dst.index++;
}
@@ -1261,11 +1239,11 @@ glsl_to_tgsi_visitor::visit(ir_variable *ir)
void
glsl_to_tgsi_visitor::visit(ir_loop *ir)
{
- emit(NULL, TGSI_OPCODE_BGNLOOP);
+ emit_asm(NULL, TGSI_OPCODE_BGNLOOP);
visit_exec_list(&ir->body_instructions, this);
- emit(NULL, TGSI_OPCODE_ENDLOOP);
+ emit_asm(NULL, TGSI_OPCODE_ENDLOOP);
}
void
@@ -1273,10 +1251,10 @@ glsl_to_tgsi_visitor::visit(ir_loop_jump *ir)
{
switch (ir->mode) {
case ir_loop_jump::jump_break:
- emit(NULL, TGSI_OPCODE_BRK);
+ emit_asm(NULL, TGSI_OPCODE_BRK);
break;
case ir_loop_jump::jump_continue:
- emit(NULL, TGSI_OPCODE_CONT);
+ emit_asm(NULL, TGSI_OPCODE_CONT);
break;
}
}
@@ -1330,7 +1308,7 @@ glsl_to_tgsi_visitor::try_emit_mad(ir_expression *ir, int mul_operand)
this->result = get_temp(ir->type);
result_dst = st_dst_reg(this->result);
result_dst.writemask = (1 << ir->type->vector_elements) - 1;
- emit(ir, TGSI_OPCODE_MAD, result_dst, a, b, c);
+ emit_asm(ir, TGSI_OPCODE_MAD, result_dst, a, b, c);
return true;
}
@@ -1370,7 +1348,7 @@ glsl_to_tgsi_visitor::try_emit_mad_for_and_not(ir_expression *ir, int try_operan
b.negate = ~b.negate;
this->result = get_temp(ir->type);
- emit(ir, TGSI_OPCODE_MAD, st_dst_reg(this->result), a, b, a);
+ emit_asm(ir, TGSI_OPCODE_MAD, st_dst_reg(this->result), a, b, a);
return true;
}
@@ -1388,7 +1366,7 @@ glsl_to_tgsi_visitor::reladdr_to_temp(ir_instruction *ir,
if (*num_reladdr != 1) {
st_src_reg temp = get_temp(glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_MOV, st_dst_reg(temp), *reg);
+ emit_asm(ir, TGSI_OPCODE_MOV, st_dst_reg(temp), *reg);
*reg = temp;
}
@@ -1464,7 +1442,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
switch (ir->operation) {
case ir_unop_logic_not:
if (result_dst.type != GLSL_TYPE_FLOAT)
- emit(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
else {
/* Previously 'SEQ dst, src, 0.0' was used for this. However, many
* older GPUs implement SEQ using multiple instructions (i915 uses two
@@ -1472,24 +1450,24 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* 0.0 and 1.0, 1-x also implements !x.
*/
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], st_src_reg_for_float(1.0));
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], st_src_reg_for_float(1.0));
}
break;
case ir_unop_neg:
if (result_dst.type == GLSL_TYPE_INT || result_dst.type == GLSL_TYPE_UINT)
- emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
else if (result_dst.type == GLSL_TYPE_DOUBLE)
- emit(ir, TGSI_OPCODE_DNEG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DNEG, result_dst, op[0]);
else {
op[0].negate = ~op[0].negate;
result_src = op[0];
}
break;
case ir_unop_abs:
- emit(ir, TGSI_OPCODE_ABS, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_ABS, result_dst, op[0]);
break;
case ir_unop_sign:
- emit(ir, TGSI_OPCODE_SSG, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_SSG, result_dst, op[0]);
break;
case ir_unop_rcp:
emit_scalar(ir, TGSI_OPCODE_RCP, result_dst, op[0]);
@@ -1513,17 +1491,17 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_saturate: {
glsl_to_tgsi_instruction *inst;
- inst = emit(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
+ inst = emit_asm(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
inst->saturate = true;
break;
}
case ir_unop_dFdx:
case ir_unop_dFdx_coarse:
- emit(ir, TGSI_OPCODE_DDX, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DDX, result_dst, op[0]);
break;
case ir_unop_dFdx_fine:
- emit(ir, TGSI_OPCODE_DDX_FINE, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DDX_FINE, result_dst, op[0]);
break;
case ir_unop_dFdy:
case ir_unop_dFdy_coarse:
@@ -1547,18 +1525,18 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_src_reg temp = get_temp(glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_MUL, st_dst_reg(temp), transform_y, op[0]);
- emit(ir, ir->operation == ir_unop_dFdy_fine ?
+ emit_asm(ir, TGSI_OPCODE_MUL, st_dst_reg(temp), transform_y, op[0]);
+ emit_asm(ir, ir->operation == ir_unop_dFdy_fine ?
TGSI_OPCODE_DDY_FINE : TGSI_OPCODE_DDY, result_dst, temp);
break;
}
case ir_unop_frexp_sig:
- emit(ir, TGSI_OPCODE_DFRACEXP, result_dst, undef_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DFRACEXP, result_dst, undef_dst, op[0]);
break;
case ir_unop_frexp_exp:
- emit(ir, TGSI_OPCODE_DFRACEXP, undef_dst, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_DFRACEXP, undef_dst, result_dst, op[0]);
break;
case ir_unop_noise: {
@@ -1568,50 +1546,50 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* place to do this is in the GL state tracker, not the poor
* driver.
*/
- emit(ir, TGSI_OPCODE_MOV, result_dst, st_src_reg_for_float(0.5));
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, st_src_reg_for_float(0.5));
break;
}
case ir_binop_add:
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
break;
case ir_binop_sub:
- emit(ir, TGSI_OPCODE_SUB, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SUB, result_dst, op[0], op[1]);
break;
case ir_binop_mul:
- emit(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
break;
case ir_binop_div:
if (result_dst.type == GLSL_TYPE_FLOAT || result_dst.type == GLSL_TYPE_DOUBLE)
assert(!"not reached: should be handled by ir_div_to_mul_rcp");
else
- emit(ir, TGSI_OPCODE_DIV, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_DIV, result_dst, op[0], op[1]);
break;
case ir_binop_mod:
if (result_dst.type == GLSL_TYPE_FLOAT)
assert(!"ir_binop_mod should have been converted to b * fract(a/b)");
else
- emit(ir, TGSI_OPCODE_MOD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MOD, result_dst, op[0], op[1]);
break;
case ir_binop_less:
- emit(ir, TGSI_OPCODE_SLT, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, op[0], op[1]);
break;
case ir_binop_greater:
- emit(ir, TGSI_OPCODE_SLT, result_dst, op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, op[1], op[0]);
break;
case ir_binop_lequal:
- emit(ir, TGSI_OPCODE_SGE, result_dst, op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, op[1], op[0]);
break;
case ir_binop_gequal:
- emit(ir, TGSI_OPCODE_SGE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, op[0], op[1]);
break;
case ir_binop_equal:
- emit(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
break;
case ir_binop_nequal:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
break;
case ir_binop_all_equal:
/* "==" operator producing a scalar boolean. */
@@ -1625,7 +1603,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_dst_reg temp_dst = st_dst_reg(temp);
st_src_reg temp1 = st_src_reg(temp), temp2 = st_src_reg(temp);
- emit(ir, TGSI_OPCODE_SEQ, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, st_dst_reg(temp), op[0], op[1]);
/* Emit 1-3 AND operations to combine the SEQ results. */
switch (ir->operands[0]->type->vector_elements) {
@@ -1635,24 +1613,24 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_YYYY;
temp2.swizzle = SWIZZLE_ZZZZ;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
break;
case 4:
temp_dst.writemask = WRITEMASK_X;
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_ZZZZ;
temp2.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, temp_dst, temp1, temp2);
}
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_AND, result_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, temp1, temp2);
} else {
- emit(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
/* After the dot-product, the value will be an integer on the
* range [0,4]. Zero becomes 1.0, and positive values become zero.
@@ -1665,10 +1643,10 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg sge_src = result_src;
sge_src.negate = ~sge_src.negate;
- emit(ir, TGSI_OPCODE_SGE, result_dst, sge_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SGE, result_dst, sge_src, st_src_reg_for_float(0.0));
}
} else {
- emit(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SEQ, result_dst, op[0], op[1]);
}
break;
case ir_binop_any_nequal:
@@ -1678,7 +1656,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
st_src_reg temp = get_temp(native_integers ?
glsl_type::uvec4_type :
glsl_type::vec4_type);
- emit(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, st_dst_reg(temp), op[0], op[1]);
if (native_integers) {
st_dst_reg temp_dst = st_dst_reg(temp);
@@ -1692,22 +1670,22 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_YYYY;
temp2.swizzle = SWIZZLE_ZZZZ;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
break;
case 4:
temp_dst.writemask = WRITEMASK_X;
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
temp_dst.writemask = WRITEMASK_Y;
temp1.swizzle = SWIZZLE_ZZZZ;
temp2.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, temp_dst, temp1, temp2);
}
temp1.swizzle = SWIZZLE_XXXX;
temp2.swizzle = SWIZZLE_YYYY;
- emit(ir, TGSI_OPCODE_OR, result_dst, temp1, temp2);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, temp1, temp2);
} else {
/* After the dot-product, the value will be an integer on the
* range [0,4]. Zero stays zero, and positive values become 1.0.
@@ -1726,11 +1704,11 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
}
} else {
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
}
break;
@@ -1763,7 +1741,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 3),
GET_SWZ(op0_swizzle, 3),
GET_SWZ(op0_swizzle, 3));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
accum = st_src_reg(result_dst);
accum.swizzle = dst_swizzle;
/* fallthrough */
@@ -1772,7 +1750,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 2),
GET_SWZ(op0_swizzle, 2),
GET_SWZ(op0_swizzle, 2));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
accum = st_src_reg(result_dst);
accum.swizzle = dst_swizzle;
/* fallthrough */
@@ -1781,7 +1759,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
GET_SWZ(op0_swizzle, 1),
GET_SWZ(op0_swizzle, 1),
GET_SWZ(op0_swizzle, 1));
- emit(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, accum, op[0]);
break;
default:
assert(!"Unexpected vector size");
@@ -1807,11 +1785,11 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
else {
/* Use SNE 0 if integers are being used as boolean values. */
- emit(ir, TGSI_OPCODE_SNE, result_dst, result_src, st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, result_src, st_src_reg_for_int(0));
}
}
break;
@@ -1819,9 +1797,9 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
case ir_binop_logic_xor:
if (native_integers)
- emit(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
else
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], op[1]);
break;
case ir_binop_logic_or: {
@@ -1830,13 +1808,13 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* instruction.
*/
assert(native_integers);
- emit(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
} else {
/* After the addition, the value will be an integer on the
* range [0,2]. Zero stays zero, and positive values become 1.0.
*/
glsl_to_tgsi_instruction *add =
- emit(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ADD, result_dst, op[0], op[1]);
if (this->prog->Target == GL_FRAGMENT_PROGRAM_ARB) {
/* The clamping to [0,1] can be done for free in the fragment
* shader with a saturate if floats are being used as boolean values.
@@ -1849,7 +1827,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
*/
st_src_reg slt_src = result_src;
slt_src.negate = ~slt_src.negate;
- emit(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SLT, result_dst, slt_src, st_src_reg_for_float(0.0));
}
}
break;
@@ -1861,9 +1839,9 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* actual AND opcode.
*/
if (native_integers)
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
else
- emit(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, op[0], op[1]);
break;
case ir_binop_dot:
@@ -1879,10 +1857,10 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
} else {
/* sqrt(x) = x * rsq(x). */
emit_scalar(ir, TGSI_OPCODE_RSQ, result_dst, op[0]);
- emit(ir, TGSI_OPCODE_MUL, result_dst, result_src, op[0]);
+ emit_asm(ir, TGSI_OPCODE_MUL, result_dst, result_src, op[0]);
/* For incoming channels <= 0, set the result to 0. */
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_CMP, result_dst,
+ emit_asm(ir, TGSI_OPCODE_CMP, result_dst,
op[0], result_src, st_src_reg_for_float(0.0));
}
break;
@@ -1891,13 +1869,13 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_i2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_I2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_I2F, result_dst, op[0]);
break;
}
/* fallthrough to next case otherwise */
case ir_unop_b2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_float(1.0));
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_float(1.0));
break;
}
/* fallthrough to next case otherwise */
@@ -1912,7 +1890,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
* GLSL requires that int(bool) return 1 for true and 0 for false.
* This conversion is done with AND, but it could be done with NEG.
*/
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_int(1));
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], st_src_reg_for_int(1));
} else {
/* Booleans and integers are both stored as floats when native
* integers are disabled.
@@ -1922,15 +1900,15 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
break;
case ir_unop_f2i:
if (native_integers)
- emit(ir, TGSI_OPCODE_F2I, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2I, result_dst, op[0]);
else
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_f2u:
if (native_integers)
- emit(ir, TGSI_OPCODE_F2U, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2U, result_dst, op[0]);
else
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_bitcast_f2i:
result_src = op[0];
@@ -1946,38 +1924,38 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
result_src.type = GLSL_TYPE_FLOAT;
break;
case ir_unop_f2b:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
break;
case ir_unop_d2b:
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_double(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_double(0.0));
break;
case ir_unop_i2b:
if (native_integers)
- emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
else
- emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
+ emit_asm(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
break;
case ir_unop_trunc:
- emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
break;
case ir_unop_ceil:
- emit(ir, TGSI_OPCODE_CEIL, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_CEIL, result_dst, op[0]);
break;
case ir_unop_floor:
- emit(ir, TGSI_OPCODE_FLR, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_FLR, result_dst, op[0]);
break;
case ir_unop_round_even:
- emit(ir, TGSI_OPCODE_ROUND, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_ROUND, result_dst, op[0]);
break;
case ir_unop_fract:
- emit(ir, TGSI_OPCODE_FRC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_FRC, result_dst, op[0]);
break;
case ir_binop_min:
- emit(ir, TGSI_OPCODE_MIN, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MIN, result_dst, op[0], op[1]);
break;
case ir_binop_max:
- emit(ir, TGSI_OPCODE_MAX, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_MAX, result_dst, op[0], op[1]);
break;
case ir_binop_pow:
emit_scalar(ir, TGSI_OPCODE_POW, result_dst, op[0], op[1]);
@@ -1985,37 +1963,37 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
case ir_unop_bit_not:
if (native_integers) {
- emit(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_NOT, result_dst, op[0]);
break;
}
case ir_unop_u2f:
if (native_integers) {
- emit(ir, TGSI_OPCODE_U2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_U2F, result_dst, op[0]);
break;
}
case ir_binop_lshift:
if (native_integers) {
- emit(ir, TGSI_OPCODE_SHL, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_SHL, result_dst, op[0], op[1]);
break;
}
case ir_binop_rshift:
if (native_integers) {
- emit(ir, TGSI_OPCODE_ISHR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_ISHR, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_and:
if (native_integers) {
- emit(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_AND, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_xor:
if (native_integers) {
- emit(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_XOR, result_dst, op[0], op[1]);
break;
}
case ir_binop_bit_or:
if (native_integers) {
- emit(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_OR, result_dst, op[0], op[1]);
break;
}
@@ -2045,7 +2023,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
}
else {
/* Relative/variable index into constant buffer */
- emit(ir, TGSI_OPCODE_USHR, st_dst_reg(index_reg), op[1],
+ emit_asm(ir, TGSI_OPCODE_USHR, st_dst_reg(index_reg), op[1],
st_src_reg_for_int(4));
cbuf.reladdr = ralloc(mem_ctx, st_src_reg);
memcpy(cbuf.reladdr, &index_reg, sizeof(index_reg));
@@ -2078,88 +2056,88 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
const_offset % 16 / 4);
if (ir->type->base_type == GLSL_TYPE_BOOL) {
- emit(ir, TGSI_OPCODE_USNE, result_dst, cbuf, st_src_reg_for_int(0));
+ emit_asm(ir, TGSI_OPCODE_USNE, result_dst, cbuf, st_src_reg_for_int(0));
} else {
- emit(ir, TGSI_OPCODE_MOV, result_dst, cbuf);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, cbuf);
}
break;
}
case ir_triop_lrp:
/* note: we have to reorder the three args here */
- emit(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
+ emit_asm(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
break;
case ir_triop_csel:
if (this->ctx->Const.NativeIntegers)
- emit(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
else {
op[0].negate = ~op[0].negate;
- emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
}
break;
case ir_triop_bitfield_extract:
- emit(ir, TGSI_OPCODE_IBFE, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_IBFE, result_dst, op[0], op[1], op[2]);
break;
case ir_quadop_bitfield_insert:
- emit(ir, TGSI_OPCODE_BFI, result_dst, op[0], op[1], op[2], op[3]);
+ emit_asm(ir, TGSI_OPCODE_BFI, result_dst, op[0], op[1], op[2], op[3]);
break;
case ir_unop_bitfield_reverse:
- emit(ir, TGSI_OPCODE_BREV, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_BREV, result_dst, op[0]);
break;
case ir_unop_bit_count:
- emit(ir, TGSI_OPCODE_POPC, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_POPC, result_dst, op[0]);
break;
case ir_unop_find_msb:
- emit(ir, TGSI_OPCODE_IMSB, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_IMSB, result_dst, op[0]);
break;
case ir_unop_find_lsb:
- emit(ir, TGSI_OPCODE_LSB, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_LSB, result_dst, op[0]);
break;
case ir_binop_imul_high:
- emit(ir, TGSI_OPCODE_IMUL_HI, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_IMUL_HI, result_dst, op[0], op[1]);
break;
case ir_triop_fma:
/* In theory, MAD is incorrect here. */
if (have_fma)
- emit(ir, TGSI_OPCODE_FMA, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_FMA, result_dst, op[0], op[1], op[2]);
else
- emit(ir, TGSI_OPCODE_MAD, result_dst, op[0], op[1], op[2]);
+ emit_asm(ir, TGSI_OPCODE_MAD, result_dst, op[0], op[1], op[2]);
break;
case ir_unop_interpolate_at_centroid:
- emit(ir, TGSI_OPCODE_INTERP_CENTROID, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_CENTROID, result_dst, op[0]);
break;
case ir_binop_interpolate_at_offset:
- emit(ir, TGSI_OPCODE_INTERP_OFFSET, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_OFFSET, result_dst, op[0], op[1]);
break;
case ir_binop_interpolate_at_sample:
- emit(ir, TGSI_OPCODE_INTERP_SAMPLE, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_INTERP_SAMPLE, result_dst, op[0], op[1]);
break;
case ir_unop_d2f:
- emit(ir, TGSI_OPCODE_D2F, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2F, result_dst, op[0]);
break;
case ir_unop_f2d:
- emit(ir, TGSI_OPCODE_F2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_F2D, result_dst, op[0]);
break;
case ir_unop_d2i:
- emit(ir, TGSI_OPCODE_D2I, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2I, result_dst, op[0]);
break;
case ir_unop_i2d:
- emit(ir, TGSI_OPCODE_I2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_I2D, result_dst, op[0]);
break;
case ir_unop_d2u:
- emit(ir, TGSI_OPCODE_D2U, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_D2U, result_dst, op[0]);
break;
case ir_unop_u2d:
- emit(ir, TGSI_OPCODE_U2D, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_U2D, result_dst, op[0]);
break;
case ir_unop_unpack_double_2x32:
case ir_unop_pack_double_2x32:
- emit(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, op[0]);
break;
case ir_binop_ldexp:
if (ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE) {
- emit(ir, TGSI_OPCODE_DLDEXP, result_dst, op[0], op[1]);
+ emit_asm(ir, TGSI_OPCODE_DLDEXP, result_dst, op[0], op[1]);
} else {
assert(!"Invalid ldexp for non-double opcode in glsl_to_tgsi_visitor::visit()");
}
@@ -2243,11 +2221,38 @@ glsl_to_tgsi_visitor::visit(ir_swizzle *ir)
this->result = src;
}
+/* Test if the variable is an array. Note that geometry and
+ * tessellation shader inputs are outputs are always arrays (except
+ * for patch inputs), so only the array element type is considered.
+ */
+static bool
+is_inout_array(unsigned stage, ir_variable *var, bool *is_2d)
+{
+ const glsl_type *type = var->type;
+
+ if ((stage == MESA_SHADER_VERTEX && var->data.mode == ir_var_shader_in) ||
+ (stage == MESA_SHADER_FRAGMENT && var->data.mode == ir_var_shader_out))
+ return false;
+
+ *is_2d = false;
+
+ if (stage == MESA_SHADER_GEOMETRY && var->data.mode == ir_var_shader_in) {
+ if (!var->type->is_array())
+ return false; /* a system value probably */
+
+ type = var->type->fields.array;
+ *is_2d = true;
+ }
+
+ return type->is_array() || type->is_matrix();
+}
+
void
glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
{
variable_storage *entry = find_variable_storage(ir->var);
ir_variable *var = ir->var;
+ bool is_2d;
if (!entry) {
switch (var->data.mode) {
@@ -2263,16 +2268,56 @@ glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
* user-defined varyings.
*/
assert(var->data.location != -1);
- entry = new(mem_ctx) variable_storage(var,
- PROGRAM_INPUT,
- var->data.location);
+
+ if (is_inout_array(shader->Stage, var, &is_2d)) {
+ struct array_decl *decl = &input_arrays[num_input_arrays];
+
+ decl->mesa_index = var->data.location;
+ decl->array_id = num_input_arrays + 1;
+ if (is_2d)
+ decl->array_size = type_size(var->type->fields.array);
+ else
+ decl->array_size = type_size(var->type);
+ num_input_arrays++;
+
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_INPUT,
+ var->data.location,
+ decl->array_id);
+ }
+ else {
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_INPUT,
+ var->data.location);
+ }
+ this->variables.push_tail(entry);
break;
case ir_var_shader_out:
assert(var->data.location != -1);
- entry = new(mem_ctx) variable_storage(var,
- PROGRAM_OUTPUT,
- var->data.location
- + var->data.index);
+
+ if (is_inout_array(shader->Stage, var, &is_2d)) {
+ struct array_decl *decl = &output_arrays[num_output_arrays];
+
+ decl->mesa_index = var->data.location;
+ decl->array_id = num_output_arrays + 1;
+ if (is_2d)
+ decl->array_size = type_size(var->type->fields.array);
+ else
+ decl->array_size = type_size(var->type);
+ num_output_arrays++;
+
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_OUTPUT,
+ var->data.location,
+ decl->array_id);
+ }
+ else {
+ entry = new(mem_ctx) variable_storage(var,
+ PROGRAM_OUTPUT,
+ var->data.location
+ + var->data.index);
+ }
+ this->variables.push_tail(entry);
break;
case ir_var_system_value:
entry = new(mem_ctx) variable_storage(var,
@@ -2296,10 +2341,43 @@ glsl_to_tgsi_visitor::visit(ir_dereference_variable *ir)
}
this->result = st_src_reg(entry->file, entry->index, var->type);
+ this->result.array_id = entry->array_id;
if (!native_integers)
this->result.type = GLSL_TYPE_FLOAT;
}
+static void
+shrink_array_declarations(struct array_decl *arrays, unsigned count,
+ GLbitfield64 usage_mask)
+{
+ unsigned i, j;
+
+ /* Fix array declarations by removing unused array elements at both ends
+ * of the arrays. For example, mat4[3] where only mat[1] is used.
+ */
+ for (i = 0; i < count; i++) {
+ struct array_decl *decl = &arrays[i];
+
+ /* Shrink the beginning. */
+ for (j = 0; j < decl->array_size; j++) {
+ if (usage_mask & BITFIELD64_BIT(decl->mesa_index+j))
+ break;
+
+ decl->mesa_index++;
+ decl->array_size--;
+ j--;
+ }
+
+ /* Shrink the end. */
+ for (j = decl->array_size-1; j >= 0; j--) {
+ if (usage_mask & BITFIELD64_BIT(decl->mesa_index+j))
+ break;
+
+ decl->array_size--;
+ }
+ }
+}
+
void
glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
{
@@ -2341,7 +2419,7 @@ glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
index_reg = get_temp(native_integers ?
glsl_type::int_type : glsl_type::float_type);
- emit(ir, TGSI_OPCODE_MUL, st_dst_reg(index_reg),
+ emit_asm(ir, TGSI_OPCODE_MUL, st_dst_reg(index_reg),
this->result, st_src_reg_for_type(index_reg.type, element_size));
}
@@ -2352,7 +2430,7 @@ glsl_to_tgsi_visitor::visit(ir_dereference_array *ir)
st_src_reg accum_reg = get_temp(native_integers ?
glsl_type::int_type : glsl_type::float_type);
- emit(ir, TGSI_OPCODE_ADD, st_dst_reg(accum_reg),
+ emit_asm(ir, TGSI_OPCODE_ADD, st_dst_reg(accum_reg),
index_reg, *src.reladdr);
index_reg = accum_reg;
@@ -2589,16 +2667,16 @@ glsl_to_tgsi_visitor::emit_block_mov(ir_assignment *ir, const struct glsl_type *
l_src.swizzle = swizzle_for_size(type->vector_elements);
if (native_integers) {
- emit(ir, TGSI_OPCODE_UCMP, *l, *cond,
+ emit_asm(ir, TGSI_OPCODE_UCMP, *l, *cond,
cond_swap ? l_src : *r,
cond_swap ? *r : l_src);
} else {
- emit(ir, TGSI_OPCODE_CMP, *l, *cond,
+ emit_asm(ir, TGSI_OPCODE_CMP, *l, *cond,
cond_swap ? l_src : *r,
cond_swap ? *r : l_src);
}
} else {
- emit(ir, TGSI_OPCODE_MOV, *l, *r);
+ emit_asm(ir, TGSI_OPCODE_MOV, *l, *r);
}
l->index++;
r->index++;
@@ -2679,7 +2757,7 @@ glsl_to_tgsi_visitor::visit(ir_assignment *ir)
*/
glsl_to_tgsi_instruction *inst, *new_inst;
inst = (glsl_to_tgsi_instruction *)this->instructions.get_tail();
- new_inst = emit(ir, inst->op, l, inst->src[0], inst->src[1], inst->src[2]);
+ new_inst = emit_asm(ir, inst->op, l, inst->src[0], inst->src[1], inst->src[2]);
new_inst->saturate = inst->saturate;
inst->dead_mask = inst->dst[0].writemask;
} else {
@@ -2717,7 +2795,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
src = this->result;
for (i = 0; i < (unsigned int)size; i++) {
- emit(ir, TGSI_OPCODE_MOV, temp, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, temp, src);
src.index++;
temp.index++;
@@ -2739,7 +2817,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
ir->array_elements[i]->accept(this);
src = this->result;
for (int j = 0; j < size; j++) {
- emit(ir, TGSI_OPCODE_MOV, temp, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, temp, src);
src.index++;
temp.index++;
@@ -2764,7 +2842,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir)
ir->type->vector_elements,
GL_FLOAT,
&src.swizzle);
- emit(ir, TGSI_OPCODE_MOV, mat_column, src);
+ emit_asm(ir, TGSI_OPCODE_MOV, mat_column, src);
mat_column.index++;
}
@@ -2889,7 +2967,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
l.cond_mask = COND_TR;
for (i = 0; i < type_size(param->type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
@@ -2897,7 +2975,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
}
/* Emit call instruction */
- call_inst = emit(ir, TGSI_OPCODE_CAL);
+ call_inst = emit_asm(ir, TGSI_OPCODE_CAL);
call_inst->function = entry;
/* Process out parameters. */
@@ -2922,7 +3000,7 @@ glsl_to_tgsi_visitor::visit(ir_call *ir)
st_dst_reg l = st_dst_reg(this->result);
for (i = 0; i < type_size(param->type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
@@ -2965,7 +3043,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
coord = get_temp(glsl_type::vec4_type);
coord_dst = st_dst_reg(coord);
coord_dst.writemask = (1 << ir->coordinate->type->vector_elements) - 1;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
}
if (ir->projector) {
@@ -3074,7 +3152,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
if (opcode == TGSI_OPCODE_TEX) {
/* Slot the projector in as the last component of the coord. */
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, projector);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, projector);
coord_dst.writemask = WRITEMASK_XYZW;
opcode = TGSI_OPCODE_TXP;
} else {
@@ -3086,7 +3164,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
* projective divide now.
*/
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_RCP, coord_dst, projector);
+ emit_asm(ir, TGSI_OPCODE_RCP, coord_dst, projector);
/* In the case where we have to project the coordinates "by hand,"
* the shadow comparator value must also be projected.
@@ -3105,14 +3183,14 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
assert(!sampler_type->sampler_array);
tmp_dst.writemask = WRITEMASK_Z;
- emit(ir, TGSI_OPCODE_MOV, tmp_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, tmp_dst, this->result);
tmp_dst.writemask = WRITEMASK_XY;
- emit(ir, TGSI_OPCODE_MOV, tmp_dst, coord);
+ emit_asm(ir, TGSI_OPCODE_MOV, tmp_dst, coord);
}
coord_dst.writemask = WRITEMASK_XYZ;
- emit(ir, TGSI_OPCODE_MUL, coord_dst, tmp_src, coord_w);
+ emit_asm(ir, TGSI_OPCODE_MUL, coord_dst, tmp_src, coord_w);
coord_dst.writemask = WRITEMASK_XYZW;
coord.swizzle = SWIZZLE_XYZW;
@@ -3133,7 +3211,7 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
cube_sc = get_temp(glsl_type::float_type);
cube_sc_dst = st_dst_reg(cube_sc);
cube_sc_dst.writemask = WRITEMASK_X;
- emit(ir, TGSI_OPCODE_MOV, cube_sc_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, cube_sc_dst, this->result);
cube_sc_dst.writemask = WRITEMASK_X;
}
else {
@@ -3144,20 +3222,20 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
} else {
coord_dst.writemask = WRITEMASK_Z;
}
- emit(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, this->result);
coord_dst.writemask = WRITEMASK_XYZW;
}
}
if (ir->op == ir_txf_ms) {
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, sample_index);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, sample_index);
coord_dst.writemask = WRITEMASK_XYZW;
} else if (opcode == TGSI_OPCODE_TXL || opcode == TGSI_OPCODE_TXB ||
opcode == TGSI_OPCODE_TXF) {
/* TGSI stores LOD or LOD bias in the last channel of the coords. */
coord_dst.writemask = WRITEMASK_W;
- emit(ir, TGSI_OPCODE_MOV, coord_dst, lod_info);
+ emit_asm(ir, TGSI_OPCODE_MOV, coord_dst, lod_info);
coord_dst.writemask = WRITEMASK_XYZW;
}
@@ -3167,30 +3245,30 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
}
if (opcode == TGSI_OPCODE_TXD)
- inst = emit(ir, opcode, result_dst, coord, dx, dy);
+ inst = emit_asm(ir, opcode, result_dst, coord, dx, dy);
else if (opcode == TGSI_OPCODE_TXQ) {
if (ir->op == ir_query_levels) {
/* the level is stored in W */
- inst = emit(ir, opcode, st_dst_reg(levels_src), lod_info);
+ inst = emit_asm(ir, opcode, st_dst_reg(levels_src), lod_info);
result_dst.writemask = WRITEMASK_X;
levels_src.swizzle = SWIZZLE_WWWW;
- emit(ir, TGSI_OPCODE_MOV, result_dst, levels_src);
+ emit_asm(ir, TGSI_OPCODE_MOV, result_dst, levels_src);
} else
- inst = emit(ir, opcode, result_dst, lod_info);
+ inst = emit_asm(ir, opcode, result_dst, lod_info);
} else if (opcode == TGSI_OPCODE_TXF) {
- inst = emit(ir, opcode, result_dst, coord);
+ inst = emit_asm(ir, opcode, result_dst, coord);
} else if (opcode == TGSI_OPCODE_TXL2 || opcode == TGSI_OPCODE_TXB2) {
- inst = emit(ir, opcode, result_dst, coord, lod_info);
+ inst = emit_asm(ir, opcode, result_dst, coord, lod_info);
} else if (opcode == TGSI_OPCODE_TEX2) {
- inst = emit(ir, opcode, result_dst, coord, cube_sc);
+ inst = emit_asm(ir, opcode, result_dst, coord, cube_sc);
} else if (opcode == TGSI_OPCODE_TG4) {
if (is_cube_array && ir->shadow_comparitor) {
- inst = emit(ir, opcode, result_dst, coord, cube_sc);
+ inst = emit_asm(ir, opcode, result_dst, coord, cube_sc);
} else {
- inst = emit(ir, opcode, result_dst, coord, component);
+ inst = emit_asm(ir, opcode, result_dst, coord, component);
}
} else
- inst = emit(ir, opcode, result_dst, coord);
+ inst = emit_asm(ir, opcode, result_dst, coord);
if (ir->shadow_comparitor)
inst->tex_shadow = GL_TRUE;
@@ -3264,13 +3342,13 @@ glsl_to_tgsi_visitor::visit(ir_return *ir)
l = st_dst_reg(current_function->return_reg);
for (i = 0; i < type_size(current_function->sig->return_type); i++) {
- emit(ir, TGSI_OPCODE_MOV, l, r);
+ emit_asm(ir, TGSI_OPCODE_MOV, l, r);
l.index++;
r.index++;
}
}
- emit(ir, TGSI_OPCODE_RET);
+ emit_asm(ir, TGSI_OPCODE_RET);
}
void
@@ -3283,16 +3361,16 @@ glsl_to_tgsi_visitor::visit(ir_discard *ir)
/* Convert the bool condition to a float so we can negate. */
if (native_integers) {
st_src_reg temp = get_temp(ir->condition->type);
- emit(ir, TGSI_OPCODE_AND, st_dst_reg(temp),
+ emit_asm(ir, TGSI_OPCODE_AND, st_dst_reg(temp),
condition, st_src_reg_for_float(1.0));
condition = temp;
}
condition.negate = ~condition.negate;
- emit(ir, TGSI_OPCODE_KILL_IF, undef_dst, condition);
+ emit_asm(ir, TGSI_OPCODE_KILL_IF, undef_dst, condition);
} else {
/* unconditional kil */
- emit(ir, TGSI_OPCODE_KILL);
+ emit_asm(ir, TGSI_OPCODE_KILL);
}
}
@@ -3307,18 +3385,18 @@ glsl_to_tgsi_visitor::visit(ir_if *ir)
if_opcode = native_integers ? TGSI_OPCODE_UIF : TGSI_OPCODE_IF;
- if_inst = emit(ir->condition, if_opcode, undef_dst, this->result);
+ if_inst = emit_asm(ir->condition, if_opcode, undef_dst, this->result);
this->instructions.push_tail(if_inst);
visit_exec_list(&ir->then_instructions, this);
if (!ir->else_instructions.is_empty()) {
- emit(ir->condition, TGSI_OPCODE_ELSE);
+ emit_asm(ir->condition, TGSI_OPCODE_ELSE);
visit_exec_list(&ir->else_instructions, this);
}
- if_inst = emit(ir->condition, TGSI_OPCODE_ENDIF);
+ if_inst = emit_asm(ir->condition, TGSI_OPCODE_ENDIF);
}
@@ -3328,7 +3406,7 @@ glsl_to_tgsi_visitor::visit(ir_emit_vertex *ir)
assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
ir->stream->accept(this);
- emit(ir, TGSI_OPCODE_EMIT, undef_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_EMIT, undef_dst, this->result);
}
void
@@ -3337,14 +3415,24 @@ glsl_to_tgsi_visitor::visit(ir_end_primitive *ir)
assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
ir->stream->accept(this);
- emit(ir, TGSI_OPCODE_ENDPRIM, undef_dst, this->result);
+ emit_asm(ir, TGSI_OPCODE_ENDPRIM, undef_dst, this->result);
+}
+
+void
+glsl_to_tgsi_visitor::visit(ir_barrier *ir)
+{
+ unreachable("Not implemented!");
}
glsl_to_tgsi_visitor::glsl_to_tgsi_visitor()
{
result.file = PROGRAM_UNDEFINED;
next_temp = 1;
+ array_sizes = NULL;
+ max_num_arrays = 0;
next_array = 0;
+ num_input_arrays = 0;
+ num_output_arrays = 0;
next_signature_id = 1;
num_immediates = 0;
current_function = NULL;
@@ -3366,6 +3454,7 @@ glsl_to_tgsi_visitor::glsl_to_tgsi_visitor()
glsl_to_tgsi_visitor::~glsl_to_tgsi_visitor()
{
+ free(array_sizes);
ralloc_free(mem_ctx);
}
@@ -3734,6 +3823,7 @@ glsl_to_tgsi_visitor::copy_propagate(void)
inst->src[r].index2D = first->src[0].index2D;
inst->src[r].has_index2 = first->src[0].has_index2;
inst->src[r].double_reg2 = first->src[0].double_reg2;
+ inst->src[r].array_id = first->src[0].array_id;
int swizzle = 0;
for (int i = 0; i < 4; i++) {
@@ -4177,7 +4267,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
coord = st_src_reg(PROGRAM_INPUT, VARYING_SLOT_TEX0, glsl_type::vec2_type);
src0 = v->get_temp(glsl_type::vec4_type);
dst0 = st_dst_reg(src0);
- inst = v->emit(NULL, TGSI_OPCODE_TEX, dst0, coord);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, dst0, coord);
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4201,7 +4291,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* MAD colorTemp, colorTemp, scale, bias; */
scale = st_src_reg(PROGRAM_STATE_VAR, scale_p, GLSL_TYPE_FLOAT);
bias = st_src_reg(PROGRAM_STATE_VAR, bias_p, GLSL_TYPE_FLOAT);
- inst = v->emit(NULL, TGSI_OPCODE_MAD, dst0, src0, scale, bias);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_MAD, dst0, src0, scale, bias);
}
if (pixel_maps) {
@@ -4209,6 +4299,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
st_dst_reg temp_dst = st_dst_reg(temp);
assert(st->pixel_xfer.pixelmap_texture);
+ (void) st;
/* With a little effort, we can do four pixel map look-ups with
* two TEX instructions:
@@ -4216,7 +4307,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* TEX temp.rg, colorTemp.rgba, texture[1], 2D; */
temp_dst.writemask = WRITEMASK_XY; /* write R,G */
- inst = v->emit(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
inst->sampler.index = 1;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4224,7 +4315,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
/* TEX temp.ba, colorTemp.baba, texture[1], 2D; */
src0.swizzle = MAKE_SWIZZLE4(SWIZZLE_Z, SWIZZLE_W, SWIZZLE_Z, SWIZZLE_W);
temp_dst.writemask = WRITEMASK_ZW; /* write B,A */
- inst = v->emit(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, temp_dst, src0);
inst->sampler.index = 1;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4233,7 +4324,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
v->samplers_used |= (1 << 1);
/* MOV colorTemp, temp; */
- inst = v->emit(NULL, TGSI_OPCODE_MOV, dst0, temp);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_MOV, dst0, temp);
}
/* Now copy the instructions from the original glsl_to_tgsi_visitor into the
@@ -4256,7 +4347,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
}
- newinst = v->emit(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
+ newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
newinst->tex_target = inst->tex_target;
newinst->sampler_array_size = inst->sampler_array_size;
}
@@ -4306,7 +4397,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
coord = st_src_reg(PROGRAM_INPUT, VARYING_SLOT_TEX0, glsl_type::vec2_type);
src0 = v->get_temp(glsl_type::vec4_type);
dst0 = st_dst_reg(src0);
- inst = v->emit(NULL, TGSI_OPCODE_TEX, dst0, coord);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_TEX, dst0, coord);
inst->sampler.index = samplerIndex;
inst->sampler_array_size = 1;
inst->tex_target = TEXTURE_2D_INDEX;
@@ -4319,7 +4410,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
src0.negate = NEGATE_XYZW;
if (st->bitmap.tex_format == PIPE_FORMAT_L8_UNORM)
src0.swizzle = SWIZZLE_XXXX;
- inst = v->emit(NULL, TGSI_OPCODE_KILL_IF, undef_dst, src0);
+ inst = v->emit_asm(NULL, TGSI_OPCODE_KILL_IF, undef_dst, src0);
/* Now copy the instructions from the original glsl_to_tgsi_visitor into the
* new visitor. */
@@ -4336,7 +4427,7 @@ get_bitmap_visitor(struct st_fragment_program *fp,
prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
}
- newinst = v->emit(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
+ newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
newinst->tex_target = inst->tex_target;
newinst->sampler_array_size = inst->sampler_array_size;
}
@@ -4362,7 +4453,8 @@ struct st_translate {
unsigned temps_size;
struct ureg_dst *temps;
- struct ureg_dst arrays[MAX_ARRAYS];
+ struct ureg_dst *arrays;
+ unsigned num_temp_arrays;
struct ureg_src *constants;
int num_constants;
struct ureg_src *immediates;
@@ -4373,7 +4465,9 @@ struct st_translate {
struct ureg_src samplers[PIPE_MAX_SAMPLERS];
struct ureg_src systemValues[SYSTEM_VALUE_MAX];
struct tgsi_texture_offset tex_offsets[MAX_GLSL_TEXTURE_OFFSET];
- unsigned array_sizes[MAX_ARRAYS];
+ unsigned *array_sizes;
+ struct array_decl *input_arrays;
+ struct array_decl *output_arrays;
const GLuint *inputMapping;
const GLuint *outputMapping;
@@ -4497,9 +4591,8 @@ emit_immediate(struct st_translate *t,
* Map a glsl_to_tgsi dst register to a TGSI ureg_dst register.
*/
static struct ureg_dst
-dst_register(struct st_translate *t,
- gl_register_file file,
- GLuint index)
+dst_register(struct st_translate *t, gl_register_file file, unsigned index,
+ unsigned array_id)
{
unsigned array;
@@ -4530,7 +4623,7 @@ dst_register(struct st_translate *t,
case PROGRAM_ARRAY:
array = index >> 16;
- assert(array < ARRAY_SIZE(t->arrays));
+ assert(array < t->num_temp_arrays);
if (ureg_dst_is_undef(t->arrays[array]))
t->arrays[array] = ureg_DECL_array_temporary(
@@ -4540,16 +4633,25 @@ dst_register(struct st_translate *t,
(int)(index & 0xFFFF) - 0x8000);
case PROGRAM_OUTPUT:
- if (t->procType == TGSI_PROCESSOR_VERTEX)
- assert(index < VARYING_SLOT_MAX);
- else if (t->procType == TGSI_PROCESSOR_FRAGMENT)
- assert(index < FRAG_RESULT_MAX);
- else
- assert(index < VARYING_SLOT_MAX);
+ if (!array_id) {
+ if (t->procType == TGSI_PROCESSOR_FRAGMENT)
+ assert(index < FRAG_RESULT_MAX);
+ else
+ assert(index < VARYING_SLOT_MAX);
- assert(t->outputMapping[index] < ARRAY_SIZE(t->outputs));
+ assert(t->outputMapping[index] < ARRAY_SIZE(t->outputs));
+ assert(t->outputs[t->outputMapping[index]].File != TGSI_FILE_NULL);
+ return t->outputs[t->outputMapping[index]];
+ }
+ else {
+ struct array_decl *decl = &t->output_arrays[array_id-1];
+ unsigned mesa_index = decl->mesa_index;
+ int slot = t->outputMapping[mesa_index];
- return t->outputs[t->outputMapping[index]];
+ assert(slot != -1 && t->outputs[slot].File == TGSI_FILE_OUTPUT);
+ assert(t->outputs[slot].ArrayID == array_id);
+ return ureg_dst_array_offset(t->outputs[slot], index - mesa_index);
+ }
case PROGRAM_ADDRESS:
return t->address[index];
@@ -4575,7 +4677,8 @@ src_register(struct st_translate *t, const st_src_reg *reg)
case PROGRAM_TEMPORARY:
case PROGRAM_ARRAY:
- return ureg_src(dst_register(t, reg->file, reg->index));
+ case PROGRAM_OUTPUT:
+ return ureg_src(dst_register(t, reg->file, reg->index, reg->array_id));
case PROGRAM_UNIFORM:
assert(reg->index >= 0);
@@ -4598,12 +4701,20 @@ src_register(struct st_translate *t, const st_src_reg *reg)
* map back to the original index and add the offset after
* mapping. */
index -= double_reg2;
- assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
- return t->inputs[t->inputMapping[index] + double_reg2];
+ if (!reg->array_id) {
+ assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
+ assert(t->inputs[t->inputMapping[index]].File != TGSI_FILE_NULL);
+ return t->inputs[t->inputMapping[index]];
+ }
+ else {
+ struct array_decl *decl = &t->input_arrays[reg->array_id-1];
+ unsigned mesa_index = decl->mesa_index;
+ int slot = t->inputMapping[mesa_index];
- case PROGRAM_OUTPUT:
- assert(t->outputMapping[reg->index] < ARRAY_SIZE(t->outputs));
- return ureg_src(t->outputs[t->outputMapping[reg->index]]); /* not needed? */
+ assert(slot != -1 && t->inputs[slot].File == TGSI_FILE_INPUT);
+ assert(t->inputs[slot].ArrayID == reg->array_id);
+ return ureg_src_array_offset(t->inputs[slot], index - mesa_index);
+ }
case PROGRAM_ADDRESS:
return ureg_src(t->address[reg->index]);
@@ -4626,9 +4737,8 @@ translate_dst(struct st_translate *t,
const st_dst_reg *dst_reg,
bool saturate, bool clamp_color)
{
- struct ureg_dst dst = dst_register(t,
- dst_reg->file,
- dst_reg->index);
+ struct ureg_dst dst = dst_register(t, dst_reg->file, dst_reg->index,
+ dst_reg->array_id);
if (dst.File == TGSI_FILE_NULL)
return dst;
@@ -4738,7 +4848,7 @@ translate_tex_offset(struct st_translate *t,
array = in_offset->index >> 16;
assert(array >= 0);
- assert(array < (int) ARRAY_SIZE(t->arrays));
+ assert(array < (int)t->num_temp_arrays);
dst = t->arrays[array];
offset.File = dst.File;
@@ -5060,6 +5170,25 @@ emit_edgeflags(struct st_translate *t)
ureg_MOV(ureg, edge_dst, edge_src);
}
+static bool
+find_array(unsigned attr, struct array_decl *arrays, unsigned count,
+ unsigned *array_id, unsigned *array_size)
+{
+ unsigned i;
+
+ for (i = 0; i < count; i++) {
+ struct array_decl *decl = &arrays[i];
+
+ if (attr == decl->mesa_index) {
+ *array_id = decl->array_id;
+ *array_size = decl->array_size;
+ assert(*array_size);
+ return true;
+ }
+ }
+ return false;
+}
+
/**
* Translate intermediate IR (glsl_to_tgsi_instruction) to TGSI format.
* \param program the program to translate
@@ -5089,12 +5218,14 @@ st_translate_program(
const struct gl_program *proginfo,
GLuint numInputs,
const GLuint inputMapping[],
+ const GLuint inputSlotToAttr[],
const ubyte inputSemanticName[],
const ubyte inputSemanticIndex[],
const GLuint interpMode[],
const GLuint interpLocation[],
GLuint numOutputs,
const GLuint outputMapping[],
+ const GLuint outputSlotToAttr[],
const ubyte outputSemanticName[],
const ubyte outputSemanticIndex[],
boolean passthrough_edgeflags,
@@ -5132,25 +5263,101 @@ st_translate_program(
goto out;
}
- memset(t, 0, sizeof *t);
-
t->procType = procType;
t->inputMapping = inputMapping;
t->outputMapping = outputMapping;
t->ureg = ureg;
+ t->num_temp_arrays = program->next_array;
+ if (t->num_temp_arrays)
+ t->arrays = (struct ureg_dst*)
+ calloc(1, sizeof(t->arrays[0]) * t->num_temp_arrays);
/*
* Declare input attributes.
*/
- if (procType == TGSI_PROCESSOR_FRAGMENT) {
+ switch (procType) {
+ case TGSI_PROCESSOR_FRAGMENT:
for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
- inputSemanticName[i],
- inputSemanticIndex[i],
- interpMode[i], 0,
- interpLocation[i]);
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(inputSlotToAttr[i], program->input_arrays,
+ program->num_input_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
+ inputSemanticName[i], inputSemanticIndex[i],
+ interpMode[i], 0, interpLocation[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->inputs[i] = ureg_DECL_fs_input_cyl_centroid(ureg,
+ inputSemanticName[i], inputSemanticIndex[i],
+ interpMode[i], 0, interpLocation[i], 0, 1);
+ }
}
+ break;
+ case TGSI_PROCESSOR_GEOMETRY:
+ for (i = 0; i < numInputs; i++) {
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(inputSlotToAttr[i], program->input_arrays,
+ program->num_input_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->inputs[i] = ureg_DECL_input(ureg, inputSemanticName[i],
+ inputSemanticIndex[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->inputs[i] = ureg_DECL_input(ureg, inputSemanticName[i],
+ inputSemanticIndex[i], 0, 1);
+ }
+ }
+ break;
+ case TGSI_PROCESSOR_VERTEX:
+ for (i = 0; i < numInputs; i++) {
+ t->inputs[i] = ureg_DECL_vs_input(ureg, i);
+ }
+ break;
+ default:
+ assert(0);
+ }
+ /*
+ * Declare output attributes.
+ */
+ switch (procType) {
+ case TGSI_PROCESSOR_FRAGMENT:
+ break;
+ case TGSI_PROCESSOR_GEOMETRY:
+ case TGSI_PROCESSOR_VERTEX:
+ for (i = 0; i < numOutputs; i++) {
+ unsigned array_id = 0;
+ unsigned array_size;
+
+ if (find_array(outputSlotToAttr[i], program->output_arrays,
+ program->num_output_arrays, &array_id, &array_size)) {
+ /* We've found an array. Declare it so. */
+ t->outputs[i] = ureg_DECL_output_array(ureg,
+ outputSemanticName[i],
+ outputSemanticIndex[i],
+ array_id, array_size);
+ i += array_size - 1;
+ }
+ else {
+ t->outputs[i] = ureg_DECL_output(ureg,
+ outputSemanticName[i],
+ outputSemanticIndex[i]);
+ }
+ }
+ break;
+ default:
+ assert(0);
+ }
+
+ if (procType == TGSI_PROCESSOR_FRAGMENT) {
if (proginfo->InputsRead & VARYING_BIT_POS) {
/* Must do this after setting up t->inputs. */
emit_wpos(st_context(ctx), t, proginfo, ureg,
@@ -5160,9 +5367,6 @@ st_translate_program(
if (proginfo->InputsRead & VARYING_BIT_FACE)
emit_face_var(ctx, t);
- /*
- * Declare output attributes.
- */
for (i = 0; i < numOutputs; i++) {
switch (outputSemanticName[i]) {
case TGSI_SEMANTIC_POSITION:
@@ -5198,31 +5402,8 @@ st_translate_program(
}
}
}
- else if (procType == TGSI_PROCESSOR_GEOMETRY) {
- for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_gs_input(ureg,
- i,
- inputSemanticName[i],
- inputSemanticIndex[i]);
- }
-
+ else if (procType == TGSI_PROCESSOR_VERTEX) {
for (i = 0; i < numOutputs; i++) {
- t->outputs[i] = ureg_DECL_output(ureg,
- outputSemanticName[i],
- outputSemanticIndex[i]);
- }
- }
- else {
- assert(procType == TGSI_PROCESSOR_VERTEX);
-
- for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_vs_input(ureg, i);
- }
-
- for (i = 0; i < numOutputs; i++) {
- t->outputs[i] = ureg_DECL_output(ureg,
- outputSemanticName[i],
- outputSemanticIndex[i]);
if (outputSemanticName[i] == TGSI_SEMANTIC_FOG) {
/* force register to contain a fog coordinate in the form (F, 0, 0, 1). */
ureg_MOV(ureg,
@@ -5277,9 +5458,9 @@ st_translate_program(
}
}
- /* Copy over array sizes
- */
- memcpy(t->array_sizes, program->array_sizes, sizeof(unsigned) * program->next_array);
+ t->array_sizes = program->array_sizes;
+ t->input_arrays = program->input_arrays;
+ t->output_arrays = program->output_arrays;
/* Emit constants and uniforms. TGSI uses a single index space for these,
* so we put all the translated regs in t->constants.
@@ -5375,6 +5556,7 @@ st_translate_program(
out:
if (t) {
+ free(t->arrays);
free(t->temps);
free(t->insn);
free(t->labels);
@@ -5470,7 +5652,7 @@ get_mesa_program(struct gl_context *ctx,
if (!entry->bgn_inst) {
v->current_function = entry;
- entry->bgn_inst = v->emit(NULL, TGSI_OPCODE_BGNSUB);
+ entry->bgn_inst = v->emit_asm(NULL, TGSI_OPCODE_BGNSUB);
entry->bgn_inst->function = entry;
visit_exec_list(&entry->sig->body, v);
@@ -5478,10 +5660,10 @@ get_mesa_program(struct gl_context *ctx,
glsl_to_tgsi_instruction *last;
last = (glsl_to_tgsi_instruction *)v->instructions.get_tail();
if (last->op != TGSI_OPCODE_RET)
- v->emit(NULL, TGSI_OPCODE_RET);
+ v->emit_asm(NULL, TGSI_OPCODE_RET);
glsl_to_tgsi_instruction *end;
- end = v->emit(NULL, TGSI_OPCODE_ENDSUB);
+ end = v->emit_asm(NULL, TGSI_OPCODE_ENDSUB);
end->function = entry;
progress = GL_TRUE;
@@ -5513,7 +5695,7 @@ get_mesa_program(struct gl_context *ctx,
v->renumber_registers();
/* Write the END instruction. */
- v->emit(NULL, TGSI_OPCODE_END);
+ v->emit_asm(NULL, TGSI_OPCODE_END);
if (ctx->_Shader->Flags & GLSL_DUMP) {
_mesa_log("\n");
@@ -5528,6 +5710,10 @@ get_mesa_program(struct gl_context *ctx,
prog->NumInstructions = 0;
do_set_program_inouts(shader->ir, prog, shader->Stage);
+ shrink_array_declarations(v->input_arrays, v->num_input_arrays,
+ prog->InputsRead);
+ shrink_array_declarations(v->output_arrays, v->num_output_arrays,
+ prog->OutputsWritten);
count_resources(v, prog);
/* This must be done before the uniform storage is associated. */
@@ -5549,6 +5735,7 @@ get_mesa_program(struct gl_context *ctx,
*/
_mesa_associate_uniform_storage(ctx, shader_program, prog->Parameters);
if (!shader_program->LinkStatus) {
+ free_glsl_to_tgsi_visitor(v);
return NULL;
}
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
index 2cb80bcf9..4af747fa9 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.h
@@ -43,12 +43,14 @@ enum pipe_error st_translate_program(
const struct gl_program *proginfo,
GLuint numInputs,
const GLuint inputMapping[],
+ const GLuint inputSlotToAttr[],
const ubyte inputSemanticName[],
const ubyte inputSemanticIndex[],
const GLuint interpMode[],
const GLuint interpLocation[],
GLuint numOutputs,
const GLuint outputMapping[],
+ const GLuint outputSlotToAttr[],
const ubyte outputSemanticName[],
const ubyte outputSemanticIndex[],
boolean passthrough_edgeflags,
diff --git a/mesalib/src/mesa/state_tracker/st_manager.c b/mesalib/src/mesa/state_tracker/st_manager.c
index 0376954f7..a2dee6298 100644
--- a/mesalib/src/mesa/state_tracker/st_manager.c
+++ b/mesalib/src/mesa/state_tracker/st_manager.c
@@ -924,8 +924,7 @@ static unsigned get_version(struct pipe_screen *screen,
struct gl_extensions extensions = {0};
GLuint version;
- if ((api == API_OPENGL_COMPAT || api == API_OPENGL_CORE) &&
- _mesa_override_gl_version_contextless(&consts, &api, &version)) {
+ if (_mesa_override_gl_version_contextless(&consts, &api, &version)) {
return version;
}
diff --git a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
index 98d525c86..896e239ee 100644
--- a/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
+++ b/mesalib/src/mesa/state_tracker/st_mesa_to_tgsi.c
@@ -665,7 +665,7 @@ compile_instruction(
if (num_dst)
dst[0] = translate_dst( t,
&inst->DstReg,
- inst->SaturateMode,
+ inst->Saturate,
clamp_dst_color_output);
for (i = 0; i < num_src; i++)
@@ -1095,10 +1095,9 @@ st_translate_mesa_program(
}
else if (procType == TGSI_PROCESSOR_GEOMETRY) {
for (i = 0; i < numInputs; i++) {
- t->inputs[i] = ureg_DECL_gs_input(ureg,
- i,
- inputSemanticName[i],
- inputSemanticIndex[i]);
+ t->inputs[i] = ureg_DECL_input(ureg,
+ inputSemanticName[i],
+ inputSemanticIndex[i], 0, 1);
}
for (i = 0; i < numOutputs; i++) {
diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c
index a9110d3c6..d5a124f21 100644
--- a/mesalib/src/mesa/state_tracker/st_program.c
+++ b/mesalib/src/mesa/state_tracker/st_program.c
@@ -215,6 +215,7 @@ st_prepare_vertex_program(struct gl_context *ctx,
unsigned slot = stvp->num_outputs++;
stvp->result_to_output[attr] = slot;
+ stvp->output_slot_to_attr[slot] = attr;
switch (attr) {
case VARYING_SLOT_POS:
@@ -321,7 +322,7 @@ st_translate_vertex_program(struct st_context *st,
_mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_OUTPUT);
}
- ureg = ureg_create( TGSI_PROCESSOR_VERTEX );
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_VERTEX, st->pipe->screen);
if (ureg == NULL) {
free(vpv);
return NULL;
@@ -351,6 +352,7 @@ st_translate_vertex_program(struct st_context *st,
/* inputs */
vpv->num_inputs,
stvp->input_to_index,
+ NULL, /* inputSlotToAttr */
NULL, /* input semantic name */
NULL, /* input semantic index */
NULL, /* interp mode */
@@ -358,6 +360,7 @@ st_translate_vertex_program(struct st_context *st,
/* outputs */
num_outputs,
stvp->result_to_output,
+ stvp->output_slot_to_attr,
stvp->output_semantic_name,
stvp->output_semantic_index,
key->passthrough_edgeflags,
@@ -482,6 +485,7 @@ st_translate_fragment_program(struct st_context *st,
GLuint outputMapping[FRAG_RESULT_MAX];
GLuint inputMapping[VARYING_SLOT_MAX];
+ GLuint inputSlotToAttr[VARYING_SLOT_MAX];
GLuint interpMode[PIPE_MAX_SHADER_INPUTS]; /* XXX size? */
GLuint interpLocation[PIPE_MAX_SHADER_INPUTS];
GLuint attr;
@@ -502,6 +506,7 @@ st_translate_fragment_program(struct st_context *st,
return NULL;
assert(!(key->bitmap && key->drawpixels));
+ memset(inputSlotToAttr, ~0, sizeof(inputSlotToAttr));
if (key->bitmap) {
/* glBitmap drawing */
@@ -543,6 +548,7 @@ st_translate_fragment_program(struct st_context *st,
const GLuint slot = fs_num_inputs++;
inputMapping[attr] = slot;
+ inputSlotToAttr[slot] = attr;
if (stfp->Base.IsCentroid & BITFIELD64_BIT(attr))
interpLocation[slot] = TGSI_INTERPOLATE_LOC_CENTROID;
else if (stfp->Base.IsSample & BITFIELD64_BIT(attr))
@@ -732,7 +738,7 @@ st_translate_fragment_program(struct st_context *st,
}
}
- ureg = ureg_create( TGSI_PROCESSOR_FRAGMENT );
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_FRAGMENT, st->pipe->screen);
if (ureg == NULL) {
free(variant);
return NULL;
@@ -778,6 +784,7 @@ st_translate_fragment_program(struct st_context *st,
/* inputs */
fs_num_inputs,
inputMapping,
+ inputSlotToAttr,
input_semantic_name,
input_semantic_index,
interpMode,
@@ -785,6 +792,7 @@ st_translate_fragment_program(struct st_context *st,
/* outputs */
fs_num_outputs,
outputMapping,
+ NULL,
fs_output_semantic_name,
fs_output_semantic_index, FALSE,
key->clamp_color );
@@ -867,7 +875,9 @@ st_translate_geometry_program(struct st_context *st,
struct st_geometry_program *stgp,
const struct st_gp_variant_key *key)
{
+ GLuint inputSlotToAttr[VARYING_SLOT_MAX];
GLuint inputMapping[VARYING_SLOT_MAX];
+ GLuint outputSlotToAttr[VARYING_SLOT_MAX];
GLuint outputMapping[VARYING_SLOT_MAX];
struct pipe_context *pipe = st->pipe;
GLuint attr;
@@ -890,13 +900,15 @@ st_translate_geometry_program(struct st_context *st,
if (!gpv)
return NULL;
- ureg = ureg_create(TGSI_PROCESSOR_GEOMETRY);
+ ureg = ureg_create_with_screen(TGSI_PROCESSOR_GEOMETRY, st->pipe->screen);
if (ureg == NULL) {
free(gpv);
return NULL;
}
+ memset(inputSlotToAttr, 0, sizeof(inputSlotToAttr));
memset(inputMapping, 0, sizeof(inputMapping));
+ memset(outputSlotToAttr, 0, sizeof(outputSlotToAttr));
memset(outputMapping, 0, sizeof(outputMapping));
/*
@@ -907,6 +919,7 @@ st_translate_geometry_program(struct st_context *st,
const GLuint slot = gs_num_inputs++;
inputMapping[attr] = slot;
+ inputSlotToAttr[slot] = attr;
switch (attr) {
case VARYING_SLOT_PRIMITIVE_ID:
@@ -985,6 +998,7 @@ st_translate_geometry_program(struct st_context *st,
GLuint slot = gs_num_outputs++;
outputMapping[attr] = slot;
+ outputSlotToAttr[slot] = attr;
switch (attr) {
case VARYING_SLOT_POS:
@@ -1080,6 +1094,7 @@ st_translate_geometry_program(struct st_context *st,
/* inputs */
gs_num_inputs,
inputMapping,
+ inputSlotToAttr,
input_semantic_name,
input_semantic_index,
NULL,
@@ -1087,6 +1102,7 @@ st_translate_geometry_program(struct st_context *st,
/* outputs */
gs_num_outputs,
outputMapping,
+ outputSlotToAttr,
gs_output_semantic_name,
gs_output_semantic_index,
FALSE,
@@ -1201,7 +1217,7 @@ destroy_program_variants(struct st_context *st, struct gl_program *program)
}
}
break;
- case MESA_GEOMETRY_PROGRAM:
+ case GL_GEOMETRY_PROGRAM_NV:
{
struct st_geometry_program *stgp =
(struct st_geometry_program *) program;
diff --git a/mesalib/src/mesa/state_tracker/st_program.h b/mesalib/src/mesa/state_tracker/st_program.h
index a2c56062d..bb77eb6ed 100644
--- a/mesalib/src/mesa/state_tracker/st_program.h
+++ b/mesalib/src/mesa/state_tracker/st_program.h
@@ -163,6 +163,7 @@ struct st_vertex_program
/** Maps VARYING_SLOT_x to slot */
GLuint result_to_output[VARYING_SLOT_MAX];
+ GLuint output_slot_to_attr[VARYING_SLOT_MAX];
ubyte output_semantic_name[VARYING_SLOT_MAX];
ubyte output_semantic_index[VARYING_SLOT_MAX];
GLuint num_outputs;
diff --git a/mesalib/src/mesa/tnl/t_context.c b/mesalib/src/mesa/tnl/t_context.c
index 5b9dd54d7..bc77ba8bf 100644
--- a/mesalib/src/mesa/tnl/t_context.c
+++ b/mesalib/src/mesa/tnl/t_context.c
@@ -36,6 +36,7 @@
#include "math/m_xform.h"
#include "main/state.h"
#include "main/viewport.h"
+#include "util/simple_list.h"
#include "tnl.h"
#include "t_context.h"
diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c
index 3ea775c0e..72b8206ec 100644
--- a/mesalib/src/mesa/vbo/vbo_exec_array.c
+++ b/mesalib/src/mesa/vbo/vbo_exec_array.c
@@ -1817,9 +1817,12 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx,
SET_DrawElementsInstancedBaseVertexBaseInstance(exec, vbo_exec_DrawElementsInstancedBaseVertexBaseInstance);
}
- if (ctx->API == API_OPENGL_CORE) {
+ if (ctx->API == API_OPENGL_CORE || _mesa_is_gles31(ctx)) {
SET_DrawArraysIndirect(exec, vbo_exec_DrawArraysIndirect);
SET_DrawElementsIndirect(exec, vbo_exec_DrawElementsIndirect);
+ }
+
+ if (ctx->API == API_OPENGL_CORE) {
SET_MultiDrawArraysIndirect(exec, vbo_exec_MultiDrawArraysIndirect);
SET_MultiDrawElementsIndirect(exec, vbo_exec_MultiDrawElementsIndirect);
}