"glslang",
removeTags = ["master-tot"]),
GitRepo(
- "https://github.com/KhronosGroup/SPIRV-Headers.git",
- None,
- "449bc986ba6f4c5e10e32828783f9daef2a77644",
+ "https://gitlab.khronos.org/spirv/SPIRV-Headers.git",
+ "git@gitlab.khronos.org:spirv/SPIRV-Headers.git",
+ "7445cca32fa418a40dbc8b433734a1d3079200ac",
"spirv-headers"),
- GitRepo(
- "https://github.com/KhronosGroup/Vulkan-Docs.git",
- None,
- "e57864f6a51a2d56dc7f012b21957755c59aafa8",
++ GitRepo(
++ "https://gitlab.khronos.org/vulkan/vulkan.git",
++ "git@gitlab.khronos.org:vulkan/vulkan.git",
++ "c7226880e6083dfd087131e09027cf1030bc002d",
+ "vulkan-docs"),
GitRepo(
- "https://github.com/google/amber.git",
- None,
- "209d92e2c27a333e723d24497e8c7a07b2f2eb39",
+ "https://gitlab.khronos.org/spirv/amber.git",
+ "git@gitlab.khronos.org:spirv/amber.git",
- "94586d6c879db7394a4203813a40f0d7e437e0aa",
++ "58a246b645b1e6ec228f715c9db94cd9f3c0c2be",
"amber"),
]
const VkAttachmentLoadOp loadOp = (!fullClearPass) ? VK_ATTACHMENT_LOAD_OP_LOAD :
(m_parameters.viewIndex == TEST_TYPE_READBACK_WITH_IMPLICIT_CLEAR) ? VK_ATTACHMENT_LOAD_OP_CLEAR :
(m_parameters.viewIndex == TEST_TYPE_READBACK_WITH_EXPLICIT_CLEAR) ? VK_ATTACHMENT_LOAD_OP_DONT_CARE :
- VK_ATTACHMENT_LOAD_OP_MAX_ENUM;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE;
- Unique<VkRenderPass> renderPass (makeRenderPass (*m_device, *m_logicalDevice, m_parameters.colorFormat, m_parameters.viewMasks, m_parameters.renderPassType, VK_SAMPLE_COUNT_1_BIT, loadOp));
- Unique<VkFramebuffer> frameBuffer (makeFramebuffer(*m_device, *m_logicalDevice, *renderPass, m_colorAttachment->getImageView(), m_parameters.extent.width, m_parameters.extent.height));
+ Move<VkRenderPass> renderPass;
+ Move<VkFramebuffer> frameBuffer;
Unique<VkPipelineLayout> pipelineLayout (makePipelineLayout(*m_device, *m_logicalDevice));
vector<PipelineSp> pipelines (subpassCount);
map<VkShaderStageFlagBits, ShaderModuleSP> shaderModule;
yield '\tstd::make_tuple({}, {}, {}),'.format(version, major, minor)
yield '};'
- def genExtDepInl(dependenciesAndVersions):
+def genRequiredCoreVersions(name, coreVersionsDict):
+ yield 'static const std::tuple<deUint32, deUint32, const char*>\t{}[]\t ='.format(name)
+ yield '{'
+ extNames = sorted(coreVersionsDict.keys())
+ for extName in extNames:
+ (major, minor) = coreVersionsDict[extName]
+ yield '\tstd::make_tuple({}, {}, "{}"),'.format(major, minor, extName)
+ yield '};'
+
- allExtDepsDict, apiVersions = dependenciesAndVersions
+ def genExtDepInl(dependenciesAndVersions, filename):
+ allExtDepsDict, apiVersions, allExtCoreVersions = dependenciesAndVersions
apiVersions.reverse()
lines = []
- lines = lines + [line for line in genExtDepArray(VK_EXT_DEP_INSTANCE, allExtDepsDict[VK_EXT_TYPE_INSTANCE])]
- lines = lines + [line for line in genExtDepArray(VK_EXT_DEP_DEVICE, allExtDepsDict[VK_EXT_TYPE_DEVICE])]
- lines = lines + [line for line in genApiVersions(VK_EXT_API_VERSIONS, apiVersions)]
+ lines.extend(genExtDepArray(VK_EXT_DEP_INSTANCE, allExtDepsDict[VK_EXT_TYPE_INSTANCE]))
+ lines.extend(genExtDepArray(VK_EXT_DEP_DEVICE, allExtDepsDict[VK_EXT_TYPE_DEVICE]))
+ lines.extend(genApiVersions(VK_EXT_API_VERSIONS, apiVersions))
+ lines.extend(genRequiredCoreVersions(VK_EXT_CORE_VERSIONS, allExtCoreVersions))
- writeInlFile(VK_INL_FILE, lines)
+ writeInlFile(filename, lines)
class extInfo:
def __init__(self):
name = name.replace("VIEWPORT_W", "VIEWPORT_W_")
name = name.replace("_IDPROPERTIES", "_ID_PROPERTIES")
name = name.replace("PHYSICAL_DEVICE_SHADER_FLOAT_16_INT_8_FEATURES", "PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")
++ name = name.replace("PHYSICAL_DEVICE_RGBA_10_X_6_FORMATS_FEATURES_EXT", "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")
name = name.replace("_PCIBUS_", "_PCI_BUS_")
name = name.replace("ASTCD", "ASTC_D")
name = name.replace("AABBNV", "AABB_NV")
return False
if definition[0].startswith(extNameUpper):
return True
-- if definition[1].isdigit():
++ if definition[0].endswith("_H_"):
return True
return False
def parseExtensions (src, versions, allFunctions, allCompositeTypes, allEnums, allBitfields, allHandles, allDefinitions):
- def getCoreVersion (extensionName, extensionsData):
- # returns None when extension was not added to core for any Vulkan version
- # returns array containing DEVICE or INSTANCE string followed by the vulkan version in which this extension is core
- # note that this function is also called for vulkan 1.0 source for which extName is None
- if not extensionName:
- return None
- ptrn = extensionName + r'\s+(DEVICE|INSTANCE)\s+([0-9_]+)'
- coreVersion = re.search(ptrn, extensionsData, re.I)
- if coreVersion != None:
- return [coreVersion.group(1)] + [int(number) for number in coreVersion.group(2).split('_')[:3]]
- return None
-
- extensionsData = readFile(os.path.join(VULKAN_SRC_DIR, "extensions_data.txt"))
+ def getExtensionDataDict():
+ ptrn = r'(VK_\S+)\s+(DEVICE|INSTANCE)\s+([0-9_]*)?'
- extensionsDataFile = readFile(os.path.join(VULKAN_H_DIR, "extensions_data.txt"))
++ extensionsDataFile = readFile(os.path.join(VULKAN_SRC_DIR, "extensions_data.txt"))
+ extensionList = re.findall(ptrn, extensionsDataFile)
+ extensionDict = {}
+ # dictionary value is list containing DEVICE or INSTANCE string followed
+ # by optional vulkan version in which this extension is core
+ for item in extensionList:
+ versionList = []
+ if len(item[2]):
+ versionList = [int(number) for number in item[2].split('_')[:3]]
+ extensionDict[item[0]] = [item[1]] + versionList
+ return extensionDict
+
+ extensionsDataDict = getExtensionDataDict()
splitSrc = splitByExtension(src)
extensions = []
functionsByName = {function.name: function for function in allFunctions}
"StdVideoH265PpsFlags",
"StdVideoDecodeH265PictureInfoFlags",
"StdVideoDecodeH265ReferenceInfoFlags",
-- "StdVideoEncodeH265PictureInfoFlags"
++ "StdVideoEncodeH265PictureInfoFlags",
++ "StdVideoEncodeH265SliceHeaderFlags",
++ "StdVideoEncodeH265ReferenceModificationFlags",
++ "StdVideoEncodeH265ReferenceInfoFlags",
])
COMPOSITE_TYPES = set([t.name for t in api.compositeTypes if not t.isAlias])
sType = "SCISSOR_EXCLUSIVE"
elif sType == "ASTC_DECODE":
sType = "ASTC_DECODE_MODE"
- if sType in {'VULKAN_1_1', 'VULKAN_1_2'}:
+ elif sType == "MAINTENANCE_4":
+ sType = "MAINTENANCE4"
+ elif sType == "YCBCR_2_PLANE_444_FORMATS":
+ sType = "YCBCR_2PLANE_444_FORMATS"
+ elif sType in {'VULKAN_1_1', 'VULKAN_1_2', 'VULKAN_1_3'}:
+ continue
++ elif sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
++ # skip case that has const pNext pointer
+ continue
# end handling special cases
ptrnExtensionName = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_EXTENSION_NAME).+$'
matchExtensionName = re.search(ptrnExtensionName, src, re.M)
matchStructName = re.search(ptrnStructName, src, re.M)
if matchStructName:
extType = sType
-- if extType == "MAINTENANCE_3":
-- extType = "MAINTENANCE3"
- elif extType == "MAINTENANCE_4":
- extType = "MAINTENANCE4"
-- elif extType == "DISCARD_RECTANGLE":
++ if extType == "DISCARD_RECTANGLE":
extType = "DISCARD_RECTANGLES"
elif extType == "DRIVER":
extType = "DRIVER_PROPERTIES"
elif extType == "POINT_CLIPPING":
-- extType = "MAINTENANCE2"
++ extType = "MAINTENANCE_2"
elif extType == "SHADER_CORE":
extType = "SHADER_CORE_PROPERTIES"
elif extType == "DRM":