BufferPool: drop Qt log dependency

Replace qInfo() growth-event logging with fprintf(stderr,...) so
BufferPool.cpp has no Qt touchpoints. Lets the test target drop its
Qt6::Core link too. Prerequisite for the IfcViewerCore library boundary
the web target will link against.
This commit is contained in:
Dion Moult
2026-06-04 18:20:37 +10:00
parent 1fe4570860
commit cb19f22ee4
2 changed files with 14 additions and 16 deletions
+12 -11
View File
@@ -19,9 +19,8 @@
#include "BufferPool.h" #include "BufferPool.h"
#include <QtDebug>
#include <cassert> #include <cassert>
#include <cstdio>
#include <cstring> #include <cstring>
BufferPool::~BufferPool() { BufferPool::~BufferPool() {
@@ -113,21 +112,23 @@ bool BufferPool::addSubBuffer() {
sp.free_ranges.push_back({0, try_size}); sp.free_ranges.push_back({0, try_size});
sub_pools_.push_back(std::move(sp)); sub_pools_.push_back(std::move(sp));
last_growth_size_ = try_size; last_growth_size_ = try_size;
qInfo().noquote().nospace() std::fprintf(stderr,
<< "[wgpu pool] added sub-buffer " << (sub_pools_.size() - 1) "[wgpu pool] added sub-buffer %zu (%llu MB); pool total now %llu MB\n",
<< " (" << (try_size / (1024 * 1024)) << " MB); pool total now " sub_pools_.size() - 1,
<< (total_capacity_bytes() / (1024 * 1024)) << " MB"; (unsigned long long)(try_size / (1024 * 1024)),
(unsigned long long)(total_capacity_bytes() / (1024 * 1024)));
return true; return true;
} }
if (buf) wgpuBufferRelease(buf); if (buf) wgpuBufferRelease(buf);
try_size /= 2; try_size /= 2;
} }
qInfo().noquote().nospace() std::fprintf(stderr,
<< "[wgpu pool] driver refused growth even at " "[wgpu pool] driver refused growth even at %llu MB; "
<< (MIN_SUB_BUFFER_BYTES / (1024 * 1024)) << " MB; pool capped at " "pool capped at %llu MB across %zu sub-buffer(s) — growth disabled\n",
<< (total_capacity_bytes() / (1024 * 1024)) (unsigned long long)(MIN_SUB_BUFFER_BYTES / (1024 * 1024)),
<< " MB across " << sub_pools_.size() << " sub-buffer(s) — growth disabled"; (unsigned long long)(total_capacity_bytes() / (1024 * 1024)),
sub_pools_.size());
growth_disabled_ = true; growth_disabled_ = true;
return false; return false;
} }
+2 -5
View File
@@ -82,13 +82,10 @@ add_ifcviewer_unit_test(test_visibility)
# the linker needs is the production destructor's wgpuBufferRelease — which # the linker needs is the production destructor's wgpuBufferRelease — which
# is never reached for fake handles because we don't call destroy() / let # is never reached for fake handles because we don't call destroy() / let
# the pool go out of scope holding any. Linking wgpu_native satisfies the # the pool go out of scope holding any. Linking wgpu_native satisfies the
# symbol regardless. Qt6::Core comes along for qInfo() inside # symbol regardless.
# addSubBuffer's diagnostic log — also never reached at test runtime, but
# the unresolved symbol would fail link.
find_package(Qt${QT_VERSION} COMPONENTS Core REQUIRED PATHS ${QT_DIR})
add_ifcviewer_unit_test(test_buffer_pool add_ifcviewer_unit_test(test_buffer_pool
SOURCES ${IFCVIEWER_SRC}/BufferPool.cpp SOURCES ${IFCVIEWER_SRC}/BufferPool.cpp
LIBS wgpu_native Qt${QT_VERSION}::Core LIBS wgpu_native
) )
if(UNIX AND NOT APPLE AND WGPU_NATIVE_LIB_DIR) if(UNIX AND NOT APPLE AND WGPU_NATIVE_LIB_DIR)
set_target_properties(test_buffer_pool PROPERTIES set_target_properties(test_buffer_pool PROPERTIES