platform/upstream/Vulkan-Tools.git
7 years agolayers: update valid usage
Jeremy Hayes [Thu, 3 Nov 2016 16:49:44 +0000 (10:49 -0600)]
layers: update valid usage

Change-Id: Id7556ddc1be59ee7fe5ab9273257cbc399724a3e

7 years agodemos: Fix argument consistency for smoketest
joey-lunarg [Thu, 3 Nov 2016 20:27:05 +0000 (14:27 -0600)]
demos: Fix argument consistency for smoketest

All arguments now have double-dashes

Change-Id: I19548d60a008cc259326efb1b62b6fd9d3bbdd70

7 years agodemos: Add testing features for smoke
joey-lunarg [Thu, 3 Nov 2016 19:49:49 +0000 (13:49 -0600)]
demos: Add testing features for smoke

Smoketest will now output # of frames rendered and elapsed ms.
Command line argument added to limit the rendered frames,
usage: 'smoketest --c <framecount>'

Change-Id: Id6bc0186169b6511823c4406be655f6d8ca18324

7 years agodemos: Add Game class file for smoke
joey-lunarg [Thu, 3 Nov 2016 19:45:54 +0000 (13:45 -0600)]
demos: Add Game class file for smoke

Change-Id: I385f8fd0676f665b1d774f38767b5691ddae6f7a

7 years agolayers: GH1092 sync CreateGraphicsPipeline enums
Mike Weiblen [Tue, 1 Nov 2016 05:59:10 +0000 (23:59 -0600)]
layers: GH1092 sync CreateGraphicsPipeline enums

Update enum error database with status of implemented checks
inside CreateGraphicsPipeline().

Change-Id: Ie74b51cb65db7c8bff5e40c90617781269bc95a9

7 years agolayers: GH934 Bounds checking on SetViewport
Mike Weiblen [Tue, 1 Nov 2016 03:04:10 +0000 (21:04 -0600)]
layers: GH934 Bounds checking on SetViewport

Add viewport bounds checking.

Change-Id: I8ec8a663c5ce3d90447f8f6228ce3ed8fcbb4454

7 years agodemos: fix cubepp fence creation
Jeremy Hayes [Tue, 8 Nov 2016 22:52:05 +0000 (15:52 -0700)]
demos: fix cubepp fence creation

Change-Id: I8019075d3ba7e44cfaf78f6b242cc2e4a8b6505f

7 years agowinsdk: Set runtime to use parameterized build
Lenny Komow [Mon, 7 Nov 2016 22:20:54 +0000 (15:20 -0700)]
winsdk: Set runtime to use parameterized build

Change-Id: I2f315a25667219620f5dcc3c36ad66d225134eef

7 years agoloader: Parameterize locations of drivers/layers
Lenny Komow [Mon, 7 Nov 2016 18:40:00 +0000 (11:40 -0700)]
loader: Parameterize locations of drivers/layers

Change-Id: I79c16e01f336b3cf90ec7e6e66901ad363502e7b

7 years agobuild: Allow the use of a custom-named vulkan dll
Lenny Komow [Mon, 7 Nov 2016 17:44:23 +0000 (10:44 -0700)]
build: Allow the use of a custom-named vulkan dll

Change-Id: Ibeae30386ca2a91717d6b4c3039ada884003a1a4

7 years agowinsdk: Parameterize ConfigureRT program
Lenny Komow [Fri, 4 Nov 2016 16:38:39 +0000 (10:38 -0600)]
winsdk: Parameterize ConfigureRT program

Change-Id: I2f869d5a71fb6c5411aa2ab6a3b133c37fb52a09

7 years agowinsdk: Parameterize runtime NSIS script
Lenny Komow [Thu, 3 Nov 2016 21:43:59 +0000 (15:43 -0600)]
winsdk: Parameterize runtime NSIS script

Change-Id: If1d767f29b6189a44e3f942ab96a55062a2f9cb7

7 years agoloader: Remove warning on missing implicit layer
Mark Young [Mon, 7 Nov 2016 23:26:17 +0000 (16:26 -0700)]
loader: Remove warning on missing implicit layer

If the Implicit Layer registry location was missing, validation
would throw a warning.  This is not correct behavior as many systems will
not have Implicit layers.  Modify so the warning/error is only thrown if
either a driver manifest path, or an explicit layer path.

Change-Id: Ideccc730e0b1c613c4cc58c5f64ae31ba19bc05c

7 years agolayers: Adjust doc to describe PV EXTENSION_NOT_ENABLED
Chris Forbes [Mon, 7 Nov 2016 23:17:12 +0000 (12:17 +1300)]
layers: Adjust doc to describe PV EXTENSION_NOT_ENABLED

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Avoid calling functions not produced by the pv codegen
Chris Forbes [Mon, 7 Nov 2016 19:45:03 +0000 (08:45 +1300)]
layers: Avoid calling functions not produced by the pv codegen

Still need to investigate why the generator doesn't produce everything
it should, but this should be enough to get us going.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Fix unused variable breaking android build
Chris Forbes [Thu, 3 Nov 2016 20:16:04 +0000 (09:16 +1300)]
layers: Fix unused variable breaking android build

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move platform entrypoints into main list in PV
Chris Forbes [Wed, 2 Nov 2016 22:28:19 +0000 (11:28 +1300)]
layers: Move platform entrypoints into main list in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Do extension checks for KHR_display in PV
Chris Forbes [Wed, 2 Nov 2016 21:18:35 +0000 (10:18 +1300)]
layers: Do extension checks for KHR_display in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Add tracking for VK_KHR_display extension in PV
Chris Forbes [Wed, 2 Nov 2016 21:18:18 +0000 (10:18 +1300)]
layers: Add tracking for VK_KHR_display extension in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move display swapchain entrypoint into main block
Chris Forbes [Wed, 2 Nov 2016 21:15:31 +0000 (10:15 +1300)]
layers: Move display swapchain entrypoint into main block

This used to be separate because the FPs were only conditionally
returned. Now we always return them.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: s/skip_call/skip/ in PV
Chris Forbes [Wed, 2 Nov 2016 20:53:59 +0000 (09:53 +1300)]
layers: s/skip_call/skip/ in PV

V2: slight tweak for upstream change to PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Introduce require_instance_extension in PV
Chris Forbes [Wed, 2 Nov 2016 20:51:48 +0000 (09:51 +1300)]
layers: Introduce require_instance_extension in PV

More noise going away.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Introduce require_device_extension function in PV
Chris Forbes [Wed, 2 Nov 2016 20:29:52 +0000 (09:29 +1300)]
layers: Introduce require_device_extension function in PV

This gets rid of a bit of redundancy.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move swapchain and surface extension enable checks to PV
Chris Forbes [Wed, 2 Nov 2016 05:34:25 +0000 (18:34 +1300)]
layers: Move swapchain and surface extension enable checks to PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Use uniform initialization better in PV::layer_data
Chris Forbes [Wed, 2 Nov 2016 04:56:50 +0000 (17:56 +1300)]
layers: Use uniform initialization better in PV::layer_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Rename device ext flags to match extensions in PV
Chris Forbes [Wed, 2 Nov 2016 04:54:21 +0000 (17:54 +1300)]
layers: Rename device ext flags to match extensions in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move enable checks for KHR_surface to PV
Chris Forbes [Wed, 2 Nov 2016 04:43:34 +0000 (17:43 +1300)]
layers: Move enable checks for KHR_surface to PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Rename ambiguous 'wsi_enabled' to 'surface_enabled' in PV
Chris Forbes [Wed, 2 Nov 2016 04:36:42 +0000 (17:36 +1300)]
layers: Rename ambiguous 'wsi_enabled' to 'surface_enabled' in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove dead plumbing for platform extension enables
Chris Forbes [Wed, 2 Nov 2016 04:32:51 +0000 (17:32 +1300)]
layers: Remove dead plumbing for platform extension enables

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Move platform WSI extension checks from swapchain to PV
Chris Forbes [Wed, 2 Nov 2016 03:58:15 +0000 (16:58 +1300)]
layers: Move platform WSI extension checks from swapchain to PV

We want to do all extension checks in PV-- we'll return a good FP for
anything we recognize, and complain upfront if the appropriate extension
wasn't enabled.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove mdd() from PV
Chris Forbes [Wed, 2 Nov 2016 03:21:28 +0000 (16:21 +1300)]
layers: Remove mdd() from PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Remove one remaining use of mid() in PV
Chris Forbes [Wed, 2 Nov 2016 03:13:01 +0000 (16:13 +1300)]
layers: Remove one remaining use of mid() in PV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers:Handle secondary cmd buffer transitions
Tobin Ehlis [Thu, 3 Nov 2016 16:46:44 +0000 (10:46 -0600)]
layers:Handle secondary cmd buffer transitions

When recording a secondary command buffer into a primary command buffer
record any image layout transitions from the secondary cb into the
primary cb.

At QueueSubmit time we validate the layouts at the primary cmd buffer
level so this change will allow that code to correctly work if
layout transitions occur in the secondary command buffer.

7 years agolayers:Set framebuffer for secondary cmd buffer
Tobin Ehlis [Thu, 3 Nov 2016 13:26:28 +0000 (07:26 -0600)]
layers:Set framebuffer for secondary cmd buffer

If a secondary cmd buffer is inheriting state, need to update the
activeFramebuffer in same way we update active renderPass and subpass.

7 years agoloader: Rename icd and physical device vars
Mark Young [Thu, 3 Nov 2016 20:27:13 +0000 (14:27 -0600)]
loader: Rename icd and physical device vars

Clean up the names of the icd and physical device structs, lists, and
variables used throughout the loader.  Before, it was hard to tell where
the item was to be used appropriately.  Now, the names include a hint as
to where they are expected to be allocated, freed, and used.

Also, fixed a bug where we were using a trampoline item in a terminator
function, which caused issues.  Thanks to Piers @ Nvidia for discovering
this.

Change-Id: If98628a5496e9f645eff94b73e80ae7f8408f7b4

7 years agolayers: GH1115 Add missing VK_LAYER_EXPORT decorations
Karl Schultz [Thu, 3 Nov 2016 18:31:41 +0000 (12:31 -0600)]
layers: GH1115 Add missing VK_LAYER_EXPORT decorations

Functions in the vk_layer_extension_utils file were
not getting exported correctly.

Change-Id: If1bf6456cb8e79a1b6292ea76bd72e3e89a2b430

7 years agoloader: Remove vk-loader-generate.py
Mark Lobodzinski [Wed, 2 Nov 2016 21:49:08 +0000 (15:49 -0600)]
loader: Remove vk-loader-generate.py

Loader-specific version of this script was unnecessary. Moved this
functionality into vk-generate.py.

Change-Id: I2f2b7de7a6fdf368d3090c587f7fe78c31176a85

7 years agoloader: Use vk-generate.py instead of loader version
Mark Lobodzinski [Wed, 2 Nov 2016 21:43:04 +0000 (15:43 -0600)]
loader: Use vk-generate.py instead of loader version

Modify cmake to use non-loader-specific script.

Change-Id: Ibe1008badc9380fa399daf207e57438114d0b1e0

7 years agoscripts: Extend vk-generate for 'all' parameter
Mark Lobodzinski [Wed, 2 Nov 2016 21:25:26 +0000 (15:25 -0600)]
scripts: Extend vk-generate for 'all' parameter

A different script is used to generate the loader's windows
def file (loader\vk-loader-generate.py). Added the ability for the
main script to also create the loader's def file.

Change-Id: Ib5caaefe85f84489e3a9f70e20104c27f070c0e8

7 years agoscripts:Initial version of validation stats script
Tobin Ehlis [Mon, 31 Oct 2016 19:27:36 +0000 (13:27 -0600)]
scripts:Initial version of validation stats script

Adding vk_validation_stat.py script to display validation stats.

It parses the database file, unique enum header, source, and testfiles
and reports on the total number of checks and any discrepancies between
the database file and what's actually implemented.

7 years agodocs: Remove references to "this repo"
Karl Schultz [Wed, 2 Nov 2016 19:50:35 +0000 (13:50 -0600)]
docs: Remove references to "this repo"

Remove references to "this repository" in the loader and layers design doc since this file can appear on web sites, etc.

7 years agolayers: GH934 Bounds checking on SetScissor
Mike Weiblen [Mon, 31 Oct 2016 17:05:56 +0000 (11:05 -0600)]
layers: GH934 Bounds checking on SetScissor

Change-Id: I3b14cc79f851eb66401da659cb0dade9888d84a8

7 years agoloader: Fix icd reference in WSI code
Mark Young [Wed, 2 Nov 2016 15:37:08 +0000 (09:37 -0600)]
loader: Fix icd reference in WSI code

Piers Daniell (Nvidia) found a nasty bug where the loader code
was incorrectly incrementing through the ICDs as if the list was
an array.  This may fix some multi-GPU issues he has found.

Change-Id: I42dd4a153c3226ac36b82f4cda8ad21bea8b2f66

7 years agolayers: Change to including vk_safe_struct code.
Mike Stroyan [Tue, 1 Nov 2016 17:50:16 +0000 (11:50 -0600)]
layers: Change to including vk_safe_struct code.

Cmake on windows cannot handle multiple projects using generated library code.

7 years agoloader: Call ICD for CreateDisplayPlaneSurfaceKHR
Mark Young [Wed, 2 Nov 2016 01:20:41 +0000 (19:20 -0600)]
loader: Call ICD for CreateDisplayPlaneSurfaceKHR

Add vkCreateDisplayPlaneSurfaceKHR to the functions that can call
down to an ICD and let it create the KHR_surface object.

Change-Id: I32dd88868c25149a903304f23bdf3a720cdd99af

7 years agoscripts: Build single dispatch table helper
Mark Lobodzinski [Mon, 31 Oct 2016 16:23:17 +0000 (10:23 -0600)]
scripts: Build single dispatch table helper

Modified layers and tests/layers to use 'AllPlatforms' param
instead of displayserver.

Change-Id: I39d53e3991aab4f01854b227e1f6eb030850473d

7 years agoscripts: Add ifdef protection to non_wsi ext APIs
Mark Lobodzinski [Mon, 31 Oct 2016 22:53:40 +0000 (16:53 -0600)]
scripts: Add ifdef protection to non_wsi ext APIs

Dispatch_table_helper.h should not be platform dependent, wrap all
platform dependencies in pre-processor directives for safe
compilation.

Change-Id: I6c876efaceb4d3c38c719f1db9e93d7bd543370e

7 years agoscripts: Re-added AllPlatforms wsi option
Johannes van Waveren [Sun, 30 Oct 2016 04:47:59 +0000 (05:47 +0100)]
scripts: Re-added AllPlatforms wsi option

A single cross-platform dispatch table helper file is preferable.
Added the AllPlatforms parameter back into vk-generate.py

Change-Id: Icc00c04504d58007270eb55fc269651c215aa9b4

7 years agodocs: Updates for Linux loader /usr/local search paths.
Karl Schultz [Mon, 31 Oct 2016 21:58:21 +0000 (15:58 -0600)]
docs: Updates for Linux loader /usr/local search paths.

Change-Id: I899c55815ef51efd141c22a5ce37b0800c2a8430

7 years agolayers: Tweak CmdClearAttachment handling for error DB
Chris Forbes [Wed, 26 Oct 2016 20:32:34 +0000 (09:32 +1300)]
layers: Tweak CmdClearAttachment handling for error DB

- Align the 'ignored' cases with the 1.0.32 spec
- Use unique error enums in the error cases.
- 01125 isn't a perfect match for what I was trying to fix with
  this change, but the code does cover the VU statement.
  Possibly an area we can adjust in the spec.

V2: - Set test names properly too.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Validate VkClearAttachment::aspectMask against aspects present
Chris Forbes [Tue, 25 Oct 2016 23:40:31 +0000 (12:40 +1300)]
layers: Validate VkClearAttachment::aspectMask against aspects present

Fixes #1085

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agolayers: Rework some names a bit in CmdClearAttachments
Chris Forbes [Tue, 25 Oct 2016 03:32:54 +0000 (16:32 +1300)]
layers: Rework some names a bit in CmdClearAttachments

I want to use some of these names for other things...

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agodemos: Fix uninitialized variables in vulkaninfo
Tony Barbour [Fri, 28 Oct 2016 19:52:29 +0000 (13:52 -0600)]
demos: Fix uninitialized variables in vulkaninfo

Getting validation errors from uninitialized flags fields

Change-Id: I052cafcd3dc2cfd031b9d0ec75e654e318e1f320

7 years agoscripts:Add newline at end of database file
Tobin Ehlis [Mon, 31 Oct 2016 17:10:38 +0000 (11:10 -0600)]
scripts:Add newline at end of database file

This intends to always keep the newline there for consistency.

7 years agoscripts:Update unique error enums as of 10/31/16
Tobin Ehlis [Mon, 31 Oct 2016 13:55:19 +0000 (07:55 -0600)]
scripts:Update unique error enums as of 10/31/16

No new checks this week, updated script to handle blank lines and also
to not output the API name debug info by default.

Cmd line was "python spec.py -update"

7 years agoexternal: Update external commit IDs
Mark Young [Mon, 31 Oct 2016 15:49:06 +0000 (09:49 -0600)]
external: Update external commit IDs

Use latest version of Spir-V tools, Spir-V headers, and Glslang.

Change-Id: Id4675f369e016c507b09a355663b487d29b980c5

7 years agodocs: LX617: Fix Android layer path info
Karl Schultz [Mon, 31 Oct 2016 14:52:38 +0000 (08:52 -0600)]
docs: LX617: Fix Android layer path info

7 years agolayers: update error database
Jeremy Hayes [Fri, 28 Oct 2016 21:17:03 +0000 (15:17 -0600)]
layers: update error database

Change-Id: Ib7cbe624aabedec172bead14d0f6d8314f7fc743

7 years agodemos: Make present mode a command line option
Tony Barbour [Fri, 21 Oct 2016 20:47:07 +0000 (14:47 -0600)]
demos: Make present mode a command line option

rather than a compile time decision

Change-Id: Ia13400f03d1881ca3d923f47f76b068a19670435

7 years agodemos: Move staging texture to demo struct
Tony Barbour [Wed, 19 Oct 2016 20:15:49 +0000 (14:15 -0600)]
demos: Move staging texture to demo struct

Get rid of flush in staging code where it's probably unexpected, considering
it doesn't begin another command buffer, and then wait until the expected
flush to free staging texture resources

Change-Id: I80945c3f002a7efe212608895b91ccf0934fe6f9

7 years agodemos: Move command buffer creation out of layout util
Tony Barbour [Wed, 19 Oct 2016 19:41:16 +0000 (13:41 -0600)]
demos: Move command buffer creation out of layout util

Create, begin, end, and submit the setup command buffer all from the same routine
Change-Id: I1ea93e14e930dc3330f722fe212cd8f66555f618

7 years agoheader: Update header files to version 1.0.32
Mark Lobodzinski [Fri, 28 Oct 2016 14:50:56 +0000 (08:50 -0600)]
header: Update header files to version 1.0.32

 - updated vulkan.h
 - updated vk.xml (note that the validity tags have been removed in
   this update)
 - updated vulkan.hpp
 - updated loader's SOVERSION
 - updated json files to version 1.0.32

Change-Id: Ie650c1d6e0bdff3c8cc9c38d74715c454dec37de

7 years agotests: PV cmdSetViewport code style updates
Mark Lobodzinski [Fri, 28 Oct 2016 18:59:47 +0000 (12:59 -0600)]
tests: PV cmdSetViewport code style updates

Was mucking around in here anyway, so fixed up a few var names.

Change-Id: I15f6eab8a94ed73ad3d2f0db143f099732ff54f7

7 years agotests: Fix header 1.0.32 PV issues
Mark Lobodzinski [Fri, 28 Oct 2016 18:57:23 +0000 (12:57 -0600)]
tests: Fix header 1.0.32 PV issues

The validity checks have been removed from vk.xml. PV needed a small
fixup to replace a check that was formerly autogen'd.

Change-Id: Ic4249ff17c22899b6e5324131c644d054ac2a0cf

7 years agotests:Add RenderPassInUseDestroyedSignaled
Tobin Ehlis [Thu, 27 Oct 2016 13:53:36 +0000 (07:53 -0600)]
tests:Add RenderPassInUseDestroyedSignaled

Added RenderPassInUseDestroyedSignaled test to verify
VALIDATION_ERROR_00393, renderPass in-use when destroyed.

This test exercises case when renderPass is bound to cmd buffer as
a child of a bound pipeline.

Updated database file.

7 years agolayers:Add binding for renderpass in pipeline
Tobin Ehlis [Wed, 26 Oct 2016 20:30:06 +0000 (14:30 -0600)]
layers:Add binding for renderpass in pipeline

When creating the cmd buffer<->object linkage, need to account for any
renderPass that is tied to the pipeline and bind it as well.

7 years agoscripts: Make vk-generate more generic
Mark Lobodzinski [Thu, 27 Oct 2016 14:33:09 +0000 (08:33 -0600)]
scripts: Make vk-generate more generic

Removing 'AllPlatforms' arg simplifies and further isolates this
script from API changes.

Change-Id: Iaa3e7c63984e177471fe207b342d79bffa0614b7

7 years agolayers: Make dispatch_table_helper platform specific
Mark Lobodzinski [Thu, 27 Oct 2016 14:32:01 +0000 (08:32 -0600)]
layers: Make dispatch_table_helper platform specific

Allplatforms was specified unnecessarily, resulting in more work
downstream to filter out undefined entrypoints.

Change-Id: Iba542dd4cf4b51592833e704f3d166be5e73b046

7 years agoscripts: Add simplified extension groups to vulkan.py
Mark Lobodzinski [Thu, 27 Oct 2016 15:52:30 +0000 (09:52 -0600)]
scripts: Add simplified extension groups to vulkan.py

Change-Id: I349e8513e8de69580e3a2bed6b69205c377079cb

7 years agoscripts: Update vulkan.py extension lists
Mark Lobodzinski [Thu, 27 Oct 2016 15:48:53 +0000 (09:48 -0600)]
scripts: Update vulkan.py extension lists

Reduced the number of lists, standardized the accepted parameters
for using vulkan.py, and fixed up naming in preparation for
codegening vulkan.py.

Change-Id: I4dd4fff15733fc73bf0712b306fc651333568ece

7 years agobuild: Update cmake files to use variables as destinations for make install
John Zupin [Thu, 27 Oct 2016 19:15:27 +0000 (13:15 -0600)]
build: Update cmake files to use variables as destinations for make install

Change-Id: Ic1d6ebdb73e796cbb1207963973e410c9928c04f

7 years agoloader: fix duplicate detection of manifests when CMAKE_INSTALL_PREFIX is defined
Dor Askayo [Sat, 22 Oct 2016 19:20:29 +0000 (22:20 +0300)]
loader: fix duplicate detection of manifests when CMAKE_INSTALL_PREFIX is defined

This commit fixes GH-1084. (see the issue for more details)

Note that this adds /usr/local/etc and /usr/local/share to the
loader's search path for drivers and layers.

Change-Id: I2cf502cc7d905225c8d38383ea6f856a4daed3ea
Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
7 years agoloader: use CMAKE_INSTALL_FULL_<dir> to improve Linux filesystem compatibility
Dor Askayo [Sat, 22 Oct 2016 17:42:44 +0000 (20:42 +0300)]
loader: use CMAKE_INSTALL_FULL_<dir> to improve Linux filesystem compatibility

In order to improve the loader's compatibility with different filesystem hierarchies
under Linux, use CMake's CMAKE_INSTALL_FULL_<dir> instead of CMAKE_INSTALL_<dir> to
correctly resolve the absolute paths of SYSCONFDIR and DATADIR in compliance with
the GNU Coding Standard [1] and Linux Foundation's Filesystem Hierarchy Standard [2],
as explained in CMake's documentation [3].

Note to packagers: When using CMAKE_INSTALL_PREFIX, this commit obviates the
definition of other CMAKE_INSTALL_ defines to properly detect ICD and layer
manifests in GNU/Linux-compliant filesystems.

This commit fixes GH-1083. (see the issue for more details)

[1] https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
[2] https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
[3] https://cmake.org/cmake/help/v3.4/module/GNUInstallDirs.html

Change-Id: If743a3c8f5f7381e00c0d23b95b9e13c0dead144
Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
7 years agoloader: gh1093 - Fix multiple EnumPhysDev calls
Mark Young [Thu, 27 Oct 2016 21:32:08 +0000 (15:32 -0600)]
loader: gh1093 - Fix multiple EnumPhysDev calls

The loader was freeing a previously allocated struct of physical
devices every vkEnumeratePhysicalDevice call.  This caused
pointers to become stale.  This change doesn't fix every scenario,
but it does return the loader to the behavior it had before.
Future work will re-evaluate the list every time and add/remove
items as necessary.

Change-Id: I32b27df1fab521826e6cd15c534d3ab4b2ea0688

7 years agodemos: Add src and dst stages to set_image_layout
Jeremy Hayes [Tue, 25 Oct 2016 23:32:23 +0000 (17:32 -0600)]
demos: Add src and dst stages to set_image_layout

Change-Id: I97ba1643e17bb97faa868123f5ef6e6f140a9b13

7 years agodemos: Fix access masks when cube uses staging bfr
Jeremy Hayes [Tue, 25 Oct 2016 23:02:33 +0000 (17:02 -0600)]
demos: Fix access masks when cube uses staging bfr

Change-Id: I78f9c5ecb36edbd2515f7ef2a889519e45707ea8

7 years agodemos: Cube barrier changes from GH #1033
Jeremy Hayes [Tue, 25 Oct 2016 22:12:09 +0000 (16:12 -0600)]
demos: Cube barrier changes from GH #1033

Change-Id: Ib6638235ccf006e962ea3bacac82fdc1a75e08e4

7 years agocube.cpp: Remove excess tests from present fences
Jeremy Hayes [Tue, 25 Oct 2016 21:57:02 +0000 (15:57 -0600)]
cube.cpp: Remove excess tests from present 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.

Change-Id: Icfa630a821bade51439ecbc6edddd4973d7bd4ed

7 years agolayers: Fix a couple of err enum probs found by accident
Karl Schultz [Thu, 27 Oct 2016 19:29:19 +0000 (13:29 -0600)]
layers: Fix a couple of err enum probs found by accident

Change-Id: Ibdebf762561e5e0888c3c04e5047d9d879d5f45a

7 years agolayers:Share image aspect validation code
Tobin Ehlis [Wed, 26 Oct 2016 20:13:46 +0000 (14:13 -0600)]
layers:Share image aspect validation code

Mult-purpose the image aspect mask validation code to run both at
CreateImageView time and at ValidateBarriers time. There was some basic
image aspect mask validation at ValidateBarriers, but this makes it
more complete and will catch some escapes.

Update the tests related to these checks to account changes in error
messages and also trying to remove some unexpected errors.

7 years agolayers:Migrate CreateImageView checks
Tobin Ehlis [Wed, 26 Oct 2016 16:42:49 +0000 (10:42 -0600)]
layers:Migrate CreateImageView checks

Move CreateImageView checks from image layer to core_validation.
This is in preparation of dual-purposing the aspect mask checking
code to perform the same check on barriers.

Also updated these checks to use unique errors enums and made
corresponsing changes to the database file.

7 years agolayers:Rename skip_call in CreateImageView
Tobin Ehlis [Wed, 26 Oct 2016 14:04:58 +0000 (08:04 -0600)]
layers:Rename skip_call in CreateImageView

Rename skip_call->skip in CreateImageView()

7 years agolayers: Don't put self-dep edges in the subpass DAG, or any other junk
Chris Forbes [Wed, 26 Oct 2016 02:45:33 +0000 (15:45 +1300)]
layers: Don't put self-dep edges in the subpass DAG, or any other junk

We'd already excluded edges to/from VK_SUBPASS_EXTERNAL, but we don't
want any of the other weird cases either; if we attempted to trace use
of an attachment, and found a subpass which /didn't/ use it, but had a
self-dependency, we'd get stuck chasing that dependency recursively
until we exhausted the stack.

Fixes #1094

Signed-off-by: Chris Forbes <chrisforbes@google.com>
7 years agoscripts: Fix codegen issue in dispatch-table-helper
Mark Lobodzinski [Wed, 26 Oct 2016 14:19:24 +0000 (08:19 -0600)]
scripts: Fix codegen issue in dispatch-table-helper

If a dispatch table entry needed to be protected by a #ifdef and was
the last prototype in the list, the corresponding #endif was not
generated causing compilation failures.

Change-Id: I8760bf546bc38d6fc7d80cd3a095e52977dc554e

7 years agoscripts: Fixup vulkan.py for trunkmerges in VT
Mark Lobodzinski [Wed, 26 Oct 2016 15:29:08 +0000 (09:29 -0600)]
scripts: Fixup vulkan.py for trunkmerges in VT

VulkanTools still uses some of the removed vulkan.py functionality.
Adding back in to facilitate trunk merges.

Change-Id: I92b4793f551e5d2afa46f353984a97ee87d831f4

7 years agolayers:Refactor PostCallRecordFreeMemory()
Tobin Ehlis [Wed, 26 Oct 2016 04:00:47 +0000 (22:00 -0600)]
layers:Refactor PostCallRecordFreeMemory()

Simplify the code based on review feedback. Don't need loop guard and
don't need to clear the set of struct that's about to be freed.

7 years agolayers:Fix destroy functions w/ disable flags
Tobin Ehlis [Wed, 26 Oct 2016 03:47:46 +0000 (21:47 -0600)]
layers:Fix destroy functions w/ disable flags

All of the Destroy functions Pre* calls had a bug where, if the disable
flag was on, the state ptr and object struct were not correctly set.

Updated all of these cases to first update state ptr and obj_struct and
only then check the disable flag.

7 years agolayers:Rename EVENT_NODE->EVENT_STATE
Tobin Ehlis [Thu, 20 Oct 2016 20:17:21 +0000 (14:17 -0600)]
layers:Rename EVENT_NODE->EVENT_STATE

7 years agolayers:Refactor DestroyEvent
Tobin Ehlis [Thu, 20 Oct 2016 20:13:24 +0000 (14:13 -0600)]
layers:Refactor DestroyEvent

Update DestroyEvent to use the Pre/Post call pattern and add a
validation flag.

7 years agolayers:Refactor FreeMemory()
Tobin Ehlis [Thu, 20 Oct 2016 17:02:03 +0000 (11:02 -0600)]
layers:Refactor FreeMemory()

Updated FreeMemory to follow the Pre/Post call pattern. There was some
old code that I was able to just throw away such as clearing memory
struct members before the struct was freed, a few separate info
messages that aren't very useful, and some broken code that would clear
every mem reference on a cmd buffer when only a single mem object would
be freed.

Also added validation flag, unique error enum, and updated database
file.

7 years agolayers:Early exit in object_tracker FreeMemory
Tobin Ehlis [Thu, 20 Oct 2016 20:42:57 +0000 (14:42 -0600)]
layers:Early exit in object_tracker FreeMemory

If memory object is invalid, object_tracker should not call down the
chain. Also, update validation test to expect that object_tracker
will flag the invalid handle instead of core_validation.

7 years agolayers:Variable renaming
Tobin Ehlis [Thu, 20 Oct 2016 16:14:38 +0000 (10:14 -0600)]
layers:Variable renaming

Rename some vars from camelCase to lowercase to meet style guide.
There was one line where we re-did a calculation that I updated to use
the already calculated value.

7 years agolayers:Remove duplicate cmd buffer binding
Tobin Ehlis [Thu, 20 Oct 2016 16:09:44 +0000 (10:09 -0600)]
layers:Remove duplicate cmd buffer binding

Memory objects inherit cb_bindings from BASE_NODE so don't need
redundant command_buffer_bindings. Remove that and update the code to
use the standard cb_bindings.
Also renamed a few vars from camelCase while touching code.

7 years agolayers:Refactor DestroyCommandPool
Tobin Ehlis [Thu, 20 Oct 2016 15:40:35 +0000 (09:40 -0600)]
layers:Refactor DestroyCommandPool

Update DestroyCommandPool to use the Pre/Post pattern and add a
validation flag for these checks.

7 years agolayers:Update enums for cmdbuffer in-use cases
Tobin Ehlis [Thu, 20 Oct 2016 13:43:15 +0000 (07:43 -0600)]
layers:Update enums for cmdbuffer in-use cases

Add 4 unique enums for cmd buffer & pool free and reset cases.
Update the database file as well.

7 years agolayers:Rename SAMPLER_NODE->SAMPLER_STATE
Tobin Ehlis [Thu, 20 Oct 2016 12:50:37 +0000 (06:50 -0600)]
layers:Rename SAMPLER_NODE->SAMPLER_STATE

7 years agolayers:Refactor DestroySampler
Tobin Ehlis [Thu, 20 Oct 2016 12:35:39 +0000 (06:35 -0600)]
layers:Refactor DestroySampler

Update DestroySampler to use the Pre/Post pattern and add a validation
flag for these checks.

7 years agolayers:CreateDescriptorSetLayout cleanup
Tobin Ehlis [Wed, 26 Oct 2016 02:56:47 +0000 (20:56 -0600)]
layers:CreateDescriptorSetLayout cleanup

Streamline duplicate binding check, use [] operator instead of emplace,
remove dead comment and add new comment.

7 years agotests:Add DuplicateDescriptorBinding test
Tobin Ehlis [Tue, 25 Oct 2016 13:58:24 +0000 (07:58 -0600)]
tests:Add DuplicateDescriptorBinding test

Test case where descriptor set layout had two bindings with the same
value.

7 years agolayers:Refactor CreateDescriptorSetLayout
Tobin Ehlis [Tue, 25 Oct 2016 15:36:53 +0000 (09:36 -0600)]
layers:Refactor CreateDescriptorSetLayout

Update CreateDescriptorSetLayout() to use Pre/Post pattern and split
out validation of createInfo for the layout to occur before the
creation of the layout.