S24 - DirectX status / update
Kirsten's Quest for DirectX: Welcome to Second Life, Circa 1999
Ok — welcome to Second Life, circa LOL%^&%XYZblarhg!
Now, before you panic at that screenshot: it looks like a catastrophe, but I promise you it isn't. In fact, it's exactly what I was expecting to see. That garbled, wrong-way-up, "did-a-cat-walk-across-the-GPU" mess is a milestone, not a disaster. Let me explain why.
Here's the short version: DirectX and OpenGL think about the screen in completely different ways. They disagree about something as fundamental as where the corner of the screen even is. So when you take a renderer that's spent its whole life speaking OpenGL and start whispering DirectX to it instead, the very first thing it does is hand you back a beautiful, expected kind of wrong. Seeing this specific flavour of wrong means the pipeline is alive — it's just holding the map upside down :)
How We Got Here: The Roadmap So Far
For anyone just tuning in, this hasn't been a single heroic idle tuesday of coding — it's been a staged campaign, and each stage earns the next one:
- Stages 1–2 — The Rosetta Stone. First came the shaders: translating GLSL into HLSL, teaching the two languages to say the same thing. Then the most basic scaffolding imaginable — just enough to get a startup and spawn a window. Four walls and a door.
- Stage 3–4 — First Life. In my last post, this scaffolding paid off with a successful startup all the way to the login screen. The engine woke up and knew its own name.
- Stage 5 — Building the Engine. Widening the scope, giving the thing more of itself to work with.
- Stage 6 — The Discovery Phase. Real boring. Hunting down errors, cornering bugs, and generally clearing the runway to prepare for a real first login.
- Stage 7 — Final Prep. Tightening every angle to prevent a massive crash.
- Stage 8 — Switch On! And that's where we are right now.
Materials and the first simple sky are in. Water is still black — its components aren't fully active yet, and alpha has two separate paths to sort out (go figure). Also note my primitar boots: the rigged mesh is wired up but not switched on at this point.
The World Builder Feeling
This whole experience keeps reminding me of a short film from a few years back called World Builder. If you've never seen it, watch it — it's worth three minutes of your life:
https://youtu.be/OX1hSQwnngo?si=HtdM1XKBD79CAhQ3
In it, a man stands in an empty space and conjures a world into being one piece at a time — placing a lamppost, adjusting a tree, coaxing light into existence with his hands.
That's precisely what this feels like. I'm currently walking around a Second Life where each component of the render is being switched on, manipulated, and fired up for the very first time in a brand-new API. Quite literally turning on the lights, one by one — and watching a familiar world flicker back to life through completely new eyes.
It's a strange and wonderful thing to witness. More soon — the lights are still coming up.





Great! Can't wait to demo this on my increasingly ancient 1050 based rig. Anyway, chose to downgrade my Windows install on that one from 11 to 10. I had more than enough points on my MS account, so I got the ESU for $0. That's good until October, 2027. Hopefully I can still test your upcoming DirectX viewer on it. IIRC I think the highest DirectX version 10 supports is 11.
ReplyDeleteWill you maintain OpenGL builds for Kristens, or are you looking to focus entirely on DirectX? That short movie you linked to is great BTW, well worth the time to watch.
If its functionally complete, then it opens the floodgates for some serious nice to haves, think tessalation , or multi contexts, more horsepower out of the CPU and GPU, not to mention a path to FSR or DLSS / vulcan via DXVK or any combination there, but breaking the grip of GL will be goal no'1 :)
Delete