diff --git a/.github/workflows/glad2.yaml b/.github/workflows/glad2.yaml new file mode 100644 index 00000000..b38b8266 --- /dev/null +++ b/.github/workflows/glad2.yaml @@ -0,0 +1,39 @@ +on: [push, pull_request] + +name: glad2 + +jobs: + test: + name: Test + runs-on: ubuntu-latest + env: + WINEDLLOVERRIDES: mscoree,mshtml= + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.x' + cache: 'pip' + - name: Install Python dependencies + run: pip install -r requirements.txt + - name: Install dependencies + run: | + # Install wine + sudo mkdir -pm755 /etc/apt/keyrings + wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - + sudo dpkg --add-architecture i386 + sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources + sudo apt-get update + sudo apt install --install-recommends winehq-stable + # Install remaining dependencies + sudo apt-get install gcc g++ gcc-mingw-w64 g++-mingw-w64 rustc libglfw3-dev winetricks xvfb libxxf86vm-dev libxi-dev libxcursor-dev libxinerama-dev + - name: Setup environment + run: winetricks nocrashdialog + - name: Run Tests + run: PRINT_MESSAGE=1 xvfb-run --auto-servernum ./utility/test.sh + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: test-report.xml + comment_mode: off diff --git a/.gitignore b/.gitignore index 8cff707d..0168e437 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ a.out *.kdev_include_paths main.c *.diff +*.swp .idea dist/ *.egg-info @@ -17,4 +18,5 @@ dist/ /glad-rs/ /rust/ target/ -Cargo.lock \ No newline at end of file +Cargo.lock +.vscode/ diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index ff4df559..00000000 --- a/Jenkinsfile +++ /dev/null @@ -1,32 +0,0 @@ -pipeline { - agent any - stages { - stage('Setup') { - steps { - sh 'git reset --hard HEAD' - sh 'git clean -xffd' - } - } - stage('Test') { - parallel { - stage('Unit') { - steps { - withPythonEnv('python2') { - sh 'python -m pip install -r requirements.txt' - sh 'python -m pip install -r requirements-test.txt' - sh 'python -m nose --with-xunit || true' - junit 'nosetests.xml' - } - } - } - stage('Integration') { - steps { - sh 'docker pull dav1d/glad-test' - sh 'docker run --rm -t -v "$WORKSPACE:/mnt" --user "$(id -u):$(id -g)" dav1d/glad-test || true' - junit 'test-report.xml' - } - } - } - } - } -} diff --git a/LICENSE b/LICENSE index b6e2ca25..4965a6bf 100644 --- a/LICENSE +++ b/LICENSE @@ -1,20 +1,63 @@ -The MIT License (MIT) - -Copyright (c) 2013-2018 David Herberth - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +The glad source code: + + The MIT License (MIT) + + Copyright (c) 2013-2022 David Herberth + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +The Khronos Specifications: + + Copyright (c) 2013-2020 The Khronos Group Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +The EGL Specification and various headers: + + Copyright (c) 2007-2016 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 + "Materials"), to deal in the Materials without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Materials, and to + permit persons to whom the Materials are furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Materials. + + THE MATERIALS ARE 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 + MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. diff --git a/README.md b/README.md index 148e5e03..b44ff063 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,12 @@ glad ==== Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specifications -for multiple languages, including C/C++/Rust/D/Nim/Volt/Pascal. +for multiple languages. Check out the [webservice for glad2](https://glad.sh) to generate the files you need! -**NOTE:** The 2.0 branch is currently a beta version, the beta version number will -not be updated and refers to the git *HEAD*. +**NOTE:** This is the 2.0 branch, which adds more functionality but changes the API. Some languages are only available in the [glad1 generator](https://glad.dav1d.de). @@ -43,6 +42,12 @@ The full code: [hellowindow2.cpp](example/c++/hellowindow2.cpp) More examples in the [examples directory](example/) of this repository. +## Plugins + +Glad [plugins](https://github.com/Dav1dde/glad/wiki/Extending-Glad) +maintained by the community to add support for more languages: + +- [Fortran](https://github.com/AarnoldGad/glad-fortran). ## Documentation @@ -54,7 +59,9 @@ Examples can be found [in the example directory](/example). Some examples: * C/C++ * [GL GLFW](example/c/gl_glfw.c) * [GL GLFW On-Demand loading](example/c/gl_glfw_on_demand.c) - * [GL GLFW Multiple Windows](example/c++/multiwin_mx/) + * [GL GLFW Multiple Windows/Contexts](example/c++/multiwin_mx/) + * [GL SDL3 Callbacks](example/c/gl_sdl3_callbacks.c) + * [GL SDL3](example/c/gl_sdl3.c) * [GL SDL2](example/c/gl_sdl2.c) * [Vulkan GLFW](example/c/vulkan_tri_glfw/) * [GLX](example/c/glx.c) @@ -63,5 +70,16 @@ Examples can be found [in the example directory](/example). Some examples: * [EGL X11](example/c/egl_x11/) * Rust * [GL GLFW](example/rust/gl-glfw/) + * [GL GLFW Multiple Windows/Contexts](example/rust/gl-glfw-mx/) + + + +## License +For the source code and various Khronos files see [LICENSE](/LICENSE). +The generated code from glad is any of Public Domain, WTFPL or CC0. +Now Khronos has some of their specifications under Apache Version 2.0 +license which may have an impact on the generated code, +[see this clarifying comment](https://github.com/KhronosGroup/OpenGL-Registry/issues/376#issuecomment-596187053) +on the Khronos / OpenGL-Specification issue tracker. diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3f3b6a78..690282b5 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1,299 +1,21 @@ -# This project defines a `glad_add_library` function that will create a glad library. -# The created library will automatically generate the glad sources. -# Consumers can link to the the library. -# # configuration variables: # GLAD_SOURCES_DIR: path to the sources of glad (=python module) -# -# -# glad_add_library( [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] [MERGE] [QUIET] [KEEP_SOURCES] [LOCATION ] -# [LANGUAGE ] [API [ ...]] [EXTENSIONS [ [ ...]]]) -# - -# Name of the TARGET -# - SHARED|STATIC|MODULE -# Type of the library -# - EXCLUDE_FROM_ALL -# Exclude building the library from the all target -# - MERGE -# Merge multiple APIs of the same specitifation into one file. -# - QUIET -# Disable logging -# - KEEP_SOURCES -# After generating the sources, do not let a clean step remove the sources. -# This is useful for adding the glad sources to your scm. -# - LOCATION -# Set the location where the generated glad should be saved. -# If KEEP_SOURCES is also defined, this path can be inside the source path. -# - LANGUAGE -# Language of the generated glad sources. -# - API [ ...]] -# Apis to include in the generated glad library. -# - EXTENSIONS [ [ ...]] -# Extensions to include in the generated glad library. Pass NONE to add no extensions whatsoever. -# -# examples: -# - create a shared glad library of the core profile of opengl 3.3, having all extensions: -# ``` -# glad_add_library(glad_gl_core_33 SHARED API gl:core=3.3) -# ``` -# - create a module glad library of the compatibility profile of opengl 1.0, having only the GL_EXT_COMPRESSION_s3tc extensionsion -# ``` -# glad_add_library(glad_gl_compat_10 MODULE API gl:compatibility=1.0 EXTENSIONS GL_EXT_COMPRESSION_s3tc) -# ``` -# - create a static glad library with the vulkan=1.1 -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.12) project(glad C) -find_package(PythonInterp REQUIRED) - -set(GLAD_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE STRING "Directory containing glad generator CMakeLists.txt") -set(GLAD_SOURCES_DIR "${GLAD_CMAKE_DIR}/../" CACHE STRING "Directory containing glad sources (python modules), used as working directory") +set( + GLAD_CMAKE_DIR + "${CMAKE_CURRENT_LIST_DIR}" + CACHE STRING + "Directory containing glad generator CMakeLists.txt. Must be absolute." + ) +set( + GLAD_SOURCES_DIR + "${GLAD_CMAKE_DIR}/../" + CACHE STRING + "Directory containing glad sources (python modules), used as working directory. Must be absolute." + ) mark_as_advanced(GLAD_CMAKE_DIR) -# Extract specification, profile and version from a string -# examples: -# gl:core=3.3 => SPEC=gl PROFILE=core VERSION=3.3 -# gl:compatibility=4.0 => SPEC=gl PROFILE=compatibility VERSION=4.0 -# vulkan=1.1 => SPEC=vulkan PROFILE="" VERSION=1.1 -function(__glad_extract_spec_profile_version SPEC PROFILE VERSION STRING) - string(REPLACE "=" ";" SPEC_PROFILE_VERSION_LIST "${STRING}") - list(LENGTH SPEC_PROFILE_VERSION_LIST SPV_LENGTH) - if(SPV_LENGTH LESS 2) - message(FATAL_ERROR "${SPEC} is an invalid SPEC") - endif() - list(GET SPEC_PROFILE_VERSION_LIST 0 SPEC_PROFILE_STR) - list(GET SPEC_PROFILE_VERSION_LIST 1 VERSION_STR) - - string(REPLACE ":" ";" SPEC_PROFILE_LIST "${SPEC_PROFILE_STR}") - list(LENGTH SPEC_PROFILE_LIST SP_LENGTH) - if(SP_LENGTH LESS 2) - list(GET SPEC_PROFILE_LIST 0 SPEC_STR) - set(PROFILE_STR "") - else() - list(GET SPEC_PROFILE_LIST 0 SPEC_STR) - list(GET SPEC_PROFILE_LIST 1 PROFILE_STR) - endif() - - set("${SPEC}" "${SPEC_STR}" PARENT_SCOPE) - set("${PROFILE}" "${PROFILE_STR}" PARENT_SCOPE) - set("${VERSION}" "${VERSION_STR}" PARENT_SCOPE) -endfunction() - -# Calculate the argument and generated files for the "c" subparser for glad -function(__glad_c_library CARGS CFILES) - cmake_parse_arguments(GGC "ALIAS;DEBUG;HEADERONLY;LOADER;MX;MXGLOBAL" "" "API" ${ARGN}) - - if(NOT GGC_API) - message(FATAL_ERROR "Need API") - endif() - - set(GGC_FILES "") - foreach(API ${GGC_API}) - __glad_extract_spec_profile_version(SPEC PROFILE VERSION "${API}") - if(SPEC STREQUAL "egl") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/EGL/eglplatform.h" - "${GLAD_DIR}/include/KHR/khrplatform.h" - "${GLAD_DIR}/include/glad/egl.h" - "${GLAD_DIR}/src/egl.c" - ) - elseif(SPEC STREQUAL "vulkan") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/vk_platform.h" - "${GLAD_DIR}/include/glad/vulkan.h" - "${GLAD_DIR}/src/vulkan.c" - ) - elseif(SPEC STREQUAL "gl") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/KHR/khrplatform.h" - "${GLAD_DIR}/include/glad/gl.h" - "${GLAD_DIR}/src/gl.c" - ) - elseif(SPEC STREQUAL "gles1") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/KHR/khrplatform.h" - "${GLAD_DIR}/include/glad/gles1.h" - "${GLAD_DIR}/src/gles1.c" - ) - elseif(SPEC STREQUAL "gles2") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/KHR/khrplatform.h" - "${GLAD_DIR}/include/glad/gles2.h" - "${GLAD_DIR}/src/gles2.c" - ) - elseif(SPEC STREQUAL "glsc2") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/KHR/khrplatform.h" - "${GLAD_DIR}/include/glad/glsc2.h" - "${GLAD_DIR}/src/glsc2.c" - ) - elseif(SPEC STREQUAL "wgl") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/glad/wgl.h" - "${GLAD_DIR}/src/wgl.c" - ) - elseif(SPEC STREQUAL "glx") - list(APPEND GGC_FILES - "${GLAD_DIR}/include/glad/glx.h" - "${GLAD_DIR}/src/glx.c" - ) - else() - message(FATAL_ERROR "Unknown SPEC: '${SPEC}'") - endif() - endforeach() - - set(GGC_ARGS "") - if(GGC_ALIAS) - list(APPEND GGC_ARGS "--alias") - endif() - - if(GGC_DEBUG) - list(APPEND GGC_ARGS "--debug") - endif() - - if(GGC_HEADERONLY) - list(APPEND GGC_ARGS "--header-only") - endif() - - if(GGC_LOADER) - list(APPEND GGC_ARGS "--loader") - endif() - - if(GGC_MX) - list(APPEND GGC_ARGS "--mx") - endif() - - if(GGC_MXGLOBAL) - list(APPEND GGC_ARGS "--mx-global") - endif() - - set("${CARGS}" "${GGC_ARGS}" PARENT_SCOPE) - set("${CFILES}" "${GGC_FILES}" PARENT_SCOPE) -endfunction() - -# Create a glad library named "${TARGET}" -function(glad_add_library TARGET) - cmake_parse_arguments(GG "MERGE;QUIET;REPRODUCIBLE;KEEP_SOURCES;STATIC;SHARED;MODULE;EXCLUDE_FROM_ALL" "LOCATION;LANGUAGE" "API;EXTENSIONS" ${ARGN}) - - if(NOT GG_LOCATION) - set(GG_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/gladsources/${TARGET}") - endif() - set(GLAD_DIR "${GG_LOCATION}") - if(NOT IS_DIRECTORY "${GLAD_DIR}") - file(MAKE_DIRECTORY "${GLAD_DIRECTORY}") - endif() - set(GLAD_ARGS --out-path "${GLAD_DIR}") - - if(NOT GG_API) - message(FATAL_ERROR "Need API") - endif() - string(REPLACE ";" "," GLAD_API "${GG_API}") - list(APPEND GLAD_ARGS --api "${GLAD_API}") - - if(GG_EXTENSIONS) - list(FIND GG_EXTENSIONS NONE GG_EXT_NONE) - if(GG_EXT_NONE EQUAL -1) - set(GLAD_EXTENSIONS "") - else() - string(REPLACE ";" "," GLAD_EXTENSIONS ${GG_EXTENSIONS}) - endif() - list(APPEND GLAD_ARGS --extensions "${GLAD_EXTENSIONS}") - endif() - - if(GG_QUIET) - list(APPEND GLAD_ARGS --quiet) - endif() - - if(GG_MERGE) - list(APPEND GLAD_ARGS --merge) - endif() - - if(GG_REPRODUCIBLE) - list(APPEND GLAD_ARGS --reproducible) - endif() - - set(GLAD_LANGUAGE "c") - if(GG_LANGUAGE) - string(TOLOWER "${GG_LANGUAGE}" "${GLAD_LANGUAGE}") - endif() - - if(GLAD_LANGUAGE STREQUAL "c") - __glad_c_library(LANG_ARGS GLAD_FILES ${GG_UNPARSED_ARGUMENTS} API ${GG_API}) - else() - message(FATAL_ERROR "Unknown LANGUAGE") - endif() - list(APPEND GLAD_ARGS ${GLAD_LANGUAGE} ${LANG_ARGS}) - - # allows: - # - bootstrap: generate sources when non-existent - # - do not remove the sources when cleaning - # BUG: running clean directly after an initial make without sources present, removes the sources - - if(GG_KEEP_SOURCES) - string(REPLACE "${GLAD_DIR}" GLAD_DIRECTORY GLAD_ARGS_UNIVERSAL "${GLAD_ARGS}") - set(GLAD_ADD_CUSTOM_COMMAND OFF) - set(GLAD_ARGS_PATH "${GLAD_DIR}/args.txt") - if(NOT EXISTS "${GLAD_ARGS_PATH}") - set(GLAD_ADD_CUSTOM_COMMAND ON) - else() - file(READ "${GLAD_ARGS_PATH}" GLAD_ARGS_FILE) - if(NOT GLAD_ARGS_UNIVERSAL STREQUAL GLAD_ARGS_FILE) - set(GLAD_ADD_CUSTOM_COMMAND ON) - endif() - endif() - list(APPEND GLAD_EXTRA_COMMANDS - COMMAND "${CMAKE_COMMAND}" "-DPATH=${GLAD_ARGS_PATH}" "-DTEXT=\"${GLAD_ARGS_UNIVERSAL}\"" -P "${GLAD_CMAKE_DIR}/WriteFile.cmake" - COMMAND "${CMAKE_COMMAND}" -E sleep 1 - COMMAND "${CMAKE_COMMAND}" -E touch "${GLAD_CMAKE_DIR}/CMakeLists.txt" - ) - else() - set(GLAD_ADD_CUSTOM_COMMAND ON) - endif() - - if(GLAD_ADD_CUSTOM_COMMAND) - add_custom_command(OUTPUT ${GLAD_FILES} ${GLAD_ARGS_PATH} - COMMAND "${CMAKE_COMMAND}" -E remove_directory "${GLAD_DIR}" - COMMAND "${PYTHON_EXECUTABLE}" -m glad ${GLAD_ARGS} - ${GLAD_EXTRA_COMMANDS} - WORKING_DIRECTORY "${GLAD_SOURCES_DIR}" - ) - endif() - - # add make custom target - add_custom_target("regenerate_${TARGET}" - COMMAND "${CMAKE_COMMAND}" -E remove_directory "${GLAD_DIR}" - COMMAND "${PYTHON_EXECUTABLE}" -m glad ${GLAD_ARGS} - ${GLAD_EXTRA_COMMANDS} - WORKING_DIRECTORY "${GLAD_SOURCES_DIR}" - COMMENT "Regenerating glad source files for ${TARGET}..." - ) - - set(GLAD_ADD_LIBRARY_ARGS "") - - if(GG_SHARED) - list(APPEND GLAD_ADD_LIBRARY_ARGS SHARED) - elseif(GG_STATIC) - list(APPEND GLAD_ADD_LIBRARY_ARGS STATIC) - elseif(GG_MODULE) - list(APPEND GLAD_ADD_LIBRARY_ARGS MODULE) - endif() - - if(GG_EXCLUDE_FROM_ALL) - list(APPEND GLAD_ADD_LIBRARY_ARGS EXCLUDE_FROM_ALL) - endif() - - add_library("${TARGET}" ${LIBTYPE} ${GLAD_ADD_LIBRARY_ARGS} - ${GLAD_FILES} - ) - - target_include_directories("${TARGET}" - PUBLIC - "${GLAD_DIR}/include" - ) - - target_link_libraries("${TARGET}" - PUBLIC - ${CMAKE_DL_LIBS} - ) -endfunction() +include(${GLAD_CMAKE_DIR}/GladConfig.cmake) diff --git a/cmake/GladConfig.cmake b/cmake/GladConfig.cmake new file mode 100644 index 00000000..1065126f --- /dev/null +++ b/cmake/GladConfig.cmake @@ -0,0 +1,295 @@ +# This project defines a `glad_add_library` function that will create a glad library. +# The created library will automatically generate the glad sources. +# Consumers can link to the the library. +# +# glad_add_library( [SHARED|STATIC|MODULE|INTERFACE] [EXCLUDE_FROM_ALL] [MERGE] [QUIET] [LOCATION ] +# [LANGUAGE ] [API [ ...]] [EXTENSIONS [ [ ...]]]) +# - +# Name of the TARGET +# - SHARED|STATIC|MODULE|INTERFACE +# Type of the library, if none is specified, default BUILD_SHARED_LIBS behavior is honored +# - EXCLUDE_FROM_ALL +# Exclude building the library from the all target +# - MERGE +# Merge multiple APIs of the same specitifation into one file. +# - REPRODUCIBLE +# Makes the build reproducible by not fetching the latest specification from Khronos. +# - QUIET +# Disable logging +# - LOCATION +# Set the location where the generated glad should be saved. +# - LANGUAGE +# Language of the generated glad sources. +# - API [ ...]] +# Apis to include in the generated glad library. +# - EXTENSIONS [ [ ...]] +# Extensions to include in the generated glad library. Pass NONE to add no extensions whatsoever. +# +# examples: +# - create a shared glad library of the core profile of opengl 3.3, having all extensions: +# ``` +# glad_add_library(glad_gl_core_33 SHARED API gl:core=3.3) +# ``` +# - create a module glad library of the compatibility profile of opengl 1.0, having only the GL_EXT_COMPRESSION_s3tc extensionsion +# ``` +# glad_add_library(glad_gl_compat_10 MODULE API gl:compatibility=1.0 EXTENSIONS GL_EXT_COMPRESSION_s3tc) +# ``` +# - create a static glad library with the vulkan=1.1 +# ``` +# glad_add_library(glad_vulkan_11 STATIC API vulkan=1.1) +# ``` + +# Extract specification, profile and version from a string +# examples: +# gl:core=3.3 => SPEC=gl PROFILE=core VERSION=3.3 +# gl:compatibility=4.0 => SPEC=gl PROFILE=compatibility VERSION=4.0 +# vulkan=1.1 => SPEC=vulkan PROFILE="" VERSION=1.1 +function(__glad_extract_spec_profile_version SPEC PROFILE VERSION STRING) + string(REPLACE "=" ";" SPEC_PROFILE_VERSION_LIST "${STRING}") + list(LENGTH SPEC_PROFILE_VERSION_LIST SPV_LENGTH) + if(SPV_LENGTH LESS 2) + message(FATAL_ERROR "${SPEC} is an invalid SPEC") + endif() + list(GET SPEC_PROFILE_VERSION_LIST 0 SPEC_PROFILE_STR) + list(GET SPEC_PROFILE_VERSION_LIST 1 VERSION_STR) + + string(REPLACE ":" ";" SPEC_PROFILE_LIST "${SPEC_PROFILE_STR}") + list(LENGTH SPEC_PROFILE_LIST SP_LENGTH) + if(SP_LENGTH LESS 2) + list(GET SPEC_PROFILE_LIST 0 SPEC_STR) + set(PROFILE_STR "") + else() + list(GET SPEC_PROFILE_LIST 0 SPEC_STR) + list(GET SPEC_PROFILE_LIST 1 PROFILE_STR) + endif() + + set("${SPEC}" "${SPEC_STR}" PARENT_SCOPE) + set("${PROFILE}" "${PROFILE_STR}" PARENT_SCOPE) + set("${VERSION}" "${VERSION_STR}" PARENT_SCOPE) +endfunction() + +# Calculate the argument and generated files for the "c" subparser for glad +function(__glad_c_library CARGS CFILES) + cmake_parse_arguments(GGC "ALIAS;DEBUG;HEADERONLY;LOADER;MX;MXGLOBAL;ON_DEMAND" "" "API" ${ARGN}) + + if(NOT GGC_API) + message(FATAL_ERROR "Need API") + endif() + + set(GGC_FILES "") + foreach(API ${GGC_API}) + __glad_extract_spec_profile_version(SPEC PROFILE VERSION "${API}") + if(SPEC STREQUAL "egl") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/EGL/eglplatform.h" + "${GLAD_DIR}/include/KHR/khrplatform.h" + "${GLAD_DIR}/include/glad/egl.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/egl.c") + endif() + elseif(SPEC STREQUAL "vulkan") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/vk_platform.h" + "${GLAD_DIR}/include/glad/vulkan.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/vulkan.c") + endif() + elseif(SPEC STREQUAL "gl") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/KHR/khrplatform.h" + "${GLAD_DIR}/include/glad/gl.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/gl.c") + endif() + elseif(SPEC STREQUAL "gles1") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/KHR/khrplatform.h" + "${GLAD_DIR}/include/glad/gles1.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/gles1.c") + endif() + elseif(SPEC STREQUAL "gles2") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/KHR/khrplatform.h" + "${GLAD_DIR}/include/glad/gles2.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/gles2.c") + endif() + elseif(SPEC STREQUAL "glsc2") + list(APPEND GGC_FILES + "${GLAD_DIR}/include/KHR/khrplatform.h" + "${GLAD_DIR}/include/glad/glsc2.h" + ) + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/glsc2.c") + endif() + elseif(SPEC STREQUAL "wgl") + list(APPEND GGC_FILES "${GLAD_DIR}/include/glad/wgl.h") + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/wgl.c") + endif() + elseif(SPEC STREQUAL "glx") + list(APPEND GGC_FILES "${GLAD_DIR}/include/glad/glx.h") + if(NOT GGC_HEADERONLY) + list(APPEND GGC_FILES "${GLAD_DIR}/src/glx.c") + endif() + else() + message(FATAL_ERROR "Unknown SPEC: '${SPEC}'") + endif() + endforeach() + list(REMOVE_DUPLICATES GGC_FILES) + + set(GGC_ARGS "") + if(GGC_ALIAS) + list(APPEND GGC_ARGS "--alias") + endif() + + if(GGC_DEBUG) + list(APPEND GGC_ARGS "--debug") + endif() + + if(GGC_HEADERONLY) + list(APPEND GGC_ARGS "--header-only") + endif() + + if(GGC_LOADER) + list(APPEND GGC_ARGS "--loader") + endif() + + if(GGC_MX) + list(APPEND GGC_ARGS "--mx") + endif() + + if(GGC_MXGLOBAL) + list(APPEND GGC_ARGS "--mx-global") + endif() + + if(GGC_ON_DEMAND) + list(APPEND GGC_ARGS "--on-demand") + endif() + + set("${CARGS}" "${GGC_ARGS}" PARENT_SCOPE) + set("${CFILES}" "${GGC_FILES}" PARENT_SCOPE) +endfunction() + +# Create a glad library named "${TARGET}" +function(glad_add_library TARGET) + message(STATUS "Glad Library \'${TARGET}\'") + + find_package(Python COMPONENTS Interpreter REQUIRED) + + cmake_parse_arguments(GG "MERGE;QUIET;REPRODUCIBLE;STATIC;SHARED;MODULE;INTERFACE;EXCLUDE_FROM_ALL" "LOCATION;LANGUAGE" "API;EXTENSIONS" ${ARGN}) + + if(NOT GG_LOCATION) + set(GG_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/gladsources/${TARGET}") + endif() + if(BUILD_SHARED_LIBS) + set(GG_SHARED TRUE) + endif() + set(GLAD_DIR "${GG_LOCATION}") + if(NOT IS_DIRECTORY "${GLAD_DIR}") + file(MAKE_DIRECTORY "${GLAD_DIR}") + endif() + set(GLAD_ARGS --out-path "${GLAD_DIR}") + + if(NOT GG_API) + message(FATAL_ERROR "Need API") + endif() + string(REPLACE ";" "," GLAD_API "${GG_API}") + list(APPEND GLAD_ARGS --api "${GLAD_API}") + + if(GG_EXTENSIONS) + list(FIND GG_EXTENSIONS NONE GG_EXT_NONE) + if(GG_EXT_NONE GREATER -1) + set(GLAD_EXTENSIONS " ") + else() + list(REMOVE_DUPLICATES GG_EXTENSIONS) + list(JOIN GG_EXTENSIONS "," GLAD_EXTENSIONS) + endif() + list(APPEND GLAD_ARGS --extensions "${GLAD_EXTENSIONS}") + endif() + + if(GG_QUIET) + list(APPEND GLAD_ARGS --quiet) + endif() + + if(GG_MERGE) + list(APPEND GLAD_ARGS --merge) + endif() + + if(GG_REPRODUCIBLE) + list(APPEND GLAD_ARGS --reproducible) + endif() + + set(GLAD_LANGUAGE "c") + if(GG_LANGUAGE) + string(TOLOWER "${GG_LANGUAGE}" "${GLAD_LANGUAGE}") + endif() + + if(GLAD_LANGUAGE STREQUAL "c") + __glad_c_library(LANG_ARGS GLAD_FILES ${GG_UNPARSED_ARGUMENTS} API ${GG_API}) + else() + message(FATAL_ERROR "Unknown LANGUAGE") + endif() + list(APPEND GLAD_ARGS ${GLAD_LANGUAGE} ${LANG_ARGS}) + + string(REPLACE "${GLAD_DIR}" GLAD_DIRECTORY GLAD_ARGS_UNIVERSAL "${GLAD_ARGS}") + set(GLAD_ARGS_PATH "${GLAD_DIR}/args.txt") + + # add make custom target + add_custom_command( + OUTPUT ${GLAD_FILES} ${GLAD_ARGS_PATH} + COMMAND echo Cleaning ${GLAD_DIR} + COMMAND ${CMAKE_COMMAND} -E remove_directory ${GLAD_DIR} + COMMAND ${CMAKE_COMMAND} -E make_directory ${GLAD_DIR} + COMMAND echo Generating with args ${GLAD_ARGS} + COMMAND ${Python_EXECUTABLE} -m glad ${GLAD_ARGS} + COMMAND echo Writing ${GLAD_ARGS_PATH} + COMMAND echo ${GLAD_ARGS} > ${GLAD_ARGS_PATH} + WORKING_DIRECTORY $<$:${GLAD_SOURCES_DIR}> + COMMENT "${TARGET}-generate" + USES_TERMINAL + ) + + set(GLAD_ADD_LIBRARY_ARGS "") + if(GG_SHARED) + list(APPEND GLAD_ADD_LIBRARY_ARGS SHARED) + elseif(GG_STATIC) + list(APPEND GLAD_ADD_LIBRARY_ARGS STATIC) + elseif(GG_MODULE) + list(APPEND GLAD_ADD_LIBRARY_ARGS MODULE) + elseif(GG_INTERFACE) + list(APPEND GLAD_ADD_LIBRARY_ARGS INTERFACE) + endif() + + if(GG_EXCLUDE_FROM_ALL) + list(APPEND GLAD_ADD_LIBRARY_ARGS EXCLUDE_FROM_ALL) + endif() + + add_library("${TARGET}" ${GLAD_ADD_LIBRARY_ARGS} + ${GLAD_FILES} + ) + + target_include_directories("${TARGET}" + PUBLIC + "${GLAD_DIR}/include" + ) + + target_link_libraries("${TARGET}" + PUBLIC + ${CMAKE_DL_LIBS} + ) + + if(GG_SHARED) + target_compile_definitions("${TARGET}" PUBLIC GLAD_API_CALL_EXPORT) + set_target_properties("${TARGET}" + PROPERTIES + DEFINE_SYMBOL "GLAD_API_CALL_EXPORT_BUILD" + ) + endif() +endfunction() diff --git a/cmake/WriteFile.cmake b/cmake/WriteFile.cmake deleted file mode 100644 index 22d623af..00000000 --- a/cmake/WriteFile.cmake +++ /dev/null @@ -1,2 +0,0 @@ -# Helper cmake script to write the string "${TEXT}" to the file "${FILE}" -file(WRITE "${PATH}" "${TEXT}") diff --git a/example/c++/hellowindow2_macro.cpp b/example/c++/hellowindow2_macro.cpp index 18971567..0d56808a 100644 --- a/example/c++/hellowindow2_macro.cpp +++ b/example/c++/hellowindow2_macro.cpp @@ -64,7 +64,7 @@ int main() #endif #ifdef GLAD_OPTION_GL_MX - GladGLContext context; + GladGLContext context = {}; #ifdef GLAD_OPTION_GL_LOADER int version = gladLoaderLoadGLContext(&context); #else diff --git a/example/c++/hellowindow2_mx.cpp b/example/c++/hellowindow2_mx.cpp index d0b96df8..bf4c86d3 100644 --- a/example/c++/hellowindow2_mx.cpp +++ b/example/c++/hellowindow2_mx.cpp @@ -48,7 +48,7 @@ int main() // Set the required callback functions glfwSetKeyCallback(window, key_callback); - GladGLContext context; + GladGLContext context = {}; int version = gladLoadGLContext(&context, glfwGetProcAddress); if (version == 0) { diff --git a/example/c++/multiwin_mx/multiwin_mx.cpp b/example/c++/multiwin_mx/multiwin_mx.cpp index 550b707e..5db6ad87 100644 --- a/example/c++/multiwin_mx/multiwin_mx.cpp +++ b/example/c++/multiwin_mx/multiwin_mx.cpp @@ -78,7 +78,7 @@ GLFWwindow* create_window(const char *name, int major, int minor) { GladGLContext* create_context(GLFWwindow *window) { glfwMakeContextCurrent(window); - GladGLContext* context = (GladGLContext*) malloc(sizeof(GladGLContext)); + GladGLContext* context = (GladGLContext*) calloc(1, sizeof(GladGLContext)); if (!context) return NULL; int version = gladLoadGLContext(context, glfwGetProcAddress); diff --git a/example/c/egl_x11/egl_x11.c b/example/c/egl_x11/egl_x11.c index 097b3654..143903d2 100644 --- a/example/c/egl_x11/egl_x11.c +++ b/example/c/egl_x11/egl_x11.c @@ -47,7 +47,9 @@ int main(void) { printf("Unable to create window.\n"); return 1; } - + // We need to load EGL before `eglInitialize()` and after it. + // Otherwise glad loads EGL 1.0. + // https://github.com/Dav1dde/glad/issues/177 int egl_version = gladLoaderLoadEGL(NULL); if (!egl_version) { printf("Unable to load EGL.\n"); @@ -61,12 +63,14 @@ int main(void) { printf("Got no EGL display.\n"); return 1; } - + if (!eglInitialize(egl_display, NULL, NULL)) { printf("Unable to initialize EGL\n"); return 1; } + // Try to load EGL again after calling `eglInitialize`, this time we pass the + // `egl_display`. egl_version = gladLoaderLoadEGL(egl_display); if (!egl_version) { printf("Unable to reload EGL.\n"); diff --git a/example/c/gl_glfw.c b/example/c/gl_glfw.c index a6d6eb46..9185880f 100644 --- a/example/c/gl_glfw.c +++ b/example/c/gl_glfw.c @@ -1,6 +1,7 @@ #include #include +#define GLAD_GL_IMPLEMENTATION // Necessary for headeronly version. #include #include diff --git a/example/c/gl_glfw_on_demand.c b/example/c/gl_glfw_on_demand.c index 5477c2ba..ea2d388b 100644 --- a/example/c/gl_glfw_on_demand.c +++ b/example/c/gl_glfw_on_demand.c @@ -1,4 +1,4 @@ -// This example requires you to generate glad with the --on-demand option and optionally --loader. +// This example requires you to generate glad with the --on-demand option and optionally --loader and --debug. // gcc -o gl_glfw_on_demand example/c/gl_glfw_on_demand.c build/src/gl.c -Ibuild/include -ldl -lglfw #include #include @@ -10,9 +10,27 @@ const GLuint WIDTH = 800, HEIGHT = 600; + +static void pre_call_gl_callback(const char *name, GLADapiproc apiproc, int len_args, ...) { + printf("about to call gl func: %s\n", name); +} + void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode) { - if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) + if (action != GLFW_PRESS) { + return; + } + + if (key == GLFW_KEY_ESCAPE) { glfwSetWindowShouldClose(window, GL_TRUE); +#ifdef GLAD_OPTION_GL_DEBUG + } else if (key == GLFW_KEY_H) { + printf("Installing glad debug function pointers\n"); + gladInstallGLDebug(); + } else if (key == GLFW_KEY_J) { + printf("Uninstalling glad debug function pointers\n"); + gladUninstallGLDebug(); +#endif + } } int main(void) { @@ -35,6 +53,11 @@ int main(void) { gladSetGLOnDemandLoader(glfwGetProcAddress); #endif +#ifdef GLAD_OPTION_GL_DEBUG + gladUninstallGLDebug(); + gladSetGLPreCallback(pre_call_gl_callback); +#endif + while (!glfwWindowShouldClose(window)) { glfwPollEvents(); diff --git a/example/c/gl_sdl3.c b/example/c/gl_sdl3.c new file mode 100644 index 00000000..b7a52a3e --- /dev/null +++ b/example/c/gl_sdl3.c @@ -0,0 +1,68 @@ +// gcc $(pkg-config --cflags --libs sdl3) -I${GLAD_PATH}/include example/c/gl_sdl3.c ${GLAD_PATH}/src/gl.c +#include +#include + +#include +#include +#include + +const GLuint WIDTH = 800, HEIGHT = 600; + +int main(void) { + // code without checking for errors + SDL_Init(SDL_INIT_VIDEO); + + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + + SDL_Window *window; + SDL_Renderer *renderer; + + SDL_CreateWindowAndRenderer( + "[glad] GL with SDL3", + WIDTH, HEIGHT, + SDL_WINDOW_OPENGL, + &window, &renderer + ); + + SDL_GLContext context = SDL_GL_CreateContext(window); + + int version = gladLoadGL((GLADloadfunc) SDL_GL_GetProcAddress); + printf("GL %d.%d\n", GLAD_VERSION_MAJOR(version), GLAD_VERSION_MINOR(version)); + + int exit = 0; + while(!exit) { + SDL_Event event; + while (SDL_PollEvent(&event)) { + switch(event.type) { + case SDL_EVENT_WINDOW_CLOSE_REQUESTED: + /* fallthrough */ + case SDL_EVENT_QUIT: + exit = 1; + break; + case SDL_EVENT_KEY_DOWN: + if (event.key.key == SDLK_ESCAPE) { + exit = 1; + } + break; + default: + break; + } + } + + glClearColor(0.7f, 0.9f, 0.1f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + + SDL_GL_SwapWindow(window); + SDL_Delay(1); + } + + SDL_GL_DestroyContext(context); + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + + return 0; +} diff --git a/example/c/gl_sdl3_callbacks.c b/example/c/gl_sdl3_callbacks.c new file mode 100644 index 00000000..01739f28 --- /dev/null +++ b/example/c/gl_sdl3_callbacks.c @@ -0,0 +1,78 @@ +// gcc $(pkg-config --cflags --libs sdl3) -I${GLAD_PATH}/include gl_sdl3_callbacks.c ${GLAD_PATH}/src/gl.c +// +// Based on https://examples.libsdl.org/SDL3/renderer/01-clear/ +// +#include +#include + +#define SDL_MAIN_USE_CALLBACKS 1 +#include +#include + +static const GLuint WIDTH = 800, HEIGHT = 600; + +static SDL_Window *window; +static SDL_Renderer *renderer; +static SDL_GLContext GLContext; + +SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) +{ + SDL_SetAppMetadata("GLAD SDL3 example", "1.0", "sh.glad.gen.sdl3.callbacks"); + + if (!SDL_Init(SDL_INIT_VIDEO)) { + SDL_Log("Couldn't initialize SDL: %s", SDL_GetError()); + return SDL_APP_FAILURE; + } + + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + + if (!SDL_CreateWindowAndRenderer("[glad] GL with SDL3 callback main", WIDTH, HEIGHT, SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL, &window, &renderer)) { + SDL_Log("Couldn't create window/renderer: %s", SDL_GetError()); + return SDL_APP_FAILURE; + } + + GLContext = SDL_GL_CreateContext(window); + + int version = gladLoadGL((GLADloadfunc) SDL_GL_GetProcAddress); + printf("GL %d.%d\n", GLAD_VERSION_MAJOR(version), GLAD_VERSION_MINOR(version)); + + return SDL_APP_CONTINUE; +} + +SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) +{ + if (event->type == SDL_EVENT_QUIT) { + return SDL_APP_SUCCESS; + } + + if (event->type == SDL_EVENT_KEY_DOWN && event->key.key == SDLK_ESCAPE) { + return SDL_APP_SUCCESS; + } + + return SDL_APP_CONTINUE; +} + +SDL_AppResult SDL_AppIterate(void *appstate) +{ + const double now = ((double)SDL_GetTicks()) / SDL_MS_PER_SECOND; + + const float red = (float) (0.5 + 0.5 * SDL_sin(now)); + const float green = (float) (0.5 + 0.5 * SDL_sin(now + SDL_PI_D * 2 / 3)); + const float blue = (float) (0.5 + 0.5 * SDL_sin(now + SDL_PI_D * 4 / 3)); + + glClearColor(red, green, blue, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + + SDL_GL_SwapWindow(window); + + return SDL_APP_CONTINUE; +} + +void SDL_AppQuit(void *appstate, SDL_AppResult result) +{ + SDL_GL_DestroyContext(GLContext); + /* SDL will clean up the window/renderer for us. */ +} diff --git a/example/c/vulkan_tri_glfw/CMakeLists.txt b/example/c/vulkan_tri_glfw/CMakeLists.txt index a95947a9..58260667 100644 --- a/example/c/vulkan_tri_glfw/CMakeLists.txt +++ b/example/c/vulkan_tri_glfw/CMakeLists.txt @@ -6,12 +6,12 @@ add_subdirectory("${GLAD_SOURCES_DIR}/cmake" glad_cmake) find_package(glfw3 REQUIRED) -glad_add_library(glad_vulkan_11 REPRODUCIBLE LOADER API vulkan=1.1) +glad_add_library(glad_vulkan_12 REPRODUCIBLE LOADER API vulkan=1.2) add_executable(vulkan_tri_glfw vulkan_tri_glfw.c ) target_link_libraries(vulkan_tri_glfw PUBLIC - glad_vulkan_11 + glad_vulkan_12 glfw ) diff --git a/example/c/wgl.c b/example/c/wgl.c index 58370c7e..856cdcce 100644 --- a/example/c/wgl.c +++ b/example/c/wgl.c @@ -158,8 +158,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_QUIT: - case WM_DESTROY: case WM_CLOSE: + DestroyWindow(hWnd); + break; + case WM_DESTROY: PostQuitMessage(0); break; default: diff --git a/example/rust/gl-glfw-mx/Cargo.toml b/example/rust/gl-glfw-mx/Cargo.toml new file mode 100644 index 00000000..202dccc3 --- /dev/null +++ b/example/rust/gl-glfw-mx/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "gl-glfw" +version = "0.1.0" + +[dependencies] +glfw = "0.37.0" +glad-gl = { path = "./build/glad-gl" } + diff --git a/example/rust/gl-glfw-mx/README.md b/example/rust/gl-glfw-mx/README.md new file mode 100644 index 00000000..dda8a069 --- /dev/null +++ b/example/rust/gl-glfw-mx/README.md @@ -0,0 +1,34 @@ +Example: gl-glfw-mx +================ + + +This is basic example showcasing `glad-gl` in combination with +[`glfw`](https://crates.io/crates/glfw). And multiple OpenGL contexts +in different windows. + +To run the example use the following command: + +```sh +./init.sh && cargo run +``` + +The `init.sh` script is just a small utility used to generate +the `glad-gl` crate into the `build/` directory. The `Cargo.toml` +references the dependency using: + +```toml +[dependencies] +glad-gl = { path = "./build/glad-gl" } +``` + +This example is the basic example of the +[glfw crate](https://crates.io/crates/glfw) with some +OpenGL instructions added and just one additional line +to initialize `glad`: + +```rust + gl::load(|e| glfw.get_proc_address_raw(e) as *const std::os::raw::c_void); +``` + +That's all that is needed to initialize and use OpenGL using `glad`! + diff --git a/example/rust/gl-glfw-mx/init.sh b/example/rust/gl-glfw-mx/init.sh new file mode 100755 index 00000000..2fff231d --- /dev/null +++ b/example/rust/gl-glfw-mx/init.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +BASE_PATH="$(dirname $(realpath $0))" + + +cd "${BASE_PATH}/../../../" + +python -m glad --out-path "${BASE_PATH}/build" --extensions="" --api="gl:core=3.3" rust --mx + diff --git a/example/rust/gl-glfw-mx/src/main.rs b/example/rust/gl-glfw-mx/src/main.rs new file mode 100644 index 00000000..53294fd9 --- /dev/null +++ b/example/rust/gl-glfw-mx/src/main.rs @@ -0,0 +1,63 @@ +extern crate glfw; +extern crate glad_gl; +use std::sync::mpsc::Receiver; +use glfw::{Action, Context, Key}; +use glad_gl::gl; + + +struct Window { + source: glfw::Window, + events: Receiver<(f64, glfw::WindowEvent)>, + gl: gl::Gl +} + +fn main() { + let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap(); + + let mut w1 = create_window(&mut glfw); + let mut w2 = create_window(&mut glfw); + + while !w1.source.should_close() && !w2.source.should_close() { + glfw.poll_events(); + + draw(&mut w1); + draw(&mut w2); + } +} + +fn create_window(glfw: &mut glfw::Glfw) -> Window { + let (mut window, events) = glfw + .create_window(300, 300, "[glad] Rust - OpenGL with GLFW", glfw::WindowMode::Windowed) + .expect("Failed to create GLFW window."); + + window.set_key_polling(true); + window.make_current(); + + let gl = gl::load(|e| glfw.get_proc_address_raw(e) as *const std::os::raw::c_void); + + Window { + source: window, events, gl + } +} + +fn draw(window: &mut Window) { + for (_, event) in glfw::flush_messages(&window.events) { + handle_window_event(&mut window.source, event); + } + + window.source.make_current(); + unsafe { + window.gl.ClearColor(0.7, 0.9, 0.1, 1.0); + window.gl.Clear(gl::COLOR_BUFFER_BIT); + } + window.source.swap_buffers(); +} + +fn handle_window_event(window: &mut glfw::Window, event: glfw::WindowEvent) { + match event { + glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) => { + window.set_should_close(true) + } + _ => {} + } +} diff --git a/example/rust/gl-glfw/Cargo.toml b/example/rust/gl-glfw/Cargo.toml index 53bad948..202dccc3 100644 --- a/example/rust/gl-glfw/Cargo.toml +++ b/example/rust/gl-glfw/Cargo.toml @@ -3,6 +3,6 @@ name = "gl-glfw" version = "0.1.0" [dependencies] -glfw = "0.23.0" +glfw = "0.37.0" glad-gl = { path = "./build/glad-gl" } diff --git a/example/rust/gl-glfw/src/main.rs b/example/rust/gl-glfw/src/main.rs index e3edcfdf..c37a279a 100644 --- a/example/rust/gl-glfw/src/main.rs +++ b/example/rust/gl-glfw/src/main.rs @@ -23,7 +23,7 @@ fn main() { unsafe { gl::ClearColor(0.7, 0.9, 0.1, 1.0); - gl::Clear(gl::GL_COLOR_BUFFER_BIT); + gl::Clear(gl::COLOR_BUFFER_BIT); } window.swap_buffers(); diff --git a/glad/__init__.py b/glad/__init__.py index 0101a047..03e716aa 100644 --- a/glad/__init__.py +++ b/glad/__init__.py @@ -1,3 +1,3 @@ -__version__ = '2.0.0-beta' +__version__ = '2.0.8' diff --git a/glad/__main__.py b/glad/__main__.py index 0933fc92..5403809d 100644 --- a/glad/__main__.py +++ b/glad/__main__.py @@ -3,6 +3,9 @@ """ Uses the official Khronos-XML specs to generate a Vulkan/GL/GLES/EGL/GLX/WGL Loader made for your needs. + + +Subcommands have additional help information, query with: `{subcommand} --help` """ from itertools import groupby @@ -10,6 +13,7 @@ import os import glad.files +from glad import __version__ from glad.config import Config, ConfigOption from glad.generator import GenerationInfo from glad.sink import LoggingSink @@ -112,6 +116,8 @@ def main(args=None): description = __doc__ parser = ArgumentParser(description=description) + parser.add_argument('--version', action='version', version=__version__) + global_config = GlobalConfig() global_config.init_parser(parser) diff --git a/glad/files/__init__.py b/glad/files/__init__.py index 90ed017a..fe6216f9 100644 --- a/glad/files/__init__.py +++ b/glad/files/__init__.py @@ -8,13 +8,19 @@ from urllib.parse import urlparse try: - from pkg_resources import resource_exists, resource_stream + from importlib.resources import files + + def resource_open(package, name, *args, **kwargs): + return files(package).joinpath(name).open(*args, **kwargs) except ImportError: - def resource_exists(*args, **kwargs): - return False + try: + from pkg_resources import resource_stream - def resource_stream(*args, **kwargs): - return None + def resource_open(package, name, *args, **kwargs): + return resource_stream(package, name) + except ImportError: + def resource_open(package, name, *args, **kwargs): + raise FileNotFoundError BASE_PATH = os.path.abspath(os.path.dirname(__file__)) @@ -29,12 +35,13 @@ class GladFileException(Exception): def open_local(name, *args, **kwargs): # use pkg_resources when available, makes it work in zipped modules # or other environments - if resource_exists(__name__, name): - logger.info('opening packaged resource: %r', name) - return resource_stream(__name__, name) + try: + return resource_open(__name__, name, *args, **kwargs) + except FileNotFoundError: + pass # fallback to filesystem - logger.info('opening packaged path: %r', name) + logger.info('falling back to packaged path: %r', name) local_path = os.path.normpath(os.path.join(BASE_PATH, os.path.join(name))) if not local_path.startswith(BASE_PATH): raise GladFileException('unsafe file path, won\'t open {!r}'.format(local_path)) diff --git a/glad/files/egl.xml b/glad/files/egl.xml index c271846a..54c75d59 100644 --- a/glad/files/egl.xml +++ b/glad/files/egl.xml @@ -1,27 +1,9 @@ + Copyright 2013-2020 The Khronos Group Inc. + SPDX-License-Identifier: Apache-2.0 + --> @@ -89,7 +74,13 @@ EGLint iHeight; EGLint iStride; }; + typedef void ( *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); + #define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC + #define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC + #define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC + #define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC @@ -468,8 +459,20 @@ - - + + + + + + + + + + + + + + @@ -536,8 +539,23 @@ - - + + + + + + + + + + + + + + + + + @@ -554,9 +572,26 @@ - + - + + + + + + + + + + + + + @@ -617,7 +652,9 @@ - + + + @@ -690,9 +727,13 @@ - + + + - + + + @@ -705,8 +746,23 @@ - - + + + + + + + + + + + + + + + + + @@ -714,8 +770,10 @@ - - + + + + @@ -772,7 +830,9 @@ - + + + @@ -796,14 +856,38 @@ - + + + + + - + + + + + + + + + + + + + + + + + + + + + @@ -833,8 +917,54 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -892,6 +1022,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -1222,9 +1424,24 @@ EGLDisplay eglGetDisplay EGLNativeDisplayType display_id + + char *eglGetDisplayDriverConfig + EGLDisplay dpy + + + const char *eglGetDisplayDriverName + EGLDisplay dpy + EGLint eglGetError + + EGLBoolean eglGetMscRateANGLE + EGLDisplay dpy + EGLSurface surface + EGLint *numerator + EGLint *denominator + EGLClientBuffer eglGetNativeClientBufferANDROID const struct AHardwareBuffer *buffer @@ -1536,6 +1753,15 @@ EGLDisplay dpy EGLint name + + EGLBoolean eglQuerySupportedCompressionRatesEXT + EGLDisplay dpy + EGLConfig config + const EGLAttrib *attrib_list + EGLint *rates + EGLint rate_size + EGLint *num_rates + EGLBoolean eglQuerySurface EGLDisplay dpy @@ -1678,14 +1904,14 @@ EGLBoolean eglSwapBuffersWithDamageEXT EGLDisplay dpy EGLSurface surface - EGLint *rects + const EGLint *rects EGLint n_rects EGLBoolean eglSwapBuffersWithDamageKHR EGLDisplay dpy EGLSurface surface - EGLint *rects + const EGLint *rects EGLint n_rects @@ -1782,6 +2008,70 @@ EGLint external_win_id EGLint policy + + EGLBoolean eglBindWaylandDisplayWL + EGLDisplay dpy + struct wl_display *display + + + EGLBoolean eglUnbindWaylandDisplayWL + EGLDisplay dpy + struct wl_display *display + + + EGLBoolean eglQueryWaylandBufferWL + EGLDisplay dpy + struct wl_resource *buffer + EGLint attribute + EGLint *value + + + struct wl_buffer *eglCreateWaylandBufferFromImageWL + EGLDisplay dpy + EGLImageKHR image + + + EGLBoolean eglStreamImageConsumerConnectNV + EGLDisplay dpy + EGLStreamKHR stream + EGLint num_modifiers + const EGLuint64KHR *modifiers + const EGLAttrib *attrib_list + + + EGLint eglQueryStreamConsumerEventNV + EGLDisplay dpy + EGLStreamKHR stream + EGLTime timeout + EGLenum *event + EGLAttrib *aux + + + EGLBoolean eglStreamAcquireImageNV + EGLDisplay dpy + EGLStreamKHR stream + EGLImage *pImage + EGLSync sync + + + EGLBoolean eglStreamReleaseImageNV + EGLDisplay dpy + EGLStreamKHR stream + EGLImage image + EGLSync sync + + + EGLBoolean eglQueryDeviceBinaryEXT + EGLDeviceEXT device + EGLint name + EGLint max_size + void *value + EGLint *size + + + EGLBoolean eglDestroyDisplayEXT + EGLDisplay dpy + @@ -2126,6 +2416,12 @@ + + + + + + @@ -2147,6 +2443,11 @@ + + + + + @@ -2175,6 +2476,11 @@ + + + + + @@ -2197,6 +2503,7 @@ + @@ -2207,6 +2514,7 @@ + @@ -2219,6 +2527,11 @@ + + + + + @@ -2249,6 +2562,11 @@ + + + + + @@ -2365,6 +2683,17 @@ + + + + + + + + + + + @@ -2375,6 +2704,7 @@ + @@ -2841,6 +3171,12 @@ + + + + + + @@ -2915,6 +3251,11 @@ + + + + + @@ -2955,6 +3296,24 @@ + + + + + + + + + + + + + + + + + + @@ -3072,6 +3431,11 @@ + + + + + @@ -3104,6 +3468,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -3116,5 +3502,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/glad/files/eglplatform.h b/glad/files/eglplatform.h index b0541d52..6786afd9 100644 --- a/glad/files/eglplatform.h +++ b/glad/files/eglplatform.h @@ -2,36 +2,17 @@ #define __eglplatform_h_ /* -** Copyright (c) 2007-2016 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 -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE 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 -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +** Copyright 2007-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 */ /* Platform-specific types and definitions for egl.h - * $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 * they can be included in future versions of this file. Please submit changes - * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) - * by filing a bug against product "EGL" component "Registry". + * by filing an issue or pull request on the public Khronos EGL Registry, at + * https://www.github.com/KhronosGroup/EGL-Registry/ */ #include @@ -67,7 +48,13 @@ * implementations. */ -#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES) + +typedef void *EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 #endif @@ -77,11 +64,23 @@ typedef HDC EGLNativeDisplayType; typedef HBITMAP EGLNativePixmapType; typedef HWND EGLNativeWindowType; +#elif defined(__QNX__) + +typedef khronos_uintptr_t EGLNativeDisplayType; +typedef struct _screen_pixmap* EGLNativePixmapType; /* screen_pixmap_t */ +typedef struct _screen_window* EGLNativeWindowType; /* screen_window_t */ + +#elif defined(__EMSCRIPTEN__) + +typedef int EGLNativeDisplayType; +typedef int EGLNativePixmapType; +typedef int EGLNativeWindowType; + #elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ typedef int EGLNativeDisplayType; -typedef void *EGLNativeWindowType; typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; #elif defined(WL_EGL_PLATFORM) @@ -100,25 +99,17 @@ typedef void *EGLNativeWindowType; struct ANativeWindow; struct egl_native_pixmap_t; -typedef struct ANativeWindow* EGLNativeWindowType; -typedef struct egl_native_pixmap_t* EGLNativePixmapType; typedef void* EGLNativeDisplayType; +typedef struct egl_native_pixmap_t* EGLNativePixmapType; +typedef struct ANativeWindow* EGLNativeWindowType; #elif defined(USE_OZONE) typedef intptr_t EGLNativeDisplayType; -typedef intptr_t EGLNativeWindowType; typedef intptr_t EGLNativePixmapType; +typedef intptr_t EGLNativeWindowType; -#elif defined(__unix__) || defined(__APPLE__) - -#if defined(MESA_EGL_NO_X11_HEADERS) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#else +#elif defined(USE_X11) /* X11 (tentative) */ #include @@ -128,7 +119,17 @@ typedef Display *EGLNativeDisplayType; typedef Pixmap EGLNativePixmapType; typedef Window EGLNativeWindowType; -#endif /* MESA_EGL_NO_X11_HEADERS */ +#elif defined(__unix__) + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#elif defined(__APPLE__) + +typedef int EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; #elif defined(__HAIKU__) @@ -138,6 +139,12 @@ typedef void *EGLNativeDisplayType; typedef khronos_uintptr_t EGLNativePixmapType; typedef khronos_uintptr_t EGLNativeWindowType; +#elif defined(__Fuchsia__) + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + #else #error "Platform not recognized" #endif diff --git a/glad/files/gl.xml b/glad/files/gl.xml index 3628bb28..6297b4ca 100644 --- a/glad/files/gl.xml +++ b/glad/files/gl.xml @@ -1,3550 +1,108 @@ -Copyright (c) 2013-2018 The Khronos Group Inc. +Copyright 2013-2020 The Khronos Group Inc. +SPDX-License-Identifier: Apache-2.0 -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - ------------------------------------------------------------------------- - -This file, gl.xml, is the OpenGL and OpenGL API Registry. The canonical -version of the registry, together with documentation, schema, and Python -generator scripts used to generate C header files for OpenGL and OpenGL ES, -can always be found in the Khronos Registry at - https://github.com/KhronosGroup/OpenGL-Registry - - - - - - #include <stddef.h> - #include <KHR/khrplatform.h> - #ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include <inttypes.h> -#elif defined(__sun__) || defined(__digital__) -#include <inttypes.h> -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include <inttypes.h> -#elif defined(__SCO__) || defined(__USLC__) -#include <stdint.h> -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include <stdint.h> -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include <inttypes.h> -#endif -#endif - - typedef unsigned int GLenum; - typedef unsigned char GLboolean; - typedef unsigned int GLbitfield; - typedef void GLvoid; - typedef signed char GLbyte; - typedef short GLshort; - typedef int GLint; - typedef int GLclampx; - typedef unsigned char GLubyte; - typedef unsigned short GLushort; - typedef unsigned int GLuint; - typedef int GLsizei; - typedef float GLfloat; - typedef float GLclampf; - typedef double GLdouble; - typedef double GLclampd; - typedef void *GLeglClientBufferEXT; - typedef void *GLeglImageOES; - typedef char GLchar; - typedef char GLcharARB; - #ifdef __APPLE__ -typedef void *GLhandleARB; -#else -typedef unsigned int GLhandleARB; -#endif - typedef unsigned short GLhalfARB; - typedef unsigned short GLhalf; - typedef GLint GLfixed; - typedef khronos_intptr_t GLintptr; - typedef khronos_ssize_t GLsizeiptr; - typedef int64_t GLint64; - typedef uint64_t GLuint64; - typedef ptrdiff_t GLintptrARB; - typedef ptrdiff_t GLsizeiptrARB; - typedef int64_t GLint64EXT; - typedef uint64_t GLuint64EXT; - typedef struct __GLsync *GLsync; - struct _cl_context; - struct _cl_event; - typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); - typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); - typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); - - typedef khronos_int32_t GLclampx; - - typedef khronos_int8_t GLbyte; - typedef khronos_uint8_t GLubyte; - typedef khronos_float_t GLfloat; - typedef khronos_float_t GLclampf; - typedef khronos_int32_t GLfixed; - typedef khronos_int64_t GLint64; - typedef khronos_uint64_t GLuint64; - typedef khronos_intptr_t GLintptr; - typedef khronos_ssize_t GLsizeiptr; - - typedef khronos_int8_t GLbyte; - typedef khronos_uint8_t GLubyte; - typedef khronos_float_t GLfloat; - typedef khronos_float_t GLclampf; - typedef khronos_int32_t GLfixed; - typedef khronos_int64_t GLint64; - typedef khronos_uint64_t GLuint64; - typedef khronos_int64_t GLint64EXT; - typedef khronos_uint64_t GLuint64EXT; - typedef khronos_intptr_t GLintptr; - typedef khronos_ssize_t GLsizeiptr; - - - typedef khronos_uint8_t GLubyte; - typedef khronos_float_t GLfloat; - typedef khronos_intptr_t GLintptr; - typedef khronos_ssize_t GLsizeiptr; - - typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); - typedef unsigned short GLhalfNV; - typedef GLintptr GLvdpauSurfaceNV; - typedef void ( *GLVULKANPROCNV)(void); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +This file, gl.xml, is the OpenGL and OpenGL API Registry. The canonical +version of the registry, together with documentation, schema, and Python +generator scripts used to generate C header files for OpenGL and OpenGL ES, +can always be found in the Khronos Registry at +https://github.com/KhronosGroup/OpenGL-Registry + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + #include <KHR/khrplatform.h> + + typedef unsigned int GLenum; + typedef unsigned char GLboolean; + typedef unsigned int GLbitfield; + typedef void GLvoid; + typedef khronos_int8_t GLbyte; + typedef khronos_uint8_t GLubyte; + typedef khronos_int16_t GLshort; + typedef khronos_uint16_t GLushort; + typedef int GLint; + typedef unsigned int GLuint; + typedef khronos_int32_t GLclampx; + typedef int GLsizei; + typedef khronos_float_t GLfloat; + typedef khronos_float_t GLclampf; + typedef double GLdouble; + typedef double GLclampd; + typedef void *GLeglClientBufferEXT; + typedef void *GLeglImageOES; + typedef char GLchar; + typedef char GLcharARB; + #ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif + typedef khronos_uint16_t GLhalf; + typedef khronos_uint16_t GLhalfARB; + typedef khronos_int32_t GLfixed; + typedef khronos_intptr_t GLintptr; + typedef khronos_intptr_t GLintptrARB; + typedef khronos_ssize_t GLsizeiptr; + typedef khronos_ssize_t GLsizeiptrARB; + typedef khronos_int64_t GLint64; + typedef khronos_int64_t GLint64EXT; + typedef khronos_uint64_t GLuint64; + typedef khronos_uint64_t GLuint64EXT; + typedef struct __GLsync *GLsync; + struct _cl_context; + struct _cl_event; + typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); - - - - - + + typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); + typedef unsigned short GLhalfNV; + typedef GLintptr GLvdpauSurfaceNV; + typedef void ( *GLVULKANPROCNV)(void); + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3552,294 +110,312 @@ typedef unsigned int GLhandleARB; sometimes reused for other purposes --> - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - + - - - + + + - - - - - - - - + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - + + + + + + + - - - + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - + + @@ -3847,96 +423,96 @@ typedef unsigned int GLhandleARB; used for indexed access. --> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - + + + + - + - - - - + + + + - - - - - + + + + + - - - - - - - - + + + + + + + + - - + + - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - + - + - - - - - - - + + + + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - + - + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - - - - - + + + + + - + - + - + - - + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - + - + - + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + @@ -4603,410 +1182,410 @@ typedef unsigned int GLhandleARB; - - + + - + - + - + - - - - + + + + - - - - - - - - + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - - + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + - - - - - + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -5016,156 +1595,156 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -5175,21 +1754,21 @@ typedef unsigned int GLhandleARB; - + - - - - - - - - - - + + + + + + + + + + - + @@ -5202,55 +1781,54 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - + + + + + + @@ -5259,23 +1837,23 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - + + + + + + + + + + + + - - + + @@ -5290,8 +1868,8 @@ typedef unsigned int GLhandleARB; - - + + @@ -5349,21 +1927,21 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -5373,138 +1951,138 @@ typedef unsigned int GLhandleARB; - + - - - - - - - - - - + + + + + + + + + + - + - - - - - - + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5512,28 +2090,28 @@ typedef unsigned int GLhandleARB; - - + + - + - + - + - + - + - + - + @@ -5545,99 +2123,99 @@ typedef unsigned int GLhandleARB; - - - - - - + + + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + @@ -5667,13 +2245,13 @@ typedef unsigned int GLhandleARB; - - - - - - - + + + + + + + @@ -5687,37 +2265,37 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + - + - + - + - + - + @@ -5753,7 +2331,7 @@ typedef unsigned int GLhandleARB; - + @@ -5764,9 +2342,9 @@ typedef unsigned int GLhandleARB; - - - + + + @@ -5774,22 +2352,22 @@ typedef unsigned int GLhandleARB; - + - - - + + + - - - - + + + + @@ -5809,21 +2387,21 @@ typedef unsigned int GLhandleARB; - - + + - - - + + + - - - + + + @@ -5831,31 +2409,31 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5872,10 +2450,10 @@ typedef unsigned int GLhandleARB; conflicts. They have never reported using any values in this range. Lesson: assigned ranges belong to vendors, not engineers! --> - - - - + + + + @@ -5918,61 +2496,61 @@ typedef unsigned int GLhandleARB; - - + + - - - - - - + + + + + + - - - + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + - - + + @@ -6015,18 +2593,18 @@ typedef unsigned int GLhandleARB; - - - + + + - - - - - - + + + + + + @@ -6072,8 +2650,8 @@ typedef unsigned int GLhandleARB; - - + + @@ -6092,71 +2670,71 @@ typedef unsigned int GLhandleARB; - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6174,7 +2752,7 @@ typedef unsigned int GLhandleARB; - + @@ -6185,60 +2763,60 @@ typedef unsigned int GLhandleARB; - + - + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + - + - + - + - + @@ -6250,99 +2828,99 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -6354,14 +2932,14 @@ typedef unsigned int GLhandleARB; - - - - - - - - + + + + + + + + @@ -6385,95 +2963,95 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + @@ -6484,17 +3062,17 @@ typedef unsigned int GLhandleARB; - + - + - - + + @@ -6506,10 +3084,10 @@ typedef unsigned int GLhandleARB; - + - - + + @@ -6577,26 +3155,26 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + @@ -6631,16 +3209,16 @@ typedef unsigned int GLhandleARB; - + - + - - + + @@ -6651,8 +3229,9 @@ typedef unsigned int GLhandleARB; - + + @@ -6711,11 +3290,11 @@ typedef unsigned int GLhandleARB; - + - + - + @@ -6750,11 +3329,11 @@ typedef unsigned int GLhandleARB; - - - - - + + + + + @@ -6890,7 +3469,7 @@ typedef unsigned int GLhandleARB; - + @@ -6904,12 +3483,12 @@ typedef unsigned int GLhandleARB; - + - + @@ -6931,35 +3510,35 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + @@ -6967,30 +3546,30 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -7027,13 +3606,13 @@ typedef unsigned int GLhandleARB; - - - - - - - + + + + + + + @@ -7050,26 +3629,26 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -7078,9 +3657,9 @@ typedef unsigned int GLhandleARB; - - - + + + @@ -7090,19 +3669,19 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + @@ -7116,14 +3695,14 @@ typedef unsigned int GLhandleARB; - - - + + + - - - + + + @@ -7141,14 +3720,14 @@ typedef unsigned int GLhandleARB; - - - + + + - - - + + + @@ -7171,7 +3750,7 @@ typedef unsigned int GLhandleARB; - + @@ -7260,7 +3839,7 @@ typedef unsigned int GLhandleARB; - + @@ -7290,18 +3869,18 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + @@ -7322,35 +3901,35 @@ typedef unsigned int GLhandleARB; - + - + - + - + - - + + - - + + - + - + @@ -7365,17 +3944,17 @@ typedef unsigned int GLhandleARB; - + - + - - + + @@ -7402,13 +3981,13 @@ typedef unsigned int GLhandleARB; - + - + - + - + @@ -7430,7 +4009,7 @@ typedef unsigned int GLhandleARB; - + @@ -7456,24 +4035,24 @@ typedef unsigned int GLhandleARB; - + - + - + - - + + - - + + - - + + - + @@ -7507,46 +4086,46 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -7556,28 +4135,28 @@ typedef unsigned int GLhandleARB; - + - + - + - + - - + + - + - + - + - + @@ -7588,109 +4167,109 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7699,10 +4278,10 @@ typedef unsigned int GLhandleARB; - - - - + + + + @@ -7713,8 +4292,8 @@ typedef unsigned int GLhandleARB; - - + + @@ -7746,15 +4325,15 @@ typedef unsigned int GLhandleARB; - - + + - + @@ -7769,41 +4348,41 @@ typedef unsigned int GLhandleARB; - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -7830,128 +4409,128 @@ typedef unsigned int GLhandleARB; - - - - + + + + - - + + - + - + - - + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -7967,9 +4546,9 @@ typedef unsigned int GLhandleARB; - + - + @@ -7993,7 +4572,9 @@ typedef unsigned int GLhandleARB; - + + + @@ -8038,7 +4619,7 @@ typedef unsigned int GLhandleARB; - + @@ -8060,38 +4641,38 @@ typedef unsigned int GLhandleARB; - + - - - + + + - - - + + + - + - + - + - + - + - + @@ -8101,40 +4682,40 @@ typedef unsigned int GLhandleARB; - + - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + @@ -8147,22 +4728,22 @@ typedef unsigned int GLhandleARB; - + - + - - - - - - - - + + + + + + + + @@ -8170,7 +4751,7 @@ typedef unsigned int GLhandleARB; - + @@ -8180,7 +4761,7 @@ typedef unsigned int GLhandleARB; - + @@ -8188,24 +4769,24 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + @@ -8214,36 +4795,39 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + + - + + + - + - + - - - - + + + + @@ -8252,33 +4836,33 @@ typedef unsigned int GLhandleARB; - + - + - + - + - - - - - - - - + + + + + + + + @@ -8287,29 +4871,29 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + @@ -8319,140 +4903,140 @@ typedef unsigned int GLhandleARB; - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -8466,93 +5050,93 @@ typedef unsigned int GLhandleARB; - + - - + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -8560,11 +5144,11 @@ typedef unsigned int GLhandleARB; - - - - - + + + + + @@ -8572,80 +5156,80 @@ typedef unsigned int GLhandleARB; - - - - + + + + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8659,7 +5243,7 @@ typedef unsigned int GLhandleARB; - + @@ -8674,8 +5258,8 @@ typedef unsigned int GLhandleARB; - - + + @@ -8687,39 +5271,39 @@ typedef unsigned int GLhandleARB; - - - - - - + + + + + + - - - - - - + + + + + + - + - + - + - + - + - - - - + + + + @@ -8731,21 +5315,21 @@ typedef unsigned int GLhandleARB; - + - + - + - - + + @@ -8754,36 +5338,36 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + @@ -8793,7 +5377,7 @@ typedef unsigned int GLhandleARB; - + @@ -8814,15 +5398,30 @@ typedef unsigned int GLhandleARB; - + + + + + + + + + + + + + + + + - + - + - + @@ -8878,31 +5477,31 @@ typedef unsigned int GLhandleARB; - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -8910,7 +5509,11 @@ typedef unsigned int GLhandleARB; - + + + + + @@ -8963,10 +5566,10 @@ typedef unsigned int GLhandleARB; - + - + @@ -8984,30 +5587,30 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + - + - + - + @@ -9017,17 +5620,20 @@ typedef unsigned int GLhandleARB; - + - - + + - + + + + @@ -9043,41 +5649,42 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - + + + - - + + - + @@ -9089,11 +5696,11 @@ typedef unsigned int GLhandleARB; - + - + - + @@ -9103,21 +5710,21 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + @@ -9131,29 +5738,29 @@ typedef unsigned int GLhandleARB; - - - - + + + + - - - + + + - + - + - + @@ -9213,152 +5820,152 @@ typedef unsigned int GLhandleARB; - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + - + - + - + - - - - - - - - - + + + + + + + + + - - + + - - - + + + - + @@ -9366,12 +5973,12 @@ typedef unsigned int GLhandleARB; - + - + @@ -9388,36 +5995,36 @@ typedef unsigned int GLhandleARB; - - - - - - + + + + + + - + - + - - - - + + + + - + - - + + - - - - + + + + @@ -9425,72 +6032,72 @@ typedef unsigned int GLhandleARB; - + - - - + + + - - - + + + - - - - + + + + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - - + + @@ -9506,7 +6113,7 @@ typedef unsigned int GLhandleARB; - + @@ -9518,7 +6125,7 @@ typedef unsigned int GLhandleARB; - + @@ -9535,15 +6142,15 @@ typedef unsigned int GLhandleARB; - + - + - + @@ -9566,11 +6173,11 @@ typedef unsigned int GLhandleARB; - + - + @@ -9598,7 +6205,7 @@ typedef unsigned int GLhandleARB; - + @@ -9622,20 +6229,20 @@ typedef unsigned int GLhandleARB; - + - + - - + + - - + + @@ -9656,11 +6263,16 @@ typedef unsigned int GLhandleARB; - + + + + + + - + @@ -9668,31 +6280,31 @@ typedef unsigned int GLhandleARB; - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -9789,18 +6401,18 @@ typedef unsigned int GLhandleARB; - - + + - - - - - - - - + + + + + + + + @@ -9813,97 +6425,97 @@ typedef unsigned int GLhandleARB; - - + + - + - + - - + + - - + + - - + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + - - - + + + - - - - - + + + + + - + @@ -9931,7 +6543,7 @@ typedef unsigned int GLhandleARB; - + @@ -9943,9 +6555,9 @@ typedef unsigned int GLhandleARB; - - - + + + @@ -9965,12 +6577,12 @@ typedef unsigned int GLhandleARB; - + - + - + @@ -9995,16 +6607,45 @@ typedef unsigned int GLhandleARB; - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10019,85 +6660,85 @@ typedef unsigned int GLhandleARB; - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + @@ -10132,62 +6773,114 @@ typedef unsigned int GLhandleARB; - - - + + + + + + + + + + + + + + + + - + - + + - + - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10198,13 +6891,22 @@ typedef unsigned int GLhandleARB; - + + + + + + + + + + - + - + @@ -10226,10 +6928,103 @@ typedef unsigned int GLhandleARB; - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -10278,30 +7073,30 @@ typedef unsigned int GLhandleARB; - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -10311,7 +7106,7 @@ typedef unsigned int GLhandleARB; void glAccum GLenum op - GLfloat value + GLfloat value @@ -10321,21 +7116,21 @@ typedef unsigned int GLhandleARB; void glActiveProgramEXT - GLuint program + GLuint program void glActiveShaderProgram - GLuint pipeline - GLuint program + GLuint pipeline + GLuint program void glActiveShaderProgramEXT - GLuint pipeline - GLuint program + GLuint pipeline + GLuint program void glActiveStencilFaceEXT - GLenum face + GLenum face @@ -10351,44 +7146,44 @@ typedef unsigned int GLhandleARB; void glActiveVaryingNV - GLuint program + GLuint program const GLchar *name void glAlphaFragmentOp1ATI - GLenum op - GLuint dst - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod + GLenum op + GLuint dst + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod void glAlphaFragmentOp2ATI - GLenum op - GLuint dst - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod - GLuint arg2 - GLuint arg2Rep - GLuint arg2Mod + GLenum op + GLuint dst + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod + GLuint arg2 + GLuint arg2Rep + GLuint arg2Mod void glAlphaFragmentOp3ATI - GLenum op - GLuint dst - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod - GLuint arg2 - GLuint arg2Rep - GLuint arg2Mod - GLuint arg3 - GLuint arg3Rep - GLuint arg3Mod + GLenum op + GLuint dst + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod + GLuint arg2 + GLuint arg2Rep + GLuint arg2Mod + GLuint arg3 + GLuint arg3Rep + GLuint arg3Mod void glAlphaFunc @@ -10409,7 +7204,7 @@ typedef unsigned int GLhandleARB; void glAlphaFuncxOES GLenum func - GLfixed ref + GLfixed ref void glAlphaToCoverageDitherControlNV @@ -10429,24 +7224,24 @@ typedef unsigned int GLhandleARB; GLuint timeout - GLboolean glAreProgramsResidentNV + GLboolean glAreProgramsResidentNV GLsizei n - const GLuint *programs - GLboolean *residences + const GLuint *programs + GLboolean *residences - GLboolean glAreTexturesResident + GLboolean glAreTexturesResident GLsizei n - const GLuint *textures - GLboolean *residences + const GLuint *textures + GLboolean *residences - GLboolean glAreTexturesResidentEXT + GLboolean glAreTexturesResidentEXT GLsizei n - const GLuint *textures - GLboolean *residences + const GLuint *textures + GLboolean *residences @@ -10464,23 +7259,65 @@ typedef unsigned int GLhandleARB; GLint size GLenum type GLsizei stride - GLuint buffer + GLuint buffer GLuint offset + + GLuint glAsyncCopyBufferSubDataNVX + GLsizei waitSemaphoreCount + const GLuint *waitSemaphoreArray + const GLuint64 *fenceValueArray + GLuint readGpu + GLbitfield writeGpuMask + GLuint readBuffer + GLuint writeBuffer + GLintptr readOffset + GLintptr writeOffset + GLsizeiptr size + GLsizei signalSemaphoreCount + const GLuint *signalSemaphoreArray + const GLuint64 *signalValueArray + + + GLuint glAsyncCopyImageSubDataNVX + GLsizei waitSemaphoreCount + const GLuint *waitSemaphoreArray + const GLuint64 *waitValueArray + GLuint srcGpu + GLbitfield dstGpuMask + GLuint srcName + GLenum srcTarget + GLint srcLevel + GLint srcX + GLint srcY + GLint srcZ + GLuint dstName + GLenum dstTarget + GLint dstLevel + GLint dstX + GLint dstY + GLint dstZ + GLsizei srcWidth + GLsizei srcHeight + GLsizei srcDepth + GLsizei signalSemaphoreCount + const GLuint *signalSemaphoreArray + const GLuint64 *signalValueArray + void glAsyncMarkerSGIX GLuint marker void glAttachObjectARB - GLhandleARB containerObj - GLhandleARB obj + GLhandleARB containerObj + GLhandleARB obj void glAttachShader - GLuint program - GLuint shader + GLuint program + GLuint shader void glBegin @@ -10490,12 +7327,12 @@ typedef unsigned int GLhandleARB; void glBeginConditionalRender GLuint id - GLenum mode + GLenum mode void glBeginConditionalRenderNV GLuint id - GLenum mode + GLenum mode @@ -10516,30 +7353,30 @@ typedef unsigned int GLhandleARB; void glBeginPerfQueryINTEL - GLuint queryHandle + GLuint queryHandle void glBeginQuery GLenum target - GLuint id + GLuint id void glBeginQueryARB - GLenum target - GLuint id + GLenum target + GLuint id void glBeginQueryEXT GLenum target - GLuint id + GLuint id void glBeginQueryIndexed GLenum target GLuint index - GLuint id + GLuint id void glBeginTransformFeedback @@ -10565,13 +7402,13 @@ typedef unsigned int GLhandleARB; void glBindAttribLocation - GLuint program + GLuint program GLuint index const GLchar *name void glBindAttribLocationARB - GLhandleARB programObj + GLhandleARB programObj GLuint index const GLcharARB *name @@ -10579,75 +7416,75 @@ typedef unsigned int GLhandleARB; void glBindBuffer GLenum target - GLuint buffer + GLuint buffer void glBindBufferARB GLenum target - GLuint buffer + GLuint buffer void glBindBufferBase GLenum target GLuint index - GLuint buffer + GLuint buffer void glBindBufferBaseEXT GLenum target GLuint index - GLuint buffer + GLuint buffer void glBindBufferBaseNV GLenum target GLuint index - GLuint buffer + GLuint buffer void glBindBufferOffsetEXT GLenum target GLuint index - GLuint buffer - GLintptr offset + GLuint buffer + GLintptr offset void glBindBufferOffsetNV GLenum target GLuint index - GLuint buffer - GLintptr offset + GLuint buffer + GLintptr offset void glBindBufferRange GLenum target GLuint index - GLuint buffer - GLintptr offset - GLsizeiptr size + GLuint buffer + GLintptr offset + GLsizeiptr size void glBindBufferRangeEXT GLenum target GLuint index - GLuint buffer - GLintptr offset - GLsizeiptr size + GLuint buffer + GLintptr offset + GLsizeiptr size void glBindBufferRangeNV GLenum target GLuint index - GLuint buffer - GLintptr offset - GLsizeiptr size + GLuint buffer + GLintptr offset + GLsizeiptr size @@ -10655,40 +7492,40 @@ typedef unsigned int GLhandleARB; GLenum target GLuint first GLsizei count - const GLuint *buffers + const GLuint *buffers void glBindBuffersRange GLenum target GLuint first GLsizei count - const GLuint *buffers + const GLuint *buffers const GLintptr *offsets const GLsizeiptr *sizes void glBindFragDataLocation - GLuint program + GLuint program GLuint color const GLchar *name void glBindFragDataLocationEXT - GLuint program + GLuint program GLuint color const GLchar *name void glBindFragDataLocationIndexed - GLuint program + GLuint program GLuint colorNumber GLuint index const GLchar *name void glBindFragDataLocationIndexedEXT - GLuint program + GLuint program GLuint colorNumber GLuint index const GLchar *name @@ -10701,26 +7538,26 @@ typedef unsigned int GLhandleARB; void glBindFramebuffer GLenum target - GLuint framebuffer + GLuint framebuffer void glBindFramebufferEXT GLenum target - GLuint framebuffer + GLuint framebuffer void glBindFramebufferOES GLenum target - GLuint framebuffer + GLuint framebuffer void glBindImageTexture GLuint unit - GLuint texture + GLuint texture GLint level - GLboolean layered + GLboolean layered GLint layer GLenum access GLenum format @@ -10728,9 +7565,9 @@ typedef unsigned int GLhandleARB; void glBindImageTextureEXT GLuint index - GLuint texture + GLuint texture GLint level - GLboolean layered + GLboolean layered GLint layer GLenum access GLint format @@ -10739,7 +7576,7 @@ typedef unsigned int GLhandleARB; void glBindImageTextures GLuint first GLsizei count - const GLuint *textures + const GLuint *textures GLuint glBindLightParameterEXT @@ -10748,14 +7585,14 @@ typedef unsigned int GLhandleARB; GLuint glBindMaterialParameterEXT - GLenum face + GLenum face GLenum value void glBindMultiTextureEXT GLenum texunit GLenum target - GLuint texture + GLuint texture GLuint glBindParameterEXT @@ -10763,52 +7600,56 @@ typedef unsigned int GLhandleARB; void glBindProgramARB - GLenum target - GLuint program + GLenum target + GLuint program void glBindProgramNV GLenum target - GLuint id + GLuint id void glBindProgramPipeline - GLuint pipeline + GLuint pipeline void glBindProgramPipelineEXT - GLuint pipeline + GLuint pipeline void glBindRenderbuffer GLenum target - GLuint renderbuffer + GLuint renderbuffer void glBindRenderbufferEXT GLenum target - GLuint renderbuffer + GLuint renderbuffer void glBindRenderbufferOES GLenum target - GLuint renderbuffer + GLuint renderbuffer void glBindSampler GLuint unit - GLuint sampler + GLuint sampler void glBindSamplers GLuint first GLsizei count - const GLuint *samplers + const GLuint *samplers + + + void glBindShadingRateImageNV + GLuint texture GLuint glBindTexGenParameterEXT @@ -10819,20 +7660,20 @@ typedef unsigned int GLhandleARB; void glBindTexture GLenum target - GLuint texture + GLuint texture void glBindTextureEXT GLenum target - GLuint texture + GLuint texture void glBindTextureUnit GLuint unit - GLuint texture + GLuint texture GLuint glBindTextureUnitParameterEXT @@ -10843,44 +7684,44 @@ typedef unsigned int GLhandleARB; void glBindTextures GLuint first GLsizei count - const GLuint *textures + const GLuint *textures void glBindTransformFeedback GLenum target - GLuint id + GLuint id void glBindTransformFeedbackNV GLenum target - GLuint id + GLuint id void glBindVertexArray - GLuint array + GLuint array void glBindVertexArrayAPPLE - GLuint array + GLuint array void glBindVertexArrayOES - GLuint array + GLuint array void glBindVertexBuffer GLuint bindingindex - GLuint buffer - GLintptr offset + GLuint buffer + GLintptr offset GLsizei stride void glBindVertexBuffers GLuint first GLsizei count - const GLuint *buffers + const GLuint *buffers const GLintptr *offsets const GLsizei *strides @@ -10893,7 +7734,7 @@ typedef unsigned int GLhandleARB; GLuint video_capture_slot GLuint stream GLenum frame_region - GLintptrARB offset + GLintptrARB offset void glBindVideoCaptureStreamTextureNV @@ -10901,7 +7742,7 @@ typedef unsigned int GLhandleARB; GLuint stream GLenum frame_region GLenum target - GLuint texture + GLuint texture void glBinormal3bEXT @@ -10916,25 +7757,25 @@ typedef unsigned int GLhandleARB; void glBinormal3dEXT - GLdouble bx - GLdouble by - GLdouble bz + GLdouble bx + GLdouble by + GLdouble bz void glBinormal3dvEXT - const GLdouble *v + const GLdouble *v void glBinormal3fEXT - GLfloat bx - GLfloat by - GLfloat bz + GLfloat bx + GLfloat by + GLfloat bz void glBinormal3fvEXT - const GLfloat *v + const GLfloat *v void glBinormal3iEXT @@ -10968,10 +7809,10 @@ typedef unsigned int GLhandleARB; void glBitmap GLsizei width GLsizei height - GLfloat xorig - GLfloat yorig - GLfloat xmove - GLfloat ymove + GLfloat xorig + GLfloat yorig + GLfloat xmove + GLfloat ymove const GLubyte *bitmap @@ -10999,27 +7840,27 @@ typedef unsigned int GLhandleARB; void glBlendColor - GLfloat red - GLfloat green - GLfloat blue - GLfloat alpha + GLfloat red + GLfloat green + GLfloat blue + GLfloat alpha void glBlendColorEXT - GLfloat red - GLfloat green - GLfloat blue - GLfloat alpha + GLfloat red + GLfloat green + GLfloat blue + GLfloat alpha void glBlendColorxOES - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glBlendEquation @@ -11281,6 +8122,34 @@ typedef unsigned int GLhandleARB; + + void glBlitFramebufferLayerEXT + GLint srcX0 + GLint srcY0 + GLint srcX1 + GLint srcY1 + GLint srcLayer + GLint dstX0 + GLint dstY0 + GLint dstX1 + GLint dstY1 + GLint dstLayer + GLbitfield mask + GLenum filter + + + void glBlitFramebufferLayersEXT + GLint srcX0 + GLint srcY0 + GLint srcX1 + GLint srcY1 + GLint dstX0 + GLint dstY0 + GLint dstX1 + GLint dstY1 + GLbitfield mask + GLenum filter + void glBlitFramebufferNV GLint srcX0 @@ -11297,8 +8166,8 @@ typedef unsigned int GLhandleARB; void glBlitNamedFramebuffer - GLuint readFramebuffer - GLuint drawFramebuffer + GLuint readFramebuffer + GLuint drawFramebuffer GLint srcX0 GLint srcY0 GLint srcX1 @@ -11315,7 +8184,7 @@ typedef unsigned int GLhandleARB; GLenum pname GLuint index GLuint64EXT address - GLsizeiptr length + GLsizeiptr length void glBufferAttachMemoryNV @@ -11326,14 +8195,14 @@ typedef unsigned int GLhandleARB; void glBufferData GLenum target - GLsizeiptr size + GLsizeiptr size const void *data GLenum usage void glBufferDataARB GLenum target - GLsizeiptrARB size + GLsizeiptrARB size const void *data GLenum usage @@ -11345,6 +8214,15 @@ typedef unsigned int GLhandleARB; GLsizeiptr size GLboolean commit + + void glBufferPageCommitmentMemNV + GLenum target + GLintptr offset + GLsizeiptr size + GLuint memory + GLuint64 memOffset + GLboolean commit + void glBufferParameteriAPPLE GLenum target @@ -11356,14 +8234,14 @@ typedef unsigned int GLhandleARB; GLenum target GLsizeiptr size const void *data - GLbitfield flags + GLbitfield flags void glBufferStorageEXT GLenum target GLsizeiptr size const void *data - GLbitfield flags + GLbitfield flags @@ -11372,27 +8250,27 @@ typedef unsigned int GLhandleARB; GLintptr offset GLsizeiptr size GLeglClientBufferEXT clientBuffer - GLbitfield flags + GLbitfield flags void glBufferStorageMemEXT GLenum target - GLsizeiptr size + GLsizeiptr size GLuint memory GLuint64 offset void glBufferSubData GLenum target - GLintptr offset - GLsizeiptr size + GLintptr offset + GLsizeiptr size const void *data void glBufferSubDataARB GLenum target - GLintptrARB offset - GLsizeiptrARB size + GLintptrARB offset + GLsizeiptrARB size const void *data @@ -11402,7 +8280,7 @@ typedef unsigned int GLhandleARB; void glCallList - GLuint list + GLuint list @@ -11429,12 +8307,12 @@ typedef unsigned int GLhandleARB; GLenum glCheckNamedFramebufferStatus - GLuint framebuffer + GLuint framebuffer GLenum target GLenum glCheckNamedFramebufferStatusEXT - GLuint framebuffer + GLuint framebuffer GLenum target @@ -11457,33 +8335,33 @@ typedef unsigned int GLhandleARB; void glClearAccum - GLfloat red - GLfloat green - GLfloat blue - GLfloat alpha + GLfloat red + GLfloat green + GLfloat blue + GLfloat alpha void glClearAccumxOES - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glClearBufferData GLenum target - GLenum internalformat + GLenum internalformat GLenum format GLenum type const void *data void glClearBufferSubData - GLenum target - GLenum internalformat - GLintptr offset - GLsizeiptr size + GLenum target + GLenum internalformat + GLintptr offset + GLsizeiptr size GLenum format GLenum type const void *data @@ -11491,7 +8369,7 @@ typedef unsigned int GLhandleARB; void glClearBufferfi GLenum buffer - GLint drawbuffer + GLint drawbuffer GLfloat depth GLint stencil @@ -11499,65 +8377,65 @@ typedef unsigned int GLhandleARB; void glClearBufferfv GLenum buffer - GLint drawbuffer + GLint drawbuffer const GLfloat *value void glClearBufferiv GLenum buffer - GLint drawbuffer + GLint drawbuffer const GLint *value void glClearBufferuiv GLenum buffer - GLint drawbuffer + GLint drawbuffer const GLuint *value void glClearColor - GLfloat red - GLfloat green - GLfloat blue - GLfloat alpha + GLfloat red + GLfloat green + GLfloat blue + GLfloat alpha void glClearColorIiEXT - GLint red - GLint green - GLint blue - GLint alpha + GLint red + GLint green + GLint blue + GLint alpha void glClearColorIuiEXT - GLuint red - GLuint green - GLuint blue - GLuint alpha + GLuint red + GLuint green + GLuint blue + GLuint alpha void glClearColorx - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glClearColorxOES - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glClearDepth - GLdouble depth + GLdouble depth @@ -11567,91 +8445,91 @@ typedef unsigned int GLhandleARB; void glClearDepthf - GLfloat d + GLfloat d void glClearDepthfOES - GLclampf depth + GLclampf depth void glClearDepthx - GLfixed depth + GLfixed depth void glClearDepthxOES - GLfixed depth + GLfixed depth void glClearIndex - GLfloat c + GLfloat c void glClearNamedBufferData - GLuint buffer - GLenum internalformat + GLuint buffer + GLenum internalformat GLenum format GLenum type - const void *data + const void *data void glClearNamedBufferDataEXT - GLuint buffer - GLenum internalformat + GLuint buffer + GLenum internalformat GLenum format GLenum type const void *data void glClearNamedBufferSubData - GLuint buffer - GLenum internalformat - GLintptr offset - GLsizeiptr size + GLuint buffer + GLenum internalformat + GLintptr offset + GLsizeiptr size GLenum format GLenum type - const void *data + const void *data void glClearNamedBufferSubDataEXT - GLuint buffer - GLenum internalformat - GLsizeiptr offset - GLsizeiptr size + GLuint buffer + GLenum internalformat + GLsizeiptr offset + GLsizeiptr size GLenum format GLenum type const void *data void glClearNamedFramebufferfi - GLuint framebuffer + GLuint framebuffer GLenum buffer - GLint drawbuffer + GLint drawbuffer GLfloat depth - GLint stencil + GLint stencil void glClearNamedFramebufferfv - GLuint framebuffer + GLuint framebuffer GLenum buffer - GLint drawbuffer - const GLfloat *value + GLint drawbuffer + const GLfloat *value void glClearNamedFramebufferiv - GLuint framebuffer + GLuint framebuffer GLenum buffer - GLint drawbuffer - const GLint *value + GLint drawbuffer + const GLint *value void glClearNamedFramebufferuiv - GLuint framebuffer + GLuint framebuffer GLenum buffer - GLint drawbuffer - const GLuint *value + GLint drawbuffer + const GLuint *value void glClearPixelLocalStorageuiEXT @@ -11661,12 +8539,12 @@ typedef unsigned int GLhandleARB; void glClearStencil - GLint s + GLint s void glClearTexImage - GLuint texture + GLuint texture GLint level GLenum format GLenum type @@ -11674,7 +8552,7 @@ typedef unsigned int GLhandleARB; void glClearTexImageEXT - GLuint texture + GLuint texture GLint level GLenum format GLenum type @@ -11683,7 +8561,7 @@ typedef unsigned int GLhandleARB; void glClearTexSubImage - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -11697,7 +8575,7 @@ typedef unsigned int GLhandleARB; void glClearTexSubImageEXT - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -11727,15 +8605,21 @@ typedef unsigned int GLhandleARB; void glClientAttribDefaultEXT GLbitfield mask + + void glClientWaitSemaphoreui64NVX + GLsizei fenceObjectCount + const GLuint *semaphoreArray + const GLuint64 *fenceValueArray + GLenum glClientWaitSync - GLsync sync + GLsync sync GLbitfield flags GLuint64 timeout GLenum glClientWaitSyncAPPLE - GLsync sync + GLsync sync GLbitfield flags GLuint64 timeout @@ -11790,176 +8674,176 @@ typedef unsigned int GLhandleARB; void glColor3b - GLbyte red - GLbyte green - GLbyte blue + GLbyte red + GLbyte green + GLbyte blue void glColor3bv - const GLbyte *v + const GLbyte *v void glColor3d - GLdouble red - GLdouble green - GLdouble blue + GLdouble red + GLdouble green + GLdouble blue void glColor3dv - const GLdouble *v + const GLdouble *v void glColor3f - GLfloat red - GLfloat green - GLfloat blue + GLfloat red + GLfloat green + GLfloat blue void glColor3fVertex3fSUN - GLfloat r - GLfloat g - GLfloat b + GLfloat r + GLfloat g + GLfloat b GLfloat x GLfloat y GLfloat z void glColor3fVertex3fvSUN - const GLfloat *c + const GLfloat *c const GLfloat *v void glColor3fv - const GLfloat *v + const GLfloat *v void glColor3hNV - GLhalfNV red - GLhalfNV green - GLhalfNV blue + GLhalfNV red + GLhalfNV green + GLhalfNV blue void glColor3hvNV - const GLhalfNV *v + const GLhalfNV *v void glColor3i - GLint red - GLint green - GLint blue + GLint red + GLint green + GLint blue void glColor3iv - const GLint *v + const GLint *v void glColor3s - GLshort red - GLshort green - GLshort blue + GLshort red + GLshort green + GLshort blue void glColor3sv - const GLshort *v + const GLshort *v void glColor3ub - GLubyte red - GLubyte green - GLubyte blue + GLubyte red + GLubyte green + GLubyte blue void glColor3ubv - const GLubyte *v + const GLubyte *v void glColor3ui - GLuint red - GLuint green - GLuint blue + GLuint red + GLuint green + GLuint blue void glColor3uiv - const GLuint *v + const GLuint *v void glColor3us - GLushort red - GLushort green - GLushort blue + GLushort red + GLushort green + GLushort blue void glColor3usv - const GLushort *v + const GLushort *v void glColor3xOES - GLfixed red - GLfixed green - GLfixed blue + GLfixed red + GLfixed green + GLfixed blue void glColor3xvOES - const GLfixed *components + const GLfixed *components void glColor4b - GLbyte red - GLbyte green - GLbyte blue - GLbyte alpha + GLbyte red + GLbyte green + GLbyte blue + GLbyte alpha void glColor4bv - const GLbyte *v + const GLbyte *v void glColor4d - GLdouble red - GLdouble green - GLdouble blue - GLdouble alpha + GLdouble red + GLdouble green + GLdouble blue + GLdouble alpha void glColor4dv - const GLdouble *v + const GLdouble *v void glColor4f - GLfloat red - GLfloat green - GLfloat blue - GLfloat alpha + GLfloat red + GLfloat green + GLfloat blue + GLfloat alpha void glColor4fNormal3fVertex3fSUN - GLfloat r - GLfloat g - GLfloat b - GLfloat a + GLfloat r + GLfloat g + GLfloat b + GLfloat a GLfloat nx GLfloat ny GLfloat nz @@ -11969,254 +8853,254 @@ typedef unsigned int GLhandleARB; void glColor4fNormal3fVertex3fvSUN - const GLfloat *c + const GLfloat *c const GLfloat *n const GLfloat *v void glColor4fv - const GLfloat *v + const GLfloat *v void glColor4hNV - GLhalfNV red - GLhalfNV green - GLhalfNV blue - GLhalfNV alpha + GLhalfNV red + GLhalfNV green + GLhalfNV blue + GLhalfNV alpha void glColor4hvNV - const GLhalfNV *v + const GLhalfNV *v void glColor4i - GLint red - GLint green - GLint blue - GLint alpha + GLint red + GLint green + GLint blue + GLint alpha void glColor4iv - const GLint *v + const GLint *v void glColor4s - GLshort red - GLshort green - GLshort blue - GLshort alpha + GLshort red + GLshort green + GLshort blue + GLshort alpha void glColor4sv - const GLshort *v + const GLshort *v void glColor4ub - GLubyte red - GLubyte green - GLubyte blue - GLubyte alpha + GLubyte red + GLubyte green + GLubyte blue + GLubyte alpha void glColor4ubVertex2fSUN - GLubyte r - GLubyte g - GLubyte b - GLubyte a + GLubyte r + GLubyte g + GLubyte b + GLubyte a GLfloat x GLfloat y void glColor4ubVertex2fvSUN - const GLubyte *c + const GLubyte *c const GLfloat *v void glColor4ubVertex3fSUN - GLubyte r - GLubyte g - GLubyte b - GLubyte a + GLubyte r + GLubyte g + GLubyte b + GLubyte a GLfloat x GLfloat y GLfloat z void glColor4ubVertex3fvSUN - const GLubyte *c + const GLubyte *c const GLfloat *v void glColor4ubv - const GLubyte *v + const GLubyte *v void glColor4ui - GLuint red - GLuint green - GLuint blue - GLuint alpha + GLuint red + GLuint green + GLuint blue + GLuint alpha void glColor4uiv - const GLuint *v + const GLuint *v void glColor4us - GLushort red - GLushort green - GLushort blue - GLushort alpha + GLushort red + GLushort green + GLushort blue + GLushort alpha void glColor4usv - const GLushort *v + const GLushort *v void glColor4x - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glColor4xOES - GLfixed red - GLfixed green - GLfixed blue - GLfixed alpha + GLfixed red + GLfixed green + GLfixed blue + GLfixed alpha void glColor4xvOES - const GLfixed *components + const GLfixed *components void glColorFormatNV GLint size - GLenum type + GLenum type GLsizei stride void glColorFragmentOp1ATI - GLenum op - GLuint dst - GLuint dstMask - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod + GLenum op + GLuint dst + GLuint dstMask + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod void glColorFragmentOp2ATI - GLenum op - GLuint dst - GLuint dstMask - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod - GLuint arg2 - GLuint arg2Rep - GLuint arg2Mod + GLenum op + GLuint dst + GLuint dstMask + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod + GLuint arg2 + GLuint arg2Rep + GLuint arg2Mod void glColorFragmentOp3ATI - GLenum op - GLuint dst - GLuint dstMask - GLuint dstMod - GLuint arg1 - GLuint arg1Rep - GLuint arg1Mod - GLuint arg2 - GLuint arg2Rep - GLuint arg2Mod - GLuint arg3 - GLuint arg3Rep - GLuint arg3Mod + GLenum op + GLuint dst + GLuint dstMask + GLuint dstMod + GLuint arg1 + GLuint arg1Rep + GLuint arg1Mod + GLuint arg2 + GLuint arg2Rep + GLuint arg2Mod + GLuint arg3 + GLuint arg3Rep + GLuint arg3Mod void glColorMask - GLboolean red - GLboolean green - GLboolean blue - GLboolean alpha + GLboolean red + GLboolean green + GLboolean blue + GLboolean alpha void glColorMaskIndexedEXT GLuint index - GLboolean r - GLboolean g - GLboolean b - GLboolean a + GLboolean r + GLboolean g + GLboolean b + GLboolean a void glColorMaski GLuint index - GLboolean r - GLboolean g - GLboolean b - GLboolean a + GLboolean r + GLboolean g + GLboolean b + GLboolean a void glColorMaskiEXT GLuint index - GLboolean r - GLboolean g - GLboolean b - GLboolean a + GLboolean r + GLboolean g + GLboolean b + GLboolean a void glColorMaskiOES GLuint index - GLboolean r - GLboolean g - GLboolean b - GLboolean a + GLboolean r + GLboolean g + GLboolean b + GLboolean a void glColorMaterial - GLenum face + GLenum face GLenum mode void glColorP3ui GLenum type - GLuint color + GLuint color void glColorP3uiv GLenum type - const GLuint *color + const GLuint *color void glColorP4ui GLenum type - GLuint color + GLuint color void glColorP4uiv GLenum type - const GLuint *color + const GLuint *color void glColorPointer @@ -12292,30 +9176,30 @@ typedef unsigned int GLhandleARB; void glColorTableParameterfv GLenum target - GLenum pname - const GLfloat *params + GLenum pname + const GLfloat *params void glColorTableParameterfvSGI GLenum target - GLenum pname - const GLfloat *params + GLenum pname + const GLfloat *params void glColorTableParameteriv GLenum target - GLenum pname - const GLint *params + GLenum pname + const GLint *params void glColorTableParameterivSGI GLenum target - GLenum pname - const GLint *params + GLenum pname + const GLint *params @@ -12349,9 +9233,9 @@ typedef unsigned int GLhandleARB; GLenum sumOutput GLenum scale GLenum bias - GLboolean abDotProduct - GLboolean cdDotProduct - GLboolean muxSum + GLboolean abDotProduct + GLboolean cdDotProduct + GLboolean muxSum @@ -12363,7 +9247,7 @@ typedef unsigned int GLhandleARB; void glCombinerParameterfvNV GLenum pname - const GLfloat *params + const GLfloat *params @@ -12375,14 +9259,14 @@ typedef unsigned int GLhandleARB; void glCombinerParameterivNV GLenum pname - const GLint *params + const GLint *params void glCombinerStageParameterfvNV GLenum stage GLenum pname - const GLfloat *params + const GLfloat *params void glCommandListSegmentsNV @@ -12395,16 +9279,16 @@ typedef unsigned int GLhandleARB; void glCompileShader - GLuint shader + GLuint shader void glCompileShaderARB - GLhandleARB shaderObj + GLhandleARB shaderObj void glCompileShaderIncludeARB - GLuint shader + GLuint shader GLsizei count const GLchar *const*path const GLint *length @@ -12413,10 +9297,10 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexImage1DEXT GLenum texunit GLenum target - GLint level + GLint level GLenum internalformat GLsizei width - GLint border + GLint border GLsizei imageSize const void *bits @@ -12424,11 +9308,11 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexImage2DEXT GLenum texunit GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height - GLint border + GLint border GLsizei imageSize const void *bits @@ -12436,12 +9320,12 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexImage3DEXT GLenum texunit GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLsizei imageSize const void *bits @@ -12449,10 +9333,10 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexSubImage1DEXT GLenum texunit GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width - GLenum format + GLenum format GLsizei imageSize const void *bits @@ -12460,12 +9344,12 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexSubImage2DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height - GLenum format + GLenum format GLsizei imageSize const void *bits @@ -12473,92 +9357,92 @@ typedef unsigned int GLhandleARB; void glCompressedMultiTexSubImage3DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize const void *bits void glCompressedTexImage1D GLenum target - GLint level + GLint level GLenum internalformat GLsizei width - GLint border + GLint border GLsizei imageSize - const void *data + const void *data void glCompressedTexImage1DARB GLenum target - GLint level + GLint level GLenum internalformat GLsizei width - GLint border + GLint border GLsizei imageSize - const void *data + const void *data void glCompressedTexImage2D GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height - GLint border + GLint border GLsizei imageSize - const void *data + const void *data void glCompressedTexImage2DARB GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height - GLint border + GLint border GLsizei imageSize - const void *data + const void *data void glCompressedTexImage3D GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLsizei imageSize - const void *data + const void *data void glCompressedTexImage3DARB GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLsizei imageSize - const void *data + const void *data @@ -12577,84 +9461,84 @@ typedef unsigned int GLhandleARB; void glCompressedTexSubImage1D GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTexSubImage1DARB GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTexSubImage2D GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTexSubImage2DARB GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTexSubImage3D GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTexSubImage3DARB GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data @@ -12668,95 +9552,95 @@ typedef unsigned int GLhandleARB; GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize const void *data void glCompressedTextureImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum internalformat GLsizei width - GLint border + GLint border GLsizei imageSize const void *bits void glCompressedTextureImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height - GLint border + GLint border GLsizei imageSize const void *bits void glCompressedTextureImage3DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLsizei imageSize const void *bits void glCompressedTextureSubImage1D - GLuint texture + GLuint texture GLint level GLint xoffset GLsizei width - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTextureSubImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width - GLenum format + GLenum format GLsizei imageSize const void *bits void glCompressedTextureSubImage2D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset GLsizei width GLsizei height - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTextureSubImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height - GLenum format + GLenum format GLsizei imageSize const void *bits void glCompressedTextureSubImage3D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -12764,22 +9648,22 @@ typedef unsigned int GLhandleARB; GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize - const void *data + const void *data void glCompressedTextureSubImage3DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth - GLenum format + GLenum format GLsizei imageSize const void *bits @@ -12842,99 +9726,99 @@ typedef unsigned int GLhandleARB; void glConvolutionParameterf GLenum target - GLenum pname - GLfloat params + GLenum pname + GLfloat params void glConvolutionParameterfEXT GLenum target - GLenum pname - GLfloat params + GLenum pname + GLfloat params void glConvolutionParameterfv GLenum target - GLenum pname - const GLfloat *params + GLenum pname + const GLfloat *params void glConvolutionParameterfvEXT GLenum target - GLenum pname - const GLfloat *params + GLenum pname + const GLfloat *params void glConvolutionParameteri GLenum target - GLenum pname - GLint params + GLenum pname + GLint params void glConvolutionParameteriEXT GLenum target - GLenum pname - GLint params + GLenum pname + GLint params void glConvolutionParameteriv GLenum target - GLenum pname - const GLint *params + GLenum pname + const GLint *params void glConvolutionParameterivEXT GLenum target - GLenum pname - const GLint *params + GLenum pname + const GLint *params void glConvolutionParameterxOES GLenum target - GLenum pname + GLenum pname GLfixed param void glConvolutionParameterxvOES GLenum target - GLenum pname + GLenum pname const GLfixed *params void glCopyBufferSubData GLenum readTarget GLenum writeTarget - GLintptr readOffset - GLintptr writeOffset - GLsizeiptr size + GLintptr readOffset + GLintptr writeOffset + GLsizeiptr size void glCopyBufferSubDataNV GLenum readTarget GLenum writeTarget - GLintptr readOffset - GLintptr writeOffset - GLsizeiptr size + GLintptr readOffset + GLintptr writeOffset + GLsizeiptr size void glCopyColorSubTable GLenum target GLsizei start - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12942,8 +9826,8 @@ typedef unsigned int GLhandleARB; void glCopyColorSubTableEXT GLenum target GLsizei start - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12951,8 +9835,8 @@ typedef unsigned int GLhandleARB; void glCopyColorTable GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12960,8 +9844,8 @@ typedef unsigned int GLhandleARB; void glCopyColorTableSGI GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12970,8 +9854,8 @@ typedef unsigned int GLhandleARB; void glCopyConvolutionFilter1D GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12979,8 +9863,8 @@ typedef unsigned int GLhandleARB; void glCopyConvolutionFilter1DEXT GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width @@ -12989,8 +9873,8 @@ typedef unsigned int GLhandleARB; void glCopyConvolutionFilter2D GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height @@ -12999,8 +9883,8 @@ typedef unsigned int GLhandleARB; void glCopyConvolutionFilter2DEXT GLenum target GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height @@ -13009,13 +9893,13 @@ typedef unsigned int GLhandleARB; void glCopyImageSubData GLuint srcName - GLenum srcTarget + GLenum srcTarget GLint srcLevel GLint srcX GLint srcY GLint srcZ GLuint dstName - GLenum dstTarget + GLenum dstTarget GLint dstLevel GLint dstX GLint dstY @@ -13085,44 +9969,44 @@ typedef unsigned int GLhandleARB; void glCopyMultiTexImage1DEXT GLenum texunit GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width - GLint border + GLint border void glCopyMultiTexImage2DEXT GLenum texunit GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height - GLint border + GLint border void glCopyMultiTexSubImage1DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint x + GLint y GLsizei width void glCopyMultiTexSubImage2DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13130,32 +10014,32 @@ typedef unsigned int GLhandleARB; void glCopyMultiTexSubImage3DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLint x + GLint y GLsizei width GLsizei height void glCopyNamedBufferSubData - GLuint readBuffer - GLuint writeBuffer + GLuint readBuffer + GLuint writeBuffer GLintptr readOffset GLintptr writeOffset - GLsizeiptr size + GLsizeiptr size void glCopyPathNV - GLuint resultPath - GLuint srcPath + GLuint resultPath + GLuint srcPath void glCopyPixels - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height GLenum type @@ -13164,68 +10048,68 @@ typedef unsigned int GLhandleARB; void glCopyTexImage1D GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width - GLint border + GLint border void glCopyTexImage1DEXT GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width - GLint border + GLint border void glCopyTexImage2D GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height - GLint border + GLint border void glCopyTexImage2DEXT GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height - GLint border + GLint border void glCopyTexSubImage1D GLenum target - GLint level - GLint xoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint x + GLint y GLsizei width void glCopyTexSubImage1DEXT GLenum target - GLint level - GLint xoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint x + GLint y GLsizei width @@ -13233,11 +10117,11 @@ typedef unsigned int GLhandleARB; void glCopyTexSubImage2D GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13245,11 +10129,11 @@ typedef unsigned int GLhandleARB; void glCopyTexSubImage2DEXT GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13258,12 +10142,12 @@ typedef unsigned int GLhandleARB; void glCopyTexSubImage3D GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13271,12 +10155,12 @@ typedef unsigned int GLhandleARB; void glCopyTexSubImage3DEXT GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13296,26 +10180,26 @@ typedef unsigned int GLhandleARB; void glCopyTextureImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width - GLint border + GLint border void glCopyTextureImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum internalformat - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height - GLint border + GLint border void glCopyTextureLevelsAPPLE @@ -13326,7 +10210,7 @@ typedef unsigned int GLhandleARB; void glCopyTextureSubImage1D - GLuint texture + GLuint texture GLint level GLint xoffset GLint x @@ -13335,17 +10219,17 @@ typedef unsigned int GLhandleARB; void glCopyTextureSubImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint x + GLint y GLsizei width void glCopyTextureSubImage2D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -13356,19 +10240,19 @@ typedef unsigned int GLhandleARB; void glCopyTextureSubImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint x + GLint y GLsizei width GLsizei height void glCopyTextureSubImage3D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -13380,14 +10264,14 @@ typedef unsigned int GLhandleARB; void glCopyTextureSubImage3DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset - GLint x - GLint y + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLint x + GLint y GLsizei width GLsizei height @@ -13395,30 +10279,30 @@ typedef unsigned int GLhandleARB; void glCoverFillPathInstancedNV GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase - GLenum coverMode + const void *paths + GLuint pathBase + GLenum coverMode GLenum transformType const GLfloat *transformValues void glCoverFillPathNV - GLuint path + GLuint path GLenum coverMode void glCoverStrokePathInstancedNV GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase - GLenum coverMode + const void *paths + GLuint pathBase + GLenum coverMode GLenum transformType const GLfloat *transformValues void glCoverStrokePathNV - GLuint path + GLuint path GLenum coverMode @@ -13441,7 +10325,7 @@ typedef unsigned int GLhandleARB; void glCreateBuffers GLsizei n - GLuint *buffers + GLuint *buffers void glCreateCommandListsNV @@ -13451,7 +10335,7 @@ typedef unsigned int GLhandleARB; void glCreateFramebuffers GLsizei n - GLuint *framebuffers + GLuint *framebuffers void glCreateMemoryObjectsEXT @@ -13460,62 +10344,70 @@ typedef unsigned int GLhandleARB; void glCreatePerfQueryINTEL - GLuint queryId - GLuint *queryHandle + GLuint queryId + GLuint *queryHandle - GLuint glCreateProgram + GLuint glCreateProgram - GLhandleARB glCreateProgramObjectARB + GLhandleARB glCreateProgramObjectARB void glCreateProgramPipelines GLsizei n - GLuint *pipelines + GLuint *pipelines + + + GLuint glCreateProgressFenceNVX void glCreateQueries GLenum target GLsizei n - GLuint *ids + GLuint *ids void glCreateRenderbuffers GLsizei n - GLuint *renderbuffers + GLuint *renderbuffers void glCreateSamplers GLsizei n - GLuint *samplers + GLuint *samplers - GLuint glCreateShader + void glCreateSemaphoresNV + GLsizei n + GLuint *semaphores + + + GLuint glCreateShader GLenum type - GLhandleARB glCreateShaderObjectARB + GLhandleARB glCreateShaderObjectARB GLenum shaderType - GLuint glCreateShaderProgramEXT + GLuint glCreateShaderProgramEXT GLenum type const GLchar *string - GLuint glCreateShaderProgramv + GLuint glCreateShaderProgramv GLenum type GLsizei count const GLchar *const*strings - GLuint glCreateShaderProgramvEXT + GLuint glCreateShaderProgramvEXT GLenum type GLsizei count - const GLchar **strings + const GLchar *const*strings void glCreateStatesNV @@ -13523,30 +10415,30 @@ typedef unsigned int GLhandleARB; GLuint *states - GLsync glCreateSyncFromCLeventARB - struct _cl_context *context - struct _cl_event *event + GLsync glCreateSyncFromCLeventARB + struct _cl_context *context + struct _cl_event *event GLbitfield flags void glCreateTextures GLenum target GLsizei n - GLuint *textures + GLuint *textures void glCreateTransformFeedbacks GLsizei n - GLuint *ids + GLuint *ids void glCreateVertexArrays GLsizei n - GLuint *arrays + GLuint *arrays void glCullFace - GLenum mode + GLenum mode @@ -13597,7 +10489,7 @@ typedef unsigned int GLhandleARB; GLenum severity GLsizei count const GLuint *ids - GLboolean enabled + GLboolean enabled void glDebugMessageControlARB @@ -13606,7 +10498,7 @@ typedef unsigned int GLhandleARB; GLenum severity GLsizei count const GLuint *ids - GLboolean enabled + GLboolean enabled @@ -13625,7 +10517,7 @@ typedef unsigned int GLhandleARB; GLenum severity GLsizei count const GLuint *ids - GLboolean enabled + GLboolean enabled void glDebugMessageInsert @@ -13672,37 +10564,37 @@ typedef unsigned int GLhandleARB; void glDeformationMap3dSGIX GLenum target - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint ustride - GLint uorder - GLdouble v1 - GLdouble v2 + GLint uorder + GLdouble v1 + GLdouble v2 GLint vstride - GLint vorder - GLdouble w1 - GLdouble w2 + GLint vorder + GLdouble w1 + GLdouble w2 GLint wstride - GLint worder - const GLdouble *points + GLint worder + const GLdouble *points void glDeformationMap3fSGIX GLenum target - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint ustride - GLint uorder - GLfloat v1 - GLfloat v2 + GLint uorder + GLfloat v1 + GLfloat v2 GLint vstride - GLint vorder - GLfloat w1 - GLfloat w2 + GLint vorder + GLfloat w1 + GLfloat w2 GLint wstride - GLint worder - const GLfloat *points + GLint worder + const GLfloat *points @@ -13713,12 +10605,12 @@ typedef unsigned int GLhandleARB; void glDeleteBuffers GLsizei n - const GLuint *buffers + const GLuint *buffers void glDeleteBuffersARB GLsizei n - const GLuint *buffers + const GLuint *buffers @@ -13729,12 +10621,12 @@ typedef unsigned int GLhandleARB; void glDeleteFencesAPPLE GLsizei n - const GLuint *fences + const GLuint *fences void glDeleteFencesNV GLsizei n - const GLuint *fences + const GLuint *fences @@ -13744,24 +10636,24 @@ typedef unsigned int GLhandleARB; void glDeleteFramebuffers GLsizei n - const GLuint *framebuffers + const GLuint *framebuffers void glDeleteFramebuffersEXT GLsizei n - const GLuint *framebuffers + const GLuint *framebuffers void glDeleteFramebuffersOES GLsizei n - const GLuint *framebuffers + const GLuint *framebuffers void glDeleteLists - GLuint list + GLuint list GLsizei range @@ -13783,7 +10675,7 @@ typedef unsigned int GLhandleARB; void glDeleteObjectARB - GLhandleARB obj + GLhandleARB obj void glDeleteOcclusionQueriesNV @@ -13792,7 +10684,7 @@ typedef unsigned int GLhandleARB; void glDeletePathsNV - GLuint path + GLuint path GLsizei range @@ -13802,52 +10694,52 @@ typedef unsigned int GLhandleARB; void glDeletePerfQueryINTEL - GLuint queryHandle + GLuint queryHandle void glDeleteProgram - GLuint program + GLuint program void glDeleteProgramPipelines GLsizei n - const GLuint *pipelines + const GLuint *pipelines void glDeleteProgramPipelinesEXT GLsizei n - const GLuint *pipelines + const GLuint *pipelines void glDeleteProgramsARB GLsizei n - const GLuint *programs + const GLuint *programs void glDeleteProgramsNV GLsizei n - const GLuint *programs + const GLuint *programs void glDeleteQueries GLsizei n - const GLuint *ids + const GLuint *ids void glDeleteQueriesARB GLsizei n - const GLuint *ids + const GLuint *ids void glDeleteQueriesEXT GLsizei n - const GLuint *ids + const GLuint *ids void glDeleteQueryResourceTagNV @@ -13857,25 +10749,25 @@ typedef unsigned int GLhandleARB; void glDeleteRenderbuffers GLsizei n - const GLuint *renderbuffers + const GLuint *renderbuffers void glDeleteRenderbuffersEXT GLsizei n - const GLuint *renderbuffers + const GLuint *renderbuffers void glDeleteRenderbuffersOES GLsizei n - const GLuint *renderbuffers + const GLuint *renderbuffers void glDeleteSamplers GLsizei count - const GLuint *samplers + const GLuint *samplers void glDeleteSemaphoresEXT @@ -13884,7 +10776,7 @@ typedef unsigned int GLhandleARB; void glDeleteShader - GLuint shader + GLuint shader @@ -13894,52 +10786,52 @@ typedef unsigned int GLhandleARB; void glDeleteSync - GLsync sync + GLsync sync void glDeleteSyncAPPLE - GLsync sync + GLsync sync void glDeleteTextures GLsizei n - const GLuint *textures + const GLuint *textures void glDeleteTexturesEXT GLsizei n - const GLuint *textures + const GLuint *textures void glDeleteTransformFeedbacks GLsizei n - const GLuint *ids + const GLuint *ids void glDeleteTransformFeedbacksNV GLsizei n - const GLuint *ids + const GLuint *ids void glDeleteVertexArrays GLsizei n - const GLuint *arrays + const GLuint *arrays void glDeleteVertexArraysAPPLE GLsizei n - const GLuint *arrays + const GLuint *arrays void glDeleteVertexArraysOES GLsizei n - const GLuint *arrays + const GLuint *arrays @@ -13948,8 +10840,8 @@ typedef unsigned int GLhandleARB; void glDepthBoundsEXT - GLclampd zmin - GLclampd zmax + GLclampd zmin + GLclampd zmax @@ -13965,7 +10857,7 @@ typedef unsigned int GLhandleARB; void glDepthMask - GLboolean flag + GLboolean flag @@ -13974,6 +10866,12 @@ typedef unsigned int GLhandleARB; GLdouble f + + void glDepthRangeArraydvNV + GLuint first + GLsizei count + const GLdouble *v + void glDepthRangeArrayfvNV GLuint first @@ -13998,6 +10896,12 @@ typedef unsigned int GLhandleARB; GLdouble n GLdouble f + + void glDepthRangeIndexeddNV + GLuint index + GLdouble n + GLdouble f + void glDepthRangeIndexedfNV GLuint index @@ -14023,8 +10927,8 @@ typedef unsigned int GLhandleARB; void glDepthRangefOES - GLclampf n - GLclampf f + GLclampf n + GLclampf f @@ -14035,19 +10939,19 @@ typedef unsigned int GLhandleARB; void glDepthRangexOES - GLfixed n - GLfixed f + GLfixed n + GLfixed f void glDetachObjectARB - GLhandleARB containerObj - GLhandleARB attachedObj + GLhandleARB containerObj + GLhandleARB attachedObj void glDetachShader - GLuint program - GLuint shader + GLuint program + GLuint shader void glDetailTexFuncSGIS @@ -14092,17 +10996,17 @@ typedef unsigned int GLhandleARB; void glDisableVertexArrayAttrib - GLuint vaobj + GLuint vaobj GLuint index void glDisableVertexArrayAttribEXT - GLuint vaobj + GLuint vaobj GLuint index void glDisableVertexArrayEXT - GLuint vaobj + GLuint vaobj GLenum array @@ -14144,9 +11048,9 @@ typedef unsigned int GLhandleARB; void glDiscardFramebufferEXT - GLenum target + GLenum target GLsizei numAttachments - const GLenum *attachments + const GLenum *attachments void glDispatchCompute @@ -14165,7 +11069,7 @@ typedef unsigned int GLhandleARB; void glDispatchComputeIndirect - GLintptr indirect + GLintptr indirect void glDrawArrays @@ -14251,19 +11155,19 @@ typedef unsigned int GLhandleARB; void glDrawBuffers GLsizei n - const GLenum *bufs + const GLenum *bufs void glDrawBuffersARB GLsizei n - const GLenum *bufs + const GLenum *bufs void glDrawBuffersATI GLsizei n - const GLenum *bufs + const GLenum *bufs @@ -14309,7 +11213,7 @@ typedef unsigned int GLhandleARB; void glDrawCommandsStatesNV - GLuint buffer + GLuint buffer const GLintptr *indirects const GLsizei *sizes const GLuint *states @@ -14378,7 +11282,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedANGLE GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei primcount @@ -14396,7 +11300,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedBaseInstance GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei instancecount GLuint baseinstance @@ -14405,7 +11309,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedBaseInstanceEXT GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei instancecount GLuint baseinstance @@ -14424,7 +11328,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedBaseVertexBaseInstance GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei instancecount GLint basevertex @@ -14434,7 +11338,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedBaseVertexBaseInstanceEXT GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei instancecount GLint basevertex @@ -14474,7 +11378,7 @@ typedef unsigned int GLhandleARB; void glDrawElementsInstancedNV GLenum mode GLsizei count - GLenum type + GLenum type const void *indices GLsizei primcount @@ -14486,6 +11390,15 @@ typedef unsigned int GLhandleARB; GLsizei count GLsizei width + + void glDrawMeshTasksNV + GLuint first + GLuint count + + + void glDrawMeshTasksIndirectNV + GLintptr indirect + void glDrawPixels GLsizei width @@ -14603,8 +11516,8 @@ typedef unsigned int GLhandleARB; void glDrawTextureNV - GLuint texture - GLuint sampler + GLuint texture + GLuint sampler GLfloat x0 GLfloat y0 GLfloat x1 @@ -14631,43 +11544,43 @@ typedef unsigned int GLhandleARB; void glDrawTransformFeedback GLenum mode - GLuint id + GLuint id void glDrawTransformFeedbackEXT GLenum mode - GLuint id + GLuint id void glDrawTransformFeedbackInstanced GLenum mode - GLuint id + GLuint id GLsizei instancecount void glDrawTransformFeedbackInstancedEXT GLenum mode - GLuint id + GLuint id GLsizei instancecount void glDrawTransformFeedbackNV GLenum mode - GLuint id + GLuint id void glDrawTransformFeedbackStream GLenum mode - GLuint id + GLuint id GLuint stream void glDrawTransformFeedbackStreamInstanced GLenum mode - GLuint id + GLuint id GLuint stream GLsizei instancecount @@ -14689,13 +11602,13 @@ typedef unsigned int GLhandleARB; void glEGLImageTargetTextureStorageEXT - GLuint texture + GLuint texture GLeglImageOES image const GLint* attrib_list void glEdgeFlag - GLboolean flag + GLboolean flag @@ -14711,17 +11624,17 @@ typedef unsigned int GLhandleARB; void glEdgeFlagPointerEXT GLsizei stride GLsizei count - const GLboolean *pointer + const GLboolean *pointer void glEdgeFlagPointerListIBM GLint stride - const GLboolean **pointer + const GLboolean **pointer GLint ptrstride void glEdgeFlagv - const GLboolean *flag + const GLboolean *flag @@ -14770,17 +11683,17 @@ typedef unsigned int GLhandleARB; void glEnableVertexArrayAttrib - GLuint vaobj + GLuint vaobj GLuint index void glEnableVertexArrayAttribEXT - GLuint vaobj + GLuint vaobj GLuint index void glEnableVertexArrayEXT - GLuint vaobj + GLuint vaobj GLenum array @@ -14852,7 +11765,7 @@ typedef unsigned int GLhandleARB; void glEndPerfQueryINTEL - GLuint queryHandle + GLuint queryHandle void glEndQuery @@ -14898,22 +11811,22 @@ typedef unsigned int GLhandleARB; void glEvalCoord1d - GLdouble u + GLdouble u void glEvalCoord1dv - const GLdouble *u + const GLdouble *u void glEvalCoord1f - GLfloat u + GLfloat u void glEvalCoord1fv - const GLfloat *u + const GLfloat *u @@ -14926,24 +11839,24 @@ typedef unsigned int GLhandleARB; void glEvalCoord2d - GLdouble u - GLdouble v + GLdouble u + GLdouble v void glEvalCoord2dv - const GLdouble *u + const GLdouble *u void glEvalCoord2f - GLfloat u - GLfloat v + GLfloat u + GLfloat v void glEvalCoord2fv - const GLfloat *u + const GLfloat *u @@ -14963,17 +11876,17 @@ typedef unsigned int GLhandleARB; void glEvalMesh1 GLenum mode - GLint i1 - GLint i2 + GLint i1 + GLint i2 void glEvalMesh2 GLenum mode - GLint i1 - GLint i2 - GLint j1 - GLint j2 + GLint i1 + GLint i2 + GLint j1 + GLint j2 @@ -14983,8 +11896,8 @@ typedef unsigned int GLhandleARB; void glEvalPoint2 - GLint i - GLint j + GLint i + GLint j @@ -15000,48 +11913,48 @@ typedef unsigned int GLhandleARB; void glExtGetBufferPointervQCOM GLenum target - void **params + void **params void glExtGetBuffersQCOM - GLuint *buffers + GLuint *buffers GLint maxBuffers GLint *numBuffers void glExtGetFramebuffersQCOM - GLuint *framebuffers + GLuint *framebuffers GLint maxFramebuffers GLint *numFramebuffers void glExtGetProgramBinarySourceQCOM - GLuint program + GLuint program GLenum shadertype - GLchar *source + GLchar *source GLint *length void glExtGetProgramsQCOM - GLuint *programs + GLuint *programs GLint maxPrograms GLint *numPrograms void glExtGetRenderbuffersQCOM - GLuint *renderbuffers + GLuint *renderbuffers GLint maxRenderbuffers GLint *numRenderbuffers void glExtGetShadersQCOM - GLuint *shaders + GLuint *shaders GLint maxShaders GLint *numShaders void glExtGetTexLevelParameterivQCOM - GLuint texture + GLuint texture GLenum face GLint level GLenum pname @@ -15063,13 +11976,13 @@ typedef unsigned int GLhandleARB; void glExtGetTexturesQCOM - GLuint *textures + GLuint *textures GLint maxTextures GLint *numTextures GLboolean glExtIsProgramBinaryQCOM - GLuint program + GLuint program void glExtTexObjectStateOverrideiQCOM @@ -15087,7 +12000,7 @@ typedef unsigned int GLhandleARB; void glFeedbackBuffer GLsizei size GLenum type - GLfloat *buffer + GLfloat *buffer @@ -15097,14 +12010,14 @@ typedef unsigned int GLhandleARB; const GLfixed *buffer - GLsync glFenceSync + GLsync glFenceSync GLenum condition - GLbitfield flags + GLbitfield flags - GLsync glFenceSyncAPPLE + GLsync glFenceSyncAPPLE GLenum condition - GLbitfield flags + GLbitfield flags @@ -15125,11 +12038,11 @@ typedef unsigned int GLhandleARB; void glFinishFenceAPPLE - GLuint fence + GLuint fence void glFinishFenceNV - GLuint fence + GLuint fence @@ -15147,14 +12060,14 @@ typedef unsigned int GLhandleARB; void glFlushMappedBufferRange GLenum target - GLintptr offset - GLsizeiptr length + GLintptr offset + GLsizeiptr length void glFlushMappedBufferRangeAPPLE GLenum target - GLintptr offset - GLsizeiptr size + GLintptr offset + GLsizeiptr size @@ -15166,13 +12079,13 @@ typedef unsigned int GLhandleARB; void glFlushMappedNamedBufferRange - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr length + GLsizeiptr length void glFlushMappedNamedBufferRangeEXT - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr length @@ -15223,56 +12136,56 @@ typedef unsigned int GLhandleARB; void glFogCoordd - GLdouble coord + GLdouble coord void glFogCoorddEXT - GLdouble coord + GLdouble coord void glFogCoorddv - const GLdouble *coord + const GLdouble *coord void glFogCoorddvEXT - const GLdouble *coord + const GLdouble *coord void glFogCoordf - GLfloat coord + GLfloat coord void glFogCoordfEXT - GLfloat coord + GLfloat coord void glFogCoordfv - const GLfloat *coord + const GLfloat *coord void glFogCoordfvEXT - const GLfloat *coord + const GLfloat *coord void glFogCoordhNV - GLhalfNV fog + GLhalfNV fog void glFogCoordhvNV - const GLhalfNV *fog + const GLhalfNV *fog @@ -15284,25 +12197,25 @@ typedef unsigned int GLhandleARB; void glFogf GLenum pname - GLfloat param + GLfloat param void glFogfv GLenum pname - const GLfloat *params + const GLfloat *params void glFogi GLenum pname - GLint param + GLint param void glFogiv GLenum pname - const GLint *params + const GLint *params @@ -15327,7 +12240,7 @@ typedef unsigned int GLhandleARB; void glFragmentColorMaterialSGIX - GLenum face + GLenum face GLenum mode @@ -15337,87 +12250,87 @@ typedef unsigned int GLhandleARB; void glFragmentLightModelfSGIX GLenum pname - GLfloat param + GLfloat param void glFragmentLightModelfvSGIX GLenum pname - const GLfloat *params + const GLfloat *params void glFragmentLightModeliSGIX GLenum pname - GLint param + GLint param void glFragmentLightModelivSGIX GLenum pname - const GLint *params + const GLint *params void glFragmentLightfSGIX GLenum light GLenum pname - GLfloat param + GLfloat param void glFragmentLightfvSGIX GLenum light GLenum pname - const GLfloat *params + const GLfloat *params void glFragmentLightiSGIX GLenum light GLenum pname - GLint param + GLint param void glFragmentLightivSGIX GLenum light GLenum pname - const GLint *params + const GLint *params void glFragmentMaterialfSGIX - GLenum face + GLenum face GLenum pname - GLfloat param + GLfloat param void glFragmentMaterialfvSGIX - GLenum face + GLenum face GLenum pname - const GLfloat *params + const GLfloat *params void glFragmentMaterialiSGIX - GLenum face + GLenum face GLenum pname - GLint param + GLint param void glFragmentMaterialivSGIX - GLenum face + GLenum face GLenum pname - const GLint *params + const GLint *params void glFrameTerminatorGREMEDY void glFrameZoomSGIX - GLint factor + GLint factor void glFramebufferDrawBufferEXT - GLuint framebuffer + GLuint framebuffer GLenum mode void glFramebufferDrawBuffersEXT - GLuint framebuffer + GLuint framebuffer GLsizei n const GLenum *bufs @@ -15429,7 +12342,7 @@ typedef unsigned int GLhandleARB; void glFramebufferFoveationConfigQCOM - GLuint framebuffer + GLuint framebuffer GLuint numLayers GLuint focalPointsPerLayer GLuint requestedFeatures @@ -15437,14 +12350,14 @@ typedef unsigned int GLhandleARB; void glFramebufferFoveationParametersQCOM - GLuint framebuffer + GLuint framebuffer GLuint layer GLuint focalPoint - GLfloat focalX - GLfloat focalY - GLfloat gainX - GLfloat gainY - GLfloat foveaArea + GLfloat focalX + GLfloat focalY + GLfloat gainX + GLfloat gainY + GLfloat foveaArea void glFramebufferParameteri @@ -15459,7 +12372,7 @@ typedef unsigned int GLhandleARB; void glFramebufferReadBufferEXT - GLuint framebuffer + GLuint framebuffer GLenum mode @@ -15467,7 +12380,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum renderbuffertarget - GLuint renderbuffer + GLuint renderbuffer @@ -15475,7 +12388,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum renderbuffertarget - GLuint renderbuffer + GLuint renderbuffer @@ -15484,7 +12397,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum renderbuffertarget - GLuint renderbuffer + GLuint renderbuffer void glFramebufferSampleLocationsfvARB @@ -15507,11 +12420,21 @@ typedef unsigned int GLhandleARB; GLuint pixelindex const GLfloat *values + + void glFramebufferShadingRateEXT + GLenum target + GLenum attachment + GLuint texture + GLint baseLayer + GLsizei numLayers + GLsizei texelWidth + GLsizei texelHeight + void glFramebufferTexture GLenum target GLenum attachment - GLuint texture + GLuint texture GLint level @@ -15519,7 +12442,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level @@ -15528,7 +12451,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level @@ -15538,7 +12461,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level @@ -15547,7 +12470,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level @@ -15557,7 +12480,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLint xscale GLint yscale @@ -15567,7 +12490,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLsizei samples @@ -15576,7 +12499,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLsizei samples @@ -15585,7 +12508,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level @@ -15593,7 +12516,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLint zoffset @@ -15603,7 +12526,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLint zoffset @@ -15614,7 +12537,7 @@ typedef unsigned int GLhandleARB; GLenum target GLenum attachment GLenum textarget - GLuint texture + GLuint texture GLint level GLint zoffset @@ -15622,32 +12545,32 @@ typedef unsigned int GLhandleARB; void glFramebufferTextureARB GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level void glFramebufferTextureEXT GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level void glFramebufferTextureFaceARB GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level GLenum face void glFramebufferTextureFaceEXT GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level GLenum face @@ -15655,36 +12578,36 @@ typedef unsigned int GLhandleARB; void glFramebufferTextureLayer GLenum target GLenum attachment - GLuint texture - GLint level - GLint layer + GLuint texture + GLint level + GLint layer void glFramebufferTextureLayerARB GLenum target GLenum attachment - GLuint texture - GLint level - GLint layer + GLuint texture + GLint level + GLint layer void glFramebufferTextureLayerEXT GLenum target GLenum attachment - GLuint texture - GLint level - GLint layer + GLuint texture + GLint level + GLint layer void glFramebufferTextureLayerDownsampleIMG GLenum target GLenum attachment - GLuint texture - GLint level - GLint layer + GLuint texture + GLint level + GLint layer GLint xscale GLint yscale @@ -15692,8 +12615,8 @@ typedef unsigned int GLhandleARB; void glFramebufferTextureMultisampleMultiviewOVR GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level GLsizei samples GLint baseViewIndex GLsizei numViews @@ -15702,8 +12625,8 @@ typedef unsigned int GLhandleARB; void glFramebufferTextureMultiviewOVR GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level GLint baseViewIndex GLsizei numViews @@ -15711,13 +12634,13 @@ typedef unsigned int GLhandleARB; void glFramebufferTextureOES GLenum target GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level void glFreeObjectBufferATI - GLuint buffer + GLuint buffer void glFrontFace @@ -15778,23 +12701,23 @@ typedef unsigned int GLhandleARB; void glGenBuffers GLsizei n - GLuint *buffers + GLuint *buffers void glGenBuffersARB GLsizei n - GLuint *buffers + GLuint *buffers void glGenFencesAPPLE GLsizei n - GLuint *fences + GLuint *fences void glGenFencesNV GLsizei n - GLuint *fences + GLuint *fences @@ -15804,23 +12727,23 @@ typedef unsigned int GLhandleARB; void glGenFramebuffers GLsizei n - GLuint *framebuffers + GLuint *framebuffers void glGenFramebuffersEXT GLsizei n - GLuint *framebuffers + GLuint *framebuffers void glGenFramebuffersOES GLsizei n - GLuint *framebuffers + GLuint *framebuffers - GLuint glGenLists + GLuint glGenLists GLsizei range @@ -15836,7 +12759,7 @@ typedef unsigned int GLhandleARB; GLuint *ids - GLuint glGenPathsNV + GLuint glGenPathsNV GLsizei range @@ -15847,42 +12770,42 @@ typedef unsigned int GLhandleARB; void glGenProgramPipelines GLsizei n - GLuint *pipelines + GLuint *pipelines void glGenProgramPipelinesEXT GLsizei n - GLuint *pipelines + GLuint *pipelines void glGenProgramsARB GLsizei n - GLuint *programs + GLuint *programs void glGenProgramsNV GLsizei n - GLuint *programs + GLuint *programs void glGenQueries GLsizei n - GLuint *ids + GLuint *ids void glGenQueriesARB GLsizei n - GLuint *ids + GLuint *ids void glGenQueriesEXT GLsizei n - GLuint *ids + GLuint *ids void glGenQueryResourceTagNV @@ -15892,25 +12815,25 @@ typedef unsigned int GLhandleARB; void glGenRenderbuffers GLsizei n - GLuint *renderbuffers + GLuint *renderbuffers void glGenRenderbuffersEXT GLsizei n - GLuint *renderbuffers + GLuint *renderbuffers void glGenRenderbuffersOES GLsizei n - GLuint *renderbuffers + GLuint *renderbuffers void glGenSamplers GLsizei count - GLuint *samplers + GLuint *samplers void glGenSemaphoresEXT @@ -15927,42 +12850,42 @@ typedef unsigned int GLhandleARB; void glGenTextures GLsizei n - GLuint *textures + GLuint *textures void glGenTexturesEXT GLsizei n - GLuint *textures + GLuint *textures void glGenTransformFeedbacks GLsizei n - GLuint *ids + GLuint *ids void glGenTransformFeedbacksNV GLsizei n - GLuint *ids + GLuint *ids void glGenVertexArrays GLsizei n - GLuint *arrays + GLuint *arrays void glGenVertexArraysAPPLE GLsizei n - GLuint *arrays + GLuint *arrays void glGenVertexArraysOES GLsizei n - GLuint *arrays + GLuint *arrays @@ -15991,23 +12914,23 @@ typedef unsigned int GLhandleARB; void glGenerateTextureMipmap - GLuint texture + GLuint texture void glGenerateTextureMipmapEXT - GLuint texture + GLuint texture GLenum target void glGetActiveAtomicCounterBufferiv - GLuint program + GLuint program GLuint bufferIndex GLenum pname GLint *params void glGetActiveAttrib - GLuint program + GLuint program GLuint index GLsizei bufSize GLsizei *length @@ -16017,7 +12940,7 @@ typedef unsigned int GLhandleARB; void glGetActiveAttribARB - GLhandleARB programObj + GLhandleARB programObj GLuint index GLsizei maxLength GLsizei *length @@ -16028,25 +12951,25 @@ typedef unsigned int GLhandleARB; void glGetActiveSubroutineName - GLuint program + GLuint program GLenum shadertype GLuint index - GLsizei bufsize + GLsizei bufSize GLsizei *length - GLchar *name + GLchar *name void glGetActiveSubroutineUniformName - GLuint program + GLuint program GLenum shadertype GLuint index - GLsizei bufsize + GLsizei bufSize GLsizei *length - GLchar *name + GLchar *name void glGetActiveSubroutineUniformiv - GLuint program + GLuint program GLenum shadertype GLuint index GLenum pname @@ -16054,28 +12977,28 @@ typedef unsigned int GLhandleARB; void glGetActiveUniform - GLuint program + GLuint program GLuint index GLsizei bufSize GLsizei *length GLint *size - GLenum *type + GLenum *type GLchar *name void glGetActiveUniformARB - GLhandleARB programObj + GLhandleARB programObj GLuint index GLsizei maxLength GLsizei *length GLint *size - GLenum *type + GLenum *type GLcharARB *name void glGetActiveUniformBlockName - GLuint program + GLuint program GLuint uniformBlockIndex GLsizei bufSize GLsizei *length @@ -16084,7 +13007,7 @@ typedef unsigned int GLhandleARB; void glGetActiveUniformBlockiv - GLuint program + GLuint program GLuint uniformBlockIndex GLenum pname GLint *params @@ -16092,7 +13015,7 @@ typedef unsigned int GLhandleARB; void glGetActiveUniformName - GLuint program + GLuint program GLuint uniformIndex GLsizei bufSize GLsizei *length @@ -16101,7 +13024,7 @@ typedef unsigned int GLhandleARB; void glGetActiveUniformsiv - GLuint program + GLuint program GLsizei uniformCount const GLuint *uniformIndices GLenum pname @@ -16110,13 +13033,13 @@ typedef unsigned int GLhandleARB; void glGetActiveVaryingNV - GLuint program + GLuint program GLuint index GLsizei bufSize GLsizei *length GLsizei *size GLenum *type - GLchar *name + GLchar *name void glGetArrayObjectfvATI @@ -16132,26 +13055,26 @@ typedef unsigned int GLhandleARB; void glGetAttachedObjectsARB - GLhandleARB containerObj + GLhandleARB containerObj GLsizei maxCount GLsizei *count - GLhandleARB *obj + GLhandleARB *obj void glGetAttachedShaders - GLuint program + GLuint program GLsizei maxCount GLsizei *count - GLuint *shaders + GLuint *shaders GLint glGetAttribLocation - GLuint program + GLuint program const GLchar *name GLint glGetAttribLocationARB - GLhandleARB programObj + GLhandleARB programObj const GLcharARB *name @@ -16159,7 +13082,7 @@ typedef unsigned int GLhandleARB; void glGetBooleanIndexedvEXT GLenum target GLuint index - GLboolean *data + GLboolean *data @@ -16167,12 +13090,12 @@ typedef unsigned int GLhandleARB; void glGetBooleani_v GLenum target GLuint index - GLboolean *data + GLboolean *data void glGetBooleanv GLenum pname - GLboolean *data + GLboolean *data @@ -16217,21 +13140,21 @@ typedef unsigned int GLhandleARB; void glGetBufferPointervOES GLenum target GLenum pname - void **params + void **params void glGetBufferSubData GLenum target - GLintptr offset - GLsizeiptr size + GLintptr offset + GLsizeiptr size void *data void glGetBufferSubDataARB GLenum target - GLintptrARB offset - GLsizeiptrARB size + GLintptrARB offset + GLsizeiptrARB size void *data @@ -16282,42 +13205,42 @@ typedef unsigned int GLhandleARB; void glGetColorTableParameterfv GLenum target - GLenum pname + GLenum pname GLfloat *params void glGetColorTableParameterfvEXT GLenum target - GLenum pname + GLenum pname GLfloat *params void glGetColorTableParameterfvSGI GLenum target - GLenum pname + GLenum pname GLfloat *params void glGetColorTableParameteriv GLenum target - GLenum pname + GLenum pname GLint *params void glGetColorTableParameterivEXT GLenum target - GLenum pname + GLenum pname GLint *params void glGetColorTableParameterivSGI GLenum target - GLenum pname + GLenum pname GLint *params @@ -16371,49 +13294,49 @@ typedef unsigned int GLhandleARB; GLuint glGetCommandHeaderNV - GLenum tokenID + GLenum tokenID GLuint size void glGetCompressedMultiTexImageEXT GLenum texunit GLenum target - GLint lod + GLint lod void *img void glGetCompressedTexImage GLenum target - GLint level - void *img + GLint level + void *img void glGetCompressedTexImageARB GLenum target - GLint level - void *img + GLint level + void *img void glGetCompressedTextureImage - GLuint texture + GLuint texture GLint level GLsizei bufSize - void *pixels + void *pixels void glGetCompressedTextureImageEXT - GLuint texture + GLuint texture GLenum target - GLint lod + GLint lod void *img void glGetCompressedTextureSubImage - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -16422,7 +13345,7 @@ typedef unsigned int GLhandleARB; GLsizei height GLsizei depth GLsizei bufSize - void *pixels + void *pixels void glGetConvolutionFilter @@ -16444,28 +13367,28 @@ typedef unsigned int GLhandleARB; void glGetConvolutionParameterfv GLenum target - GLenum pname + GLenum pname GLfloat *params void glGetConvolutionParameterfvEXT GLenum target - GLenum pname + GLenum pname GLfloat *params void glGetConvolutionParameteriv GLenum target - GLenum pname + GLenum pname GLint *params void glGetConvolutionParameterivEXT GLenum target - GLenum pname + GLenum pname GLint *params @@ -16477,7 +13400,7 @@ typedef unsigned int GLhandleARB; void glGetCoverageModulationTableNV - GLsizei bufsize + GLsizei bufSize GLfloat *v @@ -16494,12 +13417,12 @@ typedef unsigned int GLhandleARB; GLuint glGetDebugMessageLogAMD GLuint count - GLsizei bufsize + GLsizei bufSize GLenum *categories - GLuint *severities + GLenum *severities GLuint *ids GLsizei *lengths - GLchar *message + GLchar *message GLuint glGetDebugMessageLogARB @@ -16533,20 +13456,20 @@ typedef unsigned int GLhandleARB; void glGetDoubleIndexedvEXT - GLenum target + GLenum target GLuint index GLdouble *data void glGetDoublei_v - GLenum target + GLenum target GLuint index GLdouble *data void glGetDoublei_vEXT - GLenum pname + GLenum pname GLuint index GLdouble *params @@ -16576,7 +13499,7 @@ typedef unsigned int GLhandleARB; void glGetFenceivNV - GLuint fence + GLuint fence GLenum pname GLint *params @@ -16597,7 +13520,7 @@ typedef unsigned int GLhandleARB; void glGetFirstPerfQueryIdINTEL - GLuint *queryId + GLuint *queryId void glGetFixedv @@ -16611,34 +13534,34 @@ typedef unsigned int GLhandleARB; void glGetFloatIndexedvEXT - GLenum target + GLenum target GLuint index GLfloat *data void glGetFloati_v - GLenum target + GLenum target GLuint index GLfloat *data void glGetFloati_vEXT - GLenum pname + GLenum pname GLuint index GLfloat *params void glGetFloati_vNV - GLenum target + GLenum target GLuint index GLfloat *data void glGetFloati_vOES - GLenum target + GLenum target GLuint index GLfloat *data @@ -16655,23 +13578,23 @@ typedef unsigned int GLhandleARB; GLint glGetFragDataIndex - GLuint program + GLuint program const GLchar *name GLint glGetFragDataIndexEXT - GLuint program + GLuint program const GLchar *name GLint glGetFragDataLocation - GLuint program + GLuint program const GLchar *name GLint glGetFragDataLocationEXT - GLuint program + GLuint program const GLchar *name @@ -16689,16 +13612,23 @@ typedef unsigned int GLhandleARB; void glGetFragmentMaterialfvSGIX - GLenum face + GLenum face GLenum pname GLfloat *params void glGetFragmentMaterialivSGIX - GLenum face + GLenum face GLenum pname GLint *params + + void glGetFragmentShadingRatesEXT + GLsizei samples + GLsizei maxCount + GLsizei *count + GLenum *shadingRates + void glGetFramebufferAttachmentParameteriv GLenum target @@ -16740,7 +13670,7 @@ typedef unsigned int GLhandleARB; void glGetFramebufferParameterivEXT - GLuint framebuffer + GLuint framebuffer GLenum pname GLint *params @@ -16763,13 +13693,13 @@ typedef unsigned int GLhandleARB; - GLhandleARB glGetHandleARB - GLenum pname + GLhandleARB glGetHandleARB + GLenum pname void glGetHistogram GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type void *values @@ -16779,7 +13709,7 @@ typedef unsigned int GLhandleARB; void glGetHistogramEXT GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type void *values @@ -16821,7 +13751,7 @@ typedef unsigned int GLhandleARB; GLuint64 glGetImageHandleARB - GLuint texture + GLuint texture GLint level GLboolean layered GLint layer @@ -16829,9 +13759,9 @@ typedef unsigned int GLhandleARB; GLuint64 glGetImageHandleNV - GLuint texture + GLuint texture GLint level - GLboolean layered + GLboolean layered GLint layer GLenum format @@ -16849,7 +13779,7 @@ typedef unsigned int GLhandleARB; void glGetInfoLogARB - GLhandleARB obj + GLhandleARB obj GLsizei maxLength GLsizei *length GLcharARB *infoLog @@ -16860,7 +13790,7 @@ typedef unsigned int GLhandleARB; void glGetInteger64i_v - GLenum target + GLenum target GLuint index GLint64 *data @@ -16875,9 +13805,15 @@ typedef unsigned int GLhandleARB; GLint64 *params + + void glGetInteger64vEXT + GLenum pname + GLint64 *data + + void glGetIntegerIndexedvEXT - GLenum target + GLenum target GLuint index GLint *data @@ -16885,13 +13821,13 @@ typedef unsigned int GLhandleARB; void glGetIntegeri_v - GLenum target + GLenum target GLuint index GLint *data void glGetIntegeri_vEXT - GLenum target + GLenum target GLuint index GLint *data @@ -16918,30 +13854,30 @@ typedef unsigned int GLhandleARB; GLenum internalformat GLsizei samples GLenum pname - GLsizei bufSize - GLint *params + GLsizei count + GLint *params void glGetInternalformati64v GLenum target GLenum internalformat GLenum pname - GLsizei bufSize - GLint64 *params + GLsizei count + GLint64 *params void glGetInternalformativ GLenum target GLenum internalformat GLenum pname - GLsizei bufSize - GLint *params + GLsizei count + GLint *params void glGetInvariantBooleanvEXT GLuint id GLenum value - GLboolean *data + GLboolean *data void glGetInvariantFloatvEXT @@ -16989,21 +13925,21 @@ typedef unsigned int GLhandleARB; void glGetListParameterfvSGIX - GLuint list + GLuint list GLenum pname - GLfloat *params + GLfloat *params void glGetListParameterivSGIX - GLuint list + GLuint list GLenum pname - GLint *params + GLint *params void glGetLocalConstantBooleanvEXT GLuint id GLenum value - GLboolean *data + GLboolean *data void glGetLocalConstantFloatvEXT @@ -17038,7 +13974,7 @@ typedef unsigned int GLhandleARB; GLenum type GLsizei ustride GLsizei vstride - GLboolean packed + GLboolean packed void *points @@ -17082,33 +14018,33 @@ typedef unsigned int GLhandleARB; void glGetMaterialfv - GLenum face + GLenum face GLenum pname GLfloat *params void glGetMaterialiv - GLenum face + GLenum face GLenum pname GLint *params void glGetMaterialxOES - GLenum face + GLenum face GLenum pname GLfixed param void glGetMaterialxv - GLenum face + GLenum face GLenum pname GLfixed *params void glGetMaterialxvOES - GLenum face + GLenum face GLenum pname GLfixed *params @@ -17129,7 +14065,7 @@ typedef unsigned int GLhandleARB; void glGetMinmax GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type void *values @@ -17139,7 +14075,7 @@ typedef unsigned int GLhandleARB; void glGetMinmaxEXT GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type void *values @@ -17212,7 +14148,7 @@ typedef unsigned int GLhandleARB; void glGetMultiTexImageEXT GLenum texunit GLenum target - GLint level + GLint level GLenum format GLenum type void *pixels @@ -17221,7 +14157,7 @@ typedef unsigned int GLhandleARB; void glGetMultiTexLevelParameterfvEXT GLenum texunit GLenum target - GLint level + GLint level GLenum pname GLfloat *params @@ -17229,7 +14165,7 @@ typedef unsigned int GLhandleARB; void glGetMultiTexLevelParameterivEXT GLenum texunit GLenum target - GLint level + GLint level GLenum pname GLint *params @@ -17276,57 +14212,57 @@ typedef unsigned int GLhandleARB; void glGetNamedBufferParameteri64v - GLuint buffer - GLenum pname + GLuint buffer + GLenum pname GLint64 *params void glGetNamedBufferParameteriv - GLuint buffer - GLenum pname + GLuint buffer + GLenum pname GLint *params void glGetNamedBufferParameterivEXT - GLuint buffer - GLenum pname + GLuint buffer + GLenum pname GLint *params void glGetNamedBufferParameterui64vNV - GLuint buffer - GLenum pname + GLuint buffer + GLenum pname GLuint64EXT *params void glGetNamedBufferPointerv - GLuint buffer - GLenum pname - void **params + GLuint buffer + GLenum pname + void **params void glGetNamedBufferPointervEXT - GLuint buffer - GLenum pname + GLuint buffer + GLenum pname void **params void glGetNamedBufferSubData - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr size - void *data + GLsizeiptr size + void *data void glGetNamedBufferSubDataEXT - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size void *data void glGetNamedFramebufferParameterfvAMD - GLuint framebuffer + GLuint framebuffer GLenum pname GLuint numsamples GLuint pixelindex @@ -17335,81 +14271,81 @@ typedef unsigned int GLhandleARB; void glGetNamedFramebufferAttachmentParameteriv - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum pname GLint *params void glGetNamedFramebufferAttachmentParameterivEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum pname GLint *params void glGetNamedFramebufferParameteriv - GLuint framebuffer + GLuint framebuffer GLenum pname GLint *param void glGetNamedFramebufferParameterivEXT - GLuint framebuffer + GLuint framebuffer GLenum pname GLint *params void glGetNamedProgramLocalParameterIivEXT - GLuint program + GLuint program GLenum target GLuint index GLint *params void glGetNamedProgramLocalParameterIuivEXT - GLuint program + GLuint program GLenum target GLuint index GLuint *params void glGetNamedProgramLocalParameterdvEXT - GLuint program + GLuint program GLenum target GLuint index GLdouble *params void glGetNamedProgramLocalParameterfvEXT - GLuint program + GLuint program GLenum target GLuint index GLfloat *params void glGetNamedProgramStringEXT - GLuint program + GLuint program GLenum target GLenum pname void *string void glGetNamedProgramivEXT - GLuint program + GLuint program GLenum target GLenum pname GLint *params void glGetNamedRenderbufferParameteriv - GLuint renderbuffer + GLuint renderbuffer GLenum pname GLint *params void glGetNamedRenderbufferParameterivEXT - GLuint renderbuffer + GLuint renderbuffer GLenum pname GLint *params @@ -17430,24 +14366,24 @@ typedef unsigned int GLhandleARB; void glGetNextPerfQueryIdINTEL - GLuint queryId - GLuint *nextQueryId + GLuint queryId + GLuint *nextQueryId void glGetObjectBufferfvATI - GLuint buffer + GLuint buffer GLenum pname GLfloat *params void glGetObjectBufferivATI - GLuint buffer + GLuint buffer GLenum pname GLint *params void glGetObjectLabel - GLenum identifier + GLenum identifier GLuint name GLsizei bufSize GLsizei *length @@ -17472,7 +14408,7 @@ typedef unsigned int GLhandleARB; void glGetObjectParameterfvARB - GLhandleARB obj + GLhandleARB obj GLenum pname GLfloat *params @@ -17485,7 +14421,7 @@ typedef unsigned int GLhandleARB; void glGetObjectParameterivARB - GLhandleARB obj + GLhandleARB obj GLenum pname GLint *params @@ -17530,29 +14466,29 @@ typedef unsigned int GLhandleARB; void glGetPathCommandsNV - GLuint path - GLubyte *commands + GLuint path + GLubyte *commands void glGetPathCoordsNV - GLuint path + GLuint path GLfloat *coords void glGetPathDashArrayNV - GLuint path + GLuint path GLfloat *dashArray GLfloat glGetPathLengthNV - GLuint path + GLuint path GLsizei startSegment GLsizei numSegments void glGetPathMetricRangeNV GLbitfield metricQueryMask - GLuint firstPathName + GLuint firstPathName GLsizei numPaths GLsizei stride GLfloat *metrics @@ -17562,20 +14498,20 @@ typedef unsigned int GLhandleARB; GLbitfield metricQueryMask GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase + const void *paths + GLuint pathBase GLsizei stride GLfloat *metrics void glGetPathParameterfvNV - GLuint path + GLuint path GLenum pname GLfloat *value void glGetPathParameterivNV - GLuint path + GLuint path GLenum pname GLint *value @@ -17584,8 +14520,8 @@ typedef unsigned int GLhandleARB; GLenum pathListMode GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase + const void *paths + GLuint pathBase GLfloat advanceScale GLfloat kerningScale GLenum transformType @@ -17605,12 +14541,12 @@ typedef unsigned int GLhandleARB; void glGetPerfCounterInfoINTEL - GLuint queryId + GLuint queryId GLuint counterId GLuint counterNameLength - GLchar *counterName + GLchar *counterName GLuint counterDescLength - GLchar *counterDesc + GLchar *counterDesc GLuint *counterOffset GLuint *counterDataSize GLuint *counterTypeEnum @@ -17622,7 +14558,7 @@ typedef unsigned int GLhandleARB; GLuint monitor GLenum pname GLsizei dataSize - GLuint *data + GLuint *data GLint *bytesWritten @@ -17663,8 +14599,8 @@ typedef unsigned int GLhandleARB; void glGetPerfQueryDataINTEL - GLuint queryHandle - GLuint flags + GLuint queryHandle + GLuint flags GLsizei dataSize void *data GLuint *bytesWritten @@ -17672,17 +14608,17 @@ typedef unsigned int GLhandleARB; void glGetPerfQueryIdByNameINTEL GLchar *queryName - GLuint *queryId + GLuint *queryId void glGetPerfQueryInfoINTEL - GLuint queryId + GLuint queryId GLuint queryNameLength - GLchar *queryName + GLchar *queryName GLuint *dataSize GLuint *noCounters GLuint *noInstances - GLuint *capsMask + GLuint *capsMask void glGetPixelMapfv @@ -17714,36 +14650,36 @@ typedef unsigned int GLhandleARB; void glGetPixelTexGenParameterfvSGIS GLenum pname - GLfloat *params + GLfloat *params void glGetPixelTexGenParameterivSGIS GLenum pname - GLint *params + GLint *params void glGetPixelTransformParameterfvEXT - GLenum target + GLenum target GLenum pname GLfloat *params void glGetPixelTransformParameterivEXT - GLenum target + GLenum target GLenum pname GLint *params void glGetPointerIndexedvEXT - GLenum target + GLenum target GLuint index void **data void glGetPointeri_vEXT - GLenum pname + GLenum pname GLuint index void **params @@ -17762,7 +14698,7 @@ typedef unsigned int GLhandleARB; void glGetPointervKHR GLenum pname - void **params + void **params @@ -17773,7 +14709,7 @@ typedef unsigned int GLhandleARB; void glGetProgramBinary - GLuint program + GLuint program GLsizei bufSize GLsizei *length GLenum *binaryFormat @@ -17781,7 +14717,7 @@ typedef unsigned int GLhandleARB; void glGetProgramBinaryOES - GLuint program + GLuint program GLsizei bufSize GLsizei *length GLenum *binaryFormat @@ -17802,19 +14738,19 @@ typedef unsigned int GLhandleARB; void glGetProgramEnvParameterdvARB - GLenum target + GLenum target GLuint index GLdouble *params void glGetProgramEnvParameterfvARB - GLenum target + GLenum target GLuint index GLfloat *params void glGetProgramInfoLog - GLuint program + GLuint program GLsizei bufSize GLsizei *length GLchar *infoLog @@ -17822,7 +14758,7 @@ typedef unsigned int GLhandleARB; void glGetProgramInterfaceiv - GLuint program + GLuint program GLenum programInterface GLenum pname GLint *params @@ -17841,19 +14777,19 @@ typedef unsigned int GLhandleARB; void glGetProgramLocalParameterdvARB - GLenum target + GLenum target GLuint index GLdouble *params void glGetProgramLocalParameterfvARB - GLenum target + GLenum target GLuint index GLfloat *params void glGetProgramNamedParameterdvNV - GLuint id + GLuint id GLsizei len const GLubyte *name GLdouble *params @@ -17861,7 +14797,7 @@ typedef unsigned int GLhandleARB; void glGetProgramNamedParameterfvNV - GLuint id + GLuint id GLsizei len const GLubyte *name GLfloat *params @@ -17885,57 +14821,57 @@ typedef unsigned int GLhandleARB; void glGetProgramPipelineInfoLog - GLuint pipeline + GLuint pipeline GLsizei bufSize GLsizei *length GLchar *infoLog void glGetProgramPipelineInfoLogEXT - GLuint pipeline + GLuint pipeline GLsizei bufSize GLsizei *length GLchar *infoLog void glGetProgramPipelineiv - GLuint pipeline + GLuint pipeline GLenum pname GLint *params void glGetProgramPipelineivEXT - GLuint pipeline + GLuint pipeline GLenum pname GLint *params GLuint glGetProgramResourceIndex - GLuint program + GLuint program GLenum programInterface const GLchar *name GLint glGetProgramResourceLocation - GLuint program + GLuint program GLenum programInterface const GLchar *name GLint glGetProgramResourceLocationIndex - GLuint program + GLuint program GLenum programInterface const GLchar *name GLint glGetProgramResourceLocationIndexEXT - GLuint program + GLuint program GLenum programInterface const GLchar *name void glGetProgramResourceName - GLuint program + GLuint program GLenum programInterface GLuint index GLsizei bufSize @@ -17944,44 +14880,44 @@ typedef unsigned int GLhandleARB; void glGetProgramResourcefvNV - GLuint program + GLuint program GLenum programInterface GLuint index GLsizei propCount const GLenum *props - GLsizei bufSize - GLsizei *length - GLfloat *params + GLsizei count + GLsizei *length + GLfloat *params void glGetProgramResourceiv - GLuint program + GLuint program GLenum programInterface GLuint index GLsizei propCount - const GLenum *props - GLsizei bufSize + const GLenum *props + GLsizei count GLsizei *length - GLint *params + GLint *params void glGetProgramStageiv - GLuint program + GLuint program GLenum shadertype GLenum pname GLint *values void glGetProgramStringARB - GLenum target - GLenum pname + GLenum target + GLenum pname void *string void glGetProgramStringNV - GLuint id + GLuint id GLenum pname - GLubyte *program + GLubyte *program @@ -17992,68 +14928,68 @@ typedef unsigned int GLhandleARB; void glGetProgramiv - GLuint program + GLuint program GLenum pname GLint *params void glGetProgramivARB - GLenum target + GLenum target GLenum pname GLint *params void glGetProgramivNV - GLuint id + GLuint id GLenum pname GLint *params void glGetQueryBufferObjecti64v - GLuint id - GLuint buffer + GLuint id + GLuint buffer GLenum pname GLintptr offset void glGetQueryBufferObjectiv - GLuint id - GLuint buffer + GLuint id + GLuint buffer GLenum pname GLintptr offset void glGetQueryBufferObjectui64v - GLuint id - GLuint buffer + GLuint id + GLuint buffer GLenum pname GLintptr offset void glGetQueryBufferObjectuiv - GLuint id - GLuint buffer + GLuint id + GLuint buffer GLenum pname GLintptr offset void glGetQueryIndexediv - GLenum target + GLenum target GLuint index GLenum pname GLint *params void glGetQueryObjecti64v - GLuint id + GLuint id GLenum pname GLint64 *params void glGetQueryObjecti64vEXT - GLuint id + GLuint id GLenum pname GLint64 *params @@ -18061,34 +14997,34 @@ typedef unsigned int GLhandleARB; void glGetQueryObjectiv - GLuint id + GLuint id GLenum pname GLint *params void glGetQueryObjectivARB - GLuint id + GLuint id GLenum pname GLint *params void glGetQueryObjectivEXT - GLuint id + GLuint id GLenum pname GLint *params void glGetQueryObjectui64v - GLuint id + GLuint id GLenum pname GLuint64 *params void glGetQueryObjectui64vEXT - GLuint id + GLuint id GLenum pname GLuint64 *params @@ -18096,21 +15032,21 @@ typedef unsigned int GLhandleARB; void glGetQueryObjectuiv - GLuint id + GLuint id GLenum pname GLuint *params void glGetQueryObjectuivARB - GLuint id + GLuint id GLenum pname GLuint *params void glGetQueryObjectuivEXT - GLuint id + GLuint id GLenum pname GLuint *params @@ -18157,56 +15093,62 @@ typedef unsigned int GLhandleARB; void glGetSamplerParameterIiv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLint *params void glGetSamplerParameterIivEXT - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLint *params void glGetSamplerParameterIivOES - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLint *params void glGetSamplerParameterIuiv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLuint *params void glGetSamplerParameterIuivEXT - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLuint *params void glGetSamplerParameterIuivOES - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLuint *params void glGetSamplerParameterfv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLfloat *params void glGetSamplerParameteriv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLint *params + + void glGetSemaphoreParameterivNV + GLuint semaphore + GLenum pname + GLint *params + void glGetSemaphoreParameterui64vEXT GLuint semaphore @@ -18236,7 +15178,7 @@ typedef unsigned int GLhandleARB; void glGetShaderInfoLog - GLuint shader + GLuint shader GLsizei bufSize GLsizei *length GLchar *infoLog @@ -18251,14 +15193,14 @@ typedef unsigned int GLhandleARB; void glGetShaderSource - GLuint shader + GLuint shader GLsizei bufSize GLsizei *length GLchar *source void glGetShaderSourceARB - GLhandleARB obj + GLhandleARB obj GLsizei maxLength GLsizei *length GLcharARB *source @@ -18266,11 +15208,24 @@ typedef unsigned int GLhandleARB; void glGetShaderiv - GLuint shader + GLuint shader GLenum pname GLint *params + + void glGetShadingRateImagePaletteNV + GLuint viewport + GLuint entry + GLenum *rate + + + void glGetShadingRateSampleLocationivNV + GLenum rate + GLuint samples + GLuint index + GLint *location + void glGetSharpenTexFuncSGIS GLenum target @@ -18281,44 +15236,49 @@ typedef unsigned int GLhandleARB; GLushort glGetStageIndexNV GLenum shadertype + - const GLubyte *glGetString + const GLubyte *glGetString GLenum name - const GLubyte *glGetStringi + const GLubyte *glGetStringi GLenum name GLuint index GLuint glGetSubroutineIndex - GLuint program + GLuint program GLenum shadertype const GLchar *name GLint glGetSubroutineUniformLocation - GLuint program + GLuint program GLenum shadertype const GLchar *name void glGetSynciv - GLsync sync + GLsync sync GLenum pname - GLsizei bufSize + GLsizei count GLsizei *length - GLint *values + GLint *values void glGetSyncivAPPLE - GLsync sync + GLsync sync GLenum pname - GLsizei bufSize + GLsizei count GLsizei *length - GLint *values + GLint *values @@ -18406,7 +15366,7 @@ typedef unsigned int GLhandleARB; void glGetTexImage GLenum target - GLint level + GLint level GLenum format GLenum type void *pixels @@ -18416,7 +15376,7 @@ typedef unsigned int GLhandleARB; void glGetTexLevelParameterfv GLenum target - GLint level + GLint level GLenum pname GLfloat *params @@ -18424,7 +15384,7 @@ typedef unsigned int GLhandleARB; void glGetTexLevelParameteriv GLenum target - GLint level + GLint level GLenum pname GLint *params @@ -18512,136 +15472,136 @@ typedef unsigned int GLhandleARB; GLuint64 glGetTextureHandleARB - GLuint texture + GLuint texture GLuint64 glGetTextureHandleIMG - GLuint texture + GLuint texture GLuint64 glGetTextureHandleNV - GLuint texture + GLuint texture void glGetTextureImage - GLuint texture + GLuint texture GLint level GLenum format GLenum type GLsizei bufSize - void *pixels + void *pixels void glGetTextureImageEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum format GLenum type void *pixels void glGetTextureLevelParameterfv - GLuint texture + GLuint texture GLint level GLenum pname GLfloat *params void glGetTextureLevelParameterfvEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum pname GLfloat *params void glGetTextureLevelParameteriv - GLuint texture + GLuint texture GLint level GLenum pname GLint *params void glGetTextureLevelParameterivEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLenum pname GLint *params void glGetTextureParameterIiv - GLuint texture + GLuint texture GLenum pname GLint *params void glGetTextureParameterIivEXT - GLuint texture + GLuint texture GLenum target GLenum pname GLint *params void glGetTextureParameterIuiv - GLuint texture + GLuint texture GLenum pname GLuint *params void glGetTextureParameterIuivEXT - GLuint texture + GLuint texture GLenum target GLenum pname GLuint *params void glGetTextureParameterfv - GLuint texture + GLuint texture GLenum pname GLfloat *params void glGetTextureParameterfvEXT - GLuint texture + GLuint texture GLenum target GLenum pname GLfloat *params void glGetTextureParameteriv - GLuint texture + GLuint texture GLenum pname GLint *params void glGetTextureParameterivEXT - GLuint texture + GLuint texture GLenum target GLenum pname GLint *params GLuint64 glGetTextureSamplerHandleARB - GLuint texture - GLuint sampler + GLuint texture + GLuint sampler GLuint64 glGetTextureSamplerHandleIMG - GLuint texture - GLuint sampler + GLuint texture + GLuint sampler GLuint64 glGetTextureSamplerHandleNV - GLuint texture - GLuint sampler + GLuint texture + GLuint sampler void glGetTextureSubImage - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -18652,7 +15612,7 @@ typedef unsigned int GLhandleARB; GLenum format GLenum type GLsizei bufSize - void *pixels + void *pixels void glGetTrackMatrixivNV @@ -18664,73 +15624,73 @@ typedef unsigned int GLhandleARB; void glGetTransformFeedbackVarying - GLuint program + GLuint program GLuint index GLsizei bufSize GLsizei *length GLsizei *size - GLenum *type + GLenum *type GLchar *name void glGetTransformFeedbackVaryingEXT - GLuint program + GLuint program GLuint index GLsizei bufSize GLsizei *length GLsizei *size - GLenum *type + GLenum *type GLchar *name void glGetTransformFeedbackVaryingNV - GLuint program + GLuint program GLuint index GLint *location void glGetTransformFeedbacki64_v - GLuint xfb + GLuint xfb GLenum pname GLuint index GLint64 *param void glGetTransformFeedbacki_v - GLuint xfb + GLuint xfb GLenum pname GLuint index GLint *param void glGetTransformFeedbackiv - GLuint xfb + GLuint xfb GLenum pname GLint *param void glGetTranslatedShaderSourceANGLE - GLuint shader - GLsizei bufsize + GLuint shader + GLsizei bufSize GLsizei *length - GLchar *source + GLchar *source GLuint glGetUniformBlockIndex - GLuint program + GLuint program const GLchar *uniformBlockName GLint glGetUniformBufferSizeEXT - GLuint program + GLuint program GLint location void glGetUniformIndices - GLuint program + GLuint program GLsizei uniformCount const GLchar *const*uniformNames GLuint *uniformIndices @@ -18738,18 +15698,18 @@ typedef unsigned int GLhandleARB; GLint glGetUniformLocation - GLuint program + GLuint program const GLchar *name GLint glGetUniformLocationARB - GLhandleARB programObj + GLhandleARB programObj const GLcharARB *name - GLintptr glGetUniformOffsetEXT - GLuint program + GLintptr glGetUniformOffsetEXT + GLuint program GLint location @@ -18760,69 +15720,69 @@ typedef unsigned int GLhandleARB; void glGetUniformdv - GLuint program + GLuint program GLint location GLdouble *params void glGetUniformfv - GLuint program + GLuint program GLint location GLfloat *params void glGetUniformfvARB - GLhandleARB programObj + GLhandleARB programObj GLint location GLfloat *params void glGetUniformi64vARB - GLuint program + GLuint program GLint location GLint64 *params void glGetUniformi64vNV - GLuint program + GLuint program GLint location GLint64EXT *params void glGetUniformiv - GLuint program + GLuint program GLint location GLint *params void glGetUniformivARB - GLhandleARB programObj + GLhandleARB programObj GLint location GLint *params void glGetUniformui64vARB - GLuint program + GLuint program GLint location GLuint64 *params void glGetUniformui64vNV - GLuint program + GLuint program GLint location GLuint64EXT *params void glGetUniformuiv - GLuint program + GLuint program GLint location GLuint *params void glGetUniformuivEXT - GLuint program + GLuint program GLint location GLuint *params @@ -18854,7 +15814,7 @@ typedef unsigned int GLhandleARB; void glGetVariantBooleanvEXT GLuint id GLenum value - GLboolean *data + GLboolean *data void glGetVariantFloatvEXT @@ -18876,52 +15836,52 @@ typedef unsigned int GLhandleARB; GLint glGetVaryingLocationNV - GLuint program + GLuint program const GLchar *name void glGetVertexArrayIndexed64iv - GLuint vaobj + GLuint vaobj GLuint index GLenum pname GLint64 *param void glGetVertexArrayIndexediv - GLuint vaobj + GLuint vaobj GLuint index GLenum pname GLint *param void glGetVertexArrayIntegeri_vEXT - GLuint vaobj + GLuint vaobj GLuint index GLenum pname GLint *param void glGetVertexArrayIntegervEXT - GLuint vaobj + GLuint vaobj GLenum pname GLint *param void glGetVertexArrayPointeri_vEXT - GLuint vaobj + GLuint vaobj GLuint index GLenum pname - void **param + void **param void glGetVertexArrayPointervEXT - GLuint vaobj + GLuint vaobj GLenum pname void **param void glGetVertexArrayiv - GLuint vaobj + GLuint vaobj GLenum pname GLint *param @@ -19141,7 +16101,7 @@ typedef unsigned int GLhandleARB; GLenum format GLenum type GLsizei bufSize - void *table + void *table void glGetnColorTableARB @@ -19156,7 +16116,7 @@ typedef unsigned int GLhandleARB; GLenum target GLint lod GLsizei bufSize - void *pixels + void *pixels void glGetnCompressedTexImageARB @@ -19171,7 +16131,7 @@ typedef unsigned int GLhandleARB; GLenum format GLenum type GLsizei bufSize - void *image + void *image void glGetnConvolutionFilterARB @@ -19183,17 +16143,17 @@ typedef unsigned int GLhandleARB; void glGetnHistogram - GLenum target + GLenum target GLboolean reset GLenum format GLenum type GLsizei bufSize - void *values + void *values void glGetnHistogramARB GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type GLsizei bufSize @@ -19204,14 +16164,14 @@ typedef unsigned int GLhandleARB; GLenum target GLenum query GLsizei bufSize - GLdouble *v + GLdouble *v void glGetnMapdvARB GLenum target GLenum query GLsizei bufSize - GLdouble *v + GLdouble *v void glGetnMapfv @@ -19243,17 +16203,17 @@ typedef unsigned int GLhandleARB; void glGetnMinmax - GLenum target + GLenum target GLboolean reset GLenum format GLenum type GLsizei bufSize - void *values + void *values void glGetnMinmaxARB GLenum target - GLboolean reset + GLboolean reset GLenum format GLenum type GLsizei bufSize @@ -19263,13 +16223,13 @@ typedef unsigned int GLhandleARB; void glGetnPixelMapfv GLenum map GLsizei bufSize - GLfloat *values + GLfloat *values void glGetnPixelMapfvARB GLenum map GLsizei bufSize - GLfloat *values + GLfloat *values void glGetnPixelMapuiv @@ -19298,7 +16258,7 @@ typedef unsigned int GLhandleARB; void glGetnPolygonStipple GLsizei bufSize - GLubyte *pattern + GLubyte *pattern void glGetnPolygonStippleARB @@ -19307,14 +16267,14 @@ typedef unsigned int GLhandleARB; void glGetnSeparableFilter - GLenum target + GLenum target GLenum format GLenum type GLsizei rowBufSize - void *row + void *row GLsizei columnBufSize - void *column - void *span + void *column + void *span void glGetnSeparableFilterARB @@ -19347,112 +16307,112 @@ typedef unsigned int GLhandleARB; void glGetnUniformdv - GLuint program + GLuint program GLint location GLsizei bufSize - GLdouble *params + GLdouble *params void glGetnUniformdvARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLdouble *params + GLdouble *params void glGetnUniformfv - GLuint program + GLuint program GLint location GLsizei bufSize - GLfloat *params + GLfloat *params void glGetnUniformfvARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLfloat *params + GLfloat *params void glGetnUniformfvEXT - GLuint program + GLuint program GLint location GLsizei bufSize - GLfloat *params + GLfloat *params void glGetnUniformfvKHR - GLuint program + GLuint program GLint location GLsizei bufSize - GLfloat *params + GLfloat *params void glGetnUniformi64vARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLint64 *params + GLint64 *params void glGetnUniformiv - GLuint program + GLuint program GLint location GLsizei bufSize - GLint *params + GLint *params void glGetnUniformivARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLint *params + GLint *params void glGetnUniformivEXT - GLuint program + GLuint program GLint location GLsizei bufSize - GLint *params + GLint *params void glGetnUniformivKHR - GLuint program + GLuint program GLint location GLsizei bufSize - GLint *params + GLint *params void glGetnUniformui64vARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLuint64 *params + GLuint64 *params void glGetnUniformuiv - GLuint program + GLuint program GLint location GLsizei bufSize - GLuint *params + GLuint *params void glGetnUniformuivARB - GLuint program + GLuint program GLint location GLsizei bufSize - GLuint *params + GLuint *params void glGetnUniformuivKHR - GLuint program + GLuint program GLint location GLsizei bufSize - GLuint *params + GLuint *params @@ -19496,14 +16456,14 @@ typedef unsigned int GLhandleARB; void glHintPGI GLenum target - GLint mode + GLint mode void glHistogram GLenum target GLsizei width GLenum internalformat - GLboolean sink + GLboolean sink @@ -19511,14 +16471,14 @@ typedef unsigned int GLhandleARB; GLenum target GLsizei width GLenum internalformat - GLboolean sink + GLboolean sink void glIglooInterfaceSGIX - GLenum pname - const void *params + GLenum pname + const void *params @@ -19585,7 +16545,7 @@ typedef unsigned int GLhandleARB; const void *name - GLsync glImportSyncEXT + GLsync glImportSyncEXT GLenum external_sync_type GLintptr external_sync GLbitfield flags @@ -19598,16 +16558,16 @@ typedef unsigned int GLhandleARB; void glIndexFuncEXT GLenum func - GLclampf ref + GLclampf ref void glIndexMask - GLuint mask + GLuint mask void glIndexMaterialEXT - GLenum face + GLenum face GLenum mode @@ -19632,52 +16592,52 @@ typedef unsigned int GLhandleARB; void glIndexd - GLdouble c + GLdouble c void glIndexdv - const GLdouble *c + const GLdouble *c void glIndexf - GLfloat c + GLfloat c void glIndexfv - const GLfloat *c + const GLfloat *c void glIndexi - GLint c + GLint c void glIndexiv - const GLint *c + const GLint *c void glIndexs - GLshort c + GLshort c void glIndexsv - const GLshort *c + const GLshort *c void glIndexub - GLubyte c + GLubyte c void glIndexubv - const GLubyte *c + const GLubyte *c @@ -19717,38 +16677,38 @@ typedef unsigned int GLhandleARB; void glInterpolatePathsNV - GLuint resultPath - GLuint pathA - GLuint pathB + GLuint resultPath + GLuint pathA + GLuint pathB GLfloat weight void glInvalidateBufferData - GLuint buffer + GLuint buffer void glInvalidateBufferSubData - GLuint buffer - GLintptr offset - GLsizeiptr length + GLuint buffer + GLintptr offset + GLsizeiptr length void glInvalidateFramebuffer GLenum target GLsizei numAttachments - const GLenum *attachments + const GLenum *attachments void glInvalidateNamedFramebufferData - GLuint framebuffer + GLuint framebuffer GLsizei numAttachments - const GLenum *attachments + const GLenum *attachments void glInvalidateNamedFramebufferSubData - GLuint framebuffer + GLuint framebuffer GLsizei numAttachments - const GLenum *attachments + const GLenum *attachments GLint x GLint y GLsizei width @@ -19756,9 +16716,9 @@ typedef unsigned int GLhandleARB; void glInvalidateSubFramebuffer - GLenum target + GLenum target GLsizei numAttachments - const GLenum *attachments + const GLenum *attachments GLint x GLint y GLsizei width @@ -19766,12 +16726,12 @@ typedef unsigned int GLhandleARB; void glInvalidateTexImage - GLuint texture + GLuint texture GLint level void glInvalidateTexSubImage - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -19781,20 +16741,20 @@ typedef unsigned int GLhandleARB; GLsizei depth - GLboolean glIsAsyncMarkerSGIX + GLboolean glIsAsyncMarkerSGIX GLuint marker - GLboolean glIsBuffer - GLuint buffer + GLboolean glIsBuffer + GLuint buffer - GLboolean glIsBufferARB - GLuint buffer + GLboolean glIsBufferARB + GLuint buffer - GLboolean glIsBufferResidentNV + GLboolean glIsBufferResidentNV GLenum target @@ -19802,184 +16762,184 @@ typedef unsigned int GLhandleARB; GLuint list - GLboolean glIsEnabled + GLboolean glIsEnabled GLenum cap - GLboolean glIsEnabledIndexedEXT + GLboolean glIsEnabledIndexedEXT GLenum target GLuint index - GLboolean glIsEnabledi + GLboolean glIsEnabledi GLenum target GLuint index - GLboolean glIsEnablediEXT + GLboolean glIsEnablediEXT GLenum target GLuint index - GLboolean glIsEnablediNV + GLboolean glIsEnablediNV GLenum target GLuint index - GLboolean glIsEnablediOES + GLboolean glIsEnablediOES GLenum target GLuint index - GLboolean glIsFenceAPPLE - GLuint fence + GLboolean glIsFenceAPPLE + GLuint fence - GLboolean glIsFenceNV - GLuint fence + GLboolean glIsFenceNV + GLuint fence - GLboolean glIsFramebuffer - GLuint framebuffer + GLboolean glIsFramebuffer + GLuint framebuffer - GLboolean glIsFramebufferEXT - GLuint framebuffer + GLboolean glIsFramebufferEXT + GLuint framebuffer GLboolean glIsFramebufferOES - GLuint framebuffer + GLuint framebuffer GLboolean glIsImageHandleResidentARB GLuint64 handle - GLboolean glIsImageHandleResidentNV + GLboolean glIsImageHandleResidentNV GLuint64 handle - GLboolean glIsList - GLuint list + GLboolean glIsList + GLuint list - GLboolean glIsMemoryObjectEXT + GLboolean glIsMemoryObjectEXT GLuint memoryObject - GLboolean glIsNameAMD + GLboolean glIsNameAMD GLenum identifier GLuint name - GLboolean glIsNamedBufferResidentNV - GLuint buffer + GLboolean glIsNamedBufferResidentNV + GLuint buffer - GLboolean glIsNamedStringARB + GLboolean glIsNamedStringARB GLint namelen const GLchar *name - GLboolean glIsObjectBufferATI - GLuint buffer + GLboolean glIsObjectBufferATI + GLuint buffer - GLboolean glIsOcclusionQueryNV + GLboolean glIsOcclusionQueryNV GLuint id - GLboolean glIsPathNV - GLuint path + GLboolean glIsPathNV + GLuint path - GLboolean glIsPointInFillPathNV - GLuint path - GLuint mask + GLboolean glIsPointInFillPathNV + GLuint path + GLuint mask GLfloat x GLfloat y - GLboolean glIsPointInStrokePathNV - GLuint path + GLboolean glIsPointInStrokePathNV + GLuint path GLfloat x GLfloat y - GLboolean glIsProgram - GLuint program + GLboolean glIsProgram + GLuint program - GLboolean glIsProgramARB - GLuint program + GLboolean glIsProgramARB + GLuint program - GLboolean glIsProgramNV - GLuint id + GLboolean glIsProgramNV + GLuint id - GLboolean glIsProgramPipeline - GLuint pipeline + GLboolean glIsProgramPipeline + GLuint pipeline GLboolean glIsProgramPipelineEXT - GLuint pipeline + GLuint pipeline - GLboolean glIsQuery - GLuint id + GLboolean glIsQuery + GLuint id - GLboolean glIsQueryARB - GLuint id + GLboolean glIsQueryARB + GLuint id GLboolean glIsQueryEXT - GLuint id + GLuint id - GLboolean glIsRenderbuffer - GLuint renderbuffer + GLboolean glIsRenderbuffer + GLuint renderbuffer - GLboolean glIsRenderbufferEXT - GLuint renderbuffer + GLboolean glIsRenderbufferEXT + GLuint renderbuffer GLboolean glIsRenderbufferOES - GLuint renderbuffer + GLuint renderbuffer - GLboolean glIsSemaphoreEXT + GLboolean glIsSemaphoreEXT GLuint semaphore - GLboolean glIsSampler - GLuint sampler + GLboolean glIsSampler + GLuint sampler - GLboolean glIsShader - GLuint shader + GLboolean glIsShader + GLuint shader @@ -19987,22 +16947,22 @@ typedef unsigned int GLhandleARB; GLuint state - GLboolean glIsSync - GLsync sync + GLboolean glIsSync + GLsync sync GLboolean glIsSyncAPPLE - GLsync sync + GLsync sync - GLboolean glIsTexture - GLuint texture + GLboolean glIsTexture + GLuint texture - GLboolean glIsTextureEXT - GLuint texture + GLboolean glIsTextureEXT + GLuint texture @@ -20010,40 +16970,40 @@ typedef unsigned int GLhandleARB; GLuint64 handle - GLboolean glIsTextureHandleResidentNV + GLboolean glIsTextureHandleResidentNV GLuint64 handle - GLboolean glIsTransformFeedback - GLuint id + GLboolean glIsTransformFeedback + GLuint id - GLboolean glIsTransformFeedbackNV - GLuint id + GLboolean glIsTransformFeedbackNV + GLuint id - GLboolean glIsVariantEnabledEXT + GLboolean glIsVariantEnabledEXT GLuint id GLenum cap - GLboolean glIsVertexArray - GLuint array + GLboolean glIsVertexArray + GLuint array - GLboolean glIsVertexArrayAPPLE - GLuint array + GLboolean glIsVertexArrayAPPLE + GLuint array GLboolean glIsVertexArrayOES - GLuint array + GLuint array - GLboolean glIsVertexAttribEnabledAPPLE + GLboolean glIsVertexAttribEnabledAPPLE GLuint index GLenum pname @@ -20073,7 +17033,7 @@ typedef unsigned int GLhandleARB; void glLGPUNamedBufferSubDataNVX GLbitfield gpuMask - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size const void *data @@ -20088,7 +17048,7 @@ typedef unsigned int GLhandleARB; void glLightEnviSGIX GLenum pname - GLint param + GLint param void glLightModelf @@ -20138,28 +17098,28 @@ typedef unsigned int GLhandleARB; void glLightf GLenum light GLenum pname - GLfloat param + GLfloat param void glLightfv GLenum light GLenum pname - const GLfloat *params + const GLfloat *params void glLighti GLenum light GLenum pname - GLint param + GLint param void glLightiv GLenum light GLenum pname - const GLint *params + const GLint *params @@ -20188,13 +17148,13 @@ typedef unsigned int GLhandleARB; void glLineStipple - GLint factor - GLushort pattern + GLint factor + GLushort pattern void glLineWidth - GLfloat width + GLfloat width @@ -20207,54 +17167,54 @@ typedef unsigned int GLhandleARB; void glLinkProgram - GLuint program + GLuint program void glLinkProgramARB - GLhandleARB programObj + GLhandleARB programObj void glListBase - GLuint base + GLuint base void glListDrawCommandsStatesClientNV GLuint list GLuint segment - const void **indirects - const GLsizei *sizes - const GLuint *states - const GLuint *fbos + const void **indirects + const GLsizei *sizes + const GLuint *states + const GLuint *fbos GLuint count void glListParameterfSGIX - GLuint list + GLuint list GLenum pname - GLfloat param + GLfloat param void glListParameterfvSGIX - GLuint list + GLuint list GLenum pname - const GLfloat *params + const GLfloat *params void glListParameteriSGIX - GLuint list + GLuint list GLenum pname - GLint param + GLint param void glListParameterivSGIX - GLuint list + GLuint list GLenum pname - const GLint *params + const GLint *params @@ -20286,7 +17246,7 @@ typedef unsigned int GLhandleARB; void glLoadName - GLuint name + GLuint name @@ -20361,11 +17321,11 @@ typedef unsigned int GLhandleARB; void glMakeNamedBufferNonResidentNV - GLuint buffer + GLuint buffer void glMakeNamedBufferResidentNV - GLuint buffer + GLuint buffer GLenum access @@ -20387,21 +17347,21 @@ typedef unsigned int GLhandleARB; void glMap1d GLenum target - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint stride - GLint order - const GLdouble *points + GLint order + const GLdouble *points void glMap1f GLenum target - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint stride - GLint order - const GLfloat *points + GLint order + const GLfloat *points @@ -20416,29 +17376,29 @@ typedef unsigned int GLhandleARB; void glMap2d GLenum target - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint ustride - GLint uorder - GLdouble v1 - GLdouble v2 + GLint uorder + GLdouble v1 + GLdouble v2 GLint vstride - GLint vorder - const GLdouble *points + GLint vorder + const GLdouble *points void glMap2f GLenum target - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint ustride - GLint uorder - GLfloat v1 - GLfloat v2 + GLint uorder + GLfloat v1 + GLfloat v2 GLint vstride - GLint vorder - const GLfloat *points + GLint vorder + const GLfloat *points @@ -20474,9 +17434,9 @@ typedef unsigned int GLhandleARB; void *glMapBufferRange GLenum target - GLintptr offset - GLsizeiptr length - GLbitfield access + GLintptr offset + GLsizeiptr length + GLbitfield access @@ -20484,7 +17444,7 @@ typedef unsigned int GLhandleARB; GLenum target GLintptr offset GLsizeiptr length - GLbitfield access + GLbitfield access @@ -20494,23 +17454,23 @@ typedef unsigned int GLhandleARB; GLenum type GLsizei ustride GLsizei vstride - GLint uorder - GLint vorder - GLboolean packed + GLint uorder + GLint vorder + GLboolean packed const void *points void glMapGrid1d GLint un - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 void glMapGrid1f GLint un - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 @@ -20522,21 +17482,21 @@ typedef unsigned int GLhandleARB; void glMapGrid2d GLint un - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint vn - GLdouble v1 - GLdouble v2 + GLdouble v1 + GLdouble v2 void glMapGrid2f GLint un - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint vn - GLfloat v1 - GLfloat v2 + GLfloat v1 + GLfloat v2 @@ -20549,47 +17509,47 @@ typedef unsigned int GLhandleARB; void *glMapNamedBuffer - GLuint buffer + GLuint buffer GLenum access void *glMapNamedBufferEXT - GLuint buffer + GLuint buffer GLenum access void *glMapNamedBufferRange - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr length - GLbitfield access + GLsizeiptr length + GLbitfield access void *glMapNamedBufferRangeEXT - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr length - GLbitfield access + GLbitfield access void *glMapObjectBufferATI - GLuint buffer + GLuint buffer void glMapParameterfvNV GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glMapParameterivNV GLenum target GLenum pname - const GLint *params + const GLint *params void *glMapTexture2DINTEL - GLuint texture + GLuint texture GLint level GLbitfield access GLint *stride @@ -20599,99 +17559,99 @@ typedef unsigned int GLhandleARB; void glMapVertexAttrib1dAPPLE GLuint index GLuint size - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint stride - GLint order - const GLdouble *points + GLint order + const GLdouble *points void glMapVertexAttrib1fAPPLE GLuint index GLuint size - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint stride - GLint order - const GLfloat *points + GLint order + const GLfloat *points void glMapVertexAttrib2dAPPLE GLuint index GLuint size - GLdouble u1 - GLdouble u2 + GLdouble u1 + GLdouble u2 GLint ustride - GLint uorder - GLdouble v1 - GLdouble v2 + GLint uorder + GLdouble v1 + GLdouble v2 GLint vstride - GLint vorder - const GLdouble *points + GLint vorder + const GLdouble *points void glMapVertexAttrib2fAPPLE GLuint index GLuint size - GLfloat u1 - GLfloat u2 + GLfloat u1 + GLfloat u2 GLint ustride - GLint uorder - GLfloat v1 - GLfloat v2 + GLint uorder + GLfloat v1 + GLfloat v2 GLint vstride - GLint vorder - const GLfloat *points + GLint vorder + const GLfloat *points void glMaterialf - GLenum face + GLenum face GLenum pname - GLfloat param + GLfloat param void glMaterialfv - GLenum face + GLenum face GLenum pname - const GLfloat *params + const GLfloat *params void glMateriali - GLenum face + GLenum face GLenum pname - GLint param + GLint param void glMaterialiv - GLenum face + GLenum face GLenum pname - const GLint *params + const GLint *params void glMaterialx - GLenum face + GLenum face GLenum pname GLfixed param void glMaterialxOES - GLenum face + GLenum face GLenum pname GLfixed param void glMaterialxv - GLenum face + GLenum face GLenum pname const GLfixed *param void glMaterialxvOES - GLenum face + GLenum face GLenum pname const GLfixed *param @@ -20878,6 +17838,10 @@ typedef unsigned int GLhandleARB; GLfloat y GLfloat z + + void glMaxActiveShaderCoresARM + GLuint count + void glMaxShaderCompilerThreadsKHR GLuint count @@ -20908,30 +17872,30 @@ typedef unsigned int GLhandleARB; void glMinSampleShading - GLfloat value + GLfloat value void glMinSampleShadingARB - GLfloat value + GLfloat value void glMinSampleShadingOES - GLfloat value + GLfloat value void glMinmax GLenum target GLenum internalformat - GLboolean sink + GLboolean sink void glMinmaxEXT GLenum target GLenum internalformat - GLboolean sink + GLboolean sink @@ -20978,15 +17942,15 @@ typedef unsigned int GLhandleARB; void glMultiDrawArrays GLenum mode - const GLint *first - const GLsizei *count + const GLint *first + const GLsizei *count GLsizei drawcount void glMultiDrawArraysEXT GLenum mode - const GLint *first - const GLsizei *count + const GLint *first + const GLsizei *count GLsizei primcount @@ -21000,7 +17964,7 @@ typedef unsigned int GLhandleARB; void glMultiDrawArraysIndirectAMD GLenum mode - const void *indirect + const void *indirect GLsizei primcount GLsizei stride @@ -21057,36 +18021,36 @@ typedef unsigned int GLhandleARB; void glMultiDrawElements GLenum mode - const GLsizei *count + const GLsizei *count GLenum type - const void *const*indices + const void *const*indices GLsizei drawcount void glMultiDrawElementsBaseVertex GLenum mode - const GLsizei *count + const GLsizei *count GLenum type - const void *const*indices + const void *const*indices GLsizei drawcount - const GLint *basevertex + const GLint *basevertex void glMultiDrawElementsBaseVertexEXT GLenum mode - const GLsizei *count + const GLsizei *count GLenum type - const void *const*indices - GLsizei primcount - const GLint *basevertex + const void *const*indices + GLsizei drawcount + const GLint *basevertex void glMultiDrawElementsEXT GLenum mode - const GLsizei *count + const GLsizei *count GLenum type - const void *const*indices + const void *const*indices GLsizei primcount @@ -21102,7 +18066,7 @@ typedef unsigned int GLhandleARB; void glMultiDrawElementsIndirectAMD GLenum mode GLenum type - const void *indirect + const void *indirect GLsizei primcount GLsizei stride @@ -21129,7 +18093,7 @@ typedef unsigned int GLhandleARB; void glMultiDrawElementsIndirectCount GLenum mode - GLenum type + GLenum type const void *indirect GLintptr drawcount GLsizei maxdrawcount @@ -21154,6 +18118,19 @@ typedef unsigned int GLhandleARB; GLsizei stride + + void glMultiDrawMeshTasksIndirectNV + GLintptr indirect + GLsizei drawcount + GLsizei stride + + + void glMultiDrawMeshTasksIndirectCountNV + GLintptr indirect + GLintptr drawcount + GLsizei maxdrawcount + GLsizei stride + void glMultiDrawRangeElementArrayAPPLE GLenum mode @@ -21165,18 +18142,18 @@ typedef unsigned int GLhandleARB; void glMultiModeDrawArraysIBM - const GLenum *mode - const GLint *first - const GLsizei *count + const GLenum *mode + const GLint *first + const GLsizei *count GLsizei primcount GLint modestride void glMultiModeDrawElementsIBM - const GLenum *mode - const GLsizei *count + const GLenum *mode + const GLsizei *count GLenum type - const void *const*indices + const void *const*indices GLsizei primcount GLint modestride @@ -21184,8 +18161,8 @@ typedef unsigned int GLhandleARB; void glMultiTexBufferEXT GLenum texunit GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glMultiTexCoord1bOES @@ -21200,116 +18177,116 @@ typedef unsigned int GLhandleARB; void glMultiTexCoord1d GLenum target - GLdouble s + GLdouble s void glMultiTexCoord1dARB GLenum target - GLdouble s + GLdouble s void glMultiTexCoord1dv GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord1dvARB GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord1f GLenum target - GLfloat s + GLfloat s void glMultiTexCoord1fARB GLenum target - GLfloat s + GLfloat s void glMultiTexCoord1fv GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord1fvARB GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord1hNV GLenum target - GLhalfNV s + GLhalfNV s void glMultiTexCoord1hvNV GLenum target - const GLhalfNV *v + const GLhalfNV *v void glMultiTexCoord1i GLenum target - GLint s + GLint s void glMultiTexCoord1iARB GLenum target - GLint s + GLint s void glMultiTexCoord1iv GLenum target - const GLint *v + const GLint *v void glMultiTexCoord1ivARB GLenum target - const GLint *v + const GLint *v void glMultiTexCoord1s GLenum target - GLshort s + GLshort s void glMultiTexCoord1sARB GLenum target - GLshort s + GLshort s void glMultiTexCoord1sv GLenum target - const GLshort *v + const GLshort *v void glMultiTexCoord1svARB GLenum target - const GLshort *v + const GLshort *v @@ -21337,125 +18314,125 @@ typedef unsigned int GLhandleARB; void glMultiTexCoord2d GLenum target - GLdouble s - GLdouble t + GLdouble s + GLdouble t void glMultiTexCoord2dARB GLenum target - GLdouble s - GLdouble t + GLdouble s + GLdouble t void glMultiTexCoord2dv GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord2dvARB GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord2f GLenum target - GLfloat s - GLfloat t + GLfloat s + GLfloat t void glMultiTexCoord2fARB GLenum target - GLfloat s - GLfloat t + GLfloat s + GLfloat t void glMultiTexCoord2fv GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord2fvARB GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord2hNV GLenum target - GLhalfNV s - GLhalfNV t + GLhalfNV s + GLhalfNV t void glMultiTexCoord2hvNV GLenum target - const GLhalfNV *v + const GLhalfNV *v void glMultiTexCoord2i GLenum target - GLint s - GLint t + GLint s + GLint t void glMultiTexCoord2iARB GLenum target - GLint s - GLint t + GLint s + GLint t void glMultiTexCoord2iv GLenum target - const GLint *v + const GLint *v void glMultiTexCoord2ivARB GLenum target - const GLint *v + const GLint *v void glMultiTexCoord2s GLenum target - GLshort s - GLshort t + GLshort s + GLshort t void glMultiTexCoord2sARB GLenum target - GLshort s - GLshort t + GLshort s + GLshort t void glMultiTexCoord2sv GLenum target - const GLshort *v + const GLshort *v void glMultiTexCoord2svARB GLenum target - const GLshort *v + const GLshort *v @@ -21485,134 +18462,134 @@ typedef unsigned int GLhandleARB; void glMultiTexCoord3d GLenum target - GLdouble s - GLdouble t - GLdouble r + GLdouble s + GLdouble t + GLdouble r void glMultiTexCoord3dARB GLenum target - GLdouble s - GLdouble t - GLdouble r + GLdouble s + GLdouble t + GLdouble r void glMultiTexCoord3dv GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord3dvARB GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord3f GLenum target - GLfloat s - GLfloat t - GLfloat r + GLfloat s + GLfloat t + GLfloat r void glMultiTexCoord3fARB GLenum target - GLfloat s - GLfloat t - GLfloat r + GLfloat s + GLfloat t + GLfloat r void glMultiTexCoord3fv GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord3fvARB GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord3hNV GLenum target - GLhalfNV s - GLhalfNV t - GLhalfNV r + GLhalfNV s + GLhalfNV t + GLhalfNV r void glMultiTexCoord3hvNV GLenum target - const GLhalfNV *v + const GLhalfNV *v void glMultiTexCoord3i GLenum target - GLint s - GLint t - GLint r + GLint s + GLint t + GLint r void glMultiTexCoord3iARB GLenum target - GLint s - GLint t - GLint r + GLint s + GLint t + GLint r void glMultiTexCoord3iv GLenum target - const GLint *v + const GLint *v void glMultiTexCoord3ivARB GLenum target - const GLint *v + const GLint *v void glMultiTexCoord3s GLenum target - GLshort s - GLshort t - GLshort r + GLshort s + GLshort t + GLshort r void glMultiTexCoord3sARB GLenum target - GLshort s - GLshort t - GLshort r + GLshort s + GLshort t + GLshort r void glMultiTexCoord3sv GLenum target - const GLshort *v + const GLshort *v void glMultiTexCoord3svARB GLenum target - const GLshort *v + const GLshort *v @@ -21644,143 +18621,143 @@ typedef unsigned int GLhandleARB; void glMultiTexCoord4d GLenum target - GLdouble s - GLdouble t - GLdouble r - GLdouble q + GLdouble s + GLdouble t + GLdouble r + GLdouble q void glMultiTexCoord4dARB GLenum target - GLdouble s - GLdouble t - GLdouble r - GLdouble q + GLdouble s + GLdouble t + GLdouble r + GLdouble q void glMultiTexCoord4dv GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord4dvARB GLenum target - const GLdouble *v + const GLdouble *v void glMultiTexCoord4f GLenum target - GLfloat s - GLfloat t - GLfloat r - GLfloat q + GLfloat s + GLfloat t + GLfloat r + GLfloat q void glMultiTexCoord4fARB GLenum target - GLfloat s - GLfloat t - GLfloat r - GLfloat q + GLfloat s + GLfloat t + GLfloat r + GLfloat q void glMultiTexCoord4fv GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord4fvARB GLenum target - const GLfloat *v + const GLfloat *v void glMultiTexCoord4hNV GLenum target - GLhalfNV s - GLhalfNV t - GLhalfNV r - GLhalfNV q + GLhalfNV s + GLhalfNV t + GLhalfNV r + GLhalfNV q void glMultiTexCoord4hvNV GLenum target - const GLhalfNV *v + const GLhalfNV *v void glMultiTexCoord4i GLenum target - GLint s - GLint t - GLint r - GLint q + GLint s + GLint t + GLint r + GLint q void glMultiTexCoord4iARB GLenum target - GLint s - GLint t - GLint r - GLint q + GLint s + GLint t + GLint r + GLint q void glMultiTexCoord4iv GLenum target - const GLint *v + const GLint *v void glMultiTexCoord4ivARB GLenum target - const GLint *v + const GLint *v void glMultiTexCoord4s GLenum target - GLshort s - GLshort t - GLshort r - GLshort q + GLshort s + GLshort t + GLshort r + GLshort q void glMultiTexCoord4sARB GLenum target - GLshort s - GLshort t - GLshort r - GLshort q + GLshort s + GLshort t + GLshort r + GLshort q void glMultiTexCoord4sv GLenum target - const GLshort *v + const GLshort *v void glMultiTexCoord4svARB GLenum target - const GLshort *v + const GLshort *v @@ -21866,7 +18843,7 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - GLfloat param + GLfloat param @@ -21874,14 +18851,14 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glMultiTexEnviEXT GLenum texunit GLenum target GLenum pname - GLint param + GLint param @@ -21889,7 +18866,7 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - const GLint *params + const GLint *params void glMultiTexGendEXT @@ -21911,7 +18888,7 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum coord GLenum pname - GLfloat param + GLfloat param @@ -21919,14 +18896,14 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum coord GLenum pname - const GLfloat *params + const GLfloat *params void glMultiTexGeniEXT GLenum texunit GLenum coord GLenum pname - GLint param + GLint param @@ -21934,16 +18911,16 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum coord GLenum pname - const GLint *params + const GLint *params void glMultiTexImage1DEXT GLenum texunit GLenum target - GLint level + GLint level GLint internalformat GLsizei width - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -21952,11 +18929,11 @@ typedef unsigned int GLhandleARB; void glMultiTexImage2DEXT GLenum texunit GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -21965,12 +18942,12 @@ typedef unsigned int GLhandleARB; void glMultiTexImage3DEXT GLenum texunit GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -21980,7 +18957,7 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - const GLint *params + const GLint *params void glMultiTexParameterIuivEXT @@ -21994,7 +18971,7 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - GLfloat param + GLfloat param @@ -22002,14 +18979,14 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glMultiTexParameteriEXT GLenum texunit GLenum target GLenum pname - GLint param + GLint param @@ -22017,20 +18994,20 @@ typedef unsigned int GLhandleARB; GLenum texunit GLenum target GLenum pname - const GLint *params + const GLint *params void glMultiTexRenderbufferEXT GLenum texunit GLenum target - GLuint renderbuffer + GLuint renderbuffer void glMultiTexSubImage1DEXT GLenum texunit GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width GLenum format GLenum type @@ -22040,9 +19017,9 @@ typedef unsigned int GLhandleARB; void glMultiTexSubImage2DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height GLenum format @@ -22053,10 +19030,10 @@ typedef unsigned int GLhandleARB; void glMultiTexSubImage3DEXT GLenum texunit GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth @@ -22085,7 +19062,7 @@ typedef unsigned int GLhandleARB; void glMulticastBufferSubDataNV GLbitfield gpuMask - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size const void *data @@ -22094,8 +19071,8 @@ typedef unsigned int GLhandleARB; void glMulticastCopyBufferSubDataNV GLuint readGpu GLbitfield writeGpuMask - GLuint readBuffer - GLuint writeBuffer + GLuint readBuffer + GLuint writeBuffer GLintptr readOffset GLintptr writeOffset GLsizeiptr size @@ -22123,7 +19100,7 @@ typedef unsigned int GLhandleARB; void glMulticastFramebufferSampleLocationsfvNV GLuint gpu - GLuint framebuffer + GLuint framebuffer GLuint start GLsizei count const GLfloat *v @@ -22156,6 +19133,27 @@ typedef unsigned int GLhandleARB; GLenum pname GLuint *params + + void glMulticastScissorArrayvNVX + GLuint gpu + GLuint first + GLsizei count + const GLint *v + + + void glMulticastViewportArrayvNVX + GLuint gpu + GLuint first + GLsizei count + const GLfloat *v + + + void glMulticastViewportPositionWScaleNVX + GLuint gpu + GLuint index + GLfloat xcoeff + GLfloat ycoeff + void glMulticastWaitSyncNV GLuint signalGpu @@ -22163,220 +19161,238 @@ typedef unsigned int GLhandleARB; void glNamedBufferAttachMemoryNV - GLuint buffer + GLuint buffer GLuint memory GLuint64 offset void glNamedBufferData - GLuint buffer - GLsizeiptr size - const void *data + GLuint buffer + GLsizeiptr size + const void *data GLenum usage void glNamedBufferDataEXT - GLuint buffer + GLuint buffer GLsizeiptr size const void *data GLenum usage void glNamedBufferPageCommitmentARB - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size GLboolean commit void glNamedBufferPageCommitmentEXT - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size GLboolean commit + + void glNamedBufferPageCommitmentMemNV + GLuint buffer + GLintptr offset + GLsizeiptr size + GLuint memory + GLuint64 memOffset + GLboolean commit + void glNamedBufferStorage - GLuint buffer - GLsizeiptr size + GLuint buffer + GLsizeiptr size const void *data - GLbitfield flags + GLbitfield flags void glNamedBufferStorageExternalEXT - GLuint buffer + GLuint buffer GLintptr offset GLsizeiptr size GLeglClientBufferEXT clientBuffer - GLbitfield flags + GLbitfield flags void glNamedBufferStorageEXT - GLuint buffer - GLsizeiptr size + GLuint buffer + GLsizeiptr size const void *data - GLbitfield flags + GLbitfield flags void glNamedBufferStorageMemEXT - GLuint buffer - GLsizeiptr size + GLuint buffer + GLsizeiptr size GLuint memory GLuint64 offset void glNamedBufferSubData - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr size - const void *data + GLsizeiptr size + const void *data void glNamedBufferSubDataEXT - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr size + GLsizeiptr size const void *data void glNamedCopyBufferSubDataEXT - GLuint readBuffer - GLuint writeBuffer + GLuint readBuffer + GLuint writeBuffer GLintptr readOffset GLintptr writeOffset GLsizeiptr size void glNamedFramebufferDrawBuffer - GLuint framebuffer + GLuint framebuffer GLenum buf void glNamedFramebufferDrawBuffers - GLuint framebuffer + GLuint framebuffer GLsizei n - const GLenum *bufs + const GLenum *bufs void glNamedFramebufferParameteri - GLuint framebuffer + GLuint framebuffer GLenum pname GLint param void glNamedFramebufferParameteriEXT - GLuint framebuffer + GLuint framebuffer GLenum pname GLint param void glNamedFramebufferReadBuffer - GLuint framebuffer + GLuint framebuffer GLenum src void glNamedFramebufferRenderbuffer - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum renderbuffertarget - GLuint renderbuffer + GLuint renderbuffer void glNamedFramebufferRenderbufferEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum renderbuffertarget - GLuint renderbuffer + GLuint renderbuffer void glNamedFramebufferSampleLocationsfvARB - GLuint framebuffer + GLuint framebuffer GLuint start GLsizei count const GLfloat *v void glNamedFramebufferSampleLocationsfvNV - GLuint framebuffer + GLuint framebuffer GLuint start GLsizei count const GLfloat *v void glNamedFramebufferTexture - GLuint framebuffer + GLuint framebuffer GLenum attachment - GLuint texture + GLuint texture GLint level void glNamedFramebufferSamplePositionsfvAMD - GLuint framebuffer + GLuint framebuffer GLuint numsamples GLuint pixelindex const GLfloat *values void glNamedFramebufferTexture1DEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum textarget - GLuint texture - GLint level + GLuint texture + GLint level void glNamedFramebufferTexture2DEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum textarget - GLuint texture - GLint level + GLuint texture + GLint level void glNamedFramebufferTexture3DEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment GLenum textarget - GLuint texture - GLint level - GLint zoffset + GLuint texture + GLint level + GLint zoffset void glNamedFramebufferTextureEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level void glNamedFramebufferTextureFaceEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment - GLuint texture - GLint level + GLuint texture + GLint level GLenum face void glNamedFramebufferTextureLayer - GLuint framebuffer + GLuint framebuffer GLenum attachment - GLuint texture + GLuint texture GLint level GLint layer void glNamedFramebufferTextureLayerEXT - GLuint framebuffer + GLuint framebuffer GLenum attachment - GLuint texture - GLint level - GLint layer + GLuint texture + GLint level + GLint layer + + + void glNamedFramebufferTextureMultiviewOVR + GLuint framebuffer + GLenum attachment + GLuint texture + GLint level + GLint baseViewIndex + GLsizei numViews void glNamedProgramLocalParameter4dEXT - GLuint program + GLuint program GLenum target GLuint index GLdouble x @@ -22387,14 +19403,14 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParameter4dvEXT - GLuint program + GLuint program GLenum target GLuint index const GLdouble *params void glNamedProgramLocalParameter4fEXT - GLuint program + GLuint program GLenum target GLuint index GLfloat x @@ -22405,14 +19421,14 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParameter4fvEXT - GLuint program + GLuint program GLenum target GLuint index const GLfloat *params void glNamedProgramLocalParameterI4iEXT - GLuint program + GLuint program GLenum target GLuint index GLint x @@ -22423,14 +19439,14 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParameterI4ivEXT - GLuint program + GLuint program GLenum target GLuint index const GLint *params void glNamedProgramLocalParameterI4uiEXT - GLuint program + GLuint program GLenum target GLuint index GLuint x @@ -22441,14 +19457,14 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParameterI4uivEXT - GLuint program + GLuint program GLenum target GLuint index const GLuint *params void glNamedProgramLocalParameters4fvEXT - GLuint program + GLuint program GLenum target GLuint index GLsizei count @@ -22456,7 +19472,7 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParametersI4ivEXT - GLuint program + GLuint program GLenum target GLuint index GLsizei count @@ -22464,7 +19480,7 @@ typedef unsigned int GLhandleARB; void glNamedProgramLocalParametersI4uivEXT - GLuint program + GLuint program GLenum target GLuint index GLsizei count @@ -22472,7 +19488,7 @@ typedef unsigned int GLhandleARB; void glNamedProgramStringEXT - GLuint program + GLuint program GLenum target GLenum format GLsizei len @@ -22480,21 +19496,21 @@ typedef unsigned int GLhandleARB; void glNamedRenderbufferStorage - GLuint renderbuffer + GLuint renderbuffer GLenum internalformat GLsizei width GLsizei height void glNamedRenderbufferStorageEXT - GLuint renderbuffer + GLuint renderbuffer GLenum internalformat GLsizei width GLsizei height void glNamedRenderbufferStorageMultisample - GLuint renderbuffer + GLuint renderbuffer GLsizei samples GLenum internalformat GLsizei width @@ -22502,7 +19518,7 @@ typedef unsigned int GLhandleARB; void glNamedRenderbufferStorageMultisampleAdvancedAMD - GLuint renderbuffer + GLuint renderbuffer GLsizei samples GLsizei storageSamples GLenum internalformat @@ -22511,7 +19527,7 @@ typedef unsigned int GLhandleARB; void glNamedRenderbufferStorageMultisampleCoverageEXT - GLuint renderbuffer + GLuint renderbuffer GLsizei coverageSamples GLsizei colorSamples GLenum internalformat @@ -22520,7 +19536,7 @@ typedef unsigned int GLhandleARB; void glNamedRenderbufferStorageMultisampleEXT - GLuint renderbuffer + GLuint renderbuffer GLsizei samples GLenum internalformat GLsizei width @@ -22536,7 +19552,7 @@ typedef unsigned int GLhandleARB; void glNewList - GLuint list + GLuint list GLenum mode @@ -22560,21 +19576,21 @@ typedef unsigned int GLhandleARB; void glNormal3d - GLdouble nx - GLdouble ny - GLdouble nz + GLdouble nx + GLdouble ny + GLdouble nz void glNormal3dv - const GLdouble *v + const GLdouble *v void glNormal3f - GLfloat nx - GLfloat ny - GLfloat nz + GLfloat nx + GLfloat ny + GLfloat nz @@ -22593,19 +19609,19 @@ typedef unsigned int GLhandleARB; void glNormal3fv - const GLfloat *v + const GLfloat *v void glNormal3hNV - GLhalfNV nx - GLhalfNV ny - GLhalfNV nz + GLhalfNV nx + GLhalfNV ny + GLhalfNV nz void glNormal3hvNV - const GLhalfNV *v + const GLhalfNV *v @@ -22847,13 +19863,13 @@ typedef unsigned int GLhandleARB; void glPassTexCoordATI - GLuint dst - GLuint coord + GLuint dst + GLuint coord GLenum swizzle void glPassThrough - GLfloat token + GLfloat token @@ -22891,16 +19907,16 @@ typedef unsigned int GLhandleARB; void glPathCommandsNV - GLuint path + GLuint path GLsizei numCommands - const GLubyte *commands + const GLubyte *commands GLsizei numCoords GLenum coordType const void *coords void glPathCoordsNV - GLuint path + GLuint path GLsizei numCoords GLenum coordType const void *coords @@ -22911,7 +19927,7 @@ typedef unsigned int GLhandleARB; void glPathDashArrayNV - GLuint path + GLuint path GLsizei dashCount const GLfloat *dashArray @@ -22937,23 +19953,23 @@ typedef unsigned int GLhandleARB; GLbitfield fontStyle GLuint pathParameterTemplate GLfloat emScale - GLuint baseAndCount[2] + GLuint *baseAndCount void glPathGlyphRangeNV - GLuint firstPathName + GLuint firstPathName GLenum fontTarget const void *fontName GLbitfield fontStyle GLuint firstGlyph GLsizei numGlyphs GLenum handleMissingGlyphs - GLuint pathParameterTemplate + GLuint pathParameterTemplate GLfloat emScale void glPathGlyphsNV - GLuint firstPathName + GLuint firstPathName GLenum fontTarget const void *fontName GLbitfield fontStyle @@ -22961,7 +19977,7 @@ typedef unsigned int GLhandleARB; GLenum type const void *charcodes GLenum handleMissingGlyphs - GLuint pathParameterTemplate + GLuint pathParameterTemplate GLfloat emScale @@ -22978,25 +19994,25 @@ typedef unsigned int GLhandleARB; void glPathParameterfNV - GLuint path + GLuint path GLenum pname GLfloat value void glPathParameterfvNV - GLuint path + GLuint path GLenum pname const GLfloat *value void glPathParameteriNV - GLuint path + GLuint path GLenum pname GLint value void glPathParameterivNV - GLuint path + GLuint path GLenum pname const GLint *value @@ -23008,30 +20024,30 @@ typedef unsigned int GLhandleARB; void glPathStencilFuncNV GLenum func - GLint ref - GLuint mask + GLint ref + GLuint mask void glPathStringNV - GLuint path + GLuint path GLenum format GLsizei length const void *pathString void glPathSubCommandsNV - GLuint path + GLuint path GLsizei commandStart GLsizei commandsToDelete GLsizei numCommands - const GLubyte *commands + const GLubyte *commands GLsizei numCoords GLenum coordType const void *coords void glPathSubCoordsNV - GLuint path + GLuint path GLsizei coordStart GLsizei numCoords GLenum coordType @@ -23060,7 +20076,7 @@ typedef unsigned int GLhandleARB; void glPixelMapfv GLenum map - GLsizei mapsize + GLsizei mapsize const GLfloat *values @@ -23068,7 +20084,7 @@ typedef unsigned int GLhandleARB; void glPixelMapuiv GLenum map - GLsizei mapsize + GLsizei mapsize const GLuint *values @@ -23076,7 +20092,7 @@ typedef unsigned int GLhandleARB; void glPixelMapusv GLenum map - GLsizei mapsize + GLsizei mapsize const GLushort *values @@ -23090,13 +20106,13 @@ typedef unsigned int GLhandleARB; void glPixelStoref GLenum pname - GLfloat param + GLfloat param void glPixelStorei GLenum pname - GLint param + GLint param @@ -23107,22 +20123,22 @@ typedef unsigned int GLhandleARB; void glPixelTexGenParameterfSGIS GLenum pname - GLfloat param + GLfloat param void glPixelTexGenParameterfvSGIS GLenum pname - const GLfloat *params + const GLfloat *params void glPixelTexGenParameteriSGIS GLenum pname - GLint param + GLint param void glPixelTexGenParameterivSGIS GLenum pname - const GLint *params + const GLint *params void glPixelTexGenSGIX @@ -23132,13 +20148,13 @@ typedef unsigned int GLhandleARB; void glPixelTransferf GLenum pname - GLfloat param + GLfloat param void glPixelTransferi GLenum pname - GLint param + GLint param @@ -23184,8 +20200,8 @@ typedef unsigned int GLhandleARB; GLfixed yfactor - GLboolean glPointAlongPathNV - GLuint path + GLboolean glPointAlongPathNV + GLuint path GLsizei startSegment GLsizei numSegments GLfloat distance @@ -23197,51 +20213,51 @@ typedef unsigned int GLhandleARB; void glPointParameterf GLenum pname - GLfloat param + GLfloat param void glPointParameterfARB GLenum pname - GLfloat param + GLfloat param void glPointParameterfEXT GLenum pname - GLfloat param + GLfloat param void glPointParameterfSGIS GLenum pname - GLfloat param + GLfloat param void glPointParameterfv GLenum pname - const GLfloat *params + const GLfloat *params void glPointParameterfvARB GLenum pname - const GLfloat *params + const GLfloat *params void glPointParameterfvEXT GLenum pname - const GLfloat *params + const GLfloat *params void glPointParameterfvSGIS GLenum pname - const GLfloat *params + const GLfloat *params @@ -23292,7 +20308,7 @@ typedef unsigned int GLhandleARB; void glPointSize - GLfloat size + GLfloat size @@ -23320,13 +20336,13 @@ typedef unsigned int GLhandleARB; void glPolygonMode - GLenum face + GLenum face GLenum mode void glPolygonModeNV - GLenum face + GLenum face GLenum mode @@ -23490,34 +20506,34 @@ typedef unsigned int GLhandleARB; void glPrioritizeTextures GLsizei n - const GLuint *textures + const GLuint *textures const GLfloat *priorities void glPrioritizeTexturesEXT GLsizei n - const GLuint *textures - const GLclampf *priorities + const GLuint *textures + const GLclampf *priorities void glPrioritizeTexturesxOES GLsizei n - const GLuint *textures - const GLfixed *priorities + const GLuint *textures + const GLfixed *priorities void glProgramBinary - GLuint program + GLuint program GLenum binaryFormat const void *binary GLsizei length void glProgramBinaryOES - GLuint program + GLuint program GLenum binaryFormat const void *binary GLint length @@ -23549,7 +20565,7 @@ typedef unsigned int GLhandleARB; void glProgramEnvParameter4dARB - GLenum target + GLenum target GLuint index GLdouble x GLdouble y @@ -23559,13 +20575,13 @@ typedef unsigned int GLhandleARB; void glProgramEnvParameter4dvARB - GLenum target + GLenum target GLuint index const GLdouble *params void glProgramEnvParameter4fARB - GLenum target + GLenum target GLuint index GLfloat x GLfloat y @@ -23575,7 +20591,7 @@ typedef unsigned int GLhandleARB; void glProgramEnvParameter4fvARB - GLenum target + GLenum target GLuint index const GLfloat *params @@ -23613,7 +20629,7 @@ typedef unsigned int GLhandleARB; void glProgramEnvParameters4fvEXT - GLenum target + GLenum target GLuint index GLsizei count const GLfloat *params @@ -23635,7 +20651,7 @@ typedef unsigned int GLhandleARB; void glProgramLocalParameter4dARB - GLenum target + GLenum target GLuint index GLdouble x GLdouble y @@ -23645,13 +20661,13 @@ typedef unsigned int GLhandleARB; void glProgramLocalParameter4dvARB - GLenum target + GLenum target GLuint index const GLdouble *params void glProgramLocalParameter4fARB - GLenum target + GLenum target GLuint index GLfloat x GLfloat y @@ -23661,7 +20677,7 @@ typedef unsigned int GLhandleARB; void glProgramLocalParameter4fvARB - GLenum target + GLenum target GLuint index const GLfloat *params @@ -23699,7 +20715,7 @@ typedef unsigned int GLhandleARB; void glProgramLocalParameters4fvEXT - GLenum target + GLenum target GLuint index GLsizei count const GLfloat *params @@ -23721,7 +20737,7 @@ typedef unsigned int GLhandleARB; void glProgramNamedParameter4dNV - GLuint id + GLuint id GLsizei len const GLubyte *name GLdouble x @@ -23732,7 +20748,7 @@ typedef unsigned int GLhandleARB; void glProgramNamedParameter4dvNV - GLuint id + GLuint id GLsizei len const GLubyte *name const GLdouble *v @@ -23740,7 +20756,7 @@ typedef unsigned int GLhandleARB; void glProgramNamedParameter4fNV - GLuint id + GLuint id GLsizei len const GLubyte *name GLfloat x @@ -23751,7 +20767,7 @@ typedef unsigned int GLhandleARB; void glProgramNamedParameter4fvNV - GLuint id + GLuint id GLsizei len const GLubyte *name const GLfloat *v @@ -23793,20 +20809,20 @@ typedef unsigned int GLhandleARB; void glProgramParameteri - GLuint program + GLuint program GLenum pname GLint value void glProgramParameteriARB - GLuint program + GLuint program GLenum pname GLint value void glProgramParameteriEXT - GLuint program + GLuint program GLenum pname GLint value @@ -23829,7 +20845,7 @@ typedef unsigned int GLhandleARB; void glProgramPathFragmentInputGenNV - GLuint program + GLuint program GLint location GLenum genMode GLint components @@ -23837,8 +20853,8 @@ typedef unsigned int GLhandleARB; void glProgramStringARB - GLenum target - GLenum format + GLenum target + GLenum format GLsizei len const void *string @@ -23850,204 +20866,204 @@ typedef unsigned int GLhandleARB; void glProgramUniform1d - GLuint program + GLuint program GLint location GLdouble v0 void glProgramUniform1dEXT - GLuint program + GLuint program GLint location GLdouble x void glProgramUniform1dv - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform1dvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform1f - GLuint program + GLuint program GLint location GLfloat v0 void glProgramUniform1fEXT - GLuint program + GLuint program GLint location GLfloat v0 void glProgramUniform1fv - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform1fvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform1i - GLuint program + GLuint program GLint location GLint v0 void glProgramUniform1i64ARB - GLuint program + GLuint program GLint location GLint64 x void glProgramUniform1i64NV - GLuint program + GLuint program GLint location GLint64EXT x void glProgramUniform1i64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glProgramUniform1i64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glProgramUniform1iEXT - GLuint program + GLuint program GLint location GLint v0 void glProgramUniform1iv - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform1ivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform1ui - GLuint program + GLuint program GLint location GLuint v0 void glProgramUniform1ui64ARB - GLuint program + GLuint program GLint location GLuint64 x void glProgramUniform1ui64NV - GLuint program + GLuint program GLint location GLuint64EXT x void glProgramUniform1ui64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glProgramUniform1ui64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glProgramUniform1uiEXT - GLuint program + GLuint program GLint location GLuint v0 void glProgramUniform1uiv - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform1uivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform2d - GLuint program + GLuint program GLint location GLdouble v0 GLdouble v1 void glProgramUniform2dEXT - GLuint program + GLuint program GLint location GLdouble x GLdouble y void glProgramUniform2dv - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform2dvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform2f - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 void glProgramUniform2fEXT - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 @@ -24055,57 +21071,57 @@ typedef unsigned int GLhandleARB; void glProgramUniform2fv - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform2fvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform2i - GLuint program + GLuint program GLint location GLint v0 GLint v1 void glProgramUniform2i64ARB - GLuint program + GLuint program GLint location GLint64 x GLint64 y void glProgramUniform2i64NV - GLuint program + GLuint program GLint location GLint64EXT x GLint64EXT y void glProgramUniform2i64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glProgramUniform2i64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glProgramUniform2iEXT - GLuint program + GLuint program GLint location GLint v0 GLint v1 @@ -24113,57 +21129,57 @@ typedef unsigned int GLhandleARB; void glProgramUniform2iv - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform2ivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform2ui - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 void glProgramUniform2ui64ARB - GLuint program + GLuint program GLint location GLuint64 x GLuint64 y void glProgramUniform2ui64NV - GLuint program + GLuint program GLint location GLuint64EXT x GLuint64EXT y void glProgramUniform2ui64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glProgramUniform2ui64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glProgramUniform2uiEXT - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 @@ -24171,22 +21187,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform2uiv - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform2uivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform3d - GLuint program + GLuint program GLint location GLdouble v0 GLdouble v1 @@ -24194,7 +21210,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3dEXT - GLuint program + GLuint program GLint location GLdouble x GLdouble y @@ -24202,21 +21218,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform3dv - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform3dvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform3f - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 @@ -24224,7 +21240,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3fEXT - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 @@ -24233,22 +21249,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform3fv - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform3fvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform3i - GLuint program + GLuint program GLint location GLint v0 GLint v1 @@ -24256,7 +21272,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3i64ARB - GLuint program + GLuint program GLint location GLint64 x GLint64 y @@ -24264,7 +21280,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3i64NV - GLuint program + GLuint program GLint location GLint64EXT x GLint64EXT y @@ -24272,21 +21288,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform3i64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glProgramUniform3i64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glProgramUniform3iEXT - GLuint program + GLuint program GLint location GLint v0 GLint v1 @@ -24295,22 +21311,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform3iv - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform3ivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform3ui - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 @@ -24318,7 +21334,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3ui64ARB - GLuint program + GLuint program GLint location GLuint64 x GLuint64 y @@ -24326,7 +21342,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform3ui64NV - GLuint program + GLuint program GLint location GLuint64EXT x GLuint64EXT y @@ -24334,21 +21350,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform3ui64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glProgramUniform3ui64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glProgramUniform3uiEXT - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 @@ -24357,22 +21373,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform3uiv - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform3uivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform4d - GLuint program + GLuint program GLint location GLdouble v0 GLdouble v1 @@ -24381,7 +21397,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4dEXT - GLuint program + GLuint program GLint location GLdouble x GLdouble y @@ -24390,21 +21406,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform4dv - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform4dvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glProgramUniform4f - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 @@ -24413,7 +21429,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4fEXT - GLuint program + GLuint program GLint location GLfloat v0 GLfloat v1 @@ -24423,22 +21439,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform4fv - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform4fvEXT - GLuint program + GLuint program GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glProgramUniform4i - GLuint program + GLuint program GLint location GLint v0 GLint v1 @@ -24447,7 +21463,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4i64ARB - GLuint program + GLuint program GLint location GLint64 x GLint64 y @@ -24456,7 +21472,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4i64NV - GLuint program + GLuint program GLint location GLint64EXT x GLint64EXT y @@ -24465,21 +21481,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform4i64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glProgramUniform4i64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glProgramUniform4iEXT - GLuint program + GLuint program GLint location GLint v0 GLint v1 @@ -24489,22 +21505,22 @@ typedef unsigned int GLhandleARB; void glProgramUniform4iv - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform4ivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLint *value + const GLint *value void glProgramUniform4ui - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 @@ -24513,7 +21529,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4ui64ARB - GLuint program + GLuint program GLint location GLuint64 x GLuint64 y @@ -24522,7 +21538,7 @@ typedef unsigned int GLhandleARB; void glProgramUniform4ui64NV - GLuint program + GLuint program GLint location GLuint64EXT x GLuint64EXT y @@ -24531,21 +21547,21 @@ typedef unsigned int GLhandleARB; void glProgramUniform4ui64vARB - GLuint program + GLuint program GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glProgramUniform4ui64vNV - GLuint program + GLuint program GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glProgramUniform4uiEXT - GLuint program + GLuint program GLint location GLuint v0 GLuint v1 @@ -24555,48 +21571,48 @@ typedef unsigned int GLhandleARB; void glProgramUniform4uiv - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniform4uivEXT - GLuint program + GLuint program GLint location GLsizei count - const GLuint *value + const GLuint *value void glProgramUniformHandleui64ARB - GLuint program + GLuint program GLint location GLuint64 value void glProgramUniformHandleui64IMG - GLuint program + GLuint program GLint location GLuint64 value void glProgramUniformHandleui64NV - GLuint program + GLuint program GLint location GLuint64 value void glProgramUniformHandleui64vARB - GLuint program + GLuint program GLint location GLsizei count const GLuint64 *values void glProgramUniformHandleui64vIMG - GLuint program + GLuint program GLint location GLsizei count const GLuint64 *values @@ -24604,317 +21620,317 @@ typedef unsigned int GLhandleARB; void glProgramUniformHandleui64vNV - GLuint program + GLuint program GLint location GLsizei count const GLuint64 *values void glProgramUniformMatrix2dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix2fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix2x3dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2x3dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2x3fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix2x3fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix2x4dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2x4dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix2x4fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix2x4fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3x2dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3x2dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3x2fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3x2fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3x4dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3x4dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix3x4fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix3x4fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4x2dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4x2dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4x2fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4x2fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4x3dv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4x3dvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glProgramUniformMatrix4x3fv - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformMatrix4x3fvEXT - GLuint program + GLuint program GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glProgramUniformui64NV - GLuint program + GLuint program GLint location GLuint64EXT value void glProgramUniformui64vNV - GLuint program + GLuint program GLint location GLsizei count const GLuint64EXT *value @@ -24972,18 +21988,18 @@ typedef unsigned int GLhandleARB; void glPushName - GLuint name + GLuint name void glQueryCounter - GLuint id - GLenum target + GLuint id + GLenum target void glQueryCounterEXT - GLuint id - GLenum target + GLuint id + GLenum target @@ -24994,7 +22010,7 @@ typedef unsigned int GLhandleARB; void glQueryObjectParameteruiAMD GLenum target - GLuint id + GLuint id GLenum pname GLuint param @@ -25002,8 +22018,8 @@ typedef unsigned int GLhandleARB; GLint glQueryResourceNV GLenum queryType GLint tagId - GLuint bufSize - GLint *buffer + GLuint count + GLint *buffer void glQueryResourceTagNV @@ -25012,46 +22028,46 @@ typedef unsigned int GLhandleARB; void glRasterPos2d - GLdouble x - GLdouble y + GLdouble x + GLdouble y void glRasterPos2dv - const GLdouble *v + const GLdouble *v void glRasterPos2f - GLfloat x - GLfloat y + GLfloat x + GLfloat y void glRasterPos2fv - const GLfloat *v + const GLfloat *v void glRasterPos2i - GLint x - GLint y + GLint x + GLint y void glRasterPos2iv - const GLint *v + const GLint *v void glRasterPos2s - GLshort x - GLshort y + GLshort x + GLshort y void glRasterPos2sv - const GLshort *v + const GLshort *v @@ -25065,50 +22081,50 @@ typedef unsigned int GLhandleARB; void glRasterPos3d - GLdouble x - GLdouble y - GLdouble z + GLdouble x + GLdouble y + GLdouble z void glRasterPos3dv - const GLdouble *v + const GLdouble *v void glRasterPos3f - GLfloat x - GLfloat y - GLfloat z + GLfloat x + GLfloat y + GLfloat z void glRasterPos3fv - const GLfloat *v + const GLfloat *v void glRasterPos3i - GLint x - GLint y - GLint z + GLint x + GLint y + GLint z void glRasterPos3iv - const GLint *v + const GLint *v void glRasterPos3s - GLshort x - GLshort y - GLshort z + GLshort x + GLshort y + GLshort z void glRasterPos3sv - const GLshort *v + const GLshort *v @@ -25123,54 +22139,54 @@ typedef unsigned int GLhandleARB; void glRasterPos4d - GLdouble x - GLdouble y - GLdouble z - GLdouble w + GLdouble x + GLdouble y + GLdouble z + GLdouble w void glRasterPos4dv - const GLdouble *v + const GLdouble *v void glRasterPos4f - GLfloat x - GLfloat y - GLfloat z - GLfloat w + GLfloat x + GLfloat y + GLfloat z + GLfloat w void glRasterPos4fv - const GLfloat *v + const GLfloat *v void glRasterPos4i - GLint x - GLint y - GLint z - GLint w + GLint x + GLint y + GLint z + GLint w void glRasterPos4iv - const GLint *v + const GLint *v void glRasterPos4s - GLshort x - GLshort y - GLshort z - GLshort w + GLshort x + GLshort y + GLshort z + GLshort w void glRasterPos4sv - const GLshort *v + const GLshort *v @@ -25210,8 +22226,8 @@ typedef unsigned int GLhandleARB; void glReadPixels - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height GLenum format @@ -25257,8 +22273,8 @@ typedef unsigned int GLhandleARB; void glReadnPixelsKHR - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height GLenum format @@ -25274,58 +22290,58 @@ typedef unsigned int GLhandleARB; void glRectd - GLdouble x1 - GLdouble y1 - GLdouble x2 - GLdouble y2 + GLdouble x1 + GLdouble y1 + GLdouble x2 + GLdouble y2 void glRectdv - const GLdouble *v1 - const GLdouble *v2 + const GLdouble *v1 + const GLdouble *v2 void glRectf - GLfloat x1 - GLfloat y1 - GLfloat x2 - GLfloat y2 + GLfloat x1 + GLfloat y1 + GLfloat x2 + GLfloat y2 void glRectfv - const GLfloat *v1 - const GLfloat *v2 + const GLfloat *v1 + const GLfloat *v2 void glRecti - GLint x1 - GLint y1 - GLint x2 - GLint y2 + GLint x1 + GLint y1 + GLint x2 + GLint y2 void glRectiv - const GLint *v1 - const GLint *v2 + const GLint *v1 + const GLint *v2 void glRects - GLshort x1 - GLshort y1 - GLshort x2 - GLshort y2 + GLshort x1 + GLshort y1 + GLshort x2 + GLshort y2 void glRectsv - const GLshort *v1 - const GLshort *v2 + const GLshort *v1 + const GLshort *v2 @@ -25467,27 +22483,27 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiColor3fVertex3fSUN - GLuint rc - GLfloat r - GLfloat g - GLfloat b + GLuint rc + GLfloat r + GLfloat g + GLfloat b GLfloat x GLfloat y GLfloat z void glReplacementCodeuiColor3fVertex3fvSUN - const GLuint *rc - const GLfloat *c + const GLuint *rc + const GLfloat *c const GLfloat *v void glReplacementCodeuiColor4fNormal3fVertex3fSUN - GLuint rc - GLfloat r - GLfloat g - GLfloat b - GLfloat a + GLuint rc + GLfloat r + GLfloat g + GLfloat b + GLfloat a GLfloat nx GLfloat ny GLfloat nz @@ -25497,31 +22513,31 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiColor4fNormal3fVertex3fvSUN - const GLuint *rc - const GLfloat *c + const GLuint *rc + const GLfloat *c const GLfloat *n const GLfloat *v void glReplacementCodeuiColor4ubVertex3fSUN - GLuint rc - GLubyte r - GLubyte g - GLubyte b - GLubyte a + GLuint rc + GLubyte r + GLubyte g + GLubyte b + GLubyte a GLfloat x GLfloat y GLfloat z void glReplacementCodeuiColor4ubVertex3fvSUN - const GLuint *rc - const GLubyte *c + const GLuint *rc + const GLubyte *c const GLfloat *v void glReplacementCodeuiNormal3fVertex3fSUN - GLuint rc + GLuint rc GLfloat nx GLfloat ny GLfloat nz @@ -25531,23 +22547,23 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiNormal3fVertex3fvSUN - const GLuint *rc + const GLuint *rc const GLfloat *n const GLfloat *v void glReplacementCodeuiSUN - GLuint code + GLuint code void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN - GLuint rc + GLuint rc GLfloat s GLfloat t - GLfloat r - GLfloat g - GLfloat b - GLfloat a + GLfloat r + GLfloat g + GLfloat b + GLfloat a GLfloat nx GLfloat ny GLfloat nz @@ -25557,15 +22573,15 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN - const GLuint *rc + const GLuint *rc const GLfloat *tc - const GLfloat *c + const GLfloat *c const GLfloat *n const GLfloat *v void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN - GLuint rc + GLuint rc GLfloat s GLfloat t GLfloat nx @@ -25577,14 +22593,14 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN - const GLuint *rc + const GLuint *rc const GLfloat *tc const GLfloat *n const GLfloat *v void glReplacementCodeuiTexCoord2fVertex3fSUN - GLuint rc + GLuint rc GLfloat s GLfloat t GLfloat x @@ -25593,25 +22609,25 @@ typedef unsigned int GLhandleARB; void glReplacementCodeuiTexCoord2fVertex3fvSUN - const GLuint *rc + const GLuint *rc const GLfloat *tc const GLfloat *v void glReplacementCodeuiVertex3fSUN - GLuint rc + GLuint rc GLfloat x GLfloat y GLfloat z void glReplacementCodeuiVertex3fvSUN - const GLuint *rc + const GLuint *rc const GLfloat *v void glReplacementCodeuivSUN - const GLuint *code + const GLuint *code void glReplacementCodeusSUN @@ -25624,7 +22640,7 @@ typedef unsigned int GLhandleARB; void glRequestResidentProgramsNV GLsizei n - const GLuint *programs + const GLuint *programs @@ -25703,13 +22719,13 @@ typedef unsigned int GLhandleARB; void glSampleCoverage GLfloat value - GLboolean invert + GLboolean invert void glSampleCoverageARB GLfloat value - GLboolean invert + GLboolean invert @@ -25724,24 +22740,24 @@ typedef unsigned int GLhandleARB; void glSampleMapATI - GLuint dst - GLuint interp + GLuint dst + GLuint interp GLenum swizzle void glSampleMaskEXT - GLclampf value - GLboolean invert + GLclampf value + GLboolean invert void glSampleMaskIndexedNV GLuint index - GLbitfield mask + GLbitfield mask void glSampleMaskSGIS - GLclampf value - GLboolean invert + GLclampf value + GLboolean invert @@ -25762,66 +22778,66 @@ typedef unsigned int GLhandleARB; void glSamplerParameterIiv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLint *param void glSamplerParameterIivEXT - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLint *param void glSamplerParameterIivOES - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLint *param void glSamplerParameterIuiv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLuint *param void glSamplerParameterIuivEXT - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLuint *param void glSamplerParameterIuivOES - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLuint *param void glSamplerParameterf - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLfloat param void glSamplerParameterfv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLfloat *param void glSamplerParameteri - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname GLint param void glSamplerParameteriv - GLuint sampler - GLenum pname + GLuint sampler + GLenum pname const GLint *param @@ -25852,8 +22868,8 @@ typedef unsigned int GLhandleARB; void glScissor - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height @@ -25878,6 +22894,19 @@ typedef unsigned int GLhandleARB; const GLint *v + + void glScissorExclusiveArrayvNV + GLuint first + GLsizei count + const GLint *v + + + void glScissorExclusiveNV + GLint x + GLint y + GLsizei width + GLsizei height + void glScissorIndexed GLuint index @@ -25923,221 +22952,221 @@ typedef unsigned int GLhandleARB; void glSecondaryColor3b - GLbyte red - GLbyte green - GLbyte blue + GLbyte red + GLbyte green + GLbyte blue void glSecondaryColor3bEXT - GLbyte red - GLbyte green - GLbyte blue + GLbyte red + GLbyte green + GLbyte blue void glSecondaryColor3bv - const GLbyte *v + const GLbyte *v void glSecondaryColor3bvEXT - const GLbyte *v + const GLbyte *v void glSecondaryColor3d - GLdouble red - GLdouble green - GLdouble blue + GLdouble red + GLdouble green + GLdouble blue void glSecondaryColor3dEXT - GLdouble red - GLdouble green - GLdouble blue + GLdouble red + GLdouble green + GLdouble blue void glSecondaryColor3dv - const GLdouble *v + const GLdouble *v void glSecondaryColor3dvEXT - const GLdouble *v + const GLdouble *v void glSecondaryColor3f - GLfloat red - GLfloat green - GLfloat blue + GLfloat red + GLfloat green + GLfloat blue void glSecondaryColor3fEXT - GLfloat red - GLfloat green - GLfloat blue + GLfloat red + GLfloat green + GLfloat blue void glSecondaryColor3fv - const GLfloat *v + const GLfloat *v void glSecondaryColor3fvEXT - const GLfloat *v + const GLfloat *v void glSecondaryColor3hNV - GLhalfNV red - GLhalfNV green - GLhalfNV blue + GLhalfNV red + GLhalfNV green + GLhalfNV blue void glSecondaryColor3hvNV - const GLhalfNV *v + const GLhalfNV *v void glSecondaryColor3i - GLint red - GLint green - GLint blue + GLint red + GLint green + GLint blue void glSecondaryColor3iEXT - GLint red - GLint green - GLint blue + GLint red + GLint green + GLint blue void glSecondaryColor3iv - const GLint *v + const GLint *v void glSecondaryColor3ivEXT - const GLint *v + const GLint *v void glSecondaryColor3s - GLshort red - GLshort green - GLshort blue + GLshort red + GLshort green + GLshort blue void glSecondaryColor3sEXT - GLshort red - GLshort green - GLshort blue + GLshort red + GLshort green + GLshort blue void glSecondaryColor3sv - const GLshort *v + const GLshort *v void glSecondaryColor3svEXT - const GLshort *v + const GLshort *v void glSecondaryColor3ub - GLubyte red - GLubyte green - GLubyte blue + GLubyte red + GLubyte green + GLubyte blue void glSecondaryColor3ubEXT - GLubyte red - GLubyte green - GLubyte blue + GLubyte red + GLubyte green + GLubyte blue void glSecondaryColor3ubv - const GLubyte *v + const GLubyte *v void glSecondaryColor3ubvEXT - const GLubyte *v + const GLubyte *v void glSecondaryColor3ui - GLuint red - GLuint green - GLuint blue + GLuint red + GLuint green + GLuint blue void glSecondaryColor3uiEXT - GLuint red - GLuint green - GLuint blue + GLuint red + GLuint green + GLuint blue void glSecondaryColor3uiv - const GLuint *v + const GLuint *v void glSecondaryColor3uivEXT - const GLuint *v + const GLuint *v void glSecondaryColor3us - GLushort red - GLushort green - GLushort blue + GLushort red + GLushort green + GLushort blue void glSecondaryColor3usEXT - GLushort red - GLushort green - GLushort blue + GLushort red + GLushort green + GLushort blue void glSecondaryColor3usv - const GLushort *v + const GLushort *v void glSecondaryColor3usvEXT - const GLushort *v + const GLushort *v @@ -26150,12 +23179,12 @@ typedef unsigned int GLhandleARB; void glSecondaryColorP3ui GLenum type - GLuint color + GLuint color void glSecondaryColorP3uiv GLenum type - const GLuint *color + const GLuint *color void glSecondaryColorPointer @@ -26183,17 +23212,23 @@ typedef unsigned int GLhandleARB; void glSelectBuffer GLsizei size - GLuint *buffer + GLuint *buffer void glSelectPerfMonitorCountersAMD GLuint monitor - GLboolean enable + GLboolean enable GLuint group GLint numCounters GLuint *counterList + + void glSemaphoreParameterivNV + GLuint semaphore + GLenum pname + const GLint *params + void glSemaphoreParameterui64vEXT GLuint semaphore @@ -26228,16 +23263,16 @@ typedef unsigned int GLhandleARB; void glSetFenceAPPLE - GLuint fence + GLuint fence void glSetFenceNV - GLuint fence + GLuint fence GLenum condition void glSetFragmentShaderConstantATI - GLuint dst + GLuint dst const GLfloat *value @@ -26266,8 +23301,8 @@ typedef unsigned int GLhandleARB; void glShaderBinary GLsizei count - const GLuint *shaders - GLenum binaryformat + const GLuint *shaders + GLenum binaryFormat const void *binary GLsizei length @@ -26294,14 +23329,14 @@ typedef unsigned int GLhandleARB; void glShaderSource - GLuint shader + GLuint shader GLsizei count const GLchar *const*string const GLint *length void glShaderSourceARB - GLhandleARB shaderObj + GLhandleARB shaderObj GLsizei count const GLcharARB **string const GLint *length @@ -26309,10 +23344,44 @@ typedef unsigned int GLhandleARB; void glShaderStorageBlockBinding - GLuint program + GLuint program GLuint storageBlockIndex GLuint storageBlockBinding + + void glShadingRateEXT + GLenum rate + + + void glShadingRateCombinerOpsEXT + GLenum combinerOp0 + GLenum combinerOp1 + + + void glShadingRateImageBarrierNV + GLboolean synchronize + + + void glShadingRateQCOM + GLenum rate + + + void glShadingRateImagePaletteNV + GLuint viewport + GLuint first + GLsizei count + const GLenum *rates + + + void glShadingRateSampleOrderNV + GLenum order + + + void glShadingRateSampleOrderCustomNV + GLenum rate + GLuint samples + const GLint *locations + void glSharpenTexFuncSGIS GLenum target @@ -26324,22 +23393,29 @@ typedef unsigned int GLhandleARB; void glSignalSemaphoreEXT GLuint semaphore GLuint numBufferBarriers - const GLuint *buffers + const GLuint *buffers GLuint numTextureBarriers - const GLuint *textures + const GLuint *textures const GLenum *dstLayouts + + void glSignalSemaphoreui64NVX + GLuint signalGpu + GLsizei fenceObjectCount + const GLuint *semaphoreArray + const GLuint64 *fenceValueArray + void glSpecializeShader - GLuint shader + GLuint shader const GLchar *pEntryPoint GLuint numSpecializationConstants - const GLuint *pConstantIndex - const GLuint *pConstantValue + const GLuint *pConstantIndex + const GLuint *pConstantValue void glSpecializeShaderARB - GLuint shader + GLuint shader const GLchar *pEntryPoint GLuint numSpecializationConstants const GLuint *pConstantIndex @@ -26349,25 +23425,25 @@ typedef unsigned int GLhandleARB; void glSpriteParameterfSGIX GLenum pname - GLfloat param + GLfloat param void glSpriteParameterfvSGIX GLenum pname - const GLfloat *params + const GLfloat *params void glSpriteParameteriSGIX GLenum pname - GLint param + GLint param void glSpriteParameterivSGIX GLenum pname - const GLint *params + const GLint *params @@ -26397,49 +23473,49 @@ typedef unsigned int GLhandleARB; void glStencilFillPathInstancedNV GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase + const void *paths + GLuint pathBase GLenum fillMode - GLuint mask + GLuint mask GLenum transformType const GLfloat *transformValues void glStencilFillPathNV - GLuint path + GLuint path GLenum fillMode - GLuint mask + GLuint mask void glStencilFunc GLenum func - GLint ref - GLuint mask + GLint ref + GLuint mask void glStencilFuncSeparate - GLenum face + GLenum face GLenum func - GLint ref - GLuint mask + GLint ref + GLuint mask void glStencilFuncSeparateATI GLenum frontfunc GLenum backfunc - GLint ref - GLuint mask + GLint ref + GLuint mask void glStencilMask - GLuint mask + GLuint mask void glStencilMaskSeparate - GLenum face - GLuint mask + GLenum face + GLuint mask void glStencilOp @@ -26450,14 +23526,14 @@ typedef unsigned int GLhandleARB; void glStencilOpSeparate - GLenum face + GLenum face GLenum sfail GLenum dpfail GLenum dppass void glStencilOpSeparateATI - GLenum face + GLenum face GLenum sfail GLenum dpfail GLenum dppass @@ -26465,63 +23541,63 @@ typedef unsigned int GLhandleARB; void glStencilOpValueAMD - GLenum face + GLenum face GLuint value void glStencilStrokePathInstancedNV GLsizei numPaths GLenum pathNameType - const void *paths - GLuint pathBase - GLint reference - GLuint mask + const void *paths + GLuint pathBase + GLint reference + GLuint mask GLenum transformType const GLfloat *transformValues void glStencilStrokePathNV - GLuint path - GLint reference - GLuint mask + GLuint path + GLint reference + GLuint mask void glStencilThenCoverFillPathInstancedNV GLsizei numPaths - GLenum pathNameType - const void *paths - GLuint pathBase - GLenum fillMode - GLuint mask - GLenum coverMode - GLenum transformType - const GLfloat *transformValues + GLenum pathNameType + const void *paths + GLuint pathBase + GLenum fillMode + GLuint mask + GLenum coverMode + GLenum transformType + const GLfloat *transformValues void glStencilThenCoverFillPathNV - GLuint path - GLenum fillMode - GLuint mask - GLenum coverMode + GLuint path + GLenum fillMode + GLuint mask + GLenum coverMode void glStencilThenCoverStrokePathInstancedNV GLsizei numPaths - GLenum pathNameType - const void *paths - GLuint pathBase - GLint reference - GLuint mask - GLenum coverMode - GLenum transformType - const GLfloat *transformValues + GLenum pathNameType + const void *paths + GLuint pathBase + GLint reference + GLuint mask + GLenum coverMode + GLenum transformType + const GLfloat *transformValues void glStencilThenCoverStrokePathNV - GLuint path - GLint reference - GLuint mask - GLenum coverMode + GLuint path + GLint reference + GLuint mask + GLenum coverMode void glStopInstrumentsSGIX @@ -26549,7 +23625,7 @@ typedef unsigned int GLhandleARB; void glSyncTextureINTEL - GLuint texture + GLuint texture void glTagSampleBufferSGIX @@ -26568,25 +23644,25 @@ typedef unsigned int GLhandleARB; void glTangent3dEXT - GLdouble tx - GLdouble ty - GLdouble tz + GLdouble tx + GLdouble ty + GLdouble tz void glTangent3dvEXT - const GLdouble *v + const GLdouble *v void glTangent3fEXT - GLfloat tx - GLfloat ty - GLfloat tz + GLfloat tx + GLfloat ty + GLfloat tz void glTangent3fvEXT - const GLfloat *v + const GLfloat *v void glTangent3iEXT @@ -26629,16 +23705,16 @@ typedef unsigned int GLhandleARB; GLenum mode - GLboolean glTestFenceAPPLE - GLuint fence + GLboolean glTestFenceAPPLE + GLuint fence - GLboolean glTestFenceNV - GLuint fence + GLboolean glTestFenceNV + GLuint fence - GLboolean glTestObjectAPPLE + GLboolean glTestObjectAPPLE GLenum object GLuint name @@ -26651,55 +23727,55 @@ typedef unsigned int GLhandleARB; void glTexBuffer GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glTexBufferARB GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glTexBufferEXT GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glTexBufferOES GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glTexBufferRange GLenum target - GLenum internalformat - GLuint buffer - GLintptr offset - GLsizeiptr size + GLenum internalformat + GLuint buffer + GLintptr offset + GLsizeiptr size void glTexBufferRangeEXT GLenum target - GLenum internalformat - GLuint buffer - GLintptr offset - GLsizeiptr size + GLenum internalformat + GLuint buffer + GLintptr offset + GLsizeiptr size void glTexBufferRangeOES GLenum target - GLenum internalformat - GLuint buffer - GLintptr offset - GLsizeiptr size + GLenum internalformat + GLuint buffer + GLintptr offset + GLsizeiptr size @@ -26722,52 +23798,52 @@ typedef unsigned int GLhandleARB; void glTexCoord1d - GLdouble s + GLdouble s void glTexCoord1dv - const GLdouble *v + const GLdouble *v void glTexCoord1f - GLfloat s + GLfloat s void glTexCoord1fv - const GLfloat *v + const GLfloat *v void glTexCoord1hNV - GLhalfNV s + GLhalfNV s void glTexCoord1hvNV - const GLhalfNV *v + const GLhalfNV *v void glTexCoord1i - GLint s + GLint s void glTexCoord1iv - const GLint *v + const GLint *v void glTexCoord1s - GLshort s + GLshort s void glTexCoord1sv - const GLshort *v + const GLshort *v @@ -26789,28 +23865,28 @@ typedef unsigned int GLhandleARB; void glTexCoord2d - GLdouble s - GLdouble t + GLdouble s + GLdouble t void glTexCoord2dv - const GLdouble *v + const GLdouble *v void glTexCoord2f - GLfloat s - GLfloat t + GLfloat s + GLfloat t void glTexCoord2fColor3fVertex3fSUN GLfloat s GLfloat t - GLfloat r - GLfloat g - GLfloat b + GLfloat r + GLfloat g + GLfloat b GLfloat x GLfloat y GLfloat z @@ -26818,17 +23894,17 @@ typedef unsigned int GLhandleARB; void glTexCoord2fColor3fVertex3fvSUN const GLfloat *tc - const GLfloat *c + const GLfloat *c const GLfloat *v void glTexCoord2fColor4fNormal3fVertex3fSUN GLfloat s GLfloat t - GLfloat r - GLfloat g - GLfloat b - GLfloat a + GLfloat r + GLfloat g + GLfloat b + GLfloat a GLfloat nx GLfloat ny GLfloat nz @@ -26839,7 +23915,7 @@ typedef unsigned int GLhandleARB; void glTexCoord2fColor4fNormal3fVertex3fvSUN const GLfloat *tc - const GLfloat *c + const GLfloat *c const GLfloat *n const GLfloat *v @@ -26847,10 +23923,10 @@ typedef unsigned int GLhandleARB; void glTexCoord2fColor4ubVertex3fSUN GLfloat s GLfloat t - GLubyte r - GLubyte g - GLubyte b - GLubyte a + GLubyte r + GLubyte g + GLubyte b + GLubyte a GLfloat x GLfloat y GLfloat z @@ -26858,7 +23934,7 @@ typedef unsigned int GLhandleARB; void glTexCoord2fColor4ubVertex3fvSUN const GLfloat *tc - const GLubyte *c + const GLubyte *c const GLfloat *v @@ -26893,40 +23969,40 @@ typedef unsigned int GLhandleARB; void glTexCoord2fv - const GLfloat *v + const GLfloat *v void glTexCoord2hNV - GLhalfNV s - GLhalfNV t + GLhalfNV s + GLhalfNV t void glTexCoord2hvNV - const GLhalfNV *v + const GLhalfNV *v void glTexCoord2i - GLint s - GLint t + GLint s + GLint t void glTexCoord2iv - const GLint *v + const GLint *v void glTexCoord2s - GLshort s - GLshort t + GLshort s + GLshort t void glTexCoord2sv - const GLshort *v + const GLshort *v @@ -26950,62 +24026,62 @@ typedef unsigned int GLhandleARB; void glTexCoord3d - GLdouble s - GLdouble t - GLdouble r + GLdouble s + GLdouble t + GLdouble r void glTexCoord3dv - const GLdouble *v + const GLdouble *v void glTexCoord3f - GLfloat s - GLfloat t - GLfloat r + GLfloat s + GLfloat t + GLfloat r void glTexCoord3fv - const GLfloat *v + const GLfloat *v void glTexCoord3hNV - GLhalfNV s - GLhalfNV t - GLhalfNV r + GLhalfNV s + GLhalfNV t + GLhalfNV r void glTexCoord3hvNV - const GLhalfNV *v + const GLhalfNV *v void glTexCoord3i - GLint s - GLint t - GLint r + GLint s + GLint t + GLint r void glTexCoord3iv - const GLint *v + const GLint *v void glTexCoord3s - GLshort s - GLshort t - GLshort r + GLshort s + GLshort t + GLshort r void glTexCoord3sv - const GLshort *v + const GLshort *v @@ -27031,23 +24107,23 @@ typedef unsigned int GLhandleARB; void glTexCoord4d - GLdouble s - GLdouble t - GLdouble r - GLdouble q + GLdouble s + GLdouble t + GLdouble r + GLdouble q void glTexCoord4dv - const GLdouble *v + const GLdouble *v void glTexCoord4f - GLfloat s - GLfloat t - GLfloat r - GLfloat q + GLfloat s + GLfloat t + GLfloat r + GLfloat q @@ -27056,10 +24132,10 @@ typedef unsigned int GLhandleARB; GLfloat t GLfloat p GLfloat q - GLfloat r - GLfloat g - GLfloat b - GLfloat a + GLfloat r + GLfloat g + GLfloat b + GLfloat a GLfloat nx GLfloat ny GLfloat nz @@ -27071,7 +24147,7 @@ typedef unsigned int GLhandleARB; void glTexCoord4fColor4fNormal3fVertex4fvSUN const GLfloat *tc - const GLfloat *c + const GLfloat *c const GLfloat *n const GLfloat *v @@ -27093,46 +24169,46 @@ typedef unsigned int GLhandleARB; void glTexCoord4fv - const GLfloat *v + const GLfloat *v void glTexCoord4hNV - GLhalfNV s - GLhalfNV t - GLhalfNV r - GLhalfNV q + GLhalfNV s + GLhalfNV t + GLhalfNV r + GLhalfNV q void glTexCoord4hvNV - const GLhalfNV *v + const GLhalfNV *v void glTexCoord4i - GLint s - GLint t - GLint r - GLint q + GLint s + GLint t + GLint r + GLint q void glTexCoord4iv - const GLint *v + const GLint *v void glTexCoord4s - GLshort s - GLshort t - GLshort r - GLshort q + GLshort s + GLshort t + GLshort r + GLshort q void glTexCoord4sv - const GLshort *v + const GLshort *v @@ -27225,28 +24301,28 @@ typedef unsigned int GLhandleARB; void glTexEnvf GLenum target GLenum pname - GLfloat param + GLfloat param void glTexEnvfv GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glTexEnvi GLenum target GLenum pname - GLint param + GLint param void glTexEnviv GLenum target GLenum pname - const GLint *params + const GLint *params @@ -27273,6 +24349,26 @@ typedef unsigned int GLhandleARB; GLenum pname const GLfixed *params + + void glTexEstimateMotionQCOM + GLuint ref + GLuint target + GLuint output + + + void glTexEstimateMotionRegionsQCOM + GLuint ref + GLuint target + GLuint output + GLuint mask + + + void glExtrapolateTex2DQCOM + GLuint src1 + GLuint src2 + GLuint output + GLfloat scaleFactor + void glTexFilterFuncSGIS GLenum target @@ -27299,7 +24395,7 @@ typedef unsigned int GLhandleARB; void glTexGenf GLenum coord GLenum pname - GLfloat param + GLfloat param @@ -27312,7 +24408,7 @@ typedef unsigned int GLhandleARB; void glTexGenfv GLenum coord GLenum pname - const GLfloat *params + const GLfloat *params @@ -27325,7 +24421,7 @@ typedef unsigned int GLhandleARB; void glTexGeni GLenum coord GLenum pname - GLint param + GLint param @@ -27338,7 +24434,7 @@ typedef unsigned int GLhandleARB; void glTexGeniv GLenum coord GLenum pname - const GLint *params + const GLint *params @@ -27362,10 +24458,10 @@ typedef unsigned int GLhandleARB; void glTexImage1D GLenum target - GLint level + GLint level GLint internalformat GLsizei width - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -27375,11 +24471,11 @@ typedef unsigned int GLhandleARB; void glTexImage2D GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -27393,27 +24489,27 @@ typedef unsigned int GLhandleARB; GLenum internalformat GLsizei width GLsizei height - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTexImage2DMultisampleCoverageNV GLenum target GLsizei coverageSamples GLsizei colorSamples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTexImage3D GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -27423,12 +24519,12 @@ typedef unsigned int GLhandleARB; void glTexImage3DEXT GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -27443,18 +24539,18 @@ typedef unsigned int GLhandleARB; GLsizei width GLsizei height GLsizei depth - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTexImage3DMultisampleCoverageNV GLenum target GLsizei coverageSamples GLsizei colorSamples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height GLsizei depth - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTexImage3DOES @@ -27472,13 +24568,13 @@ typedef unsigned int GLhandleARB; void glTexImage4DSGIS GLenum target - GLint level + GLint level GLenum internalformat GLsizei width GLsizei height GLsizei depth GLsizei size4d - GLint border + GLint border GLenum format GLenum type const void *pixels @@ -27509,6 +24605,21 @@ typedef unsigned int GLhandleARB; GLboolean commit + + void glTexPageCommitmentMemNV + GLenum target + GLint layer + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLsizei width + GLsizei height + GLsizei depth + GLuint memory + GLuint64 offset + GLboolean commit + void glTexParameterIiv GLenum target @@ -27555,28 +24666,28 @@ typedef unsigned int GLhandleARB; void glTexParameterf GLenum target GLenum pname - GLfloat param + GLfloat param void glTexParameterfv GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glTexParameteri GLenum target GLenum pname - GLint param + GLint param void glTexParameteriv GLenum target GLenum pname - const GLint *params + const GLint *params @@ -27606,20 +24717,20 @@ typedef unsigned int GLhandleARB; void glTexRenderbufferNV GLenum target - GLuint renderbuffer + GLuint renderbuffer void glTexStorage1D GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width void glTexStorage1DEXT GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width @@ -27627,7 +24738,7 @@ typedef unsigned int GLhandleARB; void glTexStorage2D GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height @@ -27635,7 +24746,7 @@ typedef unsigned int GLhandleARB; void glTexStorage2DEXT GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height @@ -27644,16 +24755,16 @@ typedef unsigned int GLhandleARB; void glTexStorage2DMultisample GLenum target GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTexStorage3D GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth @@ -27662,7 +24773,7 @@ typedef unsigned int GLhandleARB; void glTexStorage3DEXT GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth @@ -27672,28 +24783,47 @@ typedef unsigned int GLhandleARB; void glTexStorage3DMultisample GLenum target GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTexStorage3DMultisampleOES GLenum target GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations + + void glTexStorageAttribs2DEXT + GLenum target + GLsizei levels + GLenum internalformat + GLsizei width + GLsizei height + const GLint* attrib_list + + + void glTexStorageAttribs3DEXT + GLenum target + GLsizei levels + GLenum internalformat + GLsizei width + GLsizei height + GLsizei depth + const GLint* attrib_list + void glTexStorageMem1DEXT GLenum target GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLuint memory GLuint64 offset @@ -27702,7 +24832,7 @@ typedef unsigned int GLhandleARB; void glTexStorageMem2DEXT GLenum target GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLuint memory @@ -27712,7 +24842,7 @@ typedef unsigned int GLhandleARB; void glTexStorageMem2DMultisampleEXT GLenum target GLsizei samples - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLboolean fixedSampleLocations @@ -27723,7 +24853,7 @@ typedef unsigned int GLhandleARB; void glTexStorageMem3DEXT GLenum target GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -27734,7 +24864,7 @@ typedef unsigned int GLhandleARB; void glTexStorageMem3DMultisampleEXT GLenum target GLsizei samples - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -27745,7 +24875,7 @@ typedef unsigned int GLhandleARB; void glTexStorageSparseAMD GLenum target - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -27755,8 +24885,8 @@ typedef unsigned int GLhandleARB; void glTexSubImage1D GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width GLenum format GLenum type @@ -27767,8 +24897,8 @@ typedef unsigned int GLhandleARB; void glTexSubImage1DEXT GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width GLenum format GLenum type @@ -27779,9 +24909,9 @@ typedef unsigned int GLhandleARB; void glTexSubImage2D GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height GLenum format @@ -27793,9 +24923,9 @@ typedef unsigned int GLhandleARB; void glTexSubImage2DEXT GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height GLenum format @@ -27807,10 +24937,10 @@ typedef unsigned int GLhandleARB; void glTexSubImage3D GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth @@ -27823,10 +24953,10 @@ typedef unsigned int GLhandleARB; void glTexSubImage3DEXT GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth @@ -27853,11 +24983,11 @@ typedef unsigned int GLhandleARB; void glTexSubImage4DSGIS GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset - GLint woffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLint woffset GLsizei width GLsizei height GLsizei depth @@ -27869,7 +24999,7 @@ typedef unsigned int GLhandleARB; void glTextureAttachMemoryNV - GLuint texture + GLuint texture GLuint memory GLuint64 offset @@ -27882,135 +25012,135 @@ typedef unsigned int GLhandleARB; void glTextureBuffer - GLuint texture - GLenum internalformat - GLuint buffer + GLuint texture + GLenum internalformat + GLuint buffer void glTextureBufferEXT - GLuint texture + GLuint texture GLenum target - GLenum internalformat - GLuint buffer + GLenum internalformat + GLuint buffer void glTextureBufferRange - GLuint texture - GLenum internalformat - GLuint buffer + GLuint texture + GLenum internalformat + GLuint buffer GLintptr offset - GLsizeiptr size + GLsizeiptr size void glTextureBufferRangeEXT - GLuint texture + GLuint texture GLenum target - GLenum internalformat - GLuint buffer - GLintptr offset - GLsizeiptr size + GLenum internalformat + GLuint buffer + GLintptr offset + GLsizeiptr size void glTextureColorMaskSGIS - GLboolean red - GLboolean green - GLboolean blue - GLboolean alpha + GLboolean red + GLboolean green + GLboolean blue + GLboolean alpha void glTextureFoveationParametersQCOM - GLuint texture + GLuint texture GLuint layer GLuint focalPoint - GLfloat focalX - GLfloat focalY - GLfloat gainX - GLfloat gainY - GLfloat foveaArea + GLfloat focalX + GLfloat focalY + GLfloat gainX + GLfloat gainY + GLfloat foveaArea void glTextureImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLint internalformat GLsizei width - GLint border + GLint border GLenum format GLenum type const void *pixels void glTextureImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height - GLint border + GLint border GLenum format GLenum type const void *pixels void glTextureImage2DMultisampleCoverageNV - GLuint texture + GLuint texture GLenum target GLsizei coverageSamples GLsizei colorSamples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTextureImage2DMultisampleNV - GLuint texture + GLuint texture GLenum target GLsizei samples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTextureImage3DEXT - GLuint texture + GLuint texture GLenum target - GLint level + GLint level GLint internalformat GLsizei width GLsizei height GLsizei depth - GLint border + GLint border GLenum format GLenum type const void *pixels void glTextureImage3DMultisampleCoverageNV - GLuint texture + GLuint texture GLenum target GLsizei coverageSamples GLsizei colorSamples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height GLsizei depth - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTextureImage3DMultisampleNV - GLuint texture + GLuint texture GLenum target GLsizei samples - GLint internalFormat + GLint internalFormat GLsizei width GLsizei height GLsizei depth - GLboolean fixedSampleLocations + GLboolean fixedSampleLocations void glTextureLightEXT @@ -28018,7 +25148,7 @@ typedef unsigned int GLhandleARB; void glTextureMaterialEXT - GLenum face + GLenum face GLenum mode @@ -28027,7 +25157,7 @@ typedef unsigned int GLhandleARB; void glTexturePageCommitmentEXT - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -28037,85 +25167,100 @@ typedef unsigned int GLhandleARB; GLsizei depth GLboolean commit + + void glTexturePageCommitmentMemNV + GLuint texture + GLint layer + GLint level + GLint xoffset + GLint yoffset + GLint zoffset + GLsizei width + GLsizei height + GLsizei depth + GLuint memory + GLuint64 offset + GLboolean commit + void glTextureParameterIiv - GLuint texture + GLuint texture GLenum pname - const GLint *params + const GLint *params void glTextureParameterIivEXT - GLuint texture + GLuint texture GLenum target GLenum pname - const GLint *params + const GLint *params void glTextureParameterIuiv - GLuint texture + GLuint texture GLenum pname - const GLuint *params + const GLuint *params void glTextureParameterIuivEXT - GLuint texture + GLuint texture GLenum target GLenum pname const GLuint *params void glTextureParameterf - GLuint texture + GLuint texture GLenum pname GLfloat param void glTextureParameterfEXT - GLuint texture + GLuint texture GLenum target GLenum pname - GLfloat param + GLfloat param void glTextureParameterfv - GLuint texture + GLuint texture GLenum pname - const GLfloat *param + const GLfloat *param void glTextureParameterfvEXT - GLuint texture + GLuint texture GLenum target GLenum pname - const GLfloat *params + const GLfloat *params void glTextureParameteri - GLuint texture + GLuint texture GLenum pname GLint param void glTextureParameteriEXT - GLuint texture + GLuint texture GLenum target GLenum pname - GLint param + GLint param void glTextureParameteriv - GLuint texture + GLuint texture GLenum pname - const GLint *param + const GLint *param void glTextureParameterivEXT - GLuint texture + GLuint texture GLenum target GLenum pname - const GLint *params + const GLint *params void glTextureRangeAPPLE @@ -28125,85 +25270,85 @@ typedef unsigned int GLhandleARB; void glTextureRenderbufferEXT - GLuint texture + GLuint texture GLenum target - GLuint renderbuffer + GLuint renderbuffer void glTextureStorage1D - GLuint texture + GLuint texture GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width void glTextureStorage1DEXT - GLuint texture + GLuint texture GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width void glTextureStorage2D - GLuint texture + GLuint texture GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height void glTextureStorage2DEXT - GLuint texture + GLuint texture GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height void glTextureStorage2DMultisample - GLuint texture + GLuint texture GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLboolean fixedsamplelocations void glTextureStorage2DMultisampleEXT - GLuint texture + GLuint texture GLenum target GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTextureStorage3D - GLuint texture + GLuint texture GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth void glTextureStorage3DEXT - GLuint texture + GLuint texture GLenum target GLsizei levels - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth void glTextureStorage3DMultisample - GLuint texture + GLuint texture GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth @@ -28211,29 +25356,29 @@ typedef unsigned int GLhandleARB; void glTextureStorage3DMultisampleEXT - GLuint texture + GLuint texture GLenum target GLsizei samples - GLenum internalformat + GLenum internalformat GLsizei width GLsizei height GLsizei depth - GLboolean fixedsamplelocations + GLboolean fixedsamplelocations void glTextureStorageMem1DEXT - GLuint texture + GLuint texture GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLuint memory GLuint64 offset void glTextureStorageMem2DEXT - GLuint texture + GLuint texture GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLuint memory @@ -28241,9 +25386,9 @@ typedef unsigned int GLhandleARB; void glTextureStorageMem2DMultisampleEXT - GLuint texture + GLuint texture GLsizei samples - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLboolean fixedSampleLocations @@ -28252,9 +25397,9 @@ typedef unsigned int GLhandleARB; void glTextureStorageMem3DEXT - GLuint texture + GLuint texture GLsizei levels - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -28263,9 +25408,9 @@ typedef unsigned int GLhandleARB; void glTextureStorageMem3DMultisampleEXT - GLuint texture + GLuint texture GLsizei samples - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -28275,9 +25420,9 @@ typedef unsigned int GLhandleARB; void glTextureStorageSparseAMD - GLuint texture + GLuint texture GLenum target - GLenum internalFormat + GLenum internalFormat GLsizei width GLsizei height GLsizei depth @@ -28286,7 +25431,7 @@ typedef unsigned int GLhandleARB; void glTextureSubImage1D - GLuint texture + GLuint texture GLint level GLint xoffset GLsizei width @@ -28296,10 +25441,10 @@ typedef unsigned int GLhandleARB; void glTextureSubImage1DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset + GLint level + GLint xoffset GLsizei width GLenum format GLenum type @@ -28307,7 +25452,7 @@ typedef unsigned int GLhandleARB; void glTextureSubImage2D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -28319,11 +25464,11 @@ typedef unsigned int GLhandleARB; void glTextureSubImage2DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset + GLint level + GLint xoffset + GLint yoffset GLsizei width GLsizei height GLenum format @@ -28332,7 +25477,7 @@ typedef unsigned int GLhandleARB; void glTextureSubImage3D - GLuint texture + GLuint texture GLint level GLint xoffset GLint yoffset @@ -28346,12 +25491,12 @@ typedef unsigned int GLhandleARB; void glTextureSubImage3DEXT - GLuint texture + GLuint texture GLenum target - GLint level - GLint xoffset - GLint yoffset - GLint zoffset + GLint level + GLint xoffset + GLint yoffset + GLint zoffset GLsizei width GLsizei height GLsizei depth @@ -28361,10 +25506,10 @@ typedef unsigned int GLhandleARB; void glTextureView - GLuint texture + GLuint texture GLenum target - GLuint origtexture - GLenum internalformat + GLuint origtexture + GLenum internalformat GLuint minlevel GLuint numlevels GLuint minlayer @@ -28372,10 +25517,10 @@ typedef unsigned int GLhandleARB; void glTextureViewEXT - GLuint texture + GLuint texture GLenum target - GLuint origtexture - GLenum internalformat + GLuint origtexture + GLenum internalformat GLuint minlevel GLuint numlevels GLuint minlayer @@ -28384,10 +25529,10 @@ typedef unsigned int GLhandleARB; void glTextureViewOES - GLuint texture + GLuint texture GLenum target - GLuint origtexture - GLenum internalformat + GLuint origtexture + GLenum internalformat GLuint minlevel GLuint numlevels GLuint minlayer @@ -28410,17 +25555,17 @@ typedef unsigned int GLhandleARB; void glTransformFeedbackBufferBase - GLuint xfb + GLuint xfb GLuint index - GLuint buffer + GLuint buffer void glTransformFeedbackBufferRange - GLuint xfb + GLuint xfb GLuint index - GLuint buffer + GLuint buffer GLintptr offset - GLsizeiptr size + GLsizeiptr size void glTransformFeedbackStreamAttribsNV @@ -28432,31 +25577,31 @@ typedef unsigned int GLhandleARB; void glTransformFeedbackVaryings - GLuint program + GLuint program GLsizei count const GLchar *const*varyings - GLenum bufferMode + GLenum bufferMode void glTransformFeedbackVaryingsEXT - GLuint program + GLuint program GLsizei count const GLchar *const*varyings - GLenum bufferMode + GLenum bufferMode void glTransformFeedbackVaryingsNV - GLuint program + GLuint program GLsizei count - const GLint *locations - GLenum bufferMode + const GLint *locations + GLenum bufferMode void glTransformPathNV - GLuint resultPath - GLuint srcPath + GLuint resultPath + GLuint srcPath GLenum transformType const GLfloat *transformValues @@ -28495,7 +25640,7 @@ typedef unsigned int GLhandleARB; void glUniform1dv GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glUniform1f @@ -28512,13 +25657,13 @@ typedef unsigned int GLhandleARB; void glUniform1fv GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glUniform1fvARB GLint location GLsizei count - const GLfloat *value + const GLfloat *value @@ -28540,13 +25685,13 @@ typedef unsigned int GLhandleARB; void glUniform1i64vARB GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glUniform1i64vNV GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glUniform1iARB @@ -28558,13 +25703,13 @@ typedef unsigned int GLhandleARB; void glUniform1iv GLint location GLsizei count - const GLint *value + const GLint *value void glUniform1ivARB GLint location GLsizei count - const GLint *value + const GLint *value @@ -28586,13 +25731,13 @@ typedef unsigned int GLhandleARB; void glUniform1ui64vARB GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glUniform1ui64vNV GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glUniform1uiEXT @@ -28604,13 +25749,13 @@ typedef unsigned int GLhandleARB; void glUniform1uiv GLint location GLsizei count - const GLuint *value + const GLuint *value void glUniform1uivEXT GLint location GLsizei count - const GLuint *value + const GLuint *value @@ -28623,7 +25768,7 @@ typedef unsigned int GLhandleARB; void glUniform2dv GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glUniform2f @@ -28642,13 +25787,13 @@ typedef unsigned int GLhandleARB; void glUniform2fv GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glUniform2fvARB GLint location GLsizei count - const GLfloat *value + const GLfloat *value @@ -28673,13 +25818,13 @@ typedef unsigned int GLhandleARB; void glUniform2i64vARB GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glUniform2i64vNV GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glUniform2iARB @@ -28692,13 +25837,13 @@ typedef unsigned int GLhandleARB; void glUniform2iv GLint location GLsizei count - const GLint *value + const GLint *value void glUniform2ivARB GLint location GLsizei count - const GLint *value + const GLint *value @@ -28723,13 +25868,13 @@ typedef unsigned int GLhandleARB; void glUniform2ui64vARB GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glUniform2ui64vNV GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glUniform2uiEXT @@ -28742,13 +25887,13 @@ typedef unsigned int GLhandleARB; void glUniform2uiv GLint location GLsizei count - const GLuint *value + const GLuint *value void glUniform2uivEXT GLint location GLsizei count - const GLuint *value + const GLuint *value @@ -28762,7 +25907,7 @@ typedef unsigned int GLhandleARB; void glUniform3dv GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glUniform3f @@ -28783,13 +25928,13 @@ typedef unsigned int GLhandleARB; void glUniform3fv GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glUniform3fvARB GLint location GLsizei count - const GLfloat *value + const GLfloat *value @@ -28817,13 +25962,13 @@ typedef unsigned int GLhandleARB; void glUniform3i64vARB GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glUniform3i64vNV GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glUniform3iARB @@ -28837,13 +25982,13 @@ typedef unsigned int GLhandleARB; void glUniform3iv GLint location GLsizei count - const GLint *value + const GLint *value void glUniform3ivARB GLint location GLsizei count - const GLint *value + const GLint *value @@ -28871,13 +26016,13 @@ typedef unsigned int GLhandleARB; void glUniform3ui64vARB GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glUniform3ui64vNV GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glUniform3uiEXT @@ -28891,13 +26036,13 @@ typedef unsigned int GLhandleARB; void glUniform3uiv GLint location GLsizei count - const GLuint *value + const GLuint *value void glUniform3uivEXT GLint location GLsizei count - const GLuint *value + const GLuint *value @@ -28912,7 +26057,7 @@ typedef unsigned int GLhandleARB; void glUniform4dv GLint location GLsizei count - const GLdouble *value + const GLdouble *value void glUniform4f @@ -28935,13 +26080,13 @@ typedef unsigned int GLhandleARB; void glUniform4fv GLint location GLsizei count - const GLfloat *value + const GLfloat *value void glUniform4fvARB GLint location GLsizei count - const GLfloat *value + const GLfloat *value @@ -28972,13 +26117,13 @@ typedef unsigned int GLhandleARB; void glUniform4i64vARB GLint location GLsizei count - const GLint64 *value + const GLint64 *value void glUniform4i64vNV GLint location GLsizei count - const GLint64EXT *value + const GLint64EXT *value void glUniform4iARB @@ -28993,13 +26138,13 @@ typedef unsigned int GLhandleARB; void glUniform4iv GLint location GLsizei count - const GLint *value + const GLint *value void glUniform4ivARB GLint location GLsizei count - const GLint *value + const GLint *value @@ -29030,13 +26175,13 @@ typedef unsigned int GLhandleARB; void glUniform4ui64vARB GLint location GLsizei count - const GLuint64 *value + const GLuint64 *value void glUniform4ui64vNV GLint location GLsizei count - const GLuint64EXT *value + const GLuint64EXT *value void glUniform4uiEXT @@ -29051,27 +26196,27 @@ typedef unsigned int GLhandleARB; void glUniform4uiv GLint location GLsizei count - const GLuint *value + const GLuint *value void glUniform4uivEXT GLint location GLsizei count - const GLuint *value + const GLuint *value void glUniformBlockBinding - GLuint program + GLuint program GLuint uniformBlockIndex GLuint uniformBlockBinding void glUniformBufferEXT - GLuint program + GLuint program GLint location - GLuint buffer + GLuint buffer void glUniformHandleui64ARB @@ -29112,204 +26257,204 @@ typedef unsigned int GLhandleARB; void glUniformMatrix2dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix2fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix2fvARB GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix2x3dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix2x3fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix2x3fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix2x4dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix2x4fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix2x4fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix3fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3fvARB GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3x2dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix3x2fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3x2fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3x4dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix3x4fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix3x4fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix4fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4fvARB GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4x2dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix4x2fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4x2fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4x3dv GLint location GLsizei count - GLboolean transpose - const GLdouble *value + GLboolean transpose + const GLdouble *value void glUniformMatrix4x3fv GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value void glUniformMatrix4x3fvNV GLint location GLsizei count - GLboolean transpose - const GLfloat *value + GLboolean transpose + const GLfloat *value @@ -29333,11 +26478,11 @@ typedef unsigned int GLhandleARB; void glUnlockArraysEXT - GLboolean glUnmapBuffer + GLboolean glUnmapBuffer GLenum target - GLboolean glUnmapBufferARB + GLboolean glUnmapBufferARB GLenum target @@ -29348,65 +26493,69 @@ typedef unsigned int GLhandleARB; GLboolean glUnmapNamedBuffer - GLuint buffer + GLuint buffer - GLboolean glUnmapNamedBufferEXT - GLuint buffer + GLboolean glUnmapNamedBufferEXT + GLuint buffer void glUnmapObjectBufferATI - GLuint buffer + GLuint buffer void glUnmapTexture2DINTEL - GLuint texture + GLuint texture GLint level void glUpdateObjectBufferATI - GLuint buffer + GLuint buffer GLuint offset GLsizei size const void *pointer GLenum preserve + + void glUploadGpuMaskNVX + GLbitfield mask + void glUseProgram - GLuint program + GLuint program void glUseProgramObjectARB - GLhandleARB programObj + GLhandleARB programObj void glUseProgramStages - GLuint pipeline + GLuint pipeline GLbitfield stages - GLuint program + GLuint program void glUseProgramStagesEXT - GLuint pipeline + GLuint pipeline GLbitfield stages - GLuint program + GLuint program void glUseShaderProgramEXT GLenum type - GLuint program + GLuint program void glVDPAUFiniNV void glVDPAUGetSurfaceivNV - GLvdpauSurfaceNV surface + GLvdpauSurfaceNV surface GLenum pname - GLsizei bufSize + GLsizei count GLsizei *length - GLint *values + GLint *values void glVDPAUInitNV @@ -29415,64 +26564,72 @@ typedef unsigned int GLhandleARB; GLboolean glVDPAUIsSurfaceNV - GLvdpauSurfaceNV surface + GLvdpauSurfaceNV surface void glVDPAUMapSurfacesNV GLsizei numSurfaces - const GLvdpauSurfaceNV *surfaces + const GLvdpauSurfaceNV *surfaces - GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV + GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV const void *vdpSurface GLenum target GLsizei numTextureNames const GLuint *textureNames - GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV + GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV const void *vdpSurface GLenum target GLsizei numTextureNames const GLuint *textureNames + + GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceWithPictureStructureNV + const void *vdpSurface + GLenum target + GLsizei numTextureNames + const GLuint *textureNames + GLboolean isFrameStructure + void glVDPAUSurfaceAccessNV - GLvdpauSurfaceNV surface + GLvdpauSurfaceNV surface GLenum access void glVDPAUUnmapSurfacesNV GLsizei numSurface - const GLvdpauSurfaceNV *surfaces + const GLvdpauSurfaceNV *surfaces void glVDPAUUnregisterSurfaceNV - GLvdpauSurfaceNV surface + GLvdpauSurfaceNV surface void glValidateProgram - GLuint program + GLuint program void glValidateProgramARB - GLhandleARB programObj + GLhandleARB programObj void glValidateProgramPipeline - GLuint pipeline + GLuint pipeline void glValidateProgramPipelineEXT - GLuint pipeline + GLuint pipeline void glVariantArrayObjectATI GLuint id GLenum type GLsizei stride - GLuint buffer + GLuint buffer GLuint offset @@ -29533,57 +26690,57 @@ typedef unsigned int GLhandleARB; void glVertex2d - GLdouble x - GLdouble y + GLdouble x + GLdouble y void glVertex2dv - const GLdouble *v + const GLdouble *v void glVertex2f - GLfloat x - GLfloat y + GLfloat x + GLfloat y void glVertex2fv - const GLfloat *v + const GLfloat *v void glVertex2hNV - GLhalfNV x - GLhalfNV y + GLhalfNV x + GLhalfNV y void glVertex2hvNV - const GLhalfNV *v + const GLhalfNV *v void glVertex2i - GLint x - GLint y + GLint x + GLint y void glVertex2iv - const GLint *v + const GLint *v void glVertex2s - GLshort x - GLshort y + GLshort x + GLshort y void glVertex2sv - const GLshort *v + const GLshort *v @@ -29606,62 +26763,62 @@ typedef unsigned int GLhandleARB; void glVertex3d - GLdouble x - GLdouble y - GLdouble z + GLdouble x + GLdouble y + GLdouble z void glVertex3dv - const GLdouble *v + const GLdouble *v void glVertex3f - GLfloat x - GLfloat y - GLfloat z + GLfloat x + GLfloat y + GLfloat z void glVertex3fv - const GLfloat *v + const GLfloat *v void glVertex3hNV - GLhalfNV x - GLhalfNV y - GLhalfNV z + GLhalfNV x + GLhalfNV y + GLhalfNV z void glVertex3hvNV - const GLhalfNV *v + const GLhalfNV *v void glVertex3i - GLint x - GLint y - GLint z + GLint x + GLint y + GLint z void glVertex3iv - const GLint *v + const GLint *v void glVertex3s - GLshort x - GLshort y - GLshort z + GLshort x + GLshort y + GLshort z void glVertex3sv - const GLshort *v + const GLshort *v @@ -29686,67 +26843,67 @@ typedef unsigned int GLhandleARB; void glVertex4d - GLdouble x - GLdouble y - GLdouble z - GLdouble w + GLdouble x + GLdouble y + GLdouble z + GLdouble w void glVertex4dv - const GLdouble *v + const GLdouble *v void glVertex4f - GLfloat x - GLfloat y - GLfloat z - GLfloat w + GLfloat x + GLfloat y + GLfloat z + GLfloat w void glVertex4fv - const GLfloat *v + const GLfloat *v void glVertex4hNV - GLhalfNV x - GLhalfNV y - GLhalfNV z - GLhalfNV w + GLhalfNV x + GLhalfNV y + GLhalfNV z + GLhalfNV w void glVertex4hvNV - const GLhalfNV *v + const GLhalfNV *v void glVertex4i - GLint x - GLint y - GLint z - GLint w + GLint x + GLint y + GLint z + GLint w void glVertex4iv - const GLint *v + const GLint *v void glVertex4s - GLshort x - GLshort y - GLshort z - GLshort w + GLshort x + GLshort y + GLshort z + GLshort w void glVertex4sv - const GLshort *v + const GLshort *v @@ -29761,13 +26918,13 @@ typedef unsigned int GLhandleARB; void glVertexArrayAttribBinding - GLuint vaobj + GLuint vaobj GLuint attribindex GLuint bindingindex void glVertexArrayAttribFormat - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size GLenum type @@ -29776,38 +26933,38 @@ typedef unsigned int GLhandleARB; void glVertexArrayAttribIFormat - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexArrayAttribLFormat - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexArrayBindVertexBufferEXT - GLuint vaobj + GLuint vaobj GLuint bindingindex - GLuint buffer - GLintptr offset + GLuint buffer + GLintptr offset GLsizei stride void glVertexArrayBindingDivisor - GLuint vaobj + GLuint vaobj GLuint bindingindex GLuint divisor void glVertexArrayColorOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLint size GLenum type GLsizei stride @@ -29815,36 +26972,36 @@ typedef unsigned int GLhandleARB; void glVertexArrayEdgeFlagOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLsizei stride GLintptr offset void glVertexArrayElementBuffer - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer void glVertexArrayFogCoordOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLenum type GLsizei stride GLintptr offset void glVertexArrayIndexOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLenum type GLsizei stride GLintptr offset void glVertexArrayMultiTexCoordOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLenum texunit GLint size GLenum type @@ -29853,8 +27010,8 @@ typedef unsigned int GLhandleARB; void glVertexArrayNormalOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLenum type GLsizei stride GLintptr offset @@ -29876,8 +27033,8 @@ typedef unsigned int GLhandleARB; void glVertexArraySecondaryColorOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLint size GLenum type GLsizei stride @@ -29885,8 +27042,8 @@ typedef unsigned int GLhandleARB; void glVertexArrayTexCoordOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLint size GLenum type GLsizei stride @@ -29894,65 +27051,65 @@ typedef unsigned int GLhandleARB; void glVertexArrayVertexAttribBindingEXT - GLuint vaobj + GLuint vaobj GLuint attribindex GLuint bindingindex void glVertexArrayVertexAttribDivisorEXT - GLuint vaobj + GLuint vaobj GLuint index GLuint divisor void glVertexArrayVertexAttribFormatEXT - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size - GLenum type - GLboolean normalized + GLenum type + GLboolean normalized GLuint relativeoffset void glVertexArrayVertexAttribIFormatEXT - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexArrayVertexAttribIOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLuint index GLint size - GLenum type + GLenum type GLsizei stride GLintptr offset void glVertexArrayVertexAttribLFormatEXT - GLuint vaobj + GLuint vaobj GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexArrayVertexAttribLOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLuint index GLint size - GLenum type + GLenum type GLsizei stride - GLintptr offset + GLintptr offset void glVertexArrayVertexAttribOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLuint index GLint size GLenum type @@ -29962,31 +27119,31 @@ typedef unsigned int GLhandleARB; void glVertexArrayVertexBindingDivisorEXT - GLuint vaobj + GLuint vaobj GLuint bindingindex GLuint divisor void glVertexArrayVertexBuffer - GLuint vaobj + GLuint vaobj GLuint bindingindex - GLuint buffer + GLuint buffer GLintptr offset GLsizei stride void glVertexArrayVertexBuffers - GLuint vaobj + GLuint vaobj GLuint first GLsizei count - const GLuint *buffers - const GLintptr *offsets - const GLsizei *strides + const GLuint *buffers + const GLintptr *offsets + const GLsizei *strides void glVertexArrayVertexOffsetEXT - GLuint vaobj - GLuint buffer + GLuint vaobj + GLuint buffer GLint size GLenum type GLsizei stride @@ -30075,13 +27232,13 @@ typedef unsigned int GLhandleARB; void glVertexAttrib1hNV GLuint index - GLhalfNV x + GLhalfNV x void glVertexAttrib1hvNV GLuint index - const GLhalfNV *v + const GLhalfNV *v @@ -30213,14 +27370,14 @@ typedef unsigned int GLhandleARB; void glVertexAttrib2hNV GLuint index - GLhalfNV x - GLhalfNV y + GLhalfNV x + GLhalfNV y void glVertexAttrib2hvNV GLuint index - const GLhalfNV *v + const GLhalfNV *v @@ -30361,15 +27518,15 @@ typedef unsigned int GLhandleARB; void glVertexAttrib3hNV GLuint index - GLhalfNV x - GLhalfNV y - GLhalfNV z + GLhalfNV x + GLhalfNV y + GLhalfNV z void glVertexAttrib3hvNV GLuint index - const GLhalfNV *v + const GLhalfNV *v @@ -30615,16 +27772,16 @@ typedef unsigned int GLhandleARB; void glVertexAttrib4hNV GLuint index - GLhalfNV x - GLhalfNV y - GLhalfNV z - GLhalfNV w + GLhalfNV x + GLhalfNV y + GLhalfNV z + GLhalfNV w void glVertexAttrib4hvNV GLuint index - const GLhalfNV *v + const GLhalfNV *v @@ -30690,10 +27847,10 @@ typedef unsigned int GLhandleARB; void glVertexAttrib4ubNV GLuint index - GLubyte x - GLubyte y - GLubyte z - GLubyte w + GLubyte x + GLubyte y + GLubyte z + GLubyte w @@ -30711,7 +27868,7 @@ typedef unsigned int GLhandleARB; void glVertexAttrib4ubvNV GLuint index - const GLubyte *v + const GLubyte *v @@ -30742,9 +27899,9 @@ typedef unsigned int GLhandleARB; GLuint index GLint size GLenum type - GLboolean normalized + GLboolean normalized GLsizei stride - GLuint buffer + GLuint buffer GLuint offset @@ -30785,16 +27942,16 @@ typedef unsigned int GLhandleARB; void glVertexAttribFormat GLuint attribindex GLint size - GLenum type - GLboolean normalized + GLenum type + GLboolean normalized GLuint relativeoffset void glVertexAttribFormatNV GLuint index GLint size - GLenum type - GLboolean normalized + GLenum type + GLboolean normalized GLsizei stride @@ -31061,31 +28218,31 @@ typedef unsigned int GLhandleARB; void glVertexAttribIFormat GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexAttribIFormatNV GLuint index GLint size - GLenum type + GLenum type GLsizei stride void glVertexAttribIPointer GLuint index GLint size - GLenum type + GLenum type GLsizei stride - const void *pointer + const void *pointer void glVertexAttribIPointerEXT GLuint index GLint size - GLenum type + GLenum type GLsizei stride - const void *pointer + const void *pointer @@ -31294,87 +28451,87 @@ typedef unsigned int GLhandleARB; void glVertexAttribLFormat GLuint attribindex GLint size - GLenum type + GLenum type GLuint relativeoffset void glVertexAttribLFormatNV GLuint index GLint size - GLenum type + GLenum type GLsizei stride void glVertexAttribLPointer GLuint index GLint size - GLenum type + GLenum type GLsizei stride - const void *pointer + const void *pointer void glVertexAttribLPointerEXT GLuint index GLint size - GLenum type + GLenum type GLsizei stride - const void *pointer + const void *pointer void glVertexAttribP1ui GLuint index GLenum type - GLboolean normalized + GLboolean normalized GLuint value void glVertexAttribP1uiv GLuint index GLenum type - GLboolean normalized + GLboolean normalized const GLuint *value void glVertexAttribP2ui GLuint index GLenum type - GLboolean normalized + GLboolean normalized GLuint value void glVertexAttribP2uiv GLuint index GLenum type - GLboolean normalized + GLboolean normalized const GLuint *value void glVertexAttribP3ui GLuint index GLenum type - GLboolean normalized + GLboolean normalized GLuint value void glVertexAttribP3uiv GLuint index GLenum type - GLboolean normalized + GLboolean normalized const GLuint *value void glVertexAttribP4ui GLuint index GLenum type - GLboolean normalized + GLboolean normalized GLuint value void glVertexAttribP4uiv GLuint index GLenum type - GLboolean normalized + GLboolean normalized const GLuint *value @@ -31388,18 +28545,18 @@ typedef unsigned int GLhandleARB; GLuint index GLint size GLenum type - GLboolean normalized + GLboolean normalized GLsizei stride - const void *pointer + const void *pointer void glVertexAttribPointerARB GLuint index GLint size GLenum type - GLboolean normalized + GLboolean normalized GLsizei stride - const void *pointer + const void *pointer @@ -31428,7 +28585,7 @@ typedef unsigned int GLhandleARB; void glVertexAttribs1hvNV GLuint index GLsizei n - const GLhalfNV *v + const GLhalfNV *v @@ -31456,7 +28613,7 @@ typedef unsigned int GLhandleARB; void glVertexAttribs2hvNV GLuint index GLsizei n - const GLhalfNV *v + const GLhalfNV *v @@ -31484,7 +28641,7 @@ typedef unsigned int GLhandleARB; void glVertexAttribs3hvNV GLuint index GLsizei n - const GLhalfNV *v + const GLhalfNV *v @@ -31512,7 +28669,7 @@ typedef unsigned int GLhandleARB; void glVertexAttribs4hvNV GLuint index GLsizei n - const GLhalfNV *v + const GLhalfNV *v @@ -31526,7 +28683,7 @@ typedef unsigned int GLhandleARB; void glVertexAttribs4ubvNV GLuint index GLsizei count - const GLubyte *v + const GLubyte *v @@ -31817,12 +28974,12 @@ typedef unsigned int GLhandleARB; void glVertexWeighthNV - GLhalfNV weight + GLhalfNV weight void glVertexWeighthvNV - const GLhalfNV *weight + const GLhalfNV *weight @@ -31854,8 +29011,8 @@ typedef unsigned int GLhandleARB; void glViewport - GLint x - GLint y + GLint x + GLint y GLsizei width GLsizei height @@ -31941,29 +29098,36 @@ typedef unsigned int GLhandleARB; void glWaitSemaphoreEXT GLuint semaphore GLuint numBufferBarriers - const GLuint *buffers + const GLuint *buffers GLuint numTextureBarriers - const GLuint *textures + const GLuint *textures const GLenum *srcLayouts + + void glWaitSemaphoreui64NVX + GLuint waitGpu + GLsizei fenceObjectCount + const GLuint *semaphoreArray + const GLuint64 *fenceValueArray + void glWaitSync - GLsync sync - GLbitfield flags + GLsync sync + GLbitfield flags GLuint64 timeout void glWaitSyncAPPLE - GLsync sync - GLbitfield flags + GLsync sync + GLbitfield flags GLuint64 timeout void glWeightPathsNV - GLuint resultPath + GLuint resultPath GLsizei numPaths - const GLuint *paths + const GLuint *paths const GLfloat *weights @@ -32030,351 +29194,351 @@ typedef unsigned int GLhandleARB; void glWindowPos2d - GLdouble x - GLdouble y + GLdouble x + GLdouble y void glWindowPos2dARB - GLdouble x - GLdouble y + GLdouble x + GLdouble y void glWindowPos2dMESA - GLdouble x - GLdouble y + GLdouble x + GLdouble y void glWindowPos2dv - const GLdouble *v + const GLdouble *v void glWindowPos2dvARB - const GLdouble *v + const GLdouble *v void glWindowPos2dvMESA - const GLdouble *v + const GLdouble *v void glWindowPos2f - GLfloat x - GLfloat y + GLfloat x + GLfloat y void glWindowPos2fARB - GLfloat x - GLfloat y + GLfloat x + GLfloat y void glWindowPos2fMESA - GLfloat x - GLfloat y + GLfloat x + GLfloat y void glWindowPos2fv - const GLfloat *v + const GLfloat *v void glWindowPos2fvARB - const GLfloat *v + const GLfloat *v void glWindowPos2fvMESA - const GLfloat *v + const GLfloat *v void glWindowPos2i - GLint x - GLint y + GLint x + GLint y void glWindowPos2iARB - GLint x - GLint y + GLint x + GLint y void glWindowPos2iMESA - GLint x - GLint y + GLint x + GLint y void glWindowPos2iv - const GLint *v + const GLint *v void glWindowPos2ivARB - const GLint *v + const GLint *v void glWindowPos2ivMESA - const GLint *v + const GLint *v void glWindowPos2s - GLshort x - GLshort y + GLshort x + GLshort y void glWindowPos2sARB - GLshort x - GLshort y + GLshort x + GLshort y void glWindowPos2sMESA - GLshort x - GLshort y + GLshort x + GLshort y void glWindowPos2sv - const GLshort *v + const GLshort *v void glWindowPos2svARB - const GLshort *v + const GLshort *v void glWindowPos2svMESA - const GLshort *v + const GLshort *v void glWindowPos3d - GLdouble x - GLdouble y - GLdouble z + GLdouble x + GLdouble y + GLdouble z void glWindowPos3dARB - GLdouble x - GLdouble y - GLdouble z + GLdouble x + GLdouble y + GLdouble z void glWindowPos3dMESA - GLdouble x - GLdouble y - GLdouble z + GLdouble x + GLdouble y + GLdouble z void glWindowPos3dv - const GLdouble *v + const GLdouble *v void glWindowPos3dvARB - const GLdouble *v + const GLdouble *v void glWindowPos3dvMESA - const GLdouble *v + const GLdouble *v void glWindowPos3f - GLfloat x - GLfloat y - GLfloat z + GLfloat x + GLfloat y + GLfloat z void glWindowPos3fARB - GLfloat x - GLfloat y - GLfloat z + GLfloat x + GLfloat y + GLfloat z void glWindowPos3fMESA - GLfloat x - GLfloat y - GLfloat z + GLfloat x + GLfloat y + GLfloat z void glWindowPos3fv - const GLfloat *v + const GLfloat *v void glWindowPos3fvARB - const GLfloat *v + const GLfloat *v void glWindowPos3fvMESA - const GLfloat *v + const GLfloat *v void glWindowPos3i - GLint x - GLint y - GLint z + GLint x + GLint y + GLint z void glWindowPos3iARB - GLint x - GLint y - GLint z + GLint x + GLint y + GLint z void glWindowPos3iMESA - GLint x - GLint y - GLint z + GLint x + GLint y + GLint z void glWindowPos3iv - const GLint *v + const GLint *v void glWindowPos3ivARB - const GLint *v + const GLint *v void glWindowPos3ivMESA - const GLint *v + const GLint *v void glWindowPos3s - GLshort x - GLshort y - GLshort z + GLshort x + GLshort y + GLshort z void glWindowPos3sARB - GLshort x - GLshort y - GLshort z + GLshort x + GLshort y + GLshort z void glWindowPos3sMESA - GLshort x - GLshort y - GLshort z + GLshort x + GLshort y + GLshort z void glWindowPos3sv - const GLshort *v + const GLshort *v void glWindowPos3svARB - const GLshort *v + const GLshort *v void glWindowPos3svMESA - const GLshort *v + const GLshort *v void glWindowPos4dMESA - GLdouble x - GLdouble y - GLdouble z - GLdouble w + GLdouble x + GLdouble y + GLdouble z + GLdouble w void glWindowPos4dvMESA - const GLdouble *v + const GLdouble *v void glWindowPos4fMESA - GLfloat x - GLfloat y - GLfloat z - GLfloat w + GLfloat x + GLfloat y + GLfloat z + GLfloat w void glWindowPos4fvMESA - const GLfloat *v + const GLfloat *v void glWindowPos4iMESA - GLint x - GLint y - GLint z - GLint w + GLint x + GLint y + GLint z + GLint w void glWindowPos4ivMESA - const GLint *v + const GLint *v void glWindowPos4sMESA - GLshort x - GLshort y - GLshort z - GLshort w + GLshort x + GLshort y + GLshort z + GLshort w void glWindowPos4svMESA - const GLshort *v + const GLshort *v void glWindowRectanglesEXT @@ -32394,7 +29558,7 @@ typedef unsigned int GLhandleARB; void glDrawVkImageNV GLuint64 vkImage - GLuint sampler + GLuint sampler GLfloat x0 GLfloat y0 GLfloat x1 @@ -32421,6 +29585,18 @@ typedef unsigned int GLhandleARB; void glSignalVkFenceNV GLuint64 vkFence + + void glFramebufferParameteriMESA + GLenum target + GLenum pname + GLint param + + + void glGetFramebufferParameterivMESA + GLenum target + GLenum pname + GLint *params + @@ -36448,6 +33624,20 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + @@ -38790,7 +35980,6 @@ typedef unsigned int GLhandleARB; - @@ -40705,6 +37894,29 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + + @@ -41449,7 +38661,7 @@ typedef unsigned int GLhandleARB; - + @@ -42411,6 +39623,10 @@ typedef unsigned int GLhandleARB; + + + + @@ -42443,6 +39659,18 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + @@ -42450,6 +39678,11 @@ typedef unsigned int GLhandleARB; + + + + + @@ -42819,6 +40052,14 @@ typedef unsigned int GLhandleARB; + + + + + + + + @@ -43133,6 +40374,11 @@ typedef unsigned int GLhandleARB; + + + + + @@ -43515,6 +40761,7 @@ typedef unsigned int GLhandleARB; + @@ -43657,6 +40904,40 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -43666,6 +40947,12 @@ typedef unsigned int GLhandleARB; + + + + + + @@ -43830,7 +41117,6 @@ typedef unsigned int GLhandleARB; - @@ -43870,6 +41156,32 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -44079,6 +41391,10 @@ typedef unsigned int GLhandleARB; + + + + @@ -44091,6 +41407,9 @@ typedef unsigned int GLhandleARB; + + + @@ -44367,6 +41686,7 @@ typedef unsigned int GLhandleARB; + @@ -44421,7 +41741,6 @@ typedef unsigned int GLhandleARB; - @@ -44532,6 +41851,7 @@ typedef unsigned int GLhandleARB; + @@ -45013,6 +42333,7 @@ typedef unsigned int GLhandleARB; + @@ -45041,12 +42362,12 @@ typedef unsigned int GLhandleARB; - + - + @@ -45058,6 +42379,7 @@ typedef unsigned int GLhandleARB; + @@ -45094,7 +42416,7 @@ typedef unsigned int GLhandleARB; - + @@ -45129,6 +42451,28 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + @@ -45153,6 +42497,18 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + @@ -45677,6 +43033,18 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + @@ -45961,6 +43329,22 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + @@ -46043,9 +43427,28 @@ typedef unsigned int GLhandleARB; - + + + + + + + + + + + + + + + + + + + + @@ -46063,6 +43466,21 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + @@ -46297,6 +43715,7 @@ typedef unsigned int GLhandleARB; + @@ -46334,7 +43753,6 @@ typedef unsigned int GLhandleARB; - @@ -46378,7 +43796,7 @@ typedef unsigned int GLhandleARB; - + @@ -46615,6 +44033,7 @@ typedef unsigned int GLhandleARB; + @@ -46833,12 +44252,6 @@ typedef unsigned int GLhandleARB; - - - - - - @@ -46852,6 +44265,18 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + @@ -46899,6 +44324,25 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + @@ -46921,6 +44365,74 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -47310,6 +44822,12 @@ typedef unsigned int GLhandleARB; + + + + + + @@ -47418,6 +44936,11 @@ typedef unsigned int GLhandleARB; + + + + + @@ -47453,6 +44976,14 @@ typedef unsigned int GLhandleARB; + + + + + + + + @@ -47488,6 +45019,12 @@ typedef unsigned int GLhandleARB; + + + + + + @@ -47496,6 +45033,38 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -47747,6 +45316,7 @@ typedef unsigned int GLhandleARB; + @@ -47772,6 +45342,11 @@ typedef unsigned int GLhandleARB; + + + + + @@ -48019,7 +45594,7 @@ typedef unsigned int GLhandleARB; - + @@ -48133,6 +45708,13 @@ typedef unsigned int GLhandleARB; + + + + + + + @@ -49016,6 +46598,9 @@ typedef unsigned int GLhandleARB; + + + @@ -49137,6 +46722,22 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + @@ -49149,6 +46750,28 @@ typedef unsigned int GLhandleARB; + + + + + + + + + + + + + + + + + + + + + + @@ -49160,7 +46783,19 @@ typedef unsigned int GLhandleARB; - + + + + + + + + + + + + + @@ -49205,6 +46840,7 @@ typedef unsigned int GLhandleARB; + diff --git a/glad/files/glx.xml b/glad/files/glx.xml index f9035767..710310f3 100644 --- a/glad/files/glx.xml +++ b/glad/files/glx.xml @@ -1,27 +1,13 @@ -Copyright (c) 2013-2018 The Khronos Group Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - ------------------------------------------------------------------------- +Copyright 2013-2020 The Khronos Group Inc. +SPDX-License-Identifier: Apache-2.0 This file, glx.xml, is the GLX API Registry. The canonical version of the registry, together with documentation, schema, and Python generator scripts used to generate C header files for GLX, can always be found in the Khronos -Registry at - https://github.com/KhronosGroup/OpenGL-Registry +Registry at https://github.com/KhronosGroup/OpenGL-Registry @@ -66,7 +52,7 @@ typedef unsigned __int64 uint64_t; #endif]]> - + @@ -75,6 +61,7 @@ typedef unsigned __int64 uint64_t; + @@ -387,6 +374,11 @@ typedef unsigned __int64 uint64_t; + + + + + @@ -462,6 +454,13 @@ typedef unsigned __int64 uint64_t; + + + + + + + @@ -583,8 +582,7 @@ typedef unsigned __int64 uint64_t; - - + - VkPipelineRasterizationConservativeStateCreateFlagsEXT flags - VkConservativeRasterizationModeEXT conservativeRasterizationMode - float extraPrimitiveOverestimationSize - - - VkStructureType sType - void* pNext + const void* pNext + VkPipelineRasterizationConservativeStateCreateFlagsEXT flagsReserved + VkConservativeRasterizationModeEXT conservativeRasterizationModeConservative rasterization mode + float extraPrimitiveOverestimationSizeExtra overestimation to add to the primitive + + + VkStructureType sType + void* pNext VkBool32 shaderInputAttachmentArrayDynamicIndexing VkBool32 shaderUniformTexelBufferArrayDynamicIndexing VkBool32 shaderStorageTexelBufferArrayDynamicIndexing @@ -3041,53 +4105,58 @@ server. VkBool32 descriptorBindingVariableDescriptorCount VkBool32 runtimeDescriptorArray - - VkStructureType sType - void* pNext - uint32_t maxUpdateAfterBindDescriptorsInAllPools - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative - VkBool32 shaderSampledImageArrayNonUniformIndexingNative - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative - VkBool32 shaderStorageImageArrayNonUniformIndexingNative - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative - VkBool32 robustBufferAccessUpdateAfterBind - VkBool32 quadDivergentImplicitLod - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments - uint32_t maxPerStageUpdateAfterBindResources - uint32_t maxDescriptorSetUpdateAfterBindSamplers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindSampledImages - uint32_t maxDescriptorSetUpdateAfterBindStorageImages - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments - - - VkStructureType sType - const void* pNext - uint32_t bindingCount - const VkDescriptorBindingFlagsEXT* pBindingFlags - - - VkStructureType sType - const void* pNext + + + VkStructureType sType + void* pNext + uint32_t maxUpdateAfterBindDescriptorsInAllPools + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative + VkBool32 shaderSampledImageArrayNonUniformIndexingNative + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative + VkBool32 shaderStorageImageArrayNonUniformIndexingNative + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative + VkBool32 robustBufferAccessUpdateAfterBind + VkBool32 quadDivergentImplicitLod + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments + uint32_t maxPerStageUpdateAfterBindResources + uint32_t maxDescriptorSetUpdateAfterBindSamplers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindSampledImages + uint32_t maxDescriptorSetUpdateAfterBindStorageImages + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments + + + + VkStructureType sType + const void* pNext + uint32_t bindingCount + const VkDescriptorBindingFlags* pBindingFlags + + + + VkStructureType sType + const void* pNext uint32_t descriptorSetCount const uint32_t* pDescriptorCounts - - VkStructureType sType - void* pNext + + + VkStructureType sType + void* pNext uint32_t maxVariableDescriptorCount - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext VkAttachmentDescriptionFlags flags VkFormat format VkSampleCountFlagBits samples @@ -3098,101 +4167,168 @@ server. VkImageLayout initialLayout VkImageLayout finalLayout - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext uint32_t attachment VkImageLayout layout VkImageAspectFlags aspectMask - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext VkSubpassDescriptionFlags flags VkPipelineBindPoint pipelineBindPoint uint32_t viewMask uint32_t inputAttachmentCount - const VkAttachmentReference2KHR* pInputAttachments + const VkAttachmentReference2* pInputAttachments uint32_t colorAttachmentCount - const VkAttachmentReference2KHR* pColorAttachments - const VkAttachmentReference2KHR* pResolveAttachments - const VkAttachmentReference2KHR* pDepthStencilAttachment + const VkAttachmentReference2* pColorAttachments + const VkAttachmentReference2* pResolveAttachments + const VkAttachmentReference2* pDepthStencilAttachment uint32_t preserveAttachmentCount const uint32_t* pPreserveAttachments - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext uint32_t srcSubpass uint32_t dstSubpass - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask VkAccessFlags srcAccessMask VkAccessFlags dstAccessMask VkDependencyFlags dependencyFlags - int32_t viewOffset + int32_t viewOffset - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext VkRenderPassCreateFlags flags uint32_t attachmentCount - const VkAttachmentDescription2KHR* pAttachments + const VkAttachmentDescription2* pAttachments uint32_t subpassCount - const VkSubpassDescription2KHR* pSubpasses + const VkSubpassDescription2* pSubpasses uint32_t dependencyCount - const VkSubpassDependency2KHR* pDependencies + const VkSubpassDependency2* pDependencies uint32_t correlatedViewMaskCount const uint32_t* pCorrelatedViewMasks - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext VkSubpassContents contents - - VkStructureType sType - const void* pNext - - + + + VkStructureType sType + const void* pNext + + + + VkStructureType sType + void* pNext + VkBool32 timelineSemaphore + + + + VkStructureType sType + void* pNext + uint64_t maxTimelineSemaphoreValueDifference + + + + VkStructureType sType + const void* pNext + VkSemaphoreType semaphoreType + uint64_t initialValue + + + + VkStructureType sType + const void* pNext + uint32_t waitSemaphoreValueCount + const uint64_t* pWaitSemaphoreValues + uint32_t signalSemaphoreValueCount + const uint64_t* pSignalSemaphoreValues + + + + VkStructureType sType + const void* pNext + VkSemaphoreWaitFlags flags + uint32_t semaphoreCount + const VkSemaphore* pSemaphores + const uint64_t* pValues + + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + uint64_t value + + + uint32_t binding uint32_t divisor - - VkStructureType sType - const void* pNext + + + VkStructureType sType + const void* pNext uint32_t vertexBindingDivisorCount - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors + const VkVertexInputBindingDivisorDescriptionKHR* pVertexBindingDivisors - + + VkStructureType sType - void* pNext - uint32_t maxVertexAttribDivisormax value of vertex attribute divisor + void* pNext + uint32_t maxVertexAttribDivisormax value of vertex attribute divisor + + + VkStructureType sType + void* pNext + uint32_t maxVertexAttribDivisormax value of vertex attribute divisor + VkBool32 supportsNonZeroFirstInstance + + + VkStructureType sType + void* pNext + uint32_t pciDomain + uint32_t pciBus + uint32_t pciDevice + uint32_t pciFunction VkStructureType sType - const void* pNext + const void* pNext struct AHardwareBuffer* buffer VkStructureType sType - void* pNext + void* pNext uint64_t androidHardwareBufferUsage VkStructureType sType - void* pNext + void* pNext VkDeviceSize allocationSize uint32_t memoryTypeBits VkStructureType sType - const void* pNext + const void* pNext VkDeviceMemory memory VkStructureType sType - void* pNext + void* pNext VkFormat format uint64_t externalFormat VkFormatFeatureFlags formatFeatures @@ -3204,87 +4340,5121 @@ server. VkStructureType sType - const void* pNext + const void* pNext VkBool32 conditionalRenderingEnableWhether this secondary command buffer may be executed during an active conditional rendering - + VkStructureType sType - void* pNext + void* pNext uint64_t externalFormat - - VkStructureType sType - void* pNext + + VkStructureType sType + void* pNext VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform VkBool32 storagePushConstant88-bit integer variables supported in PushConstant + VkStructureType sType - void* pNext + void* pNext VkBool32 conditionalRendering VkBool32 inheritedConditionalRendering - - VkStructureType sType - void* pNext + + VkStructureType sType + void* pNext VkBool32 vulkanMemoryModel VkBool32 vulkanMemoryModelDeviceScope - - - VkStructureType sType - void* pNext + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains + + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferInt64Atomics + VkBool32 shaderSharedInt64Atomics + + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferFloat32Atomics + VkBool32 shaderBufferFloat32AtomicAdd + VkBool32 shaderBufferFloat64Atomics + VkBool32 shaderBufferFloat64AtomicAdd + VkBool32 shaderSharedFloat32Atomics + VkBool32 shaderSharedFloat32AtomicAdd + VkBool32 shaderSharedFloat64Atomics + VkBool32 shaderSharedFloat64AtomicAdd + VkBool32 shaderImageFloat32Atomics + VkBool32 shaderImageFloat32AtomicAdd + VkBool32 sparseImageFloat32Atomics + VkBool32 sparseImageFloat32AtomicAdd + + + VkStructureType sType + void* pNext + VkBool32 shaderBufferFloat16Atomics + VkBool32 shaderBufferFloat16AtomicAdd + VkBool32 shaderBufferFloat16AtomicMinMax + VkBool32 shaderBufferFloat32AtomicMinMax + VkBool32 shaderBufferFloat64AtomicMinMax + VkBool32 shaderSharedFloat16Atomics + VkBool32 shaderSharedFloat16AtomicAdd + VkBool32 shaderSharedFloat16AtomicMinMax + VkBool32 shaderSharedFloat32AtomicMinMax + VkBool32 shaderSharedFloat64AtomicMinMax + VkBool32 shaderImageFloat32AtomicMinMax + VkBool32 sparseImageFloat32AtomicMinMax + + + VkStructureType sType + void* pNext VkBool32 vertexAttributeInstanceRateDivisor VkBool32 vertexAttributeInstanceRateZeroDivisor + VkStructureType sType - void* pNext - VkPipelineStageFlags checkpointExecutionStageMask + void* pNext + VkPipelineStageFlags checkpointExecutionStageMask VkStructureType sType - void* pNext + void* pNext VkPipelineStageFlagBits stage void* pCheckpointMarker + + VkStructureType sType + void* pNext + VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes + VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes + VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none + VkBool32 independentResolvedepth and stencil resolve modes can be set independently + + + + VkStructureType sType + const void* pNext + VkResolveModeFlagBits depthResolveModedepth resolve mode + VkResolveModeFlagBits stencilResolveModestencil resolve mode + const VkAttachmentReference2* pDepthStencilResolveAttachmentdepth/stencil resolve attachment + + VkStructureType sType - const void* pNext + const void* pNext VkFormat decodeMode VkStructureType sType - void* pNext + void* pNext VkBool32 decodeModeSharedExponent + + VkStructureType sType + void* pNext + VkBool32 transformFeedback + VkBool32 geometryStreams + + + VkStructureType sType + void* pNext + uint32_t maxTransformFeedbackStreams + uint32_t maxTransformFeedbackBuffers + VkDeviceSize maxTransformFeedbackBufferSize + uint32_t maxTransformFeedbackStreamDataSize + uint32_t maxTransformFeedbackBufferDataSize + uint32_t maxTransformFeedbackBufferDataStride + VkBool32 transformFeedbackQueries + VkBool32 transformFeedbackStreamsLinesTriangles + VkBool32 transformFeedbackRasterizationStreamSelect + VkBool32 transformFeedbackDraw + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationStateStreamCreateFlagsEXT flags + uint32_t rasterizationStream + + + VkStructureType sType + void* pNext + VkBool32 representativeFragmentTest + + + VkStructureType sType + const void* pNext + VkBool32 representativeFragmentTestEnable + + + VkStructureType sType + void* pNext + VkBool32 exclusiveScissor + + + VkStructureType sType + const void* pNext + uint32_t exclusiveScissorCount + const VkRect2D* pExclusiveScissors + + + VkStructureType sType + void* pNext + VkBool32 cornerSampledImage + + + VkStructureType sType + void* pNext + VkBool32 computeDerivativeGroupQuads + VkBool32 computeDerivativeGroupLinear + + + + VkStructureType sType + void* pNext + VkBool32 meshAndTaskShaderDerivatives + + + + VkStructureType sType + void* pNext + VkBool32 imageFootprint + + + VkStructureType sType + void* pNext + VkBool32 dedicatedAllocationImageAliasing + + + VkStructureType sType + void* pNext + VkBool32 indirectCopy + + + VkStructureType sType + void* pNext + VkQueueFlags supportedQueuesBitfield of which queues are supported for indirect copy + + + VkStructureType sType + void* pNext + VkBool32 memoryDecompression + + + VkStructureType sType + void* pNext + VkMemoryDecompressionMethodFlagsNV decompressionMethods + uint64_t maxDecompressionIndirectCount + + + uint32_t shadingRatePaletteEntryCount + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries + + + VkStructureType sType + const void* pNext + VkBool32 shadingRateImageEnable + uint32_t viewportCount + const VkShadingRatePaletteNV* pShadingRatePalettes + + + VkStructureType sType + void* pNext + VkBool32 shadingRateImage + VkBool32 shadingRateCoarseSampleOrder + + + VkStructureType sType + void* pNext + VkExtent2D shadingRateTexelSize + uint32_t shadingRatePaletteSize + uint32_t shadingRateMaxCoarseSamples + + + VkStructureType sType + void* pNext + VkBool32 invocationMask + + + uint32_t pixelX + uint32_t pixelY + uint32_t sample + + + VkShadingRatePaletteEntryNV shadingRate + uint32_t sampleCount + uint32_t sampleLocationCount + const VkCoarseSampleLocationNV* pSampleLocations + + + VkStructureType sType + const void* pNext + VkCoarseSampleOrderTypeNV sampleOrderType + uint32_t customSampleOrderCount + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders + + + VkStructureType sType + void* pNext + VkBool32 taskShader + VkBool32 meshShader + + + VkStructureType sType + void* pNext + uint32_t maxDrawMeshTasksCount + uint32_t maxTaskWorkGroupInvocations + uint32_t maxTaskWorkGroupSize[3] + uint32_t maxTaskTotalMemorySize + uint32_t maxTaskOutputCount + uint32_t maxMeshWorkGroupInvocations + uint32_t maxMeshWorkGroupSize[3] + uint32_t maxMeshTotalMemorySize + uint32_t maxMeshOutputVertices + uint32_t maxMeshOutputPrimitives + uint32_t maxMeshMultiviewViewCount + uint32_t meshOutputPerVertexGranularity + uint32_t meshOutputPerPrimitiveGranularity + + + uint32_t taskCount + uint32_t firstTask + + + VkStructureType sType + void* pNext + VkBool32 taskShader + VkBool32 meshShader + VkBool32 multiviewMeshShader + VkBool32 primitiveFragmentShadingRateMeshShader + VkBool32 meshShaderQueries + + + VkStructureType sType + void* pNext + uint32_t maxTaskWorkGroupTotalCount + uint32_t maxTaskWorkGroupCount[3] + uint32_t maxTaskWorkGroupInvocations + uint32_t maxTaskWorkGroupSize[3] + uint32_t maxTaskPayloadSize + uint32_t maxTaskSharedMemorySize + uint32_t maxTaskPayloadAndSharedMemorySize + uint32_t maxMeshWorkGroupTotalCount + uint32_t maxMeshWorkGroupCount[3] + uint32_t maxMeshWorkGroupInvocations + uint32_t maxMeshWorkGroupSize[3] + uint32_t maxMeshSharedMemorySize + uint32_t maxMeshPayloadAndSharedMemorySize + uint32_t maxMeshOutputMemorySize + uint32_t maxMeshPayloadAndOutputMemorySize + uint32_t maxMeshOutputComponents + uint32_t maxMeshOutputVertices + uint32_t maxMeshOutputPrimitives + uint32_t maxMeshOutputLayers + uint32_t maxMeshMultiviewViewCount + uint32_t meshOutputPerVertexGranularity + uint32_t meshOutputPerPrimitiveGranularity + uint32_t maxPreferredTaskWorkGroupInvocations + uint32_t maxPreferredMeshWorkGroupInvocations + VkBool32 prefersLocalInvocationVertexOutput + VkBool32 prefersLocalInvocationPrimitiveOutput + VkBool32 prefersCompactVertexOutput + VkBool32 prefersCompactPrimitiveOutput + + + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + VkStructureType sType + const void* pNext + VkRayTracingShaderGroupTypeKHR type + uint32_t generalShader + uint32_t closestHitShader + uint32_t anyHitShader + uint32_t intersectionShader + + + VkStructureType sType + const void* pNext + VkRayTracingShaderGroupTypeKHR type + uint32_t generalShader + uint32_t closestHitShader + uint32_t anyHitShader + uint32_t intersectionShader + const void* pShaderGroupCaptureReplayHandle + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t groupCount + const VkRayTracingShaderGroupCreateInfoNV* pGroups + uint32_t maxRecursionDepth + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flagsPipeline creation flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t groupCount + const VkRayTracingShaderGroupCreateInfoKHR* pGroups + uint32_t maxPipelineRayRecursionDepth + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo + const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface + const VkPipelineDynamicStateCreateInfo* pDynamicState + VkPipelineLayout layoutInterface layout of the pipeline + VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of + int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of + + + VkStructureType sType + const void* pNext + VkBuffer vertexData + VkDeviceSize vertexOffset + uint32_t vertexCount + VkDeviceSize vertexStride + VkFormat vertexFormat + VkBuffer indexData + VkDeviceSize indexOffset + uint32_t indexCount + VkIndexType indexType + VkBuffer transformDataOptional reference to array of floats representing a 3x4 row major affine transformation matrix. + VkDeviceSize transformOffset + + + VkStructureType sType + const void* pNext + VkBuffer aabbData + uint32_t numAABBs + uint32_t strideStride in bytes between AABBs + VkDeviceSize offsetOffset in bytes of the first AABB in aabbData + + + VkGeometryTrianglesNV triangles + VkGeometryAABBNV aabbs + + + VkStructureType sType + const void* pNext + VkGeometryTypeKHR geometryType + VkGeometryDataNV geometry + VkGeometryFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkAccelerationStructureTypeNV type + VkBuildAccelerationStructureFlagsNV flags + uint32_t instanceCount + uint32_t geometryCount + const VkGeometryNV* pGeometries + + + VkStructureType sType + const void* pNext + VkDeviceSize compactedSize + VkAccelerationStructureInfoNV info + + + VkStructureType sType + const void* pNext + VkAccelerationStructureNV accelerationStructure + VkDeviceMemory memory + VkDeviceSize memoryOffset + uint32_t deviceIndexCount + const uint32_t* pDeviceIndices + + + VkStructureType sType + const void* pNext + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + + + VkStructureType sType + const void* pNext + uint32_t accelerationStructureCount + const VkAccelerationStructureNV* pAccelerationStructures + + + VkStructureType sType + const void* pNext + VkAccelerationStructureMemoryRequirementsTypeNV type + VkAccelerationStructureNV accelerationStructure + + + VkStructureType sType + void* pNext + VkBool32 accelerationStructure + VkBool32 accelerationStructureCaptureReplay + VkBool32 accelerationStructureIndirectBuild + VkBool32 accelerationStructureHostCommands + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind + + + VkStructureType sType + void* pNext + VkBool32 rayTracingPipeline + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed + VkBool32 rayTracingPipelineTraceRaysIndirect + VkBool32 rayTraversalPrimitiveCulling + + + VkStructureType sType + void* pNext + VkBool32 rayQuery + + + VkStructureType sType + void* pNext + uint64_t maxGeometryCount + uint64_t maxInstanceCount + uint64_t maxPrimitiveCount + uint32_t maxPerStageDescriptorAccelerationStructures + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures + uint32_t maxDescriptorSetAccelerationStructures + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures + uint32_t minAccelerationStructureScratchOffsetAlignment + + + VkStructureType sType + void* pNext + uint32_t shaderGroupHandleSize + uint32_t maxRayRecursionDepth + uint32_t maxShaderGroupStride + uint32_t shaderGroupBaseAlignment + uint32_t shaderGroupHandleCaptureReplaySize + uint32_t maxRayDispatchInvocationCount + uint32_t shaderGroupHandleAlignment + uint32_t maxRayHitAttributeSize + + + VkStructureType sType + void* pNext + uint32_t shaderGroupHandleSize + uint32_t maxRecursionDepth + uint32_t maxShaderGroupStride + uint32_t shaderGroupBaseAlignment + uint64_t maxGeometryCount + uint64_t maxInstanceCount + uint64_t maxTriangleCount + uint32_t maxDescriptorSetAccelerationStructures + + + VkDeviceAddress deviceAddress + VkDeviceSize stride + VkDeviceSize size + + + uint32_t width + uint32_t height + uint32_t depth + + + VkDeviceAddress raygenShaderRecordAddress + VkDeviceSize raygenShaderRecordSize + VkDeviceAddress missShaderBindingTableAddress + VkDeviceSize missShaderBindingTableSize + VkDeviceSize missShaderBindingTableStride + VkDeviceAddress hitShaderBindingTableAddress + VkDeviceSize hitShaderBindingTableSize + VkDeviceSize hitShaderBindingTableStride + VkDeviceAddress callableShaderBindingTableAddress + VkDeviceSize callableShaderBindingTableSize + VkDeviceSize callableShaderBindingTableStride + uint32_t width + uint32_t height + uint32_t depth + + + VkStructureType sType + void* pNext + VkBool32 rayTracingMaintenance1 + VkBool32 rayTracingPipelineTraceRaysIndirect2 + + + VkStructureType sType + void* pNext + uint32_t drmFormatModifierCount + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties + + + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + VkFormatFeatureFlags drmFormatModifierTilingFeatures + + + VkStructureType sType + const void* pNext + uint64_t drmFormatModifier + VkSharingMode sharingMode + uint32_t queueFamilyIndexCount + const uint32_t* pQueueFamilyIndices + + + VkStructureType sType + const void* pNext + uint32_t drmFormatModifierCount + const uint64_t* pDrmFormatModifiers + + + VkStructureType sType + const void* pNext + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + const VkSubresourceLayout* pPlaneLayouts + + + VkStructureType sType + void* pNext + uint64_t drmFormatModifier + + + VkStructureType sType + const void* pNext + VkImageUsageFlags stencilUsage + + + + VkStructureType sType + const void* pNext + VkMemoryOverallocationBehaviorAMD overallocationBehavior + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMap + VkBool32 fragmentDensityMapDynamic + VkBool32 fragmentDensityMapNonSubsampledImages + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMapDeferred + + + VkStructureType sType + void* pNext + VkBool32 fragmentDensityMapOffset + + + VkStructureType sType + void* pNext + VkExtent2D minFragmentDensityTexelSize + VkExtent2D maxFragmentDensityTexelSize + VkBool32 fragmentDensityInvocations + + + VkStructureType sType + void* pNext + VkBool32 subsampledLoads + VkBool32 subsampledCoarseReconstructionEarlyAccess + uint32_t maxSubsampledArrayLayers + uint32_t maxDescriptorSetSubsampledSamplers + + + VkStructureType sType + void* pNext + VkExtent2D fragmentDensityOffsetGranularity + + + VkStructureType sType + const void* pNext + VkAttachmentReference fragmentDensityMapAttachment + + + VkStructureType sType + const void* pNext + uint32_t fragmentDensityOffsetCount + const VkOffset2D* pFragmentDensityOffsets + + + VkStructureType sType + void* pNext + VkBool32 scalarBlockLayout + + + + VkStructureType sType + const void* pNext + VkBool32 supportsProtectedRepresents if surface can be protected + + + VkStructureType sType + void* pNext + VkBool32 uniformBufferStandardLayout + + + + VkStructureType sType + void* pNext + VkBool32 depthClipEnable + + + VkStructureType sType + const void* pNext + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flagsReserved + VkBool32 depthClipEnable + + + VkStructureType sType + void* pNext + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] + + + VkStructureType sType + void* pNext + VkBool32 memoryPriority + + + VkStructureType sType + const void* pNext + float priority + + + VkStructureType sType + void* pNext + VkBool32 pageableDeviceLocalMemory + + + VkStructureType sType + void* pNext + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + + + + VkStructureType sType + void* pNext + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + + + VkStructureType sType + const void* pNext + uint64_t opaqueCaptureAddress + + + + VkStructureType sType + const void* pNext + VkDeviceAddress deviceAddress + + + VkStructureType sType + void* pNext + VkImageViewType imageViewType + + + VkStructureType sType + void* pNext + VkBool32 filterCubicThe combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT + VkBool32 filterCubicMinmaxThe combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max + + + VkStructureType sType + void* pNext + VkBool32 imagelessFramebuffer + + + + VkStructureType sType + const void* pNext + uint32_t attachmentImageInfoCount + const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos + + + + VkStructureType sType + const void* pNext + VkImageCreateFlags flagsImage creation flags + VkImageUsageFlags usageImage usage flags + uint32_t width + uint32_t height + uint32_t layerCount + uint32_t viewFormatCount + const VkFormat* pViewFormats + + + + VkStructureType sType + const void* pNext + uint32_t attachmentCount + const VkImageView* pAttachments + + + + VkStructureType sType + void* pNext + VkBool32 textureCompressionASTC_HDR + + + + VkStructureType sType + void* pNext + VkBool32 cooperativeMatrix + VkBool32 cooperativeMatrixRobustBufferAccess + + + VkStructureType sType + void* pNext + VkShaderStageFlags cooperativeMatrixSupportedStages + + + VkStructureType sType + void* pNext + uint32_t MSize + uint32_t NSize + uint32_t KSize + VkComponentTypeNV AType + VkComponentTypeNV BType + VkComponentTypeNV CType + VkComponentTypeNV DType + VkScopeNV scope + + + VkStructureType sType + void* pNext + VkBool32 ycbcrImageArrays + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkDescriptorType descriptorType + VkSampler sampler + + + VkStructureType sType + void* pNext + VkDeviceAddress deviceAddress + VkDeviceSize size + + + VkStructureType sType + const void* pNext + GgpFrameToken frameToken + + + VkPipelineCreationFeedbackFlags flags + uint64_t duration + + + + VkStructureType sType + const void* pNext + VkPipelineCreationFeedback* pPipelineCreationFeedbackOutput pipeline creation feedback. + uint32_t pipelineStageCreationFeedbackCount + VkPipelineCreationFeedback* pPipelineStageCreationFeedbacksOne entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct + + + + VkStructureType sType + void* pNext + VkFullScreenExclusiveEXT fullScreenExclusive + + + VkStructureType sType + const void* pNext + HMONITOR hmonitor + + + VkStructureType sType + void* pNext + VkBool32 fullScreenExclusiveSupported + + + VkStructureType sType + void* pNext + VkBool32 presentBarrier + + + VkStructureType sType + void* pNext + VkBool32 presentBarrierSupported + + + VkStructureType sType + void* pNext + VkBool32 presentBarrierEnable + + + VkStructureType sType + void* pNext + VkBool32 performanceCounterQueryPoolsperformance counters supported in query pools + VkBool32 performanceCounterMultipleQueryPoolsperformance counters from multiple query pools can be accessed in the same primary command buffer + + + VkStructureType sType + void* pNext + VkBool32 allowCommandBufferQueryCopiesFlag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults + + + VkStructureType sType + void* pNext + VkPerformanceCounterUnitKHR unit + VkPerformanceCounterScopeKHR scope + VkPerformanceCounterStorageKHR storage + uint8_t uuid[VK_UUID_SIZE] + + + VkStructureType sType + void* pNext + VkPerformanceCounterDescriptionFlagsKHR flags + char name[VK_MAX_DESCRIPTION_SIZE] + char category[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + + + VkStructureType sType + const void* pNext + uint32_t queueFamilyIndex + uint32_t counterIndexCount + const uint32_t* pCounterIndices + + + int32_t int32 + int64_t int64 + uint32_t uint32 + uint64_t uint64 + float float32 + double float64 + + + VkStructureType sType + const void* pNext + VkAcquireProfilingLockFlagsKHR flagsAcquire profiling lock flags + uint64_t timeout + + + VkStructureType sType + const void* pNext + uint32_t counterPassIndexIndex for which counter pass to submit + + + VkStructureType sType + const void* pNext + uint32_t maxPerformanceQueriesPerPoolMaximum number of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR queries in a query pool + + + VkStructureType sType + const void* pNext + VkHeadlessSurfaceCreateFlagsEXT flags + + + VkStructureType sType + void* pNext + VkBool32 coverageReductionMode + + + VkStructureType sType + const void* pNext + VkPipelineCoverageReductionStateCreateFlagsNV flags + VkCoverageReductionModeNV coverageReductionMode + + + VkStructureType sType + void* pNext + VkCoverageReductionModeNV coverageReductionMode + VkSampleCountFlagBits rasterizationSamples + VkSampleCountFlags depthStencilSamples + VkSampleCountFlags colorSamples + + + VkStructureType sType + void* pNext + VkBool32 shaderIntegerFunctions2 + + + uint32_t value32 + uint64_t value64 + float valueFloat + VkBool32 valueBool + const char* valueString + + + VkPerformanceValueTypeINTEL type + VkPerformanceValueDataINTEL data + + + VkStructureType sType + const void* pNext + void* pUserData + + + VkStructureType sType + const void* pNext + VkQueryPoolSamplingModeINTEL performanceCountersSampling + + + + VkStructureType sType + const void* pNext + uint64_t marker + + + VkStructureType sType + const void* pNext + uint32_t marker + + + VkStructureType sType + const void* pNext + VkPerformanceOverrideTypeINTEL type + VkBool32 enable + uint64_t parameter + + + VkStructureType sType + const void* pNext + VkPerformanceConfigurationTypeINTEL type + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupClock + VkBool32 shaderDeviceClock + + + VkStructureType sType + void* pNext + VkBool32 indexTypeUint8 + + + + VkStructureType sType + void* pNext + uint32_t shaderSMCount + uint32_t shaderWarpsPerSM + + + VkStructureType sType + void* pNext + VkBool32 shaderSMBuiltins + + + VkStructureType sType + void* pNextPointer to next structure + VkBool32 fragmentShaderSampleInterlock + VkBool32 fragmentShaderPixelInterlock + VkBool32 fragmentShaderShadingRateInterlock + + + VkStructureType sType + void* pNext + VkBool32 separateDepthStencilLayouts + + + + VkStructureType sType + void* pNext + VkImageLayout stencilLayout + + + VkStructureType sType + void* pNext + VkBool32 primitiveTopologyListRestart + VkBool32 primitiveTopologyPatchListRestart + + + + VkStructureType sType + void* pNext + VkImageLayout stencilInitialLayout + VkImageLayout stencilFinalLayout + + + + VkStructureType sType + void* pNext + VkBool32 pipelineExecutableInfo + + + VkStructureType sType + const void* pNext + VkPipeline pipeline + + + + VkStructureType sType + void* pNext + VkShaderStageFlags stages + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + uint32_t subgroupSize + + + VkStructureType sType + const void* pNext + VkPipeline pipeline + uint32_t executableIndex + + + VkBool32 b32 + int64_t i64 + uint64_t u64 + double f64 + + + VkStructureType sType + void* pNext + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + VkPipelineExecutableStatisticFormatKHR format + VkPipelineExecutableStatisticValueKHR value + + + VkStructureType sType + void* pNext + char name[VK_MAX_DESCRIPTION_SIZE] + char description[VK_MAX_DESCRIPTION_SIZE] + VkBool32 isText + size_t dataSize + void* pData + + + VkStructureType sType + void* pNext + VkBool32 shaderDemoteToHelperInvocation + + + + VkStructureType sType + void* pNext + VkBool32 texelBufferAlignment + + + VkStructureType sType + void* pNext + VkDeviceSize storageTexelBufferOffsetAlignmentBytes + VkBool32 storageTexelBufferOffsetSingleTexelAlignment + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment + + + + VkStructureType sType + void* pNext + VkBool32 subgroupSizeControl + VkBool32 computeFullSubgroups + + + + VkStructureType sType + void* pNext + uint32_t minSubgroupSizeThe minimum subgroup size supported by this device + uint32_t maxSubgroupSizeThe maximum subgroup size supported by this device + uint32_t maxComputeWorkgroupSubgroupsThe maximum number of subgroups supported in a workgroup + VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size + + + + VkStructureType sType + void* pNext + uint32_t requiredSubgroupSize + + + + + VkStructureType sType + void* pNext + VkRenderPass renderPass + uint32_t subpass + + + VkStructureType sType + void* pNext + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio + + + VkStructureType sType + void* pNext + uint32_t maxWorkGroupCount[3] + uint32_t maxWorkGroupSize[3] + uint32_t maxOutputClusterCount + VkDeviceSize indirectBufferOffsetAlignment + + + VkStructureType sType + const void* pNext + uint64_t opaqueCaptureAddress + + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + + + + VkStructureType sType + void* pNext + VkBool32 rectangularLines + VkBool32 bresenhamLines + VkBool32 smoothLines + VkBool32 stippledRectangularLines + VkBool32 stippledBresenhamLines + VkBool32 stippledSmoothLines + + + + VkStructureType sType + void* pNext + uint32_t lineSubPixelPrecisionBits + + + + VkStructureType sType + const void* pNext + VkLineRasterizationModeKHR lineRasterizationMode + VkBool32 stippledLineEnable + uint32_t lineStippleFactor + uint16_t lineStipplePattern + + + + VkStructureType sType + void* pNext + VkBool32 pipelineCreationCacheControl + + + + VkStructureType sType + void* pNext + VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock + VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block + VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant + VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs + VkBool32 multiviewMultiple views in a render pass + VkBool32 multiviewGeometryShaderMultiple views in a render pass w/ geometry shader + VkBool32 multiviewTessellationShaderMultiple views in a render pass w/ tessellation shader + VkBool32 variablePointersStorageBuffer + VkBool32 variablePointers + VkBool32 protectedMemory + VkBool32 samplerYcbcrConversionSampler color conversion supported + VkBool32 shaderDrawParameters + + + VkStructureType sType + void* pNext + uint8_t deviceUUID[VK_UUID_SIZE] + uint8_t driverUUID[VK_UUID_SIZE] + uint8_t deviceLUID[VK_LUID_SIZE] + uint32_t deviceNodeMask + VkBool32 deviceLUIDValid + uint32_t subgroupSizeThe size of a subgroup for this queue. + VkShaderStageFlags subgroupSupportedStagesBitfield of what shader stages support subgroup operations + VkSubgroupFeatureFlags subgroupSupportedOperationsBitfield of what subgroup operations are supported. + VkBool32 subgroupQuadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. + VkPointClippingBehavior pointClippingBehavior + uint32_t maxMultiviewViewCountmax number of views in a subpass + uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass + VkBool32 protectedNoFault + uint32_t maxPerSetDescriptors + VkDeviceSize maxMemoryAllocationSize + + + VkStructureType sType + void* pNext + VkBool32 samplerMirrorClampToEdge + VkBool32 drawIndirectCount + VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer + VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform + VkBool32 storagePushConstant88-bit integer variables supported in PushConstant + VkBool32 shaderBufferInt64Atomics + VkBool32 shaderSharedInt64Atomics + VkBool32 shaderFloat1616-bit floats (halfs) in shaders + VkBool32 shaderInt88-bit integers in shaders + VkBool32 descriptorIndexing + VkBool32 shaderInputAttachmentArrayDynamicIndexing + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing + VkBool32 shaderUniformBufferArrayNonUniformIndexing + VkBool32 shaderSampledImageArrayNonUniformIndexing + VkBool32 shaderStorageBufferArrayNonUniformIndexing + VkBool32 shaderStorageImageArrayNonUniformIndexing + VkBool32 shaderInputAttachmentArrayNonUniformIndexing + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing + VkBool32 descriptorBindingUniformBufferUpdateAfterBind + VkBool32 descriptorBindingSampledImageUpdateAfterBind + VkBool32 descriptorBindingStorageImageUpdateAfterBind + VkBool32 descriptorBindingStorageBufferUpdateAfterBind + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind + VkBool32 descriptorBindingUpdateUnusedWhilePending + VkBool32 descriptorBindingPartiallyBound + VkBool32 descriptorBindingVariableDescriptorCount + VkBool32 runtimeDescriptorArray + VkBool32 samplerFilterMinmax + VkBool32 scalarBlockLayout + VkBool32 imagelessFramebuffer + VkBool32 uniformBufferStandardLayout + VkBool32 shaderSubgroupExtendedTypes + VkBool32 separateDepthStencilLayouts + VkBool32 hostQueryReset + VkBool32 timelineSemaphore + VkBool32 bufferDeviceAddress + VkBool32 bufferDeviceAddressCaptureReplay + VkBool32 bufferDeviceAddressMultiDevice + VkBool32 vulkanMemoryModel + VkBool32 vulkanMemoryModelDeviceScope + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains + VkBool32 shaderOutputViewportIndex + VkBool32 shaderOutputLayer + VkBool32 subgroupBroadcastDynamicId + + + VkStructureType sType + void* pNext + VkDriverId driverID + char driverName[VK_MAX_DRIVER_NAME_SIZE] + char driverInfo[VK_MAX_DRIVER_INFO_SIZE] + VkConformanceVersion conformanceVersion + VkShaderFloatControlsIndependence denormBehaviorIndependence + VkShaderFloatControlsIndependence roundingModeIndependence + VkBool32 shaderSignedZeroInfNanPreserveFloat16An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat32An implementation can preserve signed zero, nan, inf + VkBool32 shaderSignedZeroInfNanPreserveFloat64An implementation can preserve signed zero, nan, inf + VkBool32 shaderDenormPreserveFloat16An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat32An implementation can preserve denormals + VkBool32 shaderDenormPreserveFloat64An implementation can preserve denormals + VkBool32 shaderDenormFlushToZeroFloat16An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat32An implementation can flush to zero denormals + VkBool32 shaderDenormFlushToZeroFloat64An implementation can flush to zero denormals + VkBool32 shaderRoundingModeRTEFloat16An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat32An implementation can support RTE + VkBool32 shaderRoundingModeRTEFloat64An implementation can support RTE + VkBool32 shaderRoundingModeRTZFloat16An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat32An implementation can support RTZ + VkBool32 shaderRoundingModeRTZFloat64An implementation can support RTZ + uint32_t maxUpdateAfterBindDescriptorsInAllPools + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative + VkBool32 shaderSampledImageArrayNonUniformIndexingNative + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative + VkBool32 shaderStorageImageArrayNonUniformIndexingNative + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative + VkBool32 robustBufferAccessUpdateAfterBind + VkBool32 quadDivergentImplicitLod + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments + uint32_t maxPerStageUpdateAfterBindResources + uint32_t maxDescriptorSetUpdateAfterBindSamplers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic + uint32_t maxDescriptorSetUpdateAfterBindSampledImages + uint32_t maxDescriptorSetUpdateAfterBindStorageImages + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments + VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes + VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes + VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none + VkBool32 independentResolvedepth and stencil resolve modes can be set independently + VkBool32 filterMinmaxSingleComponentFormats + VkBool32 filterMinmaxImageComponentMapping + uint64_t maxTimelineSemaphoreValueDifference + VkSampleCountFlags framebufferIntegerColorSampleCounts + + + VkStructureType sType + void* pNext + VkBool32 robustImageAccess + VkBool32 inlineUniformBlock + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind + VkBool32 pipelineCreationCacheControl + VkBool32 privateData + VkBool32 shaderDemoteToHelperInvocation + VkBool32 shaderTerminateInvocation + VkBool32 subgroupSizeControl + VkBool32 computeFullSubgroups + VkBool32 synchronization2 + VkBool32 textureCompressionASTC_HDR + VkBool32 shaderZeroInitializeWorkgroupMemory + VkBool32 dynamicRendering + VkBool32 shaderIntegerDotProduct + VkBool32 maintenance4 + + + VkStructureType sType + void* pNext + uint32_t minSubgroupSizeThe minimum subgroup size supported by this device + uint32_t maxSubgroupSizeThe maximum subgroup size supported by this device + uint32_t maxComputeWorkgroupSubgroupsThe maximum number of subgroups supported in a workgroup + VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size + uint32_t maxInlineUniformBlockSize + uint32_t maxPerStageDescriptorInlineUniformBlocks + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks + uint32_t maxDescriptorSetInlineUniformBlocks + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks + uint32_t maxInlineUniformTotalSize + VkBool32 integerDotProduct8BitUnsignedAccelerated + VkBool32 integerDotProduct8BitSignedAccelerated + VkBool32 integerDotProduct8BitMixedSignednessAccelerated + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated + VkBool32 integerDotProduct16BitUnsignedAccelerated + VkBool32 integerDotProduct16BitSignedAccelerated + VkBool32 integerDotProduct16BitMixedSignednessAccelerated + VkBool32 integerDotProduct32BitUnsignedAccelerated + VkBool32 integerDotProduct32BitSignedAccelerated + VkBool32 integerDotProduct32BitMixedSignednessAccelerated + VkBool32 integerDotProduct64BitUnsignedAccelerated + VkBool32 integerDotProduct64BitSignedAccelerated + VkBool32 integerDotProduct64BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated + VkDeviceSize storageTexelBufferOffsetAlignmentBytes + VkBool32 storageTexelBufferOffsetSingleTexelAlignment + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment + VkDeviceSize maxBufferSize + + + VkStructureType sType + const void* pNext + VkPipelineCompilerControlFlagsAMD compilerControlFlags + + + VkStructureType sType + void* pNext + VkBool32 deviceCoherentMemory + + + VkStructureType sType + void* pNext + VkFaultLevel faultLevel + VkFaultType faultType + + + VkStructureType sType + const void* pNext + uint32_t faultCount + VkFaultData*pFaults + PFN_vkFaultCallbackFunction pfnFaultCallback + + + VkStructureType sType + void* pNext + char name[VK_MAX_EXTENSION_NAME_SIZE] + char version[VK_MAX_EXTENSION_NAME_SIZE] + VkToolPurposeFlags purposes + char description[VK_MAX_DESCRIPTION_SIZE] + char layer[VK_MAX_EXTENSION_NAME_SIZE] + + + + VkStructureType sType + const void* pNext + VkClearColorValue customBorderColor + VkFormat format + + + VkStructureType sType + void* pNext + uint32_t maxCustomBorderColorSamplers + + + VkStructureType sType + void* pNext + VkBool32 customBorderColors + VkBool32 customBorderColorWithoutFormat + + + VkStructureType sType + const void* pNext + VkComponentMapping components + VkBool32 srgb + + + VkStructureType sType + void* pNext + VkBool32 borderColorSwizzle + VkBool32 borderColorSwizzleFromImage + + + VkDeviceAddress deviceAddress + void* hostAddress + + + VkDeviceAddress deviceAddress + const void* hostAddress + + + VkDeviceAddress deviceAddress + const void* hostAddress + + + VkStructureType sType + const void* pNext + VkFormat vertexFormat + VkDeviceOrHostAddressConstKHR vertexData + VkDeviceSize vertexStride + uint32_t maxVertex + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexData + VkDeviceOrHostAddressConstKHR transformData + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR data + VkDeviceSize stride + + + VkStructureType sType + const void* pNext + VkBool32 arrayOfPointers + VkDeviceOrHostAddressConstKHR data + + + VkAccelerationStructureGeometryTrianglesDataKHR triangles + VkAccelerationStructureGeometryAabbsDataKHR aabbs + VkAccelerationStructureGeometryInstancesDataKHR instances + + + VkStructureType sType + const void* pNext + VkGeometryTypeKHR geometryType + VkAccelerationStructureGeometryDataKHR geometry + VkGeometryFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkAccelerationStructureTypeKHR type + VkBuildAccelerationStructureFlagsKHR flags + VkBuildAccelerationStructureModeKHR mode + VkAccelerationStructureKHR srcAccelerationStructure + VkAccelerationStructureKHR dstAccelerationStructure + uint32_t geometryCount + const VkAccelerationStructureGeometryKHR* pGeometries + const VkAccelerationStructureGeometryKHR* const* ppGeometries + VkDeviceOrHostAddressKHR scratchData + + + uint32_t primitiveCount + uint32_t primitiveOffset + uint32_t firstVertex + uint32_t transformOffset + + + VkStructureType sType + const void* pNext + VkAccelerationStructureCreateFlagsKHR createFlags + VkBuffer buffer + VkDeviceSize offsetSpecified in bytes + VkDeviceSize size + VkAccelerationStructureTypeKHR type + VkDeviceAddress deviceAddress + + + float minX + float minY + float minZ + float maxX + float maxY + float maxZ + + + + float matrix[3][4] + + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkTransformMatrixKHR transform + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR accelerationStructure + + + VkStructureType sType + const void* pNext + const uint8_t* pVersionData + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR src + VkAccelerationStructureKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR src + VkDeviceOrHostAddressKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR src + VkAccelerationStructureKHR dst + VkCopyAccelerationStructureModeKHR mode + + + VkStructureType sType + const void* pNext + uint32_t maxPipelineRayPayloadSize + uint32_t maxPipelineRayHitAttributeSize + + + VkStructureType sType + const void* pNext + uint32_t libraryCount + const VkPipeline* pLibraries + + + VkObjectType objectType + uint64_t objectHandle + VkRefreshObjectFlagsKHR flags + + + VkStructureType sType + const void* pNext + uint32_t objectCount + const VkRefreshObjectKHR* pObjects + + + VkStructureType sType + void* pNext + VkBool32 extendedDynamicState + + + VkStructureType sType + void* pNext + VkBool32 extendedDynamicState2 + VkBool32 extendedDynamicState2LogicOp + VkBool32 extendedDynamicState2PatchControlPoints + + + VkStructureType sType + void* pNext + VkBool32 extendedDynamicState3TessellationDomainOrigin + VkBool32 extendedDynamicState3DepthClampEnable + VkBool32 extendedDynamicState3PolygonMode + VkBool32 extendedDynamicState3RasterizationSamples + VkBool32 extendedDynamicState3SampleMask + VkBool32 extendedDynamicState3AlphaToCoverageEnable + VkBool32 extendedDynamicState3AlphaToOneEnable + VkBool32 extendedDynamicState3LogicOpEnable + VkBool32 extendedDynamicState3ColorBlendEnable + VkBool32 extendedDynamicState3ColorBlendEquation + VkBool32 extendedDynamicState3ColorWriteMask + VkBool32 extendedDynamicState3RasterizationStream + VkBool32 extendedDynamicState3ConservativeRasterizationMode + VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize + VkBool32 extendedDynamicState3DepthClipEnable + VkBool32 extendedDynamicState3SampleLocationsEnable + VkBool32 extendedDynamicState3ColorBlendAdvanced + VkBool32 extendedDynamicState3ProvokingVertexMode + VkBool32 extendedDynamicState3LineRasterizationMode + VkBool32 extendedDynamicState3LineStippleEnable + VkBool32 extendedDynamicState3DepthClipNegativeOneToOne + VkBool32 extendedDynamicState3ViewportWScalingEnable + VkBool32 extendedDynamicState3ViewportSwizzle + VkBool32 extendedDynamicState3CoverageToColorEnable + VkBool32 extendedDynamicState3CoverageToColorLocation + VkBool32 extendedDynamicState3CoverageModulationMode + VkBool32 extendedDynamicState3CoverageModulationTableEnable + VkBool32 extendedDynamicState3CoverageModulationTable + VkBool32 extendedDynamicState3CoverageReductionMode + VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable + VkBool32 extendedDynamicState3ShadingRateImageEnable + + + VkStructureType sType + void* pNext + VkBool32 dynamicPrimitiveTopologyUnrestricted + + + VkBlendFactor srcColorBlendFactor + VkBlendFactor dstColorBlendFactor + VkBlendOp colorBlendOp + VkBlendFactor srcAlphaBlendFactor + VkBlendFactor dstAlphaBlendFactor + VkBlendOp alphaBlendOp + + + VkBlendOp advancedBlendOp + VkBool32 srcPremultiplied + VkBool32 dstPremultiplied + VkBlendOverlapEXT blendOverlap + VkBool32 clampResults + + + VkStructureType sType + void* pNextPointer to next structure + VkSurfaceTransformFlagBitsKHR transform + + + VkStructureType sType + const void* pNext + VkSurfaceTransformFlagBitsKHR transform + + + VkStructureType sType + void* pNextPointer to next structure + VkSurfaceTransformFlagBitsKHR transform + VkRect2D renderArea + + + VkStructureType sType + void* pNext + VkBool32 diagnosticsConfig + + + VkStructureType sType + const void* pNext + VkDeviceDiagnosticsConfigFlagsNV flags + + + VkStructureType sType + const void* pNext + uint8_t pipelineIdentifier[VK_UUID_SIZE] + VkPipelineMatchControl matchControl + VkDeviceSize poolEntrySize + + + VkStructureType sType + void* pNext + VkBool32 shaderZeroInitializeWorkgroupMemory + + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupUniformControlFlow + + + VkStructureType sType + void* pNext + VkBool32 robustBufferAccess2 + VkBool32 robustImageAccess2 + VkBool32 nullDescriptor + + + VkStructureType sType + void* pNext + VkDeviceSize robustStorageBufferAccessSizeAlignment + VkDeviceSize robustUniformBufferAccessSizeAlignment + + + VkStructureType sType + void* pNext + VkBool32 robustImageAccess + + + + VkStructureType sType + void* pNext + VkBool32 workgroupMemoryExplicitLayout + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout + VkBool32 workgroupMemoryExplicitLayout8BitAccess + VkBool32 workgroupMemoryExplicitLayout16BitAccess + + + VkStructureType sType + void* pNext + VkBool32 constantAlphaColorBlendFactors + VkBool32 events + VkBool32 imageViewFormatReinterpretation + VkBool32 imageViewFormatSwizzle + VkBool32 imageView2DOn3DImage + VkBool32 multisampleArrayImage + VkBool32 mutableComparisonSamplers + VkBool32 pointPolygons + VkBool32 samplerMipLodBias + VkBool32 separateStencilMaskRef + VkBool32 shaderSampleRateInterpolationFunctions + VkBool32 tessellationIsolines + VkBool32 tessellationPointMode + VkBool32 triangleFans + VkBool32 vertexAttributeAccessBeyondStride + + + VkStructureType sType + void* pNext + uint32_t minVertexInputBindingStrideAlignment + + + VkStructureType sType + void* pNext + VkBool32 formatA4R4G4B4 + VkBool32 formatA4B4G4R4 + + + VkStructureType sType + void* pNext + VkBool32 subpassShading + + + VkStructureType sType + void*pNext + VkBool32 clustercullingShader + VkBool32 multiviewClusterCullingShader + + + VkStructureType sType + void*pNext + VkBool32 clusterShadingRate + + + VkStructureType sType + const void* pNext + VkDeviceSize srcOffsetSpecified in bytes + VkDeviceSize dstOffsetSpecified in bytes + VkDeviceSize sizeSpecified in bytes + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D extentSpecified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkDeviceSize bufferOffsetSpecified in bytes + uint32_t bufferRowLengthSpecified in texels + uint32_t bufferImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images + VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images + + + + VkStructureType sType + const void* pNext + VkImageSubresourceLayers srcSubresource + VkOffset3D srcOffset + VkImageSubresourceLayers dstSubresource + VkOffset3D dstOffset + VkExtent3D extent + + + + VkStructureType sType + const void* pNext + VkBuffer srcBuffer + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageBlit2* pRegions + VkFilter filter + + + + VkStructureType sType + const void* pNext + VkBuffer srcBuffer + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkBufferImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferImageCopy2* pRegions + + + + VkStructureType sType + const void* pNext + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageResolve2* pRegions + + + + VkStructureType sType + void* pNext + VkBool32 shaderImageInt64Atomics + VkBool32 sparseImageInt64Atomics + + + VkStructureType sType + const void* pNext + const VkAttachmentReference2* pFragmentShadingRateAttachment + VkExtent2D shadingRateAttachmentTexelSize + + + VkStructureType sType + const void* pNext + VkExtent2D fragmentSize + VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkStructureType sType + void* pNext + VkBool32 pipelineFragmentShadingRate + VkBool32 primitiveFragmentShadingRate + VkBool32 attachmentFragmentShadingRate + + + VkStructureType sType + void* pNext + VkExtent2D minFragmentShadingRateAttachmentTexelSize + VkExtent2D maxFragmentShadingRateAttachmentTexelSize + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio + VkBool32 primitiveFragmentShadingRateWithMultipleViewports + VkBool32 layeredShadingRateAttachments + VkBool32 fragmentShadingRateNonTrivialCombinerOps + VkExtent2D maxFragmentSize + uint32_t maxFragmentSizeAspectRatio + uint32_t maxFragmentShadingRateCoverageSamples + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites + VkBool32 fragmentShadingRateWithSampleMask + VkBool32 fragmentShadingRateWithShaderSampleMask + VkBool32 fragmentShadingRateWithConservativeRasterization + VkBool32 fragmentShadingRateWithFragmentShaderInterlock + VkBool32 fragmentShadingRateWithCustomSampleLocations + VkBool32 fragmentShadingRateStrictMultiplyCombiner + + + VkStructureType sType + void* pNext + VkSampleCountFlags sampleCounts + VkExtent2D fragmentSize + + + VkStructureType sType + void* pNext + VkBool32 shaderTerminateInvocation + + + + VkStructureType sType + void* pNext + VkBool32 fragmentShadingRateEnums + VkBool32 supersampleFragmentShadingRates + VkBool32 noInvocationFragmentShadingRates + + + VkStructureType sType + void* pNext + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount + + + VkStructureType sType + const void* pNext + VkFragmentShadingRateTypeNV shadingRateType + VkFragmentShadingRateNV shadingRate + VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkStructureType sType + const void* pNext + VkDeviceSize accelerationStructureSize + VkDeviceSize updateScratchSize + VkDeviceSize buildScratchSize + + + VkStructureType sType + void* pNext + VkBool32 image2DViewOf3D + VkBool32 sampler2DViewOf3D + + + VkStructureType sType + void* pNext + VkBool32 imageSlicedViewOf3D + + + VkStructureType sType + void* pNext + VkBool32 attachmentFeedbackLoopDynamicState + + + VkStructureType sType + void* pNext + VkBool32 legacyVertexAttributes + + + VkStructureType sType + void* pNext + VkBool32 nativeUnalignedPerformance + + + VkStructureType sType + void* pNext + VkBool32 mutableDescriptorType + + + + uint32_t descriptorTypeCount + const VkDescriptorType* pDescriptorTypes + + + + VkStructureType sType + const void* pNext + uint32_t mutableDescriptorTypeListCount + const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists + + + + VkStructureType sType + void* pNext + VkBool32 depthClipControl + + + VkStructureType sType + void* pNext + VkBool32 deviceGeneratedCommands + VkBool32 dynamicGeneratedPipelineLayout + + + VkStructureType sType + void* pNext + uint32_t maxIndirectPipelineCount + uint32_t maxIndirectShaderObjectCount + uint32_t maxIndirectSequenceCount + uint32_t maxIndirectCommandsTokenCount + uint32_t maxIndirectCommandsTokenOffset + uint32_t maxIndirectCommandsIndirectStride + VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes + VkShaderStageFlags supportedIndirectCommandsShaderStages + VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding + VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding + VkBool32 deviceGeneratedCommandsTransformFeedback + VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount + + + VkStructureType sType + void* pNext + VkPipeline pipeline + + + VkStructureType sType + void* pNext + uint32_t shaderCount + const VkShaderEXT* pShaders + + + VkStructureType sType + void* pNext + VkIndirectExecutionSetEXT indirectExecutionSet + VkIndirectCommandsLayoutEXT indirectCommandsLayout + uint32_t maxSequenceCount + uint32_t maxDrawCount + + + VkStructureType sType + const void* pNext + VkPipeline initialPipeline + uint32_t maxPipelineCount + + + VkStructureType sType + const void* pNext + uint32_t setLayoutCount + const VkDescriptorSetLayout* pSetLayouts + + + VkStructureType sType + const void* pNext + uint32_t shaderCount + const VkShaderEXT* pInitialShaders + const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos + uint32_t maxShaderCount + uint32_t pushConstantRangeCount + const VkPushConstantRange* pPushConstantRanges + + + const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo + const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo + + + VkStructureType sType + const void* pNext + VkIndirectExecutionSetInfoTypeEXT type + VkIndirectExecutionSetInfoEXT info + + + VkStructureType sType + const void* pNext + VkShaderStageFlags shaderStages + VkIndirectExecutionSetEXT indirectExecutionSet + VkIndirectCommandsLayoutEXT indirectCommandsLayout + VkDeviceAddress indirectAddress + VkDeviceSize indirectAddressSize + VkDeviceAddress preprocessAddress + VkDeviceSize preprocessSize + uint32_t maxSequenceCount + VkDeviceAddress sequenceCountAddress + uint32_t maxDrawCount + + + VkStructureType sType + const void* pNext + uint32_t index + VkPipeline pipeline + + + VkStructureType sType + const void* pNext + uint32_t index + VkShaderEXT shader + + + VkStructureType sType + const void* pNext + VkIndirectCommandsLayoutUsageFlagsEXT flags + VkShaderStageFlags shaderStages + uint32_t indirectStride + VkPipelineLayout pipelineLayout + uint32_t tokenCount + const VkIndirectCommandsLayoutTokenEXT* pTokens + + + VkStructureType sType + const void* pNext + VkIndirectCommandsTokenTypeEXT type + VkIndirectCommandsTokenDataEXT data + uint32_t offset + + + VkDeviceAddress bufferAddress + uint32_t stride + uint32_t commandCount + + + uint32_t vertexBindingUnit + + + VkDeviceAddress bufferAddress + uint32_t size + uint32_t stride + + + VkIndirectCommandsInputModeFlagBitsEXT mode + + + VkDeviceAddress bufferAddress + uint32_t size + VkIndexType indexType + + + VkPushConstantRange updateRange + + + VkIndirectExecutionSetInfoTypeEXT type + VkShaderStageFlags shaderStages + + + const VkIndirectCommandsPushConstantTokenEXT* pPushConstant + const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer + const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer + const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet + + + VkStructureType sType + const void* pNext + VkBool32 negativeOneToOne + + + VkStructureType sType + void* pNext + VkBool32 depthClampControl + + + VkStructureType sType + const void* pNext + VkDepthClampModeEXT depthClampMode + const VkDepthClampRangeEXT* pDepthClampRange + + + VkStructureType sType + void* pNext + VkBool32 vertexInputDynamicState + + + VkStructureType sType + void* pNext + VkBool32 externalMemoryRDMA + + + VkStructureType sType + void* pNext + VkBool32 shaderRelaxedExtendedInstruction + + + VkStructureType sType + void* pNext + uint32_t binding + uint32_t stride + VkVertexInputRate inputRate + uint32_t divisor + + + VkStructureType sType + void* pNext + uint32_t locationlocation of the shader vertex attrib + uint32_t bindingVertex buffer binding id + VkFormat formatformat of source data + uint32_t offsetOffset of first element in bytes from base of vertex + + + VkStructureType sType + void* pNext + VkBool32 colorWriteEnable + + + VkStructureType sType + const void* pNext + uint32_t attachmentCount# of pAttachments + const VkBool32* pColorWriteEnables + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + VkImageLayout oldLayout + VkImageLayout newLayout + uint32_t srcQueueFamilyIndex + uint32_t dstQueueFamilyIndex + VkImage image + VkImageSubresourceRange subresourceRange + + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + uint32_t srcQueueFamilyIndex + uint32_t dstQueueFamilyIndex + VkBuffer buffer + VkDeviceSize offset + VkDeviceSize size + + + + VkStructureType sType + const void* pNext + VkDependencyFlags dependencyFlags + uint32_t memoryBarrierCount + const VkMemoryBarrier2* pMemoryBarriers + uint32_t bufferMemoryBarrierCount + const VkBufferMemoryBarrier2* pBufferMemoryBarriers + uint32_t imageMemoryBarrierCount + const VkImageMemoryBarrier2* pImageMemoryBarriers + + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + uint64_t value + VkPipelineStageFlags2 stageMask + uint32_t deviceIndex + + + + VkStructureType sType + const void* pNext + VkCommandBuffer commandBuffer + uint32_t deviceMask + + + + VkStructureType sType + const void* pNext + VkSubmitFlags flags + uint32_t waitSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos + uint32_t commandBufferInfoCount + const VkCommandBufferSubmitInfo* pCommandBufferInfos + uint32_t signalSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos + + + + VkStructureType sType + void* pNext + VkPipelineStageFlags2 checkpointExecutionStageMask + + + VkStructureType sType + void* pNext + VkPipelineStageFlags2 stage + void* pCheckpointMarker + + + VkStructureType sType + void* pNext + VkBool32 synchronization2 + + + + VkStructureType sType + void* pNext + VkBool32 hostImageCopy + + + VkStructureType sType + void* pNext + uint32_t copySrcLayoutCount + VkImageLayout* pCopySrcLayouts + uint32_t copyDstLayoutCount + VkImageLayout* pCopyDstLayouts + uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE] + VkBool32 identicalMemoryTypeRequirements + + + VkStructureType sType + const void* pNext + const void* pHostPointer + uint32_t memoryRowLengthSpecified in texels + uint32_t memoryImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffset + VkExtent3D imageExtent + + + VkStructureType sType + const void* pNext + void* pHostPointer + uint32_t memoryRowLengthSpecified in texels + uint32_t memoryImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffset + VkExtent3D imageExtent + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkMemoryToImageCopyEXT* pRegions + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage srcImage + VkImageLayout srcImageLayout + uint32_t regionCount + const VkImageToMemoryCopyEXT* pRegions + + + VkStructureType sType + const void* pNext + VkHostImageCopyFlagsEXT flags + VkImage srcImage + VkImageLayout srcImageLayout + VkImage dstImage + VkImageLayout dstImageLayout + uint32_t regionCount + const VkImageCopy2* pRegions + + + VkStructureType sType + const void* pNext + VkImage image + VkImageLayout oldLayout + VkImageLayout newLayout + VkImageSubresourceRange subresourceRange + + + VkStructureType sType + void* pNext + VkDeviceSize sizeSpecified in bytes + + + VkStructureType sType + void* pNext + VkBool32 optimalDeviceAccessSpecifies if device access is optimal + VkBool32 identicalMemoryLayoutSpecifies if memory layout is identical + + + VkStructureType sType + void* pNext + VkBool32 deviceNoDynamicHostAllocations + VkBool32 deviceDestroyFreesMemory + VkBool32 commandPoolMultipleCommandBuffersRecording + VkBool32 commandPoolResetCommandBuffer + VkBool32 commandBufferSimultaneousUse + VkBool32 secondaryCommandBufferNullOrImagelessFramebuffer + VkBool32 recycleDescriptorSetMemory + VkBool32 recyclePipelineMemory + uint32_t maxRenderPassSubpasses + uint32_t maxRenderPassDependencies + uint32_t maxSubpassInputAttachments + uint32_t maxSubpassPreserveAttachments + uint32_t maxFramebufferAttachments + uint32_t maxDescriptorSetLayoutBindings + uint32_t maxQueryFaultCount + uint32_t maxCallbackFaultCount + uint32_t maxCommandPoolCommandBuffers + VkDeviceSize maxCommandBufferSize + + + VkStructureType sType + const void* pNext + VkDeviceSize poolEntrySize + uint32_t poolEntryCount + + + VkStructureType sType + const void* pNext + uint32_t pipelineCacheCreateInfoCount + const VkPipelineCacheCreateInfo* pPipelineCacheCreateInfos + uint32_t pipelinePoolSizeCount + const VkPipelinePoolSize* pPipelinePoolSizes + uint32_t semaphoreRequestCount + uint32_t commandBufferRequestCount + uint32_t fenceRequestCount + uint32_t deviceMemoryRequestCount + uint32_t bufferRequestCount + uint32_t imageRequestCount + uint32_t eventRequestCount + uint32_t queryPoolRequestCount + uint32_t bufferViewRequestCount + uint32_t imageViewRequestCount + uint32_t layeredImageViewRequestCount + uint32_t pipelineCacheRequestCount + uint32_t pipelineLayoutRequestCount + uint32_t renderPassRequestCount + uint32_t graphicsPipelineRequestCount + uint32_t computePipelineRequestCount + uint32_t descriptorSetLayoutRequestCount + uint32_t samplerRequestCount + uint32_t descriptorPoolRequestCount + uint32_t descriptorSetRequestCount + uint32_t framebufferRequestCount + uint32_t commandPoolRequestCount + uint32_t samplerYcbcrConversionRequestCount + uint32_t surfaceRequestCount + uint32_t swapchainRequestCount + uint32_t displayModeRequestCount + uint32_t subpassDescriptionRequestCount + uint32_t attachmentDescriptionRequestCount + uint32_t descriptorSetLayoutBindingRequestCount + uint32_t descriptorSetLayoutBindingLimit + uint32_t maxImageViewMipLevels + uint32_t maxImageViewArrayLayers + uint32_t maxLayeredImageViewMipLevels + uint32_t maxOcclusionQueriesPerPool + uint32_t maxPipelineStatisticsQueriesPerPool + uint32_t maxTimestampQueriesPerPool + uint32_t maxImmutableSamplersPerDescriptorSetLayout + + + VkStructureType sType + const void* pNext + VkDeviceSize commandPoolReservedSize + uint32_t commandPoolMaxCommandBuffers + + + VkStructureType sType + void* pNext + VkDeviceSize commandPoolAllocated + VkDeviceSize commandPoolReservedSize + VkDeviceSize commandBufferAllocated + + + VkStructureType sType + void* pNext + VkBool32 shaderAtomicInstructions + + + VkStructureType sType + void* pNext + VkBool32 primitivesGeneratedQuery + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard + VkBool32 primitivesGeneratedQueryWithNonZeroStreams + + + VkStructureType sType + void* pNext + VkBool32 legacyDithering + + + VkStructureType sType + void* pNext + VkBool32 multisampledRenderToSingleSampled + + + VkStructureType sType + void* pNext + VkBool32 optimal + + + VkStructureType sType + const void* pNext + VkBool32 multisampledRenderToSingleSampledEnable + VkSampleCountFlagBits rasterizationSamples + + + VkStructureType sType + void* pNext + VkBool32 pipelineProtectedAccess + + + VkStructureType sType + void* pNext + VkVideoCodecOperationFlagsKHR videoCodecOperations + + + VkStructureType sType + void* pNext + VkBool32 queryResultStatusSupport + + + VkStructureType sType + const void* pNext + uint32_t profileCount + const VkVideoProfileInfoKHR* pProfiles + + + VkStructureType sType + const void* pNext + VkImageUsageFlags imageUsage + + + VkStructureType sType + void* pNext + VkFormat format + VkComponentMapping componentMapping + VkImageCreateFlags imageCreateFlags + VkImageType imageType + VkImageTiling imageTiling + VkImageUsageFlags imageUsageFlags + + + VkStructureType sType + const void* pNext + VkVideoCodecOperationFlagBitsKHR videoCodecOperation + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling + VkVideoComponentBitDepthFlagsKHR lumaBitDepth + VkVideoComponentBitDepthFlagsKHR chromaBitDepth + + + VkStructureType sType + void* pNext + VkVideoCapabilityFlagsKHR flags + VkDeviceSize minBitstreamBufferOffsetAlignment + VkDeviceSize minBitstreamBufferSizeAlignment + VkExtent2D pictureAccessGranularity + VkExtent2D minCodedExtent + VkExtent2D maxCodedExtent + uint32_t maxDpbSlots + uint32_t maxActiveReferencePictures + VkExtensionProperties stdHeaderVersion + + + VkStructureType sType + void* pNext + uint32_t memoryBindIndex + VkMemoryRequirements memoryRequirements + + + VkStructureType sType + const void* pNext + uint32_t memoryBindIndex + VkDeviceMemory memory + VkDeviceSize memoryOffset + VkDeviceSize memorySize + + + VkStructureType sType + const void* pNext + VkOffset2D codedOffsetThe offset to be used for the picture resource, currently only used in field mode + VkExtent2D codedExtentThe extent to be used for the picture resource + uint32_t baseArrayLayerThe first array layer to be accessed for the Decode or Encode Operations + VkImageView imageViewBindingThe ImageView binding of the resource + + + VkStructureType sType + const void* pNext + int32_t slotIndexThe reference slot index + const VkVideoPictureResourceInfoKHR* pPictureResourceThe reference picture resource + + + VkStructureType sType + void* pNext + VkVideoDecodeCapabilityFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoDecodeUsageFlagsKHR videoUsageHints + + + VkStructureType sType + const void* pNext + VkVideoDecodeFlagsKHR flags + VkBuffer srcBuffer + VkDeviceSize srcBufferOffset + VkDeviceSize srcBufferRange + VkVideoPictureResourceInfoKHR dstPictureResource + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + + + VkStructureType sType + void* pNext + VkBool32 videoMaintenance1 + + + VkStructureType sType + const void* pNext + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + + Video Decode Codec Standard specific structures + #include "vk_video/vulkan_video_codec_h264std.h" + + + #include "vk_video/vulkan_video_codec_h264std_decode.h" + + + + VkStructureType sType + const void* pNext + StdVideoH264ProfileIdc stdProfileIdc + VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout + + + VkStructureType sType + void* pNext + StdVideoH264LevelIdc maxLevelIdc + VkOffset2D fieldOffsetGranularity + + + + + VkStructureType sType + const void* pNext + uint32_t stdSPSCount + const StdVideoH264SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH264PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH264PictureInfo* pStdPictureInfo + uint32_t sliceCount + const uint32_t* pSliceOffsets + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo + + #include "vk_video/vulkan_video_codec_h265std.h" + + + + + + #include "vk_video/vulkan_video_codec_h265std_decode.h" + + + + VkStructureType sType + const void* pNext + StdVideoH265ProfileIdc stdProfileIdc + + + VkStructureType sType + void* pNext + StdVideoH265LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdVPSCount + const StdVideoH265VideoParameterSet* pStdVPSs + uint32_t stdSPSCount + const StdVideoH265SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH265PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdVPSCount + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH265PictureInfo* pStdPictureInfo + uint32_t sliceSegmentCount + const uint32_t* pSliceSegmentOffsets + + + VkStructureType sType + const void* pNext + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo + + #include "vk_video/vulkan_video_codec_av1std.h" + + + + #include "vk_video/vulkan_video_codec_av1std_decode.h" + + + + VkStructureType sType + const void* pNext + StdVideoAV1Profile stdProfile + VkBool32 filmGrainSupport + + + VkStructureType sType + void* pNext + StdVideoAV1Level maxLevel + + + VkStructureType sType + const void* pNext + const StdVideoAV1SequenceHeader* pStdSequenceHeader + + + VkStructureType sType + const void* pNext + const StdVideoDecodeAV1PictureInfo* pStdPictureInfo + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR] + uint32_t frameHeaderOffset + uint32_t tileCount + const uint32_t* pTileOffsets + const uint32_t* pTileSizes + + + VkStructureType sType + const void* pNext + const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + const void* pNext + uint32_t queueFamilyIndex + VkVideoSessionCreateFlagsKHR flags + const VkVideoProfileInfoKHR* pVideoProfile + VkFormat pictureFormat + VkExtent2D maxCodedExtent + VkFormat referencePictureFormat + uint32_t maxDpbSlots + uint32_t maxActiveReferencePictures + const VkExtensionProperties* pStdHeaderVersion + + + VkStructureType sType + const void* pNext + VkVideoSessionParametersCreateFlagsKHR flags + VkVideoSessionParametersKHR videoSessionParametersTemplate + VkVideoSessionKHR videoSession + + + VkStructureType sType + const void* pNext + uint32_t updateSequenceCount + + + VkStructureType sType + const void* pNext + VkVideoSessionParametersKHR videoSessionParameters + + + VkStructureType sType + void* pNext + VkBool32 hasOverrides + + + VkStructureType sType + const void* pNext + VkVideoBeginCodingFlagsKHR flags + VkVideoSessionKHR videoSession + VkVideoSessionParametersKHR videoSessionParameters + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + + + VkStructureType sType + const void* pNext + VkVideoEndCodingFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoCodingControlFlagsKHR flags + + + VkStructureType sType + const void* pNext + VkVideoEncodeUsageFlagsKHR videoUsageHints + VkVideoEncodeContentFlagsKHR videoContentHints + VkVideoEncodeTuningModeKHR tuningMode + + + VkStructureType sType + const void* pNext + VkVideoEncodeFlagsKHR flags + VkBuffer dstBuffer + VkDeviceSize dstBufferOffset + VkDeviceSize dstBufferRange + VkVideoPictureResourceInfoKHR srcPictureResource + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot + uint32_t referenceSlotCount + const VkVideoReferenceSlotInfoKHR* pReferenceSlots + uint32_t precedingExternallyEncodedBytes + + + VkStructureType sType + const void* pNext + VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags + + + VkStructureType sType + const void* pNext + uint32_t qualityLevel + + + VkStructureType sType + const void* pNext + const VkVideoProfileInfoKHR* pVideoProfile + uint32_t qualityLevel + + + VkStructureType sType + void* pNext + VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode + uint32_t preferredRateControlLayerCount + + + VkStructureType sType + const void* pNext + VkVideoEncodeRateControlFlagsKHR flags + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode + uint32_t layerCount + const VkVideoEncodeRateControlLayerInfoKHR* pLayers + uint32_t virtualBufferSizeInMs + uint32_t initialVirtualBufferSizeInMs + + + VkStructureType sType + const void* pNext + uint64_t averageBitrate + uint64_t maxBitrate + uint32_t frameRateNumerator + uint32_t frameRateDenominator + + + VkStructureType sType + void* pNext + VkVideoEncodeCapabilityFlagsKHR flags + VkVideoEncodeRateControlModeFlagsKHR rateControlModes + uint32_t maxRateControlLayers + uint64_t maxBitrate + uint32_t maxQualityLevels + VkExtent2D encodeInputPictureGranularity + VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH264CapabilityFlagsKHR flags + StdVideoH264LevelIdc maxLevelIdc + uint32_t maxSliceCount + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount + uint32_t maxTemporalLayerCount + VkBool32 expectDyadicTemporalLayerPattern + int32_t minQp + int32_t maxQp + VkBool32 prefersGopRemainingFrames + VkBool32 requiresGopRemainingFrames + VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags + uint32_t preferredGopFrameCount + uint32_t preferredIdrPeriod + uint32_t preferredConsecutiveBFrameCount + uint32_t preferredTemporalLayerCount + VkVideoEncodeH264QpKHR preferredConstantQp + uint32_t preferredMaxL0ReferenceCount + uint32_t preferredMaxL1ReferenceCount + VkBool32 preferredStdEntropyCodingModeFlag + + #include "vk_video/vulkan_video_codec_h264std_encode.h" + + + + + VkStructureType sType + const void* pNext + VkBool32 useMaxLevelIdc + StdVideoH264LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdSPSCount + const StdVideoH264SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH264PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + VkBool32 writeStdSPS + VkBool32 writeStdPPS + uint32_t stdSPSId + uint32_t stdPPSId + + + VkStructureType sType + void* pNext + VkBool32 hasStdSPSOverrides + VkBool32 hasStdPPSOverrides + + + VkStructureType sType + const void* pNext + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + const void* pNext + uint32_t naluSliceEntryCount + const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries + const StdVideoEncodeH264PictureInfo* pStdPictureInfo + VkBool32 generatePrefixNalu + + + VkStructureType sType + const void* pNext + StdVideoH264ProfileIdc stdProfileIdc + + + VkStructureType sType + const void* pNext + int32_t constantQp + const StdVideoEncodeH264SliceHeader* pStdSliceHeader + + + VkStructureType sType + const void* pNext + VkVideoEncodeH264RateControlFlagsKHR flags + uint32_t gopFrameCount + uint32_t idrPeriod + uint32_t consecutiveBFrameCount + uint32_t temporalLayerCount + + + int32_t qpI + int32_t qpP + int32_t qpB + + + uint32_t frameISize + uint32_t framePSize + uint32_t frameBSize + + + VkStructureType sType + const void* pNext + VkBool32 useGopRemainingFrames + uint32_t gopRemainingI + uint32_t gopRemainingP + uint32_t gopRemainingB + + + VkStructureType sType + const void* pNext + VkBool32 useMinQp + VkVideoEncodeH264QpKHR minQp + VkBool32 useMaxQp + VkVideoEncodeH264QpKHR maxQp + VkBool32 useMaxFrameSize + VkVideoEncodeH264FrameSizeKHR maxFrameSize + + + VkStructureType sType + void* pNext + VkVideoEncodeH265CapabilityFlagsKHR flags + StdVideoH265LevelIdc maxLevelIdc + uint32_t maxSliceSegmentCount + VkExtent2D maxTiles + VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes + VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount + uint32_t maxSubLayerCount + VkBool32 expectDyadicTemporalSubLayerPattern + int32_t minQp + int32_t maxQp + VkBool32 prefersGopRemainingFrames + VkBool32 requiresGopRemainingFrames + VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags + + + VkStructureType sType + void* pNext + VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags + uint32_t preferredGopFrameCount + uint32_t preferredIdrPeriod + uint32_t preferredConsecutiveBFrameCount + uint32_t preferredSubLayerCount + VkVideoEncodeH265QpKHR preferredConstantQp + uint32_t preferredMaxL0ReferenceCount + uint32_t preferredMaxL1ReferenceCount + + #include "vk_video/vulkan_video_codec_h265std_encode.h" + + + + + VkStructureType sType + const void* pNext + VkBool32 useMaxLevelIdc + StdVideoH265LevelIdc maxLevelIdc + + + VkStructureType sType + const void* pNext + uint32_t stdVPSCount + const StdVideoH265VideoParameterSet* pStdVPSs + uint32_t stdSPSCount + const StdVideoH265SequenceParameterSet* pStdSPSs + uint32_t stdPPSCount + const StdVideoH265PictureParameterSet* pStdPPSsList of Picture Parameters associated with the spsStd, above + + + VkStructureType sType + const void* pNext + uint32_t maxStdVPSCount + uint32_t maxStdSPSCount + uint32_t maxStdPPSCount + const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo + + + VkStructureType sType + const void* pNext + VkBool32 writeStdVPS + VkBool32 writeStdSPS + VkBool32 writeStdPPS + uint32_t stdVPSId + uint32_t stdSPSId + uint32_t stdPPSId + + + VkStructureType sType + void* pNext + VkBool32 hasStdVPSOverrides + VkBool32 hasStdSPSOverrides + VkBool32 hasStdPPSOverrides + + + VkStructureType sType + const void* pNext + uint32_t naluSliceSegmentEntryCount + const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries + const StdVideoEncodeH265PictureInfo* pStdPictureInfo + + + VkStructureType sType + const void* pNext + int32_t constantQp + const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader + + + VkStructureType sType + const void* pNext + VkVideoEncodeH265RateControlFlagsKHR flags + uint32_t gopFrameCount + uint32_t idrPeriod + uint32_t consecutiveBFrameCount + uint32_t subLayerCount + + + int32_t qpI + int32_t qpP + int32_t qpB + + + uint32_t frameISize + uint32_t framePSize + uint32_t frameBSize + + + VkStructureType sType + const void* pNext + VkBool32 useGopRemainingFrames + uint32_t gopRemainingI + uint32_t gopRemainingP + uint32_t gopRemainingB + + + VkStructureType sType + const void* pNext + VkBool32 useMinQp + VkVideoEncodeH265QpKHR minQp + VkBool32 useMaxQp + VkVideoEncodeH265QpKHR maxQp + VkBool32 useMaxFrameSize + VkVideoEncodeH265FrameSizeKHR maxFrameSize + + + VkStructureType sType + const void* pNext + StdVideoH265ProfileIdc stdProfileIdc + + + VkStructureType sType + const void* pNext + const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo + + + VkStructureType sType + void* pNext + VkBool32 inheritedViewportScissor2D + + + VkStructureType sType + const void* pNext + VkBool32 viewportScissor2D + uint32_t viewportDepthCount + const VkViewport* pViewportDepths + + + VkStructureType sType + void* pNext + VkBool32 ycbcr2plane444Formats + + + VkStructureType sType + void* pNext + VkBool32 provokingVertexLast + VkBool32 transformFeedbackPreservesProvokingVertex + + + VkStructureType sType + void* pNext + VkBool32 provokingVertexModePerPipeline + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex + + + VkStructureType sType + const void* pNext + VkProvokingVertexModeEXT provokingVertexMode + + + VkStructureType sType + const void* pNext + size_t dataSize + const void* pData + + + VkStructureType sType + const void* pNext + VkCuModuleNVX module + const char* pName + + + VkStructureType sType + const void* pNext + VkCuFunctionNVX function + uint32_t gridDimX + uint32_t gridDimY + uint32_t gridDimZ + uint32_t blockDimX + uint32_t blockDimY + uint32_t blockDimZ + uint32_t sharedMemBytes + size_t paramCount + const void* const * pParams + size_t extraCount + const void* const * pExtras + + + VkStructureType sType + void* pNext + VkBool32 descriptorBuffer + VkBool32 descriptorBufferCaptureReplay + VkBool32 descriptorBufferImageLayoutIgnored + VkBool32 descriptorBufferPushDescriptors + + + VkStructureType sType + void* pNext + VkBool32 combinedImageSamplerDescriptorSingleArray + VkBool32 bufferlessPushDescriptors + VkBool32 allowSamplerImageViewPostSubmitCreation + VkDeviceSize descriptorBufferOffsetAlignment + uint32_t maxDescriptorBufferBindings + uint32_t maxResourceDescriptorBufferBindings + uint32_t maxSamplerDescriptorBufferBindings + uint32_t maxEmbeddedImmutableSamplerBindings + uint32_t maxEmbeddedImmutableSamplers + size_t bufferCaptureReplayDescriptorDataSize + size_t imageCaptureReplayDescriptorDataSize + size_t imageViewCaptureReplayDescriptorDataSize + size_t samplerCaptureReplayDescriptorDataSize + size_t accelerationStructureCaptureReplayDescriptorDataSize + size_t samplerDescriptorSize + size_t combinedImageSamplerDescriptorSize + size_t sampledImageDescriptorSize + size_t storageImageDescriptorSize + size_t uniformTexelBufferDescriptorSize + size_t robustUniformTexelBufferDescriptorSize + size_t storageTexelBufferDescriptorSize + size_t robustStorageTexelBufferDescriptorSize + size_t uniformBufferDescriptorSize + size_t robustUniformBufferDescriptorSize + size_t storageBufferDescriptorSize + size_t robustStorageBufferDescriptorSize + size_t inputAttachmentDescriptorSize + size_t accelerationStructureDescriptorSize + VkDeviceSize maxSamplerDescriptorBufferRange + VkDeviceSize maxResourceDescriptorBufferRange + VkDeviceSize samplerDescriptorBufferAddressSpaceSize + VkDeviceSize resourceDescriptorBufferAddressSpaceSize + VkDeviceSize descriptorBufferAddressSpaceSize + + + VkStructureType sType + void* pNext + size_t combinedImageSamplerDensityMapDescriptorSize + + + VkStructureType sType + void* pNext + VkDeviceAddress address + VkDeviceSize range + VkFormat format + + + VkStructureType sType + const void* pNext + VkDeviceAddress address + VkBufferUsageFlags usage + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + const VkSampler* pSampler + const VkDescriptorImageInfo* pCombinedImageSampler + const VkDescriptorImageInfo* pInputAttachmentImage + const VkDescriptorImageInfo* pSampledImage + const VkDescriptorImageInfo* pStorageImage + const VkDescriptorAddressInfoEXT* pUniformTexelBuffer + const VkDescriptorAddressInfoEXT* pStorageTexelBuffer + const VkDescriptorAddressInfoEXT* pUniformBuffer + const VkDescriptorAddressInfoEXT* pStorageBuffer + VkDeviceAddress accelerationStructure + + + VkStructureType sType + const void* pNext + VkDescriptorType type + VkDescriptorDataEXT data + + + VkStructureType sType + const void* pNext + VkBuffer buffer + + + VkStructureType sType + const void* pNext + VkImage image + + + VkStructureType sType + const void* pNext + VkImageView imageView + + + VkStructureType sType + const void* pNext + VkSampler sampler + + + VkStructureType sType + const void* pNext + VkAccelerationStructureKHR accelerationStructure + VkAccelerationStructureNV accelerationStructureNV + + + VkStructureType sType + const void* pNext + const void* opaqueCaptureDescriptorData + + + VkStructureType sType + void* pNext + VkBool32 shaderIntegerDotProduct + + + + VkStructureType sType + void* pNext + VkBool32 integerDotProduct8BitUnsignedAccelerated + VkBool32 integerDotProduct8BitSignedAccelerated + VkBool32 integerDotProduct8BitMixedSignednessAccelerated + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated + VkBool32 integerDotProduct16BitUnsignedAccelerated + VkBool32 integerDotProduct16BitSignedAccelerated + VkBool32 integerDotProduct16BitMixedSignednessAccelerated + VkBool32 integerDotProduct32BitUnsignedAccelerated + VkBool32 integerDotProduct32BitSignedAccelerated + VkBool32 integerDotProduct32BitMixedSignednessAccelerated + VkBool32 integerDotProduct64BitUnsignedAccelerated + VkBool32 integerDotProduct64BitSignedAccelerated + VkBool32 integerDotProduct64BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated + + + + VkStructureType sType + void* pNext + VkBool32 hasPrimary + VkBool32 hasRender + int64_t primaryMajor + int64_t primaryMinor + int64_t renderMajor + int64_t renderMinor + + + VkStructureType sType + void* pNext + VkBool32 fragmentShaderBarycentric + + + VkStructureType sType + void* pNext + VkBool32 triStripVertexOrderIndependentOfProvokingVertex + + + VkStructureType sType + void* pNext + VkBool32 rayTracingMotionBlur + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect + + + VkStructureType sType + void* pNext + VkBool32 rayTracingValidation + + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR vertexData + + + VkStructureType sType + const void* pNext + uint32_t maxInstances + VkAccelerationStructureMotionInfoFlagsNV flags + + + float sx + float a + float b + float pvx + float sy + float c + float pvy + float sz + float pvz + float qx + float qy + float qz + float qw + float tx + float ty + float tz + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkSRTDataNV transformT0 + VkSRTDataNV transformT1 + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. + VkTransformMatrixKHR transformT0 + VkTransformMatrixKHR transformT1 + uint32_t instanceCustomIndex:24 + uint32_t mask:8 + uint32_t instanceShaderBindingTableRecordOffset:24 + VkGeometryInstanceFlagsKHR flags:8 + uint64_t accelerationStructureReference + + + VkAccelerationStructureInstanceKHR staticInstance + VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance + VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance + + + VkAccelerationStructureMotionInstanceTypeNV type + VkAccelerationStructureMotionInstanceFlagsNV flags + VkAccelerationStructureMotionInstanceDataNV data + + typedef void* VkRemoteAddressNV; + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + VkBufferCollectionFUCHSIA collection + uint32_t index + + + VkStructureType sType + const void* pNext + zx_handle_t collectionToken + + + VkStructureType sType + void* pNext + uint32_t memoryTypeBits + uint32_t bufferCount + uint32_t createInfoIndex + uint64_t sysmemPixelFormat + VkFormatFeatureFlags formatFeatures + VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + const void* pNext + VkBufferCreateInfo createInfo + VkFormatFeatureFlags requiredFormatFeatures + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints + + + VkStructureType sType + const void* pNext + uint32_t colorSpace + + + VkStructureType sType + const void* pNext + VkImageCreateInfo imageCreateInfo + VkFormatFeatureFlags requiredFormatFeatures + VkImageFormatConstraintsFlagsFUCHSIA flags + uint64_t sysmemPixelFormat + uint32_t colorSpaceCount + const VkSysmemColorSpaceFUCHSIA* pColorSpaces + + + VkStructureType sType + const void* pNext + uint32_t formatConstraintsCount + const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints + VkImageConstraintsInfoFlagsFUCHSIA flags + + + VkStructureType sType + const void* pNext + uint32_t minBufferCount + uint32_t maxBufferCount + uint32_t minBufferCountForCamping + uint32_t minBufferCountForDedicatedSlack + uint32_t minBufferCountForSharedSlack + + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV) + + VkStructureType sType + const void* pNext + size_t dataSize + const void* pData + + + VkStructureType sType + const void* pNext + VkCudaModuleNV module + const char* pName + + + VkStructureType sType + const void* pNext + VkCudaFunctionNV function + uint32_t gridDimX + uint32_t gridDimY + uint32_t gridDimZ + uint32_t blockDimX + uint32_t blockDimY + uint32_t blockDimZ + uint32_t sharedMemBytes + size_t paramCount + const void* const * pParams + size_t extraCount + const void* const * pExtras + + + VkStructureType sType + void* pNext + VkBool32 formatRgba10x6WithoutYCbCrSampler + + + VkStructureType sType + void* pNext + VkFormatFeatureFlags2 linearTilingFeatures + VkFormatFeatureFlags2 optimalTilingFeatures + VkFormatFeatureFlags2 bufferFeatures + + + + VkStructureType sType + void* pNext + uint32_t drmFormatModifierCount + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties + + + uint64_t drmFormatModifier + uint32_t drmFormatModifierPlaneCount + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures + + + VkStructureType sType + void* pNext + VkFormat format + uint64_t externalFormat + VkFormatFeatureFlags2 formatFeatures + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + const void* pNext + uint32_t viewMask + uint32_t colorAttachmentCount + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat + + + + VkStructureType sType + const void* pNext + VkRenderingFlags flags + VkRect2D renderArea + uint32_t layerCount + uint32_t viewMask + uint32_t colorAttachmentCount + const VkRenderingAttachmentInfo* pColorAttachments + const VkRenderingAttachmentInfo* pDepthAttachment + const VkRenderingAttachmentInfo* pStencilAttachment + + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + VkResolveModeFlagBits resolveMode + VkImageView resolveImageView + VkImageLayout resolveImageLayout + VkAttachmentLoadOp loadOp + VkAttachmentStoreOp storeOp + VkClearValue clearValue + + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + VkExtent2D shadingRateAttachmentTexelSize + + + VkStructureType sType + const void* pNext + VkImageView imageView + VkImageLayout imageLayout + + + VkStructureType sType + void* pNext + VkBool32 dynamicRendering + + + + VkStructureType sType + const void* pNext + VkRenderingFlags flags + uint32_t viewMask + uint32_t colorAttachmentCount + uint32_t colorAttachmentCount + const VkFormat* pColorAttachmentFormats + VkFormat depthAttachmentFormat + VkFormat stencilAttachmentFormat + VkSampleCountFlagBits rasterizationSamples + + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const VkSampleCountFlagBits* pColorAttachmentSamples + VkSampleCountFlagBits depthStencilAttachmentSamples + + + + VkStructureType sType + const void* pNext + VkBool32 perViewAttributes + VkBool32 perViewAttributesPositionXOnly + + + VkStructureType sType + void* pNext + VkBool32 minLod + + + VkStructureType sType + const void* pNext + float minLod + + + VkStructureType sType + void* pNext + VkBool32 rasterizationOrderColorAttachmentAccess + VkBool32 rasterizationOrderDepthAttachmentAccess + VkBool32 rasterizationOrderStencilAttachmentAccess + + + + VkStructureType sType + void* pNext + VkBool32 linearColorAttachment + + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibrary + + + VkStructureType sType + void* pNext + VkBool32 pipelineBinaries + + + VkStructureType sType + const void* pNext + VkBool32 disableInternalCache + + + VkStructureType sType + void* pNext + VkBool32 pipelineBinaryInternalCache + VkBool32 pipelineBinaryInternalCacheControl + VkBool32 pipelineBinaryPrefersInternalCache + VkBool32 pipelineBinaryPrecompiledInternalCache + VkBool32 pipelineBinaryCompressedData + + + VkStructureType sType + void* pNext + VkBool32 graphicsPipelineLibraryFastLinking + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration + + + VkStructureType sType + const void* pNext + VkGraphicsPipelineLibraryFlagsEXT flags + + + VkStructureType sType + void* pNext + VkBool32 descriptorSetHostMapping + + + VkStructureType sType + const void* pNext + VkDescriptorSetLayout descriptorSetLayout + uint32_t binding + + + VkStructureType sType + void* pNext + size_t descriptorOffset + uint32_t descriptorSize + + + VkStructureType sType + void* pNext + VkBool32 nestedCommandBuffer + VkBool32 nestedCommandBufferRendering + VkBool32 nestedCommandBufferSimultaneousUse + + + VkStructureType sType + void* pNext + uint32_t maxCommandBufferNestingLevel + + + VkStructureType sType + void* pNext + VkBool32 shaderModuleIdentifier + + + VkStructureType sType + void* pNext + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE] + + + VkStructureType sType + const void* pNext + uint32_t identifierSize + const uint8_t* pIdentifier + + + VkStructureType sType + void* pNext + uint32_t identifierSize + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT] + + + VkStructureType sType + const void* pNext + VkImageCompressionFlagsEXT flags + uint32_t compressionControlPlaneCount + VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags + + + VkStructureType sType + void* pNext + VkBool32 imageCompressionControl + + + VkStructureType sType + void* pNext + VkImageCompressionFlagsEXT imageCompressionFlags + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags + + + VkStructureType sType + void* pNext + VkBool32 imageCompressionControlSwapchain + + + VkStructureType sType + void* pNext + VkImageSubresource imageSubresource + + + + VkStructureType sType + void* pNext + VkSubresourceLayout subresourceLayout + + + + VkStructureType sType + const void* pNext + VkBool32 disallowMerging + + + uint32_t postMergeSubpassCount + + + VkStructureType sType + const void* pNext + VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback + + + VkSubpassMergeStatusEXT subpassMergeStatus + char description[VK_MAX_DESCRIPTION_SIZE] + uint32_t postMergeIndex + + + VkStructureType sType + const void* pNext + VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback + + + VkStructureType sType + void* pNext + VkBool32 subpassMergeFeedback + + + VkStructureType sType + const void* pNext + VkMicromapTypeEXT type + VkBuildMicromapFlagsEXT flags + VkBuildMicromapModeEXT mode + VkMicromapEXT dstMicromap + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + VkDeviceOrHostAddressConstKHR data + VkDeviceOrHostAddressKHR scratchData + VkDeviceOrHostAddressConstKHR triangleArray + VkDeviceSize triangleArrayStride + + + VkStructureType sType + const void* pNext + VkMicromapCreateFlagsEXT createFlags + VkBuffer buffer + VkDeviceSize offsetSpecified in bytes + VkDeviceSize size + VkMicromapTypeEXT type + VkDeviceAddress deviceAddress + + + VkStructureType sType + const void* pNext + const uint8_t* pVersionData + + + VkStructureType sType + const void* pNext + VkMicromapEXT src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkMicromapEXT src + VkDeviceOrHostAddressKHR dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode + + + VkStructureType sType + const void* pNext + VkDeviceSize micromapSize + VkDeviceSize buildScratchSize + VkBool32 discardable + + + uint32_t count + uint32_t subdivisionLevel + uint32_t formatInterpretation depends on parent type + + + uint32_t dataOffsetSpecified in bytes + uint16_t subdivisionLevel + uint16_t format + + + VkStructureType sType + void* pNext + VkBool32 micromap + VkBool32 micromapCaptureReplay + VkBool32 micromapHostCommands + + + VkStructureType sType + void* pNext + uint32_t maxOpacity2StateSubdivisionLevel + uint32_t maxOpacity4StateSubdivisionLevel + + + VkStructureType sType + void* pNext + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + uint32_t baseTriangle + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + VkMicromapEXT micromap + + + VkStructureType sType + void* pNext + VkBool32 displacementMicromap + + + VkStructureType sType + void* pNext + uint32_t maxDisplacementMicromapSubdivisionLevel + + + VkStructureType sType + void* pNext + + VkFormat displacementBiasAndScaleFormat + VkFormat displacementVectorFormat + + VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer + VkDeviceSize displacementBiasAndScaleStride + VkDeviceOrHostAddressConstKHR displacementVectorBuffer + VkDeviceSize displacementVectorStride + VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags + VkDeviceSize displacedMicromapPrimitiveFlagsStride + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + + uint32_t baseTriangle + + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + + VkMicromapEXT micromap + + + VkStructureType sType + void* pNext + uint8_t pipelineIdentifier[VK_UUID_SIZE] + + + VkStructureType sType + void* pNext + VkBool32 pipelinePropertiesIdentifier + + + VkStructureType sType + void* pNext + VkBool32 shaderEarlyAndLateFragmentTests + + + VkStructureType sType + const void* pNext + VkBool32 acquireUnmodifiedMemory + + + VkStructureType sType + const void* pNext + VkExportMetalObjectTypeFlagBitsEXT exportObjectType + + + VkStructureType sType + const void* pNext + + + VkStructureType sType + const void* pNext + MTLDevice_id mtlDevice + + + VkStructureType sType + const void* pNext + VkQueue queue + MTLCommandQueue_id mtlCommandQueue + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + MTLBuffer_id mtlBuffer + + + VkStructureType sType + const void* pNext + MTLBuffer_id mtlBuffer + + + VkStructureType sType + const void* pNext + VkImage image + VkImageView imageView + VkBufferView bufferView + VkImageAspectFlagBits plane + MTLTexture_id mtlTexture + + + VkStructureType sType + const void* pNext + VkImageAspectFlagBits plane + MTLTexture_id mtlTexture + + + VkStructureType sType + const void* pNext + VkImage image + IOSurfaceRef ioSurface + + + VkStructureType sType + const void* pNext + IOSurfaceRef ioSurface + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkEvent event + MTLSharedEvent_id mtlSharedEvent + + + VkStructureType sType + const void* pNext + MTLSharedEvent_id mtlSharedEvent + + + VkStructureType sType + void* pNext + VkBool32 nonSeamlessCubeMap + + + VkStructureType sType + void* pNext + VkBool32 pipelineRobustness + + + VkStructureType sType + const void* pNext + VkPipelineRobustnessBufferBehaviorEXT storageBuffers + VkPipelineRobustnessBufferBehaviorEXT uniformBuffers + VkPipelineRobustnessBufferBehaviorEXT vertexInputs + VkPipelineRobustnessImageBehaviorEXT images + + + VkStructureType sType + void* pNext + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs + VkPipelineRobustnessImageBehaviorEXT defaultRobustnessImages + + + VkStructureType sType + const void* pNext + VkOffset2D filterCenter + VkExtent2D filterSize + uint32_t numPhases + + + VkStructureType sType + void* pNext + VkBool32 textureSampleWeighted + VkBool32 textureBoxFilter + VkBool32 textureBlockMatch + + + VkStructureType sType + void* pNext + uint32_t maxWeightFilterPhases + VkExtent2D maxWeightFilterDimension + VkExtent2D maxBlockMatchRegion + VkExtent2D maxBoxFilterBlockSize + + + VkStructureType sType + void* pNext + VkBool32 tileProperties + + + VkStructureType sType + void* pNext + VkExtent3D tileSize + VkExtent2D apronSize + VkOffset2D origin + + + VkStructureType sType + void* pNext + VkBool32 amigoProfiling + + + VkStructureType sType + const void* pNext + uint64_t firstDrawTimestamp + uint64_t swapBufferTimestamp + + + VkStructureType sType + void* pNext + VkBool32 attachmentFeedbackLoopLayout + + + VkStructureType sType + void* pNext + VkBool32 depthClampZeroOne + + + VkStructureType sType + void* pNext + VkBool32 reportAddressBinding + + + VkStructureType sType + void* pNext + VkDeviceAddressBindingFlagsEXT flags + VkDeviceAddress baseAddress + VkDeviceSize size + VkDeviceAddressBindingTypeEXT bindingType + + + VkStructureType sType + void* pNext + VkBool32 opticalFlow + + + VkStructureType sType + void* pNext + VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes + VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes + VkBool32 hintSupported + VkBool32 costSupported + VkBool32 bidirectionalFlowSupported + VkBool32 globalFlowSupported + uint32_t minWidth + uint32_t minHeight + uint32_t maxWidth + uint32_t maxHeight + uint32_t maxNumRegionsOfInterest + + + VkStructureType sType + const void* pNext + VkOpticalFlowUsageFlagsNV usage + + + VkStructureType sType + const void* pNext + VkFormat format + + + VkStructureType sType + void* pNext + uint32_t width + uint32_t height + VkFormat imageFormat + VkFormat flowVectorFormat + VkFormat costFormat + VkOpticalFlowGridSizeFlagsNV outputGridSize + VkOpticalFlowGridSizeFlagsNV hintGridSize + VkOpticalFlowPerformanceLevelNV performanceLevel + VkOpticalFlowSessionCreateFlagsNV flags + + NV internal use only + VkStructureType sType + void* pNext + uint32_t id + uint32_t size + const void* pPrivateData + + + VkStructureType sType + void* pNext + VkOpticalFlowExecuteFlagsNV flags + uint32_t regionCount + const VkRect2D* pRegions + + + VkStructureType sType + void* pNext + VkBool32 deviceFault + VkBool32 deviceFaultVendorBinary + + + VkDeviceFaultAddressTypeEXT addressType + VkDeviceAddress reportedAddress + VkDeviceSize addressPrecision + + + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault + uint64_t vendorFaultCode + uint64_t vendorFaultData + + + VkStructureType sType + void* pNext + uint32_t addressInfoCount + uint32_t vendorInfoCount + VkDeviceSize vendorBinarySizeSpecified in bytes + + + VkStructureType sType + void* pNext + char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault + VkDeviceFaultAddressInfoEXT* pAddressInfos + VkDeviceFaultVendorInfoEXT* pVendorInfos + void* pVendorBinaryData + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint32_t headerSize + VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion + uint32_t vendorID + uint32_t deviceID + uint32_t driverVersion + uint8_t pipelineCacheUUID[VK_UUID_SIZE] + uint32_t applicationNameOffset + uint32_t applicationVersion + uint32_t engineNameOffset + uint32_t engineVersion + uint32_t apiVersion + + + VkStructureType sType + void* pNext + VkBool32 pipelineLibraryGroupHandles + + + VkStructureType sType + const void* pNext + float depthBiasConstantFactor + float depthBiasClamp + float depthBiasSlopeFactor + + + VkStructureType sType + const void* pNext + VkDepthBiasRepresentationEXT depthBiasRepresentation + VkBool32 depthBiasExact + + + VkDeviceAddress srcAddress + VkDeviceAddress dstAddress + VkDeviceSize compressedSizeSpecified in bytes + VkDeviceSize decompressedSizeSpecified in bytes + VkMemoryDecompressionMethodFlagsNV decompressionMethod + + + VkStructureType sType + void* pNext + uint64_t shaderCoreMask + uint32_t shaderCoreCount + uint32_t shaderWarpsPerCore + + + VkStructureType sType + void* pNext + VkBool32 shaderCoreBuiltins + + + VkStructureType sType + const void* pNext + VkFrameBoundaryFlagsEXT flags + uint64_t frameID + uint32_t imageCount + const VkImage* pImages + uint32_t bufferCount + const VkBuffer* pBuffers + uint64_t tagName + size_t tagSize + const void* pTag + + + VkStructureType sType + void* pNext + VkBool32 frameBoundary + + + VkStructureType sType + void* pNext + VkBool32 dynamicRenderingUnusedAttachments + + + VkStructureType sType + void* pNext + VkPresentModeKHR presentMode + + + VkStructureType sType + void* pNext + VkPresentScalingFlagsEXT supportedPresentScaling + VkPresentGravityFlagsEXT supportedPresentGravityX + VkPresentGravityFlagsEXT supportedPresentGravityY + VkExtent2D minScaledImageExtentSupported minimum image width and height for the surface when scaling is used + VkExtent2D maxScaledImageExtentSupported maximum image width and height for the surface when scaling is used + + + VkStructureType sType + void* pNext + uint32_t presentModeCount + VkPresentModeKHR* pPresentModesOutput list of present modes compatible with the one specified in VkSurfacePresentModeEXT + + + VkStructureType sType + void* pNext + VkBool32 swapchainMaintenance1 + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkFence* pFencesFence to signal for each swapchain + + + VkStructureType sType + const void* pNext + uint32_t presentModeCountLength of the pPresentModes array + const VkPresentModeKHR* pPresentModesPresentation modes which will be usable with this swapchain + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const VkPresentModeKHR* pPresentModesPresentation mode for each swapchain + + + VkStructureType sType + const void* pNext + VkPresentScalingFlagsEXT scalingBehavior + VkPresentGravityFlagsEXT presentGravityX + VkPresentGravityFlagsEXT presentGravityY + + + VkStructureType sType + const void* pNext + VkSwapchainKHR swapchainSwapchain for which images are being released + uint32_t imageIndexCountNumber of indices to release + const uint32_t* pImageIndicesIndices of which presentable images to release + + + VkStructureType sType + void* pNext + VkBool32 depthBiasControl + VkBool32 leastRepresentableValueForceUnormRepresentation + VkBool32 floatRepresentation + VkBool32 depthBiasExact + + + VkStructureType sType + void* pNext + VkBool32 rayTracingInvocationReorder + + + VkStructureType sType + void* pNext + VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint + + + VkStructureType sType + void* pNext + VkBool32 extendedSparseAddressSpace + + + VkStructureType sType + void* pNext + VkDeviceSize extendedSparseAddressSpaceSizeTotal address space available for extended sparse allocations (bytes) + VkImageUsageFlags extendedSparseImageUsageFlagsBitfield of which image usages are supported for extended sparse allocations + VkBufferUsageFlags extendedSparseBufferUsageFlagsBitfield of which buffer usages are supported for extended sparse allocations + + + VkStructureType sType + void* pNext + VkDirectDriverLoadingFlagsLUNARG flags + PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr + + + VkStructureType sType + const void* pNext + VkDirectDriverLoadingModeLUNARG mode + uint32_t driverCount + const VkDirectDriverLoadingInfoLUNARG* pDrivers + + + VkStructureType sType + void* pNext + VkBool32 multiviewPerViewViewports + + + VkStructureType sType + void* pNext + VkBool32 rayTracingPositionFetch + + + VkStructureType sType + const void* pNext + const VkImageCreateInfo* pCreateInfo + const VkImageSubresource2KHR* pSubresource + + + VkStructureType sType + void* pNext + uint32_t pixelRate + uint32_t texelRate + uint32_t fmaRate + + + VkStructureType sType + void* pNext + VkBool32 multiviewPerViewRenderAreas + + + VkStructureType sType + const void* pNext + uint32_t perViewRenderAreaCount + const VkRect2D* pPerViewRenderAreas + + + VkStructureType sType + const void* pNext + void* pQueriedLowLatencyData + + + VkStructureType sType + const void* pNext + VkMemoryMapFlags flags + VkDeviceMemory memory + VkDeviceSize offset + VkDeviceSize size + + + VkStructureType sType + const void* pNext + VkMemoryUnmapFlagsKHR flags + VkDeviceMemory memory + + + VkStructureType sType + void* pNext + VkBool32 shaderObject + + + VkStructureType sType + void* pNext + uint8_t shaderBinaryUUID[VK_UUID_SIZE] + uint32_t shaderBinaryVersion + + + VkStructureType sType + const void* pNext + VkShaderCreateFlagsEXT flags + VkShaderStageFlagBits stage + VkShaderStageFlags nextStage + VkShaderCodeTypeEXT codeType + size_t codeSize + const void* pCode + const char* pName + uint32_t setLayoutCount + const VkDescriptorSetLayout* pSetLayouts + uint32_t pushConstantRangeCount + const VkPushConstantRange* pPushConstantRanges + const VkSpecializationInfo* pSpecializationInfo + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageColorReadAccess + VkBool32 shaderTileImageDepthReadAccess + VkBool32 shaderTileImageStencilReadAccess + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageCoherentReadAccelerated + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation + VkBool32 shaderTileImageReadFromHelperInvocation + + + VkStructureType sType + const void* pNext + struct _screen_buffer* buffer + + + VkStructureType sType + void* pNext + VkDeviceSize allocationSize + uint32_t memoryTypeBits + + + VkStructureType sType + void* pNext + VkFormat format + uint64_t externalFormat + uint64_t screenUsage + VkFormatFeatureFlags formatFeatures + VkComponentMapping samplerYcbcrConversionComponents + VkSamplerYcbcrModelConversion suggestedYcbcrModel + VkSamplerYcbcrRange suggestedYcbcrRange + VkChromaLocation suggestedXChromaOffset + VkChromaLocation suggestedYChromaOffset + + + VkStructureType sType + void* pNext + uint64_t externalFormat + + + VkStructureType sType + void* pNext + VkBool32 screenBufferImport + + + VkStructureType sType + void* pNext + VkBool32 cooperativeMatrix + VkBool32 cooperativeMatrixRobustBufferAccess + + + VkStructureType sType + void* pNext + uint32_t MSize + uint32_t NSize + uint32_t KSize + VkComponentTypeKHR AType + VkComponentTypeKHR BType + VkComponentTypeKHR CType + VkComponentTypeKHR ResultType + VkBool32 saturatingAccumulation + VkScopeKHR scope + + + VkStructureType sType + void* pNext + VkShaderStageFlags cooperativeMatrixSupportedStages + + + VkStructureType sType + void* pNext + uint32_t maxExecutionGraphDepth + uint32_t maxExecutionGraphShaderOutputNodes + uint32_t maxExecutionGraphShaderPayloadSize + uint32_t maxExecutionGraphShaderPayloadCount + uint32_t executionGraphDispatchAddressAlignment + + + VkStructureType sType + void* pNext + VkBool32 shaderEnqueue + + + VkStructureType sType + const void* pNext + VkPipelineCreateFlags flags + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStages + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo + VkPipelineLayout layout + VkPipeline basePipelineHandle + int32_t basePipelineIndex + + + VkStructureType sType + const void* pNext + const char* pName + uint32_t index + + + VkStructureType sType + void* pNext + VkDeviceSize size + + + uint32_t nodeIndex + uint32_t payloadCount + VkDeviceOrHostAddressConstAMDX payloads + uint64_t payloadStride + + + uint32_t count + VkDeviceOrHostAddressConstAMDX infos + uint64_t stride + + + VkStructureType sType + void* pNext + VkBool32 antiLag + + + VkStructureType sType + const void* pNext + VkAntiLagModeAMD mode + uint32_t maxFPS + const VkAntiLagPresentationInfoAMD* pPresentationInfo + + + VkStructureType sType + void* pNext + VkAntiLagStageAMD stage + uint64_t frameIndex + + + VkStructureType sType + const void* pNext + VkResult* pResult + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t firstSet + uint32_t descriptorSetCount + const VkDescriptorSet* pDescriptorSets + uint32_t dynamicOffsetCount + const uint32_t* pDynamicOffsets + + + VkStructureType sType + const void* pNext + VkPipelineLayout layout + VkShaderStageFlags stageFlags + uint32_t offset + uint32_t size + const void* pValues + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t set + uint32_t descriptorWriteCount + const VkWriteDescriptorSet* pDescriptorWrites + + + VkStructureType sType + const void* pNext + VkDescriptorUpdateTemplate descriptorUpdateTemplate + VkPipelineLayout layout + uint32_t set + const void* pData + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t firstSet + uint32_t setCount + const uint32_t* pBufferIndices + const VkDeviceSize* pOffsets + + + VkStructureType sType + const void* pNext + VkShaderStageFlags stageFlags + VkPipelineLayout layout + uint32_t set + + + VkStructureType sType + void* pNext + VkBool32 cubicRangeClamp + + + VkStructureType sType + void* pNext + VkBool32 ycbcrDegamma + + + VkStructureType sType + void* pNext + VkBool32 enableYDegamma + VkBool32 enableCbCrDegamma + + + VkStructureType sType + void* pNext + VkBool32 selectableCubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + const void* pNext + VkCubicFilterWeightsQCOM cubicWeights + + + VkStructureType sType + void* pNext + VkBool32 textureBlockMatch2 + + + VkStructureType sType + void* pNext + VkExtent2D maxBlockMatchWindow + + + VkStructureType sType + const void* pNext + VkExtent2D windowExtent + VkBlockMatchWindowCompareModeQCOM windowCompareMode + + + VkStructureType sType + void* pNext + VkBool32 descriptorPoolOverallocation + + + VkStructureType sType + void* pNext + VkLayeredDriverUnderlyingApiMSFT underlyingAPI + + + VkStructureType sType + void* pNext + VkBool32 perStageDescriptorSet + VkBool32 dynamicPipelineLayout + + + VkStructureType sType + void* pNext + VkBool32 externalFormatResolve + + + VkStructureType sType + void* pNext + VkBool32 nullColorAttachmentWithExternalFormatResolve + VkChromaLocation externalFormatResolveChromaOffsetX + VkChromaLocation externalFormatResolveChromaOffsetY + + + VkStructureType sType + void* pNext + VkFormat colorAttachmentFormat + + + VkStructureType sType + const void* pNext + VkBool32 lowLatencyMode + VkBool32 lowLatencyBoost + uint32_t minimumIntervalUs + + + VkStructureType sType + const void* pNext + VkSemaphore signalSemaphore + uint64_t value + + + VkStructureType sType + const void* pNext + uint64_t presentID + VkLatencyMarkerNV marker + + + VkStructureType sType + const void* pNext + uint32_t timingCount + VkLatencyTimingsFrameReportNV* pTimings + + + VkStructureType sType + const void* pNext + uint64_t presentID + uint64_t inputSampleTimeUs + uint64_t simStartTimeUs + uint64_t simEndTimeUs + uint64_t renderSubmitStartTimeUs + uint64_t renderSubmitEndTimeUs + uint64_t presentStartTimeUs + uint64_t presentEndTimeUs + uint64_t driverStartTimeUs + uint64_t driverEndTimeUs + uint64_t osRenderQueueStartTimeUs + uint64_t osRenderQueueEndTimeUs + uint64_t gpuRenderStartTimeUs + uint64_t gpuRenderEndTimeUs + + + VkStructureType sType + const void* pNext + VkOutOfBandQueueTypeNV queueType + + + VkStructureType sType + const void* pNext + uint64_t presentID + + + VkStructureType sType + const void* pNext + VkBool32 latencyModeEnable + + + VkStructureType sType + const void* pNext + uint32_t presentModeCount + VkPresentModeKHR* pPresentModes + + + VkStructureType sType + void* pNext + VkBool32 cudaKernelLaunchFeatures + + + VkStructureType sType + void* pNext + uint32_t computeCapabilityMinor + uint32_t computeCapabilityMajor + + + VkStructureType sType + void* pNext + uint32_t shaderCoreCount + + + VkStructureType sType + void* pNext + VkBool32 schedulingControls + + + VkStructureType sType + void* pNext + VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags + + + VkStructureType sType + void* pNext + VkBool32 relaxedLineRasterization + + + VkStructureType sType + void* pNext + VkBool32 renderPassStriped + + + VkStructureType sType + void* pNext + VkExtent2D renderPassStripeGranularity + uint32_t maxRenderPassStripes + + + VkStructureType sType + const void* pNext + VkRect2D stripeArea + + + VkStructureType sType + const void* pNext + uint32_t stripeInfoCount + const VkRenderPassStripeInfoARM* pStripeInfos + + + VkStructureType sType + const void* pNext + uint32_t stripeSemaphoreInfoCount + const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos + + + VkStructureType sType + void* pNext + VkBool32 shaderMaximalReconvergence + + + VkStructureType sType + void* pNext + VkBool32 shaderSubgroupRotate + VkBool32 shaderSubgroupRotateClustered + + + VkStructureType sType + void* pNext + VkBool32 shaderExpectAssume + + + VkStructureType sType + void* pNext + VkBool32 shaderFloatControls2 + + + VkStructureType sType + void* pNext + VkBool32 dynamicRenderingLocalRead + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const uint32_t* pColorAttachmentLocations + + + VkStructureType sType + const void* pNext + uint32_t colorAttachmentCount + const uint32_t* pColorAttachmentInputIndices + const uint32_t* pDepthInputAttachmentIndex + const uint32_t* pStencilInputAttachmentIndex + + + VkStructureType sType + void* pNext + VkBool32 shaderQuadControl + + + VkStructureType sType + void* pNext + VkBool32 shaderFloat16VectorAtomics + + + VkStructureType sType + void* pNext + VkBool32 memoryMapPlaced + VkBool32 memoryMapRangePlaced + VkBool32 memoryUnmapReserve + + + VkStructureType sType + void* pNext + VkDeviceSize minPlacedMemoryMapAlignment + + + VkStructureType sType + const void* pNext + void* pPlacedAddress + + + VkStructureType sType + void* pNext + VkBool32 shaderRawAccessChains + + + VkStructureType sType + void* pNext + VkBool32 commandBufferInheritance + + + VkStructureType sType + void* pNext + VkBool32 imageAlignmentControl + + + VkStructureType sType + void* pNext + uint32_t supportedImageAlignmentMask + + + VkStructureType sType + const void* pNext + uint32_t maximumRequestedAlignment + + + VkStructureType sType + void* pNext + VkBool32 shaderReplicatedComposites + + + float minDepthClamp + float maxDepthClamp + + Vulkan enumerant (token) definitions - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3380,6 +9550,8 @@ server. + + @@ -3435,12 +9607,6 @@ server. - - - - - - @@ -3775,7 +9941,7 @@ server. Error codes (negative values) - + @@ -3785,7 +9951,8 @@ server. - + + @@ -3801,33 +9968,50 @@ server. - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags @@ -3837,7 +10021,16 @@ server. - + + + + + + + + + + @@ -3878,10 +10071,21 @@ server. + + + + + + + + + + + - + @@ -3906,15 +10110,26 @@ server. - + + + + + + + + + + + + @@ -3924,6 +10139,8 @@ server. + + @@ -3966,6 +10183,8 @@ server. + + @@ -4024,7 +10243,8 @@ server. - + + @@ -4032,6 +10252,13 @@ server. + + + + + + + WSI Extensions @@ -4042,7 +10269,7 @@ server. - + @@ -4067,6 +10294,15 @@ server. + + + + + + + + + @@ -4104,13 +10340,22 @@ server. - + - - + NVX_device_generated_commands formerly used these enum values, but that extension has been removed + value 31 / name VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT + value 32 / name VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT + - + + + + + + + + @@ -4130,7 +10375,33 @@ server. - Placeholder for validation enums to be defined for VK_EXT_Validation_flags extension + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4142,32 +10413,25 @@ server. - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -4190,6 +10454,7 @@ server. + @@ -4213,7 +10478,8 @@ server. - + + @@ -4263,10 +10529,10 @@ server. - - - - + + + + @@ -4298,6 +10564,10 @@ server. + + + + @@ -4306,11 +10576,15 @@ server. - - - - - + + + + + + + + + @@ -4328,36 +10602,1021 @@ server. - - - - - + + + + + Vendor IDs are now represented as enums instead of the old <vendorids> tag, allowing them to be included in the API headers. + - + + + + + + + + Driver IDs are now represented as enums instead of the old + <driverids> tag, allowing them to be included in the + API headers. + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - VkResult vkCreateInstance - const VkInstanceCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bitpos 17-31 are specified by extensions to the original VkPipelineStageFlagBits enum + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkResult vkCreateInstance + const VkInstanceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator VkInstance* pInstance void vkDestroyInstance VkInstance instance const VkAllocationCallbacks* pAllocator + + all sname:VkPhysicalDevice objects enumerated from pname:instance + VkResult vkEnumeratePhysicalDevices @@ -4412,7 +11671,14 @@ server. VkImageCreateFlags flags VkImageFormatProperties* pImageFormatProperties - + + VkResult vkCreateDevice + VkPhysicalDevice physicalDevice + const VkDeviceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDevice* pDevice + + VkResult vkCreateDevice VkPhysicalDevice physicalDevice const VkDeviceCreateInfo* pCreateInfo @@ -4423,8 +11689,11 @@ server. void vkDestroyDevice VkDevice device const VkAllocationCallbacks* pAllocator + + all sname:VkQueue objects created from pname:device + - + VkResult vkEnumerateInstanceVersion uint32_t* pApiVersion @@ -4439,12 +11708,19 @@ server. uint32_t* pPropertyCount VkExtensionProperties* pProperties - + + VkResult vkEnumerateDeviceLayerProperties + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkLayerProperties* pProperties + + VkResult vkEnumerateDeviceLayerProperties VkPhysicalDevice physicalDevice uint32_t* pPropertyCount VkLayerProperties* pProperties + VkResult vkEnumerateDeviceExtensionProperties VkPhysicalDevice physicalDevice @@ -4463,12 +11739,12 @@ server. VkResult vkQueueSubmit VkQueue queue uint32_t submitCount - const VkSubmitInfo* pSubmits + const VkSubmitInfo* pSubmits VkFence fence VkResult vkQueueWaitIdle - VkQueue queue + VkQueue queue VkResult vkDeviceWaitIdle @@ -4477,7 +11753,7 @@ server. all sname:VkQueue objects created from pname:device - + VkResult vkAllocateMemory VkDevice device const VkMemoryAllocateInfo* pAllocateInfo @@ -4528,7 +11804,7 @@ server. VkBuffer buffer VkMemoryRequirements* pMemoryRequirements - + VkResult vkBindBufferMemory VkDevice device VkBuffer buffer @@ -4570,7 +11846,7 @@ server. VkResult vkQueueBindSparse VkQueue queue uint32_t bindInfoCount - const VkBindSparseInfo* pBindInfo + const VkBindSparseInfo* pBindInfo VkFence fence @@ -4586,7 +11862,7 @@ server. VkFence fence const VkAllocationCallbacks* pAllocator - + VkResult vkResetFences VkDevice device uint32_t fenceCount @@ -4641,7 +11917,7 @@ server. VkDevice device VkEvent event - + VkResult vkResetEvent VkDevice device VkEvent event @@ -4670,7 +11946,15 @@ server. VkDeviceSize stride VkQueryResultFlags flags - + + void vkResetQueryPool + VkDevice device + VkQueryPool queryPool + uint32_t firstQuery + uint32_t queryCount + + + VkResult vkCreateBuffer VkDevice device const VkBufferCreateInfo* pCreateInfo @@ -4696,7 +11980,7 @@ server. VkBufferView bufferView const VkAllocationCallbacks* pAllocator - + VkResult vkCreateImage VkDevice device const VkImageCreateInfo* pCreateInfo @@ -4716,7 +12000,7 @@ server. const VkImageSubresource* pSubresource VkSubresourceLayout* pLayout - + VkResult vkCreateImageView VkDevice device const VkImageViewCreateInfo* pCreateInfo @@ -4742,7 +12026,14 @@ server. VkShaderModule shaderModule const VkAllocationCallbacks* pAllocator - + + VkResult vkCreatePipelineCache + VkDevice device + const VkPipelineCacheCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineCache* pPipelineCache + + VkResult vkCreatePipelineCache VkDevice device const VkPipelineCacheCreateInfo* pCreateInfo @@ -4769,7 +12060,40 @@ server. uint32_t srcCacheCount const VkPipelineCache* pSrcCaches - + + VkResult vkCreatePipelineBinariesKHR + VkDevice device + const VkPipelineBinaryCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineBinaryHandlesInfoKHR* pBinaries + + + void vkDestroyPipelineBinaryKHR + VkDevice device + VkPipelineBinaryKHR pipelineBinary + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetPipelineKeyKHR + VkDevice device + const VkPipelineCreateInfoKHR* pPipelineCreateInfo + VkPipelineBinaryKeyKHR* pPipelineKey + + + VkResult vkGetPipelineBinaryDataKHR + VkDevice device + const VkPipelineBinaryDataInfoKHR* pInfo + VkPipelineBinaryKeyKHR* pPipelineBinaryKey + size_t* pPipelineBinaryDataSize + void* pPipelineBinaryData + + + VkResult vkReleaseCapturedPipelineDataKHR + VkDevice device + const VkReleaseCapturedPipelineDataInfoKHR* pInfo + const VkAllocationCallbacks* pAllocator + + VkResult vkCreateGraphicsPipelines VkDevice device VkPipelineCache pipelineCache @@ -4778,7 +12102,16 @@ server. const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + + VkResult vkCreateGraphicsPipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkGraphicsPipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + VkResult vkCreateComputePipelines VkDevice device VkPipelineCache pipelineCache @@ -4787,6 +12120,21 @@ server. const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines + + VkResult vkCreateComputePipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkComputePipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI + VkDevice device + VkRenderPass renderpass + VkExtent2D* pMaxWorkgroupSize + void vkDestroyPipeline VkDevice device @@ -4806,7 +12154,7 @@ server. VkPipelineLayout pipelineLayout const VkAllocationCallbacks* pAllocator - + VkResult vkCreateSampler VkDevice device const VkSamplerCreateInfo* pCreateInfo @@ -4845,7 +12193,7 @@ server. VkDescriptorPool descriptorPool const VkAllocationCallbacks* pAllocator - + VkResult vkResetDescriptorPool VkDevice device VkDescriptorPool descriptorPool @@ -4857,10 +12205,10 @@ server. VkResult vkAllocateDescriptorSets VkDevice device - const VkDescriptorSetAllocateInfo* pAllocateInfo - VkDescriptorSet* pDescriptorSets + const VkDescriptorSetAllocateInfo* pAllocateInfo + VkDescriptorSet* pDescriptorSets - + VkResult vkFreeDescriptorSets VkDevice device VkDescriptorPool descriptorPool @@ -4871,9 +12219,9 @@ server. void vkUpdateDescriptorSets VkDevice device uint32_t descriptorWriteCount - const VkWriteDescriptorSet* pDescriptorWrites + const VkWriteDescriptorSet* pDescriptorWrites uint32_t descriptorCopyCount - const VkCopyDescriptorSet* pDescriptorCopies + const VkCopyDescriptorSet* pDescriptorCopies VkResult vkCreateFramebuffer @@ -4907,6 +12255,12 @@ server. VkRenderPass renderPass VkExtent2D* pGranularity + + void vkGetRenderingAreaGranularityKHR + VkDevice device + const VkRenderingAreaInfoKHR* pRenderingAreaInfo + VkExtent2D* pGranularity + VkResult vkCreateCommandPool VkDevice device @@ -4920,7 +12274,7 @@ server. VkCommandPool commandPool const VkAllocationCallbacks* pAllocator - + VkResult vkResetCommandPool VkDevice device VkCommandPool commandPool @@ -4929,8 +12283,8 @@ server. VkResult vkAllocateCommandBuffers VkDevice device - const VkCommandBufferAllocateInfo* pAllocateInfo - VkCommandBuffer* pCommandBuffers + const VkCommandBufferAllocateInfo* pAllocateInfo + VkCommandBuffer* pCommandBuffers void vkFreeCommandBuffers @@ -4947,106 +12301,114 @@ server. the sname:VkCommandPool that pname:commandBuffer was allocated from - + VkResult vkEndCommandBuffer VkCommandBuffer commandBuffer the sname:VkCommandPool that pname:commandBuffer was allocated from - + VkResult vkResetCommandBuffer VkCommandBuffer commandBuffer VkCommandBufferResetFlags flags + + the sname:VkCommandPool that pname:commandBuffer was allocated from + - + void vkCmdBindPipeline VkCommandBuffer commandBuffer VkPipelineBindPoint pipelineBindPoint VkPipeline pipeline - + + void vkCmdSetAttachmentFeedbackLoopEnableEXT + VkCommandBuffer commandBuffer + VkImageAspectFlags aspectMask + + void vkCmdSetViewport VkCommandBuffer commandBuffer uint32_t firstViewport uint32_t viewportCount const VkViewport* pViewports - + void vkCmdSetScissor VkCommandBuffer commandBuffer uint32_t firstScissor uint32_t scissorCount const VkRect2D* pScissors - + void vkCmdSetLineWidth VkCommandBuffer commandBuffer float lineWidth - + void vkCmdSetDepthBias VkCommandBuffer commandBuffer float depthBiasConstantFactor float depthBiasClamp float depthBiasSlopeFactor - + void vkCmdSetBlendConstants VkCommandBuffer commandBuffer const float blendConstants[4] - + void vkCmdSetDepthBounds VkCommandBuffer commandBuffer float minDepthBounds float maxDepthBounds - + void vkCmdSetStencilCompareMask VkCommandBuffer commandBuffer VkStencilFaceFlags faceMask uint32_t compareMask - + void vkCmdSetStencilWriteMask VkCommandBuffer commandBuffer VkStencilFaceFlags faceMask uint32_t writeMask - + void vkCmdSetStencilReference VkCommandBuffer commandBuffer VkStencilFaceFlags faceMask uint32_t reference - + void vkCmdBindDescriptorSets VkCommandBuffer commandBuffer VkPipelineBindPoint pipelineBindPoint VkPipelineLayout layout uint32_t firstSet uint32_t descriptorSetCount - const VkDescriptorSet* pDescriptorSets + const VkDescriptorSet* pDescriptorSets uint32_t dynamicOffsetCount const uint32_t* pDynamicOffsets - + void vkCmdBindIndexBuffer VkCommandBuffer commandBuffer - VkBuffer buffer + VkBuffer buffer VkDeviceSize offset VkIndexType indexType - + void vkCmdBindVertexBuffers VkCommandBuffer commandBuffer uint32_t firstBinding uint32_t bindingCount - const VkBuffer* pBuffers + const VkBuffer* pBuffers const VkDeviceSize* pOffsets - + void vkCmdDraw VkCommandBuffer commandBuffer uint32_t vertexCount @@ -5054,7 +12416,7 @@ server. uint32_t firstVertex uint32_t firstInstance - + void vkCmdDrawIndexed VkCommandBuffer commandBuffer uint32_t indexCount @@ -5063,7 +12425,26 @@ server. int32_t vertexOffset uint32_t firstInstance - + + void vkCmdDrawMultiEXT + VkCommandBuffer commandBuffer + uint32_t drawCount + const VkMultiDrawInfoEXT* pVertexInfo + uint32_t instanceCount + uint32_t firstInstance + uint32_t stride + + + void vkCmdDrawMultiIndexedEXT + VkCommandBuffer commandBuffer + uint32_t drawCount + const VkMultiDrawIndexedInfoEXT* pIndexInfo + uint32_t instanceCount + uint32_t firstInstance + uint32_t stride + const int32_t* pVertexOffset + + void vkCmdDrawIndirect VkCommandBuffer commandBuffer VkBuffer buffer @@ -5071,7 +12452,7 @@ server. uint32_t drawCount uint32_t stride - + void vkCmdDrawIndexedIndirect VkCommandBuffer commandBuffer VkBuffer buffer @@ -5079,28 +12460,51 @@ server. uint32_t drawCount uint32_t stride - + void vkCmdDispatch VkCommandBuffer commandBuffer uint32_t groupCountX uint32_t groupCountY uint32_t groupCountZ - + void vkCmdDispatchIndirect VkCommandBuffer commandBuffer VkBuffer buffer VkDeviceSize offset - - void vkCmdCopyBuffer + + void vkCmdSubpassShadingHUAWEI VkCommandBuffer commandBuffer - VkBuffer srcBuffer - VkBuffer dstBuffer - uint32_t regionCount - const VkBufferCopy* pRegions - + + void vkCmdDrawClusterHUAWEI + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDrawClusterIndirectHUAWEI + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + + + void vkCmdUpdatePipelineIndirectBufferNV + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + + + void vkCmdCopyBuffer + VkCommandBuffer commandBuffer + VkBuffer srcBuffer + VkBuffer dstBuffer + uint32_t regionCount + const VkBufferCopy* pRegions + + void vkCmdCopyImage VkCommandBuffer commandBuffer VkImage srcImage @@ -5110,7 +12514,7 @@ server. uint32_t regionCount const VkImageCopy* pRegions - + void vkCmdBlitImage VkCommandBuffer commandBuffer VkImage srcImage @@ -5121,7 +12525,7 @@ server. const VkImageBlit* pRegions VkFilter filter - + void vkCmdCopyBufferToImage VkCommandBuffer commandBuffer VkBuffer srcBuffer @@ -5130,7 +12534,7 @@ server. uint32_t regionCount const VkBufferImageCopy* pRegions - + void vkCmdCopyImageToBuffer VkCommandBuffer commandBuffer VkImage srcImage @@ -5139,7 +12543,24 @@ server. uint32_t regionCount const VkBufferImageCopy* pRegions - + + void vkCmdCopyMemoryIndirectNV + VkCommandBuffer commandBuffer + VkDeviceAddress copyBufferAddress + uint32_t copyCount + uint32_t stride + + + void vkCmdCopyMemoryToImageIndirectNV + VkCommandBuffer commandBuffer + VkDeviceAddress copyBufferAddress + uint32_t copyCount + uint32_t stride + VkImage dstImage + VkImageLayout dstImageLayout + const VkImageSubresourceLayers* pImageSubresources + + void vkCmdUpdateBuffer VkCommandBuffer commandBuffer VkBuffer dstBuffer @@ -5147,7 +12568,7 @@ server. VkDeviceSize dataSize const void* pData - + void vkCmdFillBuffer VkCommandBuffer commandBuffer VkBuffer dstBuffer @@ -5155,16 +12576,16 @@ server. VkDeviceSize size uint32_t data - + void vkCmdClearColorImage VkCommandBuffer commandBuffer VkImage image VkImageLayout imageLayout - const VkClearColorValue* pColor + const VkClearColorValue* pColor uint32_t rangeCount const VkImageSubresourceRange* pRanges - + void vkCmdClearDepthStencilImage VkCommandBuffer commandBuffer VkImage image @@ -5173,7 +12594,7 @@ server. uint32_t rangeCount const VkImageSubresourceRange* pRanges - + void vkCmdClearAttachments VkCommandBuffer commandBuffer uint32_t attachmentCount @@ -5181,7 +12602,7 @@ server. uint32_t rectCount const VkClearRect* pRects - + void vkCmdResolveImage VkCommandBuffer commandBuffer VkImage srcImage @@ -5191,25 +12612,25 @@ server. uint32_t regionCount const VkImageResolve* pRegions - + void vkCmdSetEvent VkCommandBuffer commandBuffer VkEvent event - VkPipelineStageFlags stageMask + VkPipelineStageFlags stageMask - + void vkCmdResetEvent VkCommandBuffer commandBuffer VkEvent event - VkPipelineStageFlags stageMask + VkPipelineStageFlags stageMask - + void vkCmdWaitEvents VkCommandBuffer commandBuffer uint32_t eventCount const VkEvent* pEvents - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask uint32_t memoryBarrierCount const VkMemoryBarrier* pMemoryBarriers uint32_t bufferMemoryBarrierCount @@ -5217,11 +12638,11 @@ server. uint32_t imageMemoryBarrierCount const VkImageMemoryBarrier* pImageMemoryBarriers - + void vkCmdPipelineBarrier VkCommandBuffer commandBuffer - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask + VkPipelineStageFlags srcStageMask + VkPipelineStageFlags dstStageMask VkDependencyFlags dependencyFlags uint32_t memoryBarrierCount const VkMemoryBarrier* pMemoryBarriers @@ -5230,43 +12651,43 @@ server. uint32_t imageMemoryBarrierCount const VkImageMemoryBarrier* pImageMemoryBarriers - + void vkCmdBeginQuery VkCommandBuffer commandBuffer VkQueryPool queryPool uint32_t query VkQueryControlFlags flags - + void vkCmdEndQuery VkCommandBuffer commandBuffer VkQueryPool queryPool uint32_t query - + void vkCmdBeginConditionalRenderingEXT VkCommandBuffer commandBuffer const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin - + void vkCmdEndConditionalRenderingEXT VkCommandBuffer commandBuffer - + void vkCmdResetQueryPool VkCommandBuffer commandBuffer VkQueryPool queryPool uint32_t firstQuery uint32_t queryCount - + void vkCmdWriteTimestamp VkCommandBuffer commandBuffer VkPipelineStageFlagBits pipelineStage VkQueryPool queryPool uint32_t query - + void vkCmdCopyQueryPoolResults VkCommandBuffer commandBuffer VkQueryPool queryPool @@ -5277,7 +12698,7 @@ server. VkDeviceSize stride VkQueryResultFlags flags - + void vkCmdPushConstants VkCommandBuffer commandBuffer VkPipelineLayout layout @@ -5286,22 +12707,22 @@ server. uint32_t size const void* pValues - + void vkCmdBeginRenderPass VkCommandBuffer commandBuffer const VkRenderPassBeginInfo* pRenderPassBegin VkSubpassContents contents - + void vkCmdNextSubpass VkCommandBuffer commandBuffer VkSubpassContents contents - + void vkCmdEndRenderPass VkCommandBuffer commandBuffer - + void vkCmdExecuteCommands VkCommandBuffer commandBuffer uint32_t commandBufferCount @@ -5366,23 +12787,11 @@ server. VkResult vkCreateSharedSwapchainsKHR VkDevice device uint32_t swapchainCount - const VkSwapchainCreateInfoKHR* pCreateInfos + const VkSwapchainCreateInfoKHR* pCreateInfos + const VkSwapchainCreateInfoKHR* pCreateInfos const VkAllocationCallbacks* pAllocator VkSwapchainKHR* pSwapchains - - VkResult vkCreateMirSurfaceKHR - VkInstance instance - const VkMirSurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - MirConnection* connection - void vkDestroySurfaceKHR VkInstance instance @@ -5405,21 +12814,22 @@ server. VkResult vkGetPhysicalDeviceSurfaceFormatsKHR VkPhysicalDevice physicalDevice - VkSurfaceKHR surface + VkSurfaceKHR surface uint32_t* pSurfaceFormatCount VkSurfaceFormatKHR* pSurfaceFormats VkResult vkGetPhysicalDeviceSurfacePresentModesKHR VkPhysicalDevice physicalDevice - VkSurfaceKHR surface + VkSurfaceKHR surface uint32_t* pPresentModeCount VkPresentModeKHR* pPresentModes - + VkResult vkCreateSwapchainKHR VkDevice device - const VkSwapchainCreateInfoKHR* pCreateInfo + const VkSwapchainCreateInfoKHR* pCreateInfo + const VkSwapchainCreateInfoKHR* pCreateInfo const VkAllocationCallbacks* pAllocator VkSwapchainKHR* pSwapchain @@ -5436,7 +12846,7 @@ server. uint32_t* pSwapchainImageCount VkImage* pSwapchainImages - + VkResult vkAcquireNextImageKHR VkDevice device VkSwapchainKHR swapchain @@ -5445,10 +12855,10 @@ server. VkFence fence uint32_t* pImageIndex - + VkResult vkQueuePresentKHR VkQueue queue - const VkPresentInfoKHR* pPresentInfo + const VkPresentInfoKHR* pPresentInfo VkResult vkCreateViSurfaceNN @@ -5510,6 +12920,46 @@ server. xcb_connection_t* connection xcb_visualid_t visual_id + + VkResult vkCreateDirectFBSurfaceEXT + VkInstance instance + const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + IDirectFB* dfb + + + VkResult vkCreateImagePipeSurfaceFUCHSIA + VkInstance instance + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateStreamDescriptorSurfaceGGP + VkInstance instance + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkCreateScreenSurfaceQNX + VkInstance instance + const VkScreenSurfaceCreateInfoQNX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + struct _screen_window* window + VkResult vkCreateDebugReportCallbackEXT VkInstance instance @@ -5520,7 +12970,7 @@ server. void vkDestroyDebugReportCallbackEXT VkInstance instance - VkDebugReportCallbackEXT callback + VkDebugReportCallbackEXT callback const VkAllocationCallbacks* pAllocator @@ -5528,7 +12978,7 @@ server. VkInstance instance VkDebugReportFlagsEXT flags VkDebugReportObjectTypeEXT objectType - uint64_t object + uint64_t object size_t location int32_t messageCode const char* pLayerPrefix @@ -5537,25 +12987,25 @@ server. VkResult vkDebugMarkerSetObjectNameEXT VkDevice device - const VkDebugMarkerObjectNameInfoEXT* pNameInfo + const VkDebugMarkerObjectNameInfoEXT* pNameInfo VkResult vkDebugMarkerSetObjectTagEXT VkDevice device - const VkDebugMarkerObjectTagInfoEXT* pTagInfo + const VkDebugMarkerObjectTagInfoEXT* pTagInfo - + void vkCmdDebugMarkerBeginEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkDebugMarkerMarkerInfoEXT* pMarkerInfo - + void vkCmdDebugMarkerEndEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer - + void vkCmdDebugMarkerInsertEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkDebugMarkerMarkerInfoEXT* pMarkerInfo @@ -5576,84 +13026,103 @@ server. VkExternalMemoryHandleTypeFlagsNV handleType HANDLE* pHandle - - void vkCmdDrawIndirectCountAMD + + void vkCmdExecuteGeneratedCommandsNV VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkBuffer countBuffer - VkDeviceSize countBufferOffset - uint32_t maxDrawCount - uint32_t stride + VkBool32 isPreprocessed + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - void vkCmdDrawIndexedIndirectCountAMD + + void vkCmdPreprocessGeneratedCommandsNV VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkBuffer countBuffer - VkDeviceSize countBufferOffset - uint32_t maxDrawCount - uint32_t stride + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - void vkCmdProcessCommandsNVX + + void vkCmdBindPipelineShaderGroupNV VkCommandBuffer commandBuffer - const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo + VkPipelineBindPoint pipelineBindPoint + VkPipeline pipeline + uint32_t groupIndex - - void vkCmdReserveSpaceForCommandsNVX - VkCommandBuffer commandBuffer - const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo + + void vkGetGeneratedCommandsMemoryRequirementsNV + VkDevice device + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo + VkMemoryRequirements2* pMemoryRequirements - VkResult vkCreateIndirectCommandsLayoutNVX + VkResult vkCreateIndirectCommandsLayoutNV VkDevice device - const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo const VkAllocationCallbacks* pAllocator - VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout - void vkDestroyIndirectCommandsLayoutNVX + void vkDestroyIndirectCommandsLayoutNV VkDevice device - VkIndirectCommandsLayoutNVX indirectCommandsLayout + VkIndirectCommandsLayoutNV indirectCommandsLayout const VkAllocationCallbacks* pAllocator + + + void vkCmdExecuteGeneratedCommandsEXT + VkCommandBuffer commandBuffer + VkBool32 isPreprocessed + const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo + + + void vkCmdPreprocessGeneratedCommandsEXT + VkCommandBuffer commandBuffer + const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo + VkCommandBuffer stateCommandBuffer + + + void vkGetGeneratedCommandsMemoryRequirementsEXT + VkDevice device + const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo + VkMemoryRequirements2* pMemoryRequirements + - VkResult vkCreateObjectTableNVX + VkResult vkCreateIndirectCommandsLayoutEXT VkDevice device - const VkObjectTableCreateInfoNVX* pCreateInfo + const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo const VkAllocationCallbacks* pAllocator - VkObjectTableNVX* pObjectTable + VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout - void vkDestroyObjectTableNVX + void vkDestroyIndirectCommandsLayoutEXT VkDevice device - VkObjectTableNVX objectTable + VkIndirectCommandsLayoutEXT indirectCommandsLayout const VkAllocationCallbacks* pAllocator - VkResult vkRegisterObjectsNVX + VkResult vkCreateIndirectExecutionSetEXT VkDevice device - VkObjectTableNVX objectTable - uint32_t objectCount - const VkObjectTableEntryNVX* const* ppObjectTableEntries - const uint32_t* pObjectIndices + const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkIndirectExecutionSetEXT* pIndirectExecutionSet - - VkResult vkUnregisterObjectsNVX + + void vkDestroyIndirectExecutionSetEXT VkDevice device - VkObjectTableNVX objectTable - uint32_t objectCount - const VkObjectEntryTypeNVX* pObjectEntryTypes - const uint32_t* pObjectIndices + VkIndirectExecutionSetEXT indirectExecutionSet + const VkAllocationCallbacks* pAllocator - void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX - VkPhysicalDevice physicalDevice - VkDeviceGeneratedCommandsFeaturesNVX* pFeatures - VkDeviceGeneratedCommandsLimitsNVX* pLimits + void vkUpdateIndirectExecutionSetPipelineEXT + VkDevice device + VkIndirectExecutionSetEXT indirectExecutionSet + uint32_t executionSetWriteCount + const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites + + void vkUpdateIndirectExecutionSetShaderEXT + VkDevice device + VkIndirectExecutionSetEXT indirectExecutionSet + uint32_t executionSetWriteCount + const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites + + void vkGetPhysicalDeviceFeatures2 VkPhysicalDevice physicalDevice @@ -5673,7 +13142,7 @@ server. VkFormatProperties2* pFormatProperties - + VkResult vkGetPhysicalDeviceImageFormatProperties2 VkPhysicalDevice physicalDevice const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo @@ -5701,7 +13170,7 @@ server. VkSparseImageFormatProperties2* pProperties - + void vkCmdPushDescriptorSetKHR VkCommandBuffer commandBuffer VkPipelineBindPoint pipelineBindPoint @@ -5730,7 +13199,7 @@ server. const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo HANDLE* pHandle - + VkResult vkGetMemoryWin32HandlePropertiesKHR VkDevice device VkExternalMemoryHandleTypeFlagBits handleType @@ -5743,20 +13212,57 @@ server. const VkMemoryGetFdInfoKHR* pGetFdInfo int* pFd - + VkResult vkGetMemoryFdPropertiesKHR VkDevice device VkExternalMemoryHandleTypeFlagBits handleType int fd VkMemoryFdPropertiesKHR* pMemoryFdProperties + + VkResult vkGetMemoryZirconHandleFUCHSIA + VkDevice device + const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo + zx_handle_t* pZirconHandle + + + VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA + VkDevice device + VkExternalMemoryHandleTypeFlagBits handleType + zx_handle_t zirconHandle + VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties + + + VkResult vkGetMemoryRemoteAddressNV + VkDevice device + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo + VkRemoteAddressNV* pAddress + + + VkResult vkGetMemorySciBufNV + VkDevice device + const VkMemoryGetSciBufInfoNV* pGetSciBufInfo + NvSciBufObj* pHandle + + + VkResult vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV + VkPhysicalDevice physicalDevice + VkExternalMemoryHandleTypeFlagBits handleType + NvSciBufObj handle + VkMemorySciBufPropertiesNV* pMemorySciBufProperties + + + VkResult vkGetPhysicalDeviceSciBufAttributesNV + VkPhysicalDevice physicalDevice + NvSciBufAttrList pAttributes + void vkGetPhysicalDeviceExternalSemaphoreProperties VkPhysicalDevice physicalDevice const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo VkExternalSemaphoreProperties* pExternalSemaphoreProperties - + VkResult vkGetSemaphoreWin32HandleKHR VkDevice device @@ -5779,13 +13285,24 @@ server. VkDevice device const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo + + VkResult vkGetSemaphoreZirconHandleFUCHSIA + VkDevice device + const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo + zx_handle_t* pZirconHandle + + + VkResult vkImportSemaphoreZirconHandleFUCHSIA + VkDevice device + const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo + void vkGetPhysicalDeviceExternalFenceProperties VkPhysicalDevice physicalDevice const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo VkExternalFenceProperties* pExternalFenceProperties - + VkResult vkGetFenceWin32HandleKHR VkDevice device @@ -5808,38 +13325,101 @@ server. VkDevice device const VkImportFenceFdInfoKHR* pImportFenceFdInfo + + VkResult vkGetFenceSciSyncFenceNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkGetFenceSciSyncObjNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkImportFenceSciSyncFenceNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkImportFenceSciSyncObjNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkGetSemaphoreSciSyncObjNV + VkDevice device + const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo + void* pHandle + + + VkResult vkImportSemaphoreSciSyncObjNV + VkDevice device + const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo + + + VkResult vkGetPhysicalDeviceSciSyncAttributesNV + VkPhysicalDevice physicalDevice + const VkSciSyncAttributesInfoNV* pSciSyncAttributesInfo + NvSciSyncAttrList pAttributes + + + VkResult vkCreateSemaphoreSciSyncPoolNV + VkDevice device + const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSemaphoreSciSyncPoolNV* pSemaphorePool + + + void vkDestroySemaphoreSciSyncPoolNV + VkDevice device + VkSemaphoreSciSyncPoolNV semaphorePool + const VkAllocationCallbacks* pAllocator + VkResult vkReleaseDisplayEXT VkPhysicalDevice physicalDevice VkDisplayKHR display - + VkResult vkAcquireXlibDisplayEXT VkPhysicalDevice physicalDevice Display* dpy VkDisplayKHR display - + VkResult vkGetRandROutputDisplayEXT VkPhysicalDevice physicalDevice Display* dpy RROutput rrOutput VkDisplayKHR* pDisplay - + + VkResult vkAcquireWinrtDisplayNV + VkPhysicalDevice physicalDevice + VkDisplayKHR display + + + VkResult vkGetWinrtDisplayNV + VkPhysicalDevice physicalDevice + uint32_t deviceRelativeId + VkDisplayKHR* pDisplay + + VkResult vkDisplayPowerControlEXT VkDevice device VkDisplayKHR display const VkDisplayPowerInfoEXT* pDisplayPowerInfo - + VkResult vkRegisterDeviceEventEXT VkDevice device const VkDeviceEventInfoEXT* pDeviceEventInfo const VkAllocationCallbacks* pAllocator VkFence* pFence - + VkResult vkRegisterDisplayEventEXT VkDevice device VkDisplayKHR display @@ -5847,7 +13427,7 @@ server. const VkAllocationCallbacks* pAllocator VkFence* pFence - + VkResult vkGetSwapchainCounterEXT VkDevice device VkSwapchainKHR swapchain @@ -5876,7 +13456,7 @@ server. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures - + VkResult vkBindBufferMemory2 VkDevice device uint32_t bindInfoCount @@ -5890,7 +13470,7 @@ server. const VkBindImageMemoryInfo* pBindInfos - + void vkCmdSetDeviceMask VkCommandBuffer commandBuffer uint32_t deviceMask @@ -5907,13 +13487,13 @@ server. VkSurfaceKHR surface VkDeviceGroupPresentModeFlagsKHR* pModes - + VkResult vkAcquireNextImage2KHR VkDevice device const VkAcquireNextImageInfoKHR* pAcquireInfo uint32_t* pImageIndex - + void vkCmdDispatchBase VkCommandBuffer commandBuffer uint32_t baseGroupX @@ -5937,7 +13517,7 @@ server. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo const VkAllocationCallbacks* pAllocator VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate - + void vkDestroyDescriptorUpdateTemplate @@ -5949,12 +13529,12 @@ server. void vkUpdateDescriptorSetWithTemplate VkDevice device - VkDescriptorSet descriptorSet + VkDescriptorSet descriptorSet VkDescriptorUpdateTemplate descriptorUpdateTemplate const void* pData - + void vkCmdPushDescriptorSetWithTemplateKHR VkCommandBuffer commandBuffer VkDescriptorUpdateTemplate descriptorUpdateTemplate @@ -5969,18 +13549,18 @@ server. const VkSwapchainKHR* pSwapchains const VkHdrMetadataEXT* pMetadata - + VkResult vkGetSwapchainStatusKHR VkDevice device VkSwapchainKHR swapchain - + VkResult vkGetRefreshCycleDurationGOOGLE VkDevice device VkSwapchainKHR swapchain VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties - + VkResult vkGetPastPresentationTimingGOOGLE VkDevice device VkSwapchainKHR swapchain @@ -6001,21 +13581,38 @@ server. const VkAllocationCallbacks* pAllocator VkSurfaceKHR* pSurface - + + VkResult vkCreateMetalSurfaceEXT + VkInstance instance + const VkMetalSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + void vkCmdSetViewportWScalingNV VkCommandBuffer commandBuffer uint32_t firstViewport uint32_t viewportCount const VkViewportWScalingNV* pViewportWScalings - + void vkCmdSetDiscardRectangleEXT VkCommandBuffer commandBuffer uint32_t firstDiscardRectangle uint32_t discardRectangleCount const VkRect2D* pDiscardRectangles - + + void vkCmdSetDiscardRectangleEnableEXT + VkCommandBuffer commandBuffer + VkBool32 discardRectangleEnable + + + void vkCmdSetDiscardRectangleModeEXT + VkCommandBuffer commandBuffer + VkDiscardRectangleModeEXT discardRectangleMode + + void vkCmdSetSampleLocationsEXT VkCommandBuffer commandBuffer const VkSampleLocationsInfoEXT* pSampleLocationsInfo @@ -6086,6 +13683,28 @@ server. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements + + void vkGetDeviceBufferMemoryRequirements + VkDevice device + const VkDeviceBufferMemoryRequirements* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetDeviceImageMemoryRequirements + VkDevice device + const VkDeviceImageMemoryRequirements* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + + void vkGetDeviceImageSparseMemoryRequirements + VkDevice device + const VkDeviceImageMemoryRequirements* pInfo + uint32_t* pSparseMemoryRequirementCount + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements + + VkResult vkCreateSamplerYcbcrConversion VkDevice device @@ -6148,19 +13767,28 @@ server. VkImageUsageFlags imageUsage int* grallocUsage + + VkResult vkGetSwapchainGrallocUsage2ANDROID + VkDevice device + VkFormat format + VkImageUsageFlags imageUsage + VkSwapchainImageUsageFlagsANDROID swapchainImageUsage + uint64_t* grallocConsumerUsage + uint64_t* grallocProducerUsage + VkResult vkAcquireImageANDROID VkDevice device VkImage image int nativeFenceFd - VkSemaphore semaphore - VkFence fence + VkSemaphore semaphore + VkFence fence VkResult vkQueueSignalReleaseImageANDROID VkQueue queue uint32_t waitSemaphoreCount - const VkSemaphore* pWaitSemaphores + const VkSemaphore* pWaitSemaphores VkImage image int* pNativeFenceFd @@ -6173,15 +13801,37 @@ server. size_t* pInfoSize void* pInfo + + void vkSetLocalDimmingAMD + VkDevice device + VkSwapchainKHR swapChain + VkBool32 localDimmingEnable + + + VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR + VkPhysicalDevice physicalDevice + uint32_t* pTimeDomainCount + VkTimeDomainKHR* pTimeDomains + + + + VkResult vkGetCalibratedTimestampsKHR + VkDevice device + uint32_t timestampCount + const VkCalibratedTimestampInfoKHR* pTimestampInfos + uint64_t* pTimestamps + uint64_t* pMaxDeviation + + VkResult vkSetDebugUtilsObjectNameEXT VkDevice device - const VkDebugUtilsObjectNameInfoEXT* pNameInfo + const VkDebugUtilsObjectNameInfoEXT* pNameInfo VkResult vkSetDebugUtilsObjectTagEXT VkDevice device - const VkDebugUtilsObjectTagInfoEXT* pTagInfo + const VkDebugUtilsObjectTagInfoEXT* pTagInfo void vkQueueBeginDebugUtilsLabelEXT @@ -6197,18 +13847,18 @@ server. VkQueue queue const VkDebugUtilsLabelEXT* pLabelInfo - + void vkCmdBeginDebugUtilsLabelEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkDebugUtilsLabelEXT* pLabelInfo - + void vkCmdEndDebugUtilsLabelEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer - + void vkCmdInsertDebugUtilsLabelEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkDebugUtilsLabelEXT* pLabelInfo @@ -6221,7 +13871,7 @@ server. void vkDestroyDebugUtilsMessengerEXT VkInstance instance - VkDebugUtilsMessengerEXT messenger + VkDebugUtilsMessengerEXT messenger const VkAllocationCallbacks* pAllocator @@ -6231,46 +13881,70 @@ server. VkDebugUtilsMessageTypeFlagsEXT messageTypes const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData - + VkResult vkGetMemoryHostPointerPropertiesEXT VkDevice device VkExternalMemoryHandleTypeFlagBits handleType - const void* pHostPointer + const void* pHostPointer VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties - + void vkCmdWriteBufferMarkerAMD VkCommandBuffer commandBuffer - VkPipelineStageFlagBits pipelineStage + VkPipelineStageFlagBits pipelineStage VkBuffer dstBuffer VkDeviceSize dstOffset uint32_t marker - VkResult vkCreateRenderPass2KHR + VkResult vkCreateRenderPass2 VkDevice device - const VkRenderPassCreateInfo2KHR* pCreateInfo + const VkRenderPassCreateInfo2* pCreateInfo const VkAllocationCallbacks* pAllocator VkRenderPass* pRenderPass - - void vkCmdBeginRenderPass2KHR + + + void vkCmdBeginRenderPass2 VkCommandBuffer commandBuffer const VkRenderPassBeginInfo* pRenderPassBegin - const VkSubpassBeginInfoKHR* pSubpassBeginInfo + const VkSubpassBeginInfo* pSubpassBeginInfo - - void vkCmdNextSubpass2KHR + + + void vkCmdNextSubpass2 VkCommandBuffer commandBuffer - const VkSubpassBeginInfoKHR* pSubpassBeginInfo - const VkSubpassEndInfoKHR* pSubpassEndInfo + const VkSubpassBeginInfo* pSubpassBeginInfo + const VkSubpassEndInfo* pSubpassEndInfo - - void vkCmdEndRenderPass2KHR + + + void vkCmdEndRenderPass2 VkCommandBuffer commandBuffer - const VkSubpassEndInfoKHR* pSubpassEndInfo + const VkSubpassEndInfo* pSubpassEndInfo + + + + VkResult vkGetSemaphoreCounterValue + VkDevice device + VkSemaphore semaphore + uint64_t* pValue + + + + VkResult vkWaitSemaphores + VkDevice device + const VkSemaphoreWaitInfo* pWaitInfo + uint64_t timeout + + + + VkResult vkSignalSemaphore + VkDevice device + const VkSemaphoreSignalInfo* pSignalInfo - + + VkResult vkGetAndroidHardwareBufferPropertiesANDROID VkDevice device const struct AHardwareBuffer* buffer @@ -6282,8 +13956,8 @@ server. const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo struct AHardwareBuffer** pBuffer - - void vkCmdDrawIndirectCountKHR + + void vkCmdDrawIndirectCount VkCommandBuffer commandBuffer VkBuffer buffer VkDeviceSize offset @@ -6292,8 +13966,10 @@ server. uint32_t maxDrawCount uint32_t stride - - void vkCmdDrawIndexedIndirectCountKHR + + + + void vkCmdDrawIndexedIndirectCount VkCommandBuffer commandBuffer VkBuffer buffer VkDeviceSize offset @@ -6302,9 +13978,11 @@ server. uint32_t maxDrawCount uint32_t stride - + + + void vkCmdSetCheckpointNV - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const void* pCheckpointMarker @@ -6313,34 +13991,1957 @@ server. uint32_t* pCheckpointDataCount VkCheckpointDataNV* pCheckpointData - - - - - - - - - - - - - - - - - - - - - - + + void vkCmdBindTransformFeedbackBuffersEXT + VkCommandBuffer commandBuffer + uint32_t firstBinding + uint32_t bindingCount + const VkBuffer* pBuffers + const VkDeviceSize* pOffsets + const VkDeviceSize* pSizes + + + void vkCmdBeginTransformFeedbackEXT + VkCommandBuffer commandBuffer + uint32_t firstCounterBuffer + uint32_t counterBufferCount + const VkBuffer* pCounterBuffers + const VkDeviceSize* pCounterBufferOffsets + + + void vkCmdEndTransformFeedbackEXT + VkCommandBuffer commandBuffer + uint32_t firstCounterBuffer + uint32_t counterBufferCount + const VkBuffer* pCounterBuffers + const VkDeviceSize* pCounterBufferOffsets + + + void vkCmdBeginQueryIndexedEXT + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + VkQueryControlFlags flags + uint32_t index + + + void vkCmdEndQueryIndexedEXT + VkCommandBuffer commandBuffer + VkQueryPool queryPool + uint32_t query + uint32_t index + + + void vkCmdDrawIndirectByteCountEXT + VkCommandBuffer commandBuffer + uint32_t instanceCount + uint32_t firstInstance + VkBuffer counterBuffer + VkDeviceSize counterBufferOffset + uint32_t counterOffset + uint32_t vertexStride + + + void vkCmdSetExclusiveScissorNV + VkCommandBuffer commandBuffer + uint32_t firstExclusiveScissor + uint32_t exclusiveScissorCount + const VkRect2D* pExclusiveScissors + + + void vkCmdSetExclusiveScissorEnableNV + VkCommandBuffer commandBuffer + uint32_t firstExclusiveScissor + uint32_t exclusiveScissorCount + const VkBool32* pExclusiveScissorEnables + + + void vkCmdBindShadingRateImageNV + VkCommandBuffer commandBuffer + VkImageView imageView + VkImageLayout imageLayout + + + void vkCmdSetViewportShadingRatePaletteNV + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkShadingRatePaletteNV* pShadingRatePalettes + + + void vkCmdSetCoarseSampleOrderNV + VkCommandBuffer commandBuffer + VkCoarseSampleOrderTypeNV sampleOrderType + uint32_t customSampleOrderCount + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders + + + void vkCmdDrawMeshTasksNV + VkCommandBuffer commandBuffer + uint32_t taskCount + uint32_t firstTask + + + void vkCmdDrawMeshTasksIndirectNV + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDrawMeshTasksIndirectCountNV + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + void vkCmdDrawMeshTasksEXT + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDrawMeshTasksIndirectEXT + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + uint32_t drawCount + uint32_t stride + + + void vkCmdDrawMeshTasksIndirectCountEXT + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkBuffer countBuffer + VkDeviceSize countBufferOffset + uint32_t maxDrawCount + uint32_t stride + + + VkResult vkCompileDeferredNV + VkDevice device + VkPipeline pipeline + uint32_t shader + + + VkResult vkCreateAccelerationStructureNV + VkDevice device + const VkAccelerationStructureCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkAccelerationStructureNV* pAccelerationStructure + + + void vkCmdBindInvocationMaskHUAWEI + VkCommandBuffer commandBuffer + VkImageView imageView + VkImageLayout imageLayout + + + void vkDestroyAccelerationStructureKHR + VkDevice device + VkAccelerationStructureKHR accelerationStructure + const VkAllocationCallbacks* pAllocator + + + void vkDestroyAccelerationStructureNV + VkDevice device + VkAccelerationStructureNV accelerationStructure + const VkAllocationCallbacks* pAllocator + + + void vkGetAccelerationStructureMemoryRequirementsNV + VkDevice device + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo + VkMemoryRequirements2KHR* pMemoryRequirements + + + VkResult vkBindAccelerationStructureMemoryNV + VkDevice device + uint32_t bindInfoCount + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos + + + void vkCmdCopyAccelerationStructureNV + VkCommandBuffer commandBuffer + VkAccelerationStructureNV dst + VkAccelerationStructureNV src + VkCopyAccelerationStructureModeKHR mode + + + void vkCmdCopyAccelerationStructureKHR + VkCommandBuffer commandBuffer + const VkCopyAccelerationStructureInfoKHR* pInfo + + + VkResult vkCopyAccelerationStructureKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyAccelerationStructureInfoKHR* pInfo + + + void vkCmdCopyAccelerationStructureToMemoryKHR + VkCommandBuffer commandBuffer + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo + + + VkResult vkCopyAccelerationStructureToMemoryKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo + + + void vkCmdCopyMemoryToAccelerationStructureKHR + VkCommandBuffer commandBuffer + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo + + + VkResult vkCopyMemoryToAccelerationStructureKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo + + + void vkCmdWriteAccelerationStructuresPropertiesKHR + VkCommandBuffer commandBuffer + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + void vkCmdWriteAccelerationStructuresPropertiesNV + VkCommandBuffer commandBuffer + uint32_t accelerationStructureCount + const VkAccelerationStructureNV* pAccelerationStructures + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + void vkCmdBuildAccelerationStructureNV + VkCommandBuffer commandBuffer + const VkAccelerationStructureInfoNV* pInfo + VkBuffer instanceData + VkDeviceSize instanceOffset + VkBool32 update + VkAccelerationStructureNV dst + VkAccelerationStructureNV src + VkBuffer scratch + VkDeviceSize scratchOffset + + + VkResult vkWriteAccelerationStructuresPropertiesKHR + VkDevice device + uint32_t accelerationStructureCount + const VkAccelerationStructureKHR* pAccelerationStructures + VkQueryType queryType + size_t dataSize + void* pData + size_t stride + + + void vkCmdTraceRaysKHR + VkCommandBuffer commandBuffer + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable + uint32_t width + uint32_t height + uint32_t depth + + + void vkCmdTraceRaysNV + VkCommandBuffer commandBuffer + VkBuffer raygenShaderBindingTableBuffer + VkDeviceSize raygenShaderBindingOffset + VkBuffer missShaderBindingTableBuffer + VkDeviceSize missShaderBindingOffset + VkDeviceSize missShaderBindingStride + VkBuffer hitShaderBindingTableBuffer + VkDeviceSize hitShaderBindingOffset + VkDeviceSize hitShaderBindingStride + VkBuffer callableShaderBindingTableBuffer + VkDeviceSize callableShaderBindingOffset + VkDeviceSize callableShaderBindingStride + uint32_t width + uint32_t height + uint32_t depth + + + VkResult vkGetRayTracingShaderGroupHandlesKHR + VkDevice device + VkPipeline pipeline + uint32_t firstGroup + uint32_t groupCount + size_t dataSize + void* pData + + + + VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR + VkDevice device + VkPipeline pipeline + uint32_t firstGroup + uint32_t groupCount + size_t dataSize + void* pData + + + VkResult vkGetAccelerationStructureHandleNV + VkDevice device + VkAccelerationStructureNV accelerationStructure + size_t dataSize + void* pData + + + VkResult vkCreateRayTracingPipelinesNV + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoNV* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesNV + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoNV* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkCreateRayTracingPipelinesKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkCooperativeMatrixPropertiesNV* pProperties + + + void vkCmdTraceRaysIndirectKHR + VkCommandBuffer commandBuffer + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable + VkDeviceAddress indirectDeviceAddress + + + void vkCmdTraceRaysIndirect2KHR + VkCommandBuffer commandBuffer + VkDeviceAddress indirectDeviceAddress + + + void vkGetDeviceAccelerationStructureCompatibilityKHR + VkDevice device + const VkAccelerationStructureVersionInfoKHR* pVersionInfo + VkAccelerationStructureCompatibilityKHR* pCompatibility + + + VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR + VkDevice device + VkPipeline pipeline + uint32_t group + VkShaderGroupShaderKHR groupShader + + + void vkCmdSetRayTracingPipelineStackSizeKHR + VkCommandBuffer commandBuffer + uint32_t pipelineStackSize + + + uint32_t vkGetImageViewHandleNVX + VkDevice device + const VkImageViewHandleInfoNVX* pInfo + + + VkResult vkGetImageViewAddressNVX + VkDevice device + VkImageView imageView + VkImageViewAddressPropertiesNVX* pProperties + + + VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + uint32_t* pPresentModeCount + VkPresentModeKHR* pPresentModes + + + VkResult vkGetDeviceGroupSurfacePresentModes2EXT + VkDevice device + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo + VkDeviceGroupPresentModeFlagsKHR* pModes + + + VkResult vkAcquireFullScreenExclusiveModeEXT + VkDevice device + VkSwapchainKHR swapchain + + + VkResult vkReleaseFullScreenExclusiveModeEXT + VkDevice device + VkSwapchainKHR swapchain + + + VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR + VkPhysicalDevice physicalDevice + uint32_t queueFamilyIndex + uint32_t* pCounterCount + VkPerformanceCounterKHR* pCounters + VkPerformanceCounterDescriptionKHR* pCounterDescriptions + + + void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR + VkPhysicalDevice physicalDevice + const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo + uint32_t* pNumPasses + + + VkResult vkAcquireProfilingLockKHR + VkDevice device + const VkAcquireProfilingLockInfoKHR* pInfo + + + void vkReleaseProfilingLockKHR + VkDevice device + + + VkResult vkGetImageDrmFormatModifierPropertiesEXT + VkDevice device + VkImage image + VkImageDrmFormatModifierPropertiesEXT* pProperties + + + uint64_t vkGetBufferOpaqueCaptureAddress + VkDevice device + const VkBufferDeviceAddressInfo* pInfo + + + + VkDeviceAddress vkGetBufferDeviceAddress + VkDevice device + const VkBufferDeviceAddressInfo* pInfo + + + + + VkResult vkCreateHeadlessSurfaceEXT + VkInstance instance + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSurfaceKHR* pSurface + + + VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV + VkPhysicalDevice physicalDevice + uint32_t* pCombinationCount + VkFramebufferMixedSamplesCombinationNV* pCombinations + + + VkResult vkInitializePerformanceApiINTEL + VkDevice device + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo + + + void vkUninitializePerformanceApiINTEL + VkDevice device + + + VkResult vkCmdSetPerformanceMarkerINTEL + VkCommandBuffer commandBuffer + const VkPerformanceMarkerInfoINTEL* pMarkerInfo + + + VkResult vkCmdSetPerformanceStreamMarkerINTEL + VkCommandBuffer commandBuffer + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo + + + VkResult vkCmdSetPerformanceOverrideINTEL + VkCommandBuffer commandBuffer + const VkPerformanceOverrideInfoINTEL* pOverrideInfo + + + VkResult vkAcquirePerformanceConfigurationINTEL + VkDevice device + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo + VkPerformanceConfigurationINTEL* pConfiguration + + + VkResult vkReleasePerformanceConfigurationINTEL + VkDevice device + VkPerformanceConfigurationINTEL configuration + + + VkResult vkQueueSetPerformanceConfigurationINTEL + VkQueue queue + VkPerformanceConfigurationINTEL configuration + + + VkResult vkGetPerformanceParameterINTEL + VkDevice device + VkPerformanceParameterTypeINTEL parameter + VkPerformanceValueINTEL* pValue + + + uint64_t vkGetDeviceMemoryOpaqueCaptureAddress + VkDevice device + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo + + + + VkResult vkGetPipelineExecutablePropertiesKHR + VkDevice device + const VkPipelineInfoKHR* pPipelineInfo + uint32_t* pExecutableCount + VkPipelineExecutablePropertiesKHR* pProperties + + + VkResult vkGetPipelineExecutableStatisticsKHR + VkDevice device + const VkPipelineExecutableInfoKHR* pExecutableInfo + uint32_t* pStatisticCount + VkPipelineExecutableStatisticKHR* pStatistics + + + VkResult vkGetPipelineExecutableInternalRepresentationsKHR + VkDevice device + const VkPipelineExecutableInfoKHR* pExecutableInfo + uint32_t* pInternalRepresentationCount + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations + + + void vkCmdSetLineStippleKHR + VkCommandBuffer commandBuffer + uint32_t lineStippleFactor + uint16_t lineStipplePattern + + + + VkResult vkGetFaultData + VkDevice device + VkFaultQueryBehavior faultQueryBehavior + VkBool32* pUnrecordedFaults + uint32_t* pFaultCount + VkFaultData* pFaults + + + VkResult vkGetPhysicalDeviceToolProperties + VkPhysicalDevice physicalDevice + uint32_t* pToolCount + VkPhysicalDeviceToolProperties* pToolProperties + + + + VkResult vkCreateAccelerationStructureKHR + VkDevice device + const VkAccelerationStructureCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkAccelerationStructureKHR* pAccelerationStructure + + + void vkCmdBuildAccelerationStructuresKHR + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos + + + void vkCmdBuildAccelerationStructuresIndirectKHR + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkDeviceAddress* pIndirectDeviceAddresses + const uint32_t* pIndirectStrides + const uint32_t* const* ppMaxPrimitiveCounts + + + VkResult vkBuildAccelerationStructuresKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + uint32_t infoCount + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos + + + VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR + VkDevice device + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo + + + VkResult vkCreateDeferredOperationKHR + VkDevice device + const VkAllocationCallbacks* pAllocator + VkDeferredOperationKHR* pDeferredOperation + + + void vkDestroyDeferredOperationKHR + VkDevice device + VkDeferredOperationKHR operation + const VkAllocationCallbacks* pAllocator + + + uint32_t vkGetDeferredOperationMaxConcurrencyKHR + VkDevice device + VkDeferredOperationKHR operation + + + VkResult vkGetDeferredOperationResultKHR + VkDevice device + VkDeferredOperationKHR operation + + + VkResult vkDeferredOperationJoinKHR + VkDevice device + VkDeferredOperationKHR operation + + + void vkGetPipelineIndirectMemoryRequirementsNV + VkDevice device + const VkComputePipelineCreateInfo* pCreateInfo + VkMemoryRequirements2* pMemoryRequirements + + + VkDeviceAddress vkGetPipelineIndirectDeviceAddressNV + VkDevice device + const VkPipelineIndirectDeviceAddressInfoNV* pInfo + + + void vkAntiLagUpdateAMD + VkDevice device + const VkAntiLagDataAMD* pData + + + void vkCmdSetCullMode + VkCommandBuffer commandBuffer + VkCullModeFlags cullMode + + + + void vkCmdSetFrontFace + VkCommandBuffer commandBuffer + VkFrontFace frontFace + + + + void vkCmdSetPrimitiveTopology + VkCommandBuffer commandBuffer + VkPrimitiveTopology primitiveTopology + + + + void vkCmdSetViewportWithCount + VkCommandBuffer commandBuffer + uint32_t viewportCount + const VkViewport* pViewports + + + + void vkCmdSetScissorWithCount + VkCommandBuffer commandBuffer + uint32_t scissorCount + const VkRect2D* pScissors + + + + void vkCmdBindIndexBuffer2KHR + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + VkDeviceSize size + VkIndexType indexType + + + void vkCmdBindVertexBuffers2 + VkCommandBuffer commandBuffer + uint32_t firstBinding + uint32_t bindingCount + const VkBuffer* pBuffers + const VkDeviceSize* pOffsets + const VkDeviceSize* pSizes + const VkDeviceSize* pStrides + + + + void vkCmdSetDepthTestEnable + VkCommandBuffer commandBuffer + VkBool32 depthTestEnable + + + + void vkCmdSetDepthWriteEnable + VkCommandBuffer commandBuffer + VkBool32 depthWriteEnable + + + + void vkCmdSetDepthCompareOp + VkCommandBuffer commandBuffer + VkCompareOp depthCompareOp + + + + void vkCmdSetDepthBoundsTestEnable + VkCommandBuffer commandBuffer + VkBool32 depthBoundsTestEnable + + + + void vkCmdSetStencilTestEnable + VkCommandBuffer commandBuffer + VkBool32 stencilTestEnable + + + + void vkCmdSetStencilOp + VkCommandBuffer commandBuffer + VkStencilFaceFlags faceMask + VkStencilOp failOp + VkStencilOp passOp + VkStencilOp depthFailOp + VkCompareOp compareOp + + + + void vkCmdSetPatchControlPointsEXT + VkCommandBuffer commandBuffer + uint32_t patchControlPoints + + + void vkCmdSetRasterizerDiscardEnable + VkCommandBuffer commandBuffer + VkBool32 rasterizerDiscardEnable + + + + void vkCmdSetDepthBiasEnable + VkCommandBuffer commandBuffer + VkBool32 depthBiasEnable + + + + void vkCmdSetLogicOpEXT + VkCommandBuffer commandBuffer + VkLogicOp logicOp + + + void vkCmdSetPrimitiveRestartEnable + VkCommandBuffer commandBuffer + VkBool32 primitiveRestartEnable + + + + void vkCmdSetTessellationDomainOriginEXT + VkCommandBuffer commandBuffer + VkTessellationDomainOrigin domainOrigin + + + void vkCmdSetDepthClampEnableEXT + VkCommandBuffer commandBuffer + VkBool32 depthClampEnable + + + void vkCmdSetPolygonModeEXT + VkCommandBuffer commandBuffer + VkPolygonMode polygonMode + + + void vkCmdSetRasterizationSamplesEXT + VkCommandBuffer commandBuffer + VkSampleCountFlagBits rasterizationSamples + + + void vkCmdSetSampleMaskEXT + VkCommandBuffer commandBuffer + VkSampleCountFlagBits samples + const VkSampleMask* pSampleMask + + + void vkCmdSetAlphaToCoverageEnableEXT + VkCommandBuffer commandBuffer + VkBool32 alphaToCoverageEnable + + + void vkCmdSetAlphaToOneEnableEXT + VkCommandBuffer commandBuffer + VkBool32 alphaToOneEnable + + + void vkCmdSetLogicOpEnableEXT + VkCommandBuffer commandBuffer + VkBool32 logicOpEnable + + + void vkCmdSetColorBlendEnableEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkBool32* pColorBlendEnables + + + void vkCmdSetColorBlendEquationEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorBlendEquationEXT* pColorBlendEquations + + + void vkCmdSetColorWriteMaskEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorComponentFlags* pColorWriteMasks + + + void vkCmdSetRasterizationStreamEXT + VkCommandBuffer commandBuffer + uint32_t rasterizationStream + + + void vkCmdSetConservativeRasterizationModeEXT + VkCommandBuffer commandBuffer + VkConservativeRasterizationModeEXT conservativeRasterizationMode + + + void vkCmdSetExtraPrimitiveOverestimationSizeEXT + VkCommandBuffer commandBuffer + float extraPrimitiveOverestimationSize + + + void vkCmdSetDepthClipEnableEXT + VkCommandBuffer commandBuffer + VkBool32 depthClipEnable + + + void vkCmdSetSampleLocationsEnableEXT + VkCommandBuffer commandBuffer + VkBool32 sampleLocationsEnable + + + void vkCmdSetColorBlendAdvancedEXT + VkCommandBuffer commandBuffer + uint32_t firstAttachment + uint32_t attachmentCount + const VkColorBlendAdvancedEXT* pColorBlendAdvanced + + + void vkCmdSetProvokingVertexModeEXT + VkCommandBuffer commandBuffer + VkProvokingVertexModeEXT provokingVertexMode + + + void vkCmdSetLineRasterizationModeEXT + VkCommandBuffer commandBuffer + VkLineRasterizationModeEXT lineRasterizationMode + + + void vkCmdSetLineStippleEnableEXT + VkCommandBuffer commandBuffer + VkBool32 stippledLineEnable + + + void vkCmdSetDepthClipNegativeOneToOneEXT + VkCommandBuffer commandBuffer + VkBool32 negativeOneToOne + + + void vkCmdSetViewportWScalingEnableNV + VkCommandBuffer commandBuffer + VkBool32 viewportWScalingEnable + + + void vkCmdSetViewportSwizzleNV + VkCommandBuffer commandBuffer + uint32_t firstViewport + uint32_t viewportCount + const VkViewportSwizzleNV* pViewportSwizzles + + + void vkCmdSetCoverageToColorEnableNV + VkCommandBuffer commandBuffer + VkBool32 coverageToColorEnable + + + void vkCmdSetCoverageToColorLocationNV + VkCommandBuffer commandBuffer + uint32_t coverageToColorLocation + + + void vkCmdSetCoverageModulationModeNV + VkCommandBuffer commandBuffer + VkCoverageModulationModeNV coverageModulationMode + + + void vkCmdSetCoverageModulationTableEnableNV + VkCommandBuffer commandBuffer + VkBool32 coverageModulationTableEnable + + + void vkCmdSetCoverageModulationTableNV + VkCommandBuffer commandBuffer + uint32_t coverageModulationTableCount + const float* pCoverageModulationTable + + + void vkCmdSetShadingRateImageEnableNV + VkCommandBuffer commandBuffer + VkBool32 shadingRateImageEnable + + + void vkCmdSetCoverageReductionModeNV + VkCommandBuffer commandBuffer + VkCoverageReductionModeNV coverageReductionMode + + + void vkCmdSetRepresentativeFragmentTestEnableNV + VkCommandBuffer commandBuffer + VkBool32 representativeFragmentTestEnable + + + VkResult vkCreatePrivateDataSlot + VkDevice device + const VkPrivateDataSlotCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPrivateDataSlot* pPrivateDataSlot + + + + void vkDestroyPrivateDataSlot + VkDevice device + VkPrivateDataSlot privateDataSlot + const VkAllocationCallbacks* pAllocator + + + + VkResult vkSetPrivateData + VkDevice device + VkObjectType objectType + uint64_t objectHandle + VkPrivateDataSlot privateDataSlot + uint64_t data + + + + void vkGetPrivateData + VkDevice device + VkObjectType objectType + uint64_t objectHandle + VkPrivateDataSlot privateDataSlot + uint64_t* pData + + + + void vkCmdCopyBuffer2 + VkCommandBuffer commandBuffer + const VkCopyBufferInfo2* pCopyBufferInfo + + + + void vkCmdCopyImage2 + VkCommandBuffer commandBuffer + const VkCopyImageInfo2* pCopyImageInfo + + + + void vkCmdBlitImage2 + VkCommandBuffer commandBuffer + const VkBlitImageInfo2* pBlitImageInfo + + + + void vkCmdCopyBufferToImage2 + VkCommandBuffer commandBuffer + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo + + + + void vkCmdCopyImageToBuffer2 + VkCommandBuffer commandBuffer + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo + + + + void vkCmdResolveImage2 + VkCommandBuffer commandBuffer + const VkResolveImageInfo2* pResolveImageInfo + + + + void vkCmdRefreshObjectsKHR + VkCommandBuffer commandBuffer + const VkRefreshObjectListKHR* pRefreshObjects + + + VkResult vkGetPhysicalDeviceRefreshableObjectTypesKHR + VkPhysicalDevice physicalDevice + uint32_t* pRefreshableObjectTypeCount + VkObjectType* pRefreshableObjectTypes + + + void vkCmdSetFragmentShadingRateKHR + VkCommandBuffer commandBuffer + const VkExtent2D* pFragmentSize + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR + VkPhysicalDevice physicalDevice + uint32_t* pFragmentShadingRateCount + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates + + + void vkCmdSetFragmentShadingRateEnumNV + VkCommandBuffer commandBuffer + VkFragmentShadingRateNV shadingRate + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] + + + void vkGetAccelerationStructureBuildSizesKHR + VkDevice device + VkAccelerationStructureBuildTypeKHR buildType + const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo + const uint32_t* pMaxPrimitiveCounts + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo + + + void vkCmdSetVertexInputEXT + VkCommandBuffer commandBuffer + uint32_t vertexBindingDescriptionCount + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions + uint32_t vertexAttributeDescriptionCount + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions + + + void vkCmdSetColorWriteEnableEXT + VkCommandBuffer commandBuffer + uint32_t attachmentCount + const VkBool32* pColorWriteEnables + + + void vkCmdSetEvent2 + VkCommandBuffer commandBuffer + VkEvent event + const VkDependencyInfo* pDependencyInfo + + + + void vkCmdResetEvent2 + VkCommandBuffer commandBuffer + VkEvent event + VkPipelineStageFlags2 stageMask + + + + void vkCmdWaitEvents2 + VkCommandBuffer commandBuffer + uint32_t eventCount + const VkEvent* pEvents + const VkDependencyInfo* pDependencyInfos + + + + void vkCmdPipelineBarrier2 + VkCommandBuffer commandBuffer + const VkDependencyInfo* pDependencyInfo + + + + VkResult vkQueueSubmit2 + VkQueue queue + uint32_t submitCount + const VkSubmitInfo2* pSubmits + VkFence fence + + + + void vkCmdWriteTimestamp2 + VkCommandBuffer commandBuffer + VkPipelineStageFlags2 stage + VkQueryPool queryPool + uint32_t query + + + + void vkCmdWriteBufferMarker2AMD + VkCommandBuffer commandBuffer + VkPipelineStageFlags2 stage + VkBuffer dstBuffer + VkDeviceSize dstOffset + uint32_t marker + + + void vkGetQueueCheckpointData2NV + VkQueue queue + uint32_t* pCheckpointDataCount + VkCheckpointData2NV* pCheckpointData + + + VkResult vkCopyMemoryToImageEXT + VkDevice device + const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo + + + VkResult vkCopyImageToMemoryEXT + VkDevice device + const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo + + + VkResult vkCopyImageToImageEXT + VkDevice device + const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo + + + VkResult vkTransitionImageLayoutEXT + VkDevice device + uint32_t transitionCount + const VkHostImageLayoutTransitionInfoEXT* pTransitions + + + void vkGetCommandPoolMemoryConsumption + VkDevice device + VkCommandPool commandPool + VkCommandBuffer commandBuffer + VkCommandPoolMemoryConsumption* pConsumption + + + VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR + VkPhysicalDevice physicalDevice + const VkVideoProfileInfoKHR* pVideoProfile + VkVideoCapabilitiesKHR* pCapabilities + + + VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo + uint32_t* pVideoFormatPropertyCount + VkVideoFormatPropertiesKHR* pVideoFormatProperties + + + VkResult vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo + VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties + + + VkResult vkCreateVideoSessionKHR + VkDevice device + const VkVideoSessionCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkVideoSessionKHR* pVideoSession + + + void vkDestroyVideoSessionKHR + VkDevice device + VkVideoSessionKHR videoSession + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateVideoSessionParametersKHR + VkDevice device + const VkVideoSessionParametersCreateInfoKHR* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkVideoSessionParametersKHR* pVideoSessionParameters + + + VkResult vkUpdateVideoSessionParametersKHR + VkDevice device + VkVideoSessionParametersKHR videoSessionParameters + const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo + + + VkResult vkGetEncodedVideoSessionParametersKHR + VkDevice device + const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo + VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo + size_t* pDataSize + void* pData + + + void vkDestroyVideoSessionParametersKHR + VkDevice device + VkVideoSessionParametersKHR videoSessionParameters + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetVideoSessionMemoryRequirementsKHR + VkDevice device + VkVideoSessionKHR videoSession + uint32_t* pMemoryRequirementsCount + VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements + + + VkResult vkBindVideoSessionMemoryKHR + VkDevice device + VkVideoSessionKHR videoSession + uint32_t bindSessionMemoryInfoCount + const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos + + + void vkCmdDecodeVideoKHR + VkCommandBuffer commandBuffer + const VkVideoDecodeInfoKHR* pDecodeInfo + + + void vkCmdBeginVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoBeginCodingInfoKHR* pBeginInfo + + + void vkCmdControlVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoCodingControlInfoKHR* pCodingControlInfo + + + void vkCmdEndVideoCodingKHR + VkCommandBuffer commandBuffer + const VkVideoEndCodingInfoKHR* pEndCodingInfo + + + void vkCmdEncodeVideoKHR + VkCommandBuffer commandBuffer + const VkVideoEncodeInfoKHR* pEncodeInfo + + + void vkCmdDecompressMemoryNV + VkCommandBuffer commandBuffer + uint32_t decompressRegionCount + const VkDecompressMemoryRegionNV* pDecompressMemoryRegions + + + void vkCmdDecompressMemoryIndirectCountNV + VkCommandBuffer commandBuffer + VkDeviceAddress indirectCommandsAddress + VkDeviceAddress indirectCommandsCountAddress + uint32_t stride + + + VkResult vkCreateCuModuleNVX + VkDevice device + const VkCuModuleCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCuModuleNVX* pModule + + + VkResult vkCreateCuFunctionNVX + VkDevice device + const VkCuFunctionCreateInfoNVX* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCuFunctionNVX* pFunction + + + void vkDestroyCuModuleNVX + VkDevice device + VkCuModuleNVX module + const VkAllocationCallbacks* pAllocator + + + void vkDestroyCuFunctionNVX + VkDevice device + VkCuFunctionNVX function + const VkAllocationCallbacks* pAllocator + + + void vkCmdCuLaunchKernelNVX + VkCommandBuffer commandBuffer + const VkCuLaunchInfoNVX* pLaunchInfo + + + void vkGetDescriptorSetLayoutSizeEXT + VkDevice device + VkDescriptorSetLayout layout + VkDeviceSize* pLayoutSizeInBytes + + + void vkGetDescriptorSetLayoutBindingOffsetEXT + VkDevice device + VkDescriptorSetLayout layout + uint32_t binding + VkDeviceSize* pOffset + + + void vkGetDescriptorEXT + VkDevice device + const VkDescriptorGetInfoEXT* pDescriptorInfo + size_t dataSize + void* pDescriptor + + + void vkCmdBindDescriptorBuffersEXT + VkCommandBuffer commandBuffer + uint32_t bufferCount + const VkDescriptorBufferBindingInfoEXT* pBindingInfos + + + void vkCmdSetDescriptorBufferOffsetsEXT + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t firstSet + uint32_t setCount + const uint32_t* pBufferIndices + const VkDeviceSize* pOffsets + + + void vkCmdBindDescriptorBufferEmbeddedSamplersEXT + VkCommandBuffer commandBuffer + VkPipelineBindPoint pipelineBindPoint + VkPipelineLayout layout + uint32_t set + + + VkResult vkGetBufferOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkBufferCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetImageOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkImageCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetImageViewOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkImageViewCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetSamplerOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkSamplerCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + VkResult vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT + VkDevice device + const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo + void* pData + + + void vkSetDeviceMemoryPriorityEXT + VkDevice device + VkDeviceMemory memory + float priority + + + VkResult vkAcquireDrmDisplayEXT + VkPhysicalDevice physicalDevice + int32_t drmFd + VkDisplayKHR display + + + VkResult vkGetDrmDisplayEXT + VkPhysicalDevice physicalDevice + int32_t drmFd + uint32_t connectorId + VkDisplayKHR* display + + + VkResult vkWaitForPresentKHR + VkDevice device + VkSwapchainKHR swapchain + uint64_t presentId + uint64_t timeout + + + VkResult vkCreateBufferCollectionFUCHSIA + VkDevice device + const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkBufferCollectionFUCHSIA* pCollection + + + VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo + + + VkResult vkSetBufferCollectionImageConstraintsFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo + + + void vkDestroyBufferCollectionFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetBufferCollectionPropertiesFUCHSIA + VkDevice device + VkBufferCollectionFUCHSIA collection + VkBufferCollectionPropertiesFUCHSIA* pProperties + + + VkResult vkCreateCudaModuleNV + VkDevice device + const VkCudaModuleCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCudaModuleNV* pModule + + + VkResult vkGetCudaModuleCacheNV + VkDevice device + VkCudaModuleNV module + size_t* pCacheSize + void* pCacheData + + + VkResult vkCreateCudaFunctionNV + VkDevice device + const VkCudaFunctionCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkCudaFunctionNV* pFunction + + + void vkDestroyCudaModuleNV + VkDevice device + VkCudaModuleNV module + const VkAllocationCallbacks* pAllocator + + + void vkDestroyCudaFunctionNV + VkDevice device + VkCudaFunctionNV function + const VkAllocationCallbacks* pAllocator + + + void vkCmdCudaLaunchKernelNV + VkCommandBuffer commandBuffer + const VkCudaLaunchInfoNV* pLaunchInfo + + + void vkCmdBeginRendering + VkCommandBuffer commandBuffer + const VkRenderingInfo* pRenderingInfo + + + + void vkCmdEndRendering + VkCommandBuffer commandBuffer + + + + + void vkGetDescriptorSetLayoutHostMappingInfoVALVE + VkDevice device + const VkDescriptorSetBindingReferenceVALVE* pBindingReference + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping + + + void vkGetDescriptorSetHostMappingVALVE + VkDevice device + VkDescriptorSet descriptorSet + void** ppData + + + VkResult vkCreateMicromapEXT + VkDevice device + const VkMicromapCreateInfoEXT* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkMicromapEXT* pMicromap + + + void vkCmdBuildMicromapsEXT + VkCommandBuffer commandBuffer + uint32_t infoCount + const VkMicromapBuildInfoEXT* pInfos + + + VkResult vkBuildMicromapsEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + uint32_t infoCount + const VkMicromapBuildInfoEXT* pInfos + + + void vkDestroyMicromapEXT + VkDevice device + VkMicromapEXT micromap + const VkAllocationCallbacks* pAllocator + + + void vkCmdCopyMicromapEXT + VkCommandBuffer commandBuffer + const VkCopyMicromapInfoEXT* pInfo + + + VkResult vkCopyMicromapEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMicromapInfoEXT* pInfo + + + void vkCmdCopyMicromapToMemoryEXT + VkCommandBuffer commandBuffer + const VkCopyMicromapToMemoryInfoEXT* pInfo + + + VkResult vkCopyMicromapToMemoryEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMicromapToMemoryInfoEXT* pInfo + + + void vkCmdCopyMemoryToMicromapEXT + VkCommandBuffer commandBuffer + const VkCopyMemoryToMicromapInfoEXT* pInfo + + + VkResult vkCopyMemoryToMicromapEXT + VkDevice device + VkDeferredOperationKHR deferredOperation + const VkCopyMemoryToMicromapInfoEXT* pInfo + + + void vkCmdWriteMicromapsPropertiesEXT + VkCommandBuffer commandBuffer + uint32_t micromapCount + const VkMicromapEXT* pMicromaps + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery + + + VkResult vkWriteMicromapsPropertiesEXT + VkDevice device + uint32_t micromapCount + const VkMicromapEXT* pMicromaps + VkQueryType queryType + size_t dataSize + void* pData + size_t stride + + + void vkGetDeviceMicromapCompatibilityEXT + VkDevice device + const VkMicromapVersionInfoEXT* pVersionInfo + VkAccelerationStructureCompatibilityKHR* pCompatibility + + + void vkGetMicromapBuildSizesEXT + VkDevice device + VkAccelerationStructureBuildTypeKHR buildType + const VkMicromapBuildInfoEXT* pBuildInfo + VkMicromapBuildSizesInfoEXT* pSizeInfo + + + void vkGetShaderModuleIdentifierEXT + VkDevice device + VkShaderModule shaderModule + VkShaderModuleIdentifierEXT* pIdentifier + + + void vkGetShaderModuleCreateInfoIdentifierEXT + VkDevice device + const VkShaderModuleCreateInfo* pCreateInfo + VkShaderModuleIdentifierEXT* pIdentifier + + + void vkGetImageSubresourceLayout2KHR + VkDevice device + VkImage image + const VkImageSubresource2KHR* pSubresource + VkSubresourceLayout2KHR* pLayout + + + + VkResult vkGetPipelinePropertiesEXT + VkDevice device + const VkPipelineInfoEXT* pPipelineInfo + VkBaseOutStructure* pPipelineProperties + + + void vkExportMetalObjectsEXT + VkDevice device + VkExportMetalObjectsInfoEXT* pMetalObjectsInfo + + + VkResult vkGetFramebufferTilePropertiesQCOM + VkDevice device + VkFramebuffer framebuffer + uint32_t* pPropertiesCount + VkTilePropertiesQCOM* pProperties + + + VkResult vkGetDynamicRenderingTilePropertiesQCOM + VkDevice device + const VkRenderingInfo* pRenderingInfo + VkTilePropertiesQCOM* pProperties + + + VkResult vkGetPhysicalDeviceOpticalFlowImageFormatsNV + VkPhysicalDevice physicalDevice + const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo + uint32_t* pFormatCount + VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties + + + VkResult vkCreateOpticalFlowSessionNV + VkDevice device + const VkOpticalFlowSessionCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkOpticalFlowSessionNV* pSession + + + void vkDestroyOpticalFlowSessionNV + VkDevice device + VkOpticalFlowSessionNV session + const VkAllocationCallbacks* pAllocator + + + VkResult vkBindOpticalFlowSessionImageNV + VkDevice device + VkOpticalFlowSessionNV session + VkOpticalFlowSessionBindingPointNV bindingPoint + VkImageView view + VkImageLayout layout + + + void vkCmdOpticalFlowExecuteNV + VkCommandBuffer commandBuffer + VkOpticalFlowSessionNV session + const VkOpticalFlowExecuteInfoNV* pExecuteInfo + + + VkResult vkGetDeviceFaultInfoEXT + VkDevice device + VkDeviceFaultCountsEXT* pFaultCounts + VkDeviceFaultInfoEXT* pFaultInfo + + + void vkCmdSetDepthBias2EXT + VkCommandBuffer commandBuffer + const VkDepthBiasInfoEXT* pDepthBiasInfo + + + VkResult vkReleaseSwapchainImagesEXT + VkDevice device + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo + + + void vkGetDeviceImageSubresourceLayoutKHR + VkDevice device + const VkDeviceImageSubresourceInfoKHR* pInfo + VkSubresourceLayout2KHR* pLayout + + + VkResult vkMapMemory2KHR + VkDevice device + const VkMemoryMapInfoKHR* pMemoryMapInfo + void** ppData + + + VkResult vkUnmapMemory2KHR + VkDevice device + const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo + + + VkResult vkCreateShadersEXT + VkDevice device + uint32_t createInfoCount + const VkShaderCreateInfoEXT* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkShaderEXT* pShaders + + + void vkDestroyShaderEXT + VkDevice device + VkShaderEXT shader + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetShaderBinaryDataEXT + VkDevice device + VkShaderEXT shader + size_t* pDataSize + void* pData + + + void vkCmdBindShadersEXT + VkCommandBuffer commandBuffer + uint32_t stageCount + const VkShaderStageFlagBits* pStages + const VkShaderEXT* pShaders + + + VkResult vkGetScreenBufferPropertiesQNX + VkDevice device + const struct _screen_buffer* buffer + VkScreenBufferPropertiesQNX* pProperties + + + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkCooperativeMatrixPropertiesKHR* pProperties + + + VkResult vkGetExecutionGraphPipelineScratchSizeAMDX + VkDevice device + VkPipeline executionGraph + VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo + + + VkResult vkGetExecutionGraphPipelineNodeIndexAMDX + VkDevice device + VkPipeline executionGraph + const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo + uint32_t* pNodeIndex + + + VkResult vkCreateExecutionGraphPipelinesAMDX + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + + void vkCmdInitializeGraphScratchMemoryAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + + + void vkCmdDispatchGraphAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + const VkDispatchGraphCountInfoAMDX* pCountInfo + + + void vkCmdDispatchGraphIndirectAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + const VkDispatchGraphCountInfoAMDX* pCountInfo + + + void vkCmdDispatchGraphIndirectCountAMDX + VkCommandBuffer commandBuffer + VkDeviceAddress scratch + VkDeviceAddress countInfo + + + void vkCmdBindDescriptorSets2KHR + VkCommandBuffer commandBuffer + const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo + + + void vkCmdPushConstants2KHR + VkCommandBuffer commandBuffer + const VkPushConstantsInfoKHR* pPushConstantsInfo + + + void vkCmdPushDescriptorSet2KHR + VkCommandBuffer commandBuffer + const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo + + + void vkCmdPushDescriptorSetWithTemplate2KHR + VkCommandBuffer commandBuffer + const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo + + + void vkCmdSetDescriptorBufferOffsets2EXT + VkCommandBuffer commandBuffer + const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo + + + void vkCmdBindDescriptorBufferEmbeddedSamplers2EXT + VkCommandBuffer commandBuffer + const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo + + + VkResult vkSetLatencySleepModeNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepModeInfoNV* pSleepModeInfo + + + VkResult vkLatencySleepNV + VkDevice device + VkSwapchainKHR swapchain + const VkLatencySleepInfoNV* pSleepInfo + + + void vkSetLatencyMarkerNV + VkDevice device + VkSwapchainKHR swapchain + const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkGetLatencyTimingsNV + VkDevice device + VkSwapchainKHR swapchain + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo + + + void vkQueueNotifyOutOfBandNV + VkQueue queue + const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo + + + void vkCmdSetRenderingAttachmentLocationsKHR + VkCommandBuffer commandBuffer + const VkRenderingAttachmentLocationInfoKHR* pLocationInfo + + + void vkCmdSetRenderingInputAttachmentIndicesKHR + VkCommandBuffer commandBuffer + const VkRenderingInputAttachmentIndexInfoKHR* pInputAttachmentIndexInfo + + + void vkCmdSetDepthClampRangeEXT + VkCommandBuffer commandBuffer + VkDepthClampModeEXT depthClampMode + const VkDepthClampRangeEXT* pDepthClampRange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6352,26 +15953,42 @@ server. + + + + + + + + - + + + + + + + + + @@ -6381,17 +15998,38 @@ server. + + + + + + + + + + + + + + + + + + + + + @@ -6399,10 +16037,17 @@ server. + + + + + + + @@ -6410,51 +16055,167 @@ server. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6465,6 +16226,29 @@ server. + + + + + + + + + + + + + + + + + + + + + + + @@ -6472,11 +16256,28 @@ server. + + + + + + + + + + + + + + + + + @@ -6484,6 +16285,22 @@ server. + + + + + + + + + + + + + + + + @@ -6529,20 +16346,8 @@ server. - - - - - - - - - - - - - + @@ -6597,7 +16402,8 @@ server. - + + @@ -6692,18 +16498,22 @@ server. + - + + + - + + @@ -6864,2303 +16674,11350 @@ server. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This duplicates definitions in VK_KHR_device_group below + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It is not exposed to applications and uses types that are not part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This duplicates definitions in other extensions, below + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enum offset=0 was mistakenly used for the 1.1 core enum + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES + (value=1000094000). Fortunately, no conflict resulted. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This extension requires buffer_device_address functionality. + VK_EXT_buffer_device_address is also acceptable, but since it is deprecated the KHR version is preferred. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + These enums are present only to inform downstream + consumers like KTX2. There is no actual Vulkan extension + corresponding to the enums. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - + + + - - This duplicates definitions in VK_KHR_device_group below - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT + were not promoted to Vulkan 1.3. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VkPhysicalDevice4444FormatsFeaturesEXT and + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT + were not promoted to Vulkan 1.3. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - + + - + - - - - - - - + + + + + + - + - - - - - - - + + - + - - - - - - - + + - + - - - - - - - + + - + - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + - - This duplicates definitions in other extensions, below - - + + + + + + - + - - - + + + + + + + + + + + + + + - + - - + + + + + + + + - + - - - + + + + + + + + + + - + - - - - + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + + + - + - - + + + + + + + + + + - + - - + + + + + + + + + + + + + + + - + - - + + + + + + + - + - - - - - - - - - - - - - - + + - + - - + + - + - - + + + + + + + + + - + - - + + + + + + - + - - - - - - - - + + - + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + + + + + + + - + - - + + - + - - - - + + - + - - + + + + + + + - + - - + + + + + + + + + + + - + - - + + + + + + - + - - + + + - + - - + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + - + - - - - + + - + - - - - - - + + - + - - + + + + - + - - + + - + - - + + - + - - + + - + - - + + + + + + + + + + + + + - + - - + + - + - - + + - + - - - + + - + - - + + - + - - + + - + - - - - - - - - - + + - + - - - - - - - - - - + + + + + + + - + - - - - - - - - + + + + + + - + - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - + + + + + + + + + + + + + + + + - + - - - - - - + + + + - + - - + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - - - - - + + + + + - + - - + + + + - + - - - - - - - - + + - + - - - - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + - + - - - - + + - + - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - + + - + - - - - - - - - - - - - + + + - + - - - - - - - - + + - + - - - - - - + + - - - + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + - + - - + + + + + + + + + - + - - - - + + + + + + + - + - - - - - - + + + + - + - - - - - - - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - + + - + - - - + + + + + + + + + + + + + + - + - - - - + + + + + + + + + - + - - - - - - - - + + + + - + - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + - + - - - - enum offset=0 was mistakenly used for the 1.1 core enum - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES - (value=1000094000). Fortunately, no conflict resulted. - + + + + + + + + + NV internal use only + + + + + + + + + + + + + + + + + + + + + + + + + + + NV internal use only + + + + + + - + - - + + + + + + + + + + - + - - + + + + + + + - + - - - - - - + + - + - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + - + - - + + - + - - + + - + - - - - - - - - - - - - - - - - + + - + - - - - - - + + - + - - + + + + + + + + + + + + - + - - + + - + - - + + + - + - - - - - - - - - - - - - + + - + - - + + - + - - - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + - + - - - - - - - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + - + - - - - + + + - + - - - - - - - - - - - - - - - - + + + + + + + - + - - - - - - + + - + - - - - - - + + + + + + + + + + + - + - - + + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - + + - + - - - - - - - - + + - + - - + + - + - - + + - + - - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + - + - - + + + + + + + - + - - + + - + - - - - - - - - - - - + + - + - - + + + + + + - + - - + + + + + + + - + - - + + + + + + + + + + + + + + - + - - + + - + - - - - - - - - - - - - - - - - - - - + + - + - - + + + + + + + + + + - - - + - - - - - - - - - - - - - - - + + + + + + - + - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + - + - - + + + + + - + - - + + - + - - - - - - + + - + - - - + + + + + + + - + - - + + + + + + + + + + - + - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + - + - - - - - - - - - + + + + + + + + + + + + + + - + - - + + + + + - + - - + + - + - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - + + + + + + - + - - + + + + + + + + + + + - + - - + + - + - - - - - + + - + - - - - - - - - - - - - - + + - + - - + + - + - - + + - + - - - - - - - + + - + - - - - + + - + - - + + - + - - + + + + + + + - + - - + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + + - + - - + + - + - - + + - + - - - - + + - + - - - - - - - - - - - - - + + + + + - + - - - + + - + - - + + - + - - + + + + + + + + + + + + + + - + - - + + - + - - + + + + + - + - - + + - + - - - - + + - + - - + + + + + - + - - + + + + + - + - - + + - + - - + + - + - - - - - - - - - + + + + + + + + + + + + + + + + - + - - + + + + + - + - - + + + + + - + - - + + - + - - + + - + - - + + - + - - + + + + - + - - + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - - + + + - + - - + + + + + + + + + - + - - - - - - + + + - + - - + + - + - - + + + + - + - - + + - + - - - - - - - - + + - + - - + + - + - - + + + + + + + + + + + - + - - + + - + - - + + - + - - - - + + + - + - - + + + + - + - - + + - + - - + + - + - - + + + - + - - + + - + - - + + - + - - - - - - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fragment shader stage is added by the VK_EXT_shader_tile_image extension + + + + + + + Fragment shader stage is added by the VK_EXT_shader_tile_image extension + + + + + + + + + + + + + + + + + + + TODO/Suggestion. Introduce 'synclist' (could be a different name) element + that specifies the list of stages, accesses, etc. This list can be used by + 'syncaccess' or 'syncstage' elements. For example, 'syncsupport' in addition to the + 'stage' attribute can support 'list' attribute to reference 'synclist'. + We can have the lists defined for ALL stages and it can be shared between MEMORY_READ + and MEMORY_WRITE accesses. Similarly, ALL shader stages list is often used. This proposal + is a way to fix duplication problem. When new stage is added multiple places needs to be + updated. It is potential source of bugs. The expectation such setup will produce more + robust system and also more simple structure to review and validate. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT + VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT + VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT + VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT + VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT + VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT + VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT + VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + + + VK_PIPELINE_STAGE_2_TRANSFER_BIT + + + VK_PIPELINE_STAGE_2_HOST_BIT + + + VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI + + + VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT + + + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR + + + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR + + + VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT + + + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR + + + VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR + + + VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR + + + VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/glad/files/vk_platform.h b/glad/files/vk_platform.h index 72892992..0ecd4f64 100644 --- a/glad/files/vk_platform.h +++ b/glad/files/vk_platform.h @@ -2,19 +2,9 @@ // File: vk_platform.h // /* -** Copyright (c) 2014-2017 The Khronos Group Inc. +** Copyright 2014-2024 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ @@ -52,7 +42,7 @@ extern "C" #define VKAPI_CALL __stdcall #define VKAPI_PTR VKAPI_CALL #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 - #error "Vulkan isn't supported for the 'armeabi' NDK ABI" + #error "Vulkan is not supported for the 'armeabi' NDK ABI" #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" // calling convention, i.e. float parameters are passed in registers. This @@ -68,7 +58,9 @@ extern "C" #define VKAPI_PTR #endif -#include +#if !defined(VK_NO_STDDEF_H) + #include +#endif // !defined(VK_NO_STDDEF_H) #if !defined(VK_NO_STDINT_H) #if defined(_MSC_VER) && (_MSC_VER < 1600) diff --git a/glad/files/vulkan_video_codec_av1std.h b/glad/files/vulkan_video_codec_av1std.h new file mode 100644 index 00000000..8ce283e8 --- /dev/null +++ b/glad/files/vulkan_video_codec_av1std.h @@ -0,0 +1,392 @@ +#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ +#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_av1std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_AV1_NUM_REF_FRAMES 8 +#define STD_VIDEO_AV1_REFS_PER_FRAME 7 +#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8 +#define STD_VIDEO_AV1_MAX_TILE_COLS 64 +#define STD_VIDEO_AV1_MAX_TILE_ROWS 64 +#define STD_VIDEO_AV1_MAX_SEGMENTS 8 +#define STD_VIDEO_AV1_SEG_LVL_MAX 8 +#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7 +#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2 +#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2 +#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2 +#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4 +#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2 +#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8 +#define STD_VIDEO_AV1_MAX_NUM_PLANES 3 +#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6 +#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14 +#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10 +#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10 +#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24 +#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25 + +typedef enum StdVideoAV1Profile { + STD_VIDEO_AV1_PROFILE_MAIN = 0, + STD_VIDEO_AV1_PROFILE_HIGH = 1, + STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2, + STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1Profile; + +typedef enum StdVideoAV1Level { + STD_VIDEO_AV1_LEVEL_2_0 = 0, + STD_VIDEO_AV1_LEVEL_2_1 = 1, + STD_VIDEO_AV1_LEVEL_2_2 = 2, + STD_VIDEO_AV1_LEVEL_2_3 = 3, + STD_VIDEO_AV1_LEVEL_3_0 = 4, + STD_VIDEO_AV1_LEVEL_3_1 = 5, + STD_VIDEO_AV1_LEVEL_3_2 = 6, + STD_VIDEO_AV1_LEVEL_3_3 = 7, + STD_VIDEO_AV1_LEVEL_4_0 = 8, + STD_VIDEO_AV1_LEVEL_4_1 = 9, + STD_VIDEO_AV1_LEVEL_4_2 = 10, + STD_VIDEO_AV1_LEVEL_4_3 = 11, + STD_VIDEO_AV1_LEVEL_5_0 = 12, + STD_VIDEO_AV1_LEVEL_5_1 = 13, + STD_VIDEO_AV1_LEVEL_5_2 = 14, + STD_VIDEO_AV1_LEVEL_5_3 = 15, + STD_VIDEO_AV1_LEVEL_6_0 = 16, + STD_VIDEO_AV1_LEVEL_6_1 = 17, + STD_VIDEO_AV1_LEVEL_6_2 = 18, + STD_VIDEO_AV1_LEVEL_6_3 = 19, + STD_VIDEO_AV1_LEVEL_7_0 = 20, + STD_VIDEO_AV1_LEVEL_7_1 = 21, + STD_VIDEO_AV1_LEVEL_7_2 = 22, + STD_VIDEO_AV1_LEVEL_7_3 = 23, + STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1Level; + +typedef enum StdVideoAV1FrameType { + STD_VIDEO_AV1_FRAME_TYPE_KEY = 0, + STD_VIDEO_AV1_FRAME_TYPE_INTER = 1, + STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2, + STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3, + STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1FrameType; + +typedef enum StdVideoAV1ReferenceName { + STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0, + STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1, + STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2, + STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3, + STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4, + STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5, + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6, + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7, + STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ReferenceName; + +typedef enum StdVideoAV1InterpolationFilter { + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0, + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, + STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3, + STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4, + STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1InterpolationFilter; + +typedef enum StdVideoAV1TxMode { + STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0, + STD_VIDEO_AV1_TX_MODE_LARGEST = 1, + STD_VIDEO_AV1_TX_MODE_SELECT = 2, + STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1TxMode; + +typedef enum StdVideoAV1FrameRestorationType { + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1FrameRestorationType; + +typedef enum StdVideoAV1ColorPrimaries { + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7, + STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9, + STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, + STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, + STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ColorPrimaries; + +typedef enum StdVideoAV1TransferCharacteristics { + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1TransferCharacteristics; + +typedef enum StdVideoAV1MatrixCoefficients { + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1MatrixCoefficients; + +typedef enum StdVideoAV1ChromaSamplePosition { + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ChromaSamplePosition; +typedef struct StdVideoAV1ColorConfigFlags { + uint32_t mono_chrome : 1; + uint32_t color_range : 1; + uint32_t separate_uv_delta_q : 1; + uint32_t color_description_present_flag : 1; + uint32_t reserved : 28; +} StdVideoAV1ColorConfigFlags; + +typedef struct StdVideoAV1ColorConfig { + StdVideoAV1ColorConfigFlags flags; + uint8_t BitDepth; + uint8_t subsampling_x; + uint8_t subsampling_y; + uint8_t reserved1; + StdVideoAV1ColorPrimaries color_primaries; + StdVideoAV1TransferCharacteristics transfer_characteristics; + StdVideoAV1MatrixCoefficients matrix_coefficients; + StdVideoAV1ChromaSamplePosition chroma_sample_position; +} StdVideoAV1ColorConfig; + +typedef struct StdVideoAV1TimingInfoFlags { + uint32_t equal_picture_interval : 1; + uint32_t reserved : 31; +} StdVideoAV1TimingInfoFlags; + +typedef struct StdVideoAV1TimingInfo { + StdVideoAV1TimingInfoFlags flags; + uint32_t num_units_in_display_tick; + uint32_t time_scale; + uint32_t num_ticks_per_picture_minus_1; +} StdVideoAV1TimingInfo; + +typedef struct StdVideoAV1LoopFilterFlags { + uint32_t loop_filter_delta_enabled : 1; + uint32_t loop_filter_delta_update : 1; + uint32_t reserved : 30; +} StdVideoAV1LoopFilterFlags; + +typedef struct StdVideoAV1LoopFilter { + StdVideoAV1LoopFilterFlags flags; + uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; + uint8_t loop_filter_sharpness; + uint8_t update_ref_delta; + int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; + uint8_t update_mode_delta; + int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; +} StdVideoAV1LoopFilter; + +typedef struct StdVideoAV1QuantizationFlags { + uint32_t using_qmatrix : 1; + uint32_t diff_uv_delta : 1; + uint32_t reserved : 30; +} StdVideoAV1QuantizationFlags; + +typedef struct StdVideoAV1Quantization { + StdVideoAV1QuantizationFlags flags; + uint8_t base_q_idx; + int8_t DeltaQYDc; + int8_t DeltaQUDc; + int8_t DeltaQUAc; + int8_t DeltaQVDc; + int8_t DeltaQVAc; + uint8_t qm_y; + uint8_t qm_u; + uint8_t qm_v; +} StdVideoAV1Quantization; + +typedef struct StdVideoAV1Segmentation { + uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; + int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; +} StdVideoAV1Segmentation; + +typedef struct StdVideoAV1TileInfoFlags { + uint32_t uniform_tile_spacing_flag : 1; + uint32_t reserved : 31; +} StdVideoAV1TileInfoFlags; + +typedef struct StdVideoAV1TileInfo { + StdVideoAV1TileInfoFlags flags; + uint8_t TileCols; + uint8_t TileRows; + uint16_t context_update_tile_id; + uint8_t tile_size_bytes_minus_1; + uint8_t reserved1[7]; + const uint16_t* pMiColStarts; + const uint16_t* pMiRowStarts; + const uint16_t* pWidthInSbsMinus1; + const uint16_t* pHeightInSbsMinus1; +} StdVideoAV1TileInfo; + +typedef struct StdVideoAV1CDEF { + uint8_t cdef_damping_minus_3; + uint8_t cdef_bits; + uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; +} StdVideoAV1CDEF; + +typedef struct StdVideoAV1LoopRestoration { + StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; + uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; +} StdVideoAV1LoopRestoration; + +typedef struct StdVideoAV1GlobalMotion { + uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; + int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; +} StdVideoAV1GlobalMotion; + +typedef struct StdVideoAV1FilmGrainFlags { + uint32_t chroma_scaling_from_luma : 1; + uint32_t overlap_flag : 1; + uint32_t clip_to_restricted_range : 1; + uint32_t update_grain : 1; + uint32_t reserved : 28; +} StdVideoAV1FilmGrainFlags; + +typedef struct StdVideoAV1FilmGrain { + StdVideoAV1FilmGrainFlags flags; + uint8_t grain_scaling_minus_8; + uint8_t ar_coeff_lag; + uint8_t ar_coeff_shift_minus_6; + uint8_t grain_scale_shift; + uint16_t grain_seed; + uint8_t film_grain_params_ref_idx; + uint8_t num_y_points; + uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t num_cb_points; + uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t num_cr_points; + uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; + int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + uint8_t cb_mult; + uint8_t cb_luma_mult; + uint16_t cb_offset; + uint8_t cr_mult; + uint8_t cr_luma_mult; + uint16_t cr_offset; +} StdVideoAV1FilmGrain; + +typedef struct StdVideoAV1SequenceHeaderFlags { + uint32_t still_picture : 1; + uint32_t reduced_still_picture_header : 1; + uint32_t use_128x128_superblock : 1; + uint32_t enable_filter_intra : 1; + uint32_t enable_intra_edge_filter : 1; + uint32_t enable_interintra_compound : 1; + uint32_t enable_masked_compound : 1; + uint32_t enable_warped_motion : 1; + uint32_t enable_dual_filter : 1; + uint32_t enable_order_hint : 1; + uint32_t enable_jnt_comp : 1; + uint32_t enable_ref_frame_mvs : 1; + uint32_t frame_id_numbers_present_flag : 1; + uint32_t enable_superres : 1; + uint32_t enable_cdef : 1; + uint32_t enable_restoration : 1; + uint32_t film_grain_params_present : 1; + uint32_t timing_info_present_flag : 1; + uint32_t initial_display_delay_present_flag : 1; + uint32_t reserved : 13; +} StdVideoAV1SequenceHeaderFlags; + +typedef struct StdVideoAV1SequenceHeader { + StdVideoAV1SequenceHeaderFlags flags; + StdVideoAV1Profile seq_profile; + uint8_t frame_width_bits_minus_1; + uint8_t frame_height_bits_minus_1; + uint16_t max_frame_width_minus_1; + uint16_t max_frame_height_minus_1; + uint8_t delta_frame_id_length_minus_2; + uint8_t additional_frame_id_length_minus_1; + uint8_t order_hint_bits_minus_1; + uint8_t seq_force_integer_mv; + uint8_t seq_force_screen_content_tools; + uint8_t reserved1[5]; + const StdVideoAV1ColorConfig* pColorConfig; + const StdVideoAV1TimingInfo* pTimingInfo; +} StdVideoAV1SequenceHeader; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_av1std_decode.h b/glad/files/vulkan_video_codec_av1std_decode.h new file mode 100644 index 00000000..6b8130cd --- /dev/null +++ b/glad/files/vulkan_video_codec_av1std_decode.h @@ -0,0 +1,109 @@ +#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_av1std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_av1std_decode 1 +#include "vulkan_video_codec_av1std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_decode" +typedef struct StdVideoDecodeAV1PictureInfoFlags { + uint32_t error_resilient_mode : 1; + uint32_t disable_cdf_update : 1; + uint32_t use_superres : 1; + uint32_t render_and_frame_size_different : 1; + uint32_t allow_screen_content_tools : 1; + uint32_t is_filter_switchable : 1; + uint32_t force_integer_mv : 1; + uint32_t frame_size_override_flag : 1; + uint32_t buffer_removal_time_present_flag : 1; + uint32_t allow_intrabc : 1; + uint32_t frame_refs_short_signaling : 1; + uint32_t allow_high_precision_mv : 1; + uint32_t is_motion_mode_switchable : 1; + uint32_t use_ref_frame_mvs : 1; + uint32_t disable_frame_end_update_cdf : 1; + uint32_t allow_warped_motion : 1; + uint32_t reduced_tx_set : 1; + uint32_t reference_select : 1; + uint32_t skip_mode_present : 1; + uint32_t delta_q_present : 1; + uint32_t delta_lf_present : 1; + uint32_t delta_lf_multi : 1; + uint32_t segmentation_enabled : 1; + uint32_t segmentation_update_map : 1; + uint32_t segmentation_temporal_update : 1; + uint32_t segmentation_update_data : 1; + uint32_t UsesLr : 1; + uint32_t usesChromaLr : 1; + uint32_t apply_grain : 1; + uint32_t reserved : 3; +} StdVideoDecodeAV1PictureInfoFlags; + +typedef struct StdVideoDecodeAV1PictureInfo { + StdVideoDecodeAV1PictureInfoFlags flags; + StdVideoAV1FrameType frame_type; + uint32_t current_frame_id; + uint8_t OrderHint; + uint8_t primary_ref_frame; + uint8_t refresh_frame_flags; + uint8_t reserved1; + StdVideoAV1InterpolationFilter interpolation_filter; + StdVideoAV1TxMode TxMode; + uint8_t delta_q_res; + uint8_t delta_lf_res; + uint8_t SkipModeFrame[STD_VIDEO_AV1_SKIP_MODE_FRAMES]; + uint8_t coded_denom; + uint8_t reserved2[3]; + uint8_t OrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; + uint32_t expectedFrameId[STD_VIDEO_AV1_NUM_REF_FRAMES]; + const StdVideoAV1TileInfo* pTileInfo; + const StdVideoAV1Quantization* pQuantization; + const StdVideoAV1Segmentation* pSegmentation; + const StdVideoAV1LoopFilter* pLoopFilter; + const StdVideoAV1CDEF* pCDEF; + const StdVideoAV1LoopRestoration* pLoopRestoration; + const StdVideoAV1GlobalMotion* pGlobalMotion; + const StdVideoAV1FilmGrain* pFilmGrain; +} StdVideoDecodeAV1PictureInfo; + +typedef struct StdVideoDecodeAV1ReferenceInfoFlags { + uint32_t disable_frame_end_update_cdf : 1; + uint32_t segmentation_enabled : 1; + uint32_t reserved : 30; +} StdVideoDecodeAV1ReferenceInfoFlags; + +typedef struct StdVideoDecodeAV1ReferenceInfo { + StdVideoDecodeAV1ReferenceInfoFlags flags; + uint8_t frame_type; + uint8_t RefFrameSignBias; + uint8_t OrderHint; + uint8_t SavedOrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; +} StdVideoDecodeAV1ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h264std.h b/glad/files/vulkan_video_codec_h264std.h new file mode 100644 index 00000000..6d27af37 --- /dev/null +++ b/glad/files/vulkan_video_codec_h264std.h @@ -0,0 +1,312 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_H_ +#define VULKAN_VIDEO_CODEC_H264STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32 +#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6 +#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16 +#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6 +#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64 +#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32 +#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2 +#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF + +typedef enum StdVideoH264ChromaFormatIdc { + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ChromaFormatIdc; + +typedef enum StdVideoH264ProfileIdc { + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66, + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77, + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100, + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244, + STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ProfileIdc; + +typedef enum StdVideoH264LevelIdc { + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0, + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1, + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2, + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3, + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4, + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5, + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6, + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7, + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8, + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9, + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10, + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11, + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12, + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13, + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14, + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15, + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16, + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17, + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18, + STD_VIDEO_H264_LEVEL_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264LevelIdc; + +typedef enum StdVideoH264PocType { + STD_VIDEO_H264_POC_TYPE_0 = 0, + STD_VIDEO_H264_POC_TYPE_1 = 1, + STD_VIDEO_H264_POC_TYPE_2 = 2, + STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264PocType; + +typedef enum StdVideoH264AspectRatioIdc { + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0, + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1, + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2, + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3, + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4, + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5, + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6, + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7, + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8, + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9, + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10, + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11, + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12, + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13, + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14, + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15, + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16, + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264AspectRatioIdc; + +typedef enum StdVideoH264WeightedBipredIdc { + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264WeightedBipredIdc; + +typedef enum StdVideoH264ModificationOfPicNumsIdc { + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ModificationOfPicNumsIdc; + +typedef enum StdVideoH264MemMgmtControlOp { + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264MemMgmtControlOp; + +typedef enum StdVideoH264CabacInitIdc { + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0, + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1, + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2, + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264CabacInitIdc; + +typedef enum StdVideoH264DisableDeblockingFilterIdc { + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264DisableDeblockingFilterIdc; + +typedef enum StdVideoH264SliceType { + STD_VIDEO_H264_SLICE_TYPE_P = 0, + STD_VIDEO_H264_SLICE_TYPE_B = 1, + STD_VIDEO_H264_SLICE_TYPE_I = 2, + STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264SliceType; + +typedef enum StdVideoH264PictureType { + STD_VIDEO_H264_PICTURE_TYPE_P = 0, + STD_VIDEO_H264_PICTURE_TYPE_B = 1, + STD_VIDEO_H264_PICTURE_TYPE_I = 2, + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5, + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264PictureType; + +typedef enum StdVideoH264NonVclNaluType { + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264NonVclNaluType; +typedef struct StdVideoH264SpsVuiFlags { + uint32_t aspect_ratio_info_present_flag : 1; + uint32_t overscan_info_present_flag : 1; + uint32_t overscan_appropriate_flag : 1; + uint32_t video_signal_type_present_flag : 1; + uint32_t video_full_range_flag : 1; + uint32_t color_description_present_flag : 1; + uint32_t chroma_loc_info_present_flag : 1; + uint32_t timing_info_present_flag : 1; + uint32_t fixed_frame_rate_flag : 1; + uint32_t bitstream_restriction_flag : 1; + uint32_t nal_hrd_parameters_present_flag : 1; + uint32_t vcl_hrd_parameters_present_flag : 1; +} StdVideoH264SpsVuiFlags; + +typedef struct StdVideoH264HrdParameters { + uint8_t cpb_cnt_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t reserved1; + uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t initial_cpb_removal_delay_length_minus1; + uint32_t cpb_removal_delay_length_minus1; + uint32_t dpb_output_delay_length_minus1; + uint32_t time_offset_length; +} StdVideoH264HrdParameters; + +typedef struct StdVideoH264SequenceParameterSetVui { + StdVideoH264SpsVuiFlags flags; + StdVideoH264AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coefficients; + uint32_t num_units_in_tick; + uint32_t time_scale; + uint8_t max_num_reorder_frames; + uint8_t max_dec_frame_buffering; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint32_t reserved1; + const StdVideoH264HrdParameters* pHrdParameters; +} StdVideoH264SequenceParameterSetVui; + +typedef struct StdVideoH264SpsFlags { + uint32_t constraint_set0_flag : 1; + uint32_t constraint_set1_flag : 1; + uint32_t constraint_set2_flag : 1; + uint32_t constraint_set3_flag : 1; + uint32_t constraint_set4_flag : 1; + uint32_t constraint_set5_flag : 1; + uint32_t direct_8x8_inference_flag : 1; + uint32_t mb_adaptive_frame_field_flag : 1; + uint32_t frame_mbs_only_flag : 1; + uint32_t delta_pic_order_always_zero_flag : 1; + uint32_t separate_colour_plane_flag : 1; + uint32_t gaps_in_frame_num_value_allowed_flag : 1; + uint32_t qpprime_y_zero_transform_bypass_flag : 1; + uint32_t frame_cropping_flag : 1; + uint32_t seq_scaling_matrix_present_flag : 1; + uint32_t vui_parameters_present_flag : 1; +} StdVideoH264SpsFlags; + +typedef struct StdVideoH264ScalingLists { + uint16_t scaling_list_present_mask; + uint16_t use_default_scaling_matrix_mask; + uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS]; + uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS]; +} StdVideoH264ScalingLists; + +typedef struct StdVideoH264SequenceParameterSet { + StdVideoH264SpsFlags flags; + StdVideoH264ProfileIdc profile_idc; + StdVideoH264LevelIdc level_idc; + StdVideoH264ChromaFormatIdc chroma_format_idc; + uint8_t seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_frame_num_minus4; + StdVideoH264PocType pic_order_cnt_type; + int32_t offset_for_non_ref_pic; + int32_t offset_for_top_to_bottom_field; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t num_ref_frames_in_pic_order_cnt_cycle; + uint8_t max_num_ref_frames; + uint8_t reserved1; + uint32_t pic_width_in_mbs_minus1; + uint32_t pic_height_in_map_units_minus1; + uint32_t frame_crop_left_offset; + uint32_t frame_crop_right_offset; + uint32_t frame_crop_top_offset; + uint32_t frame_crop_bottom_offset; + uint32_t reserved2; + const int32_t* pOffsetForRefFrame; + const StdVideoH264ScalingLists* pScalingLists; + const StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui; +} StdVideoH264SequenceParameterSet; + +typedef struct StdVideoH264PpsFlags { + uint32_t transform_8x8_mode_flag : 1; + uint32_t redundant_pic_cnt_present_flag : 1; + uint32_t constrained_intra_pred_flag : 1; + uint32_t deblocking_filter_control_present_flag : 1; + uint32_t weighted_pred_flag : 1; + uint32_t bottom_field_pic_order_in_frame_present_flag : 1; + uint32_t entropy_coding_mode_flag : 1; + uint32_t pic_scaling_matrix_present_flag : 1; +} StdVideoH264PpsFlags; + +typedef struct StdVideoH264PictureParameterSet { + StdVideoH264PpsFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + StdVideoH264WeightedBipredIdc weighted_bipred_idc; + int8_t pic_init_qp_minus26; + int8_t pic_init_qs_minus26; + int8_t chroma_qp_index_offset; + int8_t second_chroma_qp_index_offset; + const StdVideoH264ScalingLists* pScalingLists; +} StdVideoH264PictureParameterSet; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h264std_decode.h b/glad/files/vulkan_video_codec_h264std_decode.h new file mode 100644 index 00000000..439cb885 --- /dev/null +++ b/glad/files/vulkan_video_codec_h264std_decode.h @@ -0,0 +1,77 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std_decode 1 +#include "vulkan_video_codec_h264std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode" +#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2 + +typedef enum StdVideoDecodeH264FieldOrderCount { + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF +} StdVideoDecodeH264FieldOrderCount; +typedef struct StdVideoDecodeH264PictureInfoFlags { + uint32_t field_pic_flag : 1; + uint32_t is_intra : 1; + uint32_t IdrPicFlag : 1; + uint32_t bottom_field_flag : 1; + uint32_t is_reference : 1; + uint32_t complementary_field_pair : 1; +} StdVideoDecodeH264PictureInfoFlags; + +typedef struct StdVideoDecodeH264PictureInfo { + StdVideoDecodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t reserved1; + uint8_t reserved2; + uint16_t frame_num; + uint16_t idr_pic_id; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264PictureInfo; + +typedef struct StdVideoDecodeH264ReferenceInfoFlags { + uint32_t top_field_flag : 1; + uint32_t bottom_field_flag : 1; + uint32_t used_for_long_term_reference : 1; + uint32_t is_non_existing : 1; +} StdVideoDecodeH264ReferenceInfoFlags; + +typedef struct StdVideoDecodeH264ReferenceInfo { + StdVideoDecodeH264ReferenceInfoFlags flags; + uint16_t FrameNum; + uint16_t reserved; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h264std_encode.h b/glad/files/vulkan_video_codec_h264std_encode.h new file mode 100644 index 00000000..9e24aa5d --- /dev/null +++ b/glad/files/vulkan_video_codec_h264std_encode.h @@ -0,0 +1,147 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ +#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std_encode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std_encode 1 +#include "vulkan_video_codec_h264std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode" +typedef struct StdVideoEncodeH264WeightTableFlags { + uint32_t luma_weight_l0_flag; + uint32_t chroma_weight_l0_flag; + uint32_t luma_weight_l1_flag; + uint32_t chroma_weight_l1_flag; +} StdVideoEncodeH264WeightTableFlags; + +typedef struct StdVideoEncodeH264WeightTable { + StdVideoEncodeH264WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + uint8_t chroma_log2_weight_denom; + int8_t luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; +} StdVideoEncodeH264WeightTable; + +typedef struct StdVideoEncodeH264SliceHeaderFlags { + uint32_t direct_spatial_mv_pred_flag : 1; + uint32_t num_ref_idx_active_override_flag : 1; + uint32_t reserved : 30; +} StdVideoEncodeH264SliceHeaderFlags; + +typedef struct StdVideoEncodeH264PictureInfoFlags { + uint32_t IdrPicFlag : 1; + uint32_t is_reference : 1; + uint32_t no_output_of_prior_pics_flag : 1; + uint32_t long_term_reference_flag : 1; + uint32_t adaptive_ref_pic_marking_mode_flag : 1; + uint32_t reserved : 27; +} StdVideoEncodeH264PictureInfoFlags; + +typedef struct StdVideoEncodeH264ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t reserved : 31; +} StdVideoEncodeH264ReferenceInfoFlags; + +typedef struct StdVideoEncodeH264ReferenceListsInfoFlags { + uint32_t ref_pic_list_modification_flag_l0 : 1; + uint32_t ref_pic_list_modification_flag_l1 : 1; + uint32_t reserved : 30; +} StdVideoEncodeH264ReferenceListsInfoFlags; + +typedef struct StdVideoEncodeH264RefListModEntry { + StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc; + uint16_t abs_diff_pic_num_minus1; + uint16_t long_term_pic_num; +} StdVideoEncodeH264RefListModEntry; + +typedef struct StdVideoEncodeH264RefPicMarkingEntry { + StdVideoH264MemMgmtControlOp memory_management_control_operation; + uint16_t difference_of_pic_nums_minus1; + uint16_t long_term_pic_num; + uint16_t long_term_frame_idx; + uint16_t max_long_term_frame_idx_plus1; +} StdVideoEncodeH264RefPicMarkingEntry; + +typedef struct StdVideoEncodeH264ReferenceListsInfo { + StdVideoEncodeH264ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t refList0ModOpCount; + uint8_t refList1ModOpCount; + uint8_t refPicMarkingOpCount; + uint8_t reserved1[7]; + const StdVideoEncodeH264RefListModEntry* pRefList0ModOperations; + const StdVideoEncodeH264RefListModEntry* pRefList1ModOperations; + const StdVideoEncodeH264RefPicMarkingEntry* pRefPicMarkingOperations; +} StdVideoEncodeH264ReferenceListsInfo; + +typedef struct StdVideoEncodeH264PictureInfo { + StdVideoEncodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint16_t idr_pic_id; + StdVideoH264PictureType primary_pic_type; + uint32_t frame_num; + int32_t PicOrderCnt; + uint8_t temporal_id; + uint8_t reserved1[3]; + const StdVideoEncodeH264ReferenceListsInfo* pRefLists; +} StdVideoEncodeH264PictureInfo; + +typedef struct StdVideoEncodeH264ReferenceInfo { + StdVideoEncodeH264ReferenceInfoFlags flags; + StdVideoH264PictureType primary_pic_type; + uint32_t FrameNum; + int32_t PicOrderCnt; + uint16_t long_term_pic_num; + uint16_t long_term_frame_idx; + uint8_t temporal_id; +} StdVideoEncodeH264ReferenceInfo; + +typedef struct StdVideoEncodeH264SliceHeader { + StdVideoEncodeH264SliceHeaderFlags flags; + uint32_t first_mb_in_slice; + StdVideoH264SliceType slice_type; + int8_t slice_alpha_c0_offset_div2; + int8_t slice_beta_offset_div2; + int8_t slice_qp_delta; + uint8_t reserved1; + StdVideoH264CabacInitIdc cabac_init_idc; + StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; + const StdVideoEncodeH264WeightTable* pWeightTable; +} StdVideoEncodeH264SliceHeader; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h265std.h b/glad/files/vulkan_video_codec_h265std.h new file mode 100644 index 00000000..d0a1bacb --- /dev/null +++ b/glad/files/vulkan_video_codec_h265std.h @@ -0,0 +1,446 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_H_ +#define VULKAN_VIDEO_CODEC_H265STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32 +#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7 +#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16 +#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2 +#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21 +#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3 +#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128 +#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15 +#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2 +#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64 +#define STD_VIDEO_H265_MAX_DPB_SIZE 16 +#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32 +#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16 +#define STD_VIDEO_H265_MAX_DELTA_POC 48 +#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF + +typedef enum StdVideoH265ChromaFormatIdc { + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265ChromaFormatIdc; + +typedef enum StdVideoH265ProfileIdc { + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1, + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2, + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3, + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4, + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9, + STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265ProfileIdc; + +typedef enum StdVideoH265LevelIdc { + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0, + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1, + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2, + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3, + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4, + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5, + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6, + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7, + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8, + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9, + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10, + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11, + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12, + STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265LevelIdc; + +typedef enum StdVideoH265SliceType { + STD_VIDEO_H265_SLICE_TYPE_B = 0, + STD_VIDEO_H265_SLICE_TYPE_P = 1, + STD_VIDEO_H265_SLICE_TYPE_I = 2, + STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265SliceType; + +typedef enum StdVideoH265PictureType { + STD_VIDEO_H265_PICTURE_TYPE_P = 0, + STD_VIDEO_H265_PICTURE_TYPE_B = 1, + STD_VIDEO_H265_PICTURE_TYPE_I = 2, + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3, + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265PictureType; + +typedef enum StdVideoH265AspectRatioIdc { + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0, + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1, + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2, + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3, + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4, + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5, + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6, + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7, + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8, + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9, + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10, + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11, + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12, + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13, + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14, + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15, + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16, + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265AspectRatioIdc; +typedef struct StdVideoH265DecPicBufMgr { + uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; +} StdVideoH265DecPicBufMgr; + +typedef struct StdVideoH265SubLayerHrdParameters { + uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cbr_flag; +} StdVideoH265SubLayerHrdParameters; + +typedef struct StdVideoH265HrdFlags { + uint32_t nal_hrd_parameters_present_flag : 1; + uint32_t vcl_hrd_parameters_present_flag : 1; + uint32_t sub_pic_hrd_params_present_flag : 1; + uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1; + uint32_t fixed_pic_rate_general_flag : 8; + uint32_t fixed_pic_rate_within_cvs_flag : 8; + uint32_t low_delay_hrd_flag : 8; +} StdVideoH265HrdFlags; + +typedef struct StdVideoH265HrdParameters { + StdVideoH265HrdFlags flags; + uint8_t tick_divisor_minus2; + uint8_t du_cpb_removal_delay_increment_length_minus1; + uint8_t dpb_output_delay_du_length_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t cpb_size_du_scale; + uint8_t initial_cpb_removal_delay_length_minus1; + uint8_t au_cpb_removal_delay_length_minus1; + uint8_t dpb_output_delay_length_minus1; + uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t reserved[3]; + const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal; + const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl; +} StdVideoH265HrdParameters; + +typedef struct StdVideoH265VpsFlags { + uint32_t vps_temporal_id_nesting_flag : 1; + uint32_t vps_sub_layer_ordering_info_present_flag : 1; + uint32_t vps_timing_info_present_flag : 1; + uint32_t vps_poc_proportional_to_timing_flag : 1; +} StdVideoH265VpsFlags; + +typedef struct StdVideoH265ProfileTierLevelFlags { + uint32_t general_tier_flag : 1; + uint32_t general_progressive_source_flag : 1; + uint32_t general_interlaced_source_flag : 1; + uint32_t general_non_packed_constraint_flag : 1; + uint32_t general_frame_only_constraint_flag : 1; +} StdVideoH265ProfileTierLevelFlags; + +typedef struct StdVideoH265ProfileTierLevel { + StdVideoH265ProfileTierLevelFlags flags; + StdVideoH265ProfileIdc general_profile_idc; + StdVideoH265LevelIdc general_level_idc; +} StdVideoH265ProfileTierLevel; + +typedef struct StdVideoH265VideoParameterSet { + StdVideoH265VpsFlags flags; + uint8_t vps_video_parameter_set_id; + uint8_t vps_max_sub_layers_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint32_t vps_num_units_in_tick; + uint32_t vps_time_scale; + uint32_t vps_num_ticks_poc_diff_one_minus1; + uint32_t reserved3; + const StdVideoH265DecPicBufMgr* pDecPicBufMgr; + const StdVideoH265HrdParameters* pHrdParameters; + const StdVideoH265ProfileTierLevel* pProfileTierLevel; +} StdVideoH265VideoParameterSet; + +typedef struct StdVideoH265ScalingLists { + uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS]; + uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS]; + uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS]; + uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS]; + uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS]; + uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS]; +} StdVideoH265ScalingLists; + +typedef struct StdVideoH265SpsVuiFlags { + uint32_t aspect_ratio_info_present_flag : 1; + uint32_t overscan_info_present_flag : 1; + uint32_t overscan_appropriate_flag : 1; + uint32_t video_signal_type_present_flag : 1; + uint32_t video_full_range_flag : 1; + uint32_t colour_description_present_flag : 1; + uint32_t chroma_loc_info_present_flag : 1; + uint32_t neutral_chroma_indication_flag : 1; + uint32_t field_seq_flag : 1; + uint32_t frame_field_info_present_flag : 1; + uint32_t default_display_window_flag : 1; + uint32_t vui_timing_info_present_flag : 1; + uint32_t vui_poc_proportional_to_timing_flag : 1; + uint32_t vui_hrd_parameters_present_flag : 1; + uint32_t bitstream_restriction_flag : 1; + uint32_t tiles_fixed_structure_flag : 1; + uint32_t motion_vectors_over_pic_boundaries_flag : 1; + uint32_t restricted_ref_pic_lists_flag : 1; +} StdVideoH265SpsVuiFlags; + +typedef struct StdVideoH265SequenceParameterSetVui { + StdVideoH265SpsVuiFlags flags; + StdVideoH265AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coeffs; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint8_t reserved1; + uint8_t reserved2; + uint16_t def_disp_win_left_offset; + uint16_t def_disp_win_right_offset; + uint16_t def_disp_win_top_offset; + uint16_t def_disp_win_bottom_offset; + uint32_t vui_num_units_in_tick; + uint32_t vui_time_scale; + uint32_t vui_num_ticks_poc_diff_one_minus1; + uint16_t min_spatial_segmentation_idc; + uint16_t reserved3; + uint8_t max_bytes_per_pic_denom; + uint8_t max_bits_per_min_cu_denom; + uint8_t log2_max_mv_length_horizontal; + uint8_t log2_max_mv_length_vertical; + const StdVideoH265HrdParameters* pHrdParameters; +} StdVideoH265SequenceParameterSetVui; + +typedef struct StdVideoH265PredictorPaletteEntries { + uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE]; +} StdVideoH265PredictorPaletteEntries; + +typedef struct StdVideoH265SpsFlags { + uint32_t sps_temporal_id_nesting_flag : 1; + uint32_t separate_colour_plane_flag : 1; + uint32_t conformance_window_flag : 1; + uint32_t sps_sub_layer_ordering_info_present_flag : 1; + uint32_t scaling_list_enabled_flag : 1; + uint32_t sps_scaling_list_data_present_flag : 1; + uint32_t amp_enabled_flag : 1; + uint32_t sample_adaptive_offset_enabled_flag : 1; + uint32_t pcm_enabled_flag : 1; + uint32_t pcm_loop_filter_disabled_flag : 1; + uint32_t long_term_ref_pics_present_flag : 1; + uint32_t sps_temporal_mvp_enabled_flag : 1; + uint32_t strong_intra_smoothing_enabled_flag : 1; + uint32_t vui_parameters_present_flag : 1; + uint32_t sps_extension_present_flag : 1; + uint32_t sps_range_extension_flag : 1; + uint32_t transform_skip_rotation_enabled_flag : 1; + uint32_t transform_skip_context_enabled_flag : 1; + uint32_t implicit_rdpcm_enabled_flag : 1; + uint32_t explicit_rdpcm_enabled_flag : 1; + uint32_t extended_precision_processing_flag : 1; + uint32_t intra_smoothing_disabled_flag : 1; + uint32_t high_precision_offsets_enabled_flag : 1; + uint32_t persistent_rice_adaptation_enabled_flag : 1; + uint32_t cabac_bypass_alignment_enabled_flag : 1; + uint32_t sps_scc_extension_flag : 1; + uint32_t sps_curr_pic_ref_enabled_flag : 1; + uint32_t palette_mode_enabled_flag : 1; + uint32_t sps_palette_predictor_initializers_present_flag : 1; + uint32_t intra_boundary_filtering_disabled_flag : 1; +} StdVideoH265SpsFlags; + +typedef struct StdVideoH265ShortTermRefPicSetFlags { + uint32_t inter_ref_pic_set_prediction_flag : 1; + uint32_t delta_rps_sign : 1; +} StdVideoH265ShortTermRefPicSetFlags; + +typedef struct StdVideoH265ShortTermRefPicSet { + StdVideoH265ShortTermRefPicSetFlags flags; + uint32_t delta_idx_minus1; + uint16_t use_delta_flag; + uint16_t abs_delta_rps_minus1; + uint16_t used_by_curr_pic_flag; + uint16_t used_by_curr_pic_s0_flag; + uint16_t used_by_curr_pic_s1_flag; + uint16_t reserved1; + uint8_t reserved2; + uint8_t reserved3; + uint8_t num_negative_pics; + uint8_t num_positive_pics; + uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; + uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; +} StdVideoH265ShortTermRefPicSet; + +typedef struct StdVideoH265LongTermRefPicsSps { + uint32_t used_by_curr_pic_lt_sps_flag; + uint32_t lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; +} StdVideoH265LongTermRefPicsSps; + +typedef struct StdVideoH265SequenceParameterSet { + StdVideoH265SpsFlags flags; + StdVideoH265ChromaFormatIdc chroma_format_idc; + uint32_t pic_width_in_luma_samples; + uint32_t pic_height_in_luma_samples; + uint8_t sps_video_parameter_set_id; + uint8_t sps_max_sub_layers_minus1; + uint8_t sps_seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t log2_min_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_luma_coding_block_size; + uint8_t log2_min_luma_transform_block_size_minus2; + uint8_t log2_diff_max_min_luma_transform_block_size; + uint8_t max_transform_hierarchy_depth_inter; + uint8_t max_transform_hierarchy_depth_intra; + uint8_t num_short_term_ref_pic_sets; + uint8_t num_long_term_ref_pics_sps; + uint8_t pcm_sample_bit_depth_luma_minus1; + uint8_t pcm_sample_bit_depth_chroma_minus1; + uint8_t log2_min_pcm_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_pcm_luma_coding_block_size; + uint8_t reserved1; + uint8_t reserved2; + uint8_t palette_max_size; + uint8_t delta_palette_max_predictor_size; + uint8_t motion_vector_resolution_control_idc; + uint8_t sps_num_palette_predictor_initializers_minus1; + uint32_t conf_win_left_offset; + uint32_t conf_win_right_offset; + uint32_t conf_win_top_offset; + uint32_t conf_win_bottom_offset; + const StdVideoH265ProfileTierLevel* pProfileTierLevel; + const StdVideoH265DecPicBufMgr* pDecPicBufMgr; + const StdVideoH265ScalingLists* pScalingLists; + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + const StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps; + const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; + const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; +} StdVideoH265SequenceParameterSet; + +typedef struct StdVideoH265PpsFlags { + uint32_t dependent_slice_segments_enabled_flag : 1; + uint32_t output_flag_present_flag : 1; + uint32_t sign_data_hiding_enabled_flag : 1; + uint32_t cabac_init_present_flag : 1; + uint32_t constrained_intra_pred_flag : 1; + uint32_t transform_skip_enabled_flag : 1; + uint32_t cu_qp_delta_enabled_flag : 1; + uint32_t pps_slice_chroma_qp_offsets_present_flag : 1; + uint32_t weighted_pred_flag : 1; + uint32_t weighted_bipred_flag : 1; + uint32_t transquant_bypass_enabled_flag : 1; + uint32_t tiles_enabled_flag : 1; + uint32_t entropy_coding_sync_enabled_flag : 1; + uint32_t uniform_spacing_flag : 1; + uint32_t loop_filter_across_tiles_enabled_flag : 1; + uint32_t pps_loop_filter_across_slices_enabled_flag : 1; + uint32_t deblocking_filter_control_present_flag : 1; + uint32_t deblocking_filter_override_enabled_flag : 1; + uint32_t pps_deblocking_filter_disabled_flag : 1; + uint32_t pps_scaling_list_data_present_flag : 1; + uint32_t lists_modification_present_flag : 1; + uint32_t slice_segment_header_extension_present_flag : 1; + uint32_t pps_extension_present_flag : 1; + uint32_t cross_component_prediction_enabled_flag : 1; + uint32_t chroma_qp_offset_list_enabled_flag : 1; + uint32_t pps_curr_pic_ref_enabled_flag : 1; + uint32_t residual_adaptive_colour_transform_enabled_flag : 1; + uint32_t pps_slice_act_qp_offsets_present_flag : 1; + uint32_t pps_palette_predictor_initializers_present_flag : 1; + uint32_t monochrome_palette_flag : 1; + uint32_t pps_range_extension_flag : 1; +} StdVideoH265PpsFlags; + +typedef struct StdVideoH265PictureParameterSet { + StdVideoH265PpsFlags flags; + uint8_t pps_pic_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t sps_video_parameter_set_id; + uint8_t num_extra_slice_header_bits; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + int8_t init_qp_minus26; + uint8_t diff_cu_qp_delta_depth; + int8_t pps_cb_qp_offset; + int8_t pps_cr_qp_offset; + int8_t pps_beta_offset_div2; + int8_t pps_tc_offset_div2; + uint8_t log2_parallel_merge_level_minus2; + uint8_t log2_max_transform_skip_block_size_minus2; + uint8_t diff_cu_chroma_qp_offset_depth; + uint8_t chroma_qp_offset_list_len_minus1; + int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + uint8_t log2_sao_offset_scale_luma; + uint8_t log2_sao_offset_scale_chroma; + int8_t pps_act_y_qp_offset_plus5; + int8_t pps_act_cb_qp_offset_plus5; + int8_t pps_act_cr_qp_offset_plus3; + uint8_t pps_num_palette_predictor_initializers; + uint8_t luma_bit_depth_entry_minus8; + uint8_t chroma_bit_depth_entry_minus8; + uint8_t num_tile_columns_minus1; + uint8_t num_tile_rows_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE]; + uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE]; + uint32_t reserved3; + const StdVideoH265ScalingLists* pScalingLists; + const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; +} StdVideoH265PictureParameterSet; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h265std_decode.h b/glad/files/vulkan_video_codec_h265std_decode.h new file mode 100644 index 00000000..0178793e --- /dev/null +++ b/glad/files/vulkan_video_codec_h265std_decode.h @@ -0,0 +1,67 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std_decode 1 +#include "vulkan_video_codec_h265std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode" +#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8 +typedef struct StdVideoDecodeH265PictureInfoFlags { + uint32_t IrapPicFlag : 1; + uint32_t IdrPicFlag : 1; + uint32_t IsReference : 1; + uint32_t short_term_ref_pic_set_sps_flag : 1; +} StdVideoDecodeH265PictureInfoFlags; + +typedef struct StdVideoDecodeH265PictureInfo { + StdVideoDecodeH265PictureInfoFlags flags; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t NumDeltaPocsOfRefRpsIdx; + int32_t PicOrderCntVal; + uint16_t NumBitsForSTRefPicSetInSlice; + uint16_t reserved; + uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; +} StdVideoDecodeH265PictureInfo; + +typedef struct StdVideoDecodeH265ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t unused_for_reference : 1; +} StdVideoDecodeH265ReferenceInfoFlags; + +typedef struct StdVideoDecodeH265ReferenceInfo { + StdVideoDecodeH265ReferenceInfoFlags flags; + int32_t PicOrderCntVal; +} StdVideoDecodeH265ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codec_h265std_encode.h b/glad/files/vulkan_video_codec_h265std_encode.h new file mode 100644 index 00000000..ee34491f --- /dev/null +++ b/glad/files/vulkan_video_codec_h265std_encode.h @@ -0,0 +1,157 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ +#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std_encode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std_encode 1 +#include "vulkan_video_codec_h265std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode" +typedef struct StdVideoEncodeH265WeightTableFlags { + uint16_t luma_weight_l0_flag; + uint16_t chroma_weight_l0_flag; + uint16_t luma_weight_l1_flag; + uint16_t chroma_weight_l1_flag; +} StdVideoEncodeH265WeightTableFlags; + +typedef struct StdVideoEncodeH265WeightTable { + StdVideoEncodeH265WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + int8_t delta_chroma_log2_weight_denom; + int8_t delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; +} StdVideoEncodeH265WeightTable; + +typedef struct StdVideoEncodeH265SliceSegmentHeaderFlags { + uint32_t first_slice_segment_in_pic_flag : 1; + uint32_t dependent_slice_segment_flag : 1; + uint32_t slice_sao_luma_flag : 1; + uint32_t slice_sao_chroma_flag : 1; + uint32_t num_ref_idx_active_override_flag : 1; + uint32_t mvd_l1_zero_flag : 1; + uint32_t cabac_init_flag : 1; + uint32_t cu_chroma_qp_offset_enabled_flag : 1; + uint32_t deblocking_filter_override_flag : 1; + uint32_t slice_deblocking_filter_disabled_flag : 1; + uint32_t collocated_from_l0_flag : 1; + uint32_t slice_loop_filter_across_slices_enabled_flag : 1; + uint32_t reserved : 20; +} StdVideoEncodeH265SliceSegmentHeaderFlags; + +typedef struct StdVideoEncodeH265SliceSegmentHeader { + StdVideoEncodeH265SliceSegmentHeaderFlags flags; + StdVideoH265SliceType slice_type; + uint32_t slice_segment_address; + uint8_t collocated_ref_idx; + uint8_t MaxNumMergeCand; + int8_t slice_cb_qp_offset; + int8_t slice_cr_qp_offset; + int8_t slice_beta_offset_div2; + int8_t slice_tc_offset_div2; + int8_t slice_act_y_qp_offset; + int8_t slice_act_cb_qp_offset; + int8_t slice_act_cr_qp_offset; + int8_t slice_qp_delta; + uint16_t reserved1; + const StdVideoEncodeH265WeightTable* pWeightTable; +} StdVideoEncodeH265SliceSegmentHeader; + +typedef struct StdVideoEncodeH265ReferenceListsInfoFlags { + uint32_t ref_pic_list_modification_flag_l0 : 1; + uint32_t ref_pic_list_modification_flag_l1 : 1; + uint32_t reserved : 30; +} StdVideoEncodeH265ReferenceListsInfoFlags; + +typedef struct StdVideoEncodeH265ReferenceListsInfo { + StdVideoEncodeH265ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; +} StdVideoEncodeH265ReferenceListsInfo; + +typedef struct StdVideoEncodeH265PictureInfoFlags { + uint32_t is_reference : 1; + uint32_t IrapPicFlag : 1; + uint32_t used_for_long_term_reference : 1; + uint32_t discardable_flag : 1; + uint32_t cross_layer_bla_flag : 1; + uint32_t pic_output_flag : 1; + uint32_t no_output_of_prior_pics_flag : 1; + uint32_t short_term_ref_pic_set_sps_flag : 1; + uint32_t slice_temporal_mvp_enabled_flag : 1; + uint32_t reserved : 23; +} StdVideoEncodeH265PictureInfoFlags; + +typedef struct StdVideoEncodeH265LongTermRefPics { + uint8_t num_long_term_sps; + uint8_t num_long_term_pics; + uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; + uint8_t poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS]; + uint16_t used_by_curr_pic_lt_flag; + uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC]; + uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC]; +} StdVideoEncodeH265LongTermRefPics; + +typedef struct StdVideoEncodeH265PictureInfo { + StdVideoEncodeH265PictureInfoFlags flags; + StdVideoH265PictureType pic_type; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t short_term_ref_pic_set_idx; + int32_t PicOrderCntVal; + uint8_t TemporalId; + uint8_t reserved1[7]; + const StdVideoEncodeH265ReferenceListsInfo* pRefLists; + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + const StdVideoEncodeH265LongTermRefPics* pLongTermRefPics; +} StdVideoEncodeH265PictureInfo; + +typedef struct StdVideoEncodeH265ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t unused_for_reference : 1; + uint32_t reserved : 30; +} StdVideoEncodeH265ReferenceInfoFlags; + +typedef struct StdVideoEncodeH265ReferenceInfo { + StdVideoEncodeH265ReferenceInfoFlags flags; + StdVideoH265PictureType pic_type; + int32_t PicOrderCntVal; + uint8_t TemporalId; +} StdVideoEncodeH265ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/vulkan_video_codecs_common.h b/glad/files/vulkan_video_codecs_common.h new file mode 100644 index 00000000..5e6ef1db --- /dev/null +++ b/glad/files/vulkan_video_codecs_common.h @@ -0,0 +1,36 @@ +#ifndef VULKAN_VIDEO_CODECS_COMMON_H_ +#define VULKAN_VIDEO_CODECS_COMMON_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codecs_common is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codecs_common 1 +#if !defined(VK_NO_STDINT_H) + #include +#endif + +#define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \ + ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/glad/files/wgl.xml b/glad/files/wgl.xml index 094feada..cc0afb8a 100644 --- a/glad/files/wgl.xml +++ b/glad/files/wgl.xml @@ -1,29 +1,13 @@ -Copyright (c) 2013-2018 The Khronos Group Inc. +Copyright 2013-2020 The Khronos Group Inc. +SPDX-License-Identifier: Apache-2.0 -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - ------------------------------------------------------------------------- - -This file, wgl.xml, is the WGL API Registry. The older ".spec" file -format has been retired and will no longer be updated with new -extensions and API versions. The canonical version of the registry, -together with documentation, schema, and Python generator scripts used -to generate C header files for WGL, can always be found in the Khronos -Registry at - https://github.com/KhronosGroup/OpenGL-Registry +This file, wgl.xml, is the WGL API Registry. The canonical version of the +registry, together with documentation, schema, and Python generator scripts +used to generate C header files for WGL, can always be found in the Khronos +Registry at https://github.com/KhronosGroup/OpenGL-Registry @@ -384,7 +368,12 @@ Registry at - + + + + + + @@ -427,6 +416,7 @@ Registry at + @@ -482,7 +472,7 @@ Registry at HDC hdc int ipfd UINT cjpfd - const PIXELFORMATDESCRIPTOR *ppfd + PIXELFORMATDESCRIPTOR *ppfd int GetPixelFormat @@ -537,7 +527,7 @@ Registry at BOOL wglBindVideoDeviceNV - HDC hDC + HDC hDc unsigned int uVideoSlot HVIDEOOUTPUTDEVICENV hVideoDevice const int *piAttribList @@ -694,7 +684,7 @@ Registry at int pixelFormat int layerPlane UINT nBytes - const LAYERPLANEDESCRIPTOR *plpd + LAYERPLANEDESCRIPTOR *plpd VOID wglDestroyDisplayColorTableEXT @@ -780,7 +770,7 @@ Registry at int wglEnumerateVideoDevicesNV - HDC hDC + HDC hDc HVIDEOOUTPUTDEVICENV *phDeviceList @@ -856,7 +846,8 @@ Registry at UINT GetEnhMetaFilePixelFormat HENHMETAFILE hemf - const PIXELFORMATDESCRIPTOR *ppfd + UINT cbBuffer + PIXELFORMATDESCRIPTOR *ppfd const char *wglGetExtensionsStringARB @@ -911,7 +902,7 @@ Registry at INT wglGetGPUInfoAMD UINT id - int property + INT property GLenum dataType UINT size void *data @@ -922,7 +913,7 @@ Registry at int iLayerPlane int iStart int cEntries - const COLORREF *pcr + COLORREF *pcr BOOL wglGetMscRateOML @@ -1234,7 +1225,7 @@ Registry at INT64 wglSwapLayerBuffersMscOML HDC hdc - int fuPlanes + INT fuPlanes INT64 target_msc INT64 divisor INT64 remainder @@ -1627,6 +1618,11 @@ Registry at + + + + + @@ -1979,5 +1975,14 @@ Registry at + + + + + + + + + diff --git a/glad/generator/c/__init__.py b/glad/generator/c/__init__.py index 3b9afdd0..70f27f8d 100644 --- a/glad/generator/c/__init__.py +++ b/glad/generator/c/__init__.py @@ -1,23 +1,24 @@ import copy import itertools -import jinja2 import os.path import re from collections import namedtuple from contextlib import closing -from glad.config import Config, ConfigOption, RequirementConstraint, UnsupportedConstraint +from glad.config import Config, ConfigOption, UnsupportedConstraint from glad.sink import LoggingSink from glad.generator import JinjaGenerator from glad.generator.util import ( is_device_command, strip_specification_prefix, collect_alias_information, - find_extensions_with_aliases + find_extensions_with_aliases, + jinja2_contextfunction, + jinja2_contextfilter ) -from glad.parse import Type -from glad.specification import VK, GL +from glad.parse import Type, EnumType +from glad.specification import VK, GL, WGL import glad.util _ARRAY_RE = re.compile(r'\[[\d\w]*\]') @@ -25,7 +26,13 @@ DebugArguments = namedtuple('_DebugParams', ['impl', 'function', 'pre_callback', 'post_callback', 'ret']) DebugReturn = namedtuple('_DebugReturn', ['declaration', 'assignment', 'ret']) -Header = namedtuple('_Header', ['name', 'include', 'url']) + +class Header(object): + def __init__(self, name, include, url, requires=None): + self.name = name + self.include = include + self.url = url + self.requires = requires def type_to_c(parsed_type): @@ -51,7 +58,7 @@ def param_names(params): return ', '.join(param.name for param in params) -@jinja2.contextfunction +@jinja2_contextfunction def loadable(context, extensions=None, api=None): spec = context['spec'] feature_set = context['feature_set'] @@ -105,7 +112,7 @@ def get_debug_impl(command, command_code_name=None): return DebugArguments(impl, func, pre_callback, post_callback, ret) -@jinja2.contextfilter +@jinja2_contextfilter def ctx(jinja_context, name, context='context', raw=False, name_only=False, member=False): options = jinja_context['options'] @@ -129,7 +136,7 @@ def ctx(jinja_context, name, context='context', raw=False, name_only=False, memb return prefix + name -@jinja2.contextfilter +@jinja2_contextfilter def pfn(context, value): spec = context['spec'] if spec.name in (VK.NAME,): @@ -137,7 +144,64 @@ def pfn(context, value): return 'PFN' + value.upper() + 'PROC' -_CPP_STYLE_COMMENT_RE = re.compile(r'(^|\s|\))//(?P.*)$', flags=re.MULTILINE) +@jinja2_contextfilter +def c_commands(context, commands): + """ + The c in c_commands refers to the c file. + + This function filters a list of commands for the generated .c file. + WGL core functions are not dynamically loaded but need to be linked, + this functions filters out wgl core functions for the .c file. + + :param context: jinja context + :param commands: list of commands + :return: commands filtered + """ + spec = context['spec'] + if not spec.name == WGL.NAME: + return commands + + feature_set = context['feature_set'] + core = feature_set.features[0].get_requirements(spec, feature_set=feature_set) + + return [command for command in commands if not command in core] + + +@jinja2_contextfunction +def enum_member(context, type_, member, require_value=False): + if member.alias is None: + return member.value + + feature_set = context['feature_set'] + enums_of_type = type_.enums_for(feature_set) + + def is_enum_before(target, before): + for enum in enums_of_type: + if enum.name == target: + return True + if enum.name == before: + return False + + if not require_value: + if is_enum_before(member.alias, member.name): + return member.alias + + # This is the part where the spec is annoying again + # an enum that has been moved into core in a later version + # loses its _KHR postfix, but in an earlier version this still requires an extension... + # Luckily glad automatically adds the necessary enum to the feature set, + # but it doesn't get generated, because it is not actually part of the selected feature set. + # Just have to get the actual value now + def resolve(target): + target = feature_set.find_enum(target) + if target.alias is None: + return target.value + return resolve(target.alias) + + return resolve(member.alias) + + +_CPP_STYLE_COMMENT_RE = re.compile(r'(^|\s|\))//(?P[^\r^\n]*)', flags=re.MULTILINE) def replace_cpp_style_comments(inp): @@ -160,11 +224,11 @@ class CConfig(Config): default=False, description='Enables support for multiple GL contexts' ) - MX_GLOBAL = ConfigOption( - converter=bool, - default=False, - description='Mimic global GL functions with context switching' - ) + # MX_GLOBAL = ConfigOption( + # converter=bool, + # default=False, + # description='Mimic global GL functions with context switching' + # ) HEADER_ONLY = ConfigOption( converter=bool, default=False, @@ -182,7 +246,7 @@ class CConfig(Config): ) __constraints__ = [ - RequirementConstraint(['MX_GLOBAL'], 'MX'), + # RequirementConstraint(['MX_GLOBAL'], 'MX'), UnsupportedConstraint(['MX'], 'DEBUG'), # RequirementConstraint(['MX', 'DEBUG'], 'MX_GLOBAL') UnsupportedConstraint(['MX'], 'ON_DEMAND') @@ -199,17 +263,70 @@ class CGenerator(JinjaGenerator): Header( 'khrplatform', 'KHR/khrplatform.h', - 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/KHR/khrplatform.h' + 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/KHR/khrplatform.h' ), Header( 'eglplatform', 'EGL/eglplatform.h', - 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/EGL/eglplatform.h' + 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/EGL/eglplatform.h' ), Header( 'vk_platform', 'vk_platform.h', - 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/master/include/vulkan/vk_platform.h' + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vk_platform.h' + ), + Header( + 'vk_video/vulkan_video_codecs_common.h', + 'vk_video/vulkan_video_codecs_common.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codecs_common.h' + ), + Header( + 'vk_video/vulkan_video_codec_h264std.h', + 'vk_video/vulkan_video_codec_h264std.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_h264std_decode.h', + 'vk_video/vulkan_video_codec_h264std_decode.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_decode.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_h264std_encode.h', + 'vk_video/vulkan_video_codec_h264std_encode.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_encode.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_h265std.h', + 'vk_video/vulkan_video_codec_h265std.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_h265std_decode.h', + 'vk_video/vulkan_video_codec_h265std_decode.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_decode.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_h265std_encode.h', + 'vk_video/vulkan_video_codec_h265std_encode.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_encode.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_av1std.h', + 'vk_video/vulkan_video_codec_av1std.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std.h', + requires=['vk_video/vulkan_video_codecs_common.h'] + ), + Header( + 'vk_video/vulkan_video_codec_av1std_decode.h', + 'vk_video/vulkan_video_codec_av1std_decode.h', + 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std_decode.h', + requires=['vk_video/vulkan_video_codecs_common.h'] ), ] @@ -221,7 +338,8 @@ def __init__(self, *args, **kwargs): self.environment.globals.update( get_debug_impl=get_debug_impl, loadable=loadable, - chain=itertools.chain, + enum_member=enum_member, + chain=itertools.chain ) self.environment.filters.update( @@ -231,7 +349,8 @@ def __init__(self, *args, **kwargs): param_names=param_names, pfn=pfn, ctx=ctx, - no_prefix=jinja2.contextfilter(lambda ctx, value: strip_specification_prefix(value, ctx['spec'])) + no_prefix=jinja2_contextfilter(lambda ctx, value: strip_specification_prefix(value, ctx['spec'])), + c_commands=c_commands ) self.environment.tests.update( @@ -297,11 +416,13 @@ def post_generate(self, spec, feature_set, config): self._add_additional_headers(feature_set, config) def modify_feature_set(self, spec, feature_set, config): - # TODO this takes rather lonng (~30%), maybe drop it? + # TODO this takes rather long (~30%), maybe drop it? feature_set = copy.deepcopy(feature_set) self._fix_issue_70(feature_set) self._fix_cpp_style_comments(feature_set) + self._fixup_enums(feature_set) + self._add_header_requirements(feature_set) self._replace_included_headers(feature_set, config) return feature_set @@ -336,6 +457,36 @@ def _fix_cpp_style_comments(self, feature_set): new_type._raw = replace_cpp_style_comments(new_type._raw) feature_set.types[i] = new_type + def _fixup_enums(self, feature_set): + """ + There are some enums which are simply empty: + https://github.com/KhronosGroup/Vulkan-Docs/issues/1754 + they need to be removed, we need to also remove any type which is an alias to that empty enum. + + Additionally we need to extend type information for enum alias types, + if the alias points to an enum with bitwidth 64 copy over the + bitwidth information so we can later produce the correct typedef. + """ + bitwidth_64 = set() + to_remove = set() + + for typ in (t for t in feature_set.types if isinstance(t, EnumType)): + if typ.bitwidth == '64': + bitwidth_64.add(typ.name) + if typ.alias is None and not typ.enums_for(feature_set): + to_remove.add(typ.name) + + new_types = [] + for typ in feature_set.types: + if typ.alias: + if typ.alias in bitwidth_64: + typ.bitwidth = '64' + + if typ.name not in to_remove and typ.alias not in to_remove: + new_types.append(typ) + + feature_set.types = new_types + def _replace_included_headers(self, feature_set, config): if not config['HEADER_ONLY']: return feature_set @@ -349,10 +500,28 @@ def _replace_included_headers(self, feature_set, config): content = self._read_header(header.url) for pheader in self.ADDITIONAL_HEADERS: - content = re.sub('^#include\\s*<' + pheader.include + '>', r'/* \0 */', content, flags=re.MULTILINE) + name = pheader.name.rsplit('/', 1)[-1] + content = re.sub( + '^(#include\\s*["<]({}|{})(\\.h)?[>"])'.format(name, pheader.include), r'/* \1 */', + content, + flags=re.MULTILINE + ) types[type_index] = Type(header.name, raw=content) + def _add_header_requirements(self, feature_set): + added = set() + + for header in self.ADDITIONAL_HEADERS: + if header.name not in feature_set.types: + continue + + for require in (header.requires or []): + if require not in added: + t = Type(require, raw="#include \"{}\"".format(require)) + feature_set.types.insert(0, t) + added.add(require) + def _add_additional_headers(self, feature_set, config): if config['HEADER_ONLY']: return @@ -369,8 +538,8 @@ def _add_additional_headers(self, feature_set, config): if not os.path.exists(path): content = self._read_header(header.url) - with open(path, 'w') as dest: - dest.write(content) + with open(path, 'wb') as dest: + dest.write(content.encode('utf-8')) def _read_header(self, url): if url not in self._headers: diff --git a/glad/generator/c/templates/base_template.c b/glad/generator/c/templates/base_template.c index 3969f447..59deabe8 100644 --- a/glad/generator/c/templates/base_template.c +++ b/glad/generator/c/templates/base_template.c @@ -1,4 +1,7 @@ {% import 'template_utils.h' as template_utils with context %} +/** + * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 + */ {% block includes %} #include #include @@ -12,17 +15,16 @@ {% include 'impl_util.c' %} {% endblock %} +#ifdef __cplusplus +extern "C" { +#endif -{%- set global_context = 'glad_' + feature_set.name + '_context' -%} - +{% set global_context = 'glad_' + feature_set.name + '_context' -%} {% block variables %} {% if options.mx_global %} -#ifdef __cplusplus -Glad{{ feature_set.name|api }}Context {{ global_context }} = {}; -#else -Glad{{ feature_set.name|api }}Context {{ global_context }} = { 0 }; -#endif +{% call template_utils.zero_initialized() %}Glad{{ feature_set.name|api }}Context {{ global_context }}_static{% endcall %} +Glad{{ feature_set.name|api }}Context* {{ global_context }} = &{{ global_context }}_static; {% endif %} {% endblock %} @@ -69,17 +71,17 @@ static GLADapiproc glad_{{ spec.name }}_on_demand_loader(const char *name) { {% if options.debug %} {% block debug_default_pre %} static void _pre_call_{{ feature_set.name }}_callback_default(const char *name, GLADapiproc apiproc, int len_args, ...) { - (void) name; - (void) apiproc; - (void) len_args; + GLAD_UNUSED(name); + GLAD_UNUSED(apiproc); + GLAD_UNUSED(len_args); } {% endblock %} {% block debug_default_post %} static void _post_call_{{ feature_set.name }}_callback_default(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...) { - (void) ret; - (void) name; - (void) apiproc; - (void) len_args; + GLAD_UNUSED(ret); + GLAD_UNUSED(name); + GLAD_UNUSED(apiproc); + GLAD_UNUSED(len_args); } {% endblock %} @@ -96,7 +98,7 @@ void gladSet{{ feature_set.name|api }}PostCallback(GLADpostcallback cb) { {% if not options.mx %} {% block commands %} -{% for command in feature_set.commands %} +{% for command in feature_set.commands|c_commands %} {% call template_utils.protect(command) %} {% if options.on_demand %} static {{ command.proto.ret|type_to_c }} GLAD_API_PTR glad_on_demand_impl_{{ command.name }}({{ command.params|params_to_c }}) { @@ -148,7 +150,9 @@ static void glad_{{ spec.name }}_resolve_aliases({{ template_utils.context_arg(d {% for command in feature_set.commands|sort(attribute='name') %} {% call template_utils.protect(command) %} {% for alias in aliases.get(command.name, [])|reject('equalto', command.name) %} +{% call template_utils.protect(alias) %} if ({{ command.name|ctx }} == NULL && {{ alias|ctx }} != NULL) {{ command.name|ctx }} = ({{ command.name|pfn }}){{ alias|ctx }}; +{% endcall %} {% endfor %} {% endcall %} {% endfor %} @@ -160,6 +164,24 @@ static void glad_{{ spec.name }}_resolve_aliases({{ template_utils.context_arg(d {% endblock %} {% endif %} {# options.on_demand #} +{% if options.debug %} +void gladInstall{{ feature_set.name|api }}Debug(void) { +{% for command in feature_set.commands|c_commands %} +{% call template_utils.protect(command) %} + glad_debug_{{ command.name }} = glad_debug_impl_{{ command.name }}; +{% endcall %} +{% endfor %} +} + +void gladUninstall{{ feature_set.name|api }}Debug(void) { +{% for command in feature_set.commands|c_commands %} +{% call template_utils.protect(command) %} + glad_debug_{{ command.name }} = glad_{{ command.name }}; +{% endcall %} +{% endfor %} +} +{% endif %} + {% if options.loader %} {% block loader_impl %} {% for api in feature_set.info.apis %} @@ -167,3 +189,7 @@ static void glad_{{ spec.name }}_resolve_aliases({{ template_utils.context_arg(d {% endfor %} {% endblock %} {% endif %} + +#ifdef __cplusplus +} +#endif diff --git a/glad/generator/c/templates/base_template.h b/glad/generator/c/templates/base_template.h index f1fe0386..5b1a81f7 100644 --- a/glad/generator/c/templates/base_template.h +++ b/glad/generator/c/templates/base_template.h @@ -3,6 +3,8 @@ /** * Loader generated by glad {{ gen_info.version }} on {{ gen_info.when }} * + * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 + * * Generator: {{ gen_info.generator_name }} * Specification: {{ gen_info.specification }} * Extensions: {{ gen_info.extensions|length }} @@ -76,17 +78,21 @@ typedef struct Glad{{ feature_set.name|api }}Context { {{ command.name|pfn }} {{ command.name|ctx(member=True) }}; {% endcall %} {% endfor %} + +{% if options.loader %} + void* glad_loader_handle; +{% endif %} } Glad{{ feature_set.name|api }}Context; {% if options.mx_global %} -GLAD_API_CALL Glad{{ feature_set.name|api }}Context glad_{{ feature_set.name }}_context; +GLAD_API_CALL Glad{{ feature_set.name|api }}Context* glad_{{ feature_set.name }}_context; {% for extension in chain(feature_set.features, feature_set.extensions) %} -#define GLAD_{{ extension.name }} (glad_{{ feature_set.name }}_context.{{ extension.name|no_prefix }}) +#define GLAD_{{ extension.name }} (glad_{{ feature_set.name }}_context->{{ extension.name|no_prefix }}) {% endfor %} {% for command in feature_set.commands %} -#define {{ command.name }} (glad_{{ feature_set.name }}_context.{{ command.name|no_prefix }}) +#define {{ command.name }} (glad_{{ feature_set.name }}_context->{{ command.name|no_prefix }}) {% endfor %} {% endif %} @@ -108,11 +114,16 @@ GLAD_API_CALL void gladSet{{ feature_set.name|api }}Context(Glad{{ feature_set.n {% if options.debug %} GLAD_API_CALL void gladSet{{ feature_set.name|api }}PreCallback(GLADprecallback cb); GLAD_API_CALL void gladSet{{ feature_set.name|api }}PostCallback(GLADpostcallback cb); + +GLAD_API_CALL void gladInstall{{ feature_set.name|api }}Debug(void); +GLAD_API_CALL void gladUninstall{{ feature_set.name|api }}Debug(void); {% endif %} {% endblock %} +{% if not options.on_demand %} {% block custom_declarations %} {% endblock %} +{% endif %} {% if options.loader %} {% block loader_impl %} diff --git a/glad/generator/c/templates/egl.c b/glad/generator/c/templates/egl.c index 3df43780..3e4a9f2b 100644 --- a/glad/generator/c/templates/egl.c +++ b/glad/generator/c/templates/egl.c @@ -39,7 +39,7 @@ static int glad_egl_find_extensions_{{ api|lower }}(EGLDisplay display) { {% for extension in feature_set.extensions %} GLAD_{{ extension.name }} = glad_egl_has_extension(extensions, "{{ extension.name }}"); {% else %} - (void) glad_egl_has_extension; + GLAD_UNUSED(&glad_egl_has_extension); {% endfor %} return 1; @@ -60,9 +60,11 @@ static int glad_egl_find_core_{{ api|lower }}(EGLDisplay display) { display = eglGetDisplay(EGL_DEFAULT_DISPLAY); } #endif +#ifndef EGL_VERSION_1_5 if (display == EGL_NO_DISPLAY) { return 0; } +#endif version = eglQueryString(display, EGL_VERSION); (void) eglGetError(); @@ -100,6 +102,10 @@ int gladLoad{{ api|api }}UserPtr(EGLDisplay display, GLADuserptrloadfunc load, v glad_egl_load_{{ extension.name }}(load, userptr); {% endfor %} +{% if options.alias %} + glad_egl_resolve_aliases(); +{% endif %} + return version; } @@ -108,4 +114,4 @@ int gladLoad{{ api|api }}(EGLDisplay display, GLADloadfunc load) { } {% endfor %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/glad/generator/c/templates/gl.c b/glad/generator/c/templates/gl.c index 798a0a70..11feead7 100644 --- a/glad/generator/c/templates/gl.c +++ b/glad/generator/c/templates/gl.c @@ -3,7 +3,7 @@ {% block debug_default_pre %} static void _pre_call_{{ feature_set.name }}_callback_default(const char *name, GLADapiproc apiproc, int len_args, ...) { - (void) len_args; + GLAD_UNUSED(len_args); if (apiproc == NULL) { fprintf(stderr, "GLAD: ERROR %s is NULL!\n", name); @@ -22,9 +22,9 @@ static void _pre_call_{{ feature_set.name }}_callback_default(const char *name, static void _post_call_{{ feature_set.name }}_callback_default(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...) { GLenum error_code; - (void) ret; - (void) apiproc; - (void) len_args; + GLAD_UNUSED(ret); + GLAD_UNUSED(apiproc); + GLAD_UNUSED(len_args); error_code = glad_glGetError(); @@ -36,36 +36,24 @@ static void _post_call_{{ feature_set.name }}_callback_default(void *ret, const {% block loader %} -#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) -#define GLAD_GL_IS_SOME_NEW_VERSION 1 -#else -#define GLAD_GL_IS_SOME_NEW_VERSION 0 -#endif - -static int glad_gl_get_extensions({{ template_utils.context_arg(',') }} int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) { -#if GLAD_GL_IS_SOME_NEW_VERSION - if(GLAD_VERSION_MAJOR(version) < 3) { -#else - (void) version; - (void) out_num_exts_i; - (void) out_exts_i; -#endif - if ({{ 'glGetString'|ctx }} == NULL) { - return 0; +static void glad_gl_free_extensions(char **exts_i) { + if (exts_i != NULL) { + unsigned int index; + for(index = 0; exts_i[index]; index++) { + free((void *) (exts_i[index])); } - *out_exts = (const char *){{ 'glGetString'|ctx }}(GL_EXTENSIONS); -#if GLAD_GL_IS_SOME_NEW_VERSION - } else { + free((void *)exts_i); + exts_i = NULL; + } +} +static int glad_gl_get_extensions({{ template_utils.context_arg(',') }} const char **out_exts, char ***out_exts_i) { +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) + if ({{ 'glGetStringi'|ctx }} != NULL && {{ 'glGetIntegerv'|ctx }} != NULL) { unsigned int index = 0; unsigned int num_exts_i = 0; char **exts_i = NULL; - if ({{ 'glGetStringi'|ctx }} == NULL || {{ 'glGetIntegerv'|ctx }} == NULL) { - return 0; - } {{ 'glGetIntegerv'|ctx }}(GL_NUM_EXTENSIONS, (int*) &num_exts_i); - if (num_exts_i > 0) { - exts_i = (char **) malloc(num_exts_i * (sizeof *exts_i)); - } + exts_i = (char **) malloc((num_exts_i + 1) * (sizeof *exts_i)); if (exts_i == NULL) { return 0; } @@ -74,31 +62,40 @@ static int glad_gl_get_extensions({{ template_utils.context_arg(',') }} int vers size_t len = strlen(gl_str_tmp) + 1; char *local_str = (char*) malloc(len * sizeof(char)); - if(local_str != NULL) { - memcpy(local_str, gl_str_tmp, len * sizeof(char)); + if(local_str == NULL) { + exts_i[index] = NULL; + glad_gl_free_extensions(exts_i); + return 0; } + memcpy(local_str, gl_str_tmp, len * sizeof(char)); exts_i[index] = local_str; } + exts_i[index] = NULL; - *out_num_exts_i = num_exts_i; *out_exts_i = exts_i; + + return 1; } +#else + GLAD_UNUSED(out_exts_i); #endif + if ({{ 'glGetString'|ctx }} == NULL) { + return 0; + } + *out_exts = (const char *){{ 'glGetString'|ctx }}(GL_EXTENSIONS); return 1; } -static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) { - if (exts_i != NULL) { +static int glad_gl_has_extension(const char *exts, char **exts_i, const char *ext) { + if(exts_i) { unsigned int index; - for(index = 0; index < num_exts_i; index++) { - free((void *) (exts_i[index])); + for(index = 0; exts_i[index]; index++) { + const char *e = exts_i[index]; + if(strcmp(e, ext) == 0) { + return 1; + } } - free((void *)exts_i); - exts_i = NULL; - } -} -static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) { - if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) { + } else { const char *extensions; const char *loc; const char *terminator; @@ -118,14 +115,6 @@ static int glad_gl_has_extension(int version, const char *exts, unsigned int num } extensions = terminator; } - } else { - unsigned int index; - for(index = 0; index < num_exts_i; index++) { - const char *e = exts_i[index]; - if(strcmp(e, ext) == 0) { - return 1; - } - } } return 0; } @@ -135,32 +124,34 @@ static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name } {% for api in feature_set.info.apis %} -static int glad_gl_find_extensions_{{ api|lower }}({{ template_utils.context_arg(',') }} int version) { +static int glad_gl_find_extensions_{{ api|lower }}({{ template_utils.context_arg(def='void') }}) { const char *exts = NULL; - unsigned int num_exts_i = 0; char **exts_i = NULL; - if (!glad_gl_get_extensions({{ 'context, ' if options.mx }}version, &exts, &num_exts_i, &exts_i)) return 0; + if (!glad_gl_get_extensions({{ 'context, ' if options.mx }}&exts, &exts_i)) return 0; {% for extension in feature_set.extensions|select('supports', api) %} - {{ ('GLAD_' + extension.name)|ctx(name_only=True) }} = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "{{ extension.name }}"); + {{ ('GLAD_' + extension.name)|ctx(name_only=True) }} = glad_gl_has_extension(exts, exts_i, "{{ extension.name }}"); {% else %} - (void) glad_gl_has_extension; + GLAD_UNUSED(&glad_gl_has_extension); {% endfor %} - glad_gl_free_extensions(exts_i, num_exts_i); + glad_gl_free_extensions(exts_i); return 1; } static int glad_gl_find_core_{{ api|lower }}({{ template_utils.context_arg(def='void') }}) { - int i, major, minor; + int i; const char* version; const char* prefixes[] = { "OpenGL ES-CM ", "OpenGL ES-CL ", "OpenGL ES ", + "OpenGL SC ", NULL }; + int major = 0; + int minor = 0; version = (const char*) {{ 'glGetString'|ctx }}(GL_VERSION); if (!version) return 0; for (i = 0; prefixes[i]; i++) { @@ -185,14 +176,13 @@ int gladLoad{{ api|api }}{{ 'Context' if options.mx }}UserPtr({{ template_utils. {{ 'glGetString'|ctx }} = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); if({{ 'glGetString'|ctx }} == NULL) return 0; - if({{ 'glGetString'|ctx }}(GL_VERSION) == NULL) return 0; version = glad_gl_find_core_{{ api|lower }}({{ 'context' if options.mx }}); {% for feature, _ in loadable(feature_set.features, api=api) %} glad_gl_load_{{ feature.name }}({{'context, ' if options.mx }}load, userptr); {% endfor %} - if (!glad_gl_find_extensions_{{ api|lower }}({{ 'context, ' if options.mx }}version)) return 0; + if (!glad_gl_find_extensions_{{ api|lower }}({{ 'context' if options.mx }})) return 0; {% for extension, _ in loadable(feature_set.extensions, api=api) %} glad_gl_load_{{ extension.name }}({{'context, ' if options.mx }}load, userptr); {% endfor %} @@ -227,11 +217,11 @@ int gladLoad{{ api|api }}(GLADloadfunc load) { {% if options.mx_global %} Glad{{ feature_set.name|api }}Context* gladGet{{ feature_set.name|api }}Context() { - return &{{ global_context }}; + return {{ global_context }}; } void gladSet{{ feature_set.name|api }}Context(Glad{{ feature_set.name|api }}Context *context) { - {{ global_context }} = *context; + {{ global_context }} = context; } {% endif %} diff --git a/glad/generator/c/templates/gl.h b/glad/generator/c/templates/gl.h index 31821fbc..12a758e6 100644 --- a/glad/generator/c/templates/gl.h +++ b/glad/generator/c/templates/gl.h @@ -1,17 +1,27 @@ {% extends 'base_template.h' %} {% block header %} +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#endif {% set header_data = [ - ('gl', '__gl_h_', 'OpenGL'), ('gles1', '__gl_h_', 'OpenGL ES 1'), - ('gles2', '__gl2_h_', 'OpenGL ES 2'), ('gles2', '__gl3_h_', 'OpenGL ES 3') + ('gl', '__gl_h_', 'OpenGL (gl.h)'), ('gl', '__gl3_h_', 'OpenGL (gl3.h)'), + ('gl', '__glext_h_', 'OpenGL (glext.h)'), ('gl', '__gl3ext_h_', 'OpenGL (gl3ext.h)'), + ('gles1', '__gl_h_', 'OpenGL ES 1'), ('gles1', '__gles1_gl_h_', 'OpenGL ES 1'), + ('gles2', '__gl2_h_', 'OpenGL ES 2'), ('gles2', '__gles2_gl2_h_', 'OpenGL ES 2'), + ('gles2', '__gl3_h_', 'OpenGL ES 3'), ('gles2', '__gles2_gl3_h_', 'OpenGL ES 3'), ] %} {% set written = [] %} {% for api, header_name, name in header_data %} {% if api in feature_set.info.apis and header_name not in written -%} {{ template_utils.header_error(api, header_name, name) }} - {% do written.append(header_name) %} - {%- endif %} -{% endfor %} + {%- do written.append(header_name) -%} + {%- endif -%} +{%- endfor -%} +#ifdef __clang__ +#pragma clang diagnostic pop +#endif {% endblock %} diff --git a/glad/generator/c/templates/glx.c b/glad/generator/c/templates/glx.c index cccbc939..d9d34194 100644 --- a/glad/generator/c/templates/glx.c +++ b/glad/generator/c/templates/glx.c @@ -3,9 +3,9 @@ {% block loader %} static int glad_glx_has_extension(Display *display, int screen, const char *ext) { #ifndef GLX_VERSION_1_1 - (void) display; - (void) screen; - (void) ext; + GLAD_UNUSED(display); + GLAD_UNUSED(screen); + GLAD_UNUSED(ext); #else const char *terminator; const char *loc; @@ -47,7 +47,7 @@ static int glad_glx_find_extensions(Display *display, int screen) { {% for extension in feature_set.extensions %} GLAD_{{ extension.name }} = glad_glx_has_extension(display, screen, "{{ extension.name }}"); {% else %} - (void) glad_glx_has_extension; + GLAD_UNUSED(&glad_glx_has_extension); {% endfor %} return 1; } @@ -56,7 +56,7 @@ static int glad_glx_find_core_{{ api|lower }}(Display **display, int *screen) { int major = 0, minor = 0; if(*display == NULL) { #ifdef GLAD_GLX_NO_X11 - (void) screen; + GLAD_UNUSED(screen); return 0; #else *display = XOpenDisplay(0); @@ -88,6 +88,10 @@ int gladLoad{{ api|api }}UserPtr(Display *display, int screen, GLADuserptrloadfu glad_glx_load_{{ extension.name }}(load, userptr); {% endfor %} +{% if options.alias %} + glad_glx_resolve_aliases(); +{% endif %} + return version; } @@ -96,4 +100,4 @@ int gladLoad{{ api|api }}(Display *display, int screen, GLADloadfunc load) { } {% endfor %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/glad/generator/c/templates/loader/egl.c b/glad/generator/c/templates/loader/egl.c index e9d3a3e3..4778c668 100644 --- a/glad/generator/c/templates/loader/egl.c +++ b/glad/generator/c/templates/loader/egl.c @@ -1,3 +1,4 @@ +{% import "template_utils.h" as template_utils with context %} #ifdef GLAD_EGL {% include 'loader/library.c' %} @@ -70,7 +71,7 @@ int gladLoaderLoadEGL(EGLDisplay display) { {% endif %} {% if options.on_demand %} -static struct _glad_egl_userptr glad_egl_internal_loader_global_userptr = {0}; +{% call template_utils.zero_initialized() %}static struct _glad_egl_userptr glad_egl_internal_loader_global_userptr{% endcall %} static GLADapiproc glad_egl_internal_loader_get_proc(const char *name) { if (glad_egl_internal_loader_global_userptr.handle == NULL) { glad_egl_internal_loader_global_userptr = glad_egl_build_userptr(glad_egl_dlopen_handle()); @@ -80,7 +81,7 @@ static GLADapiproc glad_egl_internal_loader_get_proc(const char *name) { } {% endif %} -void gladLoaderUnloadEGL() { +void gladLoaderUnloadEGL(void) { if (_egl_handle != NULL) { glad_close_dlopen_handle(_egl_handle); _egl_handle = NULL; diff --git a/glad/generator/c/templates/loader/gl.c b/glad/generator/c/templates/loader/gl.c index 7ee63d55..dfc97d43 100644 --- a/glad/generator/c/templates/loader/gl.c +++ b/glad/generator/c/templates/loader/gl.c @@ -1,6 +1,7 @@ {% import "template_utils.h" as template_utils with context %} #ifdef GLAD_GL +{% set loader_handle = template_utils.handle('gl') %} {% include 'loader/library.c' %} typedef void* (GLAD_API_PTR *GLADglprocaddrfunc)(const char*); @@ -23,9 +24,11 @@ static GLADapiproc glad_gl_get_proc(void *vuserptr, const char *name) { return result; } -static void* _gl_handle = NULL; +{% if not options.mx %} +static void* {{ loader_handle }} = NULL; +{% endif %} -static void* glad_gl_dlopen_handle(void) { +static void* glad_gl_dlopen_handle({{ template_utils.context_arg(def='void') }}) { #if GLAD_PLATFORM_APPLE static const char *NAMES[] = { "../Frameworks/OpenGL.framework/OpenGL", @@ -41,15 +44,17 @@ static void* glad_gl_dlopen_handle(void) { "libGL-1.so", #endif "libGL.so.1", - "libGL.so" + "libGL.so", + "libEGL.so.1", + "libEGL.so" }; #endif - if (_gl_handle == NULL) { - _gl_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); + if ({{ loader_handle }} == NULL) { + {{ loader_handle }} = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); } - return _gl_handle; + return {{ loader_handle }}; } static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) { @@ -64,6 +69,9 @@ static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) { #else userptr.gl_get_proc_address_ptr = (GLADglprocaddrfunc) glad_dlsym_handle(handle, "glXGetProcAddressARB"); + if (!userptr.gl_get_proc_address_ptr) + userptr.gl_get_proc_address_ptr = + (GLADglprocaddrfunc) glad_dlsym_handle(handle, "eglGetProcAddress"); #endif return userptr; @@ -76,15 +84,15 @@ int gladLoaderLoadGL{{ 'Context' if options.mx }}({{ template_utils.context_arg( int did_load = 0; struct _glad_gl_userptr userptr; - did_load = _gl_handle == NULL; - handle = glad_gl_dlopen_handle(); + did_load = {{ loader_handle }} == NULL; + handle = glad_gl_dlopen_handle({{ 'context' if options.mx }}); if (handle) { userptr = glad_gl_build_userptr(handle); version = gladLoadGL{{ 'Context' if options.mx }}UserPtr({{ 'context,' if options.mx }}glad_gl_get_proc, &userptr); if (did_load) { - gladLoaderUnloadGL(); + gladLoaderUnloadGL{{ 'Context' if options.mx }}({{ 'context' if options.mx }}); } } @@ -93,7 +101,7 @@ int gladLoaderLoadGL{{ 'Context' if options.mx }}({{ template_utils.context_arg( {% endif %} {% if options.on_demand %} -static struct _glad_gl_userptr glad_gl_internal_loader_global_userptr = {0}; +{% call template_utils.zero_initialized() %}static struct _glad_gl_userptr glad_gl_internal_loader_global_userptr{% endcall %} static GLADapiproc glad_gl_internal_loader_get_proc(const char *name) { if (glad_gl_internal_loader_global_userptr.handle == NULL) { glad_gl_internal_loader_global_userptr = glad_gl_build_userptr(glad_gl_dlopen_handle()); @@ -109,10 +117,10 @@ int gladLoaderLoadGL(void) { } {% endif %} -void gladLoaderUnloadGL(void) { - if (_gl_handle != NULL) { - glad_close_dlopen_handle(_gl_handle); - _gl_handle = NULL; +void gladLoaderUnloadGL{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}) { + if ({{ loader_handle }} != NULL) { + glad_close_dlopen_handle({{ loader_handle }}); + {{ loader_handle }} = NULL; {% if options.on_demand %} glad_gl_internal_loader_global_userptr.handle = NULL; {% endif %} diff --git a/glad/generator/c/templates/loader/gl.h b/glad/generator/c/templates/loader/gl.h index d7f01735..5d9db059 100644 --- a/glad/generator/c/templates/loader/gl.h +++ b/glad/generator/c/templates/loader/gl.h @@ -7,6 +7,6 @@ GLAD_API_CALL int gladLoaderLoadGL{{ 'Context' if options.mx }}({{ template_util {% if options.mx_global %} GLAD_API_CALL int gladLoaderLoadGL(void); {% endif %} -GLAD_API_CALL void gladLoaderUnloadGL(void); +GLAD_API_CALL void gladLoaderUnloadGL{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}); #endif diff --git a/glad/generator/c/templates/loader/gles1.c b/glad/generator/c/templates/loader/gles1.c index b4f4f00e..68195c27 100644 --- a/glad/generator/c/templates/loader/gles1.c +++ b/glad/generator/c/templates/loader/gles1.c @@ -1,6 +1,7 @@ {% import "template_utils.h" as template_utils with context %} #ifdef GLAD_GLES1 +{% set loader_handle = template_utils.handle('gles1') %} {% include 'loader/library.c' %} #include @@ -24,9 +25,11 @@ static GLADapiproc glad_gles1_get_proc(void *vuserptr, const char* name) { return result; } -static void* _gles1_handle = NULL; +{% if not options.mx %} +static void* {{ loader_handle }} = NULL; +{% endif %} -static void* glad_gles1_dlopen_handle(void) { +static void* glad_gles1_dlopen_handle({{ template_utils.context_arg(def='void') }}) { #if GLAD_PLATFORM_APPLE static const char *NAMES[] = {"libGLESv1_CM.dylib"}; #elif GLAD_PLATFORM_WIN32 @@ -35,11 +38,11 @@ static void* glad_gles1_dlopen_handle(void) { static const char *NAMES[] = {"libGLESv1_CM.so.1", "libGLESv1_CM.so", "libGLES_CM.so.1"}; #endif - if (_gles1_handle == NULL) { - _gles1_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); + if ({{ loader_handle }} == NULL) { + {{ loader_handle }} = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); } - return _gles1_handle; + return {{ loader_handle }}; } static struct _glad_gles1_userptr glad_gles1_build_userptr(void *handle) { @@ -60,15 +63,15 @@ int gladLoaderLoadGLES1{{ 'Context' if options.mx }}({{ template_utils.context_a return 0; } - did_load = _gles1_handle == NULL; - handle = glad_gles1_dlopen_handle(); + did_load = {{ loader_handle }} == NULL; + handle = glad_gles1_dlopen_handle({{ 'context' if options.mx }}); if (handle != NULL) { userptr = glad_gles1_build_userptr(handle); version = gladLoadGLES1{{ 'Context' if options.mx }}UserPtr({{ 'context, ' if options.mx }}glad_gles1_get_proc, &userptr); if (!version && did_load) { - gladLoaderUnloadGLES1(); + gladLoaderUnloadGLES1{{ 'Context' if options.mx }}({{ 'context' if options.mx }}); } } @@ -77,7 +80,7 @@ int gladLoaderLoadGLES1{{ 'Context' if options.mx }}({{ template_utils.context_a {% endif %} {% if options.on_demand %} -static struct _glad_gles1_userptr glad_gles1_internal_loader_global_userptr = {0}; +{% call template_utils.zero_initialized() %}static struct _glad_gles1_userptr glad_gles1_internal_loader_global_userptr{% endcall %} static GLADapiproc glad_gles1_internal_loader_get_proc(const char *name) { if (glad_gles1_internal_loader_global_userptr.handle == NULL) { glad_gles1_internal_loader_global_userptr = glad_gles1_build_userptr(glad_gles1_dlopen_handle()); @@ -93,10 +96,10 @@ int gladLoaderLoadGLES1(void) { } {% endif %} -void gladLoaderUnloadGLES1(void) { - if (_gles1_handle != NULL) { - glad_close_dlopen_handle(_gles1_handle); - _gles1_handle = NULL; +void gladLoaderUnloadGLES1{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}) { + if ({{ loader_handle }} != NULL) { + glad_close_dlopen_handle({{ loader_handle }}); + {{ loader_handle }} = NULL; {% if options.on_demand %} glad_gles1_internal_loader_global_userptr.handle = NULL; {% endif %} diff --git a/glad/generator/c/templates/loader/gles1.h b/glad/generator/c/templates/loader/gles1.h index 2c0da482..46dfa75f 100644 --- a/glad/generator/c/templates/loader/gles1.h +++ b/glad/generator/c/templates/loader/gles1.h @@ -12,6 +12,6 @@ GLAD_API_CALL int gladLoaderLoadGLES1{{ 'Context' if options.mx }}({{ template_u {% if options.mx_global %} GLAD_API_CALL int gladLoaderLoadGLES1(void); {% endif %} -GLAD_API_CALL void gladLoaderUnloadGLES1(void); +GLAD_API_CALL void gladLoaderUnloadGLES1{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}); #endif /* GLAD_GLES1 */ diff --git a/glad/generator/c/templates/loader/gles2.c b/glad/generator/c/templates/loader/gles2.c index 2e6d0cd1..4047b495 100644 --- a/glad/generator/c/templates/loader/gles2.c +++ b/glad/generator/c/templates/loader/gles2.c @@ -1,11 +1,18 @@ {% import "template_utils.h" as template_utils with context %} #ifdef GLAD_GLES2 +{% set loader_handle = template_utils.handle('gles2') %} {% include 'loader/library.c' %} #if GLAD_PLATFORM_EMSCRIPTEN - typedef void* (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *name); - extern void* emscripten_GetProcAddress(const char *name); +#ifndef GLAD_EGL_H_ + typedef void (*__eglMustCastToProperFunctionPointerType)(void); + typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *name); +#endif + extern __eglMustCastToProperFunctionPointerType emscripten_GetProcAddress(const char *name); +#elif defined(GLAD_GLES2_USE_SYSTEM_EGL) + #include + typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *name); #else #include #endif @@ -21,7 +28,9 @@ static GLADapiproc glad_gles2_get_proc(void *vuserptr, const char* name) { struct _glad_gles2_userptr userptr = *(struct _glad_gles2_userptr*) vuserptr; GLADapiproc result = NULL; -#if !GLAD_PLATFORM_EMSCRIPTEN +#if GLAD_PLATFORM_EMSCRIPTEN + GLAD_UNUSED(&glad_dlsym_handle); +#else {# /* dlsym first, since some implementations don't return function pointers for core functions */ #} result = glad_dlsym_handle(userptr.handle, name); #endif @@ -32,9 +41,11 @@ static GLADapiproc glad_gles2_get_proc(void *vuserptr, const char* name) { return result; } -static void* _gles2_handle = NULL; +{% if not options.mx %} +static void* {{ loader_handle }} = NULL; +{% endif %} -static void* glad_gles2_dlopen_handle(void) { +static void* glad_gles2_dlopen_handle({{ template_utils.context_arg(def='void') }}) { #if GLAD_PLATFORM_EMSCRIPTEN #elif GLAD_PLATFORM_APPLE static const char *NAMES[] = {"libGLESv2.dylib"}; @@ -45,19 +56,21 @@ static void* glad_gles2_dlopen_handle(void) { #endif #if GLAD_PLATFORM_EMSCRIPTEN + GLAD_UNUSED(&glad_get_dlopen_handle); return NULL; #else - if (_gles2_handle == NULL) { - _gles2_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); + if ({{ loader_handle }} == NULL) { + {{ loader_handle }} = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); } - return _gles2_handle; + return {{ loader_handle }}; #endif } static struct _glad_gles2_userptr glad_gles2_build_userptr(void *handle) { struct _glad_gles2_userptr userptr; #if GLAD_PLATFORM_EMSCRIPTEN + GLAD_UNUSED(handle); userptr.get_proc_address_ptr = emscripten_GetProcAddress; #else userptr.handle = handle; @@ -74,22 +87,27 @@ int gladLoaderLoadGLES2{{ 'Context' if options.mx }}({{ template_utils.context_a struct _glad_gles2_userptr userptr; #if GLAD_PLATFORM_EMSCRIPTEN + GLAD_UNUSED(handle); + GLAD_UNUSED(did_load); + GLAD_UNUSED(&glad_gles2_dlopen_handle); + GLAD_UNUSED(&glad_gles2_build_userptr); userptr.get_proc_address_ptr = emscripten_GetProcAddress; version = gladLoadGLES2{{ 'Context' if options.mx }}UserPtr({{ 'context, ' if options.mx }}glad_gles2_get_proc, &userptr); #else +#ifndef GLAD_GLES2_USE_SYSTEM_EGL if (eglGetProcAddress == NULL) { return 0; } - - did_load = _gles2_handle == NULL; - handle = glad_gles2_dlopen_handle(); +#endif + did_load = {{ loader_handle }} == NULL; + handle = glad_gles2_dlopen_handle({{ 'context' if options.mx }}); if (handle != NULL) { userptr = glad_gles2_build_userptr(handle); version = gladLoadGLES2{{ 'Context' if options.mx }}UserPtr({{ 'context, ' if options.mx }}glad_gles2_get_proc, &userptr); if (!version && did_load) { - gladLoaderUnloadGLES2(); + gladLoaderUnloadGLES2{{ 'Context' if options.mx }}({{ 'context' if options.mx }}); } } #endif @@ -99,7 +117,7 @@ int gladLoaderLoadGLES2{{ 'Context' if options.mx }}({{ template_utils.context_a {% endif %} {% if options.on_demand %} -static struct _glad_gles2_userptr glad_gles2_internal_loader_global_userptr = {0}; +{% call template_utils.zero_initialized() %}static struct _glad_gles2_userptr glad_gles2_internal_loader_global_userptr{% endcall %} static GLADapiproc glad_gles2_internal_loader_get_proc(const char *name) { if (glad_gles2_internal_loader_global_userptr.get_proc_address_ptr == NULL) { glad_gles2_internal_loader_global_userptr = glad_gles2_build_userptr(glad_gles2_dlopen_handle()); @@ -115,10 +133,10 @@ int gladLoaderLoadGLES2(void) { } {% endif %} -void gladLoaderUnloadGLES2(void) { - if (_gles2_handle != NULL) { - glad_close_dlopen_handle(_gles2_handle); - _gles2_handle = NULL; +void gladLoaderUnloadGLES2{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}) { + if ({{ loader_handle }} != NULL) { + glad_close_dlopen_handle({{ loader_handle }}); + {{ loader_handle }} = NULL; {% if options.on_demand %} glad_gles2_internal_loader_global_userptr.get_proc_address_ptr = NULL; {% endif %} diff --git a/glad/generator/c/templates/loader/gles2.h b/glad/generator/c/templates/loader/gles2.h index cc509369..7e673982 100644 --- a/glad/generator/c/templates/loader/gles2.h +++ b/glad/generator/c/templates/loader/gles2.h @@ -12,7 +12,7 @@ GLAD_API_CALL int gladLoaderLoadGLES2{{ 'Context' if options.mx }}({{ template_u {% if options.mx_global %} GLAD_API_CALL int gladLoaderLoadGLES2(void); {% endif %} -GLAD_API_CALL void gladLoaderUnloadGLES2(void); +GLAD_API_CALL void gladLoaderUnloadGLES2{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}); #endif /* GLAD_GLES2 */ diff --git a/glad/generator/c/templates/loader/vulkan.c b/glad/generator/c/templates/loader/vulkan.c index 3355e4da..255147e3 100644 --- a/glad/generator/c/templates/loader/vulkan.c +++ b/glad/generator/c/templates/loader/vulkan.c @@ -1,6 +1,7 @@ {% import "template_utils.h" as template_utils with context %} #ifdef GLAD_VULKAN +{% set loader_handle = template_utils.handle('vulkan') %} {% include 'loader/library.c' %} @@ -56,9 +57,11 @@ static GLADapiproc glad_vulkan_get_proc(void *vuserptr, const char *name) { } -static void* _vulkan_handle; +{% if not options.mx %} +static void* {{ loader_handle }} = NULL; +{% endif %} -static void* glad_vulkan_dlopen_handle(void) { +static void* glad_vulkan_dlopen_handle({{ template_utils.context_arg(def='void') }}) { static const char *NAMES[] = { #if GLAD_PLATFORM_APPLE "libvulkan.1.dylib", @@ -71,11 +74,11 @@ static void* glad_vulkan_dlopen_handle(void) { #endif }; - if (_vulkan_handle == NULL) { - _vulkan_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); + if ({{ loader_handle }} == NULL) { + {{ loader_handle }} = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); } - return _vulkan_handle; + return {{ loader_handle }}; } static struct _glad_vulkan_userptr glad_vulkan_build_userptr(void *handle, VkInstance instance, VkDevice device) { @@ -95,8 +98,8 @@ int gladLoaderLoadVulkan{{ 'Context' if options.mx }}({{ template_utils.context_ int did_load = 0; struct _glad_vulkan_userptr userptr; - did_load = _vulkan_handle == NULL; - handle = glad_vulkan_dlopen_handle(); + did_load = {{ loader_handle }} == NULL; + handle = glad_vulkan_dlopen_handle({{ 'context' if options.mx }}); if (handle != NULL) { userptr = glad_vulkan_build_userptr(handle, instance, device); @@ -105,7 +108,7 @@ int gladLoaderLoadVulkan{{ 'Context' if options.mx }}({{ template_utils.context_ } if (!version && did_load) { - gladLoaderUnloadVulkan(); + gladLoaderUnloadVulkan{{ 'Context' if options.mx }}({{ 'context' if options.mx }}); } } @@ -114,7 +117,7 @@ int gladLoaderLoadVulkan{{ 'Context' if options.mx }}({{ template_utils.context_ {% endif %} {% if options.on_demand %} -static struct _glad_vulkan_userptr glad_vulkan_internal_loader_global_userptr = {0}; +{% call template_utils.zero_initialized() %}static struct _glad_vulkan_userptr glad_vulkan_internal_loader_global_userptr{% endcall %} void gladLoaderSetVulkanInstance(VkInstance instance) { glad_vulkan_internal_loader_global_userptr.vk_instance = instance; @@ -139,10 +142,10 @@ int gladLoaderLoadVulkan(VkInstance instance, VkPhysicalDevice physical_device, } {% endif %} -void gladLoaderUnloadVulkan(void) { - if (_vulkan_handle != NULL) { - glad_close_dlopen_handle(_vulkan_handle); - _vulkan_handle = NULL; +void gladLoaderUnloadVulkan{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}) { + if ({{ loader_handle }} != NULL) { + glad_close_dlopen_handle({{ loader_handle }}); + {{ loader_handle }} = NULL; {% if options.on_demand %} glad_vulkan_internal_loader_global_userptr.vk_handle = NULL; {% endif %} diff --git a/glad/generator/c/templates/loader/vulkan.h b/glad/generator/c/templates/loader/vulkan.h index fadaeac7..4e3c99de 100644 --- a/glad/generator/c/templates/loader/vulkan.h +++ b/glad/generator/c/templates/loader/vulkan.h @@ -7,7 +7,7 @@ GLAD_API_CALL int gladLoaderLoadVulkan{{ 'Context' if options.mx }}({{ template_ {% if options.mx_global %} GLAD_API_CALL int gladLoaderLoadVulkan(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device); {% endif %} -GLAD_API_CALL void gladLoaderUnloadVulkan(void); +GLAD_API_CALL void gladLoaderUnloadVulkan{{ 'Context' if options.mx }}({{ template_utils.context_arg(def='void') }}); {% if options.on_demand %} GLAD_API_CALL void gladLoaderSetVulkanInstance(VkInstance instance); diff --git a/glad/generator/c/templates/loader/wgl.c b/glad/generator/c/templates/loader/wgl.c index 586bd05d..d6dc52a4 100644 --- a/glad/generator/c/templates/loader/wgl.c +++ b/glad/generator/c/templates/loader/wgl.c @@ -1,8 +1,13 @@ #ifdef GLAD_WGL {% if not options.on_demand %} +static GLADapiproc glad_wgl_get_proc(void *vuserptr, const char* name) { + GLAD_UNUSED(vuserptr); + return GLAD_GNUC_EXTENSION (GLADapiproc) wglGetProcAddress(name); +} + int gladLoaderLoadWGL(HDC hdc) { - return gladLoadWGLUserPtr(hdc, glad_wgl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) wglGetProcAddress); + return gladLoadWGLUserPtr(hdc, glad_wgl_get_proc, NULL); } {% endif %} diff --git a/glad/generator/c/templates/platform.h b/glad/generator/c/templates/platform.h index 732e1809..d321982e 100644 --- a/glad/generator/c/templates/platform.h +++ b/glad/generator/c/templates/platform.h @@ -54,6 +54,8 @@ #define GLAD_GNUC_EXTENSION #endif +#define GLAD_UNUSED(x) (void)(x) + #ifndef GLAD_API_CALL #if defined(GLAD_API_CALL_EXPORT) #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__) diff --git a/glad/generator/c/templates/template_utils.h b/glad/generator/c/templates/template_utils.h index f765d637..cc5b320b 100644 --- a/glad/generator/c/templates/template_utils.h +++ b/glad/generator/c/templates/template_utils.h @@ -1,6 +1,6 @@ {% macro header_error(api, header_name, name) %} #ifdef {{ header_name }} - #error {{ name }} header already included (API: {{ api }}), remove previous include! + #error {{ name }} header already included (API: {{ api }}), remove previous include! #endif #define {{ header_name }} 1 {% endmacro %} @@ -10,6 +10,10 @@ {{ 'Glad' + feature_set.name|api + 'Context *context' + suffix if options.mx else def }} {%- endmacro %} +{% macro handle(api_name) -%} +{{ 'context->glad' if options.mx else '_glad_' + api_name|api }}_loader_handle +{%- endmacro %} + {% macro protect(symbol) %} {% set protections = spec.protections(symbol, feature_set=feature_set) %} @@ -45,24 +49,40 @@ GLAD_API_CALL int GLAD_{{ extension.name }}; {% macro write_type(type) %} {% call protect(type) %} {% if type.category == 'enum' -%} +{% if type.alias -%} +{% if type.bitwidth == '64' -%} +typedef {{ type.alias }} {{ type.name }}; +{% else -%} +typedef enum {{ type.alias }} {{ type.name }}; +{% endif %} +{% elif type.bitwidth == '64' %} +typedef uint64_t {{ type.name }}; +{% for member in type.enums_for(feature_set) %} +static const {{ member.parent_type }} {{ member.name }} = {{ enum_member(type, member, require_value=True) }}; +{% endfor %} +{% else %} {%- if type.enums_for(feature_set) -%} typedef enum {{ type.name }} { {% for member in type.enums_for(feature_set) %} - {{ member.name }} = {{ member.alias if member.alias else member.value }}{{ ',' if not loop.last }} + {{ member.name }} = {{ enum_member(type, member) }}, {% endfor %} + {{ '{}_MAX_ENUM{}'.format(*type.expanded_name) }} = 0x7FFFFFFF } {{ type.name }}; {%- endif -%} -{%- elif type.category in ('struct', 'union') -%} -typedef {{ type.category }} {{ type.name }} {% if type.members %}{ +{% endif -%} +{% elif type.category in ('struct', 'union') -%} +typedef {{ type.category }} {% if type.alias %}{{ type.alias }}{% else %}{{ type.name }}{% endif %} {% if type.members %}{ {% for member in type.members %} {{ member.type._raw }}; {% endfor %} }{% endif %} {{ type.name }}; -{%- elif type.alias %} +{% elif type.alias %} #define {{ type.name }} {{ type.alias }} {%- elif type._raw|trim -%} {{ type._raw|trim|replace('APIENTRY', 'GLAD_API_PTR') }} -{%- endif %} +{%- elif type.category == 'include' %} +#include <{{ type.name }}> +{%- endif -%} {% endcall %} {% endmacro %} @@ -103,3 +123,11 @@ GLAD_API_CALL {{ command.name|pfn }} glad_debug_{{ command.name }}; {% endcall %} {% endfor %} {% endmacro %} + +{% macro zero_initialized(s) %} +#ifdef __cplusplus +{{ caller() }} = {}; +#else +{{ caller() }} = { 0 }; +#endif +{% endmacro %} diff --git a/glad/generator/c/templates/vk.c b/glad/generator/c/templates/vk.c index 8969debd..da3bd434 100644 --- a/glad/generator/c/templates/vk.c +++ b/glad/generator/c/templates/vk.c @@ -6,10 +6,10 @@ static int glad_vk_get_extensions({{ template_utils.context_arg(',') }} VkPhysic uint32_t i; uint32_t instance_extension_count = 0; uint32_t device_extension_count = 0; - uint32_t max_extension_count; - uint32_t total_extension_count; - char **extensions; - VkExtensionProperties *ext_properties; + uint32_t max_extension_count = 0; + uint32_t total_extension_count = 0; + char **extensions = NULL; + VkExtensionProperties *ext_properties = NULL; VkResult result; if ({{ 'vkEnumerateInstanceExtensionProperties'|ctx }} == NULL || (physical_device != NULL && {{ 'vkEnumerateDeviceExtensionProperties'|ctx }} == NULL)) { @@ -29,24 +29,26 @@ static int glad_vk_get_extensions({{ template_utils.context_arg(',') }} VkPhysic } total_extension_count = instance_extension_count + device_extension_count; + if (total_extension_count <= 0) { + return 0; + } + max_extension_count = instance_extension_count > device_extension_count ? instance_extension_count : device_extension_count; ext_properties = (VkExtensionProperties*) malloc(max_extension_count * sizeof(VkExtensionProperties)); if (ext_properties == NULL) { - return 0; + goto glad_vk_get_extensions_error; } result = {{ 'vkEnumerateInstanceExtensionProperties'|ctx }}(NULL, &instance_extension_count, ext_properties); if (result != VK_SUCCESS) { - free((void*) ext_properties); - return 0; + goto glad_vk_get_extensions_error; } extensions = (char**) calloc(total_extension_count, sizeof(char*)); if (extensions == NULL) { - free((void*) ext_properties); - return 0; + goto glad_vk_get_extensions_error; } for (i = 0; i < instance_extension_count; ++i) { @@ -54,17 +56,16 @@ static int glad_vk_get_extensions({{ template_utils.context_arg(',') }} VkPhysic size_t extension_name_length = strlen(ext.extensionName) + 1; extensions[i] = (char*) malloc(extension_name_length * sizeof(char)); + if (extensions[i] == NULL) { + goto glad_vk_get_extensions_error; + } memcpy(extensions[i], ext.extensionName, extension_name_length * sizeof(char)); } if (physical_device != NULL) { result = {{ 'vkEnumerateDeviceExtensionProperties'|ctx }}(physical_device, NULL, &device_extension_count, ext_properties); if (result != VK_SUCCESS) { - for (i = 0; i < instance_extension_count; ++i) { - free((void*) extensions[i]); - } - free(extensions); - return 0; + goto glad_vk_get_extensions_error; } for (i = 0; i < device_extension_count; ++i) { @@ -72,6 +73,9 @@ static int glad_vk_get_extensions({{ template_utils.context_arg(',') }} VkPhysic size_t extension_name_length = strlen(ext.extensionName) + 1; extensions[instance_extension_count + i] = (char*) malloc(extension_name_length * sizeof(char)); + if (extensions[instance_extension_count + i] == NULL) { + goto glad_vk_get_extensions_error; + } memcpy(extensions[instance_extension_count + i], ext.extensionName, extension_name_length * sizeof(char)); } } @@ -82,6 +86,16 @@ static int glad_vk_get_extensions({{ template_utils.context_arg(',') }} VkPhysic *out_extensions = extensions; return 1; + +glad_vk_get_extensions_error: + free((void*) ext_properties); + if (extensions != NULL) { + for (i = 0; i < total_extension_count; ++i) { + free((void*) extensions[i]); + } + free(extensions); + } + return 0; } static void glad_vk_free_extensions(uint32_t extension_count, char **extensions) { @@ -98,7 +112,7 @@ static int glad_vk_has_extension(const char *name, uint32_t extension_count, cha uint32_t i; for (i = 0; i < extension_count; ++i) { - if(strcmp(name, extensions[i]) == 0) { + if(extensions[i] != NULL && strcmp(name, extensions[i]) == 0) { return 1; } } @@ -120,10 +134,11 @@ static int glad_vk_find_extensions_{{ api|lower }}({{ template_utils.context_arg {% call template_utils.protect(extension) %} {{ ('GLAD_' + extension.name)|ctx(name_only=True) }} = glad_vk_has_extension("{{ extension.name }}", extension_count, extensions); {% endcall %} -{% else %} - (void) glad_vk_has_extension; {% endfor %} + {# Special case: only one extension which is protected -> unused at compile time only on some platforms #} + GLAD_UNUSED(&glad_vk_has_extension); + glad_vk_free_extensions(extension_count, extensions); return 1; @@ -213,11 +228,11 @@ int gladLoad{{ api|api }}(VkPhysicalDevice physical_device, GLADloadfunc load) { {% if options.mx_global %} Glad{{ feature_set.name|api }}Context* gladGet{{ feature_set.name|api }}Context() { - return &{{ global_context }}; + return {{ global_context }}; } void gladSet{{ feature_set.name|api }}Context(Glad{{ feature_set.name|api }}Context *context) { - {{ global_context }} = *context; + {{ global_context }} = context; } {% endif %} diff --git a/glad/generator/c/templates/wgl.c b/glad/generator/c/templates/wgl.c index 5f288600..8c886687 100644 --- a/glad/generator/c/templates/wgl.c +++ b/glad/generator/c/templates/wgl.c @@ -1,13 +1,5 @@ {% extends 'base_template.c' %} -{% set blacklist = feature_set.features[0].get_requirements(spec, feature_set=feature_set).commands %} - -{% block commands %} -{% for command in feature_set.commands|reject('existsin', blacklist) %} -{{ command.name|pfn }} glad_{{ command.name }}; -{% endfor %} -{% endblock %} - {% block extension_loaders %} {% for extension, commands in loadable((feature_set.features[1:], feature_set.extensions)) %} static void glad_wgl_load_{{ extension.name }}(GLADuserptrloadfunc load, void *userptr) { @@ -62,7 +54,7 @@ static int glad_wgl_find_extensions_{{ api|lower }}(HDC hdc) { {% for extension in feature_set.extensions %} GLAD_{{ extension.name }} = glad_wgl_has_extension(hdc, "{{ extension.name }}"); {% else %} - (void) glad_wgl_has_extension; + GLAD_UNUSED(&glad_wgl_has_extension); {% endfor %} return 1; } @@ -92,6 +84,10 @@ int gladLoad{{ api|api }}UserPtr(HDC hdc, GLADuserptrloadfunc load, void *userpt glad_wgl_load_{{ extension.name }}(load, userptr); {% endfor %} +{% if options.alias %} + glad_wgl_resolve_aliases(); +{% endif %} + return version; } diff --git a/glad/generator/d/__init__.py b/glad/generator/d/__init__.py deleted file mode 100644 index bbb8f240..00000000 --- a/glad/generator/d/__init__.py +++ /dev/null @@ -1,95 +0,0 @@ -import itertools -from collections import namedtuple - -from glad.config import Config -from glad.generator import JinjaGenerator - - -DEnum = namedtuple('DEnum', ['type', 'value']) - - -def type_to_d(ogl_type): - if ogl_type.is_pointer > 1 and ogl_type.is_const: - s = 'const({}{}*)'.format('u' if ogl_type.is_unsigned else '', ogl_type.type) - s += '*' * (ogl_type.is_pointer - 1) - else: - t = '{}{}'.format('u' if ogl_type.is_unsigned else '', ogl_type.type) - s = 'const({})'.format(t) if ogl_type.is_const else t - s += '*' * ogl_type.is_pointer - return s.replace('struct ', '') - - -def params_to_d(params): - return ', '.join(type_to_d(param.type) for param in params) - - -def enum_to_d(enum, default_type='uint'): - result = _enum_to_d(enum, default_type=default_type) - - if isinstance(result, tuple): - return DEnum(*result) - return DEnum(result, enum.value) - - -def _enum_to_d(enum, default_type='uint'): - if '"' in enum.value: - return 'const(char)*' - - if enum.type: - return { - 'u': 'uint', - 'ull': 'ulong', - 'bitmask': 'uint' - }[enum.type] - - if enum.value.startswith('0x'): - if len(enum.value[2:]) > 8: - return 'ulong' - return 'uint' - - if enum.name in ('GL_TRUE', 'GL_FALSE'): - return 'ubyte' - - if enum.value.startswith('-'): - return 'int' - - if enum.value.startswith('(('): - # '((Type)value)' -> 'Type' - type_ = enum.value.split(')')[0][2:] - # '((Type)value)' -> cast(Type)value - value = 'cast{}'.format(enum.value[1:-1]) - return type_, value - - return default_type - - -class DConfig(Config): - pass - - -class DGenerator(JinjaGenerator): - TEMPLATES = ['glad.generator.d'] - Config = DConfig - - def __init__(self, *args, **kwargs): - JinjaGenerator.__init__(self, *args, **kwargs) - - self.environment.globals.update( - type_to_d=type_to_d, - params_to_d=params_to_d, - enum_to_d=enum_to_d, - chain=itertools.chain - ) - - def get_templates(self, spec, feature_set, options): - templates = [ - 'enumerations.d', 'functions.d', 'loader.d', 'types.d' - ] - - ret = list() - for template in templates: - ret.append(( - template, 'glad/{}/{}'.format(feature_set.api, template) - )) - - return ret diff --git a/glad/generator/d/templates/enumerations.d b/glad/generator/d/templates/enumerations.d deleted file mode 100644 index d54c1b95..00000000 --- a/glad/generator/d/templates/enumerations.d +++ /dev/null @@ -1,9 +0,0 @@ -module glad.{{ feature_set.api }}.enumerations; - - -private import glad.{{ feature_set.api }}.types; - -{% for enum in feature_set.enums %} -{% set d_enum = enum_to_d(enum) %} -enum {{ d_enum.type }} {{ enum.name }} = {{ d_enum.value }}; -{% endfor %} diff --git a/glad/generator/d/templates/functions.d b/glad/generator/d/templates/functions.d deleted file mode 100644 index ecba1425..00000000 --- a/glad/generator/d/templates/functions.d +++ /dev/null @@ -1,20 +0,0 @@ -module glad.{{ feature_set.api }}.functions; - -private import glad.{{ feature_set.api }}.types; - -{% for extension in chain(feature_set.features, feature_set.extensions) %} -bool {{ extension.name }}; -{% endfor %} - -nothrow @nogc extern(System) { -{% for command in feature_set.commands %} -alias fp_{{ command.name }} = {{ type_to_d(command.proto.ret) }} function({{ params_to_d(command.params) }}); -{% endfor %} -} - -__gshared { -{% for command in feature_set.commands %} -fp_{{ command.name }} {{ command.name }}; -{% endfor %} -} - diff --git a/glad/generator/d/templates/loader.d b/glad/generator/d/templates/loader.d deleted file mode 100644 index e47f3c1e..00000000 --- a/glad/generator/d/templates/loader.d +++ /dev/null @@ -1,27 +0,0 @@ -module glad.{{ feature_set.api }}.loader; - -private { - import glad.{{ feature_set.api }}.functions; - import glad.{{ feature_set.api }}.enumerations; - import glad.{{ feature_set.api }}.types; -} - - -alias Loader = void* delegate(const(char)*); - - -{% include 'loader/' + spec.name + '.d' %} - -private { -{% for extension in chain(feature_set.features, feature_set.extensions) %} -void load_{{ extension.name }}(Loader load) { - {% set commands = extension.get_requirements(spec, feature_set=feature_set).commands %} - {% if commands %} - if (!{{ extension.name }}) return; - {% for command in commands %} - {{ command.name }} = cast(typeof({{ command.name }}))load("{{ command.name }}"); - {% endfor %} - {% endif %} -} -{% endfor %} -} \ No newline at end of file diff --git a/glad/generator/d/templates/loader/egl.d b/glad/generator/d/templates/loader/egl.d deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/d/templates/loader/egl.d +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/d/templates/loader/gl.d b/glad/generator/d/templates/loader/gl.d deleted file mode 100644 index ac4e65ff..00000000 --- a/glad/generator/d/templates/loader/gl.d +++ /dev/null @@ -1,104 +0,0 @@ -bool gladLoad{{ feature_set.api|api }}(Loader load) { - glGetString = cast(typeof(glGetString))load("glGetString"); - if(glGetString is null) { return false; } - if(glGetString(GL_VERSION) is null) { return false; } - - find_core{{ feature_set.api|api }}(); - {% for feature in feature_set.features %} - load_{{ feature.name }}(load); - {% endfor %} - - find_extensions{{ feature_set.api|api }}(); - {% for extension in feature_set.extensions %} - load_{{ extension.name }}(load); - {% endfor %} - - return GLVersion.major != 0 || GLVersion.minor != 0; -} - -static struct GLVersion { static int major = 0; static int minor = 0; } - - -private { - -private extern(C) char* strstr(const(char)*, const(char)*) @nogc; -private extern(C) int strcmp(const(char)*, const(char)*) @nogc; -private extern(C) int strncmp(const(char)*, const(char)*, size_t) @nogc; -private extern(C) size_t strlen(const(char)*) @nogc; -private bool has_ext(const(char)* ext) @nogc { - if(GLVersion.major < 3) { - const(char)* extensions = cast(const(char)*)glGetString(GL_EXTENSIONS); - const(char)* loc; - const(char)* terminator; - - if(extensions is null || ext is null) { - return false; - } - - while(1) { - loc = strstr(extensions, ext); - if(loc is null) { - return false; - } - - terminator = loc + strlen(ext); - if((loc is extensions || *(loc - 1) == ' ') && - (*terminator == ' ' || *terminator == '\0')) { - return true; - } - extensions = terminator; - } - } else { - int num; - glGetIntegerv(GL_NUM_EXTENSIONS, &num); - - for(uint i=0; i < cast(uint)num; i++) { - if(strcmp(cast(const(char)*)glGetStringi(GL_EXTENSIONS, i), ext) == 0) { - return true; - } - } - } - - return false; -} - -void find_core{{ feature_set.api|api }}() { - - // Thank you @elmindreda - // https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 - // https://github.com/glfw/glfw/blob/master/src/context.c#L36 - int i; - const(char)* glversion; - const(char)*[] prefixes = [ - "OpenGL ES-CM ".ptr, - "OpenGL ES-CL ".ptr, - "OpenGL ES ".ptr, - ]; - - glversion = cast(const(char)*)glGetString(GL_VERSION); - if (glversion is null) return; - - foreach(prefix; prefixes) { - size_t length = strlen(prefix); - if (strncmp(glversion, prefix, length) == 0) { - glversion += length; - break; - } - } - - int major = glversion[0] - '0'; - int minor = glversion[2] - '0'; - GLVersion.major = major; GLVersion.minor = minor; - {% for feature in feature_set.features %} - {{ feature.name }} = (major == {{ feature.version.major }} && minor >= {{ feature.version.minor }}) || major > {{ feature.version.major }}; - {% endfor %} return; -} - -void find_extensions{{ feature_set.api|api }}() { - {% for extension in extensions %} - {{ extension.name }} = has_ext("{{ extension.name }}"); - {% endfor %} - return; -} - -} /* private */ \ No newline at end of file diff --git a/glad/generator/d/templates/loader/glx.d b/glad/generator/d/templates/loader/glx.d deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/d/templates/loader/glx.d +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/d/templates/loader/wgl.d b/glad/generator/d/templates/loader/wgl.d deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/d/templates/loader/wgl.d +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/d/templates/types.d b/glad/generator/d/templates/types.d deleted file mode 100644 index f9b595da..00000000 --- a/glad/generator/d/templates/types.d +++ /dev/null @@ -1,3 +0,0 @@ -module glad.{{ feature_set.api }}.types; - -{% include 'types/' + spec.name + '.d' %} \ No newline at end of file diff --git a/glad/generator/d/templates/types/egl.d b/glad/generator/d/templates/types/egl.d deleted file mode 100644 index aa456c8e..00000000 --- a/glad/generator/d/templates/types/egl.d +++ /dev/null @@ -1,81 +0,0 @@ -import core.stdc.stdint : intptr_t; - -alias EGLConfig = void*; -alias EGLClientBuffer = void*; -alias EGLNativeFileDescriptorKHR = int; -alias EGLuint64KHR = ulong; -alias EGLTimeKHR = ulong; -alias EGLOutputLayerEXT = void*; -alias EGLsizeiANDROID = ptrdiff_t; -alias EGLBoolean = uint; -alias EGLAttribKHR = intptr_t; -alias EGLDisplay = void*; -alias EGLint = int; -alias EGLSyncKHR = void*; -alias EGLTimeNV = ulong; -alias EGLDeviceEXT = void*; -alias EGLImageKHR = void*; -alias EGLSurface = void*; -alias __eglMustCastToProperFunctionPointerType = void function(); -alias EGLAttrib = intptr_t; -alias EGLContext = void*; -alias EGLuint64MESA = ulong; -alias EGLenum = uint; -alias EGLImage = void*; -alias EGLSyncNV = void*; -alias EGLStreamKHR = void*; -alias EGLSync = void*; -alias EGLOutputPortEXT = void*; -alias EGLuint64NV = ulong; -alias EGLTime = ulong; - -// Thanks to @jpf91 (github) for these declarations -version(Windows) { - import core.sys.windows.windows; - alias EGLNativeDisplayType = HDC; - alias EGLNativePixmapType = HBITMAP; - alias EGLNativeWindowType = HWND; -} else version(Symbian) { - alias EGLNativeDisplayType = int; - alias EGLNativeWindowType = void*; - alias EGLNativePixmapType = void*; -} else version(Android) { - //import android.native_window; - //struct egl_native_pixmap_t; - struct _egl_native_pixmap_t; alias egl_native_pixmap_t = _egl_native_pixmap_t*; - - //alias ANativeWindow* EGLNativeWindowType; - //alias egl_native_pixmap_t* EGLNativePixmapType; - alias EGLNativeWindowType = void*; - alias EGLNativePixmapType = void*; - alias EGLNativeDisplayType = void*; -} else version(linux) { - version(Xlib) { - import X11.Xlib; - import X11.Xutil; - alias EGLNativeDisplayType = Display*; - alias EGLNativePixmapType = Pixmap; - alias EGLNativeWindowType = Window; - } else { - alias EGLNativeDisplayType = void*; - alias EGLNativePixmapType = uint; - alias EGLNativeWindowType = uint; - } -} -alias EGLObjectKHR = void*; -alias EGLLabelKHR = void*; - -extern(System) { -alias EGLSetBlobFuncANDROID = void function(const(void)*, EGLsizeiANDROID, const(void)*, EGLsizeiANDROID); -alias EGLGetBlobFuncANDROID = EGLsizeiANDROID function(const(void)*, EGLsizeiANDROID, const(void)* EGLsizeiANDROID); -struct EGLClientPixmapHI { - void *pData; - EGLint iWidth; - EGLint iHeight; - EGLint iStride; -} -alias EGLDEBUGPROCKHR = void function(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -} -extern(System) { -struct __cl_event; alias _cl_event = __cl_event*; -} \ No newline at end of file diff --git a/glad/generator/d/templates/types/gl.d b/glad/generator/d/templates/types/gl.d deleted file mode 100644 index 29a1215d..00000000 --- a/glad/generator/d/templates/types/gl.d +++ /dev/null @@ -1,43 +0,0 @@ -alias GLvoid = void; -alias GLintptr = ptrdiff_t; -alias GLsizei = int; -alias GLchar = char; -alias GLcharARB = byte; -alias GLushort = ushort; -alias GLint64EXT = long; -alias GLshort = short; -alias GLuint64 = ulong; -alias GLhalfARB = ushort; -alias GLubyte = ubyte; -alias GLdouble = double; -alias GLhandleARB = uint; -alias GLint64 = long; -alias GLenum = uint; -alias GLeglImageOES = void*; -alias GLintptrARB = ptrdiff_t; -alias GLsizeiptr = ptrdiff_t; -alias GLint = int; -alias GLboolean = ubyte; -alias GLbitfield = uint; -alias GLsizeiptrARB = ptrdiff_t; -alias GLfloat = float; -alias GLuint64EXT = ulong; -alias GLclampf = float; -alias GLbyte = byte; -alias GLclampd = double; -alias GLuint = uint; -alias GLvdpauSurfaceNV = ptrdiff_t; -alias GLfixed = int; -alias GLhalf = ushort; -alias GLclampx = int; -alias GLhalfNV = ushort; -struct ___GLsync; alias __GLsync = ___GLsync*; -alias GLsync = __GLsync*; -struct __cl_context; alias _cl_context = __cl_context*; -struct __cl_event; alias _cl_event = __cl_event*; -extern(System) { -alias GLDEBUGPROC = void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in GLchar*, GLvoid*); -alias GLDEBUGPROCARB = GLDEBUGPROC; -alias GLDEBUGPROCKHR = GLDEBUGPROC; -alias GLDEBUGPROCAMD = void function(GLuint, GLenum, GLenum, GLsizei, in GLchar*, GLvoid*); -} \ No newline at end of file diff --git a/glad/generator/d/templates/types/glx.d b/glad/generator/d/templates/types/glx.d deleted file mode 100644 index e8517101..00000000 --- a/glad/generator/d/templates/types/glx.d +++ /dev/null @@ -1,164 +0,0 @@ -alias GLenum = uint; -alias GLfloat = float; -alias GLsizei = int; -alias GLsizeiptr = ptrdiff_t; -alias GLubyte = ubyte; -alias GLint = int; -alias GLboolean = ubyte; -alias GLuint = uint; -alias GLbitfield = uint; -alias GLintptr = ptrdiff_t; - -version(Xlib) { - import X11.Xlib; - import X11.Xutil; -} else { - alias Bool = int; - alias Status = int; - alias VisualID = uint; - alias XPointer = byte*; - alias XID = uint; - alias Colormap = XID; - alias Display = void; - alias Font = XID; - alias Window = XID; - alias Drawable = XID; - alias Pixmap = XID; - alias Cursor = XID; - alias GContext = XID; - alias KeySym = XID; - - extern(System) { - // Borrowed from derelict - struct XExtData { - int number; - XExtData* next; - extern(C) int function(XExtData*) free_private; - XPointer private_data; - } - - struct Visual { - XExtData* ext_data; - VisualID visualid; - int _class; - uint red_mask, green_mask, blue_mask; - int bits_per_rgb; - int map_entries; - } - - struct XVisualInfo { - Visual *visual; - VisualID visualid; - int screen; - int depth; - int _class; - uint red_mask; - uint green_mask; - uint blue_mask; - int colormap_size; - int bits_per_rgb; - } - } -} - -alias DMbuffer = void*; -alias DMparams = void*; -alias VLNode = void*; -alias VLPath = void*; -alias VLServer = void*; - -alias int64_t = long; -alias uint64_t = ulong; -alias int32_t = int; - -alias GLXContextID = uint; -alias GLXPixmap = uint; -alias GLXDrawable = uint; -alias GLXPbuffer = uint; -alias GLXWindow = uint; -alias GLXFBConfigID = uint; -alias GLXVideoCaptureDeviceNV = XID; -alias GLXPbufferSGIX = XID; -alias GLXVideoSourceSGIX = XID; -alias GLXVideoDeviceNV = uint; - - -extern(System) { - alias __GLXextFuncPtr = void function(); - - struct GLXPbufferClobberEvent { - int event_type; /* GLX_DAMAGED or GLX_SAVED */ - int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ - ulong serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* XID of Drawable */ - uint buffer_mask; /* mask indicating which buffers are affected */ - uint aux_buffer; /* which aux buffer was affected */ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ - } - - struct GLXBufferSwapComplete { - int type; - ulong serial; /* # of last request processed by server */ - Bool send_event; /* true if this came from a SendEvent request */ - Display *display; /* Display the event was read from */ - GLXDrawable drawable; /* drawable on which event was requested in event mask */ - int event_type; - long ust; - long msc; - long sbc; - } - - union GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - GLXBufferSwapComplete glxbufferswapcomplete; - int[24] pad; - } - - struct GLXBufferClobberEventSGIX { - int type; - ulong serial; /* # of last request processed by server */ - Bool send_event; /* true if this came for SendEvent request */ - Display *display; /* display the event was read from */ - GLXDrawable drawable; /* i.d. of Drawable */ - int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ - int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ - uint mask; /* mask indicating which buffers are affected*/ - int x, y; - int width, height; - int count; /* if nonzero, at least this many more */ - } - - struct GLXHyperpipeNetworkSGIX { - char[80] pipeName; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - int networkId; - } - - struct GLXHyperpipeConfigSGIX { - char[80] pipeName; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - int channel; - uint participationType; - int timeSlice; - } - - struct GLXPipeRect { - char[80] pipeName; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - int srcXOrigin, srcYOrigin, srcWidth, srcHeight; - int destXOrigin, destYOrigin, destWidth, destHeight; - } - - struct GLXPipeRectLimits { - char[80] pipeName; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - int XOrigin, YOrigin, maxHeight, maxWidth; - } -} -extern(System) { -struct ___GLXcontextRec; alias __GLXcontextRec = ___GLXcontextRec*; -alias GLXContext = __GLXcontextRec*; -struct ___GLXFBConfigRec; alias __GLXFBConfigRec = ___GLXFBConfigRec*; -alias GLXFBConfig = __GLXFBConfigRec*; -alias GLXFBConfigSGIX = __GLXFBConfigRec*; -} diff --git a/glad/generator/d/templates/types/wgl.d b/glad/generator/d/templates/types/wgl.d deleted file mode 100644 index 446c20e7..00000000 --- a/glad/generator/d/templates/types/wgl.d +++ /dev/null @@ -1,131 +0,0 @@ -alias GLenum = uint; -alias INT32 = int; -alias GLfloat = float; -alias GLsizei = int; -alias GLushort = ushort; -alias GLuint = uint; -alias GLint = int; -alias GLboolean = ubyte; -alias GLbitfield = uint; -alias INT64 = long; - -version(Windows) { - public import core.sys.windows.windows; -} else { - alias BOOL = int; - alias CHAR = char; - alias WORD = ushort; - alias DWORD = uint; - alias FLOAT = float; - alias HANDLE = void*; - alias HDC = HANDLE; - alias HGLRC = HANDLE; - alias INT = int; - alias LPCSTR = const(CHAR)*; - alias LPVOID = void*; - alias UINT = uint; - alias USHORT = ushort; - alias VOID = void; - alias COLORREF = DWORD; - alias HENHMETAFILE = HANDLE; - alias BYTE = byte; -} - -alias PROC = HANDLE; - -extern(System) { - struct RECT { - int left; - int top; - int right; - int bottom; - } - - struct LAYERPLANEDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - COLORREF crTransparent; - } - - struct PIXELFORMATDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; - } - - struct POINTFLOAT { - FLOAT x; - FLOAT y; - } - - struct GLYPHMETRICSFLOAT { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; - } - alias PGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT*; - alias LPGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; - - struct GPU_DEVICE { - DWORD cb; - CHAR[32] DeviceName; - CHAR[128] DeviceString; - DWORD Flags; - RECT rcVirtualScreen; - } - - alias PGPU_DEVICE = GPU_DEVICE; -} -struct _HPBUFFERARB; alias HPBUFFERARB = _HPBUFFERARB*; -struct _HPBUFFEREXT; alias HPBUFFEREXT = _HPBUFFEREXT*; -struct _HVIDEOOUTPUTDEVICENV; alias HVIDEOOUTPUTDEVICENV = _HVIDEOOUTPUTDEVICENV*; -struct _HPVIDEODEV; alias HPVIDEODEV = _HPVIDEODEV*; -struct _HPGPUNV; alias HPGPUNV = _HPGPUNV*; -struct _HGPUNV; alias HGPUNV = _HGPUNV*; -struct _HVIDEOINPUTDEVICENV; alias HVIDEOINPUTDEVICENV = _HVIDEOINPUTDEVICENV*; \ No newline at end of file diff --git a/glad/generator/rust/__init__.py b/glad/generator/rust/__init__.py index 36a7de88..a75efa47 100644 --- a/glad/generator/rust/__init__.py +++ b/glad/generator/rust/__init__.py @@ -6,20 +6,21 @@ from glad.generator.util import ( strip_specification_prefix, collect_alias_information, - find_extensions_with_aliases + find_extensions_with_aliases, + jinja2_contextfilter ) -from glad.parse import ParsedType +from glad.parse import ParsedType, EnumType from glad.sink import LoggingSink _RUST_TYPE_MAPPING = { - 'void': 'std::os::raw::c_void', - 'char': 'std::os::raw::c_char', - 'uchar': 'std::os::raw::c_uchar', - 'float': 'std::os::raw::c_float', - 'double': 'std::os::raw::c_double', - 'int': 'std::os::raw::c_int', - 'long': 'std::os::raw::c_long', + 'void': 'c_void', + 'char': 'c_char', + 'uchar': 'c_uchar', + 'float': 'c_float', + 'double': 'c_double', + 'int': 'c_int', + 'long': 'c_long', 'int8_t': 'i8', 'uint8_t': 'u8', 'int16_t': 'i16', @@ -28,7 +29,8 @@ 'int64_t': 'i32', 'uint32_t': 'u32', 'uint64_t': 'u64', - 'size_t': 'usize' + 'size_t': 'usize', + 'ull': 'u64', } @@ -52,21 +54,19 @@ def enum_type(enum, feature_set): # this makes handling types for different specifications # easier, since we don't have to swap types. GLenum -> XXenum. if enum.type: - return { - 'ull': 'u64', - }.get(enum.type, 'std::os::raw::c_uint') + _RUST_TYPE_MAPPING.get(enum.type, 'c_uint') if enum.value.startswith('0x'): - return 'u64' if len(enum.value[2:]) > 8 else 'std::os::raw::c_uint' + return 'u64' if len(enum.value[2:]) > 8 else 'c_uint' if enum.name in ('GL_TRUE', 'GL_FALSE'): - return 'std::os::raw::c_uchar' + return 'c_uchar' if enum.value.startswith('-'): - return 'std::os::raw::c_int' + return 'c_int' - if enum.value.endswith('f'): - return 'std::os::raw::c_float' + if enum.value.endswith('f') or enum.value.endswith('F'): + return 'c_float' if enum.value.startswith('"'): # TODO figure out correct type @@ -80,7 +80,7 @@ def enum_type(enum, feature_set): # EGL_CAST(type,value) -> type return enum.value.split('(', 1)[1].split(',')[0] - return 'std::os::raw::c_uint' + return 'c_uint' def enum_value(enum, feature_set): @@ -108,6 +108,9 @@ def enum_value(enum, feature_set): type_, value = enum.value.split('(', 1)[1].rsplit(')', 1)[0].split(',') return '{} as {}'.format(value, type_) + if enum.type == 'float' and value.endswith('F'): + value = value[:-1] + for old, new in (('(', ''), (')', ''), ('f', ''), ('U', ''), ('L', ''), ('~', '!')): value = value.replace(old, new) @@ -116,6 +119,9 @@ def enum_value(enum, feature_set): def to_rust_type(type_): + if type_ is None: + return 'std::os::raw::c_void' + parsed_type = type_ if isinstance(type_, ParsedType) else ParsedType.from_string(type_) if not parsed_type.is_pointer and parsed_type.type == 'void': @@ -163,6 +169,11 @@ class RustConfig(Config): description='Automatically adds all extensions that ' + 'provide aliases for the current feature set.' ) + MX = ConfigOption( + converter=bool, + default=False, + description='Enables support for multiple GL contexts' + ) class RustGenerator(JinjaGenerator): @@ -176,12 +187,12 @@ def __init__(self, *args, **kwargs): self.environment.filters.update( feature=lambda x: 'feature = "{}"'.format(x), - enum_type=jinja2.contextfilter(lambda ctx, enum: enum_type(enum, ctx['feature_set'])), - enum_value=jinja2.contextfilter(lambda ctx, enum: enum_value(enum, ctx['feature_set'])), + enum_type=jinja2_contextfilter(lambda ctx, enum: enum_type(enum, ctx['feature_set'])), + enum_value=jinja2_contextfilter(lambda ctx, enum: enum_value(enum, ctx['feature_set'])), type=to_rust_type, params=to_rust_params, identifier=identifier, - no_prefix=jinja2.contextfilter(lambda ctx, value: strip_specification_prefix(value, ctx['spec'])) + no_prefix=jinja2_contextfilter(lambda ctx, value: strip_specification_prefix(value, ctx['spec'])) ) @property @@ -211,6 +222,24 @@ def get_templates(self, spec, feature_set, config): return [ ('Cargo.toml', 'glad-{}/Cargo.toml'.format(feature_set.name)), ('lib.rs', 'glad-{}/src/lib.rs'.format(feature_set.name)), - ('impl.rs'.format(spec.name), 'glad-{}/src/{}.rs'.format(feature_set.name, spec.name)) + ('impl.rs', 'glad-{}/src/{}.rs'.format(feature_set.name, spec.name)) ] + def modify_feature_set(self, spec, feature_set, config): + self._remove_empty_enums(feature_set) + + return feature_set + + def _remove_empty_enums(self, feature_set): + """ + There are some enums which are simply empty: + https://github.com/KhronosGroup/Vulkan-Docs/issues/1754 + they need to be removed, we need to also remove any type which is an alias to that empty enum. + """ + to_remove = set() + + for typ in (t for t in feature_set.types if isinstance(t, EnumType)): + if typ.alias is None and not typ.enums_for(feature_set): + to_remove.add(typ.name) + + feature_set.types = [t for t in feature_set.types if t.name not in to_remove and t.alias not in to_remove] diff --git a/glad/generator/rust/templates/Cargo.toml b/glad/generator/rust/templates/Cargo.toml index 14cd0f1b..048c6bd3 100644 --- a/glad/generator/rust/templates/Cargo.toml +++ b/glad/generator/rust/templates/Cargo.toml @@ -2,6 +2,7 @@ name = "glad-{{ feature_set.name }}" version = "{{ version }}" authors = ["David Herberth "] +license = "(WTFPL OR CC0-1.0) AND Apache-2.0" [features] {% for platform in spec.platforms.values() %} diff --git a/glad/generator/rust/templates/impl.rs b/glad/generator/rust/templates/impl.rs index 685165ed..8432a8bb 100644 --- a/glad/generator/rust/templates/impl.rs +++ b/glad/generator/rust/templates/impl.rs @@ -1,36 +1,37 @@ {% import 'template_utils.rs' as template_utils with context %} - pub use self::types::*; pub use self::enumerations::*; pub use self::functions::*; -use std::os::raw; +use std::os::raw::c_void; + +{% set ctx_name = feature_set.name | capitalize %} -pub struct FnPtr { - ptr: *const raw::c_void, +#[derive(Copy, Clone)] +struct FnPtr { + ptr: *const c_void, is_loaded: bool } +#[allow(dead_code)] impl FnPtr { - pub fn empty() -> FnPtr { - FnPtr { ptr: FnPtr::not_initialized as *const raw::c_void, is_loaded: false } - } - - pub fn load(&mut self, loadfn: &mut F, name: &'static str) where F: FnMut(&'static str) -> *const raw::c_void { - let loaded = loadfn(name); - if !loaded.is_null() { - self.ptr = loaded; - self.is_loaded = true; + fn new(ptr: *const c_void) -> FnPtr { + if !ptr.is_null() { + FnPtr { ptr, is_loaded: true } } else { - self.ptr = FnPtr::not_initialized as *const raw::c_void; - self.is_loaded = false; - }; + FnPtr { ptr: FnPtr::not_initialized as *const c_void, is_loaded: false } + } } - pub fn aliased(&mut self, other: &FnPtr) { - if !self.is_loaded && other.is_loaded { - self.ptr = other.ptr; - self.is_loaded = other.is_loaded; + fn set_ptr(&mut self, ptr: *const c_void) { + *self = Self::new(ptr); + } + + fn aliased(&mut self, other: *const FnPtr) { + unsafe { + if !self.is_loaded && (*other).is_loaded { + *self = *other; + } } } @@ -38,6 +39,9 @@ impl FnPtr { fn not_initialized() -> ! { panic!("{{ feature_set.name }}: function not initialized") } } +unsafe impl Sync for FnPtr {} +unsafe impl Send for FnPtr {} + pub mod types { {% include 'types/' + spec.name + '.rs' ignore missing with context %} } @@ -45,49 +49,100 @@ pub mod types { pub mod enumerations { #![allow(dead_code, non_upper_case_globals, unused_imports)] - use std; + use std::os::raw::*; use super::types::*; {% for enum in feature_set.enums %} - pub const {{ enum.name }}: {{ enum|enum_type }} = {{ enum|enum_value }}; + pub const {{ enum.name|no_prefix }}: {{ enum|enum_type }} = {{ enum|enum_value }}; {% endfor %} } pub mod functions { - #![allow(non_snake_case, unused_variables, dead_code)] + #![allow(non_snake_case, unused_variables, dead_code, unused_imports)] - use std; - use std::mem; - use super::storage; + use std::mem::transmute; + use std::os::raw::*; + use super::*; use super::types::*; + macro_rules! func { + ($fun:ident, $ret:ty, $($name:ident: $typ:ty),*) => { + #[inline] pub unsafe fn $fun({{ '&self, ' if options.mx }}$($name: $typ),*) -> $ret { + transmute::<_, extern "system" fn($($typ),*) -> $ret>({{ 'self.' if options.mx else 'storage::' }}$fun.ptr)($($name),*) + } + } + } + + {% if options.mx %} + pub struct {{ ctx_name }} { + {% for command in feature_set.commands %} + {{ template_utils.protect(command) }} pub(super) {{ command.name|no_prefix }}: FnPtr, + {% endfor %} + } + + {% if not spec.name | capitalize == ctx_name %} + pub type {{ spec.name | capitalize }} = {{ ctx_name }}; + {% endif %} + + impl {{ ctx_name }} { + {% endif %} + {% for command in feature_set.commands %} - {{ template_utils.protect(command) }} #[inline] pub unsafe fn {{ command.name|no_prefix }}({{ command|params }}) -> {{ command.proto.ret|type }} { mem::transmute::<_, extern "system" fn({{ command|params('types') }}) -> {{ command.proto.ret|type }}>(storage::{{ command.name|no_prefix }}.ptr)({{ command|params('names') }}) } + {{ template_utils.protect(command) }} func!({{ command.name|no_prefix }}, {{ command.proto.ret|type }}, {{ command|params }}); {% endfor %} + + {{ '}' if options.mx }} } +{% if not options.mx %} mod storage { #![allow(non_snake_case, non_upper_case_globals)] use super::FnPtr; - use std::os::raw; + use std::os::raw::*; + + macro_rules! store { + ($name:ident) => { + pub(super) static mut $name: FnPtr = FnPtr { ptr: FnPtr::not_initialized as *const c_void, is_loaded: false }; + } + } {% for command in feature_set.commands %} - {{ template_utils.protect(command) }} pub static mut {{ command.name|no_prefix }}: FnPtr = FnPtr { ptr: FnPtr::not_initialized as *const raw::c_void, is_loaded: false }; + {{ template_utils.protect(command) }} store!({{ command.name|no_prefix }}); {% endfor %} } +{% endif %} -pub fn load(mut loadfn: F) where F: FnMut(&'static str) -> *const raw::c_void { +{% if options.mx %} +pub fn load(mut loadfn: F) -> functions::{{ ctx_name }} where F: FnMut(&'static str) -> *const c_void { + #[allow(unused_mut)] + let mut ctx = {{ ctx_name }} { + {% for command in feature_set.commands %} + {{ template_utils.protect(command.name) }} {{ command.name|no_prefix }}: FnPtr::new(loadfn("{{ command.name }}")), + {% endfor %} + }; + + {% for command, caliases in aliases|dictsort %} + {% for alias in caliases|reject('equalto', command) %} + {{ template_utils.protect(command) }} ctx.{{ command|no_prefix }}.aliased(std::ptr::addr_of!(ctx.{{ alias|no_prefix }})); + {% endfor %} + {% endfor %} + + ctx +} +{% else %} +pub fn load(mut loadfn: F) where F: FnMut(&'static str) -> *const c_void { unsafe { {% for command in feature_set.commands %} - {{ template_utils.protect(command) }} storage::{{ command.name | no_prefix }}.load(&mut loadfn, "{{ command.name }}"); + {{ template_utils.protect(command) }} storage::{{ command.name | no_prefix }}.set_ptr(loadfn("{{ command.name }}")); {% endfor %} {% for command, caliases in aliases|dictsort %} {% for alias in caliases|reject('equalto', command) %} - {{ template_utils.protect(command) }} storage::{{ command|no_prefix }}.aliased(&storage::{{ alias|no_prefix }}); + {{ template_utils.protect(command) }}{{ template_utils.protect(alias) }} storage::{{ command|no_prefix }}.aliased(std::ptr::addr_of!(storage::{{ alias|no_prefix }})); {% endfor %} {% endfor %} } } +{% endif %} diff --git a/glad/generator/rust/templates/lib.rs b/glad/generator/rust/templates/lib.rs index 1d428e38..dc8011ab 100644 --- a/glad/generator/rust/templates/lib.rs +++ b/glad/generator/rust/templates/lib.rs @@ -1 +1,2 @@ +#[allow(clippy::all)] pub mod {{ spec.name }}; \ No newline at end of file diff --git a/glad/generator/rust/templates/types/egl.rs b/glad/generator/rust/templates/types/egl.rs index a6d32e58..f6283b7b 100644 --- a/glad/generator/rust/templates/types/egl.rs +++ b/glad/generator/rust/templates/types/egl.rs @@ -75,3 +75,8 @@ pub struct EGLClientPixmapHI { iStride: EGLint, } +pub type wl_display = std::os::raw::c_void; +pub type wl_surface = std::os::raw::c_void; +pub type wl_buffer = std::os::raw::c_void; +pub type wl_resource = std::os::raw::c_void; + diff --git a/glad/generator/rust/templates/types/glx.rs b/glad/generator/rust/templates/types/glx.rs index af5b300b..f2d08e7e 100644 --- a/glad/generator/rust/templates/types/glx.rs +++ b/glad/generator/rust/templates/types/glx.rs @@ -99,14 +99,14 @@ pub struct GLXBufferClobberEventSGIX { #[repr(C)] #[derive(Copy, Clone)] pub struct GLXHyperpipeNetworkSGIX { - pub pipeName: [std::os::raw::c_char; super::enumerations::GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], + pub pipeName: [std::os::raw::c_char; super::enumerations::HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], pub networkId: std::os::raw::c_int, } #[repr(C)] #[derive(Copy, Clone)] pub struct GLXHyperpipeConfigSGIX { - pub pipeName: [std::os::raw::c_char; super::enumerations::GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], + pub pipeName: [std::os::raw::c_char; super::enumerations::HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], pub channel: std::os::raw::c_int, pub participationType: std::os::raw::c_uint, pub timeSlice: std::os::raw::c_int, @@ -115,7 +115,7 @@ pub struct GLXHyperpipeConfigSGIX { #[repr(C)] #[derive(Copy, Clone)] pub struct GLXPipeRect { - pub pipeName: [std::os::raw::c_char; super::enumerations::GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], + pub pipeName: [std::os::raw::c_char; super::enumerations::HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], pub srcXOrigin: std::os::raw::c_int, pub srcYOrigin: std::os::raw::c_int, pub srcWidth: std::os::raw::c_int, @@ -129,7 +129,7 @@ pub struct GLXPipeRect { #[repr(C)] #[derive(Copy, Clone)] pub struct GLXPipeRectLimits { - pub pipeName: [std::os::raw::c_char; super::enumerations::GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], + pub pipeName: [std::os::raw::c_char; super::enumerations::HYPERPIPE_PIPE_NAME_LENGTH_SGIX as usize], pub XOrigin: std::os::raw::c_int, pub YOrigin: std::os::raw::c_int, pub maxHeight: std::os::raw::c_int, diff --git a/glad/generator/rust/templates/types/vk.rs b/glad/generator/rust/templates/types/vk.rs index 926f09bb..0d7a9a5f 100644 --- a/glad/generator/rust/templates/types/vk.rs +++ b/glad/generator/rust/templates/types/vk.rs @@ -3,6 +3,7 @@ {% import 'template_utils.rs' as template_utils with context %} use std; +use std::os::raw::*; // types required for: xcb pub type xcb_connection_t = std::os::raw::c_void; @@ -18,6 +19,7 @@ pub type BOOL = std::os::raw::c_int; pub type DWORD = std::os::raw::c_ulong; pub type LPVOID = *mut std::os::raw::c_void; pub type HANDLE = *mut std::os::raw::c_void; +pub type HMONITOR = *mut std::os::raw::c_void; pub type WCHAR = u16; pub type LPCWSTR = *const WCHAR; pub type HINSTANCE = *mut std::os::raw::c_void; @@ -32,9 +34,6 @@ pub struct SECURITY_ATTRIBUTES { // types required for: wayland pub type wl_display = std::os::raw::c_void; pub type wl_surface = std::os::raw::c_void; -// types required for: android -pub type AHardwareBuffer = std::os::raw::c_void; -pub type ANativeWindow = std::os::raw::c_void; // types required for: mir pub type MirConnection = std::os::raw::c_void; pub type MirSurface = std::os::raw::c_void; @@ -81,7 +80,7 @@ pub type {{ type.name }} = {{ type.type|type }}; {% set members = type.enums_for(feature_set) %} {% if members %} {{ template_utils.protect(type) }} -#[repr(i32)] +#[repr(i{{ type.bitwidth or '32' }})] #[derive(Copy, Clone, Eq, PartialEq, Debug)] pub enum {{ type.name }} { {% for member in members %} @@ -98,7 +97,7 @@ pub enum {{ type.name }} { #[derive(Copy, Clone)] pub {{ type.category }} {{ type.name }} { {% for member in type.members %} - {{ member.name|identifier }}: {{ member.type|type }}, + pub {{ member.name|identifier }}: {{ member.type|type }}, {% endfor %} } {% elif type.category == 'bitmask' %} diff --git a/glad/generator/util.py b/glad/generator/util.py index a4d6d9b4..a56c7bf6 100644 --- a/glad/generator/util.py +++ b/glad/generator/util.py @@ -1,3 +1,14 @@ +from collections import OrderedDict +import jinja2 +import re + +if hasattr(jinja2, 'pass_context'): + jinja2_contextfunction = jinja2.pass_context + jinja2_contextfilter = jinja2.pass_context +else: + jinja2_contextfunction = jinja2.contextfunction + jinja2_contextfilter = jinja2.contextfilter + def is_device_command(self): """ @@ -70,7 +81,10 @@ def collect_alias_information(commands): if len(alias[command.name]) == 1: del alias[command.name] - return alias + return OrderedDict( + (command.name, sorted(alias[command.name])) + for command in commands if command.name in alias + ) def find_extensions_with_aliases(spec, api, version, profile, extensions): @@ -91,14 +105,14 @@ def find_extensions_with_aliases(spec, api, version, profile, extensions): """ feature_set = spec.select(api, version, profile, extensions) - command_names = [command.name for command in feature_set.commands] + command_names = set(command.name for command in feature_set.commands) new_extensions = set() for extension in spec.extensions[api].values(): if extension in feature_set.extensions: continue - for command in extension.get_requirements(spec, api, profile, feature_set=feature_set).commands: + for command in extension.get_requirements(spec, api, profile).commands: # find all extensions which have an alias to a selected function if command.alias and command.alias in command_names: new_extensions.add(extension.name) diff --git a/glad/generator/volt/__init__.py b/glad/generator/volt/__init__.py deleted file mode 100644 index b22b023d..00000000 --- a/glad/generator/volt/__init__.py +++ /dev/null @@ -1,106 +0,0 @@ -import itertools -from collections import namedtuple - -from glad.config import Config -from glad.generator import JinjaGenerator - - -VoltEnum = namedtuple('VoltEnum', ['type', 'value']) - - -def type_to_volt(ogl_type): - if ogl_type.is_pointer > 1 and ogl_type.is_const: - s = 'const({}{}*)'.format('u' if ogl_type.is_unsigned else '', ogl_type.type) - s += '*' * (ogl_type.is_pointer - 1) - else: - t = '{}{}'.format('u' if ogl_type.is_unsigned else '', ogl_type.type) - s = 'const({})'.format(t) if ogl_type.is_const else t - s += '*' * ogl_type.is_pointer - return s.replace('struct ', '') - - -def params_to_volt(params): - return ', '.join(type_to_volt(param.type) for param in params) - - -def enum_to_volt(enum, default_type='uint'): - result = _enum_to_volt(enum, default_type=default_type) - - if isinstance(result, tuple): - return VoltEnum(*result) - else: - value = enum.value - if enum.value.startswith('0x'): - value += 'U' - if len(enum.value.lstrip('0x')) > 8: - value += 'L' - - return VoltEnum(result, value) - - -def _enum_to_volt(enum, default_type='u32'): - if '"' in enum.value: - return 'const(char)*' - - if enum.type: - return { - 'u': 'u32', - 'ull': 'u64', - 'bitmask': 'u32' - }[enum.type] - - if enum.value.startswith('0x'): - if len(enum.value[2:]) > 8: - return 'u64' - return 'u32' - - if enum.name in ('GL_TRUE', 'GL_FALSE'): - return 'u8' - - if enum.value.startswith('-'): - return 'u32' - - if enum.value.startswith('(('): - # '((Type)value)' -> 'Type' - type_ = enum.value.split(')')[0][2:] - # '((Type)value)' -> cast(Type)value - value = 'cast{}'.format(enum.value[1:-1]) - return type_, value - - return default_type - - -class VoltConfig(Config): - pass - - -class VoltGenerator(JinjaGenerator): - TEMPLATES = ['glad.generator.volt'] - Config = VoltConfig - - def __init__(self, *args, **kwargs): - JinjaGenerator.__init__(self, *args, **kwargs) - - self.environment.globals.update( - type_to_volt=type_to_volt, - params_to_volt=params_to_volt, - enum_to_volt=enum_to_volt, - chain=itertools.chain - ) - - def get_templates(self, spec, feature_set, options): - templates = [ - 'package.volt', - 'enumerations.volt', - 'functions.volt', - 'loader.volt', - 'types.volt' - ] - - ret = list() - for template in templates: - ret.append(( - template, 'amp/{}/{}'.format(feature_set.api, template) - )) - - return ret diff --git a/glad/generator/volt/templates/enumerations.volt b/glad/generator/volt/templates/enumerations.volt deleted file mode 100644 index fae9ce8f..00000000 --- a/glad/generator/volt/templates/enumerations.volt +++ /dev/null @@ -1,9 +0,0 @@ -module amp.{{ feature_set.api }}.enumerations; - - -private import amp.{{ feature_set.api }}.types; - -{% for enum in feature_set.enums %} -{% set volt_enum = enum_to_volt(enum) %} -enum {{ volt_enum.type }} {{ enum.name }} = {{ volt_enum.value }}; -{% endfor %} diff --git a/glad/generator/volt/templates/functions.volt b/glad/generator/volt/templates/functions.volt deleted file mode 100644 index 68c0d530..00000000 --- a/glad/generator/volt/templates/functions.volt +++ /dev/null @@ -1,13 +0,0 @@ -module amp.{{ feature_set.api }}.functions; - -private import amp.{{ feature_set.api }}.types; - -{% for extension in chain(feature_set.features, feature_set.extensions) %} -bool {{ extension.name }}; -{% endfor %} - -extern(System) @loadDynamic { -{% for command in feature_set.commands %} -fn {{ command.name }}({{ params_to_volt(command.params) }}) {{ type_to_volt(command.proto.ret) }}; -{% endfor %} -} diff --git a/glad/generator/volt/templates/loader.volt b/glad/generator/volt/templates/loader.volt deleted file mode 100644 index bd5c8560..00000000 --- a/glad/generator/volt/templates/loader.volt +++ /dev/null @@ -1,27 +0,0 @@ -module amp.{{ feature_set.api }}.loader; - -private { - import amp.{{ feature_set.api }}.functions; - import amp.{{ feature_set.api }}.enumerations; - import amp.{{ feature_set.api }}.types; -} - - -alias Loader = void* delegate(const(char)*); - - -{% include 'loader/' + spec.name + '.volt' %} - -private { -{% for extension in chain(feature_set.features, feature_set.extensions) %} -fn load_{{ extension.name }}(load : Loader) { - {% set commands = extension.get_requirements(spec, feature_set=feature_set).commands %} - {% if commands %} - if (!{{ extension.name }}) return; - {% for command in commands %} - {{ command.name }} = cast(typeof({{ command.name }}))load("{{ command.name }}"); - {% endfor %} - {% endif %} -} -{% endfor %} -} \ No newline at end of file diff --git a/glad/generator/volt/templates/loader/egl.volt b/glad/generator/volt/templates/loader/egl.volt deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/volt/templates/loader/egl.volt +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/volt/templates/loader/gl.volt b/glad/generator/volt/templates/loader/gl.volt deleted file mode 100644 index 3ae2f990..00000000 --- a/glad/generator/volt/templates/loader/gl.volt +++ /dev/null @@ -1,107 +0,0 @@ - -global int GL_MAJOR = 0; -global int GL_MINOR = 0; - -fn gladLoad{{ feature_set.api|api }}(load : Loader) bool { - glGetString = cast(typeof(glGetString))load("glGetString"); - if(glGetString is null) { return false; } - if(glGetString(GL_VERSION) is null) { return false; } - - find_core{{ feature_set.api|api }}(); - {% for feature in feature_set.features %} - load_{{ feature.name }}(load); - {% endfor %} - - find_extensions{{ feature_set.api|api }}(); - {% for extension in feature_set.extensions %} - load_{{ extension.name }}(load); - {% endfor %} - - return GL_MAJOR != 0 || GL_MINOR != 0; -} - - -private { - -private fn!C strstr(const(char)*, const(char)*) char*; -private fn!C strcmp(const(char)*, const(char)*) i32; -private fn!C strncmp(const(char)*, const(char)*, size_t) i32; -private fn!C strlen(const(char)*) size_t; -private fn has_ext(ext : const(char)*) bool { - if(GL_MAJOR < 3) { - extensions : const(char)* = cast(const(char)*)glGetString(GL_EXTENSIONS); - loc : const(char)*; - terminator : const(char)*; - - if(extensions is null || ext is null) { - return false; - } - - while(1) { - loc = strstr(extensions, ext); - if(loc is null) { - return false; - } - - terminator = loc + strlen(ext); - if((loc is extensions || *(loc - 1) == ' ') && - (*terminator == ' ' || *terminator == '\0')) { - return true; - } - extensions = terminator; - } - } else { - int num; - glGetIntegerv(GL_NUM_EXTENSIONS, &num); - - for(u32 i=0; i < cast(u32)num; i++) { - if(strcmp(cast(const(char)*)glGetStringi(GL_EXTENSIONS, i), ext) == 0) { - return true; - } - } - } - - return false; -} - -fn find_core{{ feature_set.api|api }}() { - - // Thank you @elmindreda - // https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 - // https://github.com/glfw/glfw/blob/master/src/context.c#L36 - i : int; - glversion : const(char)*; - prefixes : const(char)*[] = [ - "OpenGL ES-CM ".ptr, - "OpenGL ES-CL ".ptr, - "OpenGL ES ".ptr, - ]; - - glversion = cast(const(char)*)glGetString(GL_VERSION); - if (glversion is null) return; - - foreach(prefix; prefixes) { - size_t length = strlen(prefix); - if (strncmp(glversion, prefix, length) == 0) { - glversion += length; - break; - } - } - - major : i32 = glversion[0] - '0'; - minor : i32 = glversion[2] - '0'; - GL_MAJOR = major; GL_MINOR = minor; - {% for feature in feature_set.features %} - {{ feature.name }} = (major == {{ feature.version.major }} && minor >= {{ feature.version.minor }}) || major > {{ feature.version.major }}; - {% endfor %} - return; -} - -fn find_extensions{{ feature_set.api|api }}() { - {% for extension in extensions %} - {{ extension.name }} = has_ext("{{ extension.name }}"); - {% endfor %} - return; -} - -} /* private */ \ No newline at end of file diff --git a/glad/generator/volt/templates/loader/glx.volt b/glad/generator/volt/templates/loader/glx.volt deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/volt/templates/loader/glx.volt +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/volt/templates/loader/wgl.volt b/glad/generator/volt/templates/loader/wgl.volt deleted file mode 100644 index 48e70a7e..00000000 --- a/glad/generator/volt/templates/loader/wgl.volt +++ /dev/null @@ -1 +0,0 @@ -/* TODO */ \ No newline at end of file diff --git a/glad/generator/volt/templates/package.volt b/glad/generator/volt/templates/package.volt deleted file mode 100644 index 20c237eb..00000000 --- a/glad/generator/volt/templates/package.volt +++ /dev/null @@ -1,9 +0,0 @@ -package amp.{{ feature_set.api }}; - - -public { - import amp.{{ feature_set.api }}.enumerations; - import amp.{{ feature_set.api }}.functions; - import amp.{{ feature_set.api }}.loader; - import amp.{{ feature_set.api }}.types; -} \ No newline at end of file diff --git a/glad/generator/volt/templates/types.volt b/glad/generator/volt/templates/types.volt deleted file mode 100644 index 3eae6d73..00000000 --- a/glad/generator/volt/templates/types.volt +++ /dev/null @@ -1,3 +0,0 @@ -module amp.{{ feature_set.api }}.types; - -{% include 'types/' + spec.name + '.volt' %} \ No newline at end of file diff --git a/glad/generator/volt/templates/types/egl.volt b/glad/generator/volt/templates/types/egl.volt deleted file mode 100644 index 44f89fca..00000000 --- a/glad/generator/volt/templates/types/egl.volt +++ /dev/null @@ -1,83 +0,0 @@ -// good enough ... -alias intptr_t = size_t*; - -alias EGLConfig = void*; -alias EGLClientBuffer = void*; -alias EGLNativeFileDescriptorKHR = i32; -alias EGLuint64KHR = u64; -alias EGLTimeKHR = u64; -alias EGLOutputLayerEXT = void*; -alias EGLsizeiANDROID = ptrdiff_t; -alias EGLBoolean = u32; -alias EGLAttribKHR = intptr_t; -alias EGLDisplay = void*; -alias EGLint = i32; -alias EGLSyncKHR = void*; -alias EGLTimeNV = u64; -alias EGLDeviceEXT = void*; -alias EGLImageKHR = void*; -alias EGLSurface = void*; -alias __eglMustCastToProperFunctionPointerType = void function(); -alias EGLAttrib = i32ptr_t; -alias EGLContext = void*; -alias EGLuint64MESA = u64; -alias EGLenum = u32; -alias EGLImage = void*; -alias EGLSyncNV = void*; -alias EGLStreamKHR = void*; -alias EGLSync = void*; -alias EGLOutputPortEXT = void*; -alias EGLuint64NV = u64; -alias EGLTime = u64; - -// Thanks to @jpf91 (github) for these declarations -version(Windows) { - import core.sys.windows.windows; - alias EGLNativeDisplayType = HDC; - alias EGLNativePixmapType = HBITMAP; - alias EGLNativeWindowType = HWND; -} else version(Symbian) { - alias EGLNativeDisplayType = i32; - alias EGLNativeWindowType = void*; - alias EGLNativePixmapType = void*; -} else version(Android) { - //import android.native_window; - //struct egl_native_pixmap_t; - struct _egl_native_pixmap_t; alias egl_native_pixmap_t = _egl_native_pixmap_t*; - - //alias ANativeWindow* EGLNativeWindowType; - //alias egl_native_pixmap_t* EGLNativePixmapType; - alias EGLNativeWindowType = void*; - alias EGLNativePixmapType = void*; - alias EGLNativeDisplayType = void*; -} else version(linux) { - version(Xlib) { - import X11.Xlib; - import X11.Xutil; - alias EGLNativeDisplayType = Display*; - alias EGLNativePixmapType = Pixmap; - alias EGLNativeWindowType = Window; - } else { - alias EGLNativeDisplayType = void*; - alias EGLNativePixmapType = u32; - alias EGLNativeWindowType = u32; - } -} -alias EGLObjectKHR = void*; -alias EGLLabelKHR = void*; - -extern(System) { -alias EGLSetBlobFuncANDROID = void function(const(void)*, EGLsizeiANDROID, const(void)*, EGLsizeiANDROID); -alias EGLGetBlobFuncANDROID = EGLsizeiANDROID function(const(void)*, EGLsizeiANDROID, const(void)* EGLsizeiANDROID); -struct EGLClientPixmapHI { - pData : void*; - iWidth : EGLint; - iHeight : EGLint; - iStride : EGLint; -} -alias EGLDEBUGPROCKHR = void function(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -} -extern(System) { -struct __cl_event {} -alias _cl_event = __cl_event*; -} \ No newline at end of file diff --git a/glad/generator/volt/templates/types/gl.volt b/glad/generator/volt/templates/types/gl.volt deleted file mode 100644 index 490eddd4..00000000 --- a/glad/generator/volt/templates/types/gl.volt +++ /dev/null @@ -1,46 +0,0 @@ -alias GLvoid = void; -alias GLintptr = ptrdiff_t; -alias GLsizei = i32; -alias GLchar = char; -alias GLcharARB = i8; -alias GLushort = u16; -alias GLint64EXT = i64; -alias GLshort = i16; -alias GLuint64 = u64; -alias GLhalfARB = u16; -alias GLubyte = u8; -alias GLdouble = f64; -alias GLhandleARB = u32; -alias GLint64 = i64; -alias GLenum = u32; -alias GLeglImageOES = void*; -alias GLintptrARB = ptrdiff_t; -alias GLsizeiptr = ptrdiff_t; -alias GLint = i32; -alias GLboolean = u8; -alias GLbitfield = u32; -alias GLsizeiptrARB = ptrdiff_t; -alias GLfloat = f32; -alias GLuint64EXT = u64; -alias GLclampf = f32; -alias GLbyte= i8; -alias GLclampd = f64; -alias GLuint = u32; -alias GLvdpauSurfaceNV = ptrdiff_t; -alias GLfixed = i32; -alias GLhalf= u16; -alias GLclampx = i32; -alias GLhalfNV= u16; -struct ___GLsync {} -alias __GLsync = ___GLsync*; -alias GLsync = __GLsync*; -struct __cl_context {} -alias _cl_context = __cl_context*; -struct __cl_event {} -alias _cl_event = __cl_event*; -extern(System) { -alias GLDEBUGPROC = void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in GLchar*, GLvoid*); -alias GLDEBUGPROCARB = GLDEBUGPROC; -alias GLDEBUGPROCKHR = GLDEBUGPROC; -alias GLDEBUGPROCAMD = void function(GLuint, GLenum, GLenum, GLsizei, in GLchar*, GLvoid*); -} \ No newline at end of file diff --git a/glad/generator/volt/templates/types/glx.volt b/glad/generator/volt/templates/types/glx.volt deleted file mode 100644 index 0a88b7a7..00000000 --- a/glad/generator/volt/templates/types/glx.volt +++ /dev/null @@ -1,173 +0,0 @@ -alias GLenum = u32; -alias GLfloat = f32; -alias GLsizei = i32; -alias GLsizeiptr = ptrdiff_t; -alias GLubyte = u8; -alias GLint = i32; -alias GLboolean = u8; -alias GLuint = u32; -alias GLbitfield = u32; -alias GLintptr = ptrdiff_t; - -version(Xlib) { - import X11.Xlib; - import X11.Xutil; -} else { - alias Bool = i32; - alias Status = i32; - alias VisualID = u32; - alias XPointer = i8*; - alias XID = u32; - alias Colormap = XID; - alias Display = void; - alias Font = XID; - alias Window = XID; - alias Drawable = XID; - alias Pixmap = XID; - alias Cursor = XID; - alias GContext = XID; - alias KeySym = XID; - - extern(System) { - // Borrowed from derelict - struct XExtData { - number : int; - next : XExtData*; - free_private : fn!C (XExtData*) i32; - private_data : XPointer; - } - - struct Visual { - ext_data : XExtData*; - visualid : VisualID; - _class : i32; - red_mask : u32; - green_mask : u32; - blue_mask : u32; - bits_per_rgb : i32; - map_entries : i32; - } - - struct XVisualInfo { - visual : Visual*; - visualid : VisualID; - screen : i32; - depth : i32; - _class : i32; - red_mask : u32; - green_mask : u32; - blue_mask : u32; - colormap_size : i32; - bits_per_rgb : i32; - } - } -} - -alias DMbuffer = void*; -alias DMparams = void*; -alias VLNode = void*; -alias VLPath = void*; -alias VLServer = void*; - -alias int64_t = i64; -alias uint64_t = u64; -alias int32_t = i32; - -alias GLXContextID = u32; -alias GLXPixmap = u32; -alias GLXDrawable = u32; -alias GLXPbuffer = u32; -alias GLXWindow = u32; -alias GLXFBConfigID = u32; -alias GLXVideoCaptureDeviceNV = XID; -alias GLXPbufferSGIX = XID; -alias GLXVideoSourceSGIX = XID; -alias GLXVideoDeviceNV = u32; - - -extern(System) { - alias __GLXextFuncPtr = void function(); - - struct GLXPbufferClobberEvent { - event_type : i32; /* GLX_DAMAGED or GLX_SAVED */ - draw_type : i32; /* GLX_WINDOW or GLX_PBUFFER */ - serial : u64; /* # of last request processed by server */ - send_event : Bool; /* true if this came for SendEvent request */ - display : Display*; /* display the event was read from */ - drawable : GLXDrawable; /* XID of Drawable */ - buffer_mask : u32; /* mask indicating which buffers are affected */ - aux_buffer : u32; /* which aux buffer was affected */ - x : i32; - y : i32; - width : i32; - height : i32; - count : i32; /* if nonzero, at least this many more */ - } - - struct GLXBufferSwapComplete { - type : i32; - serial : u64; /* # of last request processed by server */ - send_event : Bool; /* true if this came from a SendEvent request */ - display : Display*; /* Display the event was read from */ - drawable : GLXDrawable; /* drawable on which event was requested in event mask */ - event_type : i32; - ust : u64; - msc : u64; - sbc : u64; - } - - union GLXEvent { - glxpbufferclobber : GLXPbufferClobberEvent; - glxbufferswapcomplete : GLXBufferSwapComplete; - pad : i32[24]; - } - - struct GLXBufferClobberEventSGIX { - type : i32; - serial : u64; /* # of last request processed by server */ - send_event : Bool; /* true if this came for SendEvent request */ - display : Display*; /* display the event was read from */ - drawable : GLXDrawable; /* i.d. of Drawable */ - event_type : i32; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ - draw_type : i32; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ - mask : u32; /* mask indicating which buffers are affected*/ - aux_buffer : u32; /* which aux buffer was affected */ - x : i32; - y : i32; - width : i32; - height : i32; - count : i32; /* if nonzero, at least this many more */ - } - - struct GLXHyperpipeNetworkSGIX { - pipeName : char[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - networkId : i32; - } - - struct GLXHyperpipeConfigSGIX { - pipeName : char[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - channel : i32; - participationType : u32; - timeSlice : i32; - } - - struct GLXPipeRect { - pipeName : char[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - srcXOrigin, srcYOrigin, srcWidth, srcHeight : i32; - destXOrigin, destYOrigin, destWidth, destHeight : i32; - } - - struct GLXPipeRectLimits { - pipeName : char[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */ - XOrigin, YOrigin, maxHeight, maxWidth : i32; - } -} -extern(System) { -struct ___GLXcontextRec {} -alias __GLXcontextRec = ___GLXcontextRec*; -alias GLXContext = __GLXcontextRec*; -struct ___GLXFBConfigRec {} -alias __GLXFBConfigRec = ___GLXFBConfigRec*; -alias GLXFBConfig = __GLXFBConfigRec*; -alias GLXFBConfigSGIX = __GLXFBConfigRec*; -} diff --git a/glad/generator/volt/templates/types/wgl.volt b/glad/generator/volt/templates/types/wgl.volt deleted file mode 100644 index 50c16805..00000000 --- a/glad/generator/volt/templates/types/wgl.volt +++ /dev/null @@ -1,131 +0,0 @@ -alias GLenum = u32; -alias INT32 = i32; -alias GLfloat = f32; -alias GLsizei = i32; -alias GLushort = u16; -alias GLuint = u32; -alias GLint = i32; -alias GLboolean = u8; -alias GLbitfield = u32; -alias INT64 = i64; - -version(Windows) { - public import core.windows.windows; -} else { - alias BOOL= i32; - alias CHAR = char; - alias WORD = u16; - alias DWORD = u32; - alias FLOAT = f32; - alias HANDLE = void*; - alias HDC = HANDLE; - alias HGLRC = HANDLE; - alias INT= i32; - alias LPCSTR = const(CHAR)*; - alias LPVOID = void*; - alias UINT= u32; - alias USHORT= u16; - alias VOID = void; - alias COLORREF = DWORD; - alias HENHMETAFILE = HANDLE; - alias BYTE= i8; -} - -alias PROC = HANDLE; - -extern(System) { - struct RECT { - i32 left; - i32 top; - i32 right; - ii32 bottom; - } - - struct LAYERPLANEDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - COLORREF crTransparent; - } - - struct PIXELFORMATDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; - } - - struct POINTFLOAT { - FLOAT x; - FLOAT y; - } - - struct GLYPHMETRICSFLOAT { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; - } - alias PGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT*; - alias LPGLYPHMETRICSFLOAT = GLYPHMETRICSFLOAT; - - struct GPU_DEVICE { - DWORD cb; - CHAR[32] DeviceName; - CHAR[128] DeviceString; - DWORD Flags; - RECT rcVirtualScreen; - } - - alias PGPU_DEVICE = GPU_DEVICE; -} -struct _HPBUFFERARB; alias HPBUFFERARB = _HPBUFFERARB*; -struct _HPBUFFEREXT; alias HPBUFFEREXT = _HPBUFFEREXT*; -struct _HVIDEOOUTPUTDEVICENV; alias HVIDEOOUTPUTDEVICENV = _HVIDEOOUTPUTDEVICENV*; -struct _HPVIDEODEV; alias HPVIDEODEV = _HPVIDEODEV*; -struct _HPGPUNV; alias HPGPUNV = _HPGPUNV*; -struct _HGPUNV; alias HGPUNV = _HGPUNV*; -struct _HVIDEOINPUTDEVICENV; alias HVIDEOINPUTDEVICENV = _HVIDEOINPUTDEVICENV*; \ No newline at end of file diff --git a/glad/parse.py b/glad/parse.py index 80b98463..b1d26349 100644 --- a/glad/parse.py +++ b/glad/parse.py @@ -23,6 +23,7 @@ def xml_parse(path): import copy import logging import os.path +import warnings from collections import defaultdict, OrderedDict, namedtuple, deque from contextlib import closing from itertools import chain @@ -36,8 +37,6 @@ def xml_parse(path): _ARRAY_RE = re.compile(r'\[(\d+)\]') -_FeatureExtensionCommands = namedtuple('_FeatureExtensionCommands', ['features', 'commands']) - class FeatureSetInfo(object): class InfoItem(namedtuple('InfoItem', ['api', 'version', 'profile', 'identifier'])): @@ -105,7 +104,7 @@ def __hash__(self): )) @property - @memoize() + @memoize(method=True) def _all_enums(self): """ Vulkan introduced grouping of enumerations, they turned from @@ -123,9 +122,18 @@ def _all_enums(self): for enum in self.enums: result[enum.name] = enum + apis = [info.api for info in self.info] for type_ in self.types: if type_.category == 'enum': for enum in type_.enums: + # Safety check, this should never happen. + # Even though this could happen if you go by the spec, + # glad generates duplicate types (and commands) with different APIs + # attributes. So the only way this could happen by merging multiple + # APIs, but the merging code already makes sure it selects + # one of the candidates and not both + if enum.name in result: + raise ValueError('duplicate enum {} in feature set'.format(enum.name)) result[enum.name] = enum return result @@ -277,13 +285,14 @@ def comment(self): @property def groups(self): + warnings.warn('the groups have been deprecated in the spec', DeprecationWarning) if self._groups is None: self._groups = dict((element.attrib['name'], Group(element)) for element in self.root.find('groups')) return self._groups @property - @memoize() + @memoize(method=True) def platforms(self): platforms = dict() @@ -298,25 +307,46 @@ def platforms(self): return platforms @property - @memoize() + @memoize(method=True) def types(self): types = OrderedDict() for element in filter(lambda e: e.tag == 'type', iter(self.root.find('types'))): - t = Type.from_element(element) + name = element.get('name') or element.find('name').text + + if element.get('category') != 'enum': + types.setdefault(name, list()).extend(Type.from_element(element)) + continue - if t.category == 'enum': - enums_element = self.root.findall('.//enums[@type][@name="{}"]'.format(t.name)) - if len(enums_element) == 0: + # Enum special handling + enums_element = self.root.findall('.//enums[@type][@name="{}"]'.format(name)) + if len(enums_element) == 0: + if element.get('alias') is None: # yep the type exists but there is actually no enum for it... - logger.debug('type {} with category enum but without '.format(t.name)) + logger.debug('type {} with category enum but without '.format(name)) continue - if not len(enums_element) == 1: - # this should never happen, if it does ... well shit - raise ValueError('multiple enums with type attribute and name {}'.format(t.name)) - enums_element = enums_element[0] + # It's just a simple alias, add it + types.setdefault(name, list()).extend(Type.from_element(element)) + continue + elif len(enums_element) > 1: + # this should never happen, if it does ... well shit + raise ValueError('multiple enums with type attribute and name {}'.format(name)) + enums_element = enums_element[0] + + # Copy the type for each API it is used in + apis = set(e.get('api') for e in self.root.findall('.//require/enum[@extends="{}"]'.format(name))) + for api in apis or [None]: + # Hack: Enum Type always returns only one element, + # because we do the special handling here + t = EnumType.from_element(element)[0] + + # Assumption for now that enum types do not have an API + # if there ever is one, the `apis` list needs to be adjusted to only contain t.api + assert t.api is None + t.api = api + t.bitwidth = enums_element.get('bitwidth') kwargs = dict(namespace=enums_element.get('namespace'), - group=enums_element.get('group'), + parent_group=enums_element.get('group'), vendor=enums_element.get('vendor'), comment=enums_element.get('comment', '')) @@ -334,6 +364,9 @@ def types(self): for extending_enum in extension.findall('.//require/enum[@extends="{}"]'.format(t.name)): enum = Enum.from_element(extending_enum, extnumber=extnumber, parent_type=t.name) + # Make sure this enum is relevant for the current API + if not enum.api == api and enum.api is not None: + continue if enum.name not in enums: enums[enum.name] = enum @@ -345,16 +378,16 @@ def types(self): 'with different values'.format(e.name)) enums[enum.name].also_extended_by(extension.attrib['name']) + t.enums = list(enums.values()) - if t.name not in types: - types[t.name] = list() - types[t.name].append(t) + types.setdefault(t.name, list()).append(t) def _type_dependencies(item): # all requirements of all types (types can exist more than once, e.g. specialized for an API) # but only requirements that are types as well requirements = set(r for r in chain.from_iterable(t.requires for t in item[1]) if r in types) + # requirements.add(r.parent_type) aliases = set(t.alias for t in item[1] if t.alias and t.alias in types) dependencies = requirements.union(aliases) dependencies.discard(item[0]) @@ -366,13 +399,16 @@ def _type_dependencies(item): def commands(self): commands = dict() for element in self.root.find('commands'): - command = Command(element) - commands.setdefault(command.name, []).append(command) + parsed = Command.from_element(element) + if len(parsed) > 0: + commands.setdefault(parsed[0].name, []).extend(parsed) # fixup aliases for command in chain.from_iterable(commands.values()): if command.alias is not None and command.proto is None: - aliased_command = next(c for c in commands[command.alias] if c.api == command.api) + aliased_command = command + while aliased_command.proto is None: + aliased_command = next(c for c in commands[aliased_command.alias] if c.api == command.api) command.proto = Proto(command.name, copy.deepcopy(aliased_command.proto.ret)) command.params = copy.deepcopy(aliased_command.params) @@ -380,7 +416,7 @@ def commands(self): return commands @property - @memoize() + @memoize(method=True) def enums(self): enums = dict() for element in self.root.iter('enums'): @@ -399,9 +435,9 @@ def enums(self): assert enum.tag == 'enum' name = enum.attrib['name'] - enums.setdefault(name, []).append( - Enum.from_element(enum, namespace=namespace, group=group, vendor=vendor, comment=comment) - ) + enums.setdefault(name, []).append(Enum.from_element( + enum, namespace=namespace, parent_group=group, vendor=vendor, comment=comment + )) # add enums added through a for element in self.root.findall('.//require/enum'): @@ -415,12 +451,13 @@ def enums(self): return enums @property - @memoize() + @memoize(method=True) def features(self): features = defaultdict(dict) - for element in self.root.iter('feature'): + for element in self.root.iterfind('feature'): num = Version(*map(int, element.attrib['number'].split('.'))) - features[element.attrib['api']][num] = Feature.from_element(element) + for api in element.attrib['api'].split(','): + features[api][num] = Feature.from_element(element) for api, api_features in features.items(): features[api] = OrderedDict(sorted(api_features.items(), key=lambda x: x[0])) @@ -431,7 +468,7 @@ def highest_version(self, api): return sorted(self.features[api].keys(), reverse=True)[0] @property - @memoize() + @memoize(method=True) def extensions(self): extensions = defaultdict(dict) for element in self.root.find('extensions'): @@ -554,14 +591,58 @@ def find(self, require, api, profile, recursive=False): requirements.update(new_requirements) open_requirements.extend(new_requirements) - alias = getattr(best_match, 'alias', None) - if recursive and alias is not None: - if alias not in requirements: - requirements.add(alias) - open_requirements.append(alias) + # Everything that is not a command alias is generated as a define, typedef etc. + # and not "copy-pasted", this means we have to resolve the alias of a type in order + # to be able to alias it properly. + # Commands are simply generated again instead of aliased. + # The `isinstance` check can be replaced with `if not alias in self.commands`. + if not isinstance(best_match, Command): + alias = getattr(best_match, 'alias', None) + if recursive and alias is not None: + if alias not in requirements: + requirements.add(alias) + open_requirements.append(alias) yield best_match + @property + @memoize(method=True) + def _all_enums(self): + """ + Vulkan introduced grouping of enumerations, they turned from + basic `#define`'s into actual enumerations `enum Foo { ... }`. + + Glad interprets the "actual" enumerations as types, it's + an enumeration type with values. But sometimes it is necessary + to just have all enumerations without grouping information + available (e.g. for quickly looking up a value). This lives + under the assumption that enum names are unique. + + :return: a dictionary of name:enum pairs. + """ + result = dict() + + for type_ in self.types.values(): + type_ = type_[0] + if type_.category == 'enum': + for enum in type_.enums: + result[enum.name] = enum + + return result + + def find_enum(self, name, default=None): + """ + Finds any enum, this includes enums that are part of + types, by its name. + + :param name: name of the enum + :param default: default value to return if not found + :return: the enum if found or else the default + """ + if name is None: + return default + return self._all_enums.get(name, default) + @staticmethod def split_types(iterable, types): result = tuple(set() for _ in types) @@ -738,28 +819,36 @@ class Type(IdentifiedByName): def register(category, type_factory): Type._FACTORIES[category] = type_factory - def __init__(self, name, api=None, category=None, alias=None, requires=None, raw=None): + def __init__(self, name, api=None, category=None, alias=None, requires=None, parent=None, apientry=False, raw=None): self.name = name self.api = api self.category = category self.alias = alias self.requires = requires or [] + self.parent = parent + self.apientry = apientry self._raw = raw @classmethod def factory(cls, element, name, data): - return cls(name, **data) + return [cls(name, **data)] @staticmethod def from_element(element): + apientry = element.find('apientry') + if apientry is not None: + # not so great workaround to get APIENTRY included in the raw output + apientry.text = 'APIENTRY' + raw = ''.join(element.itertext()) api = element.get('api') category = element.get('category') name = element.get('name') or element.find('name').text alias = element.get('alias') + parent = element.get('parent') # a type referenced by a struct/funcptr is required by this type requires = set(t.text for t in element.iter('type') if t is not element) @@ -767,7 +856,15 @@ def from_element(element): if element.get('requires'): requires.add(element.get('requires')) - data = dict(api=api, category=category, alias=alias, requires=requires, raw=raw) + data = dict( + api=api, + category=category, + alias=alias, + requires=requires, + parent=parent, + apientry=apientry is not None, + raw=raw + ) factory = Type._FACTORIES.get(category, Type.factory) return factory(element, name, data) @@ -775,6 +872,17 @@ def from_element(element): def is_equivalent(self, other): return self._raw == other._raw + def is_descendant(self, basetype, typeslist): + if self.name == basetype: + return True + + cur = self + while cur.parent is not None: + if cur.parent == basetype: + return True + cur = typeslist[cur.parent][0] + return False + def __str__(self): return self.name @@ -814,7 +922,7 @@ def factory(cls, element, name, data): type_.replace(' ', ''), pname.strip() ) - return cls(name, ret=ret, parameters=parameters, **data) + return [cls(name, ret=ret, parameters=parameters, **data)] class MemberType(Type): @@ -826,7 +934,18 @@ def __init__(self, name, members=None, **kwargs): @classmethod def factory(cls, element, name, data): members = [Member.from_element(e) for e in element.findall('member')] - return cls(name, members=members, **data) + + # May not have members at all (struct with only an alias) + if len(members) == 0: + return [cls(name, **data)] + + result = list() + for api in set(member.api for member in members): + api_members = [member for member in members if member.api is None or member.api == api] + t = cls(name, members=api_members, **data) + t.api = api + result.append(t) + return result class UnionType(MemberType): @@ -838,11 +957,17 @@ class StructType(MemberType): class EnumType(Type): - def __init__(self, name, enums=None, **kwargs): + def __init__(self, name, enums=None, bitwidth=None, **kwargs): Type.__init__(self, name, **kwargs) self.enums = enums or [] + self.bitwidth = bitwidth + @property + def expanded_name(self): + return glad.util.expand_type_name(self.name) + + @memoize(method=True) def enums_for(self, feature_set): relevant = set(feature_set.features) | set(feature_set.extensions) @@ -872,7 +997,7 @@ def factory(cls, element, name, data): # may be none if the handle is just aliased type_element = element.find('type') type_ = type_element.text if type_element is not None else None - return cls(name, type=type_, **data) + return [cls(name, type=type_, **data)] class HandleType(TypedType): @@ -897,15 +1022,19 @@ class BitmaskType(TypedType): class Member(IdentifiedByName): - def __init__(self, name, type): + def __init__(self, name, type_, api=None, enum=None): self.name = name - self.type = type + self.type = type_ + self.api = api + self.enum = enum @classmethod def from_element(cls, element): type_ = ParsedType.from_element(element) + enum = element.find('enum') + api = element.get('api') - return Member(type_.name, type_) + return Member(type_.name, type_, api=api, enum=enum.text if enum is not None else None) def __str__(self): return 'Member(name={self.name}, type={self.type})'.format(self=self) @@ -918,8 +1047,23 @@ class Enum(IdentifiedByName): EXTENSION_NUMBER_OFFSET = -1 def __init__(self, name, value, bitpos, api, type_, - alias=None, namespace=None, group=None, vendor=None, - comment='', parent_type=None, extended_by=None): + alias=None, namespace=None, group=None, parent_group=None, + vendor=None, comment='', parent_type=None, extended_by=None): + """ + :param name: name of the enum + :param value: value of the enum + :param bitpos: alternative way of specifying the value + :param api: api as specified on the enum + :param type_: type of the enum as specified on the element + :param alias: alias of the enum + :param namespace: namespace of the group e.g. GL + :param group: group specified in on the enum, comma separated for multiple + :param parent_group: if the enum was defined in an group + :param vendor: vendor specified on group + :param comment: comment specified on the group + :param parent_type: parent type if the enums is grouped and not just a global define (Foo.BAR) + :param extended_by: list of enums this is extended by + """ self.name = name self.value = value if self.value is None and bitpos is not None: @@ -932,6 +1076,7 @@ def __init__(self, name, value, bitpos, api, type_, self.namespace = namespace self.group = group + self.parent_group = parent_group self.vendor = vendor self.comment = comment @@ -940,12 +1085,26 @@ def __init__(self, name, value, bitpos, api, type_, self.extended_by = set(extended_by) if extended_by else set() + @property + def expanded_name(self): + return glad.util.expand_type_name(self.name) + def also_extended_by(self, name): self.extended_by.add(name) def is_equivalent(self, other): return self.name == other.name and self.value == other.value + @property + def groups(self): + """ + Returns a list of parsed groups, group is a comma separated value + as used in the XML. + + :return: empty list or list of groups + """ + return [] if self.group is None else self.group.split(',') + def __str__(self): return self.name @@ -959,6 +1118,7 @@ def from_element(cls, element, extnumber=None, **kwargs): bitpos = element.get('bitpos') api = element.get('api') type_ = element.get('type') + group = element.get('group') alias = element.get('alias') @@ -978,30 +1138,49 @@ def from_element(cls, element, extnumber=None, **kwargs): if value is not None: value = str(value) - return cls(name, value, bitpos, api, type_, alias=alias, **kwargs) + return cls(name, value, bitpos, api, type_, alias=alias, group=group, **kwargs) class Command(IdentifiedByName): - def __init__(self, element): - self.proto = None - self.params = None + def __init__(self, name, api=None, proto=None, params=None, alias=None): + self.name = name + self.api = api + self.proto = proto + self.params = params + self.alias = alias + + if self.alias is None and self.proto is None: + raise ValueError("command is neither a full command nor an alias") + @classmethod + def from_element(cls, element): + params = None proto = element.find('proto') if proto is not None: - self.proto = Proto.from_element(proto) - self.params = [Param(ele) for ele in filter(lambda e: e.tag == 'param', iter(element))] + proto = Proto.from_element(proto) + params = [Param(ele) for ele in filter(lambda e: e.tag == 'param', iter(element))] - self.alias = element.get('alias') - self._name = element.get('name') + alias = element.get('alias') + if alias is None: + alias_element = element.find('alias') + if alias_element is not None: + alias = alias_element.attrib['name'] - alias = element.find('alias') - if alias is not None: - self.alias = alias.attrib['name'] + api = element.get('api') - self.api = element.get('api') + name = element.get('name') or proto.name - if self.alias is None and self.proto is None: - raise ValueError("command is neither a full command nor an alias") + # Only alias or no members + if params is None or len(params) == 0: + return [cls(name, api=api, proto=proto, params=params, alias=alias)] + + result = list() + apis = set(param.api for param in params) + for api in apis: + api_params = [param for param in params if param.api is None or param.api == api] + result.append(cls(name, api=api, proto=proto, params=api_params, alias=alias)) + + return result @property def requires(self): @@ -1013,10 +1192,6 @@ def requires(self): requires.append(self.proto.ret.original_type) return requires - @property - def name(self): - return self._name or self.proto.name - def is_equivalent(self, other): return self.proto == other.proto and self.params == other.params @@ -1049,6 +1224,7 @@ def __init__(self, element): self.group = element.get('group') self.type = ParsedType.from_element(element) self.name = element.find('name').text.strip('*') + self.api = element.get('api') def is_equivalent(self, other): return self.type == other.type @@ -1101,7 +1277,6 @@ def from_string(cls, raw): raw=raw) @classmethod - @memoize(key=lambda cls, element: tuple(element.itertext())) def from_element(cls, element): # assume just one comment element comment = ' '.join(c.text for c in element.iter('comment')) @@ -1182,7 +1357,8 @@ def __init__(self, name, supported=None, requires=None, @classmethod def from_element(cls, element): name = element.attrib['name'] - supported = element.attrib['supported'].split('|') + # Vulkan uses `,` and GL uses `|` + supported = element.attrib['supported'].replace('|', ',').split(',') requires = [Require.from_element(require) for require in element.findall('require')] @@ -1199,7 +1375,7 @@ def supports(self, api): def is_equivalent(self, other): return self.requires == other.requires - @memoize() + @memoize(method=True) def get_requirements(self, spec, api=None, profile=None, feature_set=None): """ Find all types, enums and commands/functions which are required @@ -1259,9 +1435,9 @@ def is_equivalent(self, other): return Extension.is_equivalent(self, other) and self.removes == other.removes @classmethod - def from_element(cls, element): + def from_element(cls, element, api=None): name = element.attrib['name'] - api = element.attrib['api'] + api = set(element.attrib['api'].split(',')) version = Version(*tuple(map(int, element.attrib['number'].split('.')))) requires = [Require.from_element(require) for require in element.findall('require')] @@ -1271,7 +1447,7 @@ def from_element(cls, element): protect = [p.strip() for p in element.get('protect', '').split(',') if p.strip()] platform = element.get('platform') - return cls(name, api, version, supported=[api], requires=requires, + return cls(name, api, version, supported=api, requires=requires, removes=removes, type_=type_, protect=protect, platform=platform) def __str__(self): diff --git a/glad/plugin.py b/glad/plugin.py index b7d233ce..ec5afe1e 100644 --- a/glad/plugin.py +++ b/glad/plugin.py @@ -1,11 +1,23 @@ +import sys import logging -import pkg_resources +import inspect +try: + from importlib.metadata import entry_points + + if sys.version_info < (3, 10): + _entry_points = entry_points + + def entry_points(group=None): + return _entry_points().get(group, []) +except ImportError: + from pkg_resources import iter_entry_points as entry_points import glad.specification from glad.generator.c import CGenerator from glad.generator.rust import RustGenerator from glad.parse import Specification + logger = logging.getLogger(__name__) @@ -16,33 +28,28 @@ DEFAULT_GENERATORS = dict( c=CGenerator, rust=RustGenerator - # TODO fix those - # d=DGenerator, - # volt=VoltGenerator ) - DEFAULT_SPECIFICATIONS = dict() -import inspect for name, cls in inspect.getmembers(glad.specification, inspect.isclass): if issubclass(cls, Specification) and cls is not Specification: DEFAULT_SPECIFICATIONS[cls.NAME] = cls -def find_generators(default=DEFAULT_GENERATORS, entry_point=GENERATOR_ENTRY_POINT): - generators = dict(default) +def find_generators(default=None, entry_point=GENERATOR_ENTRY_POINT): + generators = dict(DEFAULT_GENERATORS if default is None else default) - for entry_point in pkg_resources.iter_entry_points(group=entry_point, name=None): + for entry_point in entry_points(group=entry_point): generators[entry_point.name] = entry_point.load() logger.debug('loaded language %s: %s', entry_point.name, generators[entry_point.name]) return generators -def find_specifications(default=DEFAULT_SPECIFICATIONS, entry_point=SPECIFICATION_ENTRY_POINT): - specifications = dict(default) +def find_specifications(default=None, entry_point=SPECIFICATION_ENTRY_POINT): + specifications = dict(DEFAULT_SPECIFICATIONS if default is None else default) - for entry_point in pkg_resources.iter_entry_points(group=entry_point, name=None): + for entry_point in entry_points(group=entry_point): specifications[entry_point.name] = entry_point.load() logger.debug('loaded specification %s: %s', entry_point.name, specifications[entry_point.name]) diff --git a/glad/specification.py b/glad/specification.py index 60f342e4..b039b6e5 100644 --- a/glad/specification.py +++ b/glad/specification.py @@ -4,7 +4,7 @@ class EGL(Specification): DISPLAY_NAME = 'EGL' - API = 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/' + API = 'https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/' NAME = 'egl' def protections(self, symbol, api=None, profile=None, feature_set=None): @@ -14,7 +14,7 @@ def protections(self, symbol, api=None, profile=None, feature_set=None): class GL(Specification): DISPLAY_NAME = 'OpenGL' - API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/' + API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/' NAME = 'gl' def _magic_require(self, api, profile): @@ -33,7 +33,7 @@ def protections(self, symbol, api=None, profile=None, feature_set=None): class GLX(Specification): DISPLAY_NAME = 'GLX' - API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/' + API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/' NAME = 'glx' def protections(self, symbol, api=None, profile=None, feature_set=None): @@ -43,7 +43,7 @@ def protections(self, symbol, api=None, profile=None, feature_set=None): class WGL(Specification): DISPLAY_NAME = 'WGL' - API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/' + API = 'https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/' NAME = 'wgl' def protections(self, symbol, api=None, profile=None, feature_set=None): @@ -53,7 +53,7 @@ def protections(self, symbol, api=None, profile=None, feature_set=None): class VK(Specification): DISPLAY_NAME = 'Vulkan' - API = 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/master/xml/' + API = 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/ac3d0660c45ecf86b2952b298d125270228150d1/xml/' NAME = 'vk' def _magic_require(self, api, profile): diff --git a/glad/util.py b/glad/util.py index 112300e2..99f543e2 100644 --- a/glad/util.py +++ b/glad/util.py @@ -2,7 +2,7 @@ import os import re import sys -from collections import namedtuple +from collections import namedtuple, defaultdict if sys.version_info >= (3, 0, 0): @@ -10,6 +10,7 @@ Version = namedtuple('Version', ['major', 'minor']) +ExpandedName = namedtuple('ExpandedName', ['prefix', 'suffix']) _API_NAMES = { @@ -110,18 +111,56 @@ def topological_sort(items, key, dependencies): emitted = next_emitted -def memoize(key=None): - def _default_key_func(*args, **kwargs): - return tuple(args), tuple(kwargs.items()) +class _HashedSeq(list): + __slots__ = 'hashvalue' - key_func = _default_key_func if key is None else key + # noinspection PyMissingConstructor + def __init__(self, tup, hash=hash): + self[:] = tup + self.hashvalue = hash(tup) + + def __hash__(self): + return self.hashvalue + + +def _default_key_func(*args, **kwargs): + key = (tuple(args), tuple(kwargs.items())) + return _HashedSeq(key) + + +def memoize(key=None, method=False): + """ + Memoize decorator for functions and methods. + + :param key: a cache-key transformation function + :param method: whether the cache should be attached to the `self` parameter + """ + key_func = key or _default_key_func def memoize_decorator(func): - cache = dict() + _cache = dict() @functools.wraps(func) def memoized(*args, **kwargs): - key = key_func(*args, **kwargs) + cache_args = args + if method: + # This is an attempt to bind the cache to the instance of the currently + # executed method. The idea is to not hoard references to the instance + # and other values (arguments) to not prevent the GC from collecting those. + # If we don't attach it this leaks memory all over the place, + # especially since this implementation currently has an uncapped cache. + self = args[0] + cache_args = args[1:] + try: + funcs_cache = self._memoize_cache + except AttributeError: + funcs_cache = defaultdict(dict) + self._memoize_cache = funcs_cache + cache = funcs_cache[func] + else: + cache = _cache + + key = key_func(*cache_args, **kwargs) if key not in cache: cache[key] = func(*args, **kwargs) return cache[key] @@ -144,3 +183,21 @@ def itertext(element, ignore=()): if e.tail: yield e.tail + +def expand_type_name(name): + """ + Transforms a type name into its expanded version, e.g. + expands the type `VkShaderInfoTypeAMD` to the tuple `('VK_SHADER_INFO_TYPE', '_AMD')`. + + See: https://github.com/KhronosGroup/Vulkan-Docs/blob/main/scripts/generator.py#L60 buildEnumCDecl_Enum + """ + upper_name = re.sub(r'([0-9]+|[a-z_])([A-Z0-9])', r'\1_\2', name).upper() + (prefix, suffix) = (upper_name, '') + + suffix_match = re.search(r'[A-Z][A-Z]+$', name) + if suffix_match: + suffix = '_' + suffix_match.group() + # Strip off the suffix from the prefix + prefix = upper_name.rsplit(suffix, 1)[0] + + return ExpandedName(prefix, suffix) diff --git a/long_description.md b/long_description.md new file mode 100644 index 00000000..88a251db --- /dev/null +++ b/long_description.md @@ -0,0 +1,7 @@ +Glad +---- + +Glad uses the official Khronos-XML specs to generate a +GL/GLES/EGL/GLX/VK/WGL Loader made for your needs. + +Checkout the GitHub repository: https://github.com/Dav1dde/glad diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..6fdae996 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,66 @@ +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "glad2" +dynamic = ["version"] +description = "Multi-Language GL/GLES/EGL/GLX/VK/WGL Loader-Generator based on the official specifications." +readme = "long_description.md" +license = { file = "LICENSE" } +authors = [{ name = "David Herberth", email = "github@dav1d.de" }] +maintainers = [{ name = "David Herberth", email = "github@dav1d.de" }] +dependencies = ["Jinja2>=2.7,<4.0"] +classifiers = [ + 'Development Status :: 5 - Production/Stable', + 'Environment :: Console', + 'Intended Audience :: Developers', + 'Intended Audience :: Education', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: MIT License', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Topic :: Games/Entertainment', + 'Topic :: Multimedia :: Graphics', + 'Topic :: Multimedia :: Graphics :: 3D Rendering', + 'Topic :: Software Development', + 'Topic :: Software Development :: Build Tools', + 'Topic :: Utilities' +] +keywords = ["opengl", "glad", "generator", "gl", "wgl", "egl", "gles", "vulkan", "vk", "glx"] + +[project.urls] +Source = "https://github.com/Dav1dde/glad" + +[project.scripts] +glad = "glad.__main__:main" + +[project.entry-points."glad.generator"] +c = "glad.generator.c.__init__:CGenerator" +rust = "glad.generator.rust.__init__:RustGenerator" + +[project.entry-points."glad.specification"] +egl = "glad.specification:EGL" +gl = "glad.specification:GL" +glx = "glad.specification:GLX" +wgl = "glad.specification:WGL" +vk = "glad.specification:VK" + +[project.optional-dependencies] +fortran = ["glad2-fortran"] + +[tool.setuptools] +platforms = ["any"] + +[tool.setuptools.dynamic] +version = { attr = "glad.__version__" } + +[tool.setuptools.packages] +find = {} + diff --git a/requirements-test.txt b/requirements-test.txt deleted file mode 100644 index a2dc6a12..00000000 --- a/requirements-test.txt +++ /dev/null @@ -1,2 +0,0 @@ -nose>=1.3.0,<2.0.0 -mock>=2.0.0,<3.0.0 diff --git a/requirements.txt b/requirements.txt index 9f6fa4b8..c9ae643a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -Jinja2>=2.7,<3.0 +Jinja2>=2.7,<4.0 diff --git a/setup.py b/setup.py deleted file mode 100644 index 25adf3f0..00000000 --- a/setup.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python - -""" -Glad ----- - -Glad uses the official Khronos-XML specs to generate a -GL/GLES/EGL/GLX/WGL Loader made for your needs. - -Checkout the GitHub repository: https://github.com/Dav1dde/glad -""" - -from setuptools import setup, find_packages -import ast -import re - - -# Thanks flask: https://github.com/mitsuhiko/flask/blob/master/setup.py -_version_re = re.compile(r'__version__\s+=\s+(.*)') - -with open('glad/__init__.py', 'rb') as f: - version = str(ast.literal_eval(_version_re.search( - f.read().decode('utf-8')).group(1))) - - -if __name__ == '__main__': - setup( - name='glad', - version=version, - description='Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specifications.', - long_description=__doc__, - packages=find_packages(), - include_package_data=True, - install_requires=['jinja2'], - entry_points={ - 'console_scripts': [ - 'glad = glad.__main__:main' - ], - 'glad.generator': [ - 'c = glad.generator.c.__init__:CGenerator', - 'rust = glad.generator.rust.__init__:RustGenerator' - # TODO re-enable other languages - ], - 'glad.specification': [ - 'egl = glad.specification:EGL', - 'gl = glad.specification:GL', - 'glx = glad.specification:GLX', - 'wgl = glad.specification:WGL', - 'vk = glad.specification:VK' - ] - }, - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Console', - 'Intended Audience :: Developers', - 'Intended Audience :: Education', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: MIT License', - 'Natural Language :: English', - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Topic :: Games/Entertainment', - 'Topic :: Multimedia :: Graphics', - 'Topic :: Multimedia :: Graphics :: 3D Rendering', - 'Topic :: Software Development', - 'Topic :: Software Development :: Build Tools', - 'Topic :: Utilities' - ], - keywords='opengl glad generator gl wgl egl gles glx', - author='David Herberth', - author_email='admin@dav1d.de', - url='https://github.com/Dav1dde/glad', - license='MIT', - platforms='any' - ) diff --git a/test/README.md b/test/README.md index 560fd62a..def3533e 100644 --- a/test/README.md +++ b/test/README.md @@ -4,8 +4,6 @@ Test This directory contains integration tests ran by the [`/utility/test.sh`](../utility/test.sh) script. These tests are mainly for testing the generators. -Python unit tests can be found in the [`/tests`](../tests) directory. - ## Execution @@ -18,8 +16,4 @@ There are a few requirements for actually running the test suite: * mingw * wine -Depending on future generators being added there may be more. To run the complete -suite with minimal effort you can use the [`glad-test`](https://hub.docker.com/r/dav1d/glad-test/) -Docker image: - - docker run --rm -t -v /path/to/glad:/mnt --user $(id -u):$(id -g) dav1d/glad-test \ No newline at end of file +Depending on future generators being added there may be more. diff --git a/test/c/cmake/CMakeLists.txt b/test/c/cmake/CMakeLists.txt index 8048a355..aa53332b 100644 --- a/test/c/cmake/CMakeLists.txt +++ b/test/c/cmake/CMakeLists.txt @@ -52,7 +52,6 @@ foreach(API ${APIS}) glad_add_library("${TARGET}" EXCLUDE_FROM_ALL LOCATION "${PROJECT_BINARY_DIR}/external/glad_${API}_${NAME_SUFFIX}" API ${APISTR}=${VERSION} - KEEP_SOURCES ) if(CMAKE_SYSTEM_NAME IN_LIST "${API}_SYSTEMS") add_test( diff --git a/test/c/compile/egl/alias/001/test.c b/test/c/compile/egl/alias/001/test.c new file mode 100644 index 00000000..df5da373 --- /dev/null +++ b/test/c/compile/egl/alias/001/test.c @@ -0,0 +1,14 @@ +/* + * Issue #362, aliasing func is not called. + * Note this does not actually verify the functions get properly initialized only that it compiles + * + * GLAD: $GLAD --out-path=$tmp --api="egl=" c --alias + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/egl.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + return 0; +} diff --git a/test/c/compile/egl/default/001/test.c b/test/c/compile/egl/default/001/test.c index cc1d86fe..7d5abf2a 100644 --- a/test/c/compile/egl/default/001/test.c +++ b/test/c/compile/egl/default/001/test.c @@ -7,6 +7,7 @@ */ #include +#include int main(void) { EGLDisplay display = NULL; diff --git a/test/c/compile/egl/default/002/test.c b/test/c/compile/egl/default/002/test.c index 3964284c..ec7cdb28 100644 --- a/test/c/compile/egl/default/002/test.c +++ b/test/c/compile/egl/default/002/test.c @@ -7,6 +7,7 @@ */ #include +#include int main(void) { EGLDisplay display = NULL; diff --git a/test/c/compile/gl/alias/007/test.c b/test/c/compile/gl/alias/007/test.c new file mode 100644 index 00000000..2df55a23 --- /dev/null +++ b/test/c/compile/gl/alias/007/test.c @@ -0,0 +1,14 @@ +/* + * GL 4.6 No extensions, with aliasing + * + * GLAD: $GLAD --out-path=$tmp --api="gl:core=4.6" --extensions="" c --alias + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/gl.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + (void) glActiveTextureARB; + return 0; +} diff --git a/test/c/compile/gl/debug/001/test.c b/test/c/compile/gl/debug/001/test.c index 64a8a5f7..7dbb0c99 100644 --- a/test/c/compile/gl/debug/001/test.c +++ b/test/c/compile/gl/debug/001/test.c @@ -7,9 +7,12 @@ */ #include +#include int main(void) { gladSetGLPreCallback(NULL); gladSetGLPostCallback(NULL); + gladInstallGLDebug(); + gladUninstallGLDebug(); return 0; } diff --git a/test/c/compile/gl/header-only+mx/001/test.c b/test/c/compile/gl/header-only+mx/001/test.c index 3972b564..f2a85da4 100644 --- a/test/c/compile/gl/header-only+mx/001/test.c +++ b/test/c/compile/gl/header-only+mx/001/test.c @@ -1,7 +1,7 @@ /* * Full compatibility GL MX header only * - * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/002/test.c b/test/c/compile/gl/header-only+mx/002/test.c index 5619ea4e..5cffec63 100644 --- a/test/c/compile/gl/header-only+mx/002/test.c +++ b/test/c/compile/gl/header-only+mx/002/test.c @@ -1,7 +1,7 @@ /* * Full core GL MX header only * - * GLAD: $GLAD --out-path=$tmp --api="gl:core" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:core" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/003/test.c b/test/c/compile/gl/header-only+mx/003/test.c index 1ad0d9e1..b4b1cd8d 100644 --- a/test/c/compile/gl/header-only+mx/003/test.c +++ b/test/c/compile/gl/header-only+mx/003/test.c @@ -1,7 +1,7 @@ /* * No extensions compatibility GL MX header only * - * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" --extensions="" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" --extensions="" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/004/test.c b/test/c/compile/gl/header-only+mx/004/test.c index 1af88b71..f9d77cce 100644 --- a/test/c/compile/gl/header-only+mx/004/test.c +++ b/test/c/compile/gl/header-only+mx/004/test.c @@ -1,7 +1,7 @@ /* * No extensions core GL MX header only * - * GLAD: $GLAD --out-path=$tmp --api="gl:core" --extensions="" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:core" --extensions="" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/005/test.c b/test/c/compile/gl/header-only+mx/005/test.c index 1161c01f..c97de05c 100644 --- a/test/c/compile/gl/header-only+mx/005/test.c +++ b/test/c/compile/gl/header-only+mx/005/test.c @@ -1,7 +1,7 @@ /* * MX header only GL 2.1 All extensions * - * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility=2.1" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility=2.1" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/006/test.c b/test/c/compile/gl/header-only+mx/006/test.c index 298845ec..23280b12 100644 --- a/test/c/compile/gl/header-only+mx/006/test.c +++ b/test/c/compile/gl/header-only+mx/006/test.c @@ -1,7 +1,7 @@ /* * MX header only GL 2.1 No extensions * - * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility=2.1" --extensions="" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility=2.1" --extensions="" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -10,8 +10,7 @@ #include int main(void) { - GladGLContext gl; - (void) gladLoaderLoadGL(); + GladGLContext gl = {0}; (void) gladLoaderLoadGLContext(&gl); return 0; } diff --git a/test/c/compile/gl/header-only+mx/007/test.c b/test/c/compile/gl/header-only+mx/007/test.c index ea121d7c..f7c60998 100644 --- a/test/c/compile/gl/header-only+mx/007/test.c +++ b/test/c/compile/gl/header-only+mx/007/test.c @@ -1,7 +1,7 @@ /* * MX header only, global generation, should compile basic API * - * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" c --loader --mx --mx-global --header-only + * GLAD: $GLAD --out-path=$tmp --api="gl:compatibility" c --loader --mx --header-only * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -23,17 +23,10 @@ VOID_FUNCPTR loader(const char *name) { } int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; gladLoadGLContextUserPtr(&gl, loader_userptr, NULL); - gladLoadGLContext(&gl, loader); gladLoaderLoadGLContext(&gl); - gladLoadGLUserPtr(loader_userptr, NULL); - gladLoadGL(loader); - gladLoaderLoadGL(); - - gladSetGLContext(&gl); - (void) gladGetGLContext(); return 0; } diff --git a/test/c/compile/gl/mx+mx-global/001/test.c b/test/c/compile/gl/mx+mx-global/001/test_disabled.c similarity index 92% rename from test/c/compile/gl/mx+mx-global/001/test.c rename to test/c/compile/gl/mx+mx-global/001/test_disabled.c index 5429cbd9..3f95ffc5 100644 --- a/test/c/compile/gl/mx+mx-global/001/test.c +++ b/test/c/compile/gl/mx+mx-global/001/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/002/test.c b/test/c/compile/gl/mx+mx-global/002/test_disabled.c similarity index 91% rename from test/c/compile/gl/mx+mx-global/002/test.c rename to test/c/compile/gl/mx+mx-global/002/test_disabled.c index 9f7b3b4c..3eeeab6a 100644 --- a/test/c/compile/gl/mx+mx-global/002/test.c +++ b/test/c/compile/gl/mx+mx-global/002/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/003/test.c b/test/c/compile/gl/mx+mx-global/003/test_disabled.c similarity index 92% rename from test/c/compile/gl/mx+mx-global/003/test.c rename to test/c/compile/gl/mx+mx-global/003/test_disabled.c index ed0a1971..e447678a 100644 --- a/test/c/compile/gl/mx+mx-global/003/test.c +++ b/test/c/compile/gl/mx+mx-global/003/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/004/test.c b/test/c/compile/gl/mx+mx-global/004/test_disabled.c similarity index 92% rename from test/c/compile/gl/mx+mx-global/004/test.c rename to test/c/compile/gl/mx+mx-global/004/test_disabled.c index 89d34a37..d496d23a 100644 --- a/test/c/compile/gl/mx+mx-global/004/test.c +++ b/test/c/compile/gl/mx+mx-global/004/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/005/test.c b/test/c/compile/gl/mx+mx-global/005/test_disabled.c similarity index 92% rename from test/c/compile/gl/mx+mx-global/005/test.c rename to test/c/compile/gl/mx+mx-global/005/test_disabled.c index ad221001..87a68037 100644 --- a/test/c/compile/gl/mx+mx-global/005/test.c +++ b/test/c/compile/gl/mx+mx-global/005/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/006/test.c b/test/c/compile/gl/mx+mx-global/006/test_disabled.c similarity index 92% rename from test/c/compile/gl/mx+mx-global/006/test.c rename to test/c/compile/gl/mx+mx-global/006/test_disabled.c index 50317714..aedef2f1 100644 --- a/test/c/compile/gl/mx+mx-global/006/test.c +++ b/test/c/compile/gl/mx+mx-global/006/test_disabled.c @@ -9,7 +9,7 @@ #include int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; (void) gladLoaderLoadGL(); (void) gladLoaderLoadGLContext(&gl); return 0; diff --git a/test/c/compile/gl/mx+mx-global/007/test.c b/test/c/compile/gl/mx+mx-global/007/test_disabled.c similarity index 94% rename from test/c/compile/gl/mx+mx-global/007/test.c rename to test/c/compile/gl/mx+mx-global/007/test_disabled.c index b7ee09a1..a4d18e32 100644 --- a/test/c/compile/gl/mx+mx-global/007/test.c +++ b/test/c/compile/gl/mx+mx-global/007/test_disabled.c @@ -7,6 +7,7 @@ */ #include +#include typedef void (*VOID_FUNCPTR)(void); @@ -22,7 +23,7 @@ VOID_FUNCPTR loader(const char *name) { } int main(void) { - GladGLContext gl; + GladGLContext gl = {0}; gladLoadGLContextUserPtr(&gl, loader_userptr, NULL); gladLoadGLContext(&gl, loader); diff --git a/test/c/compile/gl/mx+mx-global/008/test.c b/test/c/compile/gl/mx+mx-global/008/test_disabled.c similarity index 100% rename from test/c/compile/gl/mx+mx-global/008/test.c rename to test/c/compile/gl/mx+mx-global/008/test_disabled.c diff --git a/test/c/compile/gles2/alias/001/test.c b/test/c/compile/gles2/alias/001/test.c new file mode 100644 index 00000000..5a4ecd23 --- /dev/null +++ b/test/c/compile/gles2/alias/001/test.c @@ -0,0 +1,16 @@ +/* + * GLES2 No extensions, with aliasing + * + * Issue: https://github.com/Dav1dde/glad/issues/334 + * + * GLAD: $GLAD --out-path=$tmp --api="gles2=3.2" --extensions="" c --alias + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/gles2.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + (void) glGenVertexArraysOES; + return 0; +} diff --git a/test/c/compile/gles2/default/003/test.c b/test/c/compile/gles2/default/003/test.c new file mode 100644 index 00000000..2c606622 --- /dev/null +++ b/test/c/compile/gles2/default/003/test.c @@ -0,0 +1,24 @@ +/* + * Emscripten GLES2 + EGL header only. + * Related Issues: #387 + * + * GLAD: $GLAD --out-path=$tmp --api="egl,gles2" c --loader --header-only + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl + * RUN: $tmp/test + */ + +#include + +#define GLAD_GLES2_IMPLEMENTATION +#define GLAD_PLATFORM_EMSCRIPTEN 1 +#include /* egl before gles2 */ +#include + +__eglMustCastToProperFunctionPointerType emscripten_GetProcAddress(const char *name) { + GLAD_UNUSED(name); + return GLAD_GNUC_EXTENSION (__eglMustCastToProperFunctionPointerType) NULL; +} + +int main(void) { + return 0; +} diff --git a/test/c/compile/gles2/default/004/test.c b/test/c/compile/gles2/default/004/test.c new file mode 100644 index 00000000..d736acab --- /dev/null +++ b/test/c/compile/gles2/default/004/test.c @@ -0,0 +1,28 @@ +/* + * Emscripten GLES2 + header only. See also 003. + * Related Issues: #387 + * + * GLAD: $GLAD --out-path=$tmp --api="egl,gles2" c --loader --header-only + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl -Wno-pedantic + * RUN: $tmp/test + */ + +#include + +#define GLAD_GLES2_IMPLEMENTATION +#define GLAD_PLATFORM_EMSCRIPTEN 1 +#include +/* + * egl after gles2 + * this is not correct, that's why we disable pedantic but it should still compile without + */ +#include + +__eglMustCastToProperFunctionPointerType emscripten_GetProcAddress(const char *name) { + GLAD_UNUSED(name); + return GLAD_GNUC_EXTENSION (__eglMustCastToProperFunctionPointerType) NULL; +} + +int main(void) { + return 0; +} diff --git a/test/c/compile/gles2/default/005/test.c b/test/c/compile/gles2/default/005/test.c new file mode 100644 index 00000000..cc5ab467 --- /dev/null +++ b/test/c/compile/gles2/default/005/test.c @@ -0,0 +1,23 @@ +/* + * Emscripten GLES2 + header only. See also 003. + * Related Issues: #387 + * + * GLAD: $GLAD --out-path=$tmp --api="gles2" c --loader --header-only + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl + * RUN: $tmp/test + */ + +#include + +#define GLAD_GLES2_IMPLEMENTATION +#define GLAD_PLATFORM_EMSCRIPTEN 1 +#include + +__eglMustCastToProperFunctionPointerType emscripten_GetProcAddress(const char *name) { + GLAD_UNUSED(name); + return GLAD_GNUC_EXTENSION (__eglMustCastToProperFunctionPointerType) NULL; +} + +int main(void) { + return 0; +} diff --git a/test/c/compile/glx/alias/001/test.c b/test/c/compile/glx/alias/001/test.c new file mode 100644 index 00000000..4464aca4 --- /dev/null +++ b/test/c/compile/glx/alias/001/test.c @@ -0,0 +1,14 @@ +/* + * Issue #362, aliasing func is not called. + * Note this does not actually verify the functions get properly initialized only that it compiles + * + * GLAD: $GLAD --out-path=$tmp --api="glx,gl:core" c --alias + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/glx.c -ldl -lX11 + * RUN: $tmp/test + */ + +#include + +int main(void) { + return 0; +} diff --git a/test/c/compile/vulkan/debug/001/test.c b/test/c/compile/vulkan/debug/001/test.c new file mode 100644 index 00000000..8306d742 --- /dev/null +++ b/test/c/compile/vulkan/debug/001/test.c @@ -0,0 +1,13 @@ +/* + * Issue #335. Debug functions are not guarded/protected by platform. + * + * GLAD: $GLAD --out-path=$tmp --api="vulkan=1.1" --extensions=VK_KHR_external_memory_win32 c --debug + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/vulkan.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + return 0; +} diff --git a/test/c/compile/vulkan/default/004/test.c b/test/c/compile/vulkan/default/004/test.c index 24d9dfc1..d5853beb 100644 --- a/test/c/compile/vulkan/default/004/test.c +++ b/test/c/compile/vulkan/default/004/test.c @@ -7,6 +7,7 @@ */ #include +#include int main(void) { (void) gladLoaderLoadVulkan(NULL, NULL, NULL); diff --git a/test/c/compile/vulkan/default/006/test.c b/test/c/compile/vulkan/default/006/test.c new file mode 100644 index 00000000..1a5f765e --- /dev/null +++ b/test/c/compile/vulkan/default/006/test.c @@ -0,0 +1,17 @@ +/* + * Issue #350, missing ENUM_MAX values + * + * GLAD: $GLAD --out-path=$tmp --api="vulkan=1.1" c + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/vulkan.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + VkDeviceGroupPresentModeFlagBitsKHR a = VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR; + VkSubgroupFeatureFlagBits b = VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM; + (void) a; + (void) b; + return 0; +} diff --git a/test/c/compile/vulkan/header-only+mx/001/test.c b/test/c/compile/vulkan/header-only+mx/001/test.c index 8fc1b2ee..daf922ed 100644 --- a/test/c/compile/vulkan/header-only+mx/001/test.c +++ b/test/c/compile/vulkan/header-only+mx/001/test.c @@ -1,7 +1,7 @@ /* * Full vulkan, header only, mx * - * GLAD: $GLAD --out-path=$tmp --api="vulkan" c --loader --header-only --mx --mx-global + * GLAD: $GLAD --out-path=$tmp --api="vulkan" c --loader --header-only --mx * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -14,12 +14,9 @@ VOID_FUNCPTR loader_userptr(void *userptr, const char *name) { (void) name; (voi VOID_FUNCPTR loader(const char *name) { (void) name; return NULL; } int main(void) { - GladVulkanContext context; - (void) gladLoadVulkanUserPtr(NULL, loader_userptr, NULL); + GladVulkanContext context = {0}; (void) gladLoadVulkanContextUserPtr(&context, NULL, loader_userptr, NULL); - (void) gladLoadVulkan(NULL, loader); (void) gladLoadVulkanContext(&context, NULL, loader); - (void) gladLoaderLoadVulkan(NULL, NULL, NULL); (void) gladLoaderLoadVulkanContext(&context, NULL, NULL, NULL); return 0; } diff --git a/test/c/compile/vulkan/header-only+mx/002/test.c b/test/c/compile/vulkan/header-only+mx/002/test.c index 33b4288a..9b29c42c 100644 --- a/test/c/compile/vulkan/header-only+mx/002/test.c +++ b/test/c/compile/vulkan/header-only+mx/002/test.c @@ -1,7 +1,7 @@ /* * Full vulkan without extensions, header only, mx * - * GLAD: $GLAD --out-path=$tmp --api="vulkan" --extensions="" c --loader --header-only --mx --mx-global + * GLAD: $GLAD --out-path=$tmp --api="vulkan" --extensions="" c --loader --header-only --mx * COMPILE: $GCC $test -o $tmp/test -I$tmp/include -ldl * RUN: $tmp/test */ @@ -14,12 +14,9 @@ VOID_FUNCPTR loader_userptr(void *userptr, const char *name) { (void) name; (voi VOID_FUNCPTR loader(const char *name) { (void) name; return NULL; } int main(void) { - GladVulkanContext context; - (void) gladLoadVulkanUserPtr(NULL, loader_userptr, NULL); + GladVulkanContext context = {0}; (void) gladLoadVulkanContextUserPtr(&context, NULL, loader_userptr, NULL); - (void) gladLoadVulkan(NULL, loader); (void) gladLoadVulkanContext(&context, NULL, loader); - (void) gladLoaderLoadVulkan(NULL, NULL, NULL); (void) gladLoaderLoadVulkanContext(&context, NULL, NULL, NULL); return 0; } diff --git a/test/c/compile/vulkan/mx+mx-global/001/test.c b/test/c/compile/vulkan/mx+mx-global/001/test_disabled.c similarity index 95% rename from test/c/compile/vulkan/mx+mx-global/001/test.c rename to test/c/compile/vulkan/mx+mx-global/001/test_disabled.c index 4c9fb857..ecbac275 100644 --- a/test/c/compile/vulkan/mx+mx-global/001/test.c +++ b/test/c/compile/vulkan/mx+mx-global/001/test_disabled.c @@ -13,7 +13,7 @@ VOID_FUNCPTR loader_userptr(void *userptr, const char *name) { (void) name; (voi VOID_FUNCPTR loader(const char *name) { (void) name; return NULL; } int main(void) { - GladVulkanContext context; + GladVulkanContext context = {0}; (void) gladLoadVulkanUserPtr(NULL, loader_userptr, NULL); (void) gladLoadVulkanContextUserPtr(&context, NULL, loader_userptr, NULL); (void) gladLoadVulkan(NULL, loader); diff --git a/test/c/compile/vulkan/mx+mx-global/002/test.c b/test/c/compile/vulkan/mx+mx-global/002/test_disabled.c similarity index 95% rename from test/c/compile/vulkan/mx+mx-global/002/test.c rename to test/c/compile/vulkan/mx+mx-global/002/test_disabled.c index 96574ad5..220b6af8 100644 --- a/test/c/compile/vulkan/mx+mx-global/002/test.c +++ b/test/c/compile/vulkan/mx+mx-global/002/test_disabled.c @@ -13,7 +13,7 @@ VOID_FUNCPTR loader_userptr(void *userptr, const char *name) { (void) name; (voi VOID_FUNCPTR loader(const char *name) { (void) name; return NULL; } int main(void) { - GladVulkanContext context; + GladVulkanContext context = {0}; (void) gladLoadVulkanUserPtr(NULL, loader_userptr, NULL); (void) gladLoadVulkanContextUserPtr(&context, NULL, loader_userptr, NULL); (void) gladLoadVulkan(NULL, loader); diff --git a/test/c/parse/002/test.c b/test/c/parse/002/test.c new file mode 100644 index 00000000..2474da7e --- /dev/null +++ b/test/c/parse/002/test.c @@ -0,0 +1,18 @@ +/* + * VK_NV_ray_tracing depends on a type which depends on an aliased type. + * The aliased type is not part of the feature set. + * Make sure the aliased type is part generated, since the alias is done through a typedef. + * + * GLAD: $GLAD --out-path=$tmp --api="vulkan=1.1" --extensions="VK_NV_ray_tracing" c + * COMPILE: $GCC $test -o $tmp/test -I$tmp/include $tmp/src/vulkan.c -ldl + * RUN: $tmp/test + */ + +#include + +int main(void) { + /* make sure something is referenced so stuff doesn't just get optimized away */ + VkAccelerationStructureMemoryRequirementsInfoNV unused; + (void) unused; + return 0; +} diff --git a/test/c/parse/003/test.c b/test/c/parse/003/test.c new file mode 100644 index 00000000..db277106 --- /dev/null +++ b/test/c/parse/003/test.c @@ -0,0 +1,18 @@ +/* + * The GL_KHR_debug has suffixed symbols for GLES but symbols without suffix for GL. + * Make sure only the suffixed symbols appear in the generated output for gles. + * Related Issues: #281 + * + * See also: 004 + * + * GLAD: $GLAD --out-path=$tmp --api="gles2=3.1" --extensions="GL_KHR_debug" c + * COMPILE: ! $GCC $test -o $tmp/test -I$tmp/include $tmp/src/gles2.c -ldl + * RUN: true + */ + +#include + +int main(void) { + (void) glObjectLabel; + return 0; +} diff --git a/test/c/parse/004/test.c b/test/c/parse/004/test.c new file mode 100644 index 00000000..78f11a90 --- /dev/null +++ b/test/c/parse/004/test.c @@ -0,0 +1,18 @@ +/* + * The GL_KHR_debug has suffixed symbols for GLES but symbols without suffix for GL. + * Make sure only the symbols without suffix appear in the generated output for gl. + * Related Issues: #281 + * + * See also: 003 + * + * GLAD: $GLAD --out-path=$tmp --api="gl:core=3.3" --extensions="GL_KHR_debug" c + * COMPILE: ! $GCC $test -o $tmp/test -I$tmp/include $tmp/src/gl.c -ldl + * RUN: true + */ + +#include + +int main(void) { + (void) glObjectLabelKHR; + return 0; +} diff --git a/test/c/run/gl/debug/001/test.c b/test/c/run/gl/debug/001/test.c index 85961b5a..0872358f 100644 --- a/test/c/run/gl/debug/001/test.c +++ b/test/c/run/gl/debug/001/test.c @@ -79,6 +79,13 @@ int main(void) { gladSetGLPostCallback(post_call_gl_callback); glClear(GL_COLOR_BUFFER_BIT); + + /* make sure install/uninstall is working as expected */ + gladUninstallGLDebug(); + glViewport(0, 0, WIDTH, HEIGHT); + glClear(GL_COLOR_BUFFER_BIT); + gladInstallGLDebug(); + glClear(GL_DEPTH_BUFFER_BIT); ASSERT(pre == 2, "pre callback called %d times, expected twice", pre); diff --git a/test/c/run/gl/mx/001/test.c b/test/c/run/gl/mx/001/test.c index b76fe990..8ca0677b 100644 --- a/test/c/run/gl/mx/001/test.c +++ b/test/c/run/gl/mx/001/test.c @@ -26,7 +26,7 @@ GLFWwindow* create_window(void) { } void run(GLFWwindow *window) { - GladGLContext context; + GladGLContext context = {0}; glfwMakeContextCurrent(window); diff --git a/test/c/run/gl/mx/002/test.c b/test/c/run/gl/mx/002/test.c index 0248984c..57b6a3d2 100644 --- a/test/c/run/gl/mx/002/test.c +++ b/test/c/run/gl/mx/002/test.c @@ -26,7 +26,7 @@ GLFWwindow* create_window(void) { } void run(GLFWwindow *window) { - GladGLContext context; + GladGLContext context = {0}; glfwMakeContextCurrent(window); diff --git a/test/c/run/gl/mx/003/test.c b/test/c/run/gl/mx/003/test_disabled.c similarity index 98% rename from test/c/run/gl/mx/003/test.c rename to test/c/run/gl/mx/003/test_disabled.c index 6a6af586..374f0339 100644 --- a/test/c/run/gl/mx/003/test.c +++ b/test/c/run/gl/mx/003/test_disabled.c @@ -28,7 +28,7 @@ GLFWwindow* create_window(void) { } void run(GLFWwindow *window) { - GladGLContext context = { 0 }; + GladGLContext context = {0}; context.userptr = (void*) &context; glfwMakeContextCurrent(window); diff --git a/test/c/run/gl/mx/004/test.c b/test/c/run/gl/mx/004/test_disabled.c similarity index 98% rename from test/c/run/gl/mx/004/test.c rename to test/c/run/gl/mx/004/test_disabled.c index ac6f635f..602543ca 100644 --- a/test/c/run/gl/mx/004/test.c +++ b/test/c/run/gl/mx/004/test_disabled.c @@ -28,7 +28,7 @@ GLFWwindow* create_window(void) { } void run(GLFWwindow *window) { - GladGLContext context = { 0 }; + GladGLContext context = {0}; context.userptr = (void*) &context; glfwMakeContextCurrent(window); diff --git a/test/c/run/gl/mx/005/test.c b/test/c/run/gl/mx/005/test_disabled.c similarity index 100% rename from test/c/run/gl/mx/005/test.c rename to test/c/run/gl/mx/005/test_disabled.c diff --git a/test/c/run/gl/mx/006/test.c b/test/c/run/gl/mx/006/test_disabled.c similarity index 100% rename from test/c/run/gl/mx/006/test.c rename to test/c/run/gl/mx/006/test_disabled.c diff --git a/test/c/run/wgl/default/001/test.c b/test/c/run/wgl/default/001/test.c index c9521d3b..ab03125e 100644 --- a/test/c/run/wgl/default/001/test.c +++ b/test/c/run/wgl/default/001/test.c @@ -1,7 +1,7 @@ /* * Full WGL, see examples/c/wgl.c for more information * - * GLAD: $GLAD --out-path=$tmp --api="wgl,gl:core" c --loader + * GLAD: $GLAD --out-path=$tmp --api="wgl,gl:core" c --loader --alias * COMPILE: $MINGW_GCC -Wno-pedantic $test -o $tmp/test.exe -I$tmp/include $tmp/src/wgl.c $tmp/src/gl.c -lgdi32 -lopengl32 * RUN: $WINE $tmp/test.exe */ diff --git a/test/rust/compile/gl/default/003/Cargo.toml b/test/rust/compile/gl/default/003/Cargo.toml new file mode 100644 index 00000000..a2d023e0 --- /dev/null +++ b/test/rust/compile/gl/default/003/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "compile-gl-default-003" +version = "0.1.0" + +[[bin]] +path = "test.rs" +name = "test" + +[dependencies] +glad-gl = { path = "./glad-gl/" } diff --git a/test/rust/compile/gl/default/003/test.rs b/test/rust/compile/gl/default/003/test.rs new file mode 100644 index 00000000..b1701ca1 --- /dev/null +++ b/test/rust/compile/gl/default/003/test.rs @@ -0,0 +1,16 @@ +#![deny(warnings)] +/** + * Enums / Constants should not be prefixed. + * + * GLAD: $GLAD --out-path=$tmp --api="gl:core=" rust + * COMPILE: cp -r $test_dir/. $tmp && cd $tmp && cargo build + * RUN: cargo run + */ +extern crate glad_gl; +use glad_gl::gl; + +#[allow(path_statements)] +fn main() { + gl::_1PASS_EXT; + gl::ALPHA; +} diff --git a/test/rust/compile/vulkan/default/001/Cargo.toml b/test/rust/compile/vulkan/default/001/Cargo.toml index 68f03de0..5f9bb005 100644 --- a/test/rust/compile/vulkan/default/001/Cargo.toml +++ b/test/rust/compile/vulkan/default/001/Cargo.toml @@ -7,4 +7,4 @@ path = "test.rs" name = "test" [dependencies] -glad-vulkan = { path = "./glad-vulkan/", features = ["xcb", "macos", "xlib_xrandr", "xlib", "ios", "win32", "wayland", "vi", "android", "mir"] } +glad-vulkan = { path = "./glad-vulkan/", features = ["xcb", "macos", "xlib_xrandr", "xlib", "ios", "win32", "wayland", "vi", "android"] } diff --git a/test/rust/compile/vulkan/default/001/test.rs b/test/rust/compile/vulkan/default/001/test.rs index bef5cd25..92bcb6bb 100644 --- a/test/rust/compile/vulkan/default/001/test.rs +++ b/test/rust/compile/vulkan/default/001/test.rs @@ -2,7 +2,7 @@ /** * Full VK should compile * - * GLAD: $GLAD --out-path=$tmp --api="vulkan=" rust + * GLAD: $GLAD --out-path=$tmp --api="vulkan=" --extensions="VK_KHR_swapchain,VK_NV_external_memory_win32,VK_MVK_macos_surface,VK_KHR_wayland_surface,VK_NN_vi_surface,VK_MVK_ios_surface,VK_EXT_acquire_xlib_display,VK_KHR_xcb_surface,VK_ANDROID_external_memory_android_hardware_buffer" rust * COMPILE: cp -r $test_dir/. $tmp && cd $tmp && cargo build * RUN: cargo run */ @@ -20,7 +20,6 @@ fn main() { vk::CreateViSurfaceNN; vk::CreateIOSSurfaceMVK; vk::GetRandROutputDisplayEXT; - vk::CreateMirSurfaceKHR; vk::GetPhysicalDeviceXcbPresentationSupportKHR; vk::GetMemoryAndroidHardwareBufferANDROID; } diff --git a/test/rust/gen/mx/001/Cargo.toml b/test/rust/gen/mx/001/Cargo.toml new file mode 100644 index 00000000..9a5bea67 --- /dev/null +++ b/test/rust/gen/mx/001/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "gen-mx-001" +version = "0.1.0" + +[[bin]] +path = "test.rs" +name = "test" + +[dependencies] +glad-gl = { path = "./glad-gl/" } diff --git a/test/rust/gen/mx/001/test.rs b/test/rust/gen/mx/001/test.rs new file mode 100644 index 00000000..e23f0978 --- /dev/null +++ b/test/rust/gen/mx/001/test.rs @@ -0,0 +1,23 @@ +#![deny(warnings)] +/** + * Make sure the generated context struct is Send + Sync + * + * GLAD: $GLAD --out-path=$tmp --api="gl:core=" rust --mx + * COMPILE: cp -r $test_dir/. $tmp && cd $tmp && cargo build + * RUN: cargo run + */ +extern crate glad_gl; +use glad_gl::gl; +use std::mem::MaybeUninit; + +fn requires_sync(_x: &T) {} +fn requires_send(_x: &T) {} + +#[allow(path_statements)] +fn main() { + #[allow(invalid_value)] + let gl: gl::Gl = unsafe { MaybeUninit::uninit().assume_init() }; + + requires_send(&gl); + requires_sync(&gl); +} diff --git a/test/rust/run/gl/default/001/test.rs b/test/rust/run/gl/default/001/test.rs index 6bb0f5b8..f8f2f1be 100644 --- a/test/rust/run/gl/default/001/test.rs +++ b/test/rust/run/gl/default/001/test.rs @@ -29,7 +29,7 @@ fn main() { unsafe { gl::Viewport(0, 0, 300, 300); gl::ClearColor(0.7, 0.9, 0.1, 1.0); - gl::Clear(gl::GL_COLOR_BUFFER_BIT); + gl::Clear(gl::COLOR_BUFFER_BIT); } window.swap_buffers(); diff --git a/tests/README.md b/tests/README.md deleted file mode 100644 index cccfa7ba..00000000 --- a/tests/README.md +++ /dev/null @@ -1,19 +0,0 @@ -Tests -===== - -Directory containing a small collection of unit tests for glad. Unit testing glad -is rather hard to do since it would require many hand crafted test specifications. - -So most of the testing is done using integration tests which can be found in -[`/test`](../test) directory. - - -## Execution - -Run with: - - python -m unittest discover tests/ - -or: - - nosetests diff --git a/tests/test____main__.py b/tests/test____main__.py deleted file mode 100644 index 19b5f7f4..00000000 --- a/tests/test____main__.py +++ /dev/null @@ -1,36 +0,0 @@ -import unittest -import mock - - -class Cli(unittest.TestCase): - def setUp(self): - for name, path in [('c_generator', 'glad.generator.c.CGenerator'), - ('gl_from_url', 'glad.specification.GL.from_url')]: - patcher = mock.patch(path) - setattr(self, name, patcher.start()) - self.addCleanup(patcher.stop) - - self.gl = self.gl_from_url() - self.gl_extensions = type(self.gl).extensions = mock.PropertyMock() - - # import as late as possible so global instances/references aren't initialized yet - import glad.__main__ - self.main = glad.__main__ - - def tearDown(self): - self.c_generator.stop() - - def test_help__should_exit_with_0(self): - with self.assertRaises(SystemExit) as cm: - self.main.main(['--help']) - self.assertEqual(cm.exception.code, 0) - - def test_valid_extension__should_not_error(self): - self.gl_extensions.return_value = dict(gl=set(['GL_SOME_ext'])) - self.main.main(['--out-path=/tmp', '--api', 'gl:core=4.3', '--extensions', 'GL_SOME_ext', 'c']) - - def test_invalid_extension__should_exit_with_error(self): - self.gl_extensions.return_value = dict(gl=set(['GL_SOME_ext'])) - with self.assertRaises(SystemExit) as cm: - self.main.main(['--out-path=/tmp', '--api', 'gl:core=4.3', '--extensions', 'GL_SOME_other', 'c']) - self.assertEqual(cm.exception.code, 11) diff --git a/utility/bump_version.sh b/utility/bump_version.sh new file mode 100755 index 00000000..9529eba6 --- /dev/null +++ b/utility/bump_version.sh @@ -0,0 +1,44 @@ +#!/bin/bash -e + +if [ -z "$1" ]; then + echo "No version supplied" + exit 1 +fi + +VERSION="$1" +VERSION_PYTHON="__version__ = '${VERSION}'" + +OLD_VERSION=$(python -c "import glad; print(glad.__version__)") + +echo "Old Version: $OLD_VERSION" +echo "New Version: $VERSION" +echo + +if [ "$VERSION" == "$OLD_VERSION" ] +then + echo "Version equals the old version" + exit 1 +fi + +echo "Python: $VERSION_PYTHON" +read -p "Do you want to update to version $VERSION? [y/n]: " -n 1 -r +echo + +if [[ ! $REPLY =~ ^[Yy]$ ]] +then + echo "Aborted" + exit 1 +fi + + +echo -e "\n$VERSION_PYTHON\n" > glad/__init__.py + +git commit -am "setup: Bumped version: $VERSION." +git tag "v$VERSION" + +rm -rf build/ +rm -rf dist/ + +python -m build +twine upload dist/* + diff --git a/utility/compiletest.sh b/utility/compiletest.sh index b1a09d1f..de1e124a 100755 --- a/utility/compiletest.sh +++ b/utility/compiletest.sh @@ -58,8 +58,8 @@ function download_if_required { echo -e "====================== Generating and compiling C/C++: ======================" rm -rf build -download_if_required build/include/EGL/eglplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/EGL/eglplatform.h" -download_if_required build/include/KHR/khrplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/KHR/khrplatform.h" +download_if_required build/include/EGL/eglplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/EGL/eglplatform.h" +download_if_required build/include/KHR/khrplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/KHR/khrplatform.h" ${PYTHON} -m glad --api="egl" --out-path=build c c_compile -Ibuild/include build/src/egl.c ${GCC_FLAGS} cpp_compile -Ibuild/include build/src/egl.c ${GPP_FLAGS} @@ -102,8 +102,8 @@ mingwcpp_compile -Ibuild/include build/src/wgl.c ${GPP_FLAGS} echo -e "====================== Generating and compiling C/C++ Debug: ======================" rm -rf build -download_if_required build/include/EGL/eglplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/EGL/eglplatform.h" -download_if_required build/include/KHR/khrplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/KHR/khrplatform.h" +download_if_required build/include/EGL/eglplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/EGL/eglplatform.h" +download_if_required build/include/KHR/khrplatform.h "https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/KHR/khrplatform.h" ${PYTHON} -m glad --api="egl" --out-path=build c --debug c_compile -Ibuild/include build/src/egl.c ${GCC_FLAGS} cpp_compile -Ibuild/include build/src/egl.c ${GPP_FLAGS} diff --git a/utility/download.sh b/utility/download.sh index 8c0b7f27..a80c3a82 100755 --- a/utility/download.sh +++ b/utility/download.sh @@ -7,25 +7,48 @@ TARGET=${TARGET:="."} rm -f "${TARGET}/egl.xml" -wget -O "${TARGET}/egl.xml" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/egl.xml +wget -O "${TARGET}/egl.xml" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/egl.xml rm -f "${TARGET}/gl.xml" -wget -O "${TARGET}/gl.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml +wget -O "${TARGET}/gl.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/gl.xml rm -f "${TARGET}/glx.xml" -wget -O "${TARGET}/glx.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/glx.xml +wget -O "${TARGET}/glx.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/glx.xml rm -f "${TARGET}/wgl.xml" -wget -O "${TARGET}/wgl.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/wgl.xml +wget -O "${TARGET}/wgl.xml" https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/main/xml/wgl.xml rm -f "${TARGET}/vk.xml" -wget -O "${TARGET}/vk.xml" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/master/xml/vk.xml +wget -O "${TARGET}/vk.xml" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/main/xml/vk.xml rm -f "${TARGET}/khrplatform.h" -wget -O "${TARGET}/khrplatform.h" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/KHR/khrplatform.h +wget -O "${TARGET}/khrplatform.h" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/KHR/khrplatform.h rm -f "${TARGET}/eglplatform.h" -wget -O "${TARGET}/eglplatform.h" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/master/api/EGL/eglplatform.h +wget -O "${TARGET}/eglplatform.h" https://raw.githubusercontent.com/KhronosGroup/EGL-Registry/main/api/EGL/eglplatform.h rm -f "${TARGET}/vk_platform.h" -wget -O "${TARGET}/vk_platform.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/master/include/vulkan/vk_platform.h +wget -O "${TARGET}/vk_platform.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Docs/main/include/vulkan/vk_platform.h + +rm -f "${TARGET}/vulkan_video_codecs_common.h" +wget -O "${TARGET}/vulkan_video_codecs_common.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codecs_common.h + +rm -f "${TARGET}/vulkan_video_codec_h264std.h" +wget -O "${TARGET}/vulkan_video_codec_h264std.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std.h +rm -f "${TARGET}/vulkan_video_codec_h264std_decode.h" +wget -O "${TARGET}/vulkan_video_codec_h264std_decode.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_decode.h +rm -f "${TARGET}/vulkan_video_codec_h264std_encode.h" +wget -O "${TARGET}/vulkan_video_codec_h264std_encode.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h264std_encode.h + +rm -f "${TARGET}/vulkan_video_codec_h265std.h" +wget -O "${TARGET}/vulkan_video_codec_h265std.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std.h +rm -f "${TARGET}/vulkan_video_codec_h265std_decode.h" +wget -O "${TARGET}/vulkan_video_codec_h265std_decode.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_decode.h +rm -f "${TARGET}/vulkan_video_codec_h265std_encode.h" +wget -O "${TARGET}/vulkan_video_codec_h265std_encode.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_h265std_encode.h + + +rm -f "${TARGET}/vulkan_video_codec_av1std.h" +wget -O "${TARGET}/vulkan_video_codec_av1std.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std.h +rm -f "${TARGET}/vulkan_video_codec_av1std_decode.h" +wget -O "${TARGET}/vulkan_video_codec_av1std_decode.h" https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std_decode.h diff --git a/utility/test.sh b/utility/test.sh index 949e129b..57161bdf 100755 --- a/utility/test.sh +++ b/utility/test.sh @@ -165,3 +165,6 @@ report_end echo echo "Total tests: $_tests_total, Tests ran: $_tests_ran, Tests failed: $_tests_failed" +if [ $_tests_failed -gt 0 ]; then + exit 1 +fi