gfxstream: genvk: add support for vk_gfxstream.xml
Custom XML file specific to gfxstream. Reviewed-by: Aaron Ruby <aruby@blackberry.com> Acked-by: Yonggang Luo <luoyonggang@gmail.com> Acked-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit is contained in:
committed by
Marge Bot
parent
f0fc91acff
commit
c1887f0dbf
@@ -45,7 +45,7 @@ from cerealgenerator import CerealGenerator
|
||||
|
||||
# Simple timer functions
|
||||
startTime = None
|
||||
|
||||
from typing import Optional
|
||||
|
||||
def startTimer(timeit):
|
||||
global startTime
|
||||
@@ -979,6 +979,44 @@ def makeGenOpts(args):
|
||||
alignFuncParam = 48)
|
||||
]
|
||||
|
||||
gfxstreamPrefixStrings = [
|
||||
'#pragma once',
|
||||
'#ifdef VK_GFXSTREAM_STRUCTURE_TYPE_EXT',
|
||||
'#include "vulkan_gfxstream_structure_type.h"',
|
||||
'#endif',
|
||||
]
|
||||
|
||||
# gfxstream specific header
|
||||
genOpts['vulkan_gfxstream.h'] = [
|
||||
COutputGenerator,
|
||||
CGeneratorOptions(
|
||||
conventions = conventions,
|
||||
filename = 'vulkan_gfxstream.h',
|
||||
directory = directory,
|
||||
genpath = None,
|
||||
apiname = 'vulkan',
|
||||
profile = None,
|
||||
versions = featuresPat,
|
||||
emitversions = None,
|
||||
defaultExtensions = None,
|
||||
addExtensions = makeREstring(['VK_GOOGLE_gfxstream'], None),
|
||||
removeExtensions = None,
|
||||
emitExtensions = makeREstring(['VK_GOOGLE_gfxstream'], None),
|
||||
prefixText = prefixStrings + vkPrefixStrings + gfxstreamPrefixStrings,
|
||||
genFuncPointers = True,
|
||||
# Use #pragma once in the prefixText instead, so that we can put the copyright comments
|
||||
# at the beginning of the file.
|
||||
protectFile = False,
|
||||
protectFeature = False,
|
||||
protectProto = '#ifndef',
|
||||
protectProtoStr = 'VK_NO_PROTOTYPES',
|
||||
apicall = 'VKAPI_ATTR ',
|
||||
apientry = 'VKAPI_CALL ',
|
||||
apientryp = 'VKAPI_PTR *',
|
||||
alignFuncParam = 48,
|
||||
misracstyle = misracstyle,
|
||||
misracppstyle = misracppstyle)
|
||||
]
|
||||
|
||||
def genTarget(args):
|
||||
"""Create an API generator and corresponding generator options based on
|
||||
@@ -1071,6 +1109,9 @@ if __name__ == '__main__':
|
||||
parser.add_argument('-registry', action='store',
|
||||
default='vk.xml',
|
||||
help='Use specified registry file instead of vk.xml')
|
||||
parser.add_argument('-registryGfxstream', action='store',
|
||||
default=None,
|
||||
help='Use specified gfxstream registry file')
|
||||
parser.add_argument('-time', action='store_true',
|
||||
help='Enable timing')
|
||||
parser.add_argument('-genpath', action='store', default='gen',
|
||||
@@ -1126,6 +1167,58 @@ if __name__ == '__main__':
|
||||
tree = etree.parse(args.registry)
|
||||
endTimer(args.time, '* Time to make ElementTree =')
|
||||
|
||||
# Merge the gfxstream registry with the official Vulkan registry if the
|
||||
# target is the cereal generator
|
||||
if args.registryGfxstream is not None and args.target == 'cereal':
|
||||
treeGfxstream = etree.parse(args.registryGfxstream)
|
||||
treeRoot = tree.getroot()
|
||||
treeGfxstreamRoot = treeGfxstream.getroot()
|
||||
|
||||
def getEntryName(entry) -> Optional[str]:
|
||||
name = entry.get("name")
|
||||
if name is not None:
|
||||
return name
|
||||
try:
|
||||
return entry.find("proto").find("name")
|
||||
except AttributeError:
|
||||
return None
|
||||
|
||||
for entriesName in ['types', 'commands', 'extensions']:
|
||||
treeEntries = treeRoot.find(entriesName)
|
||||
|
||||
originalEntryDict = {}
|
||||
for entry in treeEntries:
|
||||
name = getEntryName(entry)
|
||||
if name is not None:
|
||||
originalEntryDict[name] = entry
|
||||
|
||||
for entry in treeGfxstreamRoot.find(entriesName):
|
||||
name = getEntryName(entry)
|
||||
# New entry, just append to entry list
|
||||
if name not in originalEntryDict.keys():
|
||||
treeEntries.append(entry)
|
||||
continue
|
||||
|
||||
originalEntry = originalEntryDict[name]
|
||||
|
||||
# Extending an existing entry. This happens for MVK.
|
||||
if entriesName == "extensions":
|
||||
for key, value in entry.attrib.items():
|
||||
originalEntry.set(key, value)
|
||||
require = entry.find("require")
|
||||
if require is not None:
|
||||
for child in require:
|
||||
originalEntry.find("require").append(child)
|
||||
continue
|
||||
|
||||
# Overwriting an existing entry. This happen for
|
||||
# VkNativeBufferANDROID
|
||||
if entriesName == "types":
|
||||
originalEntry.clear()
|
||||
originalEntry.attrib = entry.attrib
|
||||
for child in entry:
|
||||
originalEntry.append(child)
|
||||
|
||||
# Load the XML tree into the registry object
|
||||
startTimer(args.time)
|
||||
reg.loadElementTree(tree)
|
||||
|
||||
@@ -0,0 +1,322 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<registry>
|
||||
<comment>
|
||||
Copyright (C) 2023 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
</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>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>
|
||||
<proto><type>void</type> <name>vkGetMTLDeviceMVK</name></proto>
|
||||
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
|
||||
<param><type>void</type>** <name>pMTLDevice</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS">
|
||||
<proto><type>VkResult</type> <name>vkSetMTLTextureMVK</name></proto>
|
||||
<param><type>VkImage</type> <name>image</name></param>
|
||||
<param><type>void</type>* <name>mtlTexture</name></param>
|
||||
</command>
|
||||
<command>
|
||||
<proto><type>void</type> <name>vkGetMTLTextureMVK</name></proto>
|
||||
<param><type>VkImage</type> <name>image</name></param>
|
||||
<param><type>void</type>** <name>pMTLTexture</name></param>
|
||||
</command>
|
||||
<command>
|
||||
<proto><type>void</type> <name>vkGetMTLBufferMVK</name></proto>
|
||||
<param><type>VkBuffer</type> <name>buffer</name></param>
|
||||
<param><type>void</type>** <name>pMTLBuffer</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS">
|
||||
<proto><type>VkResult</type> <name>vkUseIOSurfaceMVK</name></proto>
|
||||
<param><type>VkImage</type> <name>image</name></param>
|
||||
<param><type>void</type>* <name>ioSurface</name></param>
|
||||
</command>
|
||||
<command>
|
||||
<proto><type>void</type> <name>vkGetIOSurfaceMVK</name></proto>
|
||||
<param><type>VkImage</type> <name>image</name></param>
|
||||
<param><type>void</type>** <name>pIOSurface</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=""VK_GOOGLE_gfxstream"" 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"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_MVK_moltenvk">
|
||||
<require>
|
||||
<command name="vkGetMTLDeviceMVK"/>
|
||||
<command name="vkSetMTLTextureMVK"/>
|
||||
<command name="vkGetMTLTextureMVK"/>
|
||||
<command name="vkGetMTLBufferMVK"/>
|
||||
<command name="vkUseIOSurfaceMVK"/>
|
||||
<command name="vkGetIOSurfaceMVK"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
Reference in New Issue
Block a user