Repository navigation
feat(agc): implement 8 srgb color targets through rgba8 srgb proxies - #1058
Merged
adriadam10 merged 1 commit intoOct 8, 2026
Merged
Conversation
CB_COLOR_INFO format 1 with number type 6 (8_SRGB) threw at decode. It now decodes as R8_SRGB with component swap 0; the other swaps and 8_8_SRGB still throw. A device that cannot attach and blend R8_SRGB (NVIDIA, lavapipe) renders a resident 8_SRGB target through an RGBA8_SRGB view of an RGBA8 copy of its R8 image: the image is blitted in before the pass and back when the pass ends, and the write mask keeps R only, so the encode, decode and blend are the device's sRGB attachment rules. APS5_SRGB_ATTACHMENT_PROXY=1 forces the copy. Linear, mipmapped and 3D 8_SRGB targets throw on such a device. PPSA26344 renders its G-buffer slot 5 and a multiply-blend pass into 8_SRGB targets.
|
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.
|
9 tasks done
9 tasks done
This was referenced Oct 7, 2026
Merged
Collaborator
|
Checked on RADV (direct R8_SRGB path and the forced RGBA8_SRGB proxy via |
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
8_SRGB color targets throw
unsupported color format 1 number type 6 component swap 0. Decoding them isn't enough: R8_SRGB attachments are optional in Vulkan, NVIDIA 610.62 and lavapipe have none, and with the decode alone both drop the writes.DecodeColorFormatmaps 8_SRGB (component swap 0) to R8_SRGB; other swaps and 8_8_SRGB still throw.COLOR_ATTACHMENTandCOLOR_ATTACHMENT_BLEND,AttachmentProxyFormatpicks RGBA8_SRGB (APS5_SRGB_ATTACHMENT_PROXY=1forces it). The resident R8 image is blitted into an RGBA8 copy before the pass and back after it, and the pass writes R only through an RGBA8_SRGB view: encode, decode and blending are the device's, as for 8_8_8_8_SRGB.Draw(feat(agc): multisampled color and depth targets with CB resolves #419recordDrawtoo), feat(agc): host import windows, least-recent eviction under the budget #290 and feat(agc): implement sint storage images through uint views #944StorageTexture::release; all merge cleanly. Draft GTA V: the prologue plays (testing branch of the PRs it needs) #426 does too, but already conflicts withmain.Tested
main9ab937b: configure-DBUILD_TESTING=ON, full build,--target libs,ctest:ctest --output-on-failure)VK_DRIVER_FILES): 379/379 pass;agc_driver_flat_storeis left out there because it takes several minutes on Windows llvmpipeagc_driver_srgb8_color_target: multiply and DST_ALPHA blends (two in a continued pass), fast clear and MRT within 1 sRGB code; ZERO/ONE and outside-scissor bytes exact; fails onmain.agc_driver_graphics: decode, refusals, proxy choice; won't build onmain.color format 1 number type 6skips, 3,355 before; 0 of 7 frame dumps from 250 to 480 s black, 9 of 10 before.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)