September 9, 2005
hacking
Comments Off
I finally got my first engine update in a long while into the cvs server. Hardware occlusion queries are now implemented for Direct3D and for OpenGL. I’ll get a nice looking test program into cvs soon as well.
Right now I’m hacking on support for Xinerama multiscreen displays in Linux so that the device enumeration will be more sensible. Right now it’s detecting my system as a single 3200×1200 display rather than two 1600×1200 displays. One thing that’s really impressive is that I don’t notice much of a performance loss when it’s rendering across two monitors like that. I haven’t tried it in Windows yet, but I know that using Direct3D you’ll instantly get forced into software rendering mode if you use the second monitor (whether you’re spanned across the two monitors or not).
July 4, 2005
hacking
Comments Off
I’ve been fooling around with C# some more. Microsoft sent me a copy of Visual Studio 2005 beta 2 on DVD recently, and I’ve been using Mono on Linux. I’m really interested in getting back to work on some music notation goodness, but this time using a better language. There’s no way I’m going to try to use C. That’s just stupid.
I’m totally cool with using C++, but everyone else I talk to thinks that’s completely insane. I have no interest at all in using Java, and I am wanting to avoid using something like Python as well. I don’t really know why that is. In every other language binding, GTK has really felt like just a “language binding” between C and whatever language it is. For some reason, Gtk# feels more integrated.
February 4, 2005
hacking
Comments Off
I always feel really cold at my office. Even now during the winter while it’s snowing outside, our air conditioners come on. I guess the office would get sort of warm with all the computers here or something, but when air conditioning comes on during the winter, I get cold. Especially my fingers and my hands. What do I do to warm them up?
Another thing we have at my company is a plugin for Visual Studio called IncrediBuild. It distributes builds across the network so that all the computers in the office will compile your code. It’s like distcc, but for Visual C++.
This really comes in handy to help my cold fingers. Whenever I get too cold, I do an often extremely unnecessary clean and rebuild of the entire project. This kicks the laptop on the left side of my desk into action, and with the extra workload its fans come on and start pumping out lots of heat through the vent on its right side. I just put my fingers up next to the vent. It’s wonderful.
August 5, 2004
hacking
Comments Off
Support for OpenGL Shading Language went into cvs several days ago, and it’s working perfectly. I’m happy that’s done. I started working on a command-line utility for working with chunk files and needed a nice way of doing argument parsing, so I started working on a template-based method of handling them yesterday. There are still a couple things in the design that need to be worked out, but it’s mostly very good now I think. It fits very well with the existing application framework too.
July 1, 2004
hacking
Comments Off
First off, I wrote a couple days ago about the new NVIDIA SLI technology that was revealed but I questioned whether it would improve more than just fillrate, like Alienware’s Video Array technology. Well, I got a response to this question from someone at NVIDIA and he said it definitely will.
Next, I wrote about the new NVIDIA drivers for Linux yesterday. They installed easily, of course, and I’ve got GLSL codee almost ready for NeoEngine2 now. As soon as that’s working, I’ll post some results.
June 27, 2004
hacking
Comments Off
I finally decided that SuSE is not for me. So I downloaded and installed Fedora Core 2. Since I used Red Hat Linux starting back around 5.0 or 5.1 all the way through Red Hat 9, Fedora seems very familiar to me. And I used Fedora Core 1 for awhile, and mostly liked it.
The most obvious problem is that it seems that Fedora and NVIDIA don’t get along very well so far. Fedora Core 1 decided to ship Linux kernel 2.6.0, and NVIDIA’s binary drivers hadn’t been updated for kernel 2.6 yet. That was not too hard to work around using the minion.de patches. Now with Fedora Core 2 they have enabled the new 4k stack size in the kernel, and apparently the current NVIDIA driver release only supports 8k stacks. This time the solution is to recompile the kernel with 8k stacks, which is more involved than the last solution, or to use the “nv” driver, which sucks and is not useful for what I do, or to wait for the next release from NVIDIA, which isn’t really an option either. So I built a new kernel with 8k stacks. So far I have still not been able to get the NVIDIA driver to work on this install though.
The next problem is beginning to worry me, because it happened in both SuSE 9.1 and in Fedora Core 2. The system seems really slow and laggy. Typing text results in a laggy cursor, the mouse pointer is moving very choppily, things like that. It happens when I’m doing anything in another window, like compiling my software or making some Oggs or even just downloading some files. Things that shouldn’t be slowing my system down at all. This is an issue that did not happen on my Gentoo installation. The major things that have changed are the fact that I’m now using a 32-bit install instead of a 64-bit install, the fact that I’ve added a second SATA hard drive (the exact same model), and the fact that SuSE and Fedora have their own kernel configs. I’m going to copy my kernel config from Gentoo and try it out later in Fedora and see if that helps any. I already added the low-latency “preempt” option during the 8k stack build, but I see no difference yet.
June 24, 2004
hacking
Comments Off
I’m in the middle of switching over to SuSE 9.1 now; installed 32-bit and 64-bit partitions, but so far haven’t finished setting up the 64-bit one. In some ways I like it a lot, and in some ways I don’t like it. I don’t like YaST that much, and I definitely don’t like their online update program. I hope they switch to Red Carpet in the future, because it’s much easier to use, much nicer looking, and it just works. I had a lot of trouble getting my NVIDIA hardware setup under SuSE also. In the 32-bit partition, they installed or updated to the i586 version of glibc, which doesn’t have TLS and thus screws up the NVIDIA driver. So I had to manually install the i686 glibc with rpm. Furthermore, their RPM names are a little messed up. In the ftp server, the i686 glibc rpms had a different revision for the devel package vs the main binary package.
I’m definitely enjoying playing with Mono, though. That was really the big motivator behind installing a 32-bit partition. I had zero interest in adding a 32-bit Gentoo partition, so it was either Fedora or SuSE and I decided to try something new. So I’ve been playing with MonoDevelop, and made a few test programs just learning how everything works. Very nice.
June 23, 2004
hacking
Comments Off
I have a bad habit of doing this in the projects I’m working on. I have too many sub-projects that are open at a time. I have finished about 75% of the support for the OpenGL Shading Language now, but I’m beginning to think that I won’t finish it before I release NeoEngine 0.8.2. I added image writing to the codec interface, and finally finished implementing it in the PNG codec yesterday. I was going to do a couple other codecs as well, like JPG and BMP, but I no longer really have any interest in wasting my time on that. The main application for this is at the moment is to take screenshots or to dump images of the stencil buffer for testing. PNG works well enough for that.
I also came up with another idea the other day for doing texture blending in terrains. What we want to do is to have four RGB input textures and one RGBA input blendmap, then interpolate the RGB output by interpolating the value of each of the input textures according to the color value of a single channel in the blendmap. Since the blendmap has four channels (R,G,B,A) each channel describes how much one of the four input textures is blended at any given pixel. Okay, so this is all very normal stuff. The problem is that GeForce FX hardware only has four texture management units, and to do the above algorithm using ARB_fragment_shader as I’m doing I would need a grand total of five TMUs (one for the blendmap, and one for each of the textures). This is where my cool idea comes in. I counted up the total number of color channels we have (RGB * 4 + RGBA == 16). The total number of color channels a GeForce FX can deal with is 16 (4 TMUs * RGBA). So I took the four RGB input textures, decomposed them in GIMP, then recomposed them as three RGBA images. 4 * RGB == 3 * RGBA. Now I can pass everything to ARB_fragment_program in four TMUs. Now I need to make a program to automate this image channel compression.
June 21, 2004
hacking
Comments Off
Last night I had a long conversation with Daphne and she said she didn’t
like my Advogato blog because she didn’t understand everything I said.
So, I said the new site will be organized into categories. I told her
I’ll make a Stuff That Daff Understands category, and a Stuff
That Daff Doesn’t Understand category. She thought this sounded
like great solution, so here it is.This is the hacking category, so I
guess this is the doesn’t understand one.
On the sidebar to the right you can
select a category and it will filter out all other categories and only
display entries from the category you care about.
December 2, 2000
hacking
Comments Off
No new hacking today yet. Tonight I plan to go absolutely bugfuck on that Bonobo UI XML editor though.
I’m also interested in working on miguel‘s idea for a Bonobo control and replaceable backend digital audio player. It would be cool. A single Bonobo control could deal with all kinds of audio backends: CD audio, MP3, Vorbis, from a drive or streamed through a network. Sounds very cool, to me.
« Previous Entries Next Entries »