35 std::string *r_requirement_info)
const override;
39 XrSystemId system_id)
override;
41 GHOST_TXrSwapchainFormat &r_format,
42 bool &r_is_srgb_format)
const override;
47 const GHOST_XrDrawViewInfo &draw_info)
override;
55 VkInstance vk_instance_ = VK_NULL_HANDLE;
56 VkPhysicalDevice vk_physical_device_ = VK_NULL_HANDLE;
57 uint32_t graphics_queue_family_ = 0;
58 VkQueue vk_queue_ = VK_NULL_HANDLE;
59 VkDevice vk_device_ = VK_NULL_HANDLE;
60 VmaAllocator vma_allocator_ = VK_NULL_HANDLE;
61 VmaAllocation vk_buffer_allocation_ = VK_NULL_HANDLE;
62 VkBuffer vk_buffer_ = VK_NULL_HANDLE;
63 VmaAllocationInfo vk_buffer_allocation_info_ = {};
64 GHOST_TVulkanXRModes data_transfer_mode_ = GHOST_kVulkanXRModeCPU;
66 std::list<std::vector<XrSwapchainImageVulkan2KHR>> image_cache_;
67 VkCommandPool vk_command_pool_ = VK_NULL_HANDLE;
69 struct ImportedMemory {
71 VkImage vk_image_blender;
73 VkDeviceMemory vk_device_memory_xr;
75 std::vector<ImportedMemory> imported_memory_;
77 GHOST_TVulkanXRModes choseDataTransferMode();
78 void submitToSwapchainImageCpu(XrSwapchainImageVulkan2KHR &swapchain_image,
79 const GHOST_XrDrawViewInfo &draw_info);
80 void submitToSwapchainImageGpu(XrSwapchainImageVulkan2KHR &swapchain_image,
81 const GHOST_XrDrawViewInfo &draw_info);
88 VkCommandBuffer vk_command_buffer_ = VK_NULL_HANDLE;
90 static PFN_xrGetVulkanGraphicsRequirements2KHR s_xrGetVulkanGraphicsRequirements2KHR_fn;
91 static PFN_xrGetVulkanGraphicsDevice2KHR s_xrGetVulkanGraphicsDevice2KHR_fn;
92 static PFN_xrCreateVulkanInstanceKHR s_xrCreateVulkanInstanceKHR_fn;
93 static PFN_xrCreateVulkanDeviceKHR s_xrCreateVulkanDeviceKHR_fn;