Graphics Enthusiast and Performance Devotee

Gunnar Sletta

Click here to edit subtitle

Welcome to my little space on the internet. 


I am a Norwegian, living on the rainy west coast of Norway with my wife and two children.


I am self employed in Slettas Kodefabrikk (enkeltpersonforetak) and provide expert consultancy in the areas of Qt, Qml, Graphics and performant UIs. If you are looking for help, please contact me. My complete resume is available here.

Performance

Performance is a boolean. It is ok, or it is crap. 


Especially in the graphics area, things really need to be velvet to give the right feel. For animations and transitions to feel natural, they have to move steadily and smoothly at a pace close to what our brain interprets as natural movement. 


In Qt, I've spent a lot of time understanding what it takes to reach this level of performance. On the toolkit side, in the application and on the driver and hardware side of things. 


Making a UI performant, is not only about running a profiler over an application and optimizing the hotspots. Reaching good performance is a matter of properly using asynchronous execution, scheduling rendering and animations at the right time, and making sure that the structure of the runtime is such that it can sustain pushing out content at 60 frames per second when needed.

Graphics

More particles, more shaders, more bling!


Although programming in general appeals to me, I've always had a soft spot for graphics related things. Be it 2D vector graphics, image effects, software rasterization or hardware accelerated 3D graphics and raytracing.


In Qt 4, I was one of the primary contributors to the rewrite of QPainter and authored, among other things, Qt's software rasterizer. I have also spent a lot of time researching hardware accelerated UIs and how to enable that extra bling. I wanted to have flexible access to effects like page curls, surface warping, blurring and reflection, all the things that are possible when imagination intersects with GLSL. I also wanted to have particle effects, for instance to enhance animations and user interaction.  This eventually resulted in the implementation of the Qt Quick Scene Graph.


I also like to poke OpenGL to see how much stuff it is possible to throw the GPU before performance starts to falter. Even mobile GPUs are reaching a level where where insane things are possible. 


Noteworthy stuff

Qt Quick Scene Graph; Part of the Qt Project, this forms the graphics stack of Qt Quick 2.0. It is an OpenGL 2.0 (ES) based scene graph rendering system, featuring vertex retention on the GPU and batch submission of geometry. It also has a dedicated render thread and an animation system that runs on that render thread.

Qt Project; Contributor since 2002. I hold the role of maintainer for the Qt Gui module and for the Qt Quick Scene Graph. 

dqml; A small tool for live coding with QML. It works both as a stand alone runtime and as a library that can be linked into existing applications.

Other interests

I like to play music and can manage to produce sound and melody on a number of instruments, including hardingfele, violin, guitar, bass, piano and synthesizers.


I'm also an eager hobby chef and like to cook for family and friends as time permits.


I read books on my Kindle and listen to a lot of audiobooks. If you come across good scifi literature, let me know.