| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_wayland_surface
Description
Name
VK_KHR_wayland_surface - instance extension
VK_KHR_wayland_surface
- Name String
VK_KHR_wayland_surface
- Extension Type
- Instance extension
- Registered Extension Number
- 7
- Revision
- 6
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_surface
- Contact
Other Extension Metadata
- 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
Description
The VK_KHR_wayland_surface extension is an instance extension. It
provides a mechanism to create a SurfaceKHR
object (defined by the VK_KHR_surface extension) that refers to a
Wayland wl_surface, as well as a query to determine support for
rendering to a Wayland compositor.
New Commands
New Structures
New Bitmasks
New Enum Constants
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
getPhysicalDeviceSurfaceSupportKHR:
if the Wayland-specific query returned
TRUE for a
(PhysicalDevice, struct wl_display*) pair,
then the physical device could be assumed to support presentation to any
SurfaceKHR for surfaces on the display.
RESOLVED: Yes. getPhysicalDeviceWaylandPresentationSupportKHR was
added to address this issue.
2) Should we require surfaces created with createWaylandSurfaceKHR to
support the 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
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
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
PRESENT_MODE_MAILBOX_KHR. - Added wording about interactions between
queuePresentKHRand the Wayland requests sent to the compositor.
- Added the requirement that implementations support
See Also
WaylandSurfaceCreateFlagsKHR, WaylandSurfaceCreateInfoKHR,
createWaylandSurfaceKHR,
getPhysicalDeviceWaylandPresentationSupportKHR
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.
Synopsis
- createWaylandSurfaceKHR :: forall io. MonadIO io => Instance -> WaylandSurfaceCreateInfoKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io SurfaceKHR
- getPhysicalDeviceWaylandPresentationSupportKHR :: forall io. MonadIO io => PhysicalDevice -> ("queueFamilyIndex" ::: Word32) -> Ptr Wl_display -> io Bool
- data WaylandSurfaceCreateInfoKHR = WaylandSurfaceCreateInfoKHR {}
- newtype WaylandSurfaceCreateFlagsKHR = WaylandSurfaceCreateFlagsKHR Flags
- type KHR_WAYLAND_SURFACE_SPEC_VERSION = 6
- pattern KHR_WAYLAND_SURFACE_SPEC_VERSION :: forall a. Integral a => a
- type KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface"
- pattern KHR_WAYLAND_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- data Wl_display
- data Wl_surface
- newtype SurfaceKHR = SurfaceKHR Word64
Documentation
createWaylandSurfaceKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => Instance |
|
| -> WaylandSurfaceCreateInfoKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io SurfaceKHR |
vkCreateWaylandSurfaceKHR - Create a
SurfaceKHR object for a Wayland window
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
-
pCreateInfomust be a valid pointer to a validWaylandSurfaceCreateInfoKHRstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pSurfacemust be a valid pointer to aSurfaceKHRhandle
Return Codes
See Also
AllocationCallbacks,
Instance,
SurfaceKHR, WaylandSurfaceCreateInfoKHR
getPhysicalDeviceWaylandPresentationSupportKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => PhysicalDevice |
|
| -> ("queueFamilyIndex" ::: Word32) |
|
| -> Ptr Wl_display |
|
| -> io Bool |
vkGetPhysicalDeviceWaylandPresentationSupportKHR - Query physical device for presentation to Wayland
Description
This platform-specific function can be called prior to creating a surface.
Valid Usage (Implicit)
See Also
data WaylandSurfaceCreateInfoKHR Source #
VkWaylandSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Wayland surface object
Valid Usage (Implicit)
See Also
StructureType,
WaylandSurfaceCreateFlagsKHR, createWaylandSurfaceKHR
Constructors
| WaylandSurfaceCreateInfoKHR | |
Fields | |
Instances
newtype WaylandSurfaceCreateFlagsKHR Source #
VkWaylandSurfaceCreateFlagsKHR - Reserved for future use
Description
WaylandSurfaceCreateFlagsKHR is a bitmask type for setting a mask, but
is currently reserved for future use.
See Also
Constructors
| WaylandSurfaceCreateFlagsKHR Flags |
Instances
type KHR_WAYLAND_SURFACE_SPEC_VERSION = 6 Source #
pattern KHR_WAYLAND_SURFACE_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface" Source #
pattern KHR_WAYLAND_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
data Wl_display Source #
data Wl_surface Source #
newtype SurfaceKHR Source #
VkSurfaceKHR - Opaque handle to a surface object
Description
The VK_KHR_surface extension declares the SurfaceKHR object, and
provides a function for destroying SurfaceKHR objects. Separate
platform-specific extensions each provide a function for creating a
SurfaceKHR object for the respective platform. From the application’s
perspective this is an opaque handle, just like the handles of other
Vulkan objects.
See Also
PhysicalDeviceSurfaceInfo2KHR,
SwapchainCreateInfoKHR,
createAndroidSurfaceKHR,
createDirectFBSurfaceEXT,
createDisplayPlaneSurfaceKHR,
createHeadlessSurfaceEXT,
createIOSSurfaceMVK,
createImagePipeSurfaceFUCHSIA,
createMacOSSurfaceMVK,
createMetalSurfaceEXT,
createStreamDescriptorSurfaceGGP,
createViSurfaceNN,
createWaylandSurfaceKHR,
createWin32SurfaceKHR,
createXcbSurfaceKHR,
createXlibSurfaceKHR,
destroySurfaceKHR,
getDeviceGroupSurfacePresentModesKHR,
getPhysicalDevicePresentRectanglesKHR,
getPhysicalDeviceSurfaceCapabilities2EXT,
getPhysicalDeviceSurfaceCapabilitiesKHR,
getPhysicalDeviceSurfaceFormatsKHR,
getPhysicalDeviceSurfacePresentModesKHR,
getPhysicalDeviceSurfaceSupportKHR
Constructors
| SurfaceKHR Word64 |