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

Dave Airlie airlied at gmail.com
Thu Jan 10 17:53:31 PST 2013


On Thu, Dec 27, 2012 at 12:29 PM, Marek Olšák <maraeo at gmail.com> 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, or maybe something else goes wrong after the
> vertex shader. (SPI?)

Just FYI, if I disable transform feedback in the test (comment out the
glBeginTF and glEndTF)

I don't get a hang anymore, not sure this helps.

Dave.
>
> Marek


More information about the mesa-dev mailing list