wgpu/tests/gpu-tests/queue_transfer.rs
2025-02-23 14:06:34 -05:00

52 lines
1.7 KiB
Rust

//! Tests for buffer copy validation.
use wgpu_test::{fail, gpu_test, GpuTestConfiguration};
#[gpu_test]
static QUEUE_WRITE_TEXTURE_OVERFLOW: GpuTestConfiguration =
GpuTestConfiguration::new().run_sync(|ctx| {
let texture = ctx.device.create_texture(&wgpu::TextureDescriptor {
label: None,
size: wgpu::Extent3d {
width: 146,
height: 25,
depth_or_array_layers: 192,
},
mip_level_count: 1,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba32Float,
usage: wgpu::TextureUsages::COPY_DST,
view_formats: &[],
});
let data = vec![255; 128];
fail(
&ctx.device,
|| {
ctx.queue.write_texture(
wgpu::TexelCopyTextureInfo {
texture: &texture,
mip_level: 0,
origin: wgpu::Origin3d { x: 0, y: 0, z: 1 },
aspect: wgpu::TextureAspect::All,
},
&data,
wgpu::TexelCopyBufferLayout {
offset: 0,
bytes_per_row: Some(879161360),
//bytes_per_image: 4294967295,
rows_per_image: Some(4294967295 / 879161360),
},
wgpu::Extent3d {
width: 3056263286,
height: 64,
depth_or_array_layers: 4294967295,
},
);
},
Some("end up overrunning the bounds of the destination texture"),
);
});