platform/upstream/Vulkan-Headers.git
6 years agoloader: Add instance callback to set dispatchable objects
Jon Ashburn [Tue, 29 Mar 2016 17:16:01 +0000 (11:16 -0600)]
loader: Add instance callback to set dispatchable objects

Change-Id: I73b8b6edfee491c53216b730c99a7ea34ade3b4e

6 years agoloader: Remove the instance_info in the layer chain structure
Jon Ashburn [Mon, 28 Mar 2016 19:58:16 +0000 (13:58 -0600)]
loader: Remove the instance_info in the layer chain structure

Simplifies code, the loader instance structure is already passed down
from trampoline code to terminator code via the pInstance parameter. It doesn't
need to be added to this pCreatInfo pNext list structure.

Layers which modifiy pInstance whould do it on the way up the chain not going
down the chain.

Change-Id: I59581b94871c094995787808cf5ae2955ad0191a

6 years agoloader: gllvl #50, Add support for the WSI extension KHR_display
Jon Ashburn [Tue, 8 Mar 2016 16:30:30 +0000 (09:30 -0700)]
loader: gllvl #50, Add support for the WSI extension KHR_display

Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d

6 years agomisc: Remove lunarg_debug_marker extension
Jon Ashburn [Thu, 3 Mar 2016 19:03:58 +0000 (12:03 -0700)]
misc: Remove lunarg_debug_marker extension

This device extensions was not completely supported in any layer. It had partial
support (intercept) in draw_state  and device_limits. This extension is being
changed and has a formal proposal in Khronos as debug_marker_ext. Removing
the existing extension since it is deprecated; once the debug_marker_ext gets
registered by Khronos, layers might want to start using the ObjectTag/ObjectName
commands to supplement error report messages in debug_report_ext. Since
debug_report_ext might get changed as part of Khronos review, don't add it yet.

6 years agoheader: Update 1.0.3 header revision for inclusion of debug report extension
Mark Lobodzinski [Thu, 11 Feb 2016 16:26:16 +0000 (09:26 -0700)]
header: Update 1.0.3 header revision for inclusion of debug report extension

Removed vk_ext_debug_report.h (contents moved into vulkan.h)
Renamed debug report message enums

6 years agoinclude: Use single-quote no paths when including sibling headers
Karl Schultz [Wed, 10 Feb 2016 22:41:43 +0000 (15:41 -0700)]
include: Use single-quote no paths when including sibling headers

6 years agoRemove Khronos confidential clause from license text.
Karl Schultz [Wed, 10 Feb 2016 01:07:25 +0000 (18:07 -0700)]
Remove Khronos confidential clause from license text.

6 years agoinclude: Update copyright and apply clang-format (no logic changes)
Karl Schultz [Tue, 2 Feb 2016 19:32:50 +0000 (12:32 -0700)]
include: Update copyright and apply clang-format (no logic changes)

6 years agolayers: Remove obsolete VkbaseLayerObject
Jon Ashburn [Wed, 20 Jan 2016 15:07:14 +0000 (08:07 -0700)]
layers: Remove obsolete VkbaseLayerObject

6 years agoloader: Remove CreateInstance and CreateDevice
Courtney Goeltzenleuchter [Thu, 14 Jan 2016 23:34:30 +0000 (16:34 -0700)]
loader: Remove CreateInstance and CreateDevice

The new init mechanism always uses GetInstanceProcAddr
to query the next layer's CreateInstance or CreateDevice
function. Thus no reason to cache those function pointers
in the instance dispatch table.

6 years agoloader: implement new layer init method
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 19:18:43 +0000 (12:18 -0700)]
loader: implement new layer init method

New layer init method requires the construction of
Link information for CreateInstance and CreateDevice
that is accessible to layers via the CreateInfo.pNext pointer.
The layer can then use the Get*ProcAddr from the Link
structure to initialize their dispatch table if the
call down the chain returns successfully.
This removes the need to do special initialization work
at Get*ProcAddr time.
Layer Get*ProcAddr now return their internal function
pointers regardless of the value of instance or device.
Only need to have valid instance & device when looking
up extensions or when passing the request down the chain.
This mechanism allows us to remove object wrapping used
by the loader previously. Also simplifies the dispatch table
setup.

Conflicts:
layers/device_limits.cpp
layers/draw_state.cpp
loader/loader.c
loader/trampoline.c

6 years agoloader: Add structures to support new init method
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:40:27 +0000 (11:40 -0700)]
loader: Add structures to support new init method

These structures will be used to extend CreateInstance
and CreateDevice to support layers. The loader will
create a chain of these structures - one per layer -
that tells the layer the Get*ProcAddr for the next
lower part.

6 years agodebug_report: MR141, Change pUserData to match type used elsewhere
Courtney Goeltzenleuchter [Tue, 19 Jan 2016 00:42:08 +0000 (17:42 -0700)]
debug_report: MR141, Change pUserData to match type used elsewhere

Other uses of pUserData in Vulkan do not have a const qualifier,
remove it for this pUserData.

6 years agodebug_report: rename object type and error bits
Courtney Goeltzenleuchter [Wed, 9 Dec 2015 22:48:16 +0000 (15:48 -0700)]
debug_report: rename object type and error bits

Conflicts:
demos/tri.c
layers/device_limits.cpp
layers/draw_state.cpp
layers/image.cpp
layers/mem_tracker.cpp
layers/param_checker.cpp
layers/vk_layer_logging.h
loader/debug_report.c
tests/layer_validation_tests.cpp

6 years agodebug_report: rename vk_lunarg_debug_report.h
Courtney Goeltzenleuchter [Wed, 9 Dec 2015 21:33:56 +0000 (14:33 -0700)]
debug_report: rename vk_lunarg_debug_report.h

6 years agodebug_report: Add DebugReportMessage function
Courtney Goeltzenleuchter [Mon, 30 Nov 2015 22:28:25 +0000 (15:28 -0700)]
debug_report: Add DebugReportMessage function

6 years agodebug_report: rename and update to use CreateInfo
Courtney Goeltzenleuchter [Mon, 30 Nov 2015 19:13:14 +0000 (12:13 -0700)]
debug_report: rename and update to use CreateInfo

6 years agodebug_report: Rename VkDbgMsgCallback object
Courtney Goeltzenleuchter [Wed, 25 Nov 2015 21:07:05 +0000 (14:07 -0700)]
debug_report: Rename VkDbgMsgCallback object

6 years agowsi: Make WSI cases more consistent, fail if not set correctly
Mark Lobodzinski [Thu, 10 Dec 2015 23:25:21 +0000 (16:25 -0700)]
wsi: Make WSI cases more consistent, fail if not set correctly

Filled in build details for Mir, Wayland, etc.

6 years agoandroid: Update build to define android platform at build time
Michael Lentine [Wed, 9 Dec 2015 22:33:52 +0000 (14:33 -0800)]
android: Update build to define android platform at build time

6 years agoandroid: Fix android build.
Michael Lentine [Thu, 3 Dec 2015 22:33:09 +0000 (14:33 -0800)]
android: Fix android build.

Temporarily disable shader checker which now depends on glslang
Fix xcb guards and set the ifdef based on platform

6 years agowsi: Moved definition of CreateXxxSurface extension to CMakefile
Mark Lobodzinski [Wed, 25 Nov 2015 20:26:15 +0000 (13:26 -0700)]
wsi: Moved definition of CreateXxxSurface extension to CMakefile

Removed component-specific definitions

6 years agoloader: Add vkGetPhysicalDevice*PresentationSupportKHR()
Ian Elliott [Tue, 24 Nov 2015 22:39:10 +0000 (15:39 -0700)]
loader: Add vkGetPhysicalDevice*PresentationSupportKHR()

These queries involve trampoline and terminator functions (the latter
of which calls the ICD's function).

6 years agolayers: add DestroySurfaceKHR to instance dispatch table
Jon Ashburn [Tue, 24 Nov 2015 01:55:15 +0000 (18:55 -0700)]
layers: add DestroySurfaceKHR to instance dispatch table

6 years agoloader: Address Jon Ashburn's review comments.
Ian Elliott [Mon, 23 Nov 2015 17:17:23 +0000 (10:17 -0700)]
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.

6 years agoloader: Get loader compiling.
Ian Elliott [Wed, 18 Nov 2015 22:20:45 +0000 (15:20 -0700)]
loader: Get loader compiling.

6 years agoWSI: Eliminate a lot of references to WSI header files.
Ian Elliott [Wed, 18 Nov 2015 21:57:08 +0000 (14:57 -0700)]
WSI: Eliminate a lot of references to WSI header files.

Conflicts:
include/vulkan/vk_layer.h
loader/loader.h

6 years agoLayers: changed layer names to conform to spec
David Pinedo [Tue, 24 Nov 2015 16:00:24 +0000 (09:00 -0700)]
Layers: changed layer names to conform to spec

6 years agoloader: Add dynamic dispatch for unknown device extension entrypoints
Jon Ashburn [Tue, 17 Nov 2015 22:31:02 +0000 (15:31 -0700)]
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.

6 years agoMoved header files from include to include/vulkan
David Pinedo [Fri, 6 Nov 2015 19:54:48 +0000 (12:54 -0700)]
Moved header files from include to include/vulkan

6 years agomacOS: Add macOS support
Karl Schultz [Tue, 12 Dec 2017 15:33:01 +0000 (10:33 -0500)]
macOS: Add macOS support

6 years agoheaders: Fix a typo in vk_icd.h
Lenny Komow [Tue, 5 Sep 2017 15:21:47 +0000 (09:21 -0600)]
headers: Fix a typo in vk_icd.h

Change-Id: I9ede42e379605329ffd25a9466e0971b3ab7dd77

6 years agoloader: Add validation for apiVersion
Mark Young [Wed, 19 Apr 2017 01:52:18 +0000 (19:52 -0600)]
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

6 years agoheaders: Add missing include to vk_icd.h
Yamakaky [Mon, 13 Mar 2017 15:06:49 +0000 (11:06 -0400)]
headers: Add missing include to vk_icd.h

6 years agoloader: Update the loader to 1.0.39
Mark Young [Fri, 20 Jan 2017 04:10:49 +0000 (21:10 -0700)]
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

6 years agoandroid: Add Android and C++ support to a couple files
Cody Northrop [Thu, 22 Sep 2016 20:39:16 +0000 (14:39 -0600)]
android: Add Android and C++ support to a couple files

These are needed downstream in VulkanTools for Android support.

6 years agoloader: Fixes for ICD vk{Create|Destroy}SurfaceKHR
Piers Daniell [Wed, 14 Sep 2016 17:24:36 +0000 (11:24 -0600)]
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

6 years agoloader: gh181 use ICD for SurfaceKHR
Mark Young [Tue, 28 Jun 2016 16:52:43 +0000 (10:52 -0600)]
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

6 years agoheaders: GH7, Fix bad variable names in vk_icd.h
Mark Lobodzinski [Thu, 19 May 2016 23:17:58 +0000 (17:17 -0600)]
headers: GH7, Fix bad variable names in vk_icd.h

Change-Id: Ic78792a71ebedbdb5bae68c47856db1c89a714af

6 years agoloader: ghlvl#180 Support a ICD interface version negotiation
Jon Ashburn [Mon, 25 Apr 2016 17:09:37 +0000 (11:09 -0600)]
loader: ghlvl#180 Support a ICD interface version negotiation

Change-Id: I2e5c3717dd7fa86992f617bcc0f93de8ba60759e

6 years agomisc: Update licenses to Apache 2.0
Jon Ashburn [Tue, 19 Apr 2016 17:30:31 +0000 (11:30 -0600)]
misc: Update licenses to Apache 2.0

Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97

6 years agoloader: gllvl #50, Add support for the WSI extension KHR_display
Jon Ashburn [Tue, 8 Mar 2016 16:30:30 +0000 (09:30 -0700)]
loader: gllvl #50, Add support for the WSI extension KHR_display

Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d

6 years agoRemove Khronos confidential clause from license text.
Karl Schultz [Wed, 10 Feb 2016 01:07:25 +0000 (18:07 -0700)]
Remove Khronos confidential clause from license text.

6 years agoinclude: Update copyright and apply clang-format (no logic changes)
Karl Schultz [Tue, 2 Feb 2016 19:32:50 +0000 (12:32 -0700)]
include: Update copyright and apply clang-format (no logic changes)

6 years agoicd: Remove unused reference to vk_sdk_platform.h
Courtney Goeltzenleuchter [Fri, 8 Jan 2016 18:39:32 +0000 (11:39 -0700)]
icd: Remove unused reference to vk_sdk_platform.h

6 years agomisc: remove unneeded stdint.h and stdbool.h
Courtney Goeltzenleuchter [Thu, 3 Dec 2015 17:47:42 +0000 (10:47 -0700)]
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

6 years agoWSI-ICD: Fix Windows compilation error.
Ian Elliott [Tue, 24 Nov 2015 16:47:14 +0000 (09:47 -0700)]
WSI-ICD: Fix Windows compilation error.

6 years agoWSI-ICD: Created per-platform structs for platform-specific info.
Ian Elliott [Wed, 18 Nov 2015 19:19:12 +0000 (12:19 -0700)]
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.

6 years agoMoved header files from include to include/vulkan
David Pinedo [Fri, 6 Nov 2015 19:54:48 +0000 (12:54 -0700)]
Moved header files from include to include/vulkan

6 years agoInitial commit
Khronos Group Webmaster [Thu, 3 May 2018 19:59:09 +0000 (15:59 -0400)]
Initial commit