diff --git a/src/Engine/Graphics/GraphicsEnums.h b/src/Engine/Graphics/GraphicsEnums.h index f63cb84..79990f2 100644 --- a/src/Engine/Graphics/GraphicsEnums.h +++ b/src/Engine/Graphics/GraphicsEnums.h @@ -150,7 +150,7 @@ typedef uint32 KeyModifierFlags; namespace Gfx { static constexpr bool useAsyncCompute = true; -static constexpr bool waitIdleOnSubmit = true; +static constexpr bool waitIdleOnSubmit = false; static constexpr uint32 numFramesBuffered = 3; static uint32 currentFrameIndex = 0; diff --git a/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp b/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp index 7ece006..93ff625 100644 --- a/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanAllocator.cpp @@ -292,13 +292,13 @@ PStagingBuffer StagingManager::allocateStagingBuffer(uint32 size, VkBufferUsageF auto freeBuffer = *it; if (freeBuffer->getSize() == size && freeBuffer->isReadable() == bCPURead && freeBuffer->usage == usage) { - std::cout << "Reusing staging buffer" << std::endl; + //std::cout << "Reusing staging buffer" << std::endl; activeBuffers.add(freeBuffer.getHandle()); freeBuffers.remove(it, false); return freeBuffer; } } - std::cout << "Creating new stagingbuffer" << std::endl; + //std::cout << "Creating new stagingbuffer" << std::endl; PStagingBuffer stagingBuffer = new StagingBuffer(); VkBufferCreateInfo stagingBufferCreateInfo = init::BufferCreateInfo(usage, size); stagingBufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; diff --git a/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp b/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp index fd75bbe..748c4f3 100644 --- a/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp +++ b/src/Engine/Graphics/Vulkan/VulkanBuffer.cpp @@ -234,6 +234,7 @@ void ShaderBuffer::unlock() std::memset(®ion, 0, sizeof(VkBufferCopy)); region.size = size; vkCmdCopyBuffer(cmdHandle, stagingBuffer->getHandle(), buffers[currentBuffer].buffer, 1, ®ion); + graphics->getQueueCommands(currentOwner)->submitCommands(); } //requestOwnershipTransfer(pending.prevQueue); graphics->getStagingManager()->releaseStagingBuffer(pending.stagingBuffer);