Skip to content

Commit f70c6e1

Browse files
committed
feat: implement most values in adapter-info
1 parent 768bfc6 commit f70c6e1

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

crates/wasi-webgpu-wasmtime/src/trait_impls.rs

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,11 @@ impl<T: WasiWebGpuView> webgpu::HostGpuDevice for WasiWebGpuImpl<T> {
332332
// todo!()
333333
// }
334334

335-
fn adapter_info(&mut self, _device: Resource<Device>) -> Resource<webgpu::GpuAdapterInfo> {
336-
todo!()
335+
fn adapter_info(&mut self, device: Resource<Device>) -> Resource<webgpu::GpuAdapterInfo> {
336+
let adapter_id = self.table().get(&device).unwrap().adapter;
337+
let info = self.instance().adapter_get_info(adapter_id);
338+
let info = self.table().push(info).unwrap();
339+
info
337340
}
338341

339342
fn create_command_encoder(
@@ -2513,29 +2516,37 @@ impl<T: WasiWebGpuView> webgpu::HostGpu for WasiWebGpuImpl<T> {
25132516
}
25142517
}
25152518
impl<T: WasiWebGpuView> webgpu::HostGpuAdapterInfo for WasiWebGpuImpl<T> {
2516-
// TODO: take ideas from https://bugzilla.mozilla.org/show_bug.cgi?id=1831994
2517-
fn vendor(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> String {
2518-
todo!()
2519+
// TODO: more real values here
2520+
// take ideas from https://bugzilla.mozilla.org/show_bug.cgi?id=1831994
2521+
// keep an eye on https://github.com/gfx-rs/wgpu/issues/8649
2522+
fn vendor(&mut self, adapter_info: Resource<webgpu::GpuAdapterInfo>) -> String {
2523+
let adapter_info = self.table().get(&adapter_info).unwrap();
2524+
adapter_info.vendor.to_string()
25192525
}
25202526

2521-
fn architecture(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> String {
2522-
todo!()
2527+
fn architecture(&mut self, _adapter_info: Resource<webgpu::GpuAdapterInfo>) -> String {
2528+
// TODO: implement real architecture
2529+
String::new()
25232530
}
25242531

2525-
fn device(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> String {
2526-
todo!()
2532+
fn device(&mut self, adapter_info: Resource<webgpu::GpuAdapterInfo>) -> String {
2533+
let adapter_info = self.table().get(&adapter_info).unwrap();
2534+
adapter_info.device.to_string()
25272535
}
25282536

2529-
fn description(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> String {
2530-
todo!()
2537+
fn description(&mut self, _adapter_info: Resource<webgpu::GpuAdapterInfo>) -> String {
2538+
// TODO: implement real description
2539+
String::new()
25312540
}
25322541

2533-
fn subgroup_min_size(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> u32 {
2534-
todo!()
2542+
fn subgroup_min_size(&mut self, adapter_info: Resource<webgpu::GpuAdapterInfo>) -> u32 {
2543+
let adapter_info = self.table().get(&adapter_info).unwrap();
2544+
adapter_info.subgroup_min_size
25352545
}
25362546

2537-
fn subgroup_max_size(&mut self, _self_: Resource<webgpu::GpuAdapterInfo>) -> u32 {
2538-
todo!()
2547+
fn subgroup_max_size(&mut self, adapter_info: Resource<webgpu::GpuAdapterInfo>) -> u32 {
2548+
let adapter_info = self.table().get(&adapter_info).unwrap();
2549+
adapter_info.subgroup_max_size
25392550
}
25402551

25412552
fn drop(&mut self, info: Resource<webgpu::GpuAdapterInfo>) -> wasmtime::Result<()> {

0 commit comments

Comments
 (0)