blob: daf015d1d8eb5dbc5167ddacdda9645b3c27c307 [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
43 void flush(); // Cross-thread flushing!!!111
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 Yang808a6312018-11-13 21:06:15 -08001310#ifdef VK_ANDROID_native_buffer
1311 VkResult vkGetSwapchainGrallocUsageANDROID(
1312 VkDevice device,
1313 VkFormat format,
1314 VkImageUsageFlags imageUsage,
1315 int* grallocUsage);
1316 VkResult vkAcquireImageANDROID(
1317 VkDevice device,
1318 VkImage image,
1319 int nativeFenceFd,
1320 VkSemaphore semaphore,
1321 VkFence fence);
1322 VkResult vkQueueSignalReleaseImageANDROID(
1323 VkQueue queue,
1324 uint32_t waitSemaphoreCount,
1325 const VkSemaphore* pWaitSemaphores,
1326 VkImage image,
1327 int* pNativeFenceFd);
1328#endif
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -07001329#ifdef VK_EXT_debug_report
1330 VkResult vkCreateDebugReportCallbackEXT(
1331 VkInstance instance,
1332 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
1333 const VkAllocationCallbacks* pAllocator,
1334 VkDebugReportCallbackEXT* pCallback);
1335 void vkDestroyDebugReportCallbackEXT(
1336 VkInstance instance,
1337 VkDebugReportCallbackEXT callback,
1338 const VkAllocationCallbacks* pAllocator);
1339 void vkDebugReportMessageEXT(
1340 VkInstance instance,
1341 VkDebugReportFlagsEXT flags,
1342 VkDebugReportObjectTypeEXT objectType,
1343 uint64_t object,
1344 size_t location,
1345 int32_t messageCode,
1346 const char* pLayerPrefix,
1347 const char* pMessage);
1348#endif
1349#ifdef VK_NV_glsl_shader
1350#endif
1351#ifdef VK_EXT_depth_range_unrestricted
1352#endif
1353#ifdef VK_IMG_filter_cubic
1354#endif
1355#ifdef VK_AMD_rasterization_order
1356#endif
1357#ifdef VK_AMD_shader_trinary_minmax
1358#endif
1359#ifdef VK_AMD_shader_explicit_vertex_parameter
1360#endif
1361#ifdef VK_EXT_debug_marker
1362 VkResult vkDebugMarkerSetObjectTagEXT(
1363 VkDevice device,
1364 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
1365 VkResult vkDebugMarkerSetObjectNameEXT(
1366 VkDevice device,
1367 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1368 void vkCmdDebugMarkerBeginEXT(
1369 VkCommandBuffer commandBuffer,
1370 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1371 void vkCmdDebugMarkerEndEXT(
1372 VkCommandBuffer commandBuffer);
1373 void vkCmdDebugMarkerInsertEXT(
1374 VkCommandBuffer commandBuffer,
1375 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1376#endif
1377#ifdef VK_AMD_gcn_shader
1378#endif
1379#ifdef VK_NV_dedicated_allocation
1380#endif
1381#ifdef VK_AMD_draw_indirect_count
1382 void vkCmdDrawIndirectCountAMD(
1383 VkCommandBuffer commandBuffer,
1384 VkBuffer buffer,
1385 VkDeviceSize offset,
1386 VkBuffer countBuffer,
1387 VkDeviceSize countBufferOffset,
1388 uint32_t maxDrawCount,
1389 uint32_t stride);
1390 void vkCmdDrawIndexedIndirectCountAMD(
1391 VkCommandBuffer commandBuffer,
1392 VkBuffer buffer,
1393 VkDeviceSize offset,
1394 VkBuffer countBuffer,
1395 VkDeviceSize countBufferOffset,
1396 uint32_t maxDrawCount,
1397 uint32_t stride);
1398#endif
1399#ifdef VK_AMD_negative_viewport_height
1400#endif
1401#ifdef VK_AMD_gpu_shader_half_float
1402#endif
1403#ifdef VK_AMD_shader_ballot
1404#endif
1405#ifdef VK_AMD_texture_gather_bias_lod
1406#endif
1407#ifdef VK_AMD_shader_info
1408 VkResult vkGetShaderInfoAMD(
1409 VkDevice device,
1410 VkPipeline pipeline,
1411 VkShaderStageFlagBits shaderStage,
1412 VkShaderInfoTypeAMD infoType,
1413 size_t* pInfoSize,
1414 void* pInfo);
1415#endif
1416#ifdef VK_AMD_shader_image_load_store_lod
1417#endif
1418#ifdef VK_IMG_format_pvrtc
1419#endif
1420#ifdef VK_NV_external_memory_capabilities
1421 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
1422 VkPhysicalDevice physicalDevice,
1423 VkFormat format,
1424 VkImageType type,
1425 VkImageTiling tiling,
1426 VkImageUsageFlags usage,
1427 VkImageCreateFlags flags,
1428 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
1429 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
1430#endif
1431#ifdef VK_NV_external_memory
1432#endif
1433#ifdef VK_NV_external_memory_win32
1434 VkResult vkGetMemoryWin32HandleNV(
1435 VkDevice device,
1436 VkDeviceMemory memory,
1437 VkExternalMemoryHandleTypeFlagsNV handleType,
1438 HANDLE* pHandle);
1439#endif
1440#ifdef VK_NV_win32_keyed_mutex
1441#endif
1442#ifdef VK_EXT_validation_flags
1443#endif
1444#ifdef VK_NN_vi_surface
1445 VkResult vkCreateViSurfaceNN(
1446 VkInstance instance,
1447 const VkViSurfaceCreateInfoNN* pCreateInfo,
1448 const VkAllocationCallbacks* pAllocator,
1449 VkSurfaceKHR* pSurface);
1450#endif
1451#ifdef VK_EXT_shader_subgroup_ballot
1452#endif
1453#ifdef VK_EXT_shader_subgroup_vote
1454#endif
1455#ifdef VK_EXT_conditional_rendering
1456 void vkCmdBeginConditionalRenderingEXT(
1457 VkCommandBuffer commandBuffer,
1458 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
1459 void vkCmdEndConditionalRenderingEXT(
1460 VkCommandBuffer commandBuffer);
1461#endif
1462#ifdef VK_NVX_device_generated_commands
1463 void vkCmdProcessCommandsNVX(
1464 VkCommandBuffer commandBuffer,
1465 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
1466 void vkCmdReserveSpaceForCommandsNVX(
1467 VkCommandBuffer commandBuffer,
1468 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
1469 VkResult vkCreateIndirectCommandsLayoutNVX(
1470 VkDevice device,
1471 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
1472 const VkAllocationCallbacks* pAllocator,
1473 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
1474 void vkDestroyIndirectCommandsLayoutNVX(
1475 VkDevice device,
1476 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
1477 const VkAllocationCallbacks* pAllocator);
1478 VkResult vkCreateObjectTableNVX(
1479 VkDevice device,
1480 const VkObjectTableCreateInfoNVX* pCreateInfo,
1481 const VkAllocationCallbacks* pAllocator,
1482 VkObjectTableNVX* pObjectTable);
1483 void vkDestroyObjectTableNVX(
1484 VkDevice device,
1485 VkObjectTableNVX objectTable,
1486 const VkAllocationCallbacks* pAllocator);
1487 VkResult vkRegisterObjectsNVX(
1488 VkDevice device,
1489 VkObjectTableNVX objectTable,
1490 uint32_t objectCount,
1491 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
1492 const uint32_t* pObjectIndices);
1493 VkResult vkUnregisterObjectsNVX(
1494 VkDevice device,
1495 VkObjectTableNVX objectTable,
1496 uint32_t objectCount,
1497 const VkObjectEntryTypeNVX* pObjectEntryTypes,
1498 const uint32_t* pObjectIndices);
1499 void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
1500 VkPhysicalDevice physicalDevice,
1501 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
1502 VkDeviceGeneratedCommandsLimitsNVX* pLimits);
1503#endif
1504#ifdef VK_NV_clip_space_w_scaling
1505 void vkCmdSetViewportWScalingNV(
1506 VkCommandBuffer commandBuffer,
1507 uint32_t firstViewport,
1508 uint32_t viewportCount,
1509 const VkViewportWScalingNV* pViewportWScalings);
1510#endif
1511#ifdef VK_EXT_direct_mode_display
1512 VkResult vkReleaseDisplayEXT(
1513 VkPhysicalDevice physicalDevice,
1514 VkDisplayKHR display);
1515#endif
1516#ifdef VK_EXT_acquire_xlib_display
1517 VkResult vkAcquireXlibDisplayEXT(
1518 VkPhysicalDevice physicalDevice,
1519 Display* dpy,
1520 VkDisplayKHR display);
1521 VkResult vkGetRandROutputDisplayEXT(
1522 VkPhysicalDevice physicalDevice,
1523 Display* dpy,
1524 RROutput rrOutput,
1525 VkDisplayKHR* pDisplay);
1526#endif
1527#ifdef VK_EXT_display_surface_counter
1528 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
1529 VkPhysicalDevice physicalDevice,
1530 VkSurfaceKHR surface,
1531 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
1532#endif
1533#ifdef VK_EXT_display_control
1534 VkResult vkDisplayPowerControlEXT(
1535 VkDevice device,
1536 VkDisplayKHR display,
1537 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
1538 VkResult vkRegisterDeviceEventEXT(
1539 VkDevice device,
1540 const VkDeviceEventInfoEXT* pDeviceEventInfo,
1541 const VkAllocationCallbacks* pAllocator,
1542 VkFence* pFence);
1543 VkResult vkRegisterDisplayEventEXT(
1544 VkDevice device,
1545 VkDisplayKHR display,
1546 const VkDisplayEventInfoEXT* pDisplayEventInfo,
1547 const VkAllocationCallbacks* pAllocator,
1548 VkFence* pFence);
1549 VkResult vkGetSwapchainCounterEXT(
1550 VkDevice device,
1551 VkSwapchainKHR swapchain,
1552 VkSurfaceCounterFlagBitsEXT counter,
1553 uint64_t* pCounterValue);
1554#endif
1555#ifdef VK_GOOGLE_display_timing
1556 VkResult vkGetRefreshCycleDurationGOOGLE(
1557 VkDevice device,
1558 VkSwapchainKHR swapchain,
1559 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
1560 VkResult vkGetPastPresentationTimingGOOGLE(
1561 VkDevice device,
1562 VkSwapchainKHR swapchain,
1563 uint32_t* pPresentationTimingCount,
1564 VkPastPresentationTimingGOOGLE* pPresentationTimings);
1565#endif
1566#ifdef VK_NV_sample_mask_override_coverage
1567#endif
1568#ifdef VK_NV_geometry_shader_passthrough
1569#endif
1570#ifdef VK_NV_viewport_array2
1571#endif
1572#ifdef VK_NVX_multiview_per_view_attributes
1573#endif
1574#ifdef VK_NV_viewport_swizzle
1575#endif
1576#ifdef VK_EXT_discard_rectangles
1577 void vkCmdSetDiscardRectangleEXT(
1578 VkCommandBuffer commandBuffer,
1579 uint32_t firstDiscardRectangle,
1580 uint32_t discardRectangleCount,
1581 const VkRect2D* pDiscardRectangles);
1582#endif
1583#ifdef VK_EXT_conservative_rasterization
1584#endif
1585#ifdef VK_EXT_swapchain_colorspace
1586#endif
1587#ifdef VK_EXT_hdr_metadata
1588 void vkSetHdrMetadataEXT(
1589 VkDevice device,
1590 uint32_t swapchainCount,
1591 const VkSwapchainKHR* pSwapchains,
1592 const VkHdrMetadataEXT* pMetadata);
1593#endif
1594#ifdef VK_MVK_ios_surface
1595 VkResult vkCreateIOSSurfaceMVK(
1596 VkInstance instance,
1597 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
1598 const VkAllocationCallbacks* pAllocator,
1599 VkSurfaceKHR* pSurface);
1600#endif
1601#ifdef VK_MVK_macos_surface
1602 VkResult vkCreateMacOSSurfaceMVK(
1603 VkInstance instance,
1604 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
1605 const VkAllocationCallbacks* pAllocator,
1606 VkSurfaceKHR* pSurface);
1607#endif
1608#ifdef VK_EXT_external_memory_dma_buf
1609#endif
1610#ifdef VK_EXT_queue_family_foreign
1611#endif
1612#ifdef VK_EXT_debug_utils
1613 VkResult vkSetDebugUtilsObjectNameEXT(
1614 VkDevice device,
1615 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
1616 VkResult vkSetDebugUtilsObjectTagEXT(
1617 VkDevice device,
1618 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
1619 void vkQueueBeginDebugUtilsLabelEXT(
1620 VkQueue queue,
1621 const VkDebugUtilsLabelEXT* pLabelInfo);
1622 void vkQueueEndDebugUtilsLabelEXT(
1623 VkQueue queue);
1624 void vkQueueInsertDebugUtilsLabelEXT(
1625 VkQueue queue,
1626 const VkDebugUtilsLabelEXT* pLabelInfo);
1627 void vkCmdBeginDebugUtilsLabelEXT(
1628 VkCommandBuffer commandBuffer,
1629 const VkDebugUtilsLabelEXT* pLabelInfo);
1630 void vkCmdEndDebugUtilsLabelEXT(
1631 VkCommandBuffer commandBuffer);
1632 void vkCmdInsertDebugUtilsLabelEXT(
1633 VkCommandBuffer commandBuffer,
1634 const VkDebugUtilsLabelEXT* pLabelInfo);
1635 VkResult vkCreateDebugUtilsMessengerEXT(
1636 VkInstance instance,
1637 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
1638 const VkAllocationCallbacks* pAllocator,
1639 VkDebugUtilsMessengerEXT* pMessenger);
1640 void vkDestroyDebugUtilsMessengerEXT(
1641 VkInstance instance,
1642 VkDebugUtilsMessengerEXT messenger,
1643 const VkAllocationCallbacks* pAllocator);
1644 void vkSubmitDebugUtilsMessageEXT(
1645 VkInstance instance,
1646 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
1647 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
1648 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
1649#endif
1650#ifdef VK_ANDROID_external_memory_android_hardware_buffer
1651 VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
1652 VkDevice device,
1653 const AHardwareBuffer* buffer,
1654 VkAndroidHardwareBufferPropertiesANDROID* pProperties);
1655 VkResult vkGetMemoryAndroidHardwareBufferANDROID(
1656 VkDevice device,
1657 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
1658 AHardwareBuffer** pBuffer);
1659#endif
1660#ifdef VK_EXT_sampler_filter_minmax
1661#endif
1662#ifdef VK_AMD_gpu_shader_int16
1663#endif
1664#ifdef VK_AMD_mixed_attachment_samples
1665#endif
1666#ifdef VK_AMD_shader_fragment_mask
1667#endif
1668#ifdef VK_EXT_shader_stencil_export
1669#endif
1670#ifdef VK_EXT_sample_locations
1671 void vkCmdSetSampleLocationsEXT(
1672 VkCommandBuffer commandBuffer,
1673 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
1674 void vkGetPhysicalDeviceMultisamplePropertiesEXT(
1675 VkPhysicalDevice physicalDevice,
1676 VkSampleCountFlagBits samples,
1677 VkMultisamplePropertiesEXT* pMultisampleProperties);
1678#endif
1679#ifdef VK_EXT_blend_operation_advanced
1680#endif
1681#ifdef VK_NV_fragment_coverage_to_color
1682#endif
1683#ifdef VK_NV_framebuffer_mixed_samples
1684#endif
1685#ifdef VK_NV_fill_rectangle
1686#endif
1687#ifdef VK_EXT_post_depth_coverage
1688#endif
1689#ifdef VK_EXT_validation_cache
1690 VkResult vkCreateValidationCacheEXT(
1691 VkDevice device,
1692 const VkValidationCacheCreateInfoEXT* pCreateInfo,
1693 const VkAllocationCallbacks* pAllocator,
1694 VkValidationCacheEXT* pValidationCache);
1695 void vkDestroyValidationCacheEXT(
1696 VkDevice device,
1697 VkValidationCacheEXT validationCache,
1698 const VkAllocationCallbacks* pAllocator);
1699 VkResult vkMergeValidationCachesEXT(
1700 VkDevice device,
1701 VkValidationCacheEXT dstCache,
1702 uint32_t srcCacheCount,
1703 const VkValidationCacheEXT* pSrcCaches);
1704 VkResult vkGetValidationCacheDataEXT(
1705 VkDevice device,
1706 VkValidationCacheEXT validationCache,
1707 size_t* pDataSize,
1708 void* pData);
1709#endif
1710#ifdef VK_EXT_descriptor_indexing
1711#endif
1712#ifdef VK_EXT_shader_viewport_index_layer
1713#endif
1714#ifdef VK_EXT_global_priority
1715#endif
1716#ifdef VK_EXT_external_memory_host
1717 VkResult vkGetMemoryHostPointerPropertiesEXT(
1718 VkDevice device,
1719 VkExternalMemoryHandleTypeFlagBits handleType,
1720 const void* pHostPointer,
1721 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
1722#endif
1723#ifdef VK_AMD_buffer_marker
1724 void vkCmdWriteBufferMarkerAMD(
1725 VkCommandBuffer commandBuffer,
1726 VkPipelineStageFlagBits pipelineStage,
1727 VkBuffer dstBuffer,
1728 VkDeviceSize dstOffset,
1729 uint32_t marker);
1730#endif
1731#ifdef VK_AMD_shader_core_properties
1732#endif
1733#ifdef VK_EXT_vertex_attribute_divisor
1734#endif
1735#ifdef VK_NV_shader_subgroup_partitioned
1736#endif
1737#ifdef VK_NV_device_diagnostic_checkpoints
1738 void vkCmdSetCheckpointNV(
1739 VkCommandBuffer commandBuffer,
1740 const void* pCheckpointMarker);
1741 void vkGetQueueCheckpointDataNV(
1742 VkQueue queue,
1743 uint32_t* pCheckpointDataCount,
1744 VkCheckpointDataNV* pCheckpointData);
1745#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08001746#ifdef VK_GOOGLE_address_space
1747 VkResult vkMapMemoryIntoAddressSpaceGOOGLE(
1748 VkDevice device,
1749 VkDeviceMemory memory,
1750 uint64_t* pAddress);
1751#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08001752#ifdef VK_GOOGLE_color_buffer
1753 VkResult vkRegisterImageColorBufferGOOGLE(
1754 VkDevice device,
1755 VkImage image,
1756 uint32_t colorBuffer);
1757 VkResult vkRegisterBufferColorBufferGOOGLE(
1758 VkDevice device,
1759 VkBuffer buffer,
1760 uint32_t colorBuffer);
1761#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001762#ifdef VK_GOOGLE_sized_descriptor_update_template
1763 void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
1764 VkDevice device,
1765 VkDescriptorSet descriptorSet,
1766 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1767 uint32_t imageInfoCount,
1768 uint32_t bufferInfoCount,
1769 uint32_t bufferViewCount,
1770 const uint32_t* pImageInfoEntryIndices,
1771 const uint32_t* pBufferInfoEntryIndices,
1772 const uint32_t* pBufferViewEntryIndices,
1773 const VkDescriptorImageInfo* pImageInfos,
1774 const VkDescriptorBufferInfo* pBufferInfos,
1775 const VkBufferView* pBufferViews);
1776#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001777#ifdef VK_GOOGLE_async_command_buffers
1778 void vkBeginCommandBufferAsyncGOOGLE(
1779 VkCommandBuffer commandBuffer,
1780 const VkCommandBufferBeginInfo* pBeginInfo);
1781 void vkEndCommandBufferAsyncGOOGLE(
1782 VkCommandBuffer commandBuffer);
1783 void vkResetCommandBufferAsyncGOOGLE(
1784 VkCommandBuffer commandBuffer,
1785 VkCommandBufferResetFlags flags);
1786#endif
Lingfeng Yangf4d77ef2018-11-02 23:21:37 -07001787
Lingfeng Yanga126a8a2018-11-01 18:21:40 -07001788private:
1789 class Impl;
1790 std::unique_ptr<Impl> mImpl;
Lingfeng Yang6a283672018-11-01 13:37:56 -07001791};
1792
Lingfeng Yangb1d90102018-11-29 16:10:36 -08001793} // namespace goldfish_vk