gpu: implement Device.features, Device.limits

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-18 19:52:48 -07:00 committed by Stephen Gutekanst
parent 667539c255
commit 653c528441

View file

@ -303,15 +303,15 @@ const adapter_vtable = Adapter.VTable{
}; };
fn wrapDevice(device: c.WGPUDevice) Device { fn wrapDevice(device: c.WGPUDevice) Device {
// TODO: implement Device interface var features: [std.enums.values(Feature).len]c.WGPUFeatureName = undefined;
// WGPU_EXPORT size_t wgpuDeviceEnumerateFeatures(WGPUDevice device, WGPUFeature * features); const features_len = c.wgpuDeviceEnumerateFeatures(device.?, &features[0]);
// WGPU_EXPORT bool wgpuDeviceGetLimits(WGPUDevice device, WGPUSupportedLimits * limits);
var supported_limits: c.WGPUSupportedLimits = undefined;
if (!c.wgpuDeviceGetLimits(device.?, &supported_limits)) @panic("failed to get device limits (this is a bug in mach/gpu)");
return .{ return .{
// TODO: .features = @bitCast([]Feature, features[0..features_len]),
.features = undefined, .limits = @bitCast(Limits, supported_limits.limits),
// TODO:
.limits = undefined,
.ptr = device.?, .ptr = device.?,
.vtable = &device_vtable, .vtable = &device_vtable,
}; };