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;

Regards

--
Julien Boulnois