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