Home | History | Annotate | Download | only in Vulkan
      1 // Copyright 2018 The SwiftShader Authors. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //    http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 // This file contains function definitions for extensions Vulkan 1.1
     16 // promoted into the core API. (See spec Appendix D: Core Revisions)
     17 
     18 // The current list of promoted extensions is:
     19 // VK_KHR_16bit_storage (no functions in this extension)
     20 // VK_KHR_bind_memory2
     21 // VK_KHR_dedicated_allocation (no functions in this extension)
     22 // VK_KHR_descriptor_update_template
     23 // VK_KHR_device_group
     24 // VK_KHR_device_group_creation
     25 // VK_KHR_external_fence (no functions in this extension)
     26 // VK_KHR_external_fence_capabilities
     27 // VK_KHR_external_memory (no functions in this extension)
     28 // VK_KHR_external_memory_capabilities
     29 // VK_KHR_external_semaphore (no functions in this extension)
     30 // VK_KHR_external_semaphore_capabilities
     31 // VK_KHR_get_memory_requirements2
     32 // VK_KHR_get_physical_device_properties2
     33 // VK_KHR_maintenance1
     34 // VK_KHR_maintenance2 (no functions in this extension)
     35 // VK_KHR_maintenance3
     36 // VK_KHR_multiview (no functions in this extension)
     37 // VK_KHR_relaxed_block_layout (no functions in this extension)
     38 // VK_KHR_sampler_ycbcr_conversion
     39 // VK_KHR_shader_draw_parameters (no functions in this extension)
     40 // VK_KHR_storage_buffer_storage_class (no functions in this extension)
     41 // VK_KHR_variable_pointers (no functions in this extension)
     42 
     43 #include <vulkan/vulkan.h>
     44 
     45 extern "C"
     46 {
     47 
     48 // VK_KHR_bind_memory2
     49 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
     50 {
     51 	return vkBindBufferMemory2(device, bindInfoCount, pBindInfos);
     52 }
     53 
     54 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)
     55 {
     56 	return vkBindImageMemory2(device, bindInfoCount, pBindInfos);
     57 }
     58 
     59 // VK_KHR_descriptor_update_template
     60 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
     61 {
     62 	return vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
     63 }
     64 
     65 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator)
     66 {
     67 	vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
     68 }
     69 
     70 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData)
     71 {
     72 	vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
     73 }
     74 
     75 // VK_KHR_device_group
     76 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
     77 {
     78 	vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
     79 }
     80 
     81 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer, uint32_t deviceMask)
     82 {
     83 	vkCmdSetDeviceMask(commandBuffer, deviceMask);
     84 }
     85 
     86 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
     87 {
     88 	vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
     89 }
     90 
     91 // VK_KHR_device_group_creation
     92 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
     93 {
     94 	return vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
     95 }
     96 
     97 // VK_KHR_external_fence_capabilities
     98 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
     99 {
    100 	vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
    101 }
    102 
    103 // VK_KHR_external_memory_capabilities
    104 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
    105 {
    106 	vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
    107 }
    108 
    109 // VK_KHR_external_semaphore_capabilities
    110 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
    111 {
    112 	vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
    113 }
    114 
    115 // VK_KHR_get_memory_requirements2
    116 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
    117 {
    118 	vkGetImageMemoryRequirements2(device, pInfo, pMemoryRequirements);
    119 }
    120 
    121 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
    122 {
    123 	vkGetBufferMemoryRequirements2(device, pInfo, pMemoryRequirements);
    124 }
    125 
    126 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
    127 {
    128 	vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
    129 }
    130 
    131 // VK_KHR_get_physical_device_properties2
    132 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
    133 {
    134 	vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
    135 }
    136 
    137 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
    138 {
    139 	vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
    140 }
    141 
    142 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
    143 {
    144 	vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
    145 }
    146 
    147 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
    148 {
    149 	return vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
    150 }
    151 
    152 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
    153 {
    154 	vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
    155 }
    156 
    157 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
    158 {
    159 	vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
    160 }
    161 
    162 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
    163 {
    164 	vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
    165 }
    166 
    167 // VK_KHR_maintenance1
    168 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
    169 {
    170 	vkTrimCommandPool(device, commandPool, flags);
    171 }
    172 
    173 // VK_KHR_maintenance3
    174 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
    175 {
    176 	vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
    177 }
    178 
    179 // VK_KHR_sampler_ycbcr_conversion
    180 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)
    181 {
    182 	return vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
    183 }
    184 
    185 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)
    186 {
    187 	vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
    188 }
    189 
    190 }