Fix some Vulkan brokenness (Vulkan2D beginframe/endframe weren't called)

This commit is contained in:
Henrik Rydgard 2017-01-24 18:09:32 +01:00
parent 0a3bb4a720
commit ae569cd53a
2 changed files with 6 additions and 2 deletions

View File

@ -1463,6 +1463,8 @@ VkCommandBuffer FramebufferManagerVulkan::AllocFrameCommandBuffer() {
void FramebufferManagerVulkan::BeginFrameVulkan() {
BeginFrame();
vulkan2D_.BeginFrame();
FrameData &frame = frameData_[curFrame_];
vkResetCommandPool(vulkan_->GetDevice(), frame.cmdPool_, 0);
frame.numCommandBuffers_ = 0;
@ -1534,6 +1536,8 @@ void FramebufferManagerVulkan::EndFrame() {
FrameData &frame = frameData_[curFrame_];
frame.push_->End();
vulkan2D_.EndFrame();
curFrame_++;
curFrame_ &= 1;
}

View File

@ -47,7 +47,7 @@ void VulkanFBO::Create(VulkanContext *vulkan, VkRenderPass rp_compatible, int wi
vkCreateFramebuffer(vulkan->GetDevice(), &fb, nullptr, &framebuffer_);
}
Vulkan2D::Vulkan2D(VulkanContext *vulkan) : vulkan_(vulkan) {
Vulkan2D::Vulkan2D(VulkanContext *vulkan) : vulkan_(vulkan), curFrame_(0) {
InitDeviceObjects();
}
@ -110,7 +110,7 @@ void Vulkan2D::InitDeviceObjects() {
dp.maxSets = 1500;
dp.pPoolSizes = dpTypes;
dp.poolSizeCount = ARRAY_SIZE(dpTypes);
for (int i = 0; i < 2; i++) {
for (int i = 0; i < ARRAY_SIZE(frameData_); i++) {
VkResult res = vkCreateDescriptorPool(vulkan_->GetDevice(), &dp, nullptr, &frameData_[i].descPool);
assert(VK_SUCCESS == res);
}