/* * Copyright 2020 Google LLC * SPDX-License-Identifier: MIT */ #ifndef VKR_PHYSICAL_DEVICE_H #define VKR_PHYSICAL_DEVICE_H #include "vkr_common.h" #include "venus-protocol/vn_protocol_renderer_util.h" struct gbm_device; struct vkr_physical_device { struct vkr_object base; struct vn_physical_device_proc_table proc_table; VkPhysicalDeviceProperties properties; uint32_t api_version; VkExtensionProperties *extensions; uint32_t extension_count; bool KHR_external_memory_fd; bool EXT_external_memory_dma_buf; bool KHR_external_fence_fd; bool KHR_external_semaphore_fd; VkPhysicalDeviceMemoryProperties memory_properties; VkPhysicalDeviceIDProperties id_properties; bool is_dma_buf_fd_export_supported; bool is_opaque_fd_export_supported; struct gbm_device *gbm_device; struct list_head devices; }; VKR_DEFINE_OBJECT_CAST(physical_device, VK_OBJECT_TYPE_PHYSICAL_DEVICE, VkPhysicalDevice) void vkr_context_init_physical_device_dispatch(struct vkr_context *ctx); void vkr_physical_device_destroy(struct vkr_context *ctx, struct vkr_physical_device *physical_dev); #endif /* VKR_PHYSICAL_DEVICE_H */