diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2017-02-01 13:35:48 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-02-03 10:17:10 -0700 |
| commit | e8c5817289db5d3bb5e3e9e0b08fb06feb611b09 (patch) | |
| tree | f616c1bea07cbb4d2110691f1e87cac17a18e569 /layers/buffer_validation.h | |
| parent | 4ccc652a0656a09b5baf8b0723dd256ca8293a4d (diff) | |
| download | usermoji-e8c5817289db5d3bb5e3e9e0b08fb06feb611b09.tar.xz | |
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
Diffstat (limited to 'layers/buffer_validation.h')
| -rw-r--r-- | layers/buffer_validation.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h index 26bf63bb..25865e68 100644 --- a/layers/buffer_validation.h +++ b/layers/buffer_validation.h @@ -27,6 +27,11 @@ #include <unordered_map> #include <vector> #include <utility> +#include <algorithm> + + + + bool PreCallValidateCreateImage(core_validation::layer_data *device_data, const VkImageCreateInfo *pCreateInfo, @@ -64,4 +69,56 @@ bool PreCallValidateCmdClearDepthStencilImage(core_validation::layer_data *dev_d VkImageLayout imageLayout, uint32_t rangeCount, const VkImageSubresourceRange *pRanges); +bool FindLayoutVerifyNode(core_validation::layer_data *device_data, GLOBAL_CB_NODE *pCB, ImageSubresourcePair imgpair, + IMAGE_CMD_BUF_LAYOUT_NODE &node, const VkImageAspectFlags aspectMask); + +bool FindLayoutVerifyLayout(core_validation::layer_data *device_data, ImageSubresourcePair imgpair, VkImageLayout &layout, + const VkImageAspectFlags aspectMask); + +bool FindCmdBufLayout(core_validation::layer_data *device_data, GLOBAL_CB_NODE *pCB, VkImage image, VkImageSubresource range, + IMAGE_CMD_BUF_LAYOUT_NODE &node); + +bool FindGlobalLayout(core_validation::layer_data *device_data, ImageSubresourcePair imgpair, VkImageLayout &layout); + +bool FindLayouts(core_validation::layer_data *device_data, VkImage image, std::vector<VkImageLayout> &layouts); + +void SetGlobalLayout(core_validation::layer_data *device_data, ImageSubresourcePair imgpair, const VkImageLayout &layout); + +void SetLayout(core_validation::layer_data *device_data, GLOBAL_CB_NODE *pCB, ImageSubresourcePair imgpair, + const IMAGE_CMD_BUF_LAYOUT_NODE &node); + +void SetLayout(core_validation::layer_data *device_data, GLOBAL_CB_NODE *pCB, ImageSubresourcePair imgpair, + const VkImageLayout &layout); + +void SetImageViewLayout(core_validation::layer_data *device_data, GLOBAL_CB_NODE *pCB, VkImageView imageView, + const VkImageLayout &layout); + +bool VerifyFramebufferAndRenderPassLayouts(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *pCB, + const VkRenderPassBeginInfo *pRenderPassBegin, + const FRAMEBUFFER_STATE *framebuffer_state); + +void TransitionAttachmentRefLayout(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *pCB, FRAMEBUFFER_STATE *pFramebuffer, + VkAttachmentReference ref); + +void TransitionSubpassLayouts(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *pCB, + const VkRenderPassBeginInfo *pRenderPassBegin, const int subpass_index, + FRAMEBUFFER_STATE *framebuffer_state); + +bool TransitionImageAspectLayout(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *pCB, + const VkImageMemoryBarrier *mem_barrier, uint32_t level, uint32_t layer, + VkImageAspectFlags aspect); + +bool TransitionImageLayouts(core_validation::layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, + const VkImageMemoryBarrier *pImgMemBarriers); + +bool VerifySourceImageLayout(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *cb_node, VkImage srcImage, + VkImageSubresourceLayers subLayers, VkImageLayout srcImageLayout, + UNIQUE_VALIDATION_ERROR_CODE msgCode); + +bool VerifyDestImageLayout(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *cb_node, VkImage destImage, + VkImageSubresourceLayers subLayers, VkImageLayout destImageLayout, UNIQUE_VALIDATION_ERROR_CODE msgCode); + +void TransitionFinalSubpassLayouts(core_validation::layer_data *dev_data, GLOBAL_CB_NODE *pCB, + const VkRenderPassBeginInfo *pRenderPassBegin, FRAMEBUFFER_STATE *framebuffer_state); + #endif // CORE_VALIDATION_BUFFER_VALIDATION_H_ |
