Nebula
Loading...
Searching...
No Matches
vkloader.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
18//------------------------------------------------------------------------------
19#define VK_NO_PROTOTYPES
20#include <vulkan/vulkan.h>
21namespace Vulkan
22{
23
25extern void InitVulkan();
27extern void InitInstance(VkInstance instance);
28
29extern PFN_vkSetDebugUtilsObjectNameEXT VkDebugObjectName;
30
31
32} // namespace Vulkan
33
34#define _IMP_VK(name) name = (PFN_##name)vkGetInstanceProcAddr(instance, #name);n_assert_fmt(name != nullptr, "Unable to get function proc: %s\n",#name);
35#define _DEC_VK(name) extern PFN_##name name;
36#define _DEF_VK(name) PFN_##name name = nullptr;
37
38#define _IMP_VK_DYN(name, instance) name = (PFN_##name)vkGetInstanceProcAddr(instance, #name);n_assert_fmt(name != nullptr, "Unable to get function proc: %s\n",#name);
39
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45// declare context functions
46_DEC_VK(vkGetInstanceProcAddr);
47_DEC_VK(vkCreateInstance);
48_DEC_VK(vkEnumerateInstanceExtensionProperties);
49_DEC_VK(vkEnumerateInstanceLayerProperties);
50_DEC_VK(vkEnumerateInstanceVersion);
51
52// declare instance functions
53_DEC_VK(vkCreateDevice);
54_DEC_VK(vkDestroyDevice);
55_DEC_VK(vkDestroyInstance);
56_DEC_VK(vkDeviceWaitIdle);
57_DEC_VK(vkGetDeviceQueue);
58
59_DEC_VK(vkGetPhysicalDeviceSurfaceFormatsKHR);
60_DEC_VK(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
61_DEC_VK(vkGetPhysicalDeviceSurfacePresentModesKHR);
62_DEC_VK(vkGetPhysicalDeviceSurfaceSupportKHR);
63_DEC_VK(vkGetPhysicalDeviceImageFormatProperties2);
64_DEC_VK(vkCreateSwapchainKHR);
65_DEC_VK(vkGetSwapchainImagesKHR);
66_DEC_VK(vkAcquireNextImageKHR);
67_DEC_VK(vkDestroySwapchainKHR);
68_DEC_VK(vkQueuePresentKHR);
69
70_DEC_VK(vkQueueSubmit);
71_DEC_VK(vkQueueBindSparse);
72_DEC_VK(vkQueueWaitIdle);
73
74_DEC_VK(vkEnumerateDeviceExtensionProperties);
75_DEC_VK(vkEnumerateDeviceLayerProperties);
76_DEC_VK(vkEnumeratePhysicalDevices);
77_DEC_VK(vkGetDeviceProcAddr);
78
79_DEC_VK(vkCreatePipelineCache);
80_DEC_VK(vkDestroyPipelineCache);
81_DEC_VK(vkGetPipelineCacheData);
82_DEC_VK(vkCreateQueryPool);
83_DEC_VK(vkDestroyQueryPool);
84_DEC_VK(vkResetQueryPool);
85
86// physical device
87_DEC_VK(vkGetPhysicalDeviceProperties2);
88_DEC_VK(vkGetPhysicalDeviceFeatures);
89_DEC_VK(vkGetPhysicalDeviceFeatures2);
90_DEC_VK(vkGetPhysicalDeviceQueueFamilyProperties);
91_DEC_VK(vkGetPhysicalDeviceMemoryProperties);
92_DEC_VK(vkGetPhysicalDeviceFormatProperties);
93_DEC_VK(vkGetPhysicalDeviceFormatProperties2);
94_DEC_VK(vkGetPhysicalDeviceSparseImageFormatProperties);
95_DEC_VK(vkGetImageSparseMemoryRequirements);
96
97// command buffer
98_DEC_VK(vkCmdDraw);
99_DEC_VK(vkCmdDrawIndexed);
100_DEC_VK(vkCmdDrawIndirect);
101_DEC_VK(vkCmdDrawIndexedIndirect);
102_DEC_VK(vkCmdDispatch);
103_DEC_VK(vkCmdResolveImage);
104
105_DEC_VK(vkCmdCopyImage);
106_DEC_VK(vkCmdBlitImage);
107_DEC_VK(vkCmdCopyBuffer);
108_DEC_VK(vkCmdUpdateBuffer);
109_DEC_VK(vkCmdCopyBufferToImage);
110_DEC_VK(vkCmdCopyImageToBuffer);
111
112_DEC_VK(vkCmdBindDescriptorSets);
113_DEC_VK(vkCmdPushConstants);
114_DEC_VK(vkCmdSetViewport);
115_DEC_VK(vkCmdSetScissor);
116_DEC_VK(vkCmdSetStencilCompareMask);
117_DEC_VK(vkCmdSetStencilWriteMask);
118_DEC_VK(vkCmdSetStencilReference);
119_DEC_VK(vkCmdSetPrimitiveTopology);
120_DEC_VK(vkCmdSetPrimitiveRestartEnable);
121_DEC_VK(vkCmdSetVertexInputEXT);
122
123_DEC_VK(vkCreateCommandPool);
124_DEC_VK(vkDestroyCommandPool);
125_DEC_VK(vkAllocateCommandBuffers);
126_DEC_VK(vkFreeCommandBuffers);
127_DEC_VK(vkCmdExecuteCommands);
128_DEC_VK(vkBeginCommandBuffer);
129_DEC_VK(vkEndCommandBuffer);
130_DEC_VK(vkResetCommandBuffer);
131
132_DEC_VK(vkCreateEvent);
133_DEC_VK(vkDestroyEvent);
134_DEC_VK(vkCmdSetEvent);
135_DEC_VK(vkCmdWaitEvents);
136_DEC_VK(vkCmdResetEvent);
137_DEC_VK(vkGetEventStatus);
138_DEC_VK(vkResetEvent);
139_DEC_VK(vkSetEvent);
140
141_DEC_VK(vkCmdPipelineBarrier);
142_DEC_VK(vkCreateFence);
143_DEC_VK(vkDestroyFence);
144_DEC_VK(vkResetFences);
145_DEC_VK(vkGetFenceStatus);
146_DEC_VK(vkWaitForFences);
147_DEC_VK(vkWaitSemaphores);
148_DEC_VK(vkGetSemaphoreCounterValue);
149
150_DEC_VK(vkCreateRenderPass);
151_DEC_VK(vkDestroyRenderPass);
152_DEC_VK(vkCmdBeginRenderPass);
153_DEC_VK(vkCmdEndRenderPass);
154_DEC_VK(vkCmdBeginRendering);
155_DEC_VK(vkCmdEndRendering);
156_DEC_VK(vkCmdNextSubpass);
157_DEC_VK(vkCmdBindIndexBuffer);
158_DEC_VK(vkCmdBindVertexBuffers);
159_DEC_VK(vkCmdClearDepthStencilImage);
160_DEC_VK(vkCmdClearColorImage);
161_DEC_VK(vkCreateFramebuffer);
162_DEC_VK(vkDestroyFramebuffer);
163
164_DEC_VK(vkCreateGraphicsPipelines);
165_DEC_VK(vkCreateComputePipelines);
166_DEC_VK(vkDestroyPipeline);
167_DEC_VK(vkCreateShaderModule);
168_DEC_VK(vkDestroyShaderModule);
169_DEC_VK(vkCreateDescriptorSetLayout);
170_DEC_VK(vkDestroyDescriptorSetLayout);
171_DEC_VK(vkCreateDescriptorPool);
172_DEC_VK(vkDestroyDescriptorPool);
173_DEC_VK(vkAllocateDescriptorSets);
174_DEC_VK(vkFreeDescriptorSets);
175_DEC_VK(vkUpdateDescriptorSets);
176_DEC_VK(vkCreatePipelineLayout);
177_DEC_VK(vkDestroyPipelineLayout);
178_DEC_VK(vkCreateSampler);
179_DEC_VK(vkDestroySampler);
180
181_DEC_VK(vkCmdBindPipeline);
182_DEC_VK(vkCmdCopyQueryPoolResults);
183_DEC_VK(vkCmdResetQueryPool);
184_DEC_VK(vkCmdWriteTimestamp);
185_DEC_VK(vkCmdBeginQuery);
186_DEC_VK(vkCmdEndQuery);
187
188_DEC_VK(vkCreateSemaphore);
189_DEC_VK(vkDestroySemaphore);
190
191// memory
192
193_DEC_VK(vkAllocateMemory);
194_DEC_VK(vkFreeMemory);
195_DEC_VK(vkMapMemory);
196_DEC_VK(vkUnmapMemory);
197_DEC_VK(vkFlushMappedMemoryRanges);
198_DEC_VK(vkInvalidateMappedMemoryRanges);
199
200_DEC_VK(vkGetBufferMemoryRequirements);
201_DEC_VK(vkGetImageMemoryRequirements);
202
203_DEC_VK(vkCreateBuffer);
204_DEC_VK(vkCreateBufferView);
205_DEC_VK(vkDestroyBuffer);
206_DEC_VK(vkBindBufferMemory);
207
208_DEC_VK(vkCreateImage);
209_DEC_VK(vkDestroyImage);
210_DEC_VK(vkBindImageMemory);
211_DEC_VK(vkCreateImageView);
212_DEC_VK(vkDestroyImageView);
213
214// raytracing
215_DEC_VK(vkCreateRayTracingPipelinesKHR);
216_DEC_VK(vkGetAccelerationStructureBuildSizesKHR);
217_DEC_VK(vkCreateAccelerationStructureKHR);
218_DEC_VK(vkDestroyAccelerationStructureKHR);
219_DEC_VK(vkBuildAccelerationStructuresKHR);
220_DEC_VK(vkGetAccelerationStructureDeviceAddressKHR);
221_DEC_VK(vkGetDeviceAccelerationStructureCompatibilityKHR);
222_DEC_VK(vkGetBufferDeviceAddress);
223_DEC_VK(vkCmdBuildAccelerationStructuresKHR);
224_DEC_VK(vkCmdTraceRaysKHR);
225_DEC_VK(vkGetRayTracingShaderGroupHandlesKHR);
226
227// mesh shaders
228_DEC_VK(vkCmdDrawMeshTasksEXT);
229
230// Nvidia
231_DEC_VK(vkCmdSetCheckpointNV);
232_DEC_VK(vkGetQueueCheckpointDataNV);
233
234#ifdef __cplusplus
235}
236#endif
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
void InitInstance(VkInstance instance)
initialize Vulkan instance, loads function pointers directly from driver
Definition vkloader.cc:60
PFN_vkSetDebugUtilsObjectNameEXT VkDebugObjectName
Definition vkloader.cc:13
void InitVulkan()
initialize Vulkan by loading dll and setting up the instance loader
Definition vkloader.cc:17
#define _DEC_VK(name)
Definition vkloader.h:35