Repository navigation
feat(shader): gather converted unorm, converted float and R8/R8G8 sRGB images - #4905
Dextroid17 wants to merge 1 commit into
Conversation
|
I checked the failing conventions run 38341276634. It reports five findings: the PR title and commit subject need Conventional Commit prefixes, and the PR body is missing the template sections |
|
Windows test (MinGW GCC 15.2, Release, Windows 10, RTX 4080 SUPER). Built on main
Not tested: no game run. The batch was built once, not per PR; nothing failed, so no bisect was needed. AI-assisted (Claude Code). |
…B images image_gather4 returns whole texels, so it needs no filtering: the converted unorm/float and R8/R8G8 sRGB refusals now let a non-compare gather through. UnpackImageGather converts the fetched fields the way UnpackImageTexel does for loads, and the sRGB decode runs on the gathered texels. Samples and LOD queries still throw. Compare gathers are not exercised by these tests. Tests run on lavapipe (llvmpipe, LLVM 23.1.1) only.
11fd3c1 to
6e7bbdd
Compare
|
@MarcZX100 thanks for checking the failed run. I retitled the PR and the commit subject with a Conventional Commit prefix and rewrote the body to What / Tested / Checklist. The @xXPBSXx thank you for the Windows run. I added it to the Tested section, with your base (main 88107b7 plus thirteen other open GPU PRs cherry-picked) and the 3 of 3 results for Still open on my side, as the body says: the two tests were last run locally on lavapipe on main b1328fc, not again after the rebase onto c8eb1f5, which only changed CMake and |
|
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.
|
|
Closing: no title is known to reach this. With the queue at 700+ open PRs, please hold off on new PRs that don't name a title needing the change until it's down. If a title stops on this on current main, reopen with the title ID and the log line. |
What
A non-compare
image_gather4of a 10_11_11 UNORM, 10_11_11 FLOAT, 8_SRGB or 8_8_SRGB image used to throw in the recompiler. A gather returns whole texels and needs no filtering, so this lets it through:ResourceTracker.cpp: a gather no longer clearssrgbDecodeCompatible.docs/dev/debt/shader.md: updated for the new coverage and the caveat below.SpirvImageEmitter.cpp: the converted unorm, converted float and sRGB refusals skipImageGatherRaw.UnpackImageGatherconverts the fetched fields, including the constant-1 channel, and the sRGB decode runs on the gathered texels (also on the 1D gather path, which has no test).image_gather4_c_lz) are still refused, byResourceMaterializer.cpp("sampled image descriptor uses an unsupported format" for the 10_11_11 UNORM image in the test, "incompatible with the static runtime image interface" for the 8_8_SRGB one), not by the checks changed here.Related to #3751 (not a fix).
Tested
Local, lavapipe (llvmpipe, LLVM 23.1.1), Linux, on main
b1328fc0f(main has since gained only CMake andtools/changes, no rebuild after that):agc_driver_image_converted_unorm_testsandagc_driver_image_srgb_load_testspass. Title bring-up was not run for this PR.ImageConvertedUnorm.cppandImageSrgbLoad.cppreplace the old "gather is refused" checks with value checks:image_gather4_c_lzis still refused on a 10_11_11 UNORM image and on an 8_8_SRGB image. The old compare-then-gather refusal check inImageSrgbLoad.cppwas removed.Only these two test binaries were run for this PR on lavapipe; the other
agc_driver_image_*_testswere not re-run.Windows (RTX 4080 SUPER, MinGW GCC 15.2): reported by xXPBSXx in this thread: built on main
88107b7dewith thirteen other open GPU PRs cherry-picked, both tests passing 3 of 3 runs.Not covered:
Checklist
main; no other open PR implements the same functions.mdfiles or images added to the repository