5#ifndef FLUTTER_VULKAN_VULKAN_DEVICE_H_
6#define FLUTTER_VULKAN_VULKAN_DEVICE_H_
10#include "flutter/fml/compiler_specific.h"
11#include "flutter/fml/macros.h"
12#include "flutter/vulkan/procs/vulkan_handle.h"
26 bool enable_validation_layers);
60 const std::vector<VkFormat>& desired_formats,
67 std::vector<VkPipelineStageFlags> wait_dest_pipeline_stages,
68 const std::vector<VkSemaphore>& wait_semaphores,
69 const std::vector<VkSemaphore>& signal_semaphores,
70 const std::vector<VkCommandBuffer>& command_buffers,
81 uint32_t graphics_queue_index_;
84 bool InitializeCommandPool();
85 std::vector<VkQueueFamilyProperties> GetQueueFamilyProperties()
const;
VulkanDevice(VulkanProcTable &vk, VulkanHandle< VkPhysicalDevice > physical_device, bool enable_validation_layers)
Create a new VkDevice with a resolved VkQueue suitable for rendering with Skia.
const VulkanHandle< VkQueue > & GetQueueHandle() const
const VulkanHandle< VkPhysicalDevice > & GetPhysicalDeviceHandle() const
bool ChoosePresentMode(const VulkanSurface &surface, VkPresentModeKHR *present_mode) const
bool QueueSubmit(std::vector< VkPipelineStageFlags > wait_dest_pipeline_stages, const std::vector< VkSemaphore > &wait_semaphores, const std::vector< VkSemaphore > &signal_semaphores, const std::vector< VkCommandBuffer > &command_buffers, const VulkanHandle< VkFence > &fence) const
bool GetSurfaceCapabilities(const VulkanSurface &surface, VkSurfaceCapabilitiesKHR *capabilities) const
const VulkanHandle< VkDevice > & GetHandle() const
void ReleaseDeviceOwnership()
int ChooseSurfaceFormat(const VulkanSurface &surface, const std::vector< VkFormat > &desired_formats, VkSurfaceFormatKHR *format) const
bool GetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures *features) const
const VulkanHandle< VkCommandPool > & GetCommandPool() const
uint32_t GetGraphicsQueueIndex() const
VkPhysicalDevice physical_device
uint32_t queue_family_index
uint32_t uint32_t * format