From: Taekyun Kim Date: Wed, 28 Sep 2016 06:36:27 +0000 (+0900) Subject: wsi: Wrapper object for VkPhysicalDevice X-Git-Tag: submit/submit/tizen/20170906.070327/20170906.070422~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4d75900725ef439b89604bf9325c94c58010125b;p=platform%2Fcore%2Fuifw%2Fvulkan-wsi-tizen.git wsi: Wrapper object for VkPhysicalDevice Change-Id: I88ff8018277ce407f1014370e28ccec0d01757a9 --- diff --git a/src/wsi/icd.c b/src/wsi/icd.c index 677ea28..6fcc199 100644 --- a/src/wsi/icd.c +++ b/src/wsi/icd.c @@ -35,6 +35,18 @@ vk_get_icd(void) return &icd; } +static vk_physical_device_t dev; + +vk_physical_device_t * +vk_get_physical_device(VkPhysicalDevice pdev) +{ + if (dev.pdev != VK_NULL_HANDLE && dev.pdev != pdev) + return NULL; + + dev.pdev = pdev; + return &dev; +} + static const VkExtensionProperties wsi_instance_extensions[] = { { VK_KHR_SURFACE_EXTENSION_NAME, 25 }, { VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME, 4 }, @@ -98,6 +110,7 @@ module_init(void) ARRAY_LENGTH(wsi_instance_extensions) * sizeof(VkExtensionProperties)); icd.instance_extension_count = count + ARRAY_LENGTH(wsi_instance_extensions); + dev.pdev = VK_NULL_HANDLE; } static void __attribute__((destructor)) diff --git a/src/wsi/wsi.h b/src/wsi/wsi.h index 9539a57..09be9b3 100644 --- a/src/wsi/wsi.h +++ b/src/wsi/wsi.h @@ -33,15 +33,16 @@ #include #include -typedef struct vk_surface vk_surface_t; -typedef struct vk_swapchain vk_swapchain_t; -typedef struct vk_buffer vk_buffer_t; -typedef struct vk_icd vk_icd_t; +typedef struct vk_surface vk_surface_t; +typedef struct vk_swapchain vk_swapchain_t; +typedef struct vk_buffer vk_buffer_t; +typedef struct vk_physical_device vk_physical_device_t; +typedef struct vk_icd vk_icd_t; struct vk_icd { void *lib; - PFN_vkGetInstanceProcAddr get_proc_addr; + PFN_vkGetInstanceProcAddr get_proc_addr; PFN_vkEnumerateDeviceExtensionProperties enum_dev_exts; uint32_t instance_extension_count; @@ -56,6 +57,13 @@ struct vk_icd { vk_icd_t * vk_get_icd(void); +struct vk_physical_device { + VkPhysicalDevice pdev; +}; + +vk_physical_device_t * +vk_get_physical_device(VkPhysicalDevice pdev); + struct vk_buffer { tbm_surface_h tbm; VkImage image;