X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fvkutil.h;h=71943bdd8c7a88ebb3c26a72efed5afbcebe5cb8;hb=e04bbfa8eb50d10fc87c3cbd6667de5de767eaa7;hp=853349ff27e9511bb659592cc6bd02cf5a03222c;hpb=72995482b98ff2a014ddd737131a0935ead89977;p=demo diff --git a/src/vulkan/vkutil.h b/src/vulkan/vkutil.h index 853349f..71943bd 100644 --- a/src/vulkan/vkutil.h +++ b/src/vulkan/vkutil.h @@ -4,23 +4,28 @@ #include #include -extern VkPipeline *vkgraphics_pipeline; +extern VkPhysicalDevice vk_physical; +extern VkDevice vk_device; +extern VkCommandPool vk_pool; +extern VkQueue vk_queue; +extern VkSwapchainKHR vk_swapchain; +extern VkSurfaceKHR vk_surface; + +extern VkPipeline *vkgparent_pipeline; extern VkDescriptorSet *vkdescset; extern VkFramebuffer *vkfbufs; extern VkRenderPass vkrpass; -extern VkSwapchainKHR vkswapchain; -extern VkImage *vkswapchain_images; -extern VkImageView *vkswapchain_views; -extern int vknum_swapchain_images; -extern VkSurfaceKHR vksurface; extern VkInstance vkinst; -extern VkPhysicalDevice vkpdev; -extern VkDevice vkdev; -extern VkQueue vkq; -extern VkCommandPool vkcmdpool; extern VkCommandBuffer vkcmdbuf; /* primary command buffer */ extern int vkqfamily; -extern int vknext_swapchain_image; + +/* presentation */ +extern int vknum_swapchain_images; +extern VkImage *vkswapchain_images; +extern VkImageView *vkswapchain_views; +extern int vk_curr_swapchain_image; +extern VkSemaphore vk_img_avail_sema; +extern VkSemaphore vk_rend_done_sema; struct vku_buffer { VkBuffer buf; @@ -36,8 +41,12 @@ bool vku_have_device_extension(const char *name); bool vku_create_device(); void vku_cleanup(); +/* semaphores */ +bool vku_create_semaphores(); + /* command buffers */ VkCommandBuffer vku_alloc_cmdbuf(VkCommandPool pool, VkCommandBufferLevel level); +bool vku_alloc_cmdbufs(VkCommandPool pool, VkCommandBufferLevel level, unsigned int count, VkCommandBuffer *buf_array); void vku_free_cmdbuf(VkCommandPool pool, VkCommandBuffer buf); void vku_begin_cmdbuf(VkCommandBuffer buf, unsigned int flags); @@ -45,20 +54,12 @@ void vku_end_cmdbuf(VkCommandBuffer buf); void vku_reset_cmdbuf(VkCommandBuffer buf); void vku_submit_cmdbuf(VkQueue q, VkCommandBuffer buf, VkFence done_fence); -/* swapchain */ -VkSwapchainKHR vku_create_swapchain(VkSurfaceKHR surf, int xsz, int ysz, int n, - VkPresentModeKHR pmode, VkSwapchainKHR prev); -VkImage *vku_get_swapchain_images(VkSwapchainKHR sc, int *count); -VkImageView *vku_create_image_views(VkImage *images, int count); +bool vku_get_surface_format(VkPhysicalDevice gpu, VkSurfaceKHR surface, VkSurfaceFormatKHR *sformat); +VkColorSpaceKHR vku_get_surface_colorspace(VkPhysicalDevice gpu, VkSurfaceKHR surface); + int vku_get_next_image(VkSwapchainKHR sc); void vku_present(VkSwapchainKHR sc, int img_idx); -/* rederpass */ -bool vku_create_renderpass(); - -/* framebuffer */ -bool vku_create_framebuffers(VkImageView *image_views, int count, int w, int h); - /* buffers */ vku_buffer *vku_create_buffer(int sz, unsigned int usage); void vku_destroy_buffer(vku_buffer *buf); @@ -68,10 +69,5 @@ void vku_cmd_copybuf(VkCommandBuffer cmdbuf, VkBuffer dest, int doffs, /* other */ const char *vku_get_vulkan_error_str(VkResult error); -/* pipeline */ -bool vku_create_graphics_pipeline(VkPipelineLayout *layout); - -/* descriptor set */ -//bool vku_create_descriptor_set() #endif // VKUTIL_H_