i810/modesetting and Xinerama?

Andreas Schildbach andreas at schildbach.de
Mon Dec 18 15:42:46 PST 2006

Hi Keith,

>> is there any plan on when to support Xinerama (or an alternative means
>> of using dualscreen) in combination with the i810 modesetting driver?
>> I'd be very happy to test, since newer (post 7.0) X drivers broke my
>> apparently fragile dualscreen "1920 x 1200 @ exactly 60 Hz" setup )-:
> The modesetting branch, when compiled and run against the
> randr-1.2-for-server-1.2 branch

Is there a tutorial on how to compile and run modules against each 
other? I don't want to waste precious developer time with newbie 

Up to now, I managed to git-clone the modules drm (HEAD (=2.3.0?)), 
xserver (randr-1.2-for-server-1.2) and xf86-video-intel (modesetting). I 
got libdrm into the boat, because the other two modules were complaining 
about unmet dependencies and Ubuntu only comes with libdrm 2.0.2.

Autogen, configure and "make clean install" went well for drm, but 
xserver yields the following error:

  gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include 
-I../include -I../include -I../include -I../include -I../include 
-DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wstrict-prototypes 
-Wmissing-prototypes -Wmissing-declarations -Wnested-externs 
-I/usr/include/freetype2 -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 -g 
-O2 -MT mirandr.lo -MD -MP -MF .deps/mirandr.Tpo -c mirandr.c  -fPIC 
-DPIC -o .libs/mirandr.o
In file included from mirandr.c:34:
randrstr.h:64: error: 'RRNumberRequests' undeclared here (not in a function)
randrstr.h:80: error: expected specifier-qualifier-list before 'xRRModeInfo'
randrstr.h:420: error: expected ')' before '*' token
randrstr.h:585: error: expected ')' before '*' token
mirandr.c: In function 'miRandRInit':
mirandr.c:93: error: 'xRRModeInfo' undeclared (first use in this function)
mirandr.c:93: error: (Each undeclared identifier is reported only once
mirandr.c:93: error: for each function it appears in.)
mirandr.c:93: error: expected ';' before 'modeInfo'
mirandr.c:112: error: 'modeInfo' undeclared (first use in this function)
mirandr.c:117: warning: implicit declaration of function 'RRModeGet'
mirandr.c:117: warning: nested extern declaration of 'RRModeGet'
mirandr.c:117: warning: assignment makes pointer from integer without a cast
mirandr.c:141: error: 'RR_Connected' undeclared (first use in this function)

I take it I don't have to do anything special to link against libdrm 
2.3.0 as I have installed it and autogen/configure does not complain 
about unmet dependencies any more. Is this correct?

I am using Ubuntu Feisty, development version.

> offers a superset of Xinerama
> functionality for merge-fb mode. EDID data is collected for each monitor
> and correct modes set on all of them.

That sounds great.

> When run against older servers, it
> is lacking the startup configuration necessary to enable separate
> positioning for each monitor within the screen viewport. I'm working on
> that...

This sounds great even more... can't wait for this to happen (-:

> Note that the 945 and earlier chipsets cannot deal with a frame buffer
> stride of larger than 8KB, so if you want to run 3840x1200, you'll have
> to run at 16bpp. Yes, this is annoying.

Actually, I've got one 1920 x 1200 @ 60 Hz screen and a notebook display 
of only 1280 x 768 with an unknown refresh rate (range). As they shall 
be stacked vertically, the resulting framebuffer would be 1920 x 1968.

My chipset is a i915GMS, will this be a problem? Note that in Xinerama 
mode, I managed to configure this under Ubuntu Dapper / X.org 7.0 (with 
more luck than understanding). So it should be possible...



More information about the xorg mailing list