aboutsummaryrefslogtreecommitdiff
path: root/layers
AgeCommit message (Collapse)Author
2018-02-05layers: Add CreateImage valid usage checksDave Houlton
Adds 17 valid usage checks of ImageCreateInfo struct. 13 in core validation, 4 in parameter validation. Change-Id: I4bfe195f88d5e14237c1b01c5aca2de7c578aa67
2018-02-05build: Move layer_utils build to top-level cmakeMark Lobodzinski
DevSim requires this library, but it is only built in LVL if LAYERS are built. Moved the generation of this library out of the layers cmake file and into the root cmake file. Change-Id: I1c633e981fa1843cfb49204d2ac130beb8d99dfc
2018-02-05layers: Improve validation cache ID parsingCort Stratton
- Code previously assumed that SPIRV_TOOLS_COMMIT_ID was a SHA1 hash; this assumption is now more explicit. - Replace some literal constants with VK_UUID_SIZE. - Handle the purely hypothetical case where VK_UUID_SIZE*2 > SHA1 size
2018-02-05layers: Add err-id/coverage for 'recording state'John Zulauf
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
2018-02-05layers: Fully normalize/populate CMD_TYPE enumJohn Zulauf
Add all vkCmd.* (plus vkEndCommandBuffer) to the CMD_TYPE, normalizing the naming to be consistent with the function names. Change-Id: I50503a4e180d726b330c42db050a1336221213f6
2018-02-05cmake: Move LVL temp/worker targets into subfolderMark Lobodzinski
This sets up cmake to locate the temporary or worker MSVC projects into a subfolder called lvl_cmake_targets. This simply unclutters the Visual Studio Solution Explorer projects pane, and does not affect functionality. Change-Id: I6933d05758d6f174a4f66ceaef51d43627210e4f
2018-02-01layers: Add LAYER_EXPORT specifiers to vk_layer_configMark Lobodzinski
Required for hassle-free linking to layer_utils lib.
2018-01-31layers: Pass through bind mem 2 entry point namesMike Schuchardt
Change-Id: I62510d1759c7cd3ca81b3c7e57a153b7c863250b
2018-01-31layers: Bind mem 2 entry pointsMike Schuchardt
Add entry points for VK_KHR_bind_memory2 and wire up to existing validation Change-Id: Iab17ead7a6f6f44fdbdf2ad5033d2ea7e47447d0
2018-01-31layers: Mem reqs 2 entry pointsMike Schuchardt
Add entry points for VK_KHR_get_memory_requirements2 and wire up to existing validation. Change-Id: I3f9170b0171efc5a22ddb1e3b68185cedd17bca5
2018-01-31tests: Add unit test for push descriptor set VUIDsJohn Zulauf
Add the unit test case for the following added checks. VALIDATION_ERROR_1be02415 VALIDATION_ERROR_1be002d6 VALIDATION_ERROR_1be002da VALIDATION_ERROR_1be002d8 VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording Change-Id: Ib9aa008ab87dddead3eb086d5c8ed3fb94f5f187
2018-01-31layers: Add CmdPushDescriptorSet parameter checksJohn Zulauf
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
2018-01-31tests: Add test for push descriptor allocationJohn Zulauf
Add unit test case for attempting to use vkAllocateDescriptorSets with a descriptor set layout created with the push descriptor flag VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set. Test cases added: VALIDATION_ERROR_04c00268 VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308 Change-Id: If11e12a3dd51f4c796178b89d8e9077a5227407c
2018-01-31layers: Add check for push descriptor allocationJohn Zulauf
Add validation check for attempting to use vkAllocateDescriptorSets with a descriptor set layout create with the push descriptor flag VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set. Checks added: VALIDATION_ERROR_04c00268 VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308 Change-Id: I81bed8e7eb5396f7a716b6a14b648b5051127259
2018-01-26tests: Add tests for push DS layout create VUIDsJohn Zulauf
Added tests for additional valid usage checks: VALIDATION_ERROR_05000230 VkDescriptorSetLayoutCreateInfo-flags-00280 VALIDATION_ERROR_05000232 VkDescriptorSetLayoutCreateInfo-flags-00281 Added test for "required extension" present check for creation of DS layout with push descriptors flag set. Change-Id: Ia274d9ce3ee38ec686e52c4101a6d0573294f852
2018-01-26layers: Add push descriptor set layout create VUIDJohn Zulauf
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
2018-01-26Don't complain about unused vertex buffers being VK_NULL_HANDLEChris Forbes
2018-01-23tests: Add barrier queue family index testsJohn Zulauf
Add validation layer tests for Buffer and Image memory barriers. VUIDs test refactored(*)/new: VALIDATION_ERROR_0a000960* VUID-VkImageMemoryBarrier-image-01200 VALIDATION_ERROR_0a000962 VUID-VkImageMemoryBarrier-image-01201 VALIDATION_ERROR_0a00096a VUID-VkImageMemoryBarrier-image-01205 VALIDATION_ERROR_0a000dce VUID-VkImageMemoryBarrier-image-01767 VALIDATION_ERROR_0a000dd0 VUID-VkImageMemoryBarrier-image-01768 VALIDATION_ERROR_0a00095e VUID-VkImageMemoryBarrier-image-01199 VALIDATION_ERROR_0a000aca VUID-VkImageMemoryBarrier-image-01381 VALIDATION_ERROR_0a000dcc VUID-VkImageMemoryBarrier-image-01766 VALIDATION_ERROR_0180094e VUID-VkBufferMemoryBarrier-buffer-01191 VALIDATION_ERROR_01800dc6 VUID-VkBufferMemoryBarrier-buffer-01763 VALIDATION_ERROR_01800952 VUID-VkBufferMemoryBarrier-buffer-01193 VALIDATION_ERROR_01800dca VUID-VkBufferMemoryBarrier-buffer-01765 VALIDATION_ERROR_01800dc8 VUID-VkBufferMemoryBarrier-buffer-01764 VALIDATION_ERROR_0180094c VUID-VkBufferMemoryBarrier-buffer-01190 VALIDATION_ERROR_01800950 VUID-VkBufferMemoryBarrier-buffer-01192 VALIDATION_ERROR_01800958 VUID-VkBufferMemoryBarrier-buffer-01196 Change-Id: Icf5d7f1ddbeeab90324cfb034648813741a65398
2018-01-23layers: Refactor and add image/buffer barrier VUIDJohn Zulauf
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
2018-01-22cmake: Fix non-existant cmake variableMark Lobodzinski
Specified cmake variable does not exist, caused problems in some out-of-source builds. Change-Id: I526117ef060efea40451752e5fe7bad1e7a5589e
2018-01-19travis: fix clang-format nitDave Houlton
Change-Id: I119143fbe481fcbdea527b44d0d64e6a150ce186
2018-01-19tests: add test for new multiplanar VUIDsDave Houlton
Change-Id: Ie3d95d1de3363f81eae31bc11cf9d3fe4655dec7
2018-01-19layers: Add GetImgSubrscLayout multi-planar VUIDsDave Houlton
Adds new VUIDs defined in the VK_KHR_sampler_ycbcr_conversion extension to vkGetImageSubresourceLayouts(), and corrects the false positive error reported in GH issue #2350. Change-Id: Ia2814291291c7109fabd33af6119a9209e08dd51
2018-01-18tests: Add validation for layout lifetime issuesJohn Zulauf
Add unit tests for valid usages that flag when descriptor set update operations are being performed with descriptor sets create from destroyed descriptor set layouts. The tests use overloaded VUIDs (generic "must be valid * handles) which need to be replaced (and unclaimed) with specific ones when they are added to the spec. VALIDATION_ERROR_15c00280 (write dst must be valid) -> write dst created from destroyed layout VALIDATION_ERROR_03207601 (copy dst must be valid) -> copy dst created from destroyed layout VALIDATION_ERROR_0322d201 (copy src must be valid) -> copy src created from destroyed layout Change-Id: Ic37a745120899c072e2e5d8ceb96c5d93074355e
2018-01-18layers: Add validation for destroyed layoutsJohn Zulauf
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
2018-01-18layers: Add printf style formatting of std::stringJohn Zulauf
Added utility for formatting output to std::string, using sprintf style arguments. Change-Id: Ib95fb55f38cc85a1b24cf6aac7761fc9b7c67376
2018-01-18layers: clang-format parameter_validation_utils.cppDave Houlton
Change-Id: I3ade2b8c7dc63f0b902b17d8cc3f9c48ca21fb23
2018-01-18tests: Add tests for CmdDispatch paramsDave Houlton
Change-Id: I087f412f3eccd02f040936d917eeea057e55407e
2018-01-18layers: Add group size param checks to CmdDispatchDave Houlton
Added parameter validation checks to group size parameters against device limits, for vkCmdDispatch() and vkCmdDispatchBaseKHX(). Change-Id: Ic41031d694c6d311431fc49f48b1427a2b042337
2018-01-17header: Update to version 1.0.68 of the Vulkan hdrMark Lobodzinski
- updated vulkan.h - updated vk.xml - updated layer json files - built and updated vulkan.hpp - updated vk_validation_error_messages.h - updated vk_validation_error_database.txt Change-Id: I5aff6147531f9b91164849ee590f7f86e46e4652
2018-01-16layers: Add checks for extention DynamicViewportsJeremy Kniager
Change-Id: I2819d47ab163519689ece94535c6c880f275bf72
2018-01-16Revert "TEST: Create pre-instance intercept test case"Mike Weiblen
This reverts commit 6cc77123f101f88d246a8cbdf85cc601b5fde82c.
2018-01-16build: Use DevSim from a VulkanTools build in CIKarl Schultz
- Change Travis-CI to build VulkanTools and use the resulting DevSim binary instead of the one checked into the repo. - Delete the DevSim binary and JSON file from layers/linux. - Remove CMake rules related to DevSim binary.
2018-01-16layers: Fix Android buildYuly Novikov
ndk-bundle/sources/cxx-stl/llvm-libc++/include/set expects comparator's operator() to be const.
2018-01-16layers: Fix typos in ValidateUpdateDescriptorSetsArtem Kharytoniuk
2018-01-16layers: Make bind more robust to invalid memoryJohn Zulauf
Added nullptr check to BindBufferMemory and BindImageMemory validation to cope with invalid memory arguments (reported elsewhere). Change-Id: I52266490ccfe9eff7d5f451cddc4d3bbf94b3c5d
2018-01-16tests: Add buffer creation zero size testPetr Kraus
2018-01-16tests: Add mipLevels and arrayLayers zero testsPetr Kraus
2018-01-16tests: Update CreateImageLimitsViolationMinWidthPetr Kraus
- add descriptions - simplify param selection (format, usage) - test all possible cases, not just width - update vuids (fix on unexpected msg)
2018-01-16layers: Make ValidateGreaterThan report vuid etc.Petr Kraus
- 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
2018-01-16tests: add tests for descriptor limit VUsDave Houlton
Add per-stage limit check for input attachments to existing test. Add new test for all-stages summed descriptor limits VUs. Change-Id: I3a245f34ebaff524f1de17c0174bba63bbd0f537
2018-01-16layers: add remaining descriptor limit VUsDave Houlton
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
2018-01-09TEST: Create pre-instance intercept test caseLenny Komow
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
2018-01-08layers: Make DescriptorSetLayout robust for CTSJohn Zulauf
CTS sends an invalid descriptor set that the validation tracking was not robust to -- two binding with identical binding ID values. After reporting the invalid input data, the test application could crash. Validation internal data is now created in a way that invalid data should less easily cause program termination. Change-Id: Ib84a5234267f7bece9be377badd22696e3633b1b
2018-01-08header: Update to version 1.0.67 of the Vulkan hdrMark Lobodzinski
- updated vulkan.h - updated cgenerator.py - updated generator.py - updated reg.py - updated vk.xml - updated layer json files - updated vulkan.hpp - updated vuid_mapping.py - updated vk_validation_error_database.txt for spec changes, new VUIDs - updated vk_validation_error_messages.h Change-Id: Ifb67cf406aa82bf89e72ccfa4e1320cb3b199656
2018-01-05layers: Use common ext lists in unique_objectsMark Lobodzinski
Change-Id: I6d3ac8921dcc648df606040794029733c0516eeb
2018-01-04layers: Add validation caching for draw/dispatchJohn Zulauf
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
2018-01-04layers: Replace iterative DS Get.* with maps/setsJohn Zulauf
Profiling indicated hot spots in DescriptorSet Get functions which iterated in binding space to lookup values. Replaced iterative searches with maps/sets. Additionally simplified construction, optimized map/set creation and Get.* for DescriptorSet and DescriptorSetLayout. Change-Id: Ia2948e56333d3643d4377b39e75acf4c951d558b
2018-01-04layers: Add cache of memory binding set for perfJohn Zulauf
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
2018-01-04layers: Combine global binding start/end lookupJohn Zulauf
Binding start/end lookup where using two separate maps indexed on a common key. Combined to avoid repeated lookups. Change-Id: I57ed71736537de5eb83fe41599a8acec9bf23d13