Separated headers into common groups, with system headers being first, then
Vulkan API headers, followed by loader headers.
Then alphabetized headers in each group. Due to moving _GNU_SOURCE to being set
by cmake, there isn't any implicit dependency between the include order used.
Made sure headers should be able to be included independently, such as
including the vulkan headers where appropriate.
Add new extensions for 1.0.39. Also, updated layers to include
minimal set of functionality for 1.0.39 extensions. Extensions include:
- VK_KHR_get_physical_device_properties2
- VK_KHR_shader_draw_parameters
- VK_EXT_direct_mode_display
- VK_EXT_display_surface_counter
- VK_EXT_display_control
Also, redo the LoaderAndLayerIf document.
Change-Id: I10412086da7a798afe832a3892e18f606259b5af
Macro __GNUC__ should be used to guard gcc-specific code.
Also exclude clang because though it defines __GNUC__ it
doesn't accept this particular gcc feature.
Change-Id: I703289cad58e7675f4c4ca5e7635fc8fb35ae77e
GetInstancePorcAddr() is specified to return trampoline entrypoints for all
Vulkan core and extension entrypoints that are dispatched on an instance object
or a child of that instance object. However, typically, device extensions would
be unknown to the loader (don't want to rev the loader everytime an IHV creates
a new device extension).
This patch allows loader to dynamically discover device extension entrypoints
and configure generic trampoline code for these discovered device extensions.