platform/upstream/Vulkan-Tools.git
7 years agobuild: Turn on "treat warnings as errors" on Win
Karl Schultz [Tue, 24 Jan 2017 22:44:26 +0000 (14:44 -0800)]
build: Turn on "treat warnings as errors" on Win

Also address compiler warnings:

- Suppress warnings for inconsistently redefined snprintf
  on Windows with Visual Studio < 2015.  Warnings for
  preprocessor redefinitions are still enabled on VS 2015
  because snprintf is not redefined on VS 2015.

- Turn off "changed behavior" warning with Visual Studio < 2015
  for using initializers in constructors.  MSFT "fixed" some
  forms of these initializers so that they clear members instead
  of just leaving them alone.  Since clearing is usually desired,
  this isn't a problem in most cases.  But if an object is
  reinstantiated on top of an existing object, via placement new
  for example, the clearing may not be desired if the first object's
  data was meant to be preserved.  We don't count on this behavior.

- Suppress linker warning for linking the loader in debug build on
  Windows.  This warning is for mismatched runtime libraries and
  causes extra code to be linked in only for debug builds.  Ignoring
  the warning is generally regarded as better than the alternatives.

Change-Id: I8b0e311d3c80a8dd9ac0cc95f764ed1123efa86f

7 years agolayers: Disable clang-format for gen'd header
Mark Lobodzinski [Wed, 25 Jan 2017 16:33:25 +0000 (09:33 -0700)]
layers: Disable clang-format for gen'd header

The vk_validation_error_messages.h header file now disables
clang-format, as it is generated in-source.

Change-Id: Ie9abf005c79b67cdb5843025ce19091d23fe1bec

7 years agoscripts:Unique error enum update for 1/25/2017
Tobin Ehlis [Wed, 25 Jan 2017 20:42:55 +0000 (12:42 -0800)]
scripts:Unique error enum update for 1/25/2017

Hadn't had a spec update in quite a while so this one was huge.
Also the format of the spec itself changed which required a number of
changes to the spec parser. The spec script is still broken for the
online spec which is not valid xhtml. For this update I downloaded the
spec source and hand-edited the broken parts so that the spec parser
could deal with it. Will figure out a better solution going forward,
though.

Here's the beast of a command line for this update:
python spec.py -spec test_xhtml_spec_039.html -update -remap 214-180,3:\
269-220,3:361-289:371-299:373-301:409-334,10:470-404,12:483-416,6:\
768-625,10:948-754,2:951-756,4:970-760,8:979-769:989-778,4:1031-812,16:\
1048-828,16:1158-936:1160-937,10:1171-947,12:1189-965:1190-966,2:\
1192-968:1251-1027,33:1371-1141:1408-1175,3:1412-1178:1414-1179,2:\
1417-1181:1419-1182,15:1435-1198,2:1627-1343,7:1646-1359,2:1668-1366,2:\
1720-1383:1783-1395:1871-1449:1878-1455,16:1977-1554,5:2012-1565,9:\
1992-1559,4:1997-1563,2:2202-1615:2222-1635,2:1047-1741:2313-1844,7:\
2361-1878,5:2370-1883,6:956-2161,13:1650-2201:1672-2214:1696-2229,2:\
1729-2249,2:1759-2267,2:1793-2288,2:1982-2304,6:1990-2313:1999-2314,13:\
2366-2327,4:1159-2348:968-2524:1413-2533:1418-2534:983-772,4:2512-1680:\
2587-2040:1996-2547:1170-2525:969-2173

7 years agolayers: Add new exts to unique_objects whitelist
Lenny Komow [Wed, 25 Jan 2017 20:35:01 +0000 (13:35 -0700)]
layers: Add new exts to unique_objects whitelist

Change-Id: Ia61c79833ed3b6e37402406631a50c746f312928

7 years agodemos: Protect smoke demo data file from c-f
Mark Lobodzinski [Wed, 25 Jan 2017 17:11:50 +0000 (10:11 -0700)]
demos: Protect smoke demo data file from c-f

Clang formatting the teapot mesh data file makes it unnecessarily
lengthy -- disabled for the data definition portion of the file.

Change-Id: I773fc4655b381b26a33e32fe845514f36b9d8e66

7 years agolayers: Protect format table from autoformatting
Mark Lobodzinski [Wed, 25 Jan 2017 17:01:11 +0000 (10:01 -0700)]
layers: Protect format table from autoformatting

Change-Id: I0dbb2ab1c8f8179fe3d1fe575258051e56104f7d

7 years agolayers: Make uniqueobjects header clang-format proof
Mark Lobodzinski [Wed, 25 Jan 2017 16:56:02 +0000 (09:56 -0700)]
layers: Make uniqueobjects header clang-format proof

Change-Id: I779ed9c2c1d9c7d8d0fcfec4dd89d95c14ee1401

7 years agodocs: Update contributing doc
Mark Lobodzinski [Wed, 25 Jan 2017 14:56:21 +0000 (07:56 -0700)]
docs: Update contributing doc

Change-Id: I3ead4ff33591c55312eab9b6a6b515d0453ab796

7 years agoloader: Fix EnumPhysDev bug
Mark Young [Tue, 24 Jan 2017 22:54:29 +0000 (15:54 -0700)]
loader: Fix EnumPhysDev bug

Fix a bug found by Piers with regards to vkEnumeratePhysicalDevices.
Basically, if the application called the function without first
calling it with NULL pPhysicalDevices, the count would be wrong.

Change-Id: If3a4ba60b17c64df2133d31d3692ee6da21c6a01

7 years agoSuppress VC++ 2017 signed/unsigned warning
Bruce Dawson [Tue, 24 Jan 2017 05:48:04 +0000 (21:48 -0800)]
Suppress VC++ 2017 signed/unsigned warning

When building Chrome with VC++ 2017 there is one warning, from passing
an int to a call to std::vector<uint32_t>::find. This change adds a cast
to avoid that warning, thus fixing issue #1395.

7 years agobuild: Update travis for xrandr dependency
Lenny Komow [Tue, 24 Jan 2017 21:49:45 +0000 (14:49 -0700)]
build: Update travis for xrandr dependency

Change-Id: I16f8e6a423ce1af305429f4c175da781139d0cb6

7 years agoloader: Update the loader to 1.0.39
Mark Young [Fri, 20 Jan 2017 04:10:49 +0000 (21:10 -0700)]
loader: Update the loader to 1.0.39

Add new extensions for 1.0.39.  Also, updated layers to include
minimal set of functionality for 1.0.39 extensions. Extensions include:
 - VK_KHR_get_physical_device_properties2
 - VK_KHR_shader_draw_parameters
 - VK_EXT_direct_mode_display
 - VK_EXT_display_surface_counter
 - VK_EXT_display_control

Also, redo the LoaderAndLayerIf document.

Change-Id: I10412086da7a798afe832a3892e18f606259b5af

7 years agolayers: Fixup cmake for new generated file deps
Mark Lobodzinski [Mon, 23 Jan 2017 16:57:36 +0000 (09:57 -0700)]
layers: Fixup cmake for new generated file deps

Change-Id: I9b5d9de6689da31907edc9ca547ae57dddee94cc

7 years agocmake: Add common targets/rules for helper files
Mark Lobodzinski [Mon, 23 Jan 2017 16:08:20 +0000 (09:08 -0700)]
cmake: Add common targets/rules for helper files

Change-Id: I26244eaf04451fd7c3755563953c7b8ad3715613

7 years agocmake: Move common xml-gen macro to root file
Mark Lobodzinski [Mon, 23 Jan 2017 15:51:08 +0000 (08:51 -0700)]
cmake: Move common xml-gen macro to root file

We had several copies of this macro across the repos -- moved it to
the top-level cmake file for sharing.

Change-Id: I33a97ecb24ad8c7cc6826c1a431f668fa2bec41f

7 years agoexternal: Update glslang/spirv-tools revisions
Mike Weiblen [Fri, 20 Jan 2017 18:53:07 +0000 (11:53 -0700)]
external: Update glslang/spirv-tools revisions

glslang_revision to commit 22f25d80c6
spirv-tools_revision to commit 9c71c572e5

Change-Id: Ia08b18315755c421772f0db5b503bf7a166bb3ce

7 years agolayers:Synch validation updates
Tobin Ehlis [Thu, 19 Jan 2017 19:05:27 +0000 (12:05 -0700)]
layers:Synch validation updates

I started scrubbing the valid usage blocks for synch validation and
made a few different updates here.
Added a missing unique error id and a comment for another.
Got a bit sidetracked and decided to implement a check for all
stageMasks to make sure that they don't set geometry shader or
tessellation shader bits if those featurse aren't enabled.

Added a test to verify new check and made a bunch of updates to the
database file.

7 years agocontrib: Update style guide and add Git rules
Jeremy Hayes [Thu, 19 Jan 2017 21:10:18 +0000 (14:10 -0700)]
contrib: Update style guide and add Git rules

Change-Id: I968e503c0c9c107d5e4496e54f68e0e57563fec2

7 years agotests: Add checks for ClearAttachment validation
Mark Lobodzinski [Wed, 18 Jan 2017 22:44:53 +0000 (15:44 -0700)]
tests: Add checks for ClearAttachment validation

Renamed existing test, added new test cases and updated the
validation error database with the test names.

Change-Id: Ie0600f2ad8b1fa0851479b91a555622bbe1075b9

7 years agolayers: Refactor ClearAttachments to pre/post form
Mark Lobodzinski [Wed, 18 Jan 2017 22:14:29 +0000 (15:14 -0700)]
layers: Refactor ClearAttachments to pre/post form

Change-Id: Ica1bf93ddcd7eb0c2e83171ba5e56df382571677

7 years agolayers: Fixup ClearAttachments variable names
Mark Lobodzinski [Wed, 18 Jan 2017 21:55:58 +0000 (14:55 -0700)]
layers: Fixup ClearAttachments variable names

Change-Id: Ia6ea0fa3df94fe433d5a166f6e5d2cfa38efec68

7 years agolayers: Remove redundant CV ClearAttachments check
Mark Lobodzinski [Wed, 18 Jan 2017 21:52:22 +0000 (14:52 -0700)]
layers: Remove redundant CV ClearAttachments check

This check was incorrectly labeled, and the actual check is present
in the image layer.

Change-Id: I29b866eb9da731e0996b95da3052b4878e906602

7 years agolayers: GH398, CmdClearAttachments validation
Mark Lobodzinski [Thu, 12 Jan 2017 18:14:35 +0000 (11:14 -0700)]
layers: GH398, CmdClearAttachments validation

Change-Id: I69aa3613db700f736393b35322bc383620b1d4e0

7 years agoVulkaninfo: Vulkaninfo crashes when DISPLAY is invalid
Arda Coskunses [Thu, 19 Jan 2017 17:41:27 +0000 (10:41 -0700)]
Vulkaninfo: Vulkaninfo crashes when DISPLAY is invalid

On Linux the following command crashes:
DISPLAY=foobar ./vulkaninfo

This patch fixes this issue.
https://github.com/LunarG/VulkanTools/issues/125

Change-Id: Ibb8d7b8b6cb4dc730aab9f5b4311e744c903029b

7 years agolayers: GH1355, Fix bad swapchain image accesses
Thomas Louis [Tue, 10 Jan 2017 23:17:08 +0000 (00:17 +0100)]
layers: GH1355, Fix bad swapchain image accesses

vkAcquireNextImageKHR throws Access Violation Exception. Added a new
error enum value and created an error check in vkAcquireNextImageKHR
to avoid index out of bounds exception (thrown in core_validation)
within the application.

Change-Id: Ie7fe2d3830e26c21b09290054cc39bc55e534cbc

7 years agodocs: Update runtime installer license copyright
Lenny Komow [Wed, 18 Jan 2017 23:04:12 +0000 (16:04 -0700)]
docs: Update runtime installer license copyright

Change-Id: I41e6cdeb573754cebbf9c38cffc8be7a7c196591

7 years agoscripts: GH1383, Fix Dota2 issue with safe_structs
Mark Lobodzinski [Wed, 18 Jan 2017 18:05:48 +0000 (11:05 -0700)]
scripts: GH1383, Fix Dota2 issue with safe_structs

Change-Id: I158a86639ec802e47f3a87a95af8cf20d1cffbf5

7 years agolayers: Fixup CreateImage paramter list
Mark Lobodzinski [Tue, 17 Jan 2017 23:24:29 +0000 (16:24 -0700)]
layers: Fixup CreateImage paramter list

Change-Id: Idfcc569d3985a4ff31503535af9c8329c6304f6a

7 years agolayers: Move CreateImage recording to buf/img module
Mark Lobodzinski [Wed, 11 Jan 2017 18:36:16 +0000 (11:36 -0700)]
layers: Move CreateImage recording to buf/img module

- Move source from core_validation.cpp into new module
- Add new module to layers cmake file
- Update android build scripts/makefiles for new files

Change-Id: Ia4000b26384d96a551d727f5e37997372f01764a

7 years agolayers: Move image struct into cv_types header
Mark Lobodzinski [Tue, 17 Jan 2017 16:14:36 +0000 (09:14 -0700)]
layers: Move image struct into cv_types header

To allow external access to image_state structs.

Change-Id: I3af02068c81b32df68b56c4e210cb2a5b2000efa

7 years agolayers: Add physical device props init to CV
Mark Lobodzinski [Wed, 11 Jan 2017 16:34:01 +0000 (09:34 -0700)]
layers: Add physical device props init to CV

Image layer checks need limits/caps.

Change-Id: Ib01d194e57563e327ce15846a7a384d78929ebc4

7 years agolayers: Add error message header to CV header
Mark Lobodzinski [Tue, 17 Jan 2017 20:09:40 +0000 (13:09 -0700)]
layers: Add error message header to CV header

Was working due to coincidental include so made explicit.

Change-Id: I6cd580c8a5e643ed19d3950c33012c5c42c12e14

7 years agolayers: Create buffer/image validation module
Mark Lobodzinski [Tue, 17 Jan 2017 21:14:22 +0000 (14:14 -0700)]
layers: Create buffer/image validation module

As image layer is folded into CV, image- and buffer-related
checks will reside in these modules.

Change-Id: Id261cc0d40eaa51211c36bb1fa82d0cbbaf1a6f5

7 years agolayers: PR1381, Fix vkCmdCopyImage intersection check
Alex Smith [Tue, 17 Jan 2017 11:13:23 +0000 (11:13 +0000)]
layers: PR1381, Fix vkCmdCopyImage intersection check

RegionIntersects would return true if the source and destination array
layers and mip level did *not* overlap, resulting in a spurious
validation error when trying to copy between different array layers or
mip levels of the same image.

Change-Id: I2e5675f703a4f5e2e7cbfd1d038bd38c7d7dafe0

7 years agowinsdk: Fix RT not reading versions from registry
Lenny Komow [Mon, 16 Jan 2017 17:10:47 +0000 (10:10 -0700)]
winsdk: Fix RT not reading versions from registry

Change-Id: I44bb8c167492739467448925375ae1b99fb8a2db

7 years agoloader: Fix static analysis warnings
Karl Schultz [Fri, 13 Jan 2017 21:01:35 +0000 (14:01 -0700)]
loader: Fix static analysis warnings

Handle possible null pointer dereferences.
Misc other warnings, nothing too serious.
Not addressing alloca concerns yet.

Change-Id: I712a6b4996a4d900604867e373521ff4d1c53df5

7 years agoloader: Improve loader logging
Mark Young [Fri, 13 Jan 2017 17:27:03 +0000 (10:27 -0700)]
loader: Improve loader logging

Clean up some more logging strings with extra spaces.  Also,
updated the command-line output of the VK_LOADER_DEBUG messages
so that they clearly indicate what type of log message is being
outputted: INFO, WARNING, ERROR, PERF, and DEBUG.

Change-Id: I8cbb5b058094febdccf912eb595f5b4f01c3485b

7 years agowinsdk: Allow Configuring layers for older SDKs
Lenny Komow [Fri, 13 Jan 2017 21:20:57 +0000 (14:20 -0700)]
winsdk: Allow Configuring layers for older SDKs

Change-Id: I9b13d7c43ee159f935d289ea939ac3c2c1e54875

7 years agodemos: Add uniform buffer per swapchain image to cube
Tony Barbour [Wed, 11 Jan 2017 20:35:09 +0000 (13:35 -0700)]
demos: Add uniform buffer per swapchain image to cube

Change-Id: I290ed2a8f72303c58a52cace3c9d640cb3264def

7 years agodemos: Cube quit ignoring NULL fence errors
Tony Barbour [Fri, 6 Jan 2017 22:56:39 +0000 (15:56 -0700)]
demos: Cube quit ignoring NULL fence errors

Change-Id: I2cc5c49b53a19716096ac912120286f03f7d6f91

7 years agodemos: Cube updated to use triple buffering
Tony Barbour [Fri, 6 Jan 2017 22:54:22 +0000 (15:54 -0700)]
demos: Cube updated to use triple buffering

Change-Id: I2ae1cb03ec98ee8f31c6103ed3fc8f1f8edc4a2c

7 years agoscripts:Stop printing dbg stats scrip debug info
Tobin Ehlis [Thu, 12 Jan 2017 21:26:56 +0000 (14:26 -0700)]
scripts:Stop printing dbg stats scrip debug info

Comment out a couple of lines from the stats script that were
printing out debug information. Also update "str" var name to be
non-keyword "sub_str" and fix a broken print debug statement.

7 years agoscripts:Add stats for implicit checks
Tobin Ehlis [Thu, 12 Jan 2017 20:45:55 +0000 (13:45 -0700)]
scripts:Add stats for implicit checks

Have stats script count the un-implemented implicit checks and report
them out. Also report out the potential coverage number if all
un-implemented implicit checks are handled by parameter_validation.

7 years agoscripts:Add implicit check count to spec.py
Tobin Ehlis [Wed, 11 Jan 2017 23:18:20 +0000 (16:18 -0700)]
scripts:Add implicit check count to spec.py

Updated all implicit checks in database file to include the text
'implicit' in their note field.

spec.py will add 'implicit' to the note field for any new implicit
checks that are added, and will also print out a count of implicit
checks.

7 years agoloader: Fix phys device error message
Lenny Komow [Thu, 12 Jan 2017 22:47:53 +0000 (15:47 -0700)]
loader: Fix phys device error message

Change-Id: I37cfdb4b290dc8d5be7c606e32eb8d369ea43c6a

7 years agoloader: Modify EnumPhysDev functions
Mark Young [Thu, 12 Jan 2017 19:27:19 +0000 (12:27 -0700)]
loader: Modify EnumPhysDev functions

Modify the loader's trampoline and terminator
vkEnumeratePhysicalDevice functions to utilize helper functions.
Also, fix the failure in CTS.

Change-Id: Id9356fffd42f878c660ac8ee831e7527cce608bd

7 years agoloader: Fix variable shadowing warning.
Jamie Madill [Wed, 11 Jan 2017 20:51:01 +0000 (15:51 -0500)]
loader: Fix variable shadowing warning.

Change-Id: I71916c5300c24158901123f775b7b2fec3293e5b

7 years agodemos: Fix static analysis warnings in vulkaninfo
Karl Schultz [Wed, 11 Jan 2017 19:15:58 +0000 (12:15 -0700)]
demos: Fix static analysis warnings in vulkaninfo

Add exit code after failed mallocs.
Dynamically allocate gpu info and handle arrays, getting
rid of artificial limit.  This also moves a large allocation
from the stack to the heap.
There are still some false positives from the MSFT analyzer
that aren't worth fixing or suppressing.

7 years agodemos: smoketest: Add --flush option for tracing
joey-lunarg [Tue, 10 Jan 2017 22:55:49 +0000 (15:55 -0700)]
demos: smoketest: Add --flush option for tracing

Running smoketest with --flush will call vkFlushMappedMemoryRanges so
that the trace layer is aware of modified memory. This is not
necessary with the --PMB option in vktrace.

Change-Id: If72c0ed0c651cf82f2f2c4c78ec2534a0d475a9c

7 years agolayers: Update CV authors
Mark Lobodzinski [Wed, 11 Jan 2017 22:25:28 +0000 (15:25 -0700)]
layers: Update CV authors

Change-Id: I153a68206db8d5f346755f0691bdca777908d748

7 years agolayers: Plumb function name/idx through swapchain
Mark Lobodzinski [Wed, 11 Jan 2017 20:54:09 +0000 (13:54 -0700)]
layers: Plumb function name/idx through swapchain

PreCallValidateCreateSwapchainKHR is now used to validate
CreateSwapchain as well as CreateSharedSwapchains. Plumbed the
functionName down through the validation code so users can see the
faulting API and the bad swapchain index.

Change-Id: Ieb885704bef8a73c09e6670594e96494b62cb1a4

7 years agolayers: Refactor CreateSharedwapChains for recording
Mark Lobodzinski [Wed, 11 Jan 2017 20:14:36 +0000 (13:14 -0700)]
layers: Refactor CreateSharedwapChains for recording

Added PreCallValidate and PostCallRecord functions for this API.

Change-Id: Iebf8eb980dadbb29cceffd6a9fefb5340939eb0f

7 years agolayers: Refactor CreateSwapChain for recording
Mark Lobodzinski [Wed, 11 Jan 2017 19:09:31 +0000 (12:09 -0700)]
layers: Refactor CreateSwapChain for recording

Added a PostCallRecord function for this API.

Change-Id: I6f9e67ea5fbcf1ee4f54043c5269ad282339a9db

7 years agolayers: GH1199, Validate SharedSwapchains
Mark Lobodzinski [Wed, 11 Jan 2017 01:10:03 +0000 (18:10 -0700)]
layers: GH1199, Validate SharedSwapchains

Change-Id: I1e382aefdd13ed6c575d3654962e09e9558af97f

7 years agoloader: Add more logging messages
Mark Young [Tue, 10 Jan 2017 21:22:15 +0000 (14:22 -0700)]
loader: Add more logging messages

Add more logging messages on Error cases to help debugging.

Change-Id: I78b6bd7c73d7234283bf94d745c8733d59752422

7 years agoscripts: Remove vulkan.py
Mark Lobodzinski [Tue, 10 Jan 2017 20:15:42 +0000 (13:15 -0700)]
scripts: Remove vulkan.py

Change-Id: I95b1c346d3611c6d6b3a22f108b4b5ff9c313e0c

7 years agoscripts: Remove vk_helper.py
Mark Lobodzinski [Tue, 10 Jan 2017 19:00:25 +0000 (12:00 -0700)]
scripts: Remove vk_helper.py

This functionality is now generated entirely from vk.xml.

Change-Id: Ie3385f924b6ec9a8d74f2ad6fed7064ab0dc0534

7 years agoandroid: Switch safe_struct over to new codegen
Mark Lobodzinski [Tue, 10 Jan 2017 18:55:48 +0000 (11:55 -0700)]
android: Switch safe_struct over to new codegen

Change-Id: Ia89cfec2b836437c2f2009608795d1ee38b811ad

7 years agolayers: Update cmake for safe_struct codegen
Mark Lobodzinski [Mon, 9 Jan 2017 21:42:52 +0000 (14:42 -0700)]
layers: Update cmake for safe_struct codegen

Change-Id: Idc0e76aa479d2c9f3e096a31f620eb96d843849d

7 years agoscripts: Update copyright notice dates for 2017
Mark Lobodzinski [Tue, 10 Jan 2017 18:42:22 +0000 (11:42 -0700)]
scripts: Update copyright notice dates for 2017

Change-Id: I6adc6a8ac07f2ac11814a6f8cd06b7d5b0c49797

7 years agoscripts: Initial version of safe_struct cpp gen
Mark Lobodzinski [Wed, 4 Jan 2017 16:16:00 +0000 (09:16 -0700)]
scripts: Initial version of safe_struct cpp gen

Change-Id: I1f3c28b7737e58731206e93af50fb1d18cd4f937

7 years agoscripts: Update comments in helper generator
Mark Lobodzinski [Tue, 3 Jan 2017 20:25:10 +0000 (13:25 -0700)]
scripts: Update comments in helper generator

Change-Id: Ie4171bb18ff499e54bdbd8ff7237e7026e6cf3e9

7 years agoscripts: Complete safe_struct header generation
Mark Lobodzinski [Tue, 3 Jan 2017 20:22:10 +0000 (13:22 -0700)]
scripts: Complete safe_struct header generation

Change-Id: I87de80173ff414202f6e876db3da688466f3598d

7 years agoscripts: Remove blank lines from end of helper files
Mark Lobodzinski [Tue, 3 Jan 2017 20:22:44 +0000 (13:22 -0700)]
scripts: Remove blank lines from end of helper files

Change-Id: Ie972f2d8b6bca633fbfb4745f29eab183cde7acb

7 years agoscripts: Stub in safe_struct generator source
Mark Lobodzinski [Tue, 3 Jan 2017 18:14:26 +0000 (11:14 -0700)]
scripts: Stub in safe_struct generator source

Change-Id: I060e8bb0eddda0c94bdaed7e04fddac8bf9d5822

7 years agoscripts: Add generator options for safestruct files
Mark Lobodzinski [Tue, 3 Jan 2017 17:55:13 +0000 (10:55 -0700)]
scripts: Add generator options for safestruct files

Change-Id: Iffd19369976ac15ad54251e15a7f49e061a807e8

7 years agolayers: Remove lock held across down-chain call
Mark Lobodzinski [Tue, 10 Jan 2017 22:11:48 +0000 (15:11 -0700)]
layers: Remove lock held across down-chain call

Unnecessary lock was grabbed just before an API call.

Change-Id: I0ef561d9b620f42333ba034dcbc87cba6daea776

7 years agolayers: Reset Valid Usage database check status
Mike Weiblen [Tue, 10 Jan 2017 18:04:51 +0000 (11:04 -0700)]
layers: Reset Valid Usage database check status

Following the audit of existing Valid Usage enums in the LVL codebase,
we can claim that there are no Valid Usage checks in an unknown
state; the existing VU checks are either implemented or not.

This commit resets the check_implemented flags in the VU database,
such that any remaining "U" (Unknown) entries now become "N" (Not
implemented).

Going forward, the check_implemented status flag must be either "Y"
or "N"; "U" is no longer permitted.

Change-Id: Iaf1807cadf02d57e3fa5676108e290d3bab9b271

7 years agoandroid: Fix typos in android-generate script
Mark Lobodzinski [Tue, 10 Jan 2017 20:59:58 +0000 (13:59 -0700)]
android: Fix typos in android-generate script

Change-Id: I31c32e56ae09134b7b91c610b546a9d46c20c007

7 years agobuild: Update travis config to catch build errors on intermediate steps
Cody Northrop [Tue, 10 Jan 2017 20:29:52 +0000 (13:29 -0700)]
build: Update travis config to catch build errors on intermediate steps

7 years agolayers: Transition each aspect individually in TransitionImageLayouts
Alex Smith [Tue, 10 Jan 2017 09:51:22 +0000 (09:51 +0000)]
layers: Transition each aspect individually in TransitionImageLayouts

This fixes the possibility of spurious validation errors like the following,
when attempting to transition multiple aspects of an image after only a subset
of those aspects have previously been used in the command buffer:

  "Cannot query for VkImage 0x599 layout when combined aspect mask 6 has
   multiple initial layout types: VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL and
   VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"

The specific case where this bug was encountered was where both the depth and
stencil aspects of an image were initially in the TRANSFER_DST_OPTIMAL layout.
The first command in the command buffer to reference the image was a
vkCmdClearDepthStencilImage on only the depth aspect of the image, followed
later by a vkCmdPipelineBarrier to transition both aspects to the
DEPTH_STENCIL_ATTACHMENT_OPTIMAL layout.

Since TransitionImageLayouts tries to look up the initial state for all
aspects at the same time, it was picking up the state based on the depth
aspect because of the previous use of that (which had both initialLayout
and layout set to TRANSFER_DST_OPTIMAL), and then calling SetLayout for all
aspects with only the new layout. Since the stencil aspect didn't have any
currently recorded state, it was being added with both initialLayout and
layout set to the new layout, causing a mismatch between the initialLayout for
the two aspects and therefore the spurious error above.

Fix by updating the state for each aspect individually.

7 years agoscripts: Remove unused code from vk_helper.py
Mark Lobodzinski [Thu, 29 Dec 2016 20:09:21 +0000 (13:09 -0700)]
scripts: Remove unused code from vk_helper.py

Struct size helper files are now generated by the helper_file_generator
script.

Change-Id: Ifcb0cceb9621f3f4bb41d948e9f0bb3fca7a0ea1

7 years agoandroid: Add codegen for struct_size_helpers
Mark Lobodzinski [Thu, 29 Dec 2016 21:34:00 +0000 (14:34 -0700)]
android: Add codegen for struct_size_helpers

Change-Id: I264d7ecca323089bda1583dbcf9eb751736146a7

7 years agolayers: Update build dependency target name
Mark Lobodzinski [Thu, 29 Dec 2016 20:00:51 +0000 (13:00 -0700)]
layers: Update build dependency target name

Changed enum_string_helper target to be generic for multiple files.

Change-Id: I760eb634839228211554686aa92c9771602786bb

7 years agolayers: Change struct_size_helper to use new codegen
Mark Lobodzinski [Thu, 29 Dec 2016 19:58:30 +0000 (12:58 -0700)]
layers: Change struct_size_helper to use new codegen

Remove old references, add calls to new generator.

Change-Id: I64ab859e4ae6893870697f16ee6fd596b8a7908b

7 years agolayers: Remove unused header from core_validation
Mark Lobodzinski [Thu, 29 Dec 2016 18:40:23 +0000 (11:40 -0700)]
layers: Remove unused header from core_validation

This header is unused by the module.

Change-Id: Ife7a1b8eb344e2a670e1cfc9ace3e0697c97cd7e

7 years agoscripts: Handle vk.xml latexmath in helper files
Mark Lobodzinski [Fri, 6 Jan 2017 15:47:48 +0000 (08:47 -0700)]
scripts: Handle vk.xml latexmath in helper files

The vk.xml file contains latex-formatted metadata which must be
parsed for codegen.

Change-Id: Ie64c9974371d2bb66ba460165a0c23505991ebd7

7 years agoscripts: Include chain_size helper in struct_size
Mark Lobodzinski [Thu, 29 Dec 2016 21:04:15 +0000 (14:04 -0700)]
scripts: Include chain_size helper in struct_size

Change-Id: I1afcee1ab90ad18d758fdb476d2d0012a891bdfc

7 years agoscripts: Complete struct_size_helper source gen
Mark Lobodzinski [Thu, 29 Dec 2016 17:23:47 +0000 (10:23 -0700)]
scripts: Complete struct_size_helper source gen

This file will now output a complete vk_struct_size_helper.c file.

Change-Id: Ic87fd7d3c9a95daa666e8e4da63a21d31e8bfb86

7 years agoscripts: Add gen for struct_size_helper source file
Mark Lobodzinski [Wed, 28 Dec 2016 22:41:15 +0000 (15:41 -0700)]
scripts: Add gen for struct_size_helper source file

First level code-gen, move some code into functions.

Change-Id: Idf8ee44a1f74c4117aed74b8df5b548df618e790

7 years agoscripts: Add generation of struct_size_helper header
Mark Lobodzinski [Wed, 28 Dec 2016 21:45:34 +0000 (14:45 -0700)]
scripts: Add generation of struct_size_helper header

Added generator-side plumbing to create the vk_struct_size_helper.h
file.

Change-Id: I5ff226131b8db2d773e4422877bdb2993ed76cf4

7 years agoscripts: Add struct_size options for source, header
Mark Lobodzinski [Wed, 28 Dec 2016 17:46:26 +0000 (10:46 -0700)]
scripts: Add struct_size options for source, header

Added struct processing guts for building the struct_size_helper
header and source files.

Change-Id: I8172b921b670b47b8fd66499de6d76ddb3ef934d

7 years agoscripts: Mod helper generator for multiple files
Mark Lobodzinski [Wed, 28 Dec 2016 15:49:46 +0000 (08:49 -0700)]
scripts: Mod helper generator for multiple files

Added parsing of option, conditional file generation to helper file
generator.

Change-Id: Ia7c51d50fb1785f3002dc2868f98d8e384d0e36e

7 years agoscripts: Pass parameters to helper file generator
Mark Lobodzinski [Wed, 28 Dec 2016 15:49:29 +0000 (08:49 -0700)]
scripts: Pass parameters to helper file generator

The helper file generator will be used to output multiple helper
files. Added passing of parameter and test call for this feature
to the generator options block.

Change-Id: I1e417ff50628f395c589282ed6f96f0340758f23

7 years agolayers: Add valid usage enums to core_validation (VL-60)
Mike Schuchardt [Tue, 3 Jan 2017 22:21:24 +0000 (15:21 -0700)]
layers: Add valid usage enums to core_validation (VL-60)

Update valid usage enums in subsection of core validation from
validate_and_capture_pipeline_shader_state() to
checkGraphicsOrComputeBit() inclusive.

Change-Id: I8b71c63de26e42eb073a1eac1abd121d5e57f5c7

7 years agolayers: Remove redundant code
Jeremy Hayes [Tue, 13 Dec 2016 20:09:44 +0000 (13:09 -0700)]
layers: Remove redundant code

This is already being checked in the object tracker layer.

Change-Id: Ie1d5776810c3f8a3df7b9ef920d02e90c0d239b4

7 years agolayers: Update valid usage for Jira VL-59.
Jeremy Hayes [Mon, 12 Dec 2016 18:01:28 +0000 (11:01 -0700)]
layers: Update valid usage for Jira VL-59.

Change-Id: I9aba0480aad5b565eb59f642def7a11e46822566

7 years agolayers: Update Valid Usage enums (VL-69)
Mike Weiblen [Thu, 5 Jan 2017 22:16:11 +0000 (15:16 -0700)]
layers: Update Valid Usage enums (VL-69)

Update Valid Usage enums in parameter_validation.cpp.

Update VU status in the database.

Completes Jira task VL-69.

Change-Id: Ie16c41dd0ad8f264b62b3d5b60d100d7b9b3f229

7 years agolayers: Tag internal helper functions as static
Mike Weiblen [Thu, 5 Jan 2017 22:11:00 +0000 (15:11 -0700)]
layers: Tag internal helper functions as static

Reduce the scope of internal helper functions by
declaring them static.

This is only changes lines related to VL-69,
rather than a full sweep of the code.

Change-Id: I3593e519d11066cd8631f56131de39e6e3b73f50

7 years agolayers: Canonicalize function names in log_msg()
Mike Weiblen [Fri, 6 Jan 2017 23:20:51 +0000 (16:20 -0700)]
layers: Canonicalize function names in log_msg()

For consistancy, Vulkan function names in log_msg strings should
include the vk prefix and end with parens.

Also fix some typos and cut/paste errors.

This only touches lines related to VL-69; it is not a sweep
of all instances in the code.

Change-Id: I41a8f0c9d3b93203f67aef3fa570eb8d95725d31

7 years agolayers: Update Valid Usage enums (VL-63)
Mike Weiblen [Fri, 23 Dec 2016 21:00:22 +0000 (14:00 -0700)]
layers: Update Valid Usage enums (VL-63)

Update Valid Usage enums in a subsection of core_validation.cpp.

Refactored some helper functions to add parameter for msgCode.

Update VU status in the database.

Completes Jira task VL-63.

Change-Id: Iba2cfb978a044d6affb21df9b02a2ac852dfba4e

7 years agoscripts: Remove debugging code from PV
Mark Lobodzinski [Fri, 6 Jan 2017 20:09:19 +0000 (13:09 -0700)]
scripts: Remove debugging code from PV

Change-Id: Ia58e87a07e0e182b6dd447f4d6dc2c7fb2a9f346

7 years agoscripts: Fix handle tracking in parameter validation
Mark Lobodzinski [Fri, 6 Jan 2017 20:08:05 +0000 (13:08 -0700)]
scripts: Fix handle tracking in parameter validation

Handle list was reset for each feature -- accumulate handles across
all Vulkan features to allow exension handle validation to proceed.

Change-Id: Id240404d9cc6757d741f575b9152b0aa82a0c1c2

7 years agolayers: CmdDrawIndirect is not an indexed command
Tony Barbour [Fri, 6 Jan 2017 18:52:50 +0000 (11:52 -0700)]
layers: CmdDrawIndirect is not an indexed command

Change-Id: Ic5e947382f64db366c72fbf058bbbd1118f79e01

7 years agolayers: GH1342, Correct objecttype in object_tracker
Mark Lobodzinski [Fri, 6 Jan 2017 14:37:11 +0000 (07:37 -0700)]
layers: GH1342, Correct objecttype in object_tracker

The IndirectCountAMD extension had the wrong object type specified
for validating its command buffers.

Change-Id: I36707455c6e59f9f0f8456b67b02a320fa4631fa

7 years agoloader: gl167 - Remove unknown inst extensions
Lenny Komow [Thu, 29 Dec 2016 23:27:28 +0000 (16:27 -0700)]
loader: gl167 - Remove unknown inst extensions

Change-Id: I24aecbdab452a04514fd42a9a9ae7f3bcf1cd2ca

7 years agodemos: Make spacebar pause work in cube demo (Linux).
Karl Schultz [Wed, 4 Jan 2017 17:31:20 +0000 (10:31 -0700)]
demos: Make spacebar pause work in cube demo (Linux).

Fixes #1316.
Rework XCB event processing code to handle events
properly and avoid hangs when pausing.
Fix polarity of decrease/increase spin rate keys.  I
suspect that this was an artifact from fixes made
to the transforms a while back.

Change-Id: I74adf7309227fafd175d8972ca930a304c58a1dd

7 years agobuild: Add libxkbcommon to Travis config
Karl Schultz [Thu, 5 Jan 2017 13:43:15 +0000 (06:43 -0700)]
build: Add libxkbcommon to Travis config

libxkbcommon is needed to build VulkanSamples

7 years agodocs: Fix README to show Travis master br status
Karl Schultz [Wed, 4 Jan 2017 22:50:38 +0000 (15:50 -0700)]
docs: Fix README to show Travis master br status

Better to show status only for master branch Travis builds.  Other branches frequently fail and cause the badge to not reflect the status of the master branch.

7 years agoscripts:Adding duplicate error id exceptions
Tobin Ehlis [Wed, 4 Jan 2017 15:11:01 +0000 (08:11 -0700)]
scripts:Adding duplicate error id exceptions

Adding three more exceptions to stats script for duplicate uses of
unique error ids.