platform/upstream/Vulkan-Tools.git
8 years agodoc: Add "Pending" string back in for shader checker
Tobin Ehlis [Thu, 19 May 2016 19:08:11 +0000 (13:08 -0600)]
doc: Add "Pending" string back in for shader checker

"Pending" is used as a trigger keyword for document validator to know
when one section is ending and a new section is starting so adding it
back in to get doc validation passing.

8 years agodocs: update v0 languages for device layer deprecation
Chia-I Wu [Thu, 19 May 2016 02:45:02 +0000 (10:45 +0800)]
docs: update v0 languages for device layer deprecation

Clarify that a layer's

  vkEnumerateInstanceLayerProperties
  vkEnumerateInstanceExtensionProperties
   - should enumerate the layer itself

  vkEnumerateDeviceLayerProperties
   - is deprecated

  vkEnumerateDeviceExtensionProperties
   - must handle all layers by chaining

  vkCreateInstance
   - `pNext` handling is covered by the spec

  vkCreateDevice
   - allow validation layers to validate layer and extension names

Clarify that the layer library's

  vkEnumerateInstanceLayerProperties
  vkEnumerateInstanceExtensionProperties
   - are not used by the desktop loader
   - can be aliases to the layer's versions when the layer library
     contains only one layer

  vkEnumerateDeviceLayerProperties
  vkEnumerateDeviceExtensionProperties
   - are not used by the desktop loader

  vkGetInstanceProcAddr
   - mention that the special cases for vkCreateDevice and device commands
     are for compatibility

8 years agolayers: Updated validation layer details doc
Mark Lobodzinski [Thu, 19 May 2016 17:50:32 +0000 (11:50 -0600)]
layers: Updated validation layer details doc

Some rewording, pulled out pending work sections and pointed readers
to Github for open/pending issues or feature requests.

Change-Id: I1ad55777a064e7f26a3f5cce48fb63d9e12d4b32

8 years agolayers: DescriptorSet class clean-up
Tobin Ehlis [Thu, 19 May 2016 14:00:00 +0000 (08:00 -0600)]
layers: DescriptorSet class clean-up

Minor formatting improvements, removed some useless "const" decls
and unused vars and updated a few error codes to be more appropriate.

8 years agolayers: Verify that src of copy update is updated
Tobin Ehlis [Thu, 19 May 2016 13:56:18 +0000 (07:56 -0600)]
layers: Verify that src of copy update is updated

Before verifying source update comments make sure that the source
descriptors have been updated. This guards against some obscure
corner cases where a bad source descriptor could slip through the
content verification.

8 years agolayers: Refactor DescriptorSet update interface
Tobin Ehlis [Wed, 18 May 2016 19:43:26 +0000 (13:43 -0600)]
layers: Refactor DescriptorSet update interface

Mainly refactor and moving code in order to provide an interface to
DescriptorSet class that matches top-level vkUpdateDescriptorSets()
function.

Split the validation of an update as a separate task from performing
the update. This allows validation prior to calling down the chain
and then only update the state if validation is clean.

Hoisted all of the update validation into the DescriptorSet class
which prevents having to copy all of the maps into the individual
Descriptor classes. This simplifies both their creation and updating
their contents.

Updated the top-level core_validation UpdateDescriptorSets() code
to match Vulkan Validation Layer Authoring Guidelines. As this is
an initial POC for the architecture, I kept the Pre* & Post* functions
in the core_validation.cpp file, but they should eventually be spun
out.

8 years agolayers: Migrate types from core_validation.h
Tobin Ehlis [Tue, 17 May 2016 14:01:41 +0000 (08:01 -0600)]
layers: Migrate types from core_validation.h

This change just moves a few types from core_validation.h to
core_validation_types.h. This is preparation for migrating DescriptorSet
class to store GLOBAL_CB_NODE ptrs directly.

8 years agolayers: Simplify command buffer pool cleanup
Chris Forbes [Tue, 17 May 2016 06:47:09 +0000 (18:47 +1200)]
layers: Simplify command buffer pool cleanup

We don't need to carefully pick through the pool's buffers, removing
them. We're about to throw away the whole container.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: More slight tidying
Chris Forbes [Tue, 17 May 2016 05:42:27 +0000 (17:42 +1200)]
layers: More slight tidying

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agouse getFramebuffer more
Chris Forbes [Tue, 17 May 2016 03:45:31 +0000 (15:45 +1200)]
use getFramebuffer more

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: simplify TransitionSubpassLayouts
Chris Forbes [Tue, 17 May 2016 03:31:00 +0000 (15:31 +1200)]
layers: simplify TransitionSubpassLayouts

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add getFramebuffer() helper
Chris Forbes [Tue, 17 May 2016 03:27:58 +0000 (15:27 +1200)]
layers: Add getFramebuffer() helper

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Simplify CmdEndRenderPass
Chris Forbes [Tue, 17 May 2016 02:59:22 +0000 (14:59 +1200)]
layers: Simplify CmdEndRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add getRenderPass helper
Chris Forbes [Mon, 16 May 2016 23:36:23 +0000 (11:36 +1200)]
layers: Add getRenderPass helper

Various similar functions exist, but this one was missing. Returns the
RENDER_PASS_NODE ptr if it exists, or nullptr otherwise.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Unify cb lookup in CmdBeginRenderPass
Chris Forbes [Mon, 16 May 2016 23:02:24 +0000 (11:02 +1200)]
layers: Unify cb lookup in CmdBeginRenderPass

We already have a GLOBAL_CB_NODE ptr here, and we know it's not null.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Remove lastBound state reset in destructor
Tobin Ehlis [Thu, 19 May 2016 12:58:13 +0000 (06:58 -0600)]
layers: Remove lastBound state reset in destructor

No need to reset this state right before GLOBAL_CB_NODE is destroyed.

8 years agolayers: Improve DescriptorSet cleanup
Tobin Ehlis [Tue, 17 May 2016 20:23:46 +0000 (14:23 -0600)]
layers: Improve DescriptorSet cleanup

Create private helper function InvalidateBoundCmdBuffers() within the
DescriptorSet class to unify invalidate cases due to set being updated
or freed.

Add a destructor for DescriptorSet to make sure that no bound cmd buffers
hang on to deleted set references.

8 years agolayers: Reduce DescriptorSet map look-ups
Tobin Ehlis [Tue, 17 May 2016 16:41:55 +0000 (10:41 -0600)]
layers: Reduce DescriptorSet map look-ups

Migrate some data structures to refer to DescriptorSet class
instead of raw VkDescriptorSet. This saves map look-ups.

8 years agolayers: Refactor DescriptorSet Update code
Tobin Ehlis [Tue, 17 May 2016 14:31:46 +0000 (08:31 -0600)]
layers: Refactor DescriptorSet Update code

This migrates code for DescriptorSet in_use and flagging bound
command buffers as invalid from core_validation.cpp into DescriptorSet
class.

8 years agolayers: Fix intercepts of parameter_validation
Tobin Ehlis [Tue, 17 May 2016 16:38:45 +0000 (10:38 -0600)]
layers: Fix intercepts of parameter_validation

Make parameter_validation register vkFreeDescriptorSets() and
vkUpdateDescriptorSets() functions as intercepted.

8 years agolayers: Migrate types from core_validation.h
Tobin Ehlis [Tue, 17 May 2016 14:01:41 +0000 (08:01 -0600)]
layers: Migrate types from core_validation.h

This change just moves a few types from core_validation.h to
core_validation_types.h. This is preparation for migrating DescriptorSet
class to store GLOBAL_CB_NODE ptrs directly.

8 years agolayers: Const correctness for debug_report_data param
Tobin Ehlis [Tue, 17 May 2016 13:58:01 +0000 (07:58 -0600)]
layers: Const correctness for debug_report_data param

debug_report_data pointer passed to various log functions can be const.

8 years agodoc: update layer and loader doc for device lyaer deprecation
Jon Ashburn [Wed, 18 May 2016 20:07:47 +0000 (14:07 -0600)]
doc: update layer and loader doc for device lyaer deprecation

Change-Id: I53ff750a25fd5ea390c22f5ded2247dfbedce2aa

8 years agoRemove Xlib dependency when XCB is used
Pavol Klacansky [Tue, 10 May 2016 09:08:19 +0000 (03:08 -0600)]
Remove Xlib dependency when XCB is used

Change-Id: I3626f299aae8acc2640e3f233a46d84cc819fd63

8 years agolayers: Update cmds allowed in 2nd CB subpass
Tobin Ehlis [Tue, 17 May 2016 20:50:07 +0000 (14:50 -0600)]
layers: Update cmds allowed in 2nd CB subpass

If subpassContents are of type VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
then CmdNextSubpass and CmdEndRenderPass are accepatable cmds to be added to
the secondary cmd buffer.

Spec language is from section 7.4 Render Pass Commands: If contents is
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, the contents are recorded in
secondary command buffers that will be called from the primary command
buffer, and vkCmdExecuteCommands is the only valid command on the command
buffer until vkCmdNextSubpass or vkCmdEndRenderPass.

8 years agolayers: GH544 Allow INVALID cmd buffers to be reset
Tobin Ehlis [Mon, 16 May 2016 17:23:01 +0000 (11:23 -0600)]
layers: GH544 Allow INVALID cmd buffers to be reset

BeginCommandBuffer performs an implicit reset of a command buffer.
This allows command buffers in the INVALID state to undergo this
implicit reset.

In order to make sure that an invalid command buffer in the INVALID
state has had EndCommandBuffer called, this commit adds a CMD_END
command that's inserted at the end of a command. If a command buffer
in the INVALID state has had EndCommandBuffer called and it is now
having BeginCommandBuffer called, it's ok to implicitly reset the
command buffer.
buffer's vector of commands.

8 years agolayers: Update layer README.md for release
Mark Lobodzinski [Tue, 17 May 2016 20:52:43 +0000 (14:52 -0600)]
layers: Update layer README.md for release

Updated language surrounding device/instance layer changes, fixed
up some markdown formatting issues.

Change-Id: I66353eeeef6789ab15c4e08c21f9da149f9ce09e

8 years agodemos: GH#559 fix for new Android windows
Ian Elliott [Tue, 17 May 2016 18:03:35 +0000 (12:03 -0600)]
demos: GH#559 fix for new Android windows

On Android, treat a 1st-time new window differently from an nth-time
new window.

8 years agolayers: Add correct IsStorage() to TexelDescriptor
Tobin Ehlis [Tue, 17 May 2016 12:43:48 +0000 (06:43 -0600)]
layers: Add correct IsStorage() to TexelDescriptor

Similar to Norbert's previous fix for ImageDescriptor, TexelDescriptor
was also missing correct IsStorage() override function and so would always
return false instead of actual storage_ value.

Change-Id: I9006cdb614c5b78db0a68b71dcc4300f4c5c0d7f

8 years agolayers: Ignore 'noautovalidity' params w/codgen
Dustin Graves [Mon, 16 May 2016 17:07:59 +0000 (11:07 -0600)]
layers: Ignore 'noautovalidity' params w/codgen

Add special handling to the parameter_validation layer's code
generator for vk.xml parameters with the 'noautovalidty' attribute:
- Ignore vk.xml parameters with the 'noautovalidity' attribute
  when generating code for the parameter_validation layer.
- Implement custom validation routines for parameters with
  'noautovalidity' tags.

Issues-Addressed: GitHub 515
Change-Id: I1bd28cc79233fb8b040d6e107ed5e2176a84edb5

8 years agolayers: Fix transposed messages
Dustin Graves [Tue, 17 May 2016 00:35:55 +0000 (18:35 -0600)]
layers: Fix transposed messages

Fix parameter_validation::get_result_rescription utility
function, which had the messages for VK_ERROR_DEVICE_LOST
and VK_ERROR_INITIALIZATION_FAILED transposed.

Change-Id: I47126389cbfafce663ec474fa04b899e6f2f663c

8 years agoloader: update linux so version
Jeremy Hayes [Tue, 17 May 2016 15:32:12 +0000 (09:32 -0600)]
loader: update linux so version

Change-Id: I84656754952e7488712ca5bcd4701e2e85d92cce

8 years agoloader: Treat GLOBAL layers same as INSTANCE layers
Jon Ashburn [Tue, 17 May 2016 14:43:38 +0000 (08:43 -0600)]
loader: Treat GLOBAL layers same as INSTANCE layers

Also change validation layers type to be GLOBAL so they work with old loaders
prior to device layer deprecation.

Change-Id: I32788cb7788c8ad840ced15236c5ed792edfbbff

8 years agolayers: GH485, Remove redundant format props check
Mark Lobodzinski [Tue, 17 May 2016 14:44:09 +0000 (08:44 -0600)]
layers: GH485, Remove redundant format props check

With new checks in place for CreateImage, old check in CreateRenderPass
is redundant and can be removed.

Change-Id: I53e5201f453041b3c8ba17edc193c1f3b142f4cb

8 years agolayers: GH485, Strengthen image format validation
Mark Lobodzinski [Tue, 17 May 2016 14:42:03 +0000 (08:42 -0600)]
layers: GH485, Strengthen image format validation

CreateImage was checking that format caps weren't null, but was not
validating against color or depth/stencil attachment types.

Change-Id: Ic8996829033f552f6ef7477bdefdaba702ae2403

8 years agodemos: Make sure shaderClipDistance is available before requesting
Tony Barbour [Mon, 16 May 2016 21:47:56 +0000 (15:47 -0600)]
demos: Make sure shaderClipDistance is available before requesting

Change-Id: Id0b58d54a553fce4914ddc1097f1e1c8ac3c337f

8 years agoloader: reduce message level if GDPA of a layer is not found
Jon Ashburn [Mon, 16 May 2016 23:35:43 +0000 (17:35 -0600)]
loader: reduce message level if GDPA of a layer is not found

Change-Id: Ic4dd99015f5f3a07a6657f196fde89181d66c0f6

8 years agoupdate glslang and spirv-tools revisions
GregF [Mon, 16 May 2016 23:26:26 +0000 (17:26 -0600)]
update glslang and spirv-tools revisions

8 years agogit: Ignore Qt generated files
Rene Lindsay [Fri, 13 May 2016 16:19:41 +0000 (09:19 -0700)]
git: Ignore Qt generated files

Change-Id: I5970f83e8316e3f13e79e103cc17c96e31fef95e

8 years agomisc: Update to version 1.0.13, header, xml, JSON files
Jon Ashburn [Mon, 16 May 2016 20:40:36 +0000 (14:40 -0600)]
misc: Update to version 1.0.13, header, xml, JSON files

Change-Id: Id70c1b709d35b2f508e0dde5f862102c87c80521

8 years agoloader: deprecate device layers
Jon Ashburn [Mon, 16 May 2016 20:01:18 +0000 (14:01 -0600)]
loader: deprecate device layers

Change-Id: I43c279e36368bf1ef9a2f446007e34366bfff777

8 years agowindows: Fix android-generate.bat
Cody Northrop [Mon, 16 May 2016 15:09:15 +0000 (09:09 -0600)]
windows: Fix android-generate.bat

Mirror changes made to android-generate.sh in cb9ce9e0

8 years agolayers: Fix VkBool32 return in vk-layer-generate.py.
Jamie Madill [Wed, 11 May 2016 20:11:47 +0000 (16:11 -0400)]
layers: Fix VkBool32 return in vk-layer-generate.py.

This regressed in f4542e618, but is only visible when defining
VK_USE_PLATFORM_WIN32_KHR, so might have been missed. Fixes a
warning in MS 2015, as well as an incorrect return value.

8 years agolayers: Add output file option to vk-generate scripts.
Jamie Madill [Tue, 10 May 2016 14:36:20 +0000 (07:36 -0700)]
layers: Add output file option to vk-generate scripts.

With some build systems, it's not easy to pipe stdout into a file.
This solution allows the scripts to use the last argument as an
output file option. This is a problem in partiuclar for GN.

8 years agolayers: Track dynamic descriptor offsets per set index
Chris Forbes [Mon, 16 May 2016 02:09:35 +0000 (14:09 +1200)]
layers: Track dynamic descriptor offsets per set index

One big pool of dynamic offsets didn't work well:
- CmdBindDescriptorSets just appended, without regard for unaffected sets,
  whether offsets were already recorded for the affected sets, etc. A
  command buffer which bound descriptor sets many times would just
  accumulate junk.
- DescriptorSet::ValidateSetNode was always passed the base of the
  offset pool, when the set's first dynamic offset may have been some
  distance into the pool.

Instead, track a vector of dynamic offsets per set index, alongside
the tracking of the bound descriptor set, which makes both correct
tracking of updates, and correct validation at draw time easier.

Fixes lots of weird behavior with more complex binding sequences.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Narrow scopes of some locals for clarity
Chris Forbes [Sun, 15 May 2016 23:19:50 +0000 (11:19 +1200)]
layers: Narrow scopes of some locals for clarity

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agoFix allows to return actual storage_ and not default false value.
Norbert Nopper [Sun, 15 May 2016 17:19:41 +0000 (19:19 +0200)]
Fix allows to return actual storage_ and not default false value.

8 years agolayers: Clean up old mem_tracker merge remnants
Tobin Ehlis [Thu, 12 May 2016 22:57:14 +0000 (16:57 -0600)]
layers: Clean up old mem_tracker merge remnants

Clean up most of the remaining MTMERGESOURCE defines.
Many of these come straight out. A number of copy functions
were able to merge some code to provide a slight efficiency gain.

8 years agolayers: Fix android build errors
Tobin Ehlis [Mon, 16 May 2016 14:36:40 +0000 (08:36 -0600)]
layers: Fix android build errors

8 years agotests: Update doc validation
Tobin Ehlis [Thu, 12 May 2016 14:42:09 +0000 (08:42 -0600)]
tests: Update doc validation

Print a single warning line identifying the number of missing tests.

8 years agotests: Add InvalidMemoryMapping test
Tobin Ehlis [Thu, 12 May 2016 14:32:31 +0000 (08:32 -0600)]
tests: Add InvalidMemoryMapping test

8 years agolayers: Fixes to memory mapping checks
Tobin Ehlis [Thu, 12 May 2016 14:31:32 +0000 (08:31 -0600)]
layers: Fixes to memory mapping checks

MapMemory w/ size 0 is now invalid in the spec so remove comment and
change callback to ERROR.
Update some error messages for clarity.
Only update the mapped memory range state if MapMemory succeeds.

8 years agotests: Update document validation related to tests
Tobin Ehlis [Wed, 11 May 2016 20:57:49 +0000 (14:57 -0600)]
tests: Update document validation related to tests

If a test is not done, standardize on "TODO" as the only allowed
text. Otherwise, the txt is considered to be a valid test and an
error will be flagged if the test cannot be found in
layer_validation_tests.cpp.

8 years agolayers: Kill MISSING_MEM_BINDINGS error
Tobin Ehlis [Wed, 11 May 2016 20:40:44 +0000 (14:40 -0600)]
layers: Kill MISSING_MEM_BINDINGS error

The MEMTRACK_MISSING_MEM_BINDINGS enum was dead code. There's no way
that the check can be hit in current code so added an assert() for
future safety and killed the checks and their documentation.

8 years agotests: Add tests for INVALID_ALIASING cases
Tobin Ehlis [Wed, 11 May 2016 19:52:53 +0000 (13:52 -0600)]
tests: Add tests for INVALID_ALIASING cases

8 years agolayers: Move `fb` from RENDER_PASS_NODE to GLOBAL_CB_NODE
Chris Forbes [Fri, 13 May 2016 04:23:58 +0000 (16:23 +1200)]
layers: Move `fb` from RENDER_PASS_NODE to GLOBAL_CB_NODE

This is part of a renderpass instance, not of the renderpass itself.
If stored where MT put it, things go horribly wrong when recording
command buffers in parallel.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Finish unhooking layer_data from SC pipeline validation
Chris Forbes [Fri, 13 May 2016 01:42:12 +0000 (13:42 +1200)]
layers: Finish unhooking layer_data from SC pipeline validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Use pipeline layout ptr from pipeline node
Chris Forbes [Fri, 13 May 2016 01:39:17 +0000 (13:39 +1200)]
layers: Use pipeline layout ptr from pipeline node

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add PIPELINE_LAYOUT_NODE * to PIPELINE_NODE
Chris Forbes [Fri, 13 May 2016 01:35:20 +0000 (13:35 +1200)]
layers: Add PIPELINE_LAYOUT_NODE * to PIPELINE_NODE

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: No longer require layer_data for stage validation
Chris Forbes [Fri, 13 May 2016 01:27:58 +0000 (13:27 +1200)]
layers: No longer require layer_data for stage validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Pass in shaderModuleMap to SC
Chris Forbes [Fri, 13 May 2016 01:17:42 +0000 (13:17 +1200)]
layers: Pass in shaderModuleMap to SC

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: use RENDER_PASS_NODE* from pipeline in SC
Chris Forbes [Fri, 13 May 2016 01:01:24 +0000 (13:01 +1200)]
layers: use RENDER_PASS_NODE* from pipeline in SC

Breaks one more dep from SC guts -> layer_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Add RENDER_PASS_NODE* to PIPELINE_NODE*
Chris Forbes [Fri, 13 May 2016 01:01:02 +0000 (13:01 +1200)]
layers: Add RENDER_PASS_NODE* to PIPELINE_NODE*

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: LX518, Fix ObjectTracker memory leaks
Mark Lobodzinski [Thu, 12 May 2016 21:14:07 +0000 (15:14 -0600)]
layers: LX518, Fix ObjectTracker memory leaks

Several places in object_tracker were not properly deleting data
structures, which caused signicant memory leaks.

Change-Id: Ie64ab18efecc45838e103dd7a8cb5f75c92155c4

8 years agolayers: PR512 Update some of the swapchain errors that are now tested.
Ian Elliott [Mon, 9 May 2016 19:54:01 +0000 (13:54 -0600)]
layers: PR512 Update some of the swapchain errors that are now tested.

8 years agolayers: PR512 Fix swapchain's validateCreateSwapchainKHR()
Ian Elliott [Mon, 9 May 2016 18:33:47 +0000 (12:33 -0600)]
layers: PR512 Fix swapchain's validateCreateSwapchainKHR()

It used to dereference pCreateInfo, even when it was NULL.

8 years agotests: GH431 PR 510 Apply suggested changes
Karl Schultz [Thu, 12 May 2016 14:11:23 +0000 (08:11 -0600)]
tests: GH431 PR 510 Apply suggested changes

- Convert error to warning for overlapping ranges
- Consider overlapping ranges in range checks
- User a reference to avoid a copy
- Many more additional tests

Change-Id: I18ad43b98684f16a978461a1a089ebff5437a563

8 years agolayers: Remove unused var to fix android build
Tobin Ehlis [Wed, 11 May 2016 20:44:13 +0000 (14:44 -0600)]
layers: Remove unused var to fix android build

8 years agolayers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time
Tobin Ehlis [Wed, 11 May 2016 16:38:29 +0000 (10:38 -0600)]
layers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time

Previously performing this check at CmdBeginRenderPass time, but we have
all of the data needed when renderpass is created so check there instead.

8 years agotests: GH431 Add layer checks and tests for push constant
Karl Schultz [Fri, 6 May 2016 19:56:42 +0000 (13:56 -0600)]
tests: GH431 Add layer checks and tests for push constant

Change-Id: I46eb5f9adbe702a278cded0f73dc18d1617489f0

Fix windows compilation issues

Change-Id: Ic9b9795e34d1e1e68bae9838b8538bb2e37d18b4

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

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

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

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

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

Split command intercepting out to intercept_core_instance_command and
intercept_khr_surface_command.

8 years agoswapchain: add intercept_khr_swapchain_command
Chia-I Wu [Thu, 5 May 2016 08:13:19 +0000 (16:13 +0800)]
swapchain: 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 agoswapchain: add intercept_core_device_command
Chia-I Wu [Thu, 28 Apr 2016 06:38:57 +0000 (14:38 +0800)]
swapchain: 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 agoswapchain: improve EnumerateDeviceExtensionProperties
Chia-I Wu [Thu, 28 Apr 2016 06:21:13 +0000 (14:21 +0800)]
swapchain: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is swapchain.

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

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

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

Drop VK_LAYER_EXPORT as well.

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

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

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

Move them toward the end of the file.

8 years agolayers: Determine whether command buffer can be ended with active render pass
Cody Northrop [Mon, 9 May 2016 22:15:57 +0000 (16:15 -0600)]
layers: Determine whether command buffer can be ended with active render pass

8 years agotests: Enhance doc validator to recognize Wsi tests
Tobin Ehlis [Wed, 11 May 2016 13:26:33 +0000 (07:26 -0600)]
tests: Enhance doc validator to recognize Wsi tests

Enable doc validator to recognize tests in VkWsiEnabledLayerTest group.

8 years agoloader: update linux so version
Jeremy Hayes [Thu, 12 May 2016 17:29:49 +0000 (11:29 -0600)]
loader: update linux so version

Change-Id: I027e6f9e0010074c0a83748e3724c7ef1cabb4f9

8 years agolayers: Additional vkCreateImageView validation
Dustin Graves [Wed, 27 Apr 2016 23:44:56 +0000 (17:44 -0600)]
layers: Additional vkCreateImageView validation

Add more vkCreateImageView parameter validation, based on the valid
usage section for VkImageViewCreateInfo in the Vulkan specification.

Issues-Addressed: LX #502
Change-Id: I7fd743312f43a8ff36f2db9f6b50569d630f9dca

8 years agolayers: Additional vkCreateImage param validation
Dustin Graves [Thu, 12 May 2016 00:31:44 +0000 (18:31 -0600)]
layers: Additional vkCreateImage param validation

Add more vkCreateImage parameter validation, based on the valid usage
section for VkImageCreateInfo.

Issues-Addressed: GitHub #354
Change-Id: Ia978a64f6c03c3cf115a07e707099253104e04a1

8 years agolayers: Adjust queue family index error messages
Dustin Graves [Thu, 21 Apr 2016 22:30:17 +0000 (16:30 -0600)]
layers: Adjust queue family index error messages

Adjust parameter_validation layer's validate_queue_family_indices
error messages:
- Split validate_queue_family_indices into separate functions for
  arrays of indices and single index values, allowing error messages
  to be formatted with and without array brackets when appropriate.
- Print the correct parameter name in error messages.

Change-Id: I9a77ccbd0ad14da4732362d2694ed205e13c3a40

8 years agobuild: Disable RTTI generation
Karl Schultz [Thu, 12 May 2016 16:28:57 +0000 (10:28 -0600)]
build: Disable RTTI generation

Disablng RTTI can save a little space.  And it will help keep
some C++ features from being used that are not (well) supported
on some platforms.

Change-Id: I8050009a65de640c2e41cdefb1ead43c88bb710a

8 years agolayers: Sync XML registry files from Vulkan-Docs
Dustin Graves [Tue, 10 May 2016 22:44:16 +0000 (16:44 -0600)]
layers: Sync XML registry files from Vulkan-Docs

Sync the vk.xml and related Python scripts with the latest revisions from
Vulkan-Docs:
 - Update local copy of vk.xml from Vulkan-Docs
 - Merge minor changes to genvk.py and generator.py from Vulkan-Docs to
   local copies
 - Add debug marker function pointers to VkLayerDispatchTable
 - Update parameter_validation code generation to support use of types
   across API features; The core API feature needs to be aware of a
   structure defined by the AMD_rasterization_order feature for the
   purpose of pNext validation
 - Modify thread_check code generation to add TODO messages for debug
   marker support

Change-Id: I4d5b98683592f4ef404cb46e5b0f6ad519912382

8 years agolayers: Remove unused var to fix android build
Tobin Ehlis [Wed, 11 May 2016 20:44:13 +0000 (14:44 -0600)]
layers: Remove unused var to fix android build

8 years agotests: Add required parameter/error code tests
Dustin Graves [Tue, 10 May 2016 17:42:58 +0000 (11:42 -0600)]
tests: Add required parameter/error code tests

Add tests for the parameter_validation REQUIRED_PARAMETER and
FAILURE_RETURN_CODE error codes to layer_validation_tests.

Change-Id: I324901e411eb92dbaf0c7d232ae1d8bf63d433b1

8 years agotests: Add unrecognized value tests
Dustin Graves [Mon, 9 May 2016 22:21:12 +0000 (16:21 -0600)]
tests: Add unrecognized value tests

Add tests for unrecognized Vulkan enumeration, VkFlags, and VkBool32
values to layer_validation_tests.

Change-Id: I01d913c3903a7ca959c4bccb60a864a5f91c8809

8 years agotests: Add struct validation tests
Dustin Graves [Mon, 9 May 2016 20:40:29 +0000 (14:40 -0600)]
tests: Add struct validation tests

Add Vulkan structure sType and pNext validation tests to
layer_validation_tests.

Change-Id: I774d316def6697f2f3ebf5f0c20270fb0ad2daae

8 years agolayers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time
Tobin Ehlis [Wed, 11 May 2016 16:38:29 +0000 (10:38 -0600)]
layers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time

Previously performing this check at CmdBeginRenderPass time, but we have
all of the data needed when renderpass is created so check there instead.

8 years agolayers: Remove MEMTRACK_INVALID_LAYOUT
Tobin Ehlis [Wed, 11 May 2016 14:47:55 +0000 (08:47 -0600)]
layers: Remove MEMTRACK_INVALID_LAYOUT

Use DRAWSTATE_INVALID_IMAGE_LAYOUT instead as MEMTRACK version was only used
in a single case and the check is more in-line with DRAWSTATE behavior.

8 years agotests: Remove invalid error enum MEM_OBJ_CLEAR_EMPTY_BINDINGS
Tobin Ehlis [Wed, 11 May 2016 14:10:27 +0000 (08:10 -0600)]
tests: Remove invalid error enum MEM_OBJ_CLEAR_EMPTY_BINDINGS

This error enum is no longer used and has been superceded by more specific errors.

8 years agotests: Remove invalid error enum MEMTRACK_MEMORY_BINDING_ERROR
Tobin Ehlis [Wed, 11 May 2016 14:04:32 +0000 (08:04 -0600)]
tests: Remove invalid error enum MEMTRACK_MEMORY_BINDING_ERROR

This error enum is no longer used and has been superceded by more specific errors.

8 years agoMerge pull request #523 from KhronosGroup/CoreValidationMessageCleanup
Mark Mueller [Wed, 11 May 2016 15:07:46 +0000 (08:07 -0700)]
Merge pull request #523 from KhronosGroup/CoreValidationMessageCleanup

layers:LX#470 Address poor use of hex vs dec output & w/a convention

8 years agolayers:LX#470 Fix poor use of hex vs dec output
Mark Mueller [Tue, 3 May 2016 19:17:29 +0000 (13:17 -0600)]
layers:LX#470 Fix poor use of hex vs dec output

1) Introduce convention of explicitly placing "0x" before hex
    format requests for clarity (don't use "%#")
2) All lower case in hex output (except w/stringstream which refuses
    to do anything but uppercase, possibly only on windows).
3) Decorated pointers are printed for all Vulkan structure types.
3) Some intelligence in generators based on Vulkan variable name:
     if the Vulkan variable name contains ("flag", "bit", "offset",
     "handle", "buffer", "object", "mask") it will be output in
     hexadecimal format

4) Remove "using namespace std;" from global scope of vk_struct_string_helper_cpp.h

Change-Id: Idbae73bfdaa3bc059543d43b209373cd0bcbc099

8 years agolayers:pass RENDER_PASS_NODE* around more
Chris Forbes [Fri, 6 May 2016 04:55:18 +0000 (16:55 +1200)]
layers:pass RENDER_PASS_NODE* around more

Signed-off-by: Chris Forbes <chrisforbes@google.com>
8 years agolayers: Hold active RENDER_PASS_NODE rather than VkRenderPass in CB node
Chris Forbes [Fri, 6 May 2016 04:31:14 +0000 (16:31 +1200)]
layers: Hold active RENDER_PASS_NODE rather than VkRenderPass in CB node

Allows eliminating the bulk of the renderPassMap lookups

Signed-off-by: Chris Forbes <chrisforbes@google.com>