Skip to content

fix(shader): fold current s_wqm pixel lane - #4033

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
MarcZX10:codex/carry-shader-wqm-live-quad-bit-2548
Oct 12, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
MarcZX10:codex/carry-shader-wqm-live-quad-bit-2548

Conversation

@MarcZX10

@MarcZX10 MarcZX10 commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

What

Fold the current lane’s s_wqm bit to true for the supported pixel shader pattern, allowing the constant folder to remove the pixel ancillary select chain. Regression cases ensure unsupported patterns remain unchanged. This carries the fix for #2548; the original commit author is preserved.

Tested

  • Linux GCC Release/Ninja: built pixel_ancillary_tests.
  • CTest pixel_ancillary passed (1/1) on the rebased commit.

Checklist

  • Based on current main
  • One topic per PR
  • No new third-party code
  • Depends on: none
  • AI-assisted: yes

Provenance: carries ThatsLeo’s fix from #2548; the commit author remains ThatsLeo.

Vulkan starts only quads holding a non-helper lane, so the bit is set in every
lane it runs. Stray's pixel shader 0x2012f90000 keeps the packed ancillary
word where that bit is clear, and failed with an unsupported live use.

(cherry picked from commit 2068089)
@MarcZX10

Copy link
Copy Markdown
Contributor Author

Linux validation report: pixel_ancillary_tests built successfully with GCC 12.2 / Ninja in Release mode, and CTest pixel_ancillary passed (1/1) on the latest rebased commit. This validates the positive and negative cases in the suite; I did not run a game or PS5 hardware test.

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#3891 core/shader/recompiler/Optimization/src/ConstantFolder.cpp L655-656
#4031 core/libs/tests/PixelAncillary.cpp L429, L478
#4156 core/shader/recompiler/Optimization/src/ConstantFolder.cpp L655-656

@MarcZX10 MarcZX10 changed the title Fix constant folding for the current s_wqm pixel lane fix(shader): fold current s_wqm pixel lane Oct 11, 2026
@github-actions github-actions Bot added the shader core/shader label Oct 11, 2026
@MarcZX10

Copy link
Copy Markdown
Contributor Author

The earlier conventions failure is superseded by the successful run on the current head. The latest conventions, eligibility, intake, relinker and register-context checks pass; the full Linux and Windows jobs are skipped by repository policy.

@MarcZX10

Copy link
Copy Markdown
Contributor Author

I checked the current checks on this PR after the earlier failure report. The latest conventions run and all current required checks pass; the failure shown in the older check attempt was superseded. The shader regression test was reported passing on the current PR head.

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

Labels

shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants