platform/upstream/Vulkan-Tools.git
7 years agoloader: Fix validation error
Courtney Goeltzenleuchter [Wed, 21 Dec 2016 23:24:34 +0000 (16:24 -0700)]
loader: Fix validation error

The string length validation will not detect strings
that exceed the max length.
For example, when i = max_length-1 and utf8[i] is a valid
character (>= 0x20 and < 0x7f) no error is thrown and
the next iteration will end the loop.
This change extends the loop and the if check to
catch this issue.

7 years agoloader: Fix Clang warning in table_ops.h
Jamie Madill [Wed, 21 Dec 2016 18:09:59 +0000 (13:09 -0500)]
loader: Fix Clang warning in table_ops.h

This fixes the following warning:

error: cast between incompatible calling conventions 'cdecl' and 'stdcall'; calls through this pointer may abort at runtime

This was revelated by building the loader with Clang on Windows in
32-bits mode. In 64-bits this warning doesn't appear, presumably due
to different calling conventions.

Change-Id: I7018be38859695436487f582f515bfb08ca28e06

7 years agolayers: Add missing <string> dependency
Michael Jurka [Mon, 19 Dec 2016 15:31:43 +0000 (16:31 +0100)]
layers: Add missing <string> dependency

Change-Id: Ib3c74be1e1d3c168720aaef4dafed1a6a04c7d9b

7 years agocmake: speed up the build
Jeremy Hayes [Tue, 20 Dec 2016 22:20:25 +0000 (15:20 -0700)]
cmake: speed up the build

Remove old dependencies from cmake, which was causing long build times
even when nothing had changed.

Change-Id: Ie162606b54352306ae6400aa18e942d8cffb7782

7 years agolayers: Update Valid Usage enums (VL-61, partial)
Mike Weiblen [Tue, 20 Dec 2016 03:41:58 +0000 (20:41 -0700)]
layers: Update Valid Usage enums (VL-61, partial)

Update Valid Usage enums in a subsection of core_validation.cpp by
adding a parameter to helper functions insideRenderPass() and
outsideRenderPass().  Update that VU status in the database.

Fix a couple other typos.

This partially implements Jira task VL-61.

Change-Id: I8d1fe99a237c4cd22216a1236f47f72fffd4fd00

7 years agoscripts: Remove enum/struct_validate_helper funcs
Mark Lobodzinski [Thu, 15 Dec 2016 21:14:28 +0000 (14:14 -0700)]
scripts: Remove enum/struct_validate_helper funcs

From vk_helper.py.  These were not used in the codebase.

Change-Id: I3cc80e34eb831122ce8c54dbc004a003e02a47fe

7 years agolayers: Remove unused header from threading/PV
Mark Lobodzinski [Thu, 15 Dec 2016 20:54:20 +0000 (13:54 -0700)]
layers: Remove unused header from threading/PV

vk_struct_validate_helper.h not used.

Change-Id: I19757e96900e0500f4db9355c38a497936706bba

7 years agolayers: Remove redundant CreateRenderpass checks
Mark Lobodzinski [Thu, 15 Dec 2016 20:15:12 +0000 (13:15 -0700)]
layers: Remove redundant CreateRenderpass checks

From the image layer.  The check for valid attachment layouts
and load/storeOps already performed in the parameter validation
layer. Also removed now-dead support function and unneeded
header file.

Change-Id: I4f1ad1ba899a712ba21ae32e3b3e2d947b640f4d

7 years agolayers: Remove enum_validate_helper from PV
Mark Lobodzinski [Thu, 15 Dec 2016 20:06:55 +0000 (13:06 -0700)]
layers: Remove enum_validate_helper from PV

A single call was used, replaced with an internal generated function
call and removed the old include. Added note with validation error
ID.

Change-Id: Ied88daf5bab003269c44ef2bef8b2eb81a9e9094

7 years agolayers: Remove unused threadchecker header file
Mark Lobodzinski [Wed, 14 Dec 2016 21:34:06 +0000 (14:34 -0700)]
layers: Remove unused threadchecker header file

Change-Id: I7906b82c1c9c0397113508da74348ea28fe21add

7 years agolayers: Remove cmds vector from GLOBAL_CB_NODE
Chris Forbes [Mon, 19 Dec 2016 22:33:11 +0000 (11:33 +1300)]
layers: Remove cmds vector from GLOBAL_CB_NODE

Now that cmd buffer printing has been removed, the only use of this is
to distinguish between cmd buffers invalidated before and after a
complete recording. This should eventually be folded into the state
machine, but removing the vector of cmds is a first step.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Fix size_t-int cast warning in descriptor_sets
Jamie Madill [Mon, 19 Dec 2016 20:59:18 +0000 (15:59 -0500)]
layers: Fix size_t-int cast warning in descriptor_sets

Discovered in VS2015.

Change-Id: I2a42209a9ee9bd0e8f3da21c0f1a613315d5a6ce

7 years agolayers:Clean up descriptor set layout on destroy
Tobin Ehlis [Mon, 19 Dec 2016 18:16:14 +0000 (11:16 -0700)]
layers:Clean up descriptor set layout on destroy

Erase destroyed descriptorSetLayout from map.

7 years agolayers:Add validation flag for DestroyBuffer()
Tobin Ehlis [Mon, 19 Dec 2016 17:57:29 +0000 (10:57 -0700)]
layers:Add validation flag for DestroyBuffer()

7 years agolayers:Refactor DestroyBuffer()
Tobin Ehlis [Mon, 19 Dec 2016 17:53:58 +0000 (10:53 -0700)]
layers:Refactor DestroyBuffer()

Update DestroyBuffer() to use Pre/Post pattern. All of the state
updates are now only performed if call down chain is not skipped.

7 years agolayers:Add GetQueryPoolResults() validation flag
Tobin Ehlis [Mon, 19 Dec 2016 17:20:43 +0000 (10:20 -0700)]
layers:Add GetQueryPoolResults() validation flag

7 years agolayers:Refactor GetQueryPoolResults() to pre/post
Tobin Ehlis [Mon, 19 Dec 2016 17:11:50 +0000 (10:11 -0700)]
layers:Refactor GetQueryPoolResults() to pre/post

Refactor GetQueryPoolResults() to use Pre/Post pattern. Pulled all of
the validation into PreCallValidate* function. There was only one
state update occuring so pulled that code into PostCallRecord function.

7 years agolayers:Add validation flag for DestroyQueryPool()
Tobin Ehlis [Fri, 16 Dec 2016 22:02:44 +0000 (15:02 -0700)]
layers:Add validation flag for DestroyQueryPool()

7 years agolayers:Refactor DestroyQueryPool
Tobin Ehlis [Fri, 16 Dec 2016 21:56:41 +0000 (14:56 -0700)]
layers:Refactor DestroyQueryPool

Refactor DestroyQueryPool() to use Pre/Post pattern. This moves the map
update to after the call down the chain which is where it should live
so that it only executes when validation passes.

7 years agolayers:Add validation flag for DestroySemaphore()
Tobin Ehlis [Thu, 15 Dec 2016 21:36:56 +0000 (14:36 -0700)]
layers:Add validation flag for DestroySemaphore()

7 years agolayers:Add validation flag for DestroyFence()
Tobin Ehlis [Thu, 15 Dec 2016 21:35:21 +0000 (14:35 -0700)]
layers:Add validation flag for DestroyFence()

7 years agolayers:Refactor DestroySemaphore
Tobin Ehlis [Thu, 15 Dec 2016 21:32:22 +0000 (14:32 -0700)]
layers:Refactor DestroySemaphore

Refactor DestroySemaphore() to use Pre/Post pattern.

7 years agolayers:Refactor DestroyFence
Tobin Ehlis [Thu, 15 Dec 2016 21:18:39 +0000 (14:18 -0700)]
layers:Refactor DestroyFence

Refactor DestroyFence() to use Pre/Post pattern.

7 years agolayers:Rename QUEUE_NODE to QUEUE_STATE
Tobin Ehlis [Thu, 15 Dec 2016 18:37:02 +0000 (11:37 -0700)]
layers:Rename QUEUE_NODE to QUEUE_STATE

7 years agolayers:Refactor GetDeviceQueue
Tobin Ehlis [Thu, 15 Dec 2016 18:34:33 +0000 (11:34 -0700)]
layers:Refactor GetDeviceQueue

Move the state update for GetDeviceQueue into Post* function.

7 years agolayers: Make generators Python 2.7-compatible.
Jamie Madill [Tue, 13 Dec 2016 22:02:57 +0000 (17:02 -0500)]
layers: Make generators Python 2.7-compatible.

ANGLE and Chromium are fixed with Python 2.7, so we need to update
the generator to something that is compatible with 2.7 and 3.2.
The unicode handling is different between the two, so switch
scripts to use unicode literals (u'txt' instead of 'txt').

Change-Id: I1570a45e302a09bb1f99eabc84f50b2ec599944d

7 years agolayers: Update VU database for scissor/vp checks
Mark Lobodzinski [Sun, 18 Dec 2016 16:42:23 +0000 (09:42 -0700)]
layers: Update VU database for scissor/vp checks

Updated status for 1430-1434444.

Change-Id: Ie31ff617dd30b1ef3850398ef100e874c3c1acb4

7 years agolayers: Add scissor/viewport count checks
Mark Lobodzinski [Sun, 18 Dec 2016 16:43:01 +0000 (09:43 -0700)]
layers: Add scissor/viewport count checks

Change-Id: I35977325f662d3e4df84d02d2eefa4383fae9c05

7 years agolayers: GH1261, Incorrect ParamValidation error msgs
Mark Lobodzinski [Thu, 15 Dec 2016 22:49:59 +0000 (15:49 -0700)]
layers: GH1261, Incorrect ParamValidation error msgs

Out-of-date dynamic state errors incorrectly specified that viewport
or scissor counts had to be greater than zero 'if the dynamic state
bit was not specified'. Removed this confusing condition.

Change-Id: Idf206e8671b04979b7a0f5e9597e4a7aec50333f

7 years agoscripts:Update unique error enums as of 12/19/16
Tobin Ehlis [Mon, 19 Dec 2016 13:47:53 +0000 (06:47 -0700)]
scripts:Update unique error enums as of 12/19/16

Six updates and some new valid usages.

Cmd to do the update was:

python spec.py -update -remap 127-132:128-141:1465-1263:2168-1646,2:2373-1965

7 years agoheader: Update to Vulkan version 1.0.38
Mark Lobodzinski [Mon, 19 Dec 2016 16:41:16 +0000 (09:41 -0700)]
header: Update to Vulkan version 1.0.38

- 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 38
- header:  Updated vulkan.hpp

Change-Id: Id0f83c248169bd8b1e03a14c90a5f9b1661cfcc7

7 years agolayers: Update error enum database
Mark Lobodzinski [Fri, 16 Dec 2016 20:20:57 +0000 (13:20 -0700)]
layers: Update error enum database

Signified coverage, LVTs for a handful of checks.

Change-Id: I0e0ac413f9b76793b325b96ef030ce4b90656315

7 years agolayers: Remove redundant CV checks
Mark Lobodzinski [Fri, 16 Dec 2016 20:06:41 +0000 (13:06 -0700)]
layers: Remove redundant CV checks

These CreateGraphicsPipeline checks are covered in
parameter_validation.

Change-Id: I4c273aa2cd88791d2f6cfa7a5b6c48e629706a85

7 years agolayers: Move new check into parameter validation
Mark Lobodzinski [Fri, 16 Dec 2016 20:08:00 +0000 (13:08 -0700)]
layers: Move new check into parameter validation

Added an old CreateGraphicsPipelines CV check into PV.

Change-Id: I68310859e4ffc926502549b46a2fcc82af0e3538

7 years agolayers:Refactor consecutive descriptor count
Tobin Ehlis [Thu, 15 Dec 2016 14:51:20 +0000 (07:51 -0700)]
layers:Refactor consecutive descriptor count

Refactor GetConsecutiveDescriptorCountFromBinding() to use the fact
that bindings are now stored in-order. No longer need to chase binding
order through the map, just get current binding index and then parse
rest of the binding array in-order.

7 years agolayers:Store DescriptorSetLayout class in-order
Tobin Ehlis [Mon, 12 Dec 2016 22:59:34 +0000 (15:59 -0700)]
layers:Store DescriptorSetLayout class in-order

Sort the bindings in the internal data structure of the
DescriptorSetLayout class so that they're stored in binding order.

This commit keeps the interface and mapping structures the same.
Further commits will take more use of the fact that layout is now
stored in binding order.

7 years agolayers: Remove check for nonCoherentAtomSize
Tony Barbour [Thu, 15 Dec 2016 19:12:29 +0000 (12:12 -0700)]
layers: Remove check for nonCoherentAtomSize

It's come to our attention that this check, while matching the spec,
may be a little overzealous and could cause a lot of existing code
to start failing validation.  We plan to address this with the spec
working group, and we're removing the check for now.

Change-Id: I7159b72fe0a2e81bf75bccddc9939da7086992b7

7 years agoloader: Fix Clang warnings.
Jamie Madill [Wed, 14 Dec 2016 22:21:43 +0000 (17:21 -0500)]
loader: Fix Clang warnings.

error: equality comparison with extraneous parentheses
error: comparison of array equal to a null pointer is always false
error: using namespace directive in global context in header

Change-Id: I52b5d9062653b9429b9c42b40eca54e71b6d794b

7 years agolayers: Update Valid Usage enums (VL-70)
Mike Weiblen [Sat, 10 Dec 2016 00:36:28 +0000 (17:36 -0700)]
layers: Update Valid Usage enums (VL-70)

Reviewed the following 5 files' invocation of log_msg()
for opportunities to update for Valid Usage enums.
layers/threading.h
layers/vk_layer_logging.h
layers/descriptor_sets.cpp
layers/swapchain.cpp
layers/unique_objects.cpp

Split some composite checks apart, to better match the meaning of
individual VUs.

Added VU enums to a new file, and expanded the stats collection
script to include the new file.

Changed some placeholder uses of msgCode=="0" to
"VALIDATION_ERROR_UNDEFINED".
(0 is the value of the enum VALIDATION_ERROR_00000 which was misleading)

When Valid Usage enums were referenced, also updated the VU database.

Tweak #include order for Windows, to undo clang-format reordering.

Completes Jira task VL-70.

Change-Id: I550922b194e733f41316ae493098f70a54cbd64e

7 years agolayers: PR1276, Fix Clang compiler warnings
Jamie Madill [Thu, 15 Dec 2016 14:35:36 +0000 (09:35 -0500)]
layers: PR1276, Fix Clang compiler warnings

fixes
- error: using namespace directive in global context in header
- error: comparison of integers of different signs: 'uint32_t'
         (aka 'unsigned int') and 'int'

Change-Id: If56d5b9c33f0de813fbb67120650a887eb9368b0

7 years agolayers: Updated val error database with new checks
Mark Lobodzinski [Thu, 15 Dec 2016 14:42:57 +0000 (07:42 -0700)]
layers: Updated val error database with new checks

Updated status, applicable tests for errors 00669 and 02160.

Change-Id: Ia52d31f00820882fe2837928b6ab1702c57f26f5

7 years agolayers: Updated error enums for sparse_binding checks
Mark Lobodzinski [Wed, 14 Dec 2016 20:37:04 +0000 (13:37 -0700)]
layers: Updated error enums for sparse_binding checks

Change-Id: Ib76fcb782a54edf6e53d17fed0bcb25eecca22d9

7 years agolayers: GH1260, SPARSE_BINDING_BIT validation
Maciej Jesionowski [Wed, 14 Dec 2016 10:01:21 +0000 (11:01 +0100)]
layers: GH1260, SPARSE_BINDING_BIT validation

- add error message for size (error 00663)
- add error messages for buffer and image flags (error 00669 and 02160)
- remove obsolete TODOs
- fix a typo in vkCreateImage validation, add error code

Change-Id: I50d6111c4aed1b348119a9664ec299f7c2cb7884

7 years agolayers: Fix object tracker memory leak
Mike Schuchardt [Tue, 13 Dec 2016 21:04:57 +0000 (14:04 -0700)]
layers: Fix object tracker memory leak

Upon repeated calls, GetDisplayPlaneSupportedDisplaysKHR will call
CreateObject multiple times with the same VkDisplayKHR handle.  Add a
check in CreateObject for an existing tracking object before allocating
a new one.

Change-Id: I50f634fbe8b7e69edbfeb4e6f0c050b7fccaa6e4

7 years agoscripts: Add quiet option option to vk_helper.py.
Jamie Madill [Wed, 14 Dec 2016 18:05:05 +0000 (13:05 -0500)]
scripts: Add quiet option option to vk_helper.py.

Chromium typically does not allow build steps to output anything
during a build. This option allows for ANGLE to suppress normal
script output during execution.

Change-Id: I72695a80a5f25e9a2cf3f01832f3de63ca95b091

7 years agolayers: Complain in AcquireNextImageKHR if the swapchain is replaced
Chris Forbes [Thu, 8 Dec 2016 22:00:21 +0000 (11:00 +1300)]
layers: Complain in AcquireNextImageKHR if the swapchain is replaced

V2: Tweak error language for Ian

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Track whether a swapchain has been replaced
Chris Forbes [Thu, 8 Dec 2016 21:39:26 +0000 (10:39 +1300)]
layers: Track whether a swapchain has been replaced

If a swapchain is used as VkSwapchainCreateInfoKHR::oldSwapchain, then
it is replaced. This occurs even if the new swapchain creation fails.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoloader: Removed some unnecessary code.
Mark Young [Wed, 14 Dec 2016 00:19:32 +0000 (17:19 -0700)]
loader: Removed some unnecessary code.

Now that all WSI paths need the ICD structs, I can get rid of
a code path no longer used.

Change-Id: Ib5073cd2074fcd66453dae5b6c89870c81f7f958

7 years agoAllocate for real ICD surfaces for the VK_KHR_display extension
Piers Daniell [Tue, 13 Dec 2016 23:51:49 +0000 (16:51 -0700)]
Allocate for real ICD surfaces for the VK_KHR_display extension

This was done for all the other WSI extensions, just not VK_KHR_display

7 years agolayers:Fix uninitialized variable
Tobin Ehlis [Tue, 13 Dec 2016 19:39:44 +0000 (12:39 -0700)]
layers:Fix uninitialized variable

Zero-init the map_range variable before checking for aliasing of a
mapped memory region.

7 years agolayers:Fix typo
Tobin Ehlis [Tue, 13 Dec 2016 19:26:44 +0000 (12:26 -0700)]
layers:Fix typo

aliase->aliased

7 years agolayers:Warn on buffer/image aliasing
Tobin Ehlis [Tue, 13 Dec 2016 19:16:58 +0000 (12:16 -0700)]
layers:Warn on buffer/image aliasing

The Buffer-Image Granularity section of the spec details what must be
done to avoid having a linear buffer alias with a tiled image, but it
does not state that such aliasing is a definite error.

Demoting this check to a warning.

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

Update Valid Usage enums in core_validation and update
their status in the VU database.
This completes Jira task VL-65.

Change-Id: I51ed327ad65f3a5d1f64bba01ad576c6656f88df

7 years agobuild: Disable clang-format header reordering
Mark Lobodzinski [Tue, 13 Dec 2016 17:54:48 +0000 (10:54 -0700)]
build: Disable clang-format header reordering

By default, clang-format will sort header files which often breaks
compilation. Added an option to the main, tests, and layers versions
of these files to disable header reordering.

Change-Id: Ic0cc5727b83d14d5f3962f3ecff7b6bf5e4c5fb9

7 years agolayers: Add some val/state-update todos
Mark Lobodzinski [Mon, 12 Dec 2016 15:33:13 +0000 (08:33 -0700)]
layers: Add some val/state-update todos

Couple of routines combine state updates and validation, adding a
note for future work.

Change-Id: I417025bbcabfd3e80ccefe166bc6ea3497222753

7 years agolayers: Update error database for new checks
Mark Lobodzinski [Tue, 13 Dec 2016 15:47:35 +0000 (08:47 -0700)]
layers: Update error database for new checks

Added 2510 and 2518.

Change-Id: I278bfe12d78c5239aa00f82ac4a1b35b5dcd58d0

7 years agolayers: Update WaitEvents/PipelineBarrier for style
Mark Lobodzinski [Mon, 12 Dec 2016 15:27:42 +0000 (08:27 -0700)]
layers: Update WaitEvents/PipelineBarrier for style

Variable names, clang-format.

Change-Id: I576bfd7944902bdf611b8a455eff83e43f56725b

7 years agolayers: GH1233, Validate stagemask/queue compatibility
Mark Lobodzinski [Sat, 10 Dec 2016 17:53:34 +0000 (10:53 -0700)]
layers: GH1233, Validate stagemask/queue compatibility

Any pipeline stage included in srcStageMask or dstStageMask must be
supported by the capabilities of the queue family specified by the
queueFamilyIndex member of the VkCommandPoolCreateInfo structure
that was used to create the VkCommandPool that commandBuffer was
allocated from, as specified in the table of supported pipeline
stages.

Change-Id: I02117e7f60910f2154765b90340d8127d6bce0cd

7 years agolayers: Update err database w/new DisplayKHR checks
Mark Lobodzinski [Mon, 12 Dec 2016 21:53:27 +0000 (14:53 -0700)]
layers: Update err database w/new DisplayKHR checks

Change-Id: I844e06439b295a36873ccb07819a38c414fd5098

7 years agolayers: Fill out OT validation for vk_display_KHR
Mark Lobodzinski [Mon, 14 Nov 2016 17:32:41 +0000 (10:32 -0700)]
layers: Fill out OT validation for vk_display_KHR

Change-Id: I633fae1ba3bc076022eea6c4e599f617d0296534

7 years agolayers: GH897, Add VK_KHR_display stubs to OT
Mark Lobodzinski [Mon, 14 Nov 2016 17:00:41 +0000 (10:00 -0700)]
layers: GH897, Add VK_KHR_display stubs to OT

Added extension enable and function stubs for VK_KHR_display
extension functions to object_tracker.

Change-Id: Iaee862efaadf4657271b74d75a289dbaf13af26c

7 years agoloader: Add support for 1.0.35 extension
Mark Young [Mon, 12 Dec 2016 23:14:55 +0000 (16:14 -0700)]
loader: Add support for 1.0.35 extension

Add support for the NVX_device_generated_commands.  This was
necessary since it exposes one instance command (which takes
a VkPhysicalDevice).

Change-Id: I1da4c24ca0d385a6485581f55a1b19aa7ea51d24

7 years agodemos: Fix smoketest --c 20 hang on Linux
Karl Schultz [Mon, 12 Dec 2016 23:43:44 +0000 (16:43 -0700)]
demos: Fix smoketest --c 20 hang on Linux

Fixes #1249.
When frame count is reached in ::on_frame(), inform the caller
that it is time to quit by calling Game::quit(), but go ahead
and finish submitting this frame, because the caller is waiting
on the fence.

Change-Id: If3d918f8a8b5bf3697e9569d045dbe7c8aec98e5

7 years agoandroid: Update windows script to request python3
Cody Northrop [Mon, 12 Dec 2016 21:36:12 +0000 (14:36 -0700)]
android: Update windows script to request python3

7 years agoheader: Update to Vulkan version 1.0.37
Mark Lobodzinski [Mon, 12 Dec 2016 16:44:34 +0000 (09:44 -0700)]
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

7 years agobuild: Update generate scripts to use python3
Mark Lobodzinski [Mon, 12 Dec 2016 19:05:44 +0000 (12:05 -0700)]
build: Update generate scripts to use python3

Upcoming header scripts require python3 -- updated
Windows and Linux android-generate scripts.

Change-Id: Iba3b44d0999b5c28b9fc83800a4d54d46cbc2a4c

7 years agoscripts: Prevent bad dynamic array in vk_helper.py
Mark Lobodzinski [Mon, 5 Dec 2016 20:27:29 +0000 (13:27 -0700)]
scripts: Prevent bad dynamic array in vk_helper.py

An extension added some variables which defeat the mechanisms
used by the header-parsing scripts to identify dynamic arrays.

Change-Id: Idcf84f882b13bf5cc3be8b6bb48751db6922e01e

7 years agolayers: Fix param_val codegen for arrays of structs
Mark Lobodzinski [Mon, 5 Dec 2016 14:38:41 +0000 (07:38 -0700)]
layers: Fix param_val codegen for arrays of structs

New extensions exposed a hole where arrays of structs were not
getting deferenced correctly.

Change-Id: Ia2474babee10f25c1446dfe58b5bd9778d3c9abc

7 years agolayers: Use resolved range to avoid long loops
Karl Schultz [Fri, 9 Dec 2016 23:34:16 +0000 (16:34 -0700)]
layers: Use resolved range to avoid long loops

Fixes #1251.
Use the resolvedRange instead of the raw range, which
could include VK_REMAINING_MIP_LEVELS and/or
VK_REMAINING_ARRAY_LAYERS, which are really big numbers.

This fixes a near-infinite loop issue when running the
input_attachment sample with validation.

Change-Id: I250118db74a6faaecd2b3cd4cb43f44c07ae436d

7 years agoscripts:Update unique error enums as of 12/12/16
Tobin Ehlis [Mon, 12 Dec 2016 14:46:49 +0000 (07:46 -0700)]
scripts:Update unique error enums as of 12/12/16

One valid usage updated and a bunch of new valid usages.

Cmd to do the update was:

python spec.py -update -remap 2110-2499

7 years agoscripts:Update stats script for two error enums
Tobin Ehlis [Sat, 10 Dec 2016 00:11:13 +0000 (17:11 -0700)]
scripts:Update stats script for two error enums

Stats script wasn't handling the case where two unique error ids
appeared on the same line. This fixes that.

7 years agoscripts:Update stats script parser
Tobin Ehlis [Fri, 9 Dec 2016 21:10:47 +0000 (14:10 -0700)]
scripts:Update stats script parser

Some tweaks to stats script validation error parsing to correctly
grab all the errors and ignore that noise.

7 years agoscripts:Update database for new checks
Tobin Ehlis [Fri, 9 Dec 2016 21:05:59 +0000 (14:05 -0700)]
scripts:Update database for new checks

Checks were implemented for correct layouts in vkCmdClear*Image() funcs
in a previous commit. Updating the database file to reflect this fact
and also the testnames for these checks.

7 years agolayers: Remove validation layer details doc
Mark Lobodzinski [Thu, 1 Dec 2016 22:11:53 +0000 (15:11 -0700)]
layers: Remove validation layer details doc

This information is covered in the VU database, source code, or other
layer documentation.

Change-Id: I99170e1ed699b372d00f4b8dcf9ef0fd40ec2ecf

7 years agoscripts: Remove layer doc gen script
Mark Lobodzinski [Thu, 1 Dec 2016 22:07:10 +0000 (15:07 -0700)]
scripts: Remove layer doc gen script

Change-Id: I4529546fadee343271db9ac2fa899bc9ee09dbf2

7 years agoscripts:Ignore VALIDATION_ERROR_UNDEFINED
Tobin Ehlis [Mon, 5 Dec 2016 21:57:44 +0000 (14:57 -0700)]
scripts:Ignore VALIDATION_ERROR_UNDEFINED

VALIDATION_ERROR_UNDEFINED is a special case that shouldn't be recorded
as an actual check in the source.

7 years agoscripts:Update stats script to return 1 on error
Tobin Ehlis [Mon, 5 Dec 2016 21:50:03 +0000 (14:50 -0700)]
scripts:Update stats script to return 1 on error

This script will be integrated into the run_all_tests flow to replace
the old document validation. This update causes it to return 1 in
certain error conditions. It will initially flag errors when:
1. The number of checks declared in the header don't match the database
2. A check that's implemented in the database isn't found in source
3. A testname in database can't be found in the test source

7 years agoscripts:Make stats script work with python3
Tobin Ehlis [Fri, 9 Dec 2016 19:15:26 +0000 (12:15 -0700)]
scripts:Make stats script work with python3

Just needed parens around the single print so that the
vk_validation_stats.py script will run with python3.

7 years agolayers: Add error enums to Destroy APIs
Mike Schuchardt [Wed, 7 Dec 2016 01:03:56 +0000 (18:03 -0700)]
layers: Add error enums to Destroy APIs

Add error enum parameters to DestroyObject helper function for use when
performing checks on the pAllocator parameter of vkDestroy* APIs.  Add
error enum parameter to DeviceReportUndestroyedObjects helper function
for use when checking for undestroyed child objects.

Change-Id: I4e0960b8b14ecc30f67a1eea112aa80de9f4ca86

7 years agolayers: Add error enums to object tracker
Mike Schuchardt [Tue, 6 Dec 2016 17:56:01 +0000 (10:56 -0700)]
layers: Add error enums to object tracker

Add the following validation error enums to object tracker helper
functions:
VALIDATION_ERROR_00097
VALIDATION_ERROR_00102
VALIDATION_ERROR_00920
VALIDATION_ERROR_00927
VALIDATION_ERROR_01651

Change-Id: Ic21fbaf14f29aef53b2b24d0aa4a8577d3a11927

7 years agodemos: Make DEMOS_WSI_SELECTION a variable, not an option
Tony Barbour [Fri, 9 Dec 2016 20:14:58 +0000 (13:14 -0700)]
demos: Make DEMOS_WSI_SELECTION a variable, not an option

Change-Id: I8e10ce8df3d569c13f0adf6c09e5bd431279bc2d

7 years agoexternals: Update glslang and spirv revs
Mark Young [Fri, 9 Dec 2016 18:55:35 +0000 (11:55 -0700)]
externals: Update glslang and spirv revs

Update Glslang, Spirv-Tools, and Spirv-Headers revisions to
the latest.

Change-Id: I288e117b3180689f2fd5455ec4f721962c39602c

7 years agolayers: GH1244, Fix Compressed BufferImageCopy errs
Mark Lobodzinski [Fri, 9 Dec 2016 18:20:23 +0000 (11:20 -0700)]
layers: GH1244, Fix Compressed BufferImageCopy errs

CmdCopyBufferToImage and CmdCopyImageToBuffer were validating
compressed image attributes against the valid usage conditions
for uncompressed images. Added check for compressed images and
skipped this validation, and TODO for future compressed VU addition.

Change-Id: I09a7dc98cb0f925c7486ef9f2d6de31411c7ea1c

7 years agobuild: Add Wayland and Mir dev libs to travis
Karl Schultz [Fri, 9 Dec 2016 18:59:23 +0000 (11:59 -0700)]
build: Add Wayland and Mir dev libs to travis

Change-Id: I60b6b19417b0b68719b027ef36f6f3b9b3deef08

7 years agodemos: Add very limited Wayland support to vulkaninfo
Tony Barbour [Fri, 9 Dec 2016 18:27:26 +0000 (11:27 -0700)]
demos: Add very limited Wayland support to vulkaninfo

Also allow only one WSI selection at a time

Change-Id: Ie7ca4f98c71a5097b7e07a4b5e2762b59606317c

7 years agoCmake: Move all find_packages to base CMakeLists.txt
Tony Barbour [Wed, 7 Dec 2016 23:13:35 +0000 (16:13 -0700)]
Cmake: Move all find_packages to base CMakeLists.txt

Change-Id: Id27307788c7c230e75d620f1bf5470b1450289f2

7 years agoDemos: Add Mir warnings and placeholders
Tony Barbour [Wed, 7 Dec 2016 21:45:12 +0000 (14:45 -0700)]
Demos: Add Mir warnings and placeholders

Change-Id: I7e7ca30bd1452a216213c02a7aa29ce8829b2974

7 years agoDemos: Remove simultaneuos xlib and xcb support from cube*
Tony Barbour [Wed, 7 Dec 2016 20:43:36 +0000 (13:43 -0700)]
Demos: Remove simultaneuos xlib and xcb support from cube*

Change-Id: I2f28dc3e21fc10ae96dde2dbfc7f3025efd9c2f0

7 years agoDemos: Add DEMOS_WSI_SELECTION to pick Linux wsi to use
Tony Barbour [Wed, 7 Dec 2016 19:12:45 +0000 (12:12 -0700)]
Demos: Add DEMOS_WSI_SELECTION to pick Linux wsi to use

Change-Id: Ic1fcc6cf888d94b84a43661aa33815948d85b701

7 years agoCmake: Add files needed to build with Mir
Tony Barbour [Wed, 7 Dec 2016 17:19:21 +0000 (10:19 -0700)]
Cmake: Add files needed to build with Mir

Change-Id: I640e45db5d586a379674fb209e38075ba7f0cf29

7 years agoCmake: Move WSI compile decision to subdirectories
Tony Barbour [Wed, 7 Dec 2016 18:18:19 +0000 (11:18 -0700)]
Cmake: Move WSI compile decision to subdirectories

Change-Id: I61ac8910200a1751a23aa92fe0e7d955ee9e03e5

7 years agolayers: Update details doc for new LVT
Mark Lobodzinski [Fri, 9 Dec 2016 17:08:09 +0000 (10:08 -0700)]
layers: Update details doc for new LVT

Added RenderPassClearOpTooManyValues and new error enum.

Change-Id: I598e7adf3897996efcf2f9c3023521e710b06cc6

7 years agolayers: Warn if RenderPass clearvalues ignored
Slawomir Cygan [Mon, 28 Nov 2016 16:53:23 +0000 (17:53 +0100)]
layers: Warn if RenderPass clearvalues ignored

PR 1203:

Vulkan spec does permit clearValueCount to be greater than number of
values used by clear ops. However we have seen apps that pass garbage
as clearValueCount - the best we can do in this situation is to emit
a warning.

Change-Id: If52c02759410500e96976d91fd42a9b2a7e2df41

7 years agoCore validation: VerifyClearImageLayout review feedback
Cort [Thu, 8 Dec 2016 17:59:43 +0000 (09:59 -0800)]
Core validation: VerifyClearImageLayout review feedback

- follow variable name/case conventions
- Prepend calling function to error messages
- Simplify caller identification

7 years agoCore validation: VerifyClearImageLayout tweaks:
Cort [Tue, 6 Dec 2016 01:33:49 +0000 (17:33 -0800)]
Core validation: VerifyClearImageLayout tweaks:
- Move test for invalid layouts before test for valid-but-non-matching layout
- Use unique error codes
- Pass caller function name to differentiate between color and depth/stencil clears

7 years agoCore validation: add an errror message when wrong layout is used for clearing
Slawomir Cygan [Mon, 28 Nov 2016 18:17:38 +0000 (19:17 +0100)]
Core validation: add an errror message when wrong layout is used for clearing

7 years agoscripts: Remove vk-generate.py
Mark Lobodzinski [Fri, 9 Dec 2016 15:04:51 +0000 (08:04 -0700)]
scripts: Remove vk-generate.py

No longer used for def-file or dispatch-table-helper generation.

Change-Id: I3864441e900ecb3ebc2e9fdf5cb4dfc785b2ad83

7 years agoloader: Add CMake copy of def file to build dir
Mark Lobodzinski [Thu, 8 Dec 2016 15:52:56 +0000 (08:52 -0700)]
loader: Add CMake copy of def file to build dir

Change-Id: I377ef3e58b49c345fcc5ac8d10bdee7e4c059bed

7 years agolayers: Change cmake to Copy def files to build dir
Mark Lobodzinski [Thu, 8 Dec 2016 15:40:02 +0000 (08:40 -0700)]
layers: Change cmake to Copy def files to build dir

Change-Id: Ic963c7fc1383dd5a39844e366a9d3bb1ce1f8c93

7 years agoloader: Check in loader Windows def file
Mark Lobodzinski [Wed, 7 Dec 2016 21:06:44 +0000 (14:06 -0700)]
loader: Check in loader Windows def file

Change-Id: I184ce5efa8cd27cbbf93babf52d4a6b9b4266a24