platform/upstream/Vulkan-Tools.git
6 years agolayers: Bind mem 2 entry points
Mike Schuchardt [Fri, 19 Jan 2018 00:59:06 +0000 (17:59 -0700)]
layers: Bind mem 2 entry points

Add entry points for VK_KHR_bind_memory2 and wire up to existing
validation

Change-Id: Iab17ead7a6f6f44fdbdf2ad5033d2ea7e47447d0

6 years agolayers: Mem reqs 2 entry points
Mike Schuchardt [Wed, 10 Jan 2018 22:11:06 +0000 (15:11 -0700)]
layers: Mem reqs 2 entry points

Add entry points for VK_KHR_get_memory_requirements2 and wire up to
existing validation.

Change-Id: I3f9170b0171efc5a22ddb1e3b68185cedd17bca5

6 years agotests: Add unit test for push descriptor set VUIDs
John Zulauf [Fri, 26 Jan 2018 18:46:12 +0000 (11:46 -0700)]
tests: Add unit test for push descriptor set VUIDs

Add the unit test case for the following added checks.
VALIDATION_ERROR_1be02415
VALIDATION_ERROR_1be002d6
VALIDATION_ERROR_1be002da
VALIDATION_ERROR_1be002d8
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording

Change-Id: Ib9aa008ab87dddead3eb086d5c8ed3fb94f5f187

6 years agolayers: Add CmdPushDescriptorSet parameter checks
John Zulauf [Fri, 26 Jan 2018 18:23:10 +0000 (11:23 -0700)]
layers: Add CmdPushDescriptorSet parameter checks

Added the stateful parameter checks for push descriptor.

VALIDATION_ERROR_1be02415
  VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool
  The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VALIDATION_ERROR_1be002d6
  VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363
  pipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VALIDATION_ERROR_1be002da
  VUID-vkCmdPushDescriptorSetKHR-set-00365
  set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VALIDATION_ERROR_1be002d8
  VUID-vkCmdPushDescriptorSetKHR-set-00364
  set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
// Not implemented using VUID as ValidateCmd currently doesn't support (TODO)
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording
  commandBuffer must be in the recording state

Change-Id: I52f39780003e23953dd2dc46ec007e884c04fa5b

6 years agolayers: Improve doc validation init-list parsing
John Zulauf [Fri, 26 Jan 2018 20:42:08 +0000 (13:42 -0700)]
layers: Improve doc validation init-list parsing

Change VALIDATION_ERROR_ parsing to correctly recognize error ids in
initializer lists, including the formatting as done by clang-format.
{VALIDATION_ERRROR_nnnn, ... VALIDATION_ERROR_nnnn}

Change-Id: I25a1c0d0c9181ece458f7c83d2f184abea8d1f4a

6 years agotests: Add test for push descriptor allocation
John Zulauf [Wed, 24 Jan 2018 18:56:18 +0000 (11:56 -0700)]
tests: Add test for push descriptor allocation

Add unit test case for attempting to use vkAllocateDescriptorSets with a
descriptor set layout created with the push descriptor flag
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set.

Test cases added:
VALIDATION_ERROR_04c00268
    VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308

Change-Id: If11e12a3dd51f4c796178b89d8e9077a5227407c

6 years agolayers: Add check for push descriptor allocation
John Zulauf [Wed, 24 Jan 2018 18:54:05 +0000 (11:54 -0700)]
layers: Add check for push descriptor allocation

Add validation check for attempting to use vkAllocateDescriptorSets with
a descriptor set layout create with the push descriptor flag
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set.

Checks added:
VALIDATION_ERROR_04c00268
    VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308

Change-Id: I81bed8e7eb5396f7a716b6a14b648b5051127259

6 years agotests: Add tests for push DS layout create VUIDs
John Zulauf [Tue, 23 Jan 2018 18:57:46 +0000 (11:57 -0700)]
tests: Add tests for push DS layout create VUIDs

Added tests for additional valid usage checks:
VALIDATION_ERROR_05000230  VkDescriptorSetLayoutCreateInfo-flags-00280
VALIDATION_ERROR_05000232  VkDescriptorSetLayoutCreateInfo-flags-00281

Added test for "required extension" present check for creation of DS
layout with push descriptors flag set.

Change-Id: Ia274d9ce3ee38ec686e52c4101a6d0573294f852

6 years agolayers: Add push descriptor set layout create VUID
John Zulauf [Tue, 23 Jan 2018 18:27:35 +0000 (11:27 -0700)]
layers: Add push descriptor set layout create VUID

Add VUID checks to vkCreateDescriptorSetLayout for push descriptor sets.
Additional checks include:

VALIDATION_ERROR_05000230  VkDescriptorSetLayoutCreateInfo-flags-00280
VALIDATION_ERROR_05000232  VkDescriptorSetLayoutCreateInfo-flags-00281

Also added check for use of
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR when the
required extension VK_KHR_push_descriptor is not enabled.

Updated CreateDescriptorSetBindingWithIgnoredSamplers test, which
violated the above check.

Change-Id: Ie009019bbb7859553df92473796a1a929a9464f7

6 years agoicd: Add VK_KHR_push_descriptor to blacklist
John Zulauf [Tue, 23 Jan 2018 23:30:00 +0000 (16:30 -0700)]
icd: Add VK_KHR_push_descriptor to blacklist

As VK_KHR_get_physical_device_properties2 pNext structure queries are
not implemented within mock_icd,
VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors cannot
be queried by the validation layers, causing numerous test failures when
this limit is checked (in a subsequen commit).  Added to ignore until
such time it is correctly reported.

Change-Id: I77b9a37c9ab2ce3e730b7fa6596e23ccc2be8d8c

6 years agolayer: Add utility template for sType init
John Zulauf [Tue, 23 Jan 2018 18:20:50 +0000 (11:20 -0700)]
layer: Add utility template for sType init

Add utility function to auto populate sType field based on typename
given to autogen of typemap helper. Return value optimization (copy
elision) should make this perfomance neutral vs. inline init.

Change-Id: I231cf92d5063c19f9ad5b14189dd162fdac76a43

6 years agoDon't complain about unused vertex buffers being VK_NULL_HANDLE
Chris Forbes [Wed, 24 Jan 2018 18:53:21 +0000 (10:53 -0800)]
Don't complain about unused vertex buffers being VK_NULL_HANDLE

6 years agodemos: Update cube/smoke for submodule compatibility
Mark Lobodzinski [Wed, 24 Jan 2018 00:54:26 +0000 (17:54 -0700)]
demos: Update cube/smoke for submodule compatibility

6 years agocmake: Fix glslang validator cmake hint path
Mark Lobodzinski [Tue, 23 Jan 2018 22:56:01 +0000 (15:56 -0700)]
cmake: Fix glslang validator cmake hint path

Change-Id: I098b4ce4dcb924bcc1fc15da50332118a0756a43

6 years agotests: Add barrier queue family index tests
John Zulauf [Tue, 16 Jan 2018 18:48:49 +0000 (11:48 -0700)]
tests: Add barrier queue family index tests

Add validation layer tests for Buffer and Image memory barriers.

VUIDs test refactored(*)/new:
VALIDATION_ERROR_0a000960*   VUID-VkImageMemoryBarrier-image-01200
VALIDATION_ERROR_0a000962    VUID-VkImageMemoryBarrier-image-01201
VALIDATION_ERROR_0a00096a    VUID-VkImageMemoryBarrier-image-01205
VALIDATION_ERROR_0a000dce    VUID-VkImageMemoryBarrier-image-01767
VALIDATION_ERROR_0a000dd0    VUID-VkImageMemoryBarrier-image-01768
VALIDATION_ERROR_0a00095e    VUID-VkImageMemoryBarrier-image-01199
VALIDATION_ERROR_0a000aca    VUID-VkImageMemoryBarrier-image-01381
VALIDATION_ERROR_0a000dcc    VUID-VkImageMemoryBarrier-image-01766

VALIDATION_ERROR_0180094e    VUID-VkBufferMemoryBarrier-buffer-01191
VALIDATION_ERROR_01800dc6    VUID-VkBufferMemoryBarrier-buffer-01763
VALIDATION_ERROR_01800952    VUID-VkBufferMemoryBarrier-buffer-01193
VALIDATION_ERROR_01800dca    VUID-VkBufferMemoryBarrier-buffer-01765
VALIDATION_ERROR_01800dc8    VUID-VkBufferMemoryBarrier-buffer-01764
VALIDATION_ERROR_0180094c    VUID-VkBufferMemoryBarrier-buffer-01190
VALIDATION_ERROR_01800950    VUID-VkBufferMemoryBarrier-buffer-01192
VALIDATION_ERROR_01800958    VUID-VkBufferMemoryBarrier-buffer-01196

Change-Id: Icf5d7f1ddbeeab90324cfb034648813741a65398

6 years agolayers: Refactor and add image/buffer barrier VUID
John Zulauf [Fri, 5 Jan 2018 21:15:35 +0000 (14:15 -0700)]
layers: Refactor and add image/buffer barrier VUID

Refactor existing image barrier VUIDs for source and destination queue
family index validation to include all queue family tests.  Refactor
validation enables reuse by buffers, all VUID's have parallel usages.

Extant test for VUID...1200 was converted to use VALIDATION_ERROR_...
semantics.

VUIDs refactored(*)/new:
VALIDATION_ERROR_0a000960*   VUID-VkImageMemoryBarrier-image-01200
VALIDATION_ERROR_0a000962    VUID-VkImageMemoryBarrier-image-01201
VALIDATION_ERROR_0a00096a    VUID-VkImageMemoryBarrier-image-01205
VALIDATION_ERROR_0a000dce    VUID-VkImageMemoryBarrier-image-01767
VALIDATION_ERROR_0a000dd0    VUID-VkImageMemoryBarrier-image-01768
VALIDATION_ERROR_0a00095e*   VUID-VkImageMemoryBarrier-image-01199
VALIDATION_ERROR_0a000aca    VUID-VkImageMemoryBarrier-image-01381
VALIDATION_ERROR_0a000dcc    VUID-VkImageMemoryBarrier-image-01766

VALIDATION_ERROR_0180094e    VUID-VkBufferMemoryBarrier-buffer-01191
VALIDATION_ERROR_01800dc6    VUID-VkBufferMemoryBarrier-buffer-01763
VALIDATION_ERROR_01800952    VUID-VkBufferMemoryBarrier-buffer-01193
VALIDATION_ERROR_01800dca    VUID-VkBufferMemoryBarrier-buffer-01765
VALIDATION_ERROR_01800dc8    VUID-VkBufferMemoryBarrier-buffer-01764
VALIDATION_ERROR_0180094c    VUID-VkBufferMemoryBarrier-buffer-01190
VALIDATION_ERROR_01800950    VUID-VkBufferMemoryBarrier-buffer-01192
VALIDATION_ERROR_01800958    VUID-VkBufferMemoryBarrier-buffer-01196

Change-Id: I9568e8f77df1cf030dfaf60877deab37e8e12e38

6 years agocmake: Fix externals for submodule/subtree builds
Mark Lobodzinski [Mon, 22 Jan 2018 23:42:02 +0000 (16:42 -0700)]
cmake: Fix externals for submodule/subtree builds

Change-Id: Ia1c31ff75c9bf5c3d1ae9b903213437c3ae1ef06

6 years agoscripts: Exit from vuid_mapping.py with status 1 on errors
Jean-François Roy [Mon, 22 Jan 2018 23:05:11 +0000 (15:05 -0800)]
scripts: Exit from vuid_mapping.py with status 1 on errors

This patch modifies scripts/vuid_mapping.py to exit with status 1 on
errors. This allows the build system to fail code generation rules that
depend on this script.

Change-Id: I5659ae80e1989ea7530c9257e7619a9b35cc7294

6 years agocmake: Fix non-existant cmake variable
Mark Lobodzinski [Fri, 19 Jan 2018 18:50:58 +0000 (11:50 -0700)]
cmake: Fix non-existant cmake variable

Specified cmake variable does not exist, caused problems in some
out-of-source builds.

Change-Id: I526117ef060efea40451752e5fe7bad1e7a5589e

6 years agoloader: Fix static library initialization
Lenny Komow [Fri, 19 Jan 2018 18:22:28 +0000 (11:22 -0700)]
loader: Fix static library initialization

Fix the loader's global initialization being skipped when the loader
is built as a static library on windows

Change-Id: I492f87104fb3bf32aed3c7d251dee2caeb4f00ba

6 years agoloader: Restore pNext data in CreateDevice
Joey Bzdek [Mon, 23 Oct 2017 23:13:33 +0000 (17:13 -0600)]
loader: Restore pNext data in CreateDevice

In the terminator for CreateDevice, the
VkDeviceGroupDeviceCreateInfoKHX struct in the pNext chain is
replaced by a copy that has VkPhysicalDevice handles remapped. At the
end of the terminator, restore the modified pNext pointer to
partially comply to the const argument and give consistent behavior
to the caller.

Change-Id: I83a60a0102a736d056729383733e62b38b0ace2c

6 years agotravis: fix clang-format nit
Dave Houlton [Fri, 19 Jan 2018 22:11:51 +0000 (15:11 -0700)]
travis: fix clang-format nit

Change-Id: I119143fbe481fcbdea527b44d0d64e6a150ce186

6 years agotests: add test for new multiplanar VUIDs
Dave Houlton [Fri, 19 Jan 2018 19:55:14 +0000 (12:55 -0700)]
tests: add test for new multiplanar VUIDs

Change-Id: Ie3d95d1de3363f81eae31bc11cf9d3fe4655dec7

6 years agolayers: Add GetImgSubrscLayout multi-planar VUIDs
Dave Houlton [Fri, 19 Jan 2018 19:17:05 +0000 (12:17 -0700)]
layers: Add GetImgSubrscLayout multi-planar VUIDs

Adds new VUIDs defined in the VK_KHR_sampler_ycbcr_conversion
extension to vkGetImageSubresourceLayouts(), and corrects the
false positive error reported in GH issue #2350.

Change-Id: Ia2814291291c7109fabd33af6119a9209e08dd51

6 years agoloader: Fix enabling extensions from layers
Lenny Komow [Wed, 17 Jan 2018 20:53:59 +0000 (13:53 -0700)]
loader: Fix enabling extensions from layers

This resolves a bug where it was impossible to enable an extension
that was defined in a layer if that layer was not passed by the
application. This applied to implicit layers, explicit layers enabled
by environment variables, and metalayers.

Change-Id: I03bee6fb778936d970f78b9142679654424f80ae

6 years agotests: Add validation for layout lifetime issues
John Zulauf [Wed, 17 Jan 2018 18:23:49 +0000 (11:23 -0700)]
tests: Add validation for layout lifetime issues

Add unit tests for valid usages that flag when descriptor set update
operations are being performed with descriptor sets create from
destroyed descriptor set layouts. The tests use overloaded VUIDs
(generic "must be valid * handles) which need to be replaced (and
unclaimed) with specific ones when they are added to the spec.

    VALIDATION_ERROR_15c00280 (write dst must be valid) ->
            write dst created from destroyed layout
    VALIDATION_ERROR_03207601 (copy dst must be valid) ->
            copy dst created from destroyed layout
    VALIDATION_ERROR_0322d201 (copy src must be valid) ->
            copy src created from destroyed layout

Change-Id: Ic37a745120899c072e2e5d8ceb96c5d93074355e

6 years agolayers: Add validation for destroyed layouts
John Zulauf [Wed, 17 Jan 2018 18:06:34 +0000 (11:06 -0700)]
layers: Add validation for destroyed layouts

Add three tests to flag with descriptor set update operations are being
done to descriptor sets with destroyed descriptor set layouts. The tests
use overload VUID (generic "must be valid * handles) which need to be
replaced with specific ones when they are added to the spec.

VALIDATION_ERROR_15c00280 (write dst must be valid) ->
write dst created from destroyed layout
VALIDATION_ERROR_03207601 (copy dst must be valid) ->
copy dst created from destroyed layout
VALIDATION_ERROR_0322d201 (copy src must be valid) ->
copy src create from destroyed layout

Change-Id: I8a3edc67b3e86037cdaa6353176814abfddef1a0

6 years agolayers: Add printf style formatting of std::string
John Zulauf [Wed, 17 Jan 2018 18:00:22 +0000 (11:00 -0700)]
layers: Add printf style formatting of std::string

Added utility for formatting output to std::string, using sprintf style
arguments.

Change-Id: Ib95fb55f38cc85a1b24cf6aac7761fc9b7c67376

6 years agolayers: clang-format parameter_validation_utils.cpp
Dave Houlton [Wed, 17 Jan 2018 17:13:33 +0000 (10:13 -0700)]
layers: clang-format parameter_validation_utils.cpp

Change-Id: I3ade2b8c7dc63f0b902b17d8cc3f9c48ca21fb23

6 years agotests: Add tests for CmdDispatch params
Dave Houlton [Tue, 16 Jan 2018 21:56:08 +0000 (14:56 -0700)]
tests: Add tests for CmdDispatch params

Change-Id: I087f412f3eccd02f040936d917eeea057e55407e

6 years agolayers: Add group size param checks to CmdDispatch
Dave Houlton [Fri, 12 Jan 2018 00:09:16 +0000 (17:09 -0700)]
layers: Add group size param checks to CmdDispatch

Added parameter validation checks to group size parameters against
device limits, for vkCmdDispatch() and vkCmdDispatchBaseKHX().

Change-Id: Ic41031d694c6d311431fc49f48b1427a2b042337

6 years agolayers: Fix doc validation file list check
John Zulauf [Tue, 16 Jan 2018 22:32:45 +0000 (15:32 -0700)]
layers: Fix doc validation file list check

The check for required files was counting the files multiple times and
aborting silently.  The check now correct counts files and exits with
non-zero exit code on failure.

Change-Id: I5b158f7cca0dd541571d95c00c3450139daf32c4

6 years agoheader: Update to version 1.0.68 of the Vulkan hdr
Mark Lobodzinski [Tue, 16 Jan 2018 17:40:16 +0000 (10:40 -0700)]
header: Update to version 1.0.68 of the Vulkan hdr

- updated vulkan.h
- updated vk.xml
- updated layer json files
- built and updated vulkan.hpp
- updated vk_validation_error_messages.h
- updated vk_validation_error_database.txt

Change-Id: I5aff6147531f9b91164849ee590f7f86e46e4652

6 years agoloader: Clean up mutexes on destruction
Lenny Komow [Mon, 15 Jan 2018 22:43:36 +0000 (15:43 -0700)]
loader: Clean up mutexes on destruction

Change-Id: I7d1524da9167a576420c109ebbce8ebb5121cad0

6 years agoLoader: fix open registry handle leak
Slawomir Cygan [Tue, 16 Jan 2018 16:17:07 +0000 (17:17 +0100)]
Loader: fix open registry handle leak

Each handle returned by RegOpenKey*() API functions should be
closed using RegCloseKey().

This change fixes AppVerifier warning on leaklin HKEY objects.

6 years agolayers: Add checks for extention DynamicViewports
Jeremy Kniager [Wed, 15 Nov 2017 20:27:03 +0000 (13:27 -0700)]
layers: Add checks for extention DynamicViewports

Change-Id: I2819d47ab163519689ece94535c6c880f275bf72

6 years agoRevert "MikeW's private development tools."
Mike Weiblen [Tue, 16 Jan 2018 18:54:01 +0000 (11:54 -0700)]
Revert "MikeW's private development tools."

This reverts commit b103ee6a86b3296c4db52598d77ce792127a6082.

6 years agoRevert "TEST: Create pre-instance intercept test case"
Mike Weiblen [Tue, 16 Jan 2018 18:53:43 +0000 (11:53 -0700)]
Revert "TEST: Create pre-instance intercept test case"

This reverts commit 6cc77123f101f88d246a8cbdf85cc601b5fde82c.

6 years agobuild: Fix linux 32-bit assembly config
Lenny Komow [Mon, 15 Jan 2018 21:56:08 +0000 (14:56 -0700)]
build: Fix linux 32-bit assembly config

This fixes a bug whereby 32-bit Linux builds would not be able to
use the assembly code as the try_compile command would fail when it
attempted to link with compiler flags

Change-Id: I6e4479fb7926169a7fa5c01876834cdae8c3b637

6 years agobuild: Use DevSim from a VulkanTools build in CI
Karl Schultz [Fri, 12 Jan 2018 21:41:55 +0000 (14:41 -0700)]
build: Use DevSim from a VulkanTools build in CI

- Change Travis-CI to build VulkanTools and use the resulting
  DevSim binary instead of the one checked into the repo.
- Delete the DevSim binary and JSON file from layers/linux.
- Remove CMake rules related to DevSim binary.

6 years agolayers: Fix Android build
Yuly Novikov [Fri, 12 Jan 2018 23:54:12 +0000 (18:54 -0500)]
layers: Fix Android build

ndk-bundle/sources/cxx-stl/llvm-libc++/include/set
expects comparator's operator() to be const.

6 years agolayers: Fix typos in ValidateUpdateDescriptorSets
Artem Kharytoniuk [Fri, 12 Jan 2018 13:17:41 +0000 (14:17 +0100)]
layers: Fix typos in ValidateUpdateDescriptorSets

6 years agolayers: Make bind more robust to invalid memory
John Zulauf [Thu, 11 Jan 2018 23:39:30 +0000 (16:39 -0700)]
layers: Make bind more robust to invalid memory

Added nullptr check to BindBufferMemory and BindImageMemory validation
to cope with invalid memory arguments (reported elsewhere).

Change-Id: I52266490ccfe9eff7d5f451cddc4d3bbf94b3c5d

6 years agotests: Add buffer creation zero size test
Petr Kraus [Thu, 11 Jan 2018 20:59:39 +0000 (21:59 +0100)]
tests: Add buffer creation zero size test

6 years agotests: Add mipLevels and arrayLayers zero tests
Petr Kraus [Thu, 11 Jan 2018 20:35:45 +0000 (21:35 +0100)]
tests: Add mipLevels and arrayLayers zero tests

6 years agotests: Update CreateImageLimitsViolationMinWidth
Petr Kraus [Fri, 5 Jan 2018 03:30:57 +0000 (04:30 +0100)]
tests: Update CreateImageLimitsViolationMinWidth

- add descriptions
- simplify param selection (format, usage)
- test all possible cases, not just width
- update vuids (fix on unexpected msg)

6 years agolayers: Make ValidateGreaterThan report vuid etc.
Petr Kraus [Fri, 5 Jan 2018 03:05:12 +0000 (04:05 +0100)]
layers: Make ValidateGreaterThan report vuid etc.

- make ValidateGreaterThan report proper vuid and other log_msg
parameters
- make ValidateGreaterThanZero to avoid having to convert common 0
literal (for template deduction)
- update check and remove redundant ones in core_validation

6 years agotests: add tests for descriptor limit VUs
Dave Houlton [Mon, 8 Jan 2018 21:06:35 +0000 (14:06 -0700)]
tests: add tests for descriptor limit VUs

Add per-stage limit check for input attachments to existing test.
Add new test for all-stages summed descriptor limits VUs.

Change-Id: I3a245f34ebaff524f1de17c0174bba63bbd0f537

6 years agolayers: add remaining descriptor limit VUs
Dave Houlton [Fri, 5 Jan 2018 22:32:02 +0000 (15:32 -0700)]
layers: add remaining descriptor limit VUs

Add 9 remaining VUs (0fe00d18...d28) that check descriptor counts
against device limits during CreatePipelineLayout(). Modify existing
tests of per-stage limits to expect additional errors when they
also exceed the summed-stage limits.

Change-Id: I75fb1554050f134c844b12670f96e3f0b3fee75c

6 years agoTEST: Create pre-instance intercept test case
Lenny Komow [Tue, 19 Dec 2017 23:22:34 +0000 (16:22 -0700)]
TEST: Create pre-instance intercept test case

This commit should NOT be merged into master as it screws up core
validation. It is useful for testing purposes, to test the pre-
instance layer functionality.

Change-Id: Id4e078aac4289a4b951da0cb85b20306c7007597

6 years agoMikeW's private development tools.
Mike Weiblen [Wed, 11 Oct 2017 19:30:05 +0000 (13:30 -0600)]
MikeW's private development tools.

These tools are not intended to be pushed to master.

Includes Makefile for Linux, .bat files for Windows.

6 years agodocs: Update loader doc for pre-instance layers
Lenny Komow [Wed, 27 Dec 2017 22:32:44 +0000 (15:32 -0700)]
docs: Update loader doc for pre-instance layers

Change-Id: I4780d36714a6a15c4c57cd0f6324f640249a9427

6 years agoloader: Add pre-instance functions for layers
Lenny Komow [Tue, 19 Dec 2017 23:38:37 +0000 (16:38 -0700)]
loader: Add pre-instance functions for layers

Allow implicit layers (not explicit) to intercept calls before an
instance has been created.

Change-Id: I41f5bb0f5a6314fbab8003ebe71059dd04afc860

6 years agobuild: Remove Mock ICD JSON file from install target
Karl Schultz [Tue, 9 Jan 2018 01:30:18 +0000 (18:30 -0700)]
build: Remove Mock ICD JSON file from install target

The mock ICD shouldn't be installed or be part of packages
that use the "make install" target to create packages.
The mock ICD shared lib wasn't added, but the JSON was.

6 years agoscripts: Default doc validator to non-verbose mode
Mark Lobodzinski [Mon, 8 Jan 2018 16:08:06 +0000 (09:08 -0700)]
scripts: Default doc validator to non-verbose mode

Change-Id: Ib62e92a3b84609df55179e4868e5030a010f712f

6 years agoscripts: Remove unused source_line_info.py
Mark Lobodzinski [Mon, 8 Jan 2018 16:00:56 +0000 (09:00 -0700)]
scripts: Remove unused source_line_info.py

Change-Id: I1e8db79c88749a9c60469f01838dd1c485061528

6 years agolayers: Make DescriptorSetLayout robust for CTS
John Zulauf [Fri, 5 Jan 2018 22:10:34 +0000 (15:10 -0700)]
layers: Make DescriptorSetLayout robust for CTS

CTS sends an invalid descriptor set that the validation tracking was not
robust to -- two binding with identical binding ID values.  After
reporting the invalid input data, the test application could crash.
Validation internal data is now created in a way that invalid data
should less easily cause program termination.

Change-Id: Ib84a5234267f7bece9be377badd22696e3633b1b

6 years agoheader: Update to version 1.0.67 of the Vulkan hdr
Mark Lobodzinski [Mon, 8 Jan 2018 15:17:24 +0000 (08:17 -0700)]
header: Update to version 1.0.67 of the Vulkan hdr

- updated vulkan.h
- updated cgenerator.py
- updated generator.py
- updated reg.py
- updated vk.xml
- updated layer json files
- updated vulkan.hpp
- updated vuid_mapping.py
- updated vk_validation_error_database.txt for spec changes, new VUIDs
- updated vk_validation_error_messages.h

Change-Id: Ifb67cf406aa82bf89e72ccfa4e1320cb3b199656

6 years agodocs: Updates for governance, readme
Mark Lobodzinski [Mon, 8 Jan 2018 15:05:37 +0000 (08:05 -0700)]
docs: Updates for governance, readme

Change-Id: I98fbb73d85b14560c901c86264500c927ac679b4

6 years agoAdd .vscode to .gitignore
Joey Bzdek [Fri, 5 Jan 2018 23:46:04 +0000 (16:46 -0700)]
Add .vscode to .gitignore

Metadata created by new lightweight IDE from microsoft, vscode

Change-Id: Ie250a850d190922e5666e975463d4fa96a1f270e

6 years agobuild: Allow more control in windows build script
Karl Schultz [Fri, 5 Jan 2018 00:14:31 +0000 (17:14 -0700)]
build: Allow more control in windows build script

build_windows_targets.bat now accepts 'debug' and 'release' parameters
to select the building of these configurations.

6 years agobuild: Improve update ext srcs script for better CI
Karl Schultz [Wed, 3 Jan 2018 19:50:46 +0000 (12:50 -0700)]
build: Improve update ext srcs script for better CI

Add options (--debug --release --32 --64) to the
update_external_sources.bat script so that it can
be used to build external libraries for only the
desired platform/configuration combinations.

This helps the AppVeyor CI builds by building only
the platform/configuration combination needed for the
current job.

6 years agolayers: Remove unique_objects ext list generation
Mark Lobodzinski [Wed, 3 Jan 2018 18:25:32 +0000 (11:25 -0700)]
layers: Remove unique_objects ext list generation

Change-Id: I9b958f1799f1cab76a69c4de35590745d3e7a852

6 years agolayers: Use common ext lists in unique_objects
Mark Lobodzinski [Wed, 3 Jan 2018 18:23:55 +0000 (11:23 -0700)]
layers: Use common ext lists in unique_objects

Change-Id: I6d3ac8921dcc648df606040794029733c0516eeb

6 years agolayers: Create instance & device extension lists
Mark Lobodzinski [Wed, 3 Jan 2018 18:18:31 +0000 (11:18 -0700)]
layers: Create instance & device extension lists

Added constant lists of device and instance extension names to
vk_extension_helper.h.

Change-Id: I4273aea866cbfea176a2631e04223ce92443caf0

6 years agodocs: Updated for README formatting on github
Mark Lobodzinski [Fri, 5 Jan 2018 16:04:50 +0000 (09:04 -0700)]
docs: Updated for README formatting on github

Change-Id: I774ceb555f38eff24d2b69ce83ea638f1ea53138

6 years agodocs: Additional updates and corrections
Mark Lobodzinski [Thu, 4 Jan 2018 23:12:41 +0000 (16:12 -0700)]
docs: Additional updates and corrections

Change-Id: Id2ade62aa11fb013b405e8426fdf4f90a05a48a4

6 years agodocs: Add governance doc, Update readme, contributing
Mark Lobodzinski [Thu, 4 Jan 2018 21:55:26 +0000 (14:55 -0700)]
docs: Add governance doc, Update readme, contributing

Change-Id: I92bebd8a33df564daff1b44633e79b56ffa6ae86

6 years agolayers: Add validation caching for draw/dispatch
John Zulauf [Sat, 23 Dec 2017 00:14:54 +0000 (17:14 -0700)]
layers: Add validation caching for draw/dispatch

Validation of descriptors at draw or dispatch time is now cached, s.t.
without changes that affect validity, validation checks are not
repeated.

Change-Id: I713662d00813989bf4441921456afca431d730d7

6 years agolayers: Replace iterative DS Get.* with maps/sets
John Zulauf [Fri, 22 Dec 2017 23:47:09 +0000 (16:47 -0700)]
layers: Replace iterative DS Get.* with maps/sets

Profiling indicated hot spots in DescriptorSet Get functions which
iterated in binding space to lookup values.  Replaced iterative searches
with maps/sets.

Additionally simplified construction, optimized map/set creation and
Get.* for DescriptorSet and DescriptorSetLayout.

Change-Id: Ia2948e56333d3643d4377b39e75acf4c951d558b

6 years agolayers: Add cache of memory binding set for perf
John Zulauf [Fri, 15 Dec 2017 21:35:06 +0000 (14:35 -0700)]
layers: Add cache of memory binding set for perf

Added a cache of the GetBoundMemory set to avoid its continual
regeneration at validation time.  Call appeared in profile for high
descriptor count sets.  Also cleaned-up memory binding state setting
to avoid code duplication.

Change-Id: I84beb411a83ab311d371be940e629fdb308f5458

6 years agolayers: Combine global binding start/end lookup
John Zulauf [Fri, 15 Dec 2017 21:02:06 +0000 (14:02 -0700)]
layers: Combine global binding start/end lookup

Binding start/end lookup where using two separate maps indexed on a
common key.  Combined to avoid repeated lookups.

Change-Id: I57ed71736537de5eb83fe41599a8acec9bf23d13

6 years agoicd: GetImageSubresourceLayout zeros passed layout
John Zulauf [Wed, 3 Jan 2018 15:47:35 +0000 (08:47 -0700)]
icd: GetImageSubresourceLayout zeros passed layout

Calling tests use return values from GetImageSubresourceLayout to
compute offsets in texures.  Zero'd values are safe for this usage and
add minimal overhead to icd.

Change-Id: If52cf240925d2f7a41bb22d87519a918be5eb60a

6 years agobuild: Fix application of /bigobj compile flag
Karl Schultz [Thu, 4 Jan 2018 18:16:06 +0000 (11:16 -0700)]
build: Fix application of /bigobj compile flag

Fixes #2316
Affects only Windows builds.
Need to compile code that generates large object files
with the /bigobj option in order to avoid exceeding the
default number of sections in an object file.
This change applies the /bigobj compiler option to all
configurations, rather than just Debug.
It also applies it only to selected files, instead of
all the files in the project.
Although /bigobj is now applied to Release builds,
this does not increase build time.

6 years agoUpdate android-build/cmake scripts to build with Android Studio 3.0.0+
guanghuafan [Wed, 3 Jan 2018 19:13:15 +0000 (11:13 -0800)]
Update android-build/cmake scripts to build with Android Studio 3.0.0+

6 years agoicd: Move include to header to fix clang build
Karl Schultz [Tue, 2 Jan 2018 16:10:42 +0000 (09:10 -0700)]
icd: Move include to header to fix clang build

Move include <string> to header file to fix
clang build when using libstdc++.

Fixes #2303

Change-Id: Id2fc97be7cb83fa12ee1495ef57177c0a7dad893

6 years agobuild: Retarget AppVeyor build to VS2013
Mike Schuchardt [Wed, 3 Jan 2018 17:48:34 +0000 (10:48 -0700)]
build: Retarget AppVeyor build to VS2013

Change-Id: I88665dadbac75695034a731412984edbecbf988f

6 years agoloader: Change overzealous warning to debug msg
Lenny Komow [Wed, 3 Jan 2018 17:37:54 +0000 (10:37 -0700)]
loader: Change overzealous warning to debug msg

Change-Id: Idde5f8c8f009e365bdcf1fffaffa669d0557d66b

6 years agobuild: Update BUILD.md to specify VS2013
Mike Schuchardt [Wed, 3 Jan 2018 00:07:18 +0000 (17:07 -0700)]
build: Update BUILD.md to specify VS2013

Change-Id: I7533459cd338e233aad4d81ffc3c22aa87db1937

6 years agotests: Add a guard around noexcept in vktestbinding.h
Dave Houlton [Fri, 22 Dec 2017 20:55:53 +0000 (13:55 -0700)]
tests: Add a guard around noexcept in vktestbinding.h

VS2013 does not provide 'noexcept'. Layers had multiple occurences
of a NOEXCEPT macro to protect the VS2013 build. This commit
consolidates that macro to a single location in vk_sdk_platform.h,
which is also visible to the layer tests via test_common.h.

Updates the vktestbinding.h occurences of 'noexcept' to use the
NOEXCEPT macro.

Change-Id: I38bf8c08cda6fe75de78dff69050a913b47f91b1

6 years agobuild: Remove APP_MODULES from android Application.mk
Mark Lobodzinski [Tue, 2 Jan 2018 20:09:59 +0000 (13:09 -0700)]
build: Remove APP_MODULES from android Application.mk

This option is optional if all components are to be built. Removing
this will make VulkanTools trunk merges safer and easier.

Change-Id: I4c0bb13bf23924c49bb1b3bde1eaa26de1b180df

6 years agolayers: Accept non-unique shader caps
Dave Houlton [Fri, 22 Dec 2017 19:21:50 +0000 (12:21 -0700)]
layers: Accept non-unique shader caps

Change-Id: If14c4c58a6b6df04e97f0f83d8f8eb9b26e866ad

6 years agoProper decoding for msbuild version number readout
saschawillems [Fri, 29 Dec 2017 18:31:21 +0000 (19:31 +0100)]
Proper decoding for msbuild version number readout

6 years agolayers: Change target name for devsim json
Joey Bzdek [Thu, 28 Dec 2017 20:53:49 +0000 (13:53 -0700)]
layers: Change target name for devsim json

Fixes duplicate targets in layers / layersvt for VulkanTools

Change-Id: Ieb2577454743ac085153b04b2cbb3fcb25918578

6 years agolayers: Fix git.bat fallback on Windows.
Jamie Madill [Thu, 28 Dec 2017 17:39:51 +0000 (12:39 -0500)]
layers: Fix git.bat fallback on Windows.

This fixes the external revision generator script to first try to
use 'git', then fall back to 'git.bat' if the first invocation throws
a WindowsError.

6 years agobuild: Address clang compilation warnings
Karl Schultz [Sat, 23 Dec 2017 16:16:40 +0000 (09:16 -0700)]
build: Address clang compilation warnings

6 years agoandroid: Roll back to NDK r15c
Cody Northrop [Thu, 21 Dec 2017 16:31:53 +0000 (09:31 -0700)]
android: Roll back to NDK r15c

Until we can sort out issues with NDK r16 preventing us from
completing 32-bit test runs.

6 years agoandroid: Add missing shaderc file
Cody Northrop [Wed, 20 Dec 2017 16:00:20 +0000 (09:00 -0700)]
android: Add missing shaderc file

6 years agoscripts: Scan CWD in object tracker generator.
Jamie Madill [Wed, 20 Dec 2017 19:45:11 +0000 (14:45 -0500)]
scripts: Scan CWD in object tracker generator.

This makes it more easy to locate a header in configs which have the
CWD set to something less obvious. In Chrome's case the build directory
is completely separated from the script directory.

Also reset the CWD after the header is found to keep the build intact.

This is similar to the change to the parameter validation generator.

6 years agodemos: Remove vulkaninfo dependency on DISPLAY
Petr Kraus [Wed, 13 Dec 2017 21:24:15 +0000 (22:24 +0100)]
demos: Remove vulkaninfo dependency on DISPLAY

6 years agolayers: Remove unused variable from core validation.
Jamie Madill [Sun, 3 Dec 2017 17:25:32 +0000 (12:25 -0500)]
layers: Remove unused variable from core validation.

This commit was accidentally reverted in dec37fb9172:
layers: Add descriptor limit checks to vkCreatePipelineLayout()

6 years agobuild: Add clang-format checking of pull request changes to CI
Karl Schultz [Mon, 18 Dec 2017 23:16:45 +0000 (16:16 -0700)]
build: Add clang-format checking of pull request changes to CI

Check modified lines in a pull request for correct clang-format.
Note that checking is not performed unless there is a pull request.

Heavily leveraged from https://github.com/KhronosGroup/SPIRV-Tools.

6 years agolayers: Ignore pImmutableSamplers on non-samplers
Petr Kraus [Sun, 17 Dec 2017 16:37:33 +0000 (17:37 +0100)]
layers: Ignore pImmutableSamplers on non-samplers

6 years agolayers:Kill PV return code check
Tobin Ehlis [Tue, 19 Dec 2017 16:30:04 +0000 (09:30 -0700)]
layers:Kill PV return code check

Most of these return code warnings were already removed from validation
so killing this one as well. They can potentially be re-added in an
assistant layer.

6 years agolayers: Work around bugs in old STL versions.
Jamie Madill [Fri, 15 Dec 2017 22:14:04 +0000 (17:14 -0500)]
layers: Work around bugs in old STL versions.

Some old versions of the C++ STL have a few bugs with advanced features.
This works around two such issues:

- std::unordered_map::const_reference having the wrong type
- an error with an explicit std::vector constructor

6 years agoandroid: Update to NDK r16b
Cody Northrop [Mon, 18 Dec 2017 05:05:31 +0000 (22:05 -0700)]
android: Update to NDK r16b

This allows us to switch to libc++ runtime as it is no longer beta:
https://android.googlesource.com/platform/ndk/+/ndk-release-r16/CHANGELOG.md

6 years agoscripts: Scan CWD in parameter validation script.
Jamie Madill [Fri, 15 Dec 2017 20:54:05 +0000 (15:54 -0500)]
scripts: Scan CWD in parameter validation script.

This makes it more easy to locate the header in configs which have the
CWD set to something less obvious. In Chrome's case the build directory
is completely separated from the script directory.

Also reset the CWD after the header is found to keep the build intact.

6 years agoscripts: Prefer git.bat on Windows.
Jamie Madill [Fri, 15 Dec 2017 21:25:16 +0000 (16:25 -0500)]
scripts: Prefer git.bat on Windows.

Calling git.bat seems to work in every instance, whereas some
installations don't have access to "git" directly.

6 years agodemos: GH1054, make cube shaders inline
Petr Kraus [Thu, 30 Nov 2017 13:49:20 +0000 (14:49 +0100)]
demos: GH1054, make cube shaders inline

6 years agoicd: Fix json for windows build
Petr Kraus [Thu, 14 Dec 2017 23:39:40 +0000 (00:39 +0100)]
icd: Fix json for windows build