Handmade Hero»Forums»Code
Ginger Bill
222 posts / 2 projects
I am ginger thus have no soul.
Reconstructed Mantle API
I have found something that reconstructs the Mantle API: github.com/jmegaffin/magma

Because Vulkan is based upon Mantle, this gives an idea of how Vulkan will work. I am still looking though the header files so I am yet to make up my mind on the api's design.

What is everyone else's opinion of this?
498 posts
Reconstructed Mantle API
If you want something vulkan like then D3D12 is a better choice to look at as it has actual documentation.

Even if it's horrible like microsoft's usual fair.
Mārtiņš Možeiko
2233 posts / 1 project
Reconstructed Mantle API
Mantle also has actual documentation available for almost a year: http://www.amd.com/Documents/Mant...mming-Guide-and-API-Reference.pdf
Ginger Bill
222 posts / 2 projects
I am ginger thus have no soul.
Reconstructed Mantle API
I know the documentation has been out for a while but I haven't bothered reading it as Mantle is AMD hardware only and it is not easily-available for the public. Also, because Vulkan is nearing release, I thought it would be a good idea to start reading up. I could have created a library like this myself but being lazy, nope.

From what I have read so far (from the headers and the manual), I personally do not get much benefit from it over OpenGL as I can emulate a lot of it already (except the manual memory management and multiple thread rendering).
Mārtiņš Možeiko
2233 posts / 1 project
Reconstructed Mantle API
Oh, I was telling that to ratchetfreak, not you :)

As for emulation - it can be costly. Either because of more inefficient data structures, or because of more API calls. Vulkan/D3D12 will give opportunity to not emulate anything, but use GPU in a way it is most efficient (because it won't abstract GPU too much). Of course depending on your app/game it may be irrelevant and bottleneck is something else than API.
498 posts
Reconstructed Mantle API
Using vulkan/D3D12 as if it was opengl won't get you much.

One of the bottle necks of the driver is cache invalidation which is hard when you only have the information that opengl lets you give the driver (so the driver cheats). Vulkan/D3D12 puts the program more in control of when caches can be invalidated.

You need to tell the driver when operations can happen and which resources you will be using.

Will there be games that utterly fail to do this sanely? Sure. Will the IHV drivers be blamed? Of course. Will we then end up with similar per application hacks that opengl drivers need to do? Most likely.
Ginger Bill
222 posts / 2 projects
I am ginger thus have no soul.
Reconstructed Mantle API
Of course. Don't use a knife when a screwdriver is the tool you need.

OpenGL is a different tool to Vulkan so it has different uses. I am betting there will be an OpenGL-like wrapper for Vulkan soon after release (not a very good one though), so get ready for the influx.
498 posts
Reconstructed Mantle API
I've seen a tech demo for a opengl ES wrapper around vulkan already.