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
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to