LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 01-09-2007, 10:03 PM   #1
mr.v.
Member
 
Registered: Jun 2006
Distribution: Slackware 11
Posts: 59

Rep: Reputation: 15
i810 graphics and DRI problem


Hi all--

I have an intel i810 graphics chipset and it does not appear to be using the DRI. Here's the details

I'm running slackware 11 and recently upgraded to the 2.6.19.1 kernel because the 2.6.X series includes support for i810.

I compiled in i810fb for a console framebuffer which works. I also compiled in under Device Drivers -> Character Devices -> agpart support for Intel 440LX/BX/GX, I8xx and E7x05
as well as Direct Rendering Manager for Intel I810

however glxinfo says I don't have direct rendering...here's all the details

Here's the glx info indicating the problem
Code:
bash-3.1#  glxinfo | grep direct
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
In my /etc/X11/xorg.conf file I have the following:
Code:
# This loads the GLX module
    Load       "glx"
# This loads the DRI module
    Load       "dri"
AND
Code:
Section "Device"
    Identifier  "inteli810"
    Driver      "i810"
    #VideoRam    8192
    # Insert Clocks lines here if appropriate
EndSection
To ensure it was loaded I looked at the /var/log/Xorg.0.log
Code:
bash-3.1# cat /var/log/Xorg.0.log | grep dri
        X.Org XInput driver : 0.5
(II) LoadModule: "dri"
(II) Loading /usr/X11R6/lib/modules/extensions/libdri.so
(II) Module dri: vendor="X.Org Foundation"
(II) Loading /usr/X11R6/lib/modules/drivers/i810_drv.so
        ABI class: X.Org XInput driver, version 0.5
        ABI class: X.Org XInput driver, version 0.5
To make sure my agpgart is kosher as well as my drm in the kernel I have the following in my /var/log/dmesg here are what seem to be relevant lines...I didn't notice any errors...
Code:
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected an Intel i810 E Chipset.
agpgart: detected 4MB dedicated video ram.
agpgart: AGP aperture is 64M @ 0xf8000000
[drm] Initialized drm 1.0.1 20051102
[drm] Initialized i810 1.4.0 20030605 on minor 0
i810-i2c: Probe DDC1 Bus
i810fb_init_pci: DDC probe successful
Console: switching to colour frame buffer device 128x48
I810FB: fb0         : Intel(R) 810E Framebuffer Device v0.9.0
I810FB: Video RAM   : 2048K
I810FB: Monitor     : H: 30-80 KHz V: 56-76 Hz
I810FB: Mode        : 1024x768-8bpp@75Hz
anyone know how I can get DRI working? It seems I have all the important elements.

Thanks!

EDIT: I noticed that it reports 4Mb for my videoram and in the commented out line of my xorg.conf it says 8192. However, I've since changed the xorg.conf to 4096 but it didn't seem to change anything (also that line is commented out).

Last edited by mr.v.; 01-09-2007 at 10:09 PM.
 
Old 01-10-2007, 11:01 AM   #2
kaz2100
Senior Member
 
Registered: Apr 2005
Location: Penguin land, with apple, no gates
Distribution: SlackWare > Debian testing woody(32) sarge etch lenny squeeze(+64) wheezy jessie stretch buster
Posts: 1,682

Rep: Reputation: 105Reputation: 105
Hi,

Set environmental variable LIBGL_DEBUG to "verbose" and see what happens.

Happy Penguins!
 
Old 01-10-2007, 06:47 PM   #3
mr.v.
Member
 
Registered: Jun 2006
Distribution: Slackware 11
Posts: 59

Original Poster
Rep: Reputation: 15
Hmmm...seems as though I've got an even bigger problem.

So I read in this thread after doing some searching...
http://www.linuxquestions.org/questi...d.php?t=402003
that DRI for intel i810 graphics chipset only works in 16 bpp. Okay. So I thought I'd try it. I went into my xorg.conf and switched from
Code:
DefaultDepth 24
to
Code:
DefaultDepth 16
and then ran startx.
The desktop wouldn't load. It crashed back to the terminal complaining about the screen.

if I change to 8 bpp or 24 bpp it will startup again but with 16 it crashes. Any idea what the problem is?! I even commented out the load "dri" just in case that was the issue. But even without dri it still crashes.
Here's my screen section of xorg.conf
Code:
Section "Screen"
    Identifier  "Screen 1"
    Device      "inteli810"
    Monitor     "dell"
    DefaultDepth 24

    Subsection "Display"
        Depth       8
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
EndSection
Note: I've tried 16 with the lead being "1280x1024" "1024x768" "800x600" and finally ended up with "640x480" but none of them work. It's the most bizarre thing. The other color-depths work fine!

Here's the crash info I get at the terminal:
Code:
Fatal server error:
AddScreen/ScreenInit failed for driver 0


Please consult the The X.Org Foundation support
         at http://wiki.X.Org
 for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional informati
on.

XIO:  fatal IO error 104 (Connection reset by peer) on X server ":0.0"
      after 0 requests (0 known processed) with 0 events remaining.
Here's some of the last lines of the Xorg.0.log output
Code:
(==) I810(0): Write-combining range (0xf8000000,0x4000000)
(II) I810(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
(II) I810(0): Setting dot clock to 36.0 MHz [ 0x10 0x1 0x40 ] [ 18 3 4 ]
(II) I810(0): chose watermark 0x22007000: (tab.freq 36.0)
(II) I810(0): xf86BindGARTMemory: bind key 2 at 0x00000000 (pgoffset 0)
(WW) I810(0): xf86BindGARTMemory: binding of gart memory with key 2
        at offset 0x0 failed (Device or resource busy)

Fatal server error:
AddScreen/ScreenInit failed for driver 0
But I don't get the offset 0x0 failed error with either 8bpp or 24bpp set as the default color depth. Any ideas?

Thanks!

Last edited by mr.v.; 01-10-2007 at 06:48 PM.
 
Old 01-10-2007, 08:08 PM   #4
Electro
LQ Guru
 
Registered: Jan 2002
Posts: 6,042

Rep: Reputation: Disabled
Probably framebuffer of i810 is taking use of it. Either use framebuffer for X11 (X Window System) or do not use Framebuffer. Also you need to specify the video RAM to something like 32 MB (32768) or 64 MB (65536). Video RAM of 2 MB is not enough to handle a resolution of 1280x1024. Video RAM of 2 MB is good enough to handle 2D graphics of 800x600.
 
Old 01-12-2007, 05:22 AM   #5
mr.v.
Member
 
Registered: Jun 2006
Distribution: Slackware 11
Posts: 59

Original Poster
Rep: Reputation: 15
Hey Electro, thanks for the advice! It worked! I recompiled my kernel to remove framebuffer support (since vga=normal didn't seem to stop the framebuffer from loading) and voila, the 16-bit x-server loaded and the DRI module worked!

However, now I have a couple of questions. If I choose to use the frame-buffer and X framebuffer driver, will that allow the DRI to work?
And if so, when I specify which frame-buffer to use at the vga= line in /etc/lilo.conf...does that dictate what the resolution of the x-server must be? or will it still allow the x-server to change to different resolutions?

In other words, using the framebuffer driver in the kernel, can I have a 1024x768x8bpp console framebuffer AND from there launch a framebuffer X-server with 1280x1024x16bpp resolution?

Much obliged!

(and for another semi-unrelated question)...my card is 4MB. If I do a quick calculation, 1280x1024x16-bpp color then it would seem my videocard only needs 2.5MB of RAM 1280*1024*16/8/1024/1024) to hold the entire buffer. Also, even if I do 1280x1024x24-bpp color I should only need 3.75MB (1280*1024*24/8/1024/1024) which would be just less than the 4 MB of RAM my videocard has. HOWEVER, is the 24bpp color actually stored in a 32-bit int? in which case I'd need 5MB of RAM to store the info even though 8bpp of memory was wasted?

I can tell you that even though DRI didn't work, X was able to do 1280x1024x24bpp on the 4mb graphics card. So what does that mean? Is the info only stored in 24-bit chunks and not 32-bit such that it will fit in my 4mb of ram? Does the videocard have to have enough ram to hold the entire memory requirements of the display or is it able to swap out with the System Ram (albiet at a huge hit to performance)?

Last edited by mr.v.; 01-12-2007 at 05:25 AM.
 
Old 01-12-2007, 03:47 PM   #6
Electro
LQ Guru
 
Registered: Jan 2002
Posts: 6,042

Rep: Reputation: Disabled
There is no such thing as 32-bit color on x86 and PowerPC systems. 32-bit color depth is 24-bit color plus 8-bit for opaque (transparency) levels. On some Silicon Graphic computers, there is 30-bit (10-bit for RGB) or 36-bit (12-bit for RGB) of color. 16-bit color is actually 15-bit color, so the amount of colors viewed is half of what a lot of people expected.

If you want DRI or GLX to work you need to add the video memory that is needed to view the desire resolution plus some memory to store 3D data. I suggest start with 32 MB for video memory or upgrade your memory and use 64 MB. For Intel graphics, mesa3D have to be used on most of OpenGL instructions, so you will get poor 3D performance.

I recommend do not use framebuffer because you may not be able to use XVideo for video files and programs like VMware will not be able to go into full screen mode.

Go to http://www.pcguide.com/ref/video/modesBuffer-c.html.
 
Old 01-20-2007, 04:55 PM   #7
IntuitiveNipple
LQ Newbie
 
Registered: Jan 2007
Posts: 1

Rep: Reputation: 0
Exclamation

I'm seeing the same problem on a Sony Vaio notebook with Ubuntu Edgy 6.10 (kernel 2.6.17-10).

I had X working fine (at DisplayDepth 16 to enable DRI) but had corrupted flickering video during kernel boot because the kernel wouldn't load the vesafb or i810fb modules, leaving the system with text-mode only.

I had to build a custom kernel with the i810fb driver, agp, and drm statically linked to get it to read and use the kernel command-line video options.

Once I booted with the modified kernel the framebuffer worked, showed the kernel splash screen, gave full-screen 1024x768 tty consoles, etc.

However X fails to start, reporting "AddScreen/ScreenInit failed for driver 0".

Digging into /var/log/Xorg.0.log reveals:
Code:
(II) I810(0): xf86BindGARTMemory: bind key 2 at 0x00000000 (pgoffset 0)
(WW) I810(0): xf86BinfGARTMemory: binding of gart memory with key 2 at offset 0x0 failed (Device or resource busy)
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Graphics Problem for i810 in Slackware 10.2 freakie Linux - Newbie 2 02-13-2006 01:04 PM
DRI Problem...intel i810 syssandy Slackware 1 01-23-2006 12:51 PM
i810 DRI problem hosler Slackware 6 01-22-2006 10:19 PM
intel i810 dri problem... time112852 Linux - Software 6 12-03-2005 02:40 AM
Yet another i810 graphics problem, very very poor 3D support Merlinfmct87 Linux - Software 12 04-14-2005 06:19 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 01:34 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration