4 ms·
This isn't hard: DirectX 12 and C++ and Visual Studio (not VSCode) and Windows on an NVIDIA card. Vulkan basically isn't relevant anymore unless you are doing
by bsder 3y ago
This isn't hard: DirectX 12 and C++ and Visual Studio (not VSCode) and Windows on an NVIDIA card.
Vulkan basically isn't relevant anymore unless you are doing Android. Metal similarly unless you are doing iOS.
As a Linux user, this pains me. But it's just life. Windows-land is soooo much better for graphics programming that it's absurd.
- SeanAnderson 3y agoHow does this sentiment align with the advent of WebGPU?
- delta_p_delta_x 3y agoWebGPU is little more than a laboratory experiment right now. There are probably no industry implementations (game/graphics engine, visualisers, etc). Computer graphics is particularly industry-driven—consider the proportion of game devs who present at SIGGRAPH versus academics. I give it at least a decade before WebGPU sees any meaningful market share.
- SeanAnderson 3y agoBevy Engine (https://bevyengine.org/ https://bevyengine.org/) is built ontop of wgpu (https://wgpu.rs/ https://wgpu.rs/) and runs in-browser today (https://bevyengine.org/news/bevy-webgpu/ https://bevyengine.org/news/bevy-webgpu/) Bevy is the second highest starred game engine on GitHub's Game Engine topic: https://github.com/topics/game-engine https://github.com/topics/game-engine I definitely agree that it's still new, but I don't feel like it's quite as far out as you're implying. A year or two at best IMO?
- delta_p_delta_x 3y agoGitHub stars aren't really an accurate indicator of market share. I've previously starred it, too, but I've never used it. I'd like to draw attention to the last phrase in my comment: > WebGPU sees any meaningful market share I am comparing anything implemented in WebGPU to existing games that are played today by gamers. Finally, it's using Rust, and the majority of graphics + game engines are written in C++ (with a minority in Java and C#). Despite the safety and tooling benefits, moving to Rust is still a change that companies have to implement and educate their developers on, which is going to take a lot of time. And game dev companies are fairly slow at adopting new language standards (even if they adopt new graphics APIs and hardware fairly quickly, e.g. ray-tracing). I don't quite share your optimism; sorry.
- SeanAnderson 3y agoWell, I'm writing a game intended for the web using Bevy right now, so I'm clearly biased :) There are also some industry veterans building games using it. https://www.mobygames.com/person/6108/brandon-reinhart/ https://www.mobygames.com/person/6108/brandon-reinhart/ to name one specifically. You can just use FFI if you want to integrate C crates with Rust, it's not that bad. Figma uses a mixture of Rust and C++ in the WASM that they ship. Guess we'll see what the future holds.
- delta_p_delta_x 3y agoAll the best. I'll be happy to eat my words. Rust is a great language (although I don't use it myself), and WebGPU is pretty interesting as well.
- Jasper_ 3y agoChrome is switching to using Dawn (Google's WebGPU implementation) for its Skia backend. This would render all UI elements across Chrome using WebGPU. You can find plenty of projects that are using WebGPU today. In the web space, BabylonJS has had plenty of experience using it already, and you can run several demos [0]. Offline, there are games like Veloren [1] that use it exclusively as a graphics backend. Plus a number of other projects I can't talk about yet. It's pretty obvious WebGPU is not going to replace any big engine's custom-built graphics backend, but it's already pretty capable, and I think it's going to be a good place to start for beginners for a long time. [0] https://github.com/Popov72/OceanDemo https://github.com/Popov72/OceanDemo [1] https://veloren.net/ https://veloren.net/
- johnnyanmac 3y ago>I give it at least a decade before WebGPU sees any meaningful market share. sounds like a great time to break in if I was still a student :). Real shame, I was around that time for Vulkan back in college, but never truly followed through.
- kllrnohj 3y agoWebGPU needs to cater to the lowest common denominator so it's unlikely to replace DX12/Vulkan/Metal in the demanding usages. It's always going to lag behind on features, capabilities, and performance. But for the long tail of image filters, video effects, more graphically basic games - yeah, it's a great fit there. Probably.
- pjmlp 3y agoTo put it in perspective, WebGPU 1.0, that 6 years later is still only available on Chrome, is the lowest common denominator from 2015 GPU hardware.
- pjmlp 3y agoWebGPU is a browser API. Anyone making use of it outside the browser is making themselves a disservice by not using a middleware engine instead. WebGPU as specified cannot do many modern features, and naturally making use of extensions in wgpu or Dawn, makes the code non portable.
- all2 3y agoWhy is this the case?
- bsder 3y agoBecause the amount of resources that Microsoft and NVIDIA pour at graphics programming dwarfs the amount of resources that everybody else combined seems willing to put into it. The implementations are better. The support is better. The ecosystem is better. The debugging tools are better.
- johnnyanmac 3y agobetter if you never plan to ship on Linux, mobile, or any other console outside of Xbox I suppose. At least Nintendo pretends it has Vulkan support. Also a shame they pour so many resources but the best tutorial for modern graphics APIs is from Vulkan.
- 0xDEF 3y agoAcademic computer graphics research is in many places still using OpenGL 4.1.
- slabity 3y ago> Vulkan basically isn't relevant anymore unless you are doing Android. Why do you say this?
- delta_p_delta_x 3y agoI'm not the parent commenter, but I'd like to explain their logic, which has at least a modicum of reason to it. About 99% of desktop video games (by far the largest clients of graphics APIs) target Windows, and therefore target either Direct3D 11 or Direct3D 12. This includes free-to-use game engines including CryEngine, Unity, Unreal, and Ren'Py. Almost all the famous, proprietary, high-performance game engines (id Tech, Frostbite, Slipspace, REDEngine, Source) target D3D exclusively. Vulkan is clearly a second-class citizen on Windows. Some engines target OpenGL, and they tend to be used in (hurriedly dashed-out) console ports, but in almost all cases they exhibit worse performance than their D3D competitors. Vulkan is completely absent from MacOS and iOS, where Apple has pushed its own API, Metal. OpenGL on MacOS is deprecated and is stuck on 4.1, missing all the advancements in 4.6, which include mesh shader support. Many Android games are likely still running GLES. Vulkan is pretty hard to get started with, because things that are implicitly handled by the OpenGL global state machine now have to be explicitly handled by the developer, and chances are the developers of the millions of throw-away microtransaction-laden game apps on Android aren't writing their own rendering engines in Vulkan. Therefore, despite all the positives of Vulkan—open-source specification, cross-platform support, SPIR-V shader target allowing shaders to be written in any language (HLSL, GLSL, other esoteric languages that compile to SPIR-V), an extension mechanism allowing fast iteration and updates—it has a fairly uphill battle. EDIT: I was incorrect, id Tech supports Vulkan exclusively. But it is a minority in a sea of D3D-first engines.
- vivty 3y agoMaybe i am wrong, but this tweet and wikipedia directly contradicts what you say (id tech does indeed use vulkan on windows): https://twitter.com/billykhan/status/1028133659168186368 https://twitter.com/billykhan/status/1028133659168186368 I am just doing game dev on the side but i think nowadays the graphics abstractions are fairly similar in how they work (the modern abstractions, i.e. Metal, D3D12, Vulkan). Of course ideally you choose the graphics abstraction that is "native" to the platform, but vulkan seems to be supported very well on windows (many AAA game use it and it works great, many games run even better with vulkan abstraction than with their d3d12 counterpart). I use vukan so my graphics can run on windows and linux (which is why i chose vulkan instead of d3d12).