i965/disasm: add support for pixel interpolator messages
authorChris Forbes <chrisf@ijw.co.nz>
Mon, 18 Nov 2013 08:24:24 +0000 (21:24 +1300)
committerChris Forbes <chrisf@ijw.co.nz>
Sat, 12 Jul 2014 22:01:16 +0000 (10:01 +1200)
V3: Rework for brw_inst changes

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_disasm.c

index f37da1921c49681a780c789c970751c095591578..d7362c16c28623bab20093fadb1f6d188087e5cf 100644 (file)
@@ -473,6 +473,13 @@ static const char *const aop[16] = {
    [BRW_AOP_PREDEC] = "predec",
 };
 
+static const char * const pixel_interpolator_msg_types[4] = {
+    [GEN7_PIXEL_INTERPOLATOR_LOC_SHARED_OFFSET] = "per_message_offset",
+    [GEN7_PIXEL_INTERPOLATOR_LOC_SAMPLE] = "sample_position",
+    [GEN7_PIXEL_INTERPOLATOR_LOC_CENTROID] = "centroid",
+    [GEN7_PIXEL_INTERPOLATOR_LOC_PER_SLOT_OFFSET] = "per_slot_offset",
+};
+
 static const char *const math_function[16] = {
    [BRW_MATH_FUNCTION_INV]    = "inv",
    [BRW_MATH_FUNCTION_LOG]    = "log",
@@ -1473,6 +1480,16 @@ brw_disassemble_inst(FILE *file, struct brw_context *brw, brw_inst *inst,
             /* FALLTHROUGH */
          }
 
+         case GEN7_SFID_PIXEL_INTERPOLATOR:
+            if (brw->gen >= 7) {
+               format(file, " (%s, %s, 0x%02x)",
+                      brw_inst_pi_nopersp(brw, inst) ? "linear" : "persp",
+                      pixel_interpolator_msg_types[brw_inst_pi_message_type(brw, inst)],
+                      brw_inst_pi_message_data(brw, inst));
+               break;
+            }
+            /* FALLTHROUGH */
+
          default:
             format(file, "unsupported shared function ID %d", sfid);
             break;