platform/upstream/Vulkan-Tools.git
7 years agoexternal: Update refs for glslang and spirv-tools
Mike Weiblen [Mon, 15 May 2017 21:33:46 +0000 (15:33 -0600)]
external: Update refs for glslang and spirv-tools

Change-Id: Iaf28f3b22c53d8272984e7369fb5afb606908bdd

7 years agolayers: Add VUIDs to new objecttracker checks
Mark Lobodzinski [Mon, 15 May 2017 21:55:28 +0000 (15:55 -0600)]
layers: Add VUIDs to new objecttracker checks

Change-Id: I0d2d893b68aea7df294796cf42a8c6d46fbfd441

7 years agolayers: Update ObjectTracker for new extensions
Mark Lobodzinski [Mon, 15 May 2017 19:17:18 +0000 (13:17 -0600)]
layers: Update ObjectTracker for new extensions

vkGetPhysicalDeviceSurfaceFormats2KHR, vkGetSwapchainStatusKHR, and
vkGetPhysicalDeviceSurfaceCapabilities2KHR.

Change-Id: I726880924300e06209013ae39a8c4e019d4c2266

7 years agoheader: Update to 1.0.49 Vulkan version
Mark Lobodzinski [Mon, 15 May 2017 16:27:52 +0000 (10:27 -0600)]
header: Update to 1.0.49 Vulkan version

- updated include/vulkan/vulkan.h
- updated scripts/vk.xml
- updated layers json files
- updated tests json files
- updated vulkan.hpp -- NOTE: includes workaround for mishandled
                              extension API
- updated parameter validation layer with new APIs

Change-Id: I0b65065e1a0355c18c4a5eafdb0b3d218af6ff91

7 years agoscripts:Updated Validation IDs for spec 1.0.49
Tobin Ehlis [Mon, 15 May 2017 19:18:19 +0000 (13:18 -0600)]
scripts:Updated Validation IDs for spec 1.0.49

This may be the last one of these updates. String-based VUIDs are
now integrated into the spec so I'll migrate to a system based on those
in the next week.

Command to perform update:
python spec.py -update -remap 1631-1086:1734-1180:1739-1183:
1799-1234:3289-1251:182-1696,2:185-1699,3:2844-2336:660-2816:
2920-1964

I also manually restored 911 & 912 which are only in the Core spec.

7 years agoloader: Add ICD to extension emulation debug info
Lenny Komow [Mon, 15 May 2017 19:05:33 +0000 (13:05 -0600)]
loader: Add ICD to extension emulation debug info

Change-Id: I5ad4e0794726029fe7fe21fdb8a9667f7eb9e7d5

7 years agodemos: gh1747 - Check for the installed libvulkan.so.1
Timo Aaltonen [Tue, 9 May 2017 11:39:31 +0000 (14:39 +0300)]
demos: gh1747 - Check for the installed libvulkan.so.1

avoids depending on the development symlink

v2: Android doesn't have versioned libs, so don't touch ShellAndroid.cpp

7 years agodocs: Contributing.md updates
Mark Lobodzinski [Thu, 11 May 2017 19:54:52 +0000 (13:54 -0600)]
docs: Contributing.md updates

Change-Id: I0253ecd6166d84188f4f1cc1523c8e87d46c8590

7 years agolayers: Update EXT_debug_report version
Mark Young [Thu, 11 May 2017 22:04:07 +0000 (16:04 -0600)]
layers: Update EXT_debug_report version

Update the EXT_debug_report revision reported by each of the
layer's via their JSON files.

Change-Id: Ie5891ae89b61fe4588edfef593a7885298050de3

7 years agolayers: GH1720 Migrate swapchain queue checks
Petr Kraus [Wed, 10 May 2017 23:05:16 +0000 (01:05 +0200)]
layers: GH1720 Migrate swapchain queue checks

fixes #1720

7 years agolayers: Update DeviceQueueCreate checks
Petr Kraus [Mon, 8 May 2017 21:45:36 +0000 (23:45 +0200)]
layers: Update DeviceQueueCreate checks

- remove some potential false-positives from QF check
- update error db with existing check
- use error db unique codes on existing checks
- move check that need state to core_validation
- deal with VK_QUEUE_FAMILY_IGNORED case
- improve error messages texts
- make messages return appropriate object
- move code that looks displaced to appropriate places
- add locks

7 years agolayers: Validate pOffsets in vkCmdBindVertexBuffers
Tony Barbour [Wed, 10 May 2017 17:14:03 +0000 (11:14 -0600)]
layers: Validate pOffsets in vkCmdBindVertexBuffers

Change-Id: Ie618d7657af6eca555050507a623be02af2e21fe

7 years agotests: Add test for new barrier layout VU check
Mark Lobodzinski [Wed, 10 May 2017 19:19:02 +0000 (13:19 -0600)]
tests: Add test for new barrier layout VU check

And updated the error database.

Change-Id: Ifa9e073689ff83f4cd3a37eb2cd7b8c39b7003eb

7 years agolayers: LX652, Layout check for pipelinebarrier in RP
Mark Lobodzinski [Wed, 10 May 2017 15:46:30 +0000 (09:46 -0600)]
layers: LX652, Layout check for pipelinebarrier in RP

Covers VU 2080, oldlayout must equal newlayout if barrier in an
active renderPass.

Change-Id: I2bfbd27a5938615d9274ecea8799451b5134f237

7 years agolayers: Move null check in ValidateBarriers
Mark Lobodzinski [Wed, 10 May 2017 15:34:13 +0000 (09:34 -0600)]
layers: Move null check in ValidateBarriers

The check for a non-null pointer was placed well after its first use.
Moved earlier to catch null ptr refs in all of the routine.

Change-Id: Iefc9a41c9c65d3b9f9524d13d585266d22b4ba54

7 years agolayers: Fix unique_objects_wrappers.h
Mark Young [Tue, 9 May 2017 19:19:04 +0000 (13:19 -0600)]
layers: Fix unique_objects_wrappers.h

The unique_objects_wrappers.h header was generated with code that
caused several compilation warnings.  This resolves those warnings.

Change-Id: I5ed3bdb6bbe7df48b3fe6fb6679916161b32fdfd

7 years agoloader: Add basic phys dev props emulation
Lenny Komow [Wed, 10 May 2017 16:06:13 +0000 (10:06 -0600)]
loader: Add basic phys dev props emulation

Add the ability for the loader to emulate the commands in
VK_KHR_get_physical_device_properties2. This will only be used when
using multiple physical devices where only one supportes the ext.

Change-Id: I596c8ee9eea5e5136e5b478508abb21c5d8ad5a1

7 years agoloader : gh1675 - Further strncat changes
Mark Young [Tue, 25 Apr 2017 14:08:29 +0000 (08:08 -0600)]
loader : gh1675 - Further strncat changes

This doesn't completely satisfy GH 1675, but at least resolves a
few of the holes discovered by @randomascii.

Change-Id: Idb2273851e36d4470d2f14cb09d6ac1c314497a8

7 years agolayers: GH1739, Add check for shader binary size
Mark Lobodzinski [Tue, 9 May 2017 21:54:16 +0000 (15:54 -0600)]
layers: GH1739, Add check for shader binary size

VU 2816 says size must be a multiple of 4.

Change-Id: I38749fe44e02cac4e40aa572c4e4ccec01d82279

7 years agolayers: Fix build dependency
Mark Young [Wed, 10 May 2017 15:51:18 +0000 (09:51 -0600)]
layers: Fix build dependency

The no-dependency layer's still need to have a dependency in order
for the commands to execute in the proper order.  So, just tied them
to the utils object.

Change-Id: Ic279dcf86b8f0e551b194a6b5688ea646b00cc5f

7 years agolayers: Modify PV to ignore FORMAT_NOT_SUPPORTED
Mark Lobodzinski [Tue, 9 May 2017 20:07:02 +0000 (14:07 -0600)]
layers: Modify PV to ignore FORMAT_NOT_SUPPORTED

This return code is now ignored by the Get*ImageFormatProperties*
APIs. Printing a message for this usage was just noisy.

Change-Id: I0cbd1b1a4cfa4761092a647d7912b1d590fcc89b

7 years agolayers: Add exclusion list to validate_result in PV
Mark Lobodzinski [Tue, 9 May 2017 19:49:59 +0000 (13:49 -0600)]
layers: Add exclusion list to validate_result in PV

Allows specifying return codes to ignore in parameter validation.

Change-Id: Iebf11920c3921c39190903b2750f4b3d61fe6242

7 years agolayers: Add vkCreateRenderPass subpass attachment VUs
Cort Stratton [Thu, 4 May 2017 22:18:52 +0000 (15:18 -0700)]
layers: Add vkCreateRenderPass subpass attachment VUs

7 years agoloader: Optimize layer removal
Mark Young [Tue, 9 May 2017 21:23:33 +0000 (15:23 -0600)]
loader: Optimize layer removal

In the case we remove a meta-layer, use memmove once, not in an
array.

Change-Id: Ia7496c4436e987011a0ad504a096c15f9d320c28

7 years agolayers: LX673, CreateWin32Surface Null HWND check
Mark Lobodzinski [Tue, 9 May 2017 14:21:15 +0000 (08:21 -0600)]
layers: LX673, CreateWin32Surface Null HWND check

Added NULL check to parameter validation, and assigned VU2505.
All we can do is check for Null. Apparently, hInstance CAN be NULL.

Change-Id: Ica5ead0514b7435ea9428dbd0018f53ff25462fd

7 years agolayers: Remove default ctors for {Image,}SamplerDescriptor
Chris Forbes [Tue, 9 May 2017 15:51:38 +0000 (08:51 -0700)]
layers: Remove default ctors for {Image,}SamplerDescriptor

These just added confusion; we already support the !immut case in the other
ctor.

V2: ImageSamplerDescriptor remaining ctor was buggy.

7 years agolayers: Don't start ImageSamplerDescriptor w/ immut as updated.
Chris Forbes [Mon, 8 May 2017 23:34:32 +0000 (16:34 -0700)]
layers: Don't start ImageSamplerDescriptor w/ immut as updated.

This descriptor is NOT initially updated; it's invalid until the Image
component is set.

7 years agolayers: Don't skip validating image part of combined image+immut sampler
Chris Forbes [Mon, 8 May 2017 20:54:50 +0000 (13:54 -0700)]
layers: Don't skip validating image part of combined image+immut sampler

This early out was from another time...

7 years agoloader: Code review fixes
Mark Young [Tue, 9 May 2017 16:31:12 +0000 (10:31 -0600)]
loader: Code review fixes

Fix some potential issues discovered by Karl in the code review.

Also, fix CMake warning on newly added VkLayer_standard_layer.
The CMake generation code I had been using expected a project with
the same name as the JSON.

Change-Id: I8738ff03ac08bcfc13aa8d11c570a0b507de450a

7 years agoloader: Update meta-layers
Mark Young [Fri, 5 May 2017 17:17:17 +0000 (11:17 -0600)]
loader: Update meta-layers

Use the meta-layer Manifest API version to check against each
of its component layer API versions.  This will force us to
make sure each JSON file is properly updated in sync.

Add a section to the LoaderAndLayerInterface markdown doc about
the usage of meta-layers, and an example of how they look in a
Manifest JSON file.

Change-Id: I667cfd3013cbcf201c83935dc6f1c2bb937c7742

7 years agoloader: Fix layer Enumerate bug
Mark Young [Thu, 4 May 2017 18:16:35 +0000 (12:16 -0600)]
loader: Fix layer Enumerate bug

This fixes a bug found by Timothee Besset regarding calling
vkEnumerateDeviceLayerProperties when no layers are present.  This
resulted in a negative number being filled into a uint32_t which
caused an invalid number of layers to be returned.

Now that we have meta-layers implemented instead of hard-coded,
I created two lists: an application provided list of layers, and
an expanded list of layers (where meta-layers are broken up into
their component layers).  The former is used when working with the
enumerate calls, but the later is used internally for final layer
activation.

Change-Id: If723fdfb5acb1dc57923282d2c641c582870ad1c

7 years agoloader: Meta-layer support
Mark Young [Tue, 2 May 2017 16:49:46 +0000 (10:49 -0600)]
loader: Meta-layer support

Integrate Lenny and my changes for Meta-layers.
Includes adding initial JSON file for standard_validation.

Change-Id: Ibc1da464fad4949e14e171dbc7dd9990621e1081

7 years agolayers:Fix cut-and-paste bug
Tobin Ehlis [Tue, 9 May 2017 16:22:14 +0000 (10:22 -0600)]
layers:Fix cut-and-paste bug

From Mikko at Unity, there was a cut-and-paste bug here where color
counts were being used to check input attachments. Use input counts
instead.

7 years agoloader: gh1661 - Phys dev exts not loading
Lenny Komow [Mon, 8 May 2017 20:38:08 +0000 (14:38 -0600)]
loader: gh1661 - Phys dev exts not loading

Fix a bug whereby commands from physical device extensions were
not being written to the instance extension dispatch table,
preventing their terminators from ever being run.

Change-Id: I38dab0ae6463674f2a1f572bc0ee1eebe8d0dd13

7 years agolayers:Immutable samplers are updated at creation
Tobin Ehlis [Mon, 8 May 2017 17:24:57 +0000 (11:24 -0600)]
layers:Immutable samplers are updated at creation

Fixes #1741

Descriptors with immutable samplers are updated at the time they're
created. Set update bool for descriptor sets with immutable samplers
at the time they're created. This will prevent false positives.

7 years agolayers: Remove unhelpful precheck in ValidateDrawState
Chris Forbes [Mon, 8 May 2017 17:58:00 +0000 (10:58 -0700)]
layers: Remove unhelpful precheck in ValidateDrawState

7 years agotests: Add test for graphics pipelines with tessellation
Cort Stratton [Fri, 5 May 2017 23:02:35 +0000 (16:02 -0700)]
tests: Add test for graphics pipelines with tessellation

7 years agolayers: check for both TE and TC, not just TC
Cort Stratton [Thu, 27 Apr 2017 14:26:47 +0000 (16:26 +0200)]
layers: check for both TE and TC, not just TC

7 years agolayers: Add VkVertexInputAttributeDescription VUs
Jeremy Hayes [Fri, 5 May 2017 00:10:28 +0000 (18:10 -0600)]
layers: Add VkVertexInputAttributeDescription VUs

Also fix GH#1709.

Change-Id: I62394dc34cb92aa4308eb84cf7a0d62403e7a9e7

7 years agolayers: Add VkVertexInputBindingDescription VUs
Jeremy Hayes [Fri, 5 May 2017 00:08:49 +0000 (18:08 -0600)]
layers: Add VkVertexInputBindingDescription VUs

Change-Id: Id9cb603dce7a49b21f9f8252baef692b4f6787f7

7 years agoloader: gh1693 - GPDA override not used
Mark Young [Thu, 4 May 2017 21:10:59 +0000 (15:10 -0600)]
loader: gh1693 - GPDA override not used

In some situations, the loader wouldn't directly use the
GetInstanceProcAddr or GetDeviceProcAddr function overrides directly.
Instead, the loader would call vkGetInstanceProcAddr with an
argument of "vkGetInstanceProcAddr" and vkGetDeviceProcAddr with an
argument of "vkGetDeviceProcAddr".  This short-cuts that.

NOTE: Layers still need to support these queries because if another
layer is above you, it may call "vkGetInstanceProcAddr" with
to get "vkGetDeviceProcAddr".

Change-Id: I810945f45121d42d23b69d0b3334d6bad3a8ed2f

7 years agolayers: Fix incorrect VU ID
Mike Schuchardt [Fri, 5 May 2017 15:35:07 +0000 (09:35 -0600)]
layers: Fix incorrect VU ID

Change-Id: Ifc751f1ece6cfd5b6ab02d63081af6acbb2c56e8

7 years agolayers: Move patchControlPoints validation
Mike Schuchardt [Wed, 26 Apr 2017 21:25:23 +0000 (15:25 -0600)]
layers: Move patchControlPoints validation

Move pTessellationState->patchControlPoints checks to parameter
validation where they will only be executed if the pipeline contains
tessellation stages.

Change-Id: I271f915625995f4a54045d0abe63ce27b9e023f9

7 years agolayers: Pipeline creation conditional validation
Mike Schuchardt [Wed, 26 Apr 2017 20:41:38 +0000 (14:41 -0600)]
layers: Pipeline creation conditional validation

1.0.47 added language to spec about when arguments to
vkCreateGraphicsPipelines are ignored.  Only perform validation on
pTessellationState when both tessellation control and evaluation shader
stages are present.  Only perform validation on pViewportState,
pMultisampleState, pDepthStencilState, pColorBlendState when
rasterization is enabled.

Change-Id: I23e1880d73723189adea32ef9d6ec3b2c3ac689c

7 years agolayers: Correct error db of VkDeviceQueueCreateInfo
Petr Kraus [Thu, 4 May 2017 15:59:44 +0000 (17:59 +0200)]
layers: Correct error db of VkDeviceQueueCreateInfo

- validation cmd is vkCreateDevice not Destroy
- non-implicit checks are implemented,
just didn't use the unique codes

7 years agodocs: Update loader doc for linking and format
Lenny Komow [Thu, 4 May 2017 20:50:01 +0000 (14:50 -0600)]
docs: Update loader doc for linking and format

Change-Id: Id51ce907ca167a44f9f2db6db48b4ade679b129b

7 years agoRevert "Fix location of vk_layer_settings.txt on Android"
Cody Northrop [Thu, 4 May 2017 16:16:46 +0000 (10:16 -0600)]
Revert "Fix location of vk_layer_settings.txt on Android"

This reverts commit 3d22f33e862d4bed46edbd5ee948f4ebe9c84a6f.

7 years agoFix location of vk_layer_settings.txt on Android
Christian Forfang [Thu, 4 May 2017 13:26:51 +0000 (15:26 +0200)]
Fix location of vk_layer_settings.txt on Android

Commit 969ab0680dd434f0 ('api_dump: Support config file and logging on Android')
added a custom location for vk_layer_settings.txt on Android. However, commit
750837a5dedf524c81c (Merge branch 'trunk') ended up partly overwriting these changes,
breaking the functionality.

As a result, using the config file on Android hasn't worked since October 2016. This commit
restores the changes in the original commit to fix this.

7 years agolayers: Add missed entries for some nv extensions
Chris Forbes [Wed, 3 May 2017 15:21:33 +0000 (08:21 -0700)]
layers: Add missed entries for some nv extensions

Nothing uses these, so I didn't notice they weren't set up.

7 years agolayers: Don't generate T* = reinterpret_cast(T*) new T()
Chris Forbes [Wed, 3 May 2017 01:36:39 +0000 (18:36 -0700)]
layers: Don't generate T* = reinterpret_cast(T*) new T()

No need for the cast, these types already line up.

7 years agolayers: use Unwrap in UO codegen
Chris Forbes [Wed, 3 May 2017 01:35:12 +0000 (18:35 -0700)]
layers: use Unwrap in UO codegen

7 years agolayers: use WrapNew in UO codegen
Chris Forbes [Wed, 3 May 2017 01:25:30 +0000 (18:25 -0700)]
layers: use WrapNew in UO codegen

7 years agolayers: Move UO helpers to header
Chris Forbes [Wed, 3 May 2017 01:18:01 +0000 (18:18 -0700)]
layers: Move UO helpers to header

7 years agolayers: UO: rework GetDisplayPlaneCapabilitiesKHR
Chris Forbes [Wed, 3 May 2017 00:48:20 +0000 (17:48 -0700)]
layers: UO: rework GetDisplayPlaneCapabilitiesKHR

Not sure what this was trying to achieve -- we should have seen every
VkDisplayMode as a return from GetDisplayModePropertiesKHR?

7 years agolayers: Rework UO GetDisplayModePropertiesKHR
Chris Forbes [Wed, 3 May 2017 00:45:45 +0000 (17:45 -0700)]
layers: Rework UO GetDisplayModePropertiesKHR

Similar overkill to function fixed in earlier commit

7 years agolayers: Mark bogus looking reverse lookup in UO
Chris Forbes [Wed, 3 May 2017 00:45:29 +0000 (17:45 -0700)]
layers: Mark bogus looking reverse lookup in UO

7 years agolayers: Fix UO GetPhysicalDeviceDisplayPlanePropertiesKHR
Chris Forbes [Wed, 3 May 2017 00:36:57 +0000 (17:36 -0700)]
layers: Fix UO GetPhysicalDeviceDisplayPlanePropertiesKHR

This was doing odd things. pProperties is an output-only array. Its
contents are undefined before the call, so we shouldn't be trying to
unwrap the handles in there. We don't even need the safe_* here.

7 years agolayers: Use helpers in most swapchain UO impls
Chris Forbes [Wed, 3 May 2017 00:36:28 +0000 (17:36 -0700)]
layers: Use helpers in most swapchain UO impls

7 years agolayers: Write helpers for UO Unwrap+WrapNew operations
Chris Forbes [Wed, 3 May 2017 00:35:26 +0000 (17:35 -0700)]
layers: Write helpers for UO Unwrap+WrapNew operations

Allows us to concentrate all the ID generation and cast insanity in one
place.

7 years agolayers: Store instance data in UO::layer_data rather than gpu handle
Chris Forbes [Tue, 2 May 2017 23:54:24 +0000 (16:54 -0700)]
layers: Store instance data in UO::layer_data rather than gpu handle

7 years agolayers: Use InstanceExtensions support in UO
Chris Forbes [Tue, 2 May 2017 23:50:35 +0000 (16:50 -0700)]
layers: Use InstanceExtensions support in UO

7 years agolayers: hold UO dispatch tables by value in layer_data
Chris Forbes [Tue, 2 May 2017 23:42:55 +0000 (16:42 -0700)]
layers: hold UO dispatch tables by value in layer_data

Trims out some allocations; fixes leak of dispatch tables

7 years agolayers: UO: split device and instance data
Chris Forbes [Tue, 2 May 2017 23:26:23 +0000 (16:26 -0700)]
layers: UO: split device and instance data

7 years agolayers: Use InstanceExtensions in PV
Chris Forbes [Tue, 2 May 2017 22:47:16 +0000 (15:47 -0700)]
layers: Use InstanceExtensions in PV

7 years agolayers: Move CV instance extension tracking to helper
Chris Forbes [Tue, 2 May 2017 22:39:16 +0000 (15:39 -0700)]
layers: Move CV instance extension tracking to helper

7 years agolayers: Move PV device extension handling into helper
Chris Forbes [Tue, 2 May 2017 21:52:05 +0000 (14:52 -0700)]
layers: Move PV device extension handling into helper

7 years agolayers: Move CV::DeviceExtensions into helper
Chris Forbes [Tue, 2 May 2017 21:32:26 +0000 (14:32 -0700)]
layers: Move CV::DeviceExtensions into helper

7 years agolayers: Make device extension enables consistent
Chris Forbes [Tue, 2 May 2017 21:18:07 +0000 (14:18 -0700)]
layers: Make device extension enables consistent

I want to get rid of the "_enable" suffix everywhere to allow for a
second instance of the same structure to represent the /supported/ set
for better diagnostics.

7 years agolayers: Alias devExts in checkDeviceRegisterExtension
Chris Forbes [Tue, 2 May 2017 21:06:01 +0000 (14:06 -0700)]
layers: Alias devExts in checkDeviceRegisterExtension

7 years agolayers: Remove redundant check for extension enable in fptr
Chris Forbes [Tue, 2 May 2017 21:05:39 +0000 (14:05 -0700)]
layers: Remove redundant check for extension enable in fptr

7 years agolayers: Move unrelated data out of devExts type
Chris Forbes [Tue, 2 May 2017 20:50:05 +0000 (13:50 -0700)]
layers: Move unrelated data out of devExts type

7 years agolayers: clang-format only, no code changes
Dave Houlton [Thu, 27 Apr 2017 20:38:11 +0000 (14:38 -0600)]
layers: clang-format only, no code changes

clang-format of buffer_validation.cpp, layer_validation_tests.cpp

Change-Id: I98c581f6b343929f7812bf012084ad0abbb5a690

7 years agolayers: Add VUs 01202..01207
Dave Houlton [Thu, 27 Apr 2017 20:32:45 +0000 (14:32 -0600)]
layers: Add VUs 01202..01207

Added checks for 6 CopyImage VUs to buffer validation. Updated copy
size tests to provoke each new VU.

Change-Id: Ice7821b7c1b8aa0c90e68e8386c56bd021a616ed

7 years agobuild: set CMAKE_INSTALL_PREFIX explicitly
Mike Weiblen [Tue, 2 May 2017 22:42:31 +0000 (16:42 -0600)]
build: set CMAKE_INSTALL_PREFIX explicitly

Recent changes to upstream CMakeFiles changed the default install
location.  Explicitly specify our desired install location.

Changed for Linux only; Windows was already doing this.

Change-Id: Id71945d426ac8f0a445dca3855bfa037870aaed9

7 years agolayers: Special case threading and VK_NULL_HANDLE
Mike Stroyan [Mon, 1 May 2017 17:10:07 +0000 (11:10 -0600)]
layers: Special case threading and VK_NULL_HANDLE

If a parameter is VK_NULL_HANDLE, then it needs no use count.

Fixes #1712

7 years agoexternal: Update external reference ID for glslang
Mike Weiblen [Tue, 2 May 2017 16:45:28 +0000 (10:45 -0600)]
external: Update external reference ID for glslang

Change-Id: Ied5cecf65eaafcab9274376fea452934bda3f69b

7 years agolayers: Migrate surface support check to core
Petr Kraus [Mon, 1 May 2017 23:27:57 +0000 (01:27 +0200)]
layers: Migrate surface support check to core

- fix memory leak of `pQueueFamilyIndexSupport`
- remove vestige of queue family support check

7 years agolayers: Convert capability handling to data
Chris Forbes [Tue, 2 May 2017 01:39:21 +0000 (18:39 -0700)]
layers: Convert capability handling to data

Replace the huge switch + duplicated calls with a map of ptr-to-member.

7 years agolayers: Fix validation of compute pipelines
Chris Forbes [Tue, 2 May 2017 19:03:03 +0000 (12:03 -0700)]
layers: Fix validation of compute pipelines

skip handling was inverted for this case.

7 years agolayers: Remove check for imageExtent == currentExtent
Cort Stratton [Mon, 1 May 2017 22:36:05 +0000 (15:36 -0700)]
layers: Remove check for imageExtent == currentExtent

The condition tested in this check is only valid on platforms where
the swapchain dimensions must match the surface dimensions (e.g. Windows,
Xlib). In such cases, the surface *must* report minExtent == maxExtent ==
currentExtent, and this check would already be handled by the code directly
above the deleted check.

Platforms like Android allow the swapchain's imageExtent to be anywhere
within the surface minExtent/maxExtent range; if this does not match the
surface dimensions, it will be scaled accordingly.

7 years agolayers: Invert old 'pass' checks for shader validation
Chris Forbes [Tue, 2 May 2017 00:43:28 +0000 (17:43 -0700)]
layers: Invert old 'pass' checks for shader validation

Make this consistent with everything else, which uses 'skip'.

7 years agocube: Throttle rendering rather than presentation
Damien Leone [Fri, 14 Apr 2017 23:10:14 +0000 (16:10 -0700)]
cube: Throttle rendering rather than presentation

It is currently impossible to reliably throttle presentation per the
Vulkan spec.

The previous code was relying on fences returned by
vkAcquireNextImageKHR() to throttle.  The only information this fence
holds is whether it is possible to render to that image since the *last
time* it was presented, which could have happened several frames ago.

Instead, we can throttle the rendering by passing a fence to
vkQueueSubmit().

The previous code (only the cube.c version) was using a fence there to
synchronize a vkMapMemory() in demo_update_data_buffer(), which doesn't
seem necessary.

Before this commit, we were effectively throttling to the number of
frames in the swapchain rather than on FRAME_LAG.

In the FIFO present mode, this could schedule too much work in the
presentation channel (since we have to account for VBLANK events)
and thus causing undesired side effects, such as stutters when trying
to move the cube window on a desktop, which is I assume why the
throttle code was added in the first place.

7 years agolayers: Don't insist on memory dependency for present
Chris Forbes [Sat, 29 Apr 2017 00:29:10 +0000 (17:29 -0700)]
layers: Don't insist on memory dependency for present

When transitioning to/from VK_IMAGE_LAYOUT_PRESENT_SRC_KHR we don't need
to insist on VK_ACCESS_MEMORY_READ_BIT. On the transition TO, it's
automatically handled; in the transition FROM, it's a WAR hazard rather
than RAW/WAW so only the execution dependency is needed.

Fixes #1717.

7 years agolayers: Rewrite VerifyQueueStateToSeq to be less wasteful
Chris Forbes [Thu, 6 Apr 2017 23:33:46 +0000 (16:33 -0700)]
layers: Rewrite VerifyQueueStateToSeq to be less wasteful

When we have the same queue appearing multiple times in the dependency
tree of the operations between queue->seq and seq, we would scrub that
part of the submission list recursively, potentially to a great depth,
eventually blowing the stack.

[This used to work fine when it was done as part of RetireWorkOnQueue, as
we'd have brought queue->seq up as we went, and the recursive call would
end up doing no work.]

Instead, explicitly track where we're up to on each queue as well as
where we'd like to be, and use an explicit stack of work to do rather
than using the call stack.

Fixes crash in VkLayerTests.LongSemaphoreChain with 32k semaphores.

V2: Explain what's going on
V3: Tweak for windows build

7 years agoexternal_revisions: bump spirv-tools
Chris Forbes [Fri, 28 Apr 2017 20:02:17 +0000 (13:02 -0700)]
external_revisions: bump spirv-tools

CV needs the new bitpattern interface for specialization.

V2: also bump for android
V3: also bump headers
V4: also bump shaderc for android build

7 years agolayers: Change size of D32_SFLOAT_S8_UINT
Dave Houlton [Fri, 28 Apr 2017 20:03:39 +0000 (14:03 -0600)]
layers: Change size of D32_SFLOAT_S8_UINT

Change the size of the other format with 'optional' bytes, to be
consistent with the X8_D24_UNORM_PACK32 change. We'll now assume
the optional bytes when calculating buffer/image sizes for these
formats.

Change-Id: I7c194b85611795cc680f76de04513c3b45a88c4b

7 years agolayers: Change size of X8_D24_UNORM_PACK32
Tony Barbour [Fri, 28 Apr 2017 16:44:23 +0000 (10:44 -0600)]
layers: Change size of X8_D24_UNORM_PACK32

Change-Id: If049e2afaea83f0a705a7031888d4278784be49d

7 years agotests: Update vkCreateFramebuffer tests
Cort Stratton [Thu, 27 Apr 2017 14:25:03 +0000 (16:25 +0200)]
tests: Update vkCreateFramebuffer tests

- Add tests for width/height/layers of zero.
- Fix one VU check that wasn't using its corresponding error code.
- Migrate string-based tests to error-code-based variants.
- database update.

7 years agolayers: Add check for VkFramebuffer dimensions of zero
Cort Stratton [Thu, 27 Apr 2017 13:57:21 +0000 (15:57 +0200)]
layers: Add check for VkFramebuffer dimensions of zero

7 years agolayers: Guard checks of pQueueFamilyIndices
Tony Barbour [Wed, 26 Apr 2017 19:59:35 +0000 (13:59 -0600)]
layers: Guard checks of pQueueFamilyIndices

Only examine pQueueFamilyIndices if sharingMode is VK_SHARING_MODE_CONCURRENT
This fixes a crash in CTS when sharing mode was VK_SHARING_MODE_EXCLUSIVE
and queueFamilyIndexCount was VK_QUEUE_FAMILY_IGNORED

Change-Id: I72b1f140e8949e711723e98bdaead15655ab07a5

7 years agotests:Test VALIDATION_ERROR_00302
Tobin Ehlis [Wed, 26 Apr 2017 22:53:52 +0000 (16:53 -0600)]
tests:Test VALIDATION_ERROR_00302

InvalidBarriers test was already checking case VALIDATION_ERROR_00302
but it was doing so based on setting COLOR aspect bit.

Add another case where depth bit is excluded and verify that error is
correctly triggered.

7 years agolayers:Add barrier imageAspect check for DS image
Tobin Ehlis [Wed, 26 Apr 2017 22:51:48 +0000 (16:51 -0600)]
layers:Add barrier imageAspect check for DS image

Fixes #1703

Add validation check to make sure that both depth & stencil aspects of
DS images are transitioned in image memory barrier.

7 years agodemo/smoke Android build update: use latest cmake with Android Studio
guanghuafan [Wed, 26 Apr 2017 21:31:16 +0000 (14:31 -0700)]
demo/smoke Android build update: use latest cmake with Android Studio

7 years agowinsdk: Make copyright signature editable
Lenny Komow [Wed, 26 Apr 2017 20:55:48 +0000 (14:55 -0600)]
winsdk: Make copyright signature editable

Change-Id: Ie28b5d1e5ba7fbd727122399ef1f35d1eb54305a

7 years agolayers: Remove GLOBAL_CB_NODE::imageSubresourceMap
Chris Forbes [Wed, 26 Apr 2017 17:21:20 +0000 (10:21 -0700)]
layers: Remove GLOBAL_CB_NODE::imageSubresourceMap

This served no purpose. We can get the same result in the one place that
matters, by consulting GLOBAL_CB_NODE::imageLayoutMap

7 years agoloader: gh1681 - Restrict error in JSON
Mark Young [Tue, 25 Apr 2017 16:35:54 +0000 (10:35 -0600)]
loader: gh1681 - Restrict error in JSON

Restrict the loader's JSON errors when reading ICD manifest files
to only return an overall error if there are no valid drivers.

Change-Id: I10edb1cdc7e4db9cfdc0b3595416f0614ed22867

7 years agoci: Add myself to mail recipients
Chris Forbes [Tue, 25 Apr 2017 20:05:15 +0000 (13:05 -0700)]
ci: Add myself to mail recipients

7 years agolayers: Fix some function name passing
Chris Forbes [Tue, 25 Apr 2017 19:51:40 +0000 (12:51 -0700)]
layers: Fix some function name passing

- This was constructing a temporary std::string for no reason
- Missing () as other similar cases use.

7 years agolayers: Drop unused param for SetSparseMemBinding
Chris Forbes [Tue, 25 Apr 2017 01:57:15 +0000 (18:57 -0700)]
layers: Drop unused param for SetSparseMemBinding

There is only one function that can call this, and we didn't care
anyway.

7 years agolayers: fix typo in vkCmdExecuteCommands error strings
Chris Forbes [Tue, 25 Apr 2017 01:54:55 +0000 (18:54 -0700)]
layers: fix typo in vkCmdExecuteCommands error strings