Codestyle fixes and optimizations

This commit is contained in:
Wojtek Figat
2024-01-29 13:46:50 +01:00
parent 1b33a2aa0d
commit bb00d29098
25 changed files with 163 additions and 486 deletions

View File

@@ -14,17 +14,16 @@ QueueVulkan::QueueVulkan(GPUDeviceVulkan* device, uint32 familyIndex)
, _device(device)
, _lastSubmittedCmdBuffer(nullptr)
, _lastSubmittedCmdBufferFenceCounter(0)
, _submitCounter(0)
{
vkGetDeviceQueue(device->Device, familyIndex, 0, &_queue);
}
void QueueVulkan::Submit(CmdBufferVulkan* cmdBuffer, uint32 numSignalSemaphores, VkSemaphore* signalSemaphores)
void QueueVulkan::Submit(CmdBufferVulkan* cmdBuffer, uint32 signalSemaphoresCount, const VkSemaphore* signalSemaphores)
{
ASSERT(cmdBuffer->HasEnded());
auto fence = cmdBuffer->GetFence();
ASSERT(!fence->IsSignaled());
ASSERT(!fence->IsSignaled);
const VkCommandBuffer cmdBuffers[] = { cmdBuffer->GetHandle() };
@@ -32,7 +31,7 @@ void QueueVulkan::Submit(CmdBufferVulkan* cmdBuffer, uint32 numSignalSemaphores,
RenderToolsVulkan::ZeroStruct(submitInfo, VK_STRUCTURE_TYPE_SUBMIT_INFO);
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = cmdBuffers;
submitInfo.signalSemaphoreCount = numSignalSemaphores;
submitInfo.signalSemaphoreCount = signalSemaphoresCount;
submitInfo.pSignalSemaphores = signalSemaphores;
Array<VkSemaphore, InlinedAllocation<8>> waitSemaphores;
@@ -48,7 +47,7 @@ void QueueVulkan::Submit(CmdBufferVulkan* cmdBuffer, uint32 numSignalSemaphores,
submitInfo.pWaitDstStageMask = cmdBuffer->_waitFlags.Get();
}
VALIDATE_VULKAN_RESULT(vkQueueSubmit(_queue, 1, &submitInfo, fence->GetHandle()));
VALIDATE_VULKAN_RESULT(vkQueueSubmit(_queue, 1, &submitInfo, fence->Handle));
// Mark semaphores as submitted
cmdBuffer->_state = CmdBufferVulkan::State::Submitted;
@@ -78,21 +77,16 @@ void QueueVulkan::Submit(CmdBufferVulkan* cmdBuffer, uint32 numSignalSemaphores,
void QueueVulkan::GetLastSubmittedInfo(CmdBufferVulkan*& cmdBuffer, uint64& fenceCounter) const
{
_locker.Lock();
cmdBuffer = _lastSubmittedCmdBuffer;
fenceCounter = _lastSubmittedCmdBufferFenceCounter;
_locker.Unlock();
}
void QueueVulkan::UpdateLastSubmittedCommandBuffer(CmdBufferVulkan* cmdBuffer)
{
_locker.Lock();
_lastSubmittedCmdBuffer = cmdBuffer;
_lastSubmittedCmdBufferFenceCounter = cmdBuffer->GetFenceSignaledCounter();
_submitCounter++;
_locker.Unlock();
}