Created attachment 34858 [details]
The command stream checker recently added to the radeon driver kills
programs which render to a target which does not have a depth buffer
whilst GL_DEPTH_TEST is enabled. Instead of simply not performing
depth buffer operations, the result is program termination and some
rather cryptic error messages:
drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command
stream. See dmesg for more info.
and in dmesg:
radeon 0000:03:00.0: z/stencil with no depth buffer
radeon 0000:03:00.0: r600_packet3_check:1109 invalid cmd stream 815
[drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
I first noticed this when a program that works using 2.6.33 died
rendering to a FBO, but it is trivially reproducible without using
anything fancy. A test case is attached which works normally with
either Linux 2.6.33, the software rasterizer, or the intel driver.
The failure is reproducible with both mesa 7.8.1 and git master.
Created attachment 34859 [details]
Full kernel log.
Just in case it's needed.
The fbo-nodepth piglit test also triggers this issue.
Created attachment 34947 [details]
Actual full kernel log.
I just realized that the previous "Full kernel log" was truncated and hence wasn't so full, after all.
Fixed with commit: