Live data from Hacker News

Former Nvidia Dev's Thoughts on Vulkan/Mantle

gamedev.net

141–150 of 163 posts

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#141
post #56

The idea that nVidia and AMD are detecting your games, and then replacing shaders, optimizing around bugs, etc should be absolutely terrifying. And vice versa, the idea of having to fix every major game's incredibly broken code is equally terrifying. And it's a huge hit to all of us indie devs, who don't get the five-star treatment to maximize performance of our games. So overall, I'd say this is a step in the right…

> but there really isn't a library that tries to do > just 2D with some filtering+scaling

While not a 2D library, https://github.com/bkaradzic/bgfx is a very sweet abstraction layer over platform graphics APIs

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#142
post #136
post #85

Earlier quoted context omitted.

(How) do you intend to handle accessibility?

I don't. The target segment is people building rich, interactive video-game-like UI's, for things like mobile/embedded devices. Though as an aside, I think voice control is very underutilized in modern GUI development...

Please don't. It sounds like you're recreating flash and we all know how annoying flash guis were.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#143
post #5

Very interesting post. So ... the subtext that a lot of people aren't calling out explicitly is that this round of new APIs has been done in cooperation with the big engines. The Mantle spec is effectively written by Johan Andersson at DICE, and the Khronos Vulkan spec basically pulls Aras P at Unity, Niklas S at Epic, and a couple guys at Valve into the fold. This begs the question: what about DirectX 12 and Apple's…

> I wonder if/when web developers will reach a similar point of software layer implosion. Will doing things the "good but hard" way force me to write tons of boilerplate? Because as a (currently iOS) programmer, as soon as I start having to write generic, structural code, I find it difficult to sustain my interest in the project. I want to go from idea to something that works as quickly as humanly possible; having to…

Apparently, a Vulkan "Hello, world!" program takes about 600 lines of code!

https://youtu.be/EUNMrU8uU5M?t=1h33m54s

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#144
post #55

Earlier quoted context omitted.

Write your whole webapp in WebGL? Edit: Seriously, how feasible is that? Creating a GUI framework on top of WebGL and creating an abstraction layer (which the original article advises against) would be a huge performance boost comparing to current webpages, wouldn't it?

To be fair, I think the takeaway isn't don't make/use abstraction layers, but don't make a one-size-fits-all abstraction and then hide the lower level stuff. A targeted abstraction that correctly supports the domain you are in is still a good thing. That's what the engine developers end up being here, an abstraction on top of this low level API that gives many devs exactly what they want. Edit: To be clear, I don't t…

Parts of CSS3 are already faster to implement "by hand" in javascript rather than using the browser's "native" implementation.

HTML/CSS was designed for requirements that don't apply to many modern websites. I would not be surprised if it were possible to implement a rendering engine that performed better for relevant use cases, e.g. perhaps assuming a grid as a first-class part of the layout.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#145
post #116

It's telling about the whole graphics programming scene that this has been such a well kept secret from the public. Games you see are not in reality running on open APIs, but are based on back alley arrangements between insiders camouflaged as open API apps. I bet this post is very demoralizing eg. to hopeful indie game devs or people holding out hope for driver situation improving on Linux.

Whether the game is running on an open API can be moralizing or demoralizing to an open source/culture advocate, not to a indie game developer - the latter would care more about speed of development, robustness, access to sales, etc.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#146
post #116

It's telling about the whole graphics programming scene that this has been such a well kept secret from the public. Games you see are not in reality running on open APIs, but are based on back alley arrangements between insiders camouflaged as open API apps. I bet this post is very demoralizing eg. to hopeful indie game devs or people holding out hope for driver situation improving on Linux.

Actually I think this points to a potential area of success on Linux. One of the points the post brings up is that there is only a very small group of people who have access to the Microsoft kernel code, the driver code, and the game code. On Linux, this pool is vast. With open source kernel and open source drivers, game developers can dig all the way through the stack to understand the entire system. I would hope this leads to better APIs that expose the nature of the system directly, and not having to impose workarounds for specific games inside the driver itself.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#147

Earlier quoted context omitted.

> I wonder if/when web developers will reach a similar point of software layer implosion. Will doing things the "good but hard" way force me to write tons of boilerplate? Because as a (currently iOS) programmer, as soon as I start having to write generic, structural code, I find it difficult to sustain my interest in the project. I want to go from idea to something that works as quickly as humanly possible; having to…

Apparently, a Vulkan "Hello, world!" program takes about 600 lines of code! https://youtu.be/EUNMrU8uU5M?t=1h33m54s

600 lines of code really isn't that much. At my day job a single file can be 2-6x that long, and there are a lot of files to deal with. Any project that gets beyond "Hey here's a neat little snippet of code that does something" will very quickly begin to dwarf those 600 lines. Also, from the original post talking about the new API and current graphics drivers, every developer is already implicitly using a couple million lines of code by using the OpenGL/DirectX APIs. They're just hidden from the developer in a closed-source binary.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#148
post #116

It's telling about the whole graphics programming scene that this has been such a well kept secret from the public. Games you see are not in reality running on open APIs, but are based on back alley arrangements between insiders camouflaged as open API apps. I bet this post is very demoralizing eg. to hopeful indie game devs or people holding out hope for driver situation improving on Linux.

This has never been a secret. On Windows there's even a tool for nVidia cards that will let you see all the builtin workarounds for various applications and let you define some of your own.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#149
post #142
post #136

Earlier quoted context omitted.

I don't. The target segment is people building rich, interactive video-game-like UI's, for things like mobile/embedded devices. Though as an aside, I think voice control is very underutilized in modern GUI development...

Please don't. It sounds like you're recreating flash and we all know how annoying flash guis were.

Sounds like the guy is doing entertainment systems where a gamey UI is fine. You don't want your car entertainment system looking like bootstrap.

Re: Former Nvidia Dev's Thoughts on Vulkan/Mantle

#150

Earlier quoted context omitted.

You cannot abstract away complexity. This is a lesson people relearn every 2-3 years or so. From the javascript frameworks - I use only backbone and jquery - first as a simple router, second for easy dom traversal.

Hearing web developers discuss the dangers of abstraction is just about the craziest thing in computer science. JavaScript and the DOM sit atop layer upon layer upon layer of abstraction that hides an absolute mountain of complexity around networking, memory management, hardware capabilities, parsing, rendering, etc. Believing you're somehow avoiding abstraction because you only use a couple of additional libraries o…

Well you have to take something for a reasonable base, otherwise the argument becomes absurd quickly. We think of bare-metal (CPU-level) as our default base and take that for granted. But the CPU itself has many abstractions over physics, multiple levels of caching, branching prediction, some built-ins and so on. A modern CPU sits much deeper in the skyscraper that you describe but it's still nowhere near ground level.

Similarly, since with web browsers we get what we get, we might as well consider that our reasonable base for web development, it's not like anyone is going to do that part differently any time soon.

Post reply on HN