diff options
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/src/webgpu/compat/api/validation/render_pipeline/depth_stencil_state.spec.ts')
-rw-r--r-- | dom/webgpu/tests/cts/checkout/src/webgpu/compat/api/validation/render_pipeline/depth_stencil_state.spec.ts | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/compat/api/validation/render_pipeline/depth_stencil_state.spec.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/compat/api/validation/render_pipeline/depth_stencil_state.spec.ts new file mode 100644 index 0000000000..66045c2b8a --- /dev/null +++ b/dom/webgpu/tests/cts/checkout/src/webgpu/compat/api/validation/render_pipeline/depth_stencil_state.spec.ts @@ -0,0 +1,53 @@ +export const description = ` +Tests that depthBiasClamp must be zero in compat mode. +`; + +import { makeTestGroup } from '../../../../../common/framework/test_group.js'; +import { CompatibilityTest } from '../../../compatibility_test.js'; + +export const g = makeTestGroup(CompatibilityTest); + +g.test('depthBiasClamp') + .desc('Tests that depthBiasClamp must be zero in compat mode.') + .params(u => + u // + .combine('depthBiasClamp', [undefined, 0, 0.1, 1]) + .combine('async', [false, true] as const) + ) + .fn(t => { + const { depthBiasClamp, async } = t.params; + + const module = t.device.createShaderModule({ + code: ` + @vertex fn vs() -> @builtin(position) vec4f { + return vec4f(0); + } + + @fragment fn fs() -> @location(0) vec4f { + return vec4f(0); + } + `, + }); + + const pipelineDescriptor: GPURenderPipelineDescriptor = { + layout: 'auto', + vertex: { + module, + entryPoint: 'vs', + }, + fragment: { + module, + entryPoint: 'fs', + targets: [{ format: 'rgba8unorm' }], + }, + depthStencil: { + format: 'depth24plus', + depthWriteEnabled: true, + depthCompare: 'always', + ...(depthBiasClamp !== undefined && { depthBiasClamp }), + }, + }; + + const success = !depthBiasClamp; + t.doCreateRenderPipelineTest(async, success, pipelineDescriptor); + }); |