summaryrefslogtreecommitdiffhomepage
path: root/registry/genvk.py
diff options
context:
space:
mode:
Diffstat (limited to 'registry/genvk.py')
-rwxr-xr-xregistry/genvk.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/registry/genvk.py b/registry/genvk.py
index 5680750..505f0d3 100755
--- a/registry/genvk.py
+++ b/registry/genvk.py
@@ -17,6 +17,7 @@ from extensionmetadocgenerator import (ExtensionMetaDocGeneratorOptions,
ExtensionMetaDocOutputGenerator)
from interfacedocgenerator import InterfaceDocGenerator
from generator import write
+from spirvcapgenerator import SpirvCapabilityOutputGenerator
from hostsyncgenerator import HostSynchronizationOutputGenerator
from pygenerator import PyOutputGenerator
from reflib import logDiag, logWarn, setLogFile
@@ -73,6 +74,9 @@ def makeGenOpts(args):
# Extensions to emit (list of extensions)
emitExtensions = args.emitExtensions
+ # SPIR-V capabilities / features to emit (list of extensions & capabilities)
+ emitSpirv = args.emitSpirv
+
# Features to include (list of features)
features = args.feature
@@ -87,12 +91,13 @@ def makeGenOpts(args):
# Descriptive names for various regexp patterns used to select
# versions and extensions
- allFeatures = allExtensions = r'.*'
+ allSpirv = allFeatures = allExtensions = r'.*'
# Turn lists of names/patterns into matching regular expressions
addExtensionsPat = makeREstring(extensions, None)
removeExtensionsPat = makeREstring(removeExtensions, None)
emitExtensionsPat = makeREstring(emitExtensions, allExtensions)
+ emitSpirvPat = makeREstring(emitSpirv, allSpirv)
featuresPat = makeREstring(features, allFeatures)
# Copyright text prefixing all headers (list of strings).
@@ -249,6 +254,25 @@ def makeGenOpts(args):
reparentEnums = False)
]
+ genOpts['spirvcapinc'] = [
+ SpirvCapabilityOutputGenerator,
+ DocGeneratorOptions(
+ conventions = conventions,
+ filename = 'timeMarker',
+ directory = directory,
+ genpath = None,
+ apiname = 'vulkan',
+ profile = None,
+ versions = featuresPat,
+ emitversions = featuresPat,
+ defaultExtensions = None,
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ emitSpirv = emitSpirvPat,
+ reparentEnums = False)
+ ]
+
# Platform extensions, in their own header files
# Each element of the platforms[] array defines information for
# generating a single platform:
@@ -482,6 +506,8 @@ def genTarget(args):
# Create generator options with parameters specified on command line
makeGenOpts(args)
+ # pdb.set_trace()
+
# Select a generator matching the requested target
if args.target in genOpts:
createGenerator = genOpts[args.target][0]
@@ -523,6 +549,9 @@ if __name__ == '__main__':
parser.add_argument('-emitExtensions', action='append',
default=[],
help='Specify an extension or extensions to emit in targets')
+ parser.add_argument('-emitSpirv', action='append',
+ default=[],
+ help='Specify a SPIR-V extension or capability to emit in targets')
parser.add_argument('-feature', action='append',
default=[],
help='Specify a core API feature name or names to add to targets')