PacktPublishing / Vulkan-Cookbook

Code repository for Vulkan Cookbook by Packt
MIT License
816 stars 109 forks source link

Barrier's problem #11

Closed flowerdancedatou closed 3 years ago

flowerdancedatou commented 5 years ago

BufferTransition pre_transfer_transition = { *UniformBuffer, // VkBuffer Buffer VK_ACCESS_UNIFORM_READ_BIT, // VkAccessFlags CurrentAccess VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags NewAccess VK_QUEUE_FAMILY_IGNORED, // uint32_t CurrentQueueFamily VK_QUEUE_FAMILY_IGNORED // uint32_t NewQueueFamily };

    SetBufferMemoryBarrier( command_buffer, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, { pre_transfer_transition } );

    std::vector<VkBufferCopy> regions = {
          {
            0,                        // VkDeviceSize     srcOffset
            0,                        // VkDeviceSize     dstOffset
            2 * 16 * sizeof(float)  // VkDeviceSize     size
          }
    };
    CopyDataBetweenBuffers(command_buffer, *StagingBuffer, *UniformBuffer, regions);

    BufferTransition post_transfer_transition = {
      *UniformBuffer,               // VkBuffer         Buffer
      VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags    CurrentAccess
      VK_ACCESS_UNIFORM_READ_BIT,   // VkAccessFlags    NewAccess
      VK_QUEUE_FAMILY_IGNORED,      // uint32_t         CurrentQueueFamily
      VK_QUEUE_FAMILY_IGNORED       // uint32_t         NewQueueFamily
    };
    SetBufferMemoryBarrier( command_buffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, { post_transfer_transition } );

Is it deadlock?

flowerdancedatou commented 5 years ago

Is it deadlock?