// Copyright (c) 2016-2020 Nintendo
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_NN_vi_surface.txt[]

=== 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.txt[]

=== 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.
