vk-layer-generate.py: handle device commands in GetInstanceProcAddr

Per commit 5bf16c33b9c1f38fc467d94716f276620a265327, extension check is
bypassed in GetInstanceProcAddr for VK_KHR_swapchain functions.
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index 5f07447..24f3c93 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -535,9 +535,11 @@
                 func_body.append('%s' % self.lineinfo.get())
                 func_body.append('static inline PFN_vkVoidFunction intercept_%s_command(const char *name, VkDevice dev)' % ext_enable)
                 func_body.append('{')
-                func_body.append('    layer_data *my_data = get_my_data_ptr(get_dispatch_key(dev), layer_data_map);')
-                func_body.append('    if (!my_data->%s)' % ext_enable)
-                func_body.append('        return nullptr;\n')
+                func_body.append('    if (dev) {')
+                func_body.append('        layer_data *my_data = get_my_data_ptr(get_dispatch_key(dev), layer_data_map);')
+                func_body.append('        if (!my_data->%s)' % ext_enable)
+                func_body.append('            return nullptr;')
+                func_body.append('    }\n')
 
                 for ext_name in ext_list:
                     func_body.append('    if (!strcmp("%s", name))\n'
@@ -588,7 +590,16 @@
                              "{\n"
                              "    PFN_vkVoidFunction addr;\n"
                              "    addr = intercept_core_instance_command(funcName);\n"
-                             "    if (addr) {\n"
+                             "    if (!addr) {\n"
+                             "        addr = intercept_core_device_command(funcName);\n"
+                             "    }")
+
+            for ext_enable, _ in extensions:
+                func_body.append("    if (!addr) {\n"
+                                 "        addr = intercept_%s_command(funcName, VkDevice(VK_NULL_HANDLE));\n"
+                                 "    }" % ext_enable)
+
+            func_body.append("    if (addr) {\n"
                              "        return addr;\n"
                              "    }\n"
                              "    assert(instance);\n"