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