Repository navigation
fix(shader): give an emulated comparison of a 2D-array access a plain 2D mode - #2936
Conversation
… 2D mode A comparison sample with a 2D-array address on a plain 2D color T# takes the emulated comparison, whose runtime modes were only the 2D-array and cube ones. No mode matched, and materialization threw that the image descriptor was incompatible with the static runtime image interface. The emulated comparison now also gets a 2D mode, as the native modes of a 2D-array access already have; the slice is ignored.
|
Tested on NVIDIA and on RADV: the new test case fails without the Setup: Arch Linux 7.2.9, GCC 16.2.1, Release. RTX 5080 (NVIDIA 615.78.08) and Radeon 610M (RADV, gfx1036). PR head 27353e1 merged onto The test (
Both failures are the line the PR describes: The title (Astro Bot PPSA21564 v01.007.000, RTX 5080,
Not established: whether the picture is right; I did not look at it. The rest of the test suite was not run with this PR. |
What
Fixes #2712.
RuntimeImageModesgives the native modes of a 2D-array access a plainDim2Dvariant (theplainmode inappend), so a 2D-array instruction bound to a 2D T# finds a mode. The emulated comparison block adds onlyDim2DArrayand its cube variant. A comparison sample with a 2D-array address on a plain 2D color T# (format 56) takes the emulated comparison and finds no mode, and materialization throws:A title stops on this line on
main, as reported in #2712 and #2871.Dim2Dmode, as its native modes already do.EmitEmulatedCompareSampletakesarrayedfrom the mode's dimension, so the 2D mode queries a 2D size and fetches with two coordinates and no layer.This is the three-line change @EdouardSence tried in #2712 and @Kikoarl described there.
Tested
Linux (CachyOS, GCC 16.2, RTX 4090, NVIDIA 610.57), Release, on
main9c5d67f:agc_driver_emulated_color_compare: new case, a bilinear comparison with a 2D-array instruction on a 2D 8_8_8_8 UNORM texture, matches the reference. Onmainit throws the line above.ctest(701 tests) passes, exceptagc_driver_dcc_keys_first_write, which fails onmaintoo.tools/check_conventions.pypasses.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)🤖 Generated with Claude Code