Older blog entries for anholt (starting at number 23)

Continued work on my sis6326 DRI driver. I'm really close (well, closer than before those bugfixes), but triangles still aren't being drawn. It's frustrating, but I've been staring at that code for so long I think a break might be called for.

I'm planning on making the freedesktop.org xlibs the ones used on FreeBSD instead of XFree86 where possible. I've pointed out a couple of problems and fixed a couple of bugs. And committed fixes myself.

Finally successfully installed debian-unstable as my netboot system so I can work on kdrive. Got the r128 server working after swapping out a bad mouse (which FreeBSD also hates), and fixing scissor setup on the r128. Now I'm working on getting libdrm integrated so 2d drivers can be written using the DRM.

More work on the SiS 6326 DRI driver. Hardware clears/swaps appear to be working. Unfortunately, triangles aren't being drawn, and I can't find any major differences in the triangle code compared to utah-glx. Maybe I'm doing some setup wrong somewhere.
I think we've got the linux radeonfb+radeon basic issue almost fixed (there's a breakage on 2.6, which I hope another committer will commit his fix for this weekend). There are still other issues before the DRM can be a proper linux driver, many of which are actually similar to the issues for the DRM to be a proper FreeBSD driver. I'm pretty excited to hear this, as I had previously assumed it was just something about how linux does things. I think a lot of things have been changed between 2.4-2.6 to make drivers much more similar in some ways to FreeBSD drivers.

Merged the DRM to FreeBSD CVS, which revealed one bug (fixed now), but also apparently fixed at least one bug that's been around a while. Now there's just one last bug with KDE, but that one's going to take some doing to squash.

I haven't been this excited about a project in a long time. From his descriptsions, Keith Packard's experimental X Server project is doing a lot of things right. It won't have anywhere near the hardware compatibility that XFree86 does, but I'm willing to accept that if we can make a maintainable X Server which implements features that have been demanded for ages, in a clean manner. My main interest is getting it running on FreeBSD (this is going to require packaging up a lot of the fd.o xlibs packages, which I want to do anyway, and at least vm86 support for bios calls), getting glx in it, and maybe DRI if I can squeeze the time in between working and doing the minimal amount of studying.

A few days of wild DRI hacking. Implemented a DRM interface version ioctl and a change that required a version bump of the DRM interface. It's a small part of my evil plans to make this kernel device driver actually (gasp!) attach to a specific device.

It required as its basis a diff from another committer to have the linux DRM probe based on PCI IDs. That one ran into troubles because pci_driver type attachment is exclusive. So, if radeonfb had attached to your radeon, the DRM didn't get a chance to. Using old-style attachment it shouldn't be an issue, though. Given that I just changed the DRM over to old-style attachment on linux, I sure hope so.

DRI/DRM plans for the next week or so include vblank syncing support for 3dfx and/or sis, 64-bit cleanliness in the sis interfaces, lobotomizing some of the ioctls that are related to the DRM not being attached to a specific device, and merging the DRM to FreeBSD-current.

Committed my SMPng locking code for FreeBSD. It's taken a while, and I'm still not 100% sure of it, but it will have time to get a shakedown before Giant is actually removed. However, it should deal with missed IRQ issues on -current, which were my fault for not understanding locking issues before. I also expect that it may have slightly less overhead than before.
The joy of unreproducible bugs. I've had a few problem reports about hangs with the DRI, particularly with Radeons, on FreeBSD-stable. I thought I had a patch to fix it, but when I put a radeon in my testbox I couldn't reproduce the problem on -stable. A user on IRC just asked me about the same problem, and when I gave him the patch it fixed it. Now it's off to the release engineers so it can make it in for 4.9-RELEASE, but I'm frustrated I didn't get this fixed a month or so ago when I first got that patch and had these problem reports.
Apparently my Mesa diff got committed while I was away on fall break, which was nice. Did a lot of DRM work the last couple of days. Committed my variation of the patch to make the DRM for Linux probe based on PCI IDs, and reorganized the IRQ handler code into a new file so it can be used for SiS and 3dfx vblank syncing. Updated my SMPng locking diff for the latest DRM code and submitted it for review to FreeBSD-current. Now I need to add vblank syncing for SiS and 3dfx, both of which I think I have sufficient specs for.
Neat. What I thought might be a hardware limitation (~1.5 bit error with 32-bit depth buffer in glean's readPixSanity test) has its root in Mesa casting the depthbuffer clear value, a double, to a float then back to a double. Submitted a patch for it. Cleaned up the fog code greatly by removing choosing the CHEAP fog mode which wasn't cheaper and was actually uglier. Nearly fixed the glean maskedClear test, but for the doublebuffered context case the back buffer clearing sometimes doesn't work right, and the bug seems to rely on the state of the hardware before the running of glean. Fun.
Got a SMPng-locked DRM for FreeBSD working (SMPng being the project to replace the big giant kernel lock with smaller-scale locks, allowing better scalability). I haven't pushed Giant out of the driver, yet, because that would require dropping Giant in the device's entry points and relocking/unlocking Giant again around certain calls that haven't been locked down in the kernel. Still, it's a big thing nearly marked off my TODO list. Now I need someone with more clue than me to review it -- I've learned not to trust myself on things like this.
Got some practice administering apache and twiki today. Some wanker decided to register his protest of wikis by making freedesktop.org things point to goatse.cx. Had to figure out how to block ips, remove twiki accounts, revert twiki pages, etc. Totally wasted an hour of good coding time.

Committed various cleanups to the FreeBSD DRM in DRI CVS. Part of work on doing SMPNG locking of the DRM. Also committed Keith Whitwell's patches for allowing attaching of DRM to i8xx devices to the DRM and AGP devices.

14 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!