From 082a620480e010db78dd8e998cef9680982245c9 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Sat, 31 Oct 2015 00:31:16 +0800 Subject: bug 15003: vkCmdPipelineBarrier should be allowed on a DMA queue (WIP) Add VK_PIPELINE_STAGE_ALL_{GRAPHICS,COMMANDS}_BIT. Replace the removed masks by ~VK_PIPELINE_STAGE_HOST_BIT in the sample driver. s/VK_PIPELINE_STAGE_ALL_GRAPHICS\b/VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT/g s/VK_PIPELINE_STAGE_ALL_GPU_COMMANDS/VK_PIPELINE_STAGE_ALL_COMMANDS_BIT/g https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15003 --- demos/cube.c | 2 +- demos/tri.c | 2 +- include/vulkan.h | 4 ++-- layers/param_checker.cpp | 18 ++++++++++++------ 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/demos/cube.c b/demos/cube.c index caab7704..b5d710d4 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -593,7 +593,7 @@ static void demo_draw_build_cmd(struct demo *demo, VkCommandBuffer cmd_buf) prePresentBarrier.image = demo->buffers[demo->current_buffer].image; VkImageMemoryBarrier *pmemory_barrier = &prePresentBarrier; - vkCmdPipelineBarrier(cmd_buf, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + vkCmdPipelineBarrier(cmd_buf, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, 0, 1, (const void * const*)&pmemory_barrier); diff --git a/demos/tri.c b/demos/tri.c index fb5b1a24..f0e2ff99 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -437,7 +437,7 @@ static void demo_draw_build_cmd(struct demo *demo) prePresentBarrier.image = demo->buffers[demo->current_buffer].image; VkImageMemoryBarrier *pmemory_barrier = &prePresentBarrier; - vkCmdPipelineBarrier(demo->draw_cmd, VK_PIPELINE_STAGE_ALL_GPU_COMMANDS, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + vkCmdPipelineBarrier(demo->draw_cmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, 0, 1, (const void * const*)&pmemory_barrier); err = vkEndCommandBuffer(demo->draw_cmd); diff --git a/include/vulkan.h b/include/vulkan.h index eba214c6..b4e1e30e 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -977,8 +977,8 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, VK_PIPELINE_STAGE_HOST_BIT = 0x00002000, - VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF, - VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF, + VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00004000, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00008000, } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp index 1acb7ba4..dfb1f446 100644 --- a/layers/param_checker.cpp +++ b/layers/param_checker.cpp @@ -1216,11 +1216,13 @@ std::string EnumeratorString(VkShaderStageFlagBits const& enumerator) static bool ValidateEnumerator(VkPipelineStageFlagBits const& enumerator) { - VkPipelineStageFlagBits allFlags = (VkPipelineStageFlagBits)(VK_PIPELINE_STAGE_ALL_GRAPHICS | + VkPipelineStageFlagBits allFlags = (VkPipelineStageFlagBits)( + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT| + VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT| VK_PIPELINE_STAGE_HOST_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | - VK_PIPELINE_STAGE_ALL_GPU_COMMANDS | + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT | @@ -1249,9 +1251,13 @@ std::string EnumeratorString(VkPipelineStageFlagBits const& enumerator) } std::vector strings; - if(enumerator & VK_PIPELINE_STAGE_ALL_GRAPHICS) + if(enumerator & VK_PIPELINE_STAGE_ALL_COMMANDS_BIT) { - strings.push_back("VK_PIPELINE_STAGE_ALL_GRAPHICS"); + strings.push_back("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"); + } + if(enumerator & VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT) + { + strings.push_back("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"); } if(enumerator & VK_PIPELINE_STAGE_HOST_BIT) { @@ -1265,9 +1271,9 @@ std::string EnumeratorString(VkPipelineStageFlagBits const& enumerator) { strings.push_back("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"); } - if(enumerator & VK_PIPELINE_STAGE_ALL_GPU_COMMANDS) + if(enumerator & VK_PIPELINE_STAGE_ALL_COMMANDS_BIT) { - strings.push_back("VK_PIPELINE_STAGE_ALL_GPU_COMMANDS"); + strings.push_back("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"); } if(enumerator & VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT) { -- cgit v1.2.3