Commit Graph

26 Commits

Author SHA1 Message Date
Ian Elliott
3dddf2dabe loader: Address Jon Ashburn's review comments.
It took a few commits (squashed down into 1) to get it correct.  Includes:

Use loader_heap_{alloc|free}().

Try to deal correctly with initializing the vkCreate*SurfaceKHR()'s.
2018-05-04 09:24:20 -06:00
Ian Elliott
70c8d1b8c3 loader: Get loader compiling. 2018-05-04 09:24:20 -06:00
Ian Elliott
03cdd37a54 WSI: Eliminate a lot of references to WSI header files.
Conflicts:
	include/vulkan/vk_layer.h
	loader/loader.h
2018-05-04 09:24:20 -06:00
David Pinedo
9f49f3c45b Layers: changed layer names to conform to spec 2018-05-04 09:24:20 -06:00
Jon Ashburn
dc8a8707bc loader: Add dynamic dispatch for unknown device extension entrypoints
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.
2018-05-04 09:24:20 -06:00
David Pinedo
803896230a Moved header files from include to include/vulkan 2018-05-04 09:24:19 -06:00
Karl Schultz
09e2a11785 macOS: Add macOS support 2018-05-04 09:23:50 -06:00
Lenny Komow
8dc4305370 headers: Fix a typo in vk_icd.h
Change-Id: I9ede42e379605329ffd25a9466e0971b3ab7dd77
2018-05-04 09:23:50 -06:00
Mark Young
c253f7b760 loader: Add validation for apiVersion
Add a check to determine if the API version being requested can be
handled by the loader.  If it can't, then we return incompatible driver.
If we can, we continue along our merry way.

An addendum is that we also bumped the Loader/ICD interface version.
This was requested by Nvidia so that the ICDs know that we pay attention
to the version in the loader.  If they don't see the new Loader/ICD
interface version, they will handle the failing on all non-1.0 API
requests.

Change-Id: Icb7dd45e754c9f6a6c8186198333bacc68077b93
2018-05-04 09:23:50 -06:00
Yamakaky
1e7d756b7d headers: Add missing include to vk_icd.h 2018-05-04 09:23:49 -06:00
Mark Young
ebab9a4cd1 loader: Update the loader to 1.0.39
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
2018-05-04 09:23:49 -06:00
Cody Northrop
8e34d8d84e android: Add Android and C++ support to a couple files
These are needed downstream in VulkanTools for Android support.
2018-05-04 09:23:49 -06:00
Piers Daniell
04f11cd232 loader: Fixes for ICD vk{Create|Destroy}SurfaceKHR
Need to keep VkIcdSurface private to the loader.

The definition may conflict with some redefinitions of
VK_DEFINE_NON_DISPATCHABLE_HANDLE and it's not necessary to make public
anyway.

Change-Id: I30e166f0ecce2fd3ea36c745dc073b705973d75f
2018-05-04 09:23:49 -06:00
Mark Young
d30f8ca53e loader: gh181 use ICD for SurfaceKHR
Use the ICD to create and destroy VkSurfaceKHR objects instead
of just performing the work in the ICD.  This only occurs if the ICD
exports the appropriate entry-points, and exposes version 3 of the
loader/icd interface.

Change-Id: I5e7bf9506318823c57ad75cf19d3f53fdfa6451e
2018-05-04 09:23:49 -06:00
Mark Lobodzinski
70144970cd headers: GH7, Fix bad variable names in vk_icd.h
Change-Id: Ic78792a71ebedbdb5bae68c47856db1c89a714af
2018-05-04 09:23:49 -06:00
Jon Ashburn
063be2d862 loader: ghlvl#180 Support a ICD interface version negotiation
Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e
2018-05-04 09:23:49 -06:00
Jon Ashburn
e32b0893ea misc: Update licenses to Apache 2.0
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2018-05-04 09:23:49 -06:00
Jon Ashburn
087d0a8a79 loader: gllvl #50, Add support for the WSI extension KHR_display
Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d
2018-05-04 09:23:48 -06:00
Karl Schultz
15371188d3 Remove Khronos confidential clause from license text. 2018-05-04 09:23:48 -06:00
Karl Schultz
cf683631a1 include: Update copyright and apply clang-format (no logic changes) 2018-05-04 09:23:48 -06:00
Courtney Goeltzenleuchter
efb5817099 icd: Remove unused reference to vk_sdk_platform.h 2018-05-04 09:23:48 -06:00
Courtney Goeltzenleuchter
2875d6eb88 misc: remove unneeded stdint.h and stdbool.h
All the necessary platform defines/includes are now part of
vk_platform.h, so don't need them in vk_icd.h
2018-05-04 09:23:48 -06:00
Ian Elliott
95bd3452f6 WSI-ICD: Fix Windows compilation error. 2018-05-04 09:23:48 -06:00
Ian Elliott
56f54c8a6b WSI-ICD: Created per-platform structs for platform-specific info.
Per Khronos Bugzilla Bug 15077, on Windows and Linux, VkSurfaceKHR is treated
as a pointer to platform-specific structs that contain the platform-specific
connection and surface/window info.  The Vulkan loader vkCreate*SurfaceKHR()
functions will fill in the struct.  ICDs and layers will cast VkSurfaceKHR to a
pointer to the appropriate VkIcdSurface* struct.
2018-05-04 09:23:48 -06:00
David Pinedo
184c3c0a78 Moved header files from include to include/vulkan 2018-05-04 09:23:47 -06:00
Khronos Group Webmaster
e9f3597b07
Initial commit 2018-05-03 15:59:09 -04:00