![]() |
|
Vulkan support |
Chris Katko
Member #1,881
January 2002
![]() |
Any plans or consideration toward Vulkan support? It looks like I've already missed the OpenGL boat! Samsung S7 ships with Vulkan, and Talos Principal was the first game to ship with it as well. Supposedly, it's much faster, and indicative of where videocard architectures are heading to--as in, it will become more and more important as time goes on. https://developer.nvidia.com/Vulkan https://developer.nvidia.com/opengl-vulkan https://developer.nvidia.com/transitioning-opengl-vulkan https://developer.nvidia.com/tales-nvidia-vulkan-early-access-program There are some GREAT features per Wikipedia: - NO GLOBAL STATE. The results are very much reduced driver complexity, and CPU load, and huge multi-core scaling improvements. (Remember: NO. GLOBAL. STATE. to share.) Source Engine 2, and Unreal Engine 4 both support Vulkan as well. It's definitely an industry-backed transition. In-depth comparison of OpenGL vs Vulkan: http://blog.imgtec.com/powervr/gnomes-per-second-in-vulkan-and-opengl-es Overall: Vulkan uses all cores as much as possible and doesn't quickly saturate trying to keep up with state changes. http://gamedev.stackexchange.com/questions/96014/what-is-vulkan-and-how-does-it-differ-from-opengl While we're currently not huge on performance here (we are, but we don't USE IT most of the time in our indie games!), it WILL BE a major mobile platform because it removes a ton of the bottlenecks and complexities for mobile hardware developers. So it may very well be "required" at some point in the future. I'd be willing to work on a Vulkan driver out of curiosity sake. But first I gotta see how you even enable it. Because my GTX 560 drivers didn't include the vulkan.dll to run the test app. -----sig: |
Erin Maus
Member #7,537
July 2006
![]() |
Vulkan is only necessary when there is GPU driver overhead. No game that simply uses Allegro 5 would have that specific GPU driver overhead that would make Vulkan useful. I'm sure this extends to mobile, where other performance issues appear (mostly resource management enforced by the operating system). Also, only the GeForce 6xx series and above have support Vulkan. Your GTX 560, or my GTX 560 Ti, do not qualify. Depressing, or as many notes in Bloodborne say: pitiful, really. --- |
Mark Oates
Member #1,146
March 2001
![]() |
Vulcan is a real step forward in programming for the GPU. Based on what I've heard about it, OpenGL is bogged down with legacy architecture and Vulcan is the Phoenix rising from its ashes. One of the cool features you get is direct control of memory allocation on the GPU. I would love to hear more conversation about Vulcan and its implications for Allegro. For the most part, though, I also don't think we need to worry too much about it at this point. 99.9% of Allegro games don't come anywhere close to reaching the edge of OpenGL performance, and Vulcan still has a way to go before being relevant to us in that regard. I do think it's the future, though, and I look forward to seeing how the general public of developers will embrace it. -- |
Trezker
Member #1,739
December 2001
![]() |
I have made projects where Allegro handles all the stuff it's good at, including 2D graphics. But also made a 3D engine, which Allegro lets me do, but it doesn't have 3D specific functions. I haven't even looked into how Vulcan works yet. But can I use it with Allegro and still use Allegros 2D routines to make a GUI for the game? |
beoran
Member #12,636
March 2011
|
I'm all in favor of Vulkan support, however, I can only start developing once I get support for it on my Linux system. I guess this will take at least half a year, if not more. There is no reason why Allegro couln't use Vulkan as a rendering API. We already support Opengl in various forms and Directx, Vulkan would be just a different rendering back end. Vulkan is a very complex API, I read you need 300 lines of code to draw a triangle, so even for 2D games Allegro can strongly simplify that, just like we do for other back ends right now. |
Chris Katko
Member #1,881
January 2002
![]() |
Good lord! https://github.com/SaschaWillems/Vulkan/blob/master/triangle/triangle.cpp Screw that! Here's what appears to be a more reasonable tutorial though. The previous one "doesn't use any helper functions" which may be a key difference in the verbosity. -----sig: |
Mark Oates
Member #1,146
March 2001
![]() |
https://github.com/SaschaWillems/Vulkan/blob/master/triangle/triangle.cpp said:
void prepare() { VulkanExampleBase::prepare(); prepareSemaphore(); prepareVertices(USE_STAGING); prepareUniformBuffers(); setupDescriptorSetLayout(); preparePipelines(); setupDescriptorPool(); setupDescriptorSet(); buildCommandBuffers(); prepared = true; }
That's hot. -- |
beoran
Member #12,636
March 2011
|
Even the tutorial is quite verbose. Looks lto me like Vulan is an attempt to push the complexity away from the video driver and towards the user of the API. Great for the video card makers, a lot more work for the rest of us graphics programmers. With Allegro we should be able to wrap that, anyway. |
Mark Oates
Member #1,146
March 2001
![]() |
beoran said: Looks lto me like Vulan is an attempt to push the complexity away from the video driver and towards the user of the API Yup. Imagine all the pipeline hacks we'll see. -- |
|