On Friday, August 08, 2014 05:05:35 PM Jason Ekstrand wrote:
> On Fri, Aug 8, 2014 at 4:58 PM, Kenneth Graunke wrote:
> > It's also worth noting in your commit message that this is not actually
> > fixing a current bug, but rather preventing a regression once your patches
> > that convert atomics to send-from-GRFs land.
> >
> 
> Perhaps.  Honestly, I'm not sure why CSE isn't causing problems now unless
> it doesn't do CSE on message registers.
> 
> --Jason

CSE should work fine with message registers.

It finds code like:

OPER   m3   src0  src1
...
OPER   m4   src0  src1

and replaces it with:

OPER   tmp  src0  src1
MOV    m3   tmp
...
MOV    m4   tmp

There are no magical side effects to message registers...they're just where you 
put data you want to send to some unit.  As long as the right data ends up in 
those registers, it doesn't matter how it gets there.

These days, it can also CSE certain SEND messages, but those are...pull 
constant loads and texturing (memory reads), pixel interpolator requests (also 
pure), and shader time adds (which are atomic writes, so it really shouldn't!)

I guess we've been getting lucky with SHADER_OPCODE_SHADER_TIME_ADD since we 
never emit two shader time adds with the same sources.  
(INTEL_DEBUG=shader_time is just a debugging tool.)

--Ken

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to