ogre
I’ve been having a bit of a crappy week, with a particular project taking way longer than I had expected and causing me to explore the darkest crevices of my mind looking for new and creative ways to swear at it, with only mixed success. Cue long hours, too much coffee and Red Bull, and some seriously knotted shoulder muscles. That’s why it was an especially nice surprise this morning to find a box on my doorstep, containing an unexpected gift from a friend & long-time Ogre user in France (tuan kuranes) - a bottle of Champagne and also a bottle of a local speciality, Chartreuse.
We’ve had ‘custom memory allocators’ on our upcoming features list for a while. Last year a student did some work on this during the Summer of Code, but the system ended up being a little too ambitious with its use of templates and got a bit too costly in terms of the template instantiation requirements. Unfortunately the student never returned, so I picked up the baton recently, and I felt it was worth writing about some of the things I’ve done, since most of the C++ allocator discussions on the net are pretty shallow and only deal with the simple cases. This is quite a big and fairly technical discussion, so I’ve placed the bulk of it after the jump to spare those who don’t care about this sort of thing! 😀
I’ve only been to Siggraph once before, in 2006 when it was held in Boston. It happened to coincide with a trip I wanted to make to see some friends / clients of mine anyway so it dovetailed in quite well - I also held a Birds of a Feather (BOF) meet-up for the OGRE community while I was there, and it was good to meet a few of our users.
Nvidia released their new 175.16 drivers about 10 days ago, and I was glad to see that the stalling issues we’d had on multicore CPUs with OpenGL / XP in the previous 169.21 driver were fixed. However, to my dismay a set of new problems have appeared with mipmapping, again on OpenGL only. I’ve done quite a bit of testing over the past week to try to narrow the issues down, but the bottom line is currently this: