Make the r128 driver work without fbdev

Alex Deucher alexdeucher at gmail.com
Thu Dec 16 19:39:22 PST 2004


On Thu, 16 Dec 2004 19:38:23 -0600, David Stanaway <david at stanaway.net> wrote:
> My system is running pretty well with Xinerama now, but there is a
> problem with utilization of the video ram I think.
> 
> In OSX, I can have a 1600x1200 at 24bit and a 1152x768 at 24bit display, when
> I try this configuration with Xorg + Alex's patches, it drops 1600x1200
> and 1280x1024 modes on the second display due to insufficient memory.
> 
> It should need 8,414,208 + whatever bytes of ram, or if it uses a word
> for each pixel, 11,218,944 + whatever bytes of ram.
> 

24 bpp, uses 32 bpp as far as the chip is concerned.

> I believe my r138 M3 has 16M of VRAM so there is some wasted allocation
> somewhere.
> 
> I can run at these resolutions at 16bit, and here are the relevant
> excerts from the log:
> (--) R128(0): VideoRAM: 8192 kByte (128-bit SDR SGRAM 1:1)
> (--) R128(1): VideoRAM: 4096 kByte (128-bit SDR SGRAM 1:1)
> 

due to the way the driver allocates ram these printouts can be kind of
confusing. see below for more details.

> Now R128(0) has the 1152x768 display and at 16 bit, it should only need
> 1728 kByte for the framebuffer, and R128(1) which has 1600x1200 should
> only need 3750 kByte for the frame buffer.

According to your log, the driver only detects 8 MB of video ram:
(--) R128(0): VideoRAM: 8192 kByte (128-bit SDR SGRAM 1:1)

if your card really does have 16 MB, you could force the video ram by adding:
VideoRam    16384
to the device section of your config, however, I've never really known
it to be wrong...

> 
> I will have a look through the driver to see if I can see where the
> video memory is allocated, and see where the wasteage is, but that will
> probably be tomorrow night before I get to look.
> 

When dualhead is enabled, on the second load of the driver, it divides
the videoram in half and allocates half to each head, in this case 4
MB per head.  I should probably clean up the allocation messages as I
did with the savage driver to make it more clear what is happening. 
It's a little confusing right now, because when the driver first
loads, it displays the total amount of videoram, then when it loads
again for the second head it cuts the ram in half and changes the
videoram allocated to the first instance.  So to see what each head
gets allocated, look at the second head for now.

At some point, I'll probably port mergedfb support to r128, then
you'll have all of videoram available to both heads, you'll also get
dualhead DRI :)

Alex

> --
> David Stanaway <david at stanaway.net>
> 
>



More information about the xorg mailing list