/ appendices / VK_KHR_xlib_surface.txt
VK_KHR_xlib_surface.txt
 1  // Copyright (c) 2014-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_KHR_xlib_surface.txt[]
 6  
 7  *Last Modified Date*::
 8      2015-11-28
 9  *IP Status*::
10      No known IP claims.
11  *Contributors*::
12    - Patrick Doane, Blizzard
13    - Jason Ekstrand, Intel
14    - Ian Elliott, LunarG
15    - Courtney Goeltzenleuchter, LunarG
16    - Jesse Hall, Google
17    - James Jones, NVIDIA
18    - Antoine Labour, Google
19    - Jon Leech, Khronos
20    - David Mao, AMD
21    - Norbert Nopper, Freescale
22    - Alon Or-bach, Samsung
23    - Daniel Rakos, AMD
24    - Graham Sellers, AMD
25    - Ray Smith, ARM
26    - Jeff Vigil, Qualcomm
27    - Chia-I Wu, LunarG
28  
29  The `VK_KHR_xlib_surface` extension is an instance extension.
30  It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
31  the `<<VK_KHR_surface>>` extension) that refers to an X11 code:Window, using
32  the Xlib client-side library, as well as a query to determine support for
33  rendering via Xlib.
34  
35  === New Object Types
36  
37  None
38  
39  === New Enum Constants
40  
41    * Extending elink:VkStructureType:
42    ** ename:VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
43  
44  === New Enums
45  
46  None
47  
48  === New Structures
49  
50    * slink:VkXlibSurfaceCreateInfoKHR
51  
52  === New Functions
53  
54    * flink:vkCreateXlibSurfaceKHR
55    * flink:vkGetPhysicalDeviceXlibPresentationSupportKHR
56  
57  === Issues
58  
59  1) Does X11 need a way to query for compatibility between a particular
60  physical device and a specific screen? This would be a more general query
61  than flink:vkGetPhysicalDeviceSurfaceSupportKHR; if it returned
62  ename:VK_TRUE, then the physical device could be assumed to support
63  presentation to any window on that screen.
64  
65  *RESOLVED*: Yes, this is needed for toolkits that want to create a
66  slink:VkDevice before creating a window.
67  To ensure the query is reliable, it must be made against a particular X
68  visual rather than the screen in general.
69  
70  === Version History
71  
72   * Revision 1, 2015-09-23 (Jesse Hall)
73     - Initial draft, based on the previous contents of VK_EXT_KHR_swapchain
74       (later renamed VK_EXT_KHR_surface).
75  
76   * Revision 2, 2015-10-02 (James Jones)
77     - Added presentation support query for (Display*, VisualID) pair.
78     - Removed "root" parameter from CreateXlibSurfaceKHR(), as it is
79       redundant when a window on the same screen is specified as well.
80     - Added appropriate X errors.
81     - Adjusted wording of issue #1 and added agreed upon resolution.
82  
83   * Revision 3, 2015-10-14 (Ian Elliott)
84     - Renamed this extension from VK_EXT_KHR_x11_surface to
85       VK_EXT_KHR_xlib_surface.
86  
87   * Revision 4, 2015-10-26 (Ian Elliott)
88     - Renamed from VK_EXT_KHR_xlib_surface to VK_KHR_xlib_surface.
89  
90   * Revision 5, 2015-11-03 (Daniel Rakos)
91     - Added allocation callbacks to vkCreateXlibSurfaceKHR.
92  
93   * Revision 6, 2015-11-28 (Daniel Rakos)
94     - Updated the surface create function to take a pCreateInfo structure.