HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_NN_vi_surface

Name

VK_NN_vi_surface - instance extension

VK_NN_vi_surface

Name String

VK_NN_vi_surface

Extension Type

Instance extension

Registered Extension Number

63

Revision

1

Ratification Status

Not ratified

Extension and Version Dependencies

VK_KHR_surface

Contact

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 SurfaceKHR object (defined by the VK_KHR_surface extension) associated with an nn::vi::Layer.

New Commands

New Structures

New Bitmasks

New Enum Constants

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) ViSurfaceCreateInfoNN::window is intended to store an nn::vi::NativeWindowHandle, but its declared type is a bare 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.

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

  • 5 types
  • 1 value
  • Packagevulkan-3.27
  • Exports8
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_NN_vi_surface.hs
valuecreateViSurfaceNN
  1. :: MonadIO io
  2. => Instance

    instance is the instance with which to associate the surface.

  3. -> ViSurfaceCreateInfoNN

    pCreateInfo is a pointer to a ViSurfaceCreateInfoNN structure containing parameters affecting the creation of the surface object.

  4. -> "allocator" ::: Maybe AllocationCallbacks

    pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see Memory Allocation).

  5. -> io SurfaceKHR
#

vkCreateViSurfaceNN - Create a SurfaceKHR object for a VI layer

Description

During the lifetime of a surface created using a particular nn::vi::NativeWindowHandle, applications must not attempt to create another surface for the same nn::vi::Layer or attempt to connect to the same nn::vi::Layer through other platform mechanisms.

If the native window is created with a specified size, currentExtent will reflect that size. In this case, applications should use the same size for the swapchain’s imageExtent. Otherwise, the currentExtent will have the special value (0xFFFFFFFF, 0xFFFFFFFF), indicating that applications are expected to choose an appropriate size for the swapchain’s imageExtent (e.g., by matching the result of a call to nn::vi::GetDisplayResolution).

Valid Usage (Implicit)

  • instance must be a valid Instance handle

Return Codes

Success
Failure

See Also

VK_NN_vi_surface, AllocationCallbacks, Instance, SurfaceKHR, ViSurfaceCreateInfoNN

VkViSurfaceCreateInfoNN - Structure specifying parameters of a newly created VI surface object

Valid Usage (Implicit)

See Also

VK_NN_vi_surface, StructureType, ViSurfaceCreateFlagsNN, createViSurfaceNN

Constructors

Instances5Show, Storable, FromCStruct, ToCStruct, Zero
newtypenewtype ViSurfaceCreateFlagsNN
#

VkViSurfaceCreateFlagsNN - Reserved for future use

Description

ViSurfaceCreateFlagsNN is a bitmask type for setting a mask, but is currently reserved for future use.

See Also

VK_NN_vi_surface, Flags, ViSurfaceCreateInfoNN

Instances8Eq, Ord, Read, Show, Bits, FiniteBits, …
newtypenewtype SurfaceKHR
#
Instances7Eq, Ord, Show, Storable, HasObjectType, IsHandle, …