aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-02-04 17:15:36 -0800
committerEric Anholt <[email protected]>2019-02-05 15:45:23 -0800
commite5c6938590e5e495ce4f3f07dbdd53ca67297462 (patch)
tree991e132c1331c8c82fec7b8af4d7a67430160728
parent1a4170952d580e2d16b19b3babc3e364519a3ac3 (diff)
v3d: Fix input packing of .l for rounding/fdx/fdy.
Avoids a regression in dEQP-GLES3.functional.shaders.derivate.fwidth.texture.* once we start copy-propagating more input packs.
-rw-r--r--src/broadcom/qpu/qpu_pack.c2
-rw-r--r--src/broadcom/qpu/tests/qpu_disasm.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/broadcom/qpu/qpu_pack.c b/src/broadcom/qpu/qpu_pack.c
index b4d1edf3cef..516b0cf538a 100644
--- a/src/broadcom/qpu/qpu_pack.c
+++ b/src/broadcom/qpu/qpu_pack.c
@@ -1095,7 +1095,7 @@ v3d_qpu_add_pack(const struct v3d_device_info *devinfo,
}
if (packed == 0)
return false;
- opcode |= packed << 2;
+ opcode = (opcode & ~(1 << 2)) | packed << 2;
break;
}
diff --git a/src/broadcom/qpu/tests/qpu_disasm.c b/src/broadcom/qpu/tests/qpu_disasm.c
index d9561a3c8d7..1bc3c9ec67f 100644
--- a/src/broadcom/qpu/tests/qpu_disasm.c
+++ b/src/broadcom/qpu/tests/qpu_disasm.c
@@ -49,6 +49,7 @@ static const struct {
{ 33, 0x2011c89b402cc000ull, "fsub.norz rf27, r4.abs, r1.abs; vfmul.ifa rf34, r3.swp, r1" },
{ 33, 0xe01b42ab3bb063c0ull, "vfpack.andnc rf43, rf15.l, r0.h; fmul.ifna rf10.h, r4.l, r5.abs" },
+ { 33, 0x600b8b87fb4d1000ull, "fdx.ifnb rf7.h, r1.l; fmul.pushn rf46, r3.l, r2.abs" },
/* small immediates */
{ 33, 0x5de24398bbdc6218ull, "vflb.andnn rf24 ; fmul rf14, -8, rf8.h" },