| // Copyright 2016-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_display_control.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2016-12-13 |
| *IP Status*:: |
| No known IP claims. |
| *Contributors*:: |
| - Pierre Boudier, NVIDIA |
| - James Jones, NVIDIA |
| - Damien Leone, NVIDIA |
| - Pierre-Loup Griffais, Valve |
| - Daniel Vetter, Intel |
| |
| === Description |
| |
| This extension defines a set of utility functions for use with the |
| `apiext:VK_KHR_display` and `apiext:VK_KHR_display_swapchain` extensions. |
| |
| include::{generated}/interfaces/VK_EXT_display_control.txt[] |
| |
| === Issues |
| |
| 1) Should this extension add an explicit "`WaitForVsync`" API or a fence |
| signaled at vsync that the application can wait on? |
| |
| *RESOLVED*: A fence. |
| A separate API could later be provided that allows exporting the fence to a |
| native object that could be inserted into standard run loops on POSIX and |
| Windows systems. |
| |
| 2) Should callbacks be added for a vsync event, or in general to monitor |
| events in Vulkan? |
| |
| *RESOLVED*: No, fences should be used. |
| Some events are generated by interrupts which are managed in the kernel. |
| In order to use a callback provided by the application, drivers would need |
| to have the userspace driver spawn threads that would wait on the kernel |
| event, and hence the callbacks could be difficult for the application to |
| synchronize with its other work given they would arrive on a foreign thread. |
| |
| 3) Should vblank or scanline events be exposed? |
| |
| *RESOLVED*: Vblank events. |
| Scanline events could be added by a separate extension, but the latency of |
| processing an interrupt and waking up a userspace event is high enough that |
| the accuracy of a scanline event would be rather low. |
| Further, per-scanline interrupts are not supported by all hardware. |
| |
| === Version History |
| |
| * Revision 1, 2016-12-13 (James Jones) |
| - Initial draft |