android: Fix android build.
Temporarily disable shader checker which now depends on glslang
Fix xcb guards and set the ifdef based on platform
diff --git a/buildAndroid/jni/Application.mk b/buildAndroid/jni/Application.mk
index 1962e68..d89707f 100644
--- a/buildAndroid/jni/Application.mk
+++ b/buildAndroid/jni/Application.mk
@@ -15,6 +15,6 @@
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 mips mips64
APP_PLATFORM := android-22
APP_STL := gnustl_static
-APP_MODULES := layer_utils VKLayerBasic VKLayerDrawState VKLayerMemTracker VKLayerShaderCheker VKLayerImage VKLayerParamChecker VKLayerGeneric VKLayerAPIDump VKLayerObjectTracker VKLayerThreading VKLayerValidationTests
+APP_MODULES := layer_utils VKLayerBasic VKLayerDrawState VKLayerMemTracker VKLayerImage VKLayerParamChecker VKLayerGeneric VKLayerAPIDump VKLayerObjectTracker VKLayerThreading VKLayerValidationTests
APP_CPPFLAGS += -std=c++11 -DVK_PROTOTYPES
NDK_TOOLCHAIN_VERSION := 4.8
diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h
index 47165f7..31040c0 100644
--- a/include/vulkan/vk_layer.h
+++ b/include/vulkan/vk_layer.h
@@ -14,6 +14,18 @@
#else
# define VK_LAYER_EXPORT
#endif
+#if defined(__ANDROID__)
+#define VK_USE_PLATFORM_ANDROID_KHR
+#elif defined(_WIN32)
+#define VK_USE_PLATFORM_WIN32_KHR
+#elif defined(__unix__)
+#define VK_USE_PLATFORM_MIR_KHR
+#define VK_USE_PLATFORM_WAYLAND_KHR
+#define VK_USE_PLATFORM_XLIB_KHR
+#define VK_USE_PLATFORM_XCB_KHR
+#else
+#error "Unsupported Platform!"
+#endif
typedef void * (VKAPI_PTR *PFN_vkGPA)(void* obj, const char * pName);
typedef struct VkBaseLayerObject_
diff --git a/layers/apidump.h b/layers/apidump.h
index c61439e..274e42c 100644
--- a/layers/apidump.h
+++ b/layers/apidump.h
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2015 Valve Corporation
+ * Copyright (C) 2015 Google Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -95,7 +96,7 @@
#if VK_USE_PLATFORM_WIN32_KHR
pDisp->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR) gpa(instance, "vkCreateWin32SurfaceKHR");
pDisp->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR) gpa(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
-#else // VK_USE_PLATFORM_XCB_KHR
+#elif VK_USE_PLATFORM_XCB_KHR
pDisp->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR) gpa(instance, "vkCreateXcbSurfaceKHR");
pDisp->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR) gpa(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
#endif
diff --git a/layers/object_track.h b/layers/object_track.h
index 4308917..6debcb9 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -1,6 +1,7 @@
/*
*
* Copyright (C) 2015 Valve Corporation
+ * Copyright (C) 2015 Google Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -218,7 +219,7 @@
#if VK_USE_PLATFORM_WIN32_KHR
pDisp->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR) gpa(instance, "vkCreateWin32SurfaceKHR");
pDisp->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR) gpa(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
-#else // VK_USE_PLATFORM_XCB_KHR
+#elif VK_USE_PLATFORM_XCB_KHR
pDisp->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR) gpa(instance, "vkCreateXcbSurfaceKHR");
pDisp->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR) gpa(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
#endif
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index cc1fb42..5218ec5 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -3,6 +3,7 @@
# VK
#
# Copyright (C) 2015 Valve Corporation
+# Copyright (C) 2015 Google Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -430,8 +431,12 @@
func_body.append(' {')
extra_space = " "
for ext_name in ext_list:
+ if 'Xcb' in ext_name:
+ func_body.append("#ifdef VK_USE_PLATFORM_XCB_KHR")
func_body.append(' %sif (!strcmp("%s", funcName))\n'
' return reinterpret_cast<PFN_vkVoidFunction>(%s);' % (extra_space, ext_name, ext_name))
+ if 'Xcb' in ext_name:
+ func_body.append("#endif //VK_USE_PLATFORM_XCB_KHR")
if 0 != len(ext_enable):
func_body.append(' }\n')
@@ -536,8 +541,12 @@
func_body.append(' {')
extra_space = " "
for ext_name in ext_list:
+ if 'Xcb' in ext_name:
+ func_body.append('#ifdef VK_USE_PLATFORM_XCB_KHR')
func_body.append(' %sif (!strcmp("%s", funcName))\n'
' return reinterpret_cast<PFN_vkVoidFunction>(%s);' % (extra_space, ext_name, ext_name))
+ if 'Xcb' in ext_name:
+ func_body.append('#endif //VK_USE_PLATFORM_XCB_KHR')
if 0 != len(ext_enable):
func_body.append(' }\n')
@@ -739,6 +748,8 @@
' return result;\n'
'}\n' % (qual, decl, ret_val, proto.c_call(), proto.name))
else:
+ if 'Xcb' in proto.name:
+ funcs.append("#ifdef VK_USE_PLATFORM_XCB_KHR")
funcs.append('%s' % self.lineinfo.get())
dispatch_param = proto.params[0].name
# Must use 'instance' table for these APIs, 'device' table otherwise
@@ -752,6 +763,8 @@
' %s%s_dispatch_table(%s)->%s;\n'
'%s'
'}' % (qual, decl, ret_val, table_type, dispatch_param, proto.c_call(), stmt))
+ if 'Xcb' in proto.name:
+ funcs.append("#endif //VK_USE_PLATFORM_XCB_KHR")
return "\n\n".join(funcs)
def generate_body(self):
@@ -1159,6 +1172,8 @@
'%s'
'}' % (qual, decl, table_type, dispatch_param, ret_val, proto.c_call(), f_open, log_func, f_close, stmt))
else:
+ if 'Xcb' in decl:
+ funcs.append('#ifdef VK_USE_PLATFORM_XCB_KHR')
funcs.append('%s%s\n'
'{\n'
' using namespace StreamControl;\n'
@@ -1166,25 +1181,27 @@
' %s%s%s\n'
'%s'
'}' % (qual, decl, ret_val, table_type, dispatch_param, proto.c_call(), f_open, log_func, f_close, stmt))
+ if 'Xcb' in decl:
+ funcs.append('#endif //VK_USE_PLATFORM_XCB_KHR')
return "\n\n".join(funcs)
def generate_body(self):
self.layer_name = "APIDump"
- if sys.platform == 'win32':
- instance_extensions=[('wsi_enabled',
- ['vkGetPhysicalDeviceSurfaceSupportKHR',
- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
- 'vkGetPhysicalDeviceSurfaceFormatsKHR',
- 'vkGetPhysicalDeviceSurfacePresentModesKHR',
- 'vkCreateWin32SurfaceKHR',
- 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])]
- else:
- instance_extensions=[('wsi_enabled',
- ['vkGetPhysicalDeviceSurfaceSupportKHR',
- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
- 'vkGetPhysicalDeviceSurfaceFormatsKHR',
- 'vkGetPhysicalDeviceSurfacePresentModesKHR',
- 'vkCreateXcbSurfaceKHR',
+ if sys.platform == 'win32':
+ instance_extensions=[('wsi_enabled',
+ ['vkGetPhysicalDeviceSurfaceSupportKHR',
+ 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
+ 'vkGetPhysicalDeviceSurfaceFormatsKHR',
+ 'vkGetPhysicalDeviceSurfacePresentModesKHR',
+ 'vkCreateWin32SurfaceKHR',
+ 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])]
+ else:
+ instance_extensions=[('wsi_enabled',
+ ['vkGetPhysicalDeviceSurfaceSupportKHR',
+ 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
+ 'vkGetPhysicalDeviceSurfaceFormatsKHR',
+ 'vkGetPhysicalDeviceSurfacePresentModesKHR',
+ 'vkCreateXcbSurfaceKHR',
'vkGetPhysicalDeviceXcbPresentationSupportKHR'])]
extensions=[('wsi_enabled',
['vkCreateSwapchainKHR',
@@ -1707,6 +1724,8 @@
table_type = "instance"
else:
table_type = "device"
+ if 'Xcb' in proto.name:
+ funcs.append("#ifdef VK_USE_PLATFORM_XCB_KHR")
funcs.append('%s%s\n'
'{\n'
'%s'
@@ -1715,6 +1734,8 @@
'%s'
'%s'
'}' % (qual, decl, using_line, destroy_line, ret_val, table_type, dispatch_param, proto.c_call(), create_line, stmt))
+ if 'Xcb' in proto.name:
+ funcs.append("#endif //VK_USE_PLATFORM_XCB_KHR")
return "\n\n".join(funcs)
def generate_body(self):
@@ -1723,23 +1744,23 @@
['vkCreateSwapchainKHR',
'vkDestroySwapchainKHR', 'vkGetSwapchainImagesKHR',
'vkAcquireNextImageKHR', 'vkQueuePresentKHR'])]
- if sys.platform == 'win32':
- instance_extensions=[('msg_callback_get_proc_addr', []),
- ('wsi_enabled',
- ['vkGetPhysicalDeviceSurfaceSupportKHR',
- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
- 'vkGetPhysicalDeviceSurfaceFormatsKHR',
- 'vkGetPhysicalDeviceSurfacePresentModesKHR',
- 'vkCreateWin32SurfaceKHR',
- 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])]
- else:
- instance_extensions=[('msg_callback_get_proc_addr', []),
- ('wsi_enabled',
- ['vkGetPhysicalDeviceSurfaceSupportKHR',
- 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
- 'vkGetPhysicalDeviceSurfaceFormatsKHR',
- 'vkGetPhysicalDeviceSurfacePresentModesKHR',
- 'vkCreateXcbSurfaceKHR',
+ if sys.platform == 'win32':
+ instance_extensions=[('msg_callback_get_proc_addr', []),
+ ('wsi_enabled',
+ ['vkGetPhysicalDeviceSurfaceSupportKHR',
+ 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
+ 'vkGetPhysicalDeviceSurfaceFormatsKHR',
+ 'vkGetPhysicalDeviceSurfacePresentModesKHR',
+ 'vkCreateWin32SurfaceKHR',
+ 'vkGetPhysicalDeviceWin32PresentationSupportKHR'])]
+ else:
+ instance_extensions=[('msg_callback_get_proc_addr', []),
+ ('wsi_enabled',
+ ['vkGetPhysicalDeviceSurfaceSupportKHR',
+ 'vkGetPhysicalDeviceSurfaceCapabilitiesKHR',
+ 'vkGetPhysicalDeviceSurfaceFormatsKHR',
+ 'vkGetPhysicalDeviceSurfacePresentModesKHR',
+ 'vkCreateXcbSurfaceKHR',
'vkGetPhysicalDeviceXcbPresentationSupportKHR'])]
body = [self.generate_maps(),
self.generate_procs(),