Repository navigation
fix(shader): return 0 for an 8-bit sRGB bilinear cube comparison - #3540
Conversation
|
I reviewed the code, regression coverage, and debt note. The change is narrowly scoped to the measured 8-bit sRGB constant-zero case, while non-sRGB bilinear cubes retain the existing rejection; I did not find a code issue in this diff. One CI item is actionable: the conventions job fails because commit |
bc70de0 to
49ecb37
Compare
|
Update: current head |
|
This does not build on #3532, so Depends on stays none. Both edits are in |
|
Tested 49ecb37 (on
One correction to the description: the cube rows come before the 2D sRGB rows in |
An 8-bit sRGB compare is already 0 for every texel, so the selected face cannot change the result.
|
Checked on the HW oracle (gfx1035): a bilinear cube without
|
49ecb37 to
cd814b8
Compare
What
PPSA02456 (Subnautica Below Zero) stops on current
mainat:The texture is a 1x1 cube, six faces, format 130 (
Format8_8_8_8Srgb). An 8-bit sRGB compare (Format8Srgb,Format8_8Srgb,Format8_8_8_8Srgb) is already 0 for every texel and every compare function, measured withimage_sample_c_lzon gfx1035, so the face selected by a bilinear cube withoutDISABLE_CUBE_WRAPcannot change the result. Float, unorm and snorm bilinear cubes still throw.#3526is a different stop: a device that cannot sample8or8_8sRGB refuses the compare indecodeImageDescriptorbefore that 0 is reached.#3532skips the throw for a depth compare, which then fails mode matching (the descriptor issrgb 1and every emulated mode issrgb 0). This pull request does not change that path.Tested
Windows 11, AMD Radeon RX 9070 XT.
agc_driver_emulated_color_comparepasses: a bilinear unorm cube withoutDISABLE_CUBE_WRAPstill throws, and a bilinear8_8_8_8sRGB cube returns 0 for every compare function. The same run covers the8and8_8sRGB cubes on this GPU, which can sample those formats. PPSA02456 got past the cube throw; the title session was confirmed by hand.On lavapipe and on an RTX 4080 the existing
8/8_8sRGB rows still stop with the#3526refusal. The new8and8_8cube rows run after those, so they do not move that failure. The format 130 rows are not on the shader-decode path.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)Made with Cursor