I tried to compile and run Acid and its tutorials on Linux with gcc. These are most of the fixes I needed, mostly to fix initialization/destruction order issues that caused crashes on the tutorial apps.
The only thing that's missing is that I had to remove the dependency on volk, no matter what I tried I could not stop it from crashing. The root problem appears to be that symbols with the same name but different function are pulled in from both volk and libvulkan, and the wrong ones get used.
Thank you for the pull request, I agree with the changes you have made to get the Tutorials working on GCC.
I think the destruction order of graphics objects should be explicit in graphics objects moving forward.
Filesystem sources were for building on macOS Sierra, I think it's okay to remove now if it causes issues with GCC.
I just switched from explicitly listing module initalization order in the Engine+App to self-registering, I've really got to clean up that initalization code!
I tried to compile and run Acid and its tutorials on Linux with gcc. These are most of the fixes I needed, mostly to fix initialization/destruction order issues that caused crashes on the tutorial apps.
The only thing that's missing is that I had to remove the dependency on volk, no matter what I tried I could not stop it from crashing. The root problem appears to be that symbols with the same name but different function are pulled in from both volk and libvulkan, and the wrong ones get used.