6

I've decided to switch my engine from OpenGL to Vulkan and my god damn brain hurts

Loader -> Instance -> Physical Devices -> Logical Device (Layers | Features | Extensions) | Queue Family (Count | Flags) -> Queues | Command Pools -> Command Buffers

Of course each queue family only supports some commands (graphics, compute, transfer, etc.) and everything is asynchronous so it needs explicit synchronization (both on the cpu and with gpu semaphores) too

Comments
  • 2
    They do mention that vulkan is not for the faint of heart.
    GPUs are complex devices, now you get to see that complexity in its full glory (eh not actually because the drivers still hide a lot but anyway)

    You might want to try OpenCL first to get used to this kind of programming, it's very very similar.
  • 0
    @RememberMe I'm actually very well versed on OpenGL (not OpenCL, that's for compute), to the point where you could classify me as somewhat of an expert

    Vulkan is definitely a step above that though. Atleast it will make my life as an engine developer easier because I don't have to pull all these abstractions out of thin air to get some resemblance of a good architecture.

    Trying to design an architecture where render context and window creation has a clear seperation is not a lot of fun with OpenGL
  • 1
    @12bitfloat I found my OpenCL experience come in handy when doing Vulkan (after all graphics is a kind of compute). A lot of the concepts were the same, just with extra headaches because of Vulkan's lower level nature.

    But hey, sounds like you know your thing. Protip: use. Validation. Layers. As. Much. As. Possible.

    Layers are awesome. Best thing about Vulkan's design, I swear.
  • 2
    @RememberMe Oh that's what you mean. Yeah I guess OpenCL experience would help since it's also more low level. I just never really got into it since I'm just doing games so compute shaders were fine

    I have the LunarG sdk for all that validation goodness :D
    Also Nsight Graphics which I never knew was a standalone application. That will surely come in handy for profiling and debugging frames

    Hopefully also with the ubiquitous "why the absolute f*** is the screen still black, everything should be working" before realizing that the default texture parameters on nvidia drivers lead to incomplete framebuffer attachments

    You don't want to know how many hours I've wasted on this on multiple projects
Add Comment