diff --git a/features/webgpu.yml b/features/webgpu.yml index c59bc820e11..49e3f19e55c 100644 --- a/features/webgpu.yml +++ b/features/webgpu.yml @@ -4,254 +4,3 @@ spec: https://gpuweb.github.io/gpuweb/ caniuse: webgpu status: compute_from: api.Navigator.gpu -compat_features: - - api.GPU - - api.GPU.getPreferredCanvasFormat - - api.GPU.requestAdapter - - api.GPU.requestAdapter.discrete_adapter_default_ac - - api.GPU.wgslLanguageFeatures - - api.GPUAdapter - - api.GPUAdapter.features - - api.GPUAdapter.info - - api.GPUAdapter.isFallbackAdapter - - api.GPUAdapter.limits - - api.GPUAdapter.requestDevice - - api.GPUAdapter.requestDevice.lost_device_on_duplicate - - api.GPUAdapterInfo - - api.GPUAdapterInfo.architecture - - api.GPUAdapterInfo.description - - api.GPUAdapterInfo.device - - api.GPUAdapterInfo.vendor - - api.GPUBindGroup - - api.GPUBindGroup.label - - api.GPUBindGroupLayout - - api.GPUBindGroupLayout.label - - api.GPUBuffer - - api.GPUBuffer.destroy - - api.GPUBuffer.getMappedRange - - api.GPUBuffer.label - - api.GPUBuffer.mapAsync - - api.GPUBuffer.mapState - - api.GPUBuffer.size - - api.GPUBuffer.unmap - - api.GPUBuffer.usage - - api.GPUCanvasContext - - api.GPUCanvasContext.canvas - - api.GPUCanvasContext.configure - - api.GPUCanvasContext.configure.toneMapping - - api.GPUCanvasContext.getConfiguration - - api.GPUCanvasContext.getCurrentTexture - - api.GPUCanvasContext.unconfigure - - api.GPUCommandBuffer - - api.GPUCommandBuffer.label - - api.GPUCommandEncoder - - api.GPUCommandEncoder.beginComputePass - - api.GPUCommandEncoder.beginRenderPass - - api.GPUCommandEncoder.clearBuffer - - api.GPUCommandEncoder.copyBufferToBuffer - - api.GPUCommandEncoder.copyBufferToTexture - - api.GPUCommandEncoder.copyTextureToBuffer - - api.GPUCommandEncoder.copyTextureToTexture - - api.GPUCommandEncoder.finish - - api.GPUCommandEncoder.insertDebugMarker - - api.GPUCommandEncoder.label - - api.GPUCommandEncoder.popDebugGroup - - api.GPUCommandEncoder.pushDebugGroup - - api.GPUCommandEncoder.resolveQuerySet - - api.GPUCompilationInfo - - api.GPUCompilationInfo.messages - - api.GPUCompilationMessage - - api.GPUCompilationMessage.length - - api.GPUCompilationMessage.lineNum - - api.GPUCompilationMessage.linePos - - api.GPUCompilationMessage.message - - api.GPUCompilationMessage.offset - - api.GPUCompilationMessage.type - - api.GPUComputePassEncoder - - api.GPUComputePassEncoder.dispatchWorkgroups - - api.GPUComputePassEncoder.dispatchWorkgroupsIndirect - - api.GPUComputePassEncoder.end - - api.GPUComputePassEncoder.insertDebugMarker - - api.GPUComputePassEncoder.label - - api.GPUComputePassEncoder.popDebugGroup - - api.GPUComputePassEncoder.pushDebugGroup - - api.GPUComputePassEncoder.setBindGroup - - api.GPUComputePassEncoder.setPipeline - - api.GPUComputePipeline - - api.GPUComputePipeline.getBindGroupLayout - - api.GPUComputePipeline.label - - api.GPUDevice - - api.GPUDevice.createBindGroup - - api.GPUDevice.createBindGroupLayout - - api.GPUDevice.createBuffer - - api.GPUDevice.createCommandEncoder - - api.GPUDevice.createComputePipeline - - api.GPUDevice.createComputePipelineAsync - - api.GPUDevice.createPipelineLayout - - api.GPUDevice.createQuerySet - - api.GPUDevice.createRenderBundleEncoder - - api.GPUDevice.createRenderPipeline - - api.GPUDevice.createRenderPipelineAsync - - api.GPUDevice.createSampler - - api.GPUDevice.createShaderModule - - api.GPUDevice.createTexture - - api.GPUDevice.destroy - - api.GPUDevice.features - - api.GPUDevice.importExternalTexture - - api.GPUDevice.importExternalTexture.videoframe_source - - api.GPUDevice.label - - api.GPUDevice.limits - - api.GPUDevice.lost - - api.GPUDevice.popErrorScope - - api.GPUDevice.pushErrorScope - - api.GPUDevice.queue - - api.GPUDevice.uncapturederror_event - - api.GPUDeviceLostInfo - - api.GPUDeviceLostInfo.message - - api.GPUDeviceLostInfo.reason - - api.GPUError - - api.GPUError.message - - api.GPUExternalTexture - - api.GPUExternalTexture.label - - api.GPUInternalError - - api.GPUInternalError.GPUInternalError - - api.GPUOutOfMemoryError - - api.GPUOutOfMemoryError.GPUOutOfMemoryError - - api.GPUPipelineError - - api.GPUPipelineError.GPUPipelineError - - api.GPUPipelineError.GPUPipelineError.message_optional - - api.GPUPipelineError.reason - - api.GPUPipelineLayout - - api.GPUPipelineLayout.label - - api.GPUQuerySet - - api.GPUQuerySet.count - - api.GPUQuerySet.destroy - - api.GPUQuerySet.label - - api.GPUQuerySet.type - - api.GPUQueue - - api.GPUQueue.copyExternalImageToTexture - - api.GPUQueue.copyExternalImageToTexture.videoframe_source - - api.GPUQueue.label - - api.GPUQueue.onSubmittedWorkDone - - api.GPUQueue.submit - - api.GPUQueue.writeBuffer - - api.GPUQueue.writeTexture - - api.GPURenderBundle - - api.GPURenderBundle.label - - api.GPURenderBundleEncoder - - api.GPURenderBundleEncoder.draw - - api.GPURenderBundleEncoder.drawIndexed - - api.GPURenderBundleEncoder.drawIndexedIndirect - - api.GPURenderBundleEncoder.drawIndirect - - api.GPURenderBundleEncoder.finish - - api.GPURenderBundleEncoder.insertDebugMarker - - api.GPURenderBundleEncoder.label - - api.GPURenderBundleEncoder.popDebugGroup - - api.GPURenderBundleEncoder.pushDebugGroup - - api.GPURenderBundleEncoder.setBindGroup - - api.GPURenderBundleEncoder.setIndexBuffer - - api.GPURenderBundleEncoder.setPipeline - - api.GPURenderBundleEncoder.setVertexBuffer - - api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer - - api.GPURenderPassEncoder - - api.GPURenderPassEncoder.beginOcclusionQuery - - api.GPURenderPassEncoder.draw - - api.GPURenderPassEncoder.drawIndexed - - api.GPURenderPassEncoder.drawIndexedIndirect - - api.GPURenderPassEncoder.drawIndirect - - api.GPURenderPassEncoder.end - - api.GPURenderPassEncoder.endOcclusionQuery - - api.GPURenderPassEncoder.executeBundles - - api.GPURenderPassEncoder.insertDebugMarker - - api.GPURenderPassEncoder.label - - api.GPURenderPassEncoder.popDebugGroup - - api.GPURenderPassEncoder.pushDebugGroup - - api.GPURenderPassEncoder.setBindGroup - - api.GPURenderPassEncoder.setBlendConstant - - api.GPURenderPassEncoder.setIndexBuffer - - api.GPURenderPassEncoder.setPipeline - - api.GPURenderPassEncoder.setScissorRect - - api.GPURenderPassEncoder.setStencilReference - - api.GPURenderPassEncoder.setVertexBuffer - - api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer - - api.GPURenderPassEncoder.setViewport - - api.GPURenderPipeline - - api.GPURenderPipeline.getBindGroupLayout - - api.GPURenderPipeline.label - - api.GPUSampler - - api.GPUSampler.label - - api.GPUShaderModule - - api.GPUShaderModule.getCompilationInfo - - api.GPUShaderModule.label - - api.GPUSupportedFeatures - - api.GPUSupportedFeatures.@@iterator - - api.GPUSupportedFeatures.entries - - api.GPUSupportedFeatures.forEach - - api.GPUSupportedFeatures.has - - api.GPUSupportedFeatures.keys - - api.GPUSupportedFeatures.size - - api.GPUSupportedFeatures.values - - api.GPUSupportedLimits - - api.GPUSupportedLimits.maxBindGroups - - api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers - - api.GPUSupportedLimits.maxBindingsPerBindGroup - - api.GPUSupportedLimits.maxBufferSize - - api.GPUSupportedLimits.maxColorAttachmentBytesPerSample - - api.GPUSupportedLimits.maxColorAttachments - - api.GPUSupportedLimits.maxComputeInvocationsPerWorkgroup - - api.GPUSupportedLimits.maxComputeWorkgroupSizeX - - api.GPUSupportedLimits.maxComputeWorkgroupSizeY - - api.GPUSupportedLimits.maxComputeWorkgroupSizeZ - - api.GPUSupportedLimits.maxComputeWorkgroupStorageSize - - api.GPUSupportedLimits.maxComputeWorkgroupsPerDimension - - api.GPUSupportedLimits.maxDynamicStorageBuffersPerPipelineLayout - - api.GPUSupportedLimits.maxDynamicUniformBuffersPerPipelineLayout - - api.GPUSupportedLimits.maxInterStageShaderComponents - - api.GPUSupportedLimits.maxInterStageShaderVariables - - api.GPUSupportedLimits.maxSampledTexturesPerShaderStage - - api.GPUSupportedLimits.maxSamplersPerShaderStage - - api.GPUSupportedLimits.maxStorageBufferBindingSize - - api.GPUSupportedLimits.maxStorageBuffersPerShaderStage - - api.GPUSupportedLimits.maxStorageTexturesPerShaderStage - - api.GPUSupportedLimits.maxTextureArrayLayers - - api.GPUSupportedLimits.maxTextureDimension1D - - api.GPUSupportedLimits.maxTextureDimension2D - - api.GPUSupportedLimits.maxTextureDimension3D - - api.GPUSupportedLimits.maxUniformBufferBindingSize - - api.GPUSupportedLimits.maxUniformBuffersPerShaderStage - - api.GPUSupportedLimits.maxVertexAttributes - - api.GPUSupportedLimits.maxVertexBufferArrayStride - - api.GPUSupportedLimits.maxVertexBuffers - - api.GPUSupportedLimits.minStorageBufferOffsetAlignment - - api.GPUSupportedLimits.minUniformBufferOffsetAlignment - - api.GPUTexture - - api.GPUTexture.createView - - api.GPUTexture.depthOrArrayLayers - - api.GPUTexture.destroy - - api.GPUTexture.dimension - - api.GPUTexture.format - - api.GPUTexture.height - - api.GPUTexture.label - - api.GPUTexture.mipLevelCount - - api.GPUTexture.sampleCount - - api.GPUTexture.usage - - api.GPUTexture.width - - api.GPUTextureView - - api.GPUTextureView.label - - api.GPUUncapturedErrorEvent - - api.GPUUncapturedErrorEvent.GPUUncapturedErrorEvent - - api.GPUUncapturedErrorEvent.error - - api.GPUValidationError - - api.GPUValidationError.GPUValidationError - - api.HTMLCanvasElement.getContext.webgpu_context - - api.Navigator.gpu - - api.OffscreenCanvas.getContext.webgpu_context - - api.WGSLLanguageFeatures - - api.WGSLLanguageFeatures.@@iterator - - api.WGSLLanguageFeatures.entries - - api.WGSLLanguageFeatures.forEach - - api.WGSLLanguageFeatures.has - - api.WGSLLanguageFeatures.keys - - api.WGSLLanguageFeatures.size - - api.WGSLLanguageFeatures.values - - api.WorkerNavigator.gpu diff --git a/features/webgpu.yml.dist b/features/webgpu.yml.dist index f0f4deadbab..f1fe51ef8bd 100644 --- a/features/webgpu.yml.dist +++ b/features/webgpu.yml.dist @@ -183,6 +183,14 @@ compat_features: - api.GPUSupportedFeatures - api.GPUSupportedFeatures.@@iterator - api.GPUSupportedFeatures.entries + - api.GPUSupportedFeatures.feature_bgra8unorm-storage + - api.GPUSupportedFeatures.feature_depth-clip-control + - api.GPUSupportedFeatures.feature_depth32float-stencil8 + - api.GPUSupportedFeatures.feature_indirect-first-instance + - api.GPUSupportedFeatures.feature_rg11b10ufloat-renderable + - api.GPUSupportedFeatures.feature_texture-compression-astc + - api.GPUSupportedFeatures.feature_texture-compression-bc + - api.GPUSupportedFeatures.feature_texture-compression-etc2 - api.GPUSupportedFeatures.forEach - api.GPUSupportedFeatures.has - api.GPUSupportedFeatures.keys @@ -262,16 +270,63 @@ compat_features: # chrome: "117" # chrome_android: "121" # edge: "117" + - api.GPUComputePassEncoder.setBindGroup.unset_bind_group + - api.GPURenderBundleEncoder.setBindGroup.unset_bind_group - api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer + - api.GPURenderPassEncoder.setBindGroup.unset_bind_group - api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer + # baseline: false + # support: + # chrome: "118" + # chrome_android: "121" + # edge: "118" + - api.GPUQueue.copyExternalImageToTexture.htmlimageelement_imagedata_source + + # baseline: false + # support: + # chrome: "119" + # chrome_android: "121" + # edge: "119" + - api.GPUSupportedFeatures.feature_float32-filterable + # baseline: false # support: # chrome: "120" # chrome_android: "121" # edge: "120" + - api.GPUSupportedFeatures.feature_shader-f16 - api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers + # baseline: false + # support: + # chrome: "121" + # chrome_android: "121" + # edge: "121" + - api.GPUCommandEncoder.beginComputePass.timestampWrites + - api.GPUCommandEncoder.beginRenderPass.timestampWrites + - api.GPUDevice.createComputePipeline.optional_entryPoint + - api.GPUDevice.createComputePipelineAsync.optional_entryPoint + - api.GPUDevice.createQuerySet.timestamp + - api.GPUDevice.createRenderPipeline.optional_entryPoint + - api.GPUDevice.createRenderPipelineAsync.optional_entryPoint + - api.GPUQuerySet.type.timestamp + - api.GPUSupportedFeatures.feature_timestamp-query + + # baseline: false + # support: + # chrome: "125" + # chrome_android: "125" + # edge: "125" + - api.GPUCommandEncoder.beginRenderPass.depthSlice_option + + # baseline: false + # support: + # chrome: "126" + # chrome_android: "126" + # edge: "126" + - api.GPUQueue.submit.validates_command_buffer_uniqueness + # baseline: false # support: # chrome: "127" @@ -286,12 +341,24 @@ compat_features: # edge: "129" - api.GPUCanvasContext.configure.toneMapping + # baseline: false + # support: + # chrome: "130" + # chrome_android: "130" + # edge: "130" + - api.GPUDevice.createRenderPipeline.dual-source-blending + - api.GPUDevice.createRenderPipelineAsync.dual-source-blending + - api.GPUSupportedFeatures.feature_dual-source-blending + # baseline: false # support: # chrome: "131" # chrome_android: "131" # edge: "131" - api.GPUCanvasContext.getConfiguration + - api.GPUDevice.createRenderPipeline.validates_depth_bias_for_line_and_point_topologies + - api.GPUDevice.createRenderPipelineAsync.validates_depth_bias_for_line_and_point_topologies + - api.GPUSupportedFeatures.feature_clip-distances # ⬇️ Same status as overall feature ⬇️ # baseline: false @@ -315,3 +382,7 @@ compat_features: - api.WGSLLanguageFeatures.keys - api.WGSLLanguageFeatures.size - api.WGSLLanguageFeatures.values + + # baseline: false + # support: {} + - api.GPUSupportedFeatures.feature_float32-blendable