Live data from Hacker News

Former Nvidia Dev's Thoughts on Vulkan/Mantle

gamedev.net

81–90 of 163 posts

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

#81
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…

That last quote really resonates with my experience of software dev in general. "easy" API's generally do it by making a ton of assumptions. Modifying those assumptions becomes a huge pain point and that's if the API even allows you to modify that particular assumption.

Gah. At our company a bunch of early Rails apps metastasized into financial/billing modules that do DB access using ActiveRecord. With all the convenient pluralization and automatic field/method naming. And are now on the critical path for our revenue. It's a daily reminder to me of how the "easy API" thing can go wrong :-)

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

#82
post #36
post #10

Earlier quoted context omitted.

About your last paragraph, I would say that that is even more important to optimize and to make low level layers for than graphical game engines (believe it or not :)). The thing is while gaming is seen as a "performance critical" application, where it is natural to want the maximum performance to be squeezed out of your hardware, Web development is just a behemoth of inefficiency, and we think that that is the norm…

Hi, I'm working on a library to allow something like this (rendering web UI's with a WebGL backend). It's in very early stages. Feedback is very welcome: https://github.com/davedx/lustro

Good luck. Efficient 2D using OpenGL is very difficult. It will never approach the speed of a well designed 2D API. Microsoft gave a lot of insight about the hard it was to get Direct2D to be competitive with GDI/GDI+.

If you do see any performance benefits it likely will be because you support less features than what a modern day browser supports with HTML/CSS. But in my opinion you could probably achieve faster speeds with Canvas in a similar manner.

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

#83

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?

WebGL should never have been invented, at least on current architectures. It's a ticking bomb, precisely for the reasons this articles explored - drivers are complex and buggy black boxes that lie in kernel space so ring 0 access is never too far from reach for many exploits. WebGL has a potential to be exploit vector much more severe than what we've seen with other auxiliary web technologies like JavaScript or Java…

Personally I think browsers will become service layers that expose the underlying OS in controlled and specific ways. Not a completely sandbox, but not a free for all either.

We've started creeping that way with a lot of the newer HTML5 stuff, but we have a long way to go.

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

#84
post #70

Earlier quoted context omitted.

Except that it would all still be done via a layer of javascript (using asm.js may mitigate this)

Native JavaScript performance is not generally what makes web apps slow.

Just because it isn't the bottleneck today doesn't mean it isn't slow.

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

#85
post #36
post #10

Earlier quoted context omitted.

About your last paragraph, I would say that that is even more important to optimize and to make low level layers for than graphical game engines (believe it or not :)). The thing is while gaming is seen as a "performance critical" application, where it is natural to want the maximum performance to be squeezed out of your hardware, Web development is just a behemoth of inefficiency, and we think that that is the norm…

Hi, I'm working on a library to allow something like this (rendering web UI's with a WebGL backend). It's in very early stages. Feedback is very welcome: https://github.com/davedx/lustro

(How) do you intend to handle accessibility?

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

#86
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…

> The idea that nVidia and AMD are detecting your games, and then replacing shaders, optimizing around bugs, etc should be absolutely terrifying.

Actually it's par for the course, if you care about backwards compatibility. Raymond Chen has many, many stories about the absolutely heroic lengths Microsoft has gone to ensure that popular, yet broken, programs continue to work smoothly between Windows upgrades [1][2][3][4][5].

On Depending on Undocumented Behavior:

[1] http://blogs.msdn.com/b/oldnewthing/archive/2003/12/23/45481...

[2] http://blogs.msdn.com/b/oldnewthing/archive/2003/10/15/55296...

Why Not Just Block Programs that rely on Undocumented Behavior?

[3] http://blogs.msdn.com/b/oldnewthing/archive/2003/12/24/45779...

Who cares about backwards compatibility? (A lot of people):

[4] http://blogs.msdn.com/b/oldnewthing/archive/2006/11/06/99999...

Hardware breaks between upgrades, too:

[5] http://blogs.msdn.com/b/oldnewthing/archive/2003/08/28/54719...

Joel Spolsky's (somewhat dated) "How Microsoft Lost the API War" gives a good overview of the above concerns:

[6] http://www.joelonsoftware.com/articles/APIWar.html

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

#88
post #10
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…

About your last paragraph, I would say that that is even more important to optimize and to make low level layers for than graphical game engines (believe it or not :)). The thing is while gaming is seen as a "performance critical" application, where it is natural to want the maximum performance to be squeezed out of your hardware, Web development is just a behemoth of inefficiency, and we think that that is the norm…

Maybe you're optimizing for the wrong thing?

Let's imagine a world where a browser is just a secure place to execute code. You get vulkan, io, networking, input, camera access in a cross platform way.

So, how do search engines find any info? How do you share links to content? How do you support braille readers? Browser extensions?

I'd argue those things are pretty essential to the web as we know it (well maybe not the extensions) and I might also argue that some of the inefficiencies of the web environment are a direct result of making the decisions that the most important part of the web is a common semi scannable and linkable format, HTML.

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

#89
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…

Reminds me of MIT's Exokernel- make the lower level interfaces as low-level as possible (while still providing security) and let user-level libraries provide various abstractions suited to different use cases.

No file systems, no network protocols, no processes; just a very thin layer that lets userspace implement those if/how it wants to.

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

#90
post #77
post #26

These are the vanishingly few people who have actually seen the source to a game, the driver it's running on, and the Windows kernel it's running on, and the full specs for the hardware. Nobody else has that kind of access or engineering ability. One option is to release the source of the drivers, making it possible for motivated engine developers to do this without explicit access to AMD developers. If they did this…

It seems to me, based on this article, that providing support to major game studios and releasing driver updates to accommodate their games is a major revenue source for GPU manufacturers. I guess that's why only Intel releases open source drivers: their GPUs aren't really expected to provide high performance for games. I guess with Vulcan/Mantle, the drivers are just trivial hardware abstraction layers, so the GPU m…

Yeah, one of the things this doesn't mention is that, to a certain extent, these issues are self-imposed and the GPU vendors make money from them. In particular, one of the big reasons OpenGL games are so standards-violating is that NVidia consistently refuse to enforce the specs. So software is developed against the NVidia driver's behaviour and breaks on AMD, Intel and open source drivers that enforce the specs, then people blame this on the drivers being crap and buy NVidia hardware. This was a big reason why Wine worked badly on non-Nvidia hardware for a long time.
Post reply on HN