mirror of
https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer.git
synced 2026-05-08 23:08:04 +02:00
Update json manifest
Updates the api_version to 1.2 in the json manifest. Also, adds the entrypoints node in the device extensions as it is mandated by the loader's documentation when an extension adds Vulkan API functions. Removes support for intercepting vkEnumerateInstanceLayerProperties, vkEnumerateInstanceExtensionProperties and vkEnumerateDeviceExtensionProperties as the loader can get the information they provide from the layer's json manifest in its terminator functions. Change-Id: I2c304d1d2ea17d3ea0c723694f8fc4c8a92054a0 Signed-off-by: Iason Paraskevopoulos <iason.paraskevopoulos@arm.com>
This commit is contained in:
parent
d74a006c7b
commit
212a7314c3
2 changed files with 16 additions and 94 deletions
|
|
@ -4,25 +4,29 @@
|
|||
"name": "VK_LAYER_window_system_integration",
|
||||
"type": "GLOBAL",
|
||||
"library_path": "./libVkLayer_window_system_integration.so",
|
||||
"api_version": "1.0.68",
|
||||
"api_version": "1.2.191",
|
||||
"implementation_version": "1",
|
||||
"description": "Window system integration layer",
|
||||
"functions": {
|
||||
"vkGetInstanceProcAddr": "wsi_layer_vkGetInstanceProcAddr",
|
||||
"vkGetDeviceProcAddr": "wsi_layer_vkGetDeviceProcAddr"
|
||||
},
|
||||
"pre_instance_functions" : {
|
||||
"vkEnumerateInstanceExtensionProperties" : "wsi_layer_vkEnumerateInstanceExtensionProperties"
|
||||
},
|
||||
"instance_extensions": [
|
||||
{"name" : "VK_EXT_headless_surface", "spec_version" : "1"},
|
||||
{"name" : "VK_KHR_wayland_surface", "spec_version" : "1"},
|
||||
{"name" : "VK_KHR_surface", "spec_version" : "1"}
|
||||
{"name" : "VK_KHR_wayland_surface", "spec_version" : "6"},
|
||||
{"name" : "VK_KHR_surface", "spec_version" : "25"}
|
||||
],
|
||||
"device_extensions": [
|
||||
{
|
||||
"name" : "VK_KHR_swapchain",
|
||||
"spec_version" : "1"
|
||||
"spec_version" : "70",
|
||||
"entrypoints": [
|
||||
"vkAcquireNextImageKHR",
|
||||
"vkCreateSwapchainKHR",
|
||||
"vkDestroySwapchainKHR",
|
||||
"vkGetSwapchainImagesKHR",
|
||||
"vkQueuePresentKHR",
|
||||
"vkAcquireNextImage2KHR",
|
||||
"vkGetDeviceGroupPresentCapabilitiesKHR",
|
||||
"vkGetDeviceGroupSurfacePresentModesKHR",
|
||||
"vkGetPhysicalDevicePresentRectanglesKHR"
|
||||
]
|
||||
}
|
||||
],
|
||||
"enable_environment": {
|
||||
|
|
|
|||
|
|
@ -36,63 +36,11 @@
|
|||
#include "wsi/wsi_factory.hpp"
|
||||
#include "util/log.hpp"
|
||||
|
||||
#define VK_LAYER_API_VERSION VK_MAKE_VERSION(1, 0, VK_HEADER_VERSION)
|
||||
#define VK_LAYER_API_VERSION VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
|
||||
|
||||
namespace layer
|
||||
{
|
||||
|
||||
static const VkLayerProperties global_layer = {
|
||||
"VK_LAYER_window_system_integration", VK_LAYER_API_VERSION, 1, "Window system integration layer",
|
||||
};
|
||||
static const VkExtensionProperties device_extension[] = { { VK_KHR_SWAPCHAIN_EXTENSION_NAME,
|
||||
VK_KHR_SWAPCHAIN_SPEC_VERSION } };
|
||||
static const VkExtensionProperties instance_extension[] = { { VK_KHR_SURFACE_EXTENSION_NAME,
|
||||
VK_KHR_SURFACE_SPEC_VERSION } };
|
||||
|
||||
VKAPI_ATTR VkResult extension_properties(const uint32_t count, const VkExtensionProperties *layer_ext, uint32_t *pCount,
|
||||
VkExtensionProperties *pProp)
|
||||
{
|
||||
uint32_t size;
|
||||
|
||||
if (pProp == NULL || layer_ext == NULL)
|
||||
{
|
||||
*pCount = count;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
size = *pCount < count ? *pCount : count;
|
||||
memcpy(pProp, layer_ext, size * sizeof(*pProp));
|
||||
*pCount = size;
|
||||
if (size < count)
|
||||
{
|
||||
return VK_INCOMPLETE;
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult layer_properties(const uint32_t count, const VkLayerProperties *layer_prop, uint32_t *pCount,
|
||||
VkLayerProperties *pProp)
|
||||
{
|
||||
uint32_t size;
|
||||
|
||||
if (pProp == NULL || layer_prop == NULL)
|
||||
{
|
||||
*pCount = count;
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
size = *pCount < count ? *pCount : count;
|
||||
memcpy(pProp, layer_prop, size * sizeof(*pProp));
|
||||
*pCount = size;
|
||||
if (size < count)
|
||||
{
|
||||
return VK_INCOMPLETE;
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkLayerInstanceCreateInfo *get_chain_info(const VkInstanceCreateInfo *pCreateInfo, VkLayerFunction func)
|
||||
{
|
||||
VkLayerInstanceCreateInfo *chain_info = (VkLayerInstanceCreateInfo *)pCreateInfo->pNext;
|
||||
|
|
@ -395,34 +343,6 @@ vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct
|
|||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL wsi_layer_vkEnumerateDeviceExtensionProperties(
|
||||
VkPhysicalDevice physicalDevice, const char *pLayerName, uint32_t *pCount, VkExtensionProperties *pProperties)
|
||||
{
|
||||
if (pLayerName && !strcmp(pLayerName, layer::global_layer.layerName))
|
||||
return layer::extension_properties(1, layer::device_extension, pCount, pProperties);
|
||||
|
||||
assert(physicalDevice);
|
||||
return layer::instance_private_data::get(physicalDevice)
|
||||
.disp.EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pCount, pProperties);
|
||||
}
|
||||
|
||||
VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL wsi_layer_vkEnumerateInstanceExtensionProperties(
|
||||
const VkEnumerateInstanceExtensionPropertiesChain *chain, const char *pLayerName,
|
||||
uint32_t *pCount, VkExtensionProperties *pProperties)
|
||||
{
|
||||
if (pLayerName && !strcmp(pLayerName, layer::global_layer.layerName))
|
||||
return layer::extension_properties(1, layer::instance_extension, pCount, pProperties);
|
||||
|
||||
assert(chain);
|
||||
return chain->CallDown(pLayerName, pCount, pProperties);
|
||||
}
|
||||
|
||||
VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL
|
||||
wsi_layer_vkEnumerateInstanceLayerProperties(uint32_t *pCount, VkLayerProperties *pProperties)
|
||||
{
|
||||
return layer::layer_properties(1, &layer::global_layer, pCount, pProperties);
|
||||
}
|
||||
|
||||
#define GET_PROC_ADDR(func) \
|
||||
if (!strcmp(funcName, #func)) \
|
||||
return (PFN_vkVoidFunction)&wsi_layer_##func;
|
||||
|
|
@ -464,8 +384,6 @@ VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL wsi_layer_vkGetInstance
|
|||
GET_PROC_ADDR(vkGetPhysicalDeviceSurfaceFormatsKHR);
|
||||
GET_PROC_ADDR(vkGetPhysicalDeviceSurfacePresentModesKHR);
|
||||
GET_PROC_ADDR(vkDestroySurfaceKHR);
|
||||
GET_PROC_ADDR(vkEnumerateDeviceExtensionProperties);
|
||||
GET_PROC_ADDR(vkEnumerateInstanceLayerProperties);
|
||||
|
||||
GET_PROC_ADDR(vkGetPhysicalDevicePresentRectanglesKHR);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue