Browse Source

[vk] Return vk::CommandBuffer from Vulkan CommandPool::Commit

pull/2787/head
Ribbit 5 months ago
parent
commit
c8c18fa021
  1. 4
      src/video_core/renderer_vulkan/vk_command_pool.cpp
  2. 2
      src/video_core/renderer_vulkan/vk_command_pool.h
  3. 4
      src/video_core/renderer_vulkan/vk_scheduler.cpp

4
src/video_core/renderer_vulkan/vk_command_pool.cpp

@ -35,11 +35,11 @@ void CommandPool::Allocate(size_t begin, size_t end) {
pool.cmdbufs = pool.handle.Allocate(COMMAND_BUFFER_POOL_SIZE);
}
VkCommandBuffer CommandPool::Commit() {
vk::CommandBuffer CommandPool::Commit() {
const size_t index = CommitResource();
const auto pool_index = index / COMMAND_BUFFER_POOL_SIZE;
const auto sub_index = index % COMMAND_BUFFER_POOL_SIZE;
return pools[pool_index].cmdbufs[sub_index];
return vk::CommandBuffer(pools[pool_index].cmdbufs[sub_index], device.GetDispatchLoader());
}
} // namespace Vulkan

2
src/video_core/renderer_vulkan/vk_command_pool.h

@ -21,7 +21,7 @@ public:
void Allocate(size_t begin, size_t end) override;
VkCommandBuffer Commit();
vk::CommandBuffer Commit();
private:
struct Pool;

4
src/video_core/renderer_vulkan/vk_scheduler.cpp

@ -199,14 +199,14 @@ void Scheduler::WorkerThread(std::stop_token stop_token) {
}
void Scheduler::AllocateWorkerCommandBuffer() {
current_cmdbuf = vk::CommandBuffer(command_pool->Commit(), device.GetDispatchLoader());
current_cmdbuf = command_pool->Commit();
current_cmdbuf.Begin({
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
.pNext = nullptr,
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
.pInheritanceInfo = nullptr,
});
current_upload_cmdbuf = vk::CommandBuffer(command_pool->Commit(), device.GetDispatchLoader());
current_upload_cmdbuf = command_pool->Commit();
current_upload_cmdbuf.Begin({
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
.pNext = nullptr,

Loading…
Cancel
Save