[[VK_NN_vi_surface]] == VK_NN_vi_surface *Name String*:: +VK_NN_vi_surface+ *Extension Type*:: Instance extension *Registered Extension Number*:: 63 *Last Modified Date*:: 2016-12-2 *Revision*:: 1 *IP Status*:: No known IP claims. *Dependencies*:: - This extension is written against version 1.0 of the Vulkan API. - Requires +VK_KHR_surface+. *Contributors*:: - Mathias Heyer, NVIDIA - Michael Chock, NVIDIA - Yasuhiro Yoshioka, Nintendo - Daniel Koch, NVIDIA *Contacts*:: - Mathias Heyer, NVIDIA The +VK_NN_vi_surface+ extension is an instance extension. It provides a mechanism to create a slink:VkSurfaceKHR object (defined by the +VK_KHR_surface+ extension) associated with an code:nn::code:vi::code:Layer. === New Object Types None === New Enum Constants * Extending ename:VkStructureType: ** ename:VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN === New Enums None === New Structures * slink:VkViSurfaceCreateInfoNN === New Functions * flink:vkCreateViSurfaceNN === Issues 1) Does VI need a way to query for compatibility between a particular physical device (and queue family?) and a specific VI display? *RESOLVED*: No. It is currently always assumed that the device and display will always be compatible. 2) slink:VkViSurfaceCreateInfoNN::pname:pWindow is intended to store an code:nn::code:vi::code:NativeWindowHandle, but its declared type is a bare code:void* to store the window handle. Why the discrepancy? *RESOLVED*: It is for C compatibility. The definition for the VI native window handle type is defined inside the nn::vi C++ namespace. This prevents its use in C source files. nn::vi::NativeWindowHandle is always defined to be void*, so this extension uses void* to match. === Version History * Revision 1, 2016-12-2 (Michael Chock) - Initial draft.