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(vkCmdNextSubpass);
155_DEC_VK(vkCmdBindIndexBuffer);
156_DEC_VK(vkCmdBindVertexBuffers);
157_DEC_VK(vkCmdClearDepthStencilImage);
158_DEC_VK(vkCmdClearColorImage);
159_DEC_VK(vkCreateFramebuffer);
160_DEC_VK(vkDestroyFramebuffer);
161
162_DEC_VK(vkCreateGraphicsPipelines);
163_DEC_VK(vkCreateComputePipelines);
164_DEC_VK(vkDestroyPipeline);
165_DEC_VK(vkCreateShaderModule);
166_DEC_VK(vkDestroyShaderModule);
167_DEC_VK(vkCreateDescriptorSetLayout);
168_DEC_VK(vkDestroyDescriptorSetLayout);
169_DEC_VK(vkCreateDescriptorPool);
170_DEC_VK(vkDestroyDescriptorPool);
171_DEC_VK(vkAllocateDescriptorSets);
172_DEC_VK(vkFreeDescriptorSets);
173_DEC_VK(vkUpdateDescriptorSets);
174_DEC_VK(vkCreatePipelineLayout);
175_DEC_VK(vkDestroyPipelineLayout);
176_DEC_VK(vkCreateSampler);
177_DEC_VK(vkDestroySampler);
178
179_DEC_VK(vkCmdBindPipeline);
180_DEC_VK(vkCmdCopyQueryPoolResults);
181_DEC_VK(vkCmdResetQueryPool);
182_DEC_VK(vkCmdWriteTimestamp);
183_DEC_VK(vkCmdBeginQuery);
184_DEC_VK(vkCmdEndQuery);
185
186_DEC_VK(vkCreateSemaphore);
187_DEC_VK(vkDestroySemaphore);
188
189// memory
190
191_DEC_VK(vkAllocateMemory);
192_DEC_VK(vkFreeMemory);
193_DEC_VK(vkMapMemory);
194_DEC_VK(vkUnmapMemory);
195_DEC_VK(vkFlushMappedMemoryRanges);
196_DEC_VK(vkInvalidateMappedMemoryRanges);
197
198_DEC_VK(vkGetBufferMemoryRequirements);
199_DEC_VK(vkGetImageMemoryRequirements);
200
201_DEC_VK(vkCreateBuffer);
202_DEC_VK(vkCreateBufferView);
203_DEC_VK(vkDestroyBuffer);
204_DEC_VK(vkBindBufferMemory);
205
206_DEC_VK(vkCreateImage);
207_DEC_VK(vkDestroyImage);
208_DEC_VK(vkBindImageMemory);
209_DEC_VK(vkCreateImageView);
210_DEC_VK(vkDestroyImageView);
211
212// raytracing
213_DEC_VK(vkCreateRayTracingPipelinesKHR);
214_DEC_VK(vkGetAccelerationStructureBuildSizesKHR);
215_DEC_VK(vkCreateAccelerationStructureKHR);
216_DEC_VK(vkDestroyAccelerationStructureKHR);
217_DEC_VK(vkBuildAccelerationStructuresKHR);
218_DEC_VK(vkGetAccelerationStructureDeviceAddressKHR);
219_DEC_VK(vkGetDeviceAccelerationStructureCompatibilityKHR);
220_DEC_VK(vkGetBufferDeviceAddress);
221_DEC_VK(vkCmdBuildAccelerationStructuresKHR);
222_DEC_VK(vkCmdTraceRaysKHR);
223_DEC_VK(vkGetRayTracingShaderGroupHandlesKHR);
224
225// mesh shaders
226_DEC_VK(vkCmdDrawMeshTasksEXT);
227
228// Nvidia
229_DEC_VK(vkCmdSetCheckpointNV);
230_DEC_VK(vkGetQueueCheckpointDataNV);
231
232#ifdef __cplusplus
233}
234#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