[Mesa-dev] [PATCH] tgsi-dump: dump label if instruction has one

Jose Fonseca jfonseca at vmware.com
Mon Feb 20 15:17:13 UTC 2017


On 09/02/17 14:41, marcandre.lureau at redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau at redhat.com>
>
> The instruction has an associated label when Instruction.Label == 1,
> as can be seen in ureg_emit_label() or tgsi_build_full_instruction().
>
> This fixes dump generating extra :0 labels on conditionals, and virgl
> parsing more than the expected tokens and eventually reaching "Illegal
> command buffer" (when parsing more than a safety margin of 10 we
> currently have).
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> ---
>  src/gallium/auxiliary/tgsi/tgsi_dump.c | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
> index f74aad167f..14911c481d 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
> @@ -685,17 +685,19 @@ iter_instruction(
>        }
>     }
>
> -   switch (inst->Instruction.Opcode) {
> -   case TGSI_OPCODE_IF:
> -   case TGSI_OPCODE_UIF:
> -   case TGSI_OPCODE_ELSE:
> -   case TGSI_OPCODE_BGNLOOP:
> -   case TGSI_OPCODE_ENDLOOP:
> -   case TGSI_OPCODE_CAL:
> -   case TGSI_OPCODE_BGNSUB:
> -      TXT( " :" );
> -      UID( inst->Label.Label );
> -      break;
> +   if (inst->Instruction.Label) {
> +      switch (inst->Instruction.Opcode) {
> +      case TGSI_OPCODE_IF:
> +      case TGSI_OPCODE_UIF:
> +      case TGSI_OPCODE_ELSE:
> +      case TGSI_OPCODE_BGNLOOP:
> +      case TGSI_OPCODE_ENDLOOP:
> +      case TGSI_OPCODE_CAL:
> +      case TGSI_OPCODE_BGNSUB:
> +         TXT( " :" );
> +         UID( inst->Label.Label );
> +         break;
> +      }
>     }
>
>     /* update indentation */
>

LGTM.

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


More information about the mesa-dev mailing list