From 5fe6b69f5d2ecc37ee899fd6d9e536f73783d70f Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 18 Jan 2025 01:37:42 +0100 Subject: profiler show adapter info --- client/src/interfaces/mod.rs | 2 ++ client/src/interfaces/profiler.rs | 26 ++++++++++++++++++++++++-- client/src/renderer.rs | 13 +++++++++---- client/src/state.rs | 1 + 4 files changed, 36 insertions(+), 6 deletions(-) (limited to 'client') diff --git a/client/src/interfaces/mod.rs b/client/src/interfaces/mod.rs index eb0eb86..9dfce63 100644 --- a/client/src/interfaces/mod.rs +++ b/client/src/interfaces/mod.rs @@ -23,6 +23,7 @@ use prefabindex::PrefabIndexInterface; use profiler::{Profiler, TimingProfiler}; use std::sync::{Arc, Mutex}; use weareshared::resources::PrefabIndex; +use wgpu::AdapterInfo; enum Interface { Selector, @@ -36,6 +37,7 @@ pub struct InterfaceData { pub downloader: Arc, pub prefab_index: Arc, pub render_timing: Arc>, + pub adapter_info: Arc, } pub fn ui_selector(idata: Arc) -> impl Fn(&egui::Context) -> bool { diff --git a/client/src/interfaces/profiler.rs b/client/src/interfaces/profiler.rs index c6256b6..b6c4698 100644 --- a/client/src/interfaces/profiler.rs +++ b/client/src/interfaces/profiler.rs @@ -28,10 +28,32 @@ impl Widget for &mut Profiler { self.idata.scene_prepare.ui(ui); }); ui.collapsing("Download", |ui| { - ui.add(&*self.idata.downloader); + self.idata.downloader.ui(ui); }); ui.collapsing("Render", |ui| { - ui.add(&*self.idata.render_timing.lock().unwrap()); + self.idata.render_timing.lock().unwrap().ui(ui); + }); + ui.collapsing("Adapter Info", |ui| { + Grid::new("ai") + .num_columns(2) + .show(ui, |ui| { + ui.label("Backend"); + ui.label(&self.idata.adapter_info.backend.to_string()); + ui.end_row(); + ui.label("Name"); + ui.label(&self.idata.adapter_info.name); + ui.end_row(); + ui.label("Device Type"); + ui.label(format!("{:?}", self.idata.adapter_info.device_type)); + ui.end_row(); + ui.label("Driver"); + ui.label(&self.idata.adapter_info.driver); + ui.end_row(); + ui.label("Driver Info"); + ui.label(&self.idata.adapter_info.driver_info); + ui.end_row(); + }) + .response }); ui.response() } diff --git a/client/src/renderer.rs b/client/src/renderer.rs index 2777526..01d6fc4 100644 --- a/client/src/renderer.rs +++ b/client/src/renderer.rs @@ -29,10 +29,10 @@ use std::{ }; use weareshared::tree::SceneTree; use wgpu::{ - Backends, CommandEncoderDescriptor, Device, DeviceDescriptor, Extent3d, Features, Instance, - InstanceDescriptor, Limits, MaintainBase, PowerPreference, Queue, RequestAdapterOptions, - Surface, SurfaceConfiguration, TextureDescriptor, TextureDimension, TextureFormat, - TextureUsages, TextureView, TextureViewDescriptor, + AdapterInfo, Backends, CommandEncoderDescriptor, Device, DeviceDescriptor, Extent3d, Features, + Instance, InstanceDescriptor, Limits, MaintainBase, PowerPreference, Queue, + RequestAdapterOptions, Surface, SurfaceConfiguration, TextureDescriptor, TextureDimension, + TextureFormat, TextureUsages, TextureView, TextureViewDescriptor, }; use winit::window::Window; @@ -48,6 +48,7 @@ pub struct Renderer<'a> { depth: TextureView, pub timing: TimingProfiler, pub timing_submit: Arc>, + pub adapter_info: Arc, } impl<'a> Renderer<'a> { pub fn new(window: &'a Window, downloader: Arc) -> Result { @@ -131,10 +132,13 @@ impl<'a> Renderer<'a> { }); } + let adapter_info = Arc::new(adapter.get_info()); + Ok(Self { scene_pipeline, scene_prepare, surface, + adapter_info, depth, device, queue, @@ -230,6 +234,7 @@ impl<'a> Renderer<'a> { let mut ts = self.timing_submit.lock().unwrap(); swap(&mut *ts, &mut self.timing); + Ok(()) } } diff --git a/client/src/state.rs b/client/src/state.rs index 2912e14..c8b4921 100644 --- a/client/src/state.rs +++ b/client/src/state.rs @@ -109,6 +109,7 @@ impl<'a> State<'a> { network: self.network.clone(), prefab_index: self.prefab_index.clone(), render_timing: self.renderer.timing_submit.clone(), + adapter_info: self.renderer.adapter_info.clone(), }); self.renderer .ui_renderer -- cgit v1.2.3-70-g09d2