Older blog entries for anholt (starting at number 20)

DRI:
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.

DRI:
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.
FreeBSD:
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.
DRI:
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.
SiS:
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.
DRI:
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.
freedesktop.org:
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.

DRI:
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.

SiS:
Got my sis6326 DRI driver (which will sit alongside the sis driver for the 540/630/730 card) to the point of compiling, including changes to the SiS DDX to load the appropriate driver. Now I need some hardware to start testing parts of it with.

FreeBSD:
Spent some time Monday looking at port fixes. Fixed some build errors on glide3 with new gcc (still need to figure out the automake issues with the new version of glide3). Also need to figure out why glean's texEnv test has decided to start crashing on me after I built it from ports. It's not my patch to the texEnv test causing it, though.

DRI:
Started working on a SiS 6326/530 DRI driver. I think it should be pretty easy, given that the hardware is very similar to, but simpler than the 540/630/730.

FreeBSD:
Ports are unfrozen, which is nice. Fixed a package building error in XFree86-4-Server. Committed various fixes submitted for XFree86-4-Server-snap, and pushed patches upstream. Still to do: the mesa-demos port, my libglut port and mesagl update, and I need to finish the glean port. I tried to update the Glide port after the new glide.sf.net release, but yet again automake is giving me errors that I don't know what to do with.

SiS:
I added the GL_EXT_texture_lod_bias extension to the SiS DRI driver last night. It was fun to be successful in implementing a feature without docs (well, I had two bitmasks to deal with, but not the format of the bits in the important one). Fixed two out of the seven broken texenv modes. Disabled the broken 3d clearing code that could make things faster but so far just makes things not work. The code now passes a couple more glean tests, and would pass several more if glean was just a little bit less strict. I'm thinking about adding a general "allow an additional bit of error" option for glean, but not sure how I would go about implementing it. Started submitting patches to glean, which I hope to continue to do.

11 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!