Where does Xorg fallback to ?

Chris Wilson chris at chris-wilson.co.uk
Mon Sep 23 01:03:04 PDT 2013


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


More information about the xorg-devel mailing list