platform/upstream/Vulkan-Tools.git
7 years agoloader: Add env var to disable inst ext filter
Mark Young [Fri, 10 Feb 2017 18:19:02 +0000 (11:19 -0700)]
loader: Add env var to disable inst ext filter

Add an environmental variable to disable the instance extension
filtering.  Simply defining VK_LOADER_DISABLE_INST_EXT_FILTER to
a non-zero number will disable the functionality.

Change-Id: I953814b49e87289a35f154755521d5433474c920

7 years agotests: Fix UnusedPreserveAttachment
Jeremy Hayes [Thu, 9 Feb 2017 20:32:28 +0000 (13:32 -0700)]
tests: Fix UnusedPreserveAttachment

Undefined shouldn't be an error since its a valid enumerant.

Change-Id: I542b47cdf885bd9ccb96a0a113a56a849423800a

7 years agolayers: Codegen unique-objects extension whitelists
Mark Lobodzinski [Thu, 9 Feb 2017 22:58:14 +0000 (15:58 -0700)]
layers: Codegen unique-objects extension whitelists

These lists are now generated from vk.xml.

Change-Id: Id7571d8b18b272c7d7ead905d53e5ff778afcb6e

7 years agoexternal: Update glslang, spirv-tools
Mike Weiblen [Thu, 9 Feb 2017 23:02:15 +0000 (16:02 -0700)]
external: Update glslang, spirv-tools

glslang_revision to 07939886
spirv-tools_revision to f980d8c6

Change-Id: I54f3adf713cc73bba22b66319cd56fe1bf6a7f5a

7 years agolayers: Added some missing extensions to PV
Mark Lobodzinski [Wed, 8 Feb 2017 23:04:35 +0000 (16:04 -0700)]
layers: Added some missing extensions to PV

Added the display control and indirect count extensions.
Support is now included for all 1.0.39 extensions.

Change-Id: I299ffd939da0571920c401fb298bc3b8773a394b

7 years agolayers: Enable autogen'd procmap for PV
Mark Lobodzinski [Wed, 8 Feb 2017 22:27:18 +0000 (15:27 -0700)]
layers: Enable autogen'd procmap for PV

Routines and tables were previously hard-coded. They are now
generated from vk.xml.

Change-Id: I26c98bb42c9ccc287e9dd4c12447d66ea1c68d91

7 years agoscripts: Automate intercepts for parameter validation
Mark Lobodzinski [Wed, 8 Feb 2017 21:37:15 +0000 (14:37 -0700)]
scripts: Automate intercepts for parameter validation

Change-Id: Idcacab581775ce95cf11965b417b625df8e12176

7 years agolayers: Fix CmdUpdateBuffer API definition
Mark Lobodzinski [Wed, 8 Feb 2017 23:28:18 +0000 (16:28 -0700)]
layers: Fix CmdUpdateBuffer API definition

Change-Id: I7a8a2215ceb3523ca74534fe547600bb585223a7

7 years agobuild: Add detection for VS2017
Karl Schultz [Thu, 9 Feb 2017 00:27:02 +0000 (17:27 -0700)]
build: Add detection for VS2017

Change-Id: Iefcf43af57fe42f3df7d5f2e37eb826c2764f1bd

7 years agolayers:Add using statements for layer_data
Tobin Ehlis [Wed, 8 Feb 2017 19:15:27 +0000 (12:15 -0700)]
layers:Add using statements for layer_data

Add "using core_validation::layer_data;" to descriptor and buffer
validation files. This cleans up the code without adding any confusion
or name collisions.

7 years agolayers:Remove "using namespace std" statement
Tobin Ehlis [Wed, 8 Feb 2017 19:03:56 +0000 (12:03 -0700)]
layers:Remove "using namespace std" statement

Remove "using namespace std;" statement from core validation. This is
prohibited in the coding standard. Replace with specific "using"
statements for the parts of std that we use.

7 years agolayers:Rename get* utility functions
Tobin Ehlis [Wed, 8 Feb 2017 16:16:32 +0000 (09:16 -0700)]
layers:Rename get* utility functions

Rename get* helper functions to have capital first letter in-line with
coding standard.

7 years agolayers:Remove unused param
Tobin Ehlis [Wed, 8 Feb 2017 14:50:32 +0000 (07:50 -0700)]
layers:Remove unused param

UpdateCmdBufferLastCmd() doesn't use dev_data param to remove it.

7 years agolayers:Remove unused functions
Tobin Ehlis [Wed, 8 Feb 2017 14:45:35 +0000 (07:45 -0700)]
layers:Remove unused functions

These functions were formerly used for descriptor validation which is
now all contained in descriptor_set.h/cpp files.

7 years agolayers:Rename get_my_data_ptr to GetLayerDataPtr
Tobin Ehlis [Wed, 8 Feb 2017 14:40:40 +0000 (07:40 -0700)]
layers:Rename get_my_data_ptr to GetLayerDataPtr

Change utility function get_my_data_ptr() to be named GetLayerDataPtr()
which is more descriptive and capital camel case in-line with coding
standard.

7 years agolayers:Rename my_data vars to dev_data
Tobin Ehlis [Wed, 8 Feb 2017 14:14:29 +0000 (07:14 -0700)]
layers:Rename my_data vars to dev_data

All variables named my_data are device-specific instances of layer_data
so renaming them to dev_data.

7 years agocmake: GH1444, add wayland include dir to cmake
Thomas Heijligen [Wed, 8 Feb 2017 09:44:29 +0000 (10:44 +0100)]
cmake: GH1444, add wayland include dir to cmake

On some Linux distributions (e.g  openSUSE, Fedora) the wayland headers are in
a subdirectory.
Adding WAYLAND_CLIENT_INCLUDE_DIR to include_directories in CMakeLists.txt
will fix this issue.

7 years agolayers: Fix ValidateMapImageLayouts for style
Mark Lobodzinski [Wed, 8 Feb 2017 00:21:55 +0000 (17:21 -0700)]
layers: Fix ValidateMapImageLayouts for style

Var names and clang-format.

Change-Id: I2aa5aac3360ef4189e6b7720b6afe948c8d87c78

7 years agolayers: Move ValidateMapImageLayouts out of CV
Mark Lobodzinski [Wed, 8 Feb 2017 00:20:06 +0000 (17:20 -0700)]
layers: Move ValidateMapImageLayouts out of CV

Change-Id: Ib9d9c169b1306a7ed6f243bbb957719305340a2e

7 years agolayers: Fix ImageLayout validation helpers for style
Mark Lobodzinski [Wed, 8 Feb 2017 00:14:53 +0000 (17:14 -0700)]
layers: Fix ImageLayout validation helpers for style

Var names and clang-format.

Change-Id: I796a928b8c42c0f8208ed7cb34cab8ce07c1d011

7 years agolayers: Move image layout validation helpers from CV
Mark Lobodzinski [Wed, 8 Feb 2017 00:11:55 +0000 (17:11 -0700)]
layers: Move image layout validation helpers from CV

ValidateLayoutVsAttachmentDescription and ValidateLayouts now reside
in the buffer_validation module.

Change-Id: I66ce6ecba882b0e5acb70410ef2b99d32070feb0

7 years agolayers: Fix ValidateMaskBits routines for style
Mark Lobodzinski [Wed, 8 Feb 2017 00:00:12 +0000 (17:00 -0700)]
layers: Fix ValidateMaskBits routines for style

Var names and clang-format.

Change-Id: Ie125d03b808c40e35d6cf494230a48eb951195bc

7 years agolayers: Move MaskBits validation out of CV
Mark Lobodzinski [Tue, 7 Feb 2017 23:55:53 +0000 (16:55 -0700)]
layers: Move MaskBits validation out of CV

Moved ValidateMaskBitsFromLayouts, ValidateMaskBits, and
string_VkAccessFlags from CV into the buffer module.

Change-Id: Ifaf509c59778c54e733c27e7ac0381ad2cb324c0

7 years agolayers: Fix ValidateCmdBufImageLayouts for style
Mark Lobodzinski [Tue, 7 Feb 2017 23:38:17 +0000 (16:38 -0700)]
layers: Fix ValidateCmdBufImageLayouts for style

Var names and clang-format.

Change-Id: I974b36bca41d85fda392c61d19e271c7f0792de1

7 years agolayers: Move ValidateCmdBufImageLayouts out of CV
Mark Lobodzinski [Tue, 7 Feb 2017 23:36:03 +0000 (16:36 -0700)]
layers: Move ValidateCmdBufImageLayouts out of CV

Change-Id: I358250b6cacd42e4c2b28b324e3683b51efe75e0

7 years agolayers:Add physicalDevice check
Tobin Ehlis [Tue, 7 Feb 2017 22:21:00 +0000 (15:21 -0700)]
layers:Add physicalDevice check

Update GetPhysicalDeviceQueueFamilyProperties() in object_tracker to
verify that physicalDevice is valid.

7 years agolayers: Correct BlitImage check and add VU ID
Mark Lobodzinski [Tue, 7 Feb 2017 20:44:57 +0000 (13:44 -0700)]
layers: Correct BlitImage check and add VU ID

This check was only getting performed for depth/stencil images.
Enabled for all image types and added correct valid usage ID.

Change-Id: Ie2a8dcded8a55da73527fb435987eaa538c8d5e1

7 years agolayers: Move GetImageSubresourceLayout to CV
Mark Lobodzinski [Mon, 6 Feb 2017 22:44:49 +0000 (15:44 -0700)]
layers: Move GetImageSubresourceLayout to CV

Moved the validation routine from the image layer into the core
validation layer.

Change-Id: Ic2402de60934356d6582c3c938bba8695336ba83

7 years agolayers: Remove CmdResolveImage from image layer
Mark Lobodzinski [Mon, 6 Feb 2017 22:37:52 +0000 (15:37 -0700)]
layers: Remove CmdResolveImage from image layer

Change-Id: I3adc9fa2a3d7912c1100b0c862fef5583fac4f17

7 years agolayers: Update CmdResolveImage validation
Mark Lobodzinski [Mon, 6 Feb 2017 22:31:33 +0000 (15:31 -0700)]
layers: Update CmdResolveImage validation

Added one VU check, changed a few others from errors to warnings as
they are not explictly prohibited by the spec.

Change-Id: I041f9188325136f541afa5017350c2960432f8f7

7 years agolayers: Move CmdResolveImage from image layer
Mark Lobodzinski [Mon, 6 Feb 2017 22:29:37 +0000 (15:29 -0700)]
layers: Move CmdResolveImage from image layer

Added the validation from this API to the existing pre-call routine
in the buffer validation module.

Change-Id: I31eb2c9851b310c38ae2bc573dfaa5c147dac6d6

7 years agolayers: Removed CmdBlitImage from image layer
Mark Lobodzinski [Mon, 6 Feb 2017 22:08:57 +0000 (15:08 -0700)]
layers: Removed CmdBlitImage from image layer

Change-Id: I9b1154b2c6e61c00509acb89e319125a7f8d0449

7 years agolayers: Fixed some blitimage VUs
Mark Lobodzinski [Mon, 6 Feb 2017 22:04:23 +0000 (15:04 -0700)]
layers: Fixed some blitimage VUs

There were three checks which were improperly limited to depth-stencil
aspects. Two of the checks (for zero layerCounts) are also not prohibited
by the spec (for ImageBlit structures, anyhow) and so have been changed
to warnings. The remaining check for matching src and dest layerCounts
was moved and had the correct VU ID added.

Change-Id: Idb37fa94e4359e25c7bdcaed8ad65c2ddddefe0d

7 years agolayers: Removed obsolete CmdBlitImage check
Mark Lobodzinski [Mon, 6 Feb 2017 21:08:50 +0000 (14:08 -0700)]
layers: Removed obsolete CmdBlitImage check

Was enforcing VK_FILTER_NEAREST for integer formats but this is not
prohibited by the spec.

Change-Id: If9513bf9c660fc3c792e75004a257b3023539e3d

7 years agolayers: Move image layer BlitImage val into CV
Mark Lobodzinski [Mon, 6 Feb 2017 21:01:54 +0000 (14:01 -0700)]
layers: Move image layer BlitImage val into CV

Moved the guts of this layer's CmdBlitImage API into the PreCall-
Validation routine in the buffer module.

Change-Id: I353c30c72faf577be22e36c786ed7851997a0011

7 years agolayers: Move CmdBlit/ResolveImage helpers out of CV
Mark Lobodzinski [Mon, 6 Feb 2017 18:06:26 +0000 (11:06 -0700)]
layers: Move CmdBlit/ResolveImage helpers out of CV

Moved to the buffer validation module.

Change-Id: Ic80b327e7ddd4c2e699587bd0b664b91462ee8da

7 years agolayers: Refactor CmdBlitImage for PreCalls
Mark Lobodzinski [Mon, 6 Feb 2017 17:55:51 +0000 (10:55 -0700)]
layers: Refactor CmdBlitImage for PreCalls

Moved validation and state updates into separate helper functions.

Change-Id: I8427cd2c35e85f28edfb589a9dc08220eb5fa817

7 years agolayers: Refactor CmdResolveImage for PreCalls
Mark Lobodzinski [Mon, 6 Feb 2017 17:22:26 +0000 (10:22 -0700)]
layers: Refactor CmdResolveImage for PreCalls

Moved validation and state updates into separate helper functions.

Change-Id: I496d2e4e97f7c58372ebe51dcc4c4f10e456a5f2

7 years agolayers: Split CmdResolveImage val/state updates
Mark Lobodzinski [Mon, 6 Feb 2017 17:07:21 +0000 (10:07 -0700)]
layers: Split CmdResolveImage val/state updates

Change-Id: I60b593da5f2863d7d0ac9c1d1785ff43d3179c6f

7 years agolayers: Fixup var names in CmdBlit/ResolveImage
Mark Lobodzinski [Mon, 6 Feb 2017 16:46:18 +0000 (09:46 -0700)]
layers: Fixup var names in CmdBlit/ResolveImage

Change-Id: I0841ebee4b847c9d4475359fbcc8f942880ac43a

7 years agolayers: Split CmdBlitImage validation/state updates
Mark Lobodzinski [Mon, 6 Feb 2017 16:44:34 +0000 (09:44 -0700)]
layers: Split CmdBlitImage validation/state updates

Change-Id: I445ca1466537b6c9da58266c7c33d4b91450a8f6

7 years agolayers:Fix queue state recording
Tobin Ehlis [Tue, 7 Feb 2017 00:02:03 +0000 (17:02 -0700)]
layers:Fix queue state recording

Handle case when multiple calls are made to
GetPhysicalDeviceQueueFamilyProperties[2KHR]() funcs by resizing
vector and assigning elements w/ [] operator instead of using
emplace_back().

7 years agolayers:Add gpdp2 queue query to core_validation
Tobin Ehlis [Mon, 6 Feb 2017 23:53:06 +0000 (16:53 -0700)]
layers:Add gpdp2 queue query to core_validation

Intercept the GetPhysicalDeviceQueueFamilyProperties2KHR() from the
get_physical_device_properties2 extension in core_validation.
Create shared functions to handle both validation and state updates for
the original GetPhysicalDeviceQueueFamilyProperties() function as well
as the new API.
Add function ptr chain look-up for new API call.

7 years agolayers:Update parameter validation for gpdp2
Tobin Ehlis [Mon, 6 Feb 2017 23:44:50 +0000 (16:44 -0700)]
layers:Update parameter validation for gpdp2

Update get_physical_device_properties2 parameter validation:
-Allow new pNext down CreateDevice struct
-Add some post-call validation when querying image formats
-Rename skip_call to skip

7 years agolayers:Update object validation for gpdp2
Tobin Ehlis [Mon, 6 Feb 2017 23:15:55 +0000 (16:15 -0700)]
layers:Update object validation for gpdp2

A few updates to object_tracker validation for
get_physical_device_properties2 extension.
Use lock_guard instead of unique_lock.
Add queried queues to queue tracking.

7 years agolayers: Used predefined SPIR-V magic number
Mark Lobodzinski [Tue, 7 Feb 2017 15:17:00 +0000 (08:17 -0700)]
layers: Used predefined SPIR-V magic number

Change-Id: Ic766149709a74671ff4b2fc42c3dc1fc716eece7

7 years agolayers: Remove helper routine dead parameters
Mark Lobodzinski [Mon, 6 Feb 2017 22:34:43 +0000 (15:34 -0700)]
layers: Remove helper routine dead parameters

Change-Id: I9fa9456cd228dd3636002c5f59e60d7f7e1909fa

7 years agotests:Add DSBufferLimitErrors test
Tobin Ehlis [Fri, 3 Feb 2017 02:01:44 +0000 (19:01 -0700)]
tests:Add DSBufferLimitErrors test

Hit 4 separate error cases for uniform buffer descriptor's range and
alignment limits and the same limits for storage buffer descriptors.

7 years agolayers:Add buffer descriptor device limit checks
Tobin Ehlis [Fri, 3 Feb 2017 00:26:40 +0000 (17:26 -0700)]
layers:Add buffer descriptor device limit checks

This adds missing checks for max range for storage and uniform buffer
updates. Also update database file.

7 years agolayers: adjust VU database/scripts for impl flag
Mike Weiblen [Fri, 3 Feb 2017 19:44:53 +0000 (12:44 -0700)]
layers: adjust VU database/scripts for impl flag

Since the VU database audit, "U" is no longer valid as a value for
the check_implemented status; only "Y" or "N" are valid.

Adjust the spec.py generator script to default to "N" for newly added
Valid Usages.

Adjust database stats script to emit an error message if the
check_implemented value is anything other than "Y" or "N".
Added some whitespace between functional areas.

Update the database to change recently VU lines from "U" to "N".

Change-Id: I72929362d67ddea862cb380e1bfcd0b475531d56

7 years agolayers: GH706, Allow GLSL shaders during validation
Mark Lobodzinski [Fri, 3 Feb 2017 22:15:12 +0000 (15:15 -0700)]
layers: GH706, Allow GLSL shaders during validation

Validation will now ignore shader shages created with GLSL when
using the NV_GLSL_SHADER extension.

Change-Id: Iaa4b284c6491a5be8d77f4616018a0cd05af8d18

7 years agolayers: Set up disable for shader validation
Mark Lobodzinski [Sat, 4 Feb 2017 17:55:12 +0000 (10:55 -0700)]
layers: Set up disable for shader validation

Added a disable flag for shader validation.

Change-Id: I6b0a563a1350d988740ea111ec6d7f007702c595

7 years agolayers: Add enable for NV_GLSL_SHADER extension
Mark Lobodzinski [Fri, 3 Feb 2017 19:07:43 +0000 (12:07 -0700)]
layers: Add enable for NV_GLSL_SHADER extension

Change-Id: Iffe21dd329c253878b9c2db0ceaf2e8f62679703

7 years agoloader: gh1449 - Fix mem leak on CTS
Mark Young [Fri, 3 Feb 2017 23:27:42 +0000 (16:27 -0700)]
loader: gh1449 - Fix mem leak on CTS

Fix a memory leak in the CTS test which fails randomly during
the vkCreateInstance call.

Change-Id: Ie72feac730d3854cb2af9e13a3687aa43081bfd5

7 years agolayers: Remove redundant validation from image layer
Mark Lobodzinski [Thu, 2 Feb 2017 23:12:37 +0000 (16:12 -0700)]
layers: Remove redundant validation from image layer

CmdPipelineBarrier validation in image layer is already performed in
core_validation via checks 769 and 2598. Updated MiscImageLayerTests
to use existing VU id as well as database with new test name.

Change-Id: I218dacf6a98ad576aa7cb07c1b33784a105faee6

7 years agolayers: Remove CmdClearAttachments from image layer
Mark Lobodzinski [Thu, 2 Feb 2017 22:51:57 +0000 (15:51 -0700)]
layers: Remove CmdClearAttachments from image layer

Change-Id: I8974331f45308696372b675e05408df2a42486f9

7 years agolayers: Move CmdClearAttachments into buffer module
Mark Lobodzinski [Thu, 2 Feb 2017 22:50:27 +0000 (15:50 -0700)]
layers: Move CmdClearAttachments into buffer module

This validation was in the image layer.

Change-Id: Ia0995b352735c319145a07b1e6b90a5a03ddd463

7 years agolayers: Move PreCallValCmdClearAttachments from CV
Mark Lobodzinski [Thu, 2 Feb 2017 22:22:50 +0000 (15:22 -0700)]
layers: Move PreCallValCmdClearAttachments from CV

This validation routine and helpers now reside in buffer_validation.

Change-Id: Icd487e400a17f952b59a426d7268d38ea4c17c69

7 years agolayers: Remove CmdCopyImage from image layer
Mark Lobodzinski [Thu, 2 Feb 2017 21:40:11 +0000 (14:40 -0700)]
layers: Remove CmdCopyImage from image layer

Change-Id: I54c5e356b97c2c755a9b360e745a50da48776f21

7 years agolayers: Move CmdCopyImage validation into CV
Mark Lobodzinski [Thu, 2 Feb 2017 21:38:47 +0000 (14:38 -0700)]
layers: Move CmdCopyImage validation into CV

Moved from image layer into buffer module.

Change-Id: If4a826cd8ce311a30d2ce15a820459dbe4b96743

7 years agolayers: Tolerate null handles in destroy and free routines
Tony Barbour [Thu, 2 Feb 2017 16:31:30 +0000 (09:31 -0700)]
layers: Tolerate null handles in destroy and free routines

Several CTS tests call destroy routines with null pointers.  This
keeps validation layers from crashing or reporting false positives

Change-Id: I95a3bee21902598dffc0df28e53f5ff253cb6207

7 years agolayers: Move findlayout/setlayout & val helpers
Mark Lobodzinski [Wed, 1 Feb 2017 20:35:48 +0000 (13:35 -0700)]
layers: Move findlayout/setlayout & val helpers

Moved image layout related validation and support routines out of
core validation and into the buffer_validation module.

Change-Id: I85ce2c5172d9a89e465e29fe2d6abdaab1f99747

7 years agocube: Error handling improvements
Robert Morell [Wed, 1 Feb 2017 22:51:00 +0000 (14:51 -0800)]
cube: Error handling improvements

- Add a newline to the end of the error message when printing to stdout
  for ERR_EXIT.
- Handle demo_read_spv failures by calling ERR_EXIT rather than just
  continuing on and calling the Vulkan library with a NULL pointer.

7 years agoloader: Improve Linux manifest search
Benjamin Saunders [Sun, 29 Jan 2017 22:49:54 +0000 (14:49 -0800)]
loader: Improve Linux manifest search

Searching XDG_CONFIG_DIRS and XDG_DATA_DIRS instead of hard-coding
specific paths improves portability, particularly on platforms which
don't implement the Filesystem Hierarchy Standard. For example, this
allows the loader to function correctly out of the box on NixOS.

7 years agolayers: Plumb through image_state structures
Mark Lobodzinski [Thu, 2 Feb 2017 15:31:18 +0000 (08:31 -0700)]
layers: Plumb through image_state structures

Saved some lookups by sending down state instead of images in the
image validation helper functions.

Change-Id: I2b21218596b8e980d4f55451a5feccdb2dac6360

7 years agolayers: Move ClearDepthStencilImage val out of CV
Mark Lobodzinski [Wed, 1 Feb 2017 17:57:21 +0000 (10:57 -0700)]
layers: Move ClearDepthStencilImage val out of CV

Moved this image layer validation into the existing routines in the
buffer_validation module.

Change-Id: If809b5ef484fccdd2d9715adc06c5e439b0b8942

7 years agolayers: Move image validation support to buffer_val
Mark Lobodzinski [Wed, 1 Feb 2017 16:03:06 +0000 (09:03 -0700)]
layers: Move image validation support to buffer_val

Moved the new CmdClear[Color/DepthStencil]Image support routines
to the buffer_validation module, along with some related helper
functions.

Change-Id: I76a4b545e696bbc770ef0c672d14c92e4a941e49

7 years agoloader: Minor language clarification, fix markup
Jeff Juliano [Tue, 31 Jan 2017 21:36:18 +0000 (16:36 -0500)]
loader: Minor language clarification, fix markup

7 years agolayers:Move gfx pipe check to create time
Tobin Ehlis [Wed, 1 Feb 2017 20:31:22 +0000 (13:31 -0700)]
layers:Move gfx pipe check to create time

Fixes #1424

The check to verify that the attachmentCount for blend state of a
Graphics Pipeline matches the attachmentCount for the given subpass of
the creation renderPass was occurring at draw time but can and should
be done at Gfx Pipeline creation time.

This change moves the check to creation time and updates the database
and test appropriately.

7 years agodemos: Add XInitThreads to xlib path of cubes
Tony Barbour [Tue, 31 Jan 2017 23:09:58 +0000 (16:09 -0700)]
demos: Add XInitThreads to xlib path of cubes

Change-Id: Idb2991972bdd91c3e48ad5d796de4b31d7138c98

7 years agolayers: Refactor ClearColor/DSImage for pre/post
Mark Lobodzinski [Tue, 31 Jan 2017 22:24:47 +0000 (15:24 -0700)]
layers: Refactor ClearColor/DSImage for pre/post

Change-Id: Id055c26ca0ecb5012f96a7e8f474d598d6b46dfd

7 years agolayers: Split validation/state updates for clears
Mark Lobodzinski [Tue, 31 Jan 2017 22:11:38 +0000 (15:11 -0700)]
layers: Split validation/state updates for clears

CmdClearColorImage and CmdClearDepthStencilImage routines mixed
validation and state updates.  Separated these and made the state
updates conditional on passing validation.

Change-Id: Ib710e91a038f7a0307d30218a49db1bf49bb8187

7 years agolayers: Fix var names in CmdClear[C|DS]image
Mark Lobodzinski [Tue, 31 Jan 2017 21:57:03 +0000 (14:57 -0700)]
layers: Fix var names in CmdClear[C|DS]image

Change-Id: I3206d734401cb162b219ed9d0a169786a3b5c4c4

7 years agolayers: Fix var names for ClearImageLayout funcs
Mark Lobodzinski [Tue, 31 Jan 2017 21:54:24 +0000 (14:54 -0700)]
layers: Fix var names for ClearImageLayout funcs

Change-Id: I66c42d591d70b816788cb1ab457d8d674fb5cbe5

7 years agolayers: Split VerifyClearImageLayout routine
Mark Lobodzinski [Tue, 31 Jan 2017 21:48:54 +0000 (14:48 -0700)]
layers: Split VerifyClearImageLayout routine

This routine mixed validation checks and state updates. Split into
two routines: Validation is in VerifyClearImageLayout while state
updates are now in RecordClearImageLayout.

Change-Id: Ib6c943c0df16a9bdbcc7c44c775f371b56bbcbb2

7 years agodocs: Update build dependencies
Rene Lindsay [Fri, 27 Jan 2017 18:32:17 +0000 (11:32 -0700)]
docs: Update build dependencies

libx11-xcb-dev is used by WSI-Window.
libx11-xcb-dev depends on libx11-dev and libxcb1-dev.
So, installing libx11-xcb-dev will install all three.

Change-Id: Id3909919bbd48794df2fcad10b67ea3f8dbb203f

7 years agolayers: Rename misleading renderpass structure var
Mark Lobodzinski [Tue, 31 Jan 2017 20:20:50 +0000 (13:20 -0700)]
layers: Rename misleading renderpass structure var

Renderpass state structure was called 'renderPass' leading to some
confusion and errors.

Change-Id: I9c0d301fc41cebff6a1eadc99ee2d2d30d11beb1

7 years agolayers: GH1390, Fix BeginRenderPass validation msg
Mark Lobodzinski [Tue, 31 Jan 2017 18:10:38 +0000 (11:10 -0700)]
layers: GH1390, Fix BeginRenderPass validation msg

Incorrect index was printed in validation warning. Clarified message.

Change-Id: I77806a5fa5da25e966b009126d7a0db7a47a3908

7 years agolayers: GH1390, Fix renderpass handle output
Mark Lobodzinski [Tue, 31 Jan 2017 17:55:50 +0000 (10:55 -0700)]
layers: GH1390, Fix renderpass handle output

The CV CmdBeginRenderPass validation was using the incorrect variable
to output the renderpass handle in error messages.

Change-Id: I902a04ba7009557257732e0ff65d98aa93f88f31

7 years agolayers: Add tests for sparse images
Dave Houlton [Tue, 24 Jan 2017 22:09:17 +0000 (15:09 -0700)]
layers: Add tests for sparse images

Add two tests to verify the checks added around sparse residency
images.

Change-Id: Iedd56acecb34c26f367a099ca6acbea8f6e4dedf

7 years agolayers: Add sparse image tiling check - GH283
Dave Houlton [Mon, 23 Jan 2017 23:37:04 +0000 (16:37 -0700)]
layers: Add sparse image tiling check - GH283

Fixed the missing sparse residency with linear tiling check from
GitHub issue #283. Also added 6 related valid usage checks from the
database.

Change-Id: I357e63ee0e6e4787e1aeea67756906e591ba8187

7 years agocube: Add direct to display support
Damien Leone [Tue, 31 Jan 2017 17:26:07 +0000 (10:26 -0700)]
cube: Add direct to display support

Although this extension is platform agnostic, this commit only enables
it on Linux because this is the only platform I am able to test.

Direct to display is enabled by passing '-DDEMOS_WSI_SELECTION=DISPLAY'
to cmake.

Change-Id: I5f23019d4b0c87104e1f834d3a6901850bfda7a3

7 years agovulkaninfo: Kill printed whitespace
Mark Lobodzinski [Tue, 31 Jan 2017 17:34:28 +0000 (10:34 -0700)]
vulkaninfo: Kill printed whitespace

Change-Id: I1e9d088d744bd1c4745a4c77ea75207f5350bf02

7 years agovulkaninfo: Print human-readable heap sizes
Tobias Markus [Mon, 30 Jan 2017 09:48:00 +0000 (10:48 +0100)]
vulkaninfo: Print human-readable heap sizes

Since the size of a memory heap can be rather substantial, it is helpful
to have the size additionally printed out in a human-readable format,
i.e. using prefixes.

Change-Id: I47aad4fce06471804ce9e853ba300626b6ad34c8

7 years agolayers: Migrate image layer CmdClearColorImage
Mark Lobodzinski [Fri, 27 Jan 2017 22:16:01 +0000 (15:16 -0700)]
layers: Migrate image layer CmdClearColorImage

The image layer checks for this API were moved to the
buffer_validation module and a call was added to CV.

Change-Id: I04b23843519d2354c952afebc3a3428b196339e3

7 years agolayers: Move CreateRenderPass format check to PV
Mark Lobodzinski [Fri, 27 Jan 2017 21:50:23 +0000 (14:50 -0700)]
layers: Move CreateRenderPass format check to PV

Format validation check was in image layer -- removed the API
completely and moved check to parameter_validation. Also updated
to use the VU ID and noted it in the database.

Change-Id: I339925be7615777cfb1214ffe456a2498c676177

7 years agolayers: Update PostCallRecordCreateImage
Mark Lobodzinski [Fri, 27 Jan 2017 21:25:32 +0000 (14:25 -0700)]
layers: Update PostCallRecordCreateImage

Changed to use layer_data accessor functions instead of passing in
items individually.

Change-Id: I55b92a4e0a6fff0e74516b9249c213f7d514cc8e

7 years agolayers: Move DestroyImage code into buffer module
Mark Lobodzinski [Fri, 27 Jan 2017 19:28:30 +0000 (12:28 -0700)]
layers: Move DestroyImage code into buffer module

Moved CHECK_DISABLED into CV_types.h, moved validation and recording
routines into buffer_validation.cpp.

Change-Id: I103d0fc9c2e985d98943471ec6f83898c58bfdfe

7 years agolayers: Fix CreateImage extent validation
Mark Lobodzinski [Fri, 27 Jan 2017 18:13:21 +0000 (11:13 -0700)]
layers: Fix CreateImage extent validation

Spec has changed and no longer allows any member of the extents
structure to be <= zero. Fixed validation and added correct VU ID,
updated test and database.

Change-Id: Ifafedf8cd6d59ecba975ae1b25c9f00d86247504

7 years agolayers: Move CreateImage validation into core_val
Mark Lobodzinski [Thu, 26 Jan 2017 22:23:11 +0000 (15:23 -0700)]
layers: Move CreateImage validation into core_val

Was in Image layer.  Added layer_data accessor functions.

Change-Id: I55b7896cfc9de81210c9fba4d332998c827f5d44

7 years agocmake: GH1428, Reenable subproject builds
Mark Lobodzinski [Tue, 31 Jan 2017 14:35:19 +0000 (07:35 -0700)]
cmake: GH1428, Reenable subproject builds

SCRIPTS dir was defined using CMAKE_SOURCE_DIR which prevented LVL
from building correctly if used as a subproject. Changed to use
CMAKE_CURRENT_SOURCE_DIR.

Change-Id: I201fcfde78b65df80c3c74373a26e4d518770806

7 years agobuild: Enable declaration hiding warning on Windows
Karl Schultz [Fri, 20 Jan 2017 20:19:20 +0000 (13:19 -0700)]
build: Enable declaration hiding warning on Windows

Fixes #1388
Turn on the Windows compiler option (4456) to report
hidden declarations.
Fix all places where this was occurring.

Change-Id: I3346d87da8b70d6299c206fcac68520a091ed1a6

7 years agolayers: Add new module to stats script
Mark Lobodzinski [Fri, 27 Jan 2017 22:34:37 +0000 (15:34 -0700)]
layers: Add new module to stats script

Change-Id: Ic353c7bd1d0c9d067fa52d413b25a87f641c4747

7 years agoexternal: Update glslang/spirv-tools revisions
Mike Weiblen [Fri, 27 Jan 2017 21:03:26 +0000 (14:03 -0700)]
external: Update glslang/spirv-tools revisions

glslang_revision to commit 62c3e400
spirv-tools_revision to commit cb009b38

Change-Id: I44146bc2fca4043013076e9368fcc8cefa6854b4

7 years agolayers: GH-909 level/layer Valid Usage checking
Mike Weiblen [Tue, 24 Jan 2017 20:08:42 +0000 (13:08 -0700)]
layers: GH-909 level/layer Valid Usage checking

Refactor subresourceRange.levelCount and subresourceRange.layerCount
checking from PreCallValidateCreateImageView() into a standalone
helper function ValidateImageSubrangeLevelLayerCounts() to facilitate
reuse below.

Add ValidateImageSubrangeLevelLayerCounts() to ValidateBarrier(), to
address GH-909.

This extends the reuse of Valid Usages 00768 and 00769, which are
already tagged as deserving new standalone Valid Usages.
This change is implemented such that it will be simple to modify for
new VUs, once they're available.

Also canonicalize function names passed as parameter to helper
function.

Change-Id: I8346a19e9b2c4df578334c2aebfb78e6492bd1d9

7 years agolayers: Fix for VkBufferImageCopy for depth/stencil
Marcin Kantoch [Fri, 27 Jan 2017 11:33:21 +0000 (12:33 +0100)]
layers: Fix for VkBufferImageCopy for depth/stencil

According to the Vulkan spec:

"If the the calling command's VkImage parameter's format is not a
depth/stencil format, then VkBufferImageCopy::bufferOffset must be
a multiple of the format's element size"

Currently the image validation layer is checking unconditionally if
VkBufferImageCopy::bufferOffset is a multiple of the format's
element size and reporting error otherwise.

Added code that skips the alignment check if the VkImage parameter's
format is combined depth/stencil.

Change-Id: I92f2a67eee590fa3616df9da121aceec65204c24

7 years agorepo: Clang-format LVL source files using Google
Mark Lobodzinski [Thu, 26 Jan 2017 20:34:13 +0000 (13:34 -0700)]
repo: Clang-format LVL source files using Google

Switch clang-format standard from the LLVM style to the
Google style for more consistency.

Change-Id: I247c4abc275d7873a91522e1e234198adaa24033

7 years agorepo: Change source style from LLVM to Google
Mark Lobodzinski [Thu, 26 Jan 2017 20:30:26 +0000 (13:30 -0700)]
repo: Change source style from LLVM to Google

Matches the source code style guide.

Change-Id: I9a1328ce8b500fa34336b52964dcb2c7fd16e17b

7 years agorepo: Clang-format c/cpp/h LVL files using LLVM
Mark Lobodzinski [Thu, 26 Jan 2017 19:16:30 +0000 (12:16 -0700)]
repo: Clang-format c/cpp/h LVL files using LLVM

Bring all source files in the repo up to date with consistent
coding style/standard.

Change-Id: Iceedbc17109974d3a0437fc4995441c9ad7e0c23

7 years agorepo: Update root .clang-format file
Mark Lobodzinski [Wed, 25 Jan 2017 16:25:29 +0000 (09:25 -0700)]
repo: Update root .clang-format file

Change-Id: Id47dc032bd82c096263531c8a3ec9237d6ef8d79