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

Samuel Iglesias Gonsálvez siglesias at igalia.com
Thu Sep 4 01:02:27 PDT 2014


On Wed, 2014-09-03 at 15:00 -0700, Jordan Justen 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.
> > 

Exposing the extension fixes the issue for our tests and piglit's
bin/gl-3.2-layered-rendering-clear-color* tests :-)

> > 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. ??)

We are going to add it in the same patch where OpenGL 3.2 is enabled.

Thanks!

Sam


-------------- 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/20140904/5e6128b6/attachment-0001.sig>


More information about the mesa-dev mailing list