gc funcs and ops at screen level

Aaron Plattner aplattner at nvidia.com
Tue Oct 2 21:20:13 PDT 2012


On 10/02/2012 05:45 PM, Dave Airlie wrote:
> It seems wierd that we have the GC carrying around a pointer to each
> of these, when I don't see any evidence we can't just stash one set of
> ops/funcs per screen.
>
> Did we every, do we currently to anyone knowledge modify gc ops or
> funcs at anything less than a screen level?
>
> Dave.

For funcs, I agree.

As for ops, the nvidia driver plugs in a different set depending on the 
results of ValidateGC.  E.g., if it determines at validation time that a 
pixmap is addressable by the GPU, it plugs in a set of ops that don't 
ask, "can we render this blit?  How about this other nearly identical 
blit?  How about this third one?  OMG, this fourth one might not be 
acceleratable oh wait yes it is."

This is why we crash when people screw up GC validation and point a GC 
validated against a vidmem pixmap at something slow like a SHM pixmap or 
something they ModifyPixmapHeader'd or just allocated after exhausting 
vidmem (*cough*backingstore*cough*).

I'm sure this was a big win when it was written.  I can try to collect 
some numbers on a slow CPU system where it's most likely to make a 
difference.

-- Aaron


More information about the xorg-devel mailing list