[Mesa-dev] [PATCH] vulkan: import latest public vulkan headers + and fix drivers.

Jordan Justen jordan.l.justen at intel.com
Fri Nov 11 03:26:03 UTC 2016


On 2016-11-10 17:45:10, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> I just noticed the new vulkan headers changed a prototype,
> so I've decided to import them and fix the drivers to use the
> new API.
>

The new header is Apache licensed. I know that the FSF says Apache is
not compatible with GPLv2 code.

https://www.gnu.org/licenses/license-list.en.html#apache2

I think GPLv2 code can include "system library headers" under
non-GPLv2 compatible libraries, so this should be okay for GPLv2
licensed code. For example, GPLv2 code can include stdio.h, even if on
some systems the stdio.h may have a non-GPLv2 compatible license.

Is that correct?

-Jordan

>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  include/vulkan/vk_platform.h      |  39 ++--
>  include/vulkan/vulkan.h           | 429 +++++++++++++++++++++++++++++++++++---
>  src/amd/vulkan/radv_meta_buffer.c |   2 +-
>  src/intel/vulkan/anv_blorp.c      |   2 +-
>  4 files changed, 413 insertions(+), 59 deletions(-)
> 
> diff --git a/include/vulkan/vk_platform.h b/include/vulkan/vk_platform.h
> index f5a5243..0fa62ee 100644
> --- a/include/vulkan/vk_platform.h
> +++ b/include/vulkan/vk_platform.h
> @@ -4,24 +4,17 @@
>  /*
>  ** Copyright (c) 2014-2015 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:
> +** 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
>  **
> -** The above copyright notice and this permission notice shall be included
> -** in all copies or substantial portions of the Materials.
> +**     http://www.apache.org/licenses/LICENSE-2.0
>  **
> -** 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.
> +** 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.
>  */
>  
>  
> @@ -58,13 +51,13 @@ extern "C"
>      #define VKAPI_ATTR
>      #define VKAPI_CALL __stdcall
>      #define VKAPI_PTR  VKAPI_CALL
> -#elif defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
> -    // Android does not support Vulkan in native code using the "armeabi" ABI.
> -    #error "Vulkan requires the 'armeabi-v7a' or 'armeabi-v7a-hard' ABI on 32-bit ARM CPUs"
> -#elif defined(__ANDROID__) && defined(__ARM_ARCH_7A__)
> -    // On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling
> -    // convention, even if the application's native code is compiled with the
> -    // armeabi-v7a calling convention.
> +#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
> +    #error "Vulkan isn't 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
> +    // is true even if the rest of the application passes floats on the stack,
> +    // as it does by default when compiling for the armeabi-v7a NDK ABI.
>      #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
>      #define VKAPI_CALL
>      #define VKAPI_PTR  VKAPI_ATTR
> diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
> index 567671a..694527c 100644
> --- a/include/vulkan/vulkan.h
> +++ b/include/vulkan/vulkan.h
> @@ -8,24 +8,17 @@ extern "C" {
>  /*
>  ** Copyright (c) 2015-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:
> +** 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
>  **
> -** The above copyright notice and this permission notice shall be included
> -** in all copies or substantial portions of the Materials.
> +**     http://www.apache.org/licenses/LICENSE-2.0
>  **
> -** 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.
> +** 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.
>  */
>  
>  /*
> @@ -50,7 +43,7 @@ extern "C" {
>  #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
>  #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
>  // Version of this file
> -#define VK_HEADER_VERSION 6
> +#define VK_HEADER_VERSION 32
>  
>  
>  #define VK_NULL_HANDLE 0
> @@ -60,11 +53,13 @@ extern "C" {
>  #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
>  
>  
> -#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
> +#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
> +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
>          #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
>  #else
>          #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
>  #endif
> +#endif
>          
>  
>  
> @@ -142,6 +137,7 @@ typedef enum VkResult {
>      VK_ERROR_INCOMPATIBLE_DRIVER = -9,
>      VK_ERROR_TOO_MANY_OBJECTS = -10,
>      VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
> +    VK_ERROR_FRAGMENTED_POOL = -12,
>      VK_ERROR_SURFACE_LOST_KHR = -1000000000,
>      VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
>      VK_SUBOPTIMAL_KHR = 1000001003,
> @@ -149,9 +145,9 @@ typedef enum VkResult {
>      VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
>      VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
>      VK_ERROR_INVALID_SHADER_NV = -1000012000,
> -    VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
> +    VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
>      VK_RESULT_END_RANGE = VK_INCOMPLETE,
> -    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
> +    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
>      VK_RESULT_MAX_ENUM = 0x7FFFFFFF
>  } VkResult;
>  
> @@ -217,6 +213,19 @@ typedef enum VkStructureType {
>      VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
>      VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
>      VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
> +    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
> +    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
> +    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
> +    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
> +    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
> +    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
> +    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
> +    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
> +    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
> +    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
> +    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
> +    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
> +    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
>      VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
>      VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
>      VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
> @@ -429,6 +438,14 @@ typedef enum VkFormat {
>      VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
>      VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
>      VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
> +    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
> +    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
> +    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
> +    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
> +    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
> +    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
> +    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
> +    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
>      VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
>      VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
>      VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
> @@ -817,6 +834,7 @@ typedef enum VkFormatFeatureFlagBits {
>      VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
>      VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
>      VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
> +    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkFormatFeatureFlagBits;
>  typedef VkFlags VkFormatFeatureFlags;
>  
> @@ -829,6 +847,7 @@ typedef enum VkImageUsageFlagBits {
>      VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
>      VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
>      VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
> +    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkImageUsageFlagBits;
>  typedef VkFlags VkImageUsageFlags;
>  
> @@ -838,6 +857,7 @@ typedef enum VkImageCreateFlagBits {
>      VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
>      VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
>      VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
> +    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkImageCreateFlagBits;
>  typedef VkFlags VkImageCreateFlags;
>  
> @@ -849,6 +869,7 @@ typedef enum VkSampleCountFlagBits {
>      VK_SAMPLE_COUNT_16_BIT = 0x00000010,
>      VK_SAMPLE_COUNT_32_BIT = 0x00000020,
>      VK_SAMPLE_COUNT_64_BIT = 0x00000040,
> +    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkSampleCountFlagBits;
>  typedef VkFlags VkSampleCountFlags;
>  
> @@ -857,6 +878,7 @@ typedef enum VkQueueFlagBits {
>      VK_QUEUE_COMPUTE_BIT = 0x00000002,
>      VK_QUEUE_TRANSFER_BIT = 0x00000004,
>      VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
> +    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkQueueFlagBits;
>  typedef VkFlags VkQueueFlags;
>  
> @@ -866,11 +888,13 @@ typedef enum VkMemoryPropertyFlagBits {
>      VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
>      VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
>      VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
> +    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkMemoryPropertyFlagBits;
>  typedef VkFlags VkMemoryPropertyFlags;
>  
>  typedef enum VkMemoryHeapFlagBits {
>      VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
> +    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkMemoryHeapFlagBits;
>  typedef VkFlags VkMemoryHeapFlags;
>  typedef VkFlags VkDeviceCreateFlags;
> @@ -894,6 +918,7 @@ typedef enum VkPipelineStageFlagBits {
>      VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
>      VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
>      VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
> +    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkPipelineStageFlagBits;
>  typedef VkFlags VkPipelineStageFlags;
>  typedef VkFlags VkMemoryMapFlags;
> @@ -903,6 +928,7 @@ typedef enum VkImageAspectFlagBits {
>      VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
>      VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
>      VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
> +    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkImageAspectFlagBits;
>  typedef VkFlags VkImageAspectFlags;
>  
> @@ -910,16 +936,19 @@ typedef enum VkSparseImageFormatFlagBits {
>      VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
>      VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
>      VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
> +    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkSparseImageFormatFlagBits;
>  typedef VkFlags VkSparseImageFormatFlags;
>  
>  typedef enum VkSparseMemoryBindFlagBits {
>      VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
> +    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkSparseMemoryBindFlagBits;
>  typedef VkFlags VkSparseMemoryBindFlags;
>  
>  typedef enum VkFenceCreateFlagBits {
>      VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
> +    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkFenceCreateFlagBits;
>  typedef VkFlags VkFenceCreateFlags;
>  typedef VkFlags VkSemaphoreCreateFlags;
> @@ -938,6 +967,7 @@ typedef enum VkQueryPipelineStatisticFlagBits {
>      VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
>      VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
>      VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
> +    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkQueryPipelineStatisticFlagBits;
>  typedef VkFlags VkQueryPipelineStatisticFlags;
>  
> @@ -946,6 +976,7 @@ typedef enum VkQueryResultFlagBits {
>      VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
>      VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
>      VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
> +    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkQueryResultFlagBits;
>  typedef VkFlags VkQueryResultFlags;
>  
> @@ -953,6 +984,7 @@ typedef enum VkBufferCreateFlagBits {
>      VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
>      VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
>      VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
> +    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkBufferCreateFlagBits;
>  typedef VkFlags VkBufferCreateFlags;
>  
> @@ -966,6 +998,7 @@ typedef enum VkBufferUsageFlagBits {
>      VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
>      VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
>      VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
> +    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkBufferUsageFlagBits;
>  typedef VkFlags VkBufferUsageFlags;
>  typedef VkFlags VkBufferViewCreateFlags;
> @@ -977,6 +1010,7 @@ typedef enum VkPipelineCreateFlagBits {
>      VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
>      VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
>      VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
> +    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkPipelineCreateFlagBits;
>  typedef VkFlags VkPipelineCreateFlags;
>  typedef VkFlags VkPipelineShaderStageCreateFlags;
> @@ -990,6 +1024,7 @@ typedef enum VkShaderStageFlagBits {
>      VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
>      VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
>      VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
> +    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkShaderStageFlagBits;
>  typedef VkFlags VkPipelineVertexInputStateCreateFlags;
>  typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
> @@ -1002,6 +1037,7 @@ typedef enum VkCullModeFlagBits {
>      VK_CULL_MODE_FRONT_BIT = 0x00000001,
>      VK_CULL_MODE_BACK_BIT = 0x00000002,
>      VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
> +    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkCullModeFlagBits;
>  typedef VkFlags VkCullModeFlags;
>  typedef VkFlags VkPipelineMultisampleStateCreateFlags;
> @@ -1013,6 +1049,7 @@ typedef enum VkColorComponentFlagBits {
>      VK_COLOR_COMPONENT_G_BIT = 0x00000002,
>      VK_COLOR_COMPONENT_B_BIT = 0x00000004,
>      VK_COLOR_COMPONENT_A_BIT = 0x00000008,
> +    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkColorComponentFlagBits;
>  typedef VkFlags VkColorComponentFlags;
>  typedef VkFlags VkPipelineDynamicStateCreateFlags;
> @@ -1023,6 +1060,7 @@ typedef VkFlags VkDescriptorSetLayoutCreateFlags;
>  
>  typedef enum VkDescriptorPoolCreateFlagBits {
>      VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
> +    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkDescriptorPoolCreateFlagBits;
>  typedef VkFlags VkDescriptorPoolCreateFlags;
>  typedef VkFlags VkDescriptorPoolResetFlags;
> @@ -1031,6 +1069,7 @@ typedef VkFlags VkRenderPassCreateFlags;
>  
>  typedef enum VkAttachmentDescriptionFlagBits {
>      VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
> +    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkAttachmentDescriptionFlagBits;
>  typedef VkFlags VkAttachmentDescriptionFlags;
>  typedef VkFlags VkSubpassDescriptionFlags;
> @@ -1053,22 +1092,26 @@ typedef enum VkAccessFlagBits {
>      VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
>      VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
>      VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
> +    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkAccessFlagBits;
>  typedef VkFlags VkAccessFlags;
>  
>  typedef enum VkDependencyFlagBits {
>      VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
> +    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkDependencyFlagBits;
>  typedef VkFlags VkDependencyFlags;
>  
>  typedef enum VkCommandPoolCreateFlagBits {
>      VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
>      VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
> +    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkCommandPoolCreateFlagBits;
>  typedef VkFlags VkCommandPoolCreateFlags;
>  
>  typedef enum VkCommandPoolResetFlagBits {
>      VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
> +    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkCommandPoolResetFlagBits;
>  typedef VkFlags VkCommandPoolResetFlags;
>  
> @@ -1076,16 +1119,19 @@ typedef enum VkCommandBufferUsageFlagBits {
>      VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
>      VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
>      VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
> +    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkCommandBufferUsageFlagBits;
>  typedef VkFlags VkCommandBufferUsageFlags;
>  
>  typedef enum VkQueryControlFlagBits {
>      VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
> +    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkQueryControlFlagBits;
>  typedef VkFlags VkQueryControlFlags;
>  
>  typedef enum VkCommandBufferResetFlagBits {
>      VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
> +    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkCommandBufferResetFlagBits;
>  typedef VkFlags VkCommandBufferResetFlags;
>  
> @@ -1093,6 +1139,7 @@ typedef enum VkStencilFaceFlagBits {
>      VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
>      VK_STENCIL_FACE_BACK_BIT = 0x00000002,
>      VK_STENCIL_FRONT_AND_BACK = 0x00000003,
> +    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
>  } VkStencilFaceFlagBits;
>  typedef VkFlags VkStencilFaceFlags;
>  
> @@ -2320,7 +2367,7 @@ typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkIm
>  typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
>  typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
>  typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
> -typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
> +typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
>  typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
>  typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
>  typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
> @@ -3005,7 +3052,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
>      VkBuffer                                    dstBuffer,
>      VkDeviceSize                                dstOffset,
>      VkDeviceSize                                dataSize,
> -    const uint32_t*                             pData);
> +    const void*                                 pData);
>  
>  VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
>      VkCommandBuffer                             commandBuffer,
> @@ -3145,14 +3192,15 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
>  
>  #define VK_KHR_SURFACE_SPEC_VERSION       25
>  #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
> +#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
>  
>  
>  typedef enum VkColorSpaceKHR {
> -    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
> -    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
> -    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
> -    VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
> -    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
> +    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
> +    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
> +    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
> +    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
> +    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
>  } VkColorSpaceKHR;
>  
>  typedef enum VkPresentModeKHR {
> @@ -3160,10 +3208,10 @@ typedef enum VkPresentModeKHR {
>      VK_PRESENT_MODE_MAILBOX_KHR = 1,
>      VK_PRESENT_MODE_FIFO_KHR = 2,
>      VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
> -    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
> -    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
> -    VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
> -    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
> +    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
> +    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
> +    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
> +    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
>  } VkPresentModeKHR;
>  
>  
> @@ -3177,6 +3225,7 @@ typedef enum VkSurfaceTransformFlagBitsKHR {
>      VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
>      VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
>      VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
> +    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
>  } VkSurfaceTransformFlagBitsKHR;
>  typedef VkFlags VkSurfaceTransformFlagsKHR;
>  
> @@ -3185,6 +3234,7 @@ typedef enum VkCompositeAlphaFlagBitsKHR {
>      VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
>      VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
>      VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
> +    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
>  } VkCompositeAlphaFlagBitsKHR;
>  typedef VkFlags VkCompositeAlphaFlagsKHR;
>  
> @@ -3246,7 +3296,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
>  #define VK_KHR_swapchain 1
>  VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
>  
> -#define VK_KHR_SWAPCHAIN_SPEC_VERSION     67
> +#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
>  #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
>  
>  typedef VkFlags VkSwapchainCreateFlagsKHR;
> @@ -3334,6 +3384,7 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
>      VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
>      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
>      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
> +    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
>  } VkDisplayPlaneAlphaFlagBitsKHR;
>  typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
>  typedef VkFlags VkDisplayModeCreateFlagsKHR;
> @@ -3401,7 +3452,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhys
>  typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
>  typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
>  typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
> -typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
> +typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
>  typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
>  typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
>  
> @@ -3684,7 +3735,7 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
>  #define VK_EXT_debug_report 1
>  VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
>  
> -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  2
> +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  3
>  #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
>  #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
>  
> @@ -3719,11 +3770,19 @@ typedef enum VkDebugReportObjectTypeEXT {
>      VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
>      VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
>      VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
> +    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
> +    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
> +    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
> +    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
>  } VkDebugReportObjectTypeEXT;
>  
>  typedef enum VkDebugReportErrorEXT {
>      VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
>      VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
> +    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
> +    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
> +    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
> +    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
>  } VkDebugReportErrorEXT;
>  
>  
> @@ -3733,6 +3792,7 @@ typedef enum VkDebugReportFlagBitsEXT {
>      VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
>      VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
>      VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
> +    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
>  } VkDebugReportFlagBitsEXT;
>  typedef VkFlags VkDebugReportFlagsEXT;
>  
> @@ -3793,6 +3853,307 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
>  #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
>  
>  
> +#define VK_AMD_rasterization_order 1
> +#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
> +#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
> +
> +
> +typedef enum VkRasterizationOrderAMD {
> +    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
> +    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
> +    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
> +    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
> +    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
> +    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
> +} VkRasterizationOrderAMD;
> +
> +typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
> +    VkStructureType            sType;
> +    const void*                pNext;
> +    VkRasterizationOrderAMD    rasterizationOrder;
> +} VkPipelineRasterizationStateRasterizationOrderAMD;
> +
> +
> +
> +#define VK_AMD_shader_trinary_minmax 1
> +#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
> +#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
> +
> +
> +#define VK_AMD_shader_explicit_vertex_parameter 1
> +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
> +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
> +
> +
> +#define VK_EXT_debug_marker 1
> +#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  3
> +#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
> +
> +typedef struct VkDebugMarkerObjectNameInfoEXT {
> +    VkStructureType               sType;
> +    const void*                   pNext;
> +    VkDebugReportObjectTypeEXT    objectType;
> +    uint64_t                      object;
> +    const char*                   pObjectName;
> +} VkDebugMarkerObjectNameInfoEXT;
> +
> +typedef struct VkDebugMarkerObjectTagInfoEXT {
> +    VkStructureType               sType;
> +    const void*                   pNext;
> +    VkDebugReportObjectTypeEXT    objectType;
> +    uint64_t                      object;
> +    uint64_t                      tagName;
> +    size_t                        tagSize;
> +    const void*                   pTag;
> +} VkDebugMarkerObjectTagInfoEXT;
> +
> +typedef struct VkDebugMarkerMarkerInfoEXT {
> +    VkStructureType    sType;
> +    const void*        pNext;
> +    const char*        pMarkerName;
> +    float              color[4];
> +} VkDebugMarkerMarkerInfoEXT;
> +
> +
> +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
> +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
> +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
> +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
> +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
> +
> +#ifndef VK_NO_PROTOTYPES
> +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
> +    VkDevice                                    device,
> +    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
> +
> +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
> +    VkDevice                                    device,
> +    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
> +
> +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
> +    VkCommandBuffer                             commandBuffer,
> +    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
> +
> +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
> +    VkCommandBuffer                             commandBuffer);
> +
> +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
> +    VkCommandBuffer                             commandBuffer,
> +    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
> +#endif
> +
> +#define VK_AMD_gcn_shader 1
> +#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
> +#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
> +
> +
> +#define VK_NV_dedicated_allocation 1
> +#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
> +#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
> +
> +typedef struct VkDedicatedAllocationImageCreateInfoNV {
> +    VkStructureType    sType;
> +    const void*        pNext;
> +    VkBool32           dedicatedAllocation;
> +} VkDedicatedAllocationImageCreateInfoNV;
> +
> +typedef struct VkDedicatedAllocationBufferCreateInfoNV {
> +    VkStructureType    sType;
> +    const void*        pNext;
> +    VkBool32           dedicatedAllocation;
> +} VkDedicatedAllocationBufferCreateInfoNV;
> +
> +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
> +    VkStructureType    sType;
> +    const void*        pNext;
> +    VkImage            image;
> +    VkBuffer           buffer;
> +} VkDedicatedAllocationMemoryAllocateInfoNV;
> +
> +
> +
> +#define VK_AMD_draw_indirect_count 1
> +#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
> +#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
> +
> +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
> +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
> +
> +#ifndef VK_NO_PROTOTYPES
> +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
> +    VkCommandBuffer                             commandBuffer,
> +    VkBuffer                                    buffer,
> +    VkDeviceSize                                offset,
> +    VkBuffer                                    countBuffer,
> +    VkDeviceSize                                countBufferOffset,
> +    uint32_t                                    maxDrawCount,
> +    uint32_t                                    stride);
> +
> +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
> +    VkCommandBuffer                             commandBuffer,
> +    VkBuffer                                    buffer,
> +    VkDeviceSize                                offset,
> +    VkBuffer                                    countBuffer,
> +    VkDeviceSize                                countBufferOffset,
> +    uint32_t                                    maxDrawCount,
> +    uint32_t                                    stride);
> +#endif
> +
> +#define VK_AMD_negative_viewport_height 1
> +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
> +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
> +
> +
> +#define VK_AMD_gpu_shader_half_float 1
> +#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
> +#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
> +
> +
> +#define VK_AMD_shader_ballot 1
> +#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
> +#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
> +
> +
> +#define VK_IMG_format_pvrtc 1
> +#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
> +#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
> +
> +
> +#define VK_NV_external_memory_capabilities 1
> +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
> +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
> +
> +
> +typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
> +    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
> +    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
> +    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
> +    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
> +    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
> +} VkExternalMemoryHandleTypeFlagBitsNV;
> +typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
> +
> +typedef enum VkExternalMemoryFeatureFlagBitsNV {
> +    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
> +    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
> +    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
> +    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
> +} VkExternalMemoryFeatureFlagBitsNV;
> +typedef VkFlags VkExternalMemoryFeatureFlagsNV;
> +
> +typedef struct VkExternalImageFormatPropertiesNV {
> +    VkImageFormatProperties              imageFormatProperties;
> +    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
> +    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
> +    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
> +} VkExternalImageFormatPropertiesNV;
> +
> +
> +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
> +
> +#ifndef VK_NO_PROTOTYPES
> +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
> +    VkPhysicalDevice                            physicalDevice,
> +    VkFormat                                    format,
> +    VkImageType                                 type,
> +    VkImageTiling                               tiling,
> +    VkImageUsageFlags                           usage,
> +    VkImageCreateFlags                          flags,
> +    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
> +    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
> +#endif
> +
> +#define VK_NV_external_memory 1
> +#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
> +#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
> +
> +typedef struct VkExternalMemoryImageCreateInfoNV {
> +    VkStructureType                      sType;
> +    const void*                          pNext;
> +    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
> +} VkExternalMemoryImageCreateInfoNV;
> +
> +typedef struct VkExportMemoryAllocateInfoNV {
> +    VkStructureType                      sType;
> +    const void*                          pNext;
> +    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
> +} VkExportMemoryAllocateInfoNV;
> +
> +
> +
> +#ifdef VK_USE_PLATFORM_WIN32_KHR
> +#define VK_NV_external_memory_win32 1
> +#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
> +#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
> +
> +typedef struct VkImportMemoryWin32HandleInfoNV {
> +    VkStructureType                      sType;
> +    const void*                          pNext;
> +    VkExternalMemoryHandleTypeFlagsNV    handleType;
> +    HANDLE                               handle;
> +} VkImportMemoryWin32HandleInfoNV;
> +
> +typedef struct VkExportMemoryWin32HandleInfoNV {
> +    VkStructureType               sType;
> +    const void*                   pNext;
> +    const SECURITY_ATTRIBUTES*    pAttributes;
> +    DWORD                         dwAccess;
> +} VkExportMemoryWin32HandleInfoNV;
> +
> +
> +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
> +
> +#ifndef VK_NO_PROTOTYPES
> +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
> +    VkDevice                                    device,
> +    VkDeviceMemory                              memory,
> +    VkExternalMemoryHandleTypeFlagsNV           handleType,
> +    HANDLE*                                     pHandle);
> +#endif
> +#endif /* VK_USE_PLATFORM_WIN32_KHR */
> +
> +#ifdef VK_USE_PLATFORM_WIN32_KHR
> +#define VK_NV_win32_keyed_mutex 1
> +#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
> +#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
> +
> +typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
> +    VkStructureType          sType;
> +    const void*              pNext;
> +    uint32_t                 acquireCount;
> +    const VkDeviceMemory*    pAcquireSyncs;
> +    const uint64_t*          pAcquireKeys;
> +    const uint32_t*          pAcquireTimeoutMilliseconds;
> +    uint32_t                 releaseCount;
> +    const VkDeviceMemory*    pReleaseSyncs;
> +    const uint64_t*          pReleaseKeys;
> +} VkWin32KeyedMutexAcquireReleaseInfoNV;
> +
> +
> +#endif /* VK_USE_PLATFORM_WIN32_KHR */
> +
> +#define VK_EXT_validation_flags 1
> +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
> +#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
> +
> +
> +typedef enum VkValidationCheckEXT {
> +    VK_VALIDATION_CHECK_ALL_EXT = 0,
> +    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
> +    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
> +    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
> +    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
> +} VkValidationCheckEXT;
> +
> +typedef struct VkValidationFlagsEXT {
> +    VkStructureType          sType;
> +    const void*              pNext;
> +    uint32_t                 disabledValidationCheckCount;
> +    VkValidationCheckEXT*    pDisabledValidationChecks;
> +} VkValidationFlagsEXT;
> +
> +
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/src/amd/vulkan/radv_meta_buffer.c b/src/amd/vulkan/radv_meta_buffer.c
> index 05c4971..42297b9 100644
> --- a/src/amd/vulkan/radv_meta_buffer.c
> +++ b/src/amd/vulkan/radv_meta_buffer.c
> @@ -511,7 +511,7 @@ void radv_CmdUpdateBuffer(
>         VkBuffer                                    dstBuffer,
>         VkDeviceSize                                dstOffset,
>         VkDeviceSize                                dataSize,
> -       const uint32_t*                             pData)
> +       const void*                                 pData)
>  {
>         RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
>         RADV_FROM_HANDLE(radv_buffer, dst_buffer, dstBuffer);
> diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
> index 0feb5d5..b78c21d 100644
> --- a/src/intel/vulkan/anv_blorp.c
> +++ b/src/intel/vulkan/anv_blorp.c
> @@ -645,7 +645,7 @@ void anv_CmdUpdateBuffer(
>      VkBuffer                                    dstBuffer,
>      VkDeviceSize                                dstOffset,
>      VkDeviceSize                                dataSize,
> -    const uint32_t*                             pData)
> +    const void*                                 pData)
>  {
>     ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
>     ANV_FROM_HANDLE(anv_buffer, dst_buffer, dstBuffer);
> -- 
> 2.5.5
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list