Problem with VIV_FE_DRAW_2D_HEADER_DATA_COUNT
Lucas Stach
l.stach at pengutronix.de
Mon Jun 4 09:19:25 UTC 2018
Hi Julien,
Am Freitag, den 01.06.2018, 09:00 +0200 schrieb Julien Boulnois:
> Hi Lucas,
>
> I think I found an issue in etnaviv kernel driver regarding
> VIV_FE_DRAW_2D_HEADER_DATA_COUNT
>
> In your old test
> https://github.com/etnaviv/etna_viv/blob/master/attic/test2d/bitblt2d
> _from_stream.c you append streamed data at the end of draw command
> buffer, but driver gives an error :
> etnaviv_cmd_validate_one: op 21 not permitted at offset 50
>
> After looking closer, I think that FE_OPCODE_DRAW_2D check in
> etnaviv_cmd_parser.c#etnaviv_cmd_validate_one should take account of
> these extra data :
>
> case FE_OPCODE_DRAW_2D:
> n = EXTRACT(cmd, VIV_FE_DRAW_2D_HEADER_COUNT) * 2 +
> EXTRACT(cmd, VIV_FE_DRAW_2D_HEADER_DATA_COUNT);
> if (n == 0)
> n = 256;
> len = 2 + n;
> break;
Yes, the kernel command parser is a bit too conservative here. Are you
using the streamed data feature in your driver?
Regards,
Lucas
More information about the dri-devel
mailing list