Xserver: sys_ptr & fb_ptr question

Cui, Hunk Hunk.Cui at amd.com
Thu Jul 1 18:27:26 PDT 2010


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", Can you give me an example about this? I still have more confuse about this. :(

>> 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_*?

Thanks,
Hunk Cui  




More information about the xorg-devel mailing list