-
-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove stencil buffer #2389
Remove stencil buffer #2389
Conversation
Compile Times benchmarkNote, 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))
|
I remember, I had to resort to use the stencil buffer for a pretty obscure reason... There is a chance, that the reason went away, but there's also a chance, that it's only needed for a very annoying corner case. |
Got introduced here: JuliaPlots/GLMakie.jl#35 I'll check if I find any issues with picking. Overlapping scenes seem fine so far... |
Hm, I also tried the most common suspects and they do seem to work fine, as far as I can tell... |
This also looks the same as before and DataInspector works fine. fig = Figure()
for i in (1:2, 2:3), j in (1:2, 2:3)
ax = Axis(fig[i, j])
scatter!(ax, rand(Point2f, 1000), color = rand(RGBf, 1000))
s1 = campixel(ax.scene)
mesh!(s1, Rect2f(100, 100, 200, 200), color = RGBAf(0.3, 0.1, 0.5, 0.3), transparency = true)
translate!(s1, 0, 0, 100)
s2 = campixel(ax.scene)
mesh!(s2, Rect2f(200, 200, 200, 200), color = RGBAf(0.7, 0.3, 0.1, 0.3), transparency = !true)
xlims!(ax, 0, 1)
ylims!(ax, 0, 1)
end
DataInspector(fig)
fig Didn't see any problems rendering 192 Menus generating 385 scenes either. None with Toggles or sliders either (though those don't hit > 256 scenes) |
Love that I kept repeating "it's not trivial to remove the 256 limit" and now this 😂 |
* remove stencil buffer * bump screenID to UInt16 * remove commented out code
Description
I wanted to give fixing the scene id problem (#665) an attempt and tried removing all the stencil code bits to see what actually breaks... which seems to be nothing? Locally all tests still passed. I also tested all combinations of ssao, fxaa and transparancy with
and get the same ordering as before.
From my understanding the stencil code restricts rendering to scene areas which is also what
glViewport
andglScissor
do... So I guess it's redundant? Translating Axis and LScene content is still correctly cut off at least.Fixes #665. (Well not yet but we can remove/freely type screenid if we remove stencil tests)