Skip to content

Add CI-portable regression test for ExternalTexture array-layer (layerIndex) selection #1743

Description

@bghgary

[Filed by Copilot on behalf of @bghgary]

#1646 adds layerIndex selection for multi-layer ExternalTextures (e.g. NV12 array textures), but ships without an automated regression test.

A synthetic NV12 render test was prototyped (reverted in 8c27c87) but renders inconsistently on the GPU-less CI adapter. The D3D11 WARP software rasterizer appears to sample the R8G8 NV12 chroma-plane single-slice SRV using the luma height instead of the chroma height (H/2), zeroing chroma below H/2 and producing a ~50% pixel mismatch. The same test passes consistently on hardware GPUs, so the path is currently validated on real hardware only.

Task

Add a CI-portable regression test for ExternalTexture array-layer handling that is deterministic on the GPU-less CI adapter. It should cover:

  • Single-slice selection across multiple layers — selecting layerIndex 0, 1, … on a multi-layer source each views the correct slice (distinct per-slice content).
  • Full multi-slice / no-layerIndex path — the default whole-array bind is unregressed.

Approaches to dodge the WARP chroma-height discrepancy: exercise a format/path not subject to it, assert only on the correctly-sampled region, or run on a hardware-GPU runner if one becomes available.

References

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions