From 2e1c0e79925199ef0683c1e2064ffc794f853a16 Mon Sep 17 00:00:00 2001 From: Mike Weiblen Date: Tue, 7 Mar 2017 22:18:27 -0700 Subject: 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 --- layers/buffer_validation.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'layers/buffer_validation.h') diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h index e83ee9b8..c318fb21 100644 --- a/layers/buffer_validation.h +++ b/layers/buffer_validation.h @@ -111,8 +111,11 @@ bool ValidateImageAspectLayout(layer_data *device_data, GLOBAL_CB_NODE *pCB, con void TransitionImageAspectLayout(layer_data *dev_data, GLOBAL_CB_NODE *pCB, const VkImageMemoryBarrier *mem_barrier, uint32_t level, uint32_t layer, VkImageAspectFlags aspect); -bool ValidateImageLayouts(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, - const VkImageMemoryBarrier *pImgMemBarriers); +bool ValidateBarrierLayoutToImageUsage(layer_data *device_data, const VkImageMemoryBarrier *img_barrier, bool new_not_old, + VkImageUsageFlags usage, const char *func_name); + +bool ValidateBarriersToImages(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier *pImageMemoryBarriers, const char *func_name); void TransitionImageLayouts(layer_data *device_data, VkCommandBuffer cmdBuffer, uint32_t memBarrierCount, const VkImageMemoryBarrier *pImgMemBarriers); -- cgit v1.2.3