pan/bi: Pack fp16 ATEST
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 23 Apr 2020 23:03:35 +0000 (19:03 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 27 Apr 2020 14:52:25 +0000 (14:52 +0000)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4766>

src/panfrost/bifrost/bi_pack.c

index 0d2b9fb2e0393f5f2f3effba6c802af0730d7a70..c17664362c5110de018fab38b84dbe276b529063 100644 (file)
@@ -1146,13 +1146,13 @@ bi_pack_add_st_vary(bi_clause *clause, bi_instruction *ins, struct bi_registers
 static unsigned
 bi_pack_add_atest(bi_clause *clause, bi_instruction *ins, struct bi_registers *regs)
 {
-        /* TODO: fp16 */
-        assert(ins->src_types[1] == nir_type_float32);
+        bool fp16 = (ins->src_types[1] == nir_type_float16);
 
         struct bifrost_add_atest pack = {
                 .src0 = bi_get_src(ins, regs, 0, false),
                 .src1 = bi_get_src(ins, regs, 1, false),
-                .component = 1, /* Set for fp32 */
+                .half = fp16,
+                .component = fp16 ? ins->swizzle[1][0] : 1, /* Set for fp32 */
                 .op = BIFROST_ADD_OP_ATEST,
         };