/ appendices / VK_EXT_headless_surface.txt
VK_EXT_headless_surface.txt
 1  // Copyright (c) 2017-2019 Khronos Group. This work is licensed under a
 2  // Creative Commons Attribution 4.0 International License; see
 3  // http://creativecommons.org/licenses/by/4.0/
 4  
 5  include::meta/VK_EXT_headless_surface.txt[]
 6  
 7  *Last Modified Date*::
 8      2019-03-21
 9  *IP Status*::
10      No known IP claims.
11  *Contributors*::
12    - Ray Smith, Arm
13  
14  The +VK_EXT_headless_surface+ extension is an instance extension.
15  It provides a mechanism to create +VkSurfaceKHR+ objects independently of
16  any window system or display device.
17  The presentation operation for a swapchain created from a headless surface
18  is by default a no-op, resulting in no externally-visible result.
19  
20  Because there is no real presentation target, future extensions can layer on
21  top of the headless surface to introduce arbitrary or customisable sets of
22  restrictions or features.
23  These could include features like saving to a file or restrictions to
24  emulate a particular presentation target.
25  
26  This functionality is expected to be useful for application and driver
27  development because it allows any platform to expose an arbitrary or
28  customisable set of restrictions and features of a presentation engine.
29  This makes it a useful portable test target for applications targeting a
30  wide range of presentation engines where the actual target presentation
31  engines might be scarce, unavailable or otherwise undesirable or
32  inconvenient to use for general Vulkan application development.
33  
34  === New Object Types
35  
36  None
37  
38  === New Enum Constants
39  
40    * Extending elink:VkStructureType:
41    ** ename:VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
42  
43  === New Enums
44  
45  None
46  
47  === New Structures
48  
49    * slink:VkHeadlessSurfaceCreateInfoEXT
50  
51  === New Functions
52  
53    * flink:vkCreateHeadlessSurfaceEXT
54  
55  === Issues
56  
57  None
58  
59  === Version History
60  
61   * Revision 1
62     - Initial draft