platform/upstream/Vulkan-Tools.git
7 years agolayers: Fix round tripping uint32_t through int
bungeman [Tue, 14 Mar 2017 17:23:41 +0000 (13:23 -0400)]
layers: Fix round tripping uint32_t through int

Commit 25afc3c "Suppress VC++ 2017 signed/unsigned warning" fixed
issue #1395. However, it did so by static_cast-ing a value back to a
type it already had been. Instead, just avoid round tripping the
'uint32_t' through 'int'.

7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Tue, 14 Mar 2017 20:14:36 +0000 (14:14 -0600)]
externals: Update GitHub master commit refs

Update glslang_revision, spirv-headers_revision, and spirv-tools_revision
to latest.

Change-Id: Ic14152242a7c3fb7aa1f86730472cddc7c927865

7 years agolayers: Add PV Maintenance1 negative viewport check
Mark Lobodzinski [Thu, 9 Mar 2017 18:54:48 +0000 (11:54 -0700)]
layers: Add PV Maintenance1 negative viewport check

Negative viewport offsets are now allowed if the Maintenance1 extension
is enabled.

Change-Id: Ifb080ba71d688f431a0d12a9018d746f28377a15

7 years agotests: Fix DSBufferInfo unexpected errors
Jeremy Hayes [Thu, 9 Mar 2017 21:39:45 +0000 (14:39 -0700)]
tests: Fix DSBufferInfo unexpected errors

Change-Id: I594243d7879ed9999571c4f185724ba42d2ed7b6

7 years agolayers: Add missing format specifier to CV
Mark Lobodzinski [Tue, 14 Mar 2017 15:32:05 +0000 (09:32 -0600)]
layers: Add missing format specifier to CV

Change-Id: Ie2fb0a861d30153af631960d444db1ff93584f41

7 years agodemos: Remove tabs from cube.c
Tony Barbour [Mon, 13 Mar 2017 21:29:35 +0000 (15:29 -0600)]
demos: Remove tabs from cube.c

Change-Id: I6ec4465d52db8f3b6d41a13d3238957a41a6ea1f

7 years agolayers: Add depthBiasClamp device feature checks
Mark Lobodzinski [Mon, 13 Mar 2017 21:10:23 +0000 (15:10 -0600)]
layers: Add depthBiasClamp device feature checks

Change-Id: I61e23e3c41a89763c9b65a2b5d7dbf92f015fa24

7 years agolayers: Add sparseResidencyAliased feature check
Mark Lobodzinski [Mon, 13 Mar 2017 15:45:07 +0000 (09:45 -0600)]
layers: Add sparseResidencyAliased feature check

Change-Id: I173c3d6e696e674c7a791838f6921763f03d1660

7 years agolayers: Add sparseResidencyBuffer feature check
Mark Lobodzinski [Mon, 13 Mar 2017 15:35:01 +0000 (09:35 -0600)]
layers: Add sparseResidencyBuffer feature check

Change-Id: I53afd9b76957f1c955f3068a4d1ff99f0cc5f543

7 years agolayers: Add sparseBinding device feature checks
Mark Lobodzinski [Mon, 13 Mar 2017 15:32:45 +0000 (09:32 -0600)]
layers: Add sparseBinding device feature checks

Change-Id: If1145276554ad8dda2839aa5bfc0b3c796873482

7 years agolayers: Add enabled_features accessor function
Mark Lobodzinski [Mon, 13 Mar 2017 15:25:44 +0000 (09:25 -0600)]
layers: Add enabled_features accessor function

Change-Id: I509c06794b9301c3b0dcc3ed5ad6e688eac6194d

7 years agolayers: Add textureCompressionBC feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:19:36 +0000 (16:19 -0700)]
layers: Add textureCompressionBC feature check

Change-Id: I4eca8c73a1cc2549402b436f8634fa9e72b9b9ce

7 years agolayers: Add textureCompressionASTC_LDR feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:17:39 +0000 (16:17 -0700)]
layers: Add textureCompressionASTC_LDR feature check

Change-Id: I862b2e188e0e253890aa9e0fad8f97914e004c0a

7 years agolayers: Add textureCompressionETC2 feature check
Mark Lobodzinski [Wed, 1 Mar 2017 23:15:02 +0000 (16:15 -0700)]
layers: Add textureCompressionETC2 feature check

Change-Id: I13408cd02beda7c4f91a6e9424fa0d1109461b6d

7 years agolayers: Add compressed texture query utils
Mark Lobodzinski [Wed, 1 Mar 2017 23:09:07 +0000 (16:09 -0700)]
layers: Add compressed texture query utils

These functions help to identify compressed formats categories.

Change-Id: Ia21da00924eb1f5c6f4a5310676e056899c340af

7 years agolayers: Validate samplerAnisotropy device feature
Mark Lobodzinski [Wed, 1 Mar 2017 22:52:49 +0000 (15:52 -0700)]
layers: Validate samplerAnisotropy device feature

Change-Id: I8b1262c34612870b9c8ebb1f62e7d6755219606f

7 years agolayers: Finish multiViewport dev feature validation
Mark Lobodzinski [Wed, 1 Mar 2017 22:45:52 +0000 (15:45 -0700)]
layers: Finish multiViewport dev feature validation

Change-Id: I58397785e7b73099d2a890246207075dae643652

7 years agolayers: Add alphaToOne device feature validation
Mark Lobodzinski [Wed, 1 Mar 2017 22:01:45 +0000 (15:01 -0700)]
layers: Add alphaToOne device feature validation

Change-Id: I1633cf7a8a5ebeed797cdb5373e5eb2533ce6887

7 years agolayers: Validate the depthBounds device feature
Mark Lobodzinski [Wed, 1 Mar 2017 21:39:38 +0000 (14:39 -0700)]
layers: Validate the depthBounds device feature

Change-Id: I27aa9d678f9e7ce90db325f2a7f7aa215741c8c9

7 years agolayers: Validate depthClamp device feature
Mark Lobodzinski [Wed, 1 Mar 2017 21:16:17 +0000 (14:16 -0700)]
layers: Validate depthClamp device feature

Change-Id: I61a1c8511b2b142ddf178fbf74654aaad80964bf

7 years agolayers: Add drawIndirectFirstInstance feature TODOs
Mark Lobodzinski [Wed, 1 Mar 2017 20:58:47 +0000 (13:58 -0700)]
layers: Add drawIndirectFirstInstance feature TODOs

Change-Id: Iba54a78bc72ef169faeb6ce3e92b392c738e0bbe

7 years agolayers: Validate device feature multiDrawIndirect
Mark Lobodzinski [Tue, 28 Feb 2017 21:18:04 +0000 (14:18 -0700)]
layers: Validate device feature multiDrawIndirect

Change-Id: Iaf9daa2bc1e0fe301fb28b6901af2687c232d9a8

7 years agolayers: Validate dualSrcBlend device feature
Mark Lobodzinski [Tue, 28 Feb 2017 21:06:44 +0000 (14:06 -0700)]
layers: Validate dualSrcBlend device feature

Change-Id: I64984412ad993f2d75095023c3b0eea57b78228e

7 years agolayers: Validate imageCubeArray device feature
Mark Lobodzinski [Tue, 28 Feb 2017 20:45:20 +0000 (13:45 -0700)]
layers: Validate imageCubeArray device feature

Change-Id: Ie1bdcc06c71a7ef8a0fbc5d576403f4b1c6e1e75

7 years agoheaders: Add missing include to vk_icd.h
Yamakaky [Mon, 13 Mar 2017 15:06:49 +0000 (11:06 -0400)]
headers: Add missing include to vk_icd.h

7 years agolayers: Add GetNextValidBinding function to CV
Mark Lobodzinski [Fri, 10 Mar 2017 16:14:00 +0000 (09:14 -0700)]
layers: Add GetNextValidBinding function to CV

Change-Id: Ifaa7aea1c7569ffaf5d417a1cd5caadaa38c96b0

7 years agolayers: Move desc set helper to descriptorset module
Mark Lobodzinski [Thu, 9 Mar 2017 23:24:13 +0000 (16:24 -0700)]
layers: Move desc set helper to descriptorset module

Change-Id: I695cf51b6fa27df7585582f545c0077efb9fd432

7 years agolayers: Move update_template temp structure creation
Mark Lobodzinski [Thu, 9 Mar 2017 22:31:42 +0000 (15:31 -0700)]
layers: Move update_template temp structure creation

Change-Id: Ib24bfc08114b8bdded7df0e69bfe3ea531e9df20

7 years agolayers: #1522 #1523 Fix VK_REMAINING_* resolve
Petr Kraus [Sun, 12 Mar 2017 13:00:50 +0000 (14:00 +0100)]
layers: #1522 #1523 Fix VK_REMAINING_* resolve

ResolveRemainingLevelsLayers() modified a copy instead of the live data.
Fixes issues #1522 and #1523

7 years agolayers: Don't call driver if skip in PipelineBarrier
Tony Barbour [Thu, 9 Mar 2017 20:05:51 +0000 (13:05 -0700)]
layers: Don't call driver if skip in PipelineBarrier

Change-Id: I9af6a641bc6e00f8ed3f1ea4cdf4f05321ecee6d

7 years agobuild: Increase reloc table size for mips64el
Radovan Birdic [Fri, 10 Mar 2017 20:20:00 +0000 (20:20 +0000)]
build: Increase reloc table size for mips64el

Fixes #1554: Fix build fails for mips64el

7 years agolayers: Fix template_update errors in CV
Mark Lobodzinski [Wed, 8 Mar 2017 18:50:51 +0000 (11:50 -0700)]
layers: Fix template_update errors in CV

Tied UpdateDescriptorSetWithTemplate into UpdateDescriptorSet
validation.

Change-Id: I00fdd9b90f99b34bb7119eb9c8dd433571f22f1d

7 years agolayers: Add UpdateTemplate Ext APIs to CV
Mark Lobodzinski [Tue, 7 Mar 2017 23:37:16 +0000 (16:37 -0700)]
layers: Add UpdateTemplate Ext APIs to CV

Added GPA hooks stub functions, and enables for four new extension
APIs for VK_KHR_descriptor_update_template.

Change-Id: Ifb8b3104030d3ff3da3af85039e85bb84f828872

7 years agoloader: Set pointer to NULL
Mark Young [Thu, 9 Mar 2017 21:17:40 +0000 (14:17 -0700)]
loader: Set pointer to NULL

Cleanup enabled extension array pointer passed down to driver.
If the loader overrode the create info struct, the pointer
could be garbage if the enabled extension count was 0.  Now,
make sure it is NULL.

Change-Id: I558d768e786892e7afc44f58b4173a2b8db3deee

7 years agoloader: Use secure_getenv only when necessary
Mark Young [Thu, 9 Mar 2017 18:39:41 +0000 (11:39 -0700)]
loader: Use secure_getenv only when necessary

secure_getenv should only be used on something that is security
sensitive.  Certain environment variable settings do not fall
into that category.  So, only use it when necessary.

Change-Id: Ib8b8dc1a1528a2f67f7cdc25051be078292ee19a

7 years agoloader: Update secure_getenv check
Mark Young [Thu, 9 Mar 2017 17:41:25 +0000 (10:41 -0700)]
loader: Update secure_getenv check

The previous check was against the compiler, not against the libc.
Implement the check in CMake and generate a new header file which
defines appropriate defines (loader_cmake_config.h).

Change-Id: I2ae0e8d482fb4ce13089128157c11d18b0c178b9

7 years agospelling: Fix spelling errors
Mark Young [Wed, 8 Mar 2017 20:38:35 +0000 (13:38 -0700)]
spelling: Fix spelling errors

Fix some spelling errors (caught by VS2017 spelling extension) and
a few floating func defs that are no longer valid.

Change-Id: Ifd9394227dfe3b3255c27429dadaf405433232d2

7 years agoloader: Update secure_getenv usage
Mark Young [Wed, 8 Mar 2017 17:11:52 +0000 (10:11 -0700)]
loader: Update secure_getenv usage

Use secure_getenv always if it's available.  If it's not available,
fall back to getenv (because some libc's, like musl, don't export
secure_getenv).

Change-Id: I0cae57e1048dcbbadbdd9cc71cc17d51706161a0

7 years agolayers: Set depth to 1 in ci for swapchain images
Tony Barbour [Tue, 7 Mar 2017 23:06:55 +0000 (16:06 -0700)]
layers: Set depth to 1 in ci for swapchain images

Change-Id: I64e99f99737e26e284722bcc0ce3dc9518e64438

7 years agoUse nproc instead of ncpu
Ciro Santilli [Tue, 7 Mar 2017 08:00:31 +0000 (08:00 +0000)]
Use nproc instead of ncpu

The command is more widely available in Linux since it is part of Coreutils.

7 years agolayers: Fix parameter validation
Mark Young [Tue, 7 Mar 2017 20:09:00 +0000 (13:09 -0700)]
layers: Fix parameter validation

An earlier change clobbered part of a parameter validation change.

Change-Id: Ica28e79c17f094637e3a12c44dd25c5283c586ef

7 years agolayers: Improve UpdateTemplate variable names
Mark Lobodzinski [Mon, 6 Mar 2017 23:18:19 +0000 (16:18 -0700)]
layers: Improve UpdateTemplate variable names

Change-Id: I8e0d26b795fc9f2a2634f4de823967d3f16b15d9

7 years agolayers: Parse extension buffer to unwrap handles
Mark Lobodzinski [Mon, 6 Mar 2017 16:00:21 +0000 (09:00 -0700)]
layers: Parse extension buffer to unwrap handles

The UpdateDescriptorSetWithTemplate extension API contains a
parameter which is a buffer containing Vulkan objects. To get this
through to the driver using the UniqueObjects layer, these handles
must get unwrapped.

Change-Id: I91f573f696eafc00957cbff502aaa8ce96c4e1ba

7 years agolayers: Create desc_update_template map for new objs
Mark Lobodzinski [Fri, 3 Mar 2017 17:28:21 +0000 (10:28 -0700)]
layers: Create desc_update_template map for new objs

Store unique_objects DescriptorUpdateTemplate data in a map
for parsing UpdateTempate buffers.

Change-Id: Iab0d95a1aa2f309a3d33c8859b16543f98ca549c

7 years agolayers: Move DescriptorUpdateTemplate functions
Mark Lobodzinski [Fri, 3 Mar 2017 15:40:16 +0000 (08:40 -0700)]
layers: Move DescriptorUpdateTemplate functions

In unique_objects, moved these functions from being auto-generated to
being manually written.

Change-Id: Iae7ccac0ad51d57826104bd0532742a098c673ce

7 years agoscripts: Allow safe_structs to handle KHR extensions
Mark Lobodzinski [Mon, 6 Mar 2017 15:59:14 +0000 (08:59 -0700)]
scripts: Allow safe_structs to handle KHR extensions

Deep copies are needed for some of the new extensions.

Change-Id: I7e77fe30a87129aa720225ae16eb87cdba8e626e

7 years agotests: Bugfix check and add mip copy tests
Dave Houlton [Tue, 7 Mar 2017 00:21:16 +0000 (17:21 -0700)]
tests: Bugfix check and add mip copy tests

Fixed a bug in the buffer size calculation for compressed mip levels
when copying less than a full block at the perimeter. Added a set of
validation tests that exercise copies in/out of mip levels of
compressed textures. Added an image init() fxn to the test framework
that takes an imageCreateInfo input, to allow full control of image
varieties.

Change-Id: I240ed6e1f45889e58b759f8f261392725dadb498

7 years agolayers: Clang-format only, no code changes
Dave Houlton [Thu, 2 Mar 2017 21:56:23 +0000 (14:56 -0700)]
layers: Clang-format only, no code changes

This is a whole-file clang format of buffer_validation.cpp, with
no code changes. Left as a separate commit to avoid confusion with
the actual code changes within this file in the other 2 commits.

Change-Id: I4e09c0a465f5187d3753a88bcbafb0e8bee9d782

7 years agolayers: Add VUs 1275, 1276, 1277 related to gh1507
Dave Houlton [Fri, 3 Mar 2017 00:00:10 +0000 (17:00 -0700)]
layers: Add VUs 1275, 1276, 1277 related to gh1507

Adds 3 new valid usage checks related to the bugfix, and the
layer_validation_tests code to exercise 2 of them. The third check,
01277, cannot be provoked by a test because it would require a
compressed texture format with block z-dimension > 1, which does
not (currently) exist for Vulkan.

Change-Id: I6c467e64c420b6a453af57f7ff86e1465e132988

7 years agolayers, Fix checks for GH 1507
Dave Houlton [Wed, 1 Mar 2017 23:23:25 +0000 (16:23 -0700)]
layers, Fix checks for GH 1507

Bugfix and refactor for github issue 1507 (and lunar exchange #652).
Fixes buffer size calculation for compressed textures when copy
extent is less than block size, corrected for mip level. Layer tests
modified to avoid breakage from this fix.

Change-Id: If91d6f8c7ce17a3e012923304a3b178e750d2659

7 years agolayers: Fix invalid push constant checks (GH953)
Karl Schultz [Fri, 24 Feb 2017 22:45:05 +0000 (15:45 -0700)]
layers: Fix invalid push constant checks (GH953)

Rework of invalid push constant checks, motivated mostly
by some spec updates and prior bad assumptions.

- Add check/test for a shader stage flag being set more
  than once in CreatePipelineLayout.
- Remove checks and tests having to do with warning about
  overlapping ranges in CreatePipelineLayout.  Ranges can
  certainly overlap when used in different stages.  And
  the prohibition of more than one range with the same
  stage flag removes the possibility of overlap in the same
  stage.  These checks were warnings and so probably not
  noticed.

Fixes #953
Finishes VU 00871

Change-Id: Icc9d3d84fa3132f266075f2f1d45c243e9e1a65f

7 years agoloader: gh1528 - Move generated files
Mark Young [Mon, 6 Mar 2017 20:57:13 +0000 (13:57 -0700)]
loader: gh1528 - Move generated files

Move the loader-specific generated files into the loader binary
folder when built.

Change-Id: Ib5f04eada8eb0b89d1d5e50adaf1e964d4f1a6d6

7 years agolayers: Added skip_checks to rangeIntersect()
Cort Stratton [Fri, 3 Mar 2017 16:50:51 +0000 (08:50 -0800)]
layers: Added skip_checks to rangeIntersect()

This allows callers to skip redundant/unnecessary checks
outside the validation path.

7 years agolayers: GH373 Add memory size/align tests&checks
Cort Stratton [Fri, 17 Feb 2017 20:50:01 +0000 (12:50 -0800)]
layers: GH373 Add memory size/align tests&checks

7 years agolayers: Fix copy/paste errors in BindBufferMemory
Cort Stratton [Fri, 17 Feb 2017 20:43:41 +0000 (12:43 -0800)]
layers: Fix copy/paste errors in BindBufferMemory

Incorrect objectType and srcObject arguments to log_msg()

7 years agolayers: Refactor InsertMemoryRange() for pre/post
Cort Stratton [Wed, 15 Feb 2017 21:40:43 +0000 (13:40 -0800)]
layers: Refactor InsertMemoryRange() for pre/post

- Added new ValidateInsert*MemoryRange(), called from
  PreCallValidateBind*Memory().
- Moved all validation from InsertMemoryRange() into the new function.
- Moved call to Insert*MemoryRange() into PostCallRecordBind*Memory().

7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Mon, 6 Mar 2017 17:27:15 +0000 (10:27 -0700)]
externals: Update GitHub master commit refs

glslang_revision 33f85b6e
spirv-tools_revision 11fbe5dc

Change-Id: I07a98cd122a8c167b123afcc4787c6c05b29c5c8

7 years agoloader: Fix several leaks
Mark Young [Fri, 3 Mar 2017 22:28:57 +0000 (15:28 -0700)]
loader: Fix several leaks

Fix several leaks caught by Valgrind.  This change should fix all
memory leaks caught by David Hubbard in pull-request #811.

Change-Id: I55d7f3a6abbc32fde182702c4b9cf1041107c6df

7 years agoDocs: Fix a typo in BUILD.md
Igor Vuk [Fri, 3 Mar 2017 21:34:39 +0000 (22:34 +0100)]
Docs: Fix a typo in BUILD.md

7 years agoDocs: Fix a typo in README.md
Igor Vuk [Fri, 3 Mar 2017 21:26:43 +0000 (22:26 +0100)]
Docs: Fix a typo in README.md

7 years agodocs: Add new layer registries to loader doc
Lenny Komow [Thu, 2 Mar 2017 18:29:03 +0000 (11:29 -0700)]
docs: Add new layer registries to loader doc

Change-Id: I185d37096db07585d8b4015201656937fbf5714d

7 years agoloader: gh1153 - Modify layer search path
Lenny Komow [Thu, 2 Mar 2017 00:22:29 +0000 (17:22 -0700)]
loader: gh1153 - Modify layer search path

The loader will now seach HKEY_CURRENT_USER in addition to
HKEY_LOCAL_MACHINE when looking up layers in the registries.

Change-Id: I899dc7d65a2fe08f1e471fa8dccba5255f8ef7b7

7 years agoscripts: Update loader automation
Mark Young [Wed, 1 Mar 2017 23:22:23 +0000 (16:22 -0700)]
scripts: Update loader automation

Merge a few if's together to make the code easier to follow.

Change-Id: I2453c8217da81befb4f44af19241c13c4aaef8af

7 years agoloader: Fix handling of surface parameters
James Jones [Wed, 1 Mar 2017 01:26:09 +0000 (17:26 -0800)]
loader: Fix handling of surface parameters

The loader code generation scripts had a bug that
caused all the surface->ICD surface translation C
code to be placed inside a block that only ran if
the ICD didn't support the extension function,
making it effectively a no-op.  ICDs that
supported the extension were instead called with
the un-translated surface handle, which could
cause a crash if they were expecting their local
surface handle.

Also, speculatively fix up return handling in this
same class of functions by handling the void
return type.

7 years agolayers: Remove redundant validation
Jeremy Hayes [Tue, 28 Feb 2017 16:44:45 +0000 (09:44 -0700)]
layers: Remove redundant validation

Remove redundant validation from ValidateCmdBufImageLayouts.

Change-Id: Ia7474e0ca7d0429a8413500f548e1cfbe9f708f1

7 years agolayers: Use GetStateStructPtrFromObject rather than open-coding
Chris Forbes [Wed, 1 Mar 2017 03:36:16 +0000 (16:36 +1300)]
layers: Use GetStateStructPtrFromObject rather than open-coding

Now symmetric with the DecrementResources path, and much less code.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove redundant validation
Jeremy Hayes [Mon, 27 Feb 2017 22:09:03 +0000 (15:09 -0700)]
layers: Remove redundant validation

Remove redundant validation from ValidateOrIncrementBoundObjects.

Change-Id: I98f9de491d83788cf0b19d4c606d239e1a915e58

7 years agolayers: Validate CONCURRENT img/buf queuefamilies
Mark Lobodzinski [Tue, 28 Feb 2017 14:59:46 +0000 (07:59 -0700)]
layers: Validate CONCURRENT img/buf queuefamilies

All buffers and images created with SHARING_MODE_CONCURRENT can only
be used on queues matching one of thier designated queue families.

Change-Id: Ia4a532610125d6481a6de5dbd18727a98f815da9

7 years agolayers: Prevent bad node access
Mark Lobodzinski [Mon, 27 Feb 2017 21:04:47 +0000 (14:04 -0700)]
layers: Prevent bad node access

Change-Id: I6b08302b069d9796c126422a2df90243d82dc225

7 years agoloader: Remove floating file
Mark Young [Tue, 28 Feb 2017 17:17:18 +0000 (10:17 -0700)]
loader: Remove floating file

I had removed the need for loader/table_ops.h in my loader
automatic generation changes, but forgot to remove the file.

Change-Id: Ide46609d9eda354b712844782b97af6f1cc09ef0

7 years agolayers: Add VU data & new entry point
Mike Weiblen [Tue, 21 Feb 2017 02:43:02 +0000 (19:43 -0700)]
layers: Add VU data & new entry point

Add logging of VU data and a more detailed check of
EnumeratePhysicalDeviceGroupsKHX to core validation.

Change-Id: Id17a06063673b0f47cdaf8d051974887205d2f6d

7 years agovulkan: update to header 1.0.42
Mark Young [Tue, 28 Feb 2017 16:58:04 +0000 (09:58 -0700)]
vulkan: update to header 1.0.42

Updated all necessary files to 1.0.42.  This includes the various
headers as well as the loader, and the parameter validation, object
tracking, and threading layers.  Additionally, bump all layer JSON
files to 1.0.42.

Also, in this change:
  - Enable loader extension automation so that the loader now
    generates all extension entry-points automatically during build
    to reduce likelihood of missing a critical piece on header
    update.
  - Enable layer dispatch table extension automation for the same
    reason.
  - Fixes from Mark Lobodzinski and Tony Barbour to resolve crash
    in loader when working with Intel's Windows driver due to
    GetInstanceProcAddr getting called on inappropriate command
    names.

Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8

7 years agolayers: Special-case threading GetSwapchainImages
Mark Lobodzinski [Tue, 28 Feb 2017 22:09:31 +0000 (15:09 -0700)]
layers: Special-case threading GetSwapchainImages

This API is a special-case for the code-gen in that it sometimes
returns an array of images. These do not need to be counted by
start/finishReadObject and so were moved into the non-generated
part of the layer source.

Change-Id: Iaaab9143abadbf025b5f3c118aa26dae3c6f1bec

7 years agolayers: Fix state recorded for swapchain images
Chris Forbes [Tue, 28 Feb 2017 01:25:58 +0000 (14:25 +1300)]
layers: Fix state recorded for swapchain images

Reorder the fields to match the declaration, initialize tiling & type.
Previously the image type ended up as VK_IMAGE_TYPE_1D due to the
default initialization, which caused bad behavior in later validation.

Fixes #1508.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Factor out marking of first use as read or write...
Chris Forbes [Tue, 28 Feb 2017 05:59:20 +0000 (18:59 +1300)]
layers: Factor out marking of first use as read or write...

.. and make the handling of VK_ATTACHMENT_UNUSED consistent across all
cases. Previously we could end up with useless tracking of
VK_ATTACHMENT_UNUSED.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: remove attachment_first_layout tracking
Chris Forbes [Tue, 28 Feb 2017 05:46:44 +0000 (18:46 +1300)]
layers: remove attachment_first_layout tracking

Nothing uses this.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Consider resolve attachments to be written in renderpass
Chris Forbes [Tue, 28 Feb 2017 04:40:29 +0000 (17:40 +1300)]
layers: Consider resolve attachments to be written in renderpass

Previously, if there was a later read of the attachment within the
renderpass, we'd mistakenly record this attachment as being read-first,
and insist on its contents having been made valid by some write prior to
the renderpass.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoexternals: Update GitHub master commit refs
Mike Weiblen [Tue, 28 Feb 2017 18:47:46 +0000 (11:47 -0700)]
externals: Update GitHub master commit refs

glslang_revision f67f9d7e
spirv-headers_revision 88d94037
spirv-tools_revision 4ef3b3e0

Change-Id: Icc3432fcaeb1511579e816f521f8454f2921f2da

7 years agolayers: Add PreCallRecord call to CmdPipelineBarrier
Mark Lobodzinski [Mon, 27 Feb 2017 20:08:59 +0000 (13:08 -0700)]
layers: Add PreCallRecord call to CmdPipelineBarrier

Change-Id: Ibf2f742d85f002c7d4993db8968c33a537b76dce

7 years agolayers: Split layout transition validation/recording
Mark Lobodzinski [Mon, 27 Feb 2017 19:56:14 +0000 (12:56 -0700)]
layers: Split layout transition validation/recording

Split TransitionImageLayouts and TransitionImageAspectLayouts into
ValidateXxx and TransitionXxx routines.

Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499

7 years agolayers: Add PreCallValidate to CmdPipelineBarrier
Mark Lobodzinski [Mon, 27 Feb 2017 18:12:39 +0000 (11:12 -0700)]
layers: Add PreCallValidate to CmdPipelineBarrier

Change-Id: I7e517ec023c2989eb5f977bdbf580e24b4526286

7 years agolayers: Add notes to Valid Usage DB
Mike Weiblen [Mon, 27 Feb 2017 19:49:58 +0000 (12:49 -0700)]
layers: Add notes to Valid Usage DB

Change-Id: I590864e3ad5cc454d05404763faf5613aaf0b079

7 years agolayers: Added more format checks to utils
Arda Coskunses [Sat, 25 Feb 2017 18:34:37 +0000 (11:34 -0700)]
layers: Added more format checks to utils

Change-Id: I1f91403656ddb9b69e3c519b35b95a48f3ac2bb4

7 years agolayers: GL168, fix bad compressed texel block size
Mark Lobodzinski [Fri, 24 Feb 2017 15:53:14 +0000 (08:53 -0700)]
layers: GL168, fix bad compressed texel block size

The image<->buffer copy validation was checking against texel block
sizes, but needed the block size in byte. Fixed the bad validation
errors and renamed existing util function and updated a compressed
texture size to match the spec.

Change-Id: I40b9635a4fab131ab1525da51e94c4c5577217be

7 years agotests: Add test that uses object on wrong device
Mike Schuchardt [Tue, 21 Feb 2017 16:48:06 +0000 (09:48 -0700)]
tests: Add test that uses object on wrong device

Exercise new object tracker handle check by trying to delete a render
pass on the wrong VkDevice.

Change-Id: I4480c5210d399c46b22e4c34630d76922aa934e3

7 years agolayers: Check all devices for valid object handles
Mike Schuchardt [Tue, 14 Feb 2017 22:33:52 +0000 (15:33 -0700)]
layers: Check all devices for valid object handles

Additional check in ValidateObject to distinguish between an invalid
object and an object that was created on another device.

Change-Id: I939ca7a23df47ad5809e46c780e084085f141c13

7 years agolayers: GH1489, fix CmdClearAttachments validation
Mark Lobodzinski [Wed, 22 Feb 2017 17:55:30 +0000 (10:55 -0700)]
layers: GH1489, fix CmdClearAttachments validation

Calling CmdClearAttachments in a secondary command buffer could
result in bad validation errors as existing checks rely upon
RenderPass begin info data that may not yet be present. Good
validation for this case will come in a follow-on patch series.

Change-Id: Ib169e26f506124f0c1ad75f57de3b6b5146df872

7 years agolayers: Fix a bug in depth/stencil packing
Dave Houlton [Tue, 21 Feb 2017 22:59:08 +0000 (15:59 -0700)]
layers: Fix a bug in depth/stencil packing

Fixed incorrect size calculations for image<->buffer copies
due to special packing rules of depth and stencil formats.
Added test code to layer_validation_tests ImageBufferCopyTests to
exercise these checks.

Change-Id: I90446379ba8888bf91eda6567e18fa1aae9593b1

7 years agobuild: Change appveyor to build VS 2013 and 2015
Karl Schultz [Wed, 22 Feb 2017 20:41:55 +0000 (13:41 -0700)]
build: Change appveyor to build VS 2013 and 2015

Change-Id: Idccb248aa46a5028b9c28d5487760c749a8d61e2

7 years agodemos: Use device local heap for depth
Jeremy Hayes [Wed, 22 Feb 2017 15:53:13 +0000 (08:53 -0700)]
demos: Use device local heap for depth

Fix GH 116: Cube demo does not allocate depth buffer in device local
heap.

Change-Id: Ic368bc039fc555f0d8739b0aeb6648237a6fcc5c

7 years agolayers: Move code to preferred cpp file
Mike Weiblen [Tue, 21 Feb 2017 21:32:53 +0000 (14:32 -0700)]
layers: Move code to preferred cpp file

PreCallValidateGetImageSubresourceLayout() from core_validation.cpp
to buffer_validation.cpp

Change-Id: Ic55e049fab28384d30768e8c590f158e603dd343

7 years agotests: VU 732, 733, 739, 740 tests
Mike Weiblen [Fri, 10 Feb 2017 04:25:59 +0000 (21:25 -0700)]
tests: VU 732, 733, 739, 740 tests

Create ExerciseGetImageSubresourceLayout() for varioud VU tests
of vkGetImageSubresourceLayout().

Update VU database to indicate implemented tests for those VUs.

Change-Id: I961d9ab54f35d307a87dedcc550d4d72af927dac

7 years agolayers: VU 732, 733, 739, 740 checks GH-402
Mike Weiblen [Tue, 21 Feb 2017 03:57:40 +0000 (20:57 -0700)]
layers: VU 732, 733, 739, 740 checks GH-402

Implement several Valid Usage checks in
PreCallValidateGetImageSubresourceLayout()

Update VU database to mark check_implemented flag to Y.

Change-Id: I04f3281012889c03aece121ecf6726437054040f

7 years agolayers: Refactor for PreCallValidate
Mike Weiblen [Tue, 21 Feb 2017 02:43:02 +0000 (19:43 -0700)]
layers: Refactor for PreCallValidate

Refactor vkGetImageSubresourceLayout() validation out to separate
PreCallValidateGetImageSubresourceLayout() function.

Cleanup existing Valid Usage check 00741.

Change-Id: Id17a06063673b0f47cdaf8d051974887205d2f6d

7 years agoexternals: update external GitHub commits refs
Mike Weiblen [Tue, 21 Feb 2017 05:21:09 +0000 (22:21 -0700)]
externals: update external GitHub commits refs

Update LVL externals to top of GitHub master branches:

glslang_revision 8f674e821e1e5f628474b21d7fe21af2e86b5fb4
spirv-headers_revision b6dca2397d512e4db62f051a47bb5334d5d44360
spirv-tools_revision c0949703b1264c33df45584efba50a8444b53022

Change-Id: I155c06206267b20c6fbb23fd3692259ad285be1b

7 years agoloader: Configurable fallback search paths
Benjamin Saunders [Sun, 19 Feb 2017 19:14:24 +0000 (11:14 -0800)]
loader: Configurable fallback search paths

This makes it easier for non-FHS distributions to behave well when the
loader is used by a SUID process or in an otherwise unusual environment.

7 years agoloader: Fix a few potential overruns
Mark Young [Fri, 17 Feb 2017 16:02:23 +0000 (09:02 -0700)]
loader: Fix a few potential overruns

Fixed a few places a strcpy or strcat could overrun.

Change-Id: I58184bd418ae5ee4596a40bf66ef2ab41400ee55

7 years agoexternals: Update script to take URLs as params
Mike Weiblen [Fri, 17 Feb 2017 00:00:35 +0000 (17:00 -0700)]
externals: Update script to take URLs as params

To provide flexibility in which git repositories are used as the
upstream source for LVL's externals, remove the hardcoded repo URLs
from the update scripts, and instead read those URLs from parameter
files.

Also fix typos and comments.

Change-Id: Ic1b49fcf30d37b602e20bf3f83eb5991847476dc

7 years agoheader: Update to Vulkan 1.0.41
Mark Lobodzinski [Fri, 17 Feb 2017 16:01:48 +0000 (09:01 -0700)]
header: Update to Vulkan 1.0.41

   updated:
      - include/vulkan/vk_platform.h
      - include/vulkan/vulkan.h
      - scripts/generator.py
      - scripts/cgenerator.py
      - scripts/lvl_genvk.py
      - scripts/reg.py
      - scripts/vk.xml
      - include/vulkan/vulkan.hpp
      - layers/tests json files
      - loader SOVERSION

Change-Id: I1e7c3e39206be3c6d2c12b46c438a1fb9343945e

7 years agolayers:RenderPass depth/stencil layout transition
Tobin Ehlis [Thu, 16 Feb 2017 20:21:20 +0000 (13:21 -0700)]
layers:RenderPass depth/stencil layout transition

Fixes #1454

For image views into depth/stencil images we need to make sure that
both the depth and stencil aspects have their layouts transitioned to
the initialLayout setting for the first subpass.