4 ms·
Could be personal preference. I worked with OP at Intel during the early days of Vulkan and he was the go-to person for anything Vulkan related, so he's certain
by skocznymroczny 5y ago
Could be personal preference. I worked with OP at Intel during the early days of Vulkan and he was the go-to person for anything Vulkan related, so he's certainly familiar with the API.
- Shadonototra 5y agoWell, that is not a pragmatic approach to make games, specially for indies, to just target one graphics API, that limits the audience you can reach We solved this issue already with WebGPU, it uses what ever is native to the platform you target.. https://devlog.hexops.com/2021/mach-engine-the-future-of-graphics-with-zig https://devlog.hexops.com/2021/mach-engine-the-future-of-gra... Everyone wins
- slimsag 5y ago(I'm the author of that post) Michal is a seasoned AAA dev who has worked at AMD, Frostbite, EA DICE, Intel - I'm sure he knows exactly what tradeoffs he's making. Different folks have different goals, and that's OK. My goal with WebGPU is to aim for a future where we have truly cross-platform graphics. I suspect your goal is similar. But I don't think it's wrong to aim for the present, to use an API you're familiar with, or to want to get as low-level as you can get. That's pretty admirable, honestly, and I'm happy people are doing that in the Zig ecosystem. Heck, maybe one day Michal's work with DirectX here leads to a DirectX backend for a Zig WebGPU implementation. :) Experimentation is good.
- Shadonototra 5y agoWell said!
- michal-z 5y agoNote, that it is easier to ship a game for one platform. I don't have resources to test several platforms. WebGPU is just 3D rendering. I will also need vector graphics, machine learning stuff, video playback, etc. Windows gives me that for "free" (DirectML, Direct3D 12 Video, Direct2D, DirectWrite). My main goal is to ship a game and build interesting demos/mini-games as part of zig-gamedev project. I don't want to spend my time supporting and maintaining code for several platforms. Also, using wrappers like WebGPU adds another layer of abstractions. I want to write my shaders in HLSL using dxc.exe, I want to directly see messages from DX debug layer and have full control over my code. WebGPU would just slow me down. My game will run only on Windows 10+ and I'm fine with that.
- skocznymroczny 5y agoI am using WebGPU from D, it's an interesting solution and works well, but it has some drawbacks. First of all, because you have to match so many APIs, it only offers a common subset of functionality. Secondly, because it's primarily a Web API, it has a lot of validation, which wouldn't be needed for a desktop application. Thirdly, while it's still a low-level API, it doesn't offer the kind of control that AAA engine devs would like. It takes care of synchronization , memory management, transition barriers. AAA devs would prefer manual control over that.