From 44ce464d07efc2c7e18b027cbbc641b4b58a3d6e Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Wed, 19 Apr 2017 17:30:52 -0600 Subject: [PATCH] scripts:Updated Validation IDs for spec 1.0.48 This was much nicer after that last update. Cmd line was: python spec.py -update -remap 2937-3217:557-375:669-2819:739-536: 751-2106,4:1263-2956,5:2237-3104:2906-3203:2960-3222 Updated parser to BeautifulSoup so we can now use the HTML spec directly from online again. You may have to install BeautifulSoup python module separately to be able to run. Had to manually import errors 911 and 912 which are only present in the non-extension spec. This is an issue we're planning to fix when unique ids are integrated into the spec which may acutally finally happen within a month. --- layers/spec.py | 183 ++++++++++++------------ layers/vk_validation_error_database.txt | 50 ++++--- layers/vk_validation_error_messages.h | 72 ++++++---- 3 files changed, 167 insertions(+), 138 deletions(-) diff --git a/layers/spec.py b/layers/spec.py index 326bf371..155d68cd 100644 --- a/layers/spec.py +++ b/layers/spec.py @@ -1,8 +1,9 @@ -#!/usr/bin/python3 -i +#!/usr/bin/python -i import sys import xml.etree.ElementTree as etree import urllib2 +from bs4 import BeautifulSoup ############################# # spec.py script @@ -46,18 +47,18 @@ validation_error_enum_name = "VALIDATION_ERROR_" remap_dict = {} def printHelp(): - print "Usage: python spec.py [-spec ] [-out ] [-gendb ] [-compare ] [-update] [-remap ] [-help]" - print "\n Default script behavior is to parse the specfile and generate a header of unique error enums and corresponding error messages based on the specfile.\n" - print " Default specfile is from online at %s" % (spec_url) - print " Default headerfile is %s" % (out_filename) - print " Default databasefile is %s" % (db_filename) - print "\nIf '-gendb' option is specified then a database file is generated to default file or if supplied. The database file stores" - print " the list of enums and their error messages." - print "\nIf '-compare' option is specified then the given database file will be read in as the baseline for generating the new specfile" - print "\nIf '-update' option is specified this triggers the master flow to automate updating header and database files using default db file as baseline" - print " and online spec file as the latest. The default header and database files will be updated in-place for review and commit to the git repo." - print "\nIf '-remap' option is specified it supplies forced remapping from new enum ids to old enum ids. This should only be specified along with -update" - print " option. Starting at newid and remapping to oldid, count ids will be remapped. Default count is '1' and use ':' to specify multiple remappings." + print ("Usage: python spec.py [-spec ] [-out ] [-gendb ] [-compare ] [-update] [-remap ] [-help]") + print ("\n Default script behavior is to parse the specfile and generate a header of unique error enums and corresponding error messages based on the specfile.\n") + print (" Default specfile is from online at %s" % (spec_url)) + print (" Default headerfile is %s" % (out_filename)) + print (" Default databasefile is %s" % (db_filename)) + print ("\nIf '-gendb' option is specified then a database file is generated to default file or if supplied. The database file stores") + print (" the list of enums and their error messages.") + print ("\nIf '-compare' option is specified then the given database file will be read in as the baseline for generating the new specfile") + print ("\nIf '-update' option is specified this triggers the master flow to automate updating header and database files using default db file as baseline") + print (" and online spec file as the latest. The default header and database files will be updated in-place for review and commit to the git repo.") + print ("\nIf '-remap' option is specified it supplies forced remapping from new enum ids to old enum ids. This should only be specified along with -update") + print (" option. Starting at newid and remapping to oldid, count ids will be remapped. Default count is '1' and use ':' to specify multiple remappings.") class Specification: def __init__(self): @@ -102,94 +103,99 @@ class Specification: except urllib2.URLError as err: return False return False - def loadFile(self, online=True, spec_file=spec_filename): - """Load an API registry XML file into a Registry object and parse it""" - # Check if spec URL is available + def soupLoadFile(self, online=True, spec_file=spec_filename): + """Load a spec file into BeutifulSoup""" if (online and self._checkInternetSpec()): - print "Using spec from online at %s" % (spec_url) - self.tree = etree.parse(urllib2.urlopen(spec_url)) + print ("Making soup from spec online at %s, this will take a minute" % (spec_url)) + self.soup = BeautifulSoup(urllib2.urlopen(spec_url), 'html.parser') else: - print "Using local spec %s" % (spec_file) - self.tree = etree.parse(spec_file) - #self.tree.write("tree_output.xhtml") - #self.tree = etree.parse("tree_output.xhtml") - self.parseTree() + print ("Making soup from local spec %s, this will take a minute" % (spec_file)) + self.soup = BeautifulSoup(spec_file, 'html.parser') + self.parseSoup() + #print(self.soup.prettify()) def updateDict(self, updated_dict): """Assign internal dict to use updated_dict""" self.val_error_dict = updated_dict - def parseTree(self): + def parseSoup(self): """Parse the registry Element, once created""" - print "Parsing spec file..." + print ("Parsing spec file...") unique_enum_id = 0 - self.root = self.tree.getroot() - #print "ROOT: %s" % self.root + #self.root = self.tree.getroot() + #print ("ROOT: %s") % self.root prev_heading = '' # Last seen section heading or sub-heading prev_link = '' # Last seen link id within the spec api_function = '' # API call that a check appears under error_strings = set() # Flag any exact duplicate error strings and skip them - implicit_count = 0 - for tag in self.root.iter(): # iterate down tree + for tag in self.soup.find_all(True):#self.root.iter(): # iterate down tree # Grab most recent section heading and link - if tag.tag in ['h2', 'h3', 'h4']: + #print ("tag.name is %s and class is %s" % (tag.name, tag.get('class'))) + if tag.name in ['h2', 'h3', 'h4']: #if tag.get('class') != 'title': # continue - print "Found heading %s" % (tag.tag) - prev_heading = "".join(tag.itertext()) + #print ("Found heading %s w/ string %s" % (tag.name, tag.string)) + if None == tag.string: + prev_heading = "" + else: + prev_heading = "".join(tag.string) # Insert a space between heading number & title sh_list = prev_heading.rsplit('.', 1) prev_heading = '. '.join(sh_list) - prev_link = tag.get('id') - print "Set prev_heading %s to have link of %s" % (prev_heading.encode("ascii", "ignore"), prev_link.encode("ascii", "ignore")) - elif tag.tag == 'a': # grab any intermediate links + prev_link = tag['id'] + #print ("Set prev_heading %s to have link of %s" % (prev_heading.encode("ascii", "ignore"), prev_link.encode("ascii", "ignore"))) + elif tag.name == 'a': # grab any intermediate links if tag.get('id') != None: prev_link = tag.get('id') - #print "Updated prev link to %s" % (prev_link) - elif tag.tag == 'div' and tag.get('class') == 'listingblock': + #print ("Updated prev link to %s" % (prev_link)) + elif tag.name == 'div' and tag.get('class') is not None and tag['class'][0] == 'listingblock': # Check and see if this is API function - code_text = "".join(tag.itertext()).replace('\n', '') + code_text = "".join(tag.strings).replace('\n', '') code_text_list = code_text.split() if len(code_text_list) > 1 and code_text_list[1].startswith('vk'): api_function = code_text_list[1].strip('(') - print "Found API function: %s" % (api_function) + #print ("Found API function: %s" % (api_function)) prev_link = api_function - print "Updated prev link to %s" % (prev_link) + #print ("Updated prev link to %s" % (prev_link)) elif tag.get('id') != None: prev_link = tag.get('id') - print "Updated prev link to %s" % (prev_link) - #elif tag.tag == '{http://www.w3.org/1999/xhtml}div' and tag.get('class') == 'sidebar': - elif tag.tag == 'div' and tag.get('class') == 'content': + #print ("Updated prev link to %s" % (prev_link)) + #elif tag.name == '{http://www.w3.org/1999/xhtml}div' and tag.get('class') == 'sidebar': + elif tag.name == 'div' and tag.get('class') is not None and tag['class'][0] == 'content': + #print("Parsing down a div content tag") # parse down sidebar to check for valid usage cases valid_usage = False implicit = False - for elem in tag.iter(): - if elem.tag == 'div' and None != elem.text and 'Valid Usage' in elem.text: + for elem in tag.find_all(True): + #print(" elem is %s w/ string %s" % (elem.name, elem.string)) + if elem.name == 'div' and None != elem.string and 'Valid Usage' in elem.string: valid_usage = True - if '(Implicit)' in elem.text: + if '(Implicit)' in elem.string: implicit = True else: implicit = False - elif valid_usage and elem.tag == 'li': # grab actual valid usage requirements - error_msg_str = "%s '%s' which states '%s' (%s#%s)" % (error_msg_prefix, prev_heading, "".join(elem.itertext()).replace('\n', ' ').strip(), spec_url, prev_link) + elif valid_usage and elem.name == 'li': # grab actual valid usage requirements + #print("I think this is a VU w/ elem.strings is %s" % (elem.strings)) + error_msg_str = "%s '%s' which states '%s' (%s#%s)" % (error_msg_prefix, prev_heading, "".join(elem.strings).replace('\n', ' ').strip(), spec_url, prev_link) # Some txt has multiple spaces so split on whitespace and join w/ single space error_msg_str = " ".join(error_msg_str.split()) if error_msg_str in error_strings: - print "WARNING: SKIPPING adding repeat entry for string. Please review spec and file issue as appropriate. Repeat string is: %s" % (error_msg_str) + print ("WARNING: SKIPPING adding repeat entry for string. Please review spec and file issue as appropriate. Repeat string is: %s" % (error_msg_str)) else: error_strings.add(error_msg_str) enum_str = "%s%05d" % (validation_error_enum_name, unique_enum_id) # TODO : '\' chars in spec error messages are most likely bad spec txt that needs to be updated self.val_error_dict[enum_str] = {} self.val_error_dict[enum_str]['error_msg'] = error_msg_str.encode("ascii", "ignore").replace("\\", "/") - self.val_error_dict[enum_str]['api'] = api_function + self.val_error_dict[enum_str]['api'] = api_function.encode("ascii", "ignore") self.val_error_dict[enum_str]['implicit'] = False if implicit: self.val_error_dict[enum_str]['implicit'] = True self.implicit_count = self.implicit_count + 1 unique_enum_id = unique_enum_id + 1 - #print "Validation Error Dict has a total of %d unique errors and contents are:\n%s" % (unique_enum_id, self.val_error_dict) + #print ("Validation Error Dict has a total of %d unique errors and contents are:\n%s" % (unique_enum_id, self.val_error_dict)) + print ("Validation Error Dict has a total of %d unique errors" % (unique_enum_id)) def genHeader(self, header_file): """Generate a header file based on the contents of a parsed spec""" - print "Generating header %s..." % (header_file) + print ("Generating header %s..." % (header_file)) file_contents = [] file_contents.append(self.copyright) file_contents.append('\n#pragma once') @@ -204,7 +210,7 @@ class Specification: error_string_map = ['static std::unordered_map validation_error_map{'] enum_value = 0 for enum in sorted(self.val_error_dict): - #print "Header enum is %s" % (enum) + #print ("Header enum is %s" % (enum)) enum_value = int(enum.split('_')[-1]) enum_decl.append(' %s = %d,' % (enum, enum_value)) error_string_map.append(' {%s, "%s"},' % (enum, self.val_error_dict[enum]['error_msg'])) @@ -216,7 +222,7 @@ class Specification: file_contents.append('// The error message should be appended to the end of a custom error message that is passed') file_contents.append('// as the pMessage parameter to the PFN_vkDebugReportCallbackEXT function') file_contents.extend(error_string_map) - #print "File contents: %s" % (file_contents) + #print ("File contents: %s" % (file_contents)) with open(header_file, "w") as outfile: outfile.write("\n".join(file_contents)) def analyze(self): @@ -227,19 +233,19 @@ class Specification: for enum in self.val_error_dict: err_str = self.val_error_dict[enum]['error_msg'] if err_str in str_count_dict: - print "Found repeat error string" + print ("Found repeat error string") str_count_dict[err_str] = str_count_dict[err_str] + 1 else: str_count_dict[err_str] = 1 unique_id_count = unique_id_count + 1 - print "Processed %d unique_ids" % (unique_id_count) + print ("Processed %d unique_ids" % (unique_id_count)) repeat_string = 0 for es in str_count_dict: if str_count_dict[es] > 1: repeat_string = repeat_string + 1 - print "String '%s' repeated %d times" % (es, repeat_string) - print "Found %d repeat strings" % (repeat_string) - print "Found %d implicit checks" % (self.implicit_count) + print ("String '%s' repeated %d times" % (es, repeat_string)) + print ("Found %d repeat strings" % (repeat_string)) + print ("Found %d implicit checks" % (self.implicit_count)) def genDB(self, db_file): """Generate a database of check_enum, check_coded?, testname, error_string""" db_lines = [] @@ -270,11 +276,11 @@ class Specification: note = "implicit, %s" % (note) else: note = "implicit" - #print "delimiter: %s, id: %s, str: %s" % (self.delimiter, enum, self.val_error_dict[enum]) + #print ("delimiter: %s, id: %s, str: %s" % (self.delimiter, enum, self.val_error_dict[enum]) # No existing entry so default to N for implemented and None for testname db_lines.append("%s%s%s%s%s%s%s%s%s%s%s" % (enum, self.delimiter, implemented, self.delimiter, testname, self.delimiter, self.val_error_dict[enum]['api'], self.delimiter, self.val_error_dict[enum]['error_msg'], self.delimiter, note)) db_lines.append("\n") # newline at end of file - print "Generating database file %s" % (db_file) + print ("Generating database file %s" % (db_file)) with open(db_file, "w") as outfile: outfile.write("\n".join(db_lines)) def readDB(self, db_file): @@ -288,7 +294,7 @@ class Specification: continue db_line = line.split(self.delimiter) if len(db_line) != 6: - print "ERROR: Bad database line doesn't have 6 elements: %s" % (line) + print ("ERROR: Bad database line doesn't have 6 elements: %s" % (line)) error_enum = db_line[0] implemented = db_line[1] testname = db_line[2] @@ -376,11 +382,11 @@ class Specification: orig_no_link_msg = "%s,%s" % (api, original_full_msg.split('(https', 1)[0]) orig_core_msg = "%s,%s" % (api, orig_no_link_msg.split(' which states ', 1)[-1]) orig_core_msg_period = "%s.' " % (orig_core_msg[:-2]) - print "Orig core msg:%s\nOrig cw/o per:%s" % (orig_core_msg, orig_core_msg_period) + print ("Orig core msg:%s\nOrig cw/o per:%s" % (orig_core_msg, orig_core_msg_period)) # First store mapping of full error msg to ID, shouldn't have duplicates if original_full_msg in self.orig_full_msg_dict: - print "ERROR: Found duplicate full msg in original full error messages: %s" % (original_full_msg) + print ("ERROR: Found duplicate full msg in original full error messages: %s" % (original_full_msg)) self.orig_full_msg_dict[original_full_msg] = enum # Now map API,no_link_msg to list of IDs if orig_no_link_msg in self.orig_no_link_msg_dict: @@ -394,13 +400,13 @@ class Specification: self.orig_core_msg_dict[orig_core_msg] = [enum] if orig_core_msg_period in self.orig_core_msg_dict: self.orig_core_msg_dict[orig_core_msg_period].append(enum) - print "Added msg '%s' w/ enum %s to orig_core_msg_dict" % (orig_core_msg_period, enum) + print ("Added msg '%s' w/ enum %s to orig_core_msg_dict" % (orig_core_msg_period, enum)) else: - print "Added msg '%s' w/ enum %s to orig_core_msg_dict" % (orig_core_msg_period, enum) + print ("Added msg '%s' w/ enum %s to orig_core_msg_dict" % (orig_core_msg_period, enum)) self.orig_core_msg_dict[orig_core_msg_period] = [enum] # Also capture all enums that have a test and/or implementation if self.error_db_dict[enum]['check_implemented'] == 'Y' or self.error_db_dict[enum]['testname'] not in ['None','Unknown']: - print "Recording %s with implemented value %s and testname %s" % (enum, self.error_db_dict[enum]['check_implemented'], self.error_db_dict[enum]['testname']) + print ("Recording %s with implemented value %s and testname %s" % (enum, self.error_db_dict[enum]['check_implemented'], self.error_db_dict[enum]['testname'])) self.orig_test_imp_enums.add(enum) # Values to be used for the update dict update_enum = '' @@ -423,62 +429,63 @@ class Specification: enum_list[-1] = remap_dict[enum_list[-1]] self.last_mapped_id = int(enum_list[-1]) new_enum = "_".join(enum_list) - print "NOTE: Using user-supplied remap to force %s to be %s" % (enum, new_enum) + print ("NOTE: Using user-supplied remap to force %s to be %s" % (enum, new_enum)) + mapped_enums = self._updateMappedEnum(mapped_enums, new_enum) update_enum = new_enum elif new_full_msg in self.orig_full_msg_dict: orig_enum = self.orig_full_msg_dict[new_full_msg] - print "Found exact match for full error msg so switching new ID %s to original ID %s" % (enum, orig_enum) + print ("Found exact match for full error msg so switching new ID %s to original ID %s" % (enum, orig_enum)) mapped_enums = self._updateMappedEnum(mapped_enums, orig_enum) update_enum = orig_enum elif new_no_link_msg in self.orig_no_link_msg_dict: # Try to get single ID to map to from no_link matches if len(self.orig_no_link_msg_dict[new_no_link_msg]) == 1: # Only 1 id, use it! orig_enum = self.orig_no_link_msg_dict[new_no_link_msg][0] - print "Found no-link err msg match w/ only 1 ID match so switching new ID %s to original ID %s" % (enum, orig_enum) + print ("Found no-link err msg match w/ only 1 ID match so switching new ID %s to original ID %s" % (enum, orig_enum)) mapped_enums = self._updateMappedEnum(mapped_enums, orig_enum) update_enum = orig_enum else: if self.findSeqID(self.orig_no_link_msg_dict[new_no_link_msg]): # If we have an id in sequence, use it! (mapped_enums, update_enum) = self.useSeqID(self.orig_no_link_msg_dict[new_no_link_msg], mapped_enums) - print "Found no-link err msg match w/ seq ID match so switching new ID %s to original ID %s" % (enum, update_enum) + print ("Found no-link err msg match w/ seq ID match so switching new ID %s to original ID %s" % (enum, update_enum)) else: enum_list[-1] = "%05d" % (next_id) new_enum = "_".join(enum_list) next_id = next_id + 1 - print "Found no-link msg match but have multiple matched IDs w/o a sequence ID, updating ID %s to unique ID %s for msg %s" % (enum, new_enum, new_no_link_msg) + print ("Found no-link msg match but have multiple matched IDs w/o a sequence ID, updating ID %s to unique ID %s for msg %s" % (enum, new_enum, new_no_link_msg)) update_enum = new_enum elif new_core_msg in self.orig_core_msg_dict: # Do similar stuff here if len(self.orig_core_msg_dict[new_core_msg]) == 1: orig_enum = self.orig_core_msg_dict[new_core_msg][0] - print "Found core err msg match w/ only 1 ID match so switching new ID %s to original ID %s" % (enum, orig_enum) + print ("Found core err msg match w/ only 1 ID match so switching new ID %s to original ID %s" % (enum, orig_enum)) mapped_enums = self._updateMappedEnum(mapped_enums, orig_enum) update_enum = orig_enum else: if self.findSeqID(self.orig_core_msg_dict[new_core_msg]): (mapped_enums, update_enum) = self.useSeqID(self.orig_core_msg_dict[new_core_msg], mapped_enums) - print "Found core err msg match w/ seq ID match so switching new ID %s to original ID %s" % (enum, update_enum) + print ("Found core err msg match w/ seq ID match so switching new ID %s to original ID %s" % (enum, update_enum)) else: enum_list[-1] = "%05d" % (next_id) new_enum = "_".join(enum_list) next_id = next_id + 1 - print "Found core msg match but have multiple matched IDs w/o a sequence ID, updating ID %s to unique ID %s for msg %s" % (enum, new_enum, new_no_link_msg) + print ("Found core msg match but have multiple matched IDs w/o a sequence ID, updating ID %s to unique ID %s for msg %s" % (enum, new_enum, new_no_link_msg)) update_enum = new_enum # This seems to be a new error so need to pick it up from end of original unique ids & flag for review else: enum_list[-1] = "%05d" % (next_id) new_enum = "_".join(enum_list) next_id = next_id + 1 - print "Completely new id and error code, update new id from %s to unique %s for core message:%s" % (enum, new_enum, new_core_msg) - if new_enum in updated_val_error_dict: - print "ERROR: About to overwrite entry for %s" % (new_enum) + print ("Completely new id and error code, update new id from %s to unique %s for core message:%s" % (enum, new_enum, new_core_msg)) update_enum = new_enum + if update_enum in updated_val_error_dict: + print ("ERROR: About to OVERWRITE entry for %s" % update_enum) updated_val_error_dict[update_enum] = {} updated_val_error_dict[update_enum]['error_msg'] = update_msg updated_val_error_dict[update_enum]['api'] = update_api updated_val_error_dict[update_enum]['implicit'] = implicit # Assign parsed dict to be the updated dict based on db compare - print "In compareDB parsed %d entries" % (ids_parsed) + print ("In compareDB parsed %d entries" % (ids_parsed)) return updated_val_error_dict def validateUpdateDict(self, update_dict): @@ -489,17 +496,17 @@ class Specification: #update_ids = {} update_id_count = len(update_dict) if orig_id_count != update_id_count: - print "Original dict had %d unique_ids, but updated dict has %d!" % (orig_id_count, update_id_count) + print ("Original dict had %d unique_ids, but updated dict has %d!" % (orig_id_count, update_id_count)) return False - print "Original dict and updated dict both have %d unique_ids. Great!" % (orig_id_count) + print ("Original dict and updated dict both have %d unique_ids. Great!" % (orig_id_count)) # Now flag any original dict enums that had tests and/or checks that are missing from updated for enum in update_dict: if enum in self.orig_test_imp_enums: self.orig_test_imp_enums.remove(enum) if len(self.orig_test_imp_enums) > 0: - print "TODO: Have some enums with tests and/or checks implemented that are missing in update:" + print ("TODO: Have some enums with tests and/or checks implemented that are missing in update:") for enum in sorted(self.orig_test_imp_enums): - print "\t%s" % enum + print ("\t%s") % enum return True # TODO : include some more analysis @@ -520,7 +527,7 @@ def updateRemapDict(remap_string): for offset in range(count): remap_dict["%05d" % (int(new_old_id_list[0]) + offset)] = "%05d" % (int(new_old_id_list[1]) + offset) for new_id in sorted(remap_dict): - print "Set to remap new id %s to old id %s" % (new_id, remap_dict[new_id]) + print ("Set to remap new id %s to old id %s" % (new_id, remap_dict[new_id])) if __name__ == "__main__": i = 1 @@ -558,12 +565,10 @@ if __name__ == "__main__": printHelp() sys.exit() if len(remap_dict) > 1 and not update_option: - print "ERROR: '-remap' option can only be used along with '-update' option. Exiting." + print ("ERROR: '-remap' option can only be used along with '-update' option. Exiting.") sys.exit() spec = Specification() - spec.loadFile(use_online, spec_filename) - #spec.parseTree() - #spec.genHeader(out_filename) + spec.soupLoadFile(use_online, spec_filename) spec.analyze() if (spec_compare): # Read in old spec info from db file @@ -577,7 +582,7 @@ if __name__ == "__main__": sys.exit() if (gen_db): spec.genDB(db_filename) - print "Writing out file (-out) to '%s'" % (out_filename) + print ("Writing out file (-out) to '%s'" % (out_filename)) spec.genHeader(out_filename) ##### Example dataset diff --git a/layers/vk_validation_error_database.txt b/layers/vk_validation_error_database.txt index f061a8e4..82f2e07b 100644 --- a/layers/vk_validation_error_database.txt +++ b/layers/vk_validation_error_database.txt @@ -362,7 +362,7 @@ VALIDATION_ERROR_00371~^~Y~^~Unknown~^~vkCreateRenderPass~^~For more information VALIDATION_ERROR_00372~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~ VALIDATION_ERROR_00373~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~ VALIDATION_ERROR_00374~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must only contain one of VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, or VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~ -VALIDATION_ERROR_00375~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~ +VALIDATION_ERROR_00375~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~ VALIDATION_ERROR_00376~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcStageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~implicit VALIDATION_ERROR_00377~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcStageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~implicit VALIDATION_ERROR_00378~^~N~^~Unknown~^~vkCreateRenderPass~^~For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'dstStageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)~^~implicit @@ -506,7 +506,7 @@ VALIDATION_ERROR_00532~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more info VALIDATION_ERROR_00533~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'The stage member of any given element of pStages must not be VK_SHADER_STAGE_COMPUTE_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_00534~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_00535~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ -VALIDATION_ERROR_00536~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must not be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ +VALIDATION_ERROR_00536~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_00537~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_00538~^~Y~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_00539~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~implicit, TBD in parameter validation layer. @@ -721,9 +721,6 @@ VALIDATION_ERROR_00752~^~N~^~Unknown~^~vkCreateImageView~^~For more information VALIDATION_ERROR_00753~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'pView must be a pointer to a VkImageView handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCreateImageView)~^~implicit VALIDATION_ERROR_00754~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ VALIDATION_ERROR_00755~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ -VALIDATION_ERROR_00756~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the ETC2 texture compression feature is not enabled, format must not be VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, or VK_FORMAT_EAC_R11G11_SNORM_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ -VALIDATION_ERROR_00757~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the ASTC LDR texture compression feature is not enabled, format must not be VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, or VK_FORMAT_ASTC_12x12_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ -VALIDATION_ERROR_00758~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the BC texture compression feature is not enabled, format must not be VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, or VK_FORMAT_BC7_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ VALIDATION_ERROR_00759~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If image was created with VK_IMAGE_TILING_LINEAR, format must be format that has at least one supported feature bit present in the value of VkFormatProperties::linearTilingFeatures returned by vkGetPhysicalDeviceFormatProperties with the same value of format' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~ VALIDATION_ERROR_00760~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~implicit, TBD in parameter validation layer. VALIDATION_ERROR_00761~^~N~^~Unknown~^~vkCreateImageView~^~For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)~^~implicit, TBD in parameter validation layer. @@ -1968,10 +1965,10 @@ VALIDATION_ERROR_02102~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more info VALIDATION_ERROR_02103~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated with PrimitiveID, then the geometry shader code must write to a matching output variable, decorated with PrimitiveID, in all execution paths' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02104~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a fragment shader stage, its shader code must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02105~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ -VALIDATION_ERROR_02106~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, and pDepthStencilState is not NULL, the depthWriteEnable member of pDepthStencilState must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ -VALIDATION_ERROR_02107~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, and pDepthStencilState is not NULL, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ -VALIDATION_ERROR_02108~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pColorBlendState is not NULL, the blendEnable member of each element of the pAttachment member of pColorBlendState must be VK_FALSE if the format of the attachment referred to in subpass of renderPass does not support color blend operations, as specified by the VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in VkFormatProperties::linearTilingFeatures or VkFormatProperties::optimalTilingFeatures returned by vkGetPhysicalDeviceFormatProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ -VALIDATION_ERROR_02109~^~Y~^~NumBlendAttachMismatch~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pColorBlendState is not NULL, The attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ +VALIDATION_ERROR_02106~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ +VALIDATION_ERROR_02107~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ +VALIDATION_ERROR_02108~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the blendEnable member of the corresponding element of the pAttachment member of pColorBlendState must be VK_FALSE if the format of the attachment does not support color blend operations, as specified by the VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in VkFormatProperties::linearTilingFeatures or VkFormatProperties::optimalTilingFeatures returned by vkGetPhysicalDeviceFormatProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ +VALIDATION_ERROR_02109~^~Y~^~NumBlendAttachMismatch~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02110~^~Y~^~PSOViewportCountWithoutDataAndDynScissorMismatch~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a pointer to an array of pViewportState::viewportCount VkViewport structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02111~^~Y~^~PSOScissorCountWithoutDataAndDynViewportMismatch~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a pointer to an array of pViewportState::scissorCount VkRect2D structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02112~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the wide lines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ @@ -2001,9 +1998,6 @@ VALIDATION_ERROR_02135~^~N~^~Unknown~^~vkCreateImage~^~For more information refe VALIDATION_ERROR_02136~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ VALIDATION_ERROR_02137~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ VALIDATION_ERROR_02138~^~Y~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ -VALIDATION_ERROR_02139~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the ETC2 texture compression feature is not enabled, format must not be VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, or VK_FORMAT_EAC_R11G11_SNORM_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ -VALIDATION_ERROR_02140~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the ASTC LDR texture compression feature is not enabled, format must not be VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, or VK_FORMAT_ASTC_12x12_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ -VALIDATION_ERROR_02141~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the BC texture compression feature is not enabled, format must not be VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, or VK_FORMAT_BC7_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ VALIDATION_ERROR_02142~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ VALIDATION_ERROR_02143~^~Y~^~None~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ VALIDATION_ERROR_02144~^~Y~^~SparseResidencyImageCreateUnsupportedTypes~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the sparse residency for 2D images feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~ @@ -2645,7 +2639,7 @@ VALIDATION_ERROR_02815~^~N~^~Unknown~^~vkCmdBeginRenderPass~^~For more informati VALIDATION_ERROR_02816~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'codeSize must be a multiple of 4 unless the VK_NV_glsl_shader extension is enabled, and pCode references GLSL code, codeSize can be a multiple of 1' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)~^~ VALIDATION_ERROR_02817~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification or, if the VK_NV_glsl_shader extension is enabled, pCode can instead reference valid GLSL code which must be written to the GL_KHR_vulkan_glsl extension specification' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)~^~ VALIDATION_ERROR_02818~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix or, if the VK_NV_glsl_shader extension is enabled, pCode can be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)~^~ -VALIDATION_ERROR_02819~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must be a pointer to an array of codeSize4codeSize /over 44codeSize uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)~^~implicit +VALIDATION_ERROR_02819~^~N~^~Unknown~^~vkCreateShaderModule~^~For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must be a pointer to an array of /(codeSize /over 4/) uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)~^~implicit VALIDATION_ERROR_02820~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02821~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ VALIDATION_ERROR_02822~^~N~^~Unknown~^~vkCreateGraphicsPipelines~^~For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask, shaders in the pipeline must not write to the Layer built-in output' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)~^~ @@ -2782,11 +2776,11 @@ VALIDATION_ERROR_02952~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more informat VALIDATION_ERROR_02953~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'If SFRRectCount is not zero, then image must have been created with the VK_IMAGE_CREATE_BIND_SFR_BIT_KHX bit set.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ VALIDATION_ERROR_02954~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'All elements of pSFRRects must be valid rectangles contained within the dimensions of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ VALIDATION_ERROR_02955~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'Elements of pSFRRects that correspond to the same instance of the image must not overlap and their union must cover the entire image.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ -VALIDATION_ERROR_02956~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'For each element of pSFRRects: offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image extent.width must either be a multiple of the sparse image block width of the image, or else extent.width + offset.x must equal the width of the image subresource offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image extent.height must either be a multiple of the sparse image block height of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ -VALIDATION_ERROR_02957~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ -VALIDATION_ERROR_02958~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.width must either be a multiple of the sparse image block width of the image, or else extent.width + offset.x must equal the width of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ -VALIDATION_ERROR_02959~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ -VALIDATION_ERROR_02960~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.height must either be a multiple of the sparse image block height of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ +VALIDATION_ERROR_02956~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'For each element of pSFRRects: offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image extent.width must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image extent.height must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ +VALIDATION_ERROR_02957~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ +VALIDATION_ERROR_02958~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.width must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ +VALIDATION_ERROR_02959~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ +VALIDATION_ERROR_02960~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.height must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ VALIDATION_ERROR_02961~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'All instances of memory that are bound must have been allocated' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ VALIDATION_ERROR_02962~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHX::swapchain, then the image must be bound to memory from that swapchain (using VkBindImageMemorySwapchainInfoKHX).' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~ VALIDATION_ERROR_02963~^~N~^~Unknown~^~vkBindImageMemory2KHX~^~For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)~^~implicit @@ -2930,7 +2924,7 @@ VALIDATION_ERROR_03100~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~For more inf VALIDATION_ERROR_03101~^~N~^~Unknown~^~vkCmdSetViewportWScalingNV~^~For more information refer to Vulkan Spec Section '23.7. Controlling the Viewport' which states 'scissorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineViewportStateCreateInfo)~^~implicit VALIDATION_ERROR_03102~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '24. Rasterization' which states 'pNext must be NULL or a pointer to a valid instance of VkPipelineRasterizationStateRasterizationOrderAMD' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo)~^~implicit VALIDATION_ERROR_03103~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '24. Rasterization' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo)~^~implicit -VALIDATION_ERROR_03104~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '24. Rasterization' which states 'If pSampleMask is not NULL, pSampleMask must be a pointer to an array of rasterizationSamples32/lceil{/mathit{rasterizationSamples} /over 32}/rceil32rasterizationSamples VkSampleMask values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo)~^~implicit +VALIDATION_ERROR_03104~^~N~^~Unknown~^~vkCmdSetViewport~^~For more information refer to Vulkan Spec Section '24. Rasterization' which states 'If pSampleMask is not NULL, pSampleMask must be a pointer to an array of /(/lceil{/mathit{rasterizationSamples} /over 32}/rceil/) VkSampleMask values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo)~^~implicit VALIDATION_ERROR_03105~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'discardRectangleCount must be between 0 and VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)~^~ VALIDATION_ERROR_03106~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)~^~implicit VALIDATION_ERROR_03107~^~N~^~Unknown~^~vkCmdSetDepthBias~^~For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)~^~implicit @@ -3029,7 +3023,7 @@ VALIDATION_ERROR_03199~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~For more informa VALIDATION_ERROR_03200~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkAcquireNextImageInfoKHX)~^~implicit VALIDATION_ERROR_03201~^~N~^~Unknown~^~vkAcquireNextImage2KHX~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkAcquireNextImageInfoKHX)~^~implicit VALIDATION_ERROR_03202~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkQueuePresentKHR)~^~ -VALIDATION_ERROR_03203~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayPresentInfoKHR, VkDeviceGroupPresentInfoKHX, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)~^~implicit +VALIDATION_ERROR_03203~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayPresentInfoKHR, VkPresentRegionsKHR, VkDeviceGroupPresentInfoKHX, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)~^~implicit VALIDATION_ERROR_03204~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)~^~ VALIDATION_ERROR_03205~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHX::presentMask must be non-zero' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)~^~ VALIDATION_ERROR_03206~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHX::presentMask.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)~^~ @@ -3048,7 +3042,7 @@ VALIDATION_ERROR_03218~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~For more informatio VALIDATION_ERROR_03219~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'pSwapchains must be a pointer to an array of swapchainCount valid VkSwapchainKHR handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)~^~implicit VALIDATION_ERROR_03220~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'pMetadata must be a pointer to an array of swapchainCount valid VkHdrMetadataEXT structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)~^~implicit VALIDATION_ERROR_03221~^~N~^~Unknown~^~vkSetHdrMetadataEXT~^~For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'swapchainCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)~^~implicit -VALIDATION_ERROR_03222~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~For more information refer to Vulkan Spec Section '32.1. Features' which states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)~^~implicit +VALIDATION_ERROR_03222~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~For more information refer to Vulkan Spec Section '32.1. Features' which states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)~^~implicit VALIDATION_ERROR_03223~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~For more information refer to Vulkan Spec Section '32.1. Features' which states 'pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMultiviewFeaturesKHX' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)~^~implicit VALIDATION_ERROR_03224~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~For more information refer to Vulkan Spec Section '32.1. Features' which states 'If multiviewGeometryShader is enabled then multiview must also be enabled.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-features-multiview-tess)~^~ VALIDATION_ERROR_03225~^~N~^~Unknown~^~vkGetPhysicalDeviceFeatures2KHR~^~For more information refer to Vulkan Spec Section '32.1. Features' which states 'If multiviewTessellationShader is enabled then multiview must also be enabled.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-features-multiview-tess)~^~ @@ -3075,4 +3069,18 @@ VALIDATION_ERROR_03245~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePrope VALIDATION_ERROR_03246~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHX~^~For more information refer to Vulkan Spec Section '32.6. Optional Semaphore Capabilities' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkExternalSemaphoreHandleTypeFlagBitsKHX)~^~implicit VALIDATION_ERROR_03247~^~N~^~Unknown~^~vkGetPhysicalDeviceExternalSemaphorePropertiesKHX~^~For more information refer to Vulkan Spec Section '32.6. Optional Semaphore Capabilities' which states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHX value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkExternalSemaphoreHandleTypeFlagBitsKHX)~^~implicit VALIDATION_ERROR_03248~^~N~^~Unknown~^~vkCmdDebugMarkerEndEXT~^~For more information refer to Vulkan Spec Section '33.1.2. Command Buffer Markers' which states 'If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCmdDebugMarkerEndEXT)~^~ +VALIDATION_ERROR_03249~^~N~^~Unknown~^~vkCreateDevice~^~For more information refer to Vulkan Spec Section '4.2.1. Device Creation' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceCreateInfo)~^~implicit +VALIDATION_ERROR_03250~^~N~^~Unknown~^~vkQueueSubmit~^~For more information refer to Vulkan Spec Section '5.5. Command Buffer Submission' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubmitInfo)~^~implicit +VALIDATION_ERROR_03251~^~N~^~Unknown~^~vkAllocateMemory~^~For more information refer to Vulkan Spec Section '10.2. Device Memory' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkMemoryAllocateInfo)~^~implicit +VALIDATION_ERROR_03252~^~N~^~Unknown~^~vkCreateImage~^~For more information refer to Vulkan Spec Section '11.3. Images' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)~^~implicit +VALIDATION_ERROR_03253~^~N~^~Unknown~^~vkUpdateDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)~^~ +VALIDATION_ERROR_03254~^~N~^~Unknown~^~vkUpdateDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)~^~ +VALIDATION_ERROR_03255~^~N~^~Unknown~^~vkUpdateDescriptorSets~^~For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)~^~ +VALIDATION_ERROR_03256~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)~^~implicit +VALIDATION_ERROR_03257~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is in the pNext-chain of this VkPresentRegionsKHR structure.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)~^~ +VALIDATION_ERROR_03258~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)~^~implicit +VALIDATION_ERROR_03259~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If pRegions is not NULL, pRegions must be a pointer to an array of swapchainCount valid VkPresentRegionKHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)~^~implicit +VALIDATION_ERROR_03260~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a pointer to an array of rectangleCount VkRectLayerKHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionKHR)~^~implicit +VALIDATION_ERROR_03261~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'The sum of offset and extent must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkRectLayerKHR)~^~ +VALIDATION_ERROR_03262~^~N~^~Unknown~^~vkQueuePresentKHR~^~For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'layer must be less than imageArrayLayers member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkRectLayerKHR)~^~ diff --git a/layers/vk_validation_error_messages.h b/layers/vk_validation_error_messages.h index 462e4983..9ab958e9 100644 --- a/layers/vk_validation_error_messages.h +++ b/layers/vk_validation_error_messages.h @@ -747,9 +747,6 @@ enum UNIQUE_VALIDATION_ERROR_CODE { VALIDATION_ERROR_00753 = 753, VALIDATION_ERROR_00754 = 754, VALIDATION_ERROR_00755 = 755, - VALIDATION_ERROR_00756 = 756, - VALIDATION_ERROR_00757 = 757, - VALIDATION_ERROR_00758 = 758, VALIDATION_ERROR_00759 = 759, VALIDATION_ERROR_00760 = 760, VALIDATION_ERROR_00761 = 761, @@ -2027,9 +2024,6 @@ enum UNIQUE_VALIDATION_ERROR_CODE { VALIDATION_ERROR_02136 = 2136, VALIDATION_ERROR_02137 = 2137, VALIDATION_ERROR_02138 = 2138, - VALIDATION_ERROR_02139 = 2139, - VALIDATION_ERROR_02140 = 2140, - VALIDATION_ERROR_02141 = 2141, VALIDATION_ERROR_02142 = 2142, VALIDATION_ERROR_02143 = 2143, VALIDATION_ERROR_02144 = 2144, @@ -3101,7 +3095,21 @@ enum UNIQUE_VALIDATION_ERROR_CODE { VALIDATION_ERROR_03246 = 3246, VALIDATION_ERROR_03247 = 3247, VALIDATION_ERROR_03248 = 3248, - VALIDATION_ERROR_MAX_ENUM = 3249, + VALIDATION_ERROR_03249 = 3249, + VALIDATION_ERROR_03250 = 3250, + VALIDATION_ERROR_03251 = 3251, + VALIDATION_ERROR_03252 = 3252, + VALIDATION_ERROR_03253 = 3253, + VALIDATION_ERROR_03254 = 3254, + VALIDATION_ERROR_03255 = 3255, + VALIDATION_ERROR_03256 = 3256, + VALIDATION_ERROR_03257 = 3257, + VALIDATION_ERROR_03258 = 3258, + VALIDATION_ERROR_03259 = 3259, + VALIDATION_ERROR_03260 = 3260, + VALIDATION_ERROR_03261 = 3261, + VALIDATION_ERROR_03262 = 3262, + VALIDATION_ERROR_MAX_ENUM = 3263, }; // Mapping from unique validation error enum to the corresponding error message @@ -3462,7 +3470,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_00372, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, {VALIDATION_ERROR_00373, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, {VALIDATION_ERROR_00374, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass, srcStageMask and dstStageMask must only contain one of VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, or VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, - {VALIDATION_ERROR_00375, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, + {VALIDATION_ERROR_00375, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, {VALIDATION_ERROR_00376, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcStageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, {VALIDATION_ERROR_00377, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'srcStageMask must not be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, {VALIDATION_ERROR_00378, "For more information refer to Vulkan Spec Section '7.1. Render Pass Creation' which states 'dstStageMask must be a valid combination of VkPipelineStageFlagBits values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubpassDependency)"}, @@ -3606,7 +3614,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_00533, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'The stage member of any given element of pStages must not be VK_SHADER_STAGE_COMPUTE_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_00534, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_00535, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, - {VALIDATION_ERROR_00536, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must not be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, + {VALIDATION_ERROR_00536, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a pointer to a valid VkPipelineTessellationStateCreateInfo structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_00537, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_00538, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_00539, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, @@ -3821,9 +3829,6 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_00753, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'pView must be a pointer to a VkImageView handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCreateImageView)"}, {VALIDATION_ERROR_00754, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, {VALIDATION_ERROR_00755, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, - {VALIDATION_ERROR_00756, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the ETC2 texture compression feature is not enabled, format must not be VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, or VK_FORMAT_EAC_R11G11_SNORM_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, - {VALIDATION_ERROR_00757, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the ASTC LDR texture compression feature is not enabled, format must not be VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, or VK_FORMAT_ASTC_12x12_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, - {VALIDATION_ERROR_00758, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If the BC texture compression feature is not enabled, format must not be VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, or VK_FORMAT_BC7_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, {VALIDATION_ERROR_00759, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'If image was created with VK_IMAGE_TILING_LINEAR, format must be format that has at least one supported feature bit present in the value of VkFormatProperties::linearTilingFeatures returned by vkGetPhysicalDeviceFormatProperties with the same value of format' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, {VALIDATION_ERROR_00760, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, {VALIDATION_ERROR_00761, "For more information refer to Vulkan Spec Section '11.5. Image Views' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageViewCreateInfo)"}, @@ -5068,10 +5073,10 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_02103, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated with PrimitiveID, then the geometry shader code must write to a matching output variable, decorated with PrimitiveID, in all execution paths' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02104, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pStages includes a fragment shader stage, its shader code must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02105, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, - {VALIDATION_ERROR_02106, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, and pDepthStencilState is not NULL, the depthWriteEnable member of pDepthStencilState must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, - {VALIDATION_ERROR_02107, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, and pDepthStencilState is not NULL, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, - {VALIDATION_ERROR_02108, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pColorBlendState is not NULL, the blendEnable member of each element of the pAttachment member of pColorBlendState must be VK_FALSE if the format of the attachment referred to in subpass of renderPass does not support color blend operations, as specified by the VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in VkFormatProperties::linearTilingFeatures or VkFormatProperties::optimalTilingFeatures returned by vkGetPhysicalDeviceFormatProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, - {VALIDATION_ERROR_02109, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If pColorBlendState is not NULL, The attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, + {VALIDATION_ERROR_02106, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, + {VALIDATION_ERROR_02107, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and subpass uses a depth/stencil attachment in renderpass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, + {VALIDATION_ERROR_02108, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the blendEnable member of the corresponding element of the pAttachment member of pColorBlendState must be VK_FALSE if the format of the attachment does not support color blend operations, as specified by the VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in VkFormatProperties::linearTilingFeatures or VkFormatProperties::optimalTilingFeatures returned by vkGetPhysicalDeviceFormatProperties' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, + {VALIDATION_ERROR_02109, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If rasterization is not disabled and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02110, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a pointer to an array of pViewportState::viewportCount VkViewport structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02111, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a pointer to an array of pViewportState::scissorCount VkRect2D structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02112, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the wide lines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, @@ -5101,9 +5106,6 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_02136, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, {VALIDATION_ERROR_02137, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, {VALIDATION_ERROR_02138, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, usage, and flags equal to those in this structure' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, - {VALIDATION_ERROR_02139, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the ETC2 texture compression feature is not enabled, format must not be VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK, VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK, or VK_FORMAT_EAC_R11G11_SNORM_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, - {VALIDATION_ERROR_02140, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the ASTC LDR texture compression feature is not enabled, format must not be VK_FORMAT_ASTC_4x4_UNORM_BLOCK, VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK, VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK, VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK, VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK, VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK, VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK, VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK, VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK, VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK, VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK, VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK, VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK, VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK, or VK_FORMAT_ASTC_12x12_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, - {VALIDATION_ERROR_02141, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the BC texture compression feature is not enabled, format must not be VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK, VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK, VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK, VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK, VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK, VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK, VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK, VK_FORMAT_BC7_UNORM_BLOCK, or VK_FORMAT_BC7_SRGB_BLOCK' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, {VALIDATION_ERROR_02142, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, {VALIDATION_ERROR_02143, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, {VALIDATION_ERROR_02144, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'If the sparse residency for 2D images feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, @@ -5745,7 +5747,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_02816, "For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'codeSize must be a multiple of 4 unless the VK_NV_glsl_shader extension is enabled, and pCode references GLSL code, codeSize can be a multiple of 1' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)"}, {VALIDATION_ERROR_02817, "For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification or, if the VK_NV_glsl_shader extension is enabled, pCode can instead reference valid GLSL code which must be written to the GL_KHR_vulkan_glsl extension specification' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)"}, {VALIDATION_ERROR_02818, "For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix or, if the VK_NV_glsl_shader extension is enabled, pCode can be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)"}, - {VALIDATION_ERROR_02819, "For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must be a pointer to an array of codeSize4codeSize /over 44codeSize uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)"}, + {VALIDATION_ERROR_02819, "For more information refer to Vulkan Spec Section '8.1. Shader Modules' which states 'pCode must be a pointer to an array of /(codeSize /over 4/) uint32_t values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkShaderModuleCreateInfo)"}, {VALIDATION_ERROR_02820, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02821, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, {VALIDATION_ERROR_02822, "For more information refer to Vulkan Spec Section '9.2. Graphics Pipelines' which states 'If the renderPass has multiview enabled and subpass has more than one bit set in the view mask, shaders in the pipeline must not write to the Layer built-in output' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineCreateFlagBits)"}, @@ -5882,11 +5884,11 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_02953, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'If SFRRectCount is not zero, then image must have been created with the VK_IMAGE_CREATE_BIND_SFR_BIT_KHX bit set.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, {VALIDATION_ERROR_02954, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'All elements of pSFRRects must be valid rectangles contained within the dimensions of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, {VALIDATION_ERROR_02955, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'Elements of pSFRRects that correspond to the same instance of the image must not overlap and their union must cover the entire image.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, - {VALIDATION_ERROR_02956, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'For each element of pSFRRects: offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image extent.width must either be a multiple of the sparse image block width of the image, or else extent.width + offset.x must equal the width of the image subresource offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image extent.height must either be a multiple of the sparse image block height of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, - {VALIDATION_ERROR_02957, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, - {VALIDATION_ERROR_02958, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.width must either be a multiple of the sparse image block width of the image, or else extent.width + offset.x must equal the width of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, - {VALIDATION_ERROR_02959, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, - {VALIDATION_ERROR_02960, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.height must either be a multiple of the sparse image block height of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, + {VALIDATION_ERROR_02956, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'For each element of pSFRRects: offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image extent.width must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image extent.height must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, + {VALIDATION_ERROR_02957, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, + {VALIDATION_ERROR_02958, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.width must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, + {VALIDATION_ERROR_02959, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, + {VALIDATION_ERROR_02960, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'extent.height must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, {VALIDATION_ERROR_02961, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'All instances of memory that are bound must have been allocated' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, {VALIDATION_ERROR_02962, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHX::swapchain, then the image must be bound to memory from that swapchain (using VkBindImageMemorySwapchainInfoKHX).' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, {VALIDATION_ERROR_02963, "For more information refer to Vulkan Spec Section '11.6. Resource Memory Association' which states 'sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkBindImageMemoryInfoKHX)"}, @@ -6030,7 +6032,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_03101, "For more information refer to Vulkan Spec Section '23.7. Controlling the Viewport' which states 'scissorCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineViewportStateCreateInfo)"}, {VALIDATION_ERROR_03102, "For more information refer to Vulkan Spec Section '24. Rasterization' which states 'pNext must be NULL or a pointer to a valid instance of VkPipelineRasterizationStateRasterizationOrderAMD' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo)"}, {VALIDATION_ERROR_03103, "For more information refer to Vulkan Spec Section '24. Rasterization' which states 'flags must be 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo)"}, - {VALIDATION_ERROR_03104, "For more information refer to Vulkan Spec Section '24. Rasterization' which states 'If pSampleMask is not NULL, pSampleMask must be a pointer to an array of rasterizationSamples32/lceil{/mathit{rasterizationSamples} /over 32}/rceil32rasterizationSamples VkSampleMask values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo)"}, + {VALIDATION_ERROR_03104, "For more information refer to Vulkan Spec Section '24. Rasterization' which states 'If pSampleMask is not NULL, pSampleMask must be a pointer to an array of /(/lceil{/mathit{rasterizationSamples} /over 32}/rceil/) VkSampleMask values' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo)"}, {VALIDATION_ERROR_03105, "For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'discardRectangleCount must be between 0 and VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles, inclusive' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)"}, {VALIDATION_ERROR_03106, "For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)"}, {VALIDATION_ERROR_03107, "For more information refer to Vulkan Spec Section '25.2. Discard Rectangles Test' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT)"}, @@ -6129,7 +6131,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_03200, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkAcquireNextImageInfoKHX)"}, {VALIDATION_ERROR_03201, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkAcquireNextImageInfoKHX)"}, {VALIDATION_ERROR_03202, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkQueuePresentKHR)"}, - {VALIDATION_ERROR_03203, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayPresentInfoKHR, VkDeviceGroupPresentInfoKHX, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)"}, + {VALIDATION_ERROR_03203, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayPresentInfoKHR, VkPresentRegionsKHR, VkDeviceGroupPresentInfoKHX, or VkPresentTimesInfoGOOGLE' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)"}, {VALIDATION_ERROR_03204, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)"}, {VALIDATION_ERROR_03205, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHX::presentMask must be non-zero' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)"}, {VALIDATION_ERROR_03206, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHX::presentMask.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHX)"}, @@ -6148,7 +6150,7 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_03219, "For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'pSwapchains must be a pointer to an array of swapchainCount valid VkSwapchainKHR handles' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)"}, {VALIDATION_ERROR_03220, "For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'pMetadata must be a pointer to an array of swapchainCount valid VkHdrMetadataEXT structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)"}, {VALIDATION_ERROR_03221, "For more information refer to Vulkan Spec Section '30.9. Hdr Metadata' which states 'swapchainCount must be greater than 0' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkSetHdrMetadataEXT)"}, - {VALIDATION_ERROR_03222, "For more information refer to Vulkan Spec Section '32.1. Features' which states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)"}, + {VALIDATION_ERROR_03222, "For more information refer to Vulkan Spec Section '32.1. Features' which states 'sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)"}, {VALIDATION_ERROR_03223, "For more information refer to Vulkan Spec Section '32.1. Features' which states 'pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMultiviewFeaturesKHX' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2KHR)"}, {VALIDATION_ERROR_03224, "For more information refer to Vulkan Spec Section '32.1. Features' which states 'If multiviewGeometryShader is enabled then multiview must also be enabled.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-features-multiview-tess)"}, {VALIDATION_ERROR_03225, "For more information refer to Vulkan Spec Section '32.1. Features' which states 'If multiviewTessellationShader is enabled then multiview must also be enabled.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#features-features-multiview-tess)"}, @@ -6175,4 +6177,18 @@ static std::unordered_map validation_error_map{ {VALIDATION_ERROR_03246, "For more information refer to Vulkan Spec Section '32.6. Optional Semaphore Capabilities' which states 'pNext must be NULL' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkExternalSemaphoreHandleTypeFlagBitsKHX)"}, {VALIDATION_ERROR_03247, "For more information refer to Vulkan Spec Section '32.6. Optional Semaphore Capabilities' which states 'handleType must be a valid VkExternalSemaphoreHandleTypeFlagBitsKHX value' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkExternalSemaphoreHandleTypeFlagBitsKHX)"}, {VALIDATION_ERROR_03248, "For more information refer to Vulkan Spec Section '33.1.2. Command Buffer Markers' which states 'If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#vkCmdDebugMarkerEndEXT)"}, + {VALIDATION_ERROR_03249, "For more information refer to Vulkan Spec Section '4.2.1. Device Creation' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkDeviceCreateInfo)"}, + {VALIDATION_ERROR_03250, "For more information refer to Vulkan Spec Section '5.5. Command Buffer Submission' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkSubmitInfo)"}, + {VALIDATION_ERROR_03251, "For more information refer to Vulkan Spec Section '10.2. Device Memory' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkMemoryAllocateInfo)"}, + {VALIDATION_ERROR_03252, "For more information refer to Vulkan Spec Section '11.3. Images' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkImageCreateInfo)"}, + {VALIDATION_ERROR_03253, "For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)"}, + {VALIDATION_ERROR_03254, "For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)"}, + {VALIDATION_ERROR_03255, "For more information refer to Vulkan Spec Section '13.2.4. Descriptor Set Updates' which states 'If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of any given element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkWriteDescriptorSet)"}, + {VALIDATION_ERROR_03256, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'Each sType member in the pNext chain must be unique' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentInfoKHR)"}, + {VALIDATION_ERROR_03257, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is in the pNext-chain of this VkPresentRegionsKHR structure.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)"}, + {VALIDATION_ERROR_03258, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)"}, + {VALIDATION_ERROR_03259, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If pRegions is not NULL, pRegions must be a pointer to an array of swapchainCount valid VkPresentRegionKHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionsKHR)"}, + {VALIDATION_ERROR_03260, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a pointer to an array of rectangleCount VkRectLayerKHR structures' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkPresentRegionKHR)"}, + {VALIDATION_ERROR_03261, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'The sum of offset and extent must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkRectLayerKHR)"}, + {VALIDATION_ERROR_03262, "For more information refer to Vulkan Spec Section '30.8. WSI Swapchain' which states 'layer must be less than imageArrayLayers member of the VkSwapchainCreateInfoKHR structure given to vkCreateSwapchainKHR.' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VkRectLayerKHR)"}, }; -- 2.34.1