platform/upstream/Vulkan-Tools.git
8 years agocore_validation: add intercept_khr_swapchain_command
Chia-I Wu [Fri, 6 May 2016 03:51:11 +0000 (11:51 +0800)]
core_validation: add intercept_khr_swapchain_command

It returns the function pointers for all intercepted VK_KHR_swapchain
commands.  Call intercept_khr_swapchain_command from GetDeviceProcAddr.

8 years agocore_validation: add intercept_core_device_command
Chia-I Wu [Fri, 6 May 2016 03:44:32 +0000 (11:44 +0800)]
core_validation: add intercept_core_device_command

It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr.  Assert that
device is valid in GetDeviceProcAddr.

8 years agocore_validation: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Fri, 6 May 2016 03:38:37 +0000 (11:38 +0800)]
core_validation: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is core_validation.

8 years agocore_validation: add core_validation::global_layer
Chia-I Wu [Fri, 6 May 2016 03:36:52 +0000 (11:36 +0800)]
core_validation: add core_validation::global_layer

Replace cv_global_layers and cv_device_layers with global_layer.  There is
no plan to define more than one layer in the same namespace.

8 years agocore_validation: drop vk prefix for layer functions
Chia-I Wu [Fri, 6 May 2016 03:32:54 +0000 (11:32 +0800)]
core_validation: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agocore_validation: put layer functions into a namespace
Chia-I Wu [Fri, 6 May 2016 03:20:20 +0000 (11:20 +0800)]
core_validation: put layer functions into a namespace

Put all layer fucntions/data into core_validation namespace.  I had to add
some wrappers to make everything work.

8 years agocore_validation: move vkEnumerate*Properties around
Chia-I Wu [Fri, 6 May 2016 03:17:16 +0000 (11:17 +0800)]
core_validation: move vkEnumerate*Properties around

Move them toward the end of the file.

8 years agolayers: Properly set secondary cmd buffer inherited items.
Mark Young [Fri, 6 May 2016 19:48:26 +0000 (13:48 -0600)]
layers: Properly set secondary cmd buffer inherited items.

We failed to inherit the proper items in the secondary cmd buffer
in the core_validation layer when the
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT bit was set.

Change-Id: I01579d889dde8e0d331ed5a65eb48ce7185d3d82

8 years agolayers: Fix usage flags validation of CreateImageView
Chris Forbes [Sat, 7 May 2016 22:19:14 +0000 (10:19 +1200)]
layers: Fix usage flags validation of CreateImageView

We need to validate the flags before calling down into the ICD. At least
one ICD (Anvil) asserts if it sees bad flags.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
8 years agolayers: Fix logical negate to bitwise negate in access flags checking
Chris Forbes [Fri, 6 May 2016 06:07:09 +0000 (18:07 +1200)]
layers: Fix logical negate to bitwise negate in access flags checking

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Correct object_tracker section in validation details doc
Mark Lobodzinski [Fri, 6 May 2016 21:40:49 +0000 (15:40 -0600)]
layers: Correct object_tracker section in validation details doc

Change-Id: If113a338674655b339e76d3bb14e50be3796f168

8 years agolayers: Fix object_tracker warnings in Android and Win32 builds
Mark Lobodzinski [Thu, 5 May 2016 17:45:57 +0000 (11:45 -0600)]
layers: Fix object_tracker warnings in Android and Win32 builds

Change-Id: If937c4c5aca0dc274aa67a9b52b99909723f082c

8 years agolayers: Fix object_tracker handling of pool-related validation failures
Mark Lobodzinski [Tue, 3 May 2016 14:39:24 +0000 (08:39 -0600)]
layers: Fix object_tracker handling of pool-related validation failures

Return codes weren't plumbed through, failures caused layer crashes.

Change-Id: If258d449a420d33b6c72dc5c289d77c7215f2c2f

8 years agotests: Round out object-tracker layer validation tests
Mark Lobodzinski [Mon, 2 May 2016 23:17:41 +0000 (17:17 -0600)]
tests: Round out object-tracker layer validation tests

Change-Id: I6aad451a44cf2053b078eca98adca6b72acbd0a0

8 years agolayers: Correct and/or remove obsolete object_tracker error enums
Mark Lobodzinski [Mon, 2 May 2016 19:19:15 +0000 (13:19 -0600)]
layers: Correct and/or remove obsolete object_tracker error enums

Change-Id: I6f759890749fb17226e00d28ab8391dc7cc0e80c

8 years agolayers: ObjectTracker dead code elimination
Mark Lobodzinski [Mon, 2 May 2016 19:11:50 +0000 (13:11 -0600)]
layers: ObjectTracker dead code elimination

Change-Id: I3244f8da58a7f150ebfa772a7c131422f75d0d8b

8 years agolayers: Remove 'using namespace std' in object_tracker
Mark Lobodzinski [Mon, 2 May 2016 18:08:24 +0000 (12:08 -0600)]
layers: Remove 'using namespace std' in object_tracker

Change-Id: Ic1ab57e5b4192ed98df8c7e6fc8c225aff631fd8

8 years agodoc: allow layers to ignore pAllocator
Chia-I Wu [Fri, 6 May 2016 00:41:52 +0000 (08:41 +0800)]
doc: allow layers to ignore pAllocator

8 years agolayers: GH494 Add constructors for IMAGE and BUFFER nodes
Tobin Ehlis [Fri, 6 May 2016 16:22:16 +0000 (10:22 -0600)]
layers: GH494 Add constructors for IMAGE and BUFFER nodes

Add proper constructors for IMAGE_NODE and BUFFER_NODE classes and
correctly initialize all of their data members.

Change-Id: I6c9d4a3ba6f3ef8e569de55793de9d6f7fd406b1

8 years agolayers: Fix param check debug report level
Dustin Graves [Fri, 6 May 2016 16:17:12 +0000 (10:17 -0600)]
layers: Fix param check debug report level

Change VkFlags and enumeration debug report levels from WARNING to
ERROR.

Change-Id: I06bf454c77dee2cd46db29cd1ffcb67febfba666

8 years agolayers: Add missing vkCmdSetStencil param checks
Dustin Graves [Fri, 6 May 2016 16:16:06 +0000 (10:16 -0600)]
layers: Add missing vkCmdSetStencil param checks

Add missing parameter validation for vkCmdSetStencil* functions.

Change-Id: Ib2d2527341815412bc441427ba1dbf6d3826f3c6

8 years agolayers: Fix core_validation issues GH103 and GH240
Mark Young [Wed, 4 May 2016 20:38:51 +0000 (14:38 -0600)]
layers: Fix core_validation issues GH103 and GH240

Perform pipeline sample and attachment count validation at draw
time instead of vkCmdNextSubpass() time.  Also validate that
an active renderpass exists.

Change-Id: I912947287eef29d532519220750c3a93a3554565

8 years agolayers: Further descriptorSet cleanup fixes
Tobin Ehlis [Thu, 5 May 2016 21:09:11 +0000 (15:09 -0600)]
layers: Further descriptorSet cleanup fixes

Clear the pools list of sets when pool is reset.
Also make sure to remove sets from pool as they are freed.
Added a related fix to testing to correctly free descriptorSets
in DescriptorSetCompatibility test.

8 years agolayers: Correctly invalidate cmd buffers when descriptor pool cleared/freed
Tobin Ehlis [Thu, 5 May 2016 19:49:42 +0000 (13:49 -0600)]
layers: Correctly invalidate cmd buffers when descriptor pool cleared/freed

When a DescriptorSet pool is Destroyed or Reset we destroy all underlying
descriptorSets, but we weren't invalidating cmd buffers bound to those sets
in these cases. This adds a common function, freeDescriptorSet(), to make
sure anytime a descriptor set is destroyed, any bound cmd buffers get
invalidated and the set is removed from setMap and then destroyed.

8 years agolayers: Fix descriptorSet cleanup bugs
Tobin Ehlis [Thu, 5 May 2016 19:18:20 +0000 (13:18 -0600)]
layers: Fix descriptorSet cleanup bugs

When we deleted DescriptorSet* objects we weren't removing them
from the setMap.

8 years agolayers: Migrate VerifyUpdateConsistency to DescriptorSetLayout class
Tobin Ehlis [Thu, 5 May 2016 18:03:44 +0000 (12:03 -0600)]
layers: Migrate VerifyUpdateConsistency to DescriptorSetLayout class

This was in the DescriptorSet class, but really belonged in the Layer.
There was also a bug where it did not correctly handle the case of an
initial offset that oversteps the size of the first binding being updated.
That is legal according to the spec so added code to handle that case by
walking the bindings until we get to the actual binding on which the first
update will occur.

8 years agolayers: Store layout bindings_ by value instead of ptr
Tobin Ehlis [Thu, 5 May 2016 17:04:44 +0000 (11:04 -0600)]
layers: Store layout bindings_ by value instead of ptr

Kill the ptr to safe_VkDescriptorSetLayoutBinding in DescriptorSetLayout
class. This saves us the "new" and the need for a custom destructor.
Couldn't do this initially but I've since added copy constructors
to all of the safe_* struct types.

8 years agolayers: Kill unused shadowUpdateNode()
Tobin Ehlis [Thu, 5 May 2016 16:50:58 +0000 (10:50 -0600)]
layers: Kill unused shadowUpdateNode()

No longer needed with migration to DescriptorSet class.

8 years agolayers: Fix stale comments in core_validation
Tobin Ehlis [Thu, 5 May 2016 16:43:30 +0000 (10:43 -0600)]
layers: Fix stale comments in core_validation

8 years agolayers: Remove unused IsUpdated(uint32_t) from DescriptorSet class
Tobin Ehlis [Thu, 5 May 2016 16:36:24 +0000 (10:36 -0600)]
layers: Remove unused IsUpdated(uint32_t) from DescriptorSet class

All of the functionality that I thought I would need this for is contained
in the ValidateDrawState() function.

8 years agolayers: Removed unused full_update_ from DescriptorSet class
Tobin Ehlis [Thu, 5 May 2016 16:30:46 +0000 (10:30 -0600)]
layers: Removed unused full_update_ from DescriptorSet class

I originally added this thinking it would be useful but currently
unused and not correctly tracked so just killing it.

8 years agolayers: Remove use of map at() function from descriptor_set class
Tobin Ehlis [Thu, 5 May 2016 16:16:02 +0000 (10:16 -0600)]
layers: Remove use of map at() function from descriptor_set class

8 years agolayers: Clean up access to descriptors_ vector
Tobin Ehlis [Thu, 5 May 2016 15:04:33 +0000 (09:04 -0600)]
layers: Clean up access to descriptors_ vector

Migrate a number of unneccessary .at() calls to just use [] operator.
Also replace push_back() calls at descriptor creation time with emplace_back().

8 years agolayers: Kill SET_NODE construct and just use DescriptorSet class
Tobin Ehlis [Thu, 5 May 2016 14:25:02 +0000 (08:25 -0600)]
layers: Kill SET_NODE construct and just use DescriptorSet class

Migrated setMap to just use DescriptorSet class natively. SET_NODE was
just wrapping that class but that's not necessary so killing extra indirection.

8 years agolayers: Rearchitect Descriptor Set validation code
Tobin Ehlis [Tue, 3 May 2016 14:31:08 +0000 (08:31 -0600)]
layers: Rearchitect Descriptor Set validation code

This change pulls all of the DescriptorSet code out of core_validation.cpp and into
its own files/classes in descriptor_set.h/cpp.

See header file for complete class documentation.

These changes pass tri/cube/smoketest --validate.
All related layer validation tests are also updated and passing.
Finally, I ran it through mustpass CTS and did not hit any issues related to these changes.

These changes not only update the descriptor interface but fix some known lingering
bugs with how descriptor updates occurred. This includes now correctly handling
updates that cross binding boundaries and updates that write a subset of a binding.

Going forward this is a general outline for how we would like to evolve core_validation.
That is, we'd like to move the functionality of the checks into reasonable classes and
just have core_validation call into those classes to do the majority of the work.

8 years agolayers: Clear cmdbufs and prior fences after processed in decrement.
Michael Lentine [Thu, 5 May 2016 21:20:16 +0000 (16:20 -0500)]
layers: Clear cmdbufs and prior fences after processed in decrement.

8 years agodocs: Add contrib info and link
Karl Schultz [Thu, 5 May 2016 21:16:56 +0000 (15:16 -0600)]
docs: Add contrib info and link

8 years agodocs: Elevate contrib info, add link
Karl Schultz [Thu, 5 May 2016 21:14:59 +0000 (15:14 -0600)]
docs: Elevate contrib info, add link

8 years agolayers: #471 swapchin layer to use find() for map lookups
Ian Elliott [Thu, 5 May 2016 20:10:49 +0000 (14:10 -0600)]
layers: #471 swapchin layer to use find() for map lookups

This fixes a long-standing (day-1) defect in the swapchain layer (perhaps
cloned from another layer at the time?).  Several unordered maps are used to
keep track of things.  The layer was using the [] operator for both adding a
new entry to a map, and for looking up entries that should already be in a map.
This latter usage is where the bug is.  If a handle is passed in that hasn't
been seen before, the use of the [] operator will add a new entry to the
map--one that hasn't been initialized.  The new EnableWsiBeforeUse test caused
a crash in the swapchain layer when it used VK_NULL_HANDLE.

The new code uses the find() element-lookup function of the unordere map class,
and compares this to end().  If the found value is equal to end() (i.e. it
currently isn't in the map), NULL is used for the pointer (the desired behavior
in the swapchain layer).

Two new macros were used in order to keep the code minimal and consistent in
its use of find()/end().

8 years agolayers: Fix "count" tests in swapchain layer.
Ian Elliott [Thu, 5 May 2016 20:06:53 +0000 (14:06 -0600)]
layers: Fix "count" tests in swapchain layer.

The swapchain layer was attempting to test if the application gave a value for
a *Count variable (e.g. pSurfaceFormatCount for the
vkGetPhysicalDeviceSurfaceFormatsKHR() function) that was larger than what that
function returned previously (i.e. when the non-count variable was NULL).
However, the test was made after calling down the call-chain, which may modify
the value given by the application.  This test is now made before calling down
the chain.

In addition, a new test is made that tries to ensure that the application did
call the function with the non-Count variable equal to NULL **before** calling
the function with a non-NULL non-Count variable.

8 years agoloader: added Windows resource file for vulkan-1.dll
David Pinedo [Thu, 5 May 2016 19:52:37 +0000 (13:52 -0600)]
loader: added Windows resource file for vulkan-1.dll

Properties->Details on vulkan-1.dll will display valid
version and build information

Address:
  https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/473

8 years agolayers: Skip actual call on validation error in vkCmdBlitImage
Tony Barbour [Thu, 5 May 2016 16:50:21 +0000 (10:50 -0600)]
layers: Skip actual call on validation error in vkCmdBlitImage

Change-Id: Ia59e796dd6b7dd6acebb1e3e6b7dbbcbb4b23fed

8 years agoAdd an output directory option to genvk.py.
Jamie Madill [Wed, 4 May 2016 15:17:33 +0000 (08:17 -0700)]
Add an output directory option to genvk.py.

Currently for the threading utils and parameter checker generator,
the script is hard-coded to write to the current directory. Add
an option to add a custom output directory.

Change-Id: Id1b72a934ead74d2f6c01ad4e581af83067d3f49

8 years agolayers: #486 Add some missing spaces where needed ...
baldurk [Thu, 5 May 2016 14:31:05 +0000 (16:31 +0200)]
layers: #486 Add some missing spaces where needed ...

Original commit message:

Add some missing spaces where needed, hidden by string concatenation

8 years agoloader: Fix issue when ICD DestroyDebugReportCallbackEXT not found.
Mark Young [Wed, 4 May 2016 22:44:10 +0000 (16:44 -0600)]
loader: Fix issue when ICD DestroyDebugReportCallbackEXT not found.

Change-Id: Ic1d0f67ec2f8ca438c4bd546e6beb4d565daf89a

8 years agolayers: #484 Remove stray newline in swapchain validation message.
Jamie Madill [Wed, 4 May 2016 19:20:15 +0000 (12:20 -0700)]
layers: #484 Remove stray newline in swapchain validation message.

8 years agoCMakeLists.txt and doc changes for
Mark Mueller [Mon, 18 Apr 2016 17:04:36 +0000 (11:04 -0600)]
CMakeLists.txt and doc changes for
1) Ninja build and QTCreator IDE support
2) Out of tree builds that aren't based on using update_external_sources and build_windows_target scripts
3) Allowing the developer to use non-default locations for glslang and SPIRV-Tools binaries and sources
4) Fix linux build when developer chooses not to rename SPIRV-Tools to spirv-tools

Change-Id: Ib6118c47dc780e6721ec0538aae1a6ee444eed78

8 years agoandroid: Move external deps into project dir
Cody Northrop [Tue, 3 May 2016 21:38:05 +0000 (15:38 -0600)]
android: Move external deps into project dir

Mirroring commit d288cb9a, stop using directories outside
of our project location to host external files. Small
changes to update_external_sources_android.sh/bat to find
glslang, spirv-tool, shaderc in "external" instead of ".."

8 years agodocs: Update CONTRIBUTING to reflect CLA status
Karl Schultz [Thu, 5 May 2016 14:30:53 +0000 (08:30 -0600)]
docs: Update CONTRIBUTING to reflect CLA status

Also add info about need for layer work.

8 years agolayers: Kill unused var that was breaking android build
Tobin Ehlis [Thu, 5 May 2016 14:29:41 +0000 (08:29 -0600)]
layers: Kill unused var that was breaking android build

8 years agolayers: Consider missing color attachments in validation
Chris Forbes [Fri, 29 Apr 2016 05:33:03 +0000 (17:33 +1200)]
layers: Consider missing color attachments in validation

Previously we'd assumed these were dense. It is however valid to provide
VK_ATTACHMENT_UNUSED for a color attachment reference.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Avoid dereferencing outside array for missing color attachment
Chris Forbes [Fri, 29 Apr 2016 05:32:16 +0000 (17:32 +1200)]
layers: Avoid dereferencing outside array for missing color attachment

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agodevice_limits: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Thu, 28 Apr 2016 08:04:15 +0000 (16:04 +0800)]
device_limits: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agodevice_limits: improve GetInstanceProcAddr
Chia-I Wu [Thu, 28 Apr 2016 07:16:59 +0000 (15:16 +0800)]
device_limits: improve GetInstanceProcAddr

Handle device commands as well.  Move handling of interface functions to
v0's vkGetInstanceProcAddr.

8 years agodevice_limits: fix a typo in intercept_core_instance_command
Chia-I Wu [Thu, 28 Apr 2016 07:17:27 +0000 (15:17 +0800)]
device_limits: fix a typo in intercept_core_instance_command

s/vkEnumerateInstanceDeviceProperties/vkEnumerateDeviceExtensionProperties/.

8 years agodevice_limits: refactor GetInstanceProcAddr
Chia-I Wu [Thu, 28 Apr 2016 06:38:57 +0000 (14:38 +0800)]
device_limits: refactor GetInstanceProcAddr

Split command intercepting out to intercept_core_instance_command.

8 years agodevice_limits: intercept CmdSetScissor and CmdSetViepwort
Chia-I Wu [Thu, 28 Apr 2016 06:44:08 +0000 (14:44 +0800)]
device_limits: intercept CmdSetScissor and CmdSetViepwort

They are defined but unused.

8 years agodevice_limits: add intercept_core_device_command
Chia-I Wu [Thu, 28 Apr 2016 06:38:57 +0000 (14:38 +0800)]
device_limits: add intercept_core_device_command

It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr.  Assert that
device is valid in GetDeviceProcAddr.

8 years agodevice_limits: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Thu, 28 Apr 2016 06:21:13 +0000 (14:21 +0800)]
device_limits: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is device_limits.

8 years agodevice_limits: add device_limits::global_layer
Chia-I Wu [Thu, 28 Apr 2016 06:12:27 +0000 (14:12 +0800)]
device_limits: add device_limits::global_layer

Replace dl_global_layers with global_layer.  There is no plan to define
more than one layer in the same namespace.

8 years agodevice_limits: drop vk prefix for layer functions
Chia-I Wu [Thu, 28 Apr 2016 06:01:30 +0000 (14:01 +0800)]
device_limits: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agodevice_limits: put layer functions into a namespace
Chia-I Wu [Thu, 28 Apr 2016 03:27:46 +0000 (11:27 +0800)]
device_limits: put layer functions into a namespace

Put all layer fucntions/data into device_limits namespace.  I had to add
some wrappers to make everything work.

8 years agodevice_limits: move vkEnumerate*Properties around
Chia-I Wu [Thu, 28 Apr 2016 03:21:49 +0000 (11:21 +0800)]
device_limits: move vkEnumerate*Properties around

Move them toward the end of the file.

8 years agoimage: avoid invalid GIPA call in vkCreateDevice
Chia-I Wu [Thu, 28 Apr 2016 08:04:15 +0000 (16:04 +0800)]
image: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.

8 years agoimage: improve GetInstanceProcAddr
Chia-I Wu [Thu, 28 Apr 2016 07:16:59 +0000 (15:16 +0800)]
image: improve GetInstanceProcAddr

Handle device commands as well.  Move handling of interface functions to
v0's vkGetInstanceProcAddr.

8 years agoimage: refactor GetInstanceProcAddr
Chia-I Wu [Thu, 28 Apr 2016 06:38:57 +0000 (14:38 +0800)]
image: refactor GetInstanceProcAddr

Split command intercepting out to intercept_core_instance_command.

8 years agoimage: add intercept_core_device_command
Chia-I Wu [Thu, 28 Apr 2016 06:38:57 +0000 (14:38 +0800)]
image: add intercept_core_device_command

It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr.  Assert that
device is valid in GetDeviceProcAddr.

8 years agoimage: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Thu, 28 Apr 2016 06:21:13 +0000 (14:21 +0800)]
image: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is image.

8 years agoimage: add image::global_layer
Chia-I Wu [Thu, 28 Apr 2016 06:12:27 +0000 (14:12 +0800)]
image: add image::global_layer

Replace pc_global_layers with global_layer.  There is no plan to define
more than one layer in the same namespace.

8 years agoimage: drop vk prefix for layer functions
Chia-I Wu [Thu, 28 Apr 2016 06:01:30 +0000 (14:01 +0800)]
image: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.

8 years agoimage: put layer functions into a namespace
Chia-I Wu [Thu, 28 Apr 2016 03:27:46 +0000 (11:27 +0800)]
image: put layer functions into a namespace

Put all layer fucntions/data into image namespace.  I had to add some
wrappers to make everything work.

8 years agoimage: move vkEnumerate*Properties around
Chia-I Wu [Thu, 28 Apr 2016 03:21:49 +0000 (11:21 +0800)]
image: move vkEnumerate*Properties around

Move them toward the end of the file.

8 years agolayers: Fix memory aliasing false positives in core_validation
Mark Lobodzinski [Tue, 3 May 2016 21:31:26 +0000 (15:31 -0600)]
layers: Fix memory aliasing false positives in core_validation

Change-Id: I889a00132af4c6f8db944ed21f03290ee8f14063

8 years agotests: Update doc to capture test for pipeline layout compatibility
Tobin Ehlis [Tue, 3 May 2016 23:19:02 +0000 (17:19 -0600)]
tests: Update doc to capture test for pipeline layout compatibility

DescriptorSetCompatibility test hits all of the PIPELINE_LAYOUTS_INCOMPATIBLE
validation errors so just needed to update documentation.

8 years agotests: Update test names in layer documentation
Tobin Ehlis [Tue, 3 May 2016 18:55:26 +0000 (12:55 -0600)]
tests: Update test names in layer documentation

A number of test names in vk_validation_layer_details.md were incorrect
so updated names as appropriate and removed other names for tests that
were not in layer_validation_tests.cpp.

8 years agotests: Update document validator to check for valid tests
Tobin Ehlis [Tue, 3 May 2016 18:50:20 +0000 (12:50 -0600)]
tests: Update document validator to check for valid tests

This adds a set of checks to the document validator that will iterate through
all of the checks documented in vk_validation_layer_details.md and compare the
names of the test(s) for each check against the names of the actual tests in
layer_validation_tests.cpp.

Currently, all checks not ending in "_NONE" that don't have a valid test
recorded in the table will report a warning with a final count of the warnings
given. There are initially 131 such warnings, but I suspect at least a handful
of them are implemented but just need to be correctly documented.

Once all the test holes are filled in we can promote the warnings to errors
to make sure that any new checks are both documented and have a valid test
implemented.

Rough support of wild-carded testnames such as "CreatePipeline*NotConsumed" is
included.

8 years agotests: Add InvalidBarriers layer validation test
Tony Barbour [Tue, 3 May 2016 22:11:53 +0000 (16:11 -0600)]
tests: Add InvalidBarriers layer validation test

Change-Id: I77f771943aac77d9bafc9d33336adfb009d1b616

8 years agoproject: Fix tabs, whitespace and line endings
Mark Lobodzinski [Wed, 4 May 2016 15:19:54 +0000 (09:19 -0600)]
project: Fix tabs, whitespace and line endings

Change-Id: I9cca32a98a1b984b44eca42e4805461c220ae04f

8 years agotests: GH426 Cleanup of dynamic state binding validation tests
Tobin Ehlis [Tue, 3 May 2016 16:34:08 +0000 (10:34 -0600)]
tests: GH426 Cleanup of dynamic state binding validation tests

All dynamic state binding cases had tests, but were not correctly documented.
This changes merges them all into a single test, DynamicStatesNotBound, to speed
test time and documentation was updated to record that test for the 9 related tests.

8 years agolayers: GH465 Add validation for now bound VkPipeline
Tobin Ehlis [Mon, 2 May 2016 19:26:06 +0000 (13:26 -0600)]
layers: GH465 Add validation for now bound VkPipeline

At the time of a Draw or Dispatch, a pipeline must be bound to the
command buffer. This adds a check to verify that.
Added tests for both draw and compute cases to verify the check.

8 years agoexternal: GH#246, Move glslang and spirv-tools inside of dir tree
Jon Ashburn [Mon, 2 May 2016 14:39:14 +0000 (08:39 -0600)]
external: GH#246, Move glslang and spirv-tools inside of dir tree

Have update_external_sources create a sub-directory "external" to
fetch these components into. This way the update_external_sources
does not potentially overwrite files outside the directory tree.

Change-Id: Ia03d1fb9e4dad9d9db26a46e596fb1bf24fcb033

8 years agodemos: Add location to smoketest varyings
Jon Ashburn [Tue, 3 May 2016 15:45:42 +0000 (09:45 -0600)]
demos: Add location to smoketest varyings

Change-Id: I6fb9d1d0ffd8b51988bc0768afedc0e9fb510cc5

8 years agoheader: Move to header version 1.0.12
Jon Ashburn [Tue, 3 May 2016 14:52:58 +0000 (08:52 -0600)]
header: Move to  header version 1.0.12
Adds an AMD rasterization order extension

Change-Id: I62d17b0437e190da4d44f65a59b8cc246f05b567

8 years agolayers: Add extension-enabled check to vkDestroySurfaceKHR().
Ian Elliott [Fri, 29 Apr 2016 19:03:17 +0000 (13:03 -0600)]
layers: Add extension-enabled check to vkDestroySurfaceKHR().

Because the WSI functions are statically exported (i.e. no need to call gpa()
functions), the swapchain layer is supposed to issue an error if any WSI
function is called without its corresponding extension being enabled.  For
example, the VK_KHR_swapchain extension must be enabled before the
vkCreateSwapchainKHR() function is called.

8 years agowinrtinstaller: added patch file to be used when building nsis
David Pinedo [Mon, 2 May 2016 18:12:04 +0000 (12:12 -0600)]
winrtinstaller: added patch file to be used when building nsis

8 years agolayers: Make unique object IDs unique cross-device and cross-instance
Mark Lobodzinski [Thu, 28 Apr 2016 22:36:58 +0000 (16:36 -0600)]
layers: Make unique object IDs unique cross-device and cross-instance

Change-Id: Ic45e21bd3137dc0474c59f0f4cf9331f070dac20

8 years agoRemove fences once they have been waited on.
Michael Lentine [Fri, 29 Apr 2016 23:37:32 +0000 (18:37 -0500)]
Remove fences once they have been waited on.

8 years agolayers: Add fence in use for bind sparse info.
Michael Lentine [Fri, 29 Apr 2016 22:46:35 +0000 (17:46 -0500)]
layers: Add fence in use for bind sparse info.

8 years agolayers: GH463 Fix layout compatibility check
Tobin Ehlis [Mon, 2 May 2016 16:17:07 +0000 (10:17 -0600)]
layers: GH463 Fix layout compatibility check

After lh and rh layout descriptorCounts were verified to be the same, the
next check was testing the descriptor count for each binding in the lh binding
against the entire descriptor count for the rh layout. The check should be made
just against the descriptor count for the specific binding we're checking in
the rh layout.

8 years agolayers: GH439 Fix locking in Destroy* funcs
Karl Schultz [Fri, 29 Apr 2016 23:22:50 +0000 (17:22 -0600)]
layers: GH439 Fix locking in Destroy* funcs

Change-Id: Icd9c2b63f8e59b39ad0349bc5a4456cbd88a5803

8 years agodemos: Change tri to not require shaderClipDistance
Jon Ashburn [Fri, 29 Apr 2016 22:03:10 +0000 (16:03 -0600)]
demos: Change tri to not require shaderClipDistance

Change-Id: Iaa1afa361d29022388005c173054f714c64fb7d7

8 years agolayers: Fix access violation
Dustin Graves [Fri, 29 Apr 2016 17:55:43 +0000 (11:55 -0600)]
layers: Fix access violation

Move the get_dispatch_key(instance/device) call before calling the
driver's vkDestroyDevice/vkDestroyInstance functions in
unique_objects.  This addresses an access violation error reported
by Application Verifier on Windows due to the previously destroyed
instance/device handle being dereferenced.

Change-Id: I151d42fb8a897d9d3b3c988813108b0b6b5b6b0d

8 years agowindowsRuntimeInstaller: improve documentation on how to build RT installer
David Pinedo [Fri, 29 Apr 2016 17:33:59 +0000 (11:33 -0600)]
windowsRuntimeInstaller: improve documentation on how to build RT installer

8 years agolayers: Clarify error message for pipelineLayout incompatible
Tobin Ehlis [Fri, 29 Apr 2016 13:32:31 +0000 (07:32 -0600)]
layers: Clarify error message for pipelineLayout incompatible

8 years agolayers: Add 0 check for VkFlags array elements
Dustin Graves [Thu, 28 Apr 2016 23:58:59 +0000 (17:58 -0600)]
layers: Add 0 check for VkFlags array elements

- Add parameter validation for the case where the elements in an
  array of VkFlags values must not be 0
- Replace the template parameter in the VkFlags validation functions
  with the VkFlags base type.

Change-Id: Ie85d4d048b21e73409ff817425a1db64570e1b2f

8 years agolayers: Add VkFlags parameter validation
Dustin Graves [Tue, 26 Apr 2016 21:37:10 +0000 (15:37 -0600)]
layers: Add VkFlags parameter validation

Add parameter validation for VkFlags derived types to the
parameter_validation layer's code generation scripts.  The following
validation checks are performed:
 - If a VkFlags parameter is not marked as optional in the XML, a message
   is generated when the parameter is 0.
 - If a VkFlags parameter is not 0, a message is generated if it combines
   bits that are not defined by its associated flag bits enumeration.
 - If a VkFlags parameter does not have an associated flag bits
   enumeration it is treated as a reserved value that must be 0.

Change-Id: I6daed360cde46e2a27c84deda1e0798621f92d50

8 years agolayers: Merge enum array NULL/value checks
Dustin Graves [Tue, 26 Apr 2016 22:34:10 +0000 (16:34 -0600)]
layers: Merge enum array NULL/value checks

- Merge the NULL checks and enumeration value checks performed for arrays
  of enumeration values into a single function call.  This is consistent
  with the validation for arrays of other types.
- Reduce duplicate array checking code.

Change-Id: I8c4e05542bb2f52f5623fe6c7ed3629b9b2680e0

8 years agoloader: Add compile-time option for layer search paths.
Jamie Madill [Wed, 6 Apr 2016 22:26:46 +0000 (18:26 -0400)]
loader: Add compile-time option for layer search paths.

This enables programatically specifying search directories for the
layer JSON files. This makes deploying and running compiled layers
in local and automated testing with multiple configurations a much
simpler process.

Change-Id: I0904ef230d020004d8d71cbe265e83cdb6120db8

8 years agoRevert "loader: Remove the default directory paths for ICDs and layers"
Jamie Madill [Wed, 27 Apr 2016 20:33:23 +0000 (16:33 -0400)]
Revert "loader: Remove the default directory paths for ICDs and layers"

This reverts commit b1e6b564616c40062b81d0b8b90e8689dd9aea11.

Change-Id: I9e6bfad81369912c85c3122d6d36093c3c148454

8 years agodemos+tests: Add HOST_COHERENT to HOST_VISIBLE memory requests
Tony Barbour [Thu, 28 Apr 2016 21:05:09 +0000 (15:05 -0600)]
demos+tests: Add HOST_COHERENT to HOST_VISIBLE memory requests

Where the memory is going to be mapped

Change-Id: I66c4f5950fa77fe8b785b12233adbc4e9db797ce