blob: 4b216916a41b5d1d83d90a4f40e404d50382d575 [file] [log] [blame]
<script>
async function makeDataUrl(width, height, color) {
let offscreenCanvas = new OffscreenCanvas(width, height);
let ctx = offscreenCanvas.getContext('2d');
ctx.fillStyle = color;
ctx.fillRect(0, 0, width, height);
let blob = await offscreenCanvas.convertToBlob();
let fileReader = new FileReader();
fileReader.readAsDataURL(blob);
return new Promise(resolve => {
fileReader.onload = () => {
resolve(fileReader.result);
};
});
}
async function imageWithData(width, height, color) {
let dataUrl = await makeDataUrl(width, height, color);
let img = document.createElement('img');
img.src = dataUrl;
await img.decode();
return img;
}
if (window.testRunner) { testRunner.waitUntilDone(); testRunner.dumpAsText() }
onload = async () => {
let adapter0 = await navigator.gpu.requestAdapter(
{
}
);
let device0 = await adapter0.requestDevice(
{
requiredFeatures: [
'depth-clip-control',
'depth32float-stencil8',
'shader-f16',
'rg11b10ufloat-renderable',
'bgra8unorm-storage'
],
}
);
let img0 = await imageWithData(2, 245, '#b84778');
let texture3 = device0.createTexture(
{
size: {
width: 5209,
height: 5392,
depthOrArrayLayers: 1,
},
mipLevelCount: 7,
sampleCount: 1,
dimension: '3d',
format: 'rgba16float',
usage: GPUTextureUsage.COPY_SRC,
viewFormats: [
'rgb9e5ufloat'
],
}
);
device0.queue.copyExternalImageToTexture(
{
source: img0,
origin: [
],
},
{
texture: texture3,
mipLevel: 6208,
origin: [
2518,
3374
],
aspect: 'depth-only',
colorSpace: 'srgb',
premultipliedAlpha: true,
},
[
]
);
if (window.testRunner) { testRunner.notifyDone() }
};
</script>
This test passes if it does not crash.