From 3f2be1e26aeb56fb15409f258d55daec4233f9ba Mon Sep 17 00:00:00 2001 From: redstrate Date: Wed, 13 Oct 2021 10:38:10 -0400 Subject: [PATCH] Fix viewports not rendering when index == nullptr --- engine/gfx/vulkan/src/gfx_vulkan.cpp | 9 +++++---- engine/renderer/src/renderer.cpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/engine/gfx/vulkan/src/gfx_vulkan.cpp b/engine/gfx/vulkan/src/gfx_vulkan.cpp index 344a656..6cbfa7d 100755 --- a/engine/gfx/vulkan/src/gfx_vulkan.cpp +++ b/engine/gfx/vulkan/src/gfx_vulkan.cpp @@ -2071,10 +2071,9 @@ void GFXVulkan::createDescriptorPool() { VkDescriptorPoolCreateInfo poolInfo = {}; poolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - poolInfo.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT; poolInfo.poolSizeCount = static_cast(poolSizes.size()); poolInfo.pPoolSizes = poolSizes.data(); - poolInfo.maxSets = 15000; + poolInfo.maxSets = 1500; vkCreateDescriptorPool(device, &poolInfo, nullptr, &descriptorPool); } @@ -2123,10 +2122,12 @@ void GFXVulkan::cacheDescriptorState(GFXVulkanPipeline* pipeline, VkDescriptorSe VkResult error = vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet); if(error != VK_SUCCESS || descriptorSet == VK_NULL_HANDLE) { - prism::log("ERROR: COULD NOT CACHE BECAUSE OUT OF DESCRIPTOR SETS."); + prism::log("ERROR: no cache"); return; - } + } else { + prism::log("Allocated new descriptor set."); + } name_object(device, VK_OBJECT_TYPE_DESCRIPTOR_SET, (uint64_t)descriptorSet, pipeline->label); diff --git a/engine/renderer/src/renderer.cpp b/engine/renderer/src/renderer.cpp index b32803f..ba4bf39 100755 --- a/engine/renderer/src/renderer.cpp +++ b/engine/renderer/src/renderer.cpp @@ -181,7 +181,7 @@ void renderer::render(GFXCommandBuffer* commandbuffer, Scene* scene, RenderTarge const auto extent = target.extent; const auto render_extent = target.get_render_extent(); - if(!platform::is_main_window(index)) { + if(index != nullptr && !platform::is_main_window(index)) { GFXRenderPassBeginInfo beginInfo = {}; beginInfo.render_area.extent = render_extent;