platform/upstream/Vulkan-Tools.git
7 years agobuild: Add uninstall target for Linux
Karl Schultz [Tue, 14 Mar 2017 23:11:24 +0000 (17:11 -0600)]
build: Add uninstall target for Linux

Change-Id: I0addef3265b5a2b5ec7b902d9c0086725a2ebb15

7 years agobuild: Add pkgconfig file for the Vulkan loader
Karl Schultz [Fri, 10 Mar 2017 21:58:10 +0000 (14:58 -0700)]
build: Add pkgconfig file for the Vulkan loader

Fixes #757
On Linux, the build configures a vulkan.pc pkgconfig
file, writing it to <build_dir>/loader.  The make 'install'
target then installs this file along with the others so that
it can be found with pkg-config.  Then, issuing:
$ pkg-config --libs --cflags vulkan
emits compilation flags for vulkan programs.

Since retrieving the header version from vulkan.h was needed in
order to put the Version in the pc file, this commit also uses
the header version to specify the SO version, so it no longer needs
to be changed for every release.

Change-Id: If83c17bfbb59f2ee05d5f86f5e957fc11871546b

7 years agotests: Negative tests for VU 00303-00308
Mike Weiblen [Wed, 8 Mar 2017 05:18:40 +0000 (22:18 -0700)]
tests: Negative tests for VU 00303-00308

Add VU testing to VkLayerTest/InvalidBarriers() test case.

Add some comments.

Add getter method to vktestbinding.h

Change-Id: Ib7f3a0f9a54b6612e2082e2160a671fb12aae687

7 years agolayers: Implement VU 00303-00308
Mike Weiblen [Wed, 8 Mar 2017 05:18:27 +0000 (22:18 -0700)]
layers: Implement VU 00303-00308

Implement Valid Usages 00303-00308 with new function
ValidateBarrierLayoutToImageUsage() which verifies an
ImageMemoryBarrier's old/new ImageLayouts are compatible with its
Image's ImageUsageFlags.

Rename ValidateImageLayouts() to ValidateBarriersToImages().

Rename some variables:
- internal vars to use Google style.
- vars passed verbatim from Vulkan to use Vulkan names.

Fix issues revealed in layer tests due to these new checks:
- 2 new Unexpected messages in VkLayerTest.
- 1 failing VkPositiveTest.

Update VU database for check_implemented = Y.

Change-Id: I8723f99d515fbea707299b4d1fcf33a4da6b7b0b

7 years agoMerge pull request #1578 from KhronosGroup/stroyan_loader_json_init
Mike Stroyan [Tue, 14 Mar 2017 22:26:24 +0000 (16:26 -0600)]
Merge pull request #1578 from KhronosGroup/stroyan_loader_json_init

loader: Initialize json_version

7 years agoheader: Update to 1.0.43 header version
Mark Lobodzinski [Tue, 14 Mar 2017 16:12:43 +0000 (10:12 -0600)]
header: Update to 1.0.43 header version

  - updated include/vulkan/vulkan.h
  - updated scripts/cgenerator.py
  - updated scripts/vk.xml
  - updated layers json files
  - updated tests json files
  - updated loader SOVERSION
  - updated include/vulkan/vulkan.hpp
  - updated parameter_validation.cpp with new APIs
  - updated object_tracker.cpp with new APIs

Change-Id: I1fd812cb376d5cddee5ab4acf2e4f8fe6d33b761

7 years agolayers: Remove deprecated KHX extension from OT/PV
Mark Lobodzinski [Tue, 14 Mar 2017 16:31:48 +0000 (10:31 -0600)]
layers: Remove deprecated KHX extension from OT/PV

Deleted references to GetPhysicalDeviceImageFormateProperties2KHX
and GetPhysicalDeviceProperties2KHX from object_tracker and
parameter_validation.

Change-Id: I83e29bae8302dad6f774886d8472451220b426d2

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 agoloader: Initialize json_version
Mike Stroyan [Tue, 14 Mar 2017 19:09:12 +0000 (13:09 -0600)]
loader: Initialize json_version

Fields of json_version were left uninitialized if file_format_version
in a layer json file was incomplete.  Initialize them to 0.

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