
Per Khronos Bugzilla Bug 15077, on Windows and Linux, VkSurfaceKHR is treated as a pointer to platform-specific structs that contain the platform-specific connection and surface/window info. The Vulkan loader vkCreate*SurfaceKHR() functions will fill in the struct. ICDs and layers will cast VkSurfaceKHR to a pointer to the appropriate VkIcdSurface* struct.