|
Bugzilla – Full Text Bug Listing |
| Summary: | 32bit DRI on AMD64 broken (mga driver) | ||
|---|---|---|---|
| Product: | [openSUSE] SUSE LINUX 10.0 | Reporter: | Stefan Dirsch <sndirsch> |
| Component: | X.Org | Assignee: | Stefan Dirsch <sndirsch> |
| Status: | RESOLVED FIXED | QA Contact: | Stefan Dirsch <sndirsch> |
| Severity: | Normal | ||
| Priority: | P2 - High | CC: | eich, ms, ro |
| Version: | Beta 2 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | All | ||
| Whiteboard: | |||
| Found By: | Other | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
Make dri structure identical in size on 32 and 64 bit.
Required mga DRI driver patch New mga DRI driver with above patch applied New mga DRI driver patch to be applied for i386 |
||
|
Description
Stefan Dirsch
2005-08-23 21:56:54 UTC
Works fine with i915 DRI driver (tested on Intel 945G). So it's probably a mga (DRI) driver problem. Works also with the radeon driver (tested on Radeon 9000). I don't think it's worth to investigate the matrox problem (BTW, I tested on a G450) since I don't think there are or ever has been any machines on the market with G450/G550 inside. But it might make sense to removed the mga hunks from the X.Org/kernel patch. Egbert, what do you think? You need two fixes for mga (Mesa and X driver).
The first one is for Mesa. It's really simple and it may also work without it
(although it's safer to use it):
--- ../unpatched/Mesa/src/mesa/drivers/dri/mga/mga_xmesa.c 2004-12-16 01:23
:47.000000000 +0100
+++ Mesa/src/mesa/drivers/dri/mga/mga_xmesa.c 2005-04-05 21:26:38.000000000 +0
200
@@ -612,8 +612,7 @@
_tnl_allow_pixel_fog( ctx, GL_FALSE );
_tnl_allow_vertex_fog( ctx, GL_TRUE );
- mmesa->primary_offset = mmesa->mgaScreen->primary.handle;
-
+ mmesa->primary_offset = drmAgpBase(sPriv->fd);
ctx->DriverCtx = (void *) mmesa;
mmesa->glCtx = ctx;
I'm going to attach a copy of the second one.
Created attachment 48140 [details]
Make dri structure identical in size on 32 and 64 bit.
Please note: This structure is used for data shared between server and Mesa DRI
client.
Therefore it has to be changed in the X driver and the Mesa driver. The header
file can simply be copied from the X driver to Mesa:
(Mesa/src/mesa/drivers/dri/mga/server)
All your hunks are already included in out 32bit client patch --> ps_x86-64_ioctl32.diff So this won't help. :-( We probably need the changes in structure and func calls also in 32bit mga DRI driver. Building and testing right now. Build is still running. I only wanted to mention the old error message: # LIBGL_DEBUG=1 glxinfo libGL error: Couldn't map MMIO registers libGL warning: 3D driver returned no fbconfigs. libGL error: InitDriver failed libGL error: reverting to (slow) indirect rendering name of display: :0.0 display: :0 screen: 0 direct rendering: No Unfortunately I get the same error message with the new DRI driver with the patch applied. :-( Created attachment 48427 [details]
Required mga DRI driver patch
Created attachment 48428 [details]
New mga DRI driver with above patch applied
Created attachment 49518 [details]
New mga DRI driver patch to be applied for i386
Additionally I replaced "drm_handle_t" with "drmHandle" in both "mga_dri.h" in
ps_x86-64_ioctl32.diff patch, which is still only applied for x86_64.
This still needs to be tested on a 32bit and 64bit system. Wow, my patches fix 32/64bit apps on x86_64. Tests with 32bit apps on i386 will follow. > Tests with 32bit apps on i386 will follow.
Works as well. New xorg-x11 package submitted now.
|