Skip to content

Commit cb83a58

Browse files
committed
add multi alloc fail callback logs, time for intended submit + missing multi_deallocate
1 parent 73f7713 commit cb83a58

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/nbl/ext/ImGui/ImGui.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,12 +764,12 @@ namespace nbl::ext::imgui
764764
multiAllocParams.byteSizes[MDI::EBC_VERTEX_BUFFERS] += commandList->VtxBuffer.Size * sizeof(ImDrawVert);
765765
}
766766

767-
// calculate upper bound byte size limit for mdi buffer with alignments taken into account
767+
// calculate upper bound byte size limit for mdi buffer
768768
const auto mdiBufferByteSize = [&byteSizes = multiAllocParams.byteSizes, &alignments = multiAllocParams.alignments]() -> size_t
769769
{
770770
auto requestedByteSize = std::reduce(std::begin(byteSizes), std::end(byteSizes));
771771
auto maxAlignment = *std::max_element(std::begin(alignments), std::end(alignments));
772-
auto padding = requestedByteSize % maxAlignment;
772+
auto padding = requestedByteSize % maxAlignment; // okay I don't need it at all but lets add a few bytes
773773

774774
return requestedByteSize + padding;
775775
}();
@@ -784,6 +784,18 @@ namespace nbl::ext::imgui
784784
if (!ok)
785785
{
786786
logger->log("Could not multi alloc mdi buffer!", system::ILogger::ELL_ERROR);
787+
788+
auto callback = [&](const std::string_view section, const MDI::MULTI_ALLOC_PARAMS::COMPOSE_T::value_type offset)
789+
{
790+
std::string value = offset == MDI::MULTI_ALLOC_PARAMS::COMPOSE_T::invalid_value ? "invalid_value" : std::to_string(offset);
791+
logger->log("%s offset = %s", system::ILogger::ELL_ERROR, section.data(), value.c_str());
792+
};
793+
794+
callback("MDI::EBC_DRAW_INDIRECT_STRUCTURES", multiAllocParams.offsets[MDI::EBC_DRAW_INDIRECT_STRUCTURES]);
795+
callback("MDI::EBC_ELEMENT_STRUCTURES", multiAllocParams.offsets[MDI::EBC_ELEMENT_STRUCTURES]);
796+
callback("MDI::EBC_INDEX_BUFFERS", multiAllocParams.offsets[MDI::EBC_INDEX_BUFFERS]);
797+
callback("MDI::EBC_VERTEX_BUFFERS", multiAllocParams.offsets[MDI::EBC_VERTEX_BUFFERS]);
798+
787799
exit(0x45); // TODO: handle overflows, unallocatedSize tells how much is missing
788800
}
789801
}

0 commit comments

Comments
 (0)