Makie.jl icon indicating copy to clipboard operation
Makie.jl copied to clipboard

clean up stairs + use linesegments

Open SimonDanisch opened this issue 2 years ago • 4 comments

Fixes #1129 ... Linesegments should be a better fit for stairs anyways!

SimonDanisch avatar Sep 05 '22 16:09 SimonDanisch

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)

MakieBot avatar Sep 05 '22 17:09 MakieBot

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

jkrumbiegel avatar Sep 05 '22 18:09 jkrumbiegel

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!

SimonDanisch avatar Sep 05 '22 18:09 SimonDanisch

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

jkrumbiegel avatar Sep 11 '22 11:09 jkrumbiegel