[Mesa-dev] [PATCH 6/7] i965: ensure execution of fragment shader when fragment shader has atomic buffer access

Kenneth Graunke kenneth at whitecape.org
Mon Apr 27 19:37:18 PDT 2015


On Friday, April 24, 2015 08:21:36 PM Rogovin, Kevin wrote:
> 
> > Checking brw->ctx.Shader._CurrentFragmentProgram != NULL is unnecessary.
> > There is always a valid pixel shader.  (If the application is using fixed-function, we supply a fragment shader for them.)  Please drop that check.
> 
> Without this check(in the Gen7 function/code), about 30 crashes are induced on piglit tests for Gen7; the tests are all using GL fixed function pipeline. I have not run piglit without this check on Gen8 though.

My mistake - we always have a pixel shader, but I think only GLSL
programs have a _CurrentFragmentProgram pointer in place.  Certainly ARB
programs don't have a gl_shader_program, so you're right, this check is
necessary.

> 
> > I thought that UAVs were essentially for Images...I'm not clear why this is needed.  Perhaps Curro can confirm one way or another.
> 
> The essential reason is to guarantee that the pixel shader gets invoked by Gen even when all render target surfaces are NULL surfaces. There are other flags one can use, but the UAV seems (to me) the most natural.
>  
> -Kevin

Yeah, that makes sense.  Seems fine.
-------------- 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/20150427/2941c92a/attachment.sig>


More information about the mesa-dev mailing list