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