Live data from Hacker News

Former Nvidia Dev's Thoughts on Vulkan/Mantle

gamedev.net

111–120 of 163 posts

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

#111
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

I hope it works out well. A whole new class of apps and performance might become real.

I just wonder how well text performance will be. Would be awesome to get near native speed with editors like Brackets and Atom.

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

#112
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.

> "easy" API's generally do it by making a ton of assumptions.

Well, perhaps a better way of putting it is that "easy" APIs try to model a domain. Sometimes the API designer just nails it, and folks forget eventually take it for granted. The problem is now "solved". For example, the Unix userspace filesystem API (open, close, read, write, etc.) is pretty damn solid for what it is. I admit that I took it for granted until I worked at a place where someone who'd never seen a filesystem API (!!) was tasked with creating one from the ground up. You can guess how that went.

The downside case is where the API's model either never cut it in the first place, or as @wtallis illuminates above with OpenGL, where the model just ages poorly[1].

[1] https://news.ycombinator.com/item?id=9194138

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

#113
post #36

Earlier quoted context omitted.

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 spe…

Efficient 2D using OpenGL is very difficult. It will never approach the speed of a well designed 2D API.

All web content on OS X and iOS is rendered using OpenGL. That's not to say it was easy to make efficient, but it definitely outperforms the default CoreGraphics implementation on most content.

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

#114

From the looks of it, it seems Khrono's API may actually be significant better/easier to use than DirectX? I haven't heard of DX12 getting overhauled for efficient multi-threading or great multi-GPU support. DX12 probably brings many of the same improvements Mantle brought, but Vulkan seems to go quite a bit beyond that. Also, I assume DX12 will be stuck with some less than pleasant DX10/DX11 legacy code as well.

It sounds like Vulkan is not going to be easy to use. If anything, it is going to be harder to use. For example, in OpenGL, you can upload a texture with glTexImage2D(), then draw with glDrawElements(), then delete it glDeleteTextures(). The draw command won't be complete yet, but the driver will free the memory once it's no longer being used. It sounds like with Vulkan, you'll need to allocate GPU memory for your te…

Coming from a very CUDA-heavy background, having much more low-level access to the GPU and being able to (having to) manage memory manually are very familiar/welcome features. :)

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

#115
post #12

> What has finally been made clear is that it's okay to have difficult to code APIs, if the end result just works. So true and yet, we have all those crazy JavaScript frameworks trying to abstract everything away from developers. There's a lesson in there.

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.

JavaScript is, in and of itself, a massive abstraction.

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

#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.

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

#117
post #97

Earlier quoted context omitted.

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 th…

The web these days is very clearly diverging into two separate things: a portable application runtime/platform, and the document publishing system it started as. I don't see any way to accomplish a clean split between the two, but it looks increasingly necessary.

The split you speak of has already happened on mobile, that's why we have "apps."

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

#118

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…

Looking at the bug bounty record from Chrome and Mozilla it seems that fuzzing-for-bounties vulnerability research has largely moved away from WebGL. Must be at least partly due to WebGL reaching a reasonable level of robustness. Bounties may be harder to claim since bugs can be hardware/os/driver ver etc dependent, but still there used to be a lot more WebGL bounties dealt out.

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

#119
post #103
post #23

Earlier quoted context omitted.

And even if it isn't, the video game industry just got revolutionized by most of the major engines becoming free, so indie devs don't have to drop down to a lower level of abstraction in order to have a chance at competitive performance.

Can we please stop calling Unity/Unreal "free"? Unity still sells a Pro version, and Unreal takes a cut of revenue after a certain amount of $ earned. I'm not arguing against either model, and it's GREAT for hobbyists, but these engines still cost professional studios money.

The salient point is the barrier to entry. The fact that they still have some form of revenue related to the engines doesn't elevate the up-front cost any and the royalties (where they exist) are structured in a way that cannot prevent them from being a viable option for indie studios. The engines will be making the benefits of new graphics APIs properly accessible to indie studios in all the ways that matter; it won't be a AAA-exclusive thing.

(And professional studios don't have to license the ancillary tools and services and source code access of the Pro editions in order to ship a game.)

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

#120
post #117
post #97

Earlier quoted context omitted.

The web these days is very clearly diverging into two separate things: a portable application runtime/platform, and the document publishing system it started as. I don't see any way to accomplish a clean split between the two, but it looks increasingly necessary.

The split you speak of has already happened on mobile, that's why we have "apps."

The new medium has been born, but the old one is still being abused, so the split isn't complete and won't be until this no longer happens: http://xkcd.com/1174/
Post reply on HN