scripts: Add simplified extension groups to vulkan.py

Change-Id: I349e8513e8de69580e3a2bed6b69205c377079cb
diff --git a/vulkan.py b/vulkan.py
index a22b150..9000765 100644
--- a/vulkan.py
+++ b/vulkan.py
@@ -1345,38 +1345,76 @@
 )
 
 import sys
+
 wsi_linux = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display']
 
-if sys.argv[1] == 'Win32':
-    extensions = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_win32_surface,
-                  VK_KHR_display, VK_KHR_display_swapchain]
-    extensions_all = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_win32_surface,
-                     VK_KHR_display, VK_AMD_draw_indirect_count,
-                     VK_NV_external_memory_capabilities, VK_NV_external_memory_win32,
-                     VK_KHR_display_swapchain, VK_EXT_debug_report, VK_EXT_debug_marker]
-elif sys.argv[1] in wsi_linux:
-    extensions = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_xcb_surface,
-                  VK_KHR_xlib_surface, VK_KHR_wayland_surface, VK_KHR_mir_surface, VK_KHR_display,
-                  VK_KHR_display_swapchain]
-    extensions_all = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_xcb_surface,
-                      VK_KHR_xlib_surface, VK_KHR_wayland_surface, VK_KHR_mir_surface,
-                      VK_KHR_display, VK_AMD_draw_indirect_count,
-                      VK_NV_external_memory_capabilities, VK_KHR_display_swapchain,
-                      VK_EXT_debug_report, VK_EXT_debug_marker]
-elif sys.argv[1] == 'Android':
-    extensions = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_android_surface, VK_KHR_display_swapchain]
-    extensions_all = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_android_surface,
-                      VK_AMD_draw_indirect_count, VK_NV_external_memory_capabilities,
-                      VK_KHR_display_swapchain, VK_EXT_debug_report, VK_EXT_debug_marker]
+# Set up platform-specific display servers
+linux_display_servers = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display']
+win32_display_servers = ['Win32']
+android_display_servers = ['Android']
+
+# Define non-WSI platform-specific extensions
+android_only_exts = []
+linux_only_exts = []
+win32_only_exts = [VK_NV_external_memory_win32,
+#                  VK_NV_win32_keyed_mutex,
+                  ]
+
+# Define platform-specific WSI extensions
+android_wsi_exts = [VK_KHR_android_surface,
+                   ]
+linux_wsi_exts = [VK_KHR_xlib_surface,
+                  VK_KHR_xcb_surface,
+                  VK_KHR_wayland_surface,
+                  VK_KHR_mir_surface,
+                 ]
+win32_wsi_exts = [VK_KHR_win32_surface
+                 ]
+
+# Define extensions common to all configurations
+common_exts = [VK_VERSION_1_0,
+               VK_KHR_surface,
+               VK_KHR_swapchain,
+               VK_KHR_display_swapchain,
+              ]
+
+# Define extensions not exported by the loader
+non_exported_exts = [VK_NV_external_memory_capabilities,
+                     VK_AMD_draw_indirect_count,
+                     VK_EXT_debug_report,
+                     VK_EXT_debug_marker,
+#                    VK_KHR_sampler_mirror_clamp_to_edge,
+#                    VK_NV_glsl_shader,
+#                    VK_IMG_filter_cubic,
+#                    VK_AMD_rasterization_order,
+#                    VK_AMD_shader_trinary_minmax,
+#                    VK_AMD_shader_explicit_vertex_parameter,
+#                    VK_AMD_gcn_shader,
+#                    VK_NV_dedicated_allocation,
+#                    VK_NV_external_memory,
+#                    VK_EXT_validation_flags,
+#                    VK_AMD_negative_viewport_height,
+#                    VK_AMD_gpu_shader_half_float,
+#                    VK_AMD_shader_ballot,
+#                    VK_IMG_format_pvrtc,
+                    ]
+non_android_exts = [VK_KHR_display,
+                   ]
+extensions = common_exts
+extensions_all = non_exported_exts
+
+if sys.argv[1] in win32_display_servers:
+    extensions += win32_wsi_exts
+    extensions_all += extensions + win32_only_exts
+elif sys.argv[1] in linux_display_servers:
+    extensions += linux_wsi_exts
+    extensions_all += extensions + linux_only_exts
+elif sys.argv[1] in android_display_servers:
+    extensions += android_wsi_exts
+    extensions_all += extensions + android_only_exts
 else:
-    extensions = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_win32_surface, VK_KHR_xcb_surface,
-                 VK_KHR_xlib_surface, VK_KHR_wayland_surface, VK_KHR_mir_surface, VK_KHR_display,
-                 VK_KHR_android_surface, VK_KHR_display_swapchain]
-    extensions_all = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_win32_surface,
-                     VK_KHR_xcb_surface, VK_KHR_xlib_surface, VK_KHR_wayland_surface, VK_KHR_mir_surface,
-                     VK_KHR_display, VK_KHR_android_surface, VK_AMD_draw_indirect_count,
-                     VK_NV_external_memory_capabilities, VK_NV_external_memory_win32,
-                     VK_KHR_display_swapchain, VK_EXT_debug_report, VK_EXT_debug_marker]
+    extensions += win32_wsi_exts + linux_wsi_exts + android_wsi_exts
+    extensions_all += extensions + win32_only_exts + linux_only_exts + android_only_exts
 
 object_dispatch_list = [
     "VkInstance",