// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
// Source: WebGPU (https://gpuweb.github.io/gpuweb/)
interface mixin GPUObjectBase {
attribute USVString label;
};
dictionary GPUObjectDescriptorBase {
USVString label =
"" ;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUSupportedLimits {
readonly attribute
unsigned long maxTextureDimension1D;
readonly attribute
unsigned long maxTextureDimension2D;
readonly attribute
unsigned long maxTextureDimension3D;
readonly attribute
unsigned long maxTextureArrayLayers;
readonly attribute
unsigned long maxBindGroups;
readonly attribute
unsigned long maxBindGroupsPlusVertexBuffers;
readonly attribute
unsigned long maxImmediateSize;
readonly attribute
unsigned long maxBindingsPerBindGroup;
readonly attribute
unsigned long maxDynamicUniformBuffersPerPipelineLayout;
readonly attribute
unsigned long maxDynamicStorageBuffersPerPipelineLayout;
readonly attribute
unsigned long maxSampledTexturesPerShaderStage;
readonly attribute
unsigned long maxSamplersPerShaderStage;
readonly attribute
unsigned long maxStorageBuffersPerShaderStage;
readonly attribute
unsigned long maxStorageBuffersInVertexStage;
readonly attribute
unsigned long maxStorageBuffersInFragmentStage;
readonly attribute
unsigned long maxStorageTexturesPerShaderStage;
readonly attribute
unsigned long maxStorageTexturesInVertexStage;
readonly attribute
unsigned long maxStorageTexturesInFragmentStage;
readonly attribute
unsigned long maxUniformBuffersPerShaderStage;
readonly attribute
unsigned long long maxUniformBufferBindingSize;
readonly attribute
unsigned long long maxStorageBufferBindingSize;
readonly attribute
unsigned long minUniformBufferOffsetAlignment;
readonly attribute
unsigned long minStorageBufferOffsetAlignment;
readonly attribute
unsigned long maxVertexBuffers;
readonly attribute
unsigned long long maxBufferSize;
readonly attribute
unsigned long maxVertexAttributes;
readonly attribute
unsigned long maxVertexBufferArrayStride;
readonly attribute
unsigned long maxInterStageShaderVariables;
readonly attribute
unsigned long maxColorAttachments;
readonly attribute
unsigned long maxColorAttachmentBytesPerSample;
readonly attribute
unsigned long maxComputeWorkgroupStorageSize;
readonly attribute
unsigned long maxComputeInvocationsPerWorkgroup;
readonly attribute
unsigned long maxComputeWorkgroupSizeX;
readonly attribute
unsigned long maxComputeWorkgroupSizeY;
readonly attribute
unsigned long maxComputeWorkgroupSizeZ;
readonly attribute
unsigned long maxComputeWorkgroupsPerDimension;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUSupportedFeatures {
readonly setlike<DOMString>;
};
[Exposed=(Window, Worker), SecureContext]
interface WGSLLanguageFeatures {
readonly setlike<DOMString>;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUAdapterInfo {
readonly attribute DOMString vendor;
readonly attribute DOMString architecture;
readonly attribute DOMString device;
readonly attribute DOMString description;
readonly attribute
unsigned long subgroupMinSize;
readonly attribute
unsigned long subgroupMaxSize;
readonly attribute boolean isFallbackAdapter;
};
interface mixin NavigatorGPU {
[SameObject, SecureContext] readonly attribute GPU gpu;
};
Navigator includes NavigatorGPU;
WorkerNavigator includes NavigatorGPU;
[Exposed=(Window, Worker), SecureContext]
interface GPU {
Promise<GPUAdapter?> requestAdapter(optional GPURequestAdapterOptions options = {});
GPUTextureFormat getPreferredCanvasFormat();
[SameObject] readonly attribute WGSLLanguageFeatures wgslLanguageFeatures;
};
dictionary GPURequestAdapterOptions {
DOMString featureLevel =
"core" ;
GPUPowerPreference powerPreference;
boolean forceFallbackAdapter =
false ;
boolean xrCompatible =
false ;
};
enum GPUPowerPreference {
"low-power" ,
"high-performance" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUAdapter {
[SameObject] readonly attribute GPUSupportedFeatures features;
[SameObject] readonly attribute GPUSupportedLimits limits;
[SameObject] readonly attribute GPUAdapterInfo info;
Promise<GPUDevice> requestDevice(optional GPUDeviceDescriptor descriptor = {});
};
dictionary GPUDeviceDescriptor
: GPUObjectDescriptorBase {
sequence<GPUFeatureName> requiredFeatures = [];
record<DOMString, (GPUSize64
or undefined)> requiredLimits = {};
GPUQueueDescriptor defaultQueue = {};
};
enum GPUFeatureName {
"core-features-and-limits" ,
"depth-clip-control" ,
"depth32float-stencil8" ,
"texture-compression-bc" ,
"texture-compression-bc-sliced-3d" ,
"texture-compression-etc2" ,
"texture-compression-astc" ,
"texture-compression-astc-sliced-3d" ,
"timestamp-query" ,
"indirect-first-instance" ,
"shader-f16" ,
"rg11b10ufloat-renderable" ,
"bgra8unorm-storage" ,
"float32-filterable" ,
"float32-blendable" ,
"clip-distances" ,
"dual-source-blending" ,
"subgroups" ,
"texture-formats-tier1" ,
"texture-formats-tier2" ,
"primitive-index" ,
"texture-component-swizzle" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUDevice : EventTarget {
[SameObject] readonly attribute GPUSupportedFeatures features;
[SameObject] readonly attribute GPUSupportedLimits limits;
[SameObject] readonly attribute GPUAdapterInfo adapterInfo;
[SameObject] readonly attribute GPUQueue queue;
undefined destroy();
GPUBuffer createBuffer(GPUBufferDescriptor descriptor);
GPUTexture createTexture(GPUTextureDescriptor descriptor);
GPUSampler createSampler(optional GPUSamplerDescriptor descriptor = {});
GPUExternalTexture importExternalTexture(GPUExternalTextureDescriptor descriptor);
GPUBindGroupLayout createBindGroupLayout(GPUBindGroupLayoutDescriptor descriptor);
GPUPipelineLayout createPipelineLayout(GPUPipelineLayoutDescriptor descriptor);
GPUBindGroup createBindGroup(GPUBindGroupDescriptor descriptor);
GPUShaderModule createShaderModule(GPUShaderModuleDescriptor descriptor);
GPUComputePipeline createComputePipeline(GPUComputePipelineDescriptor descriptor);
GPURenderPipeline createRenderPipeline(GPURenderPipelineDescriptor descriptor);
Promise<GPUComputePipeline> createComputePipelineAsync(GPUComputePipelineDescriptor
descriptor);
Promise<GPURenderPipeline> createRenderPipelineAsync(GPURenderPipelineDescriptor descriptor);
GPUCommandEncoder createCommandEncoder(optional GPUCommandEncoderDescriptor descriptor = {});
GPURenderBundleEncoder createRenderBundleEncoder(GPURenderBundleEncoderDescriptor descriptor);
GPUQuerySet createQuerySet(GPUQuerySetDescriptor descriptor);
};
GPUDevice includes GPUObjectBase;
[Exposed=(Window, Worker), SecureContext]
interface GPUBuffer {
readonly attribute GPUSize64Out size;
readonly attribute GPUFlagsConstant usage;
readonly attribute GPUBufferMapState mapState;
Promise<undefined> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset = 0 , optional GPUSize64 size);
ArrayBuffer getMappedRange(optional GPUSize64 offset = 0 , optional GPUSize64 size);
undefined unmap();
undefined destroy();
};
GPUBuffer includes GPUObjectBase;
enum GPUBufferMapState {
"unmapped" ,
"pending" ,
"mapped" ,
};
dictionary GPUBufferDescriptor
: GPUObjectDescriptorBase {
required GPUSize64 size;
required GPUBufferUsageFlags usage;
boolean mappedAtCreation = false ;
};
typedef [EnforceRange] unsigned long GPUBufferUsageFlags;
[Exposed=(Window, Worker), SecureContext]
namespace GPUBufferUsage {
const GPUFlagsConstant MAP_READ = 0 x0001;
const GPUFlagsConstant MAP_WRITE = 0 x0002;
const GPUFlagsConstant COPY_SRC = 0 x0004;
const GPUFlagsConstant COPY_DST = 0 x0008;
const GPUFlagsConstant INDEX = 0 x0010;
const GPUFlagsConstant VERTEX = 0 x0020;
const GPUFlagsConstant UNIFORM = 0 x0040;
const GPUFlagsConstant STORAGE = 0 x0080;
const GPUFlagsConstant INDIRECT = 0 x0100;
const GPUFlagsConstant QUERY_RESOLVE = 0 x0200;
};
typedef [EnforceRange] unsigned long GPUMapModeFlags;
[Exposed=(Window, Worker), SecureContext]
namespace GPUMapMode {
const GPUFlagsConstant READ = 0 x0001;
const GPUFlagsConstant WRITE = 0 x0002;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUTexture {
GPUTextureView createView(optional GPUTextureViewDescriptor descriptor = {});
undefined destroy();
readonly attribute GPUIntegerCoordinateOut width;
readonly attribute GPUIntegerCoordinateOut height;
readonly attribute GPUIntegerCoordinateOut depthOrArrayLayers;
readonly attribute GPUIntegerCoordinateOut mipLevelCount;
readonly attribute GPUSize32Out sampleCount;
readonly attribute GPUTextureDimension dimension;
readonly attribute GPUTextureFormat format;
readonly attribute GPUFlagsConstant usage;
readonly attribute (GPUTextureViewDimension or undefined) textureBindingViewDimension;
};
GPUTexture includes GPUObjectBase;
dictionary GPUTextureDescriptor
: GPUObjectDescriptorBase {
required GPUExtent3D size;
GPUIntegerCoordinate mipLevelCount = 1 ;
GPUSize32 sampleCount = 1 ;
GPUTextureDimension dimension = "2d" ;
required GPUTextureFormat format;
required GPUTextureUsageFlags usage;
sequence<GPUTextureFormat> viewFormats = [];
GPUTextureViewDimension textureBindingViewDimension;
};
enum GPUTextureDimension {
"1d" ,
"2d" ,
"3d" ,
};
typedef [EnforceRange] unsigned long GPUTextureUsageFlags;
[Exposed=(Window, Worker), SecureContext]
namespace GPUTextureUsage {
const GPUFlagsConstant COPY_SRC = 0 x01;
const GPUFlagsConstant COPY_DST = 0 x02;
const GPUFlagsConstant TEXTURE_BINDING = 0 x04;
const GPUFlagsConstant STORAGE_BINDING = 0 x08;
const GPUFlagsConstant RENDER_ATTACHMENT = 0 x10;
const GPUFlagsConstant TRANSIENT_ATTACHMENT = 0 x20;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUTextureView {
};
GPUTextureView includes GPUObjectBase;
dictionary GPUTextureViewDescriptor
: GPUObjectDescriptorBase {
GPUTextureFormat format;
GPUTextureViewDimension dimension;
GPUTextureUsageFlags usage = 0 ;
GPUTextureAspect aspect = "all" ;
GPUIntegerCoordinate baseMipLevel = 0 ;
GPUIntegerCoordinate mipLevelCount;
GPUIntegerCoordinate baseArrayLayer = 0 ;
GPUIntegerCoordinate arrayLayerCount;
// Requires "texture-component-swizzle" feature.
DOMString swizzle = "rgba" ;
};
enum GPUTextureViewDimension {
"1d" ,
"2d" ,
"2d-array" ,
"cube" ,
"cube-array" ,
"3d" ,
};
enum GPUTextureAspect {
"all" ,
"stencil-only" ,
"depth-only" ,
};
enum GPUTextureFormat {
// 8-bit formats
"r8unorm" ,
"r8snorm" ,
"r8uint" ,
"r8sint" ,
// 16-bit formats
"r16unorm" ,
"r16snorm" ,
"r16uint" ,
"r16sint" ,
"r16float" ,
"rg8unorm" ,
"rg8snorm" ,
"rg8uint" ,
"rg8sint" ,
// 32-bit formats
"r32uint" ,
"r32sint" ,
"r32float" ,
"rg16unorm" ,
"rg16snorm" ,
"rg16uint" ,
"rg16sint" ,
"rg16float" ,
"rgba8unorm" ,
"rgba8unorm-srgb" ,
"rgba8snorm" ,
"rgba8uint" ,
"rgba8sint" ,
"bgra8unorm" ,
"bgra8unorm-srgb" ,
// Packed 32-bit formats
"rgb9e5ufloat" ,
"rgb10a2uint" ,
"rgb10a2unorm" ,
"rg11b10ufloat" ,
// 64-bit formats
"rg32uint" ,
"rg32sint" ,
"rg32float" ,
"rgba16unorm" ,
"rgba16snorm" ,
"rgba16uint" ,
"rgba16sint" ,
"rgba16float" ,
// 128-bit formats
"rgba32uint" ,
"rgba32sint" ,
"rgba32float" ,
// Depth/stencil formats
"stencil8" ,
"depth16unorm" ,
"depth24plus" ,
"depth24plus-stencil8" ,
"depth32float" ,
// "depth32float-stencil8" feature
"depth32float-stencil8" ,
// BC compressed formats usable if "texture-compression-bc" is both
// supported by the device/user agent and enabled in requestDevice.
"bc1-rgba-unorm" ,
"bc1-rgba-unorm-srgb" ,
"bc2-rgba-unorm" ,
"bc2-rgba-unorm-srgb" ,
"bc3-rgba-unorm" ,
"bc3-rgba-unorm-srgb" ,
"bc4-r-unorm" ,
"bc4-r-snorm" ,
"bc5-rg-unorm" ,
"bc5-rg-snorm" ,
"bc6h-rgb-ufloat" ,
"bc6h-rgb-float" ,
"bc7-rgba-unorm" ,
"bc7-rgba-unorm-srgb" ,
// ETC2 compressed formats usable if "texture-compression-etc2" is both
// supported by the device/user agent and enabled in requestDevice.
"etc2-rgb8unorm" ,
"etc2-rgb8unorm-srgb" ,
"etc2-rgb8a1unorm" ,
"etc2-rgb8a1unorm-srgb" ,
"etc2-rgba8unorm" ,
"etc2-rgba8unorm-srgb" ,
"eac-r11unorm" ,
"eac-r11snorm" ,
"eac-rg11unorm" ,
"eac-rg11snorm" ,
// ASTC compressed formats usable if "texture-compression-astc" is both
// supported by the device/user agent and enabled in requestDevice.
"astc-4x4-unorm" ,
"astc-4x4-unorm-srgb" ,
"astc-5x4-unorm" ,
"astc-5x4-unorm-srgb" ,
"astc-5x5-unorm" ,
"astc-5x5-unorm-srgb" ,
"astc-6x5-unorm" ,
"astc-6x5-unorm-srgb" ,
"astc-6x6-unorm" ,
"astc-6x6-unorm-srgb" ,
"astc-8x5-unorm" ,
"astc-8x5-unorm-srgb" ,
"astc-8x6-unorm" ,
"astc-8x6-unorm-srgb" ,
"astc-8x8-unorm" ,
"astc-8x8-unorm-srgb" ,
"astc-10x5-unorm" ,
"astc-10x5-unorm-srgb" ,
"astc-10x6-unorm" ,
"astc-10x6-unorm-srgb" ,
"astc-10x8-unorm" ,
"astc-10x8-unorm-srgb" ,
"astc-10x10-unorm" ,
"astc-10x10-unorm-srgb" ,
"astc-12x10-unorm" ,
"astc-12x10-unorm-srgb" ,
"astc-12x12-unorm" ,
"astc-12x12-unorm-srgb" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUExternalTexture {
};
GPUExternalTexture includes GPUObjectBase;
dictionary GPUExternalTextureDescriptor
: GPUObjectDescriptorBase {
required (HTMLVideoElement or VideoFrame) source;
PredefinedColorSpace colorSpace = "srgb" ;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUSampler {
};
GPUSampler includes GPUObjectBase;
dictionary GPUSamplerDescriptor
: GPUObjectDescriptorBase {
GPUAddressMode addressModeU = "clamp-to-edge" ;
GPUAddressMode addressModeV = "clamp-to-edge" ;
GPUAddressMode addressModeW = "clamp-to-edge" ;
GPUFilterMode magFilter = "nearest" ;
GPUFilterMode minFilter = "nearest" ;
GPUMipmapFilterMode mipmapFilter = "nearest" ;
float lodMinClamp = 0 ;
float lodMaxClamp = 32 ;
GPUCompareFunction compare;
[Clamp] unsigned short maxAnisotropy = 1 ;
};
enum GPUAddressMode {
"clamp-to-edge" ,
"repeat" ,
"mirror-repeat" ,
};
enum GPUFilterMode {
"nearest" ,
"linear" ,
};
enum GPUMipmapFilterMode {
"nearest" ,
"linear" ,
};
enum GPUCompareFunction {
"never" ,
"less" ,
"equal" ,
"less-equal" ,
"greater" ,
"not-equal" ,
"greater-equal" ,
"always" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUBindGroupLayout {
};
GPUBindGroupLayout includes GPUObjectBase;
dictionary GPUBindGroupLayoutDescriptor
: GPUObjectDescriptorBase {
required sequence<GPUBindGroupLayoutEntry> entries;
};
dictionary GPUBindGroupLayoutEntry {
required GPUIndex32 binding;
required GPUShaderStageFlags visibility;
GPUBufferBindingLayout buffer;
GPUSamplerBindingLayout sampler;
GPUTextureBindingLayout texture;
GPUStorageTextureBindingLayout storageTexture;
GPUExternalTextureBindingLayout externalTexture;
};
typedef [EnforceRange] unsigned long GPUShaderStageFlags;
[Exposed=(Window, Worker), SecureContext]
namespace GPUShaderStage {
const GPUFlagsConstant VERTEX = 0 x1;
const GPUFlagsConstant FRAGMENT = 0 x2;
const GPUFlagsConstant COMPUTE = 0 x4;
};
enum GPUBufferBindingType {
"uniform" ,
"storage" ,
"read-only-storage" ,
};
dictionary GPUBufferBindingLayout {
GPUBufferBindingType type = "uniform" ;
boolean hasDynamicOffset = false ;
GPUSize64 minBindingSize = 0 ;
};
enum GPUSamplerBindingType {
"filtering" ,
"non-filtering" ,
"comparison" ,
};
dictionary GPUSamplerBindingLayout {
GPUSamplerBindingType type = "filtering" ;
};
enum GPUTextureSampleType {
"float" ,
"unfilterable-float" ,
"depth" ,
"sint" ,
"uint" ,
};
dictionary GPUTextureBindingLayout {
GPUTextureSampleType sampleType = "float" ;
GPUTextureViewDimension viewDimension = "2d" ;
boolean multisampled = false ;
};
enum GPUStorageTextureAccess {
"write-only" ,
"read-only" ,
"read-write" ,
};
dictionary GPUStorageTextureBindingLayout {
GPUStorageTextureAccess access = "write-only" ;
required GPUTextureFormat format;
GPUTextureViewDimension viewDimension = "2d" ;
};
dictionary GPUExternalTextureBindingLayout {
};
[Exposed=(Window, Worker), SecureContext]
interface GPUBindGroup {
};
GPUBindGroup includes GPUObjectBase;
dictionary GPUBindGroupDescriptor
: GPUObjectDescriptorBase {
required GPUBindGroupLayout layout;
required sequence<GPUBindGroupEntry> entries;
};
typedef (GPUSampler or
GPUTexture or
GPUTextureView or
GPUBuffer or
GPUBufferBinding or
GPUExternalTexture) GPUBindingResource;
dictionary GPUBindGroupEntry {
required GPUIndex32 binding;
required GPUBindingResource resource;
};
dictionary GPUBufferBinding {
required GPUBuffer buffer;
GPUSize64 offset = 0 ;
GPUSize64 size;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUPipelineLayout {
};
GPUPipelineLayout includes GPUObjectBase;
dictionary GPUPipelineLayoutDescriptor
: GPUObjectDescriptorBase {
required sequence<GPUBindGroupLayout?> bindGroupLayouts;
GPUSize32 immediateSize = 0 ;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUShaderModule {
Promise<GPUCompilationInfo> getCompilationInfo();
};
GPUShaderModule includes GPUObjectBase;
dictionary GPUShaderModuleDescriptor
: GPUObjectDescriptorBase {
required USVString code;
sequence<GPUShaderModuleCompilationHint> compilationHints = [];
};
dictionary GPUShaderModuleCompilationHint {
required USVString entryPoint;
(GPUPipelineLayout or GPUAutoLayoutMode) layout;
};
enum GPUCompilationMessageType {
"error" ,
"warning" ,
"info" ,
};
[Exposed=(Window, Worker), Serializable, SecureContext]
interface GPUCompilationMessage {
readonly attribute DOMString message;
readonly attribute GPUCompilationMessageType type;
readonly attribute unsigned long long lineNum;
readonly attribute unsigned long long linePos;
readonly attribute unsigned long long offset;
readonly attribute unsigned long long length;
};
[Exposed=(Window, Worker), Serializable, SecureContext]
interface GPUCompilationInfo {
readonly attribute FrozenArray<GPUCompilationMessage> messages;
};
[Exposed=(Window, Worker), SecureContext, Serializable]
interface GPUPipelineError : DOMException {
constructor(optional DOMString message = "" , GPUPipelineErrorInit options);
readonly attribute GPUPipelineErrorReason reason;
};
dictionary GPUPipelineErrorInit {
required GPUPipelineErrorReason reason;
};
enum GPUPipelineErrorReason {
"validation" ,
"internal" ,
};
enum GPUAutoLayoutMode {
"auto" ,
};
dictionary GPUPipelineDescriptorBase
: GPUObjectDescriptorBase {
required (GPUPipelineLayout or GPUAutoLayoutMode) layout;
};
interface mixin GPUPipelineBase {
[NewObject] GPUBindGroupLayout getBindGroupLayout(unsigned long index);
};
dictionary GPUProgrammableStage {
required GPUShaderModule module;
USVString entryPoint;
record<USVString, GPUPipelineConstantValue> constants = {};
};
typedef double GPUPipelineConstantValue; // May represent WGSL's bool, f32, i32, u32, and f16 if enabled.
[Exposed=(Window, Worker), SecureContext]
interface GPUComputePipeline {
};
GPUComputePipeline includes GPUObjectBase;
GPUComputePipeline includes GPUPipelineBase;
dictionary GPUComputePipelineDescriptor
: GPUPipelineDescriptorBase {
required GPUProgrammableStage compute;
};
[Exposed=(Window, Worker), SecureContext]
interface GPURenderPipeline {
};
GPURenderPipeline includes GPUObjectBase;
GPURenderPipeline includes GPUPipelineBase;
dictionary GPURenderPipelineDescriptor
: GPUPipelineDescriptorBase {
required GPUVertexState vertex;
GPUPrimitiveState primitive = {};
GPUDepthStencilState depthStencil;
GPUMultisampleState multisample = {};
GPUFragmentState fragment;
};
dictionary GPUPrimitiveState {
GPUPrimitiveTopology topology = "triangle-list" ;
GPUIndexFormat stripIndexFormat;
GPUFrontFace frontFace = "ccw" ;
GPUCullMode cullMode = "none" ;
// Requires "depth-clip-control" feature.
boolean unclippedDepth = false ;
};
enum GPUPrimitiveTopology {
"point-list" ,
"line-list" ,
"line-strip" ,
"triangle-list" ,
"triangle-strip" ,
};
enum GPUFrontFace {
"ccw" ,
"cw" ,
};
enum GPUCullMode {
"none" ,
"front" ,
"back" ,
};
dictionary GPUMultisampleState {
GPUSize32 count = 1 ;
GPUSampleMask mask = 0 xFFFFFFFF;
boolean alphaToCoverageEnabled = false ;
};
dictionary GPUFragmentState
: GPUProgrammableStage {
required sequence<GPUColorTargetState?> targets;
};
dictionary GPUColorTargetState {
required GPUTextureFormat format;
GPUBlendState blend;
GPUColorWriteFlags writeMask = 0 xF; // GPUColorWrite.ALL
};
dictionary GPUBlendState {
required GPUBlendComponent color;
required GPUBlendComponent alpha;
};
typedef [EnforceRange] unsigned long GPUColorWriteFlags;
[Exposed=(Window, Worker), SecureContext]
namespace GPUColorWrite {
const GPUFlagsConstant RED = 0 x1;
const GPUFlagsConstant GREEN = 0 x2;
const GPUFlagsConstant BLUE = 0 x4;
const GPUFlagsConstant ALPHA = 0 x8;
const GPUFlagsConstant ALL = 0 xF;
};
dictionary GPUBlendComponent {
GPUBlendOperation operation = "add" ;
GPUBlendFactor srcFactor = "one" ;
GPUBlendFactor dstFactor = "zero" ;
};
enum GPUBlendFactor {
"zero" ,
"one" ,
"src" ,
"one-minus-src" ,
"src-alpha" ,
"one-minus-src-alpha" ,
"dst" ,
"one-minus-dst" ,
"dst-alpha" ,
"one-minus-dst-alpha" ,
"src-alpha-saturated" ,
"constant" ,
"one-minus-constant" ,
"src1" ,
"one-minus-src1" ,
"src1-alpha" ,
"one-minus-src1-alpha" ,
};
enum GPUBlendOperation {
"add" ,
"subtract" ,
"reverse-subtract" ,
"min" ,
"max" ,
};
dictionary GPUDepthStencilState {
required GPUTextureFormat format;
boolean depthWriteEnabled;
GPUCompareFunction depthCompare;
GPUStencilFaceState stencilFront = {};
GPUStencilFaceState stencilBack = {};
GPUStencilValue stencilReadMask = 0 xFFFFFFFF;
GPUStencilValue stencilWriteMask = 0 xFFFFFFFF;
GPUDepthBias depthBias = 0 ;
float depthBiasSlopeScale = 0 ;
float depthBiasClamp = 0 ;
};
dictionary GPUStencilFaceState {
GPUCompareFunction compare = "always" ;
GPUStencilOperation failOp = "keep" ;
GPUStencilOperation depthFailOp = "keep" ;
GPUStencilOperation passOp = "keep" ;
};
enum GPUStencilOperation {
"keep" ,
"zero" ,
"replace" ,
"invert" ,
"increment-clamp" ,
"decrement-clamp" ,
"increment-wrap" ,
"decrement-wrap" ,
};
enum GPUIndexFormat {
"uint16" ,
"uint32" ,
};
enum GPUVertexFormat {
"uint8" ,
"uint8x2" ,
"uint8x4" ,
"sint8" ,
"sint8x2" ,
"sint8x4" ,
"unorm8" ,
"unorm8x2" ,
"unorm8x4" ,
"snorm8" ,
"snorm8x2" ,
"snorm8x4" ,
"uint16" ,
"uint16x2" ,
"uint16x4" ,
"sint16" ,
"sint16x2" ,
"sint16x4" ,
"unorm16" ,
"unorm16x2" ,
"unorm16x4" ,
"snorm16" ,
"snorm16x2" ,
"snorm16x4" ,
"float16" ,
"float16x2" ,
"float16x4" ,
"float32" ,
"float32x2" ,
"float32x3" ,
"float32x4" ,
"uint32" ,
"uint32x2" ,
"uint32x3" ,
"uint32x4" ,
"sint32" ,
"sint32x2" ,
"sint32x3" ,
"sint32x4" ,
"unorm10-10-10-2" ,
"unorm8x4-bgra" ,
};
enum GPUVertexStepMode {
"vertex" ,
"instance" ,
};
dictionary GPUVertexState
: GPUProgrammableStage {
sequence<GPUVertexBufferLayout?> buffers = [];
};
dictionary GPUVertexBufferLayout {
required GPUSize64 arrayStride;
GPUVertexStepMode stepMode = "vertex" ;
required sequence<GPUVertexAttribute> attributes;
};
dictionary GPUVertexAttribute {
required GPUVertexFormat format;
required GPUSize64 offset;
required GPUIndex32 shaderLocation;
};
dictionary GPUTexelCopyBufferLayout {
GPUSize64 offset = 0 ;
GPUSize32 bytesPerRow;
GPUSize32 rowsPerImage;
};
dictionary GPUTexelCopyBufferInfo
: GPUTexelCopyBufferLayout {
required GPUBuffer buffer;
};
dictionary GPUTexelCopyTextureInfo {
required GPUTexture texture;
GPUIntegerCoordinate mipLevel = 0 ;
GPUOrigin3D origin = {};
GPUTextureAspect aspect = "all" ;
};
dictionary GPUCopyExternalImageDestInfo
: GPUTexelCopyTextureInfo {
PredefinedColorSpace colorSpace = "srgb" ;
boolean premultipliedAlpha = false ;
};
typedef (ImageBitmap or
ImageData or
HTMLImageElement or
HTMLVideoElement or
VideoFrame or
HTMLCanvasElement or
OffscreenCanvas) GPUCopyExternalImageSource;
dictionary GPUCopyExternalImageSourceInfo {
required GPUCopyExternalImageSource source;
GPUOrigin2D origin = {};
boolean flipY = false ;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUCommandBuffer {
};
GPUCommandBuffer includes GPUObjectBase;
dictionary GPUCommandBufferDescriptor
: GPUObjectDescriptorBase {
};
interface mixin GPUCommandsMixin {
};
[Exposed=(Window, Worker), SecureContext]
interface GPUCommandEncoder {
GPURenderPassEncoder beginRenderPass(GPURenderPassDescriptor descriptor);
GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor = {});
undefined copyBufferToBuffer(
GPUBuffer source,
GPUBuffer destination,
optional GPUSize64 size);
undefined copyBufferToBuffer(
GPUBuffer source,
GPUSize64 sourceOffset,
GPUBuffer destination,
GPUSize64 destinationOffset,
optional GPUSize64 size);
undefined copyBufferToTexture(
GPUTexelCopyBufferInfo source,
GPUTexelCopyTextureInfo destination,
GPUExtent3D copySize);
undefined copyTextureToBuffer(
GPUTexelCopyTextureInfo source,
GPUTexelCopyBufferInfo destination,
GPUExtent3D copySize);
undefined copyTextureToTexture(
GPUTexelCopyTextureInfo source,
GPUTexelCopyTextureInfo destination,
GPUExtent3D copySize);
undefined clearBuffer(
GPUBuffer buffer,
optional GPUSize64 offset = 0 ,
optional GPUSize64 size);
undefined resolveQuerySet(
GPUQuerySet querySet,
GPUSize32 firstQuery,
GPUSize32 queryCount,
GPUBuffer destination,
GPUSize64 destinationOffset);
GPUCommandBuffer finish(optional GPUCommandBufferDescriptor descriptor = {});
};
GPUCommandEncoder includes GPUObjectBase;
GPUCommandEncoder includes GPUCommandsMixin;
GPUCommandEncoder includes GPUDebugCommandsMixin;
dictionary GPUCommandEncoderDescriptor
: GPUObjectDescriptorBase {
};
interface mixin GPUBindingCommandsMixin {
undefined setBindGroup(GPUIndex32 index, GPUBindGroup? bindGroup,
optional sequence<GPUBufferDynamicOffset> dynamicOffsets = []);
undefined setBindGroup(GPUIndex32 index, GPUBindGroup? bindGroup,
[AllowShared] Uint32Array dynamicOffsetsData,
GPUSize64 dynamicOffsetsDataStart,
GPUSize32 dynamicOffsetsDataLength);
undefined setImmediates(GPUSize32 rangeOffset, AllowSharedBufferSource data,
optional GPUSize64 dataOffset = 0 , optional GPUSize64 dataSize);
};
interface mixin GPUDebugCommandsMixin {
undefined pushDebugGroup(USVString groupLabel);
undefined popDebugGroup();
undefined insertDebugMarker(USVString markerLabel);
};
[Exposed=(Window, Worker), SecureContext]
interface GPUComputePassEncoder {
undefined setPipeline(GPUComputePipeline pipeline);
undefined dispatchWorkgroups(GPUSize32 workgroupCountX, optional GPUSize32 workgroupCountY = 1 , optional GPUSize32 workgroupCountZ = 1 );
undefined dispatchWorkgroupsIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
undefined end();
};
GPUComputePassEncoder includes GPUObjectBase;
GPUComputePassEncoder includes GPUCommandsMixin;
GPUComputePassEncoder includes GPUDebugCommandsMixin;
GPUComputePassEncoder includes GPUBindingCommandsMixin;
dictionary GPUComputePassTimestampWrites {
required GPUQuerySet querySet;
GPUSize32 beginningOfPassWriteIndex;
GPUSize32 endOfPassWriteIndex;
};
dictionary GPUComputePassDescriptor
: GPUObjectDescriptorBase {
GPUComputePassTimestampWrites timestampWrites;
};
[Exposed=(Window, Worker), SecureContext]
interface GPURenderPassEncoder {
undefined setViewport(float x, float y,
float width, float height,
float minDepth, float maxDepth);
undefined setScissorRect(GPUIntegerCoordinate x, GPUIntegerCoordinate y,
GPUIntegerCoordinate width, GPUIntegerCoordinate height);
undefined setBlendConstant(GPUColor color);
undefined setStencilReference(GPUStencilValue reference);
undefined beginOcclusionQuery(GPUSize32 queryIndex);
undefined endOcclusionQuery();
undefined executeBundles(sequence<GPURenderBundle> bundles);
undefined end();
};
GPURenderPassEncoder includes GPUObjectBase;
GPURenderPassEncoder includes GPUCommandsMixin;
GPURenderPassEncoder includes GPUDebugCommandsMixin;
GPURenderPassEncoder includes GPUBindingCommandsMixin;
GPURenderPassEncoder includes GPURenderCommandsMixin;
dictionary GPURenderPassTimestampWrites {
required GPUQuerySet querySet;
GPUSize32 beginningOfPassWriteIndex;
GPUSize32 endOfPassWriteIndex;
};
dictionary GPURenderPassDescriptor
: GPUObjectDescriptorBase {
required sequence<GPURenderPassColorAttachment?> colorAttachments;
GPURenderPassDepthStencilAttachment depthStencilAttachment;
GPUQuerySet occlusionQuerySet;
GPURenderPassTimestampWrites timestampWrites;
GPUSize64 maxDrawCount = 50000000 ;
};
dictionary GPURenderPassColorAttachment {
required (GPUTexture or GPUTextureView) view;
GPUIntegerCoordinate depthSlice;
(GPUTexture or GPUTextureView) resolveTarget;
GPUColor clearValue;
required GPULoadOp loadOp;
required GPUStoreOp storeOp;
};
dictionary GPURenderPassDepthStencilAttachment {
required (GPUTexture or GPUTextureView) view;
float depthClearValue;
GPULoadOp depthLoadOp;
GPUStoreOp depthStoreOp;
boolean depthReadOnly = false ;
GPUStencilValue stencilClearValue = 0 ;
GPULoadOp stencilLoadOp;
GPUStoreOp stencilStoreOp;
boolean stencilReadOnly = false ;
};
enum GPULoadOp {
"load" ,
"clear" ,
};
enum GPUStoreOp {
"store" ,
"discard" ,
};
dictionary GPURenderPassLayout
: GPUObjectDescriptorBase {
required sequence<GPUTextureFormat?> colorFormats;
GPUTextureFormat depthStencilFormat;
GPUSize32 sampleCount = 1 ;
};
interface mixin GPURenderCommandsMixin {
undefined setPipeline(GPURenderPipeline pipeline);
undefined setIndexBuffer(GPUBuffer buffer, GPUIndexFormat indexFormat, optional GPUSize64 offset = 0 , optional GPUSize64 size);
undefined setVertexBuffer(GPUIndex32 slot, GPUBuffer? buffer, optional GPUSize64 offset = 0 , optional GPUSize64 size);
undefined draw(GPUSize32 vertexCount, optional GPUSize32 instanceCount = 1 ,
optional GPUSize32 firstVertex = 0 , optional GPUSize32 firstInstance = 0 );
undefined drawIndexed(GPUSize32 indexCount, optional GPUSize32 instanceCount = 1 ,
optional GPUSize32 firstIndex = 0 ,
optional GPUSignedOffset32 baseVertex = 0 ,
optional GPUSize32 firstInstance = 0 );
undefined drawIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
undefined drawIndexedIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
};
[Exposed=(Window, Worker), SecureContext]
interface GPURenderBundle {
};
GPURenderBundle includes GPUObjectBase;
dictionary GPURenderBundleDescriptor
: GPUObjectDescriptorBase {
};
[Exposed=(Window, Worker), SecureContext]
interface GPURenderBundleEncoder {
GPURenderBundle finish(optional GPURenderBundleDescriptor descriptor = {});
};
GPURenderBundleEncoder includes GPUObjectBase;
GPURenderBundleEncoder includes GPUCommandsMixin;
GPURenderBundleEncoder includes GPUDebugCommandsMixin;
GPURenderBundleEncoder includes GPUBindingCommandsMixin;
GPURenderBundleEncoder includes GPURenderCommandsMixin;
dictionary GPURenderBundleEncoderDescriptor
: GPURenderPassLayout {
boolean depthReadOnly = false ;
boolean stencilReadOnly = false ;
};
dictionary GPUQueueDescriptor
: GPUObjectDescriptorBase {
};
[Exposed=(Window, Worker), SecureContext]
interface GPUQueue {
undefined submit(sequence<GPUCommandBuffer> commandBuffers);
Promise<undefined> onSubmittedWorkDone();
undefined writeBuffer(
GPUBuffer buffer,
GPUSize64 bufferOffset,
AllowSharedBufferSource data,
optional GPUSize64 dataOffset = 0 ,
optional GPUSize64 size);
undefined writeTexture(
GPUTexelCopyTextureInfo destination,
AllowSharedBufferSource data,
GPUTexelCopyBufferLayout dataLayout,
GPUExtent3D size);
undefined copyExternalImageToTexture(
GPUCopyExternalImageSourceInfo source,
GPUCopyExternalImageDestInfo destination,
GPUExtent3D copySize);
};
GPUQueue includes GPUObjectBase;
[Exposed=(Window, Worker), SecureContext]
interface GPUQuerySet {
undefined destroy();
readonly attribute GPUQueryType type;
readonly attribute GPUSize32Out count;
};
GPUQuerySet includes GPUObjectBase;
dictionary GPUQuerySetDescriptor
: GPUObjectDescriptorBase {
required GPUQueryType type;
required GPUSize32 count;
};
enum GPUQueryType {
"occlusion" ,
"timestamp" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUCanvasContext {
readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
undefined configure(GPUCanvasConfiguration configuration);
undefined unconfigure();
GPUCanvasConfiguration? getConfiguration();
GPUTexture getCurrentTexture();
};
enum GPUCanvasAlphaMode {
"opaque" ,
"premultiplied" ,
};
enum GPUCanvasToneMappingMode {
"standard" ,
"extended" ,
};
dictionary GPUCanvasToneMapping {
GPUCanvasToneMappingMode mode = "standard" ;
};
dictionary GPUCanvasConfiguration {
required GPUDevice device;
required GPUTextureFormat format;
GPUTextureUsageFlags usage = 0 x10; // GPUTextureUsage.RENDER_ATTACHMENT
sequence<GPUTextureFormat> viewFormats = [];
PredefinedColorSpace colorSpace = "srgb" ;
GPUCanvasToneMapping toneMapping = {};
GPUCanvasAlphaMode alphaMode = "opaque" ;
};
enum GPUDeviceLostReason {
"unknown" ,
"destroyed" ,
};
[Exposed=(Window, Worker), SecureContext]
interface GPUDeviceLostInfo {
readonly attribute GPUDeviceLostReason reason;
readonly attribute DOMString message;
};
partial interface GPUDevice {
readonly attribute Promise<GPUDeviceLostInfo> lost;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUError {
readonly attribute DOMString message;
};
[Exposed=(Window, Worker), SecureContext]
interface GPUValidationError
: GPUError {
constructor(DOMString message);
};
[Exposed=(Window, Worker), SecureContext]
interface GPUOutOfMemoryError
: GPUError {
constructor(DOMString message);
};
[Exposed=(Window, Worker), SecureContext]
interface GPUInternalError
: GPUError {
constructor(DOMString message);
};
enum GPUErrorFilter {
"validation" ,
"out-of-memory" ,
"internal" ,
};
partial interface GPUDevice {
undefined pushErrorScope(GPUErrorFilter filter);
Promise<GPUError?> popErrorScope();
};
[Exposed=(Window, Worker), SecureContext]
interface GPUUncapturedErrorEvent : Event {
constructor(
DOMString type,
GPUUncapturedErrorEventInit gpuUncapturedErrorEventInitDict
);
[SameObject] readonly attribute GPUError error;
};
dictionary GPUUncapturedErrorEventInit : EventInit {
required GPUError error;
};
partial interface GPUDevice {
attribute EventHandler onuncapturederror;
};
typedef [EnforceRange] unsigned long GPUBufferDynamicOffset;
typedef [EnforceRange] unsigned long GPUStencilValue;
typedef [EnforceRange] unsigned long GPUSampleMask;
typedef [EnforceRange] long GPUDepthBias;
typedef [EnforceRange] unsigned long long GPUSize64;
typedef [EnforceRange] unsigned long GPUIntegerCoordinate;
typedef [EnforceRange] unsigned long GPUIndex32;
typedef [EnforceRange] unsigned long GPUSize32;
typedef [EnforceRange] long GPUSignedOffset32;
typedef unsigned long long GPUSize64Out;
typedef unsigned long GPUIntegerCoordinateOut;
typedef unsigned long GPUSize32Out;
typedef unsigned long GPUFlagsConstant;
dictionary GPUColorDict {
required double r;
required double g;
required double b;
required double a;
};
typedef (sequence<double > or GPUColorDict) GPUColor;
dictionary GPUOrigin2DDict {
GPUIntegerCoordinate x = 0 ;
GPUIntegerCoordinate y = 0 ;
};
typedef (sequence<GPUIntegerCoordinate> or GPUOrigin2DDict) GPUOrigin2D;
dictionary GPUOrigin3DDict {
GPUIntegerCoordinate x = 0 ;
GPUIntegerCoordinate y = 0 ;
GPUIntegerCoordinate z = 0 ;
};
typedef (sequence<GPUIntegerCoordinate> or GPUOrigin3DDict) GPUOrigin3D;
dictionary GPUExtent3DDict {
required GPUIntegerCoordinate width;
GPUIntegerCoordinate height = 1 ;
GPUIntegerCoordinate depthOrArrayLayers = 1 ;
};
typedef (sequence<GPUIntegerCoordinate> or GPUExtent3DDict) GPUExtent3D;
Messung V0.5 in Prozent C=85 H=91 G=87
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland