// Copyright (c) 2016-2020 Nintendo // // SPDX-License-Identifier: CC-BY-4.0 include::{generated}/meta/{refprefix}VK_NN_vi_surface.adoc[] === Other Extension Metadata *Last Modified Date*:: 2016-12-02 *IP Status*:: No known IP claims. *Contributors*:: - Mathias Heyer, NVIDIA - Michael Chock, NVIDIA - Yasuhiro Yoshioka, Nintendo - Daniel Koch, NVIDIA === Description The `VK_NN_vi_surface` extension is an instance extension. It provides a mechanism to create a slink:VkSurfaceKHR object (defined by the `apiext:VK_KHR_surface` extension) associated with an code:nn::code:vi::code:Layer. include::{generated}/interfaces/VK_NN_vi_surface.adoc[] === 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 code:nn::code:vi C++ namespace. This prevents its use in C source files. code:nn::code:vi::code:NativeWindowHandle is always defined to be code:void*, so this extension uses code:void* to match. === Version History * Revision 1, 2016-12-2 (Michael Chock) ** Initial draft.