blob: d1599b76d77bd8ffb8051831150a03fa58320a40 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<registry>
<comment>
Copyright 2023 Google LLC
SPDX-License-Identifier: MIT
</comment>
<comment>
This file, vk_gfxstream.xml, is the Vulkan API Registry for gfxstream
specific entries.
</comment>
<types comment="Vulkan type definitions">
<!-- b/295587347 VkNativeBufferANDROID diverged from upstream -->
<type category="struct" name="VkNativeBufferANDROID" structextends="VkImageCreateInfo">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member noautovalidity="true">const <type>uint32_t</type>* <name>handle</name></member>
<member><type>int</type> <name>stride</name></member>
<member><type>int</type> <name>format</name></member>
<member><type>int</type> <name>usage</name></member>
<member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
</type>
<type category="struct" name="VkImportColorBufferGOOGLE" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>colorBuffer</name></member>
</type>
<type category="struct" name="VkImportBufferGOOGLE" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>buffer</name></member>
</type>
<type category="struct" name="VkCreateBlobGOOGLE" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>blobMem</name></member>
<member><type>uint32_t</type> <name>blobFlags</name></member>
<member><type>uint64_t</type> <name>blobId</name></member>
</type>
</types>
<commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_MEMORY_MAP_FAILED">
<proto><type>VkResult</type> <name>vkMapMemoryIntoAddressSpaceGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
<param optional="false,true"><type>uint64_t</type>* <name>pAddress</name></param>
</command>
<command>
<proto><type>void</type> <name>vkUpdateDescriptorSetWithTemplateSizedGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDescriptorSet</type> <name>descriptorSet</name></param>
<param><type>VkDescriptorUpdateTemplate</type> <name>descriptorUpdateTemplate</name></param>
<param><type>uint32_t</type> <name>imageInfoCount</name></param>
<param><type>uint32_t</type> <name>bufferInfoCount</name></param>
<param><type>uint32_t</type> <name>bufferViewCount</name></param>
<param optional="true" len="imageInfoCount">const <type>uint32_t</type>* <name>pImageInfoEntryIndices</name></param>
<param optional="true" len="bufferInfoCount">const <type>uint32_t</type>* <name>pBufferInfoEntryIndices</name></param>
<param optional="true" len="bufferViewCount">const <type>uint32_t</type>* <name>pBufferViewEntryIndices</name></param>
<param optional="true" len="imageInfoCount">const <type>VkDescriptorImageInfo</type>* <name>pImageInfos</name></param>
<param optional="true" len="bufferInfoCount">const <type>VkDescriptorBufferInfo</type>* <name>pBufferInfos</name></param>
<param optional="true" len="bufferViewCount">const <type>VkBufferView</type>* <name>pBufferViews</name></param>
</command>
<command>
<proto><type>void</type> <name>vkUpdateDescriptorSetWithTemplateSized2GOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDescriptorSet</type> <name>descriptorSet</name></param>
<param><type>VkDescriptorUpdateTemplate</type> <name>descriptorUpdateTemplate</name></param>
<param><type>uint32_t</type> <name>imageInfoCount</name></param>
<param><type>uint32_t</type> <name>bufferInfoCount</name></param>
<param><type>uint32_t</type> <name>bufferViewCount</name></param>
<param><type>uint32_t</type> <name>inlineUniformBlockCount</name></param>
<param optional="true" len="imageInfoCount">const <type>uint32_t</type>* <name>pImageInfoEntryIndices</name></param>
<param optional="true" len="bufferInfoCount">const <type>uint32_t</type>* <name>pBufferInfoEntryIndices</name></param>
<param optional="true" len="bufferViewCount">const <type>uint32_t</type>* <name>pBufferViewEntryIndices</name></param>
<param optional="true" len="imageInfoCount">const <type>VkDescriptorImageInfo</type>* <name>pImageInfos</name></param>
<param optional="true" len="bufferInfoCount">const <type>VkDescriptorBufferInfo</type>* <name>pBufferInfos</name></param>
<param optional="true" len="bufferViewCount">const <type>VkBufferView</type>* <name>pBufferViews</name></param>
<param optional="true" len="inlineUniformBlockCount">const <type>uint8_t</type>* <name>pInlineUniformBlockData</name></param>
</command>
<command>
<proto><type>void</type> <name>vkBeginCommandBufferAsyncGOOGLE</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param>const <type>VkCommandBufferBeginInfo</type>* <name>pBeginInfo</name></param>
<implicitexternsyncparams>
<param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
</implicitexternsyncparams>
</command>
<command>
<proto><type>void</type> <name>vkEndCommandBufferAsyncGOOGLE</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<implicitexternsyncparams>
<param>the sname:VkCommandPool that pname:commandBuffer was allocated from</param>
</implicitexternsyncparams>
</command>
<command>
<proto><type>void</type> <name>vkResetCommandBufferAsyncGOOGLE</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param optional="true"><type>VkCommandBufferResetFlags</type> <name>flags</name></param>
</command>
<command>
<proto><type>void</type> <name>vkCommandBufferHostSyncGOOGLE</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>uint32_t</type> <name>needHostSync</name></param>
<param><type>uint32_t</type> <name>sequenceNumber</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
<proto><type>VkResult</type> <name>vkCreateImageWithRequirementsGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkImageCreateInfo</type>* <name>pCreateInfo</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkImage</type>* <name>pImage</name></param>
<param><type>VkMemoryRequirements</type>* <name>pMemoryRequirements</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
<proto><type>VkResult</type> <name>vkCreateBufferWithRequirementsGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkBufferCreateInfo</type>* <name>pCreateInfo</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkBuffer</type>* <name>pBuffer</name></param>
<param><type>VkMemoryRequirements</type>* <name>pMemoryRequirements</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetMemoryHostAddressInfoGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
<param optional="false,true"><type>uint64_t</type>* <name>pAddress</name></param>
<param optional="false,true"><type>uint64_t</type>* <name>pSize</name></param>
<param optional="false,true"><type>uint64_t</type>* <name>pHostmemId</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
<proto><type>VkResult</type> <name>vkFreeMemorySyncGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param optional="true" externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueHostSyncGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param><type>uint32_t</type> <name>needHostSync</name></param>
<param><type>uint32_t</type> <name>sequenceNumber</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueSubmitAsyncGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param optional="true"><type>uint32_t</type> <name>submitCount</name></param>
<param len="submitCount" externsync="pSubmits[].pWaitSemaphores[],pSubmits[].pSignalSemaphores[]">const <type>VkSubmitInfo</type>* <name>pSubmits</name></param>
<param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueSubmitAsync2GOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param optional="true"><type>uint32_t</type> <name>submitCount</name></param>
<param len="submitCount" externsync="pSubmits[].pWaitSemaphores[],pSubmits[].pSignalSemaphores[]">const <type>VkSubmitInfo2</type>* <name>pSubmits</name></param>
<param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueWaitIdleAsyncGOOGLE</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
</command>
<command queues="sparse_binding">
<proto><type>void</type> <name>vkQueueBindSparseAsyncGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param optional="true"><type>uint32_t</type> <name>bindInfoCount</name></param>
<param len="bindInfoCount" externsync="pBindInfo[].pWaitSemaphores[],pBindInfo[].pSignalSemaphores[],pBindInfo[].pBufferBinds[].buffer,pBindInfo[].pImageOpaqueBinds[].image,pBindInfo[].pImageBinds[].image">const <type>VkBindSparseInfo</type>* <name>pBindInfo</name></param>
<param optional="true" externsync="true"><type>VkFence</type> <name>fence</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetLinearImageLayoutGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkFormat</type> <name>format</name></param>
<param><type>VkDeviceSize</type>* <name>pOffset</name></param>
<param><type>VkDeviceSize</type>* <name>pRowPitchAlignment</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetLinearImageLayout2GOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkImageCreateInfo</type>* <name>pCreateInfo</name></param>
<param><type>VkDeviceSize</type>* <name>pOffset</name></param>
<param><type>VkDeviceSize</type>* <name>pRowPitchAlignment</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueFlushCommandsGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>VkDeviceSize</type> <name>dataSize</name></param>
<param len="dataSize">const <type>void</type>* <name>pData</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetBlobGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDeviceMemory</type> <name>memory</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueCommitDescriptorSetUpdatesGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param externsync="true"><type>uint32_t</type> <name>descriptorPoolCount</name></param>
<param len="descriptorPoolCount" externsync="true">const <type>VkDescriptorPool</type>* <name>pDescriptorPools</name></param>
<param externsync="true"><type>uint32_t</type> <name>descriptorSetCount</name></param>
<param len="descriptorSetCount" externsync="true">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name></param>
<param len="descriptorSetCount" externsync="true">const <type>uint64_t</type>* <name>pDescriptorSetPoolIds</name></param>
<param len="descriptorSetCount" externsync="true">const <type>uint32_t</type>* <name>pDescriptorSetWhichPool</name></param>
<param len="descriptorSetCount" externsync="true">const <type>uint32_t</type>* <name>pDescriptorSetPendingAllocation</name></param>
<param len="descriptorSetCount" externsync="true">const <type>uint32_t</type>* <name>pDescriptorWriteStartingIndices</name></param>
<param externsync="true"><type>uint32_t</type> <name>pendingDescriptorWriteCount</name></param>
<param len="pendingDescriptorWriteCount" externsync="true">const <type>VkWriteDescriptorSet</type>* <name>pPendingDescriptorWrites</name></param>
</command>
<command>
<proto><type>void</type> <name>vkCollectDescriptorPoolIdsGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param externsync="true"><type>VkDescriptorPool</type> <name>descriptorPool</name></param>
<param optiona="false,true"><type>uint32_t</type>* <name>pPoolIdCount</name></param>
<param optional="true" len="pPoolIdCount"><type>uint64_t</type>* <name>pPoolIds</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueSignalReleaseImageANDROIDAsyncGOOGLE</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
<param optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></param>
<param noautovalidity="true" len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param>
<param><type>VkImage</type> <name>image</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
<param optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></param>
<param noautovalidity="true" len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param>
<param><type>VkImage</type> <name>image</name></param>
<param><type>int</type>* <name>pNativeFenceFd</name></param>
</command>
<command>
<proto><type>void</type> <name>vkQueueFlushCommandsFromAuxMemoryGOOGLE</name></proto>
<param externsync="true"><type>VkQueue</type> <name>queue</name></param>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param><type>VkDeviceMemory</type> <name>deviceMemory</name></param>
<param><type>VkDeviceSize</type> <name>dataOffset</name></param>
<param><type>VkDeviceSize</type> <name>dataSize</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetSemaphoreGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkSemaphore</type> <name>semaphore</name></param>
<param><type>uint64_t</type> <name>syncId</name></param>
</command>
</commands>
<extensions comment="Vulkan extension interface definitions">
<extension name="VK_ANDROID_native_buffer" supported="vulkan"/>
<extension name="VK_GOOGLE_gfxstream" number="386" author="GOOGLE" contact="Lingfeng Yang @frank,Roman Kiryanov @rkir,Yilong Li @liyl_google" supported="vulkan" type="instance">
<require>
<enum value="0" name="VK_GOOGLE_GFXSTREAM_SPEC_VERSION"/>
<enum value="386" name="VK_GOOGLE_GFXSTREAM_NUMBER"/>
<enum value="&quot;VK_GOOGLE_gfxstream&quot;" name="VK_GOOGLE_GFXSTREAM_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE"/>
<type name="VkImportColorBufferGOOGLE"/>
<type name="VkImportBufferGOOGLE"/>
<type name="VkCreateBlobGOOGLE"/>
<command name="vkMapMemoryIntoAddressSpaceGOOGLE"/>
<command name="vkUpdateDescriptorSetWithTemplateSizedGOOGLE"/>
<command name="vkBeginCommandBufferAsyncGOOGLE"/>
<command name="vkEndCommandBufferAsyncGOOGLE"/>
<command name="vkResetCommandBufferAsyncGOOGLE"/>
<command name="vkCommandBufferHostSyncGOOGLE"/>
<command name="vkCreateImageWithRequirementsGOOGLE"/>
<command name="vkCreateBufferWithRequirementsGOOGLE"/>
<command name="vkGetMemoryHostAddressInfoGOOGLE"/>
<command name="vkFreeMemorySyncGOOGLE"/>
<command name="vkQueueHostSyncGOOGLE"/>
<command name="vkQueueSubmitAsyncGOOGLE"/>
<command name="vkQueueWaitIdleAsyncGOOGLE"/>
<command name="vkQueueBindSparseAsyncGOOGLE"/>
<command name="vkGetLinearImageLayoutGOOGLE"/>
<command name="vkGetLinearImageLayout2GOOGLE"/>
<command name="vkQueueFlushCommandsGOOGLE"/>
<command name="vkQueueCommitDescriptorSetUpdatesGOOGLE"/>
<command name="vkCollectDescriptorPoolIdsGOOGLE"/>
<command name="vkQueueSignalReleaseImageANDROIDAsyncGOOGLE"/>
<command name="vkQueueFlushCommandsFromAuxMemoryGOOGLE"/>
<command name="vkGetBlobGOOGLE"/>
<command name="vkUpdateDescriptorSetWithTemplateSized2GOOGLE"/>
<command name="vkQueueSubmitAsync2GOOGLE"/>
<command name="vkGetSemaphoreGOOGLE"/>
</require>
</extension>
</extensions>
</registry>