1//% gcc -c -Wall -I. -I../include htest.c 2 3// Copyright 2019-2024 The Khronos Group Inc. 4// 5// SPDX-License-Identifier: Apache-2.0 6 7// Simple compilation test for Vulkan headers, including all platform 8// headers. 9// To allow compilation in environments without one or more platforms, fake 10// headers for different platforms are supplied. They provide just the types 11// Vulkan platforms require. 12// When a new Vulkan platform is defined, the corresponding USE_PLATFORM 13// header definition, and any supporting fake platform headers, should be 14// defined here, along with a trivial compilation test using a Vulkan type 15// or function specific to that platform. 16 17// Enable each platform when vulkan_sc.h is included 18 19#define VK_USE_PLATFORM_ANDROID_KHR // No headers needed 20#define VK_USE_PLATFORM_FUCHSIA // <zircon/types.h> 21#define VK_USE_PLATFORM_GGP // <ggp_c/vulkan_types.h> 22#define VK_USE_PLATFORM_IOS_MVK // No headers needed 23#define VK_USE_PLATFORM_MACOS_MVK // No headers needed 24#define VK_USE_PLATFORM_METAL_EXT // No headers needed 25#define VK_USE_PLATFORM_VI_NN // No headers needed 26#define VK_USE_PLATFORM_WAYLAND_KHR // <wayland-client.h> 27#define VK_USE_PLATFORM_WIN32_KHR // <windows.h> 28#define VK_USE_PLATFORM_XCB_KHR // <xcb/xcb.h> 29#define VK_USE_PLATFORM_XLIB_KHR // <X11/Xlib.h> 30#define VK_USE_PLATFORM_XLIB_XRANDR_EXT // <X11/extensions/Xrandr.h> 31#define VK_USE_PLATFORM_SCREEN_QNX // <screen/screen.h> 32#define VK_USE_PLATFORM_SCI // nvscisync.h 33#define VK_ENABLE_BETA_EXTENSIONS // No headers needed 34 35#ifdef USE_HPP 36#include <vulkan/vulkan_sc_core.hpp> 37 38#include <nvscisync.h> 39#include <nvscibuf.h> 40#include "vulkan/vulkan_sci.h" 41#else 42#include <vulkan/vulkan_sc.h> 43#endif 44 45// Sanity check with a type or function from each platform header in turn 46// (uncomment type below if a platform extension is enabled for 'vulkansc') 47 48//VkAndroidSurfaceCreateFlagsKHR android_flags; 49//VkImagePipeSurfaceCreateFlagsFUCHSIA fuchsia_flags; 50//VkStreamDescriptorSurfaceCreateFlagsGGP ggp_flags; 51//VkIOSSurfaceCreateFlagsMVK ios_flags; 52//VkMacOSSurfaceCreateFlagsMVK macos_flags; 53//VkMetalSurfaceCreateFlagsEXT metal_flags; 54//VkViSurfaceCreateFlagsNN vi_flags; 55//VkWaylandSurfaceCreateFlagsKHR wayland_flags; 56//VkWin32SurfaceCreateFlagsKHR win32_flags; 57//VkXcbSurfaceCreateFlagsKHR xcb_flags; 58//VkXlibSurfaceCreateFlagsKHR xlib_flags; 59//VkScreenSurfaceCreateFlagsQNX screen_flags; 60NvSciSyncAttrList scisync_attr_list; 61 62int main(void) { 63 VkInstanceCreateInfo instance_info; 64 VkInstance instance; 65 66 instance_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, 67 instance_info.pNext = NULL, 68 instance_info.flags = 0, 69 instance_info.pApplicationInfo = NULL, 70 instance_info.enabledLayerCount = 0, 71 instance_info.ppEnabledLayerNames = NULL, 72 instance_info.enabledExtensionCount = 0, 73 instance_info.ppEnabledExtensionNames = NULL, 74 75 vkCreateInstance(&instance_info, NULL, &instance); 76 vkDestroyInstance(instance, NULL); 77 78 return 0; 79} 80