Skip to content

ASTRO BOT integration: strict shader-memory and image-mode regressions #6

Open

Description

@p3n1cillin

Reproduced regressions in the inherited local ASTRO BOT integration

The full Windows integration suite passed 501 of 504 tests before merging newer upstream changes. All three failures also reproduce on the integration parent before the selected GPU-buffer capture feature, so they are not caused by PR #5.

  • agc_shader_memory: null nested pointer was accepted. The inherited ShaderMemory change reports unmapped reads as successful zero values without proving the dereference is unreachable. The existing strict-validation test detects this. Null/inaccessible reads must not silently fabricate shader inputs; handling unused pointers needs explicit control-flow-aware behavior or a documented unsupported-path error.
  • agc_driver_image_cache_bits and agc_driver_image_texel_status: SPIR-V emission fails on ImageGatherRaw with has an unsupported 1D gather variant. An inherited RuntimeImageModes change offers lower-dimensional variants for every eligible 2D/3D image use, including gathers the backend cannot emit. Compiling otherwise valid 2D gather tests therefore fails.

Both changes originated in local integration commit d2b0749. That commit is not part of upstream main. Baseline: d6192a3; selected-buffer integration: a17e587. Windows 11, MinGW-w64 GCC 15.2, RTX 5070 / driver 617.42. The three baseline test failures complete in 0.98 s; the full 504-test run took 36.98 s. Raw logs and title data remain private.

Work needed

Restore or replace the unsupported behavior with focused, tested changes. Keep the existing tests active; do not substitute fake shader values, clamp title loops or bypass unsupported instructions. Preserve compatibility evidence and report any earlier title stop exposed by stricter validation.

Open upstream boykopovar#2133 offers a narrower, hardware-measured 3D-access/2D-texture mode for specific sample/load uses and explicitly rejects other forms. It is a relevant candidate for replacing the broad local dimension patch, not evidence for 1D gather semantics. It has been inspected but not applied.

Latest upstream d70b899 was merged into local ecda565; its build and regression checks are still in progress. This issue records the prior measured baseline, not a claim about the new merge.

AI-assisted investigation and report: Codex. No raw game assets or proprietary diagnostic dumps are attached.

Activity

  1. p3n1cillin commented on Oct 9, 2026

    @p3n1cillin
    OwnerAuthor

    The latest upstream merge compiled successfully. Its full integration baseline still reproduced precisely the same three failures: 513 passed, 3 failed and 1 deliberate no-Vulkan skip, out of 517 (45.77 s).

    Two isolated local topic corrections now remove the inherited unsupported behavior:

    • c6a20c8 restores ShaderMemory's current upstream implementation, removing successful zero returns for unmapped reads.
    • 5ce4e9e removes the broad, unverified lower-dimensional RuntimeImageModes expansion that broke 2D gather compilation. Other unrelated local changes are retained.

    Integrated as 6c99b60 on current upstream d70b899. Full Windows build and CTest passed: 516 passed, zero failed, one intentional guest_video_out_wqhd_detection_no_vulkan skip (40.32 s). Existing strict-memory, image-cache-bits and texel-status tests now pass without changing or suppressing their assertions. Conventions and whitespace checks pass.

    A fresh authorized title diagnostic is running with that runtime. An earlier compatibility stop exposed by strict validation remains possible and will be reported explicitly; these corrections alone do not establish title progression or graphics correctness. No loop clamps, fake values, instruction skips or proprietary data were added. AI-assisted corrections and validation: Codex.

  2. p3n1cillin commented on Oct 9, 2026

    @p3n1cillin
    OwnerAuthor

    The strict integration game test stopped before any completed display flips: shader capture for compute program 0x5005e7b00 reported an inaccessible read at 0x30. The abort was preserved and the verified lingering process stopped. This is an earlier compatibility failure exposed by removing unguarded fabricated zero reads; the 516 passing unit tests do not imply that the title boots.

    Existing upstream boykopovar#759 and its dependent boykopovar#1292 implement deferred faults for null/unmapped SRT reads and descriptors. They keep poison records with the original program counter/address and insert runtime fault checks at guarded ReadConst instructions; a skipped read does not fault, while an executed invalid read does. They have been inspected and cherry-picked with original authorship into an isolated candidate branch for local testing, not yet integrated or title-validated. Existing strict cases for user-data/table pointers and branch conditions remain failures. No replacement implementation or duplicate upstream PR is being introduced.

    AI-assisted investigation (Codex); no title inputs or raw diagnostic dumps attached.

  3. p3n1cillin commented on Oct 9, 2026

    @p3n1cillin
    OwnerAuthor

    The isolated existing upstream boykopovar#759/boykopovar#1292 candidate passed ShaderMemory, ShaderDiskCache and GPU GuardedNullPointer tests on the RTX 5070 in 0.87 s. Original authorship and cherry-pick provenance are preserved (7850df4 and a9044ef).

    Integrated a9044ef on current upstream d70b899: full Windows build passes; full CTest has 517 passes, zero failures and one intentional no-Vulkan skip out of 518 (41.60 s). Conventions and test-registration checks pass. Tests distinguish skipped null/unmapped reads from executed faulting ones, retain the fault's pc/address, cover EXEC masks and chained pointers/descriptors, and check pipeline identity and disk-cache serialization.

    A new authorized title diagnostic is now running. It captures the early program that previously failed and retains the later stalled shader's atomic/selected-buffer inputs. A real executed shader fault ends the diagnostic and preserves evidence; no title progression or performance result is claimed until observed. The full-game goal remains open. No raw title assets or dumps attached. AI-assisted integration and validation: Codex.

  4. p3n1cillin commented on Oct 9, 2026

    @p3n1cillin
    OwnerAuthor

    The guarded-SRT candidate is validated in the Windows integration: 517 tests pass, zero fail, one intentional no-Vulkan skip out of 518 (41.60 s). Existing upstream boykopovar#759/boykopovar#1292 were applied with original authorship, replacing the inherited unguarded zero-value fallback. The three earlier local test regressions are fixed.

    The real-title test passes the former capture error in program 0x5005e7b00, then stops before any completed display flip on program 0x5007cff00: a non-null 1D texture descriptor does not match the prepared 2D image interface. No runtime BDA fault was reported before that stop. The earlier program's captured zero group counts are unresolved indirect placeholders, so they do not establish zero work or an untaken shader branch.

    A diagnostic follow-up now preserves the memory collected before failed shader capture: PR #7. Clean-upstream affected tests and local integration affected tests pass. The new private title request contains 112 code words, 14 user-data words and three memory regions; agc_shader_replay reproduces the same 1D-descriptor/2D-interface refusal offline. Raw code, memory and game data remain private. This gives a concrete offline reproducer; it does not establish the correct dimension-mismatch semantics.

    All game processes and diagnostic helpers from these runs are now terminal, with logs, reports and fresh requests preserved. These strict builds have no completed display flips and no FPS or gameplay result. Open upstream boykopovar#2133 addresses specific 3D-to-2D forms and does not cover this 2D-to-1D case; it remains unapplied. The broad unverified lower-dimensional modes were not restored, and no instruction, loop or fault bypass was added.

    Next work is to inspect the reduced failing access and find a measured or authoritative treatment of this descriptor mismatch, while retaining the earlier GPU-stall evidence. AI-assisted investigation, diagnostics and testing: Codex.

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