toggle vulkan log output

This commit is contained in:
2021-08-04 12:15:02 +02:00
parent 0a41daf4eb
commit d941b2d6cd
4 changed files with 20 additions and 10 deletions

View File

@@ -1,5 +1,9 @@
vulkan_validation_layers = true vulkan_validation_layers = true
mesh_load_info = true mesh_load_info = true
debug_errors = true
debug_warnings = true
debug_info = true
debug_verbose = true
[input] [input]
mouse_motion = false mouse_motion = false

View File

@@ -15,7 +15,11 @@ pub struct LogConfigInput {
pub struct LogConfig { pub struct LogConfig {
pub vulkan_validation_layers: bool, pub vulkan_validation_layers: bool,
pub mesh_load_info: 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 { impl LogConfig {

View File

@@ -29,7 +29,8 @@ fn main() {
let (mut renderer, event_loop) = VulkanRenderer::init( let (mut renderer, event_loop) = VulkanRenderer::init(
line_vertices, line_vertices,
log_config.vulkan_validation_layers, 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); game.game_start(&mut renderer);

View File

@@ -28,6 +28,7 @@ use pipelines::line_vs::ty::LinePushConstants;
use pipelines::DefaultShader; use pipelines::DefaultShader;
use pipelines::vs; use pipelines::vs;
use crate::config::LogConfig;
use crate::{config::RenderConfig}; use crate::{config::RenderConfig};
use crate::vulkan::gameobject::{GameObject, GameObjectHandle}; use crate::vulkan::gameobject::{GameObject, GameObjectHandle};
@@ -120,7 +121,7 @@ pub struct VulkanRenderer {
} }
impl VulkanRenderer { impl VulkanRenderer {
pub fn init(line_vertices: Vec<LinePoint>, enable_validation_layers: bool, render_config: RenderConfig) -> (VulkanRenderer, EventLoop<()>) { pub fn init(line_vertices: Vec<LinePoint>, enable_validation_layers: bool, render_config: RenderConfig, log_config: LogConfig) -> (VulkanRenderer, EventLoop<()>) {
// Create empty game data struct to be filled // Create empty game data struct to be filled
let mut data = GameData { let mut data = GameData {
line_push_constants: LinePushConstants { line_push_constants: LinePushConstants {
@@ -188,17 +189,17 @@ impl VulkanRenderer {
validation: true validation: true
}; };
debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, |msg| { debug_callback = DebugCallback::new(&instance, msg_severity, msg_types, move |msg| {
let type_str = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) { let (type_str, will_log) = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) {
(true, _, _, _) => "!!", (true, _, _, _) => ("!!", log_config.debug_errors),
(_, true, _, _) => "!", (_, true, _, _) => ("!", log_config.debug_warnings),
(_, _, _, true) => "i", (_, _, _, true) => ("i", log_config.debug_info),
_ => " " _ => (" ", log_config.debug_verbose)
}; };
let layer_str = msg.layer_prefix; let layer_str = msg.layer_prefix;
println!("[{}][{:?}]: {}", type_str, layer_str, msg.description); if will_log { println!("[{}][{:?}]: {}", type_str, layer_str, msg.description); }
}).ok(); }).ok();
} }