OSDN Git Service

Allow all vkBeginCommandBuffer flags
authorChris Forbes <chrisforbes@google.com>
Sat, 2 Mar 2019 01:40:25 +0000 (17:40 -0800)
committerChris Forbes <chrisforbes@google.com>
Sat, 2 Mar 2019 04:36:47 +0000 (04:36 +0000)
Our command buffer playback mechanism is safe for multiple inflight
submissions of the same command buffer, so there is nothing special to
do here.

The problematic case of needing to carry some state from a primary
command buffer into a secondary is already caught by the slightly later
check for pInheritanceInfo.

Bug: b/118619338
Change-Id: I782285fbc9127d59eeac7cbf79fea3f1952e3cde
Reviewed-on: https://swiftshader-review.googlesource.com/c/25950
Tested-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Hernan Liatis <hliatis@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

src/Vulkan/VkCommandBuffer.cpp

index 7b5fe9f..e116de4 100644 (file)
@@ -553,7 +553,12 @@ VkResult CommandBuffer::begin(VkCommandBufferUsageFlags flags, const VkCommandBu
 {
        ASSERT((state != RECORDING) && (state != PENDING));
 
-       if(!((flags == 0) || (flags == VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT)) || pInheritanceInfo)
+       // Nothing interesting to do based on flags. We don't have any optimizations
+       // to apply for ONE_TIME_SUBMIT or (lack of) SIMULTANEOUS_USE. RENDER_PASS_CONTINUE
+       // must also provide a non-null pInheritanceInfo, which we don't implement yet, but is caught below.
+       (void) flags;
+
+       if(pInheritanceInfo)
        {
                UNIMPLEMENTED();
        }