Gallium3D is taking over

after there was a major performance regression with the introduction of kernel mode setting(KMS) for the radeon driver, it looks like the change starts to pay off now. You can already find on the fly display reconfiguration and dynamic power management with the upcoming kernel 2.6.34.

But if you enable the Gallium3D based r300g driver 3D performance takes off too – and makes you forget fglrx. While the Gallium3D based driver only had OpenGL2 to offer but had a horrible performance, it now easily overtakes the performance the classical r300 driver had with user mode setting.(UMS)

The last major boost came along with ColorTiling support which greatly improves the memory access, here a fast glxgears benchmark:

  • 10208 frames in 5s (no kms + classic mesa)
  • 9200 frames in 5s (kms + classic mesa)
  • 13400 frames in 5s (kms + gallium driver)

although this gives you a clue, the performance gain is much bigger in something that actually uses textures – like openarena.

Handheld based interaction using AR

it is time for the next demo of my project, as I reached the beta status. (feature complete) I think you can see quite clearly now where this is going and which kind of interactions will be possible using this technique. The concrete features are described in the annotations.

If you use more advanced tracking methods and add some physics to this, you could easily port numpty physics to this kind of interaction or create an easy to use level editor. In case you missed my last video, here is the link.

It will still take some weeks until this hits maemo-extras as there are still some bugs left and I still want to get rid of keyboard use for interaction.

Power management with radeon on Ubuntu

As you might have already heard, lucid will introduce kernel modesetting(KMS) for most chipsets including intel, nvidia and ati. But at least for ati there is are drawbacks compared with the latest user mode setting(UMS) code. With UMS you could downclock your graphics which was quite handy when using a laptop. But the code shipped with lucid allows no power management at all although power management for KMS is already available in drm-next.

To continue the good news, the KMS power management is already more advanced than the UMS code used to be as it can change the engine clock, the memory clock and the number of PCIE lanes on the fly – depending on the current load.

If you want to try this out for yourself, you have to get an updated kernel from here.(this build tracks drm-radeon-testing) And then load the radeon module with dynpm=1. To just try this for one boot you can append radeon.dynpm=1 to your grub boot line. To make it permanent put it in a new file in /etc/modprobe.d/.

If it succeeds you should see something like this in your dmesg output: (engine, memory, pcie lanes)

[ 7827.808061] [drm] Requested: e: 43200 m: 33000 p: 16
[ 7828.012066] [drm] Setting: e: 43200 m: 33000 p: 16
[ 7828.508058] [drm] Requested: e: 32400 m: 13500 p: 1
[ 7828.708094] [drm] Setting: e: 32400 m: 13500 p: 1

Of course this things are not stable yet, as they are not even contained in Linux 2.6.33, but I think they are supposed to go in for 2.6.34 and it works here quite well :)

AR shadowmapping demo

while my last video already contained augmented reality and shadow mapping, it did not really show the potential of shadowmapping, therefore I created another video

other news are the tracking of multiple individual markers(quite obvious) and the camera relative light source. The latter is necessary to cast the shadow of all objects in the same direction.

As some of you wondered where the sense behind all of this is; I write the program as a project work at the university. The aim is to create an easy way to create and modify 3D scenes.

Tablet PCs – a chance for Maemo?

I just have watched the Apple iPad announcement and I have to say that I am quite impressed by the Apple marketing team. Before the film I could not think of a good use case for a oversized iPod, but after the film I have to say that Apple greatly refined the use case of the netbooks as a second PC.

Instead of putting an ordinary OS into a differently shaped device, like Microsoft is seemingly doing with the Slate, Apple adjusted the OS to the new use case.

If you have a much smaller screen and a much smaller keyboard, like you have on netbooks, you don’t want to write long articles or aim for the tiny buttons of ordinary user interfaces. Instead one should of a netbook like a playback device, which only requires rudimentary interaction.

As apple is great at streamlining stuff, they simply left out the keyboard and used a modified version of the iPhone OS, which is optimized for easy usage and – voilla here comes the computer you actually want to use in your living room, to quickly peek on facebook or your mail inbox.

But there are two big disadvantages that come with using the iPhone OS. First it is stripped down to much; there is no multitasking and no system clipboard which takes a lot of the convenience you have when using a real OS.

And second you are again locked-in by apple. If you use the iPad, you are also more or less forced to use iTunes for your music, iBook Store for your eBook and the AppStore if you want new Software.

Of course you might be able to Jailbreak the device and use third-party software but this will be nowhere as convenient as using the defaults. This is Apples Achilles heel and where Maemo can triumph.

With Maemo you basically have a full-fledged Linux with a easy to use UI. You have multitasking, you have a system clipboard and most importantly you have an open software repository – and all of this very well integrated in the UI.

You can freely choose your email provide, your music player and even the format you save your music in. And even though Nokia does not support OGG by default, the open nature of the OS allows it to be just as integrated as everything else.

Actually Nokia only has to build a Internet Tablet with the size of the iPad…

The future of the radeon OSS driver is bright

recently I had to switch to the gallium based r300g driver to get GLSL support, which I need for a project. And I must say I am quite impressed. It exposes all extensions necessary for OpenGL 2.1 and already seems quite stable. Although some extensions are not implemented properly yet like NPOT as they need special workarounds I think this will eventually become the most feature complete driver for radeon hardware.

But although currently compiz works as do most of the OpenGL programs, I would not reccomend using r300g for production use as it is still really slow. I know glxgears is not a benchmark, but these numbers represent the impression I got quite well

  • 8200 frames in 5s (no kms + classic mesa)
  • 5140 frames in 5s (kms + classic mesa)
  • 2431 frames in 5s (kms + gallium)

But as r300g exposes GLSL and the adobe flash player uses that if available, HD flash movies seem smoother now. And considering that using gallium not only provides better OpenGL, but eventually also VDPAU, OpenVG, OpenCL etc. the r300g driver does a good job already. And remember all AMD cards starting from r300 will get this stuff – I hope you now see why open source drivers are important ;)

GLUT for C++ and OpenGL ES

did you ever try to use GLUT with C++? Do you remember the pain of having to make you member function static, so they can be used as a callback? Maybe you also want to create a OpenGL ES2 context if you develop for mobile devices. But although the latest freeglut supports OpenGL3 contexts, you are still out of luck using GLUT here. But there is rescue:

#include <QGLWidget>

class View : public QGLWidget {
public:
 View();  // glutInit
protected:
 void initializeGL();
 void paintGL(); // glutDisplayFunc
 void resizeGL(int width, int height); // glutReshapeFunc
 void keyPressEvent(QKeyEvent *event); // glutKeyboardFunc
};

and thats it. Works with OpenGL2 and OpenGL ES2 and integrates nicely with the Object Oriented approach. As Qt is LGPL today you can also use it in closed source projects and as you see, you can easily migrate from GLUT without changing all your code :)

E-Mail backup in 2009

Are you still one of those using POP to pull E-Mails and save them locally? Are you then using some kind copy to back-up the local mails? At least so did I until recently… But welcome to 2009!

Today the serious e-mail providers also offer IMAP access and pulling e-mails from other servers using POP. Furthermore you get about 7GB(at gmail at least) of online storage and you can configure IMAP to maintain a full local copy. (hint: default of Thunderbird 3)

So instead of fiddling with some local back-ups you can just let gmail pull and save your mail in one place. Then you can clone all your mail locally with thunderbird and you have a reasonable backup. (also recommended for offline usage)

But what to do with your mail collection from the last years? Luckily IMAP has also push support, so you can upload them to gmail and maybe to a bunch of other email providers if you feel safer. :)

YouAmp 0.6 has grown

After several betas the final release of YouAmp 0.6 is almost there. You can find the current versions in the launchpad PPA for Ubuntu and in maemo-extras for N8x0.

YouAmp DesktopYouAmp Maemo

the new features are:

  • Playlists
  • Automatic Cover Download
  • Adding Files from anywhere, not just the music library (just drag and drop in Desktop version)
  • you can pay for YouAmp now

I would like to emphasise the last feature: make me a millionaire! No seriously – if you like YouAmp consider a small donation > 0,30€ (otherwise everything goes to paypal) which will help developing the program in my free-time. ;)

As I did not get into the Developers programme for the N900, I also accept unused discount codes – in case you would like to see YouAmp on the N900.