Hi guys, I recently finished my first complex Vulkan API example in Go: A 
SPINNING CUBE.

https://github.com/vulkan-go/demos/tree/master/vulkancube 

It actually took me three attempts to do that, meanwhile I was improving 
the Vulkan API bindings project, you can see the project history timeline 
there:

https://github.com/vulkan-go/vulkan#project-history-timeline

I decided to share this timeline and events that took place 2016-2017, it 
was very fun to work with Vulkan API using Go programming language, it was 
very productive year. Starting from the initial public announcement, when 
the only device that could run Vulkan out of the box was an Android tablet 
from NVIDIA, the project evolved and now supports all major platforms, 
including Amazon AWS instances (in headless/computing mode).

The first attempt on cube was immediately after I created a triangle 
drawing app (Go port of tri.c from LunarG), the app was ~2K lines of code 
in C originally, so I decided to take the cube.c as well (~2.5K lines of 
code) and port it. The attempt took about 25 hours and was totally 
frustrating: the app was drawing nothing and validation layers were silent. 

After a long pause, I took another attempt, taking the code from Mali 
Vulkan SDK for Android, also created Asche framework to manage platform 
initialisation and constrains outside the app code, the approach was highly 
inspired by Mali team. With the same result, 25 hours of work and another 
black-screen example with no chance to debug.

After another very long pause, I decided to give 3rd attempt, this time I 
used up-to-date cube.c example from LunarG, it was 4K LOC chunk of C code, 
I was simultaneously rewriting the app logic and also improving the Asche 
framework with new ideas, making it more suitable for my needs. And in 16 
hours I came up with beautifully working (!) cube example and Asche 
framework that others can find useful.

It was a fun year with Vulkan API and Go lang, I experienced a lot, 
frustrated a lot, but finally the project met a happy ending.
I'm looking forward to re-write some Intel tutorials for Vulkan API, but in 
Go programming language, it would be unfair to do that without a SPINNING 
CUBE example :D

This spinning cube demo is is like a practicing lawyer license, but in 
graphics field.

----
Thanks for reading,
Max

http://github.com/vulkan-go

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to