Snap for 7478067 from 5eb82c1567069ba8ad38bc8e3520c67cb3837c33 to mainline-ipsec-release

Change-Id: If6ed12340cba41be42d15f8524c932b04d8ab300
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+  license_type: NOTICE
+}
diff --git a/build-android/build.py b/build-android/build.py
index 7b4d3d3..80a3f16 100755
--- a/build-android/build.py
+++ b/build-android/build.py
@@ -204,12 +204,17 @@
           'dest_dir': 'third_party/shaderc/third_party/glslang',
           'files': ['glslang/OSDependent/osinclude.h',
                     'Android.mk',
+                    # Build version info is generated frmo the CHANGES.md file.
+                    'CHANGES.md',
+                    'build_info.h.tmpl',
+                    'build_info.py',
                    ],
           'dirs': [
               'SPIRV',
               'OGLCompilersDLL',
               'glslang/GenericCodeGen',
               'hlsl',
+              'glslang/HLSL',
               'glslang/Include',
               'glslang/MachineIndependent',
               'glslang/OSDependent/Unix',
diff --git a/build-android/jni/Android.mk b/build-android/jni/Android.mk
index 6f93c7f..b95d2bd 100644
--- a/build-android/jni/Android.mk
+++ b/build-android/jni/Android.mk
@@ -22,6 +22,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := layer_utils
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/vk_layer_config.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/vk_layer_extension_utils.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/vk_layer_utils.cpp
@@ -35,6 +38,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_khronos_validation
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/core_validation.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/drawdispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/descriptor_sets.cpp
@@ -64,6 +70,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_core_validation
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/core_validation.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/drawdispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/descriptor_sets.cpp
@@ -87,6 +96,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_parameter_validation
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/parameter_validation.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/layer_chassis_dispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/chassis.cpp
@@ -104,6 +116,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_object_tracker
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/object_tracker.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/layer_chassis_dispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/chassis.cpp
@@ -121,6 +136,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_threading
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/thread_safety.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/layer_chassis_dispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/chassis.cpp
@@ -137,6 +155,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayer_unique_objects
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/layer_chassis_dispatch.cpp
 LOCAL_SRC_FILES += $(SRC_DIR)/layers/generated/chassis.cpp
 LOCAL_C_INCLUDES += $(VULKAN_INCLUDE) \
@@ -152,6 +173,9 @@
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := VkLayerValidationTests
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/tests/layer_validation_tests.cpp \
 				   $(SRC_DIR)/tests/vklayertests_pipeline_shader.cpp \
 				   $(SRC_DIR)/tests/vklayertests_buffer_image_memory_sampler.cpp \
@@ -182,6 +206,9 @@
 # Note: The following module is similar in name to the executable, but differs so that loader won't enumerate the resulting .so
 include $(CLEAR_VARS)
 LOCAL_MODULE := VulkanLayerValidationTests
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE.txt $(LOCAL_PATH)/../../NOTICE
 LOCAL_SRC_FILES += $(SRC_DIR)/tests/layer_validation_tests.cpp \
 				   $(SRC_DIR)/tests/vklayertests_pipeline_shader.cpp \
 				   $(SRC_DIR)/tests/vklayertests_buffer_image_memory_sampler.cpp \
diff --git a/layers/gpu_validation.cpp b/layers/gpu_validation.cpp
index 38737a9..c8c3168 100644
--- a/layers/gpu_validation.cpp
+++ b/layers/gpu_validation.cpp
@@ -730,10 +730,10 @@
                  << " Instance Index = " << debug_record[kInstVertOutInstanceIndex] << ". ";
         } break;
         case spv::ExecutionModelTessellationControl: {
-            strm << "Stage = Tessellation Control.  Invocation ID = " << debug_record[kInstTessOutInvocationId] << ". ";
+            strm << "Stage = Tessellation Control.  Invocation ID = " << debug_record[kInstTessCtlOutInvocationId] << ". ";
         } break;
         case spv::ExecutionModelTessellationEvaluation: {
-            strm << "Stage = Tessellation Eval.  Invocation ID = " << debug_record[kInstTessOutInvocationId] << ". ";
+            strm << "Stage = Tessellation Eval.  Invocation ID = " << debug_record[kInstTessCtlOutInvocationId] << ". ";
         } break;
         case spv::ExecutionModelGeometry: {
             strm << "Stage = Geometry.  Primitive ID = " << debug_record[kInstGeomOutPrimitiveId]
@@ -745,7 +745,7 @@
                  << *reinterpret_cast<const float *>(&debug_record[kInstFragOutFragCoordY]) << "). ";
         } break;
         case spv::ExecutionModelGLCompute: {
-            strm << "Stage = Compute.  Global invocation ID = " << debug_record[kInstCompOutGlobalInvocationId] << ". ";
+            strm << "Stage = Compute.  Global invocation ID = " << debug_record[kInstCompOutGlobalInvocationIdX] << ". ";
         } break;
         case spv::ExecutionModelRayGenerationNV: {
             strm << "Stage = Ray Generation.  Global Launch ID (x,y,z) = (" << debug_record[kInstRayTracingOutLaunchIdX] << ", "
@@ -785,12 +785,12 @@
     std::ostringstream strm;
     switch (debug_record[kInstValidationOutError]) {
         case 0: {
-            strm << "Index of " << debug_record[kInstBindlessOutDescIndex] << " used to index descriptor array of length "
-                 << debug_record[kInstBindlessOutDescBound] << ". ";
+            strm << "Index of " << debug_record[kInstBindlessBoundsOutDescIndex] << " used to index descriptor array of length "
+                 << debug_record[kInstBindlessBoundsOutDescBound] << ". ";
             vuid_msg = "UNASSIGNED-Descriptor index out of bounds";
         } break;
         case 1: {
-            strm << "Descriptor index " << debug_record[kInstBindlessOutDescIndex] << " is uninitialized. ";
+            strm << "Descriptor index " << debug_record[kInstBindlessBoundsOutDescIndex] << " is uninitialized. ";
             vuid_msg = "UNASSIGNED-Descriptor uninitialized";
         } break;
         default: {