D920 - A flat sample of an array reads its first layer
Status: decided Date: 2026-10-20
A draw may sample, with dim:2D, an image whose
descriptor is a 2D array or a cube, its view starting at the first
layer. That sample reads the first layer, or the first face. For a depth
surface, that is the target the host drew at slice zero (D909, D918).
For any other image, it is the first layer's level read as a flat image
would be. This is measured: obSCEne gt23 sampled
32_FLOAT and 16_UNORM arrays and cubes with
dim:2D (000-boot/gt23-dim2d-sample-array-cube,
report SHA-256 047d9e26…). Each sample read the layer or
face the view starts at - layer 0 or face 0 at BASE_ARRAY
0, layer 1 or face 1 at BASE_ARRAY 1 - whatever its
coordinates or a third coordinate the shader passed. A view starting at
a later layer is still refused here.
A 16_UNORM texture binds as R16 in draws:
sixteen bits a texel, two to a word, sampled as R16_UNORM
with each channel taken from the texel or a constant as its selects say,
as a one-byte texture's are.
Why: Grand Theft Auto V's loading-screen lighting
samples its point-light shadow cubes and a 64 x 64 x 32
16_UNORM array with dim:2D through one texture
slot. Each was refused as not the shape the module samples.