platform/upstream/Vulkan-Tools.git
6 years agoscripts: Fix xlib_xrandr platform name
Mike Schuchardt [Wed, 7 Feb 2018 21:47:01 +0000 (14:47 -0700)]
scripts: Fix xlib_xrandr platform name

Change-Id: I3aa8e929d394322ebfcfbf2a59846b2adae057e3

6 years agoDevice group extension rename
Mike Schuchardt [Tue, 6 Feb 2018 23:56:31 +0000 (16:56 -0700)]
Device group extension rename

VK_KHX_device_group/VK_KHX_device_group_creation are now KHR

Change-Id: I2ade2e7162718a4683c9365ae177891285f177b4

6 years agoscripts: Update codegen to work with new aliasing
Mike Schuchardt [Thu, 28 Dec 2017 18:23:48 +0000 (11:23 -0700)]
scripts: Update codegen to work with new aliasing

Change-Id: I3739f7b7b6eb17a5e3e1bc9cc18e74569cb50f95

6 years agoFix vkGetDeviceQueue2 segfault when returned vkQueue is VK_NULL_HANDLE
Tom Cooper [Thu, 25 Jan 2018 14:07:53 +0000 (14:07 +0000)]
Fix vkGetDeviceQueue2 segfault when returned vkQueue is VK_NULL_HANDLE

This affects the Loader.

Change-Id: I05a3feb87781be773f30327601a2bf86a53ae115

6 years agoImplement initial VK_EXT_debug_utils changes
Mark Young [Thu, 9 Nov 2017 17:37:04 +0000 (10:37 -0700)]
Implement initial VK_EXT_debug_utils changes

This affects the loader, scripts, and layers and introduces the
changes to support the VK_EXT_debug_utils extension.

Change-Id: Ia5336f63e85b00f1e59416c06aacd4ae331fd692

6 years agobuild: Bump linux loader version to 1.1
Lenny Komow [Wed, 8 Nov 2017 22:11:00 +0000 (15:11 -0700)]
build: Bump linux loader version to 1.1

6 years agodocs: Update loader doc for 1.0 ICD handling
Lenny Komow [Tue, 7 Nov 2017 18:26:49 +0000 (11:26 -0700)]
docs: Update loader doc for 1.0 ICD handling

The 1.1 loader has to handle 1.0 ICDs specially during instance
creation. This commit documents that behavior.

6 years agoloader: Update 1.0 checking mechanism
Lenny Komow [Tue, 7 Nov 2017 17:42:19 +0000 (10:42 -0700)]
loader: Update 1.0 checking mechanism

The loader will now get vkEnumerateInstanceVersion from the ICD by
calling the ICD's GetInstanceProcAddr function.

6 years agoloader: Disable emulation for 1.1 core functions
Lenny Komow [Fri, 3 Nov 2017 20:37:11 +0000 (14:37 -0600)]
loader: Disable emulation for 1.1 core functions

Disable emulation for physical device functions when they are used
as core 1.1. The emulation will still be used if they are used as the
original instance extensions.

6 years agoloader: Check vkEnumerateInstanceVersion in ICD
Lenny Komow [Fri, 3 Nov 2017 19:14:32 +0000 (13:14 -0600)]
loader: Check vkEnumerateInstanceVersion in ICD

The loader will now check vkEnumerateInstanceVersion in each ICD
before creating an instance to determine if the loader needs to
change the apiVersion field.

6 years agodemos: Update Vulkan Instance Version reporting
Shannon McPherson [Mon, 30 Oct 2017 22:36:40 +0000 (16:36 -0600)]
demos: Update Vulkan Instance Version reporting

6 years agolayers: Enable 1.0 exts moved to 1.1 core
Mark Lobodzinski [Fri, 27 Oct 2017 19:22:23 +0000 (13:22 -0600)]
layers: Enable 1.0 exts moved to 1.1 core

Also plumbed api_version into CV and PV for validation and enabling
the appropriate 1.0 extensions by default in 1.1.

6 years agolayers: Update core_validation for aliases
Mark Lobodzinski [Wed, 25 Oct 2017 22:41:20 +0000 (16:41 -0600)]
layers: Update core_validation for aliases

Also refactored for pre/post architecture.

CreateDescriptorUpdateTemplate[KHR]
DestroyDescriptorUpdateTemplate[KHR]
UpdateDescriptorSetWithTemplate[KHR]
GetPhysicalDeviceQueueFamilyProperties2[KHR]
EnumeratePhysicalDeviceGroups[KHR]

6 years agolayers: Updated unique objects layer for aliases
Mark Lobodzinski [Wed, 25 Oct 2017 22:56:42 +0000 (16:56 -0600)]
layers: Updated unique objects layer for aliases

UpdateDescriptorSetWithTemplate[KHR]
CreateDescriptorUpdateTemplate[KHR]
DestroyDescriptorUpdateTemplate[KHR]

6 years agolayers: Updated Object Tracker layer for aliases
Mark Lobodzinski [Wed, 25 Oct 2017 22:57:04 +0000 (16:57 -0600)]
layers: Updated Object Tracker layer for aliases

GetPhysicalDeviceQueueFamilyProperties2[KHR]

6 years agolayers: Handle aliasing in parameter validation
Mark Lobodzinski [Wed, 25 Oct 2017 21:26:28 +0000 (15:26 -0600)]
layers: Handle aliasing in parameter validation

6 years agoloader: Remove repeated function from vulkan.def
Lenny Komow [Thu, 26 Oct 2017 17:08:27 +0000 (11:08 -0600)]
loader: Remove repeated function from vulkan.def

6 years agoloader: Re-add old 1.1 loader work
Lenny Komow [Wed, 25 Oct 2017 21:26:15 +0000 (15:26 -0600)]
loader: Re-add old 1.1 loader work

vkEnumerateInstanceVersion got removed, as did the checks for layer
versions when we rebased off of github. This adds them back in.

6 years agoloader: Fix crash in VK_KHR_surface
Lenny Komow [Wed, 11 Oct 2017 21:39:38 +0000 (15:39 -0600)]
loader: Fix crash in VK_KHR_surface

The VkSurfaceKHR object in vkGetDeviceGroupSurfacePresentModesKHR was
not getting properly unwrapped. As a result, an invalid surface handle
was being passed to the drivers (usually resulting in a crash).

6 years agoloader: Fix loader using stale VkApplicationInfo
Lenny Komow [Wed, 11 Oct 2017 19:39:33 +0000 (13:39 -0600)]
loader: Fix loader using stale VkApplicationInfo

Fix a bug where the loader could crash because it used a
VkApplicationInfo struct after the struct had gone out of scope.

6 years agoloader: Remove version check from vkCreateInstance
Lenny Komow [Wed, 11 Oct 2017 15:25:19 +0000 (09:25 -0600)]
loader: Remove version check from vkCreateInstance

6 years agoloader: Fix crash with null VkApplicationInfo
Lenny Komow [Wed, 11 Oct 2017 15:20:52 +0000 (09:20 -0600)]
loader: Fix crash with null VkApplicationInfo

Fix a crash when creating an instance where
pCreateInfo->pApplicationInfo is set to null.

6 years agoloader: Fix crash in aliased extensions
Lenny Komow [Tue, 10 Oct 2017 19:50:20 +0000 (13:50 -0600)]
loader: Fix crash in aliased extensions

6 years agoloader: Update loader for Vulkan 1.1
Lenny Komow [Mon, 2 Oct 2017 21:08:53 +0000 (15:08 -0600)]
loader: Update loader for Vulkan 1.1

6 years agoloader: Update functions names
Lenny Komow [Tue, 3 Oct 2017 19:59:21 +0000 (13:59 -0600)]
loader: Update functions names

6 years agoloader: Update vkEnumerateInstanceVersion for 1.1
Lenny Komow [Tue, 3 Oct 2017 16:11:24 +0000 (10:11 -0600)]
loader: Update vkEnumerateInstanceVersion for 1.1

6 years agoloader: Add new core 1.1 entry points
Lenny Komow [Mon, 2 Oct 2017 23:11:05 +0000 (17:11 -0600)]
loader: Add new core 1.1 entry points

6 years agoloader: Fix windows build
Lenny Komow [Mon, 2 Oct 2017 21:58:17 +0000 (15:58 -0600)]
loader: Fix windows build

6 years agoloader: Fix loader marking 1.1 cmds as required
Lenny Komow [Mon, 2 Oct 2017 21:32:55 +0000 (15:32 -0600)]
loader: Fix loader marking 1.1 cmds as required

6 years agoloader: Move manual KHR exts to core
Lenny Komow [Mon, 2 Oct 2017 21:08:53 +0000 (15:08 -0600)]
loader: Move manual KHR exts to core

6 years agoloader: Update vulkan version location
Mark Lobodzinski [Mon, 23 Oct 2017 21:31:56 +0000 (15:31 -0600)]
loader: Update vulkan version location

6 years agoscripts: Update generators for 1.1
Mark Lobodzinski [Tue, 24 Oct 2017 19:41:18 +0000 (13:41 -0600)]
scripts: Update generators for 1.1

6 years agolayers: Fix unique_objects for renamed safe structs
Mark Lobodzinski [Thu, 28 Sep 2017 21:57:07 +0000 (15:57 -0600)]
layers: Fix unique_objects for renamed safe structs

6 years agolayers: Fixed issues due to safe struct renames
Mark Lobodzinski [Thu, 28 Sep 2017 21:18:18 +0000 (15:18 -0600)]
layers: Fixed issues due to safe struct renames

6 years agoscripts: Avoid duplicates in enum string helper
Mark Lobodzinski [Thu, 28 Sep 2017 21:12:02 +0000 (15:12 -0600)]
scripts: Avoid duplicates in enum string helper

6 years agoscripts: Fix loader extension generator
Mark Lobodzinski [Thu, 28 Sep 2017 21:11:38 +0000 (15:11 -0600)]
scripts: Fix loader extension generator

Was incorrectly creating device/instance dispatch tables.

6 years agoscripts: Private repo VUID workaround
Mike Schuchardt [Thu, 20 Jul 2017 17:16:48 +0000 (11:16 -0600)]
scripts: Private repo VUID workaround

Workarounds for private codegen and tests so they can run without having
to update the VUID mapping or database

Change-Id: Idf71df859f55888103f93f863fc73a0c7a01de2c

6 years agoheader: KHX->KHR name changes
Mark Lobodzinski [Mon, 18 Sep 2017 22:28:27 +0000 (16:28 -0600)]
header: KHX->KHR name changes

6 years agoscripts: Update lvl_genvk.py with 1.1 changes
Mark Lobodzinski [Mon, 18 Sep 2017 21:13:54 +0000 (15:13 -0600)]
scripts: Update lvl_genvk.py with 1.1 changes

6 years agoscripts: Allow for skipping version_1_1 features
Mark Lobodzinski [Mon, 18 Sep 2017 20:15:09 +0000 (14:15 -0600)]
scripts: Allow for skipping version_1_1 features

Treat 1.1 features as 1.0, instead of as an extension.

6 years agodocs: Update Contributing.md for msg output info
Mark Lobodzinski [Tue, 6 Mar 2018 15:12:19 +0000 (08:12 -0700)]
docs: Update Contributing.md for msg output info

Change-Id: Iab9831c798970334808c5d0784e1e5128f05c6f6

6 years agovulkaninfo: Add extension output
Jeremy Kniager [Tue, 27 Feb 2018 23:50:02 +0000 (16:50 -0700)]
vulkaninfo: Add extension output

Added output for extension structures:

VkPhysicalDevice16BitStorageFeaturesKHR
VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR
VkPhysicalDeviceVariablePointerFeaturesKHR
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
VkPhysicalDeviceBlendOperationAdvancedProper-
tiesEXT
VkPhysicalDevicePointClippingPropertiesKHR
VkPhysicalDevicePushDescriptorPropertiesKHR
VkPhysicalDeviceDiscardRectanglePropertiesEXT.

Change-Id: I5718ab765f48fb0d65ddecd6718f0c14e814e715

6 years agolayers: Add support for StorageBuffer storage class
Chris Forbes [Wed, 7 Mar 2018 20:57:48 +0000 (12:57 -0800)]
layers: Add support for StorageBuffer storage class

Add basic support for storage buffers using the StorageBuffer storage
class rather than UniformConstant + BufferBlock decoration.

6 years agolayers: Require appropriate feature enabled for writable descriptors
Chris Forbes [Wed, 7 Mar 2018 19:38:08 +0000 (11:38 -0800)]
layers: Require appropriate feature enabled for writable descriptors

6 years agolayers: Determine whether a shader uses any writable descriptors
Chris Forbes [Wed, 7 Mar 2018 19:37:45 +0000 (11:37 -0800)]
layers: Determine whether a shader uses any writable descriptors

6 years agolayers: Param validation checks multiplane bits
Dave Houlton [Fri, 2 Feb 2018 23:18:52 +0000 (16:18 -0700)]
layers: Param validation checks multiplane bits

Update parameter validation checks to recognize the new aspect flag
bits added by VK_KHR_sampler_ycbcr_conversion extension
(VK_IMAGE_ASPECT_PLANE_n_BIT_KHR). Update core validation checks to
avoid false positives when copying multiplane images.

Change-Id: I6fb19ff76386ce55f3b44b0301ba7cd7f7e88547

6 years agolayers: Cleanup naming for layout compatibiity
John Zulauf [Tue, 6 Mar 2018 23:44:43 +0000 (16:44 -0700)]
layers: Cleanup naming for layout compatibiity

Type and variable names have been clarified for the pipeline layout
array of descriptor set layouts based on reviewer feedback.

Change-Id: I6b191b2121db87285f7fd50810991340c02475c4

6 years agolayers: Improve pipeline layout compat updates
John Zulauf [Fri, 16 Feb 2018 20:09:39 +0000 (13:09 -0700)]
layers: Improve pipeline layout compat updates

Replaced existing "compatible for set N" and descriptor set binding
update/disturb logic with one using the cannonical form dictionaries and
implementing all of the disturb before and after rules.  Also applied
this update/disturb logic to PushDescriptors recording.

Change-Id: I950c8e5d56c2dbc81fc52136af5a22882cfbc7a4

6 years agolayers: Add canonical/unique ID to pipeline layout
John Zulauf [Fri, 16 Feb 2018 20:08:47 +0000 (13:08 -0700)]
layers: Add canonical/unique ID to pipeline layout

Add unique ID's to pipeline layout needed for pipeline layout
compatibilty revamp in subsequent commit.  Refactor unique ID support
into common Dictionary implementation.

Change-Id: I0d864c8ef3b3406d6444aed4d73078d25d5eb26f

6 years agolayers: Store PushConstant ranges in dictionary
John Zulauf [Fri, 16 Feb 2018 20:07:24 +0000 (13:07 -0700)]
layers: Store PushConstant ranges in dictionary

For rapid compatiblity checks, create unique ID's for PushConstant
ranges.

Change-Id: Ie33372e2428e453e610e292b2917801225c11020

6 years agolayers: Give compatible DSL unique ids
John Zulauf [Fri, 16 Feb 2018 20:00:34 +0000 (13:00 -0700)]
layers: Give compatible DSL unique ids

Store compatible DescriptorSetLayout definitions in a dictionary with
unique IDs.  Use IDs for trivial accept compatibility validation.

Change-Id: I1085a354d36d1a733f79adb4459decf8cf0a55c1

6 years agolayers: Split DescriptorSetLayout data structure
John Zulauf [Fri, 16 Feb 2018 19:58:37 +0000 (12:58 -0700)]
layers: Split DescriptorSetLayout data structure

In preparing for use of "common definiton" id's split the
DescriptorSetLayout data structure into handle specific and common (def)
components.  Object interface is preserved.

Change-Id: I5c6b1e726aa70de548c65a5f5ad08726b0a7507b

6 years agolayers/vk_layer_config.cpp: fix win32 include case
Martin Herkt [Tue, 6 Mar 2018 21:44:13 +0000 (22:44 +0100)]
layers/vk_layer_config.cpp: fix win32 include case

Fixes mingw-w64 compilation on case-sensitive file systems.

6 years agodocs: Update brew package list
Mike Schuchardt [Wed, 7 Mar 2018 00:39:05 +0000 (17:39 -0700)]
docs: Update brew package list

Starting around Feb 27 2018, "python" installs python 3.x instead of
2.x.  Also remove git which should be present from the Xcode command
line tools and python2 which should be present in the base macOS
install.

6 years agotests: Add unit tests for dedicated memory binding
John Zulauf [Fri, 2 Mar 2018 16:24:43 +0000 (09:24 -0700)]
tests: Add unit tests for dedicated memory binding

Added unit tests for the following valid usage checks w.r.t. binding
dedicated allocations to buffers and images.

VALIDATION_ERROR_17000bc8 VUID-vkBindBufferMemory-memory-01508
VALIDATION_ERROR_17400bca VUID-vkBindImageMemory-memory-01509

As same code path checks the BindImage2/BufferMemory2, but has no
matching valid usage, no tests are added for those cases.

Change-Id: Id8845d3cdb85731142ca0dca381a5e9157118a25

6 years agolayers: Add VU checks for dedicated buffers/images
John Zulauf [Fri, 2 Mar 2018 16:13:09 +0000 (09:13 -0700)]
layers: Add VU checks for dedicated buffers/images

Add validation for the following valid usage for binding dedicated
allocations to buffers and images.

VALIDATION_ERROR_17000bc8    VUID-vkBindBufferMemory-memory-01508
VALIDATION_ERROR_17400bca    VUID-vkBindImageMemory-memory-01509

The same code path checks the BindImage2/BufferMemory2, but there are no
matching VUID at this time.

Change-Id: I8b700059d8c0acdfabf0b30be3dca20f616b3be1

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 agolayers:Add VUIDs for VK_KHR_incremental_present
Tobin Ehlis [Fri, 2 Mar 2018 14:43:50 +0000 (07:43 -0700)]
layers:Add VUIDs for VK_KHR_incremental_present

Ran across this old TODO when cleaning up branches. Add in the
appropriate VUIDs, update DB, and kill TODO comment.

6 years agobuild: Fix -Wmicrosoft-cast warnings with clang-cl
Nico Weber [Thu, 1 Mar 2018 14:55:46 +0000 (09:55 -0500)]
build: Fix -Wmicrosoft-cast warnings with clang-cl

MSVC allows implicit conversion from function pointers to void*.
The C++ standard doesn't allow this, and clang-cl emits a warning
when this is done.  This change fixes these warnings in
Vulkan-LoaderAndValidationLayers.

Arguably, loader_platform_get_proc_address() should return a
FARPROC so that the compiler can help checking calling conventions,
but this is the simplest fix that unblocks us.

This is needed for https://crbug.com/550065

6 years agotests: Add tests for vkCmdSetScissor
Petr Kraus [Tue, 27 Feb 2018 20:20:23 +0000 (21:20 +0100)]
tests:  Add tests for vkCmdSetScissor

+ increase coverage of `VkRect2D` tests.

6 years agolayers: Rewrite pv_vkCmdSetScissor checks
Petr Kraus [Tue, 27 Feb 2018 20:15:55 +0000 (21:15 +0100)]
layers: Rewrite pv_vkCmdSetScissor checks

- tweaks to completeness, correctness and quality of msg logs
- add `multiViewport` related check
- protect against `NULL`  ptr `pScissors`
- make overflow check more robust (remove u32->i32 cast)
- correct veid db

6 years agotests: Add missing dyn. multiVieport tests in db
Petr Kraus [Tue, 27 Feb 2018 20:00:14 +0000 (21:00 +0100)]
tests: Add missing dyn. multiVieport tests in db

6 years agolayers: Conform to gstyle in pv_vkCmdSetVieport
Petr Kraus [Tue, 27 Feb 2018 19:51:20 +0000 (20:51 +0100)]
layers: Conform to gstyle in pv_vkCmdSetVieport

6 years agolayers: Make unique_objects ID map global
Mark Lobodzinski [Wed, 28 Feb 2018 20:38:45 +0000 (13:38 -0700)]
layers: Make unique_objects ID map global

Increasingly, instance objects are referenced by device-level APIs.
Made unique ID map global, shared across all instances and devices.

Change-Id: I5b62e7b95ec25a2a8b390d46024b43c29f2199ce

6 years agoscripts: Mod spec.py to use local validusage.json
Mark Lobodzinski [Thu, 1 Mar 2018 17:25:58 +0000 (10:25 -0700)]
scripts: Mod spec.py to use local validusage.json

This script by default used the latest version of validusage.json from
the web. Changed to use the local copy checked into the repo. Used the
json-file option to fetch from a non-default location, removed the
-json arg and the URL option entirely.

Change-Id: Id088b08c8e66a3cdfca2b9e771797bffe941e5d3

6 years agoscripts: Add validusage.json to LVL repo
Mark Lobodzinski [Tue, 27 Feb 2018 16:19:15 +0000 (09:19 -0700)]
scripts: Add validusage.json to LVL repo

In the future, this file will be updated as part of the Vulkan
header update process, and will be used as part of managing VUID
identifiers and lifetimes.

Change-Id: I6e29c1148e8752147310649a5ccfd99f385c0f46

6 years agolayers: Add VU check for VkSwapchainCreateInfoKHR
Jeremy Kniager [Fri, 19 Jan 2018 17:55:01 +0000 (10:55 -0700)]
layers: Add VU check for VkSwapchainCreateInfoKHR

Added validation check for zero values in
imageExtent of VkSwapchainCreateInfoKHR.

No test included for this VU check as there is
currently no clean method for creating a
VkSurfaceKHR object in
layer_validation_tests.cpp.

Change-Id: I5b04543a837d1f1f7d8c20cec4f446df503a81ce

6 years agodemos: Fix bug cube.c
Jeremy Kniager [Fri, 19 Jan 2018 17:52:34 +0000 (10:52 -0700)]
demos: Fix bug cube.c

Fixed cube.c crashing on Windows when minimized.

Change-Id: Ia4a6578f7da6c1f7a10977b8343099df4c5c69fb

6 years agodemos: Redirect error messages to stderr
Shannon McPherson [Wed, 28 Feb 2018 17:59:22 +0000 (10:59 -0700)]
demos: Redirect error messages to stderr

Change-Id: Ib704cdc15eb681d1aa1c0a6cde55af5a9bdf3f0e

6 years agolayers:Merge common loops
Tobin Ehlis [Mon, 26 Feb 2018 17:55:57 +0000 (10:55 -0700)]
layers:Merge common loops

Can increment resources for secondary command buffers in the same loop
where image layouts are updated.

6 years agodocs: fix markdown lint issues in BUILD.md
Karl Schultz [Tue, 27 Feb 2018 17:47:00 +0000 (10:47 -0700)]
docs: fix markdown lint issues in BUILD.md

6 years agodocs: Remove osx-specific func from Linux instrs
Mark Lobodzinski [Wed, 21 Feb 2018 22:31:52 +0000 (15:31 -0700)]
docs: Remove osx-specific func from Linux instrs

Fixed a pre-existing typo in the android instructions for Linux.

Change-Id: I7ceea88d07a69a60fc1afe4b2facf3e03f0da0e5

6 years agodocs: Reorg and update BUILD.md
Mark Lobodzinski [Mon, 19 Feb 2018 23:31:41 +0000 (16:31 -0700)]
docs: Reorg and update BUILD.md

Also changed to one-sentence-per-line markdown style.

Change-Id: I41d6fcb8fa4a07711f19325c350950d5be3e269c

6 years agolayers: Removed obsolete (and duplicate) VUIDs
Mark Lobodzinski [Mon, 26 Feb 2018 23:09:11 +0000 (16:09 -0700)]
layers: Removed obsolete (and duplicate) VUIDs

Removed old source, tests, and database entries for checks 09c0012a
and 09c00136 (VUID-VkImageCopy-srcSubresource-00149 and
VUID-VkImageCopy-dstSubresource-00155) which were removed as part
of gitlab issue #812.

Change-Id: I8da71e2dc5b993a442ae1c4f6036266b59069a4f

6 years agolayers: Fix a couple of old typos
Mark Lobodzinski [Mon, 26 Feb 2018 23:01:22 +0000 (16:01 -0700)]
layers: Fix a couple of old typos

Change-Id: I05d9c71a21136b790039fce05a2b4d9472537a2a

6 years agolayers: Remove buffer image_xfer_granularity checks
Mark Lobodzinski [Mon, 26 Feb 2018 22:57:35 +0000 (15:57 -0700)]
layers: Remove buffer image_xfer_granularity checks

These checks are obsolete and have been removed from the spec.

Change-Id: If0c47096029775c53493ba2a5b3d3ee58211f4b3

6 years agobuild: Fix line endings in update resources script
Jeff Bolz [Wed, 14 Feb 2018 20:26:18 +0000 (14:26 -0600)]
build: Fix line endings in update resources script

Used tr -d to remove line endings for external_revisions files in
update_external_sources.sh script.

Note: Also fixed comment

Change-Id: I9a467d60acc27eeced1f48e46c3bc5624c47ab23

6 years agolayers: Record 3D image slice layouts
Dave Houlton [Thu, 22 Feb 2018 23:25:16 +0000 (16:25 -0700)]
layers: Record 3D image slice layouts

Fixes a bug in image layout state handling that appeared with
khr_maintenance1. When a 3D image which was created with the
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR flag is transitioned
between layouts, we now also record a transition for each depth
slice, treating it as an array layer subresource.

The actual fix is just two lines within TransitionImageLayouts().
Also included are some debug-enabling refactoring to distinguish
layout state updates vs additions, and support for new aspect
mask bits.

Change-Id: Ibb5131a6dba8fcdeafe5e6d94af2decf751842ec

6 years agobuild: Modify .gitattributes for unix line endings
Mike Weiblen [Fri, 23 Feb 2018 20:26:08 +0000 (13:26 -0700)]
build: Modify .gitattributes for unix line endings

Shell scripts were forced to a carriage-return line ending -- changed
this to a line feed line ending.

Change-Id: I98b738e4f09ccc622632194586435e5ee6d855eb

6 years agotweak travis config to make it easier to see which profile is failing
Chris Forbes [Fri, 23 Feb 2018 18:16:17 +0000 (10:16 -0800)]
tweak travis config to make it easier to see which profile is failing

6 years agolayers: Fix miscounting of descriptors for multiple stages
Chris Forbes [Fri, 23 Feb 2018 17:11:06 +0000 (09:11 -0800)]
layers: Fix miscounting of descriptors for multiple stages

Descriptors are not intended to count multiple times against the
maxDescriptorSet* limits if they are accessible from multiple stages.

Required adjusting various subtests in CreatePipelineLayout*.

Also fixed some related issues in those tests:
- Input attachments are ONLY accessible to the fragment stage.
- Various assumptions about divisibility of the maxDescriptorSet* limits

There are still many robustness issues in these tests -- it appears we
don't hit them with real implementations, but still wrong.

6 years agolayers: Fix validation of shader pipelines when a stage is broken
Chris Forbes [Sat, 17 Feb 2018 00:59:23 +0000 (16:59 -0800)]
layers: Fix validation of shader pipelines when a stage is broken

Present-but-broken stages need to still be considered present for
the purposes of walking `producer` forward. Otherwise a broken GS will
for example cause us to get confused and try to match the VS interface
against the FS.

Bug: #1600, others.

6 years agodemos: Clang format and update const correctness
Shannon McPherson [Tue, 20 Feb 2018 02:06:12 +0000 (19:06 -0700)]
demos: Clang format and update const correctness

Change-Id: Ic48d19b6e67c153db0cd86ff6390076d52d3f16f

6 years agodemos: Update/alter console and json output paths
Shannon McPherson [Thu, 25 Jan 2018 18:10:51 +0000 (11:10 -0700)]
demos: Update/alter console and json output paths

Json is now sent to stdout instead of a file. Html and json output are
now the only two output paths that can exist in the same instance.

Change-Id: I2d28d9b996c11535bf170e7e25b5acd8f57276e1

6 years agodemos: Add Windows functionality
Shannon McPherson [Mon, 8 Jan 2018 20:33:27 +0000 (13:33 -0700)]
demos: Add Windows functionality

Also, bug fixes.

Change-Id: I6828ea2958cc05342d9ab5a5438c032080bb849d

6 years agodemos: Change post-increment to pre-increment
Shannon McPherson [Wed, 21 Feb 2018 18:00:17 +0000 (11:00 -0700)]
demos: Change post-increment to pre-increment

Change-Id: I2bc7a4d207330892c29fa8053705db0548963c00

6 years agodemos: Add functionality on Linux for single GPU
Shannon McPherson [Thu, 4 Jan 2018 23:23:31 +0000 (16:23 -0700)]
demos: Add functionality on Linux for single GPU

Vulkaninfo JSON output appears as expected in Linux environment.
Implemented on a system with a single GPU.

Change-Id: I3179b3d479270c71a9f7955b41d19924baf10bfb

6 years agodemos: Implement JSON coverage for more Vk objs
Shannon McPherson [Fri, 15 Dec 2017 23:30:46 +0000 (16:30 -0700)]
demos: Implement JSON coverage for more Vk objs

Change-Id: I6584027b83e4d55e2ad99680f7f3645a45285917

6 years agodemos: surfaceCapabilities output; gpu select
Shannon McPherson [Mon, 4 Dec 2017 23:54:20 +0000 (16:54 -0700)]
demos: surfaceCapabilities output; gpu select

User can now specify which GPU they want to save information for

Change-Id: Iac60fc883b32677bc2a59f4b3143aa727e3732cb

6 years agoscripts: Strip xref markup from vu error messages
Mike Schuchardt [Wed, 21 Feb 2018 16:03:34 +0000 (09:03 -0700)]
scripts: Strip xref markup from vu error messages

Convert asciidoctor xref markup from "<<anchor, text>>" to "text" for VU
error messages.  Longer term plan is to modify the upstream validusage
build target in Vulkan-Docs to emit plain text to begin with.

Change-Id: I6ca6ffb4701df27c9c1666598fbeceb0f3a03216

6 years agoheader: Update to version 1.0.69 of the Vulkan hdr
Mark Lobodzinski [Tue, 20 Feb 2018 16:37:55 +0000 (09:37 -0700)]
header: Update to version 1.0.69 of the Vulkan hdr

- updated vulkan.h
- updated vk.xml
- updated layer json files
- updated vulkan.hpp
- updated validation_error_database.txt
- updated vk_validation_error_messages.h
- updated vuid_mapping.py

Note that the VU text in the database file contains artifacts from
the registry/VUID toolchain. These will be addressed in a follow-on
patch set.

Change-Id: I6994ec17a6edcb6c9028c792c68863cd39f1fc56

6 years agolayers: Convert 2 barrier checks to VUID notation
John Zulauf [Tue, 20 Feb 2018 21:33:18 +0000 (14:33 -0700)]
layers: Convert 2 barrier checks to VUID notation

Converted two validation checks for image and buffer barriers to the
VALIDATION_ERROR_xxxxxxxx / VUID notation and changed unit tests to
also specify desired failure in same form.

VALIDATION_ERROR_0a00095c  VUID-VkImageMemoryBarrier-newLayout-01198
VALIDATION_ERROR_0180094a  VUID-VkBufferMemoryBarrier-size-01189

Change-Id: I20387bfec89872825f7311e443105aecacb84000

6 years agolayers: Fix and convert buffer barrier size check
John Zulauf [Tue, 20 Feb 2018 19:19:28 +0000 (12:19 -0700)]
layers: Fix and convert buffer barrier size check

Change buffer barrier size check to compare against the created size of
the buffer, not the memory requirements size, and add VUID info to
validation.  Update test to reflect validation changes.

Change-Id: Ib61d6bcd0df449bacd063ece44426ba6196b62e6

6 years agolayers: A memory binding validation for barriers
John Zulauf [Mon, 19 Feb 2018 23:32:08 +0000 (16:32 -0700)]
layers: A memory binding validation for barriers

Add validation to ensure non-sparse resources are bound to memory before
being referenced in a barrier command.

Change-Id: I007200833d19a96e92ef61a91851c6395b8b9c57

6 years agodemos: clang-format only
Dave Houlton [Fri, 16 Feb 2018 18:02:26 +0000 (11:02 -0700)]
demos: clang-format only

Apply a whole-file clang-format to LVL demos folder.

Change-Id: I5f7fc8b67e7f3f3eeaa34a2ae757004fb7334743

6 years agodemos: ensure DISPLAY envar is valid
Mike Weiblen [Tue, 13 Feb 2018 20:56:13 +0000 (13:56 -0700)]
demos: ensure DISPLAY envar is valid

If the DISPLAY environment variable is unset or null, the cube demo will
emit "Cannot find a compatible Vulkan installable client driver (ICD)."
That message is not helpful when attempting to resolve the issue, since
the problem is with the envar, not the ICD.

Change-Id: Idf145cf0da906a4a8352b5bb136f88d9c1bca90d

6 years agolayers: Handle multiple GetSwapchainImages calls
Mark Lobodzinski [Fri, 16 Feb 2018 18:24:21 +0000 (11:24 -0700)]
layers: Handle multiple GetSwapchainImages calls

Unique Objects was fixed to prevent uniquifying duplicate image objects
for multiple GetSwapchainImageKHR calls.

Change-Id: I14bc3d8145a37b74adcdef68970b3dffc539d511

6 years agolayers: Move U_O:DestroySwapchain out of codegen
Mark Lobodzinski [Fri, 16 Feb 2018 16:58:07 +0000 (09:58 -0700)]
layers: Move U_O:DestroySwapchain out of codegen

This function in the unique_objects layer will need to clean up some
swapchain image index tracking information and so will now be
manually written.

Change-Id: I306fdd9f7a3c75c21b82fe21951804bd86259781

6 years agolayers: Fix linux compilation errors of isnan
John Zulauf [Mon, 19 Feb 2018 17:09:35 +0000 (10:09 -0700)]
layers: Fix linux compilation errors of isnan

Added std:: to isnan invocation.

Change-Id: I1353c4116497a88625a12e4003121716ec66a4f0

6 years agotests: Implement VkViewport tests
Petr Kraus [Tue, 9 Jan 2018 23:19:16 +0000 (00:19 +0100)]
tests: Implement VkViewport tests