bug 14965: Merge VK_MEMORY_INPUT/OUTPUT flags to better express write-after-wite hazards (WIP)
s/VkMemoryOutputFlags/VkAccessFlags/g
s/VkMemoryInputFlags/VkAccessFlags/g
s/outputMask/srcAccessMask/g
s/inputMask/dstAccessMask/g
s/VK_MEMORY_OUTPUT_HOST_WRITE_BIT/VK_ACCESS_HOST_WRITE_BIT/g
s/VK_MEMORY_OUTPUT_SHADER_WRITE_BIT/VK_ACCESS_SHADER_WRITE_BIT/g
s/VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT/VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT/g
s/VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT/VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT/g
s/VK_MEMORY_OUTPUT_TRANSFER_BIT/VK_ACCESS_TRANSFER_WRITE_BIT/g
s/VK_MEMORY_INPUT_HOST_READ_BIT/VK_ACCESS_HOST_READ_BIT/g
s/VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT/VK_ACCESS_INDIRECT_COMMAND_READ_BIT/g
s/VK_MEMORY_INPUT_INDEX_FETCH_BIT/VK_ACCESS_INDEX_READ_BIT/g
s/VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT/VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT/g
s/VK_MEMORY_INPUT_UNIFORM_READ_BIT/VK_ACCESS_UNIFORM_READ_BIT/g
s/VK_MEMORY_INPUT_SHADER_READ_BIT/VK_ACCESS_SHADER_READ_BIT/g
s/VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT/VK_ACCESS_COLOR_ATTACHMENT_READ_BIT/g
s/VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT/VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT/g
s/VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT/VK_ACCESS_INPUT_ATTACHMENT_READ_BIT/g
s/VK_MEMORY_INPUT_TRANSFER_BIT/VK_ACCESS_MEMORY_READ_BIT/g
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14965
diff --git a/include/vulkan.h b/include/vulkan.h
index 79ee9d4..efedb8c 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -982,27 +982,25 @@
typedef VkFlags VkPipelineStageFlags;
typedef enum {
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
- VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
-} VkMemoryOutputFlagBits;
-typedef VkFlags VkMemoryOutputFlags;
-
-typedef enum {
- VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
- VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
- VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
- VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
- VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
- VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
-} VkMemoryInputFlagBits;
-typedef VkFlags VkMemoryInputFlags;
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
+ VK_ACCESS_INDEX_READ_BIT = 0x00000002,
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
+ VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
+ VK_ACCESS_SHADER_READ_BIT = 0x00000020,
+ VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
+ VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
+ VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
+ VK_ACCESS_HOST_READ_BIT = 0x00002000,
+ VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
+ VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
+ VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+} VkAccessFlagBits;
+typedef VkFlags VkAccessFlags;
typedef enum {
VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
@@ -1959,8 +1957,8 @@
uint32_t dstSubpass;
VkPipelineStageFlags srcStageMask;
VkPipelineStageFlags dstStageMask;
- VkMemoryOutputFlags outputMask;
- VkMemoryInputFlags inputMask;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
VkDependencyFlags dependencyFlags;
} VkSubpassDependency;
@@ -2088,8 +2086,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- VkMemoryOutputFlags outputMask;
- VkMemoryInputFlags inputMask;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
VkBuffer buffer;
@@ -2121,8 +2119,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- VkMemoryOutputFlags outputMask;
- VkMemoryInputFlags inputMask;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
VkImageLayout oldLayout;
VkImageLayout newLayout;
uint32_t srcQueueFamilyIndex;
@@ -2134,8 +2132,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- VkMemoryOutputFlags outputMask;
- VkMemoryInputFlags inputMask;
+ VkAccessFlags srcAccessMask;
+ VkAccessFlags dstAccessMask;
} VkMemoryBarrier;
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 3b5bc72..ad1f2e8 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -1321,13 +1321,27 @@
}
static
-bool ValidateEnumerator(VkMemoryOutputFlagBits const& enumerator)
+bool ValidateEnumerator(VkAccessFlagBits const& enumerator)
{
- VkMemoryOutputFlagBits allFlags = (VkMemoryOutputFlagBits)(VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT);
+ VkAccessFlagBits allFlags = (VkAccessFlagBits)(
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_READ_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT |
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_MEMORY_READ_BIT |
+ VK_ACCESS_MEMORY_WRITE_BIT);
+
if(enumerator & (~allFlags))
{
return false;
@@ -1337,7 +1351,7 @@
}
static
-std::string EnumeratorString(VkMemoryOutputFlagBits const& enumerator)
+std::string EnumeratorString(VkAccessFlagBits const& enumerator)
{
if(!ValidateEnumerator(enumerator))
{
@@ -1345,110 +1359,73 @@
}
std::vector<std::string> strings;
- if(enumerator & VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT)
+ if(enumerator & VK_ACCESS_INDIRECT_COMMAND_READ_BIT)
{
- strings.push_back("VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT");
+ strings.push_back("VK_ACCESS_INDIRECT_COMMAND_READ_BIT");
}
- if(enumerator & VK_MEMORY_OUTPUT_TRANSFER_BIT)
+ if(enumerator & VK_ACCESS_INDEX_READ_BIT)
{
- strings.push_back("VK_MEMORY_OUTPUT_TRANSFER_BIT");
+ strings.push_back("VK_ACCESS_INDEX_READ_BIT");
}
- if(enumerator & VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT)
+ if(enumerator & VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT)
{
- strings.push_back("VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT");
+ strings.push_back("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT");
}
- if(enumerator & VK_MEMORY_OUTPUT_SHADER_WRITE_BIT)
+ if(enumerator & VK_ACCESS_UNIFORM_READ_BIT)
{
- strings.push_back("VK_MEMORY_OUTPUT_SHADER_WRITE_BIT");
+ strings.push_back("VK_ACCESS_UNIFORM_READ_BIT");
}
- if(enumerator & VK_MEMORY_OUTPUT_HOST_WRITE_BIT)
+ if(enumerator & VK_ACCESS_INPUT_ATTACHMENT_READ_BIT)
{
- strings.push_back("VK_MEMORY_OUTPUT_HOST_WRITE_BIT");
+ strings.push_back("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT");
}
-
- std::string enumeratorString;
- for(auto const& string : strings)
+ if(enumerator & VK_ACCESS_SHADER_READ_BIT)
{
- enumeratorString += string;
-
- if(string != strings.back())
- {
- enumeratorString += '|';
- }
+ strings.push_back("VK_ACCESS_SHADER_READ_BIT");
}
-
- return enumeratorString;
-}
-
-static
-bool ValidateEnumerator(VkMemoryInputFlagBits const& enumerator)
-{
- VkMemoryInputFlagBits allFlags = (VkMemoryInputFlagBits)(VK_MEMORY_INPUT_TRANSFER_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_HOST_READ_BIT);
- if(enumerator & (~allFlags))
+ if(enumerator & VK_ACCESS_SHADER_WRITE_BIT)
{
- return false;
+ strings.push_back("VK_ACCESS_SHADER_WRITE_BIT");
}
-
- return true;
-}
-
-static
-std::string EnumeratorString(VkMemoryInputFlagBits const& enumerator)
-{
- if(!ValidateEnumerator(enumerator))
+ if(enumerator & VK_ACCESS_COLOR_ATTACHMENT_READ_BIT)
{
- return "unrecognized enumerator";
+ strings.push_back("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT");
}
-
- std::vector<std::string> strings;
- if(enumerator & VK_MEMORY_INPUT_TRANSFER_BIT)
+ if(enumerator & VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_TRANSFER_BIT");
+ strings.push_back("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT)
+ if(enumerator & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT");
+ strings.push_back("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT)
+ if(enumerator & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT");
+ strings.push_back("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_SHADER_READ_BIT)
+ if(enumerator & VK_ACCESS_TRANSFER_READ_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_SHADER_READ_BIT");
+ strings.push_back("VK_ACCESS_TRANSFER_READ_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_UNIFORM_READ_BIT)
+ if(enumerator & VK_ACCESS_TRANSFER_WRITE_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_UNIFORM_READ_BIT");
+ strings.push_back("VK_ACCESS_TRANSFER_WRITE_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_INDEX_FETCH_BIT)
+ if(enumerator & VK_ACCESS_HOST_READ_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_INDEX_FETCH_BIT");
+ strings.push_back("VK_ACCESS_HOST_READ_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT)
+ if(enumerator & VK_ACCESS_HOST_WRITE_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT");
+ strings.push_back("VK_ACCESS_HOST_WRITE_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT)
+ if(enumerator & VK_ACCESS_MEMORY_READ_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT");
+ strings.push_back("VK_ACCESS_MEMORY_READ_BIT");
}
- if(enumerator & VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT)
+ if(enumerator & VK_ACCESS_MEMORY_WRITE_BIT)
{
- strings.push_back("VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT");
- }
- if(enumerator & VK_MEMORY_INPUT_HOST_READ_BIT)
- {
- strings.push_back("VK_MEMORY_INPUT_HOST_READ_BIT");
+ strings.push_back("VK_ACCESS_MEMORY_WRITE_BIT");
}
std::string enumeratorString;
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index 320e189..d2531b8 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -783,7 +783,7 @@
vkCmdFillBuffer(cmd_.handle(), bufs[0].handle(), 0, 4, 0x11111111);
// is this necessary?
VkBufferMemoryBarrier memory_barrier = bufs[0].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_TRANSFER_BIT, 0, 4);
+ VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_MEMORY_READ_BIT, 0, 4);
VkBufferMemoryBarrier *pmemory_barrier = &memory_barrier;
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
@@ -795,7 +795,7 @@
vkCmdCopyBuffer(cmd_.handle(), bufs[0].handle(), bufs[1].handle(), 1, ®ion);
memory_barrier = bufs[1].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_TRANSFER_BIT, 0, 4);
+ VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_MEMORY_READ_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
vkCmdPipelineBarrier(cmd_.handle(), src_stages, dest_stages, 0, 1, (const void * const*)&pmemory_barrier);
@@ -809,7 +809,7 @@
// Additional commands could go into the buffer here before the wait.
memory_barrier = bufs[1].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_HOST_READ_BIT, 0, 4);
+ VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
vkCmdWaitEvents(cmd_.handle(), 1, &event, src_stages, dest_stages, 1, (const void **)&pmemory_barrier);
@@ -1195,21 +1195,21 @@
img.init(dev_, img_info, image_reqs);
const VkFlags all_cache_outputs =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT;
const VkFlags all_cache_inputs =
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_MEMORY_READ_BIT;
std::vector<VkImageMemoryBarrier> to_clear;
std::vector<VkImageMemoryBarrier *> p_to_clear;
@@ -1374,21 +1374,21 @@
img.init(dev_, img_info, image_reqs);
const VkFlags all_cache_outputs =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT;
const VkFlags all_cache_inputs =
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_MEMORY_READ_BIT;
std::vector<VkImageMemoryBarrier> to_clear;
std::vector<VkImageMemoryBarrier *> p_to_clear;
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 5046786..aeacc82 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -556,20 +556,20 @@
VkCommandBufferObj *cmd_buf,
VkImageAspectFlags aspect,
VkFlags output_mask /*=
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_MEMORY_OUTPUT_COPY_BIT*/,
VkFlags input_mask /*=
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
VK_MEMORY_INPUT_COPY_BIT*/,
VkImageLayout image_layout)
{
@@ -593,21 +593,21 @@
{
VkFlags output_mask, input_mask;
const VkFlags all_cache_outputs =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT;
const VkFlags all_cache_inputs =
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_MEMORY_READ_BIT;
if (image_layout == m_descriptorImageInfo.imageLayout) {
return;
@@ -615,18 +615,18 @@
switch (image_layout) {
case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
+ output_mask = VK_ACCESS_TRANSFER_WRITE_BIT;
+ input_mask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_MEMORY_READ_BIT;
break;
case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
+ output_mask = VK_ACCESS_TRANSFER_WRITE_BIT;
+ input_mask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_MEMORY_READ_BIT;
break;
case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
+ output_mask = VK_ACCESS_TRANSFER_WRITE_BIT;
+ input_mask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_MEMORY_READ_BIT;
break;
default:
@@ -922,21 +922,21 @@
void VkConstantBufferObj::BufferMemoryBarrier(
- VkFlags outputMask /*=
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+ VkFlags srcAccessMask /*=
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_MEMORY_OUTPUT_COPY_BIT*/,
- VkFlags inputMask /*=
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
+ VkFlags dstAccessMask /*=
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
VK_MEMORY_INPUT_COPY_BIT*/)
{
VkResult err = VK_SUCCESS;
@@ -970,7 +970,7 @@
ASSERT_VK_SUCCESS(err);
VkBufferMemoryBarrier memory_barrier =
- buffer_memory_barrier(outputMask, inputMask, 0, m_numVertices * m_stride);
+ buffer_memory_barrier(srcAccessMask, dstAccessMask, 0, m_numVertices * m_stride);
VkBufferMemoryBarrier *pmemory_barrier = &memory_barrier;
VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_ALL_GPU_COMMANDS;
@@ -1362,11 +1362,11 @@
{
uint32_t i;
const VkFlags output_mask =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT;
const VkFlags input_mask = 0;
// whatever we want to do, we do it to the whole buffer
@@ -1379,8 +1379,8 @@
VkImageMemoryBarrier memory_barrier = {};
memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
- memory_barrier.outputMask = output_mask;
- memory_barrier.inputMask = input_mask;
+ memory_barrier.srcAccessMask = output_mask;
+ memory_barrier.dstAccessMask = input_mask;
memory_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL;
memory_barrier.subresourceRange = srRange;
VkImageMemoryBarrier *pmemory_barrier = &memory_barrier;
@@ -1460,21 +1460,21 @@
{
uint32_t i;
const VkFlags output_mask =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT;
const VkFlags input_mask =
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_TRANSFER_BIT;
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_MEMORY_READ_BIT;
VkImageSubresourceRange srRange = {};
srRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
@@ -1485,8 +1485,8 @@
VkImageMemoryBarrier memory_barrier = {};
memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
- memory_barrier.outputMask = output_mask;
- memory_barrier.inputMask = input_mask;
+ memory_barrier.srcAccessMask = output_mask;
+ memory_barrier.dstAccessMask = input_mask;
memory_barrier.newLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
memory_barrier.subresourceRange = srRange;
VkImageMemoryBarrier *pmemory_barrier = &memory_barrier;
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index bc3f45c..ee08ac9 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -214,22 +214,22 @@
VkConstantBufferObj(VkDeviceObj *device, int constantCount, int constantSize, const void* data);
~VkConstantBufferObj();
void BufferMemoryBarrier(
- VkFlags outputMask =
- VK_MEMORY_OUTPUT_HOST_WRITE_BIT |
- VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
- VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_TRANSFER_BIT,
- VkFlags inputMask =
- VK_MEMORY_INPUT_HOST_READ_BIT |
- VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
- VK_MEMORY_INPUT_INDEX_FETCH_BIT |
- VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT |
- VK_MEMORY_INPUT_UNIFORM_READ_BIT |
- VK_MEMORY_INPUT_SHADER_READ_BIT |
- VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_TRANSFER_BIT);
+ VkFlags srcAccessMask =
+ VK_ACCESS_HOST_WRITE_BIT |
+ VK_ACCESS_SHADER_WRITE_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
+ VK_ACCESS_TRANSFER_WRITE_BIT,
+ VkFlags dstAccessMask =
+ VK_ACCESS_HOST_READ_BIT |
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
+ VK_ACCESS_INDEX_READ_BIT |
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
+ VK_ACCESS_UNIFORM_READ_BIT |
+ VK_ACCESS_SHADER_READ_BIT |
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
+ VK_ACCESS_MEMORY_READ_BIT);
void Bind(VkCommandBuffer commandBuffer, VkDeviceSize offset, uint32_t binding);
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index cc62079..0bb4293 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -346,8 +346,8 @@
VkBufferMemoryBarrier barrier = {};
barrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
barrier.buffer = handle();
- barrier.outputMask = output_mask;
- barrier.inputMask = input_mask;
+ barrier.srcAccessMask = output_mask;
+ barrier.dstAccessMask = input_mask;
barrier.offset = offset;
barrier.size = size;
return barrier;
@@ -408,8 +408,8 @@
{
VkImageMemoryBarrier barrier = {};
barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
- barrier.outputMask = output_mask;
- barrier.inputMask = input_mask;
+ barrier.srcAccessMask = output_mask;
+ barrier.dstAccessMask = input_mask;
barrier.oldLayout = old_layout;
barrier.newLayout = new_layout;
barrier.image = handle();
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index edae4f4..c6c0b0b 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -544,8 +544,8 @@
VkImageMemoryBarrier memoryBarrier = {};
memoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
memoryBarrier.pNext = NULL;
- memoryBarrier.outputMask = VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT;
- memoryBarrier.inputMask = 0;
+ memoryBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
+ memoryBarrier.dstAccessMask = 0;
memoryBarrier.oldLayout = VK_IMAGE_LAYOUT_PRESENT_SOURCE_KHR;
memoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
memoryBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
@@ -995,8 +995,8 @@
VkImageMemoryBarrier image_memory_barrier = {};
image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
image_memory_barrier.pNext = NULL;
- image_memory_barrier.outputMask = 0;
- image_memory_barrier.inputMask = 0;
+ image_memory_barrier.srcAccessMask = 0;
+ image_memory_barrier.dstAccessMask = 0;
image_memory_barrier.oldLayout = old_image_layout;
image_memory_barrier.newLayout = new_image_layout;
image_memory_barrier.image = image;
@@ -1008,12 +1008,12 @@
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) {
/* Make sure anything that was copying from this image has completed */
- image_memory_barrier.inputMask = VK_MEMORY_INPUT_TRANSFER_BIT;
+ image_memory_barrier.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT;
}
if (new_image_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
/* Make sure any Copy or CPU writes to image are flushed */
- image_memory_barrier.outputMask = VK_MEMORY_OUTPUT_HOST_WRITE_BIT | VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ image_memory_barrier.srcAccessMask = VK_ACCESS_HOST_WRITE_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
}
VkImageMemoryBarrier *pmemory_barrier = &image_memory_barrier;