xref: /aosp_15_r20/external/virglrenderer/src/venus/vkr_renderer.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1 /*
2  * Copyright 2020 Google LLC
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef VKR_RENDERER_H
7 #define VKR_RENDERER_H
8 
9 #include "config.h"
10 
11 #include <stddef.h>
12 #include <stdint.h>
13 
14 #include "util/os_misc.h"
15 #include "virgl_util.h"
16 
17 #define VKR_RENDERER_THREAD_SYNC (1u << 0)
18 #define VKR_RENDERER_ASYNC_FENCE_CB (1u << 1)
19 #define VKR_RENDERER_RENDER_SERVER (1u << 2)
20 
21 struct virgl_context;
22 
23 #ifdef ENABLE_VENUS
24 
25 int
26 vkr_renderer_init(uint32_t flags);
27 
28 void
29 vkr_renderer_fini(void);
30 
31 void
32 vkr_renderer_reset(void);
33 
34 size_t
35 vkr_get_capset(void *capset);
36 
37 struct virgl_context *
38 vkr_context_create(size_t debug_len, const char *debug_name);
39 
40 #else /* ENABLE_VENUS */
41 
42 #include <stdio.h>
43 
44 static inline int
vkr_renderer_init(UNUSED uint32_t flags)45 vkr_renderer_init(UNUSED uint32_t flags)
46 {
47    virgl_log("Vulkan support was not enabled in virglrenderer\n");
48    return -1;
49 }
50 
51 static inline void
vkr_renderer_fini(void)52 vkr_renderer_fini(void)
53 {
54 }
55 
56 static inline void
vkr_renderer_reset(void)57 vkr_renderer_reset(void)
58 {
59 }
60 
61 static inline size_t
vkr_get_capset(UNUSED void * capset)62 vkr_get_capset(UNUSED void *capset)
63 {
64    return 0;
65 }
66 
67 static inline struct virgl_context *
vkr_context_create(UNUSED size_t debug_len,UNUSED const char * debug_name)68 vkr_context_create(UNUSED size_t debug_len, UNUSED const char *debug_name)
69 {
70    return NULL;
71 }
72 
73 #endif /* ENABLE_VENUS */
74 
75 #endif /* VKR_RENDERER_H */
76