Makie.jl
Makie.jl copied to clipboard
clean up stairs + use linesegments
Fixes #1129 ... Linesegments should be a better fit for stairs anyways!
Compile Times benchmark
Note, that these numbers may fluctuate on the CI servers, so take them with a grain of salt. All benchmark results are based on the mean time and negative percent mean faster than the base branch. Note, that GLMakie + WGLMakie run on an emulated GPU, so the runtime benchmark is much slower. Results are from running:
using_time = @ctime using Backend
# Compile time
create_time = @ctime fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @ctime Makie.colorbuffer(display(fig))
# Runtime
create_time = @benchmark fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @benchmark Makie.colorbuffer(display(fig))
using | create | display | create | display | |
---|---|---|---|---|---|
GLMakie | 19.48s (18.21, 20.68) 1.00+- | 23.37s (21.24, 24.90) 1.14+- | 19.79s (18.53, 21.07) 0.87+- | 24.38ms (23.52, 25.34) 0.72+- | 107.87ms (103.99, 110.23) 2.56+- |
master | 19.95s (18.06, 21.35) 1.32+- | 22.93s (20.38, 25.24) 1.59+- | 19.50s (17.94, 20.48) 0.88+- | 25.26ms (24.12, 27.33) 1.05+- | 108.70ms (104.24, 112.80) 3.16+- |
evaluation | -2.40%, -0.47s invariant (-0.40d, 0.47p, 1.16std) | +1.87%, 0.44s invariant (0.32d, 0.57p, 1.36std) | +1.48%, 0.29s invariant (0.34d, 0.54p, 0.88std) | -3.58%, -0.87ms invariant (-0.97d, 0.10p, 0.88std) | -0.77%, -0.83ms invariant (-0.29d, 0.60p, 2.86std) |
CairoMakie | 13.40s (13.26, 13.48) 0.07+- | 18.09s (17.90, 18.38) 0.15+- | 2.35s (2.34, 2.37) 0.01+- | 15.71ms (15.48, 16.02) 0.19+- | 24.38ms (24.22, 24.59) 0.13+- |
master | 13.45s (13.36, 13.54) 0.06+- | 18.07s (17.98, 18.23) 0.09+- | 2.35s (2.34, 2.37) 0.01+- | 15.72ms (15.62, 15.81) 0.07+- | 24.31ms (24.24, 24.38) 0.05+- |
evaluation | -0.42%, -0.06s invariant (-0.89d, 0.12p, 0.06std) | +0.12%, 0.02s invariant (0.18d, 0.75p, 0.12std) | +0.12%, 0.0s invariant (0.23d, 0.67p, 0.01std) | -0.05%, -0.01ms invariant (-0.06d, 0.92p, 0.13std) | +0.27%, 0.07ms invariant (0.66d, 0.26p, 0.09std) |
WGLMakie | 21.19s (20.68, 21.87) 0.45+- | 29.65s (28.93, 30.84) 0.64+- | 46.16s (45.49, 47.83) 0.82+- | 23.97ms (23.00, 24.89) 0.62+- | 1.93s (1.90, 1.99) 0.03+- |
master | 21.38s (20.60, 22.40) 0.82+- | 29.37s (28.71, 30.16) 0.46+- | 45.49s (44.55, 46.40) 0.75+- | 24.16ms (23.30, 24.84) 0.45+- | 1.92s (1.85, 1.97) 0.04+- |
evaluation | -0.93%, -0.2s invariant (-0.30d, 0.59p, 0.64std) | +0.96%, 0.28s invariant (0.51d, 0.36p, 0.55std) | +1.45%, 0.67s invariant (0.85d, 0.14p, 0.79std) | -0.81%, -0.19ms invariant (-0.36d, 0.52p, 0.54std) | +0.61%, 0.01s invariant (0.31d, 0.58p, 0.04std) |
But isn't it still a lines rendering bug in GLMakie that needs to be fixed? Linesegments don't have nice joins, that could be a visible deterioration
Yeah sure...but I can't fix it right now :D And since steps are perfect for linesegments, this should be a nice work around for now!
yeah as I said I'd like to see how the step joins look with linesegments, usually you have these cutout corners where the lines overlap, when they're not joined. at least for the single-color case, lines
avoids that