platform/upstream/Vulkan-Tools.git
7 years agoscripts: Add dispatch table generator to lvl_genvk.py
Mark Lobodzinski [Tue, 6 Dec 2016 18:30:50 +0000 (11:30 -0700)]
scripts: Add dispatch table generator to lvl_genvk.py

Change-Id: I539b8248ef8fb151de702c7d5e1773d149ce5313

7 years agoscripts: Add generator for dispatch_table_helper
Mark Lobodzinski [Tue, 6 Dec 2016 18:14:50 +0000 (11:14 -0700)]
scripts: Add generator for dispatch_table_helper

vk-generate.py generated the vk_dispatch_table_helper.h file
based on the vulkan.py file.  Added dispatch_table_generator.py,
which is an vk.xml-based generator to automatically pick up
API changes.

Change-Id: I93adae00566823ce8fc653a68f4b1b4079a998fc

7 years agodemos: Fix compile warning in smoke
Tony Barbour [Thu, 8 Dec 2016 21:30:55 +0000 (14:30 -0700)]
demos: Fix compile warning in smoke

Change-Id: I60ee7f881cfd2bd78de21fa14146ef5667e20cc6

7 years agolayers: Update Valid Usage enums in log_msg
Mike Weiblen [Wed, 7 Dec 2016 00:10:22 +0000 (17:10 -0700)]
layers: Update Valid Usage enums in log_msg

Update Valid Usage enums in CmdExecuteCommands() and their
status in the VU database.
This partially implements Jira task VL-65

Change-Id: Ia31dbf78ed93418ced6597401d77f3fa6488935e

7 years agolayers:Add undefined validation error enum
Tobin Ehlis [Thu, 8 Dec 2016 20:32:05 +0000 (13:32 -0700)]
layers:Add undefined validation error enum

Add VALIDATION_ERROR_UNDEFINED to UNIQUE_VALIDATION_ERROR_CODE enum
with a value of "-1". This had been custom-defined in
object_tracker.cpp so removing it from there.

7 years agodocs: Add travis build status to README
Karl Schultz [Thu, 8 Dec 2016 18:41:14 +0000 (11:41 -0700)]
docs: Add travis build status to README

7 years agoscripts:Update unique error enums as of 12/5/16
Tobin Ehlis [Mon, 5 Dec 2016 16:24:37 +0000 (09:24 -0700)]
scripts:Update unique error enums as of 12/5/16

Various valid usage updates and additions.

Cmd to do update was:

python spec.py -update -remap 168-2059:1378-1203:1383-1206:1385-1207:\
1380-1204:1447-1268:1449-1269:1505-1310:1507-1311:1510-1313:1512-1314:\
1542-1753:1544-1755:1547-1758:1549-1760

7 years agoscripts: Remove unused cmake option from vk_helper.py
Mark Lobodzinski [Mon, 5 Dec 2016 22:33:59 +0000 (15:33 -0700)]
scripts: Remove unused cmake option from vk_helper.py

Change-Id: Iafaf5c45a53ae702ecad8a387b11710ad60358f3

7 years agoscripts: Remove unused vk_helper.py struct_wrappers
Mark Lobodzinski [Mon, 5 Dec 2016 22:27:44 +0000 (15:27 -0700)]
scripts: Remove unused vk_helper.py struct_wrappers

Change-Id: I9dcc1df2d979f1c36a88bb2d6181636c543431a1

7 years agoscripts: Remove graphviz options from vk_helper.py
Mark Lobodzinski [Mon, 5 Dec 2016 22:10:19 +0000 (15:10 -0700)]
scripts: Remove graphviz options from vk_helper.py

Change-Id: I8b7ff75f334e8c2f2e07c04b6183abcd96e662df

7 years agoscripts: Remove no_addr options from vk_helper.py
Mark Lobodzinski [Mon, 5 Dec 2016 14:38:58 +0000 (07:38 -0700)]
scripts: Remove no_addr options from vk_helper.py

This option was not used in any repo.

Change-Id: I133a1aaf34bd3e1a842150fc06f795eef8d1e606

7 years agolayers:RetireWorkOnQueue refactor fixes
Tobin Ehlis [Wed, 7 Dec 2016 18:20:02 +0000 (11:20 -0700)]
layers:RetireWorkOnQueue refactor fixes

Some updates based on review feedback.
Fix VerifyQueueStateToSeq to still validate across semaphore pairs in
the same fashion that RetireWorkOnQueue did.
Use a deque iterator rather than local copy.
Update some formatting.

7 years agolayers:Add validation flags
Tobin Ehlis [Tue, 6 Dec 2016 21:47:52 +0000 (14:47 -0700)]
layers:Add validation flags

Added validation flags to allow for disabling of validation for:
vkWaitForFences
vkGetFenceStatus
vkDeviceWaitIdle
vkQueueWaitIdle

7 years agolayers:Refactor QueueWaitIdle
Tobin Ehlis [Tue, 6 Dec 2016 20:20:09 +0000 (13:20 -0700)]
layers:Refactor QueueWaitIdle

Update QueueWaitIdle in core_validation to use Pre/Post pattern.

7 years agolayers:Refactor DeviceWaitIdle
Tobin Ehlis [Tue, 6 Dec 2016 20:08:18 +0000 (13:08 -0700)]
layers:Refactor DeviceWaitIdle

Update DeviceWaitIdle in core_validation to use Pre/Post pattern.

7 years agolayers:Refactor RetireWorkOnQueue
Tobin Ehlis [Tue, 6 Dec 2016 19:53:43 +0000 (12:53 -0700)]
layers:Refactor RetireWorkOnQueue

RetireWorkOnQueue() had one check that could cause a validation error.
The check makes sure that an unsignalled event does not precede a query
pool reset in a cmd buffer being retired.

This change splits out the check so that it can be hoisted prior to
calls down the chain, and the actual retirement of work on a queue then
only needs to take place after a call down the chain succeeds.

This initial commit separates these operations for fence retirement
and a follow-on commit will separate remaining operations for queue
retirement.

7 years agolayers:Refactor GetFenceStatus in core_validation
Tobin Ehlis [Tue, 6 Dec 2016 15:26:05 +0000 (08:26 -0700)]
layers:Refactor GetFenceStatus in core_validation

Refactor GetFenceStatus to use Pre/Post pattern.

7 years agolayers:Refactor WaitForFences in core_validation
Tobin Ehlis [Tue, 6 Dec 2016 14:38:48 +0000 (07:38 -0700)]
layers:Refactor WaitForFences in core_validation

Refactor WaitForFences to use Pre/Post pattern. This function currently
has a Post effect that can cause a validation error. Planning to remove
this in a follow-on commit.

7 years agosmoke: Don't load validation layers by default
Cody Northrop [Wed, 7 Dec 2016 09:58:34 +0000 (01:58 -0800)]
smoke: Don't load validation layers by default

This was an inadvertent change from 3f3748ad

7 years agodocs: Update Smoke command to invoke layers on Android
Cody Northrop [Tue, 6 Dec 2016 18:24:47 +0000 (11:24 -0700)]
docs: Update Smoke command to invoke layers on Android

7 years agosmoke: Port arg parsing from Hologram
Cody Northrop [Fri, 2 Dec 2016 18:25:54 +0000 (11:25 -0700)]
smoke: Port arg parsing from Hologram

7 years agosmoke: Allow Android to specify layers other than standard_validation
Cody Northrop [Fri, 2 Dec 2016 18:25:30 +0000 (11:25 -0700)]
smoke: Allow Android to specify layers other than standard_validation

7 years agosmoke: Add layers to Android APK
Cody Northrop [Fri, 2 Dec 2016 18:23:28 +0000 (11:23 -0700)]
smoke: Add layers to Android APK

7 years agobuild: Add Travis CI file
Peter Mackay [Fri, 21 Oct 2016 14:54:03 +0000 (15:54 +0100)]
build: Add Travis CI file

This initial revision only supports builds for Linux.
Pull Request #1082

Change-Id: I0200eb7ae33ff23af2014624ee399bfe1929aaa8

7 years agolayers: remove dead code
Jeremy Hayes [Fri, 2 Dec 2016 21:47:37 +0000 (14:47 -0700)]
layers: remove dead code

Change-Id: I152ce109cada7bee85678217f39819ffe51580b9

7 years agoloader: Modify debug_marker terminators
Mark Young [Fri, 2 Dec 2016 22:02:52 +0000 (15:02 -0700)]
loader: Modify debug_marker terminators

Modify the 2 debug marker terminators we use so that they don't call
into the ICD unless the ICD commands exist.

Change-Id: I72a96475f21d0fca572f3c5e6f5676782a8a4bf3

7 years agolayers: Fix Windows build
Mark Lobodzinski [Fri, 2 Dec 2016 22:33:18 +0000 (15:33 -0700)]
layers: Fix Windows build

STL min/max functions were causing windows build failures.

Change-Id: Ia153a5d6a3d245b645b5f829c3f076c023d865f1

7 years agolayers:Handle consecutive descriptor updates
Tobin Ehlis [Wed, 30 Nov 2016 17:19:14 +0000 (10:19 -0700)]
layers:Handle consecutive descriptor updates

Fixes #1165

According to spec descriptor updates should roll over to the next
binding number. If bindings were out of order, this was broken in
validation.

This fix corrects validation and state update for out-of-order
descriptor bindings by checking consecutive updates based on correct
binding count for consecutive bindings and by performing updates
on a per-binding basis, making sure to roll update over to the
correct next binding.

Also update the error message, related negative test, and database
file.

7 years agolayers:Handle NULL DebugMarker function ptrs
Tobin Ehlis [Thu, 1 Dec 2016 16:37:56 +0000 (09:37 -0700)]
layers:Handle NULL DebugMarker function ptrs

Fixes #1074

Object_tracker and parameter_checker intercept DebugMarker extension
functions which may not be supported by underlying device and
therefore could terminate with a NULL function call.
Updating these layers to handle this case by making sure that their
downstream function ptr is not null before calling down the chain.
If the downstream function ptr is null, considering that VK_SUCCESS
in the layers for functions with VkResult return code.

7 years agolayers:Kill print cmd buffer functions
Tobin Ehlis [Thu, 1 Dec 2016 20:16:17 +0000 (13:16 -0700)]
layers:Kill print cmd buffer functions

Killing the printCB* functions that would dump details of command
buffers for a number of functions.

7 years agolayers:Kill print_mem_list function
Tobin Ehlis [Thu, 1 Dec 2016 20:11:39 +0000 (13:11 -0700)]
layers:Kill print_mem_list function

Killing the print_mem_list function that would dump details of memory
allocations for a number of functions.
This function is a vestige of the original validation layers when
more debug info was useful. Now there are alternate tools and layers
that can produce this type of info so it's extraneous in the validation
layers.

7 years agotoolchain: Fix core count in script for macOS
Cody Northrop [Fri, 2 Dec 2016 16:28:42 +0000 (09:28 -0700)]
toolchain: Fix core count in script for macOS

This could also switch to using gnproc from brew if needed in the future.

7 years agotoolchain: Fix update script for macOS
Cody Northrop [Fri, 2 Dec 2016 16:10:20 +0000 (09:10 -0700)]
toolchain: Fix update script for macOS

readlink -f is not supported on macOS
brew is already a requirement to build for macOS

7 years agotests: Update layer doc to reflect recent added checks
Karl Schultz [Fri, 2 Dec 2016 17:19:29 +0000 (10:19 -0700)]
tests: Update layer doc to reflect recent added checks

7 years agoexternals: Update glslang and spirv-tools
Mark Young [Fri, 2 Dec 2016 16:29:43 +0000 (09:29 -0700)]
externals: Update glslang and spirv-tools

Update glslang and spirv-tools repo commit IDs to the latest version.
spirv-headers was still at the latest, and therefore, didn't need to
be updated.

Change-Id: I9165868cc43d077e2936ed53fdd7dd0171844453

7 years agobuild: Removed obsolete ICD refs from android script
Mark Lobodzinski [Thu, 1 Dec 2016 21:51:56 +0000 (14:51 -0700)]
build: Removed obsolete ICD refs from android script

Change-Id: I38ddea801f3efb887eac9da469428d3476f7adc3

7 years agobuild: Removed ICD dirs from gitignore
Mark Lobodzinski [Thu, 1 Dec 2016 21:50:29 +0000 (14:50 -0700)]
build: Removed ICD dirs from gitignore

Change-Id: I4e15f423964d101b1c0518bda9305f84b9ed35f9

7 years agobuild: Updated BUILD.md for ICD removal/whitespace
Mark Lobodzinski [Thu, 1 Dec 2016 21:49:27 +0000 (14:49 -0700)]
build: Updated BUILD.md for ICD removal/whitespace

Change-Id: Iebd6eeadeb31c0947314c388043a21d11a900b26

7 years agoscripts: Remove ICD reference from build script
Mark Lobodzinski [Thu, 1 Dec 2016 21:47:23 +0000 (14:47 -0700)]
scripts: Remove ICD reference from build script

Change-Id: Iaa32b64423a7df3e8533d3fcd3a38f07e4a94051

7 years agolayers: remove unnecessary log_msg
Jeremy Hayes [Thu, 1 Dec 2016 18:39:42 +0000 (11:39 -0700)]
layers: remove unnecessary log_msg

Change-Id: I2ea237e46b028c0d2afa3a0f559eef42d8639a25

7 years agotests: Update object_tracker tests/DB
Karl Schultz [Wed, 30 Nov 2016 19:36:01 +0000 (12:36 -0700)]
tests: Update object_tracker tests/DB

For the tests that trigger object_tracker messages with
error enums/messages:
- Update DB with names of these tests
- Update tests to use the error enum message strings

Change-Id: I75a122fe4864c798fa8401340c64dc5e9ed6dcb7

7 years agotests: Update VU database for obj tracker tests
Karl Schultz [Wed, 30 Nov 2016 19:00:46 +0000 (12:00 -0700)]
tests: Update VU database for obj tracker tests

Change the testname column from Unknown to None for all
error enums referenced in object tracker.  This is a good
starting point because there are vitually no tests explicitly
written to test object tracker checks.
A later commit will update the few rows in the database
with the names of the tests that currently exist.

Change-Id: Ifffb5ee09a74e8e2b7b8b2e70e7e9f9b4d12afbc

7 years agolayers: Track precision for interface block members too
Chris Forbes [Tue, 29 Nov 2016 23:55:40 +0000 (12:55 +1300)]
layers: Track precision for interface block members too

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Require precision to match on interface between stages
Chris Forbes [Tue, 29 Nov 2016 23:45:00 +0000 (12:45 +1300)]
layers: Require precision to match on interface between stages

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Track RelaxedPrecision decoration of interface variables
Chris Forbes [Tue, 29 Nov 2016 23:40:54 +0000 (12:40 +1300)]
layers: Track RelaxedPrecision decoration of interface variables

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: OT: null out handles in pipeline creation if we dont call down
Chris Forbes [Wed, 30 Nov 2016 01:56:52 +0000 (14:56 +1300)]
layers: OT: null out handles in pipeline creation if we dont call down

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Apply previous fixes to CV CreateComputePipelines
Chris Forbes [Wed, 30 Nov 2016 01:44:03 +0000 (14:44 +1300)]
layers: Apply previous fixes to CV CreateComputePipelines

Compute pipeline creation can partially fail in the same way as graphics
pipeline creation. Handle it exactly the same way in CV.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Don't make a mess of partial pipeline creation failure
Chris Forbes [Wed, 30 Nov 2016 01:41:35 +0000 (14:41 +1300)]
layers: Don't make a mess of partial pipeline creation failure

Previously we'd end up with a VK_NULL_HANDLE -> junk PIPELINE_STATE
mapping, which confuses other things.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: CV: clean up Create*Pipelines
Chris Forbes [Wed, 30 Nov 2016 01:39:24 +0000 (14:39 +1300)]
layers: CV: clean up Create*Pipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: s/skip_call/skip/ in CV CreateComputePipelines
Chris Forbes [Wed, 30 Nov 2016 01:35:52 +0000 (14:35 +1300)]
layers: s/skip_call/skip/ in CV CreateComputePipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: CV: null out pipelines on validation failure
Chris Forbes [Wed, 30 Nov 2016 01:26:50 +0000 (14:26 +1300)]
layers: CV: null out pipelines on validation failure

If we don't call down the chain, creation of all the pipelines failed.
Callers expect to inspect the handles for partial success -- don't leave
uninitialized junk here.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Switch sense of logic in CV CreateGraphicsPipelines
Chris Forbes [Wed, 30 Nov 2016 01:24:32 +0000 (14:24 +1300)]
layers: Switch sense of logic in CV CreateGraphicsPipelines

No functional change.
Drop the explicit unlocks -- this happens as the unique_lock goes out of
scope anyway.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoloader: const fixes
Frank Henigman [Fri, 25 Nov 2016 01:02:09 +0000 (20:02 -0500)]
loader: const fixes

Make the 'source_override' parameter of loader_get_manifest_files() const.
The const was removed in 74d013a5, seemingly for convenience of calling
loader_free_getenv(), not because it was incorrect.

Give loader_free_getenv() the same signature in all implementations.

Fix a memory leak where it was possible to exit loader_get_manifest_files()
without calling loader_free_getenv().

Don't pass a potentially NULL value to loader_log().

7 years agoloader: Modify conversion of real_icd_surfaces
Mark Young [Thu, 1 Dec 2016 17:42:21 +0000 (10:42 -0700)]
loader: Modify conversion of real_icd_surfaces

This is the more appropriate way to cast the real_icd_surfaces
values than downcasting the pointer.

This is based off of Jamie Madill's changes.

Change-Id: If63fb95994a92199d65fd3297bb092564446af97

7 years agoloader: Fix cast warning in wsi.c
Jamie Madill [Wed, 30 Nov 2016 17:47:45 +0000 (12:47 -0500)]
loader: Fix cast warning in wsi.c

In 32-bits, this was downcasting a VkSurfaceKHR and comparing it
with NULL. Since VkSurfaceKHR is defined as a uint64_t, it's better
to cast the NULL to a VkSurfaceKHR to avoid a warning.

7 years agoloader: avoid DEFAULT_VK_LAYERS_PATH redefinition.
Frank Henigman [Thu, 24 Nov 2016 22:47:26 +0000 (17:47 -0500)]
loader: avoid DEFAULT_VK_LAYERS_PATH redefinition.

Commit df441f60 did this in the win32 section of the file,
but missed the linux section.  This commit fixes the linux section.

7 years agoloader: spell 'separator' correctly
Frank Henigman [Fri, 25 Nov 2016 03:15:20 +0000 (22:15 -0500)]
loader: spell 'separator' correctly

PATH_SEPERATOR -> PATH_SEPARATOR

7 years agoscripts:Update unique error enums as of 11/29/16
Tobin Ehlis [Tue, 29 Nov 2016 21:44:56 +0000 (14:44 -0700)]
scripts:Update unique error enums as of 11/29/16

This was a beast of an update. Reconfiguration in the spec
caused various section numbers to move which created a need to remap
a ton of ids.

Also a large bulk of new valid usage blocks for new extensions as
well as legitimate addition and subtraction of core valid usage
statements.

I'd focus some time on updating the script to handle these cases
better but now that Khronos has agreed to integrating the ids into the
spec itself, that will eliminate the need for the updates once the
integration is complete so I'll focus my efforts there going fwd and
hopefully only have to perform 1 or 2 more of these updates.

That resulted in the following cmd line to do the update:

python spec.py -update -remap 182-166,85:273-252,18:301-270,49:\
397-368,15:919-768:2076-1600,61:2340-1665,13:697-1719:2137-1794,30:\
2169-1824,7:2176-1834:2178-1831,3:2181-1836,4:2185-1843:2187-1840,3:\
2190-1844,39:2233-1883,40:2284-1923,39:2324-1962,16:2348-1978:\
2354-1979:2368-1980,7:2375-1988:2376-1990:2377-1998,24:2418-2043,12:\
2402-2022,15:2417-2040:167-2059:268-2067,5:291-2072,10:2355-1679,2:\
2357-1683,11:2229-2327,4:2401-2343:2273-2331,11:2323-2342

7 years agotoolchain: Switch back to tracked revisions on Android
Cody Northrop [Tue, 29 Nov 2016 18:59:00 +0000 (11:59 -0700)]
toolchain: Switch back to tracked revisions on Android

This allows us to recreate the entire LVL package from any point in history.
We continue to pull known good revisions from AOSP.

7 years agomisc: Make update external bat not clean build
Lenny Komow [Tue, 29 Nov 2016 21:24:39 +0000 (14:24 -0700)]
misc: Make update external bat not clean build

Change-Id: Ief2218fb83fb1916b8fcabe60f48893e9393121e

7 years agolayers: Updated error enum DB for KHR_DISPLAY mod
Mark Lobodzinski [Tue, 29 Nov 2016 20:24:33 +0000 (13:24 -0700)]
layers: Updated error enum DB for KHR_DISPLAY mod

Change-Id: I988a5975647b337b057fe79e92ec74c746dcde9d

7 years agolayers: Complete support for VK_KHR_Display ext
Norbert Nopper [Fri, 25 Nov 2016 06:55:13 +0000 (07:55 +0100)]
layers: Complete support for VK_KHR_Display ext

Fixed using display extension only crash.
Added vkGetDisplayPlaneCapabilitiesKHR.
Fixes, that unique objects works for display extension.

Change-Id: I66727a430b9d55bfa40fdddc884f40c91aa29f11

7 years agolayers: Revert some include order changes in PV
Chris Forbes [Mon, 28 Nov 2016 20:49:19 +0000 (09:49 +1300)]
layers: Revert some include order changes in PV

Windows build is cranky about this -- if things are done in the wrong
order, we can end up with some symbols in the dispatch table being
mangled to their W-suffixed versions thanks to windows.h madness.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move surface format tracking to CV
Chris Forbes [Fri, 25 Nov 2016 03:37:41 +0000 (16:37 +1300)]
layers: Move surface format tracking to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Note swapchain replacement rules may be out of date
Chris Forbes [Fri, 25 Nov 2016 03:17:28 +0000 (16:17 +1300)]
layers: Note swapchain replacement rules may be out of date

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move present modes tracking to CV
Chris Forbes [Fri, 25 Nov 2016 00:17:36 +0000 (13:17 +1300)]
layers: Move present modes tracking to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove some noise from PV, add to authors
Chris Forbes [Thu, 24 Nov 2016 01:52:24 +0000 (14:52 +1300)]
layers: Remove some noise from PV, add to authors

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Fix broken use of phys device as device dispatch key
Chris Forbes [Thu, 24 Nov 2016 01:45:16 +0000 (14:45 +1300)]
layers: Fix broken use of phys device as device dispatch key

This made no sense. The physical device's dispatch key is the same as
the instance.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: move device dispatch table into layer_data in PV
Chris Forbes [Thu, 24 Nov 2016 01:44:17 +0000 (14:44 +1300)]
layers: move device dispatch table into layer_data in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move dispatch table into instance_layer_data
Chris Forbes [Thu, 24 Nov 2016 01:15:23 +0000 (14:15 +1300)]
layers: Move dispatch table into instance_layer_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: get rid of instance_extension_map in PV
Chris Forbes [Wed, 23 Nov 2016 23:42:33 +0000 (12:42 +1300)]
layers: get rid of instance_extension_map in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: split PV layer data for device and instance
Chris Forbes [Wed, 23 Nov 2016 22:35:31 +0000 (11:35 +1300)]
layers: split PV layer data for device and instance

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove extra 'no depth/stencil attachments exist' error
Chris Forbes [Mon, 28 Nov 2016 05:07:18 +0000 (18:07 +1300)]
layers: Remove extra 'no depth/stencil attachments exist' error

This is now covered by other fairly clear errors.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove bogus CreateSharedSwapchainsKHR impl in swapchain
Chris Forbes [Mon, 28 Nov 2016 02:25:34 +0000 (15:25 +1300)]
layers: Remove bogus CreateSharedSwapchainsKHR impl in swapchain

This wasn't even wired up. Parameter validation also now does these
checks.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: GH1131, Add error enums to object tracker
Mike Schuchardt [Fri, 11 Nov 2016 23:10:51 +0000 (16:10 -0700)]
layers: GH1131, Add error enums to object tracker

Added error enums to object_tracker.cpp and updated
vk_validation_error_database.txt check_implemented column to match

Change-Id: Icdd08ef50316be023b218b0b36a997a8a61e2a1e

7 years agolayers: Remove handrolled clipped / sharingMode validation from
Chris Forbes [Sun, 27 Nov 2016 22:25:19 +0000 (11:25 +1300)]
layers: Remove handrolled clipped / sharingMode validation from
swapchain

PV now does this

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Tweak PV generator to track newly introduced enums separately
Chris Forbes [Sun, 27 Nov 2016 22:14:17 +0000 (11:14 +1300)]
layers: Tweak PV generator to track newly introduced enums separately

Within each feature block, we need to generate a helper value for 'all
valid bits'. This worked fine; however, across features blocks an enum
may be used -- for example, core eums used in extension functions.

Previously, we'd clear out all the enums we know about at the feature
boundary, which left various fields unvalidated.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agobuild: Fix cube.cpp build issues for Wayland
Karl Schultz [Thu, 24 Nov 2016 00:15:17 +0000 (17:15 -0700)]
build: Fix cube.cpp build issues for Wayland

Fixes #1190

Change-Id: Iefb03b803b049a1634ae2075178afbd3dee691bd

7 years agoscripts:Mark 639 unimplemented in the database
Tobin Ehlis [Wed, 23 Nov 2016 20:10:13 +0000 (13:10 -0700)]
scripts:Mark 639 unimplemented in the database

I believe VALIDATION_ERROR_00639 was marked as implemented because the
case is handled in parameter_checker, but the code itself has not been
updated so I'm switching it back to 'N' in the database for now until
the error code is actually updated.

7 years agoscripts:Add exception for error 1790
Tobin Ehlis [Wed, 23 Nov 2016 20:08:01 +0000 (13:08 -0700)]
scripts:Add exception for error 1790

VALIDATION_ERROR_01790 is a special case that provides an exception
for valid usage when VK_AMD_negative_viewport_height extension is
enabled. There's no actual error to flag here, but the code does
handle the exception case correctly so adding it as an exception
in the stat script as well to reflect that it's implemented.

7 years agotests:Update AllocDescriptorFromEmptyPool
Tobin Ehlis [Wed, 23 Nov 2016 19:52:48 +0000 (12:52 -0700)]
tests:Update AllocDescriptorFromEmptyPool

Update the AllocDescriptorFromEmptyPool test with a new case where
we attempt to allocate more sets than available.
Update the error checking for both cases to use the unique error enum
instead of string matching.

Also update database file to reflect new test case.

7 years agolayers:Unique enums for vkAllocateDescriptorSets
Tobin Ehlis [Wed, 23 Nov 2016 19:23:32 +0000 (12:23 -0700)]
layers:Unique enums for vkAllocateDescriptorSets

Add appropriate unique error enums to the code for allocating
descriptor sets from a pool without enough sets left and without
enough descriptors left.
These were already flagged as implemented but the enums hadn't been
added to the code.

7 years agolayers:Separate push constant max size errors
Tobin Ehlis [Wed, 23 Nov 2016 17:47:26 +0000 (10:47 -0700)]
layers:Separate push constant max size errors

There's separate valid usage language regarding the relationship
between a device's maxPushConstantsSize and the size and offset of
VkPushConstantRange. Splitting up the validation callbacks to flag
these two errors separately along with their respective unique error
enums.

7 years agolayers:Separate two error checks
Tobin Ehlis [Wed, 23 Nov 2016 16:41:12 +0000 (09:41 -0700)]
layers:Separate two error checks

There's separate valid usage language for VkPushConstantRange size
being non-zero and being multiple of 4. Breaking the validation
callbacks to flag these two errors separately along with their
respective unique error enums.

7 years agolayers: Handle partial failure in vkCreate*Pipelines
Maciej Jesionowski [Wed, 23 Nov 2016 09:44:34 +0000 (10:44 +0100)]
layers: Handle partial failure in vkCreate*Pipelines

This applies to vkCreate*Pipelines creating multiple objects with
a single call.

Creation of *some* pipelines may fail and an error code will be
returned. In this case invalid handles will be set to NULL, and
the remaining handles must be managed properly.

7 years agoexternals: Update glslang and spriv-tools revision
Mark Young [Wed, 23 Nov 2016 22:23:32 +0000 (15:23 -0700)]
externals: Update glslang and spriv-tools revision

Update glslang to commit 1c573fb and spirv-tools to commit
6fa6a37.

Change-Id: I22692c213fdc1bada0ee14f110373b1d8c76b043

7 years agolayers: Fix windows build warnings
Mark Lobodzinski [Wed, 23 Nov 2016 18:28:30 +0000 (11:28 -0700)]
layers: Fix windows build warnings

Change-Id: Ifead20bae1e3c4f237ffc6f49422f20621b6349e

7 years agotests: GH1182, Add buffer/image copy test cases
Mark Lobodzinski [Tue, 22 Nov 2016 21:48:36 +0000 (14:48 -0700)]
tests: GH1182, Add buffer/image copy test cases

Added cases to MiscImageLayerTest and updated the VE database.

Change-Id: Ic76d9c5aafc1532cc761c92feaffbf5745e86f93

7 years agolayers: GH1182, Validate VkBufferImageCopy depth
Mark Lobodzinski [Tue, 22 Nov 2016 21:46:39 +0000 (14:46 -0700)]
layers: GH1182, Validate VkBufferImageCopy depth

Validate that for buffer<-->image copies that (for 1D and 2D image
types) the offset is 0 and the depth is 1.

Change-Id: I8114ce78be926411a2938148bf4c60d86006f8a4

7 years agolayers: Removed obsolete CV validation checks
Mark Lobodzinski [Tue, 22 Nov 2016 18:40:48 +0000 (11:40 -0700)]
layers: Removed obsolete CV validation checks

Removed obsolete CopyImageToBuffer/CopyBufferToImage checks
that output errors if the layerCount was zero and removed
corresponding LVT.

Change-Id: I0a2bada5f896c30fb13cad8a4b3fe157d6d788d3

7 years agolayers: Moved image/buffer aspect check
Mark Lobodzinski [Tue, 22 Nov 2016 18:18:46 +0000 (11:18 -0700)]
layers: Moved image/buffer aspect check

Moved this validation check into a routine shared by both
copyImageToBuffer and copyBufferToImage.

Change-Id: If53581cb7dd847492f52b9c2c95b0be25654074f

7 years agolayers: Update ValidateBufferImageCopyData err enums
Mark Lobodzinski [Tue, 22 Nov 2016 17:44:37 +0000 (10:44 -0700)]
layers: Update ValidateBufferImageCopyData err enums

Updated enums and database.

Change-Id: If04fa10a233ffab9a1622a6bcdaad803de9c84a6

7 years agolayers: Update BufferImageCopy var names for style
Mark Lobodzinski [Tue, 22 Nov 2016 16:37:10 +0000 (09:37 -0700)]
layers: Update BufferImageCopy var names for style

Change-Id: If39d85522b27e571ab3e7c0e9fb8cc4e63ac0cf9

7 years agolayers: Update call structure for BufferImageCopies
Mark Lobodzinski [Tue, 22 Nov 2016 16:33:23 +0000 (09:33 -0700)]
layers: Update call structure for BufferImageCopies

Converted over to PreCallValidate structure for CmdCopyImageToBuffer
and CmdCopyBufferToImage.

Change-Id: I9e68376bbcaa4c7058eb820b55125c524983b1be

7 years agolayers: Clarify BufferImageCopy validation name
Mark Lobodzinski [Tue, 22 Nov 2016 16:17:10 +0000 (09:17 -0700)]
layers: Clarify BufferImageCopy validation name

This routine was used in both ImageToBuffer and BufferToImage but
the name was misleading.

Change-Id: I8ff99cff1757dbaa888cf543451e6a3a4872b003

7 years agolayers: Fix BindImageMemory typo
Mark Lobodzinski [Tue, 22 Nov 2016 22:29:38 +0000 (15:29 -0700)]
layers: Fix BindImageMemory typo

Change-Id: I77359a73635d4cdae066255e774a096a9b643a3e

7 years agolayers:Avoid copy of cmd buffer set
Tobin Ehlis [Mon, 21 Nov 2016 22:23:51 +0000 (15:23 -0700)]
layers:Avoid copy of cmd buffer set

No need to copy the entire unordered_set<GLOBAL_CB_NODE *> in
invalidateCommandBuffers(). Change it to take a "const &" instead.

7 years agolayers:Use ptr to cmd buffer object in log_msg
Tobin Ehlis [Mon, 21 Nov 2016 22:15:52 +0000 (15:15 -0700)]
layers:Use ptr to cmd buffer object in log_msg

This new error was incorrectly referencing the ptr to the cb_node,
which is internal validation state, instead of the cmd buffer object
that the node wraps.

7 years agoscripts: Improve paths in update_ext_resources.sh
Mark Lobodzinski [Tue, 22 Nov 2016 15:02:59 +0000 (08:02 -0700)]
scripts: Improve paths in update_ext_resources.sh

Script was relying on $PWD for determining the current path which
is unreliable in some situations. Updated to a more robust method
allowing spaces in paths.

Change-Id: Ibdb780c479ad7fa831d113e445cc598830806806

7 years agobuild: Add check for spirv-headers revision file
Mark Lobodzinski [Fri, 18 Nov 2016 20:48:44 +0000 (13:48 -0700)]
build: Add check for spirv-headers revision file

Change-Id: I9bc225275c4d890f44c7ab4dd2076b981778ac20