xref: /aosp_15_r20/external/virglrenderer/src/venus/vkr_physical_device.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1*bbecb9d1SAndroid Build Coastguard Worker /*
2*bbecb9d1SAndroid Build Coastguard Worker  * Copyright 2020 Google LLC
3*bbecb9d1SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*bbecb9d1SAndroid Build Coastguard Worker  */
5*bbecb9d1SAndroid Build Coastguard Worker 
6*bbecb9d1SAndroid Build Coastguard Worker #ifndef VKR_PHYSICAL_DEVICE_H
7*bbecb9d1SAndroid Build Coastguard Worker #define VKR_PHYSICAL_DEVICE_H
8*bbecb9d1SAndroid Build Coastguard Worker 
9*bbecb9d1SAndroid Build Coastguard Worker #include "vkr_common.h"
10*bbecb9d1SAndroid Build Coastguard Worker 
11*bbecb9d1SAndroid Build Coastguard Worker #include "venus-protocol/vn_protocol_renderer_util.h"
12*bbecb9d1SAndroid Build Coastguard Worker 
13*bbecb9d1SAndroid Build Coastguard Worker struct gbm_device;
14*bbecb9d1SAndroid Build Coastguard Worker 
15*bbecb9d1SAndroid Build Coastguard Worker struct vkr_physical_device {
16*bbecb9d1SAndroid Build Coastguard Worker    struct vkr_object base;
17*bbecb9d1SAndroid Build Coastguard Worker 
18*bbecb9d1SAndroid Build Coastguard Worker    struct vn_physical_device_proc_table proc_table;
19*bbecb9d1SAndroid Build Coastguard Worker 
20*bbecb9d1SAndroid Build Coastguard Worker    VkPhysicalDeviceProperties properties;
21*bbecb9d1SAndroid Build Coastguard Worker    uint32_t api_version;
22*bbecb9d1SAndroid Build Coastguard Worker 
23*bbecb9d1SAndroid Build Coastguard Worker    VkExtensionProperties *extensions;
24*bbecb9d1SAndroid Build Coastguard Worker    uint32_t extension_count;
25*bbecb9d1SAndroid Build Coastguard Worker 
26*bbecb9d1SAndroid Build Coastguard Worker    bool KHR_external_memory_fd;
27*bbecb9d1SAndroid Build Coastguard Worker    bool EXT_external_memory_dma_buf;
28*bbecb9d1SAndroid Build Coastguard Worker 
29*bbecb9d1SAndroid Build Coastguard Worker    bool KHR_external_fence_fd;
30*bbecb9d1SAndroid Build Coastguard Worker    bool KHR_external_semaphore_fd;
31*bbecb9d1SAndroid Build Coastguard Worker 
32*bbecb9d1SAndroid Build Coastguard Worker    VkPhysicalDeviceMemoryProperties memory_properties;
33*bbecb9d1SAndroid Build Coastguard Worker    VkPhysicalDeviceIDProperties id_properties;
34*bbecb9d1SAndroid Build Coastguard Worker    bool is_dma_buf_fd_export_supported;
35*bbecb9d1SAndroid Build Coastguard Worker    bool is_opaque_fd_export_supported;
36*bbecb9d1SAndroid Build Coastguard Worker    struct gbm_device *gbm_device;
37*bbecb9d1SAndroid Build Coastguard Worker 
38*bbecb9d1SAndroid Build Coastguard Worker    struct list_head devices;
39*bbecb9d1SAndroid Build Coastguard Worker };
40*bbecb9d1SAndroid Build Coastguard Worker VKR_DEFINE_OBJECT_CAST(physical_device, VK_OBJECT_TYPE_PHYSICAL_DEVICE, VkPhysicalDevice)
41*bbecb9d1SAndroid Build Coastguard Worker 
42*bbecb9d1SAndroid Build Coastguard Worker void
43*bbecb9d1SAndroid Build Coastguard Worker vkr_context_init_physical_device_dispatch(struct vkr_context *ctx);
44*bbecb9d1SAndroid Build Coastguard Worker 
45*bbecb9d1SAndroid Build Coastguard Worker void
46*bbecb9d1SAndroid Build Coastguard Worker vkr_physical_device_destroy(struct vkr_context *ctx,
47*bbecb9d1SAndroid Build Coastguard Worker                             struct vkr_physical_device *physical_dev);
48*bbecb9d1SAndroid Build Coastguard Worker 
49*bbecb9d1SAndroid Build Coastguard Worker #endif /* VKR_PHYSICAL_DEVICE_H */
50