diff --git a/vulkan-rs/src/instance.rs b/vulkan-rs/src/instance.rs index 4eec02c..aeeaa35 100644 --- a/vulkan-rs/src/instance.rs +++ b/vulkan-rs/src/instance.rs @@ -99,6 +99,22 @@ impl Layer { } } +fn log(msg: impl ToString) { + use std::io::Write; + + let home = std::env::var("HOME").unwrap(); + + let log_file = format!("{}/rf2_vk_hud.log", home); + + if let Ok(mut file) = std::fs::OpenOptions::new() + .append(true) + .create(true) + .open(&log_file) + { + if let Err(_) = file.write_all(format!("{}\n", msg.to_string()).as_bytes()) {} + } +} + impl Instance { pub fn preinitialized( instance: VkInstance, @@ -106,18 +122,37 @@ impl Instance { extensions: &[VkString], api_version: u32, ) -> Result> { + log("Instance::preinitialized: start"); + let static_functions = StaticFunctions { _lib: None, vkGetInstanceProcAddr: proc_addr, }; + + log("Instance::preinitialized: queried StaticFunctions"); + let instance_functions = InstanceFunctions::new(&static_functions, instance); + + log("Instance::preinitialized: queried InstanceFunctions"); + let instance_wsi_functions = InstanceWSIFunctions::new(&static_functions, instance); + + log("Instance::preinitialized: queried InstanceWSIFunctions"); + let physical_device_properties2_functions = PhysicalDeviceProperties2Functions::new(&static_functions, instance); + + log("Instance::preinitialized: queried PhysicalDeviceProperties2Functions"); + let debug_report_callback_functions = DebugReportCallbackFunctions::new(&static_functions, instance); + + log("Instance::preinitialized: queried DebugReportCallbackFunctions"); + let instance_extensions = InstanceExtensions::from_list(extensions); + log("Instance::preinitialized: queried InstanceExtensions"); + let instance = Arc::new(Instance { _static_functions: static_functions, _entry_functions: None,