diff options
Diffstat (limited to 'test/util/memory.test.cpp')
-rw-r--r-- | test/util/memory.test.cpp | 78 |
1 files changed, 28 insertions, 50 deletions
diff --git a/test/util/memory.test.cpp b/test/util/memory.test.cpp index ad7982ce57..54763cd9db 100644 --- a/test/util/memory.test.cpp +++ b/test/util/memory.test.cpp @@ -3,15 +3,11 @@ #include <mbgl/test/util.hpp> #include <mbgl/map/map.hpp> -#include <mbgl/renderer/backend_scope.hpp> -#include <mbgl/gl/headless_backend.hpp> -#include <mbgl/gl/offscreen_view.hpp> +#include <mbgl/gl/headless_frontend.hpp> #include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/style/style.hpp> -#include <mbgl/renderer/renderer.hpp> -#include <mbgl/test/stub_renderer_frontend.hpp> #include <algorithm> #include <iostream> @@ -38,9 +34,6 @@ public: } util::RunLoop runLoop; - HeadlessBackend backend; - BackendScope scope { backend }; - OffscreenView view { backend.getContext(), { 512, 512 } }; StubFileSource fileSource; ThreadPool threadPool { 4 }; @@ -77,30 +70,25 @@ TEST(Memory, Vector) { MemoryTest test; float ratio { 2 }; - StubRendererFrontend rendererFrontend { - std::make_unique<Renderer>(test.backend, ratio, test.fileSource, test.threadPool), - test.view }; - Map map(rendererFrontend, MapObserver::nullObserver(), { 256, 256 }, ratio, test.fileSource, + HeadlessFrontend frontend { { 256, 256 }, ratio, test.fileSource, test.threadPool }; + Map map(frontend, MapObserver::nullObserver(), frontend.getSize(), ratio, test.fileSource, test.threadPool, MapMode::Still); map.setZoom(16); // more map features map.getStyle().loadURL("mapbox://streets"); - test::render(map, test.view); + frontend.render(map); } TEST(Memory, Raster) { MemoryTest test; float ratio { 2 }; - StubRendererFrontend rendererFrontend { - std::make_unique<Renderer>(test.backend, ratio, test.fileSource, test.threadPool), - test.view }; - - Map map(rendererFrontend, MapObserver::nullObserver(), { 256, 256 }, ratio, test.fileSource, + HeadlessFrontend frontend { { 256, 256 }, ratio, test.fileSource, test.threadPool }; + Map map(frontend, MapObserver::nullObserver(), frontend.getSize(), ratio, test.fileSource, test.threadPool, MapMode::Still); map.getStyle().loadURL("mapbox://satellite"); - test::render(map, test.view); + frontend.render(map); } /** @@ -127,57 +115,47 @@ TEST(Memory, Footprint) { if (!shouldRunFootprint()) { return; } - + MemoryTest test; - float ratio { 2 }; - auto renderMap = [&](Map& map, const char* style){ - map.setZoom(16); - map.getStyle().loadURL(style); - test::render(map, test.view); + class FrontendAndMap { + public: + FrontendAndMap(MemoryTest& test_, const char* style) + : frontend(Size{ 256, 256 }, 2, test_.fileSource, test_.threadPool) + , map(frontend, MapObserver::nullObserver(), frontend.getSize(), 2, test_.fileSource, test_.threadPool, MapMode::Still) { + map.setZoom(16); + map.getStyle().loadURL(style); + frontend.render(map); + } + + HeadlessFrontend frontend; + Map map; }; // Warm up buffers and cache. for (unsigned i = 0; i < 10; ++i) { - StubRendererFrontend rendererFrontend { - std::make_unique<Renderer>(test.backend, ratio, test.fileSource, test.threadPool), - test.view }; - Map map(rendererFrontend, MapObserver::nullObserver(), { 256, 256 }, ratio, test.fileSource, - test.threadPool, MapMode::Still); - renderMap(map, "mapbox://streets"); - renderMap(map, "mapbox://satellite"); - }; + FrontendAndMap(test, "mapbox://streets"); + FrontendAndMap(test, "mapbox://satellite"); + } // Process close callbacks, mostly needed by // libuv runloop. test.runLoop.runOnce(); - std::vector<std::pair<std::unique_ptr<Map>, std::unique_ptr<RendererFrontend>>> maps; + std::vector<std::unique_ptr<FrontendAndMap>> maps; unsigned runs = 15; long vectorInitialRSS = mbgl::test::getCurrentRSS(); for (unsigned i = 0; i < runs; ++i) { - auto frontend = std::make_unique<StubRendererFrontend>( - std::make_unique<Renderer>(test.backend, ratio, test.fileSource, test.threadPool), test.view); - auto vector = std::make_unique<Map>(*frontend, MapObserver::nullObserver(), - Size{ 256, 256 }, ratio, test.fileSource, - test.threadPool, MapMode::Still); - renderMap(*vector, "mapbox://streets"); - maps.push_back({std::move(vector), std::move(frontend)}); - }; + maps.emplace_back(std::make_unique<FrontendAndMap>(test, "mapbox://streets")); + } double vectorFootprint = (mbgl::test::getCurrentRSS() - vectorInitialRSS) / double(runs); long rasterInitialRSS = mbgl::test::getCurrentRSS(); for (unsigned i = 0; i < runs; ++i) { - auto frontend = std::make_unique<StubRendererFrontend>( - std::make_unique<Renderer>(test.backend, ratio, test.fileSource, test.threadPool), test.view); - auto raster = std::make_unique<Map>(*frontend, MapObserver::nullObserver(), - Size{ 256, 256 }, ratio, test.fileSource, - test.threadPool, MapMode::Still); - renderMap(*raster, "mapbox://satellite"); - maps.push_back({std::move(raster), std::move(frontend)}); - }; + maps.emplace_back(std::make_unique<FrontendAndMap>(test, "mapbox://satellite")); + } double rasterFootprint = (mbgl::test::getCurrentRSS() - rasterInitialRSS) / double(runs); |