S24 DirectX update

 


A Big Milestone: Second Life is Rendering on Native DirectX 11

If you've been following along, you'll know I've been buried in a pretty enormous project: converting Second Life's viewer from OpenGL over to DirectX 11. And honestly? It has been painful. Horrendously complex, at times. But today I get to share something that makes all those late nights feel worth it.

The image above is not OpenGL. If you look closely at the viewport, you can spot some of the early test items sitting there. That's because this is S24 running on native DirectX 11, using HLSL shaders, for the first time.

So what does this actually mean?

In plain terms: a huge chunk of the engine has now been rebuilt to speak DirectX instead of OpenGL. Specifically:

  • Most of the HLSL shaders now compile cleanly
  • The rendering pipeline has a full DirectX equivalent
  • All the drawpools now have DirectX counterparts
  • Core systems like llwindow, the vertex buffer, llimage, viewertexture, and viewerdisplay have all been ported across
  • Plus a bunch of smaller but essential pieces, like llmenuGL

Yes — it crashes instantly on login right now, and honestly, that's exactly what I expected at this stage. I haven't touched settings or any of the remaining GL-specific quirks yet, and that's fine, because that's not the point right now.

The point is this: I have a window. It renders. Fonts are readable. Textures show up. Menus work.

Five to six weeks of pure grind

This milestone represents five to six solid weeks of hardcore problem-solving — constant rebuilds, endless debugging, and a lot of time squinting at RenderDoc output trying to figure out why something wasn't behaving.

But here's the detail that's got me genuinely excited: the About floater now shows zero OpenGL info. None. That's the tell-tale sign that this is real, native DirectX rendering — not some clever OpenGL wrapper pretending to be something else.

Why it matters

For a long time, the viewer's been tied to an API that's essentially set in stone. Getting this far means I can finally start to break that dependency for real, and open the door to a future where the client isn't locked into OpenGL forever.

There's still a long road ahead, but for the first time in a while, I feel genuinely confident this is going to work.

I'll keep you posted as things progress — but for now, things are definitely looking up.

Much love,

KL

Comments

Popular Posts