Commit Graph

71 Commits

Author SHA1 Message Date
Dave Houlton
fd051d36f7 tests: Add a guard around noexcept in vktestbinding.h
VS2013 does not provide 'noexcept'. Layers had multiple occurences
of a NOEXCEPT macro to protect the VS2013 build. This commit
consolidates that macro to a single location in vk_sdk_platform.h,
which is also visible to the layer tests via test_common.h.

Updates the vktestbinding.h occurences of 'noexcept' to use the
NOEXCEPT macro.

Change-Id: I38bf8c08cda6fe75de78dff69050a913b47f91b1
2018-05-04 09:31:34 -06:00
Jon Ashburn
5b95004c15 misc: Update licenses to Apache 2.0
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2018-05-04 09:31:34 -06:00
Karl Schultz
06de94a677 Remove Khronos confidential clause from license text. 2018-05-04 09:31:34 -06:00
Karl Schultz
b6ac9429c6 include: Update copyright and apply clang-format (no logic changes) 2018-05-04 09:31:34 -06:00
Mark Young
7b701c3fef Fixes: Fixed Visual Studio warnings during compilation.
Changes to properly detect proper Visual Studio and fix build warnings.
2018-05-04 09:31:34 -06:00
David Pinedo
14db1e07a0 Moved header files from include to include/vulkan 2018-05-04 09:31:33 -06:00
Lenny Komow
fba227b4a3 loader: Extend pre-instance intercepts for 1.1
Add the ability to intercept vkEnumerateInstanceVersion through the
pre-instance intercept mechanism
2018-05-04 09:24:26 -06:00
Lenny Komow
877223eff1 loader: Add pre-instance functions for layers
Allow implicit layers (not explicit) to intercept calls before an
instance has been created.

Change-Id: I41f5bb0f5a6314fbab8003ebe71059dd04afc860
2018-05-04 09:24:25 -06:00
Mark Young
1ccf86fb60 layers: gh1649 - Fix clang warning
The function pointer definition for the Physical device extensions
was incorrect.  Updated to work properly and remove clang warning.

This was also causing an issue with Tony's latest test.

Change-Id: Ibdd19754a4394d1b88d3a20268238baaf3ec0907
2018-05-04 09:24:25 -06:00
Mark Young
5f3d8fa4ea loader: Fix loader and layer negotiation
Resolve missing struct sType as well as extern of
vkNegotiateLoaderAndLayerInterface as a C function.  Finally,
bump up the JSON file version so it looks for the negotiate
function.

Change-Id: I7fd4784fce6cbd0c303f7b2bb354542e4b16b1df
2018-05-04 09:24:25 -06:00
Mark Young
d1a417f036 vulkan: update to header 1.0.42
Updated all necessary files to 1.0.42.  This includes the various
headers as well as the loader, and the parameter validation, object
tracking, and threading layers.  Additionally, bump all layer JSON
files to 1.0.42.

Also, in this change:
  - Enable loader extension automation so that the loader now
    generates all extension entry-points automatically during build
    to reduce likelihood of missing a critical piece on header
    update.
  - Enable layer dispatch table extension automation for the same
    reason.
  - Fixes from Mark Lobodzinski and Tony Barbour to resolve crash
    in loader when working with Intel's Windows driver due to
    GetInstanceProcAddr getting called on inappropriate command
    names.

Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8
2018-05-04 09:24:25 -06:00
Mark Young
f4a6605fcc 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:24:25 -06:00
Mark Lobodzinski
3c68429b63 header: Update to Vulkan version 1.0.37
- header:  Updated vulkan.h
- scripts: Updated generator.py
- scripts: Updated vk.xml
- scripts: Merged recent genvk.py changes into lvl_genvk.py
- layers:  Updated json files
- loader:  Updated SOVERSION to 37
- header:  Rebuilt and updated vulkan.hpp
- layers:  Updated thread_checker for new functions
- scripts: Fix up vk_helper.py overzealous count detection

Change-Id: Ia10f5fc759166a09999f01e68bbcadb30ddf67f7
2018-05-04 09:24:25 -06:00
Mark Young
e236ae4848 loader: gh888 Add KHR/EXT extensions in vulkan.h
Add the KHR_display_swapchain device extension to the loader
and the core_validation layers.  This fulfills the work required in
JIRA LOAD-7 and gh 90.

Add debug_marker to the extension list.

Change-Id: I1fb70e5d44bc8c1f70fd6d1cfbd106a155081b25
2018-05-04 09:24:25 -06:00
Mark Lobodzinski
44029ebf63 layers: Update dispatch tables for new 1.0.25 APIs
Change-Id: I001583402bc99f923a776b238a82db5a60398f03
2018-05-04 09:24:25 -06:00
Mark Lobodzinski
ea73e13195 layers: Move debug action enums from vk_layer.h
Moved debug-report related items from vk_layer.h. Enums are now in
vk_layer_logging.h and DbgFunctionNode has been moved into a new
loader header file vk_loader_layer.h.

Change-Id: I6031146ba474ff01ca039da44ad5d42d054383a3
2018-05-04 09:24:24 -06:00
Mark Lobodzinski
52a063d4fd layers: Add default layer error message config
Allows layers to output error messages even if no vk_layer_settings.txt
config file is present. Sets defaults to LOG_MSG, error, stdout.
A layer settings file will override any default values. If no settings
file is present and an app creates a debug callback, the default
callbacks will be removed and unregistered.

Change-Id: I49f37189665816df58c258b9e9629f2bf76751c8
2018-05-04 09:24:24 -06:00
Jon Ashburn
43c20176c9 misc: Update licenses to Apache 2.0
Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
2018-05-04 09:24:24 -06:00
ttyio
697fe6b9ef layers: Update typo in comment 2018-05-04 09:24:24 -06:00
Vinjn Zhang
7424dfbe4b Update vk_layer.h
Correct comment for VkLayer*CreateInfo's sType
2018-05-04 09:24:24 -06:00
Jon Ashburn
4e7a9528f9 loader: Add device callback to set dispatchable object
Change-Id: I5ca8f532e777e2cb0facf8fe5bab4c82409f8d37
2018-05-04 09:24:24 -06:00
Jon Ashburn
f54813d16e loader: Remove the device_info in the layer chain structure
Simplifies code, the loader device structure is passed down from
    trampoline code to terminator code via the pDevice parameter. It doesn't
    need to be added to this pCreatInfo pNext list structure.

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

Change-Id: Ibf7e4ffdc1a36f52b1a99389dcab25d572655aec
2018-05-04 09:24:24 -06:00
Jon Ashburn
c51485f24a loader: Add instance callback to set dispatchable objects
Change-Id: I73b8b6edfee491c53216b730c99a7ea34ade3b4e
2018-05-04 09:24:23 -06:00
Jon Ashburn
4e58a0e4d8 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
2018-05-04 09:24:23 -06:00
Jon Ashburn
ca104ab49f loader: gllvl #50, Add support for the WSI extension KHR_display
Change-Id: I8d5ecc7500beba3042a6b9147b2f3fd3055b3b1d
2018-05-04 09:24:23 -06:00
Jon Ashburn
6b485f1d3a 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.
2018-05-04 09:24:23 -06:00
Mark Lobodzinski
ca619321bb 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
2018-05-04 09:24:23 -06:00
Karl Schultz
096f4e1df9 include: Use single-quote no paths when including sibling headers 2018-05-04 09:24:23 -06:00
Karl Schultz
0eefd1492e Remove Khronos confidential clause from license text. 2018-05-04 09:24:23 -06:00
Karl Schultz
e9e45c6f5e include: Update copyright and apply clang-format (no logic changes) 2018-05-04 09:24:22 -06:00
Jon Ashburn
8fcaf5fa29 layers: Remove obsolete VkbaseLayerObject 2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
e77fdadb24 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.
2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
1d081fd08d 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
2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
b5c860c835 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.
2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
8bbfe41579 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.
2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
ec1d0b277b 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
2018-05-04 09:24:22 -06:00
Courtney Goeltzenleuchter
39033a8239 debug_report: rename vk_lunarg_debug_report.h 2018-05-04 09:24:21 -06:00
Courtney Goeltzenleuchter
05936a934a debug_report: Add DebugReportMessage function 2018-05-04 09:24:21 -06:00
Courtney Goeltzenleuchter
3ca6b1236f debug_report: rename and update to use CreateInfo 2018-05-04 09:24:21 -06:00
Courtney Goeltzenleuchter
691cf5a57c debug_report: Rename VkDbgMsgCallback object 2018-05-04 09:24:21 -06:00
Mark Lobodzinski
d7f76a87d7 wsi: Make WSI cases more consistent, fail if not set correctly
Filled in build details for Mir, Wayland, etc.
2018-05-04 09:24:21 -06:00
Michael Lentine
05db2f0c54 android: Update build to define android platform at build time 2018-05-04 09:24:21 -06:00
Michael Lentine
810530e917 android: Fix android build.
Temporarily disable shader checker which now depends on glslang
Fix xcb guards and set the ifdef based on platform
2018-05-04 09:24:21 -06:00
Mark Lobodzinski
cde126104d wsi: Moved definition of CreateXxxSurface extension to CMakefile
Removed component-specific definitions
2018-05-04 09:24:21 -06:00
Ian Elliott
89145b9dd5 loader: Add vkGetPhysicalDevice*PresentationSupportKHR()
These queries involve trampoline and terminator functions (the latter
of which calls the ICD's function).
2018-05-04 09:24:20 -06:00
Jon Ashburn
74f08155f1 layers: add DestroySurfaceKHR to instance dispatch table 2018-05-04 09:24:20 -06:00
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