Skip to content

Commit 3fd9762

Browse files
authored
Use BCD tags for webgpu features (#2280)
1 parent 870950e commit 3fd9762

File tree

2 files changed

+71
-251
lines changed

2 files changed

+71
-251
lines changed

features/webgpu.yml

-251
Original file line numberDiff line numberDiff line change
@@ -4,254 +4,3 @@ spec: https://gpuweb.github.io/gpuweb/
44
caniuse: webgpu
55
status:
66
compute_from: api.Navigator.gpu
7-
compat_features:
8-
- api.GPU
9-
- api.GPU.getPreferredCanvasFormat
10-
- api.GPU.requestAdapter
11-
- api.GPU.requestAdapter.discrete_adapter_default_ac
12-
- api.GPU.wgslLanguageFeatures
13-
- api.GPUAdapter
14-
- api.GPUAdapter.features
15-
- api.GPUAdapter.info
16-
- api.GPUAdapter.isFallbackAdapter
17-
- api.GPUAdapter.limits
18-
- api.GPUAdapter.requestDevice
19-
- api.GPUAdapter.requestDevice.lost_device_on_duplicate
20-
- api.GPUAdapterInfo
21-
- api.GPUAdapterInfo.architecture
22-
- api.GPUAdapterInfo.description
23-
- api.GPUAdapterInfo.device
24-
- api.GPUAdapterInfo.vendor
25-
- api.GPUBindGroup
26-
- api.GPUBindGroup.label
27-
- api.GPUBindGroupLayout
28-
- api.GPUBindGroupLayout.label
29-
- api.GPUBuffer
30-
- api.GPUBuffer.destroy
31-
- api.GPUBuffer.getMappedRange
32-
- api.GPUBuffer.label
33-
- api.GPUBuffer.mapAsync
34-
- api.GPUBuffer.mapState
35-
- api.GPUBuffer.size
36-
- api.GPUBuffer.unmap
37-
- api.GPUBuffer.usage
38-
- api.GPUCanvasContext
39-
- api.GPUCanvasContext.canvas
40-
- api.GPUCanvasContext.configure
41-
- api.GPUCanvasContext.configure.toneMapping
42-
- api.GPUCanvasContext.getConfiguration
43-
- api.GPUCanvasContext.getCurrentTexture
44-
- api.GPUCanvasContext.unconfigure
45-
- api.GPUCommandBuffer
46-
- api.GPUCommandBuffer.label
47-
- api.GPUCommandEncoder
48-
- api.GPUCommandEncoder.beginComputePass
49-
- api.GPUCommandEncoder.beginRenderPass
50-
- api.GPUCommandEncoder.clearBuffer
51-
- api.GPUCommandEncoder.copyBufferToBuffer
52-
- api.GPUCommandEncoder.copyBufferToTexture
53-
- api.GPUCommandEncoder.copyTextureToBuffer
54-
- api.GPUCommandEncoder.copyTextureToTexture
55-
- api.GPUCommandEncoder.finish
56-
- api.GPUCommandEncoder.insertDebugMarker
57-
- api.GPUCommandEncoder.label
58-
- api.GPUCommandEncoder.popDebugGroup
59-
- api.GPUCommandEncoder.pushDebugGroup
60-
- api.GPUCommandEncoder.resolveQuerySet
61-
- api.GPUCompilationInfo
62-
- api.GPUCompilationInfo.messages
63-
- api.GPUCompilationMessage
64-
- api.GPUCompilationMessage.length
65-
- api.GPUCompilationMessage.lineNum
66-
- api.GPUCompilationMessage.linePos
67-
- api.GPUCompilationMessage.message
68-
- api.GPUCompilationMessage.offset
69-
- api.GPUCompilationMessage.type
70-
- api.GPUComputePassEncoder
71-
- api.GPUComputePassEncoder.dispatchWorkgroups
72-
- api.GPUComputePassEncoder.dispatchWorkgroupsIndirect
73-
- api.GPUComputePassEncoder.end
74-
- api.GPUComputePassEncoder.insertDebugMarker
75-
- api.GPUComputePassEncoder.label
76-
- api.GPUComputePassEncoder.popDebugGroup
77-
- api.GPUComputePassEncoder.pushDebugGroup
78-
- api.GPUComputePassEncoder.setBindGroup
79-
- api.GPUComputePassEncoder.setPipeline
80-
- api.GPUComputePipeline
81-
- api.GPUComputePipeline.getBindGroupLayout
82-
- api.GPUComputePipeline.label
83-
- api.GPUDevice
84-
- api.GPUDevice.createBindGroup
85-
- api.GPUDevice.createBindGroupLayout
86-
- api.GPUDevice.createBuffer
87-
- api.GPUDevice.createCommandEncoder
88-
- api.GPUDevice.createComputePipeline
89-
- api.GPUDevice.createComputePipelineAsync
90-
- api.GPUDevice.createPipelineLayout
91-
- api.GPUDevice.createQuerySet
92-
- api.GPUDevice.createRenderBundleEncoder
93-
- api.GPUDevice.createRenderPipeline
94-
- api.GPUDevice.createRenderPipelineAsync
95-
- api.GPUDevice.createSampler
96-
- api.GPUDevice.createShaderModule
97-
- api.GPUDevice.createTexture
98-
- api.GPUDevice.destroy
99-
- api.GPUDevice.features
100-
- api.GPUDevice.importExternalTexture
101-
- api.GPUDevice.importExternalTexture.videoframe_source
102-
- api.GPUDevice.label
103-
- api.GPUDevice.limits
104-
- api.GPUDevice.lost
105-
- api.GPUDevice.popErrorScope
106-
- api.GPUDevice.pushErrorScope
107-
- api.GPUDevice.queue
108-
- api.GPUDevice.uncapturederror_event
109-
- api.GPUDeviceLostInfo
110-
- api.GPUDeviceLostInfo.message
111-
- api.GPUDeviceLostInfo.reason
112-
- api.GPUError
113-
- api.GPUError.message
114-
- api.GPUExternalTexture
115-
- api.GPUExternalTexture.label
116-
- api.GPUInternalError
117-
- api.GPUInternalError.GPUInternalError
118-
- api.GPUOutOfMemoryError
119-
- api.GPUOutOfMemoryError.GPUOutOfMemoryError
120-
- api.GPUPipelineError
121-
- api.GPUPipelineError.GPUPipelineError
122-
- api.GPUPipelineError.GPUPipelineError.message_optional
123-
- api.GPUPipelineError.reason
124-
- api.GPUPipelineLayout
125-
- api.GPUPipelineLayout.label
126-
- api.GPUQuerySet
127-
- api.GPUQuerySet.count
128-
- api.GPUQuerySet.destroy
129-
- api.GPUQuerySet.label
130-
- api.GPUQuerySet.type
131-
- api.GPUQueue
132-
- api.GPUQueue.copyExternalImageToTexture
133-
- api.GPUQueue.copyExternalImageToTexture.videoframe_source
134-
- api.GPUQueue.label
135-
- api.GPUQueue.onSubmittedWorkDone
136-
- api.GPUQueue.submit
137-
- api.GPUQueue.writeBuffer
138-
- api.GPUQueue.writeTexture
139-
- api.GPURenderBundle
140-
- api.GPURenderBundle.label
141-
- api.GPURenderBundleEncoder
142-
- api.GPURenderBundleEncoder.draw
143-
- api.GPURenderBundleEncoder.drawIndexed
144-
- api.GPURenderBundleEncoder.drawIndexedIndirect
145-
- api.GPURenderBundleEncoder.drawIndirect
146-
- api.GPURenderBundleEncoder.finish
147-
- api.GPURenderBundleEncoder.insertDebugMarker
148-
- api.GPURenderBundleEncoder.label
149-
- api.GPURenderBundleEncoder.popDebugGroup
150-
- api.GPURenderBundleEncoder.pushDebugGroup
151-
- api.GPURenderBundleEncoder.setBindGroup
152-
- api.GPURenderBundleEncoder.setIndexBuffer
153-
- api.GPURenderBundleEncoder.setPipeline
154-
- api.GPURenderBundleEncoder.setVertexBuffer
155-
- api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer
156-
- api.GPURenderPassEncoder
157-
- api.GPURenderPassEncoder.beginOcclusionQuery
158-
- api.GPURenderPassEncoder.draw
159-
- api.GPURenderPassEncoder.drawIndexed
160-
- api.GPURenderPassEncoder.drawIndexedIndirect
161-
- api.GPURenderPassEncoder.drawIndirect
162-
- api.GPURenderPassEncoder.end
163-
- api.GPURenderPassEncoder.endOcclusionQuery
164-
- api.GPURenderPassEncoder.executeBundles
165-
- api.GPURenderPassEncoder.insertDebugMarker
166-
- api.GPURenderPassEncoder.label
167-
- api.GPURenderPassEncoder.popDebugGroup
168-
- api.GPURenderPassEncoder.pushDebugGroup
169-
- api.GPURenderPassEncoder.setBindGroup
170-
- api.GPURenderPassEncoder.setBlendConstant
171-
- api.GPURenderPassEncoder.setIndexBuffer
172-
- api.GPURenderPassEncoder.setPipeline
173-
- api.GPURenderPassEncoder.setScissorRect
174-
- api.GPURenderPassEncoder.setStencilReference
175-
- api.GPURenderPassEncoder.setVertexBuffer
176-
- api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer
177-
- api.GPURenderPassEncoder.setViewport
178-
- api.GPURenderPipeline
179-
- api.GPURenderPipeline.getBindGroupLayout
180-
- api.GPURenderPipeline.label
181-
- api.GPUSampler
182-
- api.GPUSampler.label
183-
- api.GPUShaderModule
184-
- api.GPUShaderModule.getCompilationInfo
185-
- api.GPUShaderModule.label
186-
- api.GPUSupportedFeatures
187-
- api.GPUSupportedFeatures.@@iterator
188-
- api.GPUSupportedFeatures.entries
189-
- api.GPUSupportedFeatures.forEach
190-
- api.GPUSupportedFeatures.has
191-
- api.GPUSupportedFeatures.keys
192-
- api.GPUSupportedFeatures.size
193-
- api.GPUSupportedFeatures.values
194-
- api.GPUSupportedLimits
195-
- api.GPUSupportedLimits.maxBindGroups
196-
- api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers
197-
- api.GPUSupportedLimits.maxBindingsPerBindGroup
198-
- api.GPUSupportedLimits.maxBufferSize
199-
- api.GPUSupportedLimits.maxColorAttachmentBytesPerSample
200-
- api.GPUSupportedLimits.maxColorAttachments
201-
- api.GPUSupportedLimits.maxComputeInvocationsPerWorkgroup
202-
- api.GPUSupportedLimits.maxComputeWorkgroupSizeX
203-
- api.GPUSupportedLimits.maxComputeWorkgroupSizeY
204-
- api.GPUSupportedLimits.maxComputeWorkgroupSizeZ
205-
- api.GPUSupportedLimits.maxComputeWorkgroupStorageSize
206-
- api.GPUSupportedLimits.maxComputeWorkgroupsPerDimension
207-
- api.GPUSupportedLimits.maxDynamicStorageBuffersPerPipelineLayout
208-
- api.GPUSupportedLimits.maxDynamicUniformBuffersPerPipelineLayout
209-
- api.GPUSupportedLimits.maxInterStageShaderComponents
210-
- api.GPUSupportedLimits.maxInterStageShaderVariables
211-
- api.GPUSupportedLimits.maxSampledTexturesPerShaderStage
212-
- api.GPUSupportedLimits.maxSamplersPerShaderStage
213-
- api.GPUSupportedLimits.maxStorageBufferBindingSize
214-
- api.GPUSupportedLimits.maxStorageBuffersPerShaderStage
215-
- api.GPUSupportedLimits.maxStorageTexturesPerShaderStage
216-
- api.GPUSupportedLimits.maxTextureArrayLayers
217-
- api.GPUSupportedLimits.maxTextureDimension1D
218-
- api.GPUSupportedLimits.maxTextureDimension2D
219-
- api.GPUSupportedLimits.maxTextureDimension3D
220-
- api.GPUSupportedLimits.maxUniformBufferBindingSize
221-
- api.GPUSupportedLimits.maxUniformBuffersPerShaderStage
222-
- api.GPUSupportedLimits.maxVertexAttributes
223-
- api.GPUSupportedLimits.maxVertexBufferArrayStride
224-
- api.GPUSupportedLimits.maxVertexBuffers
225-
- api.GPUSupportedLimits.minStorageBufferOffsetAlignment
226-
- api.GPUSupportedLimits.minUniformBufferOffsetAlignment
227-
- api.GPUTexture
228-
- api.GPUTexture.createView
229-
- api.GPUTexture.depthOrArrayLayers
230-
- api.GPUTexture.destroy
231-
- api.GPUTexture.dimension
232-
- api.GPUTexture.format
233-
- api.GPUTexture.height
234-
- api.GPUTexture.label
235-
- api.GPUTexture.mipLevelCount
236-
- api.GPUTexture.sampleCount
237-
- api.GPUTexture.usage
238-
- api.GPUTexture.width
239-
- api.GPUTextureView
240-
- api.GPUTextureView.label
241-
- api.GPUUncapturedErrorEvent
242-
- api.GPUUncapturedErrorEvent.GPUUncapturedErrorEvent
243-
- api.GPUUncapturedErrorEvent.error
244-
- api.GPUValidationError
245-
- api.GPUValidationError.GPUValidationError
246-
- api.HTMLCanvasElement.getContext.webgpu_context
247-
- api.Navigator.gpu
248-
- api.OffscreenCanvas.getContext.webgpu_context
249-
- api.WGSLLanguageFeatures
250-
- api.WGSLLanguageFeatures.@@iterator
251-
- api.WGSLLanguageFeatures.entries
252-
- api.WGSLLanguageFeatures.forEach
253-
- api.WGSLLanguageFeatures.has
254-
- api.WGSLLanguageFeatures.keys
255-
- api.WGSLLanguageFeatures.size
256-
- api.WGSLLanguageFeatures.values
257-
- api.WorkerNavigator.gpu

features/webgpu.yml.dist

+71
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,14 @@ compat_features:
183183
- api.GPUSupportedFeatures
184184
- api.GPUSupportedFeatures.@@iterator
185185
- api.GPUSupportedFeatures.entries
186+
- api.GPUSupportedFeatures.feature_bgra8unorm-storage
187+
- api.GPUSupportedFeatures.feature_depth-clip-control
188+
- api.GPUSupportedFeatures.feature_depth32float-stencil8
189+
- api.GPUSupportedFeatures.feature_indirect-first-instance
190+
- api.GPUSupportedFeatures.feature_rg11b10ufloat-renderable
191+
- api.GPUSupportedFeatures.feature_texture-compression-astc
192+
- api.GPUSupportedFeatures.feature_texture-compression-bc
193+
- api.GPUSupportedFeatures.feature_texture-compression-etc2
186194
- api.GPUSupportedFeatures.forEach
187195
- api.GPUSupportedFeatures.has
188196
- api.GPUSupportedFeatures.keys
@@ -262,16 +270,63 @@ compat_features:
262270
# chrome: "117"
263271
# chrome_android: "121"
264272
# edge: "117"
273+
- api.GPUComputePassEncoder.setBindGroup.unset_bind_group
274+
- api.GPURenderBundleEncoder.setBindGroup.unset_bind_group
265275
- api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer
276+
- api.GPURenderPassEncoder.setBindGroup.unset_bind_group
266277
- api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer
267278

279+
# baseline: false
280+
# support:
281+
# chrome: "118"
282+
# chrome_android: "121"
283+
# edge: "118"
284+
- api.GPUQueue.copyExternalImageToTexture.htmlimageelement_imagedata_source
285+
286+
# baseline: false
287+
# support:
288+
# chrome: "119"
289+
# chrome_android: "121"
290+
# edge: "119"
291+
- api.GPUSupportedFeatures.feature_float32-filterable
292+
268293
# baseline: false
269294
# support:
270295
# chrome: "120"
271296
# chrome_android: "121"
272297
# edge: "120"
298+
- api.GPUSupportedFeatures.feature_shader-f16
273299
- api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers
274300

301+
# baseline: false
302+
# support:
303+
# chrome: "121"
304+
# chrome_android: "121"
305+
# edge: "121"
306+
- api.GPUCommandEncoder.beginComputePass.timestampWrites
307+
- api.GPUCommandEncoder.beginRenderPass.timestampWrites
308+
- api.GPUDevice.createComputePipeline.optional_entryPoint
309+
- api.GPUDevice.createComputePipelineAsync.optional_entryPoint
310+
- api.GPUDevice.createQuerySet.timestamp
311+
- api.GPUDevice.createRenderPipeline.optional_entryPoint
312+
- api.GPUDevice.createRenderPipelineAsync.optional_entryPoint
313+
- api.GPUQuerySet.type.timestamp
314+
- api.GPUSupportedFeatures.feature_timestamp-query
315+
316+
# baseline: false
317+
# support:
318+
# chrome: "125"
319+
# chrome_android: "125"
320+
# edge: "125"
321+
- api.GPUCommandEncoder.beginRenderPass.depthSlice_option
322+
323+
# baseline: false
324+
# support:
325+
# chrome: "126"
326+
# chrome_android: "126"
327+
# edge: "126"
328+
- api.GPUQueue.submit.validates_command_buffer_uniqueness
329+
275330
# baseline: false
276331
# support:
277332
# chrome: "127"
@@ -286,12 +341,24 @@ compat_features:
286341
# edge: "129"
287342
- api.GPUCanvasContext.configure.toneMapping
288343

344+
# baseline: false
345+
# support:
346+
# chrome: "130"
347+
# chrome_android: "130"
348+
# edge: "130"
349+
- api.GPUDevice.createRenderPipeline.dual-source-blending
350+
- api.GPUDevice.createRenderPipelineAsync.dual-source-blending
351+
- api.GPUSupportedFeatures.feature_dual-source-blending
352+
289353
# baseline: false
290354
# support:
291355
# chrome: "131"
292356
# chrome_android: "131"
293357
# edge: "131"
294358
- api.GPUCanvasContext.getConfiguration
359+
- api.GPUDevice.createRenderPipeline.validates_depth_bias_for_line_and_point_topologies
360+
- api.GPUDevice.createRenderPipelineAsync.validates_depth_bias_for_line_and_point_topologies
361+
- api.GPUSupportedFeatures.feature_clip-distances
295362

296363
# ⬇️ Same status as overall feature ⬇️
297364
# baseline: false
@@ -315,3 +382,7 @@ compat_features:
315382
- api.WGSLLanguageFeatures.keys
316383
- api.WGSLLanguageFeatures.size
317384
- api.WGSLLanguageFeatures.values
385+
386+
# baseline: false
387+
# support: {}
388+
- api.GPUSupportedFeatures.feature_float32-blendable

0 commit comments

Comments
 (0)