I had a go at Blender again tonight, since I’m taking the laptop away and would like a modelling tool to play with on it. XSI would normally be my first choice, but it requires carrying around a dongle that I’d prefer not to lose whilst on my travels. Plus, Blender is a little easier on the system requirements, and I keep meaning to learn it anyway. The user interface wasn’t quite as daunting as I remember, still a little bonkers but workable if you twist your brain into its shape.
I’ve been doing some profiling on critical sections, to see just how much time they do take to acquire and release when there is no contention. On my 3GHz P4, over 200 million successful locks, the average time was 0.000073055 milliseconds, or about 73 nanoseconds. That sounds pretty quick, but in fact it’s a fair amount of time given that a single CPU cycle lasts about a third of a nanosecond - a little over 200 cycles then.
I thought before I got any deeper into the background loading code, I thought I’d do a bit more digging on the performance of the approach I was planning to use to make sure I wasn’t barking up the wrong tree. I was particularly concerned that the major synchronisation primitive in Boost.Thread uses is called a mutex, and many of you will know that mutexes are expensive (in Windows anyway) since they involve a transition from user to kernel mode in all cases.
Well, as I’d hoped I got New Super Mario Bros today from my wife, and a bit of a cracker it is too. It really does capture the core essence of the enduring all-time classic 2D platformer (in my opinion) Super Mario World, but brings it up to date technically and adds a whole bunch of twists that have been introduced in more recent 3D Mario incarnations, like wall-jumping and butt-stomping.
There’s unlikely to be much coding done this weekend since both my wife and I have birthdays 😀I fixed a couple more bugs and did a Dagon -> Eihort merge last night but that’s probably all I’ll have time for until next week now. I’m part way through some threaded loading enhancements but that’s going to need some more time to mature before it’s totally ready, and I also have to brush up a little more on Collada, since I’ll be demoing Ogre at the Sony/Collada Birds of a Feather at Siggraph in just over a couple of weeks.
Well, yesterday I had an utterly unsporting stomach bug of some sort that took me out for 12 hours. I basically stayed at home all day and didn’t feel up to anything (no, not even my new glossy DS Lite) except a little reading and TV. I even found myself watching the Bloomberg channel at one point without realising, my eyes glazed over, absorbing financial information at some subconscious level in my sickly stupor.
Ok, so I caved. Just over 2 weeks since I bought my wife a white DS Lite, I couldn’t stand it anymore - I bought myself a black one. Going back to the original DS, most noticeably of all the old screen brightness, was painful after having another one in the house chucking photons about with wild abandon. Ok, so I don’t have that much time to play on the DS, but the time I do spend will now be even better 😀Hell, the way I see it is that it’s my birthday at the weekend so this is a present to myself.
The Radeon X1x00 range supposedly supports Shader Model 3. Except of course, that it doesn’t. 😉 ATI have exploited a loophole in the DirectX9 SM3 definition that says to be SM3 compliant, you have to implement vertex texture fetch. However, it gives manufacturers flexibility over which texture formats it can support in the vertex pipeline (nVidia support PF_FLOAT32_R and PF_FLOAT32_RGBA in Ogre pixelformat conventions), and what it doesn’t say is that you have to support at least one texture format as a vertex texturing source.
I don’t claim to be an expert in software design, but I think I’ve learned a few things over the years. As I’ve wrestled with a few problems recently, I began to think about the approach that I generally take to the process of design. It’s influenced by books I’ve read, multiple projects that I’ve been involved in, and some of my gut feelings. You may agree or disagree, but I felt it would be good, even just for myself, to write down the tenets that I’ve come to regard as core to my design approach.
… in a roundabout way 😀 I always expected the outcome of the OpenDocument vs Office ‘Open’ XML (the quotes are mine ;)) to be that Microsoft would add limited OpenDocument support to Office 2007 - enough to claim the bullet point, but basically the minimum possible interoperability to claim that feature. But, they’ve pleasantly surprised me. Instead they’ve given the project to 3rd parties (allowing them, I note, to stick to their original pledge of not supporting OpenDocument in Office itself whilst still making sure it gets done), but most interestingly the project will be open source, under a BSD license, and will get some level of resourcing from Microsoft, presumably in the form of both some cash and advice.