Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vulkan support. #50

Closed
dustContributor opened this issue Mar 3, 2015 · 24 comments
Closed

Vulkan support. #50

dustContributor opened this issue Mar 3, 2015 · 24 comments

Comments

@dustContributor
Copy link

So Khronos has made an official announcement for Vulkan https://www.khronos.org/vulkan

Khronos says the API will be available later this year (maybe for SIGGRAPH? Hopefully sooner). Apparently its a fairly compact API, although I'm not sure how the shader compiling process will work (part of the API? external tool? vendor provided? another library?) nor how LWJGL would fit in that.

I, for one, welcome our new low level API overlord with a big hug 😄

@mikeant42
Copy link

Second this

@huhlig
Copy link

huhlig commented Mar 9, 2015

Motion carries? I wish we had a little more firm date.

@sriharshachilakapati
Copy link
Contributor

I would like to see Vulkan support in LWJGL too, but I don't think it will happen anytime sooner because this is still so early and there haven't been public drivers except for test drivers by the developers. We should wait for at least until the Vulkan headers were available to the public. Looking forward to this anyways.

@huhlig
Copy link

huhlig commented Mar 10, 2015

Wait... There are test drivers? Where! I haven't even seen a draft spec so far.

@sriharshachilakapati
Copy link
Contributor

I mean by test drivers, not public ones. These are the drivers used by the developers of Vulkan demo, it's debuggers, and other things. Additionally, it was known that Valve is making drivers for Intel GPUs, as stated here, http://www.phoronix.com/scan.php?page=news_item&px=Valve-Intel-Vulkan-Driver and also that driver will be opensource. However still, the drivers are not available to the public.

@huhlig
Copy link

huhlig commented Mar 10, 2015

Gotcha, Thanks for the clarification. I have been looking for some piece of the spec but not finding anything.

@sriharshachilakapati
Copy link
Contributor

Alexander Overvoorde, the author of Open.GL has already started a tutorial site for Vulkan. You can find it online at http://vulkan-tutorial.com/

@huhlig
Copy link

huhlig commented Mar 10, 2015

Thanks

@dustContributor
Copy link
Author

You can watch one of the Vulkan presentations Khronos did after the one from GDC https://www.youtube.com/watch?v=EUNMrU8uU5M (Graham Sellers, one of the presenters in AZDO talk is there). They said they'll upload the GDC talk with good quality later.

I've seen Spasi mention in java-gaming forums the need for Vulkan to be given a custom memory allocator but Graham mentions its optional.

@phase
Copy link

phase commented Apr 5, 2015

I can't wait to see this in LWJGL!

@Blunderchips
Copy link
Contributor

This would be amazing to see!

@phr00t
Copy link

phr00t commented Nov 23, 2015

As virtual reality takes hold, this "enhancement" would be a big improvement. Any updates on this?

@Spasi
Copy link
Member

Spasi commented Nov 23, 2015

The Vulkan spec is currently available only to Khronos members and ISVs under NDA. I can only promise that LWJGL will have Vulkan support within hours of the spec's public release.

@phr00t
Copy link

phr00t commented Nov 23, 2015

I suppose I can't ask for much more!

I'm working with jMonkeyEngine, which has LWJGL 3 support. Do you suspect LWJGL's support of Vulkan will require significant changes to a rendering pipeline to benefit from it, or will it be an "under the hood" kind of change that LWJGL 3 users will benefit from mostly automatically?

@Spasi
Copy link
Member

Spasi commented Nov 23, 2015

LWJGL 3 only provides the API bindings, so it's really up to the jMonkeyEngine developers.

If you were using LWJGL 3 directly, it would certainly be a lot of work. From what we've seen from AMD's Mantle and Microsoft's Direct3D 12, a naive translation from legacy rendering APIs to the new APIs will often result in many problems and quite possibly worse performance. A deep redesign is often required to take full advantage of the new rendering approach.

A rendering engine can certainly hide this complexity from end-users, but I don't think the work for it can be done overnight. Vulkan will be very different from OpenGL and heavily multi-threaded, so I'm guessing some new abstractions will be needed to get the most out of it.

@dustContributor
Copy link
Author

Aaaand no Fermi support 😭 Well, have fun with it.

@httpdigest
Copy link
Member

'course no Fermi support. I am a bit suprised that it even supports Kepler. :)
Nvidia, like every other vendor, is ultimately interested in selling GPUs.
And they do it in very close cooperation with the game industry, which demands faster and more portable APIs, so they can sell games to a wider audience with less effort. So they get Vulkan, so that people buy more games and ultimately buy more graphics cards.
But since Vulkan is cross-vendor and cross-platform (demands from the game industry), that does not really play into the cards of Nvidia (and co.), so Nvidia will make sure that they have better tools (like debuggers/profilers/tracers which of course will only work on Nvidia hardware) and extensions than the others with which you'll always be better off than with anything else... that's the plan. :)
So: buy yourself a new graphics card. ;)

@dustContributor
Copy link
Author

They said it would work on GL ES 3.1 cards and up. So yeah, it is a surprise.

@httpdigest
Copy link
Member

There is a paragraph on the Vulkan Wikipedia article about that argument:

Initial specifications state that Vulkan will work on hardware that currently supports OpenGL ES 3.1 or OpenGL 4.X and up.[32] As Vulkan support will require new graphics drivers, this does not necessarily imply that every existing device that supports OpenGL ES 3.1 or OpenGL 4.X will have Vulkan drivers available.

So, it seems that they decided that patching drivers or writing complete new drivers for one of their old GPU generations is just not feasible/economical, albeit probably technically possible.

@dustContributor
Copy link
Author

That's Wikipedia and uncited, you know why it isn't cited? Because its not what they originally said in Khronos slides. I went by what they said in their slides. They didn't said it could work, they said it would.

Honestly I don't need the explanations, I already read an nvidia's employee answer about it. I'm just pissed that they didn't mentioned it before.

@httpdigest
Copy link
Member

Yeah, sorry about that explaining. I feel with you. I too have a Fermi laptop around with me, which I cannot use with Vulkan then anymore. But maybe it's really time for us to upgrade? :)

@dustContributor
Copy link
Author

Yeah it is time to upgrade, but where I live I'd pay 350+ USD for a GPU the yanks pay 200 USD for, while I am also earning much less. So its not something I am terribly looking forward to : /

I think I'll just stick to GL for now, maybe buy an used card down the road or something.

@Spasi
Copy link
Member

Spasi commented Feb 16, 2016

Looks like Fermi might have Vulkan support.

@dustContributor
Copy link
Author

No texture formats reported, hm... Thats weird. There is no OS version report on the other Fermi GPUs either (520M, GTX 560 Ti). Prolly people editing the .INF and installing the beta driver anyway.

They've been pretty quiet about D3D12 on Fermi too. Maaaaaybe they're planning on wrapping up D3D12 and Vulkan together, but I doubt it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants