mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
52 lines
1.7 KiB
Rust
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"),
|
|
);
|
|
});
|