summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-18 01:37:42 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-18 01:37:42 +0100
commit5fe6b69f5d2ecc37ee899fd6d9e536f73783d70f (patch)
treeda1590eb626ef7167807f0191f4aafa103704e1a /client
parenta2c5b47e34d358f8b9b697fba8a6c52585cff8fa (diff)
downloadweareserver-5fe6b69f5d2ecc37ee899fd6d9e536f73783d70f.tar
weareserver-5fe6b69f5d2ecc37ee899fd6d9e536f73783d70f.tar.bz2
weareserver-5fe6b69f5d2ecc37ee899fd6d9e536f73783d70f.tar.zst
profiler show adapter info
Diffstat (limited to 'client')
-rw-r--r--client/src/interfaces/mod.rs2
-rw-r--r--client/src/interfaces/profiler.rs26
-rw-r--r--client/src/renderer.rs13
-rw-r--r--client/src/state.rs1
4 files changed, 36 insertions, 6 deletions
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<Downloader>,
pub prefab_index: Arc<PrefabIndex>,
pub render_timing: Arc<Mutex<TimingProfiler>>,
+ pub adapter_info: Arc<AdapterInfo>,
}
pub fn ui_selector(idata: Arc<InterfaceData>) -> 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<Mutex<TimingProfiler>>,
+ pub adapter_info: Arc<AdapterInfo>,
}
impl<'a> Renderer<'a> {
pub fn new(window: &'a Window, downloader: Arc<Downloader>) -> Result<Self> {
@@ -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