pan/mdg: Implement raw colourbuf loads on T720
[mesa.git] / src / panfrost / midgard / midgard_compile.c
index 804a32f5f10c0779f3abc7bcaaa6fce3df0dc3bc..e1d6cac7672f55593addc471f6b1b4e3a9abdd95 100644 (file)
@@ -1578,18 +1578,22 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr)
 
                 if (instr->intrinsic == nir_intrinsic_load_output_u8_as_fp16_pan) {
                         ld.load_store.op = old_blend ?
-                                midgard_op_ld_color_buffer_u8_as_fp16_old :
-                                midgard_op_ld_color_buffer_u8_as_fp16;
-
-                        if (old_blend) {
-                                ld.load_store.address = 1;
-                                ld.load_store.arg_2 = 0x1E;
-                        }
+                                midgard_op_ld_color_buffer_as_fp16_old :
+                                midgard_op_ld_color_buffer_as_fp16;
 
                         for (unsigned c = 4; c < 16; ++c)
                                 ld.swizzle[0][c] = 0;
 
                         ld.dest_type = nir_type_float16;
+
+                        if (old_blend) {
+                                ld.load_store.address = 1;
+                                ld.load_store.arg_2 = 0x1E;
+                        }
+                } else if (old_blend) {
+                        ld.load_store.op = midgard_op_ld_color_buffer_32u_old;
+                        ld.load_store.address = 16;
+                        ld.load_store.arg_2 = 0x1E;
                 }
 
                 emit_mir_instruction(ctx, ld);