On Mon, Sep 23, 2013 at 05:13:19PM +0800, 小飞珑 wrote: > The right answer is don't start from there. For fallbacks, UXA uses a > GTT mapping so every surface is actually in WC memory - every read is > treated as uncached, and fallbacks do a lot of reads. Effort spent > optimising the fb layer in this case is completely wasted. > -Chris > > I don't quite understand that. Or you mean that fbCopyArea() is > wrapped?
The fb* functions are provided by the xserver. What I am trying to point out is that UXA fundamentally uses hw in such a way that prevents optimisation. Every pointer read in fb* is uncached. Optimising an already fairly well optimised implementation will at most gain less than a percent overall. Switching to a different mapping and implementating migration will gain an order of magnitude performance improvement. Implementing 2D acceleration will gain between 5x-10x over and above the optimal fb implementation. If you read the driver more carefully you will find these answers already there. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ 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