diff options
Diffstat (limited to 'mesalib')
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 <stdbool.h></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 < 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 <jhacker@foo.com> +</pre> +<li>If the patch was reviewed (usually the case) or acked by someone, +that should be documented with: +<pre> + Reviewed-by: Joe Hacker <jhacker@foo.com> + Acked-by: Joe Hacker <jhacker@foo.com> +</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 <stdbool.h></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 <jhacker@foo.com> +</pre> +or +<pre> + Acked-by: Joe Hacker <jhacker@foo.com> +</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 <jhacker@foo.com> +</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 < 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 & 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", 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 && "p_atomic_add"' 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 & 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@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); } |