Discussion:
[9fans] Intel X4500 Integrated Graphics support
(too old to reply)
Akshat Kumar
2011-12-20 07:40:24 UTC
Permalink
My Thinkpad X200s has an Intel X4500 card,
but vga(3) defaults to using vesa. Has anyone
added any support for this card lately? Or is
there any other vga `type' that can be set in
/dev/vgactl, which would offer better
performance than vesa, for this card?


Thanks,
ak
erik quanstrom
2011-12-20 13:52:27 UTC
Permalink
Post by Akshat Kumar
My Thinkpad X200s has an Intel X4500 card,
but vga(3) defaults to using vesa. Has anyone
added any support for this card lately? Or is
there any other vga `type' that can be set in
/dev/vgactl, which would offer better
performance than vesa, for this card?
i think most people are using vesa. unfortunately
that limits one to 4:3 graphics modes.

which kernel are you using? if you get write-combining
going through pat or mtrr, and use double buffering,
things should be pretty good on most hardware.
(true of the kernels you could download today.)

- erik
Stanley Lieber
2011-12-20 14:47:30 UTC
Permalink
i think most people are using vesa.  unfortunately
that limits one to 4:3 graphics modes.
Some card/monitor combinations seem to support other aspect ratios
that are technically outside of the VESA spec. For example, my NVidia
GeForce 8400GS coupled with an NEC AccuSync AS221WM 22" via DVI-D[1]
happily runs[2] at the monitor's native resolution of 1680x1050 with
VESA, which is 16:10. I was also able to achieve 1680x1050 on the
AS221WM with an Intel GMA 3000 via VGA. The deciding factor seems to
be whatever modes are contained in the specific VESA BIOS that is in
your specific video card.

Note: depending upon the monitor, and depending upon how the card is
connected to the monitor, the VESA BIOS may present the user with
different available modes. Typically, aux/vga -p will produce
different output when the same hardware is connected via VGA, DVI-D,
HDMI, etc.

-sl

[1]
term% @{rfork n; aux/realemu; aux/vga -p}
fd 000000FD00384C1F5311000A202020202020
vesa flag Ulinear|Hlinear|Fsnarf
vesa sig VESA 3.0
vesa oem NVIDIA 96.134
vesa vendor NVIDIA Corporation
vesa product G86 Board - p413h05
vesa rev Chip Rev
vesa cap 8-bit-dac
vesa mem 14680064
vesa mode 0x100 640x400x8 m8 packed
vesa mode 0x101 640x480x8 m8 packed
vesa mode 0x103 800x600x8 m8 packed
vesa mode 0x105 1024x768x8 m8 packed
vesa mode 0x107 1280x1024x8 m8 packed
vesa mode 0x10e 320x200x16 r5g6b5 direct
vesa mode 0x10f 320x200x32 x8r8g8b8 direct
vesa mode 0x111 640x480x16 r5g6b5 direct
vesa mode 0x112 640x480x32 x8r8g8b8 direct
vesa mode 0x114 800x600x16 r5g6b5 direct
vesa mode 0x115 800x600x32 x8r8g8b8 direct
vesa mode 0x117 1024x768x16 r5g6b5 direct
vesa mode 0x118 1024x768x32 x8r8g8b8 direct
vesa mode 0x11a 1280x1024x16 r5g6b5 direct
vesa mode 0x11b 1280x1024x32 x8r8g8b8 direct
vesa mode 0x130 320x200x8 m8 packed
vesa mode 0x131 320x400x8 m8 packed
vesa mode 0x132 320x400x16 r5g6b5 direct
vesa mode 0x133 320x400x32 x8r8g8b8 direct
vesa mode 0x134 320x240x8 m8 packed
vesa mode 0x135 320x240x16 r5g6b5 direct
vesa mode 0x136 320x240x32 x8r8g8b8 direct
vesa mode 0x13d 640x400x16 r5g6b5 direct
vesa mode 0x13e 640x400x32 x8r8g8b8 direct
vesa mode 0x160 1280x800x8 m8 packed
vesa mode 0x161 1280x800x32 x8r8g8b8 direct
vesa mode 0x162 768x480x8 m8 packed
vesa mode 0x168 1680x1050x8 m8 packed
vesa mode 0x169 1680x1050x32 x8r8g8b8 direct
edid mfr NEC
edid serialstr 03105090TA
edid name AS221WM
edid product 26562
edid serial 0
edid version 1.3
edid mfrdate 2010.10
edid size (cm) 47x30
edid gamma 2.20
edid vert (Hz) 56-76
edid horz (Hz) 31000-83000
edid pclkmax 170000000
edid flags digital standby suspend activeoff
edid ***@60Hz
clock=25.175
shb=648 ehb=792 ht=800
vrs=490 vre=492 vt=525
hsync=- vsync=-
edid ***@73Hz
clock=31.5
shb=648 ehb=824 ht=832
vrs=489 vre=492 vt=520
hsync=- vsync=-
edid ***@75Hz
clock=31.5
shb=640 ehb=840 ht=840
vrs=481 vre=484 vt=500
hsync=- vsync=-
edid ***@56Hz
clock=36
shb=800 ehb=1024 ht=1024
vrs=601 vre=603 vt=625
hsync=+ vsync=+
edid ***@60Hz
clock=40
shb=800 ehb=1056 ht=1056
vrs=601 vre=605 vt=628
hsync=+ vsync=+
edid ***@72Hz
clock=50
shb=800 ehb=1040 ht=1040
vrs=637 vre=643 vt=666
hsync=+ vsync=+
edid ***@75Hz
clock=49.5
shb=800 ehb=1056 ht=1056
vrs=601 vre=604 vt=625
hsync=+ vsync=+
edid ***@60Hz
clock=65
shb=1024 ehb=1344 ht=1344
vrs=771 vre=777 vt=806
hsync=- vsync=-
edid ***@70Hz
clock=75
shb=1024 ehb=1328 ht=1328
vrs=771 vre=777 vt=806
hsync=- vsync=-
edid ***@75Hz
clock=78.75
shb=1024 ehb=1312 ht=1312
vrs=769 vre=772 vt=800
hsync=+ vsync=+
edid ***@75Hz
clock=135
shb=1280 ehb=1688 ht=1688
vrs=1025 vre=1028 vt=1066
hsync=+ vsync=+
edid ***@60Hz
clock=146.25
shb=1784 ehb=1960 ht=2240
vrs=1053 vre=1059 vt=1089
hsync=- vsync=+


[2] A small change to vgavesa.c allowed for the larger framebuffer on
this NVidia card:
http://code.google.com/p/plan9front/source/detail?r=18198808ff
Aram Hăvărneanu
2011-12-25 16:09:41 UTC
Permalink
Post by Stanley Lieber
i think most people are using vesa.  unfortunately
that limits one to 4:3 graphics modes.
Some card/monitor combinations seem to support other aspect ratios
that are technically outside of the VESA spec
I confirm, I use 1920x1280x32 with vesa. I'm not sure about the video
card, don't care about these things. It might be some sort of Nvidia
Quadro.

With such a high resolution vesa is slow, but very usable.
--
Aram Hăvărneanu
erik quanstrom
2011-12-20 15:03:31 UTC
Permalink
Post by Stanley Lieber
Some card/monitor combinations seem to support other aspect ratios
that are technically outside of the VESA spec. For example, my NVidia
GeForce 8400GS coupled with an NEC AccuSync AS221WM 22" via DVI-D[1]
happily runs[2] at the monitor's native resolution of 1680x1050 with
VESA, which is 16:10. I was also able to achieve 1680x1050 on the
AS221WM with an Intel GMA 3000 via VGA. The deciding factor seems to
be whatever modes are contained in the specific VESA BIOS that is in
your specific video card.
i never considered the advertized modes might depend on
the monitor connected. have you observed this?

also, the old code set paddr to the start of the bar, your code
sets it to whatever the vbe mode returned. have you observed
this, too?

- erik
Stanley Lieber
2011-12-20 15:32:48 UTC
Permalink
Post by erik quanstrom
i never considered the advertized modes might depend on
the monitor connected.  have you observed this?
Yes. I have a few combinations of VGA-VGA, DVI-DVI, VGA-DVI, DVI-HDMI,
etc., cables, and, using the same card and monitor, I get different
output from aux/vga -p depending upon the combination. I've observed
this with other cards and monitors as well. It seems like the card
firmware does some kind of autodetection to figure out which modes it
wants to present.
Post by erik quanstrom
also, the old code set paddr to the start of the bar, your code
sets it to whatever the vbe mode returned.  have you observed
this, too?
Attempting 1680x1050x32 was hanging my machine[1]. Cinap identified
the problem and provided the fix. I can't speak much on the code as I
don't really understand the mechanism.

-sl

[1] http://www.flickr.com/photos/stanleylieber/6403274727/in/set-72157627976638191/
Akshat Kumar
2011-12-21 04:56:02 UTC
Permalink
I have tried 1280x800x32 on the laptop and
1280x1024x16 and 1280x1024x32 on a monitor
connected to the laptop via VGA. In all cases,
the result is a very, very incredibly slow and
choppy rio.

I'm using the stock Plan 9 kernel (with a patch
for IL (*shakes fist at the 'Labs*)).


ak
i think most people are using vesa.  unfortunately
that limits one to 4:3 graphics modes.
which kernel are you using?  if you get write-combining
going through pat or mtrr, and use double buffering,
things should be pretty good on most hardware.
(true of the kernels you could download today.)
- erik
erik quanstrom
2011-12-21 05:01:00 UTC
Permalink
Post by Akshat Kumar
I have tried 1280x800x32 on the laptop and
1280x1024x16 and 1280x1024x32 on a monitor
connected to the laptop via VGA. In all cases,
the result is a very, very incredibly slow and
choppy rio.
I'm using the stock Plan 9 kernel (with a patch
for IL (*shakes fist at the 'Labs*)).
there could be many things wrong. if you're having
a mtrr issue, then 9atom should fix it, since i gave mtrrs
a pass since they are depricated and require hooks into
the clock interrupt.

but i'm wondering if rio is the only thing that's choppy
on your system. why don't you send pci output? it's too
bad you don't have the 9atom mods to /dev/irqalloc that
would let us know if you have a ringing irq.

- erik
Akshat Kumar
2011-12-23 04:27:06 UTC
Permalink
I will also try 9atom.

Here is the `pci -v' output:

0.0.0: brg 06.00.00 8086/2a40 0
Intel Corporation
0.2.0: vid 03.00.00 8086/2a42 11 0:f2000004 4194304 1:00000000 16 2:d000000c 268435456 3:00000000 16 4:00001801 16
Intel Corporation Mobile Intel 4 Series Chipset Family Intel Mobile Graphic
0.2.1: vid 03.80.00 8086/2a43 0 0:f2400004 1048576 1:00000000 16
Intel Corporation Mobile Intel 4 Series Chipset Family Intel Mobile Graphic
0.25.0: net 02.00.00 8086/10f5 11 0:f2600000 131072 1:f2625000 4096 2:00001841 32
Intel Corporation 82567LM Intel® 82567LM-2 Gigabit Network Connection
0.26.0: usb 0c.03.00 8086/2937 11 4:00001861 32
Intel Corporation
0.26.1: usb 0c.03.00 8086/2938 11 4:00001881 32
Intel Corporation
0.26.2: usb 0c.03.00 8086/2939 11 4:000018a1 32
Intel Corporation
0.26.7: usb 0c.03.20 8086/293c 11 0:f2826c00 1024
Intel Corporation
0.27.0: aud 04.03.00 8086/293e 11 0:f2620004 16384 1:00000000 16
Intel Corporation 486486 82801IB/IR/IH (ICH9 Family) HD Audio Controller
0.28.0: brg 06.04.00 8086/2940 11
Intel Corporation
0.28.1: brg 06.04.00 8086/2942 11
Intel Corporation
0.28.3: brg 06.04.00 8086/2946 11
Intel Corporation
0.29.0: usb 0c.03.00 8086/2934 11 4:000018c1 32
Intel Corporation
0.29.1: usb 0c.03.00 8086/2935 11 4:000018e1 32
Intel Corporation
0.29.2: usb 0c.03.00 8086/2936 11 4:00001c01 32
Intel Corporation
0.29.7: usb 0c.03.20 8086/293a 11 0:f2827000 1024
Intel Corporation
0.3.0: ser 07.80.00 8086/2a44 11 0:f2826804 16 1:00000000 16
Intel Corporation Mobile 4 Series Chipset Intel Management Engine Interface
0.3.3: ser 07.00.02 8086/2a47 11 0:00001831 16 1:f2624000 4096
Intel Corporation 20EC17AA Active Management Technology - SOL
0.30.0: brg 06.04.01 8086/2448 255
Intel Corporation 82801BAM/CAM/DBM Hub Interface to PCI Bridge
0.31.0: brg 06.01.00 8086/2917 0
Intel Corporation
0.31.2: disk 01.06.01 8086/2929 11 0:00001c49 16 1:0000183d 16 2:00001c41 16 3:00001839 16 4:00001c21 32 5:f2826000 2048
Intel Corporation ICH9M/ME ICH9M/ME AHCI Controller
0.31.3: smb 0c.05.00 8086/2930 11 0:f2827404 256 1:00000000 16 4:00001c61 32
Intel Corporation Intel ICH9 Family SMBus Controller Intel ICH9 Family SMBus Controller
3.0.0: net 02.80.00 8086/4237 11 0:f2500004 8192 1:00000000 16
Intel Corporation 5100 AGN Intel (R) WiFi Link 5100 AGN
erik quanstrom
2011-12-30 16:32:11 UTC
Permalink
sorry for the slow response. vacation. i'll try
to look at this today. but my time is being consumed
by a puppy, so my bandwidth might be poor.

one thing i notice is that there are two different video devices.
that's kind of wierd.

- erik
Akshat Kumar
2012-01-21 22:55:51 UTC
Permalink
It is indeed weird that we see two video devices.
I'm still not sure what that's about.

But just for the record, I've updated to the latest
9pc kernel (build on Oct. 12, 2011 iirc), and the
performance is far better. :-)

I also tried 9pcatom, and the performance is
great there as well. The only complaint I would
have here is that usbd on 9atom starts up too
late - after inputting boot, root, vga, etc. information.
So I have to go back and forth between my laptop
and keyboard.


Thanks,
ak

On Fri, Dec 30, 2011 at 8:32 AM, erik quanstrom
sorry for the slow response.  vacation.  i'll try
to look at this today.  but my time is being consumed
by a puppy, so my bandwidth might be poor.
one thing i notice is that there are two different video devices.
that's kind of wierd.
- erik
erik quanstrom
2012-01-23 15:48:32 UTC
Permalink
Post by Akshat Kumar
I also tried 9pcatom, and the performance is
great there as well. The only complaint I would
have here is that usbd on 9atom starts up too
late - after inputting boot, root, vga, etc. information.
So I have to go back and forth between my laptop
and keyboard.
just recompile the kernel with usbd.

- erik

Continue reading on narkive:
Loading...