nical, French
@nical@mastodon.gamedev.place avatar

I was curious about how the new vulkan-based GSK renderer that shipped with gnome 46 worked so I took a peek using renderdoc. Here is a breakdown animation of each draw call (highlighted with the wireframe overlay):

A breakdown of each draw call going into rendering a frame of gnome's settings app

ebassi,
@ebassi@mastodon.social avatar

@nical First of all: this is a very interesting thread; it's nice to have somebody else in the field looking at what we do, thanks!

Batching is indeed a niche case for us: mainly helps in benchmarks. The icon atlas is a missing feature of the new renderer: the old GL renderer had one, for instance; needs somebody to write the code. As for opaque/blended regions: there's some work planned; we have the benefit of a clear content/chrome split, so it's not an immediate priority.

ebassi,
@ebassi@mastodon.social avatar

@nical in general, the main goal of the new renderer was to a) unify Vulkan and GL and b) ensure correctness, especially at different scaling factors, rather than speed. Once we know we're doing the right thing, we can optimise iteratively. As for mobile: hopefully, people with enough resources to care about mobile GPU workloads can lend a hand in the implementation.

nical,
@nical@mastodon.gamedev.place avatar

@ebassi Makes sense. I like simple and it performs well enough on my hardware (although it's clearly not in the low end).

I'm a bit surprised that batching only helps in benchmarks since it makes a big difference in Firefox for typical content, but again, different workloads. You've spent the time investigating these things in GTK, so I believe you.

ebassi,
@ebassi@mastodon.social avatar

@nical the main benefit for batching in GTK UIs is text, and that's using an atlas already; our worst case is a screenful of random glyphs in a virtual terminal emulator. Icons are less of an issue in UIs—and they require premultiplication when getting into the atlas. Further batching is complicated by colorisation of symbolic icons, gradients, and shadows in UI elements.

fell,
@fell@ma.fellr.net avatar

@nical How do the rounded corners work? I always thougt they would use geometry for that, but it looks like it's a texture or some sort of shader effect.

nical,
@nical@mastodon.gamedev.place avatar

@fell The whole rounded rect is done analytically in the fragment shader directly while rendering the (solid color in this case) pattern. The shader computes the distance to the four ellipses for each fragment.

fell,
@fell@ma.fellr.net avatar

@nical Does that mean it calculates the distance for all fragments, even in the middle, far away from any corners?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • magazineikmin
  • tacticalgear
  • InstantRegret
  • ngwrru68w68
  • Durango
  • Youngstown
  • slotface
  • mdbf
  • rosin
  • PowerRangers
  • kavyap
  • thenastyranch
  • vwfavf
  • anitta
  • hgfsjryuu7
  • cisconetworking
  • osvaldo12
  • everett
  • ethstaker
  • GTA5RPClips
  • khanakhh
  • tester
  • modclub
  • cubers
  • Leos
  • normalnudes
  • provamag3
  • All magazines