Improve Vulkan null driver
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / vkNullDriverImpl.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  */
4 VkResult createInstance (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance)
5 {
6         DE_UNREF(pAllocator);
7         VK_NULL_RETURN(*pInstance = reinterpret_cast<VkInstance>(new Instance(pCreateInfo)));
8 }
9
10 VkResult createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
11 {
12         DE_UNREF(pAllocator);
13         VK_NULL_RETURN(*pDevice = reinterpret_cast<VkDevice>(new Device(physicalDevice, pCreateInfo)));
14 }
15
16 VkResult allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory)
17 {
18         DE_UNREF(pAllocator);
19         VK_NULL_RETURN(*pMemory = VkDeviceMemory((deUint64)(deUintptr)new DeviceMemory(device, pAllocateInfo)));
20 }
21
22 VkResult createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
23 {
24         DE_UNREF(pAllocator);
25         VK_NULL_RETURN(*pFence = VkFence((deUint64)(deUintptr)new Fence(device, pCreateInfo)));
26 }
27
28 VkResult createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore)
29 {
30         DE_UNREF(pAllocator);
31         VK_NULL_RETURN(*pSemaphore = VkSemaphore((deUint64)(deUintptr)new Semaphore(device, pCreateInfo)));
32 }
33
34 VkResult createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent)
35 {
36         DE_UNREF(pAllocator);
37         VK_NULL_RETURN(*pEvent = VkEvent((deUint64)(deUintptr)new Event(device, pCreateInfo)));
38 }
39
40 VkResult createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool)
41 {
42         DE_UNREF(pAllocator);
43         VK_NULL_RETURN(*pQueryPool = VkQueryPool((deUint64)(deUintptr)new QueryPool(device, pCreateInfo)));
44 }
45
46 VkResult createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer)
47 {
48         DE_UNREF(pAllocator);
49         VK_NULL_RETURN(*pBuffer = VkBuffer((deUint64)(deUintptr)new Buffer(device, pCreateInfo)));
50 }
51
52 VkResult createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
53 {
54         DE_UNREF(pAllocator);
55         VK_NULL_RETURN(*pView = VkBufferView((deUint64)(deUintptr)new BufferView(device, pCreateInfo)));
56 }
57
58 VkResult createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)
59 {
60         DE_UNREF(pAllocator);
61         VK_NULL_RETURN(*pImage = VkImage((deUint64)(deUintptr)new Image(device, pCreateInfo)));
62 }
63
64 VkResult createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView)
65 {
66         DE_UNREF(pAllocator);
67         VK_NULL_RETURN(*pView = VkImageView((deUint64)(deUintptr)new ImageView(device, pCreateInfo)));
68 }
69
70 VkResult createShaderModule (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
71 {
72         DE_UNREF(pAllocator);
73         VK_NULL_RETURN(*pShaderModule = VkShaderModule((deUint64)(deUintptr)new ShaderModule(device, pCreateInfo)));
74 }
75
76 VkResult createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache)
77 {
78         DE_UNREF(pAllocator);
79         VK_NULL_RETURN(*pPipelineCache = VkPipelineCache((deUint64)(deUintptr)new PipelineCache(device, pCreateInfo)));
80 }
81
82 VkResult createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout)
83 {
84         DE_UNREF(pAllocator);
85         VK_NULL_RETURN(*pPipelineLayout = VkPipelineLayout((deUint64)(deUintptr)new PipelineLayout(device, pCreateInfo)));
86 }
87
88 VkResult createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler)
89 {
90         DE_UNREF(pAllocator);
91         VK_NULL_RETURN(*pSampler = VkSampler((deUint64)(deUintptr)new Sampler(device, pCreateInfo)));
92 }
93
94 VkResult createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout)
95 {
96         DE_UNREF(pAllocator);
97         VK_NULL_RETURN(*pSetLayout = VkDescriptorSetLayout((deUint64)(deUintptr)new DescriptorSetLayout(device, pCreateInfo)));
98 }
99
100 VkResult createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)
101 {
102         DE_UNREF(pAllocator);
103         VK_NULL_RETURN(*pDescriptorPool = VkDescriptorPool((deUint64)(deUintptr)new DescriptorPool(device, pCreateInfo)));
104 }
105
106 VkResult createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
107 {
108         DE_UNREF(pAllocator);
109         VK_NULL_RETURN(*pFramebuffer = VkFramebuffer((deUint64)(deUintptr)new Framebuffer(device, pCreateInfo)));
110 }
111
112 VkResult createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass)
113 {
114         DE_UNREF(pAllocator);
115         VK_NULL_RETURN(*pRenderPass = VkRenderPass((deUint64)(deUintptr)new RenderPass(device, pCreateInfo)));
116 }
117
118 VkResult createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)
119 {
120         DE_UNREF(pAllocator);
121         VK_NULL_RETURN(*pCommandPool = VkCommandPool((deUint64)(deUintptr)new CommandPool(device, pCreateInfo)));
122 }
123
124 void destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator)
125 {
126         DE_UNREF(pAllocator);
127         delete reinterpret_cast<Instance*>(instance);
128 }
129
130 void destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator)
131 {
132         DE_UNREF(pAllocator);
133         delete reinterpret_cast<Device*>(device);
134 }
135
136 void freeMemory (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator)
137 {
138         DE_UNREF(device);
139         DE_UNREF(pAllocator);
140         delete reinterpret_cast<DeviceMemory*>((deUintptr)memory.getInternal());
141 }
142
143 void destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator)
144 {
145         DE_UNREF(device);
146         DE_UNREF(pAllocator);
147         delete reinterpret_cast<Fence*>((deUintptr)fence.getInternal());
148 }
149
150 void destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator)
151 {
152         DE_UNREF(device);
153         DE_UNREF(pAllocator);
154         delete reinterpret_cast<Semaphore*>((deUintptr)semaphore.getInternal());
155 }
156
157 void destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator)
158 {
159         DE_UNREF(device);
160         DE_UNREF(pAllocator);
161         delete reinterpret_cast<Event*>((deUintptr)event.getInternal());
162 }
163
164 void destroyQueryPool (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator)
165 {
166         DE_UNREF(device);
167         DE_UNREF(pAllocator);
168         delete reinterpret_cast<QueryPool*>((deUintptr)queryPool.getInternal());
169 }
170
171 void destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator)
172 {
173         DE_UNREF(device);
174         DE_UNREF(pAllocator);
175         delete reinterpret_cast<Buffer*>((deUintptr)buffer.getInternal());
176 }
177
178 void destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
179 {
180         DE_UNREF(device);
181         DE_UNREF(pAllocator);
182         delete reinterpret_cast<BufferView*>((deUintptr)bufferView.getInternal());
183 }
184
185 void destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)
186 {
187         DE_UNREF(device);
188         DE_UNREF(pAllocator);
189         delete reinterpret_cast<Image*>((deUintptr)image.getInternal());
190 }
191
192 void destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator)
193 {
194         DE_UNREF(device);
195         DE_UNREF(pAllocator);
196         delete reinterpret_cast<ImageView*>((deUintptr)imageView.getInternal());
197 }
198
199 void destroyShaderModule (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
200 {
201         DE_UNREF(device);
202         DE_UNREF(pAllocator);
203         delete reinterpret_cast<ShaderModule*>((deUintptr)shaderModule.getInternal());
204 }
205
206 void destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator)
207 {
208         DE_UNREF(device);
209         DE_UNREF(pAllocator);
210         delete reinterpret_cast<PipelineCache*>((deUintptr)pipelineCache.getInternal());
211 }
212
213 void destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator)
214 {
215         DE_UNREF(device);
216         DE_UNREF(pAllocator);
217         delete reinterpret_cast<Pipeline*>((deUintptr)pipeline.getInternal());
218 }
219
220 void destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator)
221 {
222         DE_UNREF(device);
223         DE_UNREF(pAllocator);
224         delete reinterpret_cast<PipelineLayout*>((deUintptr)pipelineLayout.getInternal());
225 }
226
227 void destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator)
228 {
229         DE_UNREF(device);
230         DE_UNREF(pAllocator);
231         delete reinterpret_cast<Sampler*>((deUintptr)sampler.getInternal());
232 }
233
234 void destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator)
235 {
236         DE_UNREF(device);
237         DE_UNREF(pAllocator);
238         delete reinterpret_cast<DescriptorSetLayout*>((deUintptr)descriptorSetLayout.getInternal());
239 }
240
241 void destroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)
242 {
243         DE_UNREF(device);
244         DE_UNREF(pAllocator);
245         delete reinterpret_cast<DescriptorPool*>((deUintptr)descriptorPool.getInternal());
246 }
247
248 void destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
249 {
250         DE_UNREF(device);
251         DE_UNREF(pAllocator);
252         delete reinterpret_cast<Framebuffer*>((deUintptr)framebuffer.getInternal());
253 }
254
255 void destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator)
256 {
257         DE_UNREF(device);
258         DE_UNREF(pAllocator);
259         delete reinterpret_cast<RenderPass*>((deUintptr)renderPass.getInternal());
260 }
261
262 void destroyCommandPool (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)
263 {
264         DE_UNREF(device);
265         DE_UNREF(pAllocator);
266         delete reinterpret_cast<CommandPool*>((deUintptr)commandPool.getInternal());
267 }
268
269 void getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures)
270 {
271         DE_UNREF(physicalDevice);
272         DE_UNREF(pFeatures);
273 }
274
275 VkResult getPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties)
276 {
277         DE_UNREF(physicalDevice);
278         DE_UNREF(format);
279         DE_UNREF(type);
280         DE_UNREF(tiling);
281         DE_UNREF(usage);
282         DE_UNREF(flags);
283         DE_UNREF(pImageFormatProperties);
284         return VK_SUCCESS;
285 }
286
287 VkResult enumerateInstanceExtensionProperties (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties)
288 {
289         DE_UNREF(pLayerName);
290         DE_UNREF(pPropertyCount);
291         DE_UNREF(pProperties);
292         return VK_SUCCESS;
293 }
294
295 VkResult enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties)
296 {
297         DE_UNREF(physicalDevice);
298         DE_UNREF(pLayerName);
299         DE_UNREF(pPropertyCount);
300         DE_UNREF(pProperties);
301         return VK_SUCCESS;
302 }
303
304 VkResult enumerateInstanceLayerProperties (deUint32* pPropertyCount, VkLayerProperties* pProperties)
305 {
306         DE_UNREF(pPropertyCount);
307         DE_UNREF(pProperties);
308         return VK_SUCCESS;
309 }
310
311 VkResult enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties)
312 {
313         DE_UNREF(physicalDevice);
314         DE_UNREF(pPropertyCount);
315         DE_UNREF(pProperties);
316         return VK_SUCCESS;
317 }
318
319 void getDeviceQueue (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue)
320 {
321         DE_UNREF(device);
322         DE_UNREF(queueFamilyIndex);
323         DE_UNREF(queueIndex);
324         DE_UNREF(pQueue);
325 }
326
327 VkResult queueSubmit (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence)
328 {
329         DE_UNREF(queue);
330         DE_UNREF(submitCount);
331         DE_UNREF(pSubmits);
332         DE_UNREF(fence);
333         return VK_SUCCESS;
334 }
335
336 VkResult queueWaitIdle (VkQueue queue)
337 {
338         DE_UNREF(queue);
339         return VK_SUCCESS;
340 }
341
342 VkResult deviceWaitIdle (VkDevice device)
343 {
344         DE_UNREF(device);
345         return VK_SUCCESS;
346 }
347
348 void unmapMemory (VkDevice device, VkDeviceMemory memory)
349 {
350         DE_UNREF(device);
351         DE_UNREF(memory);
352 }
353
354 VkResult flushMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges)
355 {
356         DE_UNREF(device);
357         DE_UNREF(memoryRangeCount);
358         DE_UNREF(pMemoryRanges);
359         return VK_SUCCESS;
360 }
361
362 VkResult invalidateMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges)
363 {
364         DE_UNREF(device);
365         DE_UNREF(memoryRangeCount);
366         DE_UNREF(pMemoryRanges);
367         return VK_SUCCESS;
368 }
369
370 void getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes)
371 {
372         DE_UNREF(device);
373         DE_UNREF(memory);
374         DE_UNREF(pCommittedMemoryInBytes);
375 }
376
377 VkResult bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)
378 {
379         DE_UNREF(device);
380         DE_UNREF(buffer);
381         DE_UNREF(memory);
382         DE_UNREF(memoryOffset);
383         return VK_SUCCESS;
384 }
385
386 VkResult bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)
387 {
388         DE_UNREF(device);
389         DE_UNREF(image);
390         DE_UNREF(memory);
391         DE_UNREF(memoryOffset);
392         return VK_SUCCESS;
393 }
394
395 void getImageSparseMemoryRequirements (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
396 {
397         DE_UNREF(device);
398         DE_UNREF(image);
399         DE_UNREF(pSparseMemoryRequirementCount);
400         DE_UNREF(pSparseMemoryRequirements);
401 }
402
403 void getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties)
404 {
405         DE_UNREF(physicalDevice);
406         DE_UNREF(format);
407         DE_UNREF(type);
408         DE_UNREF(samples);
409         DE_UNREF(usage);
410         DE_UNREF(tiling);
411         DE_UNREF(pPropertyCount);
412         DE_UNREF(pProperties);
413 }
414
415 VkResult queueBindSparse (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence)
416 {
417         DE_UNREF(queue);
418         DE_UNREF(bindInfoCount);
419         DE_UNREF(pBindInfo);
420         DE_UNREF(fence);
421         return VK_SUCCESS;
422 }
423
424 VkResult resetFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences)
425 {
426         DE_UNREF(device);
427         DE_UNREF(fenceCount);
428         DE_UNREF(pFences);
429         return VK_SUCCESS;
430 }
431
432 VkResult getFenceStatus (VkDevice device, VkFence fence)
433 {
434         DE_UNREF(device);
435         DE_UNREF(fence);
436         return VK_SUCCESS;
437 }
438
439 VkResult waitForFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout)
440 {
441         DE_UNREF(device);
442         DE_UNREF(fenceCount);
443         DE_UNREF(pFences);
444         DE_UNREF(waitAll);
445         DE_UNREF(timeout);
446         return VK_SUCCESS;
447 }
448
449 VkResult getEventStatus (VkDevice device, VkEvent event)
450 {
451         DE_UNREF(device);
452         DE_UNREF(event);
453         return VK_SUCCESS;
454 }
455
456 VkResult setEvent (VkDevice device, VkEvent event)
457 {
458         DE_UNREF(device);
459         DE_UNREF(event);
460         return VK_SUCCESS;
461 }
462
463 VkResult resetEvent (VkDevice device, VkEvent event)
464 {
465         DE_UNREF(device);
466         DE_UNREF(event);
467         return VK_SUCCESS;
468 }
469
470 VkResult getQueryPoolResults (VkDevice device, VkQueryPool queryPool, deUint32 startQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags)
471 {
472         DE_UNREF(device);
473         DE_UNREF(queryPool);
474         DE_UNREF(startQuery);
475         DE_UNREF(queryCount);
476         DE_UNREF(dataSize);
477         DE_UNREF(pData);
478         DE_UNREF(stride);
479         DE_UNREF(flags);
480         return VK_SUCCESS;
481 }
482
483 void getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)
484 {
485         DE_UNREF(device);
486         DE_UNREF(image);
487         DE_UNREF(pSubresource);
488         DE_UNREF(pLayout);
489 }
490
491 VkResult getPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData)
492 {
493         DE_UNREF(device);
494         DE_UNREF(pipelineCache);
495         DE_UNREF(pDataSize);
496         DE_UNREF(pData);
497         return VK_SUCCESS;
498 }
499
500 VkResult mergePipelineCaches (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches)
501 {
502         DE_UNREF(device);
503         DE_UNREF(dstCache);
504         DE_UNREF(srcCacheCount);
505         DE_UNREF(pSrcCaches);
506         return VK_SUCCESS;
507 }
508
509 void updateDescriptorSets (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies)
510 {
511         DE_UNREF(device);
512         DE_UNREF(descriptorWriteCount);
513         DE_UNREF(pDescriptorWrites);
514         DE_UNREF(descriptorCopyCount);
515         DE_UNREF(pDescriptorCopies);
516 }
517
518 void getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity)
519 {
520         DE_UNREF(device);
521         DE_UNREF(renderPass);
522         DE_UNREF(pGranularity);
523 }
524
525 VkResult resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)
526 {
527         DE_UNREF(device);
528         DE_UNREF(commandPool);
529         DE_UNREF(flags);
530         return VK_SUCCESS;
531 }
532
533 VkResult beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo)
534 {
535         DE_UNREF(commandBuffer);
536         DE_UNREF(pBeginInfo);
537         return VK_SUCCESS;
538 }
539
540 VkResult endCommandBuffer (VkCommandBuffer commandBuffer)
541 {
542         DE_UNREF(commandBuffer);
543         return VK_SUCCESS;
544 }
545
546 VkResult resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags)
547 {
548         DE_UNREF(commandBuffer);
549         DE_UNREF(flags);
550         return VK_SUCCESS;
551 }
552
553 void cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline)
554 {
555         DE_UNREF(commandBuffer);
556         DE_UNREF(pipelineBindPoint);
557         DE_UNREF(pipeline);
558 }
559
560 void cmdSetViewport (VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports)
561 {
562         DE_UNREF(commandBuffer);
563         DE_UNREF(viewportCount);
564         DE_UNREF(pViewports);
565 }
566
567 void cmdSetScissor (VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors)
568 {
569         DE_UNREF(commandBuffer);
570         DE_UNREF(scissorCount);
571         DE_UNREF(pScissors);
572 }
573
574 void cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth)
575 {
576         DE_UNREF(commandBuffer);
577         DE_UNREF(lineWidth);
578 }
579
580 void cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor)
581 {
582         DE_UNREF(commandBuffer);
583         DE_UNREF(depthBiasConstantFactor);
584         DE_UNREF(depthBiasClamp);
585         DE_UNREF(depthBiasSlopeFactor);
586 }
587
588 void cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4])
589 {
590         DE_UNREF(commandBuffer);
591         DE_UNREF(blendConstants);
592 }
593
594 void cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds)
595 {
596         DE_UNREF(commandBuffer);
597         DE_UNREF(minDepthBounds);
598         DE_UNREF(maxDepthBounds);
599 }
600
601 void cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask)
602 {
603         DE_UNREF(commandBuffer);
604         DE_UNREF(faceMask);
605         DE_UNREF(compareMask);
606 }
607
608 void cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask)
609 {
610         DE_UNREF(commandBuffer);
611         DE_UNREF(faceMask);
612         DE_UNREF(writeMask);
613 }
614
615 void cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference)
616 {
617         DE_UNREF(commandBuffer);
618         DE_UNREF(faceMask);
619         DE_UNREF(reference);
620 }
621
622 void cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets)
623 {
624         DE_UNREF(commandBuffer);
625         DE_UNREF(pipelineBindPoint);
626         DE_UNREF(layout);
627         DE_UNREF(firstSet);
628         DE_UNREF(descriptorSetCount);
629         DE_UNREF(pDescriptorSets);
630         DE_UNREF(dynamicOffsetCount);
631         DE_UNREF(pDynamicOffsets);
632 }
633
634 void cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType)
635 {
636         DE_UNREF(commandBuffer);
637         DE_UNREF(buffer);
638         DE_UNREF(offset);
639         DE_UNREF(indexType);
640 }
641
642 void cmdBindVertexBuffers (VkCommandBuffer commandBuffer, deUint32 startBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets)
643 {
644         DE_UNREF(commandBuffer);
645         DE_UNREF(startBinding);
646         DE_UNREF(bindingCount);
647         DE_UNREF(pBuffers);
648         DE_UNREF(pOffsets);
649 }
650
651 void cmdDraw (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance)
652 {
653         DE_UNREF(commandBuffer);
654         DE_UNREF(vertexCount);
655         DE_UNREF(instanceCount);
656         DE_UNREF(firstVertex);
657         DE_UNREF(firstInstance);
658 }
659
660 void cmdDrawIndexed (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance)
661 {
662         DE_UNREF(commandBuffer);
663         DE_UNREF(indexCount);
664         DE_UNREF(instanceCount);
665         DE_UNREF(firstIndex);
666         DE_UNREF(vertexOffset);
667         DE_UNREF(firstInstance);
668 }
669
670 void cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride)
671 {
672         DE_UNREF(commandBuffer);
673         DE_UNREF(buffer);
674         DE_UNREF(offset);
675         DE_UNREF(drawCount);
676         DE_UNREF(stride);
677 }
678
679 void cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride)
680 {
681         DE_UNREF(commandBuffer);
682         DE_UNREF(buffer);
683         DE_UNREF(offset);
684         DE_UNREF(drawCount);
685         DE_UNREF(stride);
686 }
687
688 void cmdDispatch (VkCommandBuffer commandBuffer, deUint32 x, deUint32 y, deUint32 z)
689 {
690         DE_UNREF(commandBuffer);
691         DE_UNREF(x);
692         DE_UNREF(y);
693         DE_UNREF(z);
694 }
695
696 void cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset)
697 {
698         DE_UNREF(commandBuffer);
699         DE_UNREF(buffer);
700         DE_UNREF(offset);
701 }
702
703 void cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions)
704 {
705         DE_UNREF(commandBuffer);
706         DE_UNREF(srcBuffer);
707         DE_UNREF(dstBuffer);
708         DE_UNREF(regionCount);
709         DE_UNREF(pRegions);
710 }
711
712 void cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions)
713 {
714         DE_UNREF(commandBuffer);
715         DE_UNREF(srcImage);
716         DE_UNREF(srcImageLayout);
717         DE_UNREF(dstImage);
718         DE_UNREF(dstImageLayout);
719         DE_UNREF(regionCount);
720         DE_UNREF(pRegions);
721 }
722
723 void cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter)
724 {
725         DE_UNREF(commandBuffer);
726         DE_UNREF(srcImage);
727         DE_UNREF(srcImageLayout);
728         DE_UNREF(dstImage);
729         DE_UNREF(dstImageLayout);
730         DE_UNREF(regionCount);
731         DE_UNREF(pRegions);
732         DE_UNREF(filter);
733 }
734
735 void cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions)
736 {
737         DE_UNREF(commandBuffer);
738         DE_UNREF(srcBuffer);
739         DE_UNREF(dstImage);
740         DE_UNREF(dstImageLayout);
741         DE_UNREF(regionCount);
742         DE_UNREF(pRegions);
743 }
744
745 void cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions)
746 {
747         DE_UNREF(commandBuffer);
748         DE_UNREF(srcImage);
749         DE_UNREF(srcImageLayout);
750         DE_UNREF(dstBuffer);
751         DE_UNREF(regionCount);
752         DE_UNREF(pRegions);
753 }
754
755 void cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const deUint32* pData)
756 {
757         DE_UNREF(commandBuffer);
758         DE_UNREF(dstBuffer);
759         DE_UNREF(dstOffset);
760         DE_UNREF(dataSize);
761         DE_UNREF(pData);
762 }
763
764 void cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data)
765 {
766         DE_UNREF(commandBuffer);
767         DE_UNREF(dstBuffer);
768         DE_UNREF(dstOffset);
769         DE_UNREF(size);
770         DE_UNREF(data);
771 }
772
773 void cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges)
774 {
775         DE_UNREF(commandBuffer);
776         DE_UNREF(image);
777         DE_UNREF(imageLayout);
778         DE_UNREF(pColor);
779         DE_UNREF(rangeCount);
780         DE_UNREF(pRanges);
781 }
782
783 void cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges)
784 {
785         DE_UNREF(commandBuffer);
786         DE_UNREF(image);
787         DE_UNREF(imageLayout);
788         DE_UNREF(pDepthStencil);
789         DE_UNREF(rangeCount);
790         DE_UNREF(pRanges);
791 }
792
793 void cmdClearAttachments (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects)
794 {
795         DE_UNREF(commandBuffer);
796         DE_UNREF(attachmentCount);
797         DE_UNREF(pAttachments);
798         DE_UNREF(rectCount);
799         DE_UNREF(pRects);
800 }
801
802 void cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions)
803 {
804         DE_UNREF(commandBuffer);
805         DE_UNREF(srcImage);
806         DE_UNREF(srcImageLayout);
807         DE_UNREF(dstImage);
808         DE_UNREF(dstImageLayout);
809         DE_UNREF(regionCount);
810         DE_UNREF(pRegions);
811 }
812
813 void cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask)
814 {
815         DE_UNREF(commandBuffer);
816         DE_UNREF(event);
817         DE_UNREF(stageMask);
818 }
819
820 void cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask)
821 {
822         DE_UNREF(commandBuffer);
823         DE_UNREF(event);
824         DE_UNREF(stageMask);
825 }
826
827 void cmdWaitEvents (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const void* const* ppMemoryBarriers)
828 {
829         DE_UNREF(commandBuffer);
830         DE_UNREF(eventCount);
831         DE_UNREF(pEvents);
832         DE_UNREF(srcStageMask);
833         DE_UNREF(dstStageMask);
834         DE_UNREF(memoryBarrierCount);
835         DE_UNREF(ppMemoryBarriers);
836 }
837
838 void cmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const void* const* ppMemoryBarriers)
839 {
840         DE_UNREF(commandBuffer);
841         DE_UNREF(srcStageMask);
842         DE_UNREF(dstStageMask);
843         DE_UNREF(dependencyFlags);
844         DE_UNREF(memoryBarrierCount);
845         DE_UNREF(ppMemoryBarriers);
846 }
847
848 void cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 entry, VkQueryControlFlags flags)
849 {
850         DE_UNREF(commandBuffer);
851         DE_UNREF(queryPool);
852         DE_UNREF(entry);
853         DE_UNREF(flags);
854 }
855
856 void cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 entry)
857 {
858         DE_UNREF(commandBuffer);
859         DE_UNREF(queryPool);
860         DE_UNREF(entry);
861 }
862
863 void cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 startQuery, deUint32 queryCount)
864 {
865         DE_UNREF(commandBuffer);
866         DE_UNREF(queryPool);
867         DE_UNREF(startQuery);
868         DE_UNREF(queryCount);
869 }
870
871 void cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 entry)
872 {
873         DE_UNREF(commandBuffer);
874         DE_UNREF(pipelineStage);
875         DE_UNREF(queryPool);
876         DE_UNREF(entry);
877 }
878
879 void cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 startQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags)
880 {
881         DE_UNREF(commandBuffer);
882         DE_UNREF(queryPool);
883         DE_UNREF(startQuery);
884         DE_UNREF(queryCount);
885         DE_UNREF(dstBuffer);
886         DE_UNREF(dstOffset);
887         DE_UNREF(stride);
888         DE_UNREF(flags);
889 }
890
891 void cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues)
892 {
893         DE_UNREF(commandBuffer);
894         DE_UNREF(layout);
895         DE_UNREF(stageFlags);
896         DE_UNREF(offset);
897         DE_UNREF(size);
898         DE_UNREF(pValues);
899 }
900
901 void cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents)
902 {
903         DE_UNREF(commandBuffer);
904         DE_UNREF(pRenderPassBegin);
905         DE_UNREF(contents);
906 }
907
908 void cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents)
909 {
910         DE_UNREF(commandBuffer);
911         DE_UNREF(contents);
912 }
913
914 void cmdEndRenderPass (VkCommandBuffer commandBuffer)
915 {
916         DE_UNREF(commandBuffer);
917 }
918
919 void cmdExecuteCommands (VkCommandBuffer commandBuffer, deUint32 commandBuffersCount, const VkCommandBuffer* pCommandBuffers)
920 {
921         DE_UNREF(commandBuffer);
922         DE_UNREF(commandBuffersCount);
923         DE_UNREF(pCommandBuffers);
924 }
925
926 static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
927 {
928         VK_NULL_FUNC_ENTRY(vkCreateInstance,                                            createInstance),
929         VK_NULL_FUNC_ENTRY(vkGetInstanceProcAddr,                                       getInstanceProcAddr),
930         VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,      enumerateInstanceExtensionProperties),
931         VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,          enumerateInstanceLayerProperties),
932 };
933
934 static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
935 {
936         VK_NULL_FUNC_ENTRY(vkDestroyInstance,                                                   destroyInstance),
937         VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices,                                  enumeratePhysicalDevices),
938         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures,                                 getPhysicalDeviceFeatures),
939         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties,                 getPhysicalDeviceFormatProperties),
940         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties,    getPhysicalDeviceImageFormatProperties),
941         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties,                               getPhysicalDeviceProperties),
942         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties,    getPhysicalDeviceQueueFamilyProperties),
943         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties,                 getPhysicalDeviceMemoryProperties),
944         VK_NULL_FUNC_ENTRY(vkGetDeviceProcAddr,                                                 getDeviceProcAddr),
945         VK_NULL_FUNC_ENTRY(vkCreateDevice,                                                              createDevice),
946         VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                enumerateDeviceExtensionProperties),
947         VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties,                    enumerateDeviceLayerProperties),
948 };
949
950 static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
951 {
952         VK_NULL_FUNC_ENTRY(vkDestroyDevice,                                                                     destroyDevice),
953         VK_NULL_FUNC_ENTRY(vkGetDeviceQueue,                                                            getDeviceQueue),
954         VK_NULL_FUNC_ENTRY(vkQueueSubmit,                                                                       queueSubmit),
955         VK_NULL_FUNC_ENTRY(vkQueueWaitIdle,                                                                     queueWaitIdle),
956         VK_NULL_FUNC_ENTRY(vkDeviceWaitIdle,                                                            deviceWaitIdle),
957         VK_NULL_FUNC_ENTRY(vkAllocateMemory,                                                            allocateMemory),
958         VK_NULL_FUNC_ENTRY(vkFreeMemory,                                                                        freeMemory),
959         VK_NULL_FUNC_ENTRY(vkMapMemory,                                                                         mapMemory),
960         VK_NULL_FUNC_ENTRY(vkUnmapMemory,                                                                       unmapMemory),
961         VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges,                                           flushMappedMemoryRanges),
962         VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges,                                      invalidateMappedMemoryRanges),
963         VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment,                                         getDeviceMemoryCommitment),
964         VK_NULL_FUNC_ENTRY(vkBindBufferMemory,                                                          bindBufferMemory),
965         VK_NULL_FUNC_ENTRY(vkBindImageMemory,                                                           bindImageMemory),
966         VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements,                                       getBufferMemoryRequirements),
967         VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements,                                        getImageMemoryRequirements),
968         VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements,                          getImageSparseMemoryRequirements),
969         VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties,      getPhysicalDeviceSparseImageFormatProperties),
970         VK_NULL_FUNC_ENTRY(vkQueueBindSparse,                                                           queueBindSparse),
971         VK_NULL_FUNC_ENTRY(vkCreateFence,                                                                       createFence),
972         VK_NULL_FUNC_ENTRY(vkDestroyFence,                                                                      destroyFence),
973         VK_NULL_FUNC_ENTRY(vkResetFences,                                                                       resetFences),
974         VK_NULL_FUNC_ENTRY(vkGetFenceStatus,                                                            getFenceStatus),
975         VK_NULL_FUNC_ENTRY(vkWaitForFences,                                                                     waitForFences),
976         VK_NULL_FUNC_ENTRY(vkCreateSemaphore,                                                           createSemaphore),
977         VK_NULL_FUNC_ENTRY(vkDestroySemaphore,                                                          destroySemaphore),
978         VK_NULL_FUNC_ENTRY(vkCreateEvent,                                                                       createEvent),
979         VK_NULL_FUNC_ENTRY(vkDestroyEvent,                                                                      destroyEvent),
980         VK_NULL_FUNC_ENTRY(vkGetEventStatus,                                                            getEventStatus),
981         VK_NULL_FUNC_ENTRY(vkSetEvent,                                                                          setEvent),
982         VK_NULL_FUNC_ENTRY(vkResetEvent,                                                                        resetEvent),
983         VK_NULL_FUNC_ENTRY(vkCreateQueryPool,                                                           createQueryPool),
984         VK_NULL_FUNC_ENTRY(vkDestroyQueryPool,                                                          destroyQueryPool),
985         VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults,                                                       getQueryPoolResults),
986         VK_NULL_FUNC_ENTRY(vkCreateBuffer,                                                                      createBuffer),
987         VK_NULL_FUNC_ENTRY(vkDestroyBuffer,                                                                     destroyBuffer),
988         VK_NULL_FUNC_ENTRY(vkCreateBufferView,                                                          createBufferView),
989         VK_NULL_FUNC_ENTRY(vkDestroyBufferView,                                                         destroyBufferView),
990         VK_NULL_FUNC_ENTRY(vkCreateImage,                                                                       createImage),
991         VK_NULL_FUNC_ENTRY(vkDestroyImage,                                                                      destroyImage),
992         VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout,                                         getImageSubresourceLayout),
993         VK_NULL_FUNC_ENTRY(vkCreateImageView,                                                           createImageView),
994         VK_NULL_FUNC_ENTRY(vkDestroyImageView,                                                          destroyImageView),
995         VK_NULL_FUNC_ENTRY(vkCreateShaderModule,                                                        createShaderModule),
996         VK_NULL_FUNC_ENTRY(vkDestroyShaderModule,                                                       destroyShaderModule),
997         VK_NULL_FUNC_ENTRY(vkCreatePipelineCache,                                                       createPipelineCache),
998         VK_NULL_FUNC_ENTRY(vkDestroyPipelineCache,                                                      destroyPipelineCache),
999         VK_NULL_FUNC_ENTRY(vkGetPipelineCacheData,                                                      getPipelineCacheData),
1000         VK_NULL_FUNC_ENTRY(vkMergePipelineCaches,                                                       mergePipelineCaches),
1001         VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines,                                           createGraphicsPipelines),
1002         VK_NULL_FUNC_ENTRY(vkCreateComputePipelines,                                            createComputePipelines),
1003         VK_NULL_FUNC_ENTRY(vkDestroyPipeline,                                                           destroyPipeline),
1004         VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout,                                                      createPipelineLayout),
1005         VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout,                                                     destroyPipelineLayout),
1006         VK_NULL_FUNC_ENTRY(vkCreateSampler,                                                                     createSampler),
1007         VK_NULL_FUNC_ENTRY(vkDestroySampler,                                                            destroySampler),
1008         VK_NULL_FUNC_ENTRY(vkCreateDescriptorSetLayout,                                         createDescriptorSetLayout),
1009         VK_NULL_FUNC_ENTRY(vkDestroyDescriptorSetLayout,                                        destroyDescriptorSetLayout),
1010         VK_NULL_FUNC_ENTRY(vkCreateDescriptorPool,                                                      createDescriptorPool),
1011         VK_NULL_FUNC_ENTRY(vkDestroyDescriptorPool,                                                     destroyDescriptorPool),
1012         VK_NULL_FUNC_ENTRY(vkResetDescriptorPool,                                                       resetDescriptorPool),
1013         VK_NULL_FUNC_ENTRY(vkAllocateDescriptorSets,                                            allocateDescriptorSets),
1014         VK_NULL_FUNC_ENTRY(vkFreeDescriptorSets,                                                        freeDescriptorSets),
1015         VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSets,                                                      updateDescriptorSets),
1016         VK_NULL_FUNC_ENTRY(vkCreateFramebuffer,                                                         createFramebuffer),
1017         VK_NULL_FUNC_ENTRY(vkDestroyFramebuffer,                                                        destroyFramebuffer),
1018         VK_NULL_FUNC_ENTRY(vkCreateRenderPass,                                                          createRenderPass),
1019         VK_NULL_FUNC_ENTRY(vkDestroyRenderPass,                                                         destroyRenderPass),
1020         VK_NULL_FUNC_ENTRY(vkGetRenderAreaGranularity,                                          getRenderAreaGranularity),
1021         VK_NULL_FUNC_ENTRY(vkCreateCommandPool,                                                         createCommandPool),
1022         VK_NULL_FUNC_ENTRY(vkDestroyCommandPool,                                                        destroyCommandPool),
1023         VK_NULL_FUNC_ENTRY(vkResetCommandPool,                                                          resetCommandPool),
1024         VK_NULL_FUNC_ENTRY(vkAllocateCommandBuffers,                                            allocateCommandBuffers),
1025         VK_NULL_FUNC_ENTRY(vkFreeCommandBuffers,                                                        freeCommandBuffers),
1026         VK_NULL_FUNC_ENTRY(vkBeginCommandBuffer,                                                        beginCommandBuffer),
1027         VK_NULL_FUNC_ENTRY(vkEndCommandBuffer,                                                          endCommandBuffer),
1028         VK_NULL_FUNC_ENTRY(vkResetCommandBuffer,                                                        resetCommandBuffer),
1029         VK_NULL_FUNC_ENTRY(vkCmdBindPipeline,                                                           cmdBindPipeline),
1030         VK_NULL_FUNC_ENTRY(vkCmdSetViewport,                                                            cmdSetViewport),
1031         VK_NULL_FUNC_ENTRY(vkCmdSetScissor,                                                                     cmdSetScissor),
1032         VK_NULL_FUNC_ENTRY(vkCmdSetLineWidth,                                                           cmdSetLineWidth),
1033         VK_NULL_FUNC_ENTRY(vkCmdSetDepthBias,                                                           cmdSetDepthBias),
1034         VK_NULL_FUNC_ENTRY(vkCmdSetBlendConstants,                                                      cmdSetBlendConstants),
1035         VK_NULL_FUNC_ENTRY(vkCmdSetDepthBounds,                                                         cmdSetDepthBounds),
1036         VK_NULL_FUNC_ENTRY(vkCmdSetStencilCompareMask,                                          cmdSetStencilCompareMask),
1037         VK_NULL_FUNC_ENTRY(vkCmdSetStencilWriteMask,                                            cmdSetStencilWriteMask),
1038         VK_NULL_FUNC_ENTRY(vkCmdSetStencilReference,                                            cmdSetStencilReference),
1039         VK_NULL_FUNC_ENTRY(vkCmdBindDescriptorSets,                                                     cmdBindDescriptorSets),
1040         VK_NULL_FUNC_ENTRY(vkCmdBindIndexBuffer,                                                        cmdBindIndexBuffer),
1041         VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers,                                                      cmdBindVertexBuffers),
1042         VK_NULL_FUNC_ENTRY(vkCmdDraw,                                                                           cmdDraw),
1043         VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed,                                                            cmdDrawIndexed),
1044         VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect,                                                           cmdDrawIndirect),
1045         VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect,                                            cmdDrawIndexedIndirect),
1046         VK_NULL_FUNC_ENTRY(vkCmdDispatch,                                                                       cmdDispatch),
1047         VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect,                                                       cmdDispatchIndirect),
1048         VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer,                                                                     cmdCopyBuffer),
1049         VK_NULL_FUNC_ENTRY(vkCmdCopyImage,                                                                      cmdCopyImage),
1050         VK_NULL_FUNC_ENTRY(vkCmdBlitImage,                                                                      cmdBlitImage),
1051         VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage,                                                      cmdCopyBufferToImage),
1052         VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer,                                                      cmdCopyImageToBuffer),
1053         VK_NULL_FUNC_ENTRY(vkCmdUpdateBuffer,                                                           cmdUpdateBuffer),
1054         VK_NULL_FUNC_ENTRY(vkCmdFillBuffer,                                                                     cmdFillBuffer),
1055         VK_NULL_FUNC_ENTRY(vkCmdClearColorImage,                                                        cmdClearColorImage),
1056         VK_NULL_FUNC_ENTRY(vkCmdClearDepthStencilImage,                                         cmdClearDepthStencilImage),
1057         VK_NULL_FUNC_ENTRY(vkCmdClearAttachments,                                                       cmdClearAttachments),
1058         VK_NULL_FUNC_ENTRY(vkCmdResolveImage,                                                           cmdResolveImage),
1059         VK_NULL_FUNC_ENTRY(vkCmdSetEvent,                                                                       cmdSetEvent),
1060         VK_NULL_FUNC_ENTRY(vkCmdResetEvent,                                                                     cmdResetEvent),
1061         VK_NULL_FUNC_ENTRY(vkCmdWaitEvents,                                                                     cmdWaitEvents),
1062         VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier,                                                        cmdPipelineBarrier),
1063         VK_NULL_FUNC_ENTRY(vkCmdBeginQuery,                                                                     cmdBeginQuery),
1064         VK_NULL_FUNC_ENTRY(vkCmdEndQuery,                                                                       cmdEndQuery),
1065         VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool,                                                         cmdResetQueryPool),
1066         VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp,                                                         cmdWriteTimestamp),
1067         VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults,                                           cmdCopyQueryPoolResults),
1068         VK_NULL_FUNC_ENTRY(vkCmdPushConstants,                                                          cmdPushConstants),
1069         VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass,                                                        cmdBeginRenderPass),
1070         VK_NULL_FUNC_ENTRY(vkCmdNextSubpass,                                                            cmdNextSubpass),
1071         VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass,                                                          cmdEndRenderPass),
1072         VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands,                                                        cmdExecuteCommands),
1073 };
1074