38 std::optional<uint32_t> _graphicsFamily;
39 std::optional<uint32_t> _computeFamily;
40 std::optional<uint32_t> _transferFamily;
41 std::optional<uint32_t> _presentFamily;
45 VkSurfaceCapabilitiesKHR _capabilities;
47 std::vector<VkSurfaceFormatKHR> _formats;
48 std::vector<VkFormatProperties> _formatProperties;
50 std::vector<VkPresentModeKHR> _presentModes;
61 [[nodiscard]] VkPhysicalDevice getDevice()
const;
96 [[nodiscard]] uint32_t findMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties)
const;
98 [[nodiscard]] uint32_t getMaxImageDimension2D()
const;
99 [[nodiscard]] uint32_t getMinUniformBufferOffsetAlignment()
const;
100 [[nodiscard]] VkDeviceSize getMaxMemoryAllocationSize()
const;
101 [[nodiscard]] uint32_t getMaxMemoryAllocationCount()
const;
102 [[nodiscard]] VkPhysicalDeviceFeatures getFeatures()
const;
103 [[nodiscard]] VkPhysicalDeviceFeatures2 getFeatures2()
const;
104 [[nodiscard]] VkPhysicalDeviceRobustness2FeaturesEXT getRobustness2Features()
const;
107 void updateDeviceExtensionSupport();
109 VkPhysicalDevice g_device;
110 bool g_extensionSupport;