TEST: Create pre-instance intercept test case
authorLenny Komow <lenny@lunarg.com>
Tue, 19 Dec 2017 23:22:34 +0000 (16:22 -0700)
committerMike Weiblen <mikew@lunarg.com>
Wed, 10 Jan 2018 03:26:02 +0000 (20:26 -0700)
This commit should NOT be merged into master as it screws up core
validation. It is useful for testing purposes, to test the pre-
instance layer functionality.

Change-Id: Id4e078aac4289a4b951da0cb85b20306c7007597

layers/core_validation.cpp
layers/linux/VkLayer_core_validation.json

index d55cede..8ee19ac 100644 (file)
@@ -11426,3 +11426,37 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVe
 
     return VK_SUCCESS;
 }
+
+extern "C" VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL test_EnumerateInstanceExtensionProperties(VkEnumerateInstanceExtensionPropertiesChain *pChain,
+    const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties) {
+
+    printf("Hit test_EnumerateInstanceExtensionProperties with:\n");
+    printf("\tpLayerName: %s\n", pLayerName);
+    printf("\tpPropertyCount: %d\n", pPropertyCount ? *pPropertyCount : 0);
+    printf("\tpProperties: %p\n", pProperties);
+
+    VkResult res = pChain->CallDown(pLayerName, pPropertyCount, pProperties);
+
+    printf("Returned from test_EnumerateInstanceExtensionProperties with:\n");
+    printf("\tpLayerName: %s\n", pLayerName);
+    printf("\tpPropertyCount: %d\n", pPropertyCount ? *pPropertyCount : 0);
+    printf("\tpProperties: %p\n\n", pProperties);
+
+    return res;
+}
+
+extern "C" VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL test_EnumerateInstanceLayerProperties(VkEnumerateInstanceLayerPropertiesChain *pChain,
+    uint32_t *pPropertyCount, VkLayerProperties *pProperties) {
+
+    printf("Hit test_EnumerateInstanceLayerProperties with:\n");
+    printf("\tpPropertyCount: %d\n", pPropertyCount ? *pPropertyCount : 0);
+    printf("\tpProperties: %p\n", pProperties);
+
+    VkResult res = pChain->CallDown(pPropertyCount, pProperties);
+
+    printf("Returned from test_EnumerateInstanceLayerProperties with:\n");
+    printf("\tpPropertyCount: %d\n", pPropertyCount ? *pPropertyCount : 0);
+    printf("\tpProperties: %p\n\n", pProperties);
+
+    return res;
+}
index 6809c92..e8882e3 100644 (file)
@@ -1,7 +1,7 @@
 {
-    "file_format_version" : "1.1.0",
+    "file_format_version" : "1.1.2",
     "layer" : {
-        "name": "VK_LAYER_LUNARG_core_validation",
+        "name": "VK_LAYER_LUNARG_test_core_validation",
         "type": "GLOBAL",
         "library_path": "./libVkLayer_core_validation.so",
         "api_version": "1.0.67",
                          "vkMergeValidationCachesEXT"
                         ]
              }
-         ]
+        ],
+        "pre_instance_functions": {
+            "vkEnumerateInstanceExtensionProperties": "test_EnumerateInstanceExtensionProperties",
+            "vkEnumerateInstanceLayerProperties": "test_EnumerateInstanceLayerProperties"
+        },
+        "disable_environment": {
+            "DISABLE_TEST_CORE_VALIDATION": ""
+        }
     }
 }
-
-
-
-
-