
step 1: draw a triangle, step 2: vkCmdDrawIndexed the rest of the Bistro
I think I'm having fun. Nothing can describe the feeling of satisfaction after squashing that last bug. Suddenly the entire scene fully renders! (I know it's not yet PBR and ray tracing but those don't feel too far away now)
I'd been stuck for about a week hunting a bug where Bistro would look like a hellscape of windows to nowhere, I had to quadruple-check every single part of the geometry codebase, implement non-ktx2 texture loading so I could test simpler gltf files... only to have Sponza render only half of itself too. I woke up at 5am this morning with the solution fresh in my sleepy head: it turned out to be a faulty ordering or mesh primitives in my custom gltf loader, leading to duplicate vertex and index buffers on the wrong nodes. 5 seconds later I had a full scene.
So today, filled with joy, I optimized stuff left and right, and within a couple hours the framerate on Bistro jumped from 8 to 80, not bad for a first pass, and without culling yet!
If I can give other beginners some fresh advice: keep using the raw vulkan API for as long as possible instead of abstracting it away from the start. It might sound crazy at first, but I truly think it helped me design and architecture my app around the features I actually know and control rather than around an API I still hadn't properly learned and used. And don't forget to sleep!