Skip to content

AGC: native 4-sample D32 depth sampled with HTILE but without ITERATE_256 is refused (Onimusha: Way of the Sword, PPSA27836) #6362

Closed

Description

@simonbronk

Onimusha: Way of the Sword (PPSA27836) samples a native 4-sample depth target whose HTILE isn't ITERATE_256, and stops on the new game's first scene load. No open PR covers this case. #6300, #6297, #5554 and #5627 all assume ITERATE_256.

AGC graphics: native multisample depth initial import requires pipe-aligned ITERATE_256 HTILE without VRS

I added a local print of the target in prepareDepthSampling (DepthSurface.cpp):

field value
format VK_FORMAT_D32_SFLOAT (126)
samples 4
extent 128x64
HTILE address 0x2000c10000 (non-zero, 256-byte aligned)
iterate256 0
htilePipeAligned 1
htileVrsEncoding 0

So the target passes every other check before this one: format, sample count, Z_X single slice, XOR, base alignment, no stencil. Only ITERATE_256 is off.

Where: after New Game, difficulty and control-style selection, during the first scene load. It happens every run.

Setup: Windows 11, RTX 5070 (NVIDIA 617.42), main 0afa6a6 with #5907, #5776, #5770, #5703, #5841, #5884, #5915 and #5815, plus local sample-count changes.

Host import: this refusal only shows with APS5_NO_HOST_IMPORT=1. With host imports on, the same load ends earlier, at the same point after the save, in VK_ERROR_DEVICE_LOST. NVIDIA device fault reports read invalid at 0x4840000, the same address every run. The last GPU checkpoint is an 8x8 compute program that samples two 2D textures and writes a 16x16x8 3D storage image. I'm still narrowing that one down. It isn't changed by any of these:

How HTILE is laid out without ITERATE_256 isn't settled here, so I haven't guessed an implementation. If someone has the layout, or a hardware measurement of it, I can test a change on this title right away.

Activity

  1. simonbronk commented on Oct 15, 2026

    @simonbronk
    ContributorAuthor

    The device loss with host imports on, mentioned above, now has its own issue with the data: #6374.

  2. simonbronk commented on Oct 15, 2026

    @simonbronk
    ContributorAuthor

    Fix in #6557: the initial import no longer requires ITERATE_256, because it reads no compressed Z planes and the HTILE clear words and footprint do not depend on it (sources in the PR). Tested on Onimusha (PPSA27836) with APS5_NO_HOST_IMPORT=1 on Windows 11, RTX 5070 and AMD gfx1036: the load passes this point and stops at the next refusal, sample-preserving guest publication of native multisample depth is not implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions