hajimehoshi / ebiten

Ebitengine - A dead simple 2D game engine for Go
https://ebitengine.org
Apache License 2.0
11.02k stars 660 forks source link

support Vulkan #389

Open hajimehoshi opened 7 years ago

hajimehoshi commented 7 years ago

Expected benefits:

There is no concrete plan so far.

joeblew99 commented 7 years ago

Am sure you have seen the golang / Vulkan implementation at xlab repo ?

It's very extensive with 3 examples.

It's really clean code but lots of it since its Vulcan. But I don't see an issue because you are hiding all the code behind the framework.

hajimehoshi commented 7 years ago

I've not seen that. I'll take a look.

BTW, I was wondering which platforms support Vulkan.

joeblew99 commented 7 years ago

Here is he repo: https://github.com/vulkan-go/demos

Support: android, ios, all desktops. But ios only supports Metal and so there is a company that make a vulkan <--> Metal ayer called Molten, but you have to pay for it.

Now writing using Vulkan means lots more code to write. I dont think this is bad because for a GUI you wrap allot of that in controls too. xlab wrote this as a wrapper also. https://github.com/vulkan-go/asche

Personally, i think that Vulkan is still a little too early, and that the Molten issue is a huge issue. There has been talk that kronos will write an adapter so that Molten is not needed for IOS, but i think its a fair way of and not certain at all. Its a pity Apple went their own way, when everyone else agreed on a standard.

Thats about all i can help with for now.

hajimehoshi commented 7 years ago

Thank you for the info. I agree Vulkan is too early. Probably wrapping Vulkan and Metal (and DirectX?) is the best in the current situation to utilize GPU power, but the implementation cost would be too huge. Thus, I'll wait and see, and might revisit this when I find a great benefit with Vulkan or Vulkan supports most of all platforms (hopefully including browsers).

joeblew99 commented 7 years ago

will be along time before browsers get vulkan. SO yes wait..

hajimehoshi commented 5 years ago

Does Vulkan has a notion of 'context lost'? (Metal and Direct11 don't). If not, we might be able to eliminate 'restorable' logic.

hajimehoshi commented 3 years ago

Note to myself: Vulkan is available as of Android API level 24. https://developer.android.com/ndk/guides/graphics/getting-started

hajimehoshi commented 3 years ago

Related: #804

hajimehoshi commented 2 years ago

Vulkan is nice also for Stadia https://stadia.dev/about/

hajimehoshi commented 2 years ago

Vulkan is supported from Android 7.0. Currentlly 90%> Android machines can be covered

image

(from https://gs.statcounter.com/os-version-market-share/android)

hajimehoshi commented 1 year ago

image

https://gs.statcounter.com/os-version-market-share/android

The current market share of M is 1.67%, and the others is about 3%.

hajimehoshi commented 7 months ago

As we have removed the restorable package, the priority got lower.