Hi, I just pulled this project to give your FrameGraph implementation a try. I managed to get it all to compile using Visual Studio 2019 (v142) and VulkanSDK 1.1.126.0, and when I try to run the planet sample it crashes with this error:
D:\Projects\FrameGraph-Samples\samples\utils\SphericalCube\UnitTest_SphericalCubeMath.cpp(50): UnitTest_SphericalCubeMath
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\vulkan_loader\VulkanLoader.cpp(87): Vulkan library path: "C:\WINDOWS\SYSTEM32\vulkan-1.dll"
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDevice.cpp(418): Vulkan layer "VK_LAYER_LUNARG_assistant_layer" not supported and will be removed
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDevice.cpp(575): Found Vulkan device: GeForce RTX 2070
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDeviceExt.cpp(157): apiVersion: 1.1.119
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDeviceExt.cpp(160): driverVersion: 441.80
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDeviceExt.cpp(162): vendorName: NVIDIA
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDeviceExt.cpp(163): deviceName: GeForce RTX 2070
D:\Projects\FrameGraph-Samples\FrameGraph\extensions\framework\Vulkan\VulkanDeviceExt.cpp(359): vkCmdWriteTimestamp(): VkQueryPool 0x5d11410000000004[] and query 0: query not reset. After query pool creation, each query must be reset before it is used. Queries must also be reset between uses.
object{ CommandBuffer, "", 3157240279184 }
----------------------------
Samples.Planet.exe!FGC::VulkanDeviceExt::_DebugReport(const FGC::VulkanDeviceExt::DebugReport & msg) Line 359 C++
Samples.Planet.exe!FGC::VulkanDeviceExt::_DebugUtilsCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, unsigned int __formal, const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData, void * pUserData) Line 334 C++
VkLayer_khronos_validation.dll!debug_log_msg(const _debug_report_data * debug_data, unsigned int msg_flags, VkDebugReportObjectTypeEXT object_type, unsigned __int64 src_object, unsigned __int64 location, const char * layer_prefix, const char * message, const char * text_vuid) Line 420 C++
VkLayer_khronos_validation.dll!log_msg(const _debug_report_data * debug_data, unsigned int msg_flags, VkDebugReportObjectTypeEXT object_type, unsigned __int64 src_object, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & vuid_text, const char * format, ...) Line 645 C++
VkLayer_khronos_validation.dll!CoreChecks::VerifyQueryIsReset(const ValidationStateTracker * state_data, VkCommandBuffer_T * commandBuffer, QueryObject query_obj, const char * func_name, std::map<QueryObject,enum QueryState,std::less<QueryObject>,std::allocator<std::pair<QueryObject const ,enum QueryState> > > * localQueryToStateMap) Line 6495 C++
[External Code]
[Inline Frame] VkLayer_khronos_validation.dll!std::_Func_class<bool,ValidationStateTracker const *,bool,std::map<QueryObject,enum QueryState,std::less<QueryObject>,std::allocator<std::pair<QueryObject const ,enum QueryState> > > *>::operator()(const ValidationStateTracker * <_Args_0>, bool <_Args_1>, std::map<QueryObject,enum QueryState,std::less<QueryObject>,std::allocator<std::pair<QueryObject const ,enum QueryState> > > * <_Args_2>) Line 2212 C++
VkLayer_khronos_validation.dll!CoreChecks::ValidateCommandBuffersForSubmit(VkQueue_T * queue, const VkSubmitInfo * submit, std::unordered_map<ImageSubresourcePair,IMAGE_LAYOUT_STATE,std::hash<ImageSubresourcePair>,std::equal_to<ImageSubresourcePair>,std::allocator<std::pair<ImageSubresourcePair const ,IMAGE_LAYOUT_STATE> > > * localImageLayoutMap_arg, std::vector<VkCommandBuffer_T *,std::allocator<VkCommandBuffer_T *> > * current_cmds_arg) Line 2212 C++
VkLayer_khronos_validation.dll!CoreChecks::PreCallValidateQueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 2236 C++
VkLayer_khronos_validation.dll!vulkan_layer_chassis::QueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 1153 C++
Samples.Planet.exe!FGC::VulkanDeviceFn::vkQueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 690 C++
> Samples.Planet.exe!FG::VFrameGraph::_FlushQueue(FG::EQueueType queueIndex, unsigned int maxIter) Line 843 C++
Samples.Planet.exe!FG::VFrameGraph::_FlushAll(FG::EQueueUsage queues, unsigned int maxIter) Line 701 C++
Samples.Planet.exe!FG::VFrameGraph::Flush(FG::EQueueUsage queues) Line 677 C++
Samples.Planet.exe!FG::GenPlanetApp::Initialize() Line 72 C++
Samples.Planet.exe!main() Line 367 C++