Tobin Ehlis [Tue, 17 Apr 2018 16:05:20 +0000 (10:05 -0600)]
loader:Fix build warnings
Add "fall through" comments on intentional fall through switch cases to
avoid compiler warnings.
Tobin Ehlis [Tue, 17 Apr 2018 22:15:01 +0000 (16:15 -0600)]
tests:Update 2nd CB test to change rect value
Modify ConfirmNoVLErrorWhenVkCmdClearAttachmentsCalledInSecondaryCB
positive test to change the rect value after the call to
vkCmdClearAttachments() in the secondary command buffer but before the
secondary CB is executed in vkCmdExecuteCommands().
This exposes a previous bug in validation layers where the pointer to
the VkClearRect was copied, but not the underlying rect itself.
Tobin Ehlis [Tue, 17 Apr 2018 22:14:26 +0000 (16:14 -0600)]
layers:Capture rect by value to validate 2nd cb
Fixes #2587
The lambda function was only capturing the pRect pointer by value so
the underlying rect value could still be changed between when the
command was submitted to a secondary CB and when the rect was validated
at CmdExecuteCommands() time.
Copy the actual rect value so that it can't change.
Chris Forbes [Mon, 16 Apr 2018 01:31:06 +0000 (18:31 -0700)]
layers: Validate subpass dependency access vs stage masks
Petr Kraus [Sat, 14 Apr 2018 12:45:17 +0000 (14:45 +0200)]
demos: Remove undesirable gpu_count assert
to allow the useful error message to be shown instead
Tobin Ehlis [Fri, 13 Apr 2018 21:24:13 +0000 (15:24 -0600)]
layers:Update comments to avoid compiler warnings
The simple "// fall through" comment causes the compiler to omit a
warning.
Lenny Komow [Tue, 17 Apr 2018 02:09:48 +0000 (20:09 -0600)]
loader: Bump loader copyright to 2018
Change-Id: I59b80b7f4bff37ac15fd30acc3f4600164afee90
Lenny Komow [Tue, 17 Apr 2018 02:08:05 +0000 (20:08 -0600)]
demos: Add vulkaninfo.rc file
Add an rc file for vulkaninfo, which allows the version number and
copyright to be encoded into the file. This is necessary to support
new runtime installer changes.
Change-Id: I95a1b4338e3071162cca028d75b7dbd5a35d0393
Lenny Komow [Mon, 16 Apr 2018 21:54:32 +0000 (15:54 -0600)]
externals: Update to latest glslang
Change-Id: I06c15a028941fc60bd6ddcd830a8401d83193753
Jeremy Kniager [Wed, 4 Apr 2018 22:02:33 +0000 (16:02 -0600)]
vulkaninfo: Fix array length skew
Added new struct pNextChainBuildingBlockInfo
to store sType and memory size of structs for
function buildpNextChain.
Change-Id: Ia49084d2e303336f0305a68303edaaf60f74d669
Jeremy Kniager [Fri, 30 Mar 2018 21:03:25 +0000 (15:03 -0600)]
vulkaninfo: Add core 1.1 extensions
Added support for the following extensions:
VK_KHR_multiview
VK_KHR_device_group
VK_KHR_device_group_creation
Change-Id: I103fd988518339f95f0eeb7e7408ef49dec8ec22
Karl Schultz [Sat, 14 Apr 2018 00:02:07 +0000 (18:02 -0600)]
macos: Pass argc/argv through to main cube code
This allows users to specify arguments like "--c 100"
Mark Lobodzinski [Mon, 16 Apr 2018 14:15:59 +0000 (08:15 -0600)]
header: Update to version 1.1.73 of the Vulkan hdr
- update json files
- update vk.xml
- update vulkan_core.h
- update validusage.json
- update vk_validation_error_messages.h
- update vk_validation_error_database.txt
- update vulkan.hpp
- removed checks for the following deprecated VUIDs related to
ImageCreateInfo and FormatProperties:
- VALIDATION_ERROR_09e007ae
- VALIDATION_ERROR_09e007b4
- VALIDATION_ERROR_09e007ac
- VALIDATION_ERROR_09e007a6
- VALIDATION_ERROR_09e007b2
- VALIDATION_ERROR_09e007a4
- VALIDATION_ERROR_09e007aa
- VALIDATION_ERROR_09e007a8
- VALIDATION_ERROR_09e007a2
- VALIDATION_ERROR_09e007b0
- modified CreateImageFormatSupportErrors test to remove killed checks
- modified ImageLayerUnsupportedFormat test to remove killed check
Change-Id: I8f1577747d87fdeb6f68b9db0340443a83c44630
Dave Houlton [Fri, 13 Apr 2018 21:04:35 +0000 (15:04 -0600)]
layers: fix PR2567 formatting errors
Change-Id: Id7c479d7a2421c468990125dcfe815363a440a39
Cort [Sat, 14 Apr 2018 19:17:59 +0000 (12:17 -0700)]
layers: add setIndex to log_msg output in ValidateDrawState()
Tobin Ehlis [Fri, 13 Apr 2018 19:14:59 +0000 (13:14 -0600)]
icd:Add new physical device query funcs to ICD
Add mock ICD support for vkGetPhysicalDeviceSurfacePresentModesKHR,
vkGetPhysicalDeviceSurfaceFormats[2]KHR,
vkGetPhysicalDeviceSurfaceSupportKHR,
vkGetPhysicalDeviceSurfaceCapabilities[2]KHR,
vkGetSwapchainImagesKHR and
vkAcquireNextImagesKHR.
Mark Lobodzinski [Fri, 13 Apr 2018 16:46:48 +0000 (10:46 -0600)]
tests: Fix typos in layer_validation_tests.cpp
Includes fixing a corresponding typo in a descriptor_sets log_msg call.
Change-Id: Ib876482357ff2b945fe411fbef68d421fdbfc802
Chris Forbes [Fri, 13 Apr 2018 16:34:15 +0000 (09:34 -0700)]
Don't clobber immutable samplers in update
The copy cases were already doing the right thing; the basic updates
missed the check for the sampler being immutable.
Fixes #2569
Jeff Bolz [Tue, 10 Apr 2018 19:32:18 +0000 (14:32 -0500)]
layers: Add support for VK_EXT_descriptor_indexing
Change-Id: Ieeaf9cbdff1c9b383d4f47ef678fe4a7467113cb
Mark Lobodzinski [Fri, 13 Apr 2018 16:10:13 +0000 (10:10 -0600)]
android: Add GetPhysDevFeatures2 to vulkan_wrapper
Change-Id: I186def1470aa0423f9bde273860df3c01bf1d4f4
Mark Lobodzinski [Thu, 12 Apr 2018 20:55:54 +0000 (14:55 -0600)]
travis: Avoid empty Travis CI job
Change-Id: Ifb917ab3cf72f0c89f3c7bc9b647156bf1259a50
Dave Houlton [Tue, 10 Apr 2018 22:41:14 +0000 (16:41 -0600)]
layers: maint2 image usage bit validation
Add partial support for VK_IMAGE_CREATE_EXTENDED_USAGE_BIT in
vkCreateImage(), currently just avoiding the usage bit checks when
EXTENDED_USAGE is specified. Full support will require an
exhaustive search of all compatible format's usage bits, which
seems pretty expensive. TODO for now.
Adds support for checking for a chained VkImageViewUsageCreateInfo
struct when doing usage bit validation in vkCreateImageView().
Change-Id: I79a5853dc93dfa54040ace162170f1226a978c2d
Karl Schultz [Thu, 12 Apr 2018 19:39:59 +0000 (13:39 -0600)]
demos: Remove unused var from vulkaninfo
Change-Id: I31c161117ec773240df006cac4e06dffff05c7c6
Mark Lobodzinski [Mon, 9 Apr 2018 21:28:28 +0000 (15:28 -0600)]
travis: Set up to test commit messages
Change-Id: I64adcdb59329eed77cd7c0dd4ff89362f73f72f4
Mark Lobodzinski [Mon, 9 Apr 2018 21:27:15 +0000 (15:27 -0600)]
scripts: Add commit message format checker
Change-Id: I94efe0326e3f68e19af605a1ff381da59d2d7d1d
Cort Stratton [Tue, 10 Apr 2018 21:52:49 +0000 (14:52 -0700)]
layers: use VUID in ValidateImageAspectLayout log msg
This commit also updates the corresponding test to expect
the VUID instead of a log message snippet.
Cort Stratton [Tue, 10 Apr 2018 21:52:49 +0000 (14:52 -0700)]
layers: add level/layer to ValidateImageAspectLayout log msg
This helps clarify the case where a transition fails due to a
specific subresource being in an unexpected layout.
Chris Forbes [Fri, 6 Apr 2018 15:59:47 +0000 (08:59 -0700)]
Fix missing validation errors when a CB never bound any descriptor sets
In this case, the last bound state would never be properly configured
and so we'd skip over this whole block.
Karl Schultz [Fri, 6 Apr 2018 21:55:59 +0000 (15:55 -0600)]
macos: Remove update_and_draw from cube demos
Adopting this change from MoltenVK. The wait and update steps
are no longer needed. Calling just demo_draw now works as well
on MVK as it does on other platforms.
Dave Houlton [Thu, 5 Apr 2018 22:20:33 +0000 (16:20 -0600)]
layers: multiplane image allow color aspect bit
There is a case (memory barrier) where a multiplane image can have
the color aspect bit set, so the general aspect check should allow
it. In the common case where only VK_IMAGE_ASPECT_PLANE_n_BIT_KHR
bits are allowed, there are specific VUIDs in place to enforce.
This fixes an "unexpected error" result that recently appeared for
the CopyImageMultiplaneAspectBits test.
Change-Id: I766da2940955d8a7b72ec26e4dbefe9e60eb0b08
Mike Schuchardt [Fri, 6 Apr 2018 04:44:05 +0000 (22:44 -0600)]
scripts: exclude vulkan headers from clang-format
Travis CI shows linux build failure on every header update because
upstream Vulkan-Docs files are not formatted with the clang-format style
of this repo. This change excludes the vulkan headers directory from
the CI clang-format check.
Change-Id: I6d1bee486d06b690f65aa2c3098de14f3c5931c9
Mark Lobodzinski [Thu, 5 Apr 2018 21:46:53 +0000 (15:46 -0600)]
header: Update to version 1.1.72 of the Vulkan hdr
- updated layer json files
- updated vulkan_core.h
- updated validusage.json
- updated vk_validation_error_database.txt
- updated vk_validation_error_messages.h
- updated vuid_mapping.py
- updated vk.xml
- updated vulkan.hpp
- moved vuid
1ae00652 to
1ae00f06
Change-Id: Id6ba342841cca04c0669b7feb39d82e2b8052443
Mark Lobodzinski [Wed, 21 Feb 2018 16:48:42 +0000 (09:48 -0700)]
layers: Add text-string VUID version of log_msg
Allows adding VUIDs for checks that are not yet public, or that do
not yet have numerical VUIDs assigned.
Change-Id: I9f3a92d8e085f20452a52439517e7cdf677631d3
Mark Lobodzinski [Tue, 3 Apr 2018 21:50:34 +0000 (15:50 -0600)]
layers: Add text vuid error message map
Change-Id: I71efc6127960a8fdff16a8279201f7e59be73bf3
Mark Lobodzinski [Tue, 27 Mar 2018 20:49:31 +0000 (14:49 -0600)]
scripts: Output vuid-string->message map
Change-Id: Id4123053da62fb8d2b4d32393d11e4aa6c030f92
Dave Houlton [Wed, 4 Apr 2018 17:41:48 +0000 (11:41 -0600)]
layers: fix typos
Change-Id: I93a01dfe0e7f49ba3f6992a5f6c8d312b524774a
John Zulauf [Wed, 4 Apr 2018 21:02:01 +0000 (15:02 -0600)]
tests: Unit tests for CreateDescriptorUpdateTempla
Added unit test for vkCreateDescriptorUpdateTemplate(KHR) validation
checks.
VALIDATION_ERROR_052002bc
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350
VALIDATION_ERROR_052002be
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351
VALIDATION_ERROR_052002c0
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352
VALIDATION_ERROR_052002c2
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353
Change-Id: I55bebc50757dd537f0be849aec38120fae41e181
John Zulauf [Wed, 4 Apr 2018 20:54:11 +0000 (14:54 -0600)]
layers: Add checks for CreateDescriptorUpdateTempl
Added four validation checks for vkCreateDescriptorUpdateTemplate(KHR)
and removed a false positive.
VALIDATION_ERROR_052002bc
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350
VALIDATION_ERROR_052002be
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351
VALIDATION_ERROR_052002c0
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352
VALIDATION_ERROR_052002c2
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353
Updated autogen of object tracker s.t. that logic for noautovalidation
handles matches parameter validation, and spec generation, eliminating a
source of false positives.
Change-Id: Ib831eabd45a5083168355bca6b0e2beda3a76222
Tobin Ehlis [Thu, 5 Apr 2018 15:30:09 +0000 (09:30 -0600)]
docs:Fix my name spelling in README
Karl Schultz [Wed, 4 Apr 2018 22:15:32 +0000 (16:15 -0600)]
macos: Update vulkan framework version to 1.1
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:44:11 +0000 (22:44 +0000)]
layers: Avoid reading pointer to array when count is zero
Take for example VkSubmitInfo. It has, amongst others, two fields:
waitSemaphoreCount and pWaitSemaphores. The specification states that
if waitSemaphoreCount is zero, the application may leave pWaitSemaphores
uninitialized (in essence, that field is ignored).
The layers read that value anyway, triggering uninitialized read errors
by memory sanitization tools.
Fixes uninitialized read in QueueSubmitSemaphoresAndLayoutTracking.
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 21:52:06 +0000 (21:52 +0000)]
layers: Destroy object tracking after reporting undestroyed objects
Fixes a memleak in VkLayerTest.LeakAnObject.
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 21:37:56 +0000 (21:37 +0000)]
layers: Fix memleak in unique object's debug functions
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 22:15:03 +0000 (22:15 +0000)]
tests: End recording command buffer instead of resetting
Workaround a memory leak in NVIDIA's driver. Resetting a command buffer
while it's in the recording state leaks memory.
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:38:05 +0000 (22:38 +0000)]
tests: End command buffer in VtxBufferBadIndex
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:29:32 +0000 (23:29 +0000)]
tests: End command buffer in UpdateBufferWithinRenderPass
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:37:14 +0000 (22:37 +0000)]
tests: End command buffer in RenderPassWithinRenderPass
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:39:15 +0000 (22:39 +0000)]
tests: End command buffer in PushDescriptorUnboundSetTest
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:28:50 +0000 (23:28 +0000)]
tests: End command buffer in NullRenderPass
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:27:51 +0000 (23:27 +0000)]
tests: End command buffer in InvalidDynamicOffsetCases
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:27:30 +0000 (23:27 +0000)]
tests: End command buffer in InvalidDescriptorSetSamplerDestroyed
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:38:56 +0000 (22:38 +0000)]
tests: End command buffer in ImmutableSamplerOnlyDescriptor
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:38:39 +0000 (22:38 +0000)]
tests: End command buffer in FramebufferIncompatible
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:37:32 +0000 (22:37 +0000)]
tests: End command buffer in FillBufferWithinRenderPass
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:28:30 +0000 (23:28 +0000)]
tests: End command buffer in DynViewportAndScissorUndefinedDrawState
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:39:30 +0000 (22:39 +0000)]
tests: End command buffer in DynamicOffsetWithInactiveBinding
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:28:10 +0000 (23:28 +0000)]
tests: End command buffer in DescriptorSetCompatibility
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:37:49 +0000 (22:37 +0000)]
tests: End command buffer in CmdClearAttachmentTests
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:30:03 +0000 (23:30 +0000)]
tests: End command buffer in ClearDepthStencilImageErrors
Gabríel Arthúr Pétursson [Tue, 20 Mar 2018 23:29:47 +0000 (23:29 +0000)]
tests: End command buffer in ClearColorImageWithinRenderPass
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 22:38:22 +0000 (22:38 +0000)]
tests: End command buffer in BadVertexBufferOffset
Gabríel Arthúr Pétursson [Wed, 21 Mar 2018 23:55:55 +0000 (23:55 +0000)]
tests: Fix copy&paste error in a comment in vkrenderframework
Karl Schultz [Wed, 4 Apr 2018 20:56:13 +0000 (14:56 -0600)]
macos: Add new Vulkan headers to vulkan framework
Dave Houlton [Thu, 8 Mar 2018 21:34:47 +0000 (14:34 -0700)]
tests: Update CopyImage with sampler_YCbCr VUIDs
Modifies existing tests and adds new tests to verify VUIDs added or
modified by the sampler_YCbCr extension. Adds some helpers to the
test framework to verify enabled extension strings.
Change-Id: Ib48f3e53ae9d78e98a5e2233019be6616afaca01
Dave Houlton [Tue, 6 Mar 2018 18:08:51 +0000 (11:08 -0700)]
layers: add multiplane image formats and checks
Add support for new formats added by sampler_YCbCr and mainlined in
Vulkan 1.1. Adds single- and multi-plane formats to lookup utility
fxns. Adds checks for CmdCopyImage VUIDS that were added or modified.
Change-Id: I70279bd8d667bf50d53fce752b53bb7e2e0a2d67
Jeremy Kniager [Mon, 2 Apr 2018 20:44:47 +0000 (14:44 -0600)]
vulkaninfo: Add checks for some struct allocation
Added checks after attempted memory allocation in
AppGpuInit and before memory frees in
AppGpuDestroy.
Change-Id: Ie2c207bfabd24bec326b12eef0c58e2bdfe8b59a
Karl Schultz [Wed, 4 Apr 2018 00:28:03 +0000 (18:28 -0600)]
docs: Fix internal links in BUILD.md
Karl Schultz [Wed, 4 Apr 2018 00:26:40 +0000 (18:26 -0600)]
build: macOS: Adapt to changes in MoltenVK repo
John Zulauf [Mon, 2 Apr 2018 20:02:03 +0000 (14:02 -0600)]
test: Delete dead code ApiVersion tests
two of the apiVersion unit tests were too sensivite to configuration
issues and were disabled, deleted to avoid carrying dead code.
Change-Id: Ifb875dceb71e5a958c40c3f67966db4915f2d6df
John Zulauf [Fri, 30 Mar 2018 22:55:13 +0000 (16:55 -0600)]
tests: Added unit tests for apiVersion validations
Add three unit tests for apiVersion 0, < 1.0 and > 1.1 validation,
with the latter two disabled due to configuration sensitivity.
Change-Id: I4f40a1dc275b263ae02c2ae7ddce1b0c400092b2
John Zulauf [Fri, 30 Mar 2018 20:58:00 +0000 (14:58 -0600)]
tests: Add debug callbacks during CreateInstance
Added debug callback information to CreateInstance, such that
CreateInstance validation errors can be caught in the usual way.
Change-Id: Ie734e2b2eabbc6e63fc6196a539f22e52fe00546
John Zulauf [Fri, 30 Mar 2018 22:52:23 +0000 (16:52 -0600)]
loader: Improve 1.0 driver apiVersion fixup
The 1.1 loader attempts to avoid VK_ERROR_INCOMPATIBLE_DRIVER from 1.0
drivers by patching up the supplied apiVersion during CreateInstance.
Added support for apiVersions > 0 and < 1.0.
Change-Id: Iae350624c6f9f711890814b48adc3f5a17fdc47b
John Zulauf [Mon, 2 Apr 2018 16:55:18 +0000 (10:55 -0600)]
loader: Eliminate duplicate validation messages
Layer version mismatch validation messages were being generated multiple
times for each mismatching layer. Eliminated duplicate error messages
and fixed formatting issues.
Change-Id: Iffc5ff94f70fefc075b74764ae87a6593143f503
John Zulauf [Fri, 30 Mar 2018 20:51:59 +0000 (14:51 -0600)]
layers: Add correct validation for apiVersion
Update and correct validation of passed apiVersion for 1.1 specified
behavior. Instances with apiVersion > 1.1 will be validated as 1.1
instances (and warn). Instances with apiVersions < 0 and < 1.0 will be
validated as 1.0 instances and generate an error. Instances with
missing or 0 apiVersions will be treated as 1.0 instances.
LOGCONSOLE warning converted to log_msg warning.
Change-Id: I2debb6175cf094918fc86cdea2973ddae9479a0b
Dave Houlton [Fri, 30 Mar 2018 21:07:41 +0000 (15:07 -0600)]
layers: Fix multi-plane aspect bit check
Remove multi-plane formats from classification as 'color' formats
and add specific aspect bit checks for them.
Change-Id: Ie899a6f2a91ceb43e6fb92c3fdd9056e00849fc3
Dave Houlton [Fri, 30 Mar 2018 23:10:17 +0000 (17:10 -0600)]
demos: Add some cube lighting
Can stand it no longer. Added some minimal n-dot-L screen-space
lighting.
Change-Id: Ifaf664a5651f59d8904cbb064018c00d385ec3ed
Mark Lobodzinski [Sun, 1 Apr 2018 16:38:15 +0000 (10:38 -0600)]
layers: Remove layer prefix from log_msg calls
Change-Id: Iea43bd2f8f2c92d99b5fdf40abe94149a6fb860c
Mark Lobodzinski [Fri, 30 Mar 2018 20:26:00 +0000 (14:26 -0600)]
layers: Remove location field from log_msg calls
Removed location parameters from log_msg calls, and from layer
logging output functions.
Change-Id: Ia1e2ce012997efed1db7864761ae0e39c8bc7d9b
Mark Lobodzinski [Fri, 30 Mar 2018 16:09:03 +0000 (10:09 -0600)]
layers: Remove VUID spec text from log_msg strings
Removed format specifiers from log_msg text strings
Removed validation_error_map specifiers from log_msg parameter lists
Change-Id: I5bd22c60dabf534382ca4d371ef4dffff1829f6d
Shannon McPherson [Thu, 29 Mar 2018 17:27:39 +0000 (11:27 -0600)]
demos: Fix call to SurfaceCapabilities2EXT
VkGetPhysicalDeviceSurfaceCapabilities2EXT() requires VK_KHR_Display to
be enabled. Added VK_KHR_DISPLAY_EXTENSION_NAME to list of instance
extensions.
Change-Id: I566cb26045c18865b9c0b1a39b5f89d6d7ccb7f6
Shannon McPherson [Thu, 29 Mar 2018 17:38:06 +0000 (11:38 -0600)]
demos: Fix format of conditionals
Change-Id: I6c9d5d089107cb8f616084e59c0eb3f002ef2688
John Zulauf [Wed, 28 Mar 2018 15:55:03 +0000 (09:55 -0600)]
layers: Correct non-dispatchable type handling
Update threading layer non-dispatchable type handling to reflect updates
to the vulkan header for Linux/x32 memory model support. Includes new
static asserts to detect future mismatches.
Change-Id: Ieb1ae335978cf43083b4a17634d06cd7066ed144
John Zulauf [Sun, 25 Mar 2018 01:53:57 +0000 (19:53 -0600)]
tests: Add positive tests for ownership transfers
Add unit test cases for false positives regarding ownership transfers.
Specifically test the cases for ownership transfers between queue
families with mismatch queue capabilities (e.g. has graphics or not),
and for the case in which a layout is being changed during an ownership
transfer.
Change-Id: I02e4a94b5ceed26bf4b3d99066859dd47a9dd036
John Zulauf [Tue, 27 Mar 2018 16:12:37 +0000 (10:12 -0600)]
tests: Add access for queues objects by family
Add storage and accessors for queue objects from a vk_testing::Device
object. Additionally, remove duplicate allocations and clean up
destruction.
Change-Id: I8d2b21cc0973ab5fb69afd854b00fb8fc56ac06a
John Zulauf [Mon, 26 Mar 2018 20:45:12 +0000 (14:45 -0600)]
tests: Add queue support to command buffer objects
Allow command buffer objects to submit to different queues than the
device default queue, and utilize the extant vk_testing classes.
New method names match the style of the class Vk*Obj method names are in
Google style, vk_testing methods are named consitently with extant
membmer functions.
Change-Id: I3461f78f92818a049c516469d2cdd1c0572d6dcc
John Zulauf [Sun, 25 Mar 2018 01:52:19 +0000 (19:52 -0600)]
layers: Eliminate false positive on ownership xfer
Add logic that correctly ignores the src(dst)StageMask for barrier
operations that are resource acquire(release) operations. When barrier
operations transfer ownership they envitably run on two different queue
families which may have incompatible capabilities. For release
operations dstStageMask should be ignored. For acquire operations the
srcStageMask should be.
Note: this can only be done if *all* operations for a barrier command
are of one type, as the *StageMasks are specified at the command level.
Change-Id: I6c238ab121eaa1230e66716120d37204740408d6
Chris Forbes [Mon, 21 Aug 2017 18:27:08 +0000 (11:27 -0700)]
layers: Skip layout transition in release op
Chris Forbes [Fri, 18 Aug 2017 22:00:48 +0000 (15:00 -0700)]
layers: Avoid a redundant CB lookup
Lenny Komow [Thu, 29 Mar 2018 19:25:38 +0000 (13:25 -0600)]
loader: Fix GetDeviceProcAddr with terminators
Fix a bug where vkGetDeviceProcAddr would return a valid pointer for
any device command that used a custom terminator, even if it was part
of an extension which wasn't enabled
Change-Id: I3b088fe0c850fbaa5f7285ced81552273bc38e7e
Mike Schuchardt [Thu, 29 Mar 2018 16:12:04 +0000 (10:12 -0600)]
tests: macOS CMake fixes for Xcode generator
Put icd and test layer json files in $<CONFIG> directory when using
Xcode generator so layer tests can be executed and debugged from within
Xcode.
Change-Id: I079a89ea065ddeec98ce95766e284220c67b1859
Lenny Komow [Wed, 28 Mar 2018 20:31:32 +0000 (14:31 -0600)]
loader: Make assembly offsets use offsetof macro
Change-Id: I52d749e51e38b321d4fab4e0288c055ccdefe66f
Mark Lobodzinski [Wed, 28 Mar 2018 20:24:46 +0000 (14:24 -0600)]
layers: Fix DestDescPool data race
Data was destroyed after the down-chain call, which left the
possibility that before the items could be removed from the data
structure that they might be reused which would corrupt validation.
Fixed by destroying inside the lock before the down-chain call.
Change-Id: Icbc994ef043a1108c84474879617d4ada694b74b
Mark Lobodzinski [Wed, 28 Mar 2018 20:20:07 +0000 (14:20 -0600)]
layers: Remove unnecessary destCmdPool null check
Change-Id: I69bb77b1874fa2148ab7902e71e57a15589ba684
Francois Duranleau [Tue, 27 Mar 2018 18:42:24 +0000 (14:42 -0400)]
layers: Fix command buffer allocation ABA bug
In core validation layer's DestroyCommandPool API entry function, the
ext layer's API call is executed outside of the lock, and before the
command pool's command buffers are erased from the layer's command
buffer map. That means that between next layer's call and the time the
lock is regained, any other thread can allocate other command buffers.
In particular, it may reuse the memory freed the command, and then the
core validation layer will not insert a new entry in the command buffer
map. So after the lock in regained and the command pool's command
buffers are erased from the map, leaving those allocated with no state,
leading to either crashes or assertions later on. The fix is to move the
release of command buffers before releasing the lock the first, before
calling the next layer's function, such that they will be removed from
the map before any other thread might reuse those addresses.
Mark Young [Wed, 21 Mar 2018 19:35:34 +0000 (13:35 -0600)]
layers: Fix gh #2504 and compiler warnings
Remove extraneous objecgt info from the validation logging message.
Extra object logging was added accidentally in my change to
incorporate VK_EXT_debug_utils.
Fix output of Debug Utils messenger output for validation layers
to list individual objects.
Also, fixed a few compiler warnings that were appearing on Linux.
Change-Id: I043d7f734683dfa79fe7a26a5973975bde011cce
Mark Lobodzinski [Tue, 27 Mar 2018 21:16:17 +0000 (15:16 -0600)]
tests: Delete in-tree gtest source code
This is now pulled in as a submodule to LVL.
Change-Id: I7f4cbf2c2e81881545fe318a0928b0a79aeb7264
Mark Lobodzinski [Tue, 27 Mar 2018 21:31:16 +0000 (15:31 -0600)]
build: Add submodule init to update externals scripts
Change-Id: I78e35a0daaa5a62e432858861378543d412a77c7
Mark Lobodzinski [Tue, 27 Mar 2018 21:15:27 +0000 (15:15 -0600)]
tests: Switch to submodule version of gtest
Switch layer/loader tests over to use the submodule version of
gtest instead of the version checked into the tree.
Change-Id: I0d0bad7531ccf1de0248a48cea347471c99e179f
Mark Lobodzinski [Tue, 27 Mar 2018 23:13:13 +0000 (17:13 -0600)]
tests: Suppress gtest warnings
Gtest generates GCC warnings for some signed/unsigned mismatches.
Suppress this for the test output.
Change-Id: Ifa3406610e980b81e091976a062cde6457a71377
Mark Lobodzinski [Tue, 27 Mar 2018 23:14:34 +0000 (17:14 -0600)]
tests: Resolve gtest/xlib conflicts
Gtest and Xlib each redefine 'None' and 'Bool', which causes
gtest compilation to fail hard. Temporarily clear the definitions
to allow gtest to build using an Xlib display server.
Change-Id: I75e53bbff9266a59ebf53a81c2e148e51de6b7c7