Skip to content

Commit 22efde3

Browse files
committed
Update comments and change unwrap_or to expect
1 parent 32edf6a commit 22efde3

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

wgpu-core/src/command/transfer.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,14 @@ pub(crate) fn validate_linear_texture_data(
371371
/// * The copy must be from/to a single aspect of the texture.
372372
/// * If `aligned` is true, the buffer offset must be aligned appropriately.
373373
///
374-
/// Other checks in this algorithm are enforced elsewhere.
374+
/// The following steps in the algorithm are implemented elsewhere:
375+
/// * Invocation of other validation algorithms.
376+
/// * The texture usage (COPY_DST / COPY_SRC) check.
377+
/// * The check for non-copyable depth/stencil formats. The caller must perform
378+
/// this check using `is_valid_copy_src_format` / `is_valid_copy_dst_format`
379+
/// before calling this function. This function will panic if
380+
/// [`wgt::TextureFormat::block_copy_size`] returns `None` due to a
381+
/// non-copyable format.
375382
///
376383
/// [vtbc]: https://gpuweb.github.io/gpuweb/#abstract-opdef-validating-texture-buffer-copy
377384
pub(crate) fn validate_texture_buffer_copy<T>(
@@ -394,9 +401,13 @@ pub(crate) fn validate_texture_buffer_copy<T>(
394401
let mut offset_alignment = if desc.format.is_depth_stencil_format() {
395402
4
396403
} else {
404+
// The case where `block_copy_size` returns `None` is currently
405+
// unreachable both for the reason in the expect message, and also
406+
// because the currently-defined non-copyable formats are depth/stencil
407+
// formats so would take the `if` branch.
397408
desc.format
398409
.block_copy_size(Some(texture_copy_view.aspect))
399-
.unwrap_or(1)
410+
.expect("non-copyable formats should have been rejected previously")
400411
};
401412

402413
// TODO(https://github.com/gfx-rs/wgpu/issues/7947): This does not match the spec.

0 commit comments

Comments
 (0)