xref: /aosp_15_r20/external/mesa3d/src/panfrost/vulkan/panvk_instance.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright © 2021 Collabora Ltd.
3*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker  */
5*61046927SAndroid Build Coastguard Worker 
6*61046927SAndroid Build Coastguard Worker #ifndef PANVK_INSTANCE_H
7*61046927SAndroid Build Coastguard Worker #define PANVK_INSTANCE_H
8*61046927SAndroid Build Coastguard Worker 
9*61046927SAndroid Build Coastguard Worker #include <stdint.h>
10*61046927SAndroid Build Coastguard Worker 
11*61046927SAndroid Build Coastguard Worker #include "vk_instance.h"
12*61046927SAndroid Build Coastguard Worker 
13*61046927SAndroid Build Coastguard Worker #include "lib/kmod/pan_kmod.h"
14*61046927SAndroid Build Coastguard Worker 
15*61046927SAndroid Build Coastguard Worker enum panvk_debug_flags {
16*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_STARTUP = 1 << 0,
17*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_NIR = 1 << 1,
18*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_TRACE = 1 << 2,
19*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_SYNC = 1 << 3,
20*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_AFBC = 1 << 4,
21*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_LINEAR = 1 << 5,
22*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_DUMP = 1 << 6,
23*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_NO_KNOWN_WARN = 1 << 7,
24*61046927SAndroid Build Coastguard Worker    PANVK_DEBUG_CS = 1 << 8,
25*61046927SAndroid Build Coastguard Worker };
26*61046927SAndroid Build Coastguard Worker 
27*61046927SAndroid Build Coastguard Worker #if defined(VK_USE_PLATFORM_WAYLAND_KHR) || \
28*61046927SAndroid Build Coastguard Worker     defined(VK_USE_PLATFORM_XCB_KHR) || \
29*61046927SAndroid Build Coastguard Worker     defined(VK_USE_PLATFORM_XLIB_KHR)
30*61046927SAndroid Build Coastguard Worker #define PANVK_USE_WSI_PLATFORM
31*61046927SAndroid Build Coastguard Worker #endif
32*61046927SAndroid Build Coastguard Worker 
33*61046927SAndroid Build Coastguard Worker struct panvk_instance {
34*61046927SAndroid Build Coastguard Worker    struct vk_instance vk;
35*61046927SAndroid Build Coastguard Worker 
36*61046927SAndroid Build Coastguard Worker    uint32_t api_version;
37*61046927SAndroid Build Coastguard Worker 
38*61046927SAndroid Build Coastguard Worker    enum panvk_debug_flags debug_flags;
39*61046927SAndroid Build Coastguard Worker 
40*61046927SAndroid Build Coastguard Worker    uint8_t driver_build_sha[20];
41*61046927SAndroid Build Coastguard Worker 
42*61046927SAndroid Build Coastguard Worker    struct {
43*61046927SAndroid Build Coastguard Worker       struct pan_kmod_allocator allocator;
44*61046927SAndroid Build Coastguard Worker    } kmod;
45*61046927SAndroid Build Coastguard Worker };
46*61046927SAndroid Build Coastguard Worker 
47*61046927SAndroid Build Coastguard Worker VK_DEFINE_HANDLE_CASTS(panvk_instance, vk.base, VkInstance,
48*61046927SAndroid Build Coastguard Worker                        VK_OBJECT_TYPE_INSTANCE)
49*61046927SAndroid Build Coastguard Worker 
50*61046927SAndroid Build Coastguard Worker static inline struct panvk_instance *
to_panvk_instance(struct vk_instance * instance)51*61046927SAndroid Build Coastguard Worker to_panvk_instance(struct vk_instance *instance)
52*61046927SAndroid Build Coastguard Worker {
53*61046927SAndroid Build Coastguard Worker    return container_of(instance, struct panvk_instance, vk);
54*61046927SAndroid Build Coastguard Worker }
55*61046927SAndroid Build Coastguard Worker 
56*61046927SAndroid Build Coastguard Worker #endif
57