Virtuous blogs jbarnes' braindump

04/14/09

English (US)   with apologies to Shakespeare  -  Categories: Announcements [A]  -  @ 06:44:51 pm

Alas, poor SGI! I knew it, intarweb: a company of infinite jest, of most excellent fancy: it hath borne me on its back a thousand times; and now, how abhorred in my imagination it is! my gorge rims at it. Here mounted were those chips that I have programmed I know not how oft. Where be your gibes now? your gambols? your songs? your flashes of genius, that were wont to set the industry on a roar? Not one now, to mock your own grinning? quite chap-fallen? Now get you to my lady’s chamber, and tell her, let her paint an inch thick, to this favour she must come; make her laugh at that.

03/24/09

English (US)   vacation etc  -  Categories: Announcements [A]  -  @ 07:12:17 pm

Wow has it already been a month since my last post? Time flies…

So what’s happened in the last month? Well my wife and I vacationed in Australia for a friend’s wedding (apparently he’s even worse than me at keeping his blog fresh). And I spent a good amount of time working on my new office; the floor is in now and the baseboard trim is cut. Just need to stain it, cut a few cope joints, and nail it up then I can move in (pictures & celebration will ensue). Oh and work; lots of KMS and other bug fixing.

PCI pile

So for 2.6.30 there’s a pretty significant set of PCI changes queued up. In no particular order, SR-IOV (basically PCI device virtualization) support, multiple MSI support, and some big hotplug related changes, which make the PCI core much more hot plug aware.

I was hoping the SR-IOV stuff would make it into 2.6.29 but things didn’t come together in time (there were some issues with the patches and there were no client drivers ready), so it got put off until this merge window. Yu has been very responsive though, so I expect the merge will go fairly smoothly and make a lot of the v12n folks happy.

Matthew made some significant changes to the way the PCI layer handles message signalled interrupts (MSIs), allowing multiple interrupts to be assigned to a given device, which can really help with performance in some cases. There are some AHCI patches to take advantage of the feature out there already apparently, and I hope others (FC adapters, NICs) will shortly follow.

Finally, Alex Chiang, through some heroic efforts (which have left him nearly lifeless this week, or so I hear) turned the PCI core into something resembling a hot plug aware subsystem. His work includes a bunch of restructuring of core code (making it both more readable and more robust) and a few new interfaces for dealing with hotplug and bus rescanning. It’s pretty exciting stuff; hope nothing blows up when I send it off to Linus!

Drinking island, part 2

Kernel mode setting is in 2.6.29! I celebrated this once already when it went into Linus’s tree, but now it’s time to celebrate again. Some distros are already using KMS on Intel and other chips, so there’s been a stream of bug reports as the code gets more use, and people like Arjan are already starting to optimize things a bit, to make boot up and mode setting faster (I have some ideas on this front too).

I’ve also been working on stabilizing things for the 2.7 release of xf86-video-intel. We have way too many bugs open in my opinion, but there’s only so much time in the day, and feature work is usually more fun. But we’ve been making some progress anyway; looks like I’ve been resolving 5-10 bugs per week for a while now. Unfortunately with our current bug report rate that only barely keeps my head above water, bug wise (ah for the days of <20 bugs; now I have over 50!).

Once the 2.7 release is out, I’ll finish the page flipping work. The 2D portion should be small enough and backward compatible, so I hope people will be able to try it out with a 2.7.1 release (along with more bleeding edge Mesa, X server and kernel bits). After that, hopefully I’ll have time for some 8xx stabilization and KMS feature work.

02/20/09

English (US)   distro change & pain^Wpageflipping  -  Categories: Announcements [A]  -  @ 12:47:02 pm

fedora->kubuntu

So I finally moved away from Fedora as my main desktop distro. Though I still have some Fedora machines, including my home server, I finally gave up on it as a desktop; mainly because I use KDE, which seems to get even less attention on Fedora than it used to. Audio rarely worked well (always had to do stuff by hand like start Pulseaudio or fix perms to get everything going), and updates nearly *always* broke something. One of the reasons I moved from Debian to Fedora in the first place was to get fresher code, and newer packages. But that’s a double edged sword; the Fedora folks do so much of the upstream development in the first place that at times it feels more like a testing ground than a real desktop distro. And note I’m not talking about rawhide, this was all F9/F10. On top of that, I prefer KDE (for several reasons, see below), which is at best a second class citizen in the Fedora world. I’m sure if I used GNOME things would tend to work much better, since it’s likely that most of the Fedora developers use it and therefore find/fix problems more quickly there. But I don’t, and I got tired of things breaking, so now I’m using Kubuntu.

So why KDE? I tried GNOME out for awhile while during the KDE4 debacle, for a few reasons:

but I couldn’t stay with it. KDE just has too many killer features I’ve come to rely on:

Not to mention a vague feeling that KDE is just better designed & integrated than GNOME (admittedly this is a vestigial feeling based on some early work trying to get both running on IRIX, though there are more recent examples of this, like the infamous “yes/no” swap a few years back). The philosophy is a bit different too; GNOME seems to hide a lot of reconfigurability from the user, making them use a registry editor to change even simple things (again this is probably a dated feeling, but there are recent examples, take a look at the desktop effects config window on KDE and GNOME, the former allows much more control).

So anyway, I’m on Kubuntu now and it seems fine so far (though I do miss the simplicity of “yum list foo*", apt-cache search isn’t quite the same). It’s unfortunate though (for myself and other KDE users) that most of the distros have chosen to focus their development & integration efforts on GNOME, since it usually means that desktop infrastructure happens second or not at all on the KDE side (e.g. where’s knetworkmanager for KDE4? what about full bluetooth integration?).

painflipping

When I’m not wasting time switching distros or working on bugs, I’ve been working on adding page flipping support to DRI2. It’s slowly coming together; I have a hacked up version of compiz that unconditionally does a swapbuffers without tearing now, which is pretty great. The concept is pretty simple too: I added a new DRI2 protocol request (DRI2 uses a protocol between Mesa clients and your display server, e.g. X or Wayland, to perform updates to your display buffer) to allow DRI2 to ask your display server to swap your GL front & back buffers. This request eventually makes its way down to your display driver (in this case xf86-video-intel), where I added code to detect whether the swap was for a full screen buffer. If it is, we queue a flip of the whole display buffer in the kernel (which in turn queues it directly to the hardware). The flip is of course synchronized to the vertical blank period, so no tearing occurs, yay! I’m still working through a few bugs in the kernel and X code, but people are starting to use it successfully already, which is encouraging. I’m targetting this feature at our Q1 driver release; so if things go well we’ll have a way to avoid tearing on that release; fixing one of our most frequently reported bugs.

01/28/09

English (US)   dri2, performance, and tiling  -  Categories: Announcements [A]  -  @ 07:38:49 pm

We recently started supporting DRI2 in xf86-video-intel and the Mesa drivers, but since then people have started to report performance problems, especially on pre-965 chips (and even crashes on older chips).

I recently looked into those problems, with a couple of theories in mind. Some of the problems reported were so bad, I thought for sure there must be another vblank related bug hiding somewhere, causing apps to timeout and hang for a few seconds. Another theory was that our lack of tiled rendering on pre-965 was at least partly responsible. Turns out that a real win, especially on low end platforms (going from ~5fps to ~30fps on some platforms & apps).

On pre-965 chips though, in order to render to tiled surfaces, so-called fence registers must be set up surface’s properties (stride, size, tiling mode and address). Until recently we didn’t have a way of making fence registers available in the kernel, but with that code (added to support GTT based mapping in userspace), it was a small effort to get tiled rendering going on pre-965. However, only X tiling is supported at the moment. Mesa uses standard blits to copy data around in some cases, and on pre-965 only X tiled objects can be blitted with the 2D engine. Once we change that we can see how much of a win Y tiling will be on pre-965 (almost surely not as much as going from no tiling to X tiling, but it could be worth a few fps).

But that’s not all. With GEM, tiling parameters need to be known so that software based tiled access can work. Unfortunately on some machines the necessary configuration information (which is stored in the MCH memory config registers) isn’t available, since the BIOS may disable the registers or not allocate I/O space for them. My Eee is one such machine, so I was able to code and test a patch to make the MCH data available where it wasn’t otherwise (additional testing appreciated, see the intel-gfx@lists.freedesktop.org archives for the patch).

On the KMS front, things are coming together. X comes up *much* faster with KMS enabled, and VT switch is nearly instantaneous. All this is great, but there are still some bugs related to framebuffer resize and rotate, and suspend/resume is a little off when mode setting is enabled. Hopefully we can fix most of these before 2.6.29 proper comes out.

01/05/09

English (US)   I hate spam  -  Categories: Announcements [A]  -  @ 05:03:57 pm

I’ve been really bad at dealing with spam on this blog, but I just went through the posts from the last few months and cleaned things up. So if you’ve made comments, you might actually see them now and maybe even see replies…

powered by b2evolution free blog software

Contact the admin - Credits: multiblog | green power hosting | test