[Mesa-dev] r600g glsl 1.40 streamout with no position test

Michel Dänzer michel at daenzer.net
Thu Dec 27 00:41:41 PST 2012


On Don, 2012-12-27 at 03:29 +0100, Marek Olšák wrote: 
> On Thu, Dec 27, 2012 at 12:54 AM, Dave Airlie <airlied at gmail.com> wrote:
> > So I've got a persistent hang with the glsl-1.40-tf-no-position when I
> > enabled ubo/tbo and glsl 1.40.
> >
> > My original thoughts were there was no param export from the vertex
> > shader, but I was wrong on that count, the
> > vertex shader exports a param along with the stream output.
> >
> > Below is the TGSI/r600g dump from my evergreen for the offending
> > program, it reliably takes out all the EG cards I tested on (haven't
> > tried anything else).
> >
> > This is blocking me from enabling UBO/TBO on evergreen as I don't want
> > to start having piglit lockups once I enable it.
> >
> > Dave.
> > ______________________________________________________________
> > --------------------------------------------------------------
> > VERT
> > DCL IN[0]
> > DCL OUT[0], GENERIC[12]
> > DCL TEMP[0], LOCAL
> >   0: MOV TEMP[0].x, IN[0].xxxx
> >   1: MOV OUT[0], TEMP[0]
> >   2: END
> > STREAMOUT
> >   0: MEM_STREAM0_BUF0 OUT[0].x___
> 
> This looks like the "copy_buffer" shader, which is known to work. The
> only differences are that there is no position output and OUT[0] is
> declared as GENERIC[12].
> 
> My bet is that the problem is with the declaration, not with streamout
> itself. Maybe the POSITION output should be added artificially if it's
> missing in the shader, [...]

That could be it indeed. At least on SI, the vertex shader is required
to export to position 0, the same could be true for Evergreen.


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the mesa-dev mailing list