I'm still mildly suspicious that some of my perf problems (esp.
-
@lisyarus What platforms do you need to support? Vulkan is a lot of typing, but e.g. if you need to also support DX12 and Metal it's pretty much the same "a lot of typing". Or yeah use a thin engine like BGFX or something.
@TomF Linux and Windows, Mac would be a nice bonus. A lot of typing is not as much a concern as a lot of debugging that follows >_>
Bgfx is just, idk, not my type, I don't like how it's structured
-
undefined oblomov@sociale.network shared this topic
-
@TomF Linux and Windows, Mac would be a nice bonus. A lot of typing is not as much a concern as a lot of debugging that follows >_>
Bgfx is just, idk, not my type, I don't like how it's structured
@lisyarus If it's just Linux and Windows then DX11 and a matching modern flavour of OGL still work perfectly well, and I prefer the balance of how much work I have to do versus what the driver does for me.
-
@lisyarus If it's just Linux and Windows then DX11 and a matching modern flavour of OGL still work perfectly well, and I prefer the balance of how much work I have to do versus what the driver does for me.
-
-
-
I'm still mildly suspicious that some of my perf problems (esp. wrt multi draw indirect) are due to some mandatory wgpu validation and honestly I'm lowkey starting to think about rewriting the rendering in Vulkan :/
(and even disabling non-mandatory validation is kinda broken in wgpu-native, and my 3-months-old issue about it is still ignored 😢)
Or maybe try Dawn instead, that would be a saner option
@lisyarus if you're not targeting old gpus (or old drivers?), vulkan can even end up being a bit more convenient in certain aspects than wgpu
buffer device address, descriptor indexing, and the like
with dynamic rendering, push descriptors, and deciding not to care about image layouts, i feel the only difference really from wgpu is that you have to think a bit more about synchronization and texture uploads
you do have to type some boilerplate, and most importantly you need to figure out which 10% of the api surface you actually need
can recommend reading through https://www.howtovulkan.com
-
-
-
@lisyarus If it's just Linux and Windows then DX11 and a matching modern flavour of OGL still work perfectly well, and I prefer the balance of how much work I have to do versus what the driver does for me.
@TomF Uhh, then I could just use OpenGL and that's it, why write two backends if one works on both platforms?
I'd go this way from the start of OpenGL wasn't this crappy global-state API with seven thousand layers of legacy on top :(
-
-
@lisyarus if you're not targeting old gpus (or old drivers?), vulkan can even end up being a bit more convenient in certain aspects than wgpu
buffer device address, descriptor indexing, and the like
with dynamic rendering, push descriptors, and deciding not to care about image layouts, i feel the only difference really from wgpu is that you have to think a bit more about synchronization and texture uploads
you do have to type some boilerplate, and most importantly you need to figure out which 10% of the api surface you actually need
can recommend reading through https://www.howtovulkan.com
@pierogiburo @lisyarus I second this. Modern vulkan is pleasant. Hard part is actually knowing the "correct" API in vulkan since the working group refuses to actually remove anything for backwards compatibility. Atleast the documentation has startet to label some functions that are considered not the current methord for new code.
-
-
Does Wine have a macOS port? I know mesa does, so this might make it possible to leverage the various dx->vulkan layers for the graphics part.
Oh wait with the new ARM stuff that wouldn't work at all without some kind of lower level emulation. Was this what Valve was working on for their new VR thing?
-
@TomF Uhh, then I could just use OpenGL and that's it, why write two backends if one works on both platforms?
I'd go this way from the start of OpenGL wasn't this crappy global-state API with seven thousand layers of legacy on top :(
@lisyarus This is a fair point. I write DX11 as the "golden path" because that's what I know best, and then translate to the equivalent OpenGL and ignore all the wacky variants/extensions of OGL that don't directly correspond to the DX11 equivalents. But you could just skip writing the DX11 code entirely I guess? I don't have a broad enough experience of OGL to know if that's wise.