WPT
wpt / webnn / validation_tests / conv2d.https.any.html?npu
Spec: Web Neural Network API ↗
Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@4a01b83e3, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-a7825 (wpt@4a01b83e3, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 60/60 | 0/60 | 0/60 | 0/60 | 0/60 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator") | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] throw if input is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] throw if filter is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] throw if bias option is from another builder | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with default options. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with padding. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with strides and padding. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with strides and asymmetric padding. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test depthwise conv2d by setting groups to input channels. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test depthwise conv2d with groups, inputLayout="nhwc" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with dilations, inputLayout="nhwc" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nchw" and filterLayout="oihw". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nchw" and filterLayout="hwio". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nchw" and filterLayout="ohwi". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nchw" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nhwc" and filterLayout="oihw". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nhwc" and filterLayout="hwio". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nhwc" and filterLayout="ohwi". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Test with inputLayout="nhwc" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the input is not a 4-D tensor. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the input data type is not floating point. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the filter is not a 4-D tensor. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the filter data type doesn't match the input data type. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the length of padding is not 4. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the length of strides is not 2. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if strideHeight is smaller than 1. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if strideWidth is smaller than 1. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the length of dilations is not 2. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if dilationHeight is smaller than 1. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if dilationWidth is smaller than 1. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels % groups is not 0. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the groups is smaller than 1. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to overflow when calculating the effective filter height. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to overflow when calculating the effective filter width. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to overflow when dilation height is too large. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to overflow when dilation width is too large. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to underflow when calculating the output height. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw due to underflow when calculating the output width. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias is not a 1-D tensor. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="oihw". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="hwio". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="ohwi". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the bias data type doesn't match input data type. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nchw" and filterLayout="oihw". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nchw" and filterLayout="hwio". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nchw" and filterLayout="ohwi". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nchw" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nhwc" and filterLayout="oihw". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nhwc" and filterLayout="hwio". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nhwc" and filterLayout="ohwi". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if inputChannels / groups is not equal to filterInputChannels with inputLayout="nhwc" and filterLayout="ihwo". | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the intermediate padded tensor is too large. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if a stride is larger than the padded input height. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if a stride is larger than the padded input width. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if a dilation is larger than the padded input height. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if a dilation is larger than the padded input width. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the dilated effective filter height is larger than the padded input height. | PASS | FAIL | FAIL | FAIL | FAIL | — |
| [conv2d] Throw if the dilated effective filter width is larger than the padded input width. | PASS | FAIL | FAIL | FAIL | FAIL | — |