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