| <script> |
| globalThis.testRunner?.waitUntilDone(); |
| const log = console.debug; |
| |
| onload = async () => { |
| let adapter = await navigator.gpu.requestAdapter({}); |
| let device = await adapter.requestDevice({}); |
| device.pushErrorScope('validation'); |
| let code = ` |
| @group(0) @binding(0) var t: texture_1d<f32>; |
| |
| @vertex |
| fn v() -> @builtin(position) vec4f { |
| return vec4(); |
| } |
| |
| @fragment |
| fn f() -> @location(0) vec4f { |
| _ = textureDimensions(t, 1); |
| return vec4(); |
| } |
| `; |
| let module = device.createShaderModule({code}); |
| let bindGroupLayout = device.createBindGroupLayout({ |
| entries: [{binding: 0, visibility: GPUShaderStage.FRAGMENT, texture: {viewDimension: '1d'}}], |
| }); |
| device.createRenderPipeline({ |
| layout: device.createPipelineLayout({bindGroupLayouts: [bindGroupLayout]}), |
| vertex: {module, buffers: []}, |
| fragment: {module, targets: [{format: 'bgra8unorm'}]}, |
| }); |
| let error = await device.popErrorScope(); |
| if (error) { |
| log('validation error'); |
| log(error.message); |
| } else { |
| log('no validation error'); |
| } |
| globalThis.testRunner?.notifyDone(); |
| }; |
| </script> |