Closed adrian-cojocaru closed 2 months ago
Compared to main
FILE SIZE VM SIZE
-------------- --------------
+0.0% +1.27Ki [ = ] 0 TOTAL
Compared to main
FILE SIZE VM SIZE
-------------- --------------
+0.0% +20.7Ki +0.0% +3.88Ki TOTAL
Compared to d38709084a9865fe0bb8300aec70ebf8243b3d43 (legacy)
FILE SIZE VM SIZE
-------------- --------------
+21% +24.7Mi +411% +24.6Mi TOTAL
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/bloaty-results/pr-2564-compared-to-legacy.txt
Benchmark Results ā”
Benchmark Time CPU Time Old Time New CPU Old CPU New
------------------------------------------------------------------------------------------------------------------------------------------
OVERALL_GEOMEAN +0.0019 +0.0017 0 0 0 0
Full report: https://maplibre-native.s3.eu-central-1.amazonaws.com/benchmark-results/pr-2564-compared-to-main.txt
As discussed, let's not add any tests to CI yet for the Vulkan backend, but make sure it builds for Linux on CI.
@adrian-cojocaru If you can share some build instructions I am happy to add it to linux-ci.yml
.
Windows: cmake -B build -G "Visual Studio 17 2022" DCMAKE_BUILD_TYPE=RelWithDebInfo -DMLN_DRAWABLE_RENDERER=ON -DMLN_LEGACY_RENDERER=OFF -DMLN_WITH_VULKAN=ON -DMLN_WITH_OPENGL=OFF
Linux: cmake -B build -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMLN_DRAWABLE_RENDERER=ON -DMLN_LEGACY_RENDERER=OFF -DMLN_WITH_VULKAN=ON -DMLN_WITH_OPENGL=OFF
Tested for mbgl-glfw
, mbgl-render
and mbgl-render-test-runner
Fails to build with clang 10 and gcc 9.4. This is a lowest common denominator build config for us.
Clang 10
CXX=/usr/bin/clang++ CC=/usr/bin/clang cmake .. -GNinja -DMMLN_WITH_X11=OFF -DMLN_WITH_WAYLAND=ON -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DMLN_DRAWABLE_RENDERER=ON -DMLN_LEGACY_RENDERER=OFF -DMLN_WITH_VULKAN=ON -DMLN_WITH_OPENGL=OFF
configure_log.txt build_log.txt
GCC 9.4
cmake .. -GNinja -DMMLN_WITH_X11=OFF -DMLN_WITH_WAYLAND=ON -DMLN_DRAWABLE_RENDERER=ON -DMLN_LEGACY_RENDERER=OFF -DMLN_WITH_VULKAN=ON -DMLN_WITH_OPENGL=OFF
@jwinarske The same errors show up on the CI build, so they will be addressed.
Has anyone ran this with molten-vk? Curious what the Delta with metal is.
@mwilsnd The OOM when allocating descriptor sets is a limitation at the moment. This will be fixed in a future PR with an abstraction layer for descriptors and resizable descriptor pools. This will also fully implement RenderPass::bindVertex
/ RenderPass::bindFragment
functions and their calls.
I think I found a similar issue on Android with flickering symbols with long/smooth camera movements. Seems to be sync related
I am able to build and run mbgl-glfw built with clang 10 as well as GCC 9.4 with attached patch.
Lots of clang-tidy issues; some are directly related to the compiler errors.
Build flags:
-DMLN_WITH_VULKAN=ON
-DMLN_WITH_X11=OFF
-DMLN_WITH_WAYLAND=OFF
-DMLN_DRAWABLE_RENDERER=ON
-DMLN_LEGACY_RENDERER=OFF
-DMLN_WITH_VULKAN=ON
-DMLN_WITH_OPENGL=OFF
-DMLN_WITH_EGL=OFF
@jwinarske Could you share your clang-tidy config? Here is ours: https://github.com/maplibre/maplibre-native/blob/main/.clang-tidy
Any chance you could upstream your patch as a PR?
@jwinarske Seems to compile without any issue on clang 10/GCC 9.4. As @louwers suggested the difference is probably in clang-tidy config.
Rough implementation of a Vulkan renderer backend (tested on Windows).
Notes:
requires a valid surface (no offscreen rendering at the moment)List of working shaders (and associated functionality):
BackgroundShader
BackgroundPatternShader
CircleShader
ClippingMaskProgram
CollisionBoxShader
CollisionCircleShader
CustomSymbolIconShader
DebugShader
FillShader
FillOutlineShader
FillPatternShader
FillOutlinePatternShader
FillOutlineTriangulatedShader
FillExtrusionShader
FillExtrusionPatternShader
HeatmapShader
HeatmapTextureShader
HillshadeShader
HillshadePrepareShader
LineShader
LineGradientShader
LineSDFShader
LinePatternShader
RasterShader
SymbolIconShader
SymbolSDFIconShader
SymbolTextAndIconShader
WideVectorShader