| // Copyright (c) 2014-2018 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_xcb_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_xcb_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 an X11 code:Window, using |
| the XCB client-side library, as well as a query to determine support for |
| rendering via XCB. |
| |
| === New Object Types |
| |
| None |
| |
| === New Enum Constants |
| |
| * Extending elink:VkStructureType: |
| ** ename:VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR |
| |
| === New Enums |
| |
| None |
| |
| === New Structures |
| |
| * slink:VkXcbSurfaceCreateInfoKHR |
| |
| === New Functions |
| |
| * flink:vkCreateXcbSurfaceKHR |
| * flink:vkGetPhysicalDeviceXcbPresentationSupportKHR |
| |
| === Issues |
| |
| 1) Does XCB need a way to query for compatibility between a particular |
| physical device and a specific screen? This would be a more general query |
| than flink:vkGetPhysicalDeviceSurfaceSupportKHR: If it returned |
| ename:VK_TRUE, then the physical device could be assumed to support |
| presentation to any window on that screen. |
| |
| *RESOLVED*: Yes, this is needed for toolkits that want to create a |
| slink:VkDevice before creating a window. |
| To ensure the query is reliable, it must be made against a particular X |
| visual rather than the screen in general. |
| |
| === 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 presentation support query for an (xcb_connection_t*, |
| xcb_visualid_t) pair. |
| - Removed "root" parameter from CreateXcbSurfaceKHR(), as it is redundant |
| when a window on the same screen is specified as well. |
| - Adjusted wording of issue #1 and added agreed upon resolution. |
| |
| * Revision 3, 2015-10-14 (Ian Elliott) |
| - Removed "root" parameter from CreateXcbSurfaceKHR() in one more place. |
| |
| * Revision 4, 2015-10-26 (Ian Elliott) |
| - Renamed from VK_EXT_KHR_xcb_surface to VK_KHR_xcb_surface. |
| |
| * Revision 5, 2015-10-23 (Daniel Rakos) |
| - Added allocation callbacks to vkCreateXcbSurfaceKHR. |
| |
| * Revision 6, 2015-11-28 (Daniel Rakos) |
| - Updated the surface create function to take a pCreateInfo structure. |