Hacker News new | ask | show | jobs
by Rhedox 1246 days ago
I really don't like the RenderingDevice abstraction they've ended up with.

It's strongly reminiscent of OpenGL, doesn't expose command buffers or queues (no async compute). Barriers are too coarse. There's also no support for a bindless approach, no GPU driven rendering or even just GPU culling.

2 comments

What's an example of something that does blindless fully GPU driven rendering? Would it mean CPU lag wouldn't slow your game because the camera could be fully controlled by the GPU?
On the contrary, bindless means less work for the CPU. Bindless basically means the GPU is responsible for querying image and buffer resources from a global heap or descriptor table.
I wrote extensively about that as part of my vulkan guide. https://vkguide.dev/docs/gpudriven . The TLDR of it is that you have the cpu upload scene information to the GPU, and then the GPU performs culling and batching by itself in a series of compute shaders. In most games the scene is 99% static, so you can upload the scene at the beggining and never touch it again. this decreases CPU-GPU traffic by orders of magnitude, and if used right, gives you 10x or more performance improvements. Unreal 5 Nanite tech is based on this concept.
Love your site btw!