Skip to content

Rect-list draw aborts with "prepared rectangle artifacts are missing" when its pixel variant was prepared at draw #1927

Closed

Description

@fisherjoey

Stray (PPSA02100 v1.05, Unreal Engine 4) aborts on a rect-list draw:

[videoout] presentation failed: AGC driver: prepared rectangle artifacts are missing

Setup: Linux (Nobara 44, kernel 7.2), RTX 5070 Ti, NVIDIA 595.91.07. Base is main 1be6f9f + #861 + #1836 + #1837 + #1893 + #1902 + #1904.

A rect-list draw looks up PreparedRectangle(front, vertexVariant, fragmentVariant). Rectangles are only built in ResolvePreparedGraphics, which runs when the title calls sceAgcCreateInterpolantMapping with its own pixel shader. A pixel variant that is prepared later, at the draw, never gets a rectangle with that front. Two cases do that today: the driver's null pixel program (#1901 / #1902) and shaders deferred at registration (#1836). In Stray the draw right after The null pixel program has no artifact for this draw ...; preparing it at draw is a rect-list draw, and it aborts here.

Fix: when the rectangle is missing, build it at the draw with ResolvePreparedGraphics from the two stages, which are already prepared, then look it up again. Only the rect-list helper is built; neither stage is recompiled. PR: #____

AI-assisted: yes

Activity

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