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

Kenneth Graunke kenneth at whitecape.org
Wed Sep 3 16:57:47 PDT 2014


On Wednesday, September 03, 2014 11:00:06 PM Kristian Høgsberg wrote:
> 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

It doesn't matter for 10.3 - this only affects layered rendering, which is not available prior to GL 3.2 because the glFramebufferTexture() function is missing.  Sandybridge only supports GL 3.1 on the 10.3 branch.

--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140903/a3551316/attachment.sig>


More information about the mesa-dev mailing list