[Bug 43448] No native 3D acceleration with Radeon FirePro M7740 (m97 / rv740) -> llvm pipe

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon May 28 02:24:02 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=43448

--- Comment #9 from Stefan <freedesktop at kanarski.de> 2012-05-28 02:24:02 PDT ---
Hello,

I think I have found a solution for this problem and another. I have the same
notebook with that graphics card and had some problems with it in the past
months whenever I tried the open source driver from Debian unstable. It worked
about a year ago but then I bought a 27" monitor which was only usable with its
native resolution of 2560x1440 with the fglrx driver (which had some other
problems by the way). I regularly tried the open source driver when new
versions show up in Debian but since some months the XServer crashed
immediately after the start with a segfault. In newer versions it became more
graceful with the following log messages:

(EE) RADEON(0): radeon_surface_best failed
(EE) RADEON(0): radeon_setup_kernel_mem failed

After debugging like suggested in bug #48138 I found out that there is missing
a case in r6_init_hw_info for setting num_banks. While there are cases for 0
and 1 the FirePro M7740 has a value of 2 at some bits of the tiling_config so
it returns with -EINVAL from the default case. First I did not know on what to
set num_banks in that case but tried something and the XServer started
successfully with that change.

Then I saw in /var/log/Xorg.0.log that the 3D acceleration was not working like
described in this bug report:

(EE) AIGLX error: Calling driver entry point failed
(EE) AIGLX: reverting to software rendering

I tried to debug that too, following the above hints and ended up in
r600_interpret_tiling in src/gallium/drivers/r600/r600_pipe.c in the MESA code
and found exactly the same reason as above, a missing case 2. In the meantime I
checked out the source of xserver-xorg-video-ati too and sensitized by the
above findings made a grep over all three source trees (libdri, mesa,
xserver-xorg-video-ati):

grep "num_banks.*=" -rsn . -B 2 -A 1

There I found another missing case 2 in r600_interpret_tiling in
src/radeon_kms.c and somewhere else an existing case 2 with num_banks = 16. So
I patched all found asymmetries regarding case 2 and the 3D acceleration began
to work again.

I append all three patches I made. Maybe someone can check them and add them if
they are reasonable so future versions can incorporate the fixes.

Best regards
Stefan Kanarski

PS: Now my only problem is the resolution of 2560x1440 with my Fujitsu P27T-6.
Via DVI I only get 1280x1440 (every second pixel column missing, looks like
single-link although the cable should be dual-link) and via DisplayPort the
monitor is toggling between power save and a black screen. But that's another
story for another day or two. If someone has an idea where to start looking I
am glad to hear.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list