[cairo] Pixman refactoring

Peter Harris pharris at opentext.com
Fri May 22 14:50:51 PDT 2009


Jeff Muizelaar wrote:
> On Tue, May 19, 2009 at 05:42:02PM +0200, Soeren Sandmann wrote:
>> An implementation has a reference to another implementation that it
>> can use for fallbacks. For example, the sse2 implementation knows
>> about an mmx implementation, which knows about a "C fast path"
>> implementation, which knows about a "general" implementation.
>>
>> An implementation can optionally implement accelerated combiners,
>> which will be used from the general implementation. To make this work,
>> each implementation also knows about the toplevel implementation in
>> the stack, so that when it calls a lower level virtual function, it
>> can get the best implementation available.
> 
> I'm wondering about the benefit of the indirection to the delegate
> implementation. I can't think of any situations where an implementation
> wouldn't know it's delegate statically. Any thoughts?

I haven't looked at the code, and I'm not sure what you mean by
"statically", so I may be off base here. For what it's worth:

Take, for example, the Win64 ABI, which doesn't allow MMX. So you'd want
SSE2->core as your chain, compared to Linux where you'd want an
SSE2->MMX->core chain.

Yes, this is known at compile time. But the SSE version doesn't know for
sure that MMX will be available at authorship time.

Peter Harris
-- 
               Open Text Connectivity Solutions Group
Peter Harris                    http://www.opentext.com/connectivity
Research and Development        Phone: +1 905 762 6001
pharris at opentext.com            Toll Free: 1 877 359 4866


More information about the xorg-devel mailing list