From 799ba20d495b6e214aa107dadb09d8f3d318dbfa Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Sat, 31 Oct 2020 00:04:23 +0100 Subject: [PATCH] Hopefully fixing models --- src/Engine/Graphics/GraphicsEnums.h | 2 +- src/Engine/Graphics/Vulkan/VulkanAllocator.cpp | 4 ++-- src/Engine/Graphics/Vulkan/VulkanBuffer.cpp | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) 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);