From d941b2d6cdece0485380363453e4a14ef0d66f38 Mon Sep 17 00:00:00 2001 From: Asuro Date: Wed, 4 Aug 2021 12:15:02 +0200 Subject: [PATCH] toggle vulkan log output --- config/log.toml | 4 ++++ src/config.rs | 6 +++++- src/main.rs | 3 ++- src/vulkan/mod.rs | 17 +++++++++-------- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/config/log.toml b/config/log.toml index 73d0727..a376baf 100644 --- a/config/log.toml +++ b/config/log.toml @@ -1,5 +1,9 @@ vulkan_validation_layers = true mesh_load_info = true +debug_errors = true +debug_warnings = true +debug_info = true +debug_verbose = true [input] mouse_motion = false diff --git a/src/config.rs b/src/config.rs index fc058e1..3def20a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -15,7 +15,11 @@ pub struct LogConfigInput { pub struct LogConfig { pub vulkan_validation_layers: bool, pub mesh_load_info: bool, - pub input: LogConfigInput + pub input: LogConfigInput, + pub debug_errors: bool, + pub debug_warnings: bool, + pub debug_info: bool, + pub debug_verbose: bool } impl LogConfig { diff --git a/src/main.rs b/src/main.rs index 63b77ef..2832dc3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,7 +29,8 @@ fn main() { let (mut renderer, event_loop) = VulkanRenderer::init( line_vertices, log_config.vulkan_validation_layers, - RenderConfig::from_file("config/graphics.toml") + RenderConfig::from_file("config/graphics.toml"), + log_config.clone() ); game.game_start(&mut renderer); diff --git a/src/vulkan/mod.rs b/src/vulkan/mod.rs index 7b6f3db..bf4b7c3 100644 --- a/src/vulkan/mod.rs +++ b/src/vulkan/mod.rs @@ -28,6 +28,7 @@ use pipelines::line_vs::ty::LinePushConstants; use pipelines::DefaultShader; use pipelines::vs; +use crate::config::LogConfig; use crate::{config::RenderConfig}; use crate::vulkan::gameobject::{GameObject, GameObjectHandle}; @@ -120,7 +121,7 @@ pub struct VulkanRenderer { } impl VulkanRenderer { - pub fn init(line_vertices: Vec, enable_validation_layers: bool, render_config: RenderConfig) -> (VulkanRenderer, EventLoop<()>) { + pub fn init(line_vertices: Vec, enable_validation_layers: bool, render_config: RenderConfig, log_config: LogConfig) -> (VulkanRenderer, EventLoop<()>) { // Create empty game data struct to be filled let mut data = GameData { line_push_constants: LinePushConstants { @@ -188,17 +189,17 @@ impl VulkanRenderer { validation: true }; - debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, |msg| { - let type_str = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) { - (true, _, _, _) => "!!", - (_, true, _, _) => "!", - (_, _, _, true) => "i", - _ => " " + debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, move |msg| { + let (type_str, will_log) = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) { + (true, _, _, _) => ("!!", log_config.debug_errors), + (_, true, _, _) => ("!", log_config.debug_warnings), + (_, _, _, true) => ("i", log_config.debug_info), + _ => (" ", log_config.debug_verbose) }; let layer_str = msg.layer_prefix; - println!("[{}][{:?}]: {}", type_str, layer_str, msg.description); + if will_log { println!("[{}][{:?}]: {}", type_str, layer_str, msg.description); } }).ok(); }