i965/disasm: Decode "channel mask present" bit correctly.
Bit 15 means "interleave" for most messages, but for SIMD8 messages it means "use channel masks". Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
@@ -1505,7 +1505,9 @@ brw_disassemble_inst(FILE *file, const struct brw_device_info *devinfo,
|
||||
break;
|
||||
}
|
||||
|
||||
case BRW_SFID_URB:
|
||||
case BRW_SFID_URB: {
|
||||
unsigned opcode = brw_inst_urb_opcode(devinfo, inst);
|
||||
|
||||
format(file, " %ld", brw_inst_urb_global_offset(devinfo, inst));
|
||||
|
||||
space = 1;
|
||||
@@ -1513,10 +1515,18 @@ brw_disassemble_inst(FILE *file, const struct brw_device_info *devinfo,
|
||||
err |= control(file, "urb opcode",
|
||||
devinfo->gen >= 7 ? gen7_urb_opcode
|
||||
: gen5_urb_opcode,
|
||||
brw_inst_urb_opcode(devinfo, inst), &space);
|
||||
opcode, &space);
|
||||
|
||||
if (opcode == GEN8_URB_OPCODE_SIMD8_WRITE ||
|
||||
opcode == GEN8_URB_OPCODE_SIMD8_READ) {
|
||||
if (brw_inst_urb_channel_mask_present(devinfo, inst))
|
||||
string(file, " masked");
|
||||
} else {
|
||||
err |= control(file, "urb swizzle", urb_swizzle,
|
||||
brw_inst_urb_swizzle_control(devinfo, inst),
|
||||
&space);
|
||||
}
|
||||
|
||||
err |= control(file, "urb swizzle", urb_swizzle,
|
||||
brw_inst_urb_swizzle_control(devinfo, inst), &space);
|
||||
if (devinfo->gen < 7) {
|
||||
err |= control(file, "urb allocate", urb_allocate,
|
||||
brw_inst_urb_allocate(devinfo, inst), &space);
|
||||
@@ -1528,6 +1538,7 @@ brw_disassemble_inst(FILE *file, const struct brw_device_info *devinfo,
|
||||
brw_inst_urb_complete(devinfo, inst), &space);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BRW_SFID_THREAD_SPAWNER:
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user