The unichrome DRI driver is sending unaligned data which confuses the DRM kernel module.
This is what the dri driver is flushing (via_ioctl.c:854):
viaFlushDmaLocked: unaligned value for vmesa->dmaLow: 7dc
0000: 430983f1 44390363 00000000 ffbf0505
0010: 430f0484 44390363 00000000 ffbf0505
dmesg shows this message:
[drm:via_verify_command_stream] *ERROR* Invalid / Unimplemented DMA HEADER command. 0x430983f1
Tested on KM400 and CX700 mesa 6.5.1 and 6.5.2
How to reproduce:
Playing gltron, It will abort after about 30 seconds.
I found the problem inside the function viaRasterPrimitive, there is a call to viaCheckDma to ensure that the command buffer will not be wrapped, but that check is failing because it is only ensuring 1024 bytes when it should ensure about three times that value.
Setting it to 3072 will cause the buffer to be flushed more frequently because it has 4096 bytes.
on Oct 25, 2016 at 22:39:19.
(provided by the Example extension).