[Mesa-dev] [PATCH 1/4] intel/aubinator: Trust the packet size in the header for SUBOPCODE_HEADER
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Nov 24 10:54:03 UTC 2016
This series is :
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 24/11/16 04:27, Jason Ekstrand wrote:
> We were reading from the "comment size" dword and incrementing by that
> amount. This never caused a problem because that field was always zero.
> However, experimenting with actual aub file comments indicates, the
> simulator seems to include the comment size in the packet size provided in
> the header. We should do the same.
> ---
> src/intel/tools/aubinator.c | 18 ++++--------------
> 1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
> index fbd8721..abade45 100644
> --- a/src/intel/tools/aubinator.c
> +++ b/src/intel/tools/aubinator.c
> @@ -993,7 +993,7 @@ static int
> aub_file_decode_batch(struct aub_file *file, struct gen_spec *spec)
> {
> uint32_t *p, h, device, data_type, *new_cursor;
> - int header_length, payload_size, bias;
> + int header_length, bias;
>
> if (file->end - file->cursor < 1)
> return AUB_ITEM_DECODE_NEED_MORE_DATA;
> @@ -1016,23 +1016,13 @@ aub_file_decode_batch(struct aub_file *file, struct gen_spec *spec)
> return AUB_ITEM_DECODE_FAILED;
> }
>
> - payload_size = 0;
> - switch (h & 0xffff0000) {
> - case MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_HEADER):
> - if (file->end - file->cursor < 12)
> - return AUB_ITEM_DECODE_NEED_MORE_DATA;
> - payload_size = p[12];
> - break;
> - case MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_BLOCK):
> + new_cursor = p + header_length + bias;
> + if ((h & 0xffff0000) == MAKE_HEADER(TYPE_AUB, OPCODE_AUB, SUBOPCODE_BLOCK)) {
> if (file->end - file->cursor < 4)
> return AUB_ITEM_DECODE_NEED_MORE_DATA;
> - payload_size = p[4];
> - break;
> - default:
> - break;
> + new_cursor += p[4] / 4;
> }
>
> - new_cursor = p + header_length + bias + payload_size / 4;
> if (new_cursor > file->end)
> return AUB_ITEM_DECODE_NEED_MORE_DATA;
>
More information about the mesa-dev
mailing list