gc funcs and ops at screen level

Dave Airlie airlied at gmail.com
Tue Oct 2 21:39:56 PDT 2012


On Wed, Oct 3, 2012 at 2:20 PM, Aaron Plattner <aplattner at nvidia.com> wrote:
> 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.
>

Cool seems a totally reasonable use-case. Just wanted to check, and
after a bit of playing around I don't like going in this direction too
much actually.

I might be better storing per gpu ops inside the GC actually, but this
is going to need a bit more bashing about.

Dave.


More information about the xorg-devel mailing list