[Mesa-dev] SandyBridge issue likely related to fast color clears using meta operations

Kristian Høgsberg krh at bitplanet.net
Wed Sep 3 16:00:06 PDT 2014


On Wed, Sep 3, 2014 at 10:00 PM, Jordan Justen <jljusten at gmail.com> wrote:
> On 2014-09-03 10:41:02, Kenneth Graunke wrote:
>> On Tuesday, September 02, 2014 06:16:01 PM Samuel Iglesias Gonsálvez wrote:
>> > Hello,
>> >
>> > Two weeks ago, Iago and myself sent a batch of patches that added
>> > geometry shader support for SandyBridge [0].
>> >
>> > Recently, we rebased our patches against master [1] and found
>> > that some things are not working properly any more. Particularly, we
>> > have plenty of cases where we only get a black screen when using a
>> > geometry shader, and in these cases it seems as if some outputs of the
>> > geometry shader got "lost" by the time they become inputs in the
>> > fragment shader (some input varyings in the fragment shader that come
>> > from the outputs of the geometry seem to be zeroed). The values we
>> > output in the geometry shader are correct though, since they are
>> > correctly captured by transform feedback.
>> >
>> > A bisect shows that the commit that introduced this problem is
>> > 2f28a0dc231 i965: Implement fast color clears using meta operations [2].
>> >
>> > Reverting this commit fixes the problem for us. The revert also fixes
>> > piglit's bin/gl-3.2-layered-rendering-clear-color* tests in SandyBridge
>> > [3].
>> >
>> > So the question is whether the commit mentioned above introduces a
>> > regression that should be fixed somewhere or if our code needs to be
>> > updated to adapt to changes introduced by that commit in some way.
>> >
>> > Best regards,
>> >
>> > Sam
>>
>> Hi Sam,
>>
>> Layered clears now use GL_AMD_vertex_shader_layered.  If you expose
>> the extension, then gl-3.2-layered-rendering-clear-color starts
>> passing again.  Otherwise, the vertex shader code to set gl_LayerID
>> = gl_InstanceID is #ifdef'd out, so only layer 0 would get affected.
>>
>> I'm not sure if we can expose that extension without GL 3.2, so you
>> might just put the patch to enable it (simply editing
>> intel_extensions.c) near the end of your series.  Perhaps Jordan
>> will know if we can just turn it on now.
>
> Yes, We should be able to enable GL_AMD_vertex_shader_layered for gen6
> now. But, it really only makes sense to enable it at the same time as
> enabling 3.2 so the glFramebufferTexture function is available.
>
> Due to this meta quirk, it sounds like we should enable them both in
> the same patch. (Or, perhaps the extension in the patch just before
> 3.2. ??)

Is this something we can do for 10.3 or should we a non-GS version of
(fast) clear for 10.3?

Kristian


More information about the mesa-dev mailing list