Vulkan-Docs/doc/specs/vulkan/appendices/VK_KHR_wayland_surface.txt
Jon Leech df88ded281 Change log for September 5, 2017 Vulkan 1.0.60 spec update:
* Bump API patch number and header version number to 60 for this update.

Github Issues:

  * Document that <<queries-timestamps, Timestamp Queries>> can only be
    meaningfully compared when they are written from the same queue (public
    issue 216).
  * Document that the `<extension>` tag `type` attribute is required for
    non-disabled extensions (derived from, but does not close public issue
    354).
  * Clean up registry schema length attribute descriptions to be consistent
    and correct (public issue 555).

Internal Issues:

  * Replace as much of the hand-written extension appendix metadata as
    possible with asciidoc includes generated from corresponding attributes
    of +vk.xml+, and enhance the style guide to match. This avoids
    inconsistencies between +vk.xml+ and the appendices, and produces a more
    uniform style (internal issue 137).
  * Remove the generated extDependency.{py,sh} files from the tree and
    create them dynamically on demand instead, reducing merge conflicts
    (internal issue 713).
  * Add a prototype tool for generating in-place difference markup for
    sections guarded by asciidoc conditionals, and new syntax for open
    blocks to support it (internal issue 833).
  * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
    types to the same physical device in the
    slink:VkPhysicalDeviceIDPropertiesKHR,
    flink:VkImportMemoryWin32HandleInfoKHR,
    slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
    slink:VkImportSemaphoreWin32HandleInfoKHR,
    slink:VkImportSemaphoreFdInfoKHR
    <<external-memory-handle-types-compatibility, External memory handle
    types compatibility>>, <<external-semaphore-handle-types-compatibility,
    External semaphore handle types compatibility>>, and
    <<external-fence-handle-types-compatibility, External fence handle types
    compatibility>> sections (internal issue 956).

Other Issues:

  * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
    is an interaction, but not a strict dependency), and add a new
    `extension` attribute to the `<require` XML tag to allow classifying a
    subset of interfaces of an extension as requiring another extension.
    Update the registry schema and documentation accordingly.

New Extensions:

  * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
    GLSL extension)
  * `VK_EXT_sample_locations`
  * `VK_EXT_validation_cache`
2017-09-04 03:06:55 -07:00

107 lines
3.5 KiB
Plaintext

// Copyright (c) 2014-2017 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
include::meta/VK_KHR_wayland_surface.txt[]
*Last Modified Date*::
2015-11-28
*IP Status*::
No known IP claims.
*Contributors*::
- Patrick Doane, Blizzard
- Jason Ekstrand, Intel
- Ian Elliott, LunarG
- Courtney Goeltzenleuchter, LunarG
- Jesse Hall, Google
- James Jones, NVIDIA
- Antoine Labour, Google
- Jon Leech, Khronos
- David Mao, AMD
- Norbert Nopper, Freescale
- Alon Or-bach, Samsung
- Daniel Rakos, AMD
- Graham Sellers, AMD
- Ray Smith, ARM
- Jeff Vigil, Qualcomm
- Chia-I Wu, LunarG
The +VK_KHR_wayland_surface+ extension is an instance extension.
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
the +VK_KHR_surface+ extension) that refers to a Wayland code:wl_surface, as
well as a query to determine support for rendering to a Wayland compositor.
=== New Object Types
None
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
=== New Enums
None
=== New Structures
* slink:VkWaylandSurfaceCreateInfoKHR
=== New Functions
* flink:vkCreateWaylandSurfaceKHR
* flink:vkGetPhysicalDeviceWaylandPresentationSupportKHR
=== Issues
1) Does Wayland need a way to query for compatibility between a particular
physical device and a specific Wayland display? This would be a more general
query than flink:vkGetPhysicalDeviceSurfaceSupportKHR: if the
Wayland-specific query returned true for a (slink:VkPhysicalDevice, struct
wl_display*) pair, then the physical device could be assumed to support
presentation to any slink:VkSurfaceKHR for surfaces on the display.
*RESOLVED*: Yes.
flink:vkGetPhysicalDeviceWaylandPresentationSupportKHR was added to address
this issue.
2) Should we require surfaces created with flink:vkCreateWaylandSurfaceKHR
to support the ename:VK_PRESENT_MODE_MAILBOX_KHR present mode?
*RESOLVED*: Yes.
Wayland is an inherently mailbox window system and mailbox support is
required for some Wayland compositor interactions to work as expected.
While handling these interactions may be possible with
ename:VK_PRESENT_MODE_FIFO_KHR, it is much more difficult to do without
deadlock and requiring all Wayland applications to be able to support
implementations which only support ename:VK_PRESENT_MODE_FIFO_KHR would be
an onerous restriction on application developers.
=== Version History
* Revision 1, 2015-09-23 (Jesse Hall)
- Initial draft, based on the previous contents of VK_EXT_KHR_swapchain
(later renamed VK_EXT_KHR_surface).
* Revision 2, 2015-10-02 (James Jones)
- Added vkGetPhysicalDeviceWaylandPresentationSupportKHR() to resolve
issue #1.
- Adjusted wording of issue #1 to match the agreed-upon solution.
- Renamed "window" parameters to "surface" to match Wayland conventions.
* Revision 3, 2015-10-26 (Ian Elliott)
- Renamed from VK_EXT_KHR_wayland_surface to VK_KHR_wayland_surface.
* Revision 4, 2015-11-03 (Daniel Rakos)
- Added allocation callbacks to vkCreateWaylandSurfaceKHR.
* Revision 5, 2015-11-28 (Daniel Rakos)
- Updated the surface create function to take a pCreateInfo structure.
* Revision 6, 2017-02-08 (Jason Ekstrand)
- Added the requirement that implementations support
ename:VK_PRESENT_MODE_MAILBOX_KHR.
- Added wording about interactions between flink:vkQueuePresentKHR and
the Wayland requests sent to the compositor.