blob: 0dec1b663b6b34923acbfed5fa270b4b413079fc [file] [log] [blame]
Lingfeng Yang6a283672018-11-01 13:37:56 -07001// Copyright (C) 2018 The Android Open Source Project
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -07002// Copyright (C) 2018 Google Inc.
Lingfeng Yang6a283672018-11-01 13:37:56 -07003//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070016// Autogenerated module VkEncoder
17// (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
Lingfeng Yang6a283672018-11-01 13:37:56 -070025#pragma once
26
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070027#include <vulkan/vulkan.h>
Lingfeng Yanga126a8a2018-11-01 18:21:40 -070028
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070029
Lingfeng Yang808a6312018-11-13 21:06:15 -080030#include "goldfish_vk_private_defs.h"
Lingfeng Yang39a276e2019-06-17 13:27:22 -070031#include <functional>
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070032#include <memory>
Lingfeng Yanga126a8a2018-11-01 18:21:40 -070033class IOStream;
Lingfeng Yang6a283672018-11-01 13:37:56 -070034
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070035
Lingfeng Yangb1d90102018-11-29 16:10:36 -080036namespace goldfish_vk {
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070037
38
Lingfeng Yang6a283672018-11-01 13:37:56 -070039class VkEncoder {
40public:
Lingfeng Yanga126a8a2018-11-01 18:21:40 -070041 VkEncoder(IOStream* stream);
42 ~VkEncoder();
Lingfeng Yang3cfb1a22019-06-17 13:22:30 -070043
Lingfeng Yang39a276e2019-06-17 13:27:22 -070044 void flush();
45
46 using CleanupCallback = std::function<void()>;
47 void registerCleanupCallback(void* handle, CleanupCallback cb);
48 void unregisterCleanupCallback(void* handle);
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -070049#ifdef VK_VERSION_1_0
50 VkResult vkCreateInstance(
51 const VkInstanceCreateInfo* pCreateInfo,
52 const VkAllocationCallbacks* pAllocator,
53 VkInstance* pInstance);
54 void vkDestroyInstance(
55 VkInstance instance,
56 const VkAllocationCallbacks* pAllocator);
57 VkResult vkEnumeratePhysicalDevices(
58 VkInstance instance,
59 uint32_t* pPhysicalDeviceCount,
60 VkPhysicalDevice* pPhysicalDevices);
61 void vkGetPhysicalDeviceFeatures(
62 VkPhysicalDevice physicalDevice,
63 VkPhysicalDeviceFeatures* pFeatures);
64 void vkGetPhysicalDeviceFormatProperties(
65 VkPhysicalDevice physicalDevice,
66 VkFormat format,
67 VkFormatProperties* pFormatProperties);
68 VkResult vkGetPhysicalDeviceImageFormatProperties(
69 VkPhysicalDevice physicalDevice,
70 VkFormat format,
71 VkImageType type,
72 VkImageTiling tiling,
73 VkImageUsageFlags usage,
74 VkImageCreateFlags flags,
75 VkImageFormatProperties* pImageFormatProperties);
76 void vkGetPhysicalDeviceProperties(
77 VkPhysicalDevice physicalDevice,
78 VkPhysicalDeviceProperties* pProperties);
79 void vkGetPhysicalDeviceQueueFamilyProperties(
80 VkPhysicalDevice physicalDevice,
81 uint32_t* pQueueFamilyPropertyCount,
82 VkQueueFamilyProperties* pQueueFamilyProperties);
83 void vkGetPhysicalDeviceMemoryProperties(
84 VkPhysicalDevice physicalDevice,
85 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
86 PFN_vkVoidFunction vkGetInstanceProcAddr(
87 VkInstance instance,
88 const char* pName);
89 PFN_vkVoidFunction vkGetDeviceProcAddr(
90 VkDevice device,
91 const char* pName);
92 VkResult vkCreateDevice(
93 VkPhysicalDevice physicalDevice,
94 const VkDeviceCreateInfo* pCreateInfo,
95 const VkAllocationCallbacks* pAllocator,
96 VkDevice* pDevice);
97 void vkDestroyDevice(
98 VkDevice device,
99 const VkAllocationCallbacks* pAllocator);
100 VkResult vkEnumerateInstanceExtensionProperties(
101 const char* pLayerName,
102 uint32_t* pPropertyCount,
103 VkExtensionProperties* pProperties);
104 VkResult vkEnumerateDeviceExtensionProperties(
105 VkPhysicalDevice physicalDevice,
106 const char* pLayerName,
107 uint32_t* pPropertyCount,
108 VkExtensionProperties* pProperties);
109 VkResult vkEnumerateInstanceLayerProperties(
110 uint32_t* pPropertyCount,
111 VkLayerProperties* pProperties);
112 VkResult vkEnumerateDeviceLayerProperties(
113 VkPhysicalDevice physicalDevice,
114 uint32_t* pPropertyCount,
115 VkLayerProperties* pProperties);
116 void vkGetDeviceQueue(
117 VkDevice device,
118 uint32_t queueFamilyIndex,
119 uint32_t queueIndex,
120 VkQueue* pQueue);
121 VkResult vkQueueSubmit(
122 VkQueue queue,
123 uint32_t submitCount,
124 const VkSubmitInfo* pSubmits,
125 VkFence fence);
126 VkResult vkQueueWaitIdle(
127 VkQueue queue);
128 VkResult vkDeviceWaitIdle(
129 VkDevice device);
130 VkResult vkAllocateMemory(
131 VkDevice device,
132 const VkMemoryAllocateInfo* pAllocateInfo,
133 const VkAllocationCallbacks* pAllocator,
134 VkDeviceMemory* pMemory);
135 void vkFreeMemory(
136 VkDevice device,
137 VkDeviceMemory memory,
138 const VkAllocationCallbacks* pAllocator);
139 VkResult vkMapMemory(
140 VkDevice device,
141 VkDeviceMemory memory,
142 VkDeviceSize offset,
143 VkDeviceSize size,
144 VkMemoryMapFlags flags,
145 void** ppData);
146 void vkUnmapMemory(
147 VkDevice device,
148 VkDeviceMemory memory);
149 VkResult vkFlushMappedMemoryRanges(
150 VkDevice device,
151 uint32_t memoryRangeCount,
152 const VkMappedMemoryRange* pMemoryRanges);
153 VkResult vkInvalidateMappedMemoryRanges(
154 VkDevice device,
155 uint32_t memoryRangeCount,
156 const VkMappedMemoryRange* pMemoryRanges);
157 void vkGetDeviceMemoryCommitment(
158 VkDevice device,
159 VkDeviceMemory memory,
160 VkDeviceSize* pCommittedMemoryInBytes);
161 VkResult vkBindBufferMemory(
162 VkDevice device,
163 VkBuffer buffer,
164 VkDeviceMemory memory,
165 VkDeviceSize memoryOffset);
166 VkResult vkBindImageMemory(
167 VkDevice device,
168 VkImage image,
169 VkDeviceMemory memory,
170 VkDeviceSize memoryOffset);
171 void vkGetBufferMemoryRequirements(
172 VkDevice device,
173 VkBuffer buffer,
174 VkMemoryRequirements* pMemoryRequirements);
175 void vkGetImageMemoryRequirements(
176 VkDevice device,
177 VkImage image,
178 VkMemoryRequirements* pMemoryRequirements);
179 void vkGetImageSparseMemoryRequirements(
180 VkDevice device,
181 VkImage image,
182 uint32_t* pSparseMemoryRequirementCount,
183 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
184 void vkGetPhysicalDeviceSparseImageFormatProperties(
185 VkPhysicalDevice physicalDevice,
186 VkFormat format,
187 VkImageType type,
188 VkSampleCountFlagBits samples,
189 VkImageUsageFlags usage,
190 VkImageTiling tiling,
191 uint32_t* pPropertyCount,
192 VkSparseImageFormatProperties* pProperties);
193 VkResult vkQueueBindSparse(
194 VkQueue queue,
195 uint32_t bindInfoCount,
196 const VkBindSparseInfo* pBindInfo,
197 VkFence fence);
198 VkResult vkCreateFence(
199 VkDevice device,
200 const VkFenceCreateInfo* pCreateInfo,
201 const VkAllocationCallbacks* pAllocator,
202 VkFence* pFence);
203 void vkDestroyFence(
204 VkDevice device,
205 VkFence fence,
206 const VkAllocationCallbacks* pAllocator);
207 VkResult vkResetFences(
208 VkDevice device,
209 uint32_t fenceCount,
210 const VkFence* pFences);
211 VkResult vkGetFenceStatus(
212 VkDevice device,
213 VkFence fence);
214 VkResult vkWaitForFences(
215 VkDevice device,
216 uint32_t fenceCount,
217 const VkFence* pFences,
218 VkBool32 waitAll,
219 uint64_t timeout);
220 VkResult vkCreateSemaphore(
221 VkDevice device,
222 const VkSemaphoreCreateInfo* pCreateInfo,
223 const VkAllocationCallbacks* pAllocator,
224 VkSemaphore* pSemaphore);
225 void vkDestroySemaphore(
226 VkDevice device,
227 VkSemaphore semaphore,
228 const VkAllocationCallbacks* pAllocator);
229 VkResult vkCreateEvent(
230 VkDevice device,
231 const VkEventCreateInfo* pCreateInfo,
232 const VkAllocationCallbacks* pAllocator,
233 VkEvent* pEvent);
234 void vkDestroyEvent(
235 VkDevice device,
236 VkEvent event,
237 const VkAllocationCallbacks* pAllocator);
238 VkResult vkGetEventStatus(
239 VkDevice device,
240 VkEvent event);
241 VkResult vkSetEvent(
242 VkDevice device,
243 VkEvent event);
244 VkResult vkResetEvent(
245 VkDevice device,
246 VkEvent event);
247 VkResult vkCreateQueryPool(
248 VkDevice device,
249 const VkQueryPoolCreateInfo* pCreateInfo,
250 const VkAllocationCallbacks* pAllocator,
251 VkQueryPool* pQueryPool);
252 void vkDestroyQueryPool(
253 VkDevice device,
254 VkQueryPool queryPool,
255 const VkAllocationCallbacks* pAllocator);
256 VkResult vkGetQueryPoolResults(
257 VkDevice device,
258 VkQueryPool queryPool,
259 uint32_t firstQuery,
260 uint32_t queryCount,
261 size_t dataSize,
262 void* pData,
263 VkDeviceSize stride,
264 VkQueryResultFlags flags);
265 VkResult vkCreateBuffer(
266 VkDevice device,
267 const VkBufferCreateInfo* pCreateInfo,
268 const VkAllocationCallbacks* pAllocator,
269 VkBuffer* pBuffer);
270 void vkDestroyBuffer(
271 VkDevice device,
272 VkBuffer buffer,
273 const VkAllocationCallbacks* pAllocator);
274 VkResult vkCreateBufferView(
275 VkDevice device,
276 const VkBufferViewCreateInfo* pCreateInfo,
277 const VkAllocationCallbacks* pAllocator,
278 VkBufferView* pView);
279 void vkDestroyBufferView(
280 VkDevice device,
281 VkBufferView bufferView,
282 const VkAllocationCallbacks* pAllocator);
283 VkResult vkCreateImage(
284 VkDevice device,
285 const VkImageCreateInfo* pCreateInfo,
286 const VkAllocationCallbacks* pAllocator,
287 VkImage* pImage);
288 void vkDestroyImage(
289 VkDevice device,
290 VkImage image,
291 const VkAllocationCallbacks* pAllocator);
292 void vkGetImageSubresourceLayout(
293 VkDevice device,
294 VkImage image,
295 const VkImageSubresource* pSubresource,
296 VkSubresourceLayout* pLayout);
297 VkResult vkCreateImageView(
298 VkDevice device,
299 const VkImageViewCreateInfo* pCreateInfo,
300 const VkAllocationCallbacks* pAllocator,
301 VkImageView* pView);
302 void vkDestroyImageView(
303 VkDevice device,
304 VkImageView imageView,
305 const VkAllocationCallbacks* pAllocator);
306 VkResult vkCreateShaderModule(
307 VkDevice device,
308 const VkShaderModuleCreateInfo* pCreateInfo,
309 const VkAllocationCallbacks* pAllocator,
310 VkShaderModule* pShaderModule);
311 void vkDestroyShaderModule(
312 VkDevice device,
313 VkShaderModule shaderModule,
314 const VkAllocationCallbacks* pAllocator);
315 VkResult vkCreatePipelineCache(
316 VkDevice device,
317 const VkPipelineCacheCreateInfo* pCreateInfo,
318 const VkAllocationCallbacks* pAllocator,
319 VkPipelineCache* pPipelineCache);
320 void vkDestroyPipelineCache(
321 VkDevice device,
322 VkPipelineCache pipelineCache,
323 const VkAllocationCallbacks* pAllocator);
324 VkResult vkGetPipelineCacheData(
325 VkDevice device,
326 VkPipelineCache pipelineCache,
327 size_t* pDataSize,
328 void* pData);
329 VkResult vkMergePipelineCaches(
330 VkDevice device,
331 VkPipelineCache dstCache,
332 uint32_t srcCacheCount,
333 const VkPipelineCache* pSrcCaches);
334 VkResult vkCreateGraphicsPipelines(
335 VkDevice device,
336 VkPipelineCache pipelineCache,
337 uint32_t createInfoCount,
338 const VkGraphicsPipelineCreateInfo* pCreateInfos,
339 const VkAllocationCallbacks* pAllocator,
340 VkPipeline* pPipelines);
341 VkResult vkCreateComputePipelines(
342 VkDevice device,
343 VkPipelineCache pipelineCache,
344 uint32_t createInfoCount,
345 const VkComputePipelineCreateInfo* pCreateInfos,
346 const VkAllocationCallbacks* pAllocator,
347 VkPipeline* pPipelines);
348 void vkDestroyPipeline(
349 VkDevice device,
350 VkPipeline pipeline,
351 const VkAllocationCallbacks* pAllocator);
352 VkResult vkCreatePipelineLayout(
353 VkDevice device,
354 const VkPipelineLayoutCreateInfo* pCreateInfo,
355 const VkAllocationCallbacks* pAllocator,
356 VkPipelineLayout* pPipelineLayout);
357 void vkDestroyPipelineLayout(
358 VkDevice device,
359 VkPipelineLayout pipelineLayout,
360 const VkAllocationCallbacks* pAllocator);
361 VkResult vkCreateSampler(
362 VkDevice device,
363 const VkSamplerCreateInfo* pCreateInfo,
364 const VkAllocationCallbacks* pAllocator,
365 VkSampler* pSampler);
366 void vkDestroySampler(
367 VkDevice device,
368 VkSampler sampler,
369 const VkAllocationCallbacks* pAllocator);
370 VkResult vkCreateDescriptorSetLayout(
371 VkDevice device,
372 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
373 const VkAllocationCallbacks* pAllocator,
374 VkDescriptorSetLayout* pSetLayout);
375 void vkDestroyDescriptorSetLayout(
376 VkDevice device,
377 VkDescriptorSetLayout descriptorSetLayout,
378 const VkAllocationCallbacks* pAllocator);
379 VkResult vkCreateDescriptorPool(
380 VkDevice device,
381 const VkDescriptorPoolCreateInfo* pCreateInfo,
382 const VkAllocationCallbacks* pAllocator,
383 VkDescriptorPool* pDescriptorPool);
384 void vkDestroyDescriptorPool(
385 VkDevice device,
386 VkDescriptorPool descriptorPool,
387 const VkAllocationCallbacks* pAllocator);
388 VkResult vkResetDescriptorPool(
389 VkDevice device,
390 VkDescriptorPool descriptorPool,
391 VkDescriptorPoolResetFlags flags);
392 VkResult vkAllocateDescriptorSets(
393 VkDevice device,
394 const VkDescriptorSetAllocateInfo* pAllocateInfo,
395 VkDescriptorSet* pDescriptorSets);
396 VkResult vkFreeDescriptorSets(
397 VkDevice device,
398 VkDescriptorPool descriptorPool,
399 uint32_t descriptorSetCount,
400 const VkDescriptorSet* pDescriptorSets);
401 void vkUpdateDescriptorSets(
402 VkDevice device,
403 uint32_t descriptorWriteCount,
404 const VkWriteDescriptorSet* pDescriptorWrites,
405 uint32_t descriptorCopyCount,
406 const VkCopyDescriptorSet* pDescriptorCopies);
407 VkResult vkCreateFramebuffer(
408 VkDevice device,
409 const VkFramebufferCreateInfo* pCreateInfo,
410 const VkAllocationCallbacks* pAllocator,
411 VkFramebuffer* pFramebuffer);
412 void vkDestroyFramebuffer(
413 VkDevice device,
414 VkFramebuffer framebuffer,
415 const VkAllocationCallbacks* pAllocator);
416 VkResult vkCreateRenderPass(
417 VkDevice device,
418 const VkRenderPassCreateInfo* pCreateInfo,
419 const VkAllocationCallbacks* pAllocator,
420 VkRenderPass* pRenderPass);
421 void vkDestroyRenderPass(
422 VkDevice device,
423 VkRenderPass renderPass,
424 const VkAllocationCallbacks* pAllocator);
425 void vkGetRenderAreaGranularity(
426 VkDevice device,
427 VkRenderPass renderPass,
428 VkExtent2D* pGranularity);
429 VkResult vkCreateCommandPool(
430 VkDevice device,
431 const VkCommandPoolCreateInfo* pCreateInfo,
432 const VkAllocationCallbacks* pAllocator,
433 VkCommandPool* pCommandPool);
434 void vkDestroyCommandPool(
435 VkDevice device,
436 VkCommandPool commandPool,
437 const VkAllocationCallbacks* pAllocator);
438 VkResult vkResetCommandPool(
439 VkDevice device,
440 VkCommandPool commandPool,
441 VkCommandPoolResetFlags flags);
442 VkResult vkAllocateCommandBuffers(
443 VkDevice device,
444 const VkCommandBufferAllocateInfo* pAllocateInfo,
445 VkCommandBuffer* pCommandBuffers);
446 void vkFreeCommandBuffers(
447 VkDevice device,
448 VkCommandPool commandPool,
449 uint32_t commandBufferCount,
450 const VkCommandBuffer* pCommandBuffers);
451 VkResult vkBeginCommandBuffer(
452 VkCommandBuffer commandBuffer,
453 const VkCommandBufferBeginInfo* pBeginInfo);
454 VkResult vkEndCommandBuffer(
455 VkCommandBuffer commandBuffer);
456 VkResult vkResetCommandBuffer(
457 VkCommandBuffer commandBuffer,
458 VkCommandBufferResetFlags flags);
459 void vkCmdBindPipeline(
460 VkCommandBuffer commandBuffer,
461 VkPipelineBindPoint pipelineBindPoint,
462 VkPipeline pipeline);
463 void vkCmdSetViewport(
464 VkCommandBuffer commandBuffer,
465 uint32_t firstViewport,
466 uint32_t viewportCount,
467 const VkViewport* pViewports);
468 void vkCmdSetScissor(
469 VkCommandBuffer commandBuffer,
470 uint32_t firstScissor,
471 uint32_t scissorCount,
472 const VkRect2D* pScissors);
473 void vkCmdSetLineWidth(
474 VkCommandBuffer commandBuffer,
475 float lineWidth);
476 void vkCmdSetDepthBias(
477 VkCommandBuffer commandBuffer,
478 float depthBiasConstantFactor,
479 float depthBiasClamp,
480 float depthBiasSlopeFactor);
481 void vkCmdSetBlendConstants(
482 VkCommandBuffer commandBuffer,
Lingfeng Yang97ddeb82019-04-20 14:32:52 -0700483 const float blendConstants[4]);
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -0700484 void vkCmdSetDepthBounds(
485 VkCommandBuffer commandBuffer,
486 float minDepthBounds,
487 float maxDepthBounds);
488 void vkCmdSetStencilCompareMask(
489 VkCommandBuffer commandBuffer,
490 VkStencilFaceFlags faceMask,
491 uint32_t compareMask);
492 void vkCmdSetStencilWriteMask(
493 VkCommandBuffer commandBuffer,
494 VkStencilFaceFlags faceMask,
495 uint32_t writeMask);
496 void vkCmdSetStencilReference(
497 VkCommandBuffer commandBuffer,
498 VkStencilFaceFlags faceMask,
499 uint32_t reference);
500 void vkCmdBindDescriptorSets(
501 VkCommandBuffer commandBuffer,
502 VkPipelineBindPoint pipelineBindPoint,
503 VkPipelineLayout layout,
504 uint32_t firstSet,
505 uint32_t descriptorSetCount,
506 const VkDescriptorSet* pDescriptorSets,
507 uint32_t dynamicOffsetCount,
508 const uint32_t* pDynamicOffsets);
509 void vkCmdBindIndexBuffer(
510 VkCommandBuffer commandBuffer,
511 VkBuffer buffer,
512 VkDeviceSize offset,
513 VkIndexType indexType);
514 void vkCmdBindVertexBuffers(
515 VkCommandBuffer commandBuffer,
516 uint32_t firstBinding,
517 uint32_t bindingCount,
518 const VkBuffer* pBuffers,
519 const VkDeviceSize* pOffsets);
520 void vkCmdDraw(
521 VkCommandBuffer commandBuffer,
522 uint32_t vertexCount,
523 uint32_t instanceCount,
524 uint32_t firstVertex,
525 uint32_t firstInstance);
526 void vkCmdDrawIndexed(
527 VkCommandBuffer commandBuffer,
528 uint32_t indexCount,
529 uint32_t instanceCount,
530 uint32_t firstIndex,
531 int32_t vertexOffset,
532 uint32_t firstInstance);
533 void vkCmdDrawIndirect(
534 VkCommandBuffer commandBuffer,
535 VkBuffer buffer,
536 VkDeviceSize offset,
537 uint32_t drawCount,
538 uint32_t stride);
539 void vkCmdDrawIndexedIndirect(
540 VkCommandBuffer commandBuffer,
541 VkBuffer buffer,
542 VkDeviceSize offset,
543 uint32_t drawCount,
544 uint32_t stride);
545 void vkCmdDispatch(
546 VkCommandBuffer commandBuffer,
547 uint32_t groupCountX,
548 uint32_t groupCountY,
549 uint32_t groupCountZ);
550 void vkCmdDispatchIndirect(
551 VkCommandBuffer commandBuffer,
552 VkBuffer buffer,
553 VkDeviceSize offset);
554 void vkCmdCopyBuffer(
555 VkCommandBuffer commandBuffer,
556 VkBuffer srcBuffer,
557 VkBuffer dstBuffer,
558 uint32_t regionCount,
559 const VkBufferCopy* pRegions);
560 void vkCmdCopyImage(
561 VkCommandBuffer commandBuffer,
562 VkImage srcImage,
563 VkImageLayout srcImageLayout,
564 VkImage dstImage,
565 VkImageLayout dstImageLayout,
566 uint32_t regionCount,
567 const VkImageCopy* pRegions);
568 void vkCmdBlitImage(
569 VkCommandBuffer commandBuffer,
570 VkImage srcImage,
571 VkImageLayout srcImageLayout,
572 VkImage dstImage,
573 VkImageLayout dstImageLayout,
574 uint32_t regionCount,
575 const VkImageBlit* pRegions,
576 VkFilter filter);
577 void vkCmdCopyBufferToImage(
578 VkCommandBuffer commandBuffer,
579 VkBuffer srcBuffer,
580 VkImage dstImage,
581 VkImageLayout dstImageLayout,
582 uint32_t regionCount,
583 const VkBufferImageCopy* pRegions);
584 void vkCmdCopyImageToBuffer(
585 VkCommandBuffer commandBuffer,
586 VkImage srcImage,
587 VkImageLayout srcImageLayout,
588 VkBuffer dstBuffer,
589 uint32_t regionCount,
590 const VkBufferImageCopy* pRegions);
591 void vkCmdUpdateBuffer(
592 VkCommandBuffer commandBuffer,
593 VkBuffer dstBuffer,
594 VkDeviceSize dstOffset,
595 VkDeviceSize dataSize,
596 const void* pData);
597 void vkCmdFillBuffer(
598 VkCommandBuffer commandBuffer,
599 VkBuffer dstBuffer,
600 VkDeviceSize dstOffset,
601 VkDeviceSize size,
602 uint32_t data);
603 void vkCmdClearColorImage(
604 VkCommandBuffer commandBuffer,
605 VkImage image,
606 VkImageLayout imageLayout,
607 const VkClearColorValue* pColor,
608 uint32_t rangeCount,
609 const VkImageSubresourceRange* pRanges);
610 void vkCmdClearDepthStencilImage(
611 VkCommandBuffer commandBuffer,
612 VkImage image,
613 VkImageLayout imageLayout,
614 const VkClearDepthStencilValue* pDepthStencil,
615 uint32_t rangeCount,
616 const VkImageSubresourceRange* pRanges);
617 void vkCmdClearAttachments(
618 VkCommandBuffer commandBuffer,
619 uint32_t attachmentCount,
620 const VkClearAttachment* pAttachments,
621 uint32_t rectCount,
622 const VkClearRect* pRects);
623 void vkCmdResolveImage(
624 VkCommandBuffer commandBuffer,
625 VkImage srcImage,
626 VkImageLayout srcImageLayout,
627 VkImage dstImage,
628 VkImageLayout dstImageLayout,
629 uint32_t regionCount,
630 const VkImageResolve* pRegions);
631 void vkCmdSetEvent(
632 VkCommandBuffer commandBuffer,
633 VkEvent event,
634 VkPipelineStageFlags stageMask);
635 void vkCmdResetEvent(
636 VkCommandBuffer commandBuffer,
637 VkEvent event,
638 VkPipelineStageFlags stageMask);
639 void vkCmdWaitEvents(
640 VkCommandBuffer commandBuffer,
641 uint32_t eventCount,
642 const VkEvent* pEvents,
643 VkPipelineStageFlags srcStageMask,
644 VkPipelineStageFlags dstStageMask,
645 uint32_t memoryBarrierCount,
646 const VkMemoryBarrier* pMemoryBarriers,
647 uint32_t bufferMemoryBarrierCount,
648 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
649 uint32_t imageMemoryBarrierCount,
650 const VkImageMemoryBarrier* pImageMemoryBarriers);
651 void vkCmdPipelineBarrier(
652 VkCommandBuffer commandBuffer,
653 VkPipelineStageFlags srcStageMask,
654 VkPipelineStageFlags dstStageMask,
655 VkDependencyFlags dependencyFlags,
656 uint32_t memoryBarrierCount,
657 const VkMemoryBarrier* pMemoryBarriers,
658 uint32_t bufferMemoryBarrierCount,
659 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
660 uint32_t imageMemoryBarrierCount,
661 const VkImageMemoryBarrier* pImageMemoryBarriers);
662 void vkCmdBeginQuery(
663 VkCommandBuffer commandBuffer,
664 VkQueryPool queryPool,
665 uint32_t query,
666 VkQueryControlFlags flags);
667 void vkCmdEndQuery(
668 VkCommandBuffer commandBuffer,
669 VkQueryPool queryPool,
670 uint32_t query);
671 void vkCmdResetQueryPool(
672 VkCommandBuffer commandBuffer,
673 VkQueryPool queryPool,
674 uint32_t firstQuery,
675 uint32_t queryCount);
676 void vkCmdWriteTimestamp(
677 VkCommandBuffer commandBuffer,
678 VkPipelineStageFlagBits pipelineStage,
679 VkQueryPool queryPool,
680 uint32_t query);
681 void vkCmdCopyQueryPoolResults(
682 VkCommandBuffer commandBuffer,
683 VkQueryPool queryPool,
684 uint32_t firstQuery,
685 uint32_t queryCount,
686 VkBuffer dstBuffer,
687 VkDeviceSize dstOffset,
688 VkDeviceSize stride,
689 VkQueryResultFlags flags);
690 void vkCmdPushConstants(
691 VkCommandBuffer commandBuffer,
692 VkPipelineLayout layout,
693 VkShaderStageFlags stageFlags,
694 uint32_t offset,
695 uint32_t size,
696 const void* pValues);
697 void vkCmdBeginRenderPass(
698 VkCommandBuffer commandBuffer,
699 const VkRenderPassBeginInfo* pRenderPassBegin,
700 VkSubpassContents contents);
701 void vkCmdNextSubpass(
702 VkCommandBuffer commandBuffer,
703 VkSubpassContents contents);
704 void vkCmdEndRenderPass(
705 VkCommandBuffer commandBuffer);
706 void vkCmdExecuteCommands(
707 VkCommandBuffer commandBuffer,
708 uint32_t commandBufferCount,
709 const VkCommandBuffer* pCommandBuffers);
710#endif
711#ifdef VK_VERSION_1_1
712 VkResult vkEnumerateInstanceVersion(
713 uint32_t* pApiVersion);
714 VkResult vkBindBufferMemory2(
715 VkDevice device,
716 uint32_t bindInfoCount,
717 const VkBindBufferMemoryInfo* pBindInfos);
718 VkResult vkBindImageMemory2(
719 VkDevice device,
720 uint32_t bindInfoCount,
721 const VkBindImageMemoryInfo* pBindInfos);
722 void vkGetDeviceGroupPeerMemoryFeatures(
723 VkDevice device,
724 uint32_t heapIndex,
725 uint32_t localDeviceIndex,
726 uint32_t remoteDeviceIndex,
727 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
728 void vkCmdSetDeviceMask(
729 VkCommandBuffer commandBuffer,
730 uint32_t deviceMask);
731 void vkCmdDispatchBase(
732 VkCommandBuffer commandBuffer,
733 uint32_t baseGroupX,
734 uint32_t baseGroupY,
735 uint32_t baseGroupZ,
736 uint32_t groupCountX,
737 uint32_t groupCountY,
738 uint32_t groupCountZ);
739 VkResult vkEnumeratePhysicalDeviceGroups(
740 VkInstance instance,
741 uint32_t* pPhysicalDeviceGroupCount,
742 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
743 void vkGetImageMemoryRequirements2(
744 VkDevice device,
745 const VkImageMemoryRequirementsInfo2* pInfo,
746 VkMemoryRequirements2* pMemoryRequirements);
747 void vkGetBufferMemoryRequirements2(
748 VkDevice device,
749 const VkBufferMemoryRequirementsInfo2* pInfo,
750 VkMemoryRequirements2* pMemoryRequirements);
751 void vkGetImageSparseMemoryRequirements2(
752 VkDevice device,
753 const VkImageSparseMemoryRequirementsInfo2* pInfo,
754 uint32_t* pSparseMemoryRequirementCount,
755 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
756 void vkGetPhysicalDeviceFeatures2(
757 VkPhysicalDevice physicalDevice,
758 VkPhysicalDeviceFeatures2* pFeatures);
759 void vkGetPhysicalDeviceProperties2(
760 VkPhysicalDevice physicalDevice,
761 VkPhysicalDeviceProperties2* pProperties);
762 void vkGetPhysicalDeviceFormatProperties2(
763 VkPhysicalDevice physicalDevice,
764 VkFormat format,
765 VkFormatProperties2* pFormatProperties);
766 VkResult vkGetPhysicalDeviceImageFormatProperties2(
767 VkPhysicalDevice physicalDevice,
768 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
769 VkImageFormatProperties2* pImageFormatProperties);
770 void vkGetPhysicalDeviceQueueFamilyProperties2(
771 VkPhysicalDevice physicalDevice,
772 uint32_t* pQueueFamilyPropertyCount,
773 VkQueueFamilyProperties2* pQueueFamilyProperties);
774 void vkGetPhysicalDeviceMemoryProperties2(
775 VkPhysicalDevice physicalDevice,
776 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
777 void vkGetPhysicalDeviceSparseImageFormatProperties2(
778 VkPhysicalDevice physicalDevice,
779 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
780 uint32_t* pPropertyCount,
781 VkSparseImageFormatProperties2* pProperties);
782 void vkTrimCommandPool(
783 VkDevice device,
784 VkCommandPool commandPool,
785 VkCommandPoolTrimFlags flags);
786 void vkGetDeviceQueue2(
787 VkDevice device,
788 const VkDeviceQueueInfo2* pQueueInfo,
789 VkQueue* pQueue);
790 VkResult vkCreateSamplerYcbcrConversion(
791 VkDevice device,
792 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
793 const VkAllocationCallbacks* pAllocator,
794 VkSamplerYcbcrConversion* pYcbcrConversion);
795 void vkDestroySamplerYcbcrConversion(
796 VkDevice device,
797 VkSamplerYcbcrConversion ycbcrConversion,
798 const VkAllocationCallbacks* pAllocator);
799 VkResult vkCreateDescriptorUpdateTemplate(
800 VkDevice device,
801 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
802 const VkAllocationCallbacks* pAllocator,
803 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
804 void vkDestroyDescriptorUpdateTemplate(
805 VkDevice device,
806 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
807 const VkAllocationCallbacks* pAllocator);
808 void vkUpdateDescriptorSetWithTemplate(
809 VkDevice device,
810 VkDescriptorSet descriptorSet,
811 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
812 const void* pData);
813 void vkGetPhysicalDeviceExternalBufferProperties(
814 VkPhysicalDevice physicalDevice,
815 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
816 VkExternalBufferProperties* pExternalBufferProperties);
817 void vkGetPhysicalDeviceExternalFenceProperties(
818 VkPhysicalDevice physicalDevice,
819 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
820 VkExternalFenceProperties* pExternalFenceProperties);
821 void vkGetPhysicalDeviceExternalSemaphoreProperties(
822 VkPhysicalDevice physicalDevice,
823 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
824 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
825 void vkGetDescriptorSetLayoutSupport(
826 VkDevice device,
827 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
828 VkDescriptorSetLayoutSupport* pSupport);
829#endif
830#ifdef VK_KHR_surface
831 void vkDestroySurfaceKHR(
832 VkInstance instance,
833 VkSurfaceKHR surface,
834 const VkAllocationCallbacks* pAllocator);
835 VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
836 VkPhysicalDevice physicalDevice,
837 uint32_t queueFamilyIndex,
838 VkSurfaceKHR surface,
839 VkBool32* pSupported);
840 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
841 VkPhysicalDevice physicalDevice,
842 VkSurfaceKHR surface,
843 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
844 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
845 VkPhysicalDevice physicalDevice,
846 VkSurfaceKHR surface,
847 uint32_t* pSurfaceFormatCount,
848 VkSurfaceFormatKHR* pSurfaceFormats);
849 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
850 VkPhysicalDevice physicalDevice,
851 VkSurfaceKHR surface,
852 uint32_t* pPresentModeCount,
853 VkPresentModeKHR* pPresentModes);
854#endif
855#ifdef VK_KHR_swapchain
856 VkResult vkCreateSwapchainKHR(
857 VkDevice device,
858 const VkSwapchainCreateInfoKHR* pCreateInfo,
859 const VkAllocationCallbacks* pAllocator,
860 VkSwapchainKHR* pSwapchain);
861 void vkDestroySwapchainKHR(
862 VkDevice device,
863 VkSwapchainKHR swapchain,
864 const VkAllocationCallbacks* pAllocator);
865 VkResult vkGetSwapchainImagesKHR(
866 VkDevice device,
867 VkSwapchainKHR swapchain,
868 uint32_t* pSwapchainImageCount,
869 VkImage* pSwapchainImages);
870 VkResult vkAcquireNextImageKHR(
871 VkDevice device,
872 VkSwapchainKHR swapchain,
873 uint64_t timeout,
874 VkSemaphore semaphore,
875 VkFence fence,
876 uint32_t* pImageIndex);
877 VkResult vkQueuePresentKHR(
878 VkQueue queue,
879 const VkPresentInfoKHR* pPresentInfo);
880 VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
881 VkDevice device,
882 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
883 VkResult vkGetDeviceGroupSurfacePresentModesKHR(
884 VkDevice device,
885 VkSurfaceKHR surface,
886 VkDeviceGroupPresentModeFlagsKHR* pModes);
887 VkResult vkGetPhysicalDevicePresentRectanglesKHR(
888 VkPhysicalDevice physicalDevice,
889 VkSurfaceKHR surface,
890 uint32_t* pRectCount,
891 VkRect2D* pRects);
892 VkResult vkAcquireNextImage2KHR(
893 VkDevice device,
894 const VkAcquireNextImageInfoKHR* pAcquireInfo,
895 uint32_t* pImageIndex);
896#endif
897#ifdef VK_KHR_display
898 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
899 VkPhysicalDevice physicalDevice,
900 uint32_t* pPropertyCount,
901 VkDisplayPropertiesKHR* pProperties);
902 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
903 VkPhysicalDevice physicalDevice,
904 uint32_t* pPropertyCount,
905 VkDisplayPlanePropertiesKHR* pProperties);
906 VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
907 VkPhysicalDevice physicalDevice,
908 uint32_t planeIndex,
909 uint32_t* pDisplayCount,
910 VkDisplayKHR* pDisplays);
911 VkResult vkGetDisplayModePropertiesKHR(
912 VkPhysicalDevice physicalDevice,
913 VkDisplayKHR display,
914 uint32_t* pPropertyCount,
915 VkDisplayModePropertiesKHR* pProperties);
916 VkResult vkCreateDisplayModeKHR(
917 VkPhysicalDevice physicalDevice,
918 VkDisplayKHR display,
919 const VkDisplayModeCreateInfoKHR* pCreateInfo,
920 const VkAllocationCallbacks* pAllocator,
921 VkDisplayModeKHR* pMode);
922 VkResult vkGetDisplayPlaneCapabilitiesKHR(
923 VkPhysicalDevice physicalDevice,
924 VkDisplayModeKHR mode,
925 uint32_t planeIndex,
926 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
927 VkResult vkCreateDisplayPlaneSurfaceKHR(
928 VkInstance instance,
929 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
930 const VkAllocationCallbacks* pAllocator,
931 VkSurfaceKHR* pSurface);
932#endif
933#ifdef VK_KHR_display_swapchain
934 VkResult vkCreateSharedSwapchainsKHR(
935 VkDevice device,
936 uint32_t swapchainCount,
937 const VkSwapchainCreateInfoKHR* pCreateInfos,
938 const VkAllocationCallbacks* pAllocator,
939 VkSwapchainKHR* pSwapchains);
940#endif
941#ifdef VK_KHR_xlib_surface
942 VkResult vkCreateXlibSurfaceKHR(
943 VkInstance instance,
944 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
945 const VkAllocationCallbacks* pAllocator,
946 VkSurfaceKHR* pSurface);
947 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
948 VkPhysicalDevice physicalDevice,
949 uint32_t queueFamilyIndex,
950 Display* dpy,
951 VisualID visualID);
952#endif
953#ifdef VK_KHR_xcb_surface
954 VkResult vkCreateXcbSurfaceKHR(
955 VkInstance instance,
956 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
957 const VkAllocationCallbacks* pAllocator,
958 VkSurfaceKHR* pSurface);
959 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
960 VkPhysicalDevice physicalDevice,
961 uint32_t queueFamilyIndex,
962 xcb_connection_t* connection,
963 xcb_visualid_t visual_id);
964#endif
965#ifdef VK_KHR_wayland_surface
966 VkResult vkCreateWaylandSurfaceKHR(
967 VkInstance instance,
968 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
969 const VkAllocationCallbacks* pAllocator,
970 VkSurfaceKHR* pSurface);
971 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
972 VkPhysicalDevice physicalDevice,
973 uint32_t queueFamilyIndex,
974 wl_display* display);
975#endif
976#ifdef VK_KHR_mir_surface
977 VkResult vkCreateMirSurfaceKHR(
978 VkInstance instance,
979 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
980 const VkAllocationCallbacks* pAllocator,
981 VkSurfaceKHR* pSurface);
982 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
983 VkPhysicalDevice physicalDevice,
984 uint32_t queueFamilyIndex,
985 MirConnection* connection);
986#endif
987#ifdef VK_KHR_android_surface
988 VkResult vkCreateAndroidSurfaceKHR(
989 VkInstance instance,
990 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
991 const VkAllocationCallbacks* pAllocator,
992 VkSurfaceKHR* pSurface);
993#endif
994#ifdef VK_KHR_win32_surface
995 VkResult vkCreateWin32SurfaceKHR(
996 VkInstance instance,
997 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
998 const VkAllocationCallbacks* pAllocator,
999 VkSurfaceKHR* pSurface);
1000 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR(
1001 VkPhysicalDevice physicalDevice,
1002 uint32_t queueFamilyIndex);
1003#endif
1004#ifdef VK_KHR_sampler_mirror_clamp_to_edge
1005#endif
1006#ifdef VK_KHR_multiview
1007#endif
1008#ifdef VK_KHR_get_physical_device_properties2
1009 void vkGetPhysicalDeviceFeatures2KHR(
1010 VkPhysicalDevice physicalDevice,
1011 VkPhysicalDeviceFeatures2* pFeatures);
1012 void vkGetPhysicalDeviceProperties2KHR(
1013 VkPhysicalDevice physicalDevice,
1014 VkPhysicalDeviceProperties2* pProperties);
1015 void vkGetPhysicalDeviceFormatProperties2KHR(
1016 VkPhysicalDevice physicalDevice,
1017 VkFormat format,
1018 VkFormatProperties2* pFormatProperties);
1019 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
1020 VkPhysicalDevice physicalDevice,
1021 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1022 VkImageFormatProperties2* pImageFormatProperties);
1023 void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
1024 VkPhysicalDevice physicalDevice,
1025 uint32_t* pQueueFamilyPropertyCount,
1026 VkQueueFamilyProperties2* pQueueFamilyProperties);
1027 void vkGetPhysicalDeviceMemoryProperties2KHR(
1028 VkPhysicalDevice physicalDevice,
1029 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
1030 void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
1031 VkPhysicalDevice physicalDevice,
1032 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1033 uint32_t* pPropertyCount,
1034 VkSparseImageFormatProperties2* pProperties);
1035#endif
1036#ifdef VK_KHR_device_group
1037 void vkGetDeviceGroupPeerMemoryFeaturesKHR(
1038 VkDevice device,
1039 uint32_t heapIndex,
1040 uint32_t localDeviceIndex,
1041 uint32_t remoteDeviceIndex,
1042 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
1043 void vkCmdSetDeviceMaskKHR(
1044 VkCommandBuffer commandBuffer,
1045 uint32_t deviceMask);
1046 void vkCmdDispatchBaseKHR(
1047 VkCommandBuffer commandBuffer,
1048 uint32_t baseGroupX,
1049 uint32_t baseGroupY,
1050 uint32_t baseGroupZ,
1051 uint32_t groupCountX,
1052 uint32_t groupCountY,
1053 uint32_t groupCountZ);
1054#endif
1055#ifdef VK_KHR_shader_draw_parameters
1056#endif
1057#ifdef VK_KHR_maintenance1
1058 void vkTrimCommandPoolKHR(
1059 VkDevice device,
1060 VkCommandPool commandPool,
1061 VkCommandPoolTrimFlags flags);
1062#endif
1063#ifdef VK_KHR_device_group_creation
1064 VkResult vkEnumeratePhysicalDeviceGroupsKHR(
1065 VkInstance instance,
1066 uint32_t* pPhysicalDeviceGroupCount,
1067 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
1068#endif
1069#ifdef VK_KHR_external_memory_capabilities
1070 void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
1071 VkPhysicalDevice physicalDevice,
1072 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1073 VkExternalBufferProperties* pExternalBufferProperties);
1074#endif
1075#ifdef VK_KHR_external_memory
1076#endif
1077#ifdef VK_KHR_external_memory_win32
1078 VkResult vkGetMemoryWin32HandleKHR(
1079 VkDevice device,
1080 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1081 HANDLE* pHandle);
1082 VkResult vkGetMemoryWin32HandlePropertiesKHR(
1083 VkDevice device,
1084 VkExternalMemoryHandleTypeFlagBits handleType,
1085 HANDLE handle,
1086 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
1087#endif
1088#ifdef VK_KHR_external_memory_fd
1089 VkResult vkGetMemoryFdKHR(
1090 VkDevice device,
1091 const VkMemoryGetFdInfoKHR* pGetFdInfo,
1092 int* pFd);
1093 VkResult vkGetMemoryFdPropertiesKHR(
1094 VkDevice device,
1095 VkExternalMemoryHandleTypeFlagBits handleType,
1096 int fd,
1097 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
1098#endif
1099#ifdef VK_KHR_win32_keyed_mutex
1100#endif
1101#ifdef VK_KHR_external_semaphore_capabilities
1102 void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
1103 VkPhysicalDevice physicalDevice,
1104 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1105 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
1106#endif
1107#ifdef VK_KHR_external_semaphore
1108#endif
1109#ifdef VK_KHR_external_semaphore_win32
1110 VkResult vkImportSemaphoreWin32HandleKHR(
1111 VkDevice device,
1112 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
1113 VkResult vkGetSemaphoreWin32HandleKHR(
1114 VkDevice device,
1115 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1116 HANDLE* pHandle);
1117#endif
1118#ifdef VK_KHR_external_semaphore_fd
1119 VkResult vkImportSemaphoreFdKHR(
1120 VkDevice device,
1121 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
1122 VkResult vkGetSemaphoreFdKHR(
1123 VkDevice device,
1124 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
1125 int* pFd);
1126#endif
1127#ifdef VK_KHR_push_descriptor
1128 void vkCmdPushDescriptorSetKHR(
1129 VkCommandBuffer commandBuffer,
1130 VkPipelineBindPoint pipelineBindPoint,
1131 VkPipelineLayout layout,
1132 uint32_t set,
1133 uint32_t descriptorWriteCount,
1134 const VkWriteDescriptorSet* pDescriptorWrites);
1135 void vkCmdPushDescriptorSetWithTemplateKHR(
1136 VkCommandBuffer commandBuffer,
1137 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1138 VkPipelineLayout layout,
1139 uint32_t set,
1140 const void* pData);
1141#endif
1142#ifdef VK_KHR_16bit_storage
1143#endif
1144#ifdef VK_KHR_incremental_present
1145#endif
1146#ifdef VK_KHR_descriptor_update_template
1147 VkResult vkCreateDescriptorUpdateTemplateKHR(
1148 VkDevice device,
1149 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1150 const VkAllocationCallbacks* pAllocator,
1151 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
1152 void vkDestroyDescriptorUpdateTemplateKHR(
1153 VkDevice device,
1154 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1155 const VkAllocationCallbacks* pAllocator);
1156 void vkUpdateDescriptorSetWithTemplateKHR(
1157 VkDevice device,
1158 VkDescriptorSet descriptorSet,
1159 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1160 const void* pData);
1161#endif
1162#ifdef VK_KHR_create_renderpass2
1163 VkResult vkCreateRenderPass2KHR(
1164 VkDevice device,
1165 const VkRenderPassCreateInfo2KHR* pCreateInfo,
1166 const VkAllocationCallbacks* pAllocator,
1167 VkRenderPass* pRenderPass);
1168 void vkCmdBeginRenderPass2KHR(
1169 VkCommandBuffer commandBuffer,
1170 const VkRenderPassBeginInfo* pRenderPassBegin,
1171 const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
1172 void vkCmdNextSubpass2KHR(
1173 VkCommandBuffer commandBuffer,
1174 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
1175 const VkSubpassEndInfoKHR* pSubpassEndInfo);
1176 void vkCmdEndRenderPass2KHR(
1177 VkCommandBuffer commandBuffer,
1178 const VkSubpassEndInfoKHR* pSubpassEndInfo);
1179#endif
1180#ifdef VK_KHR_shared_presentable_image
1181 VkResult vkGetSwapchainStatusKHR(
1182 VkDevice device,
1183 VkSwapchainKHR swapchain);
1184#endif
1185#ifdef VK_KHR_external_fence_capabilities
1186 void vkGetPhysicalDeviceExternalFencePropertiesKHR(
1187 VkPhysicalDevice physicalDevice,
1188 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1189 VkExternalFenceProperties* pExternalFenceProperties);
1190#endif
1191#ifdef VK_KHR_external_fence
1192#endif
1193#ifdef VK_KHR_external_fence_win32
1194 VkResult vkImportFenceWin32HandleKHR(
1195 VkDevice device,
1196 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
1197 VkResult vkGetFenceWin32HandleKHR(
1198 VkDevice device,
1199 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1200 HANDLE* pHandle);
1201#endif
1202#ifdef VK_KHR_external_fence_fd
1203 VkResult vkImportFenceFdKHR(
1204 VkDevice device,
1205 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
1206 VkResult vkGetFenceFdKHR(
1207 VkDevice device,
1208 const VkFenceGetFdInfoKHR* pGetFdInfo,
1209 int* pFd);
1210#endif
1211#ifdef VK_KHR_maintenance2
1212#endif
1213#ifdef VK_KHR_get_surface_capabilities2
1214 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
1215 VkPhysicalDevice physicalDevice,
1216 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
1217 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
1218 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
1219 VkPhysicalDevice physicalDevice,
1220 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
1221 uint32_t* pSurfaceFormatCount,
1222 VkSurfaceFormat2KHR* pSurfaceFormats);
1223#endif
1224#ifdef VK_KHR_variable_pointers
1225#endif
1226#ifdef VK_KHR_get_display_properties2
1227 VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
1228 VkPhysicalDevice physicalDevice,
1229 uint32_t* pPropertyCount,
1230 VkDisplayProperties2KHR* pProperties);
1231 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
1232 VkPhysicalDevice physicalDevice,
1233 uint32_t* pPropertyCount,
1234 VkDisplayPlaneProperties2KHR* pProperties);
1235 VkResult vkGetDisplayModeProperties2KHR(
1236 VkPhysicalDevice physicalDevice,
1237 VkDisplayKHR display,
1238 uint32_t* pPropertyCount,
1239 VkDisplayModeProperties2KHR* pProperties);
1240 VkResult vkGetDisplayPlaneCapabilities2KHR(
1241 VkPhysicalDevice physicalDevice,
1242 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
1243 VkDisplayPlaneCapabilities2KHR* pCapabilities);
1244#endif
1245#ifdef VK_KHR_dedicated_allocation
1246#endif
1247#ifdef VK_KHR_storage_buffer_storage_class
1248#endif
1249#ifdef VK_KHR_relaxed_block_layout
1250#endif
1251#ifdef VK_KHR_get_memory_requirements2
1252 void vkGetImageMemoryRequirements2KHR(
1253 VkDevice device,
1254 const VkImageMemoryRequirementsInfo2* pInfo,
1255 VkMemoryRequirements2* pMemoryRequirements);
1256 void vkGetBufferMemoryRequirements2KHR(
1257 VkDevice device,
1258 const VkBufferMemoryRequirementsInfo2* pInfo,
1259 VkMemoryRequirements2* pMemoryRequirements);
1260 void vkGetImageSparseMemoryRequirements2KHR(
1261 VkDevice device,
1262 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1263 uint32_t* pSparseMemoryRequirementCount,
1264 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
1265#endif
1266#ifdef VK_KHR_image_format_list
1267#endif
1268#ifdef VK_KHR_sampler_ycbcr_conversion
1269 VkResult vkCreateSamplerYcbcrConversionKHR(
1270 VkDevice device,
1271 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1272 const VkAllocationCallbacks* pAllocator,
1273 VkSamplerYcbcrConversion* pYcbcrConversion);
1274 void vkDestroySamplerYcbcrConversionKHR(
1275 VkDevice device,
1276 VkSamplerYcbcrConversion ycbcrConversion,
1277 const VkAllocationCallbacks* pAllocator);
1278#endif
1279#ifdef VK_KHR_bind_memory2
1280 VkResult vkBindBufferMemory2KHR(
1281 VkDevice device,
1282 uint32_t bindInfoCount,
1283 const VkBindBufferMemoryInfo* pBindInfos);
1284 VkResult vkBindImageMemory2KHR(
1285 VkDevice device,
1286 uint32_t bindInfoCount,
1287 const VkBindImageMemoryInfo* pBindInfos);
1288#endif
1289#ifdef VK_KHR_maintenance3
1290 void vkGetDescriptorSetLayoutSupportKHR(
1291 VkDevice device,
1292 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1293 VkDescriptorSetLayoutSupport* pSupport);
1294#endif
1295#ifdef VK_KHR_draw_indirect_count
1296 void vkCmdDrawIndirectCountKHR(
1297 VkCommandBuffer commandBuffer,
1298 VkBuffer buffer,
1299 VkDeviceSize offset,
1300 VkBuffer countBuffer,
1301 VkDeviceSize countBufferOffset,
1302 uint32_t maxDrawCount,
1303 uint32_t stride);
1304 void vkCmdDrawIndexedIndirectCountKHR(
1305 VkCommandBuffer commandBuffer,
1306 VkBuffer buffer,
1307 VkDeviceSize offset,
1308 VkBuffer countBuffer,
1309 VkDeviceSize countBufferOffset,
1310 uint32_t maxDrawCount,
1311 uint32_t stride);
1312#endif
1313#ifdef VK_KHR_8bit_storage
1314#endif
Lingfeng Yang4c056b22020-07-02 11:43:57 -07001315#ifdef VK_KHR_shader_float16_int8
1316#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08001317#ifdef VK_ANDROID_native_buffer
1318 VkResult vkGetSwapchainGrallocUsageANDROID(
1319 VkDevice device,
1320 VkFormat format,
1321 VkImageUsageFlags imageUsage,
1322 int* grallocUsage);
1323 VkResult vkAcquireImageANDROID(
1324 VkDevice device,
1325 VkImage image,
1326 int nativeFenceFd,
1327 VkSemaphore semaphore,
1328 VkFence fence);
1329 VkResult vkQueueSignalReleaseImageANDROID(
1330 VkQueue queue,
1331 uint32_t waitSemaphoreCount,
1332 const VkSemaphore* pWaitSemaphores,
1333 VkImage image,
1334 int* pNativeFenceFd);
1335#endif
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -07001336#ifdef VK_EXT_debug_report
1337 VkResult vkCreateDebugReportCallbackEXT(
1338 VkInstance instance,
1339 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
1340 const VkAllocationCallbacks* pAllocator,
1341 VkDebugReportCallbackEXT* pCallback);
1342 void vkDestroyDebugReportCallbackEXT(
1343 VkInstance instance,
1344 VkDebugReportCallbackEXT callback,
1345 const VkAllocationCallbacks* pAllocator);
1346 void vkDebugReportMessageEXT(
1347 VkInstance instance,
1348 VkDebugReportFlagsEXT flags,
1349 VkDebugReportObjectTypeEXT objectType,
1350 uint64_t object,
1351 size_t location,
1352 int32_t messageCode,
1353 const char* pLayerPrefix,
1354 const char* pMessage);
1355#endif
1356#ifdef VK_NV_glsl_shader
1357#endif
1358#ifdef VK_EXT_depth_range_unrestricted
1359#endif
1360#ifdef VK_IMG_filter_cubic
1361#endif
1362#ifdef VK_AMD_rasterization_order
1363#endif
1364#ifdef VK_AMD_shader_trinary_minmax
1365#endif
1366#ifdef VK_AMD_shader_explicit_vertex_parameter
1367#endif
1368#ifdef VK_EXT_debug_marker
1369 VkResult vkDebugMarkerSetObjectTagEXT(
1370 VkDevice device,
1371 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
1372 VkResult vkDebugMarkerSetObjectNameEXT(
1373 VkDevice device,
1374 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1375 void vkCmdDebugMarkerBeginEXT(
1376 VkCommandBuffer commandBuffer,
1377 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1378 void vkCmdDebugMarkerEndEXT(
1379 VkCommandBuffer commandBuffer);
1380 void vkCmdDebugMarkerInsertEXT(
1381 VkCommandBuffer commandBuffer,
1382 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1383#endif
1384#ifdef VK_AMD_gcn_shader
1385#endif
1386#ifdef VK_NV_dedicated_allocation
1387#endif
1388#ifdef VK_AMD_draw_indirect_count
1389 void vkCmdDrawIndirectCountAMD(
1390 VkCommandBuffer commandBuffer,
1391 VkBuffer buffer,
1392 VkDeviceSize offset,
1393 VkBuffer countBuffer,
1394 VkDeviceSize countBufferOffset,
1395 uint32_t maxDrawCount,
1396 uint32_t stride);
1397 void vkCmdDrawIndexedIndirectCountAMD(
1398 VkCommandBuffer commandBuffer,
1399 VkBuffer buffer,
1400 VkDeviceSize offset,
1401 VkBuffer countBuffer,
1402 VkDeviceSize countBufferOffset,
1403 uint32_t maxDrawCount,
1404 uint32_t stride);
1405#endif
1406#ifdef VK_AMD_negative_viewport_height
1407#endif
1408#ifdef VK_AMD_gpu_shader_half_float
1409#endif
1410#ifdef VK_AMD_shader_ballot
1411#endif
1412#ifdef VK_AMD_texture_gather_bias_lod
1413#endif
1414#ifdef VK_AMD_shader_info
1415 VkResult vkGetShaderInfoAMD(
1416 VkDevice device,
1417 VkPipeline pipeline,
1418 VkShaderStageFlagBits shaderStage,
1419 VkShaderInfoTypeAMD infoType,
1420 size_t* pInfoSize,
1421 void* pInfo);
1422#endif
1423#ifdef VK_AMD_shader_image_load_store_lod
1424#endif
1425#ifdef VK_IMG_format_pvrtc
1426#endif
1427#ifdef VK_NV_external_memory_capabilities
1428 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
1429 VkPhysicalDevice physicalDevice,
1430 VkFormat format,
1431 VkImageType type,
1432 VkImageTiling tiling,
1433 VkImageUsageFlags usage,
1434 VkImageCreateFlags flags,
1435 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
1436 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
1437#endif
1438#ifdef VK_NV_external_memory
1439#endif
1440#ifdef VK_NV_external_memory_win32
1441 VkResult vkGetMemoryWin32HandleNV(
1442 VkDevice device,
1443 VkDeviceMemory memory,
1444 VkExternalMemoryHandleTypeFlagsNV handleType,
1445 HANDLE* pHandle);
1446#endif
1447#ifdef VK_NV_win32_keyed_mutex
1448#endif
1449#ifdef VK_EXT_validation_flags
1450#endif
1451#ifdef VK_NN_vi_surface
1452 VkResult vkCreateViSurfaceNN(
1453 VkInstance instance,
1454 const VkViSurfaceCreateInfoNN* pCreateInfo,
1455 const VkAllocationCallbacks* pAllocator,
1456 VkSurfaceKHR* pSurface);
1457#endif
1458#ifdef VK_EXT_shader_subgroup_ballot
1459#endif
1460#ifdef VK_EXT_shader_subgroup_vote
1461#endif
1462#ifdef VK_EXT_conditional_rendering
1463 void vkCmdBeginConditionalRenderingEXT(
1464 VkCommandBuffer commandBuffer,
1465 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
1466 void vkCmdEndConditionalRenderingEXT(
1467 VkCommandBuffer commandBuffer);
1468#endif
1469#ifdef VK_NVX_device_generated_commands
1470 void vkCmdProcessCommandsNVX(
1471 VkCommandBuffer commandBuffer,
1472 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
1473 void vkCmdReserveSpaceForCommandsNVX(
1474 VkCommandBuffer commandBuffer,
1475 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
1476 VkResult vkCreateIndirectCommandsLayoutNVX(
1477 VkDevice device,
1478 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
1479 const VkAllocationCallbacks* pAllocator,
1480 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
1481 void vkDestroyIndirectCommandsLayoutNVX(
1482 VkDevice device,
1483 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
1484 const VkAllocationCallbacks* pAllocator);
1485 VkResult vkCreateObjectTableNVX(
1486 VkDevice device,
1487 const VkObjectTableCreateInfoNVX* pCreateInfo,
1488 const VkAllocationCallbacks* pAllocator,
1489 VkObjectTableNVX* pObjectTable);
1490 void vkDestroyObjectTableNVX(
1491 VkDevice device,
1492 VkObjectTableNVX objectTable,
1493 const VkAllocationCallbacks* pAllocator);
1494 VkResult vkRegisterObjectsNVX(
1495 VkDevice device,
1496 VkObjectTableNVX objectTable,
1497 uint32_t objectCount,
1498 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
1499 const uint32_t* pObjectIndices);
1500 VkResult vkUnregisterObjectsNVX(
1501 VkDevice device,
1502 VkObjectTableNVX objectTable,
1503 uint32_t objectCount,
1504 const VkObjectEntryTypeNVX* pObjectEntryTypes,
1505 const uint32_t* pObjectIndices);
1506 void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
1507 VkPhysicalDevice physicalDevice,
1508 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
1509 VkDeviceGeneratedCommandsLimitsNVX* pLimits);
1510#endif
1511#ifdef VK_NV_clip_space_w_scaling
1512 void vkCmdSetViewportWScalingNV(
1513 VkCommandBuffer commandBuffer,
1514 uint32_t firstViewport,
1515 uint32_t viewportCount,
1516 const VkViewportWScalingNV* pViewportWScalings);
1517#endif
1518#ifdef VK_EXT_direct_mode_display
1519 VkResult vkReleaseDisplayEXT(
1520 VkPhysicalDevice physicalDevice,
1521 VkDisplayKHR display);
1522#endif
1523#ifdef VK_EXT_acquire_xlib_display
1524 VkResult vkAcquireXlibDisplayEXT(
1525 VkPhysicalDevice physicalDevice,
1526 Display* dpy,
1527 VkDisplayKHR display);
1528 VkResult vkGetRandROutputDisplayEXT(
1529 VkPhysicalDevice physicalDevice,
1530 Display* dpy,
1531 RROutput rrOutput,
1532 VkDisplayKHR* pDisplay);
1533#endif
1534#ifdef VK_EXT_display_surface_counter
1535 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
1536 VkPhysicalDevice physicalDevice,
1537 VkSurfaceKHR surface,
1538 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
1539#endif
1540#ifdef VK_EXT_display_control
1541 VkResult vkDisplayPowerControlEXT(
1542 VkDevice device,
1543 VkDisplayKHR display,
1544 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
1545 VkResult vkRegisterDeviceEventEXT(
1546 VkDevice device,
1547 const VkDeviceEventInfoEXT* pDeviceEventInfo,
1548 const VkAllocationCallbacks* pAllocator,
1549 VkFence* pFence);
1550 VkResult vkRegisterDisplayEventEXT(
1551 VkDevice device,
1552 VkDisplayKHR display,
1553 const VkDisplayEventInfoEXT* pDisplayEventInfo,
1554 const VkAllocationCallbacks* pAllocator,
1555 VkFence* pFence);
1556 VkResult vkGetSwapchainCounterEXT(
1557 VkDevice device,
1558 VkSwapchainKHR swapchain,
1559 VkSurfaceCounterFlagBitsEXT counter,
1560 uint64_t* pCounterValue);
1561#endif
1562#ifdef VK_GOOGLE_display_timing
1563 VkResult vkGetRefreshCycleDurationGOOGLE(
1564 VkDevice device,
1565 VkSwapchainKHR swapchain,
1566 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
1567 VkResult vkGetPastPresentationTimingGOOGLE(
1568 VkDevice device,
1569 VkSwapchainKHR swapchain,
1570 uint32_t* pPresentationTimingCount,
1571 VkPastPresentationTimingGOOGLE* pPresentationTimings);
1572#endif
1573#ifdef VK_NV_sample_mask_override_coverage
1574#endif
1575#ifdef VK_NV_geometry_shader_passthrough
1576#endif
1577#ifdef VK_NV_viewport_array2
1578#endif
1579#ifdef VK_NVX_multiview_per_view_attributes
1580#endif
1581#ifdef VK_NV_viewport_swizzle
1582#endif
1583#ifdef VK_EXT_discard_rectangles
1584 void vkCmdSetDiscardRectangleEXT(
1585 VkCommandBuffer commandBuffer,
1586 uint32_t firstDiscardRectangle,
1587 uint32_t discardRectangleCount,
1588 const VkRect2D* pDiscardRectangles);
1589#endif
1590#ifdef VK_EXT_conservative_rasterization
1591#endif
1592#ifdef VK_EXT_swapchain_colorspace
1593#endif
1594#ifdef VK_EXT_hdr_metadata
1595 void vkSetHdrMetadataEXT(
1596 VkDevice device,
1597 uint32_t swapchainCount,
1598 const VkSwapchainKHR* pSwapchains,
1599 const VkHdrMetadataEXT* pMetadata);
1600#endif
1601#ifdef VK_MVK_ios_surface
1602 VkResult vkCreateIOSSurfaceMVK(
1603 VkInstance instance,
1604 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
1605 const VkAllocationCallbacks* pAllocator,
1606 VkSurfaceKHR* pSurface);
1607#endif
1608#ifdef VK_MVK_macos_surface
1609 VkResult vkCreateMacOSSurfaceMVK(
1610 VkInstance instance,
1611 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
1612 const VkAllocationCallbacks* pAllocator,
1613 VkSurfaceKHR* pSurface);
1614#endif
1615#ifdef VK_EXT_external_memory_dma_buf
1616#endif
1617#ifdef VK_EXT_queue_family_foreign
1618#endif
1619#ifdef VK_EXT_debug_utils
1620 VkResult vkSetDebugUtilsObjectNameEXT(
1621 VkDevice device,
1622 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
1623 VkResult vkSetDebugUtilsObjectTagEXT(
1624 VkDevice device,
1625 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
1626 void vkQueueBeginDebugUtilsLabelEXT(
1627 VkQueue queue,
1628 const VkDebugUtilsLabelEXT* pLabelInfo);
1629 void vkQueueEndDebugUtilsLabelEXT(
1630 VkQueue queue);
1631 void vkQueueInsertDebugUtilsLabelEXT(
1632 VkQueue queue,
1633 const VkDebugUtilsLabelEXT* pLabelInfo);
1634 void vkCmdBeginDebugUtilsLabelEXT(
1635 VkCommandBuffer commandBuffer,
1636 const VkDebugUtilsLabelEXT* pLabelInfo);
1637 void vkCmdEndDebugUtilsLabelEXT(
1638 VkCommandBuffer commandBuffer);
1639 void vkCmdInsertDebugUtilsLabelEXT(
1640 VkCommandBuffer commandBuffer,
1641 const VkDebugUtilsLabelEXT* pLabelInfo);
1642 VkResult vkCreateDebugUtilsMessengerEXT(
1643 VkInstance instance,
1644 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
1645 const VkAllocationCallbacks* pAllocator,
1646 VkDebugUtilsMessengerEXT* pMessenger);
1647 void vkDestroyDebugUtilsMessengerEXT(
1648 VkInstance instance,
1649 VkDebugUtilsMessengerEXT messenger,
1650 const VkAllocationCallbacks* pAllocator);
1651 void vkSubmitDebugUtilsMessageEXT(
1652 VkInstance instance,
1653 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
1654 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
1655 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
1656#endif
1657#ifdef VK_ANDROID_external_memory_android_hardware_buffer
1658 VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
1659 VkDevice device,
1660 const AHardwareBuffer* buffer,
1661 VkAndroidHardwareBufferPropertiesANDROID* pProperties);
1662 VkResult vkGetMemoryAndroidHardwareBufferANDROID(
1663 VkDevice device,
1664 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
1665 AHardwareBuffer** pBuffer);
1666#endif
1667#ifdef VK_EXT_sampler_filter_minmax
1668#endif
1669#ifdef VK_AMD_gpu_shader_int16
1670#endif
1671#ifdef VK_AMD_mixed_attachment_samples
1672#endif
1673#ifdef VK_AMD_shader_fragment_mask
1674#endif
1675#ifdef VK_EXT_shader_stencil_export
1676#endif
1677#ifdef VK_EXT_sample_locations
1678 void vkCmdSetSampleLocationsEXT(
1679 VkCommandBuffer commandBuffer,
1680 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
1681 void vkGetPhysicalDeviceMultisamplePropertiesEXT(
1682 VkPhysicalDevice physicalDevice,
1683 VkSampleCountFlagBits samples,
1684 VkMultisamplePropertiesEXT* pMultisampleProperties);
1685#endif
1686#ifdef VK_EXT_blend_operation_advanced
1687#endif
1688#ifdef VK_NV_fragment_coverage_to_color
1689#endif
1690#ifdef VK_NV_framebuffer_mixed_samples
1691#endif
1692#ifdef VK_NV_fill_rectangle
1693#endif
1694#ifdef VK_EXT_post_depth_coverage
1695#endif
1696#ifdef VK_EXT_validation_cache
1697 VkResult vkCreateValidationCacheEXT(
1698 VkDevice device,
1699 const VkValidationCacheCreateInfoEXT* pCreateInfo,
1700 const VkAllocationCallbacks* pAllocator,
1701 VkValidationCacheEXT* pValidationCache);
1702 void vkDestroyValidationCacheEXT(
1703 VkDevice device,
1704 VkValidationCacheEXT validationCache,
1705 const VkAllocationCallbacks* pAllocator);
1706 VkResult vkMergeValidationCachesEXT(
1707 VkDevice device,
1708 VkValidationCacheEXT dstCache,
1709 uint32_t srcCacheCount,
1710 const VkValidationCacheEXT* pSrcCaches);
1711 VkResult vkGetValidationCacheDataEXT(
1712 VkDevice device,
1713 VkValidationCacheEXT validationCache,
1714 size_t* pDataSize,
1715 void* pData);
1716#endif
1717#ifdef VK_EXT_descriptor_indexing
1718#endif
1719#ifdef VK_EXT_shader_viewport_index_layer
1720#endif
1721#ifdef VK_EXT_global_priority
1722#endif
1723#ifdef VK_EXT_external_memory_host
1724 VkResult vkGetMemoryHostPointerPropertiesEXT(
1725 VkDevice device,
1726 VkExternalMemoryHandleTypeFlagBits handleType,
1727 const void* pHostPointer,
1728 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
1729#endif
1730#ifdef VK_AMD_buffer_marker
1731 void vkCmdWriteBufferMarkerAMD(
1732 VkCommandBuffer commandBuffer,
1733 VkPipelineStageFlagBits pipelineStage,
1734 VkBuffer dstBuffer,
1735 VkDeviceSize dstOffset,
1736 uint32_t marker);
1737#endif
1738#ifdef VK_AMD_shader_core_properties
1739#endif
1740#ifdef VK_EXT_vertex_attribute_divisor
1741#endif
1742#ifdef VK_NV_shader_subgroup_partitioned
1743#endif
1744#ifdef VK_NV_device_diagnostic_checkpoints
1745 void vkCmdSetCheckpointNV(
1746 VkCommandBuffer commandBuffer,
1747 const void* pCheckpointMarker);
1748 void vkGetQueueCheckpointDataNV(
1749 VkQueue queue,
1750 uint32_t* pCheckpointDataCount,
1751 VkCheckpointDataNV* pCheckpointData);
1752#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08001753#ifdef VK_GOOGLE_address_space
1754 VkResult vkMapMemoryIntoAddressSpaceGOOGLE(
1755 VkDevice device,
1756 VkDeviceMemory memory,
1757 uint64_t* pAddress);
1758#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08001759#ifdef VK_GOOGLE_color_buffer
1760 VkResult vkRegisterImageColorBufferGOOGLE(
1761 VkDevice device,
1762 VkImage image,
1763 uint32_t colorBuffer);
1764 VkResult vkRegisterBufferColorBufferGOOGLE(
1765 VkDevice device,
1766 VkBuffer buffer,
1767 uint32_t colorBuffer);
1768#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001769#ifdef VK_GOOGLE_sized_descriptor_update_template
1770 void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
1771 VkDevice device,
1772 VkDescriptorSet descriptorSet,
1773 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1774 uint32_t imageInfoCount,
1775 uint32_t bufferInfoCount,
1776 uint32_t bufferViewCount,
1777 const uint32_t* pImageInfoEntryIndices,
1778 const uint32_t* pBufferInfoEntryIndices,
1779 const uint32_t* pBufferViewEntryIndices,
1780 const VkDescriptorImageInfo* pImageInfos,
1781 const VkDescriptorBufferInfo* pBufferInfos,
1782 const VkBufferView* pBufferViews);
1783#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001784#ifdef VK_GOOGLE_async_command_buffers
1785 void vkBeginCommandBufferAsyncGOOGLE(
1786 VkCommandBuffer commandBuffer,
1787 const VkCommandBufferBeginInfo* pBeginInfo);
1788 void vkEndCommandBufferAsyncGOOGLE(
1789 VkCommandBuffer commandBuffer);
1790 void vkResetCommandBufferAsyncGOOGLE(
1791 VkCommandBuffer commandBuffer,
1792 VkCommandBufferResetFlags flags);
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001793 void vkCommandBufferHostSyncGOOGLE(
1794 VkCommandBuffer commandBuffer,
1795 uint32_t needHostSync,
1796 uint32_t sequenceNumber);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001797#endif
Lingfeng Yang87f11962019-06-27 16:28:53 +00001798#ifdef VK_GOOGLE_create_resources_with_requirements
1799 VkResult vkCreateImageWithRequirementsGOOGLE(
1800 VkDevice device,
1801 const VkImageCreateInfo* pCreateInfo,
1802 const VkAllocationCallbacks* pAllocator,
1803 VkImage* pImage,
1804 VkMemoryRequirements* pMemoryRequirements);
1805 VkResult vkCreateBufferWithRequirementsGOOGLE(
1806 VkDevice device,
1807 const VkBufferCreateInfo* pCreateInfo,
1808 const VkAllocationCallbacks* pAllocator,
1809 VkBuffer* pBuffer,
1810 VkMemoryRequirements* pMemoryRequirements);
1811#endif
Lingfeng Yang4c542412020-02-04 18:18:32 -08001812#ifdef VK_GOOGLE_address_space_info
1813 VkResult vkGetMemoryHostAddressInfoGOOGLE(
1814 VkDevice device,
1815 VkDeviceMemory memory,
1816 uint64_t* pAddress,
1817 uint64_t* pSize,
1818 uint64_t* pHostmemId);
1819#endif
Lingfeng Yang2f39a1f2020-04-14 19:24:41 -07001820#ifdef VK_GOOGLE_free_memory_sync
1821 VkResult vkFreeMemorySyncGOOGLE(
1822 VkDevice device,
1823 VkDeviceMemory memory,
1824 const VkAllocationCallbacks* pAllocator);
1825#endif
Lingfeng Yangf89f75d2020-07-09 17:42:33 -07001826#ifdef VK_GOOGLE_async_queue_submit
1827 void vkQueueHostSyncGOOGLE(
1828 VkQueue queue,
1829 uint32_t needHostSync,
1830 uint32_t sequenceNumber);
1831 void vkQueueSubmitAsyncGOOGLE(
1832 VkQueue queue,
1833 uint32_t submitCount,
1834 const VkSubmitInfo* pSubmits,
1835 VkFence fence);
1836 void vkQueueWaitIdleAsyncGOOGLE(
1837 VkQueue queue);
1838 void vkQueueBindSparseAsyncGOOGLE(
1839 VkQueue queue,
1840 uint32_t bindInfoCount,
1841 const VkBindSparseInfo* pBindInfo,
1842 VkFence fence);
1843#endif
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -07001844
Lingfeng Yanga126a8a2018-11-01 18:21:40 -07001845private:
1846 class Impl;
1847 std::unique_ptr<Impl> mImpl;
Lingfeng Yang6a283672018-11-01 13:37:56 -07001848};
1849
Lingfeng Yangb1d90102018-11-29 16:10:36 -08001850} // namespace goldfish_vk