[Mesa-dev] [PATCH] i965: Improve disassembly of data port read messages.

Chris Forbes chrisf at ijw.co.nz
Thu Aug 13 23:46:23 PDT 2015


Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

On Fri, Aug 14, 2015 at 9:52 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> We now print out the name of the message instead of its numerical
> value, and label the message control and surface numbers.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_disasm.c | 31 +++++++++++++++++++++++++++----
>  1 file changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c b/src/mesa/drivers/dri/i965/brw_disasm.c
> index 1075c5a..61be2b0 100644
> --- a/src/mesa/drivers/dri/i965/brw_disasm.c
> +++ b/src/mesa/drivers/dri/i965/brw_disasm.c
> @@ -412,6 +412,22 @@ static const char *const gen7_gateway_subfuncid[8] = {
>     [BRW_MESSAGE_GATEWAY_SFID_MMIO_READ_WRITE] = "mmio read/write",
>  };
>
> +static const char *const gen4_dp_read_port_msg_type[4] = {
> +   [0b00] = "OWord Block Read",
> +   [0b01] = "OWord Dual Block Read",
> +   [0b10] = "Media Block Read",
> +   [0b11] = "DWord Scattered Read",
> +};
> +
> +static const char *const g45_dp_read_port_msg_type[8] = {
> +   [0b000] = "OWord Block Read",
> +   [0b010] = "OWord Dual Block Read",
> +   [0b100] = "Media Block Read",
> +   [0b110] = "DWord Scattered Read",
> +   [0b001] = "Render Target UNORM Read",
> +   [0b011] = "AVC Loop Filter Read",
> +};
> +
>  static const char *const dp_write_port_msg_type[8] = {
>     [0b000] = "OWord block write",
>     [0b001] = "OWord dual block write",
> @@ -1444,10 +1460,17 @@ brw_disassemble_inst(FILE *file, const struct brw_device_info *devinfo,
>                        brw_inst_dp_msg_type(devinfo, inst),
>                        devinfo->gen >= 7 ? 0 : brw_inst_dp_write_commit(devinfo, inst));
>              } else {
> -               format(file, " (%ld, %ld, %ld)",
> -                      brw_inst_binding_table_index(devinfo, inst),
> -                      brw_inst_dp_read_msg_control(devinfo, inst),
> -                      brw_inst_dp_read_msg_type(devinfo, inst));
> +               bool is_965 = devinfo->gen == 4 && !devinfo->is_g4x;
> +               err |= control(file, "DP read message type",
> +                              is_965 ? gen4_dp_read_port_msg_type :
> +                                       g45_dp_read_port_msg_type,
> +                              brw_inst_dp_read_msg_type(devinfo, inst),
> +                              &space);
> +
> +               format(file, " MsgCtrl = 0x%lx",
> +                      brw_inst_dp_read_msg_control(devinfo, inst));
> +
> +               format(file, " Surface = %ld", brw_inst_binding_table_index(devinfo, inst));
>              }
>              break;
>
> --
> 2.4.6
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list