Skip to content
PS5PCEM
PartialGraphics

Multi-texel image loads

IMAGE_LOAD_BY2, BY4, PCK2 and PCK4, including the explicit-mip forms, execute for the measured native 2D formats. A BY load returns consecutive texels. A PCK load packs their raw bits into one register.

Repository notes through October 10, 2026

BY and PCK

A BY load writes consecutive texels into separate VGPRs, channels ordered inside each texel. A PCK load packs the raw component bits into one 32-bit VGPR, with the first texel in the least significant bits. Signed components are truncated to their storage width. UNORM components are reconstructed with round-to-even conversion.

The first texel is aligned down to a group of two or four in X. The bounds test uses the original, unaligned coordinate: the whole group must fit before alignment, Y must be in range, and the requested mip must exist. An invalid group zeros every result register and leaves unrelated destinations alone. Invalid coordinates are replaced with safe fetch operands before Vulkan sees them.

Which formats

BY2 with DMASK 0x3 covers R8 and R16 in UNORM, SNORM, UINT, SINT, and R16 FLOAT. BY2 with DMASK 0xF covers RG8 UNORM, SNORM, UINT and SINT. BY4 with DMASK 0xF covers R8 in those four numeric types. PCK2 with DMASK 0x1 covers R8, R16 and RG8 UNORM, UINT and SINT. PCK4 with DMASK 0x1 covers R8 UNORM, UINT and SINT. Explicit-mip variants of those loads use the same format lists.

The backend gives translation the exact native format. Separate UINT and SINT sampled-image banks keep integer results typed correctly next to the floating-point and comparison banks. NSA coordinates, overlapping address and destination registers, and the ordinary EXEC mask are preserved.

What the change is not

The October 9 report is shared shader and backend support. It does not depend on a game identifier or a shader hash. No game compatibility result and no frame-rate change is claimed from these loads alone.

Stores, and format or descriptor combinations that were not in the measured set, stay unsupported. Horizontal gathers are the neighbouring instruction family and have their own page.

What is implemented

  • Measured 2D BY2, BY4, PCK2 and PCK4 loads, with and without an explicit mip.
  • Group alignment, checked bounds, and zeroed results for an invalid group.
  • Separate integer sampled-image banks so UINT and SINT stay typed.
  • EXEC masks, NSA coordinates and overlapping register pairs preserved.

What is still missing

  • Image stores of these forms are not implemented.
  • Formats and descriptor modes outside the measured table are rejected.
  • The tests do not establish a new frames-per-second figure for any title.

Related mechanisms

What these pages are

The text follows the architecture notes and the October 2026 reports in the PS5PCEM repository. A focused test passing is not a new frame rate and not a new playthrough.

All technologies