blob: 596d937783ae33e0c03e85ff966862364e60c115 [file] [log] [blame] [edit]
<script>
if (window.testRunner) { testRunner.waitUntilDone(); testRunner.dumpAsText() }
function videoWithData() {
const veryBrightVideo = `data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAAvG1kYXQAAAAfTgEFGkdWStxcTEM/lO/FETzRQ6gD7gAA7gIAA3EYgAAAAEgoAa8iNjAkszOL+e58c//cEe//0TT//scp1n/381P/RWP/zOW4QtxorfVogeh8nQDbQAAAAwAQMCcWUTAAAAMAAAMAAAMA84AAAAAVAgHQAyu+KT35E7gAADFgAAADABLQAAAAEgIB4AiS76MTkNbgAAF3AAAPSAAAABICAeAEn8+hBOTXYAADUgAAHRAAAAPibW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAAKcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAw10cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAAKcAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAABAAAAAQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAACnAAAAAAABAAAAAAKFbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAABdwAAAD6BVxAAAAAAAMWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABDb3JlIE1lZGlhIFZpZGVvAAAAAixtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAHsc3RibAAAARxzdHNkAAAAAAAAAAEAAAEMaHZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAQABAASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAAHVodmNDAQIgAAAAsAAAAAAAPPAA/P36+gAACwOgAAEAGEABDAH//wIgAAADALAAAAMAAAMAPBXAkKEAAQAmQgEBAiAAAAMAsAAAAwAAAwA8oBQgQcCTDLYgV7kWVYC1CRAJAICiAAEACUQBwChkuNBTJAAAAApmaWVsAQAAAAATY29scm5jbHgACQAQAAkAAAAAEHBhc3AAAAABAAAAAQAAABRidHJ0AAAAAAAALPwAACz8AAAAKHN0dHMAAAAAAAAAAwAAAAIAAAPoAAAAAQAAAAEAAAABAAAD6AAAABRzdHNzAAAAAAAAAAEAAAABAAAAEHNkdHAAAAAAIBAQGAAAAChjdHRzAAAAAAAAAAMAAAABAAAAAAAAAAEAAAfQAAAAAgAAAAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAQAAAABAAAAJHN0c3oAAAAAAAAAAAAAAAQAAABvAAAAGQAAABYAAAAWAAAAFHN0Y28AAAAAAAAAAQAAACwAAABhdWR0YQAAAFltZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAACxpbHN0AAAAJKl0b28AAAAcZGF0YQAAAAEAAAAATGF2ZjYwLjMuMTAw`;
let video = document.createElement('video');
video.src = veryBrightVideo;
return new Promise(resolve => {
video.onloadeddata = () => {
resolve(video);
};
});
}
onload = async () => {
let adapter0 = await navigator.gpu.requestAdapter(
{
}
);
let promise0 = adapter0.requestDevice(
{
label: '\ue3b5',
requiredFeatures: [
'depth-clip-control',
'depth32float-stencil8',
'indirect-first-instance',
'shader-f16',
'rg11b10ufloat-renderable'
],
requiredLimits: {
maxColorAttachmentBytesPerSample: 34,
maxVertexBufferArrayStride: 8035,
maxStorageTexturesPerShaderStage: 9,
maxBindingsPerBindGroup: 910,
maxTextureArrayLayers: 980,
maxTextureDimension1D: 8875,
maxTextureDimension2D: 14193,
minStorageBufferOffsetAlignment: 256,
minUniformBufferOffsetAlignment: 256,
},
}
);
let device1 = await promise0;
let canvas1 = document.createElement('canvas');
let gpuCanvasContext1 = canvas1.getContext('webgpu');
try {
gpuCanvasContext1.configure(
{
device: device1,
format: 'rgba16float',
usage: 0,
viewFormats: [
],
colorSpace: 'srgb',
alphaMode: 'opaque',
}
);
} catch {}
device1.destroy();
let texture10 = gpuCanvasContext1.getCurrentTexture();
let video3 = await videoWithData();
if (window.testRunner) { testRunner.notifyDone() }
};
</script>
This test passes if it does not crash.