Dealing with persistent mapping, cross-platform 5

OpenGL’s persistent mapping comes in two flavours: Coherent and Incoherent. Coherent mapping puts more burden on the developer as you have to track whether the region you’ve already written to has already been consumed by the GPU or is still in use. Incoherent mapping takes that burden away from you, and you only have to […]


A glimpse of what’s coming to Ogre 2.0 Final 6

So, the HLMS is not finished, but it will be the main method for using materials in Ogre 2.0 Final; and writing about how it works helps me stay on track, while documenting for others. HLMS stands for “High Level Material System”, because for the user, the HLMS means just define the material and start […]


The Sorted Vector pattern Part I

After talking with a few fellow Ogre team members, other colleagues, and even with community, I’ve realized that many are not familiar with the sorted vector pattern as a replacement for an std::map. Normally, C++’s std map (a Dictionary in Python terms) would be used to store data organized by “keys”; and maps are supposed […]


DX9 may be dropped in Ogre 2.0 Final 4

So, I’ve been working on a fork. There’s also another one. Both will eventually merge The code is far from finished at the time of writing. But the direction where we’re heading to is already quite clear. You can even glimpse a bit of what’s coming: Yeah, we’re going bindless in 2.0. The HLMS is […]


Enhanced “Registers” window in Qt Creator 2

As I said in previous posts, I consider Qt Creator a very good candidate for replacing Visual Studio. I believe it has potential to become the IDE closest to perfection. However, the debugger irritates me. It irritates me the least, but still it needs polishing. But, unlike Visual Studio, I have access to the source […]

PrettyRegs03

Reducing code bloat: Unnecessary overloads example

Understanding how your algorithm works and its use cases is very important. It allows you strip code you will never use (or better yet, never code for it). Or may be this could be seen as a case of overengineering. Such is the example of Ogre’s LodStrategy. There are multiple Lod strategies in Ogre, but […]


Linear depth buffer my ass

It’s often believed that in order to achieve a linear depth buffer, one needs to counter the W division by multiplying the Z component of the position before returning the vertex shader: At least that’s what I thought too for a very long time, ever since I read Robert Dunlop’s article on linearized depth. The […]

screenshot_3

OgreAnimationGraph

Ogre Animation: 2x-3x performance 16

Ogre Animation is finally shaping up. There’s a lot to do, namely: Add TagPoints Add NEON support Document & samples I have to say I’m glad to see that the new animation component is 2x-3x faster and is able to use 60% of the CPU cores (out of a quad core machine), thus running 2500 […]


Visual Studio, unaligned store frustration 2

So, I fired the profiler and SkeletonInstance::resetToPose appeared in the hotspot list. Since it’s not theoretically a performance sensitive function, that felt strange. I looked at the generated code, and to my surprise, it was awful. These pictures summarize it all. It affects Visual Studio 2008, 2012, 2013 (and probably 2010). Basically VS is thinking […]

2013

CompileTimesOgreMain

Microsoft, we need to talk about Visual Studio 29

I really hope Microsoft employees (from the Visual Studio team) or the management read this post. We all are internally talking about it, but don’t say it out loud. I don’t like pretending speaking for everyone else, Here’s a shocker: latest revisions of Visual Studio are failing to satisfy the video game industry. Which, last […]