2009/7/6 Alan Coopersmith <Alan.Coopersmith at sun.com>:
> J?rgen Keil wrote:
>> Alan wrote:
>>> jason wrote:
>>>> Recently live upgraded from b115 to b116. New X looks nice and sharp on 
>>>> Lenovo T60
>>>> notebook with ATI Radeon Mobility X1400, yet the mouse keeps jumping to 
>>>> upper left
>>>> corner.
>>>> ...
>>>> Anyone else see this issue? Thanks
>>> I've not seen it yet, but had other people report it.
>>
>> One change with Xorg 1.6.1 seems to be the switch to compile it
>> with Sun Studio 12. What is the exact version (patches?) of that
>> Studio 12 compiler?
>
> Same as the current Nevada CBE used by ON and other consolidations.

Hmm, the Xorg that I tried to compile from fox-gate source is much
smaller when looking at the file size, and is bigger than the original
32-bit b117 Xorg when looking at size output

-bash-3.2$ ls -l /usr/X11/bin/i386/Xorg*
-r-sr-xr-x   1 root     bin      2636632 Jun 23 21:44 /usr/X11/bin/i386/Xorg
-rwxr-xr-x   1 jk       usr      2090712 Jul  3 17:39 /usr/X11/bin/i386/Xorg.jk
-r-sr-xr-x   1 root     bin      2636632 Jun 23 21:44
/usr/X11/bin/i386/Xorg.orig

-bash-3.2$ size /usr/X11/bin/i386/Xorg*
/usr/X11/bin/i386/Xorg: 1714545 + 51204 + 44240 = 1809989
/usr/X11/bin/i386/Xorg.jk: 1818609 + 36344 + 47584 = 1902537
/usr/X11/bin/i386/Xorg.orig: 1714545 + 51204 + 44240 = 1809989


I also noticed that the file that might be relevant with the mouse
pointer jumping bug (ptrveloc.c) is compiled with gcc under fox-gate:

 /usr/sfw/bin/gcc -DHAVE_CONFIG_H -I. -I../include
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include/freetype2
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include/pixman-1
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/drm
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/X11/dri
-I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/X11/extensions
-DDEFAULT_STANDBY_TIME=900000 -DDEFAULT_SUSPEND_TIME=1080000
-DDEFAULT_OFF_TIME=1260000 -DSUNSOFT -DTSOL -DHAVE_DIX_CONFIG_H -Wall
-Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing
-DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -D_REENTRANT
-D_POSIX_PTHREAD_SEMANTICS -DXTHREADS -DXUSE_MTSAFE_API -I../include
-I../include -I../Xext -I../composite -I../damageext -I../xfixes
-I../Xi -I../mi -I../miext/shadow -I../miext/damage -I../render
-I../randr -I../fb "-DVENDOR_NAME=\"Sun Microsystems, Inc.\""
"-DVENDOR_RELEASE=(((1) * 10000000) + ((6) * 100000) + ((1) * 1000) +
901)" -O3 -fno-omit-frame-pointer -Wall -Wno-unknown-pragmas
-march=i686 -m32 -MT ptrveloc.lo -MD -MP -MF .deps/ptrveloc.Tpo -c
ptrveloc.c  -fPIC -DPIC -o .libs/ptrveloc.o


xserver/xorg/build_32/xorg-server-1.6.1.901/dix/ptrveloc.c:

   355      /*
   356          * cvelocity is not a real velocity yet, more a motion delta. 
constant
   357          * acceleration is multiplied here to make the velocity an 
on-screen
   358          * velocity (pix/t as opposed to [insert unit]/t). This is 
intended to
   359          * make multiple devices with widely varying
ConstantDecelerations respond
   360          * similar to acceleration controls.
   361          */
   362      cvelocity = (float)sqrt(dx*dx + dy*dy) * s->const_acceleration;


Looking at the compiled code, my binary seems to have been compiled
to quite different code when compared to the b117 Xorg binary:

My Xorg (32-bit, compiled with gcc, no mouse pointer jumping):

acceleratePointerPredictable+0x206:     imull  %eax,%eax
acceleratePointerPredictable+0x209:     imull  %edx,%edx
acceleratePointerPredictable+0x20c:     movl   %eax,-0x40(%ebp)
acceleratePointerPredictable+0x20f:     addl   %edx,%eax
acceleratePointerPredictable+0x211:     pushl  %eax
acceleratePointerPredictable+0x212:     fildl  (%esp)
acceleratePointerPredictable+0x215:     addl   $0x4,%esp
acceleratePointerPredictable+0x218:     fld    %st(0)
acceleratePointerPredictable+0x21a:     fsqrt
acceleratePointerPredictable+0x21c:     fucomi %st(0)
acceleratePointerPredictable+0x21e:     jp     +0x35d
<acceleratePointerPredictable+0x581>
acceleratePointerPredictable+0x224:     jne    +0x357
<acceleratePointerPredictable+0x581>
acceleratePointerPredictable+0x22a:     fstp   %st(1)
acceleratePointerPredictable+0x22c:     fstps  -0x1c(%ebp)
acceleratePointerPredictable+0x22f:     movl   0x18(%ebp),%eax
acceleratePointerPredictable+0x232:     movswl 0xa8(%edi),%ecx
acceleratePointerPredictable+0x239:     flds   -0x1c(%ebp)
acceleratePointerPredictable+0x23c:     fmuls  0xa0(%edi)
acceleratePointerPredictable+0x242:     movl   %eax,0x88(%edi)


b117 Xorg (32-bit, compiled with ???, mouse pointer jumps):

acceleratePointerPredictable+0x1ba:     imull  %eax,%eax
acceleratePointerPredictable+0x1bd:     movl   -0x40(%ebp),%edx
acceleratePointerPredictable+0x1c0:     imull  %edx,%edx
acceleratePointerPredictable+0x1c3:     addl   %edx,%eax
acceleratePointerPredictable+0x1c5:     movl   %eax,-0x60(%ebp)
acceleratePointerPredictable+0x1c8:     fildl  -0x60(%ebp)
acceleratePointerPredictable+0x1cb:     fsqrt
acceleratePointerPredictable+0x1cd:     fstpl  -0x60(%ebp)
acceleratePointerPredictable+0x1d0:     fldl   -0x60(%ebp)
acceleratePointerPredictable+0x1d3:     fstps  -0x60(%ebp)
acceleratePointerPredictable+0x1d6:     flds   -0x60(%ebp)
acceleratePointerPredictable+0x1d9:     fmuls  0xa0(%esi)
acceleratePointerPredictable+0x1df:     fstps  -0x60(%ebp)
acceleratePointerPredictable+0x1e2:     flds   -0x60(%ebp)
acceleratePointerPredictable+0x1e5:     fwait

Reply via email to