etnaviv: isa: Add texldgpcf instruction

Implement support for the texldgpcf instruction, which handles texture
gradient sampling with shadow comparison.

Blob generates such txf's for
dEQP-GLES3.functional.shaders.texture_functions.texturegrad.*shadow*

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35531>
This commit is contained in:
Christian Gmeiner 2025-06-14 07:14:04 +02:00 committed by Marge Bot
parent 14fedcfb8d
commit 0f25d5e3f4
2 changed files with 16 additions and 0 deletions

View file

@ -1491,6 +1491,11 @@ SPDX-License-Identifier: MIT
<pattern pos="80">1</pattern> <!-- OPCODE_BIT6 -->
</bitset>
<bitset name="texldgpcf" extends="#instruction-tex-src0-src1-src2">
<pattern low="0" high="5">110000</pattern> <!-- OPC -->
<pattern pos="80">1</pattern> <!-- OPCODE_BIT6 -->
</bitset>
<bitset name="conv" extends="#instruction-alu-src0-src1">
<pattern low="0" high="5">110010</pattern> <!-- OPC -->
<pattern pos="80">1</pattern> <!-- OPCODE_BIT6 -->

View file

@ -352,6 +352,17 @@ INSTANTIATE_TEST_SUITE_P(texldlpcf, DisasmTest,
);
// clang-format on
// clang-format off
INSTANTIATE_TEST_SUITE_P(texldgpcf, DisasmTest,
testing::Values(
// taken from dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2dshadow_fragment (GC7000)
disasm_state{ {0x04011809, 0x00000004, 0x00000000, 0x003fc018}, "mov.sat t1.___w, void, void, t1.wwww\n"},
disasm_state{ {0x00811030, 0x39001800, 0x01490140, 0x00290038}, "texldgpcf t1.x___, tex0.xxxx, t1.xyzw, t2.xyzz, t3.xyzz\n"},
disasm_state{ {0x07011009, 0x00000004, 0x00000000, 0x20390018}, "mov t1._yzw, void, void, u1.xyzw\n"}
)
);
// clang-format on
// clang-format off
INSTANTIATE_TEST_SUITE_P(LoadStoreVariants, DisasmTest,
testing::Values(