mirror of
https://github.com/servo/servo.git
synced 2025-06-14 03:14:29 +00:00
35 lines
1.3 KiB
Text
35 lines
1.3 KiB
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||
|
||
// https://gpuweb.github.io/gpuweb/#gpuadapter
|
||
[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"]
|
||
interface GPUAdapter {
|
||
readonly attribute DOMString name;
|
||
readonly attribute object extensions;
|
||
//readonly attribute GPULimits limits; Don’t expose higher limits for now.
|
||
|
||
// May reject with DOMException // TODO: DOMException("OperationError")?
|
||
Promise<GPUDevice> requestDevice(optional GPUDeviceDescriptor descriptor = {});
|
||
};
|
||
|
||
dictionary GPUDeviceDescriptor : GPUObjectDescriptorBase {
|
||
sequence<GPUExtensionName> extensions = [];
|
||
GPULimits limits = {};
|
||
};
|
||
|
||
enum GPUExtensionName {
|
||
"texture-compression-bc",
|
||
"pipeline-statistics-query"
|
||
};
|
||
|
||
dictionary GPULimits {
|
||
unsigned long maxBindGroups = 4;
|
||
unsigned long maxDynamicUniformBuffersPerPipelineLayout = 8;
|
||
unsigned long maxDynamicStorageBuffersPerPipelineLayout = 4;
|
||
unsigned long maxSampledTexturesPerShaderStage = 16;
|
||
unsigned long maxSamplersPerShaderStage = 16;
|
||
unsigned long maxStorageBuffersPerShaderStage = 4;
|
||
unsigned long maxStorageTexturesPerShaderStage = 4;
|
||
unsigned long maxUniformBuffersPerShaderStage = 12;
|
||
};
|