vulkan: util: add macros to extract extension/offset number from enums
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 14 Mar 2017 17:17:12 +0000 (17:17 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 6 Oct 2017 10:45:41 +0000 (11:45 +0100)
v2: Simplify offset enum computation (Jason)

v3: capitalize macros (Chad)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/vulkan/util/vk_util.h

index 2ed601f881e8314a1ac0db2200e46c52349364cd..4c18a196b71d5fc3d2f90a3c5547021d77f57e3c 100644 (file)
@@ -199,4 +199,10 @@ __vk_find_struct(void *start, VkStructureType sType)
 
 uint32_t vk_get_driver_version(void);
 
+#define VK_EXT_OFFSET (1000000000UL)
+#define VK_ENUM_EXTENSION(__enum) \
+   ((__enum) >= VK_EXT_OFFSET ? ((((__enum) - VK_EXT_OFFSET) / 1000UL) + 1) : 0)
+#define VK_ENUM_OFFSET(__enum) \
+   ((__enum) >= VK_EXT_OFFSET ? ((__enum) % 1000) : (__enum))
+
 #endif /* VK_UTIL_H */