| /* |
| * 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 */ |