11 #ifndef __VE_DEVICE_H__
12 #define __VE_DEVICE_H__
56 static constexpr
int MAX_QUEUE_TYPES = UNIVERSAL_QUEUE_BITS + 1;
76 struct QueueFamilies {
86 QueueFamilies queue_families,
87 uint32_t enabled_extension_count,
88 const char *
const *enabled_extensions)
89 : myPhysicalDevice(std::move(phy_dev))
90 , myInstance(std::move(inst))
92 , myQueueFamilies(queue_families)
94 myExt.loadInstanceExtensionFunctions(
95 myInstance.handle(), myInstance.enabledExtensions());
96 myExt.loadDeviceExtensionFunctions(
97 device, enabled_extension_count, enabled_extensions);
108 uint32_t device_extension_count,
113 VkDevice
handle()
const {
return myHandle; }
119 VkQueue universalQueue()
const;
120 uint32_t universalQueueFamilyIndex()
const;
124 VkQueue graphicsQueue()
const;
125 uint32_t graphicsQueueFamilyIndex()
const;
133 uint32_t memory_type_bits,
178 uint32_t enabled_extension_count,
179 const char *
const *enabled_extensions,
180 const uint32_t queue_family_count,
181 const uint32_t queue_family_indices[],
182 const uint32_t queue_counts[]);
188 uint32_t enabled_extension_count,
189 const char *
const *enabled_extensions,
190 uint32_t queue_family_index,
191 uint32_t queue_count);
197 uint32_t enabled_extension_count,
198 const char *
const *enabled_extensions,
GLsizei GLenum GLsizei GLsizei GLuint memory
GLsizei GLenum const void * indices
VkFlags VkBufferUsageFlags
VkFlags VkDebugUtilsMessageTypeFlagsEXT
const VE_Ext & ext() const
const VE_PhysicalDevice & physicalDevice() const
VE_API VE_Result< SYS_Handle > VEcreateExternalMemoryHandle(void *pfn, VkDevice device, VkDeviceMemory memory)
VkDebugUtilsMessageSeverityFlagBitsEXT
VkFlags VkDebugUtilsMessageSeverityFlagsEXT
GLsizeiptr const void GLenum usage
VE_API void VEdestroyVulkanDevice(VkDevice)
Clean up a VkDevice. This likely will simply call vkDestroyDevice.
VkFlags VkMemoryPropertyFlags
VE_API VE_Result< VkDevice > VEcreateVulkanDevice(VkPhysicalDevice, VkDeviceCreateInfo)
const VE_Instance & instance() const