Repository navigation
fix(agc): support alternate channel order in 16-bit color targets - #1349
Conversation
|
Which title draws to a 16_16_16_16 color target with COMP_SWAP 1 on main? With the title ID and the log line where it stops this can go in. |
|
Rebased on Fedora 44 Release: |
3424e91 to
7dc6b2e
Compare
7dc6b2e to
7daee0d
Compare
7daee0d to
335f703
Compare
adriadam10
left a comment
There was a problem hiding this comment.
Thanks. This no longer applies to current main, and the conflict is not mechanical:
State.cppDecodeColorFormatcase 12: since #1425,mainalready mapsswap2/3 to the reversed mappings (0x1b/0x93) and only rejectsswap == 1. Please rebase and add theswap == 1(0xc6) case on top of that, keeping 2/3 as they are.DecodeState:mainthrows when blending into a target with a reversed order (mapping == 0x1b/0x93). Say how the new blend-constant handling interacts with that, and keep the throw for the reversed orders.tests/Graphics.cppanddocs/dev/TechnicalDebt.mdconflict as well; re-add the test and the TechnicalDebt line (not as the last line of its section) after the rebase.- @oneandonlydean's question is still open: which title draws to a
16_16_16_16target withCOMP_SWAP1, and where does it stop onmain? Without that evidence (title ID and log line), or a Linux test reproducing it, this stays a speculative path.
Please rerun agc_driver_graphics_tests after the rebase.
Map red and blue exports, write masks and constant-color blend factors together. Reject conflicting simultaneous target constants. Semantics: Mesa 26.2.2 src/amd/common/ac_formats.c ac_translate_colorswap; console equivalence remains unverified. Graphics tests passed. Written with AI assistance.
335f703 to
de89b88
Compare
adriadam10
left a comment
There was a problem hiding this comment.
Rebased onto current main and fixed the points from the previous review on your branch:
DecodeColorFormatcase 12 now only addsswap == 1(mapping0xc6) on top of #1425;swap2/3 keep0x1b/0x93.- Blending into a reversed order (
0x1b/0x93) still throws. The constant-color swizzle applies only to the0xe4/0xc6targets; conflicting constants across simultaneous targets throw. The old "component swap 1 fails" check is gone and the blend test now expects the reversed-order rejection. Graphics.cpptest re-added after the rebase and TechnicalDebt line re-added in "Functional" (not last in the section).agc_driver_graphicspasses and fails without theState.cppchange.
Not verified: console behaviour for COMP_SWAP 1 on 16_16_16_16 (only Mesa ac_translate_colorswap, same model as the existing 8_8_8_8 alternate order); recorded in TechnicalDebt. Merging on green CI.
What
Support alternate component order for 16-bit RGBA color targets. Swap red and blue in shader exports, write masks, and constant-color blend factors together. Reject conflicting constants across simultaneous targets.
Semantics follow
ac_translate_colorswapin Mesa 26.2.2. Console equivalence remains unmeasured and is recorded in TechnicalDebt.Tested
Fedora 44, Release: graphics tests cover UNORM, SNORM, UINT, and float formats; standard/alternate/rejected reverse orders; write masks; blend constants; and compatible/conflicting target combinations. Related color-format PRs do not implement this mapping. Contribution checks pass. Windows was not tested.
Checklist
main; no duplicate open PR.