vk/vulkan.h: Update extension handling to rev 130

This commit is contained in:
Jason Ekstrand 2015-07-08 10:38:07 -07:00
parent cc29a5f4be
commit 8e05bbeee9
2 changed files with 54 additions and 71 deletions

View file

@ -1088,14 +1088,6 @@ typedef enum {
VK_ENUM_RANGE(PHYSICAL_DEVICE_INFO_TYPE, PROPERTIES, MEMORY_PROPERTIES)
} VkPhysicalDeviceInfoType;
typedef enum {
// Info type for vkGetGlobalExtensionInfo() and vkGetPhysicalDeviceExtensionInfo()
VK_EXTENSION_INFO_TYPE_COUNT = 0x00000000,
VK_EXTENSION_INFO_TYPE_PROPERTIES = 0x00000001,
VK_ENUM_RANGE(EXTENSION_INFO_TYPE, COUNT, PROPERTIES)
} VkExtensionInfoType;
typedef enum {
// Info type for vkGetFormatInfo()
VK_FORMAT_INFO_TYPE_PROPERTIES = 0x00000000,
@ -1895,8 +1887,10 @@ typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instanc
typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
typedef VkResult (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionInfo)(VkExtensionInfoType infoType, uint32_t extensionIndex, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionInfo)(VkPhysicalDevice physicalDevice, VkExtensionInfoType infoType, uint32_t extensionIndex, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionCount)(uint32_t* pCount);
typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionProperties)(uint32_t extensionIndex, VkExtensionProperties* pProperties);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionCount)(VkPhysicalDevice physicalDevice, uint32_t* pCount);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, uint32_t extensionIndex, VkExtensionProperties* pProperties);
typedef VkResult (VKAPI *PFN_vkEnumerateLayers)(VkPhysicalDevice physicalDevice, size_t maxStringSize, size_t* pLayerCount, char* const* pOutLayers, void* pReserved);
typedef VkResult (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueNodeIndex, uint32_t queueIndex, VkQueue* pQueue);
typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence);
@ -2035,18 +2029,21 @@ VkResult VKAPI vkCreateDevice(
VkResult VKAPI vkDestroyDevice(
VkDevice device);
VkResult VKAPI vkGetGlobalExtensionInfo(
VkExtensionInfoType infoType,
uint32_t extensionIndex,
size_t* pDataSize,
void* pData);
VkResult VKAPI vkGetGlobalExtensionCount(
uint32_t* pCount);
VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
VkPhysicalDevice physicalDevice,
VkExtensionInfoType infoType,
VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
size_t* pDataSize,
void* pData);
VkExtensionProperties* pProperties);
VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
VkPhysicalDevice physicalDevice,
uint32_t* pCount);
VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
VkPhysicalDevice physicalDevice,
uint32_t extensionIndex,
VkExtensionProperties* pProperties);
VkResult VKAPI vkEnumerateLayers(
VkPhysicalDevice physicalDevice,

View file

@ -472,64 +472,50 @@ VkResult anv_DestroyDevice(
return VK_SUCCESS;
}
VkResult anv_GetGlobalExtensionInfo(
VkExtensionInfoType infoType,
uint32_t extensionIndex,
size_t* pDataSize,
void* pData)
{
static const VkExtensionProperties extensions[] = {
{
.extName = "VK_WSI_LunarG",
.version = 3
}
};
uint32_t count = ARRAY_SIZE(extensions);
switch (infoType) {
case VK_EXTENSION_INFO_TYPE_COUNT:
memcpy(pData, &count, sizeof(count));
*pDataSize = sizeof(count);
return VK_SUCCESS;
case VK_EXTENSION_INFO_TYPE_PROPERTIES:
if (extensionIndex >= count)
return vk_error(VK_ERROR_INVALID_EXTENSION);
memcpy(pData, &extensions[extensionIndex], sizeof(extensions[0]));
*pDataSize = sizeof(extensions[0]);
return VK_SUCCESS;
default:
return VK_UNSUPPORTED;
static const VkExtensionProperties global_extensions[] = {
{
.extName = "VK_WSI_LunarG",
.version = 3
}
};
VkResult anv_GetGlobalExtensionCount(
uint32_t* pCount)
{
*pCount = ARRAY_SIZE(global_extensions);
return VK_SUCCESS;
}
VkResult anv_GetPhysicalDeviceExtensionInfo(
VkPhysicalDevice physicalDevice,
VkExtensionInfoType infoType,
VkResult anv_GetGlobalExtensionProperties(
uint32_t extensionIndex,
size_t* pDataSize,
void* pData)
VkExtensionProperties* pProperties)
{
uint32_t *count;
assert(extensionIndex < ARRAY_SIZE(global_extensions));
switch (infoType) {
case VK_EXTENSION_INFO_TYPE_COUNT:
*pDataSize = 4;
if (pData == NULL)
return VK_SUCCESS;
*pProperties = global_extensions[extensionIndex];
count = pData;
*count = 0;
return VK_SUCCESS;
case VK_EXTENSION_INFO_TYPE_PROPERTIES:
return vk_error(VK_ERROR_INVALID_EXTENSION);
default:
return VK_UNSUPPORTED;
}
return VK_SUCCESS;
}
VkResult anv_GetPhysicalDeviceExtensionCount(
VkPhysicalDevice physicalDevice,
uint32_t* pCount)
{
/* None supported at this time */
*pCount = 0;
return VK_SUCCESS;
}
VkResult anv_GetPhysicalDeviceExtensionProperties(
VkPhysicalDevice physicalDevice,
uint32_t extensionIndex,
VkExtensionProperties* pProperties)
{
/* None supported at this time */
return vk_error(VK_ERROR_INVALID_EXTENSION);
}
VkResult anv_EnumerateLayers(