Repository navigation
fix(agc): leave blending off for a color target with CB_COLOR_INFO.BLEND_BYPASS - #4862
Merged
oneandonlydean merged 1 commit intoOct 14, 2026
Conversation
…END_BYPASS DecodeState threw "blend bypass conflicts with enabled blending" when CB_BLENDn_CONTROL enabled blending for a target whose CB_COLORn_INFO has BLEND_BYPASS (bit 16, Mesa src/amd/registers/gfx10.json) set. The bit makes the color block skip the blender for that target: Mesa sets it "according to docs" for UINT/SINT and 8_24/24_8/X24_8_32_FLOAT targets, which the blender cannot process (src/amd/common/ac_descriptors.c, shared by radeonsi and RADV). Marvel's Guardians of the Galaxy (PPSA01748) issues such draws right after its loading screen. Blending is now enabled only when it is requested and not bypassed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
A Windows and Intel run, since the description covers Linux on an RTX 4090. Setup: Windows 11 (26200), WinLibs GCC 15.2.0 r7, Release, CI configure flags, an RTX 4070 Laptop GPU and an Intel Raptor Lake-S iGPU. The head baaad78 merged into
Written with AI assistance. |
11 tasks done
|
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.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
DecodeStatethrowsblend bypass conflicts with enabled blendingwhenCB_BLENDn_CONTROLenables blending for a target whoseCB_COLORn_INFOhasBLEND_BYPASSset. That is bit 16 in Mesa'ssrc/amd/registers/gfx10.json.The bit makes the color block skip the blender for that target. Mesa sets it "according to docs" for UINT/SINT and 8_24/24_8/X24_8_32_FLOAT targets, which the blender cannot process (
src/amd/common/ac_descriptors.c, shared by radeonsi and RADV). So a set bit with blending enabled is a valid state, not a conflict: the target is written unblended.Blending is now enabled only when it is requested and not bypassed.
Tested
Linux (CachyOS), GCC 16, RTX 4090, Release, on
main1c5e628:agc_driver_graphics: the newBlendBypassTestscheck that blending stays off for a bypassed target with blending enabled, and stays on for an identical target without the bit. Withmain'sState.cppthe test fails withblend bypass conflicts with enabled blending; with the change it passes.tools/check_conventions.py --base origin/main: passes.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)Tested and written by Claude (AI assistant) on a contributor's machine.
🤖 Generated with Claude Code