ErupteD is based on D-Vulkan, but goes further:
* Platform surface extensions
* DerelictLoader for Posix Systems
* With respect to [API without Secrets](https://software.intel.com/en-us/api-without-secrets-introduction-to-vulkan-part-1) D-Vulkan function loading system is partially broken


https://code.dlang.org/packages/erupted

Why another project?
I did submit pull requests to D-Vulkan, but so far they are ignored. However I feel that my edits add value to the bindings.

ErupteD is only partially tested, as I don't have:
1.) any posix system available (or android for that matter)
2.) A Multi-Vulkan-Device System (e.g. APU and GPU)

For the interested reader:
1.) When presenting content to a window vulkan relies on platform specific sources (or some other platform independent mechanism, e.g. glfw3). In case of windows these sources can be found in phobos, but I don't know where to find and how to supply them in the other cases (posix and android). Hence I just used the same names found in the vk_platform.h file for imports (more details in the README.md). Please inform me if those imports point to the right modules paths, if any.

2.) Vulkan functions can be loaded in two ways, a) through the instance and b) through the logical device. Former gets all functions for all found devices, but when calling them they will be internally dispatched to the proper device. Later gets the functions for one device, these functions don't have the dispatch indirection. In theory, loading the functions a second time for a different logical device should overwrite the functions of the previously loaded device functions, but as I don't have a multi-device system I can't be sure. It would be nice if anybody could test this functionality (again more details in the README.md) with the supplied devices.d example.

I will open up a discussion thread for that.

Cheers, ParticlePeter

Reply via email to