export const description = `Basic tests.`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { memcpy } from '../../../../common/util/util.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../gpu_test.js';export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);g.test('empty').fn(t => {const encoder = t.device.createCommandEncoder();const cmd = encoder.finish();t.device.queue.submit([cmd]);});g.test('b2t2b').fn(t => {const data = new Uint32Array([0x01020304]);const src = t.createBufferTracked({mappedAtCreation: true,size: 4,usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST,});memcpy({ src: data }, { dst: src.getMappedRange() });src.unmap();const dst = t.createBufferTracked({size: 4,usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST,});const mid = t.createTextureTracked({size: { width: 1, height: 1, depthOrArrayLayers: 1 },format: 'rgba8uint',usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,});const encoder = t.device.createCommandEncoder();encoder.copyBufferToTexture({ buffer: src, bytesPerRow: 256 },{ texture: mid, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ width: 1, height: 1, depthOrArrayLayers: 1 });encoder.copyTextureToBuffer({ texture: mid, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ buffer: dst, bytesPerRow: 256 },{ width: 1, height: 1, depthOrArrayLayers: 1 });t.device.queue.submit([encoder.finish()]);t.expectGPUBufferValuesEqual(dst, data);});g.test('b2t2t2b').fn(t => {const data = new Uint32Array([0x01020304]);const src = t.createBufferTracked({mappedAtCreation: true,size: 4,usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST,});memcpy({ src: data }, { dst: src.getMappedRange() });src.unmap();const dst = t.createBufferTracked({size: 4,usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST,});const midDesc: GPUTextureDescriptor = {size: { width: 1, height: 1, depthOrArrayLayers: 1 },format: 'rgba8uint',usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,};const mid1 = t.createTextureTracked(midDesc);const mid2 = t.createTextureTracked(midDesc);const encoder = t.device.createCommandEncoder();encoder.copyBufferToTexture({ buffer: src, bytesPerRow: 256 },{ texture: mid1, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ width: 1, height: 1, depthOrArrayLayers: 1 });encoder.copyTextureToTexture({ texture: mid1, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ texture: mid2, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ width: 1, height: 1, depthOrArrayLayers: 1 });encoder.copyTextureToBuffer({ texture: mid2, mipLevel: 0, origin: { x: 0, y: 0, z: 0 } },{ buffer: dst, bytesPerRow: 256 },{ width: 1, height: 1, depthOrArrayLayers: 1 });t.device.queue.submit([encoder.finish()]);t.expectGPUBufferValuesEqual(dst, data);});