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