On Mon, Sep 23, 2013 at 10:45:41AM +0800, 小飞珑 wrote: > Hi, > I am looking into Xorg for performance optimization, and want to do > some software acceleration for the Xorg fallback functions when the > hardware acceleration is not available. I am now using a notebook with > intel display card. In the UXA driver, I force the driver to use fallback > funcs instead of the Accelerated funcs. As in uxa/uxa-accel.c -> > uxa_copy_area(), I made uxa_screen->force_fallback = 1, force uxa driver > to call uxa_check_copy_area()->fbCopyArea(), but the fbCopyArea seemed NOT > to be the fbCopyArea in Xorg fb/fbcopy.c ! For I added return NULL > immediately in the beginning of fb/fbcopy.c -> fbCopyArea(), but made no > difference, but if I comment the fbCopyArea() in uxa/uxa-unaccel.c the > display is ruined. It seemed that the above two fbCopyArea() functions are > not the same. Where did the Xorg fallback to? NOT to the fb/fbcopy.c ? I > am eager to know that, could some body tell ? Thanks a lot!
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 -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
