Bug 21095 - [G41]DRI support
[G41]DRI support
Status: VERIFIED FIXED
Product: DRI
Classification: Unclassified
Component: DRM/Intel
unspecified
Other Linux (All)
: medium major
Assigned To: Eric Anholt
:
: 21425 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-04-08 00:22 UTC by liuhaien
Modified: 2009-07-23 19:39 UTC (History)
6 users (show)

See Also:


Attachments
xorg.0.log (52.79 KB, text/plain)
2009-04-08 00:22 UTC, liuhaien
no flags Details
xorg conf file (3.76 KB, text/plain)
2009-04-08 00:23 UTC, liuhaien
no flags Details
the output of intel_gtt (107 bytes, text/plain)
2009-04-13 01:01 UTC, liuhaien
no flags Details
intel_gtt with agp=off (107 bytes, text/plain)
2009-04-13 22:37 UTC, liuhaien
no flags Details
new xorg.0.log (34.85 KB, text/plain)
2009-04-14 23:18 UTC, liuhaien
no flags Details
dmesg (27.39 KB, text/plain)
2009-04-14 23:19 UTC, liuhaien
no flags Details
xorg.0.log with dri enabled (48.57 KB, text/plain)
2009-04-16 00:29 UTC, liuhaien
no flags Details
the output of glxinfo (9.49 KB, text/plain)
2009-04-16 00:29 UTC, liuhaien
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description liuhaien 2009-04-08 00:22:51 UTC
Created attachment 24661 [details]
xorg.0.log

System Environment:
--------------------------
platform: g41
Libdrm:		(master)1faab66cfd1a854925da6ff7109aa614292dea90
Mesa:		(mesa_7_4_branch)de197cf991416f0cd65ad2e2d2ca9aa599b52075
Xserver:	(server-1.6-branch)60c161545af80eb78eb790a05bde79409dfdf16e
Xf86_video_intel:		(2.7)3e5586cace98f73a9f8403a6446d380899ecbce9
Kernel:       (drm-intel-2.6.29)71d7aec4bbf923eaf43563c03459726a746cd332


Bug detailed description:
--------------------------
dri cann't be enabled on g41.

Reproduce Steps:
------------------
1.xinit&
Comment 1 liuhaien 2009-04-08 00:23:20 UTC
Created attachment 24662 [details]
xorg conf file
Comment 2 Gordon Jin 2009-04-08 00:44:01 UTC
unimplemented feature. Let's track here.
Comment 3 Ken 2009-04-08 05:13:04 UTC
Many, many folks with the G41 chipset are affected by this missing DRI support. The desktop graphic performance is unacceptable without it. Any idea what is involved to provide it?

Why does glxinfo report direct rendering anyhow under g41?
Comment 4 Jonathan McDowell 2009-04-11 01:33:34 UTC
The i915 kernel driver doesn't appear to have the G41 PCI IDs yet; Zhenyu Wang posted a patch back in September:

http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg36219.html

This still isn't in Linus' tree but when applied to 2.6.29.1 does seem to result in working DRI/KMS support.
Comment 5 Gordon Jin 2009-04-12 23:31:17 UTC
Haien, please attach intel_gtt (a tool under xf86-video-intel) output.
Comment 6 liuhaien 2009-04-13 01:01:19 UTC
Created attachment 24747 [details]
the output of intel_gtt
Comment 7 Wang Zhenyu 2009-04-13 01:08:35 UTC
Thanks, could you paste intel_gtt output when kernel boot with "agp=off" param?

Eric, it looks our G41 doesn't have stolen memory issue that you've seen. Do you have any bios setting for stolen size? 
Comment 8 liuhaien 2009-04-13 22:37:44 UTC
Created attachment 24781 [details]
intel_gtt with agp=off
Comment 9 liuhaien 2009-04-13 22:42:55 UTC
(In reply to comment #7)
> Thanks, could you paste intel_gtt output when kernel boot with "agp=off" param?
> 
> Eric, it looks our G41 doesn't have stolen memory issue that you've seen. Do
> you have any bios setting for stolen size? 
> 

intel_gtt output with "agp=off" is attached.
Comment 10 Gordon Jin 2009-04-13 22:51:15 UTC
Haien, please try below drm patch to see if DRI works:

From: Zhenyu Wang <zhenyu.z.wang@intel.com>
Date: Mon, 17 Nov 2008 13:58:11 +0800
Subject: [PATCH] [DRM] i915: add support for G41 chipset

Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h |    6 ++++--
 include/drm/drm_pciids.h        |    1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ed1edcf..df43bf9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -642,7 +642,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 		       (dev)->pci_device == 0x2A42 || \
 		       (dev)->pci_device == 0x2E02 || \
 		       (dev)->pci_device == 0x2E12 || \
-		       (dev)->pci_device == 0x2E22)
+		       (dev)->pci_device == 0x2E22 || \
+		       (dev)->pci_device == 0x2E32)
 
 #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
 
@@ -650,7 +651,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 
 #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
 		     (dev)->pci_device == 0x2E12 || \
-		     (dev)->pci_device == 0x2E22)
+		     (dev)->pci_device == 0x2E22 || \
+		     (dev)->pci_device == 0x2E32)
 
 #define IS_G33(dev)    ((dev)->pci_device == 0x29C2 ||	\
 			(dev)->pci_device == 0x29B2 ||	\
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
index 5165f24..671fab3 100644
--- a/include/drm/drm_pciids.h
+++ b/include/drm/drm_pciids.h
@@ -418,4 +418,5 @@
 	{0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
+	{0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0, 0, 0}
Comment 11 liuhaien 2009-04-14 22:40:46 UTC
Gordon,the patch dosen't work on my side.dri still can not be enabled.
Comment 12 liuhaien 2009-04-14 23:18:23 UTC
Created attachment 24808 [details]
new xorg.0.log
Comment 13 liuhaien 2009-04-14 23:19:15 UTC
Created attachment 24809 [details]
dmesg
Comment 14 Gordon Jin 2009-04-14 23:44:14 UTC
(In reply to comment #12)
> Created an attachment (id=24808) [details]
> new xorg.0.log

I don't understand why agpgart becomes broken after applying the drm patch.
Comment 15 Wang Zhenyu 2009-04-15 22:17:37 UTC
you left agp=off in kernel boot...
Comment 16 liuhaien 2009-04-16 00:26:11 UTC
(In reply to comment #15)
> you left agp=off in kernel boot...
> 

sorry,I forgot it.
dri works with the patch.
Comment 17 liuhaien 2009-04-16 00:29:14 UTC
Created attachment 24842 [details]
xorg.0.log with dri enabled
Comment 18 liuhaien 2009-04-16 00:29:52 UTC
Created attachment 24843 [details]
the output of glxinfo
Comment 19 Madhu 2009-04-23 02:57:11 UTC
(In reply to comment #10)
> Haien, please try below drm patch to see if DRI works:
> 
> From: Zhenyu Wang <zhenyu.z.wang@intel.com>
> Date: Mon, 17 Nov 2008 13:58:11 +0800
> Subject: [PATCH] [DRM] i915: add support for G41 chipset
> 
> Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h |    6 ++++--
>  include/drm/drm_pciids.h        |    1 +
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index ed1edcf..df43bf9 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -642,7 +642,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n,
> const char *caller);
>                        (dev)->pci_device == 0x2A42 || \
>                        (dev)->pci_device == 0x2E02 || \
>                        (dev)->pci_device == 0x2E12 || \
> -                      (dev)->pci_device == 0x2E22)
> +                      (dev)->pci_device == 0x2E22 || \
> +                      (dev)->pci_device == 0x2E32)
> 
>  #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
> 
> @@ -650,7 +651,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n,
> const char *caller);
> 
>  #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
>                      (dev)->pci_device == 0x2E12 || \
> -                    (dev)->pci_device == 0x2E22)
> +                    (dev)->pci_device == 0x2E22 || \
> +                    (dev)->pci_device == 0x2E32)
> 
>  #define IS_G33(dev)    ((dev)->pci_device == 0x29C2 || \
>                         (dev)->pci_device == 0x29B2 ||  \
> diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
> index 5165f24..671fab3 100644
> --- a/include/drm/drm_pciids.h
> +++ b/include/drm/drm_pciids.h
> @@ -418,4 +418,5 @@
>         {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8,
> 0xffff00, 0}, \
>         {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8,
> 0xffff00, 0}, \
>         {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8,
> 0xffff00, 0}, \
> +       {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8,
> 0xffff00, 0}, \
>         {0, 0, 0}
> 

Can I know why this patch is not yet pushed into drm-intel git tree. The drm support for G41 is still missing in the kernel.
Comment 20 Gordon Jin 2009-04-27 00:29:13 UTC
*** Bug 21425 has been marked as a duplicate of this bug. ***
Comment 21 Jonathan Dieter 2009-04-30 01:16:03 UTC
I'm running 3 DG41TY Fedora 10 computers with the G41 graphics chipset.  I've patched the kernel with https://bugzilla.redhat.com/attachment.cgi?id=337490 and 3D/compiz works fine.

However all of the systems hard lock whenever X is restarted after a random delay (i.e. X starts fine the first time (most of the time), but on the first or second logout, the system hangs with no response to pings, etc.).

I suspect this is why the patch hasn't made it into the mainline kernel.  Is there anything I (or anybody else) can do to help track down the problems so this can get enabled?
Comment 22 martin 2009-04-30 05:03:18 UTC
FYI: Looks like that patch made it, in a more or less identical state, into the 2.6.30-rc4 mainline:
http://lkml.org/lkml/2009/4/30/10
Comment 23 Madhu 2009-05-04 03:20:25 UTC
Thanks for the effort. BTW this was the patch comment from Zhenyu Wang.

"This had been delayed for some time due to failure to work on the one piece
of G41 hardware we had, and lack of success reports from anybody else.
Current hardware appears to be OK."

http://git.kernel.org/?p=linux/kernel/git/anholt/drm-intel.git;a=commitdiff;h=72021788678523047161e97b3dfed695e802a5fd;hp=44ab43155e8071fbf037513e57de9a79044edf56
Comment 24 Eric Anholt 2009-05-11 18:22:53 UTC
pushed
Comment 25 liuhaien 2009-05-18 23:52:59 UTC
verified with below commits:
Libdrm:		(master)f57d7f4b0b14972f92a83f155ae8033478aa7729
Mesa:		(mesa_7_5_branch)483e247804db914835173347b7f2a12c0f78d60e
Xserver:	(server-1.6-branch)a9f85dcefbadfe44d8c58ad08430aaadb8c59d34
Xf86_video_intel:		(master)87332a7cc16af82aa47e07fbf90da3635b071dbf
Kernel:       (for-linus)7c7327d9664280cad833da1f14bad13a3ea8f0bf
Comment 26 Rodd Clarkson 2009-07-21 04:06:19 UTC
I've been having ongoing issues with my g41 chipset, so I'm just cc'ing myself in to make it easy to locate this bug.

I'll test tomorrow and see what gives as this appears to have been included in f11
Comment 27 Rodd Clarkson 2009-07-23 19:06:20 UTC
I've tested this using a fedora rawhide livecd which I believe has all the correct bits in it, and this doesn't work for me.

I can't boot the kernel.

I'm not convinced that this bug is fixed.
Comment 28 Gordon Jin 2009-07-23 19:39:28 UTC
(In reply to comment #27)
> I've tested this using a fedora rawhide livecd which I believe has all the
> correct bits in it, and this doesn't work for me.
> 
> I can't boot the kernel.
> 
> I'm not convinced that this bug is fixed.
> 

We believe this common bug has been fixed, as multiple people have confirmed this.

There are also knowns issues for some specific G41 boards: bug#22518 bug#21574. If your issue is differnt, please file a separate bug according to http://intellinuxgraphics.org/how_to_report_bug.html.