When running Wine's d3d8 and d3d9 tests in r300g an invalid command stream is
sent to the kernel:
[ 916.508352] [drm:radeon_cs_packet_parse] *ERROR* Unknown packet type 1 at
2451 !
[ 916.508358] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
[ 916.508902] [drm:radeon_cs_packet_parse] *ERROR* Unknown packet type 1 at 69
!
[ 916.508905] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
The user space driver notices the error and writes a message to stderr. The
test that triggered the invalid command subsequently fails.
The failing line in the tests is
http://source.winehq.org/git/wine.git/blob/f75d1b0c2f77d8c85f7c2a9bcc3545f14e271a86:/dlls/d3d8/tests/visual.c#l3704
. The test performs a copy from a multisampled color buffer to system memory.
Wined3d first resolves the multisampled renderbuffer to a non-multisampled
texture and calls glGetTexImage. Interestingly it is the glGetTexImage step
that fails. The texture has format GL_BGRA, type GL_UNSIGNED_INT_8_8_8_8_REV
and internal format GL_SRGB8_ALPHA8.
We call glGetTexImage in plenty of places in this configuration, and this is
the only case where this fails. I'll try to pin this down a bit further.
The bug can be reproduced by running make visual.ok in dlls/d3d8/tests in a
Wine build tree.
System information:
Wine commit ID: f75d1b0c2f77d8c85f7c2a9bcc3545f14e271a86
Mesa commit ID: e333035c47a6a4cc88f0f9ca2bced500538bebae
Kernel: 3.19
libdrm: 2.4.59
X server: 1.16.3
Distribution: Gentoo