Skip to content

[DRAFT] [DirectX] Texture1DArray + TextureCubeArray + RWTextureCubeArray support #1267

Description

@alsepkow

⚠️ DRAFT — not ready for pickup. Title still being refined; do not assign or start work yet.

Background

PRs #1239 + #1256 + #1257 cover Texture2DArray end-to-end on DX and VK (Load + Store, multi-slice + multi-mip, per-slice 256-aligned upload helper). The remaining AC bullets on #1077 still call out Texture1DArray, TextureCubeArray, and RWTextureCubeArray as required variants — not delivered.

These were not folded into the existing array-texture PRs because they have distinct SRV/UAV dimensions (TEXTURE1DARRAY, TEXTURECUBEARRAY), distinct VK image-create flags (VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT), and a different number of slices per logical array element (cube = 6). Bolting them onto #1239/#1256/#1257 would obscure the "Tex2DArray works end-to-end" milestone.

Acceptance criteria

  • Add ResourceKind::Texture1DArray, TextureCubeArray, RWTextureCubeArray to include/API/Enums.h.
  • Extend YAML parser in lib/Support/Pipeline.cpp to accept the new kinds.
  • DX: extend getDXDimension / getResourceDescription / getSRVDescription / getUAVDescription (and the per-slice upload helper from [DX] Unify multi-subresource texture upload + Texture2DArray multi-mip support (stacked) #1256) for TEXTURE1DARRAY and TEXTURECUBEARRAY semantics. Cube uses DepthOrArraySize = 6*N with D3D12_SRV_DIMENSION_TEXTURECUBEARRAY / D3D12_UAV_DIMENSION_TEXTURE2DARRAY (cube UAVs are exposed as 2D arrays).
  • VK: extend getVkImageType / getVkImageViewType and add VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT for cube; VK_IMAGE_VIEW_TYPE_1D_ARRAY / _CUBE_ARRAY.
  • MTL: extend image-type switch (start as llvm_unreachable stub for convergence).
  • Add one Load + one Store test per new kind under test/Feature/Textures/.

Notes

Refs #1077, llvm/wg-hlsl#400.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
Planning

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions