command buffer allocation
[vktest3] / src / vk.h
1 #ifndef VK_H_
2 #define VK_H_
3
4 #include <X11/Xlib.h>
5 #include <vulkan/vulkan.h>
6
7 enum {
8         VKINIT_DEPTH    = 1,
9         VKINIT_STENCIL  = 2,
10         VKINIT_RAY              = 0x100
11 };
12
13 /* queue capability flags for vk_find_qfamily and vk_init_queue */
14 enum {
15         VKQ_GFX                 = 1,
16         VKQ_COMPUTE             = 2,
17         VKQ_PRESENT             = 4,
18         VKQ_XFER                = 8
19 };
20
21 void vk_init_xwin(Display *dpy, Window win);
22 void vk_init_queue(unsigned int qflags, int count);
23
24 int vk_init(unsigned int flags, unsigned int *usedflags);
25 void vk_cleanup(void);
26
27 int vk_reshape(int xsz, int ysz);
28
29 int vk_find_qfamily(unsigned int flags);
30 VkQueue vk_getq_fam(int fam, int n);
31 VkQueue vk_getq(unsigned int flags, int n);
32
33 VkCommandBuffer vk_create_cmdbuf_fam(int qfam, int level);
34 VkCommandBuffer vk_create_cmdbuf(unsigned int qflags, int level);
35
36 int vk_create_rpass(void);
37 void vk_free_rpass(int rp);
38 void vk_rpass_colorbuf(int rp, int fmt, int n);
39 void vk_rpass_msaa(int rp, int nsamp);
40 void vk_rpass_clear(int rp, int clear);
41 VkRenderPass vk_rpass(int rp);
42
43 int vk_create_fb(void);
44 void vk_free_fb(int fb);
45 void vk_fb_size(int fb, int x, int y);
46 void vk_fb_rpass(int fb, int rpass);
47 void vk_fb_images(int fb, int n, ...);
48 VkFramebuffer vk_fb(int fb);
49
50
51
52 #endif  /* VK_H_ */