aboutsummaryrefslogtreecommitdiff
path: root/layers/buffer_validation.cpp
AgeCommit message (Collapse)Author
2017-04-26layers: Fix some confused VkBool32 vs boolChris Forbes
These aren't the same type!
2017-04-24layers: Banish 'skip_call' once and foreverMark Lobodzinski
Except for swapchain.cpp, which is undergoing a merge into CV. Change-Id: I8b18518ef662a9a11a808ef3dce1b8f60d858fb3
2017-04-22layers: Change obj type conversion routine nameMark Lobodzinski
Change-Id: I3b4208ca3777ac46b2c5ab2839c268ed4381a2ac
2017-04-22layers: Switch CV over to layer object typesMark Lobodzinski
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
2017-04-22layers: Use UNKNOWN object type instead zero-castMark Lobodzinski
Change-Id: I36c175e78d7a33667f1485ed0e53f1dadab62a31
2017-04-23layers: slim down draw countingChris Forbes
We used to care how many draws there were. Now we just care whether there were /no/ draws (in one place)
2017-04-14layers:Add image layout validation for descriptorsTobin Ehlis
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.
2017-04-07layers:Refactor image layout validationTobin Ehlis
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.
2017-04-05layers: Fix GH 1639.Jeremy Hayes
Check base+count instead of just base. Fix FramebufferCreateErrors test to use the correct number of mip levels. Also, add a test for count, fix a few function names, and apply some soothing const cream. Change-Id: Ib2deb8bc27e76138f83b3dd32529583a30085cda
2017-04-04scripts:Update unique IDs for spec v1.0.45.1Tobin Ehlis
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
2017-03-29layers: Rename format utils, strip VkDave Houlton
Change-Id: I4d192db22c51d2e9224b74487bfd5d6a58405028
2017-03-29layers: refactor layer utilsDave Houlton
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
2017-03-27layers: VK_KHR_maintenance1 false positivesMike Schuchardt
Skip checks that no longer apply when VK_KHR_maintenance1 is enabled. Change-Id: I84d0fe889d0e567045aeb7fa7463dd2ec0d56789
2017-03-23layers: Refactor ResolveRemainingLevelsLayersMark Lobodzinski
Simplified source and consolidated usage. Change-Id: I662a94381f3b6119978a53308dc616e942259941
2017-03-23layers: Add VU enums to VkQueueFlag checksMike Schuchardt
Split validation of command pool queue flag checks into a dedicated function and add valid usage error enums. Change-Id: I4fc4e71d96b818c281ad310dd0d15bca508efb94
2017-03-22layers: Add image handles to layout error outputMark Lobodzinski
Also fixed up validation tests to handle message formatting changes. Change-Id: I8671ae531d473bebdc034c33edcd9617ab96b836
2017-03-22layers: Fill in buffer_validation log_msg handlesMark Lobodzinski
Also updated some C-style casts and added TYPE_UNKNOWN where appropriate. Change-Id: Ia9c1d013dd73c4f6785df6151ee71715e310187b
2017-03-22layers:Refactor image layout verify/setTobin Ehlis
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.
2017-03-22layers:Unify image layout validation functionsTobin Ehlis
VerifySourceImageLayout() and VerifyDestImageLayout() were nearly identical so I generalized a couple of pieces and combined them in the single VerifyImageLayout() function.
2017-03-16nop: Clean up commentsDave Houlton
Change-Id: I392aba1398381205728aead48d6cfd10aa47ac90
2017-03-16layers: Add VUs 1200&1201, and a testDave Houlton
Added 2 VU checks for aspectMask on image copy. Added test CopyImageAspectMismatch to provoke these VUs, and a handful of other aspect mask VUs previously done but missing tests. Change-Id: Ib9c3eb9d95a9295ec485bb14b4221d4198fa6904
2017-03-16layers: Add VU 01185 and a testDave Houlton
Added check for valid usage 01185. Added test CopyImageSampleCountMismatch() to verify the check. Change-Id: I51e76e0334bd4f1c0fe564f241646fc8b788da1e
2017-03-16tests: Fix ImageLayerUnsupportedFormat errorsJeremy Hayes
Fix ImageLayerUnsupportedFormat unexpected errors. Change-Id: I7dd4f2b9bae69885abf5031a6257ee3f6fad21fb
2017-03-14layers: Implement VU 00303-00308Mike Weiblen
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
2017-03-13layers: Add sparseResidencyAliased feature checkMark Lobodzinski
Change-Id: I173c3d6e696e674c7a791838f6921763f03d1660
2017-03-13layers: Add sparseResidencyBuffer feature checkMark Lobodzinski
Change-Id: I53afd9b76957f1c955f3068a4d1ff99f0cc5f543
2017-03-13layers: Add sparseBinding device feature checksMark Lobodzinski
Change-Id: If1145276554ad8dda2839aa5bfc0b3c796873482
2017-03-13layers: #1522 #1523 Fix VK_REMAINING_* resolvePetr Kraus
ResolveRemainingLevelsLayers() modified a copy instead of the live data. Fixes issues #1522 and #1523
2017-03-07tests: Bugfix check and add mip copy testsDave Houlton
Fixed a bug in the buffer size calculation for compressed mip levels when copying less than a full block at the perimeter. Added a set of validation tests that exercise copies in/out of mip levels of compressed textures. Added an image init() fxn to the test framework that takes an imageCreateInfo input, to allow full control of image varieties. Change-Id: I240ed6e1f45889e58b759f8f261392725dadb498
2017-03-07layers: Clang-format only, no code changesDave Houlton
This is a whole-file clang format of buffer_validation.cpp, with no code changes. Left as a separate commit to avoid confusion with the actual code changes within this file in the other 2 commits. Change-Id: I4e09c0a465f5187d3753a88bcbafb0e8bee9d782
2017-03-07layers: Add VUs 1275, 1276, 1277 related to gh1507Dave Houlton
Adds 3 new valid usage checks related to the bugfix, and the layer_validation_tests code to exercise 2 of them. The third check, 01277, cannot be provoked by a test because it would require a compressed texture format with block z-dimension > 1, which does not (currently) exist for Vulkan. Change-Id: I6c467e64c420b6a453af57f7ff86e1465e132988
2017-03-07layers, Fix checks for GH 1507Dave Houlton
Bugfix and refactor for github issue 1507 (and lunar exchange #652). Fixes buffer size calculation for compressed textures when copy extent is less than block size, corrected for mip level. Layer tests modified to avoid breakage from this fix. Change-Id: If91d6f8c7ce17a3e012923304a3b178e750d2659
2017-03-01layers: Remove redundant validationJeremy Hayes
Remove redundant validation from ValidateCmdBufImageLayouts. Change-Id: Ia7474e0ca7d0429a8413500f548e1cfbe9f708f1
2017-02-28layers: Split layout transition validation/recordingMark Lobodzinski
Split TransitionImageLayouts and TransitionImageAspectLayouts into ValidateXxx and TransitionXxx routines. Change-Id: I19666e5ccc444cfc23304fd35aa1b9b18b039499
2017-02-24layers: GL168, fix bad compressed texel block sizeMark Lobodzinski
The image<->buffer copy validation was checking against texel block sizes, but needed the block size in byte. Fixed the bad validation errors and renamed existing util function and updated a compressed texture size to match the spec. Change-Id: I40b9635a4fab131ab1525da51e94c4c5577217be
2017-02-23layers: GH1489, fix CmdClearAttachments validationMark Lobodzinski
Calling CmdClearAttachments in a secondary command buffer could result in bad validation errors as existing checks rely upon RenderPass begin info data that may not yet be present. Good validation for this case will come in a follow-on patch series. Change-Id: Ib169e26f506124f0c1ad75f57de3b6b5146df872
2017-02-22layers: Fix a bug in depth/stencil packingDave Houlton
Fixed incorrect size calculations for image<->buffer copies due to special packing rules of depth and stencil formats. Added test code to layer_validation_tests ImageBufferCopyTests to exercise these checks. Change-Id: I90446379ba8888bf91eda6567e18fa1aae9593b1
2017-02-21layers: Move code to preferred cpp fileMike Weiblen
PreCallValidateGetImageSubresourceLayout() from core_validation.cpp to buffer_validation.cpp Change-Id: Ic55e049fab28384d30768e8c590f158e603dd343
2017-02-16layers:RenderPass depth/stencil layout transitionTobin Ehlis
Fixes #1454 For image views into depth/stencil images we need to make sure that both the depth and stencil aspects have their layouts transitioned to the initialLayout setting for the first subpass.
2017-02-16layers: Update buffer-image copy routines for styleMark Lobodzinski
Change-Id: Id768e9e8967c687e7592169bae6d40652b58fa4f
2017-02-16layers: Separate val/state updates in buff-img copyMark Lobodzinski
Moved state updates out of precallvalidate routines into precallrecord routines. Change-Id: If13e8a14cabc2b63a53f5369c33b1e632b15ff3a
2017-02-16layers: Move buffer/image validation out of CVMark Lobodzinski
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
2017-02-16layers: Move image layer image-buffer-copy to CVMark Lobodzinski
Moved the image layer validation for buffer-image copies to the buffer validation module. Change-Id: If8ff8aa183f88560dc5db9d59c92346ee47b01e9
2017-02-13Clang-format for recent QueueSubmit commitsTony Barbour
Change-Id: Id029c12d36b6327ac73c43879f315513c71b13d1
2017-02-13layers: Separate validation from state in QueueSubmitTony Barbour
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
2017-02-13layers: Refactor CmdFillBufferMark Lobodzinski
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
2017-02-13layers: Move destroybuffer/bufferview out of CVMark Lobodzinski
Moved pre/post routines to buffer module, along with a couple of functions. Change-Id: Ibb67bf18ed376a37666f171c4e30676fa18157ca
2017-02-13layers: Change mem map error to warningMichael Lentine
Currently the spec allows memory to be mapped regardless of format. However, because the memory cannot be used by the device in a predicable way unless the format is PREINITIALIZED or GENERAL we still need a warning here. Change-Id: Ie50b21c0840d97409e40d7f9187f34b9552050f2
2017-02-10layers: Consolidate GetPhysicalDevice* accessorsMark Lobodzinski
Simplified core_validation->descriptor_sets/buffer_validation. Change-Id: I6921ac458bce5899e8bd60145bfaa0e0f5e8a2ac
2017-02-10layers: Refactor CmdCopyBuffer for pre-post styleMark Lobodzinski
Change-Id: Ic0004cad00ba04295e8c05a703a085e07d3ad56e