loader: Fix loader and layer negotiation
authorMark Young <marky@lunarg.com>
Wed, 29 Mar 2017 19:39:27 +0000 (13:39 -0600)
committerMark Young <marky@lunarg.com>
Fri, 7 Apr 2017 15:08:22 +0000 (09:08 -0600)
Resolve missing struct sType as well as extern of
vkNegotiateLoaderAndLayerInterface as a C function.  Finally,
bump up the JSON file version so it looks for the negotiate
function.

Change-Id: I7fd4784fce6cbd0c303f7b2bb354542e4b16b1df

14 files changed:
include/vulkan/vk_layer.h
layers/linux/VkLayer_core_validation.json
layers/linux/VkLayer_object_tracker.json
layers/linux/VkLayer_parameter_validation.json
layers/linux/VkLayer_swapchain.json
layers/linux/VkLayer_threading.json
layers/linux/VkLayer_unique_objects.json
layers/windows/VkLayer_core_validation.json
layers/windows/VkLayer_object_tracker.json
layers/windows/VkLayer_parameter_validation.json
layers/windows/VkLayer_swapchain.json
layers/windows/VkLayer_threading.json
layers/windows/VkLayer_unique_objects.json
loader/loader.c

index 4a502a3..5458ff2 100644 (file)
@@ -132,3 +132,12 @@ typedef struct {
     } u;
 } VkLayerDeviceCreateInfo;
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct);
+
+#ifdef __cplusplus
+}
+#endif
index 8788bda..7e36eca 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_core_validation",
         "type": "GLOBAL",
index f4c88a4..db0bae9 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_object_tracker",
         "type": "GLOBAL",
index cd5d40e..0b6cd34 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_parameter_validation",
         "type": "GLOBAL",
index 41cdc64..2d62dd8 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_swapchain",
         "type": "GLOBAL",
index 8d4b590..b7701a9 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_GOOGLE_threading",
         "type": "GLOBAL",
index 368766b..11be2a3 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_GOOGLE_unique_objects",
         "type": "GLOBAL",
index 37e57a5..012cb59 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_core_validation",
         "type": "GLOBAL",
index fc8dfd2..888fc01 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_object_tracker",
         "type": "GLOBAL",
index 21bcb03..5b841d2 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_parameter_validation",
         "type": "GLOBAL",
index 34e1fde..1c2a40e 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_LUNARG_swapchain",
         "type": "GLOBAL",
index 7e531a0..616f94f 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_GOOGLE_threading",
         "type": "GLOBAL",
index 319a48c..96fdfab 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "file_format_version" : "1.0.0",
+    "file_format_version" : "1.1.0",
     "layer" : {
         "name": "VK_LAYER_GOOGLE_unique_objects",
         "type": "GLOBAL",
index 4a47c75..634395e 100644 (file)
@@ -3786,8 +3786,7 @@ VkResult loader_enable_instance_layers(struct loader_instance *inst, const VkIns
 bool loader_get_layer_interface_version(PFN_vkNegotiateLoaderLayerInterfaceVersion fp_negotiate_layer_version,
                                         VkNegotiateLayerInterface *interface_struct) {
     memset(interface_struct, 0, sizeof(VkNegotiateLayerInterface));
-
-    // Base assumption is that all layers are version 1 at least.
+    interface_struct->sType = LAYER_NEGOTIATE_INTERFACE_STRUCT;
     interface_struct->loaderLayerInterfaceVersion = 1;
 
     if (fp_negotiate_layer_version != NULL) {