https://bugs.freedesktop.org/show_bug.cgi?id=42435
--- Comment #4 from Alexander Sabourenkov screwdriver@lxnt.info 2011-11-01 15:27:29 PDT --- The workaround did not help r600g. Same black screen. In addition, the non-llvm swrast draws point sprites 60 pixels in size instead of requested 16 (my original shaders get texture sub-image size via varyings too), plus it draws solid-black-textured point sprites as single pixels. r600c (as of Oct 27 git, just before being axed) works though.
Not knowing whether any given black screen is a bug, or legitimate undefined behaviour that just happens to work on some other renderer is driving me mad.
I managed to cut down the test case to bare minimum.
Usage:
./testbed <shaderset> <mesadriver>
shaderset is either "working" or "failing" - loads similarly named shaders.
"working" shader set does texture sampling in fragment shader "failing" shader set does texture sampling in vertex shader and passes the color as a varying vec4.
mesadriver is: hw - default, LIBGL_ALWAYS_SOFTWARE and LIBGL_DRIVERS_PATH unset. hw-alt - use .so from dri-alternates (x64-86 hardcoded, sorry). sw - LIBGL_ALWAYS_SOFTWARE=y sw-alt - as above, but use .so from dri-alternates.
For the Oct 27 git these map to r600g, r600c, swrast, llvmpipe on my box.
Of those:
"failing" llvmpipe - works as intended, vertical colored bars (composed of 16x16 point sprites), one sprite is dark green - left unpainted intentionally. "working" llvmpipe - same (ok) "failing" DRI - ok "working" DRI - ok "failing" r600g - all sprites black "working" r600g - all sprites black "failing" old-swrast - single pixels instead of 16x16, but looks like color is right "working" old-swrast - same as "failing"
The hardware is rv770 9440.
I'd say there's a problem with r600g and a different one with old swrast.
There's also intermittent display corruption mainly on areas in xterm redrawn (but not those that get scrolled up) immediately after launching the testcase.