header: Update to version 1.0.55 of the Vulkan hdr

- updated vulkan.h
- updated generator.py
- updated reg.py
- updated vk.xml
- updated Win/Lin json files
- fixed and updated vulkan.hpp
- updated validation error messages and database
- applied validextensionstruct fixes from 1.0.54 LVL vk.xml file
- fixed parameter_validation DebugMarker prototypes
- fixed unique_objects DebugMarker prototypes
- fixed NV_FILL_RECTANGLE in error DB
- updated error database with new covered VUs

Change-Id: I4eec816a6dc9756105a357beab6af4abb303994d
diff --git a/scripts/reg.py b/scripts/reg.py
index 5c92d27..a591380 100755
--- a/scripts/reg.py
+++ b/scripts/reg.py
@@ -16,6 +16,7 @@
 
 import io,os,re,string,sys,copy
 import xml.etree.ElementTree as etree
+from collections import defaultdict
 
 # matchAPIProfile - returns whether an API and profile
 #   being generated matches an element's profile
@@ -201,6 +202,7 @@
         self.apidict      = {}
         self.extensions   = []
         self.requiredextensions = [] # Hack - can remove it after validity generator goes away
+        self.validextensionstructs = defaultdict(list)
         self.extdict      = {}
         # A default output generator, so commands prior to apiGen can report
         # errors via the generator object.
@@ -388,6 +390,18 @@
                 if (addEnumInfo):
                     enumInfo = EnumInfo(enum)
                     self.addElementInfo(enum, enumInfo, 'enum', self.enumdict)
+        # Construct a "validextensionstructs" list for parent structures
+        # based on "structextends" tags in child structures
+        for type in self.reg.findall('types/type'):
+            parentStructs = type.get('structextends')
+            if (parentStructs != None):
+                for parent in parentStructs.split(','):
+                    # self.gen.logMsg('diag', type.get('name'), 'extends', parent)
+                    self.validextensionstructs[parent].append(type.get('name'))
+        # Sort the lists so they don't depend on the XML order
+        for parent in self.validextensionstructs:
+            self.validextensionstructs[parent].sort()
+
     def dumpReg(self, maxlen = 40, filehandle = sys.stdout):
         """Dump all the dictionaries constructed from the Registry object"""
         write('***************************************', file=filehandle)