Skip to content

Commit

Permalink
Use correct SubmitHandle in VulkanContext::deferredTask()
Browse files Browse the repository at this point in the history
  • Loading branch information
corporateshark committed Sep 14, 2024
1 parent ce6982e commit 5ceaf6c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
8 changes: 7 additions & 1 deletion lvk/vulkan/VulkanClasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1415,6 +1415,8 @@ const lvk::VulkanImmediateCommands::CommandBufferWrapper& lvk::VulkanImmediateCo
};
VK_ASSERT(vkBeginCommandBuffer(current->cmdBuf_, &bi));

nextSubmitHandle_ = current->handle_;

return *current;
}

Expand Down Expand Up @@ -1553,6 +1555,10 @@ lvk::SubmitHandle lvk::VulkanImmediateCommands::getLastSubmitHandle() const {
return lastSubmitHandle_;
}

lvk::SubmitHandle lvk::VulkanImmediateCommands::getNextSubmitHandle() const {
return nextSubmitHandle_;
}

lvk::VulkanPipelineBuilder::VulkanPipelineBuilder() :
vertexInputState_(VkPipelineVertexInputStateCreateInfo{
.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
Expand Down Expand Up @@ -6620,7 +6626,7 @@ std::vector<uint8_t> lvk::VulkanContext::getPipelineCacheData() const {

void lvk::VulkanContext::deferredTask(std::packaged_task<void()>&& task, SubmitHandle handle) const {
if (handle.empty()) {
handle = immediate_->getLastSubmitHandle();
handle = immediate_->getNextSubmitHandle();
}
pimpl_->deferredTasks_.emplace_back(std::move(task), handle);
}
Expand Down
2 changes: 2 additions & 0 deletions lvk/vulkan/VulkanClasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ class VulkanImmediateCommands final {
VkSemaphore acquireLastSubmitSemaphore();
VkFence getVkFence(SubmitHandle handle) const;
SubmitHandle getLastSubmitHandle() const;
SubmitHandle getNextSubmitHandle() const;
bool isReady(SubmitHandle handle, bool fastCheckNoVulkan = false) const;
void wait(SubmitHandle handle);
void waitAll();
Expand All @@ -188,6 +189,7 @@ class VulkanImmediateCommands final {
const char* debugName_ = "";
CommandBufferWrapper buffers_[kMaxCommandBuffers];
SubmitHandle lastSubmitHandle_ = SubmitHandle();
SubmitHandle nextSubmitHandle_ = SubmitHandle();
VkSemaphore lastSubmitSemaphore_ = VK_NULL_HANDLE;
VkSemaphore waitSemaphore_ = VK_NULL_HANDLE;
uint32_t numAvailableCommandBuffers_ = kMaxCommandBuffers;
Expand Down

0 comments on commit 5ceaf6c

Please sign in to comment.