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

Marek Olšák maraeo at gmail.com
Wed Dec 26 18:29:41 PST 2012


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, or maybe something else goes wrong after the
vertex shader. (SPI?)

Marek


More information about the mesa-dev mailing list