Xserver: sys_ptr & fb_ptr question
Michel Dänzer
michel at daenzer.net
Mon Jul 5 01:58:36 PDT 2010
On Fre, 2010-07-02 at 09:27 +0800, Cui, Hunk wrote:
> Hi, Michel,
>
> [Cui, Hunk] Please see below,
> >>On Don, 2010-07-01 at 13:32 +0800, Cui, Hunk wrote:
> >>
> >> I mean your suggestion, now in our geode driver, I have modified the Rotate_mem. Rotateddata has to be allocated between memoryBase and memorySize.
> >> Now my question: Please see the link:
> >> http://cgit.freedesktop.org/xorg/xserver/tree/exa/exa_classic.c#n170
> >> Code:
> >> if (pExaScr->info->memoryBase && pPixData) {
> >> if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
> >> ((CARD8 *)pPixData - pExaScr->info->memoryBase) <
> >> pExaScr->info->memorySize) {
> >> pExaPixmap->fb_ptr = pPixData;
> >> pExaPixmap->fb_pitch = devKind;
> >> pExaPixmap->use_gpu_copy = TRUE;
> >> }
> >> }
> >> In Xserver 1.6, Does not exist the judge.
> >> In Xserver version >=1.7, Occur this judge.
> >>
> >> My question is:
> >> What is effect of the judge?
>
> >It considers the pPixData pointer passed in to be the GPU copy if it
> falls within the offscreen memory range.
>
> [Cui, Hunk] I hope it have a more detail explain about the pPixData
> pointer. Why you said "if it falls within the offscreen memory range",
if ((CARD8 *)pPixData >= pExaScr->info->memoryBase &&
((CARD8 *)pPixData - pExaScr->info->memoryBase) <
pExaScr->info->memorySize)
translates to 'if the pointer is after the start of EXA offscreen memory
and before the end of it', i.e. 'within the range'.
> >> What are the different between sys_ptr and fb_ptr?
>
> >From exa_priv.h:
> >
> > CARD8 *sys_ptr; /**< pointer to pixmap data in system memory */
> > CARD8 *fb_ptr; /**< pointer to pixmap data in framebuffer memory */
>
> >Basically, fb_* refer to the GPU copy, sys_* to the system memory copy
> of the pixmap contents.
>
> [Cui, Hunk] In Xserver 1.6 version, only have sys_*, turn to Xserver
> 1.7, Why would the introduction of this definition about fb_*?
> Please give me some hint, How to use the fb_*?
See Maarten's commit 12aeddf5ad41902a180f8108623f356642b3e911 ('exa:
Accept scratch pixmaps with offscreen memory as such.') . Maybe Maarten
can say more about it, but AFAIR before that some special pixmaps e.g.
for rotated scanout would never be considered for hardware acceleration.
P.S. Please consider using an e-mail client which can quote properly.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg-devel
mailing list