31 std::string *r_requirement_info)
const override;
35 XrSystemId system_id)
override;
37 GHOST_TXrSwapchainFormat &r_format,
38 bool &r_is_srgb_format)
const override;
43 const GHOST_XrDrawViewInfo &draw_info)
override;
51 VkInstance m_vk_instance = VK_NULL_HANDLE;
52 VkPhysicalDevice m_vk_physical_device = VK_NULL_HANDLE;
53 uint32_t m_graphics_queue_family = 0;
54 VkQueue m_vk_queue = VK_NULL_HANDLE;
55 VkDevice m_vk_device = VK_NULL_HANDLE;
56 VmaAllocator m_vma_allocator = VK_NULL_HANDLE;
57 VmaAllocation m_vk_buffer_allocation = VK_NULL_HANDLE;
58 VkBuffer m_vk_buffer = VK_NULL_HANDLE;
59 VmaAllocationInfo m_vk_buffer_allocation_info = {};
60 GHOST_TVulkanXRModes m_data_transfer_mode = GHOST_kVulkanXRModeCPU;
62 std::list<std::vector<XrSwapchainImageVulkan2KHR>> m_image_cache;
63 VkCommandPool m_vk_command_pool = VK_NULL_HANDLE;
65 struct ImportedMemory {
67 VkImage vk_image_blender;
69 VkDeviceMemory vk_device_memory_xr;
71 std::vector<ImportedMemory> m_imported_memory;
73 GHOST_TVulkanXRModes choseDataTransferMode();
74 void submitToSwapchainImageCpu(XrSwapchainImageVulkan2KHR &swapchain_image,
75 const GHOST_XrDrawViewInfo &draw_info);
76 void submitToSwapchainImageGpu(XrSwapchainImageVulkan2KHR &swapchain_image,
77 const GHOST_XrDrawViewInfo &draw_info);
84 VkCommandBuffer m_vk_command_buffer = VK_NULL_HANDLE;
86 static PFN_xrGetVulkanGraphicsRequirements2KHR s_xrGetVulkanGraphicsRequirements2KHR_fn;
87 static PFN_xrGetVulkanGraphicsDevice2KHR s_xrGetVulkanGraphicsDevice2KHR_fn;
88 static PFN_xrCreateVulkanInstanceKHR s_xrCreateVulkanInstanceKHR_fn;
89 static PFN_xrCreateVulkanDeviceKHR s_xrCreateVulkanDeviceKHR_fn;