still can’t believe how optimized doom eternal is. been playing cybergonk which barely scrapes 60-64 fps at medium-ish settings + FSR without framegen on my laptop and is hitting the power cap in dogtown especially with mods, and then i load up doom eternal and it defaults to ultra settings and runs three times the enemy count with better AI at constant 120 fps like it’s no big deal
@snacks not quite. what you’re thinking of is really tiled forward rendering, which uses compute shaders to process light sources using a tile-based approach. compute shaders didn’t exist during the s.t.a.l.k.e.r. era when deferred shading techniques became more popular. this was even before unified shader models!
@snacks idtech 7 has custom rasterizers implemented in async compute shaders to process light lists and visibility boxes. you could never do something like that on old hardware
@icedquinn @snacks needs bandwidth especially, which is always scarce
speaking of bandwidth, idtech 7 went vulkan-only for good reasons. bindless resources are an obvious one, but vulkan also has sparse resources, which allow things like only keeping specific regions or mip levels of images in device-local memory. vulkan’s memory model is aware of device vs. host (and host cache) locality, RDMA capabilities, etc. so it can run really well on UMA systems.
@icedquinn @snacks funny side effect of that is that games see my laptop’s GTT allocation as 26 GB of VRAM. cyberpunk uses that to determine its default settings and goes “OH NICE GPU THERE LET’S PICK THE RAYTRACING ULTRA PRESET”
@icedquinn @snacks framegen especially is such a cope even if you get artifacts under control. cool you get 3x the framerate but now you have insufferable input lag. to which the response was to add even more copium (nvidia reflex, amd anti-lag 2, intel’s thing…) just to get frame timing closer to presentation
upscaling is always kind of a shitty tradeoff. the newer ML-based approaches like FSR 4 are really quite good and have very little ghosting but they’re also heavy enough on their own that you’re often better off just lowering the graphics settings a bit, unless you prefer the flickering details in ultra performance mode over a lack of raytraced lighting
@icedquinn @snacks i haven’t used vulkan myself but my impression is that it’s a very well-designed API in a similar sense that wayland is. its job is to make things possible, not to provide abstractions to simplify them—which is a good approach because not all abstractions make sense for every use case. i think the existence of dxvk, gxvk and vkd3d proves how true this is.
i don’t think you need a rendering team any more than you would with other APIs. more like, you need the patience to deal with low-level boilerplate and the experience to come up with a good renderer architecture.