platform/upstream/Vulkan-Tools.git
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

7 years agoloader: Protect loader macro lists from clang-format
Mark Lobodzinski [Thu, 26 Jan 2017 19:22:32 +0000 (12:22 -0700)]
loader: Protect loader macro lists from clang-format

Change-Id: I3e943a538d33737453a3e71edebbd026a1c7f6f3

7 years agorepo: Remove subordinate .clang-format files
Mark Lobodzinski [Wed, 25 Jan 2017 16:23:04 +0000 (09:23 -0700)]
repo: Remove subordinate .clang-format files

Change-Id: I64e05b33dd830e5d2c6e7ed4c5e8a292692eae39

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