Skip to content

fix(agc): decode guest line-strip primitives - #9

Closed
JJenkx wants to merge 3 commits into
mainfrom
fix/guest-line-strip
Closed

JJenkx wants to merge 3 commits into
mainfrom
fix/guest-line-strip

Conversation

@JJenkx

@JJenkx JJenkx commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

What

Guest primitive type 3 previously stopped rendering with an unsupported-primitive error. Decode it as Vulkan line-strip topology and include line strips in the existing point/line raster restrictions. Existing all-ones primitive restart checks remain; custom restart indices and unsupported raster modes are rejected.

The mapping follows AMD PAL's pinned VGT_DI_PRIM_TYPE enum (DI_PT_LINESTRIP = 3): https://github.com/GPUOpen-Drivers/pal/blob/c5e800072a32f68b6ccc4422936d96167c6e0728/src/core/hw/gfxip/gfx9/chip/gfx9_plus_merged_enum.h#L14190-L14213. Console coverage, endpoint and interpolation rules remain unverified and documented in TechnicalDebt. Geometry and mesh line-strip assembly remains unsupported.

Validation: branch cfbb812 is rebased onto upstream main 2a5eca1 and passes conventions. The full Linux integration build b34fa2c passed. Five targeted Radeon tests passed: patched_libraries, agc_driver_graphics, draw-cache reuse on/off and prepared graphics. Both implementation changes are present in the integration, and its line-strip regression block exactly matches this branch. An independent full build of this standalone branch, Windows validation and the full test suite were not run.

Historical title evidence: Record of Lodoss War PPSA05347 stopped on primitive type 3 before this change; the candidate reached the opening scene and dialogue. A later native integration run closed normally after 150.43 seconds. An earlier heap-corruption abort was intermittent and unresolved; this patch is not claimed to fix it. No new game runtime was performed for this rebase.

Overlap: upstream #4584 and #4587 now implement the same production changes. This fork PR publishes our existing independent work and regression evidence for comparison; no additional upstream duplicate was opened. Upstream boykopovar#4474 occupies our contributor allowance.

Depends on: none. AI-assisted: yes. No proprietary files or investigation artifacts are committed.

Tested

Full Linux integration build b34fa2c and five targeted Radeon checks passed. Changed implementation and regression are compared with the topic source. No independent standalone full build, Windows or fresh title run.

Checklist

  • One topic; generic behavior.
  • Base commits, overlap and validation limitations disclosed above. This is a fork review PR.
  • No proprietary assets, investigation artifacts or new third-party code committed.
  • No silent-success fallback added.
  • Known gaps recorded in technical debt.
  • Depends on: none
  • Unblocks: none (no complete title compatibility claim)
  • AI-assisted: yes

October 13 upstream update

Merged upstream 9d0a41d5a10 into this branch and resolved its conflicts while preserving this PR's scope. The published head is 7ccf7f65b4. It also merges cleanly with newer upstream 0214069e33c (the intervening change only updates the build workflow). Local conventions pass. The validation reported above applies to its original tested revision; validation of the updated head is running in the full build.

Superseded on current main

Current main eea428ca8 already contains 67e7a3029cb52fb1faec1b23bdc8c70bfbcce233 by xXPBSXx: primitive type 3 maps to line strips, line raster restrictions apply and the graphics tests check strip topology, primitive restart and line primitive classification. The implementation changes in this PR no longer produce a source diff when replayed on current main. Closing this duplicate fork review PR; the original branch and historical evidence remain available. No new title or Windows validation is claimed.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Oct 13, 2026
@github-actions github-actions Bot added agc libSceAgc* docs Documentation needs rebase Conflicts with main, rebase needed and removed needs rebase Conflicts with main, rebase needed labels Oct 13, 2026
@JJenkx JJenkx closed this Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* docs Documentation needs rebase Conflicts with main, rebase needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant