Repository navigation
test(agc): skip the emulated color compare clamp cases without MinLod - #7058
Merged
oneandonlydean merged 1 commit intoOct 17, 2026
Merged
oneandonlydean merged 1 commit into
oneandonlydean merged 1 commit into
Conversation
The offset cases compile `image_sample_cb_cl_o`, whose LOD clamp the emitter reaches only through the device's `shaderResourceMinLod`; without it the emitter refuses the shader (the gate boykopovar#388 left in place). The test had no capability guard, so on such a device every one of those cases failed at the first of them, `point, wrap with negative offsets`, instead of skipping them as `ImageSampleLodClamp` and `ImageSampleBiasA16` already do. Found on llvmpipe (Mesa 25.0.7, Debian 13), which lacks the feature that lavapipe reports from Mesa 25.2.8: `agc_driver_emulated_color_compare` and its `_srgb_decode` variant both failed. The other cases still run; the note names the cases that were skipped.
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
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
agc_driver_emulated_color_comparefails on a device withoutshaderResourceMinLodinstead of skipping the cases that need it.The offset cases compile
OffsetCode, animage_sample_cb_cl_o. The emitter reaches the LOD clamp of that instruction only through the device'sshaderResourceMinLodand refuses the shader without it (the gate #388 left in place), so every one of those cases failed, at the first of them,point, wrap with negative offsets.ImageSampleLodClampandImageSampleBiasA16already skip what a device without the feature cannot run.The test now reads
CapabilityMinLodonce and skips only the cases that compileOffsetCode:point, wrap with negative offsets, the threeoffsets, bias and LOD clampcases, and the cached bilinear case with offsets. Every other case still runs, including theRejectfor the native R32 float offset case, which is refused before the emitter and needs no guard. A closing note names the cases that were skipped.Found on llvmpipe (Mesa 25.0.7, Debian 13 under WSL2); lavapipe reports the feature from Mesa 25.2.8, so CI runs all of the cases and the guard changes nothing there.
The skip is conservative: the guarded cases themselves pass on the same device when the emitter's capability check is moved to the branch that actually emits the
MinLodimage operand (the compute stage takes the explicit-LOD path, where the clamp is folded withFMaxand noMinLodoperand is emitted). That gate, not the color comparison emulation, is what asks for the feature; relaxing it is a separate question and is not part of this change.#907 rewrites this test file and keeps the same offset cases, so the guard is needed after it too. That PR and this one overlap on those lines, and whichever lands second rebases; this change does not build on it.
Tested
Debian 13 under WSL2 (
6.18.54.1-microsoft-standard-WSL2), GCC 14.2.0, Release,BUILD_TESTING=ON, lavapipe (llvmpipe), on both sides of the feature:shaderResourceMinLod):agc_driver_emulated_color_compareand its_srgb_decodevariant failed before the change atpoint, wrap with negative offsetsand pass after it, with the note that the offset and LOD clamp cases were skipped. Fullctest -j 8: 1339 tests, 0 failed, 63 skipped, 23 s.mesa-vulkan-drivers26.1.6-1~bpo13+1, installed fromtrixie-backports): both tests pass without the note, so the guarded cases run, andagc_driver_image_sample_lod_clamppasses instead of skipping. Fullctest -j 8: 1339 tests, 0 failed, 59 skipped (five tests that skip without the feature now run;agc_driver_f64_fma_subnormalsskips on 26.1.6 where it passes on 25.0.7, on its documented f64 denormal path, unrelated to this change).The
image_sampleand gather tests pass on both.Not tested: a title; a GPU whose driver is not lavapipe. CI's lavapipe has the feature, so the guarded cases keep their coverage there.
Checklist
main; no other open PR implements the same functions (fix(agc): color compare emulation: review follow-up to #668 #907 rewrites this test file and overlaps the offset-case lines changed here, but does not add a capability guard; the guard is still needed after it)NotImplemented_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)