mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
This commit was authored by running the following Nushell script, using the `nu` binary and the lovely `fastmod` tool: ```nushell # Copy-pasted from the OP in [`gpuweb`#4838](https://github.com/gpuweb/gpuweb/pull/4838). let renames_table = ' Type Old New Used in dict GPUImageDataLayout GPUTexelCopyBufferLayout "writeTexture, parent type of ↙" dict GPUImageCopyBuffer "GPUTexelCopyBufferInfo extends ↑" T2B, B2T dict GPUImageCopyTexture GPUTexelCopyTextureInfo T2B, B2T, T2T, writeTexture dict GPUImageCopyTextureTagged "GPUCopyExternalImageDestInfo extends ↑" copyExternalImageToTexture dict GPUImageCopyExternalImage GPUCopyExternalImageSourceInfo copyExternalImageToTexture union GPUImageCopyExternalImageSource GPUCopyExternalImageSource member of ↖ ' let renames_table = $renames_table | from tsv | select 'Old ' 'New ' | rename old new | update new { $in | lines | get 0 } # only the first line has the renamed symbol identifier | update old { strip_gpu_prefix | str trim } | update new { strip_gpu_prefix | str trim } | sort-by old | reverse # Replace most specific symbol names first (some have the same "word segments" but with fewer segments) def strip_gpu_prefix []: string -> string { $in | str replace --regex '^GPU' '' } # Rename image APIs. for entry in $renames_table { fastmod --accept-all --fixed-strings $entry.old $entry.new --iglob '!CHANGELOG.md' --iglob "!xtask/src/vendor_web_sys.rs" --iglob '!wgpu/src/backend/webgpu/webgpu_sys/' --iglob '!deno_webgpu/' --iglob '!wgpu/src/backend/webgpu.rs' } cargo fmt ``` …and cleaning up `deno_webgpu/`'s Rust compilation errors.
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"),
|
|
);
|
|
});
|