| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // https://gpuweb.github.io/gpuweb/ |
| |
| [ |
| Exposed(Window WebGPU, Worker WebGPU) |
| ] interface GPUDevice : EventTarget { |
| [SameObject] readonly attribute GPUAdapter adapter; |
| [CallWith=ScriptState] readonly attribute Promise<GPUDeviceLostInfo> lost; |
| |
| [SameObject] readonly attribute GPUQueue defaultQueue; |
| |
| GPUBuffer createBuffer(GPUBufferDescriptor descriptor); |
| [CallWith=ScriptState, RaisesException] GPUMappedBuffer createBufferMapped(GPUBufferDescriptor descriptor); |
| [RaisesException] GPUTexture createTexture(GPUTextureDescriptor descriptor); |
| GPUSampler createSampler(optional GPUSamplerDescriptor descriptor = {}); |
| |
| GPUBindGroup createBindGroup(GPUBindGroupDescriptor descriptor); |
| GPUBindGroupLayout createBindGroupLayout(GPUBindGroupLayoutDescriptor descriptor); |
| GPUPipelineLayout createPipelineLayout(GPUPipelineLayoutDescriptor descriptor); |
| |
| GPUShaderModule createShaderModule(GPUShaderModuleDescriptor descriptor); |
| [CallWith=ScriptState] GPURenderPipeline createRenderPipeline(GPURenderPipelineDescriptor descriptor); |
| GPUComputePipeline createComputePipeline(GPUComputePipelineDescriptor descriptor); |
| |
| GPUCommandEncoder createCommandEncoder(optional GPUCommandEncoderDescriptor descriptor = {}); |
| GPURenderBundleEncoder createRenderBundleEncoder(GPURenderBundleEncoderDescriptor descriptor); |
| |
| void pushErrorScope(GPUErrorFilter filter); |
| [CallWith=ScriptState] Promise<GPUError?> popErrorScope(); |
| |
| attribute EventHandler onuncapturederror; |
| }; |
| |
| enum GPUErrorFilter { |
| "none", |
| "out-of-memory", |
| "validation" |
| }; |
| |
| typedef sequence<any> GPUMappedBuffer; // [GPUBuffer, ArrayBuffer] |
| typedef (GPUOutOfMemoryError or GPUValidationError) GPUError; |