platform/upstream/Vulkan-Tools.git
7 years agodocs: Fix .md syntax typo in header
Rene Lindsay [Tue, 25 Oct 2016 17:05:09 +0000 (11:05 -0600)]
docs: Fix .md syntax typo in header

7 years agoscripts:Update unique error enums as of 10/25/16
Tobin Ehlis [Tue, 25 Oct 2016 12:33:27 +0000 (06:33 -0600)]
scripts:Update unique error enums as of 10/25/16

Two new checks, two killed checks, and one updated check this week.

Cmd line used for update:
python spec.py -update -remap 2270-2042

7 years agoloader: Fix cast warning
Jamie Madill [Mon, 24 Oct 2016 20:54:40 +0000 (16:54 -0400)]
loader: Fix cast warning

Fix a cast warning found in loader.c.

Change-Id: Ie39e84ce8f050a2655c2ad3a1a146dda17c15bf9

7 years agoloader: gh610- More debug log messages
Mark Young [Fri, 21 Oct 2016 22:25:47 +0000 (16:25 -0600)]
loader: gh610- More debug log messages

Add more debug log messages for CreateDevice.

Change-Id: Iba02facc479fab6a6f976addc94da3accf9541f4

7 years agoexternals: Update glslang revision
Mark Young [Fri, 21 Oct 2016 17:04:52 +0000 (11:04 -0600)]
externals: Update glslang revision

Updated glslang to use commit
3fc1543794d1c368d690e60eaac6111c8c436aa7 from 10/20/2016.

Change-Id: I016273fbe936abd2dd5c19f5ee9ce3e6d09d72e6

7 years agoAdding input attachment access as optional for attachment optimal layouts.
Jan-Harald Fredriksen [Fri, 21 Oct 2016 13:14:16 +0000 (15:14 +0200)]
Adding input attachment access as optional for attachment optimal layouts.

Change-Id: I0ef3d1af2ef38d218f1721e98eb1d98b326cd340

7 years agodemos: Add src and dst stages to set_image_layout
Tony Barbour [Wed, 19 Oct 2016 19:58:29 +0000 (13:58 -0600)]
demos: Add src and dst stages to set_image_layout

Change-Id: I70e70b8085cc1196b5ffb69283c158ea8bd7ec1b

7 years agotests: Add postive test group to validatelayerdoc script
Karl Schultz [Thu, 20 Oct 2016 20:46:44 +0000 (14:46 -0600)]
tests: Add postive test group to validatelayerdoc script

Change-Id: If8b1d81d4c755ba8fc409d141387291d0e7d813d

7 years agolayers: More err enum work in obj_tracker
Karl Schultz [Tue, 18 Oct 2016 00:27:20 +0000 (18:27 -0600)]
layers: More err enum work in obj_tracker

Change-Id: I299b68ec2e66d77812ce5dff0d457e328cdd6c5c

7 years agodemos: Fix access masks when cube uses staging buffer
Tony Barbour [Wed, 19 Oct 2016 21:23:36 +0000 (15:23 -0600)]
demos: Fix access masks when cube uses staging buffer

Change-Id: I89655f8224c3543d9c57f2cf7bd55b2c2a21c09f

7 years agoscripts:Fix valid usage parsing
Tobin Ehlis [Tue, 18 Oct 2016 21:55:07 +0000 (15:55 -0600)]
scripts:Fix valid usage parsing

Fixes #1067

Original valid usage parsing was naive and in how it used "strong" tags
to disable valid usage parsing which led to missing some checks and
including some spec language that wasn't valid usage.

This change isolates valid usage parsing to sidebar blocks which will
always contain the valid usage language. This prevents anything outside
of a sidebar from being incorrectly caught as valid usage and it also
catched a number of valid usage cases that were missed with previous
parser.

There are about 50 valid usage cases removed and about 300 added.

7 years agolayers: Reword from cryptic abbreviations to readable words
Mike Weiblen [Tue, 18 Oct 2016 01:33:05 +0000 (19:33 -0600)]
layers: Reword from cryptic abbreviations to readable words

Expand abbreviations to improve readability:
DS=depth/stencil
DS=descriptor set
CB=command buffer
VS=vertex shader
FS=fragment shader
VTX=vertex
PSO=pipeline state object

Change-Id: I48fe917aac50d1911fe2a3aa1ed2c739637c7645

7 years agolayers: Fix core_validation function declarations
Mike Stroyan [Wed, 19 Oct 2016 15:27:17 +0000 (09:27 -0600)]
layers: Fix core_validation function declarations

Add VKAPI_ATTR to FlushMappedMemoryRanges and
InvalidateMappedMemoryRanges function declarations.

7 years agotests: Add ValErrorId support to ErrorMonitor
Mark Lobodzinski [Tue, 18 Oct 2016 19:34:58 +0000 (13:34 -0600)]
tests: Add ValErrorId support to ErrorMonitor

SetDesiredMessage is now overloaded to take a string or a unique
error enum ID (VALIDATION_ERROR_xxxxx) to identify a particular
message. Passing in VALIDATION_ERROR_MAX_ENUM will match all
messages for positive tests.  Also updated a couple of tests to use
error enums instead of strings.

Change-Id: Ic7723cf88ea6bda57d89ab82aace6ed358b14382

7 years agodemos: Fix misspelling
Mike Weiblen [Tue, 18 Oct 2016 00:52:05 +0000 (18:52 -0600)]
demos: Fix misspelling

Change-Id: I044619fb70b0a77dcbcdfe7c72dc8915119239a3

7 years agolayers:Fix cmd buffer to buffer binding
Tobin Ehlis [Tue, 18 Oct 2016 12:31:15 +0000 (06:31 -0600)]
layers:Fix cmd buffer to buffer binding

Bind the buffer to the cmd buffer independent of the buffer memory.
Previously in the null memory case we'd bind the cmd buffer to the
buffer without binding the buffer to the cmd buffer. This fixes that
imbalance.

7 years agolayers:Fix memory cleanup at DestroyImage time
Tobin Ehlis [Wed, 12 Oct 2016 00:46:21 +0000 (18:46 -0600)]
layers:Fix memory cleanup at DestroyImage time

Need to ClearMemoryObjectBindings() when an image is destroyed. Do
this even if mem_info is NULL which it will be for sparse bindings.

7 years agolayers:Update memory helper funcs to use BINDABLE
Tobin Ehlis [Tue, 11 Oct 2016 23:29:32 +0000 (17:29 -0600)]
layers:Update memory helper funcs to use BINDABLE

When getting, setting & clearing memory bindings, work with the updated
BINDABLE superclass of IMAGE & BUFFER state objects.

7 years agolayers:Add BINDABLE superclass for image/buffer state
Tobin Ehlis [Tue, 11 Oct 2016 20:26:49 +0000 (14:26 -0600)]
layers:Add BINDABLE superclass for image/buffer state

Support for sparse memory binding is virually non-existant in current
validation layers. This is a first step down a long path to improve
sparse binding support.

The BINDABLE superclass is sub-classed by IMAGE & BUFFER state objs
and contains memory binding info in both the single binding and
sparse binding cases.

Bindings are initially encapsulated in the new MEM_BINDING struct.
For single binding cases, things are almost exactly the same as they
have always been. For sparse binding, the various bindings will be
stored in the sparse_bindings set where we initally don't have complete
information on the sparse binding as we only store the MEM_BINDING info
but this is a start.

7 years agodemos: Cube barrier changes from GH #1033
Tony Barbour [Tue, 11 Oct 2016 17:41:05 +0000 (11:41 -0600)]
demos: Cube barrier changes from GH #1033

Change-Id: Ic68f9cd722474dc74957625c23c0f801f4b3852c

7 years agolayers:Kill blank array element for empty binding
Tobin Ehlis [Mon, 17 Oct 2016 19:51:57 +0000 (13:51 -0600)]
layers:Kill blank array element for empty binding

Fixes #1053

DescriptorLayout class was incrementing global index for empty bindings
which led to an empty array entry that could cause invalid errors when
updating descriptors.
This change will only increment global index for non-empty bindings.

7 years agoheader: Update vulkan.hpp to version 1.0.31
Mark Lobodzinski [Mon, 17 Oct 2016 22:52:10 +0000 (16:52 -0600)]
header: Update vulkan.hpp to version 1.0.31

Change-Id: Ia81cef98ef59431255e608d3a3faecfc4368ef8d

7 years agoloader: Update SOVERSION to version 1.0.31
Mark Lobodzinski [Mon, 17 Oct 2016 22:50:51 +0000 (16:50 -0600)]
loader: Update SOVERSION to version 1.0.31

Change-Id: If2e6d7dee62d03cfc95bebd8418c53bceef6fc22

7 years agolayers: Update layer json files to version 1.0.31
Mark Lobodzinski [Mon, 17 Oct 2016 22:49:59 +0000 (16:49 -0600)]
layers: Update layer json files to version 1.0.31

Change-Id: I0f88d1c5572b643d83168095d95a3f33c6d5b837

7 years agoheader: Move vulkan.h. to version 1.0.31
Mark Lobodzinski [Mon, 17 Oct 2016 22:48:35 +0000 (16:48 -0600)]
header: Move vulkan.h. to version 1.0.31

Change-Id: I854442c5ef7f42b380766fd24aa11ef48dfb4ffb

7 years agoheader: Move vk.xml to version 1.0.31
Mark Lobodzinski [Mon, 17 Oct 2016 22:48:09 +0000 (16:48 -0600)]
header: Move vk.xml to version 1.0.31

Change-Id: If908ba18545c4afc0d041904c0daa57a2569c5a9

7 years agolayers:Fix Val IDs msg calls for
Tobin Ehlis [Tue, 18 Oct 2016 13:31:22 +0000 (07:31 -0600)]
layers:Fix Val IDs msg calls for

Two CmdCopyImage checks were looking up the incorrect strings for their
error enums. Use the correct strings.

7 years agoscripts:Update spec script to include extensions
Tobin Ehlis [Sat, 15 Oct 2016 00:06:16 +0000 (18:06 -0600)]
scripts:Update spec script to include extensions

Moving all of the validation error enums from the vanilla 1.0 script to
the script that includes all of the extensions.

Took a bit of script wizardry and lots of back and forth to get all of
the new checks matching the old ones. I think everything is there from
the original except for 4 layer checks (enums 1661-1664) that were all
invalid errors.

For reference here's the complete command line used to migrate:
python spec.py -update -remap 628-619:708-671:729-689:732-692:762-722:\
1251-1203:1253-1204:1256-1206:1258-1207:1315-1263:1320-1268:1322-1269:\
1364-1310:1366-1311:1369-1313:1371-1314:1555-1458:1684-1584:1697-1597:\
1960-1679,3:1945-1665,13:1963-1683,11

7 years agolayers: Fix bad use of PIPELINE_STATE ptr value in errors
Chris Forbes [Mon, 17 Oct 2016 02:45:49 +0000 (15:45 +1300)]
layers: Fix bad use of PIPELINE_STATE ptr value in errors

Fixes #1056.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoloader: Fix vkDestroySurfaceKHR call on NULL surf
Mark Young [Mon, 17 Oct 2016 18:27:36 +0000 (12:27 -0600)]
loader: Fix vkDestroySurfaceKHR call on NULL surf

Thanks to Derrick Owens @ AMD for catching this bug which can
cause a null-ptr dereference while running Khronos conformance
test dEQP-VK.wsi.win32.surface.destroy_null_handle.

Change-Id: I104a890cd23615458566ec71e072e21c76e989cb

7 years agodemos: fix cubepp on wayland errors
Jeremy Hayes [Fri, 14 Oct 2016 21:09:35 +0000 (15:09 -0600)]
demos: fix cubepp on wayland errors

Change-Id: I74fe07d170ee0e403357a018554ac9d6c754b6b5

7 years agoexternal: Update spirv and glslang revisions
Mark Young [Fri, 14 Oct 2016 20:19:25 +0000 (14:19 -0600)]
external: Update spirv and glslang revisions

Updated spirv-tools, spirv-headers, and glslang to latest
commits in their respective repositories.

Change-Id: Ic6543f827de2311a3e88d6e97bedcc0e77d7086a

7 years agoloader: Fix compilation warning in debug_report.c
Mark Young [Fri, 14 Oct 2016 20:18:56 +0000 (14:18 -0600)]
loader: Fix compilation warning in debug_report.c

Change-Id: I92e7f23217ef3897995514360c23849ef1cfadeb

7 years agolayers: Update CmdCopyImage validation for style
Mark Lobodzinski [Fri, 14 Oct 2016 19:09:48 +0000 (13:09 -0600)]
layers: Update CmdCopyImage validation for style

Updated function/var names for layer coding style guidelines.

Change-Id: Ia9bcc2bd1c87e0e5f49d0d5996c030d727d971d2

7 years agolayers: Add Val IDs for a more cmdCopyImage checks
Mark Lobodzinski [Fri, 14 Oct 2016 18:13:33 +0000 (12:13 -0600)]
layers: Add Val IDs for a more cmdCopyImage checks

A couple more of the CmdCopyImage checks that have LVTs got added.
One of the remaining ones is not covered by valid usage but is a
'must' check, will add later.

Change-Id: Id9a1b7ad276c159149be4ef8c29d845baae29a35

7 years agolayers: GH1055, Update unique validation IDs
Mark Lobodzinski [Fri, 14 Oct 2016 17:40:31 +0000 (11:40 -0600)]
layers: GH1055, Update unique validation IDs

For CmdCopyImage bounds checks.

Change-Id: Ifb0f9916df9f0ee50815733c990f3e4397565e7e

7 years agolayers: Updated validation database for new checks
Mark Lobodzinski [Fri, 14 Oct 2016 17:43:44 +0000 (11:43 -0600)]
layers: Updated validation database for new checks

Updated entries for new CmdCopyImage tests.

Change-Id: I3511da9c4e335fbd25eef0b60be5d4f9cc12a4d0

7 years agolayers: Add error message header to image layer
Mark Lobodzinski [Fri, 14 Oct 2016 17:43:06 +0000 (11:43 -0600)]
layers: Add error message header to image layer

Change-Id: I12afb66f2ba6de940f3257e52c5073690acd3d45

7 years agolayers: GH1055, Add bounds checks for CmdCopyImage
Mark Lobodzinski [Fri, 14 Oct 2016 16:59:27 +0000 (10:59 -0600)]
layers: GH1055, Add bounds checks for CmdCopyImage

Added missing bounds-checking code.

Change-Id: Ia65b8bb22e6c580c3ebbb26409ddfbf5dcb683b6

7 years agolayers:Kill old MTMERGE defines
Tobin Ehlis [Wed, 12 Oct 2016 13:25:59 +0000 (07:25 -0600)]
layers:Kill old MTMERGE defines

Just a couple of these lingering that we can now axe

7 years agolayers: Suppress warning generation after app acknowledges an error
Chris Forbes [Thu, 13 Oct 2016 01:44:03 +0000 (14:44 +1300)]
layers: Suppress warning generation after app acknowledges an error

The app already knows about the problem-- it has requested that the call
be skipped. Producing another warning afterward is just noise.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Stop copying INSTANCE_STATE into device
Chris Forbes [Thu, 13 Oct 2016 02:34:59 +0000 (15:34 +1300)]
layers: Stop copying INSTANCE_STATE into device

V2: Squash in second patch; resolve conflicts with @tobine's renames.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers:Pipeline state rename fixup
Tobin Ehlis [Thu, 13 Oct 2016 16:18:18 +0000 (10:18 -0600)]
layers:Pipeline state rename fixup

Overzealous bulk replace changed getPipelineLayout to getPipelineState
layout. This should not have been changed so reverting here.

7 years agolayers:Rename IMAGE_NODE to IMAGE_STATE
Tobin Ehlis [Wed, 12 Oct 2016 23:17:57 +0000 (17:17 -0600)]
layers:Rename IMAGE_NODE to IMAGE_STATE

Another node->state rename pass.

7 years agolayers:Refactor DestroyImage
Tobin Ehlis [Wed, 12 Oct 2016 23:14:02 +0000 (17:14 -0600)]
layers:Refactor DestroyImage

Add validation flag for DestroyImage and update it to follow the
Pre/Post pattern.

7 years agolayers:Refactor DestroyRenderPass
Tobin Ehlis [Wed, 12 Oct 2016 22:58:54 +0000 (16:58 -0600)]
layers:Refactor DestroyRenderPass

Add validation flag for DestroyRenderPass and update it to follow the
Pre/Post pattern.

7 years agolayers:Rename RENDER_PASS_NODE to *_STATE
Tobin Ehlis [Wed, 12 Oct 2016 21:24:03 +0000 (15:24 -0600)]
layers:Rename RENDER_PASS_NODE to *_STATE

Another node->state rename pass.

7 years agolayers:Bind descriptor pool to cmd buffer
Tobin Ehlis [Wed, 12 Oct 2016 21:09:16 +0000 (15:09 -0600)]
layers:Bind descriptor pool to cmd buffer

Add pool state to DescriptorSet instead of just the pool.
Then, at bind time, create a dual binding between the cmd buffer
and the pool. This correcly puts pool in-use when cmd buffer is
submitted, as well as flagging cmd buffer as INVALID if/when the
pool is destroyed.

7 years agolayers:Update some pool_node naming
Tobin Ehlis [Wed, 12 Oct 2016 21:01:39 +0000 (15:01 -0600)]
layers:Update some pool_node naming

Change some pool_node names to pool_state in DescriptorSet class.
Also update getPool function prototype to the new name of
getDescriptorSetState().

7 years agolayers:Add pool member to DescriptorSet class
Tobin Ehlis [Wed, 12 Oct 2016 20:34:12 +0000 (14:34 -0600)]
layers:Add pool member to DescriptorSet class

When creating a DescriptorSet instance, record the pool that the set is
allocated from in a private pool_ variable.
Then, when binding a set to a cmd buffer, also create a binding between
the command buffer and the pool.
This allows us to catch the in-use case when sets are implicitly freed
by calling vkDestroyDescriptorPool().

7 years agolayers:Rename DESCRIPTOR_POOL_NODE to *_STATE
Tobin Ehlis [Wed, 12 Oct 2016 20:27:30 +0000 (14:27 -0600)]
layers:Rename DESCRIPTOR_POOL_NODE to *_STATE

Continuing the NODE->STATE renaming effort

7 years agolayers:Kill outdated comment
Tobin Ehlis [Wed, 12 Oct 2016 20:05:01 +0000 (14:05 -0600)]
layers:Kill outdated comment

7 years agotests:Add FramebufferInUseDestroyedSignaled test
Tobin Ehlis [Wed, 12 Oct 2016 19:20:29 +0000 (13:20 -0600)]
tests:Add FramebufferInUseDestroyedSignaled test

This test creates a binding between framebuffer and cmd buffer, submits
the cmd buffer and then destroys the framebuffer while still in-use to
verify that the correct error is triggered.
Update database file with new test for check 00422.

7 years agolayers:Fix framebuffer cmd buffer binding
Tobin Ehlis [Wed, 12 Oct 2016 19:18:20 +0000 (13:18 -0600)]
layers:Fix framebuffer cmd buffer binding

Wasn't correctly establishing binding between framebuffer object and
cmd buffer object that it's used in. Updated code to use standard
addCommandBufferBinding() function.

7 years agolayers:Rename FRAMEBUFFER_NODE to *_STATE
Tobin Ehlis [Wed, 12 Oct 2016 17:54:09 +0000 (11:54 -0600)]
layers:Rename FRAMEBUFFER_NODE to *_STATE

Part of ongoing effort to kill nebulous "NODE" moniker and switch to
"STATE" instead.

7 years agolayers:Refactor DestroyFramebuffer
Tobin Ehlis [Wed, 12 Oct 2016 17:48:21 +0000 (11:48 -0600)]
layers:Refactor DestroyFramebuffer

Add validation flag for DestroyFramebuffer and update it to follow the
Pre/Post pattern. This function didn't previously perform an in-use
check so added that check.
Updated database file.

7 years agolayers:Add in-use unique error enums
Tobin Ehlis [Wed, 12 Oct 2016 15:58:35 +0000 (09:58 -0600)]
layers:Add in-use unique error enums

Pass error enum into ValidateObjectNotInUse function and update
all of the existing calls to pass correct enum.
Also update database file to record checks as implemented and note
test status.

7 years agolayers:Add validation to DestroyDescriptorPool
Tobin Ehlis [Wed, 12 Oct 2016 15:29:26 +0000 (09:29 -0600)]
layers:Add validation to DestroyDescriptorPool

Add validation flag for DestroyDescriptorPool and update it with
validation code using the Pre/Post pattern.
Flag error if descriptor pool is in use and invalidate any cmd buffers
that it was bound to. Remove pool state from map when it's destroyed.
When the pool is destroyed make sure all of its descriptor sets are
also freed.

7 years agolayers:Rename PIPELINE_NODE to PIPELINE_STATE
Tobin Ehlis [Wed, 12 Oct 2016 15:05:51 +0000 (09:05 -0600)]
layers:Rename PIPELINE_NODE to PIPELINE_STATE

Would like to migrate "NODE" structs to "STATE" as it's more
descriptive of their purpose. This commit changes PIPELINE_NODE
to PIPELINE_STATE.

7 years agolayers:Reduce locking window
Tobin Ehlis [Wed, 12 Oct 2016 14:53:27 +0000 (08:53 -0600)]
layers:Reduce locking window

Don't need to lock around these decls in DestroyImage/BufferView

7 years agolayers:Refactor DestroyPipeline
Tobin Ehlis [Wed, 12 Oct 2016 14:51:35 +0000 (08:51 -0600)]
layers:Refactor DestroyPipeline

Add validation flag for DestroyPipeline and update it to follow the
Pre/Post pattern.

7 years agolayers:Refactor DestroyImageView
Tobin Ehlis [Wed, 12 Oct 2016 14:27:08 +0000 (08:27 -0600)]
layers:Refactor DestroyImageView

Add validation flag for DestroyImageView and update it to follow the
Pre/Post pattern.

Also made a couple minor tweaks to DestroyBufferView based on review.

7 years agoloader: gh1035- vkDestroyDebugReportCallbackEXT
Mark Young [Thu, 13 Oct 2016 16:51:14 +0000 (10:51 -0600)]
loader: gh1035- vkDestroyDebugReportCallbackEXT

The changes I made to enable layer wrapping of the debug report
callback broke the cleanup case so that under certain scenarios
vkDestroyDebugReportCallbackEXT would not delete the callback
resulting in messages after the destroy call.

Change-Id: Ie5b26d8c973a08bb3161412468bb9dfdb70b315c

7 years agolayers: Removed genvk.py
Mark Lobodzinski [Wed, 12 Oct 2016 17:34:19 +0000 (11:34 -0600)]
layers: Removed genvk.py

Replaced with an updated and modified version, lvl_genvk.py.

Change-Id: I60f344d8361d1408303185a5d7958575a404870e

7 years agolayers: Update build for v1.0.30 XML code-gen
Mark Lobodzinski [Thu, 13 Oct 2016 14:58:38 +0000 (08:58 -0600)]
layers: Update build for v1.0.30 XML code-gen

- Updated cmakefiles for new codegen files: renamed genvk.py to
  lvl_genvk.py as the file is modified in this repo.
- Modified dependencies and parameters of cmake build macros.
- Updated reg.py to version 1.0.30
- Updated generator.py to version 1.0.30

Change-Id: Ia87fc7fc68e406a724d5ad9822f1f87b964f9977

7 years agolayers: Add and update custom version of genvk.py
Mark Lobodzinski [Tue, 11 Oct 2016 21:23:51 +0000 (15:23 -0600)]
layers: Add and update custom version of genvk.py

Created a LoaderAndValidationLayers-specific version of the
1.0.30 version of genvk.py, locally named lvl_genvk.py.

    - removed unused generator classes
    - added LVL class to build threading
    - added LVL class to build paramchecker
    - added LVL class to build uniqueobjects

Change-Id: If3ac7f6b554ed5b850aba83b5b20998b84990a41

7 years agolayers: Set up UniqueObjectsOutputGenerator class
Mark Lobodzinski [Tue, 11 Oct 2016 20:33:07 +0000 (14:33 -0600)]
layers: Set up UniqueObjectsOutputGenerator class

Implements the Vulkan XML API registry-based generation
of the unique_objects layer's unique_objects_wrappers.h
header file.

Change-Id: Ie2456216bb10726dab792d39b0b9d85bb1ba528c

7 years agolayers: Set up ThreadOutputGenerator class
Mark Lobodzinski [Tue, 11 Oct 2016 20:29:52 +0000 (14:29 -0600)]
layers: Set up ThreadOutputGenerator class

Implements the Vulkan XML API registry-based generation
of the threading layer's thread_check.h header file.

Change-Id: I50e828aaf9ce9d494520b476c2c73f44dd549a3c

7 years agolayers: Set up ParamCheckerOutputGenerator class
Mark Lobodzinski [Thu, 13 Oct 2016 14:36:42 +0000 (08:36 -0600)]
layers: Set up ParamCheckerOutputGenerator class

Implements the Vulkan XML API registry-based generation
of the parameter_validation layer's parameter_validation.h
header file.

Change-Id: Ib7be36121f4f21dd667d09f9bd5e82749a417a33

7 years agobuild: Add include files to make install target
Karl Schultz [Wed, 12 Oct 2016 23:36:35 +0000 (17:36 -0600)]
build:  Add include files to make install target

Change-Id: Ieaf84adc4a9345c1f5ef7646106dd00ff3e5e716

7 years agolayers: Add error enums to object tracker
Karl Schultz [Wed, 12 Oct 2016 19:28:49 +0000 (13:28 -0600)]
layers: Add error enums to object tracker

- Add error enum to many calls to ValidateObject().
- Specify null_allowed=true when VU allows it.
  (mostly Destroy* cases)

Change-Id: I61d94ea71cf885caad475c2012111c92bc7e9904

7 years agoloader: gh1026- Fix compiler warnings
Mark Young [Wed, 12 Oct 2016 20:18:44 +0000 (14:18 -0600)]
loader: gh1026- Fix compiler warnings

Fixed the compiler fixes encountered in the loader.

Change-Id: I4b3bb34b2d7e2231ccae61c684029af337d7c25e

7 years agodemos: Add .py extension to smoke build script
Mark Lobodzinski [Tue, 11 Oct 2016 15:25:23 +0000 (09:25 -0600)]
demos: Add .py extension to smoke build script

Change-Id: I7fbcdc26fe774baefbdb3796470f41c3393ddfda

7 years agoscripts: Add python extension to script
Mark Lobodzinski [Tue, 11 Oct 2016 15:21:19 +0000 (09:21 -0600)]
scripts: Add python extension to script

Change-Id: If5c338ba6eb991cc489ef0a37296a111917ddd52

7 years agobuild: Remove dead code from build script
Mark Lobodzinski [Tue, 11 Oct 2016 15:18:55 +0000 (09:18 -0600)]
build: Remove dead code from build script

Change-Id: Id6dbde9743573659b57c2ee60634245ca10a827a

7 years agoloader: Remove dead code from loader gen script
Mark Lobodzinski [Tue, 11 Oct 2016 15:17:57 +0000 (09:17 -0600)]
loader: Remove dead code from loader gen script

Change-Id: Ie6ad81c1f0097b93c3006a737d57a69d81ee70e8

7 years agolayers: Validate correct layout for STORAGE_IMAGE descriptors
Tobin Ehlis [Mon, 10 Oct 2016 20:02:48 +0000 (14:02 -0600)]
layers: Validate correct layout for STORAGE_IMAGE descriptors

According to the spec "Load and store operations on storage images can only
be done on images in VK_IMAGE_LAYOUT_GENERAL layout."

This change flags an error if a STORAGE_IMAGE descriptor is updated with an
image layout other than GENERAL.

7 years agocube.c: Remove excess tests from presentation fences
szdarkhack [Sat, 8 Oct 2016 06:51:22 +0000 (09:51 +0300)]
cube.c: Remove excess tests from presentation fences

Instead of using a bool array and both checking and writing to it every frame for no reason, just create the presentation fences with the VK_FENCE_CREATE_SIGNALED_BIT flag.

7 years agolayers: Update database file for spec on 10/11/16
Tobin Ehlis [Tue, 11 Oct 2016 15:59:09 +0000 (09:59 -0600)]
layers: Update database file for spec on 10/11/16

Update the error enum database file for spec as of 10/11/16.
There was only one change which was the removal of spurious </usage> tag
from error 500. Since this changed the error message, I had to force the
script to remap new 500 to the original 500.

Command line run to generate update:
python spec.py -update -remap 500-500

7 years agoscripts: Add database error check to spec.py
Tobin Ehlis [Tue, 11 Oct 2016 15:37:19 +0000 (09:37 -0600)]
scripts: Add database error check to spec.py

Fix broken database line where delimiter was incorrect.
Add check to spec.py script to detect if database line doesn't contain
expected number of elements and report error in that case.

7 years agolayers: Updating some CreateBuffer checks to use unique enums
Karl Schultz [Thu, 6 Oct 2016 23:53:48 +0000 (17:53 -0600)]
layers: Updating some CreateBuffer checks to use unique enums

Small batch of updates to use unique validation error enums and
messages for a few checks.  Updated the database file and
flagged some other checks that are missing with the error
enums and TODO notes.

Change-Id: I2020a88bbdcf7ea6d725f667523e89b160fe7ab8

7 years agolayers: Add validation flag for descriptor updates
Tobin Ehlis [Mon, 10 Oct 2016 17:14:52 +0000 (11:14 -0600)]
layers: Add validation flag for descriptor updates

Add update_descriptor_sets flag to bypass validation for
vkUpdateDescriptorSets() call.

7 years agolayers: Pass unique error codes through descriptor validation
Tobin Ehlis [Thu, 6 Oct 2016 23:43:11 +0000 (17:43 -0600)]
layers: Pass unique error codes through descriptor validation

Descriptor validation builds up error strings at multiple levels such as
UpdateError->WriteUpdate->BufferUpdate->BufferOffset. The final error is
then reported via a log_msg() call at the top level.

In order for this design to allow for the new unique error codes, we need
to pass error codes down the chain in the same way we pass error strings
down the chain.

This change adds error msg passing for descriptor updates. Many error
codes are added in as well as comments for codes that are missing or need
to be updated.

The database file is also updated to account for all of the checks that
were updated and/or reviewed.

7 years agolayers: Fix Windows build warnings
Mark Lobodzinski [Mon, 10 Oct 2016 20:05:59 +0000 (14:05 -0600)]
layers: Fix Windows build warnings

NOEXCEPT is defined multiple times

Change-Id: I9aef970e9588c17071cd71a31873db4090d50b07

7 years agodemos: Fix Windows build warnrings
Mark Lobodzinski [Mon, 10 Oct 2016 20:05:36 +0000 (14:05 -0600)]
demos: Fix Windows build warnrings

Change-Id: I733704e8904a77aa9071565cfc1d18b23b1c0c1c

7 years agodocs: GH429 change doc for shader_checker tests
Mark Mueller [Tue, 13 Sep 2016 22:21:50 +0000 (16:21 -0600)]
docs: GH429 change doc for shader_checker tests

This branch adds tests that challenge the validation layer on various
shader checker cases

Change-Id: I38072fb9afaa52148a24532e919c2ac81111480c

7 years agodemos: fix cubepp cross-platform build
Jeremy Hayes [Sun, 9 Oct 2016 19:57:43 +0000 (13:57 -0600)]
demos: fix cubepp cross-platform build

Change-Id: I823154dc0c61e7358d88fe6afc4f5808b640804d

7 years agodemos: fix uninitialized variable
Jeremy Hayes [Sun, 9 Oct 2016 19:48:31 +0000 (13:48 -0600)]
demos: fix uninitialized variable

Change-Id: If980d3a8d765185148cff0b037cb64e637ae8a75

7 years agodemos: fix cube cmake
Jeremy Hayes [Sun, 9 Oct 2016 18:26:27 +0000 (12:26 -0600)]
demos: fix cube cmake

Change-Id: Ia7a79bee7353ac484e691916591c585643a8753d

7 years agodemos: fix uninitialized variable
Jeremy Hayes [Sun, 9 Oct 2016 18:21:06 +0000 (12:21 -0600)]
demos: fix uninitialized variable

Change-Id: I1aa51806a82398fb03cfb81ae23782882d1e07ae

7 years agodemos: clang-format cube.cpp
Jeremy Hayes [Sun, 9 Oct 2016 17:48:12 +0000 (11:48 -0600)]
demos: clang-format cube.cpp

Change-Id: I5f55446eb6f3c312b6cc012733b7f4e454ac73ba

7 years agodemos: add cube cpp sample
Jeremy Hayes [Wed, 7 Sep 2016 21:55:11 +0000 (15:55 -0600)]
demos: add cube cpp sample

Demonstrate how to use vulkan.hpp.

Change-Id: Ia5ef4f55d45219aec607ae04efdb64c6ebbc9578

7 years agoheader: Move vulkan.hpp to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 21:35:29 +0000 (15:35 -0600)]
header: Move vulkan.hpp to version 1.0.30

Change-Id: Ifb8a3577cd41ea4a36fea78c12d2a92ea5437e11

7 years agoloader: Move SOVERSION to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 20:29:17 +0000 (14:29 -0600)]
loader: Move SOVERSION to version 1.0.30

Change-Id: I129086e47b0cdb12d31ffdd334d27c63e18dd097

7 years agolayers: Move Linux json files to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 20:28:36 +0000 (14:28 -0600)]
layers: Move Linux json files to version 1.0.30

Change-Id: Ia54d78a9440f40b61601836fedcf68aba3c90dc1

7 years agolayers: Move Windows json files to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 20:28:04 +0000 (14:28 -0600)]
layers: Move Windows json files to version 1.0.30

Change-Id: Iac3446e618e1b84be6d42eb7d3b55d3046b124d6

7 years agoheader: Move vk.xml to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 20:26:07 +0000 (14:26 -0600)]
header: Move vk.xml to version 1.0.30

Change-Id: Id238f998c88d19f1549273359d559a602963c002

7 years agoheader: Move vulkan.h to version 1.0.30
Mark Lobodzinski [Fri, 7 Oct 2016 20:24:32 +0000 (14:24 -0600)]
header: Move vulkan.h to version 1.0.30

Change-Id: I99dd0d24feca887ea5c69e97856e96728491b0b5

7 years agolayers: Fix access violation in LVT
Mark Lobodzinski [Fri, 7 Oct 2016 20:13:38 +0000 (14:13 -0600)]
layers: Fix access violation in LVT

Was sending an out-of-scope memory reference to the display driver
in unique_objects::AllocateMemory.

Change-Id: I6b700445125acab040310682c96e7507d0fd91aa

7 years agolayers: Add flags for some descriptor validation
Tobin Ehlis [Thu, 6 Oct 2016 20:16:14 +0000 (14:16 -0600)]
layers: Add flags for some descriptor validation

Add flags that can gate descriptor checks for in-use descriptor,
push constant ranges, and allocate & free descriptors.