History log of /external/vulkan-validation-layers/layers/core_validation.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5f6b7bf3dab2c213b407e1dc16129c04e4405ff3 07-Feb-2018 Dave Houlton <daveh@lunarg.com> layers: clang-format only

Whole-file clang-format of layers .h and .cpp files

Change-Id: I683ad38fa9bced371a923b86d8cc916f2c2aa947
/external/vulkan-validation-layers/layers/core_validation.cpp
6dd52859c4effbd6e320da52d8b7255a48bc92cc 08-Feb-2018 Tobin Ehlis <tobine@google.com> layers:Verify sparse image metadata is bound

Any image for which sparse memory requirements are bound, flag if that
image requires metadata. When binding sparse memory, for any image that
requires metadata and no metadata was bound, issue a warning.
/external/vulkan-validation-layers/layers/core_validation.cpp
1d0c482a18382ee5e2d0a35700d80852c071e085 08-Feb-2018 Tobin Ehlis <tobine@google.com> layers:Add sparse mem warning if reqs not checked

If vkQueueBindSparse() is called to bind sparse memory to an image,
trigger a warning if the user has not queried sparse requirements for
that image.
/external/vulkan-validation-layers/layers/core_validation.cpp
480a7c8aa7a619fc3e6adf697720e1a532bb63e4 08-Feb-2018 Tobin Ehlis <tobine@google.com> layers:Track sparse image requirements

Add image state tracking for if sparse memory requirements have been
queried and when they are queried, save the requirements.
/external/vulkan-validation-layers/layers/core_validation.cpp
b9a187d62d09304914871b67bcffcc0b12d5727a 08-Feb-2018 Tobin Ehlis <tobine@google.com> layers:Adding intercepts for sparse binding

Intercept vkGetImageSparseMemoryRequirements() and
vkGetPhysicalDeviceSparseImageFormatProperties() functions and their
2KHR equivalents in core_validation in preparation for adding sparse
checks. Initially just pass-through intercepts.
/external/vulkan-validation-layers/layers/core_validation.cpp
c1ee41602fa2f50719b16681bdf7f88d5a5fec77 13-Feb-2018 Tobin Ehlis <tobine@google.com> layers:Fix typo databate->database
/external/vulkan-validation-layers/layers/core_validation.cpp
63f3a40c10f2c26b6a85b4fb984cf4f1426797ae 29-Jan-2018 Dave Houlton <daveh@lunarg.com> layers: Add CreateImage valid usage checks

Adds 17 valid usage checks of ImageCreateInfo struct. 13 in core
validation, 4 in parameter validation.

Change-Id: I4bfe195f88d5e14237c1b01c5aca2de7c578aa67
/external/vulkan-validation-layers/layers/core_validation.cpp
647670f9a4a7942fa16b9ffa8f0086c9bd9c1235 30-Jan-2018 John Zulauf <jzulauf@lunarg.com> layers: Add err-id/coverage for 'recording state'

Added map from CMD_TYPE to validation error for "must be in the
recording state" valid usage ID. Add complete check coverage
(except vendor/KHX extensions) for this class of VUID. Coverted
existing checks to use common code.

Change-Id: I38f71cce2a0f090f2685074239a1b429bbf95d8c
/external/vulkan-validation-layers/layers/core_validation.cpp
2ae360ccf69df3466370eb538ab6d96d78fd8efd 30-Jan-2018 John Zulauf <jzulauf@lunarg.com> layers: Fully normalize/populate CMD_TYPE enum

Add all vkCmd.* (plus vkEndCommandBuffer) to the CMD_TYPE, normalizing
the naming to be consistent with the function names.

Change-Id: I50503a4e180d726b330c42db050a1336221213f6
/external/vulkan-validation-layers/layers/core_validation.cpp
9024e8731db5e08d2004e6cd4618203ea4d9c152 25-Jan-2018 Mike Schuchardt <mikes@lunarg.com> layers: Pass through bind mem 2 entry point names

Change-Id: I62510d1759c7cd3ca81b3c7e57a153b7c863250b
/external/vulkan-validation-layers/layers/core_validation.cpp
e012edd23ccd56d40b3a95680ccd620e291b79bf 19-Jan-2018 Mike Schuchardt <mikes@lunarg.com> layers: Bind mem 2 entry points

Add entry points for VK_KHR_bind_memory2 and wire up to existing
validation

Change-Id: Iab17ead7a6f6f44fdbdf2ad5033d2ea7e47447d0
/external/vulkan-validation-layers/layers/core_validation.cpp
ebfbbabf102e4479f4c31ec9951f75d279d53805 10-Jan-2018 Mike Schuchardt <mikes@lunarg.com> layers: Mem reqs 2 entry points

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

Change-Id: I3f9170b0171efc5a22ddb1e3b68185cedd17bca5
/external/vulkan-validation-layers/layers/core_validation.cpp
a176c470577c14413185c2e70b4f4254bdc67df3 26-Jan-2018 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
e13b0d1d0c63c2e30811d455d3b73d66445ba674 23-Jan-2018 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
c00ae5e4d3db2e9cbcdbedb7a0b69edfb7f08f78 24-Jan-2018 Chris Forbes <chrisforbes@google.com> Don't complain about unused vertex buffers being VK_NULL_HANDLE
/external/vulkan-validation-layers/layers/core_validation.cpp
6c6a78c526d4066a50c4090645723f013c0c78df 05-Jan-2018 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
f57f451e6ce7a4952beb3d26d59ebeb0c077dcba 17-Jan-2018 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
c965674f76d72a0f49e317c4e08c882c073676a4 16-Jan-2018 Mike Weiblen <mikew@lunarg.com> Revert "TEST: Create pre-instance intercept test case"

This reverts commit 6cc77123f101f88d246a8cbdf85cc601b5fde82c.
/external/vulkan-validation-layers/layers/core_validation.cpp
47bc78af8c4354d1b06196baeefed680cc8a6cc2 12-Jan-2018 John Zulauf <jzulauf@LunarG.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
bac733149545b272173846d1b3392db61a015cc6 05-Jan-2018 Petr Kraus <petr_kraus@email.cz> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
44bf63f14c4a033f02bbaf7228d956e39e4d0f21 05-Jan-2018 Dave Houlton <daveh@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
6cc77123f101f88d246a8cbdf85cc601b5fde82c 20-Dec-2017 Lenny Komow <lenny@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
61e4ca90b669387237558926a72d120b2083bc9c 23-Dec-2017 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
30927cd8115b99abbbc96213543144d949f1a2b9 15-Dec-2017 John Zulauf <jzulauf@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
6ab13d36ac05fc9c43143d1b00c35f425df4dcef 03-Dec-2017 Jamie Madill <jmadill@chromium.org> layers: Remove unused variable from core validation.

This commit was accidentally reverted in dec37fb9172:
layers: Add descriptor limit checks to vkCreatePipelineLayout()
/external/vulkan-validation-layers/layers/core_validation.cpp
b7a95318dfccd1c5258d14ad4a22ccf29c9d4899 15-Dec-2017 Jamie Madill <jmadill@chromium.org> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
0662b5216a27fe7356b2a2041f3d4f2796d470e5 18-Dec-2017 Cody Northrop <cnorthrop@google.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
b50f981cf488d18192f3dea325b81f39300c1b3c 14-Dec-2017 Petr Kraus <petr_kraus@email.cz> layers: Fix Graphics Pipeline pointers not ignored

Some VkGraphicsPipelineCreateInfo pointers must be ignored under some
conditions, but were not in the layers.

Add relevant tests.

Fix tests found broken (using depth or color without attachment in
subpass)
/external/vulkan-validation-layers/layers/core_validation.cpp
cce84a82dd5acee13210b230f5f5fd19691b3950 13-Dec-2017 Tobin Ehlis <tobine@google.com> layers:Add VUID to existing check

Add VUID to existing check for VALIDATION_ERROR_0f6004ac and update
the DB file to reflect that this check is in place.
/external/vulkan-validation-layers/layers/core_validation.cpp
c87a77016cd73fd281800461014ffec28b528663 15-Nov-2017 Jean-François Marquis <jfmarquis@gmail.com> layers: Add some missings locks of global_lock

Add locks of global_lock in BindBufferMemory, BindImageMemory
and GetImageSubresourceLayout to have safe access to imageMap
and bufferMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
055fc8fd459f0da279d4814f927ea7090dd0f7e9 09-Dec-2017 Petr Kraus <petr_kraus@email.cz> build: Clear some compiler warnings

- remove unnecessary ";" after function definitions and namespaces
- fix
wrong type match in printf for handle types
- convert some left-overs to `HandleToUint64`
/external/vulkan-validation-layers/layers/core_validation.cpp
dec37fb91725eb4784429796d52d41c08ab29e4a 29-Nov-2017 Dave Houlton <daveh@lunarg.com> layers: Add descriptor limit checks to vkCreatePipelineLayout()

Change-Id: I570dc49652997cfaed7dcd6dfaf2e6f125f861cc
/external/vulkan-validation-layers/layers/core_validation.cpp
2245033499602488fe166f245bab7ab1d88f1ca2 08-Dec-2017 Dave Houlton <daveh@lunarg.com> Revert "layers: Add descriptor limit checks to vkCreatePipelineLayout()"

Remove checks to avoid database complaints

This reverts commit af313b4683b42a9e4d15aa5819feddc1b9eee6d8.
/external/vulkan-validation-layers/layers/core_validation.cpp
af313b4683b42a9e4d15aa5819feddc1b9eee6d8 29-Nov-2017 Dave Houlton <daveh@lunarg.com> layers: Add descriptor limit checks to vkCreatePipelineLayout()

Change-Id: I570dc49652997cfaed7dcd6dfaf2e6f125f861cc
/external/vulkan-validation-layers/layers/core_validation.cpp
9d3922829dc19b16defae8f063ad1757dcc34130 01-Dec-2017 Tobin Ehlis <tobine@google.com> layers:Limit warning on secondary command buffer

Only warn if a secondary command buffer has a renderPass that is valid
and has not set VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. This
avoid warning for the case where uninitialized data is present in the
renderPass handle.
/external/vulkan-validation-layers/layers/core_validation.cpp
003c9346bbe19f840685e31dc86f62a5b60953ec 03-Dec-2017 Jamie Madill <jmadill@chromium.org> layers: Remove unused variable from core validation.
/external/vulkan-validation-layers/layers/core_validation.cpp
1c667d91ac70785c9056f873057bfa3a7226aa6b 28-Nov-2017 Tobin Ehlis <tobine@google.com> layers:Add secondary CB warning

Fixes #2237

If VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is not set by a
secondary command buffer, then any renderPass specified in the
inheritance info will be ignored. Adding a warning if a non-NULL
renderPass is included in the inheritance info but the
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT is not set. This is
likely an oversight by the user and the current validation error that
this case leads to (no active renderPass) doesn't directly point to the
root cause.
/external/vulkan-validation-layers/layers/core_validation.cpp
f85ac0ee54f3cfbac8bb9bf046de2f502e9b8bff 28-Nov-2017 Cort Stratton <cort@google.com> layers: validation_cache review feedback
/external/vulkan-validation-layers/layers/core_validation.cpp
b1260c070b19760942d5fddf0d7b1d8872311277 23-Nov-2017 Cort Stratton <cort@google.com> layers: Check EXT_validation_cache's sole non-trivial VU

A cache can't be merged with itself.
/external/vulkan-validation-layers/layers/core_validation.cpp
fe772548f7a48b12772483e8faecc956fb76eb42 25-Jul-2017 Chris Forbes <chrisforbes@google.com> layers: Add VK_EXT_validation_cache implementation for shaders
/external/vulkan-validation-layers/layers/core_validation.cpp
263e2eaaec0c0303f95a60a905a35feeaa98626c 24-Nov-2017 Petr Kraus <petr_kraus@email.cz> layers: Fix lineWidth checks

- migrate to parameter_validatio
- do not check against limit (outside limits is valid; impl clamps
value)
/external/vulkan-validation-layers/layers/core_validation.cpp
b36fb5ae8886f797de57fa6e14e8ccb079edef8e 10-Nov-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add GetQueryPoolResults validation check

Added check for a pool of queryType TIMESTAMP having the RESULT PARTIAL
bit set and updated the error database.

Change-Id: I139733202c085a7d64d7359f659714b75a46ebf1
/external/vulkan-validation-layers/layers/core_validation.cpp
68650c602ecc14b2fb2ccc2c05ae0b1f22a815bd 13-Nov-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove invalid query avaibility error check

This case in GetQueryPoolResults flagged errors for cases that are
valid.

Change-Id: I00a823992d200cd30988fde39ef679ea8ad8bce3
/external/vulkan-validation-layers/layers/core_validation.cpp
b022d1937f5e9d9f87eef1097b4bf6f3b4043c9d 13-Nov-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor PreCallValidateGetQueryPoolResults

Cleared up logic flow.

Change-Id: I32157a408a7ff7e413ab82b05bf86de48f98495b
/external/vulkan-validation-layers/layers/core_validation.cpp
70415b3184c6950e4674a72bd2c2196e1a2c36bf 13-Nov-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove redundant query_state_pair checks

Change-Id: I62b722124c58d98da642cc2c5c17670a7f290d64
/external/vulkan-validation-layers/layers/core_validation.cpp
a99ceeafb2acc8ef0e18af2d1b24d5e1e68d5ee3 16-Nov-2017 Norbert Garnys <Norbert.Garnys@amd.com> layers: add image layout validation to vkCmdBlitImage()
/external/vulkan-validation-layers/layers/core_validation.cpp
7cb00fa300f2563ae3e8eb506bca912c11216953 07-Nov-2017 John Zulauf <jzulauf@lunarg.com> layers: Rename resetCB to ResetCommandBufferNode

Small cleanup change to clarify command buffer node code.

Change-Id: Ib98010e10161ef5b15aaa736d994ec48b4e659fb
/external/vulkan-validation-layers/layers/core_validation.cpp
c8d1e7bb99c01ae0c2824fe7286fb0a1173de589 03-Nov-2017 John Zulauf <jzulauf@lunarg.com> layers: Free commandbuffer data when deleting pool

Fixes for https://vulkan.lunarg.com/issue/view/59eeea8166315153977b0fe6
Issue #720 - Possible crash in layers when deleting command pools.
Ensured pool commandbuffers fully freed in the layer before deleting the
pool using refactored common code from FreeCommandBuffers.

Added postive test which exercises the implicit free path.

Change-Id: I71e1fcb6ffcd9a2977a89c0a8b388639e9a743cb
/external/vulkan-validation-layers/layers/core_validation.cpp
b65d7c4e9112072097dde6022999cb6240fc033b 26-Oct-2017 John Zulauf <jzulauf@lunarg.com> layers: Refactored pNext chain walks to template

The while loops for the walking the pNext chains were implemented by
repeated code. These were refactored into a common template. Added
autogenerated 'traits' objects for the pNext linked structs.

Delete cut and paste duplicate pNext chain walk.

Change-Id: I46457bb5432219c74f9356e5230c70e4a9ef16df
/external/vulkan-validation-layers/layers/core_validation.cpp
cd3fe6716d6c206368a0c404fcd25332860fd573 30-Oct-2017 Jean-François Marquis <jfmarquis@gmail.com> layers: Protect GetImage/BufferMemRqmts map access

Lock 'global_lock' while looking for IMAGE_STATE/BUFFER_STATE in
GetBufferMemoryRequirements/GetImageMemoryRequirements. This is needed
because other threads could add/remove other VkImage handles to/from
the maps concurrently. The specs say the VkImage must be externally
synchronized, but this doesn't cover the internals of the layers about
VkImages in general. vkCreateImage, vkDestroyImage and
vkBindImageMemory/vkBindBufferMemory correctly lock 'global_lock'.

Change-Id: I93cb00c9a7f99efc927da52e42103ab72516397e
/external/vulkan-validation-layers/layers/core_validation.cpp
56514e97bb296ac4612cae610a16cd46ac152dd8 19-Oct-2017 John Zulauf <jzulauf@lunarg.com> layers: Capture device features from extension

When the VK_KHR_get_physical_device_properties2 is present, physical
device properties can be passed to VkCreate either in the
pEnabledFeatures member or VkDeviceCreateInfo or in a
VkPhysicalDeviceFeatures2KHR structure on the pNext chain.

Neither the parameter validation or core validation layers were
capturing device features from the pNext struct, causing false
parameter checking errors, when the default (all false) state was
used for later validations.

Change-Id: I187827443f09aafaa80588a78bc5b67595d0acda
/external/vulkan-validation-layers/layers/core_validation.cpp
82fce62f2dbf7b3ebce09b18c01a38648843704e 18-Oct-2017 John Zulauf <jzulauf@lunarg.com> layers: Cleanup duplicate structure definition

A function local structure was duplicating the GENERIC_HEADER defintion.
To improve consistency and maintainability the duplicate struct was
removed and all references change to use GENERIC_HEADER.

Change-Id: I872ba9185959fc2de2ece33f8e236cfc6c805497
/external/vulkan-validation-layers/layers/core_validation.cpp
ee0b33024b1641ad3bb153259cf71d42675e4652 26-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Remove warning for imported memory

Flag imported memory as valid to suppress warnings about uninitialized
buffers and images that use external memory

Change-Id: Id286dfde41a02652767202a31758f44202d9875a
/external/vulkan-validation-layers/layers/core_validation.cpp
54aae8da345cdc9b9db8ac81e3e03075db79cf9f 25-Oct-2017 Józef Kucia <joseph.kucia@gmail.com> layers: Validate push descriptor set layout count
/external/vulkan-validation-layers/layers/core_validation.cpp
980fe4b66c791e16eadda9b51f833eb626c5572f 20-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Track WSI fences and semaphores

Treat temporarily imported semaphores and fences from
vkAcquireNextImageKHR as internal sync objects since the spec allows
them to be waited on.

Change-Id: I195bb7f4b65d141e9fb4a541817b4dc37b6aa600
/external/vulkan-validation-layers/layers/core_validation.cpp
6371247236bc48772bb4b0ea109fdc400723d84f 18-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Retire work early on external fence signal

Retire all work up until a signal operation on an external fence and
emit a warning about validation that will no longer occur

Change-Id: Ifdbc6702f664b8206cc3f28f6aba230a7564d76e
/external/vulkan-validation-layers/layers/core_validation.cpp
804e95a8a6a78f03a0325a78fd2b250a575ce3ce 18-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Compatibility fixes for external fence

Track when fence objects are exported/imported and skip checks and state
tracking while a fence is using an external payload.

Change-Id: Id53b83f86d5b91719fe212823de02c091e451c9c
/external/vulkan-validation-layers/layers/core_validation.cpp
c8fe10051b18a353adf7e5a6f015b12deaeffab4 17-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Typo in CV function pointer lookup map

Change-Id: I742f6054273dbc7e9b87f42fdc40f3305b0735e7
/external/vulkan-validation-layers/layers/core_validation.cpp
16f39f23c20176b9ff809d10d76b62663e1adabd 17-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Add VK_KHR_external_semaphore_fd functions

Add entry points and wire up to existing validation in place for
VK_KHR_external_semaphore_win32

Change-Id: I82da27d6a68c7b4eea3f01b4dd4fa0ce38d97f0b
/external/vulkan-validation-layers/layers/core_validation.cpp
85926a33d427ee62f395a50886db980127063c72 11-Oct-2017 Mike Schuchardt <mikes@lunarg.com> layers: Retire work early on external signals

Retire all work up until a signal operation on an external semaphore and
emit a warning about validation that will no longer occur.

Change-Id: I3d46464c2c32e37071d702e20e5197a495d60472
/external/vulkan-validation-layers/layers/core_validation.cpp
06d5c171f0bb0acbed8120af6bac43f13a869e3f 07-Jul-2017 Mike Schuchardt <mikes@lunarg.com> layers: External semaphore compatibility

Track when a semaphore payload is imported and restored, turn off
semaphore validation when using an external payload.

Change-Id: Ia5734ce9db10fa56d0de72ad6cfeebb2531b1a45
/external/vulkan-validation-layers/layers/core_validation.cpp
b6820dcebf864c3e157647317ddd26180309fc2b 12-Oct-2017 Chris Forbes <chrisforbes@google.com> layers: Only include self-dependencies in subpass->dep index

Only self-dependencies permit barriers within the renderpass, so we
don't want any other dependencies here.

Fixes #2123
/external/vulkan-validation-layers/layers/core_validation.cpp
3e7a170e30ca387a4a3d7fd11e847870624bc5b9 09-Oct-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove AccessMask->ImageLayout checks

Spec no longer calls out valid usage for image layouts related to
access masks.

Change-Id: Iedbe8689a0c3a569a4f7a473f801afae250c8256
/external/vulkan-validation-layers/layers/core_validation.cpp
69ea2c79d7b3f9c987671a10686afac066b275b9 27-Sep-2017 Mike Schuchardt <mikes@lunarg.com> layers: Add caller to ValidateObjectNotInUse

Make ValidateObjectNotInUse more generic so it can be used for cases
other than delete/destroy

Change-Id: I8983be88a42323021306c9d314ce6558fadcbd5e
/external/vulkan-validation-layers/layers/core_validation.cpp
ca0956fd78425c5ce5f29a017d10807e6a24d331 27-Sep-2017 Mike Schuchardt <mikes@lunarg.com> layers: Refactor AcquireNextImageKHR for pre/post

Change-Id: I408a1b84a16dd302a8b8ef01d04672b4c37a3fc2
/external/vulkan-validation-layers/layers/core_validation.cpp
baf4a700b1d8e70ac34d8f8069f5eb496efae0df 25-Aug-2017 Mike Schuchardt <mikes@lunarg.com> layers: Refactor vkQueueBindSparse for pre/post

Change-Id: I140e11653a0fa97e61d6df9c87e5223b7f28a04f
/external/vulkan-validation-layers/layers/core_validation.cpp
e03f0c649de6e228761ae301b57494db4eabe4ae 28-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Fix renderPass<->cmdBuffer binding

At BeginRenderPass() time bind the active renderPass to the cmdBuffer.
Don't bind the renderPass used to create the framebuffer. The
renderPass lifetime rules allow the renderPass used in FB creation to
be destroyed after FB creation.
/external/vulkan-validation-layers/layers/core_validation.cpp
a009ea68af87526010d2aa5b437f3e45d41c0117 28-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Remove invalid renderPass binding

There's no reason to create a binding between RP used in pipeline
creation and the cmd buffer that pipeline is bound to. This can lead
to a bug where CB is incorrectly invalidated if that RP is destroyed
after pipeline is bound to CB.
/external/vulkan-validation-layers/layers/core_validation.cpp
59ea4719bd0eeea6357f7044385a101ae9a3c46f 22-Sep-2017 Józef Kucia <joseph.kucia@gmail.com> layers: Avoid potential NULL pointer dereference

The boundDescriptorSets vector may be resized in
PreCallRecordCmdBindDescriptorSets().
/external/vulkan-validation-layers/layers/core_validation.cpp
cafebcdd40427a0713a3564dc8f39e47edbdb02f 18-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Pipe state owns render pass ptr

Pipeline can outlive the renderPass that it's created with so add
shared_ptr to RENDER_PASS_STATE to PIPELINE_STATE to make sure
renderPass is available for the life of the pipeline.
/external/vulkan-validation-layers/layers/core_validation.cpp
7209a72b558b1defb8dcddb2dbe7646d323c01a3 15-Sep-2017 Chris Forbes <chrisforbes@google.com> layers: use VU for index buffer alignment check
/external/vulkan-validation-layers/layers/core_validation.cpp
7a31ef700e664f26961301bc5accadef33d86974 15-Sep-2017 Chris Forbes <chrisforbes@google.com> layers: Implement VU check for BUFFER_USAGE_VERTEX_BUFFER_BIT
/external/vulkan-validation-layers/layers/core_validation.cpp
c30d253d86241c51fbd96d13f1590db5d9424894 14-Sep-2017 Chris Forbes <chrisforbes@google.com> layers: Implement VU check for BUFFER_USAGE_INDEX_BUFFER_BIT
/external/vulkan-validation-layers/layers/core_validation.cpp
ba5c6a323ec36554ae603b71bb86683890322925 13-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Kill push descriptor perf warning
/external/vulkan-validation-layers/layers/core_validation.cpp
e959c76d9d1825a781896df22e891cfb52e2b9c2 13-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Use existing ds layout to create push desc

Just look up descriptor set layout for given set from pipeline layout
state when creating a push descriptor.
No need to re-create the layout on the fly.
/external/vulkan-validation-layers/layers/core_validation.cpp
61ad54359b083bdf09e7f27bd9e355ff50c6ceae 10-Sep-2017 Józef Kucia <joseph.kucia@gmail.com> layers: Use layout flags to test for push descriptor sets
/external/vulkan-validation-layers/layers/core_validation.cpp
a41cbbb989ce1ec936d2cac02421e7a67adaf251 10-Sep-2017 Józef Kucia <joseph.kucia@gmail.com> layers: Fix memory leak in PreCallRecordCmdPushDescriptorSetKHR()
/external/vulkan-validation-layers/layers/core_validation.cpp
3800dc6928d2f26ad0da2a3b5796ee1042f70ec0 12-Sep-2017 Mark Lobodzinski <mark@lunarg.com> Revert "layers: Fix Graphics Pipeline pointers not ignored"

This caused segfaults on Intel Skylake, NexusPlayer, and
Samsung Galaxy S8 (Mali).

This reverts commit 367d276ffe5c0748ff9d8e2b3551d4a00c9fc3c2.
/external/vulkan-validation-layers/layers/core_validation.cpp
367d276ffe5c0748ff9d8e2b3551d4a00c9fc3c2 10-Sep-2017 Petr Kraus <petr_kraus@email.cz> layers: Fix Graphics Pipeline pointers not ignored

Some VkGraphicsPipelineCreateInfo pointers must be ignored under some
conditions, but were not in the layers.

Add relevant tests.

Fix tests found broken (using depth or color without attachment in
subpass)

Change-Id: I3e2a3f61a52c72ce3a11483ff8b031189f4c61c9
/external/vulkan-validation-layers/layers/core_validation.cpp
497e33d6b0547f5dccca245a5b6777831fbb0de0 06-Sep-2017 Maciej Jesionowski <maciej.jesionowski@amd.com> layers: Add support for VK_AMD_mixed_attachment_samples

Change-Id: I2ee0ab4c2ba7510316f190689fd3d81db27cb04f
/external/vulkan-validation-layers/layers/core_validation.cpp
e6852f66a1f1eb57097dbf98b8218104849fda0f 07-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Clean up shared_ptr use

Use make_shared to construct RENDER_PASS_STATE shared_ptr at
CreateRenderPass() time, return the shared_ptr by value from helper
function and accecpt rvalue ref in FRAMEBUFFER_STATE constructor.
/external/vulkan-validation-layers/layers/core_validation.cpp
ba9be0cec36d930fc0d5a0cbfbc00b0df49b08e4 07-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Fix render pass lifetime hole

A framebuffer can outlive the renderpass that it's created with so
update FRAMEBUFFER_STATE object to have a shared_ptr to render pass
state.
/external/vulkan-validation-layers/layers/core_validation.cpp
11926a9087773a853b9b2cefbe80c17347cf36ca 07-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Remove is_multi from render pass check

The is_multi bool is no longer needed in the render pass compatibility
check.
/external/vulkan-validation-layers/layers/core_validation.cpp
75fc6d72e2c95db4c9eb003d442340b73cca2198 07-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Don't access render pass map directly

Use GetRenderPassState() helper function to create FRAMEBUFFER_STATE
object.
/external/vulkan-validation-layers/layers/core_validation.cpp
b4ab35582a070b18e22c0bd6cb8811c455f5b7ff 06-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Consolidate render pass compatibility

Remove duplicate render pass compatibility function and consolidate to
single function. Add error VUIDs for various draw-time errors related
to incompatible render passes and mis-matched subpass.
/external/vulkan-validation-layers/layers/core_validation.cpp
eacc703e5d08f497f9191991669e99d7330d5c3a 06-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Migrate render pass compatibility check

Update render pass compatibility check at BeginCommandBuffer time to
use the refactored common function. Phasing out the other compatibility
function.
/external/vulkan-validation-layers/layers/core_validation.cpp
9d5a67a009fe27e9b5404ec035ab84ed34332e5e 06-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Check renderPass/framebuffer compatibility

Add check for VUID VALIDATION_ERROR_12000710. This is a check at
CmdBeginRenderPass time to make sure that the render pass being begun
is compatible with the render pass that the referenced framebuffer was
created with.
/external/vulkan-validation-layers/layers/core_validation.cpp
94983abdca3266bfd87e708f31fda2b56b1b547d 06-Sep-2017 Tobin Ehlis <tobine@google.com> layers:Generalize validateRenderPassCompatibility

We have 2 separate function for checking render pass compatibility that
are nearly identical. This change is refactoring one of the functions
to make it more general-purpose so that it can be used for all of the
render pass compatibility checks. This includes passing through the
caller, a VUID, and some strings for the types of objects that are
having their render passes compared.

Added some temp comments on VUIDs that will be added for various render
pass compatibility checks.
Update framebuffer state struct to store render pass state ptr instead
of just the render pass create info.
/external/vulkan-validation-layers/layers/core_validation.cpp
8938f7b0339a360aad99d6d33c7601465685dd64 02-Sep-2017 Chris Forbes <chrisforbes@google.com> layers: Fix leaking backing sets for push descriptors

We'd previously leak any temporary descriptor set left bound to the
pipeline at the end of the command buffer. Rearrange things so we can
use unique_ptr and assure it's always cleaned up correctly.
/external/vulkan-validation-layers/layers/core_validation.cpp
cd8325cca4771d8978161e37e6fb8af45b58f439 01-Sep-2017 Chris Forbes <chrisforbes@google.com> layers: Remove remnants of old perf warning for disturbing sets

Half of this was removed, but the surrounding plumbing was left in
place. If we want to quietly add some 'was disturbed' bits so we can
produce a better error at a later draw, that should go on the
record-side of this validation, not here.

Removes the other case that the previous change missed, along with the
vestigial bits of the previous check.

Remove subtest and surrounding scaffolding that tested this
/external/vulkan-validation-layers/layers/core_validation.cpp
2d4a3c28bf95f00fa2aac7d07288f6faf22208ab 21-Aug-2017 Mark Lobodzinski <mark@lunarg.com> layers: Account for push descriptor sets in CV

Change-Id: I1095edce0f26e2a4ced6fa301143622dc5cd0afd
/external/vulkan-validation-layers/layers/core_validation.cpp
76ff99fdcc54e35ab1f3c34c3b093ccecb99e4db 17-Aug-2017 Mark Lobodzinski <mark@lunarg.com> layers: Match state record pattern for VOID APIs

Also straightened out the locking/unlocking for PushDescriptorSets.

Change-Id: Ic72bc693d16e7fa85df117d29abc1adc5a29ada6
/external/vulkan-validation-layers/layers/core_validation.cpp
43cc253608e6daccdfa8cb795a98cfea91ef1582 16-Aug-2017 Mark Lobodzinski <mark@lunarg.com> layers: Update desc binding state for PushDescSets

Using PushDescriptorSets in a pipeline with normal Allocated descriptor
sets resulted in incorrect descriptor binding validation errors.
PushDescriptors are now run through the descriptor binding
state-update functions.

Change-Id: Ib702949af6de0b8638401c7eeb841c2590998e82
/external/vulkan-validation-layers/layers/core_validation.cpp
43839a7f8cf2180734f7b8ed3514eda94a63107a 16-Aug-2017 Mark Lobodzinski <mark@lunarg.com> layers: Intercept PushDescriptorSets in CV

Change-Id: Ifabf7058b4ded33ab191a0043d9ef390b4c8cb06
/external/vulkan-validation-layers/layers/core_validation.cpp
ab727dc4a628d86d341d3cb9b915e8f82d2d8550 16-Aug-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdBindDescSets for pre/post

Validation and state updates are now somewhat less tangled.

Change-Id: Ia666215a73ce02d2fbc326fb5b37b3361d83bbe3
/external/vulkan-validation-layers/layers/core_validation.cpp
63cddeb5593a0ead9ecd5f74d05f506b37d7ac66 25-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: use unique_ptr for pipeline map
/external/vulkan-validation-layers/layers/core_validation.cpp
a5a8938a3bf12170a97d3afd1dfca62dad9e2a6b 25-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Fix crash in CreateGraphicsPipelines reading from moved-from ptr
/external/vulkan-validation-layers/layers/core_validation.cpp
e708f7e5c363576bfab5b39135d629ab2ce37167 25-Aug-2017 Chris Forbes <chrisforbes@google.com> Revert "Revert "layers: unique_ptr for temp compute pipelines""

This reverts commit 615dc4e3ea0495bc28130377b9e637e9979a560e.
/external/vulkan-validation-layers/layers/core_validation.cpp
3d67a6d0f5c42da03d838178741ef10928cd6397 25-Aug-2017 Chris Forbes <chrisforbes@google.com> Revert "Revert "layers: Introduce some unique_ptr into pipeline creation""

This reverts commit 5d6aaa553b634747fb2761c6e5b665bdae54d206.
/external/vulkan-validation-layers/layers/core_validation.cpp
5d6aaa553b634747fb2761c6e5b665bdae54d206 25-Aug-2017 Chris Forbes <chrisforbes@google.com> Revert "layers: Introduce some unique_ptr into pipeline creation"

This reverts commit 7d35703bdc03d94cad272b5ea3ede8d586f57e88.
/external/vulkan-validation-layers/layers/core_validation.cpp
615dc4e3ea0495bc28130377b9e637e9979a560e 25-Aug-2017 Chris Forbes <chrisforbes@google.com> Revert "layers: unique_ptr for temp compute pipelines"

This reverts commit cfc1ed15584a12ef62e113c8daf673c6a68ce29c.
/external/vulkan-validation-layers/layers/core_validation.cpp
cfc1ed15584a12ef62e113c8daf673c6a68ce29c 25-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: unique_ptr for temp compute pipelines
/external/vulkan-validation-layers/layers/core_validation.cpp
7d35703bdc03d94cad272b5ea3ede8d586f57e88 25-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Introduce some unique_ptr into pipeline creation
/external/vulkan-validation-layers/layers/core_validation.cpp
8440cb73472f3c4c860c19dff8c5ca47750b33ad 22-Aug-2017 Tobin Ehlis <tobine@google.com> layers:Remove disturbed descriptor perf warning

Fixes #2020

Support from devs to remove this perf warning so just killing it.
Added a comment for future work where we can track which descriptors
are disturbed and reference that if a user attempts to use a
disturbed descriptor that isn't bound.

Also commented out associated test and filed #2022 to track enhancement
making note of disturbed descriptors if used unbound.
/external/vulkan-validation-layers/layers/core_validation.cpp
57f0da98098689f3624c5503cfe1a4b5fede885a 16-Aug-2017 Jeremy Kniager <jeremyk@lunarg.com> layers: Fix memory leaks in functions

Change-Id: I8e25adabefde3a04be5536ce4c5c2d5920a76140
/external/vulkan-validation-layers/layers/core_validation.cpp
530cdb75eb81ef67b2093cea3c62737facfe91de 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Wire up static_status check for CmdSetScissor
/external/vulkan-validation-layers/layers/core_validation.cpp
76de58efdab4e3fb8911019e533bf80393bc5682 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Wire up static_status check for CmdSetViewport
/external/vulkan-validation-layers/layers/core_validation.cpp
e1ed086a1354a8690cc79bece2816d746ded95f8 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Drop error for binding compute pipeline inside renderpass

It's perfectly valid to bind the compute pipeline inside a renderpass.
An application only may not /dispatch/ compute work inside a
renderpass.
/external/vulkan-validation-layers/layers/core_validation.cpp
9563e5dea7a06a2b937f917e0983f6cce3759681 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Drop out some redundant checks already covered by OT
/external/vulkan-validation-layers/layers/core_validation.cpp
3c81367b48899b9b1dbdf9813b8aa99f16ccb823 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Calculate viewport/scissor state bits correctly
/external/vulkan-validation-layers/layers/core_validation.cpp
1fdcd3bc7fbd85f567a8270f6b7354c6f7b67661 16-Aug-2017 Alex Smith <asmith@feralinteractive.com> layers: Fix img layout state in CmdExecuteCommands

Previously the layout state in the primary command buffer was just
overwritten with the state in the secondary command buffer.

This can lead to spurious errors upon submission of the primary CB, if
an image used in the secondary CB is used prior to CmdExecuteCommands
in the primary CB with a different initial layout. This is because the
initialLayout field for the image on the primary CB is overwritten
with that of the secondary CB.

An example case that was incorrectly erroring (these commands refer to
the same image, newly created):

(primary buffer)
vkCmdPipelineBarrier, transition UNDEFINED -> TRANSFER_DST_OPTIMAL
vkCmdExecuteCommands
(secondary buffer)
...
vkCmdCopyBufferToImage, layout TRANSFER_DST_OPTIMAL

Just before the CmdExecuteCommands, the image had initialLayout =
UNDEFINED and layout = TRANSFER_DST_OPTIMAL on the primary CB, and
initialLayout = layout = TRANSFER_DST_OPTIMAL on the secondary.

After CmdExecuteCommands, the primary CB state is overwritten, so
it has initialLayout = layout = TRANSFER_DST_OPTIMAL. At submission,
this then errors because the global image layout is UNDEFINED.

Fix by only setting initialLayout on the primary CB from the secondary
if the image hasn't already been used on the primary.

Change-Id: Iae248ed09b1f87598fd192ba3d6f0bcf7ad38ada
/external/vulkan-validation-layers/layers/core_validation.cpp
75c6d3c8ccf58c2b4bb5eb14e8e6763b254bdc17 16-Aug-2017 Alex Smith <asmith@feralinteractive.com> layers: Copy queue submit fcns in CmdExecuteCommands

When a secondary command buffer is executed, copy all functions in its
queue_submit_functions list to the primary command buffer.

This is needed e.g. to ensure that functions registered to validate and
update memory validity state for a command in the secondary CB get run
upon submission of the primary CB.

Fixes spurious memory invalid warnings on later commands after an
image's memory has been initially made valid inside a secondary CB.

Change-Id: I39d5a34f074942d5dedbf4c5a0295af957a92361
/external/vulkan-validation-layers/layers/core_validation.cpp
2843b4615e7c0fa78b6a5f1656f53fef5e89c607 16-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Check cb::static_status for most dynamic state setters
/external/vulkan-validation-layers/layers/core_validation.cpp
14494d322787d939bf6a9d3a03fc3938009592e0 15-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Track static state bits separately

This gives us two advantages:
- We no longer need to recalculate the state bits to remove for the old
pipeline when binding a new pipeline.
- We now have the set of bits to test against when trying to bind
dynamic state for #614
/external/vulkan-validation-layers/layers/core_validation.cpp
374de4579f98cbbe8b616acb8e07a1a9c30402f8 15-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Invalidate old pipeline's static state when binding

Previously we'd only ever or in new bits, causing us to miss cases where
some state changes from static to dynamic within a CB.

Also only fiddle with the state masks when binding a graphics pipeline
-- previously we'd miss some other cases because binding a compute
pipeline would set all the state bits.
/external/vulkan-validation-layers/layers/core_validation.cpp
e2f07119052936753dc3dde7f86d4c46cfd0f1c5 15-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: inline set_cb_pso_status into sole caller
/external/vulkan-validation-layers/layers/core_validation.cpp
dd004f4889b468d675579c61aaf97136d882e1bc 15-Aug-2017 Chris Forbes <chrisforbes@google.com> Split out dynamicstate->flags conversion
/external/vulkan-validation-layers/layers/core_validation.cpp
e25e057866af155bd456003120aa6155530a0e5f 08-Aug-2017 Petr Kraus <petr_kraus@email.cz> layers: PR1950, Update subresource range VUIDs

With updated test names in database.

Change-Id: Ie6cb2dfa9fa84de2dd0dea645249fe03c6780eba
/external/vulkan-validation-layers/layers/core_validation.cpp
57cd2a36adb056c73dbea3ab898b092123c2a2c1 09-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Untangle side effects in CmdWaitEvents
/external/vulkan-validation-layers/layers/core_validation.cpp
b42b2f0f35df5143dcc982217434cf0d42a45afe 06-Aug-2017 Cort <cdwfs@users.noreply.github.com> layers: Fix swapchain extent check

This fixes a regression introduced -- by me :( -- in commit
583b0c41dfd0876d0481920f2e6d8d87433bc1d7. The swapchain's
imageExtent must always be within the surface's min/max extent,
regardless of the surface's current extent.
/external/vulkan-validation-layers/layers/core_validation.cpp
ecf6f4952415c47ebb64999e1a962c4f688ca0f7 02-Aug-2017 Chris Forbes <chrisforbes@google.com> layers: Don't do bogus transitions in invalidateCommandBuffers

Total nonsense like:

RECORDING -> INVALID_INCOMPLETE -> INVALID_COMPLETE

was possible when there were two invalidations.
/external/vulkan-validation-layers/layers/core_validation.cpp
d807198f24437c1b2478ff1d06a33ce4873a1451 28-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Rename lambda function container

Change name to queue_submit_functions to reflect the fact that validate
functions in this container are executed at QueueSubmit() time.
/external/vulkan-validation-layers/layers/core_validation.cpp
79fc00370d55e7cbfd4052b579120e64b0a1a4be 28-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Pass framebuffer into barrier lambda

Pass framebuffer into image barrier validation lambda so that secondary
CB state doesn't have to be updated in CmdExecuteCommands. Just pass in
framebuffer from primary CB instead.

Update secondary CB lambda container name to reflect the fact that those
functions are executed at CmdExecuteCommands() time.
/external/vulkan-validation-layers/layers/core_validation.cpp
f384f33742c2b72888372332747298d08135ac92 27-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Delay barrier validation for secondary CB

When a secondary command buffer doesn't have a framebuffer, queue up
any renderPass barrier validation until submit time when we know we'll
have a framebuffer bound.

Added a separate vector of validation functions that are added to
secondary command buffer for this case and then executed at
CmdExecuteCommands() time.

Migrated the image validation that needs to be delayed to its own
function. This makes it easy to add to the delayed function array and
capture a copy of the image barrier that needs to be validated.
In CmdExecuteCommands() when validation runs inherit the activeFB
from the primaryCB into the secondary CB.
/external/vulkan-validation-layers/layers/core_validation.cpp
1ce9b1e7d3dfd0841efede007022bdc960917008 24-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Verify dstAccessMask supported by stageMask

This is VALIDATION_ERROR_1b800942.
Verify that barrier drcAccessMask is supported by drcStageMask.
/external/vulkan-validation-layers/layers/core_validation.cpp
d8aeb60bc6809b7ecac32f95db7f89d9c79a0a1c 24-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Verify accessMask supported by stageMask

This is VALIDATION_ERROR_1b800940.
Verify that barrier srcAccessMask is supported by srcStageMask.
/external/vulkan-validation-layers/layers/core_validation.cpp
8f2467c1db3d48bcfd09dd91188dcb0318fa5c43 24-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Verify image barrier queueFamilyIndices

This is VALIDATION_ERROR_1b80093c.

For image barrier in renderPass both src & dst queueFamilyIndex members
must be VK_QUEUE_FAMILY_IGNORED.
/external/vulkan-validation-layers/layers/core_validation.cpp
91c2ca58e9ab21299931a4eadf03baf93118242b 25-Jul-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1924, Improve unavailable feature msg

Modified the unavailable requested feature error message to print the
feature name instead of just an index.

Change-Id: Idcb66921fc592014330dce6946631984d85cd866
/external/vulkan-validation-layers/layers/core_validation.cpp
4cb62e790b73480ea81682b140a23d3717bd42ab 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Refactor image barrier validation

Move image barrier validation within a renderPass into its own function
in order to break up existing code a bit. Add a check to make sure
framebuffer is valid before attempting to use FB state.
/external/vulkan-validation-layers/layers/core_validation.cpp
3ae38f510f30a94c882ecceec424d528b169a003 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Minor refactor for clarity

Add comment and move VkSubpassDescription local variable assignment to
clarify what's going on.
/external/vulkan-validation-layers/layers/core_validation.cpp
a287b10c55baa7d2d2ac891eb729666f988766ea 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Refactor barrier check order

Do the renderPass barrier check first and early return to avoid
potential redundant errors from remaining layout and barrier checks.
/external/vulkan-validation-layers/layers/core_validation.cpp
2c6df996f707fb5042cdda9e07f8912dda261758 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Check image barrier layout vs attachment

This is VALIDATION_ERROR_1b800938.
Make sure that the attachment references by current subpass description
has a layout that matches image barrier layout.
/external/vulkan-validation-layers/layers/core_validation.cpp
f404e604e92c15847a770c302d74e11b63cd729b 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Check barrier image vs subpass attachments

This is the second half of VALIDATION_ERROR_1b800936, for which the
first half was already implemented. Make sure that VkSubpassDescription
for current subpass references the attachment that has an image
matching the image barrier.
/external/vulkan-validation-layers/layers/core_validation.cpp
c3c80519b75f9021b7e25b85583e138dca496312 21-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Only deref active subpass once

Grab active subpass once initially to avoid repeated defers of cb_state
/external/vulkan-validation-layers/layers/core_validation.cpp
6cbf5a36a5b4f8389ff451f5d9f290dc05f07d5e 20-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Migrate image barrier check

This check is only relevant within a renderPass so move it to the
function specifically dedicated for in-renderPass barrier checks.
/external/vulkan-validation-layers/layers/core_validation.cpp
ef1a5d12ca9cba385da5c4eead9980e9d6bbb1ca 20-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Add image barrier image check

This is VALIDATION_ERROR_1b800930.
Make sure that image in VkImageBarrier matches one of the images in the
current framebuffer.
/external/vulkan-validation-layers/layers/core_validation.cpp
6dd9a6bc380bc606441fb036974f0ddadff4d0c8 19-Jul-2017 Mark Lobodzinski <mark@lunarg.com> layers: Update API for vulkan parameter def change

One of the DebugMarkerSetObjectName parameters changes to const.

Change-Id: I23455957b83a84983bc7217a2a0d937ae03055e2
/external/vulkan-validation-layers/layers/core_validation.cpp
0c9526fb9fbc2d95ebda8902e1de9d9007ba4e9e 20-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Update descriptor state earlier

This change arises from an issue reported by Alon at Samsung. He
reports that a driver bug is modifying the descriptor set state on
UpdateDescriptorSets() call, so the data is getting corrupted in
validation. Since UpdateDescriptorSets() is a void function, it
doesn't make a difference in validation if we update state before or
after the call, since the call itself won't change the state being
updated. It actually saves us a lock call to update pre-call.
/external/vulkan-validation-layers/layers/core_validation.cpp
1240c7d4336cb996831d69d2668e8f702e978d40 19-Jul-2017 Tobin Ehlis <tobine@google.com> tests:Test invalid renderPass bufferMemoryBarrier

Test case where VkBufferMemoryBarrier is incorrectly issued within a
renderPass.

Kill old code that was doing the same check/test w/o the VUID.
/external/vulkan-validation-layers/layers/core_validation.cpp
c65050e9c64722283c2076df0d07a9ce9eafb363 19-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Add image mem barrier access mask checks

Complete remaining work for VALIDATION_ERROR_1b80092e and
VALIDATION_ERROR_1b800930. Make sure the image memory barriers src/dst
access masks are a subset of corresponding subpass self-dependency
access masks.
/external/vulkan-validation-layers/layers/core_validation.cpp
1e9736d932fb266dcfcf8b26c89ce7121589c8b7 19-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Validate bufferMemoryBarrierCount

This is VU VALIDATION_ERROR_1b800934.
For a barrier in renderPass, bufferMemoryBarrierCount must be zero.
/external/vulkan-validation-layers/layers/core_validation.cpp
c1c43cc01e333f3762c65ce4ad926c33235583d2 19-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Validate barrier dependencyFlags

This is VUID VALIDATION_ERROR_1b800932. Verify that an barrier in a
renderPass has a dependencyFlags value that matches the corresponding
subpass self-depenency dependencyFlags value.
/external/vulkan-validation-layers/layers/core_validation.cpp
a54aea2a72be3bd84371773cc79a678816615587 18-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Handle ALL_*_BIT pipe stage barrier validation

Update barrier validation to handle VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
and VK_PIPELINE_STAGE_ALL_COMMANDS_BIT cases in the subpass dependency.
Expand GFX bit as it's an alias for a fixed set of bits. If
ALL_COMMANDS is specified then skip validation because we know that
barrier mask must be a subset of subpass mask.
/external/vulkan-validation-layers/layers/core_validation.cpp
3025e72bc2b727622969d036966f50057392551a 17-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Add barrer access mask checks

Verify that src/dstAccessMask from pMemoryBarriers is a subset of the
corresponding mask from the relevant VkSubpassDependency instance.
/external/vulkan-validation-layers/layers/core_validation.cpp
638b295fdb8d81446e8cb92835eacbda921658b5 17-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Fix copy-paste dstStageMask print bug

Fix this copy-and-pasted error message by changing src->dst.
/external/vulkan-validation-layers/layers/core_validation.cpp
e2d4ce3059fa77badeea63fa2003b83a04ca9c98 17-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Refactor barrier validation

Migrate validation for renderpass barrier in CmdPipelineBarrier to its
own function. Refactor some device and command buffer params to avoid
duplicate look-ups. Add some const decls to command buffer state that
shouldn't change down the pre-call path.
/external/vulkan-validation-layers/layers/core_validation.cpp
ea0a13226a513846fe5a7009783c5536b1255a56 14-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Add checks for barrier stage masks

Verify that the src & dst stage masks for a subpass barrier are a
subset of the subpass dependency's src & dst masks respectively.

Add RenderPassBarrierConflicts test to hit these cases. This test hits
the two cases of an image barrier src/dst masks not being a subset of
their corresponding subpass dependency masks.

Update database file to reflect that these checks are implemented and
that this test covers them.
/external/vulkan-validation-layers/layers/core_validation.cpp
4fcab4830afb634a3e2e362276fcada1dcdce7a9 13-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Add subpass barrier self-dependency VUID

This is VALIDATION_ERROR_1b800928. Add the ID and slightly touch up the
error language. Also, this check should be general for any barrier
that's inserted for a renderPass so remove extra memBarrierCount
condition.
/external/vulkan-validation-layers/layers/core_validation.cpp
e08cf6348d38dc73e984f4ef9bc483f0aabb1914 11-Jul-2017 Tobin Ehlis <tobine@google.com> layers:Refactor CmdUpdateBuffer to Pre/Post

Refactoring CmdUpdateBuffer function to use the Pre/Post call pattern.
Updated the pre-path so that command buffer state pointer is const
throughout. Pulled the state update code into the post function.

Note that this slightly deviates from the previous pattern by doing
object state look-up in top-level function instead of passing a ptr to
a ptr to Pre* function and having it do the object state look-up.
I prefer this method as it allows const* throughout the Pre* call chain
and avoids the ptr derefs in Pre* function. I'm open to discussion if
others prefer the alternate method however.
/external/vulkan-validation-layers/layers/core_validation.cpp
72e884363c9cccb1b1e3e50b200fea44d77d51b9 09-Jul-2017 Gabríel Arthúr Pétursson <gabriel@system.is> layers: Remove spammy debug output in vkCmdBindDescriptorSets
/external/vulkan-validation-layers/layers/core_validation.cpp
1f53907e108555555ac7cc8e0daf639279ca67d4 20-Jun-2017 Tony Barbour <tony@LunarG.com> layers: Add names to objects and print in validation

Change-Id: Ie6587c26c8528ffac5698b8cb3ca2c4cc86b1dfd

layers: Fill out the rest of debug marker calls

Change-Id: I0c4085e36e5c06e11c0c09d1ca126ae6db35526d
/external/vulkan-validation-layers/layers/core_validation.cpp
c25ac48846c975d698243e53750c6bca28bba33e 27-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Don't copy all the image subresources every submit

The set of subresources touched by this submission is likely to be very
small compared to the complete set we're tracking. It doesn't make any
sense to copy this entire hashtable in each submit call.

Instead, maintain an overlay table with the submission's modifications
in it.

Saves approx 12s in an internal workload.
/external/vulkan-validation-layers/layers/core_validation.cpp
ae7cdbc74057799801bb1d9a8203e38f75429a25 26-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Declare aliases for std::mutex and its RAII wrappers

I want to be able to swap out std::mutex for something the VS
concurrency profiler can see, so let's get all the mentions of it to one
place.
/external/vulkan-validation-layers/layers/core_validation.cpp
c3e70f769bd4aa0988652050444d57cab4925c16 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Do the bulk of pipeline validation unlocked
/external/vulkan-validation-layers/layers/core_validation.cpp
2f521eee4ccb1c84512ea767880df8f38751c0d4 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Rename verifyPipelineCreateState to match new role
/external/vulkan-validation-layers/layers/core_validation.cpp
4260fe87d0d168d6f4e7d65a648be05ebe1dedb3 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Inline pre-validate into CreateGraphicsPipelines

All this did was loop over the pipelines and call a function.
/external/vulkan-validation-layers/layers/core_validation.cpp
740a9cdda3aa9cc7a4124184bd58146e6e99d772 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Move vertex format validation down a level
/external/vulkan-validation-layers/layers/core_validation.cpp
2a52dc044cb4ce467b6902e16a69bd71e125a396 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Remove pointless instance lookup in pipeline creation
/external/vulkan-validation-layers/layers/core_validation.cpp
b50c8b02e8cb997124bc20af1a38a22c357b7134 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: pass pipe_state vector by const ref
/external/vulkan-validation-layers/layers/core_validation.cpp
29243a95b358b0d96ab15064fb3f9b0c0f64b8e9 21-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Unlock CreateGraphicsPipelines a bit earlier
/external/vulkan-validation-layers/layers/core_validation.cpp
3f75ec6fa8700769a790d84e07c270579ded5468 21-Jun-2017 Tobin Ehlis <tobine@google.com> layers:Make DSLayout const in shared_ptrs

Declare DescriptorSetLayout's const for shared_ptrs in Pipeline layout
and DSAllocate structs.
/external/vulkan-validation-layers/layers/core_validation.cpp
88224335ef7965e89477c393331ef5fa628a9335 21-Jun-2017 Tobin Ehlis <tobine@google.com> layers:IsCompatible uses raw DSLayout ptr

Update IsCompatible calls for DescriptorSetLayout class to use raw ptrs
instead of shared_ptr as the calls just temporarily use the ptr and
don't affect ptr ownership.
/external/vulkan-validation-layers/layers/core_validation.cpp
7e180d382f501c7c04408bda1f5fe79317736a4f 21-Jun-2017 Tobin Ehlis <tobine@google.com> layers:Use make_shared for share_ptr creation

std::make_shared is more efficient for shared_ptr creation, using a
single heap allocation for both the object and control logic, vs. two
separate allocations of using "new" w/ shared_ptr constructor.
/external/vulkan-validation-layers/layers/core_validation.cpp
d34b2c191243c1646f1ccc2378262383e9ec1348 20-Jun-2017 Tobin Ehlis <tobine@google.com> layers:Migrate DSLayout to shared_ptr

Update Descriptor Set Layout copy in Descriptor Set, as well as various
ptr references to use shared_ptr.
This fixes some potential memory leaks and makes Descriptor Set class
lighter weight.
/external/vulkan-validation-layers/layers/core_validation.cpp
5a442fcc68e5cd9a974bde628fd4f575559d3ff0 20-Jun-2017 Tobin Ehlis <tobine@google.com> layers:Used shared_ptr for DSLayout

Modify DescriptorSetLayout map to use shared_ptr. Will follow-on with
changes to Descriptor Set class that share the ptrs.
/external/vulkan-validation-layers/layers/core_validation.cpp
b493a5b638a499397a3f1c69c5be81607c38437b 20-Jun-2017 Chris Forbes <chrisforbes@google.com> don't copy vector of pipelines everywhere
/external/vulkan-validation-layers/layers/core_validation.cpp
146a87545e7b707b1dbddbd9cb8b41869ad402cc 20-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Avoid renderpass lookup in verifyPipelineCreateState
/external/vulkan-validation-layers/layers/core_validation.cpp
fa30cd33537b2773dae129822b4e7c654a027929 20-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Move pipeline renderpass/subpass validation earlier
/external/vulkan-validation-layers/layers/core_validation.cpp
6b33c4e6a6f232fca84e0a6229106717b0012488 17-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Further removal of CMD_TYPE plumbing
/external/vulkan-validation-layers/layers/core_validation.cpp
0619dc1df076bfedcf0c999ceca3bdecd5ea5171 17-Jun-2017 Chris Forbes <chrisforbes@google.com> Remove dead cmd_type param from PreCallRecordCmdClearImage
/external/vulkan-validation-layers/layers/core_validation.cpp
735aa146fca7cb7bf4ca40a9c4dce1d813f24928 17-Jun-2017 Chris Forbes <chrisforbes@google.com> Remove last cmd machinery

This isn't useful now.
/external/vulkan-validation-layers/layers/core_validation.cpp
46daa701a01b92ae19e3ee9e661d677128fe7e6d 17-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Split CB_INVALID state

There are really two states here:
- Had a complete recording that was valid at some point, but not now.
- Fouled during recording
/external/vulkan-validation-layers/layers/core_validation.cpp
7974f09e53c82a1d5ae164be83c0b88a92ab8ee5 17-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Move validate_functions clear into resetCB
/external/vulkan-validation-layers/layers/core_validation.cpp
827e8708bfc431aa792cba005ebf9f1fe35cc7e3 13-Jun-2017 Mark Lobodzinski <mark@lunarg.com> layers: Use copies of layout data for descriptorsets

DescriptrSets used pointers to descriptorsetlayout data, which caused
invalid references if the layouts were deleted before the descriptor
sets. Changed the layer to copy the data.

Change-Id: I671f1efed2aa0986f3a370b51f2f96c07b555af7
/external/vulkan-validation-layers/layers/core_validation.cpp
7c9b2aea1e047762ea9cff97ddd1fd33b5efc71d 13-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Use correct tracking for display planes query
/external/vulkan-validation-layers/layers/core_validation.cpp
4d285deca53ab503c0c9eb65ba1c4fb711138d7c 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Untangle validate & update in CmdCopyQueryPoolResults
/external/vulkan-validation-layers/layers/core_validation.cpp
6eff586acc3c02decfb0c3af269693252efc8ef8 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Split validate & update of CmdWriteTimestamp
/external/vulkan-validation-layers/layers/core_validation.cpp
e17228238940d38a82570bc5b0ed4dd44e4cbd6d 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Split validate & update of CmdEndQuery
/external/vulkan-validation-layers/layers/core_validation.cpp
43ec3f090ca979777b306abe7c25662b9429e06d 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Untangle validate & update of CmdBeginQuery
/external/vulkan-validation-layers/layers/core_validation.cpp
f49bd2b5f4c968a3033b3e5099bbbcff51201575 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Convert all the std::bind to lambdas
/external/vulkan-validation-layers/layers/core_validation.cpp
7ffbe89a37f5f822858a35646be0213fd2cd2b08 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Untangle validateQuery some
/external/vulkan-validation-layers/layers/core_validation.cpp
2e487f902921a36496fdb4c35279cdd281ca02b0 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Fix parameter order for validateQuery

This was reversed from every case of these two parameters in the API,
which was confusing.
/external/vulkan-validation-layers/layers/core_validation.cpp
3a4c679ed508b10fd119bb97c127c79b5d126d74 12-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Untangle validate from side effects in CmdResetQueryPool
/external/vulkan-validation-layers/layers/core_validation.cpp
991f2555bc4f571e30b584937c7959805dff67c6 10-Jun-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move remaining Swapchain checks into CV

Also refactored modified routines for pre/post call structure.

Change-Id: I192e11c1d04effa8d2f3478c1341f6eedea7138a
/external/vulkan-validation-layers/layers/core_validation.cpp
7aec8a354c8de254cab09f6da7f24a794525d31e 09-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Move validation of CreateShaderModule

Now we have no spirv details left in core_validation.cpp
/external/vulkan-validation-layers/layers/core_validation.cpp
d7aee1a79b51b1a46cb4f3b0667c24f9416fdd64 09-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Move shader validation plumbing out into own file
/external/vulkan-validation-layers/layers/core_validation.cpp
dab32891b91206a5bef7a3929b781e44fc1b7268 26-May-2017 Petr Kraus <petr_kraus@email.cz> layers: Update subrange checks+tests to new VUIDs

i.e. disambiguate extension VUIDs from similar VUID in core
/external/vulkan-validation-layers/layers/core_validation.cpp
ee7e96d032744c1db89cab21362ac8ecad6eec5a 04-Jun-2017 Gabríel Arthúr Pétursson <gabriel@system.is> layers: Fix leak of descriptor pool states
/external/vulkan-validation-layers/layers/core_validation.cpp
c8bee427d7a8ed0ccec899fbf47134d582dcafbd 04-Jun-2017 Gabríel Arthúr Pétursson <gabriel@system.is> layers: Use unique_ptr for descriptor set layout map

This fixes a leak where PostCallRecordDestroyDescriptorSetLayout erases
from the map without calling delete on the erased element.
/external/vulkan-validation-layers/layers/core_validation.cpp
0a136bc9fe42c042857c90a421d0426bd0c029ef 04-Jun-2017 Gabríel Arthúr Pétursson <gabriel@system.is> layers: Free pipeline state memory in vkDestroyPipeline

Pipeline states are allocated in vkCreateGraphicsPipelines and
vkCreateComputePipelines.
/external/vulkan-validation-layers/layers/core_validation.cpp
d27b109eaf4da0a5514dc2ae2f3dd6a76976ba0d 04-Jun-2017 Gabríel Arthúr Pétursson <gabriel@system.is> layers: Free per-device and -instance data on destroy

Instance and device data are allocated by the first call to
GetLayerDataPtr in the corresponding vkCreate call. We need to delete
them when we're done with them. Introduce a FreeLayerDataPtr helper
function that assists with this task.

Deletes for dispatch tables were missing in a few places too. Add them.
/external/vulkan-validation-layers/layers/core_validation.cpp
70e7dbe659759c523c1e6e5db4a5f5dffc5eb96d 06-Jun-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove dead functions from core_validation

Change-Id: Ifb2d79136bba86bb6655f400a2e46cf23e81dfe3
/external/vulkan-validation-layers/layers/core_validation.cpp
3616276bb0053c612c0a8d223e81ae3808b1b2c4 24-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: Clean up core_validation GPA def & handling

Got rid of artificially separations in calling GetProcAddr, remove
ext enable-checking at GPA-time -- this happens in CV.

Change-Id: I89815c86d7f9187537efd3568edd11a9ffffa44f
/external/vulkan-validation-layers/layers/core_validation.cpp
a149f1a0cb39b48b19822c8cf9ef2426cd2251df 06-Jun-2017 Mark Lobodzinski <mark@lunarg.com> layers: Renamed extensions struct for devices in CV

Struct contains instance and device extensions, changed name to cover
both.

Change-Id: I34d315b02b426673acb4fc069d8a6a4112f12178
/external/vulkan-validation-layers/layers/core_validation.cpp
d4eaca34eca7f4b4e34190c441a579347bb2016a 01-Jun-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CV to use new extension helper

Change-Id: Idb18d0f358fd359c1c5862fba394c833e2fa13f1
/external/vulkan-validation-layers/layers/core_validation.cpp
ee52d734440f0770b3ac5ebde5a137d2e40589de 03-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Fix bad behavior in repeated calls to CV GetSwapchainImagesKHR
/external/vulkan-validation-layers/layers/core_validation.cpp
f7844aada44d5bc3f23a9ef7d35e486187446c5a 02-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Remove MT_FB_ATTACHMENT_INFO::mem

Nothing used this.
/external/vulkan-validation-layers/layers/core_validation.cpp
410197e64751d6a03d86b19c41b6d19b52662475 01-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: Remove dead device queue tracking from swapchain
/external/vulkan-validation-layers/layers/core_validation.cpp
7360e537fcbb0bd12c03e74c032702bd616e2187 01-Jun-2017 Chris Forbes <chrisforbes@google.com> layers: remove useless check from GetSwapchainImagesKHR

This is a relic from a /very/ old version of the WSI extensions, and
appears to be checking driver correctness more than app correctness.
/external/vulkan-validation-layers/layers/core_validation.cpp
59ae0ccadec962d9ca2cce7584fad6c57c1a4458 25-May-2017 Tobin Ehlis <tobine@google.com> layers:Pipe in disable for shader validation

Allow VK_VALIDATION_CHECK_SHADERS_EXT enum to disable the spirv-tools-
based shader validation in core_validation.

There were a few other pieces of internal shader validation and
tracking that were tied to the shader_validation bit but I re-enabled
those bits for now as we lose the active descriptor binding tracking if
those features are disabled. That would lead to a various other
features that need to be disabled to avoid crashes. Specifically the
connection between command buffers and active samplers, buffer, images
that are present in descriptor sets.

To test this I ran layer_validation_tests with the shaders disabled
and most tests work fine with only the ones testing internal shader
validation pieces failing as expected.
/external/vulkan-validation-layers/layers/core_validation.cpp
315b15c3d74eb1df11b992c2b9922cf98e939eb8 24-May-2017 Tobin Ehlis <tobine@google.com> layers:Migrate to new validation error IDs

Migrate valid usage IDs to new numbers based on the string IDs that are
integrated into the spec build process.

The formula for mapping the string ID to the new VALIDATION_ERROR enum
value is in vuid_mapping.py script.
The mapping between the old IDs and the new IDs is in the file
"old_vuid_to_new_mapping.txt."

The vk_validation_error_database.txt file has the new IDs as well as
the string-based ID for each element and a column indicating if the
valid usage is in the core spec or if it requires extension(s) and is
therefore in the extension spec.

The error messages were shortened and no longer include a section
reference. Now the link goes directly to the line in the spec where
the valid usage text occurs. The base of the spec link is the core spec
unless the VU requires an extension in which case the spec with all
extensions is used as the base.
/external/vulkan-validation-layers/layers/core_validation.cpp
72ac2be687b80ea6c0668682625e27dc3dcc9204 19-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1632, Remove excess pClearValues warning

Consensus was that this warning was not helpful enough to overcome
the noise it caused. Removed the check from CV and the corresponding
test.

Change-Id: I03ad08b0911a810b2333273bf4594129efa5bae5
/external/vulkan-validation-layers/layers/core_validation.cpp
23c5a2092f724fef497a5c87a489f32c8fa51e58 18-May-2017 Petr Kraus <petr_kraus@email.cz> layers: GH1752, Update ImageSubrange checks

- fix #1752
- handle possible overflow of `level`+`count`
- include correct err code in msges
- update and add some tests
/external/vulkan-validation-layers/layers/core_validation.cpp
db365f522319df6446b50584277a3bbfee1c1052 19-May-2017 Chris Forbes <chrisforbes@google.com> layers: Cascade invalidation to primary command buffer(s)
/external/vulkan-validation-layers/layers/core_validation.cpp
9b2582dc67737351a72fbeb82e9e6e8cdff7a026 19-May-2017 Chris Forbes <chrisforbes@google.com> layers: Fix CmdExecuteCommands simultaneous case
/external/vulkan-validation-layers/layers/core_validation.cpp
d00947f5dcd29a4d8aab59e62f72df50444d2537 19-May-2017 Chris Forbes <chrisforbes@google.com> tests: Finalize tests for rerecorded case
/external/vulkan-validation-layers/layers/core_validation.cpp
1a3660584634742a3297915c94768d73f360e794 19-May-2017 Chris Forbes <chrisforbes@google.com> layers: Track linked command buffers in both directions

This is required for us to do proper invalidation.
/external/vulkan-validation-layers/layers/core_validation.cpp
94307efee520ad91d5da2ff8f40609b31f05b2ef 18-May-2017 Chris Forbes <chrisforbes@google.com> tests: Tease apart SimultaneousUse test

Split the two individaul cases up, and write them clearly. Add a
third for the edge case of the one CmdExecuteCommands call including the
same non-simultaneous CB twice.
/external/vulkan-validation-layers/layers/core_validation.cpp
11decd82041d4b10aac41360fc76b6fda4f4bd27 18-May-2017 Chris Forbes <chrisforbes@google.com> Convert primary->secondary command buffer links to GLOBAL_CB_NODE

This allows some simplification down the line
/external/vulkan-validation-layers/layers/core_validation.cpp
a7fef8833e0b4e1e4c7ea20ab56da451a6856c0c 18-May-2017 Chris Forbes <chrisforbes@google.com> layers: Remove globalInFlightCommandBuffers
/external/vulkan-validation-layers/layers/core_validation.cpp
8ed59212a4c5242184324021d65c9f529ac32ea7 18-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: Kill assert for NULL pInheritanceInfo->FB

It is perfectly acceptable for the FB member of this structure
to be NULL. Remove assert.

Change-Id: I22b207bc6d96e1bb4b7c5f71a8dd796da6639642
/external/vulkan-validation-layers/layers/core_validation.cpp
0de5f3bbf5218c9bc92c5bb09c8547bd26adcabc 16-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1756, Fix null pInteritanceInfo deref

Trying to execute an unrecorded secondary command buffer in an
active renderpass resulted in a nullptr dereference. Added null check
along with a warning for unrecorded command buffers.

Change-Id: I67f34da57a9eda422f2321ddc6f28b863c999f5b
/external/vulkan-validation-layers/layers/core_validation.cpp
35b630211642e709485879a2e8859736f0ab16a0 17-May-2017 Mike Schuchardt <mikes@lunarg.com> layers: Record results from ext surface queries

Update core validation to save the results of
vkGetPhysicalDeviceSurfaceCapabilities2KHR,
vkGetPhysicalDeviceSurfaceCapabilities2EXT, and
vkGetPhysicalDeviceSurfaceFormats2KHR so they can be used to validate
swapchain creation.

Change-Id: Iea112df509a35d9bf606b35d4da8d680ae0d76a6
/external/vulkan-validation-layers/layers/core_validation.cpp
480a11822ef9a45f577f13644759c0895a49db19 11-May-2017 Tobin Ehlis <tobine@google.com> layers: Validate shared presentable image cases

Add validation support for shared presentable images as defined in
VK_KHR_shared_presentable_image extension.

For all uses of shared presentable images, make sure that the image is
appropriately in VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout.
For two cases where no layout validation was performed, added a TODO
note (vkCmdBlitImage, vkCmdResolveImage) as basic layout validation
should first be added upstream.
Also locked the layout in the case where a front-buffered image is
presented and then flag an error if an attempt is made to transition
the image layout after that point.

Change-Id: I06cda727e3a7f56ccff4bffd7503b5ff73e8a795
/external/vulkan-validation-layers/layers/core_validation.cpp
9b6bedb9061a3ab94386ee9293da1dd43267a680 14-May-2017 Petr Kraus <petr_kraus@email.cz> layers: Transition all to HandleToUint64

Mostly automatic (i.e. probably missed some cases)
/external/vulkan-validation-layers/layers/core_validation.cpp
26e40465caa698c2213b3910fb3f8bcc7157eacf 11-May-2017 Chris Forbes <chrisforbes@google.com> layers: Remove CV imageToSwapchainMap

This no longer served any purpose, and entries were never cleaned up
when swapchains were destroyed.
/external/vulkan-validation-layers/layers/core_validation.cpp
2044b110851e8f1b75d6d406a0c88612476c63db 11-May-2017 Chris Forbes <chrisforbes@google.com> layers: Remove swapchain image special case from ValidateBarriers

Swapchain images have been added to the images table for a long time.
The checks below were also inconsistent about using the extracted data
or just going to image_data.
/external/vulkan-validation-layers/layers/core_validation.cpp
c4f799ed5502f05ce97543e0500b4a19dc5f2461 17-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix swapchain acquired validation msgs

Running cube --validate generated erroneous validation messages saying
the swapchain images had not been correctly acquired. Fixed bug in the
shared_presentable_images support code.

Change-Id: I1a8adc38902bdf1b517fd4da8e0be55465d55e12
/external/vulkan-validation-layers/layers/core_validation.cpp
6084b78a58b438d27591b81efe30997ac9d88d3c 16-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add basic support for new extension

Add basic validation support for KHR_shared_presentable_image.

Change-Id: If6cc5abe6b41ed8580fc89bcf7c8103af971abc9
/external/vulkan-validation-layers/layers/core_validation.cpp
87a57d8e822316de46ee97f514187331b1f4f09d 11-May-2017 Tobin Ehlis <tobine@google.com> layers: Validate shared presentable image cases

Add validation support for shared presentable images as defined in
VK_KHR_shared_presentable_image extension.

For all uses of shared presentable images, make sure that the image is
appropriately in VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout.
For two cases where no layout validation was performed, added a TODO
note (vkCmdBlitImage, vkCmdResolveImage) as basic layout validation
should first be added upstream.
Also locked the layout in the case where a front-buffered image is
presented and then flag an error if an attempt is made to transition
the image layout after that point.

Change-Id: I06cda727e3a7f56ccff4bffd7503b5ff73e8a795
/external/vulkan-validation-layers/layers/core_validation.cpp
f25d461667ca2db55147d2be49f179945edf24db 11-May-2017 Petr Kraus <petr_kraus@email.cz> layers: GH1720 Migrate swapchain queue checks

fixes #1720
/external/vulkan-validation-layers/layers/core_validation.cpp
5770f8ad21c40b2475201e73e9368a899b6886d0 08-May-2017 Petr Kraus <petr_kraus@email.cz> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
5fe7f75f980a78c0179ff93438d8786e6cb44b20 10-May-2017 Tony Barbour <tony@LunarG.com> layers: Validate pOffsets in vkCmdBindVertexBuffers

Change-Id: Ie618d7657af6eca555050507a623be02af2e21fe
/external/vulkan-validation-layers/layers/core_validation.cpp
8f3c2a27e8e6feeb21d6be3b6f9f8d0606f67457 10-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: LX652, Layout check for pipelinebarrier in RP

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

Change-Id: I2bfbd27a5938615d9274ecea8799451b5134f237
/external/vulkan-validation-layers/layers/core_validation.cpp
2c5216168c7f4e97f90119c90a15740002a08195 10-May-2017 Mark Lobodzinski <mark@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
0fbb73dbb674f7655607f91b675a1b8bb9151bd2 09-May-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1739, Add check for shader binary size

VU 2816 says size must be a multiple of 4.

Change-Id: I38749fe44e02cac4e40aa572c4e4ccec01d82279
/external/vulkan-validation-layers/layers/core_validation.cpp
ce7bf009f8fc7e268efdc76ba61e3491d290ebd9 05-May-2017 Cort Stratton <cort@google.com> layers: Add vkCreateRenderPass subpass attachment VUs
/external/vulkan-validation-layers/layers/core_validation.cpp
1e49a9dd0518c3cd335dd040218aa9c25d7cb600 09-May-2017 Tobin Ehlis <tobine@google.com> 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.
/external/vulkan-validation-layers/layers/core_validation.cpp
68da7d7254c218cc1b05bcdb35d32ee2187e4917 08-May-2017 Chris Forbes <chrisforbes@google.com> layers: Remove unhelpful precheck in ValidateDrawState
/external/vulkan-validation-layers/layers/core_validation.cpp
3067e46adf202d2cc3ce1e06909dc7fadf0c8c3b 27-Apr-2017 Cort Stratton <cort@google.com> layers: check for both TE and TC, not just TC
/external/vulkan-validation-layers/layers/core_validation.cpp
3b8a5d3b17b9fe073d6ce8083b779849a3f5e291 26-Apr-2017 Mike Schuchardt <mikes@lunarg.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
b14757778e3129e831bdcc8098050e7c2830a6ee 04-May-2017 Petr Kraus <petr_kraus@email.cz> layers: Correct error db of VkDeviceQueueCreateInfo

- validation cmd is vkCreateDevice not Destroy
- non-implicit checks are implemented,
just didn't use the unique codes
/external/vulkan-validation-layers/layers/core_validation.cpp
0cf009a4e2a5c22e4645f343c7a998f188a22015 03-May-2017 Chris Forbes <chrisforbes@google.com> layers: Move CV instance extension tracking to helper
/external/vulkan-validation-layers/layers/core_validation.cpp
9303884a419ad237269a03a43aed27df0ea0de9e 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Move PV device extension handling into helper
/external/vulkan-validation-layers/layers/core_validation.cpp
bdaffa5403b494e78a9b461182e2e6360c2b775c 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Move CV::DeviceExtensions into helper
/external/vulkan-validation-layers/layers/core_validation.cpp
70af918fb4b7b784ae1edd5c0625e60e273eef4d 02-May-2017 Chris Forbes <chrisforbes@google.com> 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.
/external/vulkan-validation-layers/layers/core_validation.cpp
9a1eec39a3680fcad1c660a7e528b0d797bebe96 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Alias devExts in checkDeviceRegisterExtension
/external/vulkan-validation-layers/layers/core_validation.cpp
4787a88c8ada4cae6d6905a8df36c943870e1e94 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Remove redundant check for extension enable in fptr
/external/vulkan-validation-layers/layers/core_validation.cpp
16a1f8f9c4af479b1873e82ff02360817fb658ac 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Move unrelated data out of devExts type
/external/vulkan-validation-layers/layers/core_validation.cpp
0bbc015828bdb99e85e6731ce92428557902701f 02-May-2017 Petr Kraus <petr_kraus@email.cz> layers: Migrate surface support check to core

- fix memory leak of `pQueueFamilyIndexSupport`
- remove vestige of queue family support check
/external/vulkan-validation-layers/layers/core_validation.cpp
a469089d367e8221926f7048bd4dcb2dc2721c0a 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Convert capability handling to data

Replace the huge switch + duplicated calls with a map of ptr-to-member.
/external/vulkan-validation-layers/layers/core_validation.cpp
e446ad08318228362ef35d73e7a0636075cb3636 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Fix validation of compute pipelines

skip handling was inverted for this case.
/external/vulkan-validation-layers/layers/core_validation.cpp
583b0c41dfd0876d0481920f2e6d8d87433bc1d7 02-May-2017 Cort Stratton <cort@google.com> 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.
/external/vulkan-validation-layers/layers/core_validation.cpp
1b52022446fb65466dfcee491393670ac12aaa33 02-May-2017 Chris Forbes <chrisforbes@google.com> layers: Invert old 'pass' checks for shader validation

Make this consistent with everything else, which uses 'skip'.
/external/vulkan-validation-layers/layers/core_validation.cpp
d9944715fa5a4a750a26680f08e5defe85aa7a66 07-Apr-2017 Chris Forbes <chrisforbes@google.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
2c911c34092d685a7fa4630028f6fcf4bf80e349 27-Apr-2017 Cort Stratton <cort@google.com> 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.
/external/vulkan-validation-layers/layers/core_validation.cpp
c70c914e514d6ee222af18505e6d4ce8387c3fa2 27-Apr-2017 Cort Stratton <cort@google.com> layers: Add check for VkFramebuffer dimensions of zero
/external/vulkan-validation-layers/layers/core_validation.cpp
0d2fd381af11d2202d3856cb2da2c7122a0294ef 26-Apr-2017 Chris Forbes <chrisforbes@google.com> 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
/external/vulkan-validation-layers/layers/core_validation.cpp
eb4c61477130f69f48fdf3ac31cb82104181cc73 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix some function name passing

- This was constructing a temporary std::string for no reason
- Missing () as other similar cases use.
/external/vulkan-validation-layers/layers/core_validation.cpp
ece0e981ee4a5ad2572d146a89fc64d699d79f36 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Drop unused param for SetSparseMemBinding

There is only one function that can call this, and we didn't care
anyway.
/external/vulkan-validation-layers/layers/core_validation.cpp
f5a52627a6576d3d532cd1f2e1be6d9987aeda7f 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: fix typo in vkCmdExecuteCommands error strings
/external/vulkan-validation-layers/layers/core_validation.cpp
32f68580aa01aab3e923cb52915a1d3dd4e993c5 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Drop dead device param to CreatePassDAG
/external/vulkan-validation-layers/layers/core_validation.cpp
0d9453d85335963d6cabfbf400b058dc905ea238 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Simplify slightly
/external/vulkan-validation-layers/layers/core_validation.cpp
9b36ac77fbf55bd7ffdeb9020f2277fff3a5a807 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Inline deleteCommandBuffers into sole caller
/external/vulkan-validation-layers/layers/core_validation.cpp
59e12b842592a05706886ab852b767ba251d9467 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix more VkBool32 vs bool
/external/vulkan-validation-layers/layers/core_validation.cpp
266231a5421564c314f6b5d5bd3fed26fd389484 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix 'secondary' typo
/external/vulkan-validation-layers/layers/core_validation.cpp
8e88ad80aacad2085e76016e7bb29d243ce7f7b6 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix more signedness noise
/external/vulkan-validation-layers/layers/core_validation.cpp
28f7140700a1624f4836243204237c80645e0fb9 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Use format utils rather than open-coded list in SC
/external/vulkan-validation-layers/layers/core_validation.cpp
12b7fc342b53fbdd399aae4a85959e37685936ac 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Drop layer_data from some leaf funcs that dont use it
/external/vulkan-validation-layers/layers/core_validation.cpp
2c81be6aa02b10d9e225329977fa108ceda890a2 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix some signedness mess
/external/vulkan-validation-layers/layers/core_validation.cpp
a0f96857422c17299f72ba61defcd7b7ae113ec7 25-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Remove dead update_cmd_buf_and_mem_references

No callers.
/external/vulkan-validation-layers/layers/core_validation.cpp
5f5e4095d630df9003597a928c86502e3fc83176 24-Apr-2017 Tobin Ehlis <tobine@google.com> layers:Validate display_timing swapchainCount

For the VK_GOOGLE_display_timing extension validate that the
swapchainCount in the VkPresentTimesInfoGOOGLE extension struct matches
the swapchainCount in the VkPresentInfoKHR struct.

Update unique ID database.
/external/vulkan-validation-layers/layers/core_validation.cpp
ed832a346f5de647635da80bcdb95e29634c70d2 24-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix enum use in GetStateStructPtrFromObject

Everything around this was updated to use the new enums, but not this
function. Mostly works by accident since many of these coincide.
/external/vulkan-validation-layers/layers/core_validation.cpp
7b34d10b918c1f69e7252174965c6a7a7c35ae05 24-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Inline VkCommandBuffer overload of clear_cmd_buf_...

This was silly. On the very next line, we called GetCBNode again.
/external/vulkan-validation-layers/layers/core_validation.cpp
1c32b3aa96bc03f29da8fa1c89119a86b0de051b 24-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Drop dead string conversion for command types

No callers.
/external/vulkan-validation-layers/layers/core_validation.cpp
3251dd855490066e66a663dece5afee8ca0b95cd 24-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Banish 'skip_call' once and forever

Except for swapchain.cpp, which is undergoing a merge into CV.

Change-Id: I8b18518ef662a9a11a808ef3dce1b8f60d858fb3
/external/vulkan-validation-layers/layers/core_validation.cpp
3f253ab4d7ecd9a232fd7ead50fe5d44ddd1cd58 24-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Force all device extensions disabled initially

Should really fix device initialization so we don't need to do this
explicitly.
/external/vulkan-validation-layers/layers/core_validation.cpp
06727c7f56d1080aff506a9ae1ae9d8c174b3e9d 24-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Final object-type cleanup and loose ends

Fixed a few DebugReport object type casts and a couple of missed
spots with internal object type usage.

Change-Id: Iaa8bdcf60d5ec89e1da64227f2b7367ce6c64dc1
/external/vulkan-validation-layers/layers/core_validation.cpp
02a510945ff39f3d9e486e456aca5bfa6ea0c43a 13-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Change obj type conversion routine name

Change-Id: I3b4208ca3777ac46b2c5ab2839c268ed4381a2ac
/external/vulkan-validation-layers/layers/core_validation.cpp
0f409cc775674a446afc61daa091c82147959c3b 13-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove unused string helper from CV

Change-Id: I36daf405a6c8170d7ee61f5a07bdad045f8d6304
/external/vulkan-validation-layers/layers/core_validation.cpp
7a9423788398dbeb6d1fe0354a66123b61afda96 13-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Switch CV over to layer object types

Convert internal uses of VkDebugReportObjectTypeEXT for the core-
validation layer to use the internal layer-povided object-type.

Also modified tests for changed error text.

Change-Id: If080f4bf452ead0c6fecc648309bfd95b27fc0ce
/external/vulkan-validation-layers/layers/core_validation.cpp
5b9ab1fb8720c30edfbe8dd974e2364425471ad5 13-Apr-2017 Mark Lobodzinski <mark@lunarg.com> layers: Use UNKNOWN object type instead zero-cast

Change-Id: I36c175e78d7a33667f1485ed0e53f1dadab62a31
/external/vulkan-validation-layers/layers/core_validation.cpp
33f3623e8124c3a6081b60f68b9d39a19a5840ae 21-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Simplify ValidateCmd

Nested !=, == was needlessly weird.
/external/vulkan-validation-layers/layers/core_validation.cpp
4f2d8756eb021ec00875e604afc9403aef8731e9 21-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Remove GLOBAL_CB_NODE::numCmds

Nobody used this.
/external/vulkan-validation-layers/layers/core_validation.cpp
b68b13ed4952bce61f6ebb0023542660c26b0562 21-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: slim down draw counting

We used to care how many draws there were. Now we just care whether
there were /no/ draws (in one place)
/external/vulkan-validation-layers/layers/core_validation.cpp
599899dabe438a8ea144c0add628d3f5afe54dd0 21-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Fix naming of enable flags for swapchain exts

Should be consistent with the actual extension names
/external/vulkan-validation-layers/layers/core_validation.cpp
15ff171550065db9f978e9d0d639629beae3038f 21-Apr-2017 Chris Forbes <chrisforbes@google.com> layers: Tidy up tracking of enabled device extensions in CV

- These are all guaranteed initialized.
- Convert code to data.
/external/vulkan-validation-layers/layers/core_validation.cpp
55edfebc1289c74982344cbfedb4ae50535cd4e3 17-Apr-2017 Tobin Ehlis <tobine@google.com> layers:Remove old INFO message

INFO message in vkCreateDescriptorPool() is not needed and it was
returning a validation error if the callback returned "true" which is
just wrong. Killing the code altogether.
/external/vulkan-validation-layers/layers/core_validation.cpp
0db18ab1345f9e10907913b22ea5d57bd48077eb 07-Apr-2017 Tobin Ehlis <tobine@google.com> layers:Add image layout validation for descriptors

This change adds validation to make sure that an image layout at the
time the image is used in a descriptor matches the layout that was
given when the descriptor was updated.

Because image view covers a range of mip levels, loop over each level
and verify layouts one at a time.

Also Updated a number of validate functions to use cont ptr params for
data that they aren't changing.
/external/vulkan-validation-layers/layers/core_validation.cpp
5f025a7d647e3257e12a816fa1db078b5fc8ed49 17-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Refactor image layout validation

Streamline some of the image layout validation code. At the time of
CmdBeginRenderPass() remove the layout transition from validation code
and perform the layout transitions all at once.
This allows a bit of transition code to be killed so that the initial
transition code can share TransitionSubpassLayouts() function.
/external/vulkan-validation-layers/layers/core_validation.cpp
60f59be7ded9ccf2d57c36b2e0974cc2798cf844 04-Apr-2017 Tobin Ehlis <tobine@google.com> scripts:Update unique IDs for spec v1.0.45.1

Another massive update. Totally overhauled the mapping algorithm.
The basic outline of the new algorithm is:
-Try to map complete error message to prev ID
-Then try to map error msg w/o link to prev ID
-Finally try to map just core error string (no section) to prev ID
-Else assign it a new unique ID

See code for complete details.

In anticipation of integrated uniqueIDs I took a little liberty with
this update in that I didn't attempt to remap EVERY new ID to previous
IDs. I did many of them and made sure to account for every previous ID
that was implemented.
IDs will all be undergoing a one-time change with their integration
into the spec anyway so there is little harm in letting non-implemented
IDs drift a bit for now and it helps save my sanity.
I did add a validation step to the spec.py script to make sure and flag
any IDs that previously were implemented and suddenly are no longer in
the re-mapped version of IDs.

I manually presevered IDs 911 & 912 which get masked from the extension
spec.
I also had to do some manual updates on an offline spec to keep the
parser from breaking on the non-xhtml compliant spec.

Command line was:
python spec.py -update -remap 92-72:97-77:112-92:116-96:123-103:124-105:
133-114:148-2349:154-133,2:156-135:157-139:204-156:205-155:206-154:
417-269:1189-769:1417-938:1446-965:1448-967:1449-968:1487-974:
2193-1430,5:683-496:684-494:728-529:729-527:1628-1086:1731-1180:
1736-1183:1796-1234:1815-1251
/external/vulkan-validation-layers/layers/core_validation.cpp
c78bb8f84551ddfb3802d18c678500e26e4116cb 13-Jan-2017 Tobin Ehlis <tobine@google.com> layers: incremental_present rectangle validation

In core_validation verify the offset, extent & layer values for each
VkRectLayerKHR struct passed into vkQueuePresentKHR() for the
VK_KHR_incremental_present extension.

Change-Id: I4aa7cbac61afa6f4c9e733bb51cd486aadab5cec
/external/vulkan-validation-layers/layers/core_validation.cpp
16769f6b2a7721e391952a97f010cbb530e4f211 29-Mar-2017 Dave Houlton <daveh@lunarg.com> layers: Rename format utils, strip Vk

Change-Id: I4d192db22c51d2e9224b74487bfd5d6a58405028
/external/vulkan-validation-layers/layers/core_validation.cpp
1c55ba02ac8e31fad486ae3ffcf7d207a5e4179a 28-Mar-2017 Dave Houlton <daveh@lunarg.com> layers: refactor layer utils

Split format-related helper fxns out of vk_layer_utils.cpp into a new
file vk_format_utils.cpp. Remove the duplicated fxns in the render
framework and share the new format utils across both projects.
Rename the util fxns into CamelCase per coding std.

Change-Id: I0f9a34bc5931dfca085dfdc8d4800664aec526cf
/external/vulkan-validation-layers/layers/core_validation.cpp
ae17c7b673b9763c8e74bb70ed9e53b00aca8081 28-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add shader_subgroup_vote ext shader caps

Recognize and validate shader capabilities added in the new
VK_KHR_shader_subgroup_vote extension.

Change-Id: Ifbbcb1aa3b056707750c53d9a18965bfcae9028f
/external/vulkan-validation-layers/layers/core_validation.cpp
68774dfa273ec153ae4e65f69cca6fb16b9309fe 28-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add shader_subgroup_ballot ext shader caps

Recognize and validate shader capabilities added in the new
VK_KHR_shader_subgroup_ballot extension.

Change-Id: I79f02f50600dcbd85f7b91aeefe56bb426f53b6b
/external/vulkan-validation-layers/layers/core_validation.cpp
6f82da9debd5cdeda59f388250b506c59e7d8d54 23-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Support viewport_array2 ext shader caps

Recognize and validate shader capabilities added in the new
VK_NV_viewport_array2 extension.

Change-Id: Ifeb21d9230ca071a56246acc928add0a572b55f9
/external/vulkan-validation-layers/layers/core_validation.cpp
bd546e41d3ab1deff04a593364d3522332df179e 23-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Support CapabilitySampleMaskOverrideCoverage

Recognize and validate shader capability added in the new
VK_NV_sample_mask_override_coverage extension.

Change-Id: I30131189beee8cb5f087846eff3a5f7571d0d309
/external/vulkan-validation-layers/layers/core_validation.cpp
2664122d97c3f0a98b3e5d12833bbb20196ca837 23-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Support CapabilityGeometryShaderPassThroughNV

Recognize and validate shader capability added in the new
VK_NV_geometry_shader_passthrough extension.

Change-Id: Iea46b9a8d0c77b695507ac5f1c8f8852f528c210
/external/vulkan-validation-layers/layers/core_validation.cpp
0e2296e24065d02615ee87561bbb80af414a1ddf 21-Mar-2017 Mike Schuchardt <mikes@lunarg.com> layers: Expose core validation extension info

Change-Id: I94d854ad59d42ea4a0de0b76c7fb3829baf52abb
/external/vulkan-validation-layers/layers/core_validation.cpp
436434eba4d9f91016f313c8fb1525d76d7932fc 24-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove obsolete error check from CV

Bad shader capability check is now in the spirv validator.

Change-Id: I3d96f935d0adb7081d6693cfc004ba215391054e
/external/vulkan-validation-layers/layers/core_validation.cpp
c3e75516f42455703d7577ecf7fb5aceb876e1f7 10-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Consider depth+stencil formats to be both float and uint

Depending on which aspect we will consume, these can be either type.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f0fdde7692ffd5175435cc3bf3412b8468054f38 10-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Convert fundamental type enum to bit field

Some VkFormats can be consumed as multiple types -- specifically,
depth/stencil is either float or uint, depending on which aspect we
consume.

Convert to bitfield, and require intersection rather than equality.
While we're at it, drop out some weird special-casing for unknown
component types-- this is left over from when shader validation was much
less complete.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
95b7894efd5e101e410da92fc697429aec3ffa7b 23-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor ResolveRemainingLevelsLayers

Simplified source and consolidated usage.

Change-Id: I662a94381f3b6119978a53308dc616e942259941
/external/vulkan-validation-layers/layers/core_validation.cpp
baa50ccc5a8cf7a6f7474148f301802c5480e715 23-Feb-2017 Mike Schuchardt <mikes@lunarg.com> layers: Add VU enums to VkQueueFlag checks

Split validation of command pool queue flag checks into a dedicated
function and add valid usage error enums.

Change-Id: I4fc4e71d96b818c281ad310dd0d15bca508efb94
/external/vulkan-validation-layers/layers/core_validation.cpp
df7c947594a31bb74004ab2ca335ece9b60721b6 22-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fill in core_validation log_msg handles

Also changed all object handle zero casts to use TYPE_UNKNOWN.

Change-Id: I212fd9dd50a25dec98d1fbf46caa73401450c89f
/external/vulkan-validation-layers/layers/core_validation.cpp
a07ae8bd5f566eb9b073498dd4280efdb0b838b9 15-Mar-2017 Tobin Ehlis <tobine@google.com> layers:Refactor image layout verify/set

VerifyImageLayout had a side effect of setting image layout state if
the layout had not been seen by the cmd buffer. This update moves the
code to set the layout outside of the verify function and instead puts
it into new SetLayout* functions that are now called in the appropriate
PreCallRecord* functions.

Note that the previous behavior caused a side effect where layouts
could be updated even when the call down the chain did not occur.
The updated behavior will always update the layout to what is passed
as the explicit layout for any image copy operations whenever the
call down the chain is made. This is desirable b/c if the layout
didn't match the app saw the error during the Validate* portion of
the call and if they chose to ignore it then validation should
reflect the layout state of the image that was set by the call.

Since the side effect mentioned above is no longer present, this change
includes an update to InvalidImageLayout test where a second call to
vkCmdCopyImage() is made in order to actually transition the initial
image layout state so that expected errors are correct going fwd.
/external/vulkan-validation-layers/layers/core_validation.cpp
93ccd9708dad3ffb58a3fc09a3d61cc5fe1569f8 17-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix QueueBindSparse fence validation

If bindInfoCount was 0 fence was not properly retired.

Change-Id: I2b6af38b0181d328eaf1bab2c2109f3492905aa0
/external/vulkan-validation-layers/layers/core_validation.cpp
7b6006f355aaacf7fc7f0d575b40285b89ecd279 10-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Check use of CapabilityShaderDrawParameters against ext enable

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ecdfecfe60f239f0d66bc398b9172ef72497597a 10-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Pass whole layer_data down through more of SC

I know I'd done a bunch of work to reduce the dependency on layer_data
here before, but capability checking needs more broad access when
extensions gate capabilities. Adding yet another crazy parameter to the
intermediate functions just to avoid using layer_data here is silly.

Just plumb it all back through...

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
81b2d76c449bb91569776e2b8e68130f509d53bc 10-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Track if VK_KHR_shader_draw_parameters is enabled

We need to know this in order to determine whether the corresponding
shader capability is acceptable.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7a7c05af97a73fc6d4917ddda909f119583ff9fc 14-Mar-2017 Tobin Ehlis <tobine@google.com> layers:Connect VK_EXT_validation_flags

Add support for VK_EXT_validation_flags in core_validation.
The only enum currently supported is VK_VALIDATION_CHECK_ALL_EXT which
disables all existing flags in validation. Note that most checks are
still not guarded by flags so that option will only disable the checks
that are guarded by flags.

In testing this I found a bug with AllocateDescriptorSets() where
common state was not updated with the flag enabled so this includes a
fix for that issue as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
a90f5fa414aa0994e67cdb911938e6ae48f2ad6a 08-Mar-2017 Mike Weiblen <mikew@lunarg.com> layers: Implement VU 00303-00308

Implement Valid Usages 00303-00308 with new function
ValidateBarrierLayoutToImageUsage() which verifies an
ImageMemoryBarrier's old/new ImageLayouts are compatible with its
Image's ImageUsageFlags.

Rename ValidateImageLayouts() to ValidateBarriersToImages().

Rename some variables:
- internal vars to use Google style.
- vars passed verbatim from Vulkan to use Vulkan names.

Fix issues revealed in layer tests due to these new checks:
- 2 new Unexpected messages in VkLayerTest.
- 1 failing VkPositiveTest.

Update VU database for check_implemented = Y.

Change-Id: I8723f99d515fbea707299b4d1fcf33a4da6b7b0b
/external/vulkan-validation-layers/layers/core_validation.cpp
4e11bb1277f55311686a42000520791e1db1dd7b 14-Mar-2017 bungeman <bungeman@chromium.org> layers: Fix round tripping uint32_t through int

Commit 25afc3c "Suppress VC++ 2017 signed/unsigned warning" fixed
issue #1395. However, it did so by static_cast-ing a value back to a
type it already had been. Instead, just avoid round tripping the
'uint32_t' through 'int'.
/external/vulkan-validation-layers/layers/core_validation.cpp
4c1f7e564e7a3f705ac142b1519c48a83a513b58 14-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add missing format specifier to CV

Change-Id: Ie2fb0a861d30153af631960d444db1ff93584f41
/external/vulkan-validation-layers/layers/core_validation.cpp
434c3e2a778a3ca5a0a5414cbedd7c0f20a883b7 13-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add depthBiasClamp device feature checks

Change-Id: I61e23e3c41a89763c9b65a2b5d7dbf92f015fa24
/external/vulkan-validation-layers/layers/core_validation.cpp
5f3e7c34de87353f38bbcd79e12de8af4a9e7695 13-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add enabled_features accessor function

Change-Id: I509c06794b9301c3b0dcc3ed5ad6e688eac6194d
/external/vulkan-validation-layers/layers/core_validation.cpp
148e8028deee2b4b00ccd4a69210897add328265 01-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add alphaToOne device feature validation

Change-Id: I1633cf7a8a5ebeed797cdb5373e5eb2533ce6887
/external/vulkan-validation-layers/layers/core_validation.cpp
9580629edfc5154cc9e36974cca12966fbd748b9 01-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Validate the depthBounds device feature

Change-Id: I27aa9d678f9e7ce90db325f2a7f7aa215741c8c9
/external/vulkan-validation-layers/layers/core_validation.cpp
58c5552c73679f81f57a64a809f7d4d6d52f4ce3 01-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Validate depthClamp device feature

Change-Id: I61a1c8511b2b142ddf178fbf74654aaad80964bf
/external/vulkan-validation-layers/layers/core_validation.cpp
13c4316d0072cbc5bf3cd729abef4d114f3c96ed 01-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add drawIndirectFirstInstance feature TODOs

Change-Id: Iba54a78bc72ef169faeb6ce3e92b392c738e0bbe
/external/vulkan-validation-layers/layers/core_validation.cpp
daaf8f4ce66b35b4509bb7a7fdf4256e4f324ba7 28-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Validate dualSrcBlend device feature

Change-Id: I64984412ad993f2d75095023c3b0eea57b78228e
/external/vulkan-validation-layers/layers/core_validation.cpp
25f3712aed1cebdcb7c92eb25c5f1cc6e5986ac4 10-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move desc set helper to descriptorset module

Change-Id: I695cf51b6fa27df7585582f545c0077efb9fd432
/external/vulkan-validation-layers/layers/core_validation.cpp
a538cd4fff983b172362b0bba58f984124481a1c 09-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move update_template temp structure creation

Change-Id: Ib24bfc08114b8bdded7df0e69bfe3ea531e9df20
/external/vulkan-validation-layers/layers/core_validation.cpp
a79957f762f6fc6b74c25cb94d35a3fc36967471 09-Mar-2017 Tony Barbour <tony@LunarG.com> layers: Don't call driver if skip in PipelineBarrier

Change-Id: I9af6a641bc6e00f8ed3f1ea4cdf4f05321ecee6d
/external/vulkan-validation-layers/layers/core_validation.cpp
67fe2a610e6fc19f5bf11df4b663cef1f6c4e9ca 08-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix template_update errors in CV

Tied UpdateDescriptorSetWithTemplate into UpdateDescriptorSet
validation.

Change-Id: I00fdd9b90f99b34bb7119eb9c8dd433571f22f1d
/external/vulkan-validation-layers/layers/core_validation.cpp
6246f8feba03ddc787c31b3daa6a50d4ef01024f 08-Mar-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add UpdateTemplate Ext APIs to CV

Added GPA hooks stub functions, and enables for four new extension
APIs for VK_KHR_descriptor_update_template.

Change-Id: Ifb8b3104030d3ff3da3af85039e85bb84f828872
/external/vulkan-validation-layers/layers/core_validation.cpp
d1a9776c1a22ec99a3ef0dd44e7f85a78a04d1ed 08-Mar-2017 Tony Barbour <tony@LunarG.com> layers: Set depth to 1 in ci for swapchain images

Change-Id: I64e99f99737e26e284722bcc0ce3dc9518e64438
/external/vulkan-validation-layers/layers/core_validation.cpp
bf0fa2ad7830118e59f0fb8ff88efae18a72e833 24-Feb-2017 Karl Schultz <karl@lunarg.com> layers: Fix invalid push constant checks (GH953)

Rework of invalid push constant checks, motivated mostly
by some spec updates and prior bad assumptions.

- Add check/test for a shader stage flag being set more
than once in CreatePipelineLayout.
- Remove checks and tests having to do with warning about
overlapping ranges in CreatePipelineLayout. Ranges can
certainly overlap when used in different stages. And
the prohibition of more than one range with the same
stage flag removes the possibility of overlap in the same
stage. These checks were warnings and so probably not
noticed.

Fixes #953
Finishes VU 00871

Change-Id: Icc9d3d84fa3132f266075f2f1d45c243e9e1a65f
/external/vulkan-validation-layers/layers/core_validation.cpp
2ea938737c34152a86f5e453eaef7f77b45c0ea3 03-Mar-2017 Cort Stratton <cort@google.com> layers: Added skip_checks to rangeIntersect()

This allows callers to skip redundant/unnecessary checks
outside the validation path.
/external/vulkan-validation-layers/layers/core_validation.cpp
160335c453ec51cc48bdef78e8befdb3c86ff292 17-Feb-2017 Cort Stratton <cort@google.com> layers: GH373 Add memory size/align tests&checks
/external/vulkan-validation-layers/layers/core_validation.cpp
f60e41965223825191505eebc96491bb52e494a2 17-Feb-2017 Cort Stratton <cort@google.com> layers: Fix copy/paste errors in BindBufferMemory

Incorrect objectType and srcObject arguments to log_msg()
/external/vulkan-validation-layers/layers/core_validation.cpp
0ee7762cdcbfd554dd6a71c5ea48eec5e2a4a213 15-Feb-2017 Cort Stratton <cort@google.com> layers: Refactor InsertMemoryRange() for pre/post

- Added new ValidateInsert*MemoryRange(), called from
PreCallValidateBind*Memory().
- Moved all validation from InsertMemoryRange() into the new function.
- Moved call to Insert*MemoryRange() into PostCallRecordBind*Memory().
/external/vulkan-validation-layers/layers/core_validation.cpp
a317e7593a0fe227635fc8241908471acb36c952 01-Mar-2017 Chris Forbes <chrisforbes@google.com> layers: Use GetStateStructPtrFromObject rather than open-coding

Now symmetric with the DecrementResources path, and much less code.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ad97d033b614e6265aaa8c8f0d21a044982d4de7 27-Feb-2017 Jeremy Hayes <jeremy@lunarg.com> layers: Remove redundant validation

Remove redundant validation from ValidateOrIncrementBoundObjects.

Change-Id: I98f9de491d83788cf0b19d4c606d239e1a915e58
/external/vulkan-validation-layers/layers/core_validation.cpp
f26f0f4b1c6b014d9abc2414a9ed255ecade9f04 28-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Validate CONCURRENT img/buf queuefamilies

All buffers and images created with SHARING_MODE_CONCURRENT can only
be used on queues matching one of thier designated queue families.

Change-Id: Ia4a532610125d6481a6de5dbd18727a98f815da9
/external/vulkan-validation-layers/layers/core_validation.cpp
b34ce3b0eda520db569665ae02ec5f6f0e8b6fd1 27-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Prevent bad node access

Change-Id: I6b08302b069d9796c126422a2df90243d82dc225
/external/vulkan-validation-layers/layers/core_validation.cpp
582b6ed09649188d55ed3b6237352caf9f3384a9 21-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: Add VU data & new entry point

Add logging of VU data and a more detailed check of
EnumeratePhysicalDeviceGroupsKHX to core validation.

Change-Id: Id17a06063673b0f47cdaf8d051974887205d2f6d
/external/vulkan-validation-layers/layers/core_validation.cpp
eb6ea7587bdc06e98a89398f113fe3610d270dcb 28-Feb-2017 Chris Forbes <chrisforbes@google.com> layers: Fix state recorded for swapchain images

Reorder the fields to match the declaration, initialize tiling & type.
Previously the image type ended up as VK_IMAGE_TYPE_1D due to the
default initialization, which caused bad behavior in later validation.

Fixes #1508.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
5245a74f239ad662d9ca3675789ad41f37424ce6 28-Feb-2017 Chris Forbes <chrisforbes@google.com> layers: Factor out marking of first use as read or write...

.. and make the handling of VK_ATTACHMENT_UNUSED consistent across all
cases. Previously we could end up with useless tracking of
VK_ATTACHMENT_UNUSED.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4c9cacb263a86d029ad835765ff20a16ca12d03d 28-Feb-2017 Chris Forbes <chrisforbes@google.com> layers: remove attachment_first_layout tracking

Nothing uses this.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9cde292b1c19c643b7c13018d9834cccfe6ef7ea 28-Feb-2017 Chris Forbes <chrisforbes@google.com> layers: Consider resolve attachments to be written in renderpass

Previously, if there was a later read of the attachment within the
renderpass, we'd mistakenly record this attachment as being read-first,
and insist on its contents having been made valid by some write prior to
the renderpass.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6f88609b0b59259ed29581f1d824ee5e9d7c82cc 27-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add PreCallRecord call to CmdPipelineBarrier

Change-Id: Ibf2f742d85f002c7d4993db8968c33a537b76dce
/external/vulkan-validation-layers/layers/core_validation.cpp
e659c986db0f3146726d6c744c75772316c3e0c6 27-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Split layout transition validation/recording

Split TransitionImageLayouts and TransitionImageAspectLayouts into
ValidateXxx and TransitionXxx routines.

Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499
/external/vulkan-validation-layers/layers/core_validation.cpp
03122452370ba372b7fb62eaad6ef56a963b3fb0 27-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add PreCallValidate to CmdPipelineBarrier

Change-Id: I7e517ec023c2989eb5f977bdbf580e24b4526286
/external/vulkan-validation-layers/layers/core_validation.cpp
e6e50fcd129baea00fd5eb908cad29b252abaaa7 21-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: Move code to preferred cpp file

PreCallValidateGetImageSubresourceLayout() from core_validation.cpp
to buffer_validation.cpp

Change-Id: Ic55e049fab28384d30768e8c590f158e603dd343
/external/vulkan-validation-layers/layers/core_validation.cpp
fa5f5b60223aab81907c35a564ee150ec395b7d9 21-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: VU 732, 733, 739, 740 checks GH-402

Implement several Valid Usage checks in
PreCallValidateGetImageSubresourceLayout()

Update VU database to mark check_implemented flag to Y.

Change-Id: I04f3281012889c03aece121ecf6726437054040f
/external/vulkan-validation-layers/layers/core_validation.cpp
a8d1e377bdeaf61a3209cb997502da4356a185bb 21-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: Refactor for PreCallValidate

Refactor vkGetImageSubresourceLayout() validation out to separate
PreCallValidateGetImageSubresourceLayout() function.

Cleanup existing Valid Usage check 00741.

Change-Id: Id17a06063673b0f47cdaf8d051974887205d2f6d
/external/vulkan-validation-layers/layers/core_validation.cpp
940f70f1340803d185c67633b05ef048d277952e 15-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Update buffer-image copy routines for style

Change-Id: Id768e9e8967c687e7592169bae6d40652b58fa4f
/external/vulkan-validation-layers/layers/core_validation.cpp
d5cde34b61eb694c6fe1d5e53de61bb87bf6936a 15-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Separate val/state updates in buff-img copy

Moved state updates out of precallvalidate routines into
precallrecord routines.

Change-Id: If13e8a14cabc2b63a53f5369c33b1e632b15ff3a
/external/vulkan-validation-layers/layers/core_validation.cpp
71c68ce753146a69508694cfc5fc2dcfa08c692e 15-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move buffer/image validation out of CV

Moved guts of buffer-image-copy validation out of the core_validation
module and into the buffer_validation module, integrating with the
PreCallValidateXxx routines.

Change-Id: Ia2f867b96532eee773d0a6b899fbff160ac7b4d6
/external/vulkan-validation-layers/layers/core_validation.cpp
877577537c1f97bf8d50e32aecd7d3ca09a230a2 15-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move image layer image-buffer-copy to CV

Moved the image layer validation for buffer-image copies to the
buffer validation module.

Change-Id: If8ff8aa183f88560dc5db9d59c92346ee47b01e9
/external/vulkan-validation-layers/layers/core_validation.cpp
4ea7489860f0b13e4627c7f466cac53a01de781d 16-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix validation routine name typo

Change-Id: I2b102c048131cd875888df2196f41480c8c1eb75
/external/vulkan-validation-layers/layers/core_validation.cpp
e4d82c37d6c861b388dbc80297c18d6255858cb4 03-Feb-2017 Dave Houlton <daveh@lunarg.com> layers: Add checks&tests to Img-Buf copy - GH284

Added 16 VU checks for CmdCopyImageToBuffer and CmdCopyBufferToImage
Fixed 1 test in MiscImageLayerTests
Added 12 test in ImageBufferCopyTests

Individual commits:
GH284 add VUs 1240, 1241, 1258, 1259
GH284 add VUs 1238, 1244
GH284 add 1271 1272 1273 1274 1279 1281 1746 1747 remove 1238 1244 1262 1269
GH284 add 1227 1228 1245 1246
GH284 fix validation test MiscImageLayerTests for VU 1269/1747 swap
GH284 update database with new VU checks
GH284 redo VUs 1227 1246, move them into core validation
GH284 final checks and tests
GH284 fix a rebase merge error
GH284 fix uint64 format specifier that broke the Android build

Change-Id: I5b69eddab945fb09d4cf3645349fa45a61576355
/external/vulkan-validation-layers/layers/core_validation.cpp
946ddda6ec99e024f51a806278ba21c6779de88a 15-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Updated changed subroutines for style

Change-Id: Idda8fd88bc63ba9d441b6fe4854b98e25eede279
/external/vulkan-validation-layers/layers/core_validation.cpp
ecf8b73f862ce67b99fdc57435d3d092afe4e705 14-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1478, Add error msg for CB invalidation

Previously, any command buffer not in a recording state would emit
an error message indication that BeginCommandBuffer had not been
called. Added a separate message for command buffers that were
invalidated.
- Combined ValidateCMD and report_error_no_cb_begin
- For invalidated CBs, output cause of invalidation
- Updated test for improved error text

Change-Id: Ie72fb0ec039fbd6d4471ba32c75cc540e5c871d3
/external/vulkan-validation-layers/layers/core_validation.cpp
7828015969ab31ee01d597f0288cbb124b637fcd 14-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix CB status checks in bindVtx/IndexBuffer

These calls were calling the wrong validate function if a CB_NODE
was not found. Fixed this and added appropriate calls to check the
CB recording state.

Change-Id: I8f22f5bca7233fc92b0b91f3aceb8c38b312dc8f
/external/vulkan-validation-layers/layers/core_validation.cpp
3a6c2a8f5135475de5be6de7675ffd9dd27b30d3 14-Feb-2017 Cort Stratton <cort@google.com> layers: commented SetMemBinding and ValidateSetMemBinding
/external/vulkan-validation-layers/layers/core_validation.cpp
c18f059542c30f6b37f8a654df020be38adfade6 13-Feb-2017 Cort Stratton <cort@google.com> layers: Refactored SetMemBinding() for pre/post calls
/external/vulkan-validation-layers/layers/core_validation.cpp
9207132ef623d47fcbdfeb9ebc796eade35a2f4c 07-Feb-2017 Cort Stratton <cort@google.com> layers: refactor BindBufferMemory for pre/postcall style
/external/vulkan-validation-layers/layers/core_validation.cpp
74300755ed9ec780d6073af71e47f201217008d6 04-Feb-2017 Cort Stratton <cort@google.com> layers: Add trailing "()" to vkBind*Memory strings
/external/vulkan-validation-layers/layers/core_validation.cpp
7992c34b28dd617787f0e4d34fd023f894495edb 28-Jan-2017 Cort Stratton <cort@google.com> layers: Add VU error 805,793 (bind mem w/bad memoryOffset)
/external/vulkan-validation-layers/layers/core_validation.cpp
98c2a17e1a549df84f4239f619bc0955f632cb43 18-Jan-2017 Cort <github@dangerware.org> layers: Add VU 791,803 (bind mem w/existing binding)
/external/vulkan-validation-layers/layers/core_validation.cpp
10ffe2d353eaff714ed92a2835af77d8b5042d31 18-Jan-2017 Cort <github@dangerware.org> layers: Add VU 792,804 (bind mem to sparse image/buffer)
/external/vulkan-validation-layers/layers/core_validation.cpp
341d357dc354e888bfdc05b5dfd8c1cabe8417e0 28-Jan-2017 Cort Stratton <cort@google.com> layers: Refactor BindImageMem for pre/postcall style

Change-Id: I40d5e8566a7e72a72e59ad07de01c51f10cd5bea
/external/vulkan-validation-layers/layers/core_validation.cpp
0109928beb33325a442d7e3e7f38e73edf9cc38b 23-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update BindImageMemory var names for style

Change-Id: I38fa79b4c696b3d986558cd885156004ad082468
/external/vulkan-validation-layers/layers/core_validation.cpp
326fc9f00659303e0a5b3fc4019db2bda641c7bd 09-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: Add VU 2116 pColorBlendState checking GH-777

Add Valid Usage 02116 check.
If the rasterizerDiscardEnable member of pRasterizationState is
VK_FALSE, and subpass uses color attachments, pColorBlendState must be
a pointer to a valid VkPipelineColorBlendStateCreateInfo structure.

Update VU database check_implemented flag.

Change-Id: I154321e3a891a61c0917ec8a9520ae766162e2e6
/external/vulkan-validation-layers/layers/core_validation.cpp
6b8d2b83e8400e5238705a0856b5e3acff8df742 09-Feb-2017 Mike Weiblen <mikew@lunarg.com> layers: Refactor checking code

Combine code blocks to avoid repetitive checking of the same state.

Change-Id: I788538b82ce9420035d9ab2ba9fefb9befb67722
/external/vulkan-validation-layers/layers/core_validation.cpp
440bdd357701497c3442e3515f12ac1cfffc180a 08-Feb-2017 Tony Barbour <tony@LunarG.com> Clang-format for recent QueueSubmit commits

Change-Id: Id029c12d36b6327ac73c43879f315513c71b13d1
/external/vulkan-validation-layers/layers/core_validation.cpp
51920949f887ce8d3666c73c28ff19a5d8325a37 25-Jan-2017 Tony Barbour <tony@LunarG.com> layers: Separate validation from state in QueueSubmit

Change-Id: I95878805bfc025afd60ba2167aeb78dba064b56e

layers: Rework semaphore signal tracking in QueueSubmit

Change-Id: I6ee12fd44ebd42c1a4e14bb7fd0eae300489d413

layers: Better submit count tracking in QueueSubmit

Change-Id: I90065fc4546354cb2be14be9143356132ac2f3df

layers: Improve image layout tracking in QueueSubmit

Change-Id: I6e10c8a6d18730939dfa0a5d5e452a23c540f94e

layers: Move cmd collection from validate to record

Change-Id: I89df7358f1916ea4688d4b8cfe2cb870f946b3d9

layers: Fix command buffer submit count in QueueSubmit

Use vector and count instead of unordered_map

Change-Id: I227951085af7df0c288cb3563d17a04d7f2f41e1
/external/vulkan-validation-layers/layers/core_validation.cpp
23bb5a2fd221f6788daf2dd976bf19a5e9b20fb9 10-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdFillBuffer

Separated validation from state updates, refactored for pre/post
and moved these functions out of core_validation. Also updated for
coding style.

Change-Id: I9b24bc8c951fd1df99a65db5fa8f1d0412488192
/external/vulkan-validation-layers/layers/core_validation.cpp
842b2d28ded1c6e2c38491a81213d0e1d1b7295a 10-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move destroybuffer/bufferview out of CV

Moved pre/post routines to buffer module, along with a couple of
functions.

Change-Id: Ibb67bf18ed376a37666f171c4e30676fa18157ca
/external/vulkan-validation-layers/layers/core_validation.cpp
a4ea781e8fff70c9db0bedad7fcb6bba08e35da7 10-Feb-2017 Tony Barbour <tony@LunarG.com> layers: Fix CheckPreserved to allow input attachment

Attachments that are used (input / color / depth attachment)
in a subpass are not allowed in the preserved list, so if they
are used as a color, depth or input attachment they should
be consided preserved. Color and depth attachments were accounted
for, this commit adds input attachment

Change-Id: Id87c3c1546092bc64b293bead1d997e0f61f7990
/external/vulkan-validation-layers/layers/core_validation.cpp
d0b59d0aabea9048c518840e762c7a510927c132 10-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Consolidate GetPhysicalDevice* accessors

Simplified core_validation->descriptor_sets/buffer_validation.

Change-Id: I6921ac458bce5899e8bd60145bfaa0e0f5e8a2ac
/external/vulkan-validation-layers/layers/core_validation.cpp
c40a396f8341e1e1e5fdf1d023a987b874763446 09-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdCopyBuffer for pre-post style

Change-Id: Ic0004cad00ba04295e8c05a703a085e07d3ad56e
/external/vulkan-validation-layers/layers/core_validation.cpp
6a7544432041a5ced84128597a44c55dfde2105c 09-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdCopyImage for pre/post

Refactored this API and moved routines to buffer validation module.
Also moved several related helper routines.

Change-Id: I5859c3413290c81983f7e1b30ddb75928448fb20
/external/vulkan-validation-layers/layers/core_validation.cpp
1c143ebdb651ea034e0b1f8731cb9f361e2f8b82 09-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move pre/post CreateImageView out of CV

Moved PreCallValidateCreateImageView and the postCallRecord routine,
along with a couple of helpers: ValidateImageSubrangeLevelLayerCounts
and ValidateImageAspectMask.

Change-Id: I1d94ecee6244010d71cf910a95aeb320c30fc0fb
/external/vulkan-validation-layers/layers/core_validation.cpp
3683836d93195a82dfd2c715ce9d56b030801598 09-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CreateBuffer/BufferView routines

Moved out of core_validation, refactored for pre/post calls.
Moved ValidateImageUsageFlags, ValidateBufferUsageFlags, CreateBuffer,
and CreateBufferView, along with a couple of helper routines.

Change-Id: I7157369982d93b2327121406c208df36c15bcab4
/external/vulkan-validation-layers/layers/core_validation.cpp
0c55adf45a81f44300db04ec71a797d790ef103c 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Remove "using namespace std" statement

Remove "using namespace std;" statement from core validation. This is
prohibited in the coding standard. Replace with specific "using"
statements for the parts of std that we use.
/external/vulkan-validation-layers/layers/core_validation.cpp
9a9a0db2a973034d4286b6d4c62a46beb7641791 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Rename get* utility functions

Rename get* helper functions to have capital first letter in-line with
coding standard.
/external/vulkan-validation-layers/layers/core_validation.cpp
1ae739f43f52f7a8bb3a58dcdeac617ddd30b16c 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Remove unused param

UpdateCmdBufferLastCmd() doesn't use dev_data param to remove it.
/external/vulkan-validation-layers/layers/core_validation.cpp
dfe4c891638705248986e38c796425b89cdea8ff 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Remove unused functions

These functions were formerly used for descriptor validation which is
now all contained in descriptor_set.h/cpp files.
/external/vulkan-validation-layers/layers/core_validation.cpp
56e14f5c1c3c1cc8e3137bee5c3093d238763a42 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Rename get_my_data_ptr to GetLayerDataPtr

Change utility function get_my_data_ptr() to be named GetLayerDataPtr()
which is more descriptive and capital camel case in-line with coding
standard.
/external/vulkan-validation-layers/layers/core_validation.cpp
51ea774638f432bd8e700ec8291a980f405f429e 08-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Rename my_data vars to dev_data

All variables named my_data are device-specific instances of layer_data
so renaming them to dev_data.
/external/vulkan-validation-layers/layers/core_validation.cpp
c3340a06ecac4d7b9540592cae339f8fc224d0b1 08-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move ValidateMapImageLayouts out of CV

Change-Id: Ib9d9c169b1306a7ed6f243bbb957719305340a2e
/external/vulkan-validation-layers/layers/core_validation.cpp
d76960c655c53f47aaf2e16538ea0c40e6d527ec 08-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move image layout validation helpers from CV

ValidateLayoutVsAttachmentDescription and ValidateLayouts now reside
in the buffer_validation module.

Change-Id: I66ce6ecba882b0e5acb70410ef2b99d32070feb0
/external/vulkan-validation-layers/layers/core_validation.cpp
940eb407cf288675f9bc7552dca723cd7028edac 08-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move MaskBits validation out of CV

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

Change-Id: Ifaf509c59778c54e733c27e7ac0381ad2cb324c0
/external/vulkan-validation-layers/layers/core_validation.cpp
788ff59d81fc816f451414dcf2a9d6c29456ff63 08-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move ValidateCmdBufImageLayouts out of CV

Change-Id: I358250b6cacd42e4c2b28b324e3683b51efe75e0
/external/vulkan-validation-layers/layers/core_validation.cpp
b06379a335598a3d8c53c694e875dda19eeab612 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move GetImageSubresourceLayout to CV

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

Change-Id: Ic2402de60934356d6582c3c938bba8695336ba83
/external/vulkan-validation-layers/layers/core_validation.cpp
25f7873c9ce3ed39d18bba8750d7538905e150df 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CmdResolveImage from image layer

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

Change-Id: I31eb2c9851b310c38ae2bc573dfaa5c147dac6d6
/external/vulkan-validation-layers/layers/core_validation.cpp
d81f107590290d41d3e39fcbf3f077658be0f5a6 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fixed some blitimage VUs

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

Change-Id: Idb37fa94e4359e25c7bdcaed8ad65c2ddddefe0d
/external/vulkan-validation-layers/layers/core_validation.cpp
055112ec99304db71d55b69a60e1da14e8af8f60 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move image layer BlitImage val into CV

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

Change-Id: I353c30c72faf577be22e36c786ed7851997a0011
/external/vulkan-validation-layers/layers/core_validation.cpp
60568995aca225f81acda8ce40cfabbea2c19397 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CmdBlit/ResolveImage helpers out of CV

Moved to the buffer validation module.

Change-Id: Ic80b327e7ddd4c2e699587bd0b664b91462ee8da
/external/vulkan-validation-layers/layers/core_validation.cpp
eebd811afd800663f15fda8fc71bc203a03fe294 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdBlitImage for PreCalls

Moved validation and state updates into separate helper functions.

Change-Id: I8427cd2c35e85f28edfb589a9dc08220eb5fa817
/external/vulkan-validation-layers/layers/core_validation.cpp
6c0400e625554ce7fddb833eeace0de19cfcc965 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CmdResolveImage for PreCalls

Moved validation and state updates into separate helper functions.

Change-Id: I496d2e4e97f7c58372ebe51dcc4c4f10e456a5f2
/external/vulkan-validation-layers/layers/core_validation.cpp
09fe5ac5edaec7f0dbcc9fd696e68194569aea89 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Split CmdResolveImage val/state updates

Change-Id: I60b593da5f2863d7d0ac9c1d1785ff43d3179c6f
/external/vulkan-validation-layers/layers/core_validation.cpp
dca02371c9531e7a9a2a51decae1db4d297862c4 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fixup var names in CmdBlit/ResolveImage

Change-Id: I0841ebee4b847c9d4475359fbcc8f942880ac43a
/external/vulkan-validation-layers/layers/core_validation.cpp
0dc51740dbd7b9f0ba7c071e0bf96f63d6d48c85 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Split CmdBlitImage validation/state updates

Change-Id: I445ca1466537b6c9da58266c7c33d4b91450a8f6
/external/vulkan-validation-layers/layers/core_validation.cpp
43947a6175e3e942e04d902f4d18928168e2d0db 07-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Add gpdp2 queue query to core_validation

Intercept the GetPhysicalDeviceQueueFamilyProperties2KHR() from the
get_physical_device_properties2 extension in core_validation.
Create shared functions to handle both validation and state updates for
the original GetPhysicalDeviceQueueFamilyProperties() function as well
as the new API.
Add function ptr chain look-up for new API call.
/external/vulkan-validation-layers/layers/core_validation.cpp
5581a92674a04d2ef49fde417e657f64e3aeed69 07-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Used predefined SPIR-V magic number

Change-Id: Ic766149709a74671ff4b2fc42c3dc1fc716eece7
/external/vulkan-validation-layers/layers/core_validation.cpp
e08b485346524a30ddfe6526f7dcbbf78c776d10 06-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove helper routine dead parameters

Change-Id: I9fa9456cd228dd3636002c5f59e60d7f7e1909fa
/external/vulkan-validation-layers/layers/core_validation.cpp
dcb502ef002257b5ead25231535c5f4951d62c6b 03-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Add buffer descriptor device limit checks

This adds missing checks for max range for storage and uniform buffer
updates. Also update database file.
/external/vulkan-validation-layers/layers/core_validation.cpp
c73589f3e7b40b57b769dd1e3e9b03e4231b4c69 03-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH706, Allow GLSL shaders during validation

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

Change-Id: Iaa4b284c6491a5be8d77f4616018a0cd05af8d18
/external/vulkan-validation-layers/layers/core_validation.cpp
e3443707b0f51ba7c6c458c5039dd3004c38b73e 04-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Set up disable for shader validation

Added a disable flag for shader validation.

Change-Id: I6b0a563a1350d988740ea111ec6d7f007702c595
/external/vulkan-validation-layers/layers/core_validation.cpp
bee1d36c54af112766d4e8552ad302f39290683a 03-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add enable for NV_GLSL_SHADER extension

Change-Id: Iffe21dd329c253878b9c2db0ceaf2e8f62679703
/external/vulkan-validation-layers/layers/core_validation.cpp
a6b0aebe9298e0dfc98174423f78bb7d06f1da97 02-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move PreCallValCmdClearAttachments from CV

This validation routine and helpers now reside in buffer_validation.

Change-Id: Icd487e400a17f952b59a426d7268d38ea4c17c69
/external/vulkan-validation-layers/layers/core_validation.cpp
ff309c48cf48eec4599c9bf83f5b5cd802fa2db0 02-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CmdCopyImage validation into CV

Moved from image layer into buffer module.

Change-Id: If4a826cd8ce311a30d2ce15a820459dbe4b96743
/external/vulkan-validation-layers/layers/core_validation.cpp
405404ef7f928520a56949bcc4c62f6a337514a9 02-Feb-2017 Tony Barbour <tony@LunarG.com> layers: Tolerate null handles in destroy and free routines

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

Change-Id: I95a3bee21902598dffc0df28e53f5ff253cb6207
/external/vulkan-validation-layers/layers/core_validation.cpp
55867dbad6ae423b3bd78c15f6771031a710b5ad 01-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move findlayout/setlayout & val helpers

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

Change-Id: I85ce2c5172d9a89e465e29fe2d6abdaab1f99747
/external/vulkan-validation-layers/layers/core_validation.cpp
08c7aae3177092f8567e2b5a946457be61616e9a 02-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Plumb through image_state structures

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

Change-Id: I2b21218596b8e980d4f55451a5feccdb2dac6360
/external/vulkan-validation-layers/layers/core_validation.cpp
623784ad78c8b77a78c4db613db974c12e5f5a43 01-Feb-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move image validation support to buffer_val

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

Change-Id: I76a4b545e696bbc770ef0c672d14c92e4a941e49
/external/vulkan-validation-layers/layers/core_validation.cpp
fb4e70f35eef785ce77fca908d4d64f60539893d 01-Feb-2017 Tobin Ehlis <tobine@google.com> layers:Move gfx pipe check to create time

Fixes #1424

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

This change moves the check to creation time and updates the database
and test appropriately.
/external/vulkan-validation-layers/layers/core_validation.cpp
0482c55760707900fcd072f6895c121bcf055f6e 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor ClearColor/DSImage for pre/post

Change-Id: Id055c26ca0ecb5012f96a7e8f474d598d6b46dfd
/external/vulkan-validation-layers/layers/core_validation.cpp
7dd4030adf7c578ad185897682de3a2658f5f252 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Split validation/state updates for clears

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

Change-Id: Ib710e91a038f7a0307d30218a49db1bf49bb8187
/external/vulkan-validation-layers/layers/core_validation.cpp
75cb87e6c398a5655a9012aef79bbc8b4a7f50c7 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix var names in CmdClear[C|DS]image

Change-Id: I3206d734401cb162b219ed9d0a169786a3b5c4c4
/external/vulkan-validation-layers/layers/core_validation.cpp
31442c36b240c27eceff0c8c9638395d7ddec3e3 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fix var names for ClearImageLayout funcs

Change-Id: I66c42d591d70b816788cb1ab457d8d674fb5cbe5
/external/vulkan-validation-layers/layers/core_validation.cpp
e9e04240ce939c000e0e02b46f1ed5a87303d444 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Split VerifyClearImageLayout routine

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

Change-Id: Ib6c943c0df16a9bdbcc7c44c775f371b56bbcbb2
/external/vulkan-validation-layers/layers/core_validation.cpp
308153fd68fc050a302201fb5a7cca53de8dc866 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Rename misleading renderpass structure var

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

Change-Id: I9c0d301fc41cebff6a1eadc99ee2d2d30d11beb1
/external/vulkan-validation-layers/layers/core_validation.cpp
7bab3d8f0599701f6e26a2d76314588486ae99c9 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1390, Fix BeginRenderPass validation msg

Incorrect index was printed in validation warning. Clarified message.

Change-Id: I77806a5fa5da25e966b009126d7a0db7a47a3908
/external/vulkan-validation-layers/layers/core_validation.cpp
5504d0369cbc97ad7c221eddbad439bfb83e3fb6 31-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1390, Fix renderpass handle output

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

Change-Id: I902a04ba7009557257732e0ff65d98aa93f88f31
/external/vulkan-validation-layers/layers/core_validation.cpp
509e427aa732fc714b9aa01a175ca5f57b2d7a07 27-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Migrate image layer CmdClearColorImage

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

Change-Id: I04b23843519d2354c952afebc3a3428b196339e3
/external/vulkan-validation-layers/layers/core_validation.cpp
6428df8673ee620dd97ecda53cfb846a7825a41f 27-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CreateRenderPass format check to PV

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

Change-Id: I339925be7615777cfb1214ffe456a2498c676177
/external/vulkan-validation-layers/layers/core_validation.cpp
920311b6aa5614a545cad59521770d0898a75d65 27-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Update PostCallRecordCreateImage

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

Change-Id: I55b92a4e0a6fff0e74516b9249c213f7d514cc8e
/external/vulkan-validation-layers/layers/core_validation.cpp
8c59133586421be878d393799b30044497f77727 27-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move DestroyImage code into buffer module

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

Change-Id: I103d0fc9c2e985d98943471ec6f83898c58bfdfe
/external/vulkan-validation-layers/layers/core_validation.cpp
8dea300c362f709ad26886548ea46eb4c315e401 26-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CreateImage validation into core_val

Was in Image layer. Added layer_data accessor functions.

Change-Id: I55b7896cfc9de81210c9fba4d332998c827f5d44
/external/vulkan-validation-layers/layers/core_validation.cpp
9784e78683f658f304062235ceb2dd2c2652c357 20-Jan-2017 Karl Schultz <karl@lunarg.com> build: Enable declaration hiding warning on Windows

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

Change-Id: I3346d87da8b70d6299c206fcac68520a091ed1a6
/external/vulkan-validation-layers/layers/core_validation.cpp
364a03b109f0b2b37be2e13d293fa93b8af5203a 24-Jan-2017 Mike Weiblen <mikew@lunarg.com> layers: GH-909 level/layer Valid Usage checking

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

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

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

Also canonicalize function names passed as parameter to helper
function.

Change-Id: I8346a19e9b2c4df578334c2aebfb78e6492bd1d9
/external/vulkan-validation-layers/layers/core_validation.cpp
cc7c305c82f6443c324165edb7af59f60fc87eeb 26-Jan-2017 Mark Lobodzinski <mark@lunarg.com> repo: Clang-format LVL source files using Google

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

Change-Id: I247c4abc275d7873a91522e1e234198adaa24033
/external/vulkan-validation-layers/layers/core_validation.cpp
bc9caa57c5583dfdf05198e78b78a7cb361da16c 26-Jan-2017 Mark Lobodzinski <mark@lunarg.com> repo: Clang-format c/cpp/h LVL files using LLVM

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

Change-Id: Iceedbc17109974d3a0437fc4995441c9ad7e0c23
/external/vulkan-validation-layers/layers/core_validation.cpp
593f84b63934f07483e5e5a20fd352df8ab4f8c9 24-Jan-2017 Bruce Dawson <brucedawson@google.com> Suppress VC++ 2017 signed/unsigned warning

When building Chrome with VC++ 2017 there is one warning, from passing
an int to a call to std::vector<uint32_t>::find. This change adds a cast
to avoid that warning, thus fixing issue #1395.
/external/vulkan-validation-layers/layers/core_validation.cpp
b5f087aec8b42faee128c5c3dd1cb11b662d85aa 20-Jan-2017 Mark Young <marky@lunarg.com> loader: Update the loader to 1.0.39

Add new extensions for 1.0.39. Also, updated layers to include
minimal set of functionality for 1.0.39 extensions. Extensions include:
- VK_KHR_get_physical_device_properties2
- VK_KHR_shader_draw_parameters
- VK_EXT_direct_mode_display
- VK_EXT_display_surface_counter
- VK_EXT_display_control

Also, redo the LoaderAndLayerIf document.

Change-Id: I10412086da7a798afe832a3892e18f606259b5af
/external/vulkan-validation-layers/layers/core_validation.cpp
208aecf4cb59762be429488d7d4484f138c2cd81 19-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Synch validation updates

I started scrubbing the valid usage blocks for synch validation and
made a few different updates here.
Added a missing unique error id and a comment for another.
Got a bit sidetracked and decided to implement a check for all
stageMasks to make sure that they don't set geometry shader or
tessellation shader bits if those featurse aren't enabled.

Added a test to verify new check and made a bunch of updates to the
database file.
/external/vulkan-validation-layers/layers/core_validation.cpp
4028af23e688ab5730f48ab2244dd042e2eefaed 18-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor ClearAttachments to pre/post form

Change-Id: Ica1bf93ddcd7eb0c2e83171ba5e56df382571677
/external/vulkan-validation-layers/layers/core_validation.cpp
f72f8ce7e4dc62b19ebe25d3f55cfa5cbf1f5d5e 18-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fixup ClearAttachments variable names

Change-Id: Ia6ea0fa3df94fe433d5a166f6e5d2cfa38efec68
/external/vulkan-validation-layers/layers/core_validation.cpp
da2d496fca2a7bfc9aee9a105d451026522d2638 18-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove redundant CV ClearAttachments check

This check was incorrectly labeled, and the actual check is present
in the image layer.

Change-Id: I29b866eb9da731e0996b95da3052b4878e906602
/external/vulkan-validation-layers/layers/core_validation.cpp
40a76588a6e9dd44901c769166983c0abec51aa3 12-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH398, CmdClearAttachments validation

Change-Id: I69aa3613db700f736393b35322bc383620b1d4e0
/external/vulkan-validation-layers/layers/core_validation.cpp
75269fc9e5cc9696ddf3dd28ff201c9b2526dc7a 11-Jan-2017 Thomas Louis <thomaslouis81@gmail.com> layers: GH1355, Fix bad swapchain image accesses

vkAcquireNextImageKHR throws Access Violation Exception. Added a new
error enum value and created an error check in vkAcquireNextImageKHR
to avoid index out of bounds exception (thrown in core_validation)
within the application.

Change-Id: Ie7fe2d3830e26c21b09290054cc39bc55e534cbc
/external/vulkan-validation-layers/layers/core_validation.cpp
071ef2b0d7ff4089667300bfd4a8d9e495010ccd 18-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Fixup CreateImage paramter list

Change-Id: Idfcc569d3985a4ff31503535af9c8329c6304f6a
/external/vulkan-validation-layers/layers/core_validation.cpp
c06c9b88f5f5bcc7033ba41d5547b048fa6015a4 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Move CreateImage recording to buf/img module

- Move source from core_validation.cpp into new module
- Add new module to layers cmake file
- Update android build scripts/makefiles for new files

Change-Id: Ia4000b26384d96a551d727f5e37997372f01764a
/external/vulkan-validation-layers/layers/core_validation.cpp
e47dbc3f3340fa177d877a67b2adb76a570027e5 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Add physical device props init to CV

Image layer checks need limits/caps.

Change-Id: Ib01d194e57563e327ce15846a7a384d78929ebc4
/external/vulkan-validation-layers/layers/core_validation.cpp
60cbbd8f316f5dfc7997bb66833a2e624f832e37 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Update CV authors

Change-Id: I153a68206db8d5f346755f0691bdca777908d748
/external/vulkan-validation-layers/layers/core_validation.cpp
9ad55a294cd317a63498d79878e1d5e7d1156c91 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Plumb function name/idx through swapchain

PreCallValidateCreateSwapchainKHR is now used to validate
CreateSwapchain as well as CreateSharedSwapchains. Plumbed the
functionName down through the validation code so users can see the
faulting API and the bad swapchain index.

Change-Id: Ieb885704bef8a73c09e6670594e96494b62cb1a4
/external/vulkan-validation-layers/layers/core_validation.cpp
c6cd632d064579a64e61d8704b411d0e4ace7ada 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CreateSharedwapChains for recording

Added PreCallValidate and PostCallRecord functions for this API.

Change-Id: Iebf8eb980dadbb29cceffd6a9fefb5340939eb0f
/external/vulkan-validation-layers/layers/core_validation.cpp
261dc1ef7a86b64cce92a6811bf80ee4ba364a48 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Refactor CreateSwapChain for recording

Added a PostCallRecord function for this API.

Change-Id: I6f9e67ea5fbcf1ee4f54043c5269ad282339a9db
/external/vulkan-validation-layers/layers/core_validation.cpp
0342b03ca27e5dcd692e5161af9e0eddda80240e 11-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: GH1199, Validate SharedSwapchains

Change-Id: I1e382aefdd13ed6c575d3654962e09e9558af97f
/external/vulkan-validation-layers/layers/core_validation.cpp
74074bfb7a9ef3407e572b28332f4b16d1eead93 10-Jan-2017 Mark Lobodzinski <mark@lunarg.com> layers: Remove lock held across down-chain call

Unnecessary lock was grabbed just before an API call.

Change-Id: I0ef561d9b620f42333ba034dcbc87cba6daea776
/external/vulkan-validation-layers/layers/core_validation.cpp
9f8b71691386b3300f7de68034637b5cbbe4f84b 10-Jan-2017 Alex Smith <asmith@feralinteractive.com> layers: Transition each aspect individually in TransitionImageLayouts

This fixes the possibility of spurious validation errors like the following,
when attempting to transition multiple aspects of an image after only a subset
of those aspects have previously been used in the command buffer:

"Cannot query for VkImage 0x599 layout when combined aspect mask 6 has
multiple initial layout types: VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL and
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"

The specific case where this bug was encountered was where both the depth and
stencil aspects of an image were initially in the TRANSFER_DST_OPTIMAL layout.
The first command in the command buffer to reference the image was a
vkCmdClearDepthStencilImage on only the depth aspect of the image, followed
later by a vkCmdPipelineBarrier to transition both aspects to the
DEPTH_STENCIL_ATTACHMENT_OPTIMAL layout.

Since TransitionImageLayouts tries to look up the initial state for all
aspects at the same time, it was picking up the state based on the depth
aspect because of the previous use of that (which had both initialLayout
and layout set to TRANSFER_DST_OPTIMAL), and then calling SetLayout for all
aspects with only the new layout. Since the stencil aspect didn't have any
currently recorded state, it was being added with both initialLayout and
layout set to the new layout, causing a mismatch between the initialLayout for
the two aspects and therefore the spurious error above.

Fix by updating the state for each aspect individually.
/external/vulkan-validation-layers/layers/core_validation.cpp
2135ef6f8a896318cc3b290e84a889f7e80b02f4 29-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Remove unused header from core_validation

This header is unused by the module.

Change-Id: Ife7a1b8eb344e2a670e1cfc9ace3e0697c97cd7e
/external/vulkan-validation-layers/layers/core_validation.cpp
f62c50f00d7d03e27fbc3769e582761e8a4944dd 03-Jan-2017 Mike Schuchardt <mikes@lunarg.com> layers: Add valid usage enums to core_validation (VL-60)

Update valid usage enums in subsection of core validation from
validate_and_capture_pipeline_shader_state() to
checkGraphicsOrComputeBit() inclusive.

Change-Id: I8b71c63de26e42eb073a1eac1abd121d5e57f5c7
/external/vulkan-validation-layers/layers/core_validation.cpp
d3876b4ff7c293a14f73fe3622513d1fa91bf2d0 13-Dec-2016 Jeremy Hayes <jeremy@lunarg.com> layers: Remove redundant code

This is already being checked in the object tracker layer.

Change-Id: Ie1d5776810c3f8a3df7b9ef920d02e90c0d239b4
/external/vulkan-validation-layers/layers/core_validation.cpp
4f5a71335df5361d740a23b4548d54fc72a28d4f 12-Dec-2016 Jeremy Hayes <jeremy@lunarg.com> layers: Update valid usage for Jira VL-59.

Change-Id: I9aba0480aad5b565eb59f642def7a11e46822566
/external/vulkan-validation-layers/layers/core_validation.cpp
55eb01e5950bcb079893cbeee2b487d7e16a79e2 23-Dec-2016 Mike Weiblen <mikew@lunarg.com> layers: Update Valid Usage enums (VL-63)

Update Valid Usage enums in a subsection of core_validation.cpp.

Refactored some helper functions to add parameter for msgCode.

Update VU status in the database.

Completes Jira task VL-63.

Change-Id: Iba2cfb978a044d6affb21df9b02a2ac852dfba4e
/external/vulkan-validation-layers/layers/core_validation.cpp
872a2f0ca3ffdeddfa7483e777191fa64b853892 06-Jan-2017 Tony Barbour <tony@LunarG.com> layers: CmdDrawIndirect is not an indexed command

Change-Id: Ic5e947382f64db366c72fbf058bbbd1118f79e01
/external/vulkan-validation-layers/layers/core_validation.cpp
2c09b45e970dcf95b0e03a2528662a93e0f5dc6f 04-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Remove redundant checks

Remove duplicate checks from core_validation that are already handled
in object_tracker.
/external/vulkan-validation-layers/layers/core_validation.cpp
b07b3c52d8248b424b3c97e035981abd57a6e306 04-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Add TODO comments for valid usage updates

Note a few unique error enum duplicates that should have their own
unique ids added through spec updates.
/external/vulkan-validation-layers/layers/core_validation.cpp
bfd47e4db53f595683fbe192d73bbda5c56606a6 04-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Remove redundant validation check

As was noted in a comment, the core_validation check for a valid
instance in EnumeratePhysicalDevices() was replicating the same check
in object_tracker. Killing the core_validation check.
/external/vulkan-validation-layers/layers/core_validation.cpp
0a8b955c23012196339f3c10ffedc631ea0f7c58 03-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Remove redundant check

Object tracker layer already makes sure that cmd buffers passed into
vkCmdExecuteCommands() are valid so removing the duplicate check from
core_validation.
/external/vulkan-validation-layers/layers/core_validation.cpp
43ef1e95c67c90e6196ddbd5a2c9499ccc78707c 03-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Remove redundant image compatibility check

The format compatibility check when creating an image view handles case
of color-color check as well as compressed image compatibility check.
Killing the redundant check and comment as this is all handled above.
/external/vulkan-validation-layers/layers/core_validation.cpp
767f34f4f3da5d183123359c4f612149fbe595df 02-Jan-2017 Tobin Ehlis <tobine@google.com> layers:Only flag one aspect error at a time

For image aspect bit errors, first flag the error if correct bit is not
set, else flag error if additional bits are incorrectly set. There's
not a real benefit to flagging both errors and it complicates testing.
Generally the first error should be sufficient to allow a user to
correctly update their aspect bit usage.
/external/vulkan-validation-layers/layers/core_validation.cpp
1c130ea631a82716dc7334de17767536525f2292 29-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Variable renaming for style and clarity
/external/vulkan-validation-layers/layers/core_validation.cpp
ffa1c08650c9dbe798f25b88bef4b28d33d57b01 29-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Don't pass active binding set around

The active bindings set was being passed around but the data is only
used in a couple places and an alternate form of it is available in the
binding->requirement map. Also, the binding set was wrong in that it
stored bindings for all bound sets at draw time, but was being used to
check bindings for individual sets.
/external/vulkan-validation-layers/layers/core_validation.cpp
7433ab60c7ff16d37edb0f8b17b606ccd363e210 29-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Clean up descriptor data struct

Stop passing around hideous vector of descriptor state. The data is
already contained in various bits of the cmd buffer struct so just
re-create any data at the point it's needed.
/external/vulkan-validation-layers/layers/core_validation.cpp
4527dcafa951a1fa931b258bbcd2d48b283610a7 23-Dec-2016 Dave Houlton <daveh@lunarg.com> layers: Add VU enums to core_validation.cpp

(Completes Jira VL-62)
Add new VU enums to core_validation (part 4 of 5). Update database
to reflect changes. Small edit to InvalidPushConstants test in
layer_validation_tests.cpp to update error message text.

Change-Id: I05800c9e783d66ef41e92c4af1d2f2e9eb8b9270
/external/vulkan-validation-layers/layers/core_validation.cpp
9bd94c6fc216a1d67d5e98542519002fa56d19db 08-Dec-2016 Mike Schuchardt <mikes@lunarg.com> layers: Add valid usage enums to core_validation

Update valid usage enums in subsection of core validation from
validateEventStageMask() to validateSecondaryCommandBufferState(),
inclusive.

Update tests for vkCreateFramebuffer to work with refactored error
messages.

Change-Id: Ie6138fbfe7422b3a6affac45faeeb198a0ab6bcc
/external/vulkan-validation-layers/layers/core_validation.cpp
2f921d33544c162dcb726fc3c7b915e89c02ff24 28-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Mark latest buffers and images as written

Fixes #1311

In the Draw-time refactor the marking of store images and buffers as
written was incorrectly moved before the list of images and buffers was
updated for the current active bindings.

This fix restores correct order of operations so that the buffers and
images of interest are first added to cmd buffer active list, then
they're appropriately updated as written.
/external/vulkan-validation-layers/layers/core_validation.cpp
25002b75574f762c62b1a00a595bab04ebb25452 28-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Make comments consistent across file

Change-Id: I1a92a25ae113142fd8293a1e30d6c0afff2cb759
/external/vulkan-validation-layers/layers/core_validation.cpp
68d157d34807071526e5d78b3b3b68c5a4c6185f 21-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update 'string' layer header files

Remove struct_string_helper header files, add in enum_string_helper
and <sstream> as these were included in the removed header file.

Change-Id: Ice0842ce2f06b5581a5add739534d59d834edbf6
/external/vulkan-validation-layers/layers/core_validation.cpp
a731e05bd97d2b141c9eaa4b7ffb86da716d99ef 27-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Fix CmdDispatch post-call function

Cut-and-paste bug was incorrectly calling CmdDraw post-call function
instead of CmdDispatch.
/external/vulkan-validation-layers/layers/core_validation.cpp
682e0cf01f76c5041e72a5422b6c75a6572b16a8 27-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Fix unique id for CmdDispatch
/external/vulkan-validation-layers/layers/core_validation.cpp
35ec5e14e463d342b74ffe33ee542be13d5c6639 22-Dec-2016 Tobin Ehlis <tobine@google.com> layer:Add unique error ids for memory binding

Update all of the cases to validate that memory is bound to non-sparse
images and buffers to use the correct unique error id.
/external/vulkan-validation-layers/layers/core_validation.cpp
ddffb8d346d234dfb38c8eae6258476ad25e4354 23-Dec-2016 Frank Henigman <fjhenigman@chromium.org> layers: remove unused variable
/external/vulkan-validation-layers/layers/core_validation.cpp
f634be57d858a71969b3183cd0e322fe1d0ad0fb 15-Dec-2016 Mike Weiblen <mikew@lunarg.com> layers: Update Valid Usage enums (VL-61, final)

Update Valid Usage enums in a subsection of core_validation.cpp.

Refactored some helper functions to add parameter for msgCode.

Removed check that was redundant with object_tracker.

Update VU status in the database.

Fix a couple other typos.

This completes Jira task VL-61.

Change-Id: Ie7f11741892c68331b70bb1b611f5c80fe930018
/external/vulkan-validation-layers/layers/core_validation.cpp
79c66dcd1e0db7de8556bce6deb782a150c77b92 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CmdDispatchIndirect()

Refactor CmdDispatchIndirect() to use pre/post pattern. Use shared
validate/update functions along with extra code to handle the
validation and state update of the buffer used for indirect call.
/external/vulkan-validation-layers/layers/core_validation.cpp
25d3241067a529052f120867aa4c6161047cdb60 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CmdDispatch()

Refactor CmdDispatch() to use pre/post pattern. Updated the DrawType
helper functions for use with Dispatch functions as well. For the
update helper, broke that out into a separate DrawDispatch helper
that does common work, and then a Draw helper that calls the
DrawDispatch helper and then does some extra work only relevant
for draw calls.
/external/vulkan-validation-layers/layers/core_validation.cpp
0c9ad626388bcde527db8d89829c45ebf0a94723 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CmdDrawIndexedIndirect()

Refactor CmdDrawIndexedIndirect() to use pre/post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
d6df438f6e5bf5142a66c857e5c84dd402451242 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CmdDrawIndirect() to use pre/post

Refactor CmdDrawIndirect() to use pre/post pattern and helper functions
for DrawType validate and update. There's a bit of extra validation and
state update that goes along with the buffer passed to this function vs
the Draw & DrawIndexed versions.
/external/vulkan-validation-layers/layers/core_validation.cpp
ac4451d7e5da96a3a5d51e613c583c057aee9cf4 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CmdDrawIndexed()

Refactor CmdDrawIndexed() to use Pre/Post pattern. Added validate and
update helper functions that should work for all four CmdDraw*
functions and initiall changed CmdDraw() and CmdDrawIndexed() to use
the helpers. Will update remaining two functions in follow-on CLs.
/external/vulkan-validation-layers/layers/core_validation.cpp
58b923895f7f6be1b7d48bd4ee3e85e0b3dd0c4d 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Improve perf warning for unused vtx buffer

Fixes #1282

Track if a vtx buffer is ever used by a cmd buffer and only flag perf
warning if cmd buffer has a Draw added with a bound vtx buffer that has
never been used.
/external/vulkan-validation-layers/layers/core_validation.cpp
308f54c1d3015be67613f37a26c339608ab063b5 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Kill synchAndPrintDSConfig() function

Delete synchAndPrintDSConfig() and related functions.
Lots of informational prints that aren't needed.
/external/vulkan-validation-layers/layers/core_validation.cpp
ec2ff49aea47929f28679d7bbe598ec439db7bb5 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Split ValidateAndUpdateDrawState()

Split ValidateAndUpdateDrawState() to isolate validation and state
updates into ValidateDrawState() & UpdateDrawState() functions.

Refactored CmdDraw() to use Pre/Post patter with all state updates now
occurring in the Post function. Made some initial updates to other
Draw/Dispatch functions to call each new function in-line, but will
refactor these functions to use Pre/Post in follow-on commits.
/external/vulkan-validation-layers/layers/core_validation.cpp
410598cceec2fd4fd53b470dd77c9ea6a001c181 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Split validatePipelineDrawtimeState()

Split validatePipelineDrawtimeState() into validate & update functions.
Also rename validatePipelineDrawtimeState() to
ValidatePipelineDrawtimeState().
/external/vulkan-validation-layers/layers/core_validation.cpp
aeba3b2d5b995d5e684eb07790827602266b65c5 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Rename two functions to CamelCase
/external/vulkan-validation-layers/layers/core_validation.cpp
c0b225e42808ba8fada7a2f67ecd662e376ccf15 21-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add PostCallRecordCmdDraw()

Add PostCallRecordCmdDraw() to perform state updates for CmdDraw()
function. Don't quite have all state updates in there yet. Remaining
state updates will be in follow-on commit.
/external/vulkan-validation-layers/layers/core_validation.cpp
29f880e9c3c837307e7a19c0ef7275448d483e04 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Separate state update from addCmd()

Update addCmd() function to only perform validation and rename it to
ValidateCmd(). Separate out the state update of last_cmd in cmd buffer
to new UpdateCmdBufferLastCmd() function.

Made sure that everywhere ValidateCmd() is called now also calls
UpdateCmdBufferLastCmd(). Currently just calling them back-to-back but
will continue with further updates that put the ValidateCmd() call into
the PreCallValidate*() function and the UpdateCmdBufferLastCmd() into
the PostCallRecord*() function.

Also included some comments on work that needs to be done while
breaking up CmdDraw() for pre/post functions.
/external/vulkan-validation-layers/layers/core_validation.cpp
721fd90455fea285e09f133f97fb58535d13db83 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Pass cmd buffer as log_msg object

Fix some old TODOs where cmdBuffer was not being correctly passed into
log_msg as the src object.
/external/vulkan-validation-layers/layers/core_validation.cpp
5569d6457ac22e7d245f3cdee045e71ffbc8b06e 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Remove unneeded return value

MarkStoreImagesAndBuffersAsWritten() only updates state and the return
value was a constant false. Update function to remove the return value.
/external/vulkan-validation-layers/layers/core_validation.cpp
226a75bff897619b86cc227cf1196b5e245fb96d 22-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Update dispatchable object printing

Fixes #1188

Uniformly print all dispatchable handles in error messages as pointers
with the "%p" print specifier.
/external/vulkan-validation-layers/layers/core_validation.cpp
ff97d1b78192ab7853965cd7a0462273c4813333 20-Dec-2016 Mike Weiblen <mikew@lunarg.com> layers: Update Valid Usage enums (VL-61, partial)

Update Valid Usage enums in a subsection of core_validation.cpp by
adding a parameter to helper functions insideRenderPass() and
outsideRenderPass(). Update that VU status in the database.

Fix a couple other typos.

This partially implements Jira task VL-61.

Change-Id: I8d1fe99a237c4cd22216a1236f47f72fffd4fd00
/external/vulkan-validation-layers/layers/core_validation.cpp
347d4d3139a1e743ed85bd375c20fd35bbe68d74 19-Dec-2016 Chris Forbes <chrisforbes@google.com> layers: Remove cmds vector from GLOBAL_CB_NODE

Now that cmd buffer printing has been removed, the only use of this is
to distinguish between cmd buffers invalidated before and after a
complete recording. This should eventually be folded into the state
machine, but removing the vector of cmds is a first step.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
79c5b660cd51e93e279c1aa001a42801d3bf7a5d 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Clean up descriptor set layout on destroy

Erase destroyed descriptorSetLayout from map.
/external/vulkan-validation-layers/layers/core_validation.cpp
1bbaffebe2d43e1f80b90aa43d89d506f3eabd17 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add validation flag for DestroyBuffer()
/external/vulkan-validation-layers/layers/core_validation.cpp
e1056daefb39e3a3fed0088874725c56a1359e54 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyBuffer()

Update DestroyBuffer() to use Pre/Post pattern. All of the state
updates are now only performed if call down chain is not skipped.
/external/vulkan-validation-layers/layers/core_validation.cpp
ba869bb0c781faa360529f826de4e1a8042fcdca 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add GetQueryPoolResults() validation flag
/external/vulkan-validation-layers/layers/core_validation.cpp
9fdee42cd357379efb9aa27f90beb75d1f824955 19-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor GetQueryPoolResults() to pre/post

Refactor GetQueryPoolResults() to use Pre/Post pattern. Pulled all of
the validation into PreCallValidate* function. There was only one
state update occuring so pulled that code into PostCallRecord function.
/external/vulkan-validation-layers/layers/core_validation.cpp
0d1a95e1f18e4fe369073d8231b11d79a42847ff 16-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add validation flag for DestroyQueryPool()
/external/vulkan-validation-layers/layers/core_validation.cpp
83c1f2cdfb8eca95c7d450aca7863d5b269b7be6 16-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyQueryPool

Refactor DestroyQueryPool() to use Pre/Post pattern. This moves the map
update to after the call down the chain which is where it should live
so that it only executes when validation passes.
/external/vulkan-validation-layers/layers/core_validation.cpp
38f5d6fce90ce78109ac993e75e7fc4e582d6213 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add validation flag for DestroySemaphore()
/external/vulkan-validation-layers/layers/core_validation.cpp
875509435db6e0c62e28fd65a85c81f99e7e4855 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add validation flag for DestroyFence()
/external/vulkan-validation-layers/layers/core_validation.cpp
c0f1f8368ec7be6f098e2599b31622f81ff00185 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroySemaphore

Refactor DestroySemaphore() to use Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
1d3dce01906e45faf7282cffc3334cbda1662656 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyFence

Refactor DestroyFence() to use Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
36c3a4fe8455762d2dc0b2b9ece44675a3ee8d97 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Rename QUEUE_NODE to QUEUE_STATE
/external/vulkan-validation-layers/layers/core_validation.cpp
3b3fccc991a6cbe649b96880f36d90318b3c7cc2 15-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor GetDeviceQueue

Move the state update for GetDeviceQueue into Post* function.
/external/vulkan-validation-layers/layers/core_validation.cpp
dcfa519862e3ee788cf008388cc6b66832f74477 16-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Remove redundant CV checks

These CreateGraphicsPipeline checks are covered in
parameter_validation.

Change-Id: I4c273aa2cd88791d2f6cfa7a5b6c48e629706a85
/external/vulkan-validation-layers/layers/core_validation.cpp
2fabc52a37efad97b70642932652a7129dcce79e 15-Dec-2016 Tony Barbour <tony@LunarG.com> layers: Remove check for nonCoherentAtomSize

It's come to our attention that this check, while matching the spec,
may be a little overzealous and could cause a lot of existing code
to start failing validation. We plan to address this with the spec
working group, and we're removing the check for now.

Change-Id: I7159b72fe0a2e81bf75bccddc9939da7086992b7
/external/vulkan-validation-layers/layers/core_validation.cpp
2e935bbc6cacaff38c073f86594a1b56d1f8a800 15-Dec-2016 Jamie Madill <jmadill@chromium.org> layers: PR1276, Fix Clang compiler warnings

fixes
- error: using namespace directive in global context in header
- error: comparison of integers of different signs: 'uint32_t'
(aka 'unsigned int') and 'int'

Change-Id: If56d5b9c33f0de813fbb67120650a887eb9368b0
/external/vulkan-validation-layers/layers/core_validation.cpp
fc9f0448c3cb6ba4fc018fefe761bb43a1884846 08-Dec-2016 Chris Forbes <chrisforbes@google.com> layers: Complain in AcquireNextImageKHR if the swapchain is replaced

V2: Tweak error language for Ian

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
5b5488456e5afa0487f95b805a2aba59b13d69f4 08-Dec-2016 Chris Forbes <chrisforbes@google.com> layers: Track whether a swapchain has been replaced

If a swapchain is used as VkSwapchainCreateInfoKHR::oldSwapchain, then
it is replaced. This occurs even if the new swapchain creation fails.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f6e16b28b808a342cb92768001afa2cfeee08a11 13-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Fix uninitialized variable

Zero-init the map_range variable before checking for aliasing of a
mapped memory region.
/external/vulkan-validation-layers/layers/core_validation.cpp
75f4c8cec0996021a4258b9bf920a9e0fea4eac1 13-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Fix typo

aliase->aliased
/external/vulkan-validation-layers/layers/core_validation.cpp
53ecec26e80e4d18b57d24ed6eb91a3c9da4b95c 13-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Warn on buffer/image aliasing

The Buffer-Image Granularity section of the spec details what must be
done to avoid having a linear buffer alias with a tiled image, but it
does not state that such aliasing is a definite error.

Demoting this check to a warning.
/external/vulkan-validation-layers/layers/core_validation.cpp
2fbc1a61dff1781368a0c592c25985abb46e4891 06-Dec-2016 Mike Weiblen <mikew@lunarg.com> layers: Update Valid Usage enums in log_msg

Update Valid Usage enums in core_validation and update
their status in the VU database.
This completes Jira task VL-65.

Change-Id: I51ed327ad65f3a5d1f64bba01ad576c6656f88df
/external/vulkan-validation-layers/layers/core_validation.cpp
ccde29c12e76d93133ec01c8b297f83f99abb545 12-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add some val/state-update todos

Couple of routines combine state updates and validation, adding a
note for future work.

Change-Id: I417025bbcabfd3e80ccefe166bc6ea3497222753
/external/vulkan-validation-layers/layers/core_validation.cpp
d91b0b35cff4dc73d88fcf4ea567bd37997bbd98 12-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update WaitEvents/PipelineBarrier for style

Variable names, clang-format.

Change-Id: I576bfd7944902bdf611b8a455eff83e43f56725b
/external/vulkan-validation-layers/layers/core_validation.cpp
07059341a6ab09b3bd64727d2689082828492191 10-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH1233, Validate stagemask/queue compatibility

Any pipeline stage included in srcStageMask or dstStageMask must be
supported by the capabilities of the queue family specified by the
queueFamilyIndex member of the VkCommandPoolCreateInfo structure
that was used to create the VkCommandPool that commandBuffer was
allocated from, as specified in the table of supported pipeline
stages.

Change-Id: I02117e7f60910f2154765b90340d8127d6bce0cd
/external/vulkan-validation-layers/layers/core_validation.cpp
f42137395b61565d9d8e491f2999af1888168207 10-Dec-2016 Karl Schultz <karl@lunarg.com> layers: Use resolved range to avoid long loops

Fixes #1251.
Use the resolvedRange instead of the raw range, which
could include VK_REMAINING_MIP_LEVELS and/or
VK_REMAINING_ARRAY_LAYERS, which are really big numbers.

This fixes a near-infinite loop issue when running the
input_attachment sample with validation.

Change-Id: I250118db74a6faaecd2b3cd4cb43f44c07ae436d
/external/vulkan-validation-layers/layers/core_validation.cpp
b10e59bb49bc6bd9f35bb03363b0e9880fe8179c 09-Dec-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH1244, Fix Compressed BufferImageCopy errs

CmdCopyBufferToImage and CmdCopyImageToBuffer were validating
compressed image attributes against the valid usage conditions
for uncompressed images. Added check for compressed images and
skipped this validation, and TODO for future compressed VU addition.

Change-Id: I09a7dc98cb0f925c7486ef9f2d6de31411c7ea1c
/external/vulkan-validation-layers/layers/core_validation.cpp
369cf6deef1fca74f9eb1f8ef6e96deba715b133 28-Nov-2016 Slawomir Cygan <slawomir.cygan@intel.com> layers: Warn if RenderPass clearvalues ignored

PR 1203:

Vulkan spec does permit clearValueCount to be greater than number of
values used by clear ops. However we have seen apps that pass garbage
as clearValueCount - the best we can do in this situation is to emit
a warning.

Change-Id: If52c02759410500e96976d91fd42a9b2a7e2df41
/external/vulkan-validation-layers/layers/core_validation.cpp
777507259dcf34d32d0cb1f6820583455a4a8377 08-Dec-2016 Cort <github@dangerware.org> Core validation: VerifyClearImageLayout review feedback

- follow variable name/case conventions
- Prepend calling function to error messages
- Simplify caller identification
/external/vulkan-validation-layers/layers/core_validation.cpp
1c2dd65baf29dba7c39172cf25f296a25baa4f3a 06-Dec-2016 Cort <github@dangerware.org> Core validation: VerifyClearImageLayout tweaks:
- Move test for invalid layouts before test for valid-but-non-matching layout
- Use unique error codes
- Pass caller function name to differentiate between color and depth/stencil clears
/external/vulkan-validation-layers/layers/core_validation.cpp
7f8aa8f5abceedbb599ef69af1dfbb38c0df2660 28-Nov-2016 Slawomir Cygan <slawomir.cygan@intel.com> Core validation: add an errror message when wrong layout is used for clearing
/external/vulkan-validation-layers/layers/core_validation.cpp
4b6738a6adb4e813d66234defee5d18b7c84340d 07-Dec-2016 Mike Weiblen <mikew@lunarg.com> layers: Update Valid Usage enums in log_msg

Update Valid Usage enums in CmdExecuteCommands() and their
status in the VU database.
This partially implements Jira task VL-65

Change-Id: Ia31dbf78ed93418ced6597401d77f3fa6488935e
/external/vulkan-validation-layers/layers/core_validation.cpp
92b1701c552e96e96fdbbb77e4b106a9526f3b8c 07-Dec-2016 Tobin Ehlis <tobine@google.com> layers:RetireWorkOnQueue refactor fixes

Some updates based on review feedback.
Fix VerifyQueueStateToSeq to still validate across semaphore pairs in
the same fashion that RetireWorkOnQueue did.
Use a deque iterator rather than local copy.
Update some formatting.
/external/vulkan-validation-layers/layers/core_validation.cpp
e0cec9ec6dd3cfd83345cabba55ec021681801db 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Add validation flags

Added validation flags to allow for disabling of validation for:
vkWaitForFences
vkGetFenceStatus
vkDeviceWaitIdle
vkQueueWaitIdle
/external/vulkan-validation-layers/layers/core_validation.cpp
4273a1c157585a645dca4c960086032793899d05 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor QueueWaitIdle

Update QueueWaitIdle in core_validation to use Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
8767ceaf6a7d5675c2fe0502df31a1339a5a6337 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DeviceWaitIdle

Update DeviceWaitIdle in core_validation to use Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
b7d814f72a72fb2eee7efa0f48e6a67a86eaf588 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor RetireWorkOnQueue

RetireWorkOnQueue() had one check that could cause a validation error.
The check makes sure that an unsignalled event does not precede a query
pool reset in a cmd buffer being retired.

This change splits out the check so that it can be hoisted prior to
calls down the chain, and the actual retirement of work on a queue then
only needs to take place after a call down the chain succeeds.

This initial commit separates these operations for fence retirement
and a follow-on commit will separate remaining operations for queue
retirement.
/external/vulkan-validation-layers/layers/core_validation.cpp
f073b96e7a0030b55a66b780bd3ed57262cf1fa2 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor GetFenceStatus in core_validation

Refactor GetFenceStatus to use Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
accdf1d467e269e05b89764faf204fb2ff600b57 06-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Refactor WaitForFences in core_validation

Refactor WaitForFences to use Pre/Post pattern. This function currently
has a Post effect that can cause a validation error. Planning to remove
this in a follow-on commit.
/external/vulkan-validation-layers/layers/core_validation.cpp
d350ec956aac62ba3f12b52194691a5903fea388 02-Dec-2016 Jeremy Hayes <jeremy@lunarg.com> layers: remove dead code

Change-Id: I152ce109cada7bee85678217f39819ffe51580b9
/external/vulkan-validation-layers/layers/core_validation.cpp
cc648d39c3a0054d4b0ee5ee94047a752adef43b 01-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Kill print cmd buffer functions

Killing the printCB* functions that would dump details of command
buffers for a number of functions.
/external/vulkan-validation-layers/layers/core_validation.cpp
ee6c2c50e6ae1494b31d4e7f0fa242916599727d 01-Dec-2016 Tobin Ehlis <tobine@google.com> layers:Kill print_mem_list function

Killing the print_mem_list function that would dump details of memory
allocations for a number of functions.
This function is a vestige of the original validation layers when
more debug info was useful. Now there are alternate tools and layers
that can produce this type of info so it's extraneous in the validation
layers.
/external/vulkan-validation-layers/layers/core_validation.cpp
d4cd34fd49caa759cf01cafa5fa271401b17c3b9 01-Dec-2016 Jeremy Hayes <jeremy@lunarg.com> layers: remove unnecessary log_msg

Change-Id: I2ea237e46b028c0d2afa3a0f559eef42d8639a25
/external/vulkan-validation-layers/layers/core_validation.cpp
5b9f2047984d6ca10d89a35ba8a2ebe0fa6bff69 29-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Track precision for interface block members too

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
17c6bacf91ac671cb33212071b87b8ea782812f5 29-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Require precision to match on interface between stages

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b0436668e6594b8528e96de7bed208399fb2431d 29-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Track RelaxedPrecision decoration of interface variables

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
fcf67c021fdfcbeb12fb04daa9a69ecd7d376c5c 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Apply previous fixes to CV CreateComputePipelines

Compute pipeline creation can partially fail in the same way as graphics
pipeline creation. Handle it exactly the same way in CV.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
61943a7503bc8594338f3364ef42f1d863486c04 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Don't make a mess of partial pipeline creation failure

Previously we'd end up with a VK_NULL_HANDLE -> junk PIPELINE_STATE
mapping, which confuses other things.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7a456d188475c23b566334be45dc0489b2789653 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: CV: clean up Create*Pipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0108a1af0b7c6949846e9d71d00bbfb322b6f7ca 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: s/skip_call/skip/ in CV CreateComputePipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1ab616b32d4e5b7d62d4a8c41b0c03ea335ab845 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: CV: null out pipelines on validation failure

If we don't call down the chain, creation of all the pipelines failed.
Callers expect to inspect the handles for partial success -- don't leave
uninitialized junk here.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c70226063be6148056ceeccf835175a1fd59f24f 30-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Switch sense of logic in CV CreateGraphicsPipelines

No functional change.
Drop the explicit unlocks -- this happens as the unique_lock goes out of
scope anyway.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6f2ed666809272002a31b3b4f8adf6581cb41819 25-Nov-2016 Norbert Nopper <Norbert.Nopper@nxp.com> layers: Complete support for VK_KHR_Display ext

Fixed using display extension only crash.
Added vkGetDisplayPlaneCapabilitiesKHR.
Fixes, that unique objects works for display extension.

Change-Id: I66727a430b9d55bfa40fdddc884f40c91aa29f11
/external/vulkan-validation-layers/layers/core_validation.cpp
5faa662f6859b01c72d79027abde363d5f10dcd7 25-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Move surface format tracking to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4bd5f453535de3d3423ff1f9995b4acb15f791d2 25-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Note swapchain replacement rules may be out of date

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9e8e286e0ca0c7cd911c3e7ba3ddd1aceb29cbe9 25-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Move present modes tracking to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e420dd92dcfc04f279e98796a49ee26b2c3ddafe 23-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Separate push constant max size errors

There's separate valid usage language regarding the relationship
between a device's maxPushConstantsSize and the size and offset of
VkPushConstantRange. Splitting up the validation callbacks to flag
these two errors separately along with their respective unique error
enums.
/external/vulkan-validation-layers/layers/core_validation.cpp
891f13be101e95697e5af9503f06da38b0c48f79 23-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Separate two error checks

There's separate valid usage language for VkPushConstantRange size
being non-zero and being multiple of 4. Breaking the validation
callbacks to flag these two errors separately along with their
respective unique error enums.
/external/vulkan-validation-layers/layers/core_validation.cpp
6569ab421f45f905e69fa7345bda4fe5b87e9045 23-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix windows build warnings

Change-Id: Ifead20bae1e3c4f237ffc6f49422f20621b6349e
/external/vulkan-validation-layers/layers/core_validation.cpp
03359bff798ddbf27e682a824b0b757f87e78df4 22-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix BindImageMemory typo

Change-Id: I77359a73635d4cdae066255e774a096a9b643a3e
/external/vulkan-validation-layers/layers/core_validation.cpp
0a4087f99558069e9f6a437ff2dbb5a9c1c22cca 21-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Avoid copy of cmd buffer set

No need to copy the entire unordered_set<GLOBAL_CB_NODE *> in
invalidateCommandBuffers(). Change it to take a "const &" instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
fefa20333f94ea75877cca53d0631542cd9d0432 21-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Use ptr to cmd buffer object in log_msg

This new error was incorrectly referencing the ptr to the cb_node,
which is internal validation state, instead of the cmd buffer object
that the node wraps.
/external/vulkan-validation-layers/layers/core_validation.cpp
0c45ab93ccfb9d39698ae47d6102d2e308ff476e 21-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Verify pipe stats are enabled for device

From Riku Salminen

At vkCreateQueryPool() time, make sure that if PIPELINE_STATISTICS
are requested, then the device must have pipelineStatisticsQuery
enabled.
/external/vulkan-validation-layers/layers/core_validation.cpp
7b0d28d116977b91892f354e002edd760bdb86cb 31-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Tweak comments for swapchain checks to be less brittle

Referring to specific lines within an expression breaks every time this
code changes.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4a5614452104c88cb04390dac882dd94ebdcc3de 12-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Move too many images case to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
5c99b4daed164798f307244c9bde17b4f66014fb 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Move most of remaining swapchain creation checks to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1671dfbfc53aa19dcf76d71c2dd1f8f2c4879174 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Move complaints about presenting on bad queues to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
204117fc8d24d7cc599b8fd6e7c293118f3a829c 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Have the instance WSI flags unconditionally exist

Code that changes its behavior based on these flags shouldn't also need
to be a mess of ifdef.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
418a8711f3301f3027a900bb45daaf0892f4e644 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Track surface support for gpu+queue

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7de258f87ca1192db116a66b209253793d276ebc 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Move caps query / swapchain creation interaction to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
40921785005eb449ec7c18229f0d84c879708b8a 11-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Capture surface capabilities

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
39c845ed4c066740e9efaed0a00af51be07c67c1 21-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Warn on cmd buffer invalidate

From Mikko Strandborg

When a resource gets deleted, any command buffer that references it
gets invalidated, and an error gets thrown whenever that command buffer
is submitted. However, for a developer, it's quite hard to deduce what
exactly caused that to happen. This patch emits a warning whenever a
command buffer that's in CB_RECORDING state (meaning that it has had
its vkBeginCommandBuffer called but not End). This way the developer
can set a breakpoint on that to see exactly what causes the buffer to
be invalidated.

Destroying a resource that's being used in an open command buffer is
almost certainly a bug, but there might still be cases where it might
be valid behavior (for example, when the application decides to abort
an operation), therefore it's not an error but a warning instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
e52ca7be57745459d6aa4903a3880fc8eaa9d3dc 20-Nov-2016 Chris Forbes <chrisforbes@google.com> Update out of range attachment check to use unique enum

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ab38df28c5ae1816c5fa33c0c7840c6950e83f0d 16-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Only call ValidateLayouts if no prior error

The long-term solution here is to merge some of this code together, but
validating the layouts later and only if nothing else was bogus is a
good start.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0363e20ddd63a58a611ece0af9c149c98a535d22 15-Nov-2016 Chris Forbes <chrisforbes@google.com> layers: Improve wording of attachment-index-out-of-range error

This wasn't correct for the == case.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ff3ef1181960319d2268e82dae075726f650c553 17-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Check reqs before call to BindImageMemory

There's an implicit spec requirement that GetImageMemoryRequirements()
should be called prior to calling BindImageMemory() b/c various return
values from GetImageMemoryRequirements() are expected to be complied
with.

This change adds a warning if GetImageMemoryRequirements() has not
been called prior to BindImageMemory(). In this case it will make the
call itself in order to populate internal state tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
2eda842d84a02b9d5bfb03d6c26c5f7c00e6e8be 17-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Check reqs before call to BindBufferMemory

There's an implicit spec requirement that GetBufferMemoryRequirements()
should be called prior to calling BindBufferMemory() b/c various return
values from GetBufferMemoryRequirements() are expected to be complied
with.

This change adds a warning if GetBufferMemoryRequirements() has not
been called prior to BindBufferMemory(). In this case it will make the
call itself in order to populate internal state tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
5cca7b0a90e0b6fe1cc28ddbe9037c3ce3f3ee13 16-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Rename BUFFER_NODE->BUFFER_STATE
/external/vulkan-validation-layers/layers/core_validation.cpp
d87d172d120ea3f00bfd34335537332d7ce61a89 15-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Check all memory bindings

There are a few places in the code where we assume that an image or
buffer doesn't have a sparse binding. These cases break with sparse
bindings.

To fix I added a function to BINDING class to retrieve all memory
bindings and then updated a few spots with bad assumption to make use
of this new GetBoundMemory() function.
/external/vulkan-validation-layers/layers/core_validation.cpp
0044a16bb19e7af3c636cf903fb6a51c31655b28 16-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Check buffer offset against required size

Fixes #1030

Use the required memory size instead of bound memory size when
validating the offset into a memory buffer. This will correctly handle
both sparse and non-sparse cases.
/external/vulkan-validation-layers/layers/core_validation.cpp
15caa3e8f88f57bdcc42a3eabb9375e57007e5aa 16-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Save memory requirements

Add memory requirements member to the BINDABLE class and save memory
requirements for images and buffers in their respective
Get*MemoryRequirements() functions.
/external/vulkan-validation-layers/layers/core_validation.cpp
ba16c7616eb49c78dc76eb7682d650287ad8614d 15-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH329, Add MappedMemoryRanges limits checks

When VkMappedMemoryRange structures are used, the offset and size
members must be a multiple of the device limit nonCoherentAtomSize.
Added these checks in core_validation.

Change-Id: If7eded4c52d31c1a25740ac08ec5434c93c5cecc
/external/vulkan-validation-layers/layers/core_validation.cpp
80e8617d44ad5727efb3da174951080b54b21cd8 15-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fixup MappedMemRanges call ordering

Moved validation out of API calls.

Change-Id: I95f3b24d69d469ea98b7c955bbab56c9b47ad487
/external/vulkan-validation-layers/layers/core_validation.cpp
bba0de708d942e9a2187158915856995db1c5a4d 15-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fixup MappedMemory variable names for style

Change-Id: I4f8aae213753dc69ae28a945d7f34cff2af7ccd9
/external/vulkan-validation-layers/layers/core_validation.cpp
c7ee6f2fe100c1aacfaa0872832717c906bb8a4a 15-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fixup validateMemoryIsMapped for style

Var names.

Change-Id: I69b441f986c017f2d34a62669c8b3e7511a2dd5f
/external/vulkan-validation-layers/layers/core_validation.cpp
f0b0053ba47c1fc2ee173cfef0eaf63356cd4b0c 15-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update ValidateMemIsMapped error enums

Plumbed in VU error enums, updated tests and database.

Change-Id: I114d269c686cddd6b1d3acb098d0b2f5fe4fdc17
/external/vulkan-validation-layers/layers/core_validation.cpp
78b4bdd8b67f4832a05110431ba3c1ae794391d8 16-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH1143, Validate vertex attribute formats

Formats specified as vertex attributes (createGraphicsPipelines->
pCreateInfos->pVertexInputState->pVertexAttributeDescriptions.format)
must have the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT set.

Change-Id: I907c37e2edbcfb7bcb405f912cea8d215acccb11
/external/vulkan-validation-layers/layers/core_validation.cpp
ec85232c4d8d9ddf7d2ae57cb8203c5ab52c1106 16-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Save PDev in device's layer data

Needed for physical-device calls or to access data belonging to
the physical device.

Change-Id: I2a1f6eadcaf82c2247a68c91c39d97ef3284b22a
/external/vulkan-validation-layers/layers/core_validation.cpp
42486a20f07b16f0c5361cdc00fd789b07b1989a 16-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Update CGP var names for style

Changed CreateGraphicsPipeline local vars to match style guidelines.

Change-Id: I3204ce878b37ef3cb0ce58ecff00d65a4fed4f28
/external/vulkan-validation-layers/layers/core_validation.cpp
48b8ad74fa1a9e39463afce0cb8376c3e0b691a8 16-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Move val to PreCallCreateGraphicsPipelines

In core validation, created a pre-call function and moved the
validation calls into it.

Change-Id: Ib7831c3d2f36628e24b90083be902ac724f25483
/external/vulkan-validation-layers/layers/core_validation.cpp
5c60b2a2a1dcfe8f977226eaced004c522d19d49 16-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Remove verifyPipeLlineCreateState unused parm

Core-validation, device was unused.

Change-Id: Ia02ff0a3c9ce85c69b175c3e80b101dd2ddc8214
/external/vulkan-validation-layers/layers/core_validation.cpp
1b8a6bd9260c52ca6c6cfe1e34f142f93e1e2cc6 15-Nov-2016 Jeremy Hayes <jeremy@lunarg.com> layers: update valid usage

Change-Id: Ia46300db1e9140e0547c3e089cef17f774b44cf3
/external/vulkan-validation-layers/layers/core_validation.cpp
f9e31fcaf5f4630e1bf38870a6457e1a04b4a486 12-Nov-2016 Karl Schultz <karl@lunarg.com> layers: gh125 Add check for memory obj max count

Fixes #125

Change-Id: I1b0b4eb2894494dc6df9c8dd1beab6f3645a707c
/external/vulkan-validation-layers/layers/core_validation.cpp
34a26fdc3c68aafc37d21ef827b291877833b9b2 10-Nov-2016 qnope <antoine.morrier@telecom-sudparis.eu> layers: GH1141, Fix host-bit/PREINITIALIZED warning

Validation layers [core_validation] give a warning when transitioning
an image layout from PREINITIALIZED with srcAccessMask = 0. Since the
barrier should be done implicitly when the commandBuffer is submitted,
the message from the validation layers is incorrect.

Change-Id: I0ebc9f300b029237d4d3527e411d88f64c485ac4
/external/vulkan-validation-layers/layers/core_validation.cpp
e12739a56d02ca2fb5f0273862668e7475a21a6c 14-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH321, vkAllocateMemory return code handling

If a custom allocator is used and fails, validation will continue,
using a null pointer and leading to invalid/unuseful validation
errors. Added a check for a good return code.

Change-Id: I2a91f2e9b3b951296b1e452364c863bca6b67b9f
/external/vulkan-validation-layers/layers/core_validation.cpp
c91c376e7f18eba22f2996e514eb4714417fb343 11-Nov-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add null checks to RetireWorkOnQueue

API misuse was causing invalid object dereferences and crashes.

Change-Id: I81ff28b029b984a106a6c60063810e61a07cb945
/external/vulkan-validation-layers/layers/core_validation.cpp
8567fecbf563420f5900ade277ca68908aa87259 03-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Handle secondary cmd buffer transitions

When recording a secondary command buffer into a primary command buffer
record any image layout transitions from the secondary cb into the
primary cb.

At QueueSubmit time we validate the layouts at the primary cmd buffer
level so this change will allow that code to correctly work if
layout transitions occur in the secondary command buffer.
/external/vulkan-validation-layers/layers/core_validation.cpp
350841afb70bf8dcfc3c6ec6b66f0aaa639553a3 03-Nov-2016 Tobin Ehlis <tobine@google.com> layers:Set framebuffer for secondary cmd buffer

If a secondary cmd buffer is inheriting state, need to update the
activeFramebuffer in same way we update active renderPass and subpass.
/external/vulkan-validation-layers/layers/core_validation.cpp
d147a5463f8581604ca542aa1a44a27e512e0f60 01-Nov-2016 Mike Stroyan <stroyan@google.com> layers: Change to including vk_safe_struct code.

Cmake on windows cannot handle multiple projects using generated library code.
/external/vulkan-validation-layers/layers/core_validation.cpp
e9005417571718f4a3c114929e12cb9d088443a2 26-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Tweak CmdClearAttachment handling for error DB

- Align the 'ignored' cases with the 1.0.32 spec
- Use unique error enums in the error cases.
- 01125 isn't a perfect match for what I was trying to fix with
this change, but the code does cover the VU statement.
Possibly an area we can adjust in the spec.

V2: - Set test names properly too.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
932099bcf863cd3cffc0d779a01710a4d28b4c52 25-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Validate VkClearAttachment::aspectMask against aspects present

Fixes #1085

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
71bd13d45fa6d188e8f6ff9c0302aa0514c6ff2a 25-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Rework some names a bit in CmdClearAttachments

I want to use some of these names for other things...

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e92495715edaa63453ce5775bf60f3795df72876 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Add binding for renderpass in pipeline

When creating the cmd buffer<->object linkage, need to account for any
renderPass that is tied to the pipeline and bind it as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
a4a1923d21087ded8e990190acd6752264712319 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Share image aspect validation code

Mult-purpose the image aspect mask validation code to run both at
CreateImageView time and at ValidateBarriers time. There was some basic
image aspect mask validation at ValidateBarriers, but this makes it
more complete and will catch some escapes.

Update the tests related to these checks to account changes in error
messages and also trying to remove some unexpected errors.
/external/vulkan-validation-layers/layers/core_validation.cpp
a7660be5cf06febf98b35674796b8d2e53c77155 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Migrate CreateImageView checks

Move CreateImageView checks from image layer to core_validation.
This is in preparation of dual-purposing the aspect mask checking
code to perform the same check on barriers.

Also updated these checks to use unique errors enums and made
corresponsing changes to the database file.
/external/vulkan-validation-layers/layers/core_validation.cpp
e3effabf8e97cae8e006477806ceaca62e4f2ce7 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename skip_call in CreateImageView

Rename skip_call->skip in CreateImageView()
/external/vulkan-validation-layers/layers/core_validation.cpp
5c6aacf95832467d52b2fde1130b04bef559573a 26-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Don't put self-dep edges in the subpass DAG, or any other junk

We'd already excluded edges to/from VK_SUBPASS_EXTERNAL, but we don't
want any of the other weird cases either; if we attempted to trace use
of an attachment, and found a subpass which /didn't/ use it, but had a
self-dependency, we'd get stuck chasing that dependency recursively
until we exhausted the stack.

Fixes #1094

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
47705d01140c9f1492885e6efc5fa262e7e1c6a0 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor PostCallRecordFreeMemory()

Simplify the code based on review feedback. Don't need loop guard and
don't need to clear the set of struct that's about to be freed.
/external/vulkan-validation-layers/layers/core_validation.cpp
94165f5005d1fa37801d49067fe7751789b89d27 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Fix destroy functions w/ disable flags

All of the Destroy functions Pre* calls had a bug where, if the disable
flag was on, the state ptr and object struct were not correctly set.

Updated all of these cases to first update state ptr and obj_struct and
only then check the disable flag.
/external/vulkan-validation-layers/layers/core_validation.cpp
4710dda89a1dd2e023334d4eda710a394b211cdc 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename EVENT_NODE->EVENT_STATE
/external/vulkan-validation-layers/layers/core_validation.cpp
d379c77e4254a740aa838a82e7af186525524617 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyEvent

Update DestroyEvent to use the Pre/Post call pattern and add a
validation flag.
/external/vulkan-validation-layers/layers/core_validation.cpp
177063aac84fac6f4e650c2629a08b48be643f96 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor FreeMemory()

Updated FreeMemory to follow the Pre/Post call pattern. There was some
old code that I was able to just throw away such as clearing memory
struct members before the struct was freed, a few separate info
messages that aren't very useful, and some broken code that would clear
every mem reference on a cmd buffer when only a single mem object would
be freed.

Also added validation flag, unique error enum, and updated database
file.
/external/vulkan-validation-layers/layers/core_validation.cpp
f6b163ba3de27441b74b200a10285385e3f124c4 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Variable renaming

Rename some vars from camelCase to lowercase to meet style guide.
There was one line where we re-did a calculation that I updated to use
the already calculated value.
/external/vulkan-validation-layers/layers/core_validation.cpp
d74f8771414d9e80618cd7604ea4b1c459dfa42e 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Remove duplicate cmd buffer binding

Memory objects inherit cb_bindings from BASE_NODE so don't need
redundant command_buffer_bindings. Remove that and update the code to
use the standard cb_bindings.
Also renamed a few vars from camelCase while touching code.
/external/vulkan-validation-layers/layers/core_validation.cpp
5f9c0dbd099bd351bc564e0f05170ceeadcc995d 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyCommandPool

Update DestroyCommandPool to use the Pre/Post pattern and add a
validation flag for these checks.
/external/vulkan-validation-layers/layers/core_validation.cpp
cdc73d5b6b64942b377db7220cd16b4045f73c9a 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Update enums for cmdbuffer in-use cases

Add 4 unique enums for cmd buffer & pool free and reset cases.
Update the database file as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
d31a44af6da568692a73201825459689c9431867 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename SAMPLER_NODE->SAMPLER_STATE
/external/vulkan-validation-layers/layers/core_validation.cpp
806095ea973371ad4c82bd0c2c58d53cc5557f0b 20-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroySampler

Update DestroySampler to use the Pre/Post pattern and add a validation
flag for these checks.
/external/vulkan-validation-layers/layers/core_validation.cpp
3f1d2ba6852cf6b1bb4e1f06d690293565108e2c 26-Oct-2016 Tobin Ehlis <tobine@google.com> layers:CreateDescriptorSetLayout cleanup

Streamline duplicate binding check, use [] operator instead of emplace,
remove dead comment and add new comment.
/external/vulkan-validation-layers/layers/core_validation.cpp
0c347fc6b08172b778c259e1a1219a2403495d48 25-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor CreateDescriptorSetLayout

Update CreateDescriptorSetLayout() to use Pre/Post pattern and split
out validation of createInfo for the layout to occur before the
creation of the layout.
/external/vulkan-validation-layers/layers/core_validation.cpp
2083721ccdace484e9cf6f820223d2d471e12fd7 25-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Update error enum for duplicate bindings

Add unique error enum for the case where descriptor bindings are
duplicated.
/external/vulkan-validation-layers/layers/core_validation.cpp
4052946ae557337ff95f3725e879131b1c63f865 25-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename cmd buffer flags for clarity

Fixes #870

CBSTATUS_ALL was not clear so changed to more descriptive
CBSTATUS_ALL_STATE_SET. This mask is used to flag all of the pipeline
state for a cmd buffer as "set." The setting can then be adjusted based
on which state was flagged as dynamic in the pipeline state object.
/external/vulkan-validation-layers/layers/core_validation.cpp
2d0b3724d6f7038d6cea5608b7c3be9637034b84 21-Oct-2016 Jan-Harald Fredriksen <jan-harald.fredriksen@arm.com> Adding input attachment access as optional for attachment optimal layouts.

Change-Id: I0ef3d1af2ef38d218f1721e98eb1d98b326cd340
/external/vulkan-validation-layers/layers/core_validation.cpp
d79335137b414d5f89284a9ab3e014beb4ada3eb 18-Oct-2016 Mike Weiblen <mikew@lunarg.com> layers: Reword from cryptic abbreviations to readable words

Expand abbreviations to improve readability:
DS=depth/stencil
DS=descriptor set
CB=command buffer
VS=vertex shader
FS=fragment shader
VTX=vertex
PSO=pipeline state object

Change-Id: I48fe917aac50d1911fe2a3aa1ed2c739637c7645
/external/vulkan-validation-layers/layers/core_validation.cpp
32cfeefe331adc1f1d779b02b4f60221d9935985 19-Oct-2016 Mike Stroyan <stroyan@google.com> layers: Fix core_validation function declarations

Add VKAPI_ATTR to FlushMappedMemoryRanges and
InvalidateMappedMemoryRanges function declarations.
/external/vulkan-validation-layers/layers/core_validation.cpp
82ed6a21be1831c0c712be3215c34dea6ff79926 18-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Fix cmd buffer to buffer binding

Bind the buffer to the cmd buffer independent of the buffer memory.
Previously in the null memory case we'd bind the cmd buffer to the
buffer without binding the buffer to the cmd buffer. This fixes that
imbalance.
/external/vulkan-validation-layers/layers/core_validation.cpp
4bd8f42e6f6542c0eac2492ce70edc6bebc6a2d8 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Fix memory cleanup at DestroyImage time

Need to ClearMemoryObjectBindings() when an image is destroyed. Do
this even if mem_info is NULL which it will be for sparse bindings.
/external/vulkan-validation-layers/layers/core_validation.cpp
f19cf73769d6fc784ef4c3bf70b85739b4810693 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Update memory helper funcs to use BINDABLE

When getting, setting & clearing memory bindings, work with the updated
BINDABLE superclass of IMAGE & BUFFER state objects.
/external/vulkan-validation-layers/layers/core_validation.cpp
e46491ee6f16b9d29e68914fc6522aba2fde0ad4 11-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Add BINDABLE superclass for image/buffer state

Support for sparse memory binding is virually non-existant in current
validation layers. This is a first step down a long path to improve
sparse binding support.

The BINDABLE superclass is sub-classed by IMAGE & BUFFER state objs
and contains memory binding info in both the single binding and
sparse binding cases.

Bindings are initially encapsulated in the new MEM_BINDING struct.
For single binding cases, things are almost exactly the same as they
have always been. For sparse binding, the various bindings will be
stored in the sparse_bindings set where we initally don't have complete
information on the sparse binding as we only store the MEM_BINDING info
but this is a start.
/external/vulkan-validation-layers/layers/core_validation.cpp
6de0e43adfbd3c049252412d998524e7edbd3796 17-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Fix bad use of PIPELINE_STATE ptr value in errors

Fixes #1056.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
3ec39aeb6d6f08fb1ee45f64f72543a710754c62 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Kill old MTMERGE defines

Just a couple of these lingering that we can now axe
/external/vulkan-validation-layers/layers/core_validation.cpp
219f00ffed576643641976122fa1db8e5fce5dc1 13-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Stop copying INSTANCE_STATE into device

V2: Squash in second patch; resolve conflicts with @tobine's renames.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c2a5a36d03bbe52f5854a5884346e4a84115e259 13-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Pipeline state rename fixup

Overzealous bulk replace changed getPipelineLayout to getPipelineState
layout. This should not have been changed so reverting here.
/external/vulkan-validation-layers/layers/core_validation.cpp
1facd2c91911508b9fb61f54a56269841299f663 13-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename IMAGE_NODE to IMAGE_STATE

Another node->state rename pass.
/external/vulkan-validation-layers/layers/core_validation.cpp
2a0dd15a44bf665c97a3ff6adcbe7fe5853cdf60 13-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyImage

Add validation flag for DestroyImage and update it to follow the
Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
0ffd03853dc28123fa113e6cd49264838559ee39 13-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyRenderPass

Add validation flag for DestroyRenderPass and update it to follow the
Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
127937bcdb5817ee4568887c298ce36c88f3c58b 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename RENDER_PASS_NODE to *_STATE

Another node->state rename pass.
/external/vulkan-validation-layers/layers/core_validation.cpp
a21f0d8ac8389dc4e23749efc02d82a7ec1eaee3 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename DESCRIPTOR_POOL_NODE to *_STATE

Continuing the NODE->STATE renaming effort
/external/vulkan-validation-layers/layers/core_validation.cpp
447df22fc9abae1c38637b5b0a660d2b900a110b 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Kill outdated comment
/external/vulkan-validation-layers/layers/core_validation.cpp
0245b74a083d2cb3b083571deb0fe13b4ab428a4 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Fix framebuffer cmd buffer binding

Wasn't correctly establishing binding between framebuffer object and
cmd buffer object that it's used in. Updated code to use standard
addCommandBufferBinding() function.
/external/vulkan-validation-layers/layers/core_validation.cpp
c54e405a4ce05f4de10bb78bfc3a4769c41d2d59 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename FRAMEBUFFER_NODE to *_STATE

Part of ongoing effort to kill nebulous "NODE" moniker and switch to
"STATE" instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
728a3e68af2277743cc59185dab7281e96480efe 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyFramebuffer

Add validation flag for DestroyFramebuffer and update it to follow the
Pre/Post pattern. This function didn't previously perform an in-use
check so added that check.
Updated database file.
/external/vulkan-validation-layers/layers/core_validation.cpp
1803032f91d772ff3589c9f5a51ade5b299ba538 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Add in-use unique error enums

Pass error enum into ValidateObjectNotInUse function and update
all of the existing calls to pass correct enum.
Also update database file to record checks as implemented and note
test status.
/external/vulkan-validation-layers/layers/core_validation.cpp
c656e38f76da254b8b19e653d0945cabb43329bc 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Add validation to DestroyDescriptorPool

Add validation flag for DestroyDescriptorPool and update it with
validation code using the Pre/Post pattern.
Flag error if descriptor pool is in use and invalidate any cmd buffers
that it was bound to. Remove pool state from map when it's destroyed.
When the pool is destroyed make sure all of its descriptor sets are
also freed.
/external/vulkan-validation-layers/layers/core_validation.cpp
4c0df90de562aa248b524a28b355765d8e3eff25 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Rename PIPELINE_NODE to PIPELINE_STATE

Would like to migrate "NODE" structs to "STATE" as it's more
descriptive of their purpose. This commit changes PIPELINE_NODE
to PIPELINE_STATE.
/external/vulkan-validation-layers/layers/core_validation.cpp
a123662876eebfa844faa65ae3f071d3d77618eb 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Reduce locking window

Don't need to lock around these decls in DestroyImage/BufferView
/external/vulkan-validation-layers/layers/core_validation.cpp
8bd2ec9a26cca477de2de93304774cdba0af77bc 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyPipeline

Add validation flag for DestroyPipeline and update it to follow the
Pre/Post pattern.
/external/vulkan-validation-layers/layers/core_validation.cpp
f61017735c3291a2665487f2bac310578fc60a68 12-Oct-2016 Tobin Ehlis <tobine@google.com> layers:Refactor DestroyImageView

Add validation flag for DestroyImageView and update it to follow the
Pre/Post pattern.

Also made a couple minor tweaks to DestroyBufferView based on review.
/external/vulkan-validation-layers/layers/core_validation.cpp
4f38db6ace251a2f5302c9de6c5d7c791a610505 07-Oct-2016 Karl Schultz <karl@lunarg.com> layers: Updating some CreateBuffer checks to use unique enums

Small batch of updates to use unique validation error enums and
messages for a few checks. Updated the database file and
flagged some other checks that are missing with the error
enums and TODO notes.

Change-Id: I2020a88bbdcf7ea6d725f667523e89b160fe7ab8
/external/vulkan-validation-layers/layers/core_validation.cpp
793fead81a7a480b5609b36121dc5ddd31d7e9df 10-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Add validation flag for descriptor updates

Add update_descriptor_sets flag to bypass validation for
vkUpdateDescriptorSets() call.
/external/vulkan-validation-layers/layers/core_validation.cpp
7286e20c06011d3c6fa7edfbdbadd42bb6e8cc35 07-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Pass unique error codes through descriptor validation

Descriptor validation builds up error strings at multiple levels such as
UpdateError->WriteUpdate->BufferUpdate->BufferOffset. The final error is
then reported via a log_msg() call at the top level.

In order for this design to allow for the new unique error codes, we need
to pass error codes down the chain in the same way we pass error strings
down the chain.

This change adds error msg passing for descriptor updates. Many error
codes are added in as well as comments for codes that are missing or need
to be updated.

The database file is also updated to account for all of the checks that
were updated and/or reviewed.
/external/vulkan-validation-layers/layers/core_validation.cpp
0dcd0f7b37456e2e552d37094ba503c0d089b906 06-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Add flags for some descriptor validation

Add flags that can gate descriptor checks for in-use descriptor,
push constant ranges, and allocate & free descriptors.
/external/vulkan-validation-layers/layers/core_validation.cpp
1c48e214b2ed50690da7f42f2013be3a6ef267df 06-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Updating descriptor checks to use unique enums

Initial batch of updates to use unique validation error enums and
messages for a few checks. Updated the database file and flagged
some other checks that are missing along with "TODO" notes in the
code.
/external/vulkan-validation-layers/layers/core_validation.cpp
a9c6cc532ce0ef61d48d1419a96aae51b0e4c64a 06-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Fix wayland build break

Cut-and-paste error
/external/vulkan-validation-layers/layers/core_validation.cpp
77aa75f997ecb8c39c815d79042d1553c08a9b85 06-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Initial codegen of unique error enums

This is the initial commit of spec.py script that's used to generate a header
and database file that contain unique error enums per valid usage line in the
spec.

The basic usage is just "python spec.py" which will write out a header file to
"vk_validation_error_messages.h" that contains unique error enum values for
each valid usage line in the current spec that's online at
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html

The header also contains validation_error_map with unique enum values as keys
that map to customized output messages for each validation error.

Updated one check to use the new model in core_validation.

The database file contains an enum value and error message on each line, as well
as fields indicating if the enum has been implemented in code and the testname
for a layer validation test that verifies that particular check. Initially the
implemented fields are set to 'U' and testname set to 'Unknown' to indicate that
they haven't yet been checked. Will be updated manually as the code is scrubbed
and new error enums are added.

When updating the header as the spec changes, the "-update" option to spec.py
will pull the database file and use it as a baseline reference to compare against
the updated spec. The script will attempt to keep errors with same message to have
the same error enum. When it's unsure if messages are updated or new, the script
will flag errors for manual review.
/external/vulkan-validation-layers/layers/core_validation.cpp
c6f1a9ab8d9bee0a805a298c9d28f5e81f8877b5 06-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Fix buffer_view destroy ordering

Don't destroy buffer_view from map until after invalidating bound cmd buffers.
/external/vulkan-validation-layers/layers/core_validation.cpp
d3b3114fb37a32af2ba563f784da54a877492b23 06-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Migrate surface/swapchain interaction from swapchain to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ddc5201048319558ce66701163a4546ee957af19 06-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Track current and prev swapchains for each surface in CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0441e6079807d182bec4060d49abc4333551d605 06-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Add handle to SWAPCHAIN_NODE

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4b5890faffa54a735782a6b0a628a991ddc86944 04-Oct-2016 Mike Weiblen <mikew@lunarg.com> layers: Change 'VS' to 'vertex shader'

Change-Id: Ib9b20635225528d2fd6d012e6487d95f27a0f95d
/external/vulkan-validation-layers/layers/core_validation.cpp
d8a53ade6b5501256798a8b4ec0bc14f72adc1fa 05-Oct-2016 Tobin Ehlis <tobine@google.com> layers: Fix state tracking for vkFlushMappedMemoryRanges()

Checks for underflow and overflow when flushing mapped memory where using the
flush offset instead of the original mapped region offset to determine size of
total mapped region.
/external/vulkan-validation-layers/layers/core_validation.cpp
747ce6dd32eafd93da3dc12a6ffd670e746ae453 04-Oct-2016 Chris Forbes <chrisforbes@google.com> layer: Add tracking of surface extensions (and surface objects) to CV

V2: Don't leave commented-out junk lying around; init
SURFACE_STATE::surface in default-constructed case.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d678ec4f57d80aa89c24562e9ffe941d8d69e455 04-Oct-2016 Tony Barbour <tony@LunarG.com> layers: Only validate access masks if layout changes

Change-Id: I21af32fb017de15760d72d4b32d99d84c383755f
/external/vulkan-validation-layers/layers/core_validation.cpp
08d0512735df3d7ee6d2b085e4a2fbcac9d990c2 29-Sep-2016 Tony Barbour <tony@LunarG.com> layers: Check for srcAccess in present barriers

Change-Id: I7722a31a6ef576cf8bc79c6893e70bc4b1cf1c09
/external/vulkan-validation-layers/layers/core_validation.cpp
6e17c244b21ce43ac57404a00a0d844039eed363 04-Oct-2016 Mark Lobodzinski <mark@lunarg.com> layers: Clean up Windows build warnings

Change-Id: Iec47464d56c862cb1a6f132241d200d6f68efa21
/external/vulkan-validation-layers/layers/core_validation.cpp
4a0754042cf090e131e9e769d8a3633c228625be 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Hold device dispatch table by value too

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9172b640a0ae6a92f24ad0609d92b2c228cde89c 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Hold instane dispatch table by value

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
8860b85a52096f9f9b28616bc37feed505497a54 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Rename my_data->instance_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f0f7d8aa2286bd7516d9fb5c2e58890505e3e5d4 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Split CV device and instance data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7d8b6ab1b68c397da50bad43deb1fba389ebace7 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Move queue_family_properties into PHYSICAL_DEVICE_STATE

This isn't instance-wide.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1f8e18308ae29b5220ce300f0d4dc964bc0941d6 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Dont pretend this is phy_dev_data in
GetPhysicalDeviceQueueFamilyProperties

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4b293996aa6a9bd92ef1f0175eca4b0e8a9fd9fc 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of remaining use of single physical_device_state in
instance

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
07a464bd7fec9583f346b8c4b8d43c88d2e9ffa4 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Store ptr from device data to instance data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f71dd305f197826a61f398bff725267a20ea1d90 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Pull enabled_features out into layer_data, rename for clarity

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
3bb2c67470811e4eaf908b3eade82f73aa3f87bc 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Stop pretending phys devices have their own layer_data

They don't -- the dispatch key is the same as the instance.
EnumeratePhysicalDevices just made a mess if there were multiple
physical devices in the system.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b1f16c99e817d67a9f6c87d92e312478de4721d7 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Rename my_data -> instance_data in EnumeratePhysicalDevices

Makes it clearer what this is.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d3578035fec44db2380099c2f59d3e4d8e0b98d6 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Use member initialization for CV state

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
3ac5d5cf74fb5c944554ce5082a5d2fc73e240fa 03-Oct-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of duplication of logic op test between PV and CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f48a83f5b5548cd46a12770c7542ff902537ad3e 30-Sep-2016 Karl Schultz <karl@lunarg.com> layers: gh965 Reading undefined memory is now a warning

Change-Id: I03d021784649f4dbdced4dc34bcf39e7c7a0cfac
/external/vulkan-validation-layers/layers/core_validation.cpp
c307df2953e6b023531a6ef7fd11e3ee2f2c58b0 28-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Complain about subpass mismatch between CB and pipeline

Fixes #933.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a1a137ec383fef3881f86d4c202b1de56a91edf0 27-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Use cmd buffer as src object in callback

One less TODO.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7626815e3c23be98681f3fcf733ee938022af612 28-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Added flags for in_use checks

Added object_in_use flag to disable all in_use checks.
Added destroy_buffer_view flag to disable validation checks at
DestroyBufferView() time.
/external/vulkan-validation-layers/layers/core_validation.cpp
8e0ffae5b5c87fa062229b8c003be10c7e48aea1 28-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Update DestroyBufferView to use Pre/Post paradigm

Add PreCallValidate* and PostCallRecord* functions to DestroyBufferView
according to long-term core_validation architecture plans.
/external/vulkan-validation-layers/layers/core_validation.cpp
77b6217754b9c167b08cb151e70b41a948e36277 28-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add binding between cmd buffer and bufferView

For a texel descriptor update, add binding between bufferView and the
command buffer as well as between underlying buffer and command buffer.
/external/vulkan-validation-layers/layers/core_validation.cpp
38e26abbaa884eb48bfec4ddb4e0ae2c90634e06 27-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add in-use detection for VkBufferView

When VkBufferView is destroyed, flag error if in-use and mark any
bound cmd buffers as invalid.
/external/vulkan-validation-layers/layers/core_validation.cpp
c264142df95edb7eb96b5dc2d87562efce6ded43 28-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add bool to guard command buffer state check

This is the first check-in demonstrating the boolean model to allow validation
checks to be disabled. Going forward we'd like to guard all checks in such
bools which can then be set based on VkValidationCheckEXT enum values passed
in at vkCreateInstance() time.

In the course of adding this noticed a bug where instance_state was not getting
initialized in device layer_data at CreateDevice time. Fixed this bug.
/external/vulkan-validation-layers/layers/core_validation.cpp
75b0d6603382dcb3e3de24c11ea6e4aa2ef8b4d2 27-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Indicate correct source for validateCommandBufferState() error

Fixes #982

Instead of hard-coding vkQueueSubmit, take a parameter to clarify if the error
originates from vkQueueSubmit() or vkCmdExecuteCommands()
/external/vulkan-validation-layers/layers/core_validation.cpp
fb13c2c4174108223d9f8e43084020eb09115ed6 26-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Convert RENDER_PASS_NODE::pCreateInfo to use safe struct

Gets rid of a memory leak, and simplifies the code.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
48a43d923a7b126a78770bd209d63902ffa0520a 26-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Don't accidentally copy safe_VkFramebufferCreateInfo

This isn't cheap.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
66a7318a24c9dd8162a6ae49fd62867a263d4402 26-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Don't add VK_SUBPASS_EXTERNAL edges to subpass DAG.

We don't use them, and handling them safely complicates other code that
works with the DAG.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
db6ad16f7690669bb664b970a8e5c47abb8db9fa 26-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Trim out some more old MT renderpass junk

- RENDER_PASS_NODE::attachments[i].attachment was always i.
- This whole structure is noise; we can use the VkAttachmentDescription
directly.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d17d86d15a733f1ec988956721ea4b7cdfb6771b 26-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Tweak naming of enums moved from SwapChain to CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a96bccebcf27add1b38bfe46c541e1484d7b4d88 22-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Move image-not-acquired etc from swapchain to core validation

Now that Core Validation tracks the acquisition state of every swapchain
image, we can do this.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
220a9249bd81543e570b3f38c79d9b1e82e0d0db 22-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Add tracking of acquired state to Core Validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
449670637ef4214b33018f497cf10daeff9dc85b 22-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Move ACQUIRE_NO_SYNC check from Swapchain to Core Validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
888cae09036ec622d6014e18efbda55e6226cf22 22-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Distinguish never-bound from un-bound memory cases

Fixes #964

Added special MEMORY_UNBOUND handle (0xF..FE) that indicates that memory
bound to an object has been freed. When attempting to bind memory or
checking for bound memory, distinguish the never-bound case from the
memory un-bound case.

For sparse binding case allow for memory to be re-bound.

Update tests to account for new error messages.

There's a sliver of exposure here if an actual memory handle is MEMORY_UNBOUND.
We could remove that exposure by never having unique_objects return MEMORY_UNBOUND
as a handle. I believe the exposure is small enough that we don't need to do that,
but am open to other opinions.
/external/vulkan-validation-layers/layers/core_validation.cpp
1cba4e1b5940c6818572e05dcad5a3a47fafbc9e 21-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Clean up no memory bound checks

When memory is freed make sure to clear bindings in associated objects.

Also clean up reporting of no memory bound errors. Old assumption was that
no memory had every been bound, but it's also possible to hit such errors
if the bound memory was freed prior to operation of interest.
In descriptor error cases where no memory is bound, add a final error string
as clarification since descriptor errors are built up of multiple strings
with details from each function call in the tree.
/external/vulkan-validation-layers/layers/core_validation.cpp
12d5600c2f9e32343016fd944432ba95df370797 22-Sep-2016 Tobin Ehlis <tobine@google.com> layers: A few minor clean-ups from code review

Better use of auto and killing some unneeded code.
/external/vulkan-validation-layers/layers/core_validation.cpp
f940225c9e5e3e14b3f5a32d3ea360b585614600 21-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add in-use check at DestroyImage() time

Flag error if an in-use image is destroyed.
Also clean up a couple minor issues related to binding objects to command buffer.
/external/vulkan-validation-layers/layers/core_validation.cpp
a9fbfe0c622e9fa4b56ddd015ed4c3c409020c2e 19-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add in-use check for renderPass

At DestroyRenderPass() time verify that renderPass is not in-use.
/external/vulkan-validation-layers/layers/core_validation.cpp
03ea795b83fdf0099594808a1a57064dea7f02a1 19-Sep-2016 Tobin Ehlis <tobine@google.com> layer: Add in-use validation for imageView

Bind imageView from a descriptor to the command buffer at CmdBindDescriptorSets
time and check for an in-use imageView at DestroyImageView time.

Also use new AddCommandBufferBindingImageView() helper to bind children of
framebuffer in AddFrameBufferBinding().
/external/vulkan-validation-layers/layers/core_validation.cpp
d85c42a6c1d6ad7a6f684c5bd793aab482b7705c 19-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add in-use check for imageView

Add DestroyImageView time, make sure imageView is not in use.
/external/vulkan-validation-layers/layers/core_validation.cpp
883ee3f865f9dbd83134d148b26e96cb6a926b3d 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add binding for framebuffer children

When BeginCommandBuffer and CmdBeginRenderPass are called, need to bind
not only the framebuffer, but all of the framebuffer's children objects
to the command buffer.
This includes the imageViews that are in the attachments as well as their
children and the renderpass.
Added this binding and included IMAGE_VIEW_STATE* in framebuffer
attachment struct for simplicity when creating binding.
/external/vulkan-validation-layers/layers/core_validation.cpp
7e5c0c26004626cf6826dfe2779a738a1f9f1fff 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add support code to handle in_use for missing objects

Add case block to in-use Increment/Decrement functions to handle the missing
object types that may be bound to a command buffer. The actual bindings for
these missing types will be added in a future commit.
Here are the types that were added:
VkBufferView
VkImageView
VkDescriptorPool
VkCommandPool
VkFramebuffer
VkRenderPass
VkDeviceMemory

Also added new error enums for all of these type except RENDERPASS which already
had an appropriate error enum.

Unify object BASE_NODE look-up for removeCommandBufferBinding() and
DecrementBoundResources() to use common GetStateStructPtrFromObject() function.

Finally, had to update the state-wrapping class for DescriptorPool, DeviceMemory
and RenderPass to derive from BASE_NODE so that in_use can be tracked.
/external/vulkan-validation-layers/layers/core_validation.cpp
39267c0c27b8f032f05a6747eb02d4508247fdc1 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Update BufferView state tracking

Create BUFFER_VIEW_STATE class to hold VkBufferViewCreateInfo and update related
state tracking. This class derives from BASE_NODE in preparation for tracking
in_use for BufferViews consistent to other object in_use tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
79fde938178535f598e030a0e9d19a0cb61b72e0 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Update ImageView state tracking

Create IMAGE_VIEW_STATE class to hold VkImageViewCreateInfo and update related
state tracking. This class derives from BASE_NODE in preparation for tracking
in_use for ImageViews consistent to other object in_use tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
00e8ce2e6c1c191758f7b7c15eeaf350e5b4a3b6 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Clean up in-use decrement for bound objects

Decrement in-use in a single location via ptr to BASE_NODE for each bound object.
/external/vulkan-validation-layers/layers/core_validation.cpp
162dac96d3883e8fffaa1f988043f62c06662d2e 14-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Clean up in-use increment for bound objects

Simplify code with a single error call and in_use increment based on common
base class.
/external/vulkan-validation-layers/layers/core_validation.cpp
d4513979120463171eb479cdded9336eb9944da1 21-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Fix tracking of WSI fence retirement

Previously we'd note that the fence wasn't submitted to a queue, and so
never call RetireWorkOnQueue, which is the only thing that marked the
fence as retired. In the WSI fence case, we still aren't doing any
tracking of completion of the WSI operation (we should! image ownership
is easily fouled up!) but we can at least retire the fence.

Fixes #954.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b3ecd4c1fb44a2e65dfc13256afa9150aabde1d4 21-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Extract RetireFence helper from WaitForFences/GetFenceStatus.

This does the same thing in both places.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
90b7c8c094c263b33382ff4756f2a23f484e8400 19-Sep-2016 Gregory Mitrano <gregory.mitrano@gmail.com> GH-951 Fixed consistency issue with mip size calculations
/external/vulkan-validation-layers/layers/core_validation.cpp
9ecb1daf727b16dfa6a26236bd93cd75f4d12696 19-Sep-2016 Gregory Mitrano <gregory.mitrano@gmail.com> GH-951 - Improve validation for minImageTransferGranularity

Added missing BC1_RGBA formats to vk_format_is_compressed function
Added function in vk_layer_utils to get block sizes for compressed formats
/external/vulkan-validation-layers/layers/core_validation.cpp
9c4006684a13db43f0dbc8d0015a9ef34872ca09 16-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of old CBSTATUS-based dynamic viewport and scissor

These were superceded by the precise tracking of dynamic scissors and
viewports.

Fix up the tests to look for the precise errors, and get rid of the
broken clearing of static scissors & viewports, which triggered other
errors.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
07a398f7c8da45c8286cba4ef33239646ee87dc9 13-Sep-2016 Karl Schultz <karl@lunarg.com> layers: Cleanup unexpected push_constants msgs

Fix to core validation CreatePipelineLayout to change
a message from warning to error.
Fixes to PushConstants layer tests to fix unintended
validation errors and to avoid generating multiple
intentional errors in a single test.

Change-Id: I618d6e5aff55fa918da5bd81c47092174b266da1
/external/vulkan-validation-layers/layers/core_validation.cpp
5f270eedee8426a5b556a8a9432dd836d83f7b51 13-Sep-2016 Tony Barbour <tony@LunarG.com> layers: Only save p-devices if call was successful

Change-Id: Ife211b1b2dc97c5bab0d6e7b177ead6b1a6105d3
/external/vulkan-validation-layers/layers/core_validation.cpp
5dcdd90e54199dfeb29938a3a03d998397c22664 08-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Require VkGraphicsPipelineCreateInfo::pDepthStencilState

If the subpass uses a depth/stencil attachment and rasterization is not
disabled, then this structure must be present.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d5365427feb4a6c16371ecb651afa37b89dabd96 13-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: tweak comments from review feedback

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b7476f4c4998ae20e579bd2d134667b71acdbf91 09-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Don't do cross-stage validation if individual stages failed

There are only crashes and nonsense down this path.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0cfa9c3a1747749777581684536218f83c3977a9 09-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Don't bother continuing after missing entrypoint

There's very little we can do here.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
21a714edaf9b670a60102430c36b221ff27f0f25 09-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: make CmdClearAttachments messages errors again for now.

There's some spec contradictions, captured in !488. For now, let's say
that these are errors. This commit can be reverted if !488's resolution
retains the noop behavior.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7386605ae0fe78241c997605a843bdc9a5499e2b 08-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Make d/s CmdClearAttachments without d/s attachment warning

This is pointless, but well-defined. Rework warning message to not
reference the VkClearAttachment::colorAttachment, as it's only
meaningful for color clears.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
dd2e11f29131ab2a77ccb9ae0c4c5c3bcf95c1d5 08-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Add VK_ATTACHMENT_UNUSED warning case for CmdClearAttachments

This is a pointless clear, but well-defined.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1710af939cd452f3c02e93f598f20e5e12eb6c3b 08-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: CmdClearAttachments colorAttachment is index into subpass

We were previously treating this as being an index into the renderpass
attachment descriptions, but that's nonsense. It's also well-defined
what happens if an out-of-range index is provided, so downgrade to a
warning.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e7791f94c78a28cdbaf48235c8aefca78ca0d0dd 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Move in_use.store(0) to BASE_NODE constructor
/external/vulkan-validation-layers/layers/core_validation.cpp
2f8cbf3b166e175174877a59929902e005953d6d 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Update bound object increment and decrement functions

Unify the handling of in-use increment/decrement for QueryPool, Pipeline,
Image, Buffer, and Event objects.
/external/vulkan-validation-layers/layers/core_validation.cpp
f4cc4424ca6a7819cd8e9ed646d337b4a74ed7f3 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Clarify in-use object error message
/external/vulkan-validation-layers/layers/core_validation.cpp
f57cf525e45f3a65e25c2691464d65e29a79ba77 27-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Improve map cleanup on object deletion

If object deletion is skipped due to validation error, don't remove object from map.
/external/vulkan-validation-layers/layers/core_validation.cpp
eafbf0b68ee6ea6e0bf33f07e0058d00a96efd9a 18-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Add detection for in-use query pool & clean-up destroys

Flag error if in-use query pool is destroyed.
Unify in-use error reporting to use common function ValidateObjectNotInUse().

Clean up Destroy functions to only remove objects from maps if skip is not set
for semaphores, events, querypool, pipeline
/external/vulkan-validation-layers/layers/core_validation.cpp
0421424eeed39384b1557ccad6908d7baf29d716 18-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Flag error on destroyed pipeline in-use
/external/vulkan-validation-layers/layers/core_validation.cpp
c2f1641edf568a0ad1383bc65d0239227dd1926c 18-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Flag error on destroyed sampler in-use
/external/vulkan-validation-layers/layers/core_validation.cpp
f909505280723ee24d2e74afc759d38dc09a37be 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Rename pCB to cb_node

Just updating functions as I touch them to avoid too much noise.
/external/vulkan-validation-layers/layers/core_validation.cpp
6f62283faa835f7fd302771a3a693d1aafff4652 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Print framebuffer object type

Distinguish "framebuffer" object type from "buffer" when printing
object type for output messages.
/external/vulkan-validation-layers/layers/core_validation.cpp
ea371fa7c8c57edb4d1436e4570cf54f3fc0463f 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add cmd buffer binding for fb images

Fixes #915

When binding framebuffer to command buffer, we need to also bind the
underlying images. Then, if images are destroyed, the cmd buffer
will correctly be marked as invalid and an error will be flagged if
an attempt to submit the cmd buffer is made.
/external/vulkan-validation-layers/layers/core_validation.cpp
02a3382f28fc7c6ec6018165be88aa6fc4f05c9e 07-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Add error for CmdEndRenderPass before reaching final subpass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0e21dda98453b5ced1fe7a2ffd5ca4b21847fe09 07-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Make CmdEndRenderPass more careful about side effects on failure

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
80281691386b37385846f21b38e8c9d4b12cc74e 07-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: add error to CmdNextSubpass if stepping beyond last subpass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
96ebb1e373cc0993339e2ecc1dc47e9918406f87 07-Sep-2016 Chris Forbes <chrisforbes@google.com> layers: Make CmdNextSubpass more careful about side effects on failure

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ea8e85ade623a09c601d939622cbd7740d8d66c9 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Add MEMTRACK_INVALID_MEM_REGION error

Add new enum value "MEMTRACK_INVALID_MEM_REGION" to track case when a
region of an allocation bound to an image or buffer is not valid due
to the memory not being correctly updated.

This was previously aliased to USAGE_FLAG case which was masking the fact
that there are no tests written for this invalid mem region case.
/external/vulkan-validation-layers/layers/core_validation.cpp
dc21d4c322604e04e0b8433970f6a1ced6a0b647 07-Sep-2016 Tobin Ehlis <tobine@google.com> layers: Clarify invalid memory message

Fixes #906

When reporting an invalid memory region, include the object type and
handle that is bound to that region.
/external/vulkan-validation-layers/layers/core_validation.cpp
e8f1d00379587293d46b993a598f519d07b77f37 06-Sep-2016 Karl Schultz <karl@lunarg.com> layers: Use actual enum type name in err msg

Change-Id: I4e7933349068984d7c99577158b6ff272e1d5282
/external/vulkan-validation-layers/layers/core_validation.cpp
28db3859aeeca6ab2fcbe51e016c2b785d158edc 31-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Impose singlesample/multisample constraints on input attachment descriptors

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c827a5880dc3fabfc7d1a58bb62798649cab1181 01-Jul-2016 Mark Young <marky@lunarg.com> loader: gh888 Add KHR/EXT extensions in vulkan.h

Add the KHR_display_swapchain device extension to the loader
and the core_validation layers. This fulfills the work required in
JIRA LOAD-7 and gh 90.

Add debug_marker to the extension list.

Change-Id: I1fb70e5d44bc8c1f70fd6d1cfbd106a155081b25
/external/vulkan-validation-layers/layers/core_validation.cpp
99d938c90c2f000ee73fb13513dacf84ffa5651f 24-Aug-2016 Mark Mueller <markm@lunarg.com> layers: GH428 Adding skip_call to DestroySemaphore

Use skip_call return from log_msg callback to decide
whether or not to pass the call to lower layers.

Change-Id: I96090539e9001bbda32533055b143c872d88e4bf
/external/vulkan-validation-layers/layers/core_validation.cpp
c72f92cc2c217e46f843449a05370129aeac5596 30-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix Dota2 crash in Windows

Two issues, in_use was not initialized in SAMPLER_NODE and an invalid
access during resource tracking for SAMPLER_NODE and SET_NODE. This
occured during GetFenceStatus after a call to DestroySampler.

Change-Id: I7654a7c4a2677450097643422f44290be5dbac2a
/external/vulkan-validation-layers/layers/core_validation.cpp
5a8cba534d14ce341ba7a2100a542e93f0e3033c 26-Aug-2016 Tony Barbour <tony@LunarG.com> layers: Allow input attachment usage in CreateImageView

Change-Id: Ic0bea63b6ec898e496ba124b57ad8b848bdd0b7d
/external/vulkan-validation-layers/layers/core_validation.cpp
eebf670a2f04c402f2875f85aa4f889b06db48fc 23-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add validation for image samplecounts

Check that an image's sampleCount is valid for BlitImage,
CopyImageToBuffer and CopyBufferToImage.

Change-Id: I5e012e35bd2eb87cd42798a0cacdb03ed64b3c3b
/external/vulkan-validation-layers/layers/core_validation.cpp
3a1adf43eb19fc8e32b5cf64eab56d120d6e00e8 23-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: return collect_* result containers rather than using & out

This is clearer at the call site, should be no slower in C++11+, and
complies with the style guide.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1abb984ebd667af808ed308ddf79cbaeaed129ca 22-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Update descriptor binding to use an ordered map

When dealing with dynamic offsets, the binding numbers, and array indices within
a binding, are all sequential.
This is according to the spec "Descriptor Set Binding" section which states,
"...entries are ordered by the binding numbers in the descriptor set layouts; and
within a binding array, elements are in order."

This means when processing the binding numbers to validate the dynamic offsets at
draw time, we should do so in order to make sure that the sequential dynamic offset
index correctly correlates with the dynamic offset being processed.
/external/vulkan-validation-layers/layers/core_validation.cpp
c3eda058338f7ba4e776ec74202b1c95ce6e6220 17-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Refactor functions to bing image/buffer to cmd buffer

The AddCommandBufferBinding[Image|Buffer]() functions both had an
unused parameter that was killed, and they both returned a bool
that was not needed so removed that too.
Also made layer_data* param const and put prototypes into
core_validation_types.h in prepration of using these functions
from the DescriptorSet class.
/external/vulkan-validation-layers/layers/core_validation.cpp
56f8a8f9b7e8c01d76d73be117ebcb66035db6df 17-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Add tracking between sampler and cmd buffer

Update SAMPLER_NODE to inherit from BASE_NODE and keep track of
cb_bindings for sampler.
At draw time, add any bindings between cmd buffer and samplers that
are connected to active descriptors.
At DestroySampler() time, set CB_INVALID for any cmd buffers in
cb_bindings.
Also includes some additional plumbing to prepare for connecting
images/buffers that are tied to descriptor sets to cmd buffers that
those sets are bound to.
/external/vulkan-validation-layers/layers/core_validation.cpp
aa21bc3b3c5c7adfeb488fc80bdcb339d63615b8 17-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Only bind active sets to cmd buffers

Don't create a binding between every set bound to a cmd buffer, but only
the sets that are verified active at draw time.
Gather up active descriptorset bindings in prepration of also binding the
resources from each individual active set to the cmd buffer.
/external/vulkan-validation-layers/layers/core_validation.cpp
5c288f35b2eab0dab95d18768235fef6ffd69b30 17-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Migrate PIPELINE_NODE to core_validation_types.h

Move PIPELINE_NODE struct to core_validation_types.h so that it's visible to
descriptorSet class. Update cmd buffer lastBound state to store ptr to
PIPELINE_NODE instead of VkPipeline which saves extra lookups.
/external/vulkan-validation-layers/layers/core_validation.cpp
9a61300d900fe3e43e9a03c7fa6876934bc1264e 22-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Minor re-naming in core_validation

Rename a bit of code as I touch it to match general code style.
Switch a few CamelCase to lower_case and use "dev_data" instead
of "my_data" as it's more descriptive.
/external/vulkan-validation-layers/layers/core_validation.cpp
a45bdcb94b2fbda36bc191e12cc20218f62fb0e0 21-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Add descriptor sets to CB_INVALID tracking

This is start of a series intended to enable CB_INVALID tracking for
descriptor sets. Much of the tracking is already in place in the
special-purpose uniqueBoundSets data struct, so I'll be migrating
the tracking from that struct to the more general-purpose
object_bindings set.
/external/vulkan-validation-layers/layers/core_validation.cpp
e7f1fab24ce4b59bce87246a510b7e52638f83d0 23-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH877, Clear up descriptor state messages

Plumbed function name through for more descriptive error
messages from validate_and_update_drawtime_descriptor_state().

Change-Id: I109e14e07e6a5ba29c45dc3e0ad075ff3575d67f
/external/vulkan-validation-layers/layers/core_validation.cpp
f7f74f870488f026061dec2d4d3c3329a25d4dcd 22-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add Image Transfer Granularity checking

CmdCopyImage and CmdCopyImageToBuffer/CmdCopyBufferToImage have
parameters that must respect the Image Transfer Granularity
requirements set in queue family property minImageTransferGranularity.

Change-Id: Ic0fed33c201310bafe86f6f509a63b675de1d572
/external/vulkan-validation-layers/layers/core_validation.cpp
1afd60fa23eaee2000e232efd5d05a64224a91dc 23-Aug-2016 Tony Barbour <tony@LunarG.com> layers: Leave INDEX_BUFFER_BOUND set in set_cb_pso_status

Change-Id: I5ca986c95b97cdf97a0f65b0c34db32d91428645
/external/vulkan-validation-layers/layers/core_validation.cpp
f95c35481cba95e16f9e70a62df61b49e2085076 22-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Allow get_fundamental_type to look through OpTypeImage

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
eeb9f6a27f1acc11e54080fb3bcda7b513b5c89f 22-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Validate fundamental type for input attachments

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e0cc9b3441a24e4fbd2b4e0a9d163dab2140264a 22-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Correctly handle input attachment collection w/ arrays

Fixes the test added in the previous commit

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c024994b70f304ed7c6a472b90803c9911be09dd 22-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Require every input attachment used by FS to be present.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
745d49409296f060402b57950384caadb636a2b2 22-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Add helper to collect shader's use of input attachments

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
5f06b9eba1bf89d4066ca44120dcb72c4cf44104 15-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH820, MapMemory shadow copy alignment

For host-visible non-coherent memory, the validation layers use a
shadow copy of the mapped memory region. Added proper alignment
for the shadow copy, fixed handling of offsets, and implemented
resolve of the shadow data on invalidate calls.

Change-Id: I88815799865d3a30c76e16cf96ace630e1bbcf2d
/external/vulkan-validation-layers/layers/core_validation.cpp
9867daedbf52debc77d6568162ee21e071699b80 01-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Rework work tracking

This fixes cross-queue work tracking, while keeping everything else
working.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9e21e56fc23ade48efd3752d2e2729895eb90349 16-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH819, Fix non-coherent memory shadow copy

InvalidateMappedMemoryRanges was not updating core validation's
shadow copy of non-coherent memory.

Change-Id: I7b5e05791405871489014d6b08595c9bae941185
/external/vulkan-validation-layers/layers/core_validation.cpp
eefe1df8a93c1cbfb1815488501c61d9e57515ea 15-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH822, handle WHOLE_SIZE for mapped memory

A support routine for FlushMappedMemoryRanges and InvalidateMapped-
MemoryRanges ignored VK_WHOLE_SIZE, causing invalid memory accesses.

Change-Id: I28616faa1339a394a3462e72780efd1b852ac489
/external/vulkan-validation-layers/layers/core_validation.cpp
1d659b4113b77a95325df10d602a03f1e7abf8b7 16-Aug-2016 Mark Mueller <markm@lunarg.com> layers: GH424 add check of skip_call results to CreateDevice

skip_call result was ignored allowing for exception violations
under some test conditions.

Change-Id: Ied673a9b932210de52ed189c67221af60415cae9
/external/vulkan-validation-layers/layers/core_validation.cpp
7dc3fbb89e2dcf3df8fc2e6639a867a959fef3f3 12-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Style fixup, don't use pass-by-reference params

Change pass-by-reference to a ptr to comply with Google style guide.
This way it's more clear that function is modifying param, especially when calling.
/external/vulkan-validation-layers/layers/core_validation.cpp
623548a271287ae55415e45e3c654ee66d4e79ff 12-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Naming corrections

Some minor fix-ups to variable names and comments for memory aliasing code.
/external/vulkan-validation-layers/layers/core_validation.cpp
f989de4217bce0f293121d0da53dc8328276370f 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Refactor set/validate memory valid functions

Create custom image and buffer versions of functions to minimize casting.
/external/vulkan-validation-layers/layers/core_validation.cpp
9f12a235bb9c014878a98ce385b68587add2538a 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Push some casts into helper functions
/external/vulkan-validation-layers/layers/core_validation.cpp
f541bf53dee6daf82a4c8304354eac599a884d29 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Handle memory mapped prior to object binding

This adds initial support for memory that is updated via a MapMemory() call
prior to an object being bound. Initially any mapped allocation will just have
global_valid set for whole allocation. This value is then picked up by any
ranges made off of that allocation.

Really, we need to create new mapped regions and mark them valid, then make
sure that any overlapped objects pick up valid from mapped regions. This
requires more thought and design, though, so commiting this changes as a
simpler and incomplete initial fix.
/external/vulkan-validation-layers/layers/core_validation.cpp
cf17f50f6489504c0d8151c46d6f77404ce2ffff 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers : Update memory valid to be per-range

We previously only tracked a single valid bool for an entire allocation.
That can easily get out of synch when multiple objects are bound to the
same allocation. This update moves the valid tracking to be per-range so
that it can be tracked on a per-object basis.

This does handle aliasing cases where various objects completely alias each
other, but there are still various aliased resource cases that aren't handled.
/external/vulkan-validation-layers/layers/core_validation.cpp
5360871dd546e8aa7c1a273e9036c201fe4e3ffb 10-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Refactor InsertMemoryRange

Work with local MEMORY_RANGE struct and insert to map at the end.
This avoids a loop pass and the awkward loop check of a range against itself.
Adds the slight complexity of storing aliases during loop and updating them
after the loop, but I prefer that to the alternative.
/external/vulkan-validation-layers/layers/core_validation.cpp
825446075d5f6c6b531754c0709bddd9dae8945f 08-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Update bound memory tracking and alias checking

Store all ranges bound to a single memory allocation in a single map indexed by object id.
Add two separate unordered_sets for independent image and vector processing.

Added a set of aliases to MEMORY_RANGE struct to hold any aliased ranges.
Insert aliased ranges at create time and remove the aliases when a range
is destroyed.

Have a single function, rangesInterset, to track if regions bound to a memory
allocation overlap, and if linear/non-linear overlap in violation of the spec.
/external/vulkan-validation-layers/layers/core_validation.cpp
59b0561b0bd298885f90b9f524c0583cd8ee6f61 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Refactor function names

Capitalize first letter of Validate[Image|Buffer]UsageFlags() functions
/external/vulkan-validation-layers/layers/core_validation.cpp
ff97b06aed7555ae043b3920bdfbd36b31498d89 11-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Fixes GH846 Use IMAGE_USAGE bits for images

Cut-and-paste bug. Various checks for images usage flags were being made
against BUFFER_USAGE enums instead of IMAGE_USAGE enums
/external/vulkan-validation-layers/layers/core_validation.cpp
7bd96b29f4b8df99339ff1f7bc64f2f8940f8d25 10-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH790, Validate queue family at submit-time

Command buffers must come from a command pool created with the same
queue family index as the queue they are submitted on.

Change-Id: Ifd1d73a09643c11852d807cb7edfc881827005dd
/external/vulkan-validation-layers/layers/core_validation.cpp
c74f9e8c7fe6b470f757da0c42367fe725fe0928 10-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Adjust color/input attachment layout checks style

For consistency with depth

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b05be7c81dfbaef10cf00e2cc1c3832026fde765 04-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Fix MapMem image layout validation

When mapping memory, check all of the bound image ranges and for any
that overlap with the map range, make sure that the image layout is
either PREINITIALIZED or GENERAL.
/external/vulkan-validation-layers/layers/core_validation.cpp
f57fc64ac43691ad98e1713886b345465573070a 04-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Rename validateMemRange()

This function is only used in MapMemory case so renamed to
ValidateMapMemRange() and added a header comment to make use
more clear.
/external/vulkan-validation-layers/layers/core_validation.cpp
de1d2592cdd497642de5b0e6f27ebc439018383b 04-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Rename DEVICE_MEM_INFO struct members

Update names from camelcase to lowercase w/ "_" as we're slowly migrating
to that uniform style
/external/vulkan-validation-layers/layers/core_validation.cpp
3f23941d5e6f60644471c149fb1b7171dfc0a02a 04-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Remove image member from DEVICE_MEM_INFO

The image member is broken and was superceded by objBindings which track
all objects bound to a single memory allocation.

This is also temporarily disabling a check for image layout when mapping
memory, but that check was broken and will be fixed in subsequent CL.
/external/vulkan-validation-layers/layers/core_validation.cpp
cfa128db908c2462aaf616950fb2fdb9d2f92bc1 08-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Account for read-only depthstencil attachments in ValidateLayout

The depth stencil attachment can be DEPTH_STENCIL_READ_ONLY_OPTIMAL.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1af6125615cd6dd9735d32e2ee8684abeff28d41 19-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Remove duplicate framebuffer incompatible check

The existing DRAWSTATE_FRAMEBUFFER_INCOMPATIBLE check was a duplicate
of a check performed a few lines earlier in the validateFramebuffer()
function.
Update the check in that function to use the DRAWSTATE_FRAMEBUFFER_INCOMPATIBLE
enum and remove the duplicate check.
/external/vulkan-validation-layers/layers/core_validation.cpp
038f931c1696f3e96aeec0e3786b5a47acf908e1 05-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: Reenable fix for DS layout transitions

Fix for GH650, plus added fix for cube/tri.

Change-Id: I66c2332c30eb34a0f022c033efd9b1c5b8284c32
/external/vulkan-validation-layers/layers/core_validation.cpp
bf843706a6bd06aa52726ac0f1e44659bbc971a9 04-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Disable previous fix for DS layout transitions

Fix to always transition both depth and stencil aspects for DS images
is causing errors on cube and tri. Disabling the fix and test for now
to avoid unwanted false positives.
/external/vulkan-validation-layers/layers/core_validation.cpp
915963fbb05941d3d457f62d6ef61d066b7d73a9 01-Aug-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH650, Fix D/S image layout validation

When an imageView of a depth/stencil image is used as a depth/stencil
framebuffer attachment, the aspectMask is ignored and both depth and
stencil image subresources are used. Validation was throwing errors
as only the specified aspectMask transition was tracked.

Change-Id: I4f45eec74040448ba3ed52b07268fab3b3cb9318
/external/vulkan-validation-layers/layers/core_validation.cpp
312129ec52e6249aa453e27e6be17a8dab1e98b8 03-Aug-2016 Tobin Ehlis <tobine@google.com> layers: Check vtx buffer binding

Need to check vtx buffer binding based on binding values set in
pVertexBindingDescriptions array if present.
/external/vulkan-validation-layers/layers/core_validation.cpp
d61de0e68063faa169a9a632f811c9c9adec9897 23-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Fix bug in cmd buffer framebuffer binding

If cmd buffers were freed via DestroyCommandPool, then the framebuffer links to the
individual cb_nodes were not getting cleared. Fix that issue.

This is initial, simple solution to avoid crash, need smarter solution long-term.
/external/vulkan-validation-layers/layers/core_validation.cpp
488514f7ca0a92f1d493e5da62ab697e65731854 01-Aug-2016 Chris Forbes <chrisforbes@google.com> layers: Fix #808 broken mapping of image types to view types

This was trying to be too clever, and was foiled by bad assumptions
about the enum order.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7d33205c3aa4aba751a2c07f956634aac616f916 24-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Add some TODOs for weird code that should go away

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
92266400d04f896c6a64669af4056d8774a34fbe 23-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Drop QUEUE_NODE::device

This was unused.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b0df98f4fa837a06691c1e3c05b4ed21c7e2d014 28-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Track valid dynamic scissor and viewport indices with masks

CmdSetViewport/CmdSetScissor were broken; they assumed the update
replaced all the viewports/scissors; further, the drawtime validation
was too aggressive -- nowhere does the spec require the number of valid
dynamic viewports/ dynamic scissors to be equal to the number used by
the PSO; just that all viewports/scissors used by the PSO must be
provided.

V2: Add more parens to quiet warnings in android build

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
2aa6e0c0e34095c0c84699f98172d05750a9c587 25-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Generate appropriate sets of requirement flags for OpTypeImage

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b2a61f3cd17c68887759817059fa1872f1e1464a 25-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Add plumbing for descriptor requirements

We want to be able to impose requirements on images & views bound to
descriptor sets based on their usage in the shader. This adds the
plumbing from pipelines into descriptor sets to enable that.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d4ee9fdb2def1e9dc70c5627c9103e264471b8eb 22-Jul-2016 Michael Lentine <mlentine@google.com> layers: GH722 Add query function calls from secondary buffers.
/external/vulkan-validation-layers/layers/core_validation.cpp
a968f468c0aafdf33b7af68fb8e7961e37e32f7f 21-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Fix copy-paste "DEPTH" instead of "STENCIL"
/external/vulkan-validation-layers/layers/core_validation.cpp
c37c65e9ff3a0abc86e706ee61d21e1dec882731 20-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Fix image aspect checks

Previously validation required DS images to have both DEPTH and STENCIL
aspect bits set, but spec only requires that at least one is set.
Also, we weren't checking case of depth or stencil only formats, or
color format to make sure that correct aspect mask was set.
/external/vulkan-validation-layers/layers/core_validation.cpp
373469f006399d6b5204ee05db3b56beb168b36f 06-Jul-2016 Mark Young <marky@lunarg.com> layers : gh682 move gipa dispatch table init

Move the GIPA setup of the dispatch tables for layers into
the layer_init_device_dispatch_table call since we're already
doing a majority of it there. This removes the need to separately
setup the WSI extension entry-points.

Additionally, memset the table to 0, just to make sure anything
that gets added in the future is obvoiusly not set.

Change-Id: I63c7c107cd9f7957e2766fdbeb8a06bc1ae0eda6
/external/vulkan-validation-layers/layers/core_validation.cpp
12e3a5f6e672b103f705424595ffe3c4687492ce 21-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Check BUFFER_CREATE_SPARSE_BINDING_BIT for buffers
/external/vulkan-validation-layers/layers/core_validation.cpp
694002f8c182c84fc2b670f1cbb1a838119b1c14 20-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Refactor buffer/image validation functions

Add some consts and put fwd decls in core_validation_types.h so that these
can be used by descriptor_set class.
/external/vulkan-validation-layers/layers/core_validation.cpp
92bc0680357019834b7529148ab6d73353ce02c7 20-Jul-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix Windows build warning

Change-Id: Ic40ff6cb79882be92abbb2d8c02298962c73e46f
/external/vulkan-validation-layers/layers/core_validation.cpp
0dc3fd4e57b8531638781daa01a2fb5d1048a6fb 06-Jul-2016 Jamie Madill <jmadill@chromium.org> layers: Fix an MSVS error and a warning.

Fatal error C1017: invalid integer constant expression
warning C4389: '!=': signed/unsigned mismatch

Change-Id: I13e06f1578e47a0076241e1a344f4f05ae6d50c2
/external/vulkan-validation-layers/layers/core_validation.cpp
cefd4dd8e03c5dae11a05d04a03cb856190358e0 19-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Relax SC descriptor binding uniqueness to allow split variables

This allows the separate sampler & image variables case from 13.1.4 to
work correctly.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
67d9e049b7eb6a440707031b8eb7ddd21061e1ab 19-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Allow consuming COMBINED_IMAGE_SAMPLER as separate pieces

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
15a574466ede280b595c451ad52f2b7b18f20b2d 19-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Kill redundant DRAWSTATE_PUSH_CONSTANTS_ERROR case

This check was really an INVALID_PIPELINE check that is already
handled by object_tracker so killing it in core_validation.
/external/vulkan-validation-layers/layers/core_validation.cpp
833764b21e2893b6ea057fe211c220ec6a83d09c 18-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Replace INVALID_EVENT check with OBJECT_INUSE

If an event being destroyed is in use, the correct error enum to use
is DRAWSTATE_OBJECT_INUSE.
/external/vulkan-validation-layers/layers/core_validation.cpp
5c2563284eeaaa37c12558fd541e2416fe618a38 18-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Replace INVALID_SEMAPHORE with OBJECT_INUSE check

DRAWSTATE_INVALID_SEMAPHORE was bad name for what is really another
instance of DRAWSTATE_OBJECT_INUSE check. Updated the check to use
the new enum and removed the doc entry for the old check which is
no longer used.
/external/vulkan-validation-layers/layers/core_validation.cpp
de7672b6b749c09c5991bd8038b3a35ef82a69dc 18-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Remove DRAWSTATE_INVALID_POOL check

This check was only flagged when Allocating descriptor sets or resetting
a descriptor pool, and in both cases object_tracker will be the first layer
to identify and flag the error.

Removing this as a redundant check and updating documentation.
/external/vulkan-validation-layers/layers/core_validation.cpp
77c531defc2e8614acee0969b170cc2fa68f55d3 19-Jul-2016 Tobin Ehlis <tobine@google.com> layers: GH773 Check improper renderpass layout for only first use

Only verify that a LOAD_OP attachment does not have first layout of *READ_ONLY*
type on its first use. The spec language this is checking is from section
"7.1 Render Pass Creation" :

The first use of an attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
if the attachment specifies that the loadOp is VK_ATTACHMENT_LOAD_OP_CLEAR.

Previously we were checking this condition on all uses of an attachment
which would incorrectly flag errors on proper uses beyond the first use by
later subpasses.

Note that validation for CreateRenderPass has a fair amount of duplication and
still needs to be cleaned up to consolidate work that's currently being done
before and after the call down the chain. This is simply a singular bug fix.
/external/vulkan-validation-layers/layers/core_validation.cpp
06811df0256552cd7da9d7297672af377463fc4a 13-Jul-2016 Mark Mueller <markm@lunarg.com> layers: Fix minor completeness/performance issue

The first time the condition is discovered it will
be the same as every subsequent time, so there is
no need to continue. Also, the whole structure must
be compared, so memcmp assures that will happen
with good efficiency

Change-Id: I71f608c71f83ebcd02212bb391a30bdf15279ff6
/external/vulkan-validation-layers/layers/core_validation.cpp
6de3c6ffa0819ee37cd5cecee918b062145e2ff1 16-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Update clearValueCount check

The pClearValues array is indexed by the attachment index which
means that it must be at least as large as the last LOAD_OP_CLEAR
attachment in the renderpass. Updating this check to reflect this
requirement.
/external/vulkan-validation-layers/layers/core_validation.cpp
7165385f3a39f1f951f3a6a9a06ed2cce4642b6d 15-Jul-2016 Mark Lobodzinski <mark@lunarg.com> layers: PR767, Fix crash exiting smoketest

Commit a86b57c caused a Windows crash when shutting down smoketest.
Command buffer cleanup for object bindings wasn't happening when
calling DestroyCommandPool.

Change-Id: Ie233763e37ed9bc6988dddbf932aa3eda2960940
/external/vulkan-validation-layers/layers/core_validation.cpp
b3c2024e0ed61d7f68630d7eb7c8c03100689bb1 14-Jul-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX555/GH663, Add BindXxxMemory validation

If the user neglected to call BindImageMemory or BindBufferMemory,
validation gave not indication of the failure which then results in
a driver or layer crash. This commit extends and generalizes the
checks done for CreateImageView and CreateBufferView to cover all
the bound memory checks for the 'recording commands in command
buffer' case in spec section 11.6

Change-Id: I3b4a3d130e9b6c242413fc0ad14c1624295b33b3
/external/vulkan-validation-layers/layers/core_validation.cpp
d71203a8c706f522fca32399d5459a031250b83c 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Handle binding between cmd buffer and query pools

For the CmdBind* functions that involve queryPool object, add a binding between
the cmd buffer and the queryPool.

In the event that a queryPool is destroyed, invalidate any bound cmd buffers
and make sure invalid reporting is handled correctly for query pools.

When a cmd buffer is destroyed that has query pool bindings, those bindings
will be cleared under existing object_binding cleanup in resetCB.
/external/vulkan-validation-layers/layers/core_validation.cpp
ad13b09db50a49347ea6a8c1408fcc5280042898 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Set cmd buffer invalid on event destroy

When an event is destroyed, set any cmd buffers that it was bound
to to the CB_INVALID state.

Also added getEventNode() helper and made use of it where appropriate.
/external/vulkan-validation-layers/layers/core_validation.cpp
e1a3be272f365a7d75f9cc1338d2eebafbf1e6cd 13-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Rework Destroy/Free data structure cleanup

When destroying dispatchable objects we must cleanup internal data
structures prior to calling down the chain in the event that another
thread were to prempt execution and re-allocate a freed handle prior
to the layer cleanup code executing.

For non-dispatchable handles this shouldn't be a requirement due to
the fact that layers only see unique handles. However, moved some
non-dispatchable cleanup before the call to ICD as well for consistency
and to be extra safe.
/external/vulkan-validation-layers/layers/core_validation.cpp
e9941022f1933b7300a4a7f52187dba446aca7a9 13-Jul-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix core_validation Win32 build

Change-Id: Ib15d5c6fad234c0d657b59613293f38d28969697
/external/vulkan-validation-layers/layers/core_validation.cpp
a86b57cf1145ee63d5997547ac0f9847933fc3b6 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Add binding between cmd buffer and pipeline

Track all pipelines bound to a cmd buffer and if any of them are destroyed
set the cmd buffer as invalid.
/external/vulkan-validation-layers/layers/core_validation.cpp
ccdcc9686c664e9407dd03262f3aaf3245b23be2 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Handle binding between cmd buffer and query pools

For the CmdBind* functions that involve queryPool object, add a binding between
the cmd buffer and the queryPool.

In the event that a queryPool is destroyed, invalidate any bound cmd buffers
and make sure invalid reporting is handled correctly for query pools.

When a cmd buffer is destroyed that has query pool bindings, those bindings
will be cleared under existing object_binding cleanup in resetCB.
/external/vulkan-validation-layers/layers/core_validation.cpp
9822fe9cda4c97bfa374f680fa90419e0f82580e 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Add addCommandBufferBinding() utility function

Created addCommandBufferBinding() utility function that creates a link between the
cb_binding data struct of an object and the object_binding data struct of the cmd
buffer.

Currently updated events to use this utility function, but will expand to other
object types in the future.
/external/vulkan-validation-layers/layers/core_validation.cpp
9556936067fd0c4eb74c4a13631bc163b154faed 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Set cmd buffer invalid on event destroy

When an event is destroyed, set any cmd buffers that it was bound
to to the CB_INVALID state.

Also added getEventNode() helper and made use of it where appropriate.
/external/vulkan-validation-layers/layers/core_validation.cpp
ba4316045bf5f1054629bb7c2fced7bae98ed52a 07-Jul-2016 Mark Mueller <markm@lunarg.com> layers: GH422 Support addition of Buffer Validation Tests

Remove dead code by getting rid of deleteMemObjInfo function,
add check for freeMemObjInfo failure, and fix an incorrect
validation test

Change-Id: Ie84d16883abfb6d4d41b06d6fa210c7011861ecd
/external/vulkan-validation-layers/layers/core_validation.cpp
74243a735fe102b370237ddf80d3e6f7ec5246db 11-Jul-2016 Mark Mueller <markm@lunarg.com> layers: Added return check for freeMemObjInfo call

In FreeMemory, the return value of freeMemObjInfo was
being ignored, which incorrectly allowed calls which
failed validation to still be passed to lower levels.
This change corrects that.

Change-Id: Iddbffad22f9502061441e961daef2e7fa26a5fcf
/external/vulkan-validation-layers/layers/core_validation.cpp
64d375f52e2011964e196710ca78b0d4d68b20d0 08-Jul-2016 Dustin Graves <dustin@lunarg.com> layers: Fix WIN32 build

Fix a uint64_t to VkImage reinterpret_cast for 32-bit VS2013. I
Missed this when reviewing the previous change.

Change-Id: I4a0865ab546b45792b8f4d841f6c6c04ff22501b
/external/vulkan-validation-layers/layers/core_validation.cpp
bf66bca5d96f2721897c5f3100da2df741da9add 08-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Remove cb_bindings when CB is reset

When a CB is reset (or freed) make sure to remove it from any image/buffer
cb_bindings that it was tied to.
/external/vulkan-validation-layers/layers/core_validation.cpp
e28cddb35c63274c13873b9a7060ad43b255c6f1 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Hold lock during pipelineLayoutMap.erase()
/external/vulkan-validation-layers/layers/core_validation.cpp
6792ea7cc0ce5fa64b7bd6c946460608cbda91c7 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Remove entries from pipelineLayoutMap

When VkPipelineLayout objects are destroyed, remove their corresponding
map entries.
/external/vulkan-validation-layers/layers/core_validation.cpp
69b71d9c89447ec87d823669ee9edbfc58af174a 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Update layout compatibility to use stored state

When checking VkPipelineLayout compatibility, it's possible that the
VkPipelineLayout handle that was bound may have been subsequently deleted.

To account for this, store the PIPELINE_LAYOUT_NODE at bind time and
use that to do the compatibility check.
/external/vulkan-validation-layers/layers/core_validation.cpp
416bfef833408786b4a17f725b0ed6480bc65120 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Rename vars

Migrate PIPELINE_LAYOUT_NODE members from camelcase.
/external/vulkan-validation-layers/layers/core_validation.cpp
9b5d124aff50234cb0450e1b805baef577c90d83 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Simplify PIPELINE_LAYOUT_NODE

Just use setLayout vector and kill duplicate descriptorSetLayout vector.
/external/vulkan-validation-layers/layers/core_validation.cpp
c8268861aaa8f9c47920065d6323e4609e5081b0 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Store PIPELINE_LAYOUT_NODE directly in PIPELINE_NODE

The layout and its associated node may be deleted after pipeline is
created so store a copy of the PIPELINE_LAYOUT_NODE in the
PIPELINE_NODE to make sure data is available when it's needed.
/external/vulkan-validation-layers/layers/core_validation.cpp
2e0eca3d6fad72a29ae072e3895e29a2d2d66476 07-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Rename pipelineLayout to pipeline_layout
/external/vulkan-validation-layers/layers/core_validation.cpp
07b081bc51bf0151b7d2074967b948c02961c166 06-Jul-2016 Tobin Ehlis <tobine@google.com> layers: GH689 Disable perf warning for linear tiled textures

Linear tiled textures should use GENERAL layout so perf warning doesn't apply.
/external/vulkan-validation-layers/layers/core_validation.cpp
27e2917587adf1738c71851a128806f7de578cbe 06-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Minor refactor to save duplicate look-ups

Pass layer_data* and GLOBAL_CB_NODE* to Verify[Dest|Source]ImageLayout() to avoid
a second look-up of the same data.
/external/vulkan-validation-layers/layers/core_validation.cpp
1730e0dd28b3abc660b4e4704cf6d414f7fd4ad6 05-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Fix handling of component qualifier on VS inputs

Interface matcher assumed no location aliasing, but this is allowed.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f5a3404bbab5232ae72000a4649ff9f7d89c7ad0 06-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Migrate to validateImageUsageFlags function

At ImageView creation time use validateImageUsageFlags function that avoids an
additional look-up for IMAGE_NODE. Kill previous validate_image_usage_flags()
function.
/external/vulkan-validation-layers/layers/core_validation.cpp
cf64d39a58d4903515232a17eea47ff3ed82faad 29-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Remove validate_buffer_usage_flags() function

Replaced with validateBufferUsageFlags()
/external/vulkan-validation-layers/layers/core_validation.cpp
5a758b24bbcdad37a5ccf41c3581c289acf11c2d 29-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Invalidate Cmd Buffers on DestroyBuffer

When buffer is destroyed, any command buffers that it's bound to must
be invalidated.
/external/vulkan-validation-layers/layers/core_validation.cpp
99df1a43113407af9ddb0aa2322fb99d9f59e5c2 29-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Invalidate Cmd Buffers on DestroyImage

When image is destroyed, any command buffers that it's bound to must
be invalidated. Also clean-up DestroyImage() a bit.
/external/vulkan-validation-layers/layers/core_validation.cpp
249eb117f85f5e0f3f3a83a2bf297893e0d054ce 28-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add binding between images and cmd buffer

For cmds that use images, update cb_bindings to tie image to cmd
buffer. This will be used to track invalid cmd buffers due to
destroying images.

The function structure here is the same but I've updated all of the
calls to use mem bindings from IMAGE_NODE with a single call rather
than the old two-call mechanism.

The assumption is that parameter_checker should be above
core_validation so I haven't replicated a bunch of its checks in the
case of invalid objects. I've added some asserts as a last line of
defense to make debugging invalid object issues in core_validation
simpler, but if running with full validation stack and responding to
validation errors from parameter_checker, then the asserts should
never be hit.
/external/vulkan-validation-layers/layers/core_validation.cpp
29e9a148072b1015633a102470f0cf706a9e2e55 28-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add image to IMAGE_NODE

Store image inside the image ptr so that once node is looked-up
all relevent data is available when just node ptr is passed around.
/external/vulkan-validation-layers/layers/core_validation.cpp
ebc92c86f5a63df6ab4d325f83d385b23c11bf5e 28-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add binding between buffer and cmd buffer

Updated call mechanism to create binding between a VkBuffer
and a VkCommandBuffer so that it occurs in a single call.
Removed old mem_tracker mechanism for looking up memory from
a buffer and just use mem in BUFFER_NODE instead.
Also simplified call to check valid buffer use flags in order
to avoid a redundant map look-up.

Will make similar changes for images next.
/external/vulkan-validation-layers/layers/core_validation.cpp
83b40cb743b7d87753e7503b148fef660ca45289 28-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Bulk rename skipCall -> skip_call

Trying to migrate to consistent lowercase variable naming and
skip_call was different all over the place to unifying in a
single commit.
/external/vulkan-validation-layers/layers/core_validation.cpp
d9da90d92748c37962766868f8b0354637672c2a 01-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Skip UNUSED attachments in pColorAttachments array
/external/vulkan-validation-layers/layers/core_validation.cpp
a092085c225bbc24edb29cd34ca6b30889f7e111 30-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Use VkRenderPassCreateInfo to check compatibility

Make the two renderpass compatibility functions only use VkRenderPassCreateInfo.
At the call site, check renderPass handles and if they don't match, proceed to
call the compatibility function with valid VkRenderPassCreateInfo.

Note that saved renderPass handles are valid at the call site, as they are
stored in framebuffer, command buffer, or pipeline state. However it's possible
that renderPass itself was destroyed, so VkRenderPassCreateInfo is pulled from
the framebuffer or pipeline state in those cases.
/external/vulkan-validation-layers/layers/core_validation.cpp
8da1edac0fbed13831b2f458f27c51e64d6210ff 27-Jun-2016 Tobin Ehlis <tobine@google.com> layers: GH690 Save renderPass create info in PSO

The renderPass that a pipeline is created with may be destroyed before
the pipeline is used in a draw. In order to make sure that the renderPass
data will live as long as the pipeline, save the VkRenderPassCreateInfo
using a safe_VkRenderPassCreateInfo in the PIPELINE_NODE struct.
/external/vulkan-validation-layers/layers/core_validation.cpp
8c07a094dc9cc4afb6b62181f341c12b9e969041 30-May-2016 Mark Young <marky@lunarg.com> layers: gh376 Verify memory on vkCreateXXXView

Verify that a vkImage has memory bound to it when
vkCreateImageView is called. Likewise, verify vkBuffer
memory at vkCreateBufferView time.

Also, add tests to vk_layer_validation_tests:
CreateBufferViewNoMemoryBoundToBuffer and
CreateImageViewNoMemoryBoundToImage.

Change-Id: If0cf1c972f721e5596f7b8a1c7652f6165401b2c
/external/vulkan-validation-layers/layers/core_validation.cpp
0c6dd4dd7c7e444efc979299f8f445fb4fc4febe 01-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Use backing memory size rather than buffer size in barrier

Fixes #648.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4bf66272b011176416dd42e726decd70d5a02fa2 01-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Track backing memory offset & size for buffers

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1346aaa1c01e5e9cf5b542d3e6312729e5f759d7 01-Jul-2016 Tobin Ehlis <tobine@google.com> layers: Remove unused var to fix android build
/external/vulkan-validation-layers/layers/core_validation.cpp
dc7c45f01ae5690f7c969b4760463c1a6bac52d5 01-Jul-2016 Chris Forbes <chrisforbes@google.com> Tweaks for review feedback

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
76957dd352738b7ceec82c38be8b1b1347a90040 29-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Simplify draw-time subpass sample count handling

Renderpass creation has already failed for any cases that would hit this
logic.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
805ec497391f6bc513f7653ba6d535c509b54062 29-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Require subpass attachments' sample counts to be consistent

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6a3bc5f071fe21799f0f7ae844716c333f11f39c 29-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Add validation for subpass multisample resolve rules

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
628f0e370a17207a87d2632616fc8ca27e7ac80c 30-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Make TransitionSubpassLayouts work with VK_ATTACHMENT_UNUSED

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
93fe72ec8460857bdb3c101095e6eb96d6171341 01-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Fix crash in ValidateDependencies with VK_ATTACHMENT_UNUSED

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0ad39e0de2f23ebec8c8ffbf6b54754ebf5ae9a7 01-Jul-2016 Chris Forbes <chrisforbes@google.com> layers: Fix crash in ValidateLayouts with VK_ATTACHMENT_UNUSED

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ea0f86230ff5c52f805ac831a1ed5a92bd123368 30-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Apply subpass 0 layout transitions at CmdBeginRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c83d821f524b75cbcfa5e8b661a3a605ea221b92 29-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix render pass begin handling of initial layout

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0a7ed0466d3d3c6c71be07d66c200482d9a9d073 29-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Don't produce spurious validation errors for sample count

Previously we would emit a spurious validation error if the only
color or depth attachment references were VK_ATTACHMENT_UNUSED.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
825ac70f99460ccb9494d34f93d8ee7ec303e5de 29-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Take care of DevLimits cleanup items

Added some simplifying make_unique() calls, changed param_validation
Log_msg calls to use LayerName var, added variable init to
constructor, and fixed some c-style casts.

Change-Id: I718e0d51b62a4b91a4c9b3645ff796d114a4432f
/external/vulkan-validation-layers/layers/core_validation.cpp
838e3917bc1a0479174dd753b5c28b8b2cf1954d 28-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Move QueueFamilyProp Query checks into CV

Migrate CreateDevice-time QFP checks from device limits into
core_validation, fix up CV error enums.

Change-Id: I36458fd9f7666324faf69373dc581655a580a7f3
/external/vulkan-validation-layers/layers/core_validation.cpp
cd569b3559a7f8dca06012165480a4e6d7e6c492 28-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add GetPhysDevQueueFamilyProps to CV

Added API, devlimits checks for this API, and did some renaming.

Change-Id: Ie27e8f5bd61f711b5c2121533ef92dd833678ee3
/external/vulkan-validation-layers/layers/core_validation.cpp
f83fcc51d156b056966509bfe4d05c9ccb37ce5d 28-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add EnumeratePhysicalDevices to CV

Change-Id: Ib7a635c4f0e42560198cdb208ce310b09648aca4
/external/vulkan-validation-layers/layers/core_validation.cpp
b51f48f9e79665e20830097dd9c6434bac68de34 27-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Move phys dev call state structs to CV

Change-Id: I92faf07ea2e47d2013bb206e04de26081049f79f
/external/vulkan-validation-layers/layers/core_validation.cpp
e1cc7cf9e8a7808209ecc45df2421f3a494daccc 25-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Unify invalid command buffer handling

Created a single vector to track any cmd buffer dependencies that are destroyed
and thereby cause the cmd buffer to become invalid. Currently just tracking
the previous object types of descriptor sets and framebuffers, but will update
the tracking to include all cmd buffer dependencies in future commits.
/external/vulkan-validation-layers/layers/core_validation.cpp
b6fe8da9537ef985960fd1d32b83c952b422f00b 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Update cb_bindings to hold CB_NODE ptr

Store GLOBAL_CB_NODE ptr in cb_bindings to avoid additional look-ups.
/external/vulkan-validation-layers/layers/core_validation.cpp
d9369e5a41f95b7bd1670240d441dbed58bc36fb 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Refactor framebuffer look-up

Make better use of getFramebuffer() and add framebuffer member to FRAMEBUFFER_NODE.
/external/vulkan-validation-layers/layers/core_validation.cpp
66fc859fec446680d32b60d98748dd237079190b 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Make FB node inherit from BASE_NODE

Update FB_NODE to use cb_binding from BASE_NODE. Making this the common
way to track command buffers that objects are bound to.
/external/vulkan-validation-layers/layers/core_validation.cpp
9f229695cf32913dab3fb75e5d52548ea57b3851 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Refactor command buffer look-up

Increase use of getCBNode() helper function.
/external/vulkan-validation-layers/layers/core_validation.cpp
caf05e0db4959ae196ab34b024f352d9c0326870 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Refactor image/buffer memory fetch

Kill get_mem_binding_from_object() and replace with getImageMemory() and getBufferMemory().
Those functions then both call a shared function to retrieve memory bindings from appropriate
underlying vulkan object. This is still early in the refactor and I hope to simplify these
further.
/external/vulkan-validation-layers/layers/core_validation.cpp
b5e51047540e12567fbf674b23fe75ca86ca0371 24-Jun-2016 Tobin Ehlis <tobine@google.com> layers: BUFFER_NODE clean-up

Initial work to prepare for larger overhaul of BUFFER_NODE as well
as unifying INVALID_CB treatment.

This adds cb_bindings set to BASE_NODE which will be used to track
command buffers that objects are bound to in order to flag them as
INVALID if objects are deleted while CB are still valid.

Initially making use of this with BUFFER_NODE, but it will move to
all objects that can be bound to command buffers.

Also, use getBufferNode() utility in DestroyBuffer() and add buffer
to BUFFER_NODE so it can be used for erasing node from map.
/external/vulkan-validation-layers/layers/core_validation.cpp
a2d08a743ac1178e4d46da4d41c73fb73b5e79d7 23-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Inline away markCommandBuffersInFlight

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a9a689bef49d3e7e4c3e814099009f6bf2747ddf 22-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: More use of getFenceNode / getQueueNode helpers

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
da8f07baf262972eb3e719fa07b073c180dff157 22-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Make CB_SUBMISSION 1:1 with VkSubmitInfo

This gets rid of a bunch of weirdness where submission with no command
buffers (sema/fence only) would get mistracked, and cuts down on
resource counting churn.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
01a48e41895b3951b297ff4245eff8f9c129ae20 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Clean up around semaphore flagging

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ff6101de02d1677fb54962e2ff57875e76898e26 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Slightly simplify logic in CreateRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7bed8723272ee4550abc3d8691633e7a40a6271f 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: misc minor tidying

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
1ec6311a8537f4467db08eacbd762ebaa87e70b0 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix locking in ResetCommandPool

This got broken when some code moved around

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
090da73358f71ba026e2474a822fecf55267d166 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix ResetFences validation vs update

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
cd9a648074f67a1d44c15a056b90fc66da8ead17 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix remaining direct uses of commandPoolMap

These would get us in trouble if the pool wasn't in the map.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c05d773a018aa47e89841533a6968d9e5b314038 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Untangle check & update in FreeCommandBuffers

Fixes crash later in new test case

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a01b5eb150981aad061238e64b173d0da8c11140 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Untangle check from update around pool reset/destroy.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
8d6a38de0389036581ada119e548180c614fe0ef 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Move CMD_POOL_INFO to header, rename, add helper

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a964cad279f9749cd9ebfc7555247ff3bff26d53 20-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Split check from clear of CB global inflight state

Tiny step toward untangling crashes after FreeCommandBuffers.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
76f04ca0e692f9f15d5ef7e0c658c24d11f34ebc 23-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Clean up frameBufferMap unique_ptr use

Create local unique_ptr to FRAMEBUFFER_NODE and update that prior
to map insertion. Then move it directly into map in order to avoid
two map accesses.
/external/vulkan-validation-layers/layers/core_validation.cpp
6fb721e0f21c85d4457561d17c196280601cebc1 23-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add Framebuffer dimension limits check

Make sure that requested framebuffer dimensions do not exceed the
underlying device limits.
/external/vulkan-validation-layers/layers/core_validation.cpp
da5b8b1df2368168be93e563eccdb500d62b97a5 23-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add FB attachment swizzle check

When creating a framebuffer, verify that all attachments were
created with the identity swizzle. This is a valid usage
restriction for vkCreateFramebuffer()
/external/vulkan-validation-layers/layers/core_validation.cpp
aac6fea2aeb81a0d354d80a9226bdc5de2aef5e2 23-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add Framebuffer dimensions check

When creating a framebuffer, make sure that the dimensions for the
attachments are at least as big as the framebuffer dimensions.
/external/vulkan-validation-layers/layers/core_validation.cpp
f405f07b742ec0be9f68e833b82c534fb28d1f5e 23-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add INVALID_FRAMEBUFFER_CREATE_INFO error

Added new error enum DRAWSTATE_INVALID_FRAMEBUFFER_CREATE_INFO
and added initial check with this enum type that flags and error
if framebuffer attachment has non-1 mip levelCount.
/external/vulkan-validation-layers/layers/core_validation.cpp
41ebcb6b517b1de5ae456d46d866f5e84a96a2c5 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add sample count check at CreateFramebuffer time

When creating a framebuffer make sure that samples for its attachments
match samples for corresponding renderpass attachments. This is a
valid usage requirement for CreateFramebuffer.

Also need to store swapchain images with default samples value of
VK_SAMPLE_COUNT_1_BIT to avoid false errors.
/external/vulkan-validation-layers/layers/core_validation.cpp
5ef4ed03801d1456b7c30dd59ea014be126df771 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add format check between renderpass and framebuffer

Verify that corresponding attachment formats match between a framebuffer
and the renderpass it is being created with.

This is a valid usage requirement for vkCreateFramebuffer()
/external/vulkan-validation-layers/layers/core_validation.cpp
d73d9c5ffd42f300d3ec49f64910a2b370694186 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add framebuffer attachmentCount check

Verify that attachmentCount for a framebuffer matches the
attachmentCount for the renderPass that framebuffer is being
created with.
/external/vulkan-validation-layers/layers/core_validation.cpp
54e0bb0ace13cc34255e0dc9ca6b0da2b4ac5be1 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Refactor CreateFramebuffer

Migrate post-call CreateFramebuffer code into PostCallRecord* function.
/external/vulkan-validation-layers/layers/core_validation.cpp
64c259c2660d24b5b032f0cfa668de086dcd7eb4 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Refactor CreateFramebuffer

Migrate validation code to PreCall* function.
/external/vulkan-validation-layers/layers/core_validation.cpp
04861caca7eb93a5241b164e8480bb93c826902c 22-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Clean up frameBuffer map

Update frameBufferMap to store unique ptrs and kill a new/delete.
Add safe_ structs to FRAMEBUFFER_NODE for frameBuffer and renderPass
create info structs in order to correctly shadow the whole struct.
/external/vulkan-validation-layers/layers/core_validation.cpp
8168af0c4c5b12708d5ddbeb6ce513207d01f0e4 21-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix CmdBeginRenderPass after non-inline renderpass in same CB

Fixes #667.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a49b8a211ce07e7fa2225d23f8cb11f1055b418a 21-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH669, Fix clearValueCount errors

Validation was assuming LOAD_OP_CLEAR for some attachments resulting
in bad validation messages.

Change-Id: I8ff75ca63f591e3002b1ee2b61a6844d0cf1c07d
/external/vulkan-validation-layers/layers/core_validation.cpp
5ca3c071afc98f9144f489b74aa3affaa93633b0 21-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix Windows crash in Dota2

In core_validation attachment_references_compatible(), having array
elements set to VK_ATTACHMENT_UNUSED was not handled resulting in
invalid memory references.

Change-Id: If78aea1467d191db905272bece16cc9f56643136
/external/vulkan-validation-layers/layers/core_validation.cpp
c8592f1e93c022be0574cb2310965bd8bcb0271e 16-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of fence->swapchain link

Nothing used this after rationalizing the state tracking.

Change-Id: I67cc267336b5d64bea9645a8e0a072885db58c26
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6c87c6a8acda49a6406192a1b634e9bf060bd6fd 16-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Untangle validate+update in QueuePresentKHR

Change-Id: I8f719c6e57cbab836b90f30414e6494a0643580e
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f91af4dfe0646cf509616910a8ec2d72c423ccda 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix AcquireNextImageKHR handling of sync objects

Change-Id: I3e5a5d08763c0bf26c6c69aecf4bcef17d055a48
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
5e92f3cfdca6a52a3dcefd053c41f728bd036ceb 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Add getSemaphoreNode helper

Change-Id: Iceda3b28474e289189ef1f97b271f9e9bb7b2083
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
cdb1ea0ff0d966dda02543468377eae93b9e2f8f 16-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Rework fence state tracking

Instead of having a combination of firstTimeFlag, in_use, and
needsSignaled, let's just have an enum with the three states a fence can
actually be in.

Change-Id: I6a40cd709717c75740c9977b149c4f71a02a27ab
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
df1846b33487b02061c0ff42d768588a9abeb6c7 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Tidy decrementResources a bit

Change-Id: Ib8f9a917115323d8d43b971593b213ff04138a35
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
accf816d3b205bb36a9a32ed8c278e45e8e0d188 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: use getFenceNode in decrementResources

Change-Id: I8351405299f2f109489fdddfc111412164aded77
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
49f6132af865afd5b7f413c91125971ac97c135a 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Pass layer_data to verifyWaitFenceState

Change-Id: Id3e0f09254197119b821710f0e9ce27d3458afc9
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9b48b44dd917f95b5f34dd629ec4076fc87eb3a2 15-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: use getFenceNode in verifyWaitFenceState

Change-Id: I46f4ef4c225e199c0415507bd19dc4ffc98a77bc
Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e62f2e46eeffde494c0d734964b389c09dec9d64 10-Jun-2016 Tobin Ehlis <tobine@ad.corp.google.com> layers: Add bug fix to handle NULL attachment case

Correctly handle null resolve attachment case. When verifying attachment
compatibility, matching null resolves is ok.
/external/vulkan-validation-layers/layers/core_validation.cpp
528f623d935b0ab102a2f9c1c82787a8810ca360 07-Jun-2016 Tobin Ehlis <tobine@ad.corp.google.com> layers: Add PSO render pass compability check

At draw time, the active render pass must be compatible with the render
pass that the gfx pipeline was created with.
/external/vulkan-validation-layers/layers/core_validation.cpp
4f76794409854faf16dd51f37d5fa21dff1c5d44 17-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH656, Fix CreateRenderpass validation

In the core_validation layer, much of the validation was occurring
AFTER the API call had been made. Separated validation and tracking.

Change-Id: I6f8502d52dd2861a18254de48141a3736ced257f
/external/vulkan-validation-layers/layers/core_validation.cpp
1a65650f856376768d7b03ea2d080aaff87cacfd 10-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH401, Break out stencil load/storeOp check

Stencil attachment load/storeOp settings were being ignored. Added
format appropriate checks for these flags.

Change-Id: I6a917fc8a28cbb0d0441152e8d6630defb1b81e3
/external/vulkan-validation-layers/layers/core_validation.cpp
6600a7662f6dac6a8c8622a8305f02625439bf30 16-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: GH576, Validate attachment image usage

Framebuffer attachment images are created with IMAGE_USAGE flags. These
flags are now validated against their attachment location in subpass
description structures. Also added a check for a preserve attachment
being set to UNUSED and fixed a few typos in the attachment index
checking stuff.

Change-Id: Id62d3539c490ce8f381d7ae606402980f11946fa
/external/vulkan-validation-layers/layers/core_validation.cpp
4261f1e2c91c90ce040ab36a13c9d92f6e988f10 14-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX539, Validate mem types

Bind[Image|Buffer]Memory did not validate that the memoryPropertyType
matched the memory_requirements memory type flags for the buffer
or image.

Change-Id: I7007588d78408689c34df66a17cc9201a37569b1
/external/vulkan-validation-layers/layers/core_validation.cpp
c7e6bc41aa9c6e5a677b138b9459b252cd3bedf2 14-Jun-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix Windows Dota2 crash

One of the event tracking lists was not getting cleared upon a reset,
resulting in an invalid reference on reuse.

Change-Id: I45d932822f27197266b363634d6cdccc785209d3
/external/vulkan-validation-layers/layers/core_validation.cpp
d7d60cccc862fee2d0b3ad410c5fdcc40ddc83ae 12-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix test fallout in CommandBufferTwoSubmits

This test was accidentally triggering the fence reuse case as well, and
blindly continuing past that error. It doesn't need to use the fence at
all, so don't supply one.

Also tweak the layer to not run into the assert if the caller elected to
skip -- QueueSubmit still has validation and updates tangled together,
but this improves it slightly.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
651d92815dfff917308137bb67aacccc4f60df86 10-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Fix mistracking of semaphores associated with submissions

When a command buffer is simultaneously inflight multiple times, each
can have different semaphores associated. Storing the set of semaphores
on the GLOBAL_CB_NODE caused us to get confused and emit bogus errors.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4b5d5254c68655201f38090ea6e8ff83700d3604 10-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Note broken behavior around stealing tracking from other queues

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
8988ad37ea5a054ff2ae3cbe4b767ae6c13cf48b 10-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Add members to FENCE_NODE and QUEUE_NODE to hold the handles

We'd like to be able to get back to them from the tracking struct.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
66fb98d19a758f79dd11ba354e47d0c66c6aac1e 10-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Add helpers for getting fence and queue nodes

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
81c4a32a622486043c15e427fb0e85cc1cf7dd47 10-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: Unify fence checks for queue functions

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
77bbc6b0ca34e6a944761b24f5588eae17a199b7 07-Jun-2016 Chris Forbes <chrisforbes@google.com> layers: remove tracking of last queue and fence for CB

Unused.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7655cb8b5eb52badee0b011729a05afa36316d69 08-Jun-2016 Jan-Harald Fredriksen <jan-harald.fredriksen@arm.com> layers: PR629, Remove subpass warnings

The validation layer checks for dependency between subpasses using the
same attachments, but it also issues warnings if there are "only"
implicit dependencies between two subpasses. This is explicitly
allowed by the spec and should not cause validation warnings.

Change-Id: I1039955d6d445e1ee234116c6da2e4dbaf9c7dd9
/external/vulkan-validation-layers/layers/core_validation.cpp
293ecfc5e69ed3978a8c04518166d828294870a4 06-Jun-2016 Tony Barbour <tony@LunarG.com> layers: Initialize write_in_use in eventMap entries

Change-Id: Ic296788beb078f19a35b93b99df5dbf677c95122
/external/vulkan-validation-layers/layers/core_validation.cpp
c34ab18ac7c064590a1020a8db4b6abf5a8d3a18 19-May-2016 Mark Lobodzinski <mark@lunarg.com> layers: Add default layer error message config

Allows layers to output error messages even if no vk_layer_settings.txt
config file is present. Sets defaults to LOG_MSG, error, stdout.
A layer settings file will override any default values. If no settings
file is present and an app creates a debug callback, the default
callbacks will be removed and unregistered.

Change-Id: I49f37189665816df58c258b9e9629f2bf76751c8
/external/vulkan-validation-layers/layers/core_validation.cpp
e3f7c45fd64a44a67ce96c89e2bbee426c6ecf24 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Clean up poolMap access

Remove some unneeded passing of poolMap around and use getPoolNode()
function in DescriptorSet class.
/external/vulkan-validation-layers/layers/core_validation.cpp
a682b1c533d9a492243b363c6585c4f03bcd87aa 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Remove unneccessary consts
/external/vulkan-validation-layers/layers/core_validation.cpp
3f687bf405355f3eec6bd1bc0e8d04daba37a0f9 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Update swapchainMap to use unique_ptr
/external/vulkan-validation-layers/layers/core_validation.cpp
b110cb87b9478586719d7f7dc769b350857366ba 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Added getSwapchainNode() helper

Added getSwapchainNode() helper to core_validation and update
DescriptorSet class to use it.
/external/vulkan-validation-layers/layers/core_validation.cpp
170dc65b45f6bcdec47e02b3aa19435e55b32804 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getSwapchainFromImage() helper

Add getSwapchainFromImage() to core_validation and use it from
DescriptorSet class.
/external/vulkan-validation-layers/layers/core_validation.cpp
5f5aad3ea9e850c28720eac312d100209956cdee 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Remove unneeded layout_map
/external/vulkan-validation-layers/layers/core_validation.cpp
6d1373829eded68f6e080ff2c33e03231360ed57 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getImageNode() helper

Add getImageNode() helper to core_validation and use it.
Also update DescriptorSet class to use the helper and kill
its image_map member.
/external/vulkan-validation-layers/layers/core_validation.cpp
2c59c1d90b22aa759d785e4233e468616990ff92 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getImageViewData() helper

Switch imageViewMap to store unique_ptrs. Add getImageViewDate() helper
to core_validation and update DescriptorSet to use it.
/external/vulkan-validation-layers/layers/core_validation.cpp
9a55ca3674bb3fac3fbdfca9515a16a224aa9055 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getSamplerNode() helper

Kill sampler_map_ in DescriptorSet and add getSamplerNode() helper
and use it instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
2f2db584f5d79892bd84d0a24b8ca3499985a5c2 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getBufferViewInfo() helper

Add helper function to core_validation for bufferViewMap look-ups
and use the helper in DescriptorSet class.
/external/vulkan-validation-layers/layers/core_validation.cpp
57fc8e28c2e16118f9827e3ae1b107a27e0451a2 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Update getMemObjInfo helper

Standardize core_validation use of getMemObjInfo() and update
DescriptorSet class to use it as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
8718070cf3e206488c168f1e6b9dd06d6880c9bc 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Add getBufferNode() helper

Move core_validation bufferMap to use unique_ptr to BUFFER_NODE.
Perform bufferMap look-ups using getBufferNode() helper function.
Update DescriptorSet class to use getBufferNode() helper and store
layer_data instead of bufferMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
104ab082916e41467ef60baaab7a5a8b2e02c59c 02-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Make layer_data visible to DescriptorSet

This is the start of migrating core_validation::layer_data to be
visible in DescriptorSet class.
DescriptorSet class can't see the contents of layer_data, so it also
needs the get<Object>() helper functions to look up items from the
maps. This first change only brings along getSetNode() utility
function so only set_map references can be removed.

Will add follow-on CLs to remove more maps from DescriptorSet class
and bring in more utility functions.
/external/vulkan-validation-layers/layers/core_validation.cpp
789832b514862c7a7b5b847eeb8e7cacb733b77b 01-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Comment update

The behavior of the PreCallValidateAllocateDescriptorSets slightly
changed so updating comment accordingly.
/external/vulkan-validation-layers/layers/core_validation.cpp
7f61868b44f1da1dfa6a4ff726020411db92ce0d 01-Jun-2016 Tobin Ehlis <tobine@google.com> layers: Pass common data between pre/post AllocDescriptorSets

With the break between PreValidate* and PostRecord* calls in the layers
we can suffer having to do some repeat work in the Post step. In order
to prevent this, this CL slightly modifies the interface to pass common
data between the pre/post calls in a custom AllocateDescriptorSetsData
struct.

I initially attempted to fill this data in a separate function that
would preceed the PreValidate* call, but such a function would need to
include some validation as it includes map checks which may fail.
The simplest solution, then, seems to be passing a ptr to the common
data to the PreValidate* function who then fills the data. If the
validation and call down the chain succeed, the PostRecord* function
then takes a ptr to the common data to prevent having to redo the
work that was done at validation time.
/external/vulkan-validation-layers/layers/core_validation.cpp
7e73e5c6b3020b96a821985f73012f2af0f1b992 26-May-2016 Tobin Ehlis <tobine@google.com> layers: Add DescriptorSet interface for allocation

Create a top-level "Validate" and "Perform" interface for the
vkAllocateDescriptorSets() function in DescriptorSet class.

Refactor AllocateDescriptorSets() in core_validation to use the
new interface. All checks are now performed in a "Pre" function
and all state updates are recorded in a "Post" function.
/external/vulkan-validation-layers/layers/core_validation.cpp
a4e71cd8b4e77502943dd894ed95426a25dffbd5 20-May-2016 Chia-I Wu <olv@google.com> layers: simplify v0 function implementations

Since each of the layer library contains only a layer, we can simplify v0
functions by making them wrappers to the contained layer's corresponding
commands.

While we have to make changes to each layer individually, all the changes
should be the same in spirit. The exception is vk-layer-generate.py where
the missing vkEnumerateDeviceExtensionProperties is also added.
/external/vulkan-validation-layers/layers/core_validation.cpp
4b70ef75f98d2a6196132d8c48d43d1d5e04992e 31-May-2016 Mark Mueller <markm@lunarg.com> layers: LX506 fix vkFlushMappedMemoryRanges validation error

Fix LX506: vkFlushMappedMemoryRanges validation error
with VkMappedMemoryRange::size = VK_WHOLE_SIZE.
Resolution: Change test of size variable to correctly test the
size passed by application against the relevant mapped memory

Change-Id: I6d855482985512b5096696f5c37346dde8a391ac
/external/vulkan-validation-layers/layers/core_validation.cpp
e5f0c7b48d7b8020aa0877ad216aac257f9e4212 31-May-2016 Tobin Ehlis <tobine@google.com> layers: Kill redundant check

At this point in the code we already know that renderPass is
valid so no need to re-check it.
/external/vulkan-validation-layers/layers/core_validation.cpp
3d71bca42a843966040d6ada9c029e0ec9f35ca6 31-May-2016 Tobin Ehlis <tobine@google.com> layers: GH601 Add check for clearValueCount

We were missing check "clearValueCount must be greater than or equal
to the number of attachments in renderPass that specify a loadOp of VK_ATTACHMENT_LOAD_OP_CLEAR" (Vulkan spec 1.0.15 section 7.4)

This change adds that check.
/external/vulkan-validation-layers/layers/core_validation.cpp
e6651096ed8f07840447783c66827cc16d659a49 26-May-2016 Tobin Ehlis <tobine@google.com> layers: Update freeDescriptorSet() comment
/external/vulkan-validation-layers/layers/core_validation.cpp
cd53549dd5a597894f308b4bb993c02ae30817d6 26-May-2016 Tobin Ehlis <tobine@google.com> layers: Refactor FreeDescriptorSets()

Create PreValidate/PostRecord functions for FreeDescriptorSets().
Currently the validation and state updates are handled in-line
in these functions, but this change makes it easy to migrate the
code to descriptor pool class without affecting top-level
intercept function.
/external/vulkan-validation-layers/layers/core_validation.cpp
bb7ea477706f90eb2a72887f652795bc79f60dde 26-May-2016 Tobin Ehlis <tobine@google.com> layers: Make layer_data const in getPoolNode()

Remove "[]" map operator and use iterator from find instead
to return pool ptr so that layer_data param can be const.
This will allow this function to be used from "PreValidate" calls
where no state is changed.
/external/vulkan-validation-layers/layers/core_validation.cpp
d77f9c625a93fa4973ef3e5a35da5129b5f34ecd 31-May-2016 Chris Forbes <chrisforbes@google.com> layers: Remove old hacks for imprecise descriptor tracking for compute

We do it properly now.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
29d196e071b2dc1db47702085469396f2b956820 31-May-2016 Chris Forbes <chrisforbes@google.com> layers: Do accurate draw-time validation of descriptors used by compute

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
169c4506062f06d6676eb4da3c9e0437d1d9d659 31-May-2016 Chris Forbes <chrisforbes@google.com> layers: Make precise DS validation work for both bind points

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
396244fbebb3dca48be8e37a828fb1034f8c410c 31-May-2016 Chris Forbes <chrisforbes@google.com> layers: Wire up validation of compute pipelines

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
878acea8af40207648e98788d72f1eb80586a21a 24-May-2016 Tobin Ehlis <tobine@google.com> layers: Handle static arrays in codegen

Update safe_struct codegen to handle the case of a static array
in a struct. This removes exceptions for VkDebugMarkerMarkerInfoEXT
and VkPipelineColorBlendStateCreateInfo so they can be treated
as all other structs.
/external/vulkan-validation-layers/layers/core_validation.cpp
c2ec509029604290e981885108c06a9b7de565c1 24-May-2016 Karl Schultz <karl@lunarg.com> build: Fix Windows compilation warnings

Use false/true instead of 0/1 in recently-added std::bind calls.
/external/vulkan-validation-layers/layers/core_validation.cpp
c1c2e222e47d611bec489558c60def01e808dfc9 24-May-2016 Michael Lentine <mlentine@google.com> Merge pull request #583 from lentinem/mlentine-clearpriorfences

Clear priorFences on reset and remove waited on fences from other lists.
be19196be2afb022117c65fa71cebfd35fe1a633 24-May-2016 Michael Lentine <mlentine@google.com> Clear priorFences on reset.
/external/vulkan-validation-layers/layers/core_validation.cpp
577d4588e09a06f957ca76991d5bd7b645261d6d 23-May-2016 Tobin Ehlis <tobine@google.com> layers: Display accessMask in HEX
/external/vulkan-validation-layers/layers/core_validation.cpp
5861c17dab055a598d8d38e824a8d42e9704e191 23-May-2016 Michael Lentine <mlentine@google.com> Mark fence in use after the check.
/external/vulkan-validation-layers/layers/core_validation.cpp
d78749ee260a3ce7244cbfd97c11aacc2250f8d3 21-May-2016 Michael Lentine <mlentine@google.com> layers: Fix query tracking across multiple command buffers on the same queue
/external/vulkan-validation-layers/layers/core_validation.cpp
c1eb2a3736e03aaa15b849d217fd963021dc9780 20-May-2016 Michael Lentine <mlentine@google.com> layers: Fix event tracking to differentiate reading and writing
/external/vulkan-validation-layers/layers/core_validation.cpp
2c4e180a4442f968b44f3d5136f7ffda706f6428 23-May-2016 Chris Forbes <chrisforbes@google.com> layers: Move and rename validate_descriptor_availability_in_pool

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4a45a42023b281f55953222c1a6c3e80f50e5f2a 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add getPipelineLayout helper, use it

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6c13987058e77ffe52af474eea0700d2ceec1d49 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Use pipeline layout -> ds layout direct map

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
addeafba8720251f59f73dc2200bd512ae498bd5 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Use getDescriptorSetLayout helper in more places

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
d173e0daab123373ce75105f2a908f6ae7cef6ab 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Remove more AllocateDescriptorSets noise

Can argue about whether this stuff at INFO level is worthwhile...
Replace the comments with a clearer set of comments.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
11f1fde2721c198a619e4a22fff60eef9a16fae8 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Further rework to AllocateDescriptorSets

- operator new does not return null, it throws.
- do lookups once, at the start

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6511ce241f7f210211e0c0e882f3c14889071f4d 20-May-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of pre-call updates in AllocateDescriptorSets

Moving all the updates later requires that we totalize the required
descriptors by type first, rather than testing each binding's
requirement as we go.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9319aad73ddc9ceea3a19dc1b2a51e707b888f2d 19-May-2016 Tobin Ehlis <tobine@google.com> layers: DescriptorSet class clean-up

Minor formatting improvements, removed some useless "const" decls
and unused vars and updated a few error codes to be more appropriate.
/external/vulkan-validation-layers/layers/core_validation.cpp
6b67c2aac9862a21e0dd068966c8b0b3aaf0bafd 18-May-2016 Tobin Ehlis <tobine@google.com> layers: Refactor DescriptorSet update interface

Mainly refactor and moving code in order to provide an interface to
DescriptorSet class that matches top-level vkUpdateDescriptorSets()
function.

Split the validation of an update as a separate task from performing
the update. This allows validation prior to calling down the chain
and then only update the state if validation is clean.

Hoisted all of the update validation into the DescriptorSet class
which prevents having to copy all of the maps into the individual
Descriptor classes. This simplifies both their creation and updating
their contents.

Updated the top-level core_validation UpdateDescriptorSets() code
to match Vulkan Validation Layer Authoring Guidelines. As this is
an initial POC for the architecture, I kept the Pre* & Post* functions
in the core_validation.cpp file, but they should eventually be spun
out.
/external/vulkan-validation-layers/layers/core_validation.cpp
41051f44c4d5e571f7b8a3efd5eb060b767b351a 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: Simplify command buffer pool cleanup

We don't need to carefully pick through the pool's buffers, removing
them. We're about to throw away the whole container.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
971020aec6166f20a12a833ebd003e0193f4160a 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: More slight tidying

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e3ad4b1284408353cc56a04951c1df1f35a636ce 17-May-2016 Chris Forbes <chrisforbes@google.com> use getFramebuffer more

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
27ed8211a6c2cd0947b7929d0d55d0840618855d 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: simplify TransitionSubpassLayouts

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f40ab6d10b8d755ce0e461c33916b0d4d5a5d437 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add getFramebuffer() helper

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
58c3d40b47b6b30c1e7c508ec14ee67fcd238c93 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: Simplify CmdEndRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
16387282d11e414ae7cb9ddf3d0c1bebf8f2c74d 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add getRenderPass helper

Various similar functions exist, but this one was missing. Returns the
RENDER_PASS_NODE ptr if it exists, or nullptr otherwise.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a730f3e9a43ad01b24f2631172f3d75517a90151 17-May-2016 Chris Forbes <chrisforbes@google.com> layers: Unify cb lookup in CmdBeginRenderPass

We already have a GLOBAL_CB_NODE ptr here, and we know it's not null.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
81391d4f7d4fdb836d880347abe88b72540e0630 19-May-2016 Tobin Ehlis <tobine@google.com> layers: Remove lastBound state reset in destructor

No need to reset this state right before GLOBAL_CB_NODE is destroyed.
/external/vulkan-validation-layers/layers/core_validation.cpp
fda02154007d70e5c078c29585c5e8fdd90ebc5f 17-May-2016 Tobin Ehlis <tobine@google.com> layers: Improve DescriptorSet cleanup

Create private helper function InvalidateBoundCmdBuffers() within the
DescriptorSet class to unify invalidate cases due to set being updated
or freed.

Add a destructor for DescriptorSet to make sure that no bound cmd buffers
hang on to deleted set references.
/external/vulkan-validation-layers/layers/core_validation.cpp
71511c5a10533c910bfe62c3bcf58e2a4054e7ac 17-May-2016 Tobin Ehlis <tobine@google.com> layers: Reduce DescriptorSet map look-ups

Migrate some data structures to refer to DescriptorSet class
instead of raw VkDescriptorSet. This saves map look-ups.
/external/vulkan-validation-layers/layers/core_validation.cpp
9d17becd811b49e1ecf91a02eee22f9cf7cbc026 17-May-2016 Tobin Ehlis <tobine@google.com> layers: Refactor DescriptorSet Update code

This migrates code for DescriptorSet in_use and flagging bound
command buffers as invalid from core_validation.cpp into DescriptorSet
class.
/external/vulkan-validation-layers/layers/core_validation.cpp
d0d8e333806eaac08bdc87ddeff886dc2b0f09e7 17-May-2016 Tobin Ehlis <tobine@google.com> layers: Update cmds allowed in 2nd CB subpass

If subpassContents are of type VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
then CmdNextSubpass and CmdEndRenderPass are accepatable cmds to be added to
the secondary cmd buffer.

Spec language is from section 7.4 Render Pass Commands: If contents is
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, the contents are recorded in
secondary command buffers that will be called from the primary command
buffer, and vkCmdExecuteCommands is the only valid command on the command
buffer until vkCmdNextSubpass or vkCmdEndRenderPass.
/external/vulkan-validation-layers/layers/core_validation.cpp
7651c2eb9fe152ba62921ed60454afd882357e2a 16-May-2016 Tobin Ehlis <tobine@google.com> layers: GH544 Allow INVALID cmd buffers to be reset

BeginCommandBuffer performs an implicit reset of a command buffer.
This allows command buffers in the INVALID state to undergo this
implicit reset.

In order to make sure that an invalid command buffer in the INVALID
state has had EndCommandBuffer called, this commit adds a CMD_END
command that's inserted at the end of a command. If a command buffer
in the INVALID state has had EndCommandBuffer called and it is now
having BeginCommandBuffer called, it's ok to implicitly reset the
command buffer.
buffer's vector of commands.
/external/vulkan-validation-layers/layers/core_validation.cpp
dd725b03ae4d1296a722d0ec5c9fe63941cabe4b 16-May-2016 Chris Forbes <chrisforbes@google.com> layers: Track dynamic descriptor offsets per set index

One big pool of dynamic offsets didn't work well:
- CmdBindDescriptorSets just appended, without regard for unaffected sets,
whether offsets were already recorded for the affected sets, etc. A
command buffer which bound descriptor sets many times would just
accumulate junk.
- DescriptorSet::ValidateSetNode was always passed the base of the
offset pool, when the set's first dynamic offset may have been some
distance into the pool.

Instead, track a vector of dynamic offsets per set index, alongside
the tracking of the bound descriptor set, which makes both correct
tracking of updates, and correct validation at draw time easier.

Fixes lots of weird behavior with more complex binding sequences.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f80bf38f4fb3f177b3e1be11b7b1c5edcdbf7d9b 16-May-2016 Chris Forbes <chrisforbes@google.com> layers: Narrow scopes of some locals for clarity

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
593c857d8db57cf9ae2c590b75e22dadd51bd3d4 13-May-2016 Tobin Ehlis <tobine@google.com> layers: Clean up old mem_tracker merge remnants

Clean up most of the remaining MTMERGESOURCE defines.
Many of these come straight out. A number of copy functions
were able to merge some code to provide a slight efficiency gain.
/external/vulkan-validation-layers/layers/core_validation.cpp
7003b38da5cc27a063af3c45080f3a35438283ee 16-May-2016 Tobin Ehlis <tobine@google.com> layers: Fix android build errors
/external/vulkan-validation-layers/layers/core_validation.cpp
7c0012acb5327961b0a5191434a08e5fa788786d 12-May-2016 Tobin Ehlis <tobine@google.com> layers: Fixes to memory mapping checks

MapMemory w/ size 0 is now invalid in the spec so remove comment and
change callback to ERROR.
Update some error messages for clarity.
Only update the mapped memory range state if MapMemory succeeds.
/external/vulkan-validation-layers/layers/core_validation.cpp
2e415b757c1e43fda35311aad026af8d5c96681c 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Kill MISSING_MEM_BINDINGS error

The MEMTRACK_MISSING_MEM_BINDINGS enum was dead code. There's no way
that the check can be hit in current code so added an assert() for
future safety and killed the checks and their documentation.
/external/vulkan-validation-layers/layers/core_validation.cpp
c5b97dda856ff837638b3ebb7e231d5507c495a3 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Move `fb` from RENDER_PASS_NODE to GLOBAL_CB_NODE

This is part of a renderpass instance, not of the renderpass itself.
If stored where MT put it, things go horribly wrong when recording
command buffers in parallel.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e4be8c69231df45752686575f22168b6d0fc5687 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Finish unhooking layer_data from SC pipeline validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ed399f66e0512ef077d0e0a7cb903248726d2424 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Use pipeline layout ptr from pipeline node

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
67220c96300606b517394e25c7aa144dd4601bb6 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add PIPELINE_LAYOUT_NODE * to PIPELINE_NODE

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
557cdd5218accf51ca894a14b7c6eeeb733f5cbb 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: No longer require layer_data for stage validation

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
69f9a551bfb1fd5334950f9685c12c5adda23dfb 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Pass in shaderModuleMap to SC

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7c7400aa231c3dbb21e51158adebb83d5f528130 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: use RENDER_PASS_NODE* from pipeline in SC

Breaks one more dep from SC guts -> layer_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
3ce94c3c0281078b41205789567c563991a8737e 13-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add RENDER_PASS_NODE* to PIPELINE_NODE*

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
a95cb74c9d0947ab3821b15e1289755286ea78ee 12-May-2016 Karl Schultz <karl@lunarg.com> tests: GH431 PR 510 Apply suggested changes

- Convert error to warning for overlapping ranges
- Consider overlapping ranges in range checks
- User a reference to avoid a copy
- Many more additional tests

Change-Id: I18ad43b98684f16a978461a1a089ebff5437a563
/external/vulkan-validation-layers/layers/core_validation.cpp
ef4c4dfb1ee1a3b1aa2205b4e5e44aedd5882f4e 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Remove unused var to fix android build
/external/vulkan-validation-layers/layers/core_validation.cpp
0d39b6d2c5162541640e48eba41f07a21b62e806 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time

Previously performing this check at CmdBeginRenderPass time, but we have
all of the data needed when renderpass is created so check there instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
9e24d8153ab63bc3ac08b5a1517c203930b5de91 06-May-2016 Karl Schultz <karl@lunarg.com> tests: GH431 Add layer checks and tests for push constant

Change-Id: I46eb5f9adbe702a278cded0f73dc18d1617489f0

Fix windows compilation issues

Change-Id: Ic9b9795e34d1e1e68bae9838b8538bb2e37d18b4
/external/vulkan-validation-layers/layers/core_validation.cpp
fd61966f8d41b5bce15620b70563b7864cbb28fe 10-May-2016 Cody Northrop <cnorthrop@google.com> layers: Determine whether command buffer can be ended with active render pass
/external/vulkan-validation-layers/layers/core_validation.cpp
a154a5dd642c3dddb53a5be59267ca81692baf30 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Remove unused var to fix android build
/external/vulkan-validation-layers/layers/core_validation.cpp
be45dd763c94dfcb0b52709d8d613848c4c914e1 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Migrate INVALID_IMAGE_LAYOUT check to renderpass create time

Previously performing this check at CmdBeginRenderPass time, but we have
all of the data needed when renderpass is created so check there instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
3544fbcbac794401cd523be8d779ff10c03d6121 11-May-2016 Tobin Ehlis <tobine@google.com> layers: Remove MEMTRACK_INVALID_LAYOUT

Use DRAWSTATE_INVALID_IMAGE_LAYOUT instead as MEMTRACK version was only used
in a single case and the check is more in-line with DRAWSTATE behavior.
/external/vulkan-validation-layers/layers/core_validation.cpp
414e9a4117b500eac650d8b8f01a6e1b22d05aae 03-May-2016 Mark Mueller <markm@lunarg.com> layers:LX#470 Fix poor use of hex vs dec output

1) Introduce convention of explicitly placing "0x" before hex
format requests for clarity (don't use "%#")
2) All lower case in hex output (except w/stringstream which refuses
to do anything but uppercase, possibly only on windows).
3) Decorated pointers are printed for all Vulkan structure types.
3) Some intelligence in generators based on Vulkan variable name:
if the Vulkan variable name contains ("flag", "bit", "offset",
"handle", "buffer", "object", "mask") it will be output in
hexadecimal format

4) Remove "using namespace std;" from global scope of vk_struct_string_helper_cpp.h

Change-Id: Idbae73bfdaa3bc059543d43b209373cd0bcbc099
/external/vulkan-validation-layers/layers/core_validation.cpp
5121a8dcacb23766ba4455b4eea429f0a3d62099 06-May-2016 Chris Forbes <chrisforbes@google.com> layers:pass RENDER_PASS_NODE* around more

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ee691f5c5fa87aac3750454d2bca2cb582e4e817 06-May-2016 Chris Forbes <chrisforbes@google.com> layers: Hold active RENDER_PASS_NODE rather than VkRenderPass in CB node

Allows eliminating the bulk of the renderPassMap lookups

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
98cddf7090b5d5dcc382045867753ef703d1c3d3 06-May-2016 Chris Forbes <chrisforbes@google.com> layers: Add VkRenderPass member to RENDER_PASS_NODE

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
cf2686cdbb12af8a29ca598c126b5e37215f0ef7 06-May-2016 Chris Forbes <chrisforbes@google.com> layers: Trim down locked regions in CreateRenderPass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ea8349eeee76ae2859c10870fd8bd9e60309eb28 06-May-2016 Chris Forbes <chrisforbes@google.com> layers: Mark some layer_data const, remove unordered_map::operator[] use.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f54d085ac836f3b0a2b62f6b401f759e586f0ea7 11-May-2016 Chris Forbes <chrisforbes@google.com> layers: Fix get_descriptor_binding

Not sure where the `return` went... this worked by accidents of calling
conventions in debug, but was rightfully eaten by the optimizer in release.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4110a6be7a8a287d459475926985f71c27d01298 10-May-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of even more coupling between SC and rest of CV

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f73b2046273413ea1338dd714d67c39f8e0fa09e 10-May-2016 Chris Forbes <chrisforbes@google.com> layers: have PIPELINE_LAYOUT_NODE hold ptrs to descriptor set layouts

Just holding the nondispatchable object handles forces
get_descriptor_binding to use layer_data, which we'd rather it didn't.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b95616f79b105741b1399b01d527a8ef3b7ccfb7 11-May-2016 Chris Forbes <chrisforbes@google.com> layers: add some asserts to spirv_inst_iter

These allow us to more easily catch in debug:
- Bogus zero-length instructions
- Reads off the end of the instruction

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6bdabc8615f7c55234e644fdfa143e223cfc7719 10-May-2016 Tobin Ehlis <tobine@google.com> layers: Update fence to track all queues associated with it

Semaphore's can create cross-queue dependencies between fences.
This change updates the FENCE_NODE object to have an unordered_set
of all queues that a fence is tied to instead of just tracking the
last queue on which a fence has been submitted.
/external/vulkan-validation-layers/layers/core_validation.cpp
ecc961e2db2546deef62a6d4175753d90218b678 10-May-2016 Tobin Ehlis <tobine@google.com> layers: GH458 Fix cleanup of queue lastFences

When waiting on fences, they were not being correctly removed from the
queue's lastFences vector. Updated the remove code and verified that
it's now working correctly.
/external/vulkan-validation-layers/layers/core_validation.cpp
ae7fe2b3600678e83196bb0d79ca35afc599a122 06-May-2016 Tony Barbour <tony@LunarG.com> layers: Save swapchain image format for later validation compares

This fixes the cube resize with validation enabled bug
LunarEx issue #501, Github Issue #275

Change-Id: Ifc73be13f09f332a7b30e08d1f9fe4f3894d2b78
/external/vulkan-validation-layers/layers/core_validation.cpp
edef66e03ed509994449d598f4fadea1a487d41b 10-May-2016 Chris Forbes <chrisforbes@google.com> layers: Start cutting needless deps between SC and layer_data

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4c665b29a9d2906a378417546c7fc6436731d07f 09-May-2016 Tobin Ehlis <tobine@google.com> layers: Update behavior for secondary cmdbuffers w/ *_SIMULTANEOUS_USE_BIT set

Spec clarification has been approved and secondary command buffers with
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT may be in flight in multiple primary
command buffers at the same time.

This changes updates the error concerning secondary command buffers to be in-flight
on multiple primary command buffers to only appli if
VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT is not set.
/external/vulkan-validation-layers/layers/core_validation.cpp
56a5ba3e60a723781945959ffc10e2e215350de5 05-May-2016 Chia-I Wu <olv@google.com> core_validation: avoid invalid GIPA call in vkCreateDevice

Save VkInstance in layer_data so that we query vkCreateDevice with a valid
instance.
/external/vulkan-validation-layers/layers/core_validation.cpp
3f6f8132355ebdae2736b31fc20de2ac60a70310 05-May-2016 Chia-I Wu <olv@google.com> core_validation: handle device commands in GetInstanceProcAddr

Per commit 5bf16c33b9c1f38fc467d94716f276620a265327, extension check is
bypassed in GetInstanceProcAddr for VK_KHR_swapchain functions.
/external/vulkan-validation-layers/layers/core_validation.cpp
7a5e039f8f74667b71d3c3b54e5abb8d9b834475 06-May-2016 Chia-I Wu <olv@google.com> core_validation: no interface functions in layer functions

Move handling of interface functions in
core_validation::GetInstanceProcAddr to v0's vkGetInstanceProcAddr.
/external/vulkan-validation-layers/layers/core_validation.cpp
7ed76a2d9a619f963e7a1afb13e9913fbc09dc63 06-May-2016 Chia-I Wu <olv@google.com> core_validation: refactor GetInstanceProcAddr

Split command intercepting out to intercept_core_instance_command. Assert
that instance is valid if intercept_core_instance_command returns nullptr.
/external/vulkan-validation-layers/layers/core_validation.cpp
09a2f8128f58f032b73d29fab5afd789626562c3 06-May-2016 Chia-I Wu <olv@google.com> core_validation: add intercept_khr_swapchain_command

It returns the function pointers for all intercepted VK_KHR_swapchain
commands. Call intercept_khr_swapchain_command from GetDeviceProcAddr.
/external/vulkan-validation-layers/layers/core_validation.cpp
80be5ddd2f71eae65d790fe63d1e5b1e1f4daa42 06-May-2016 Chia-I Wu <olv@google.com> core_validation: add intercept_core_device_command

It returns the function pointers for all intercepted core device commands.
Call intercept_core_device_command from GetDeviceProcAddr. Assert that
device is valid in GetDeviceProcAddr.
/external/vulkan-validation-layers/layers/core_validation.cpp
a8f4a23b1e9c068717eda47cc583a93f447c77e3 06-May-2016 Chia-I Wu <olv@google.com> core_validation: improve EnumerateDeviceExtensionProperties

Call down the next layer unless pLayerName is core_validation.
/external/vulkan-validation-layers/layers/core_validation.cpp
e11120777bcd1543455d1de54b89292879bcd2bb 06-May-2016 Chia-I Wu <olv@google.com> core_validation: add core_validation::global_layer

Replace cv_global_layers and cv_device_layers with global_layer. There is
no plan to define more than one layer in the same namespace.
/external/vulkan-validation-layers/layers/core_validation.cpp
89d6bb8ab0ab38202ecfb3d6e21f60c884cc62e5 06-May-2016 Chia-I Wu <olv@google.com> core_validation: drop vk prefix for layer functions

Drop VK_LAYER_EXPORT as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
d16a2fd05d0b6bd20c7274560c88e37e4b3adefc 06-May-2016 Chia-I Wu <olv@google.com> core_validation: put layer functions into a namespace

Put all layer fucntions/data into core_validation namespace. I had to add
some wrappers to make everything work.
/external/vulkan-validation-layers/layers/core_validation.cpp
08939232d080c94fc7b4c5ad348644928beb1519 06-May-2016 Chia-I Wu <olv@google.com> core_validation: move vkEnumerate*Properties around

Move them toward the end of the file.
/external/vulkan-validation-layers/layers/core_validation.cpp
888e1d268098177fde4a2263e3d7b7cc415f1deb 06-May-2016 Mark Young <marky@lunarg.com> layers: Properly set secondary cmd buffer inherited items.

We failed to inherit the proper items in the secondary cmd buffer
in the core_validation layer when the
VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT bit was set.

Change-Id: I01579d889dde8e0d331ed5a65eb48ce7185d3d82
/external/vulkan-validation-layers/layers/core_validation.cpp
bb6624cb996175d8945190886a200e720b3871ef 08-May-2016 Chris Forbes <chrisf@ijw.co.nz> layers: Fix usage flags validation of CreateImageView

We need to validate the flags before calling down into the ICD. At least
one ICD (Anvil) asserts if it sees bad flags.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
/external/vulkan-validation-layers/layers/core_validation.cpp
43986b69242d252623f4ee7278f1ecd07370adc8 06-May-2016 Chris Forbes <chrisforbes@google.com> layers: Fix logical negate to bitwise negate in access flags checking

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
01f3372271027b700265e5fbdbef5ad9c3b94649 06-May-2016 Tobin Ehlis <tobine@google.com> layers: GH494 Add constructors for IMAGE and BUFFER nodes

Add proper constructors for IMAGE_NODE and BUFFER_NODE classes and
correctly initialize all of their data members.

Change-Id: I6c9d4a3ba6f3ef8e569de55793de9d6f7fd406b1
/external/vulkan-validation-layers/layers/core_validation.cpp
eca2d52a6bfa3f9d63a86ca9fd30abc0adf775b7 04-May-2016 Mark Young <marky@lunarg.com> layers: Fix core_validation issues GH103 and GH240

Perform pipeline sample and attachment count validation at draw
time instead of vkCmdNextSubpass() time. Also validate that
an active renderpass exists.

Change-Id: I912947287eef29d532519220750c3a93a3554565
/external/vulkan-validation-layers/layers/core_validation.cpp
f13bee0887f3c3d1d597c82869864be3be836737 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Further descriptorSet cleanup fixes

Clear the pools list of sets when pool is reset.
Also make sure to remove sets from pool as they are freed.
Added a related fix to testing to correctly free descriptorSets
in DescriptorSetCompatibility test.
/external/vulkan-validation-layers/layers/core_validation.cpp
9dd448578d59cb5ce692e833ba230783b30f3550 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Correctly invalidate cmd buffers when descriptor pool cleared/freed

When a DescriptorSet pool is Destroyed or Reset we destroy all underlying
descriptorSets, but we weren't invalidating cmd buffers bound to those sets
in these cases. This adds a common function, freeDescriptorSet(), to make
sure anytime a descriptor set is destroyed, any bound cmd buffers get
invalidated and the set is removed from setMap and then destroyed.
/external/vulkan-validation-layers/layers/core_validation.cpp
c5f47f0a54e14c47d402aeabc6498d981ecda9cc 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Fix descriptorSet cleanup bugs

When we deleted DescriptorSet* objects we weren't removing them
from the setMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
895b1225b840e5beaa1fe93597ede4b0f55ef0ca 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Kill unused shadowUpdateNode()

No longer needed with migration to DescriptorSet class.
/external/vulkan-validation-layers/layers/core_validation.cpp
bf230ded6e1247603f278c6d1b9b828ddb5fd595 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Fix stale comments in core_validation
/external/vulkan-validation-layers/layers/core_validation.cpp
397d27da37095073c8b86f9ff5289d0a39ce486e 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Kill SET_NODE construct and just use DescriptorSet class

Migrated setMap to just use DescriptorSet class natively. SET_NODE was
just wrapping that class but that's not necessary so killing extra indirection.
/external/vulkan-validation-layers/layers/core_validation.cpp
cb9ce9e05b8e939d3da35c64997c70049877f4fe 03-May-2016 Tobin Ehlis <tobine@google.com> layers: Rearchitect Descriptor Set validation code

This change pulls all of the DescriptorSet code out of core_validation.cpp and into
its own files/classes in descriptor_set.h/cpp.

See header file for complete class documentation.

These changes pass tri/cube/smoketest --validate.
All related layer validation tests are also updated and passing.
Finally, I ran it through mustpass CTS and did not hit any issues related to these changes.

These changes not only update the descriptor interface but fix some known lingering
bugs with how descriptor updates occurred. This includes now correctly handling
updates that cross binding boundaries and updates that write a subset of a binding.

Going forward this is a general outline for how we would like to evolve core_validation.
That is, we'd like to move the functionality of the checks into reasonable classes and
just have core_validation call into those classes to do the majority of the work.
/external/vulkan-validation-layers/layers/core_validation.cpp
94601b592f9bf0d1e426e066f565207b2bf42699 05-May-2016 Michael Lentine <mlentine@google.com> layers: Clear cmdbufs and prior fences after processed in decrement.
/external/vulkan-validation-layers/layers/core_validation.cpp
386d9a9a77f884789a7ae4c3890aecd47132f2ba 05-May-2016 baldurk <baldurk@baldurk.org> layers: #486 Add some missing spaces where needed ...

Original commit message:

Add some missing spaces where needed, hidden by string concatenation
/external/vulkan-validation-layers/layers/core_validation.cpp
8587553997b892f4f91e368812672a76ea4a962e 05-May-2016 Tobin Ehlis <tobine@google.com> layers: Kill unused var that was breaking android build
/external/vulkan-validation-layers/layers/core_validation.cpp
025e5113963305eff75601c96eac61d2c5b57e3c 29-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Consider missing color attachments in validation

Previously we'd assumed these were dense. It is however valid to provide
VK_ATTACHMENT_UNUSED for a color attachment reference.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
47aaf733d7394bda75c6de24289efe6b281e3cff 03-May-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix memory aliasing false positives in core_validation

Change-Id: I889a00132af4c6f8db944ed21f03290ee8f14063
/external/vulkan-validation-layers/layers/core_validation.cpp
22fb3c0393ef588b11f8313f01c508028d77dec0 02-May-2016 Tobin Ehlis <tobine@google.com> layers: GH465 Add validation for now bound VkPipeline

At the time of a Draw or Dispatch, a pipeline must be bound to the
command buffer. This adds a check to verify that.
Added tests for both draw and compute cases to verify the check.
/external/vulkan-validation-layers/layers/core_validation.cpp
bf9672323673c925b8b926e49f80eaf6116a4694 30-Apr-2016 Michael Lentine <mlentine@google.com> Remove fences once they have been waited on.
/external/vulkan-validation-layers/layers/core_validation.cpp
18ef6d5a98654384d6d5c022e01324fa436c02af 30-Apr-2016 Michael Lentine <mlentine@google.com> layers: Add fence in use for bind sparse info.
/external/vulkan-validation-layers/layers/core_validation.cpp
e44200cc4e1a293ff04baed6dcc4f1e37c2d66f1 29-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Clarify error message for pipelineLayout incompatible
/external/vulkan-validation-layers/layers/core_validation.cpp
b1f65702539fd041337fccd493dc6d38dd2a603e 04-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Integrate SPIRV-Tools validator

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6660d6f3e4e4c895063e8d99098162bd2f508b24 27-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Emit safe_*::ptr() members to eliminate some cast noise

These casts were annoying noise, and uncheckable. Move them into the
generator where we know the one type that makes sense.

Drop spurious reinterpret_cast of stage create info to itself -- it's
all raw types once the root pCreateInfo is unwrapped.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
8c66a7758d9ec6b6f9429115140d38f6ed077e7e 26-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Add interface to get descriptor type from layout's global index

We match up dynamic descriptor offsets one at a time so added an interface
to get descriptor type from the global index in addition to the original
pBinding index. This allows us to iterate over all of the descriptors in a
set and easily grab their type.
/external/vulkan-validation-layers/layers/core_validation.cpp
a1e5173c89eb7f03e0434ad45ccd1471e722fa71 26-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Fix object lifetime bugs in DescriptorSetLayout

Incomplete copy construction of DescriptorSetLayout and safe_* types
causes embedded pointers (such as pImmutableSamplers) to become invalid
before they should. Fixing this for now by moving DescriptorSetLayout
and its embedded safe_* struct to ptrs within their containers and
explicitly deleting.
/external/vulkan-validation-layers/layers/core_validation.cpp
fce842878e9ddcc7f37e1c457a4b018d52358087 21-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Break out VkDescriptorSetLayout code into its own class

This is the start of a refactor to pull code out of core_validation.cpp
into its own separate classes. I'm starting with descriptor set code as
it isolates reasonably well and it's old and could use some updating anyway.

For this first piece I've broken VkDescriptorSetLayout into its own
class currently called DescriptorSetLayout. I don't know if that's a great
name as it's close to VkDescriptorSetLayout, so I'm open to changing it.
Provided a brief class description in comment in new file descriptor_sets.h.

I made the class interfaces based on what other code is currently using.
I'm planning to pull more descriptor set code into its own classes and I
anticipate that will cause some flux in the class interfaces until most
of the work is done.
/external/vulkan-validation-layers/layers/core_validation.cpp
6ac48f04d8c4853d0fe84cbcd41f3ff4b6346672 22-Apr-2016 Tobin Ehlis <tobine@google.com> layers: GH384 Fix to correctly recognize immutable samplers

Actual fix this time. If a binding is immutable samplers
skip over it when verifying descriptor bindings.
/external/vulkan-validation-layers/layers/core_validation.cpp
672a7ee979486eaec10f96063f0455e8c2a02595 21-Apr-2016 Karl Schultz <karl@lunarg.com> layers: Reorder to prevent Null deref; add test

Found by running Hologram with validation and push constants
using args "-p -v".
Hologram is issuing a memory barrier in the push constants
mode. This will be fixed in Hologram, but validation should
not be crashing.

Change-Id: I1e76c3fca0152fc3bf8c1de3db3b044f650c202f
/external/vulkan-validation-layers/layers/core_validation.cpp
a27508babf63d50aea75883a3702979193c23683 31-Mar-2016 Mark Young <marky@lunarg.com> layers: Add fix for lx172 to catch invalid line widths.

Validate line wdith in both vkCreateGraphicsPipelines and in
vkCmdSetLineWidth. Also, add a warning in vkCmdSetLineWidth
if the user calls it but doesn't enable dynamic line width.

Also, updated demos to fix missing lineWidth setting as well.

Change-Id: I62118da9cb5282fcc22b1506e9be2db82b5f4a40
/external/vulkan-validation-layers/layers/core_validation.cpp
b3d308d63ba34f40839f009ac83b33962d7f26b2 21-Apr-2016 Michael Lentine <mlentine@google.com> layers: Fix cmd buffer tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
a265a8ed3bbb32ade305b1be3148d6001a870b76 18-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Cleanup core_validation fence tracking

There were two separate mechanisms for tracking fence state in core_validation.
This change removes the last[Retired|Submitted]Id per queue method.
We also no longer over-write the fence createInfo to track fence state, but
just use the needsSignaled bool for all fence state tracking.
Finally, there was a validation test/check flagging an error if an
unsignaled fence was reset, but this is valid based on the spec so removed
the check and changed test to be a positive test expected to pass.
/external/vulkan-validation-layers/layers/core_validation.cpp
c7255e92ea81e8639dc21388ec2a959bd63319c7 21-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Consider #locations consumed by large VkFormats

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
cc52143fc093e1e62d2dacc4abc3966e04b6f6d6 21-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Consider element type bit width for #locations consumed.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
abfafae4ec5d76e520916b03d196e474e972c949 20-Apr-2016 Michael Lentine <mlentine@google.com> layers: Fix for clearing layouts and cmdbuffers.
/external/vulkan-validation-layers/layers/core_validation.cpp
31c2b86c259f87e539d544702c30e3c368e6b905 20-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Add missing 64bpc formats to get_format_type

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
f0e6d40360fcfcc98df5ada68c14b08f11eec531 20-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Fix get_format_type for VK_FORMAT_A8R8G8B8_{S,U}INT_PACK32

Fixes GH #330.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
fff9393206f66a154438e16fa0562c989f425498 20-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: block members do not express extra array level in member type

Fixes GH #377.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
9bd7be0cd7f78c2e94bfe5815c21fcafcf4c8526 19-Apr-2016 Tobin Ehlis <tobine@google.com> layers: GH384 Fix descriptor update check for immutable samplers

If a descriptor is an immutable sampler of type VK_DESCRIPTOR_TYPE_SAMPLER
then it doesn't need to be explicitly updated so don't flag errors in this case.
/external/vulkan-validation-layers/layers/core_validation.cpp
43b53e83705f02245da6ae61e31273866a35b833 19-Apr-2016 Jon Ashburn <jon@lunarg.com> misc: Update licenses to Apache 2.0

Change-Id: Id447f4c8c53d33f9192940bdd3ae727b7b738a97
/external/vulkan-validation-layers/layers/core_validation.cpp
93c396d566d722dc5c6f438eae212da0e9337ba3 12-Apr-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX468, Prevent bad core_validation error message

Properly track commandBuffer/FrameBuffer references.

Change-Id: Ibbc078b582b204bee26cdc510575c57023cf9d6b
/external/vulkan-validation-layers/layers/core_validation.cpp
b9e992386a44404152747d66817a733aa127e281 14-Apr-2016 Jeremy Hayes <jeremy@lunarg.com> layers: core_validation - use std mutex

Change-Id: I88af1e86c0ef93dbeab303977b8190ad1968c00d
/external/vulkan-validation-layers/layers/core_validation.cpp
bc300ace5ad8d1935d42ee5dbbf36ce6ace4c0e8 14-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Correctly remove secondary cmd buffers from in-flight

Secondary command buffers are considered executing, or "in-flight"
at the time they're bound into a primary command buffer. This leads
to a couple of corner case bugs if the primary command buffer is
never submitted on a queue. This change fixes those bugs:

1. If a secondary cmd buffer is being freed and is in the global
in-flight set, remove it if associated primary is not in-flight
2. When a primary cmd buffer is reset, remove its secondary
cmd buffers from in-flight
/external/vulkan-validation-layers/layers/core_validation.cpp
51db9745081fb7d5eaf6d00cfe5dcc1f82c1730c 15-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Fix vkResetDescriptorPool

When we reset descriptor pool, need to remove the allocated
descriptors from setMap and free them.
/external/vulkan-validation-layers/layers/core_validation.cpp
3da84689683bb257cc0f64953966666d19321119 14-Apr-2016 Michael Lentine <mlentine@google.com> layers: Remove error when only implicit dependencies are used.
/external/vulkan-validation-layers/layers/core_validation.cpp
0a59acde4b40fde3bbfea5811d2abf2c85ca62f4 14-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Validate ONE_TIME_SUBMIT for secondary cmd buffers

Previously were only validating *_ONE_TIME_SUBMIT_BIT for primary cmd buffers.
After clarification on spec, moving the check so it will also hit secondary
command buffers.
/external/vulkan-validation-layers/layers/core_validation.cpp
6f65b420ec34b089bc1c68b135ad37ede5565d41 11-Apr-2016 Mark Young <marky@lunarg.com> layers: Update core_validation to fix lx265.

Tobin discovered an issue with my previous change. This resolves
the issue with the blend state targeting only a specific subpass
and verifying the subpass attachment count matches the blend
attachment count.

Change-Id: Iacdd880dde32267da095a3e9baa9e8eb66fdc760
/external/vulkan-validation-layers/layers/core_validation.cpp
dfc3ecf3aeb24f3f80ebe6830ce700ad4ec60595 12-Apr-2016 Mark Young <marky@lunarg.com> layers: lx464 Add drawtime validation of bound buffer memory.

Add a drawtime check to validate that storage or uniform buffers
have valid memory bound to them at draw time before using.

Change-Id: Ia0a07f221dfcb2ea4315e4f52ee04d7cdda22cf7
/external/vulkan-validation-layers/layers/core_validation.cpp
856ecb404bc959ddb877c150c9caa0649055b9cb 12-Apr-2016 Mark Young <marky@lunarg.com> layers: lx465 update core_validation image layout warning.

If sub-resource data is present, print out that info as part of
the error message when the image layout is incorrect.

Change-Id: Ibd4d95e22d846b823b5c76986e8646624c109bc6
/external/vulkan-validation-layers/layers/core_validation.cpp
ce62d9f596fa03529c4961ab715473a0e9254e0e 14-Apr-2016 Mark Mueller <markm@lunarg.com> layers: LX466. Resolution of "Typo in validation layer", human spell checker invoked
/external/vulkan-validation-layers/layers/core_validation.cpp
47c4ec0c3856ae594e26241bf6796785a2150cbf 14-Apr-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix windows build

VkObjects should be cast to uint64_t by using 'reinterpret_cast<uint64_t &>'

Change-Id: I403efdf389dad61c373df40c5fa1fbed7cf96abd
/external/vulkan-validation-layers/layers/core_validation.cpp
4b38d3aa8b6be6a7f5bebb472ab439da0562824f 14-Apr-2016 Tobin Ehlis <tobine@google.com> layers: GH337 Track fence from vkQueueBindSparse

Correctly update fence tracking for vkQueueBindSparse() call.
/external/vulkan-validation-layers/layers/core_validation.cpp
c07fa78efa7d4edfaa4ffbb0c2046ee8154b27be 14-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: only construct stringstreams in error paths

These are actually stupidly expensive to construct -- with most of the
cost going to the contained std::locale.

Added up to about 6% of profile on my machine in `smoke -s` with
VK_LAYER_LUNARG_core_validation enabled.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
3ee1d6057ee6c49b9dbbeb067b7fd149bdba7b5c 14-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Validate correct vkSetEvent() use

Make sure vkSetEvent() is not called on an event that's in use
by and in-flight cmd buffer. Such use violates queue forward progress.
/external/vulkan-validation-layers/layers/core_validation.cpp
6044e94c13064f4663b31854951b7d4edf7877b2 14-Apr-2016 Michael Lentine <mlentine@google.com> layers: Change access bit checks to warnings.
/external/vulkan-validation-layers/layers/core_validation.cpp
dcf917f7e9b04916caf3f7bb067f7f760d0daa99 13-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: cv: get rid of device-scoped current renderpass tracking

This was completely redundant to the (correct) CB-scoped renderpass
tracking, and only served to break things when different threads
simultaneously recorded command buffers.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
41bb23666442c59912c630f85db04ce1a052f3ef 13-Apr-2016 Tobin Ehlis <tobine@google.com> Revert "layers: LX459,GH#99,#100, Fix semaphore reference count"

This reverts commit 541bb5afc50581e7c765fc5c05400540369f0044.

Reverting this as the original issue is still present and being worked on
so restoring original state until correct fix is complete.
/external/vulkan-validation-layers/layers/core_validation.cpp
1344302fce242e654df2fd518b6371a91b8a5c7d 12-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Clean up semaphore state in core_validation

No need to have 3 semaphore states. Killed SemaphoreState struct and
updated all the code to just use the "signaled" bool.

Also minor clean-up of queueMap destroy code.
/external/vulkan-validation-layers/layers/core_validation.cpp
400cff9fad0e19c80f6c9ed1181795d411a4bec5 12-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Cleanup of various cmd buffer functions in core_validation

Killed some mem_tracker functions that were doing redundant work.
Removed some calls to checkCBCompleted that were superceded by
validateCommandBuffersNotInUse() calls.
Clarified some "my_data" vars as "dev_data."
/external/vulkan-validation-layers/layers/core_validation.cpp
b1b606d27e8c4179534d7bbb48ce217429e37414 11-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Cleanup core_validation physical device properties structs

Pull physical device memory properties into layer_data and make sure it's
correctly populated at vkCreateDevice() time.
Clarify a few ambiguous "my_data" variables as "dev" or "instance".
Rename physical device properties to be lower case. This is the start of
a slow move to unify code on common standard with lowercase variable names.
/external/vulkan-validation-layers/layers/core_validation.cpp
fd50683af1a7a54c6b8c13d790ad57c48072f55b 11-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: renderpass compatibility: there is only one d/s attachment

Previously this function assumed there were as many d/s attachments as
color attachments, which is invalid. Besides not making sense, we'd end
up dereferencing memory beyond that pointed to by
VkSubpassDescription::pDepthStencilAttachment if we had multiple color
attachments.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6fcff21b8cce5159fdfa317e612f75f5ea6a189e 07-Apr-2016 Tobin Ehlis <tobine@google.com> layers: GH241 vkSetEvent should affect queue stageMasks

vkSetEvent may occur asynchronously from cmd buffer execution
and the results of vkSetEvent should be immediately visible
across all queues of a device.

This fix will update any event that a queue has seen so that
its VK_PIPELINE_STAGE_HOST_BIT is set at vkSetEvent() time.
/external/vulkan-validation-layers/layers/core_validation.cpp
f90830842fdd43e8f1834f2eb76bda28eef435b8 07-Apr-2016 Tony Barbour <tony@LunarG.com> layers: Move call to validateCommandBuffersNotInUse inside lock

Fixes segv in CTS multithreaded command pool test

Change-Id: I80da12fd2bb6856e3c6824f17dd92f1597121a54
/external/vulkan-validation-layers/layers/core_validation.cpp
09df2b6afd74a6494aa530ba23a80ba69abc79df 07-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix 32-bit Windows build

Change reinterpret_cast<uint64_t> to reinterpret_cast<uint64_t&>.

Change-Id: I87b8479df6ba7f93b922bab11edbbf6c4fbfe7f6
/external/vulkan-validation-layers/layers/core_validation.cpp
b5d4c1684e41455cb2da487c808fd72070b564d2 06-Apr-2016 Michael Lentine <mlentine@google.com> layers: Ensure bind point for subass is graphics.
/external/vulkan-validation-layers/layers/core_validation.cpp
0a1ce3dfd81c9f4efbe46f5ba5ddaea70bc4aa61 06-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Remove plumbing through of unused dispatchable object through MT

Much of this was eventually going to go away anyway, but getting rid of
this thread of it was trivial.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
94c53c062f0ccc70ef0ada8e98edc90eadc4cb45 05-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Merge binding maps into image and buffer maps

mem_tracker layer had specific maps to track memory binding for images
and buffers. This change merges the data from those maps into IMAGE_NODE
and BUFFER_NODE respectively and eliminates the binding maps.
/external/vulkan-validation-layers/layers/core_validation.cpp
52156ec29c88c0e52eb89fb42867adacb1dd31bb 06-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Insist on each shader's stage being unique in a pipeline

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0d615f0a5724edac98475366cf3e486dccc1f2d6 05-Apr-2016 Michael Lentine <mlentine@google.com> Validate attachment index is in range.
/external/vulkan-validation-layers/layers/core_validation.cpp
37576f9c5ccc190c53a1c10baf383d77c3c6d476 05-Apr-2016 Chris Forbes <chrisforbes@google.com> layers: Implement relaxed vec-vec and vec-scalar matching rules

- Track whether we've seen anything disqualifying -- non-stripped
arrays, matrices, structures, etc.
- Add relaxed vec/scalar and vec/vec matches if not disqualified.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
45824955f3d4d2baee6d225f84ac9c2553981b3e 05-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Explicit VK_TRUE/VK_FALSE checks

Add explicit VK_FALSE/VK_TRUE conditional checks.

Change-Id: Idb5c82ce53d54c9f2c378dc557152efc695ae2b1
/external/vulkan-validation-layers/layers/core_validation.cpp
e3319189d6f8e3126522df7a5935d2c42f656291 05-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: Fix unsafe bool mix warnings

Fixes the MSVS warnings regarding unsafe mix of VkBool32 and bool for the
core_validation layer. Converts all Boolean values internal to the layer
to bool/true/false. The VK_TRUE and VK_FALSE values continue to be used
with the Vulkan API components.

Change-Id: I9a298e2a9f5f92a388a2b7c158451d237fdb4fc0
/external/vulkan-validation-layers/layers/core_validation.cpp
1d5109d5e0dcc530b27e632e73e1be5e12a28dcd 04-Apr-2016 Jamie Madill <jmadill@chromium.org> Fix 4 MSVS warnings in loader and layers.

warning C4267: conversion, possible loss of data
warning C4389: signed/unsigned mismatch
warning C4701: potentially uninitialized local variable used
warning C4702: unreachable code

Change-Id: Ibc2ce3825a986c3701f6e0e6244a0e30fbf7e87c
/external/vulkan-validation-layers/layers/core_validation.cpp
ca546210846c65808717f8875deae39bd227c240 01-Apr-2016 Tobin Ehlis <tobine@google.com> layers: Clean up PIPELINE_NODE using safe_struct

PIPELINE_NODE was storing ptrs from the app and has some ugly initialization code
for the gfx pipeline create struct. This commit switches pipeline node to use
safe_struct wrappers for Gfx and Compute create info.
There were also some bugs found in the safe_struct wrappers making this migration
so those are cleaned up in this commit as well.
/external/vulkan-validation-layers/layers/core_validation.cpp
c15b801a6e1a5dd5eed09e689aecdde7c4a90a5b 03-Apr-2016 Michael Mc Donnell <michael@mcdonnell.dk> layers: Fix 7 signed/unsigned comparison warnings on VS2015
/external/vulkan-validation-layers/layers/core_validation.cpp
ca32a764ef85a255c97531164bffb073553de105 04-Apr-2016 Jamie Madill <jmadill@chromium.org> layers: Fix MSVS shadowing warning in core_validation.

warning 4457: declaration of 'fence' hides function parameter
/external/vulkan-validation-layers/layers/core_validation.cpp
614e68cc288cb340ad5b803c039fe6095f371435 04-Apr-2016 Tony Barbour <tony@LunarG.com> Revert "layers: LX265 Error if color blend attch count != subpass attch."

This reverts commit dcce8143110568353a6217e5b885da407edd29be.

Change-Id: I0882b499b38e3cf7670846a9ffae48a0fbf015a3
/external/vulkan-validation-layers/layers/core_validation.cpp
4a3279bb23b511257d80ec73ce06d6206d7ab503 30-Mar-2016 Michael Lentine <mlentine@google.com> Fix find layout to search on each aspect bit.

Change-Id: I155ee469ef98d1ad9b1bfc8813a1cff43f30f8ca
/external/vulkan-validation-layers/layers/core_validation.cpp
e1e6c09294ddc4f915a332b495db9c14163b2cd3 01-Apr-2016 Tobin Ehlis <tobine@google.com> layers: GH226 Add check for descriptor slot to make sure it's updated

We have an existing check to make sure that a set has been updated, but there was
still a hole where individual slots may not have an update. This adds an additional
check to make sure that we flag any slots that are used by not updated at draw time.
/external/vulkan-validation-layers/layers/core_validation.cpp
e576798e0a38a7d941b6202d784ad705024e9fdc 30-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Removed duplicate dynamicOffsets from core_validation

Missed this from a rebase conflict. Kill top-level cmd buffer node
dynamicOffsets vector and only use vector based off of lastBound data.
/external/vulkan-validation-layers/layers/core_validation.cpp
f706c50be3a9d4d1e131c2f43ee2fb443f028d30 04-Apr-2016 Chris Forbes <chrisforbes@google.com> tests: Add test case for patch decoration mismatch

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
0f44c68c2575ba2fc83d8c8f2f5ea09548f40686 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Flag difference in patch decoration correctly

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
031261d21af8907953dd763398ce9a23e65b8749 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Strip array level from both sides of TCS->TES interface

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7c755c8aca6857046df9516d8336416165969cb9 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Rework array-of-verts stripping a bit to support patch

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b934cb26db50b965da46ca3e3f006d5a93478f71 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Collect whether an interface_var has patch decoration

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
81264ddfa672e895a201f034617eca45bf8b9059 02-Apr-2016 Eric Engestrom <eric@engestrom.ch> layers: fix spelling mistakes
/external/vulkan-validation-layers/layers/core_validation.cpp
ec27ab7d1aa03fa187755b6720e1be995a994f5c 01-Apr-2016 Mark Lobodzinski <mark@lunarg.com> layers: Enable safety check for invalid QueryObject

Typo allowed object access for invalid QueryToStateMap objects

Change-Id: I50845ca09564ea8b77173d2165a5318160dd8d7e
/external/vulkan-validation-layers/layers/core_validation.cpp
2c905c8b5aca814df6c680348145ca48885f9f69 01-Apr-2016 Dustin Graves <dustin@lunarg.com> layers: LX414: Fix device_limits alignment check

Fix buffer/descriptor offset alignment checks in device_limits:
- vkUpdateDescriptorSets offset check was not performed with
the correct physical device alignments.
- vkBindBufferMemory offset check was always performed with the
UBO alignment. This check has been moved to core_validation,
where the offset is checked against the alignment associated
with its usage type and the alignment retrieved from
vkGetBufferMemoryRequirements.

Change-Id: I4f64e06c44972a224d1930cb0798a9f472b768f2
/external/vulkan-validation-layers/layers/core_validation.cpp
3d722f98b98af892a5c2b98a26068db98de39c33 01-Apr-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX459,GH#99,#100, Fix semaphore reference count

QueueSubmit waitSemaphore refcounts were getting incremented instead of
decremented, resulting in invalid 'semaphore still in use' errors.

Change-Id: I8ac224115b8ee43637b8de4b377750b277cfd22b
/external/vulkan-validation-layers/layers/core_validation.cpp
1c1ee7bf64fb8cc2ba4b8661baa11dce24b3b23a 30-Mar-2016 Mark Young <marky@lunarg.com> layers: LX250 Verify color and depth/stencil are different.

Validate that the color and depth/stencil attachments in a
subpass are different.

Change-Id: I0010270e50334cd1dc5b275c29c76265f570b186
/external/vulkan-validation-layers/layers/core_validation.cpp
04826a08000a815c3d7949348c7dfcaac277d7c9 01-Apr-2016 Dominik Witczak <Dominik.Witczak@amd.com> #238: Fixes the "num samples mismatch" error being shown incorrectly for subpasses with 0 attachments
/external/vulkan-validation-layers/layers/core_validation.cpp
c7196adb126cc3c77dc932e29193ca886532bac5 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Replace GLOBAL_CB_NODE::pMemObjList with unordered_set

One more std::list gone.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
20b3e28d96ae4f3cbd4535e53eb68521d31bb91b 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of a bunch of linked list copying when retiring CBs

There was no reason to copy this.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
4f085d96e1f9ba7cba58b480ae64a8546c9a00ee 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: trivial: remove stray () from end of error message

This wasn't describing a function; the () on the end is just nonsense.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
de886ba66b4535930eda3f737b1460bd62e1b2a5 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Replace DEVICE_MEM_INFO::pCommandBufferBindings with
unordered_set

More linked-list removal.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
896fc32d6f25e4bbe916bd27f2d5358d235840d4 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Replace DEVICE_MEM_INFO::pObjBindings with unordered_set

- Add operator== && std::hash specialization required for use in
unordered_set.
- Replace list by unordered_set
- Delete piles of stuff

V2: Fix accidentally inverted error condition

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c025ba3a7a8ad299af93449fbc234b6631d6f9eb 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Get rid of DEVICE_MEM_INFO::refCount

This is always the sum of the two container sizes, which are guaranteed
accessible in constant time in C++11.

We can only screw it up by independently tracking it.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e9fc72c9b6850b2769d7100bb4e9cffde395f05b 30-Mar-2016 Tobin Ehlis <tobine@google.com> layers: GH218 Reset availableSets count in vkResetDescriptorPool
/external/vulkan-validation-layers/layers/core_validation.cpp
0292df5015fd4bc660ec2612ad8e9b091059b3f5 01-Apr-2016 Mark Young <marky@lunarg.com> layers: Fix layer_validation_tests errors and update new message

Update the error message returned for the new color/blend
attachment compare, and fix tests Tobin discovered were
triggering early on the new error check.

Change-Id: I43c99a7db651632efde46a1ae17b5bfb4f424a78
/external/vulkan-validation-layers/layers/core_validation.cpp
dcce8143110568353a6217e5b885da407edd29be 30-Mar-2016 Mark Young <marky@lunarg.com> layers: LX265 Error if color blend attch count != subpass attch.

Spec states that the VkPilelineColorBlendAttachmentState
attachmentCount must be equal to the subpass'
colorAttachmentCount.

Change-Id: I2b281cda2c12f2003d8ee68b326d78a9aaadf573
/external/vulkan-validation-layers/layers/core_validation.cpp
24991fb692f7e2d457da50d50c40f2705591300c 31-Mar-2016 Michael Lentine <mlentine@google.com> layers: Adding attachment checks to make sure they aren't out of range.
/external/vulkan-validation-layers/layers/core_validation.cpp
a5ce96d7c88653668a2b33a6b72bd3cb16d73f48 31-Mar-2016 Michael Lentine <mlentine@google.com> Don't validate memory if used for both input and output.
/external/vulkan-validation-layers/layers/core_validation.cpp
f05c35fb24123fd1bcba89accc7fed2c2d0181b7 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Fix remaining leak in vkDestroyFramebuffers

Also simplify & fix the thread safety of this function.
DestroyFramebuffers should not be in anybody's hot path -- and we
absolutely /must/ hold the mutex to touch these maps, so throw away all
the weird unlocking & relocking; just do it the simple way.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
fcaf4f848530651450a39dfd7aa6997f5343b04b 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Don't leak a VkFramebufferCreateInfo from vkCreateFramebuffer

This allocated and then immediately leaked localFBCI.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
27c3e0dda9e30d1d334728bbd373e8d7011257d4 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Fix the other half of #212 (bad error)

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
2ab14387df9b890fe4b13494ea249dd03cf898d2 31-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Don't stash pointer to caller memory in bound function

We were already accumulating all the events the CB touches -- so just
pass an index into that.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e7389100d0953825176ee22d508b7c6e5385cb10 30-Mar-2016 Dominik Witczak <Dominik.Witczak@amd.com> layers: GH215 Removes an invalid check in vkCmdBindDescriptorSets()
/external/vulkan-validation-layers/layers/core_validation.cpp
7a3985a8a9d255dcca9f5992ca2262c7e5df41c6 25-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Update descriptor tracking in core_validation

Old mem_tracker code to record updated storage image/buffers was naive in
that is gathered any image/buffer updates to descriptor sets and marked as
updated every such image/buffer that was referenced by currently bound sets.

In reality sets may be bound but not used. This is captured in the
"active_slots" construct of the pipeline.

The code here updates tracking for the updated buffers by waiting until
a draw cmd for gfx pipe or dispatch cmd for compute pipe, and then gathering
the updated images/buffers based on which slots are active.

I've multi-purposed validate_draw_state() to now be
validate_and_update_draw_state() as it includes recording of the images/buffers
from the active_slots, which is then used to mark those as read.
Also, that same function is now being called for compute dispatch cmds so
"draw" state is not ideal.
There is still some rework that needs to be done to improve this situation.
/external/vulkan-validation-layers/layers/core_validation.cpp
1657461fe9b20d471b0d65f8fc67550cddeb6c00 30-Mar-2016 Dominik Witczak <Dominik.Witczak@amd.com> #37: vkAcquireNextImageKHR() will no longer treat VK_NULL_HANDLE arg as a valid semaphore handle
/external/vulkan-validation-layers/layers/core_validation.cpp
03857e826cdc6e8d814137fb3245596ca1cb7bc7 30-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Build up next layer for compute shader validation

Only remaining piece now is to actually call this from
vkCreateComputePipelines!

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
09042aa0b6f4b3c579f58ed07c9eb4f20899e0be 30-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: More slight tidying of SC pass

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
080afef66a53dbdd085698b713697296458edfd9 30-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Make some SC error reporting slightly less misleading

We were reporting that device 0 was interesting. This is nonsense.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
78be5018e238bd464b1f1c55138df277c0c18922 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Separate out validation of a single pipeline stage

This is setting the scene for being able to validate compute shaders

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
6c94fb996af5f7f79a2bff04cc8cf425086de111 30-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Add device handle in CV layer data

Avoids having to pass this around quite so much.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
7aca5b1da334a7b3577ed2857d3263568b9cc645 30-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Remove dead render_pass forward declaration

This went away at the same time as the SC/DS merge.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
888cab4f564233973a6178cdbbe62186ad253a6a 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Reduce noise in string conversion of objects

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b00e0e318f9a5528ae317066b0de83a4d923fda2 29-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: remove unused getTIDIndex function and associated data

This produces warning noise and nobody uses it.

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
b376edacad6f7ab3fcc0a914e9b1673a9fcd5143 29-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX446, Allow GetDeviceQueue to be called multiple times

Calling this API more than once on the same queue hoses the fence
validation. Also switched queues container from vector to unordered set.

Change-Id: I524347fd11d3b30a66004cf62937d0446e70df22
/external/vulkan-validation-layers/layers/core_validation.cpp
35cd175466f88e5a0a081b29c59c3246d5bf7f78 24-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Relax descriptor type match for texel buffers slightly

The descriptor doesn't really provide a sampler, but the consuming code
doesn't really look at one either.

Allow VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER to match against
OpTypeSampledImage with an image type having Dim=Buffer and Sampled=1.
/external/vulkan-validation-layers/layers/core_validation.cpp
3d3e06b40a06f099e741b9299efa66bddb69a074 28-Mar-2016 Tobin Ehlis <tobine@google.com> layers: GH195 Fix core_validation dynamic state checks

Overhauled validation of dynamic state based on latest details in the
VkPipelineDynamicStateCreateInfo section of the spec.
Because some of the state checks need to be predicated on different pipeline
state, removed the previous flag-based system for check predication and
made it more clear and explicit exactly which pipeline states were gating
each dynamic state check with "if" clauses in validate_draw_state_flags().

The biggest change here is for blend constants, which was the focus of the
referenced GH195. For this case, added blendConstantsEnabled bool to
PIPELINE_NODE and enable it by loop through all attachments to identify if
any have blendEnable set and use the blend constant in any of their
blendFactors.

Also updated all the tests that were affected by this change.

Change-Id: Iaba5d28986c83547575be1ff70b9ae7602435417
/external/vulkan-validation-layers/layers/core_validation.cpp
39d153555b5101b1b093d80100e329368c66b79d 25-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Improve core_validation image layout error message

Change-Id: I1e22ef9be4b1d8b22765e1150f828904334380eb
/external/vulkan-validation-layers/layers/core_validation.cpp
7068a4271b2a542d7e6931104fa62e4a788ed8e5 28-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Michael's fix for uninit'd data in FindLayout

Change-Id: Ia34d036e15a08c135cf3fb0ea4a80c12f2201ec7
/external/vulkan-validation-layers/layers/core_validation.cpp
076b41e60e609f4d1317f0a55c0f22c6e64a3cee 25-Mar-2016 Michael Lentine <mlentine@google.com> layers: Clarify message when query has not been performed.
/external/vulkan-validation-layers/layers/core_validation.cpp
4d23e010bf71b5b276fbf7035c3fb5e8873a64ae 25-Mar-2016 Michael Lentine <mlentine@google.com> Revert "layers: Make layout checks warnings for pass begin."

This reverts commit 851d28e4759f45bebd151fe163a50741a9947ff0.
/external/vulkan-validation-layers/layers/core_validation.cpp
656b1a5d2165c66fd4af21d070243d387cd4ac56 25-Mar-2016 Karl Schultz <karl@lunarg.com> layers: Use vector::resize instead of reserve to avoid portability issue.

Fixes layer crash on Windows with cube --validate. On Windows,
std::vector won't bump up the size of a vector (up to the reserved
amount) on an out_of_range access, while linux will.
/external/vulkan-validation-layers/layers/core_validation.cpp
06e963555b0df747c98c43816c16647349d21001 24-Mar-2016 Mark Young <marky@lunarg.com> layers: Fix issue when sub-passes have diff attachment count.

In core_validation, if the attachment count between a primary
and secondary sub-pass was different, then it should treat
the shorter one as UNUSED. So, if the longer one has the
attachment flags set to UNUSED, it shouldn't be an error.

Change-Id: I3647403551962ef522e7e2ba7ab10a5cb7466c52
/external/vulkan-validation-layers/layers/core_validation.cpp
3a417a5ce9f836b2b8602f7886f735a7ad6acdbb 24-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Replace ptr-to-ptr descriptor data struct with vector

We were using GENERIC_HEADER** ppDescriptors to track updates to slots.
This was pretty messy so make it a bit cleaner with a vector instead.
/external/vulkan-validation-layers/layers/core_validation.cpp
885537d813d6fb3d199e76f6d63b6d3f78d0eeb0 25-Mar-2016 Michael Lentine <mlentine@google.com> layers: Add check for renderArea being within framebuffer bounds.
/external/vulkan-validation-layers/layers/core_validation.cpp
d6c1882c31a88ae01b94f3135679f739287be31a 25-Mar-2016 Karl Schultz <karl@lunarg.com> layers: LX453 fix typo in output message.

Change-Id: I7ec8ba429a886bee14dd5a209fa6718941ec19d5
/external/vulkan-validation-layers/layers/core_validation.cpp
851d28e4759f45bebd151fe163a50741a9947ff0 25-Mar-2016 Michael Lentine <mlentine@google.com> layers: Make layout checks warnings for pass begin.
/external/vulkan-validation-layers/layers/core_validation.cpp
1c0f4ce5068dadb12be8715c18a7769d9457b5ea 25-Mar-2016 Michael Lentine <mlentine@google.com> layers: Update layout mismatch message to provide more detail.
/external/vulkan-validation-layers/layers/core_validation.cpp
a61b537fcb6a4f7b92cd217b3964ad7a48109da1 24-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Migrate active_sets to active_slots

Previously for pipelines we were only tracking which sets were being used.
This change refined active_sets to active_slots. The slots include both the
set and the binding that are in use by the shader. This cleans up a couple
loops and prevents cases where we were checking inactive slots.
/external/vulkan-validation-layers/layers/core_validation.cpp
08682cd3f4809493847b6bdf7605e0a2fede0d56 24-Mar-2016 Michael Lentine <mlentine@google.com> layers: Fix layout transitions for combined aspect masks.
/external/vulkan-validation-layers/layers/core_validation.cpp
81a46bbcaaf47ce86080d8a86dcab9817dbcc34f 24-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Additional mutex fixes

Change-Id: I0b1678a97f962ec30903c9076f08668ec89fc981
/external/vulkan-validation-layers/layers/core_validation.cpp
ada0fecba2975cef315b77d8210748eafa2b078e 24-Mar-2016 Tobin Ehlis <tobine@google.com> layers: GH177 Fix deadlocks

Fix some early return cases where lock wasn't correctly released.
/external/vulkan-validation-layers/layers/core_validation.cpp
26c548826ff0f83d12c769b51e7d6f76d1265c0e 23-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: remove weird double assignment to pAttachments
/external/vulkan-validation-layers/layers/core_validation.cpp
47892024546c67e8db98b51b2ddb962c21088894 22-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX450, Tighten up queueFamilyIndex validation, fix crash

For CreateBuffer and CreateImage the QFIs should be ignored unless
sharingMode is set to CONCURRENT. Also added QFI validation to
CreateCommandPool and added a special case for when an index is
incorrectly set to QUEUE_FAMILY_IGNORED.

Change-Id: I17639230ea7aa58ab89b9b0dc33e55927e9f1c84
/external/vulkan-validation-layers/layers/core_validation.cpp
87e0afcd98dcf3c1e5e2cbb3023fe89d9dd10cd2 22-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Merge renderpass maps in core_validation

Kill passMap, merge all renderpass data into RENDER_PASS_NODE and only use renderPassMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
5b81366f6b6bf2b76529d233143bcd13bdbb8533 22-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Merge framebuffer maps in core_validation

Add attachments container to FRAMEBUFFER_NODE and only use frameBufferMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
a2d5d61d3c324e027f78bfd1d8c4c49c66898520 21-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: LX448, Prevent descriptorSetCount overflow in core_validation

Tracking descriptor and descriptorSet counts was incorrect, sometimes causing
integer overflow and application crashes for large createInfo values.

Change-Id: I92196659d6a7476582aa069e42c9a0d7228ba087
/external/vulkan-validation-layers/layers/core_validation.cpp
c7bd67f06427b08ba65cdf2dd529c8234beebdd5 23-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix AV in core_validaton

Caused crashes in DOTA2

Change-Id: I74d121641872597a63ea42e13ff860112fc7c314
/external/vulkan-validation-layers/layers/core_validation.cpp
03b71511c9e94f2e6101a3214858cee3742ec277 23-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix up MTMERGE in CV layer to allow disabling mem_tracker validation

Need this for debugging, it now works again. Renamed .cpp defines to
MTMERGESOURCE to prevent header file conflicts.

Change-Id: Ie144be32dedf8e9b370437583af60413043865ef
/external/vulkan-validation-layers/layers/core_validation.cpp
f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bf 22-Mar-2016 Jon Ashburn <jon@lunarg.com> misc: Update to header version 1.0.6

Change-Id: Idf7a9d40278b796e16effa54e9b60668d275b8ec
/external/vulkan-validation-layers/layers/core_validation.cpp
b4cc521cc1250cec2a064e22a4d840f1ab42370d 18-Mar-2016 Michael Lentine <mlentine@google.com> layers: Update event tracking to account for sequential cross command buffer and queue tracking.
/external/vulkan-validation-layers/layers/core_validation.cpp
72d66f0c1639cbaca92459498452d06db32d7aef 21-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Merge of cmd buffer maps in core_validation

This is the first step in killing cbMap from mem_tracker and merging
all cmd buffer tracking into commandBufferMap.
This removes all cbMap references, merges some data between the two maps
as appropriate, and replicates some of the mem_tracker data into the
GLOBAL_CB_NODE struct.
There is still some work to be done here in order to remove some of
the replicated data and improve some algorithms that use the
commandBufferMap to avoid duplicate efforts.
/external/vulkan-validation-layers/layers/core_validation.cpp
5188e31f172f7dee49b6ae0a3d81d4cfd8c1b231 17-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: tidy up PIPELINE_NODE a bit

V2: Incorporate review feedback
V3: Squash warning from printf(size_t).

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
dc38a246162c63b8600c86b4503cba5cf92c5007 17-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Slightly simplify descriptor uses loop in SC

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
c7f3656e5af8628fa6670d67feea563cecfece19 21-Mar-2016 Tobin Ehlis <tobine@google.com> layers: GH157 Update error messages to be consistent

Print dynamic offset in error messages as hex to be consistent.
Also fix typos of offet->offset
/external/vulkan-validation-layers/layers/core_validation.cpp
937bfd4b04c5c92a072f357f9c12d82eaf445d5e 22-Mar-2016 Tony Barbour <tony@LunarG.com> layers: Add lock around erase from frameBufferMap in core_validation

Change-Id: I042573b54876e63c19140948a26d388934e1a3c9
/external/vulkan-validation-layers/layers/core_validation.cpp
62592801ae20ab7e059e43232c639521eb32b759 21-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix core_validation layer cube --validate failure

Change-Id: Ice327b98f0befa0a605155b5ebe3dfe359db6020
/external/vulkan-validation-layers/layers/core_validation.cpp
ede566c411d308e49d03a28448cf8ac89ef647e6 21-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix windows issue in smoketest --validate

Change-Id: I50a7d39fcd4b6a9c895cfafd2405058e411220f4
/external/vulkan-validation-layers/layers/core_validation.cpp
918c283ac4f8c604b79abd0c8b5706d2a7352a34 18-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Hold shader_module by unique_ptr, clean up properly

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
ea26140408c3361500b5d5b8498a4f28a3e92ef5 18-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: More housekeeping: slightly lighten descriptor set compatibility
/external/vulkan-validation-layers/layers/core_validation.cpp
9ccb7b1342fd1a901f1ae0d202721a50d2c227f9 18-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: More housekeeping: use stringstreams for describe_type
/external/vulkan-validation-layers/layers/core_validation.cpp
7b892d2fc502b57d26dc9bff61b0f23cccc595fd 17-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Determine required descriptor count when stripping array levels
/external/vulkan-validation-layers/layers/core_validation.cpp
1b8c581791ac3c05d7829e04a2d8ecb964b8f2a6 17-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Add check for descriptor count

We're not really determining how many descriptors the binding needs yet,
so this only catches the descriptorCount==0 case.
/external/vulkan-validation-layers/layers/core_validation.cpp
37083dec1ff1ca643bfc06b5308ca5ac718d58b0 17-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: Just return the whole binding struct from has_descriptor_binding

We're about to want the descriptorCount too. This was getting absurd.
/external/vulkan-validation-layers/layers/core_validation.cpp
f0d091deca3d4b90e1f31d75e062684dca160ad1 18-Mar-2016 Michael Lentine <mlentine@google.com> Allow REMAINING for subresources.
/external/vulkan-validation-layers/layers/core_validation.cpp
0a32ed7bdf03e7bda914e03c0bfa6ebf400cdf5b 17-Mar-2016 Michael Lentine <mlentine@google.com> layers: Track lifetime when using cross-queue semaphores.
/external/vulkan-validation-layers/layers/core_validation.cpp
7e6ee472f8858eeca9f38d29b7ed0054ec615537 17-Mar-2016 Tony Barbour <tony@LunarG.com> layers: Lock around destroyedFramebuffers inserts in core_validation

Change-Id: I32754ae405c01acbde8a82ebaef0938a5e314f73
/external/vulkan-validation-layers/layers/core_validation.cpp
787f29d93dee194c015789cf61c079504c980572 17-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Fix validation of vkCmdBindDescriptorSets() during renderpass

Spec allows vkCmdBindDescriptorSets() to be called inside or outside of a
renderpass so killing two core_validation checks that violate this behavior.
/external/vulkan-validation-layers/layers/core_validation.cpp
58070a671b39e2058a799c7b9c932f3f03f2e66d 16-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Consolidate VkDeviceMemory maps into a single map

There were three separate maps in core_validation.cpp that used VkDeviceMemory for key.
This change consolidates those maps into a single map with DEVICE_MEM_INFO as the value.
To accomadate this I added data to DEVICE_MEM_INFO struct to track mapped image/buffer
ranges as well as image reference for memory with mapped image.
/external/vulkan-validation-layers/layers/core_validation.cpp
1a00634355083e5bc861ac568f3d35793ea73242 16-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Consolidate properties checks in core_validation

Remove global properties and only use properties from physDevProperties.properties.
/external/vulkan-validation-layers/layers/core_validation.cpp
de040b4d09f3714f94116be2a1841d448869bed2 16-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Remove global wsi_enabled in core_validation

core_validation layer only needs wsi_enabled bool from devExts struct.
/external/vulkan-validation-layers/layers/core_validation.cpp
6452509a7fb8cc83ca30e2553ea28bbb0da705be 17-Mar-2016 Tony Barbour <tony@LunarG.com> layers: Lock around image and buffer range erases in core validation

Change-Id: Id975474ef331369e5dc57a24ea6051253fb657cf
/external/vulkan-validation-layers/layers/core_validation.cpp
0801763633180d277d26a90343464bd11646056f 16-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Consolidate swapchainMaps in core_validation

Remove old mem_tracker swapchainMap and consolidate all swapchain tracking
into the devExts struct swapchainMap.
/external/vulkan-validation-layers/layers/core_validation.cpp
a3c20a28f119d24faec013fb4513605b654c36c3 14-Mar-2016 Chris Forbes <chrisforbes@google.com> layers: validate capabilities against device features

V2: squashed in feedback.
V3: More careful about VkBool32

Signed-off-by: Chris Forbes <chrisforbes@google.com>
/external/vulkan-validation-layers/layers/core_validation.cpp
e5bc02759d9ab768d67b2f45ec53d29fb59a4705 17-Mar-2016 Tony Barbour <tony@LunarG.com> layers: Move lock around add_object_create_info in core_validation

Change-Id: I9b183e1231fecc7dce8db9899ee115c5e7a2be3e
/external/vulkan-validation-layers/layers/core_validation.cpp
d11c4ee2bd2a5672093d76630d895e824ee1a571 15-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Move layer debug action initialization into layer_utils

Also removed dead code from the layer generation script.

Change-Id: I64fdcaaf1aed8152de62079568c8e247333d8c61
/external/vulkan-validation-layers/layers/core_validation.cpp
14fbd08bf52bcbd4b5e65538d30c643c04535e30 15-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Add some defensive code to core_validation

Missed a NULL check and assert when I merged in the bindingToIndexMap fix for descriptor type/stageFlags.
/external/vulkan-validation-layers/layers/core_validation.cpp
aeaf18290b786324f35b462651928c00e4066bfa 15-Mar-2016 Mark Lobodzinski <mark@lunarg.com> layers: Fix crash in core_validation layer

CommandBuffers were getting added to commandPoolMap twice.

Change-Id: I115757751ef0aebb1f2599217b3117beca3cd0b7
/external/vulkan-validation-layers/layers/core_validation.cpp
5b5e7bcfe47d9ed90d0d5edbbe11edf7214a7784 10-Mar-2016 Tobin Ehlis <tobine@google.com> layers: Merge mem_tracker and draw_state layers into core_validation layer

cube & tri --validate now use core_validation instead of MT & DS

Very little efficiency has been pulled out for this initial merge.
A few maps have been merged, but otherwise almost all of the mem_tracker
code is pulled intact and surrounded in "#if MTMERGE" blocks.

Change-Id: Icf060bfc0177fc8c9fa7d8d57f7ddc446357b665
/external/vulkan-validation-layers/layers/core_validation.cpp