[arch-dev-public] Xorg changes / DRM modules
I've updated the git packages for nouveau and ati ddx driver packages in testing. I also updated the nouveau-drm package. This required to add the new nouveau-firmware package. It will be also needed to use kernel nouveau-drm module that will be introduced with kernel 2.6.33. I will keep updating the separate nouveua-drm module for a while to get features and fixes faster than in Linus tree. The firmware will probably also result in loading issues in early kms mode. We might think about recommending late mode for now. libdrm has been updated to 2.4.17 - this is breaking all radeon 3d stuff and will require changes in MESA when I understand the upstream devs right. Mesa7.7 is expected in a few days anyways and should make Radeon 3d stuff working again after a few late commits (7.7rc4 doesn't build with new libdrm). Other drivers should still work. Please test them. Radeon kms is still buggy like hell and unusable for my RC410 [Radeon Xpress 200M] card. It makes X and the whole system freeze instantly when moving windows around or when I try to start 3d apps. Sometimes even at Xorg start at all. This has been introduced with 2.6.32 kernels. Upstream recommends to try the various drm trees: http://article.gmane.org/gmane.comp.video.dri.devel/40626 Any opinions from other ati users what branch is the most stable and useful these days? I'm thinking about adding a radeon-drm kernel module package to solve the tons of speed and stability issues. As already written on the closed devel list, I'd like to get help for these packages from other devs and community members. Whoever is well informed in Xorg/kernel drm development and wants to help to stabilize our drivers please contact me. -Andy
On Mon, Dec 21, 2009 at 11:35 PM, Andreas Radke <a.radke@arcor.de> wrote:
Radeon kms is still buggy like hell and unusable for my RC410 [Radeon Xpress 200M] card. It makes X and the whole system freeze instantly when moving windows around or when I try to start 3d apps. Sometimes even at Xorg start at all. This has been introduced with 2.6.32 kernels. Upstream recommends to try the various drm trees:
I think the first logical step, if you can find the time, is that you first check if these more up-to-date trees actually fix your specific issue. If they don't, you will probably have to provide more information upstream. I have no idea how popular your card is. If they do, it would be interesting to know what Dave Airlie recommends to use for a distribution. Maybe following drm-radeon-next can be better than stable kernel releases ? In any cases, drm-radeon-testing does not sound like something that should be installed by default to everyone, but rather like something to try when things go wrong, and before reporting to upstream. That said, right now there is just one small commit difference between drm-radeon-next and drm-radeon-testing http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=r... This decision obviously depends a lot on the development model, that's why I think it's best to just ask airlied input. I can ask him if you don't (want to) :)
Decision for now: For the core/extra repository we revert all experimental Radeon code in libdrm and go back to the old code base that doesn't support KMS/DRI2. We also downgrade to the latest stable ati ddx driver release. This should make things stable for most older cards using old hardware acceleration mode. KMS can be used but MESA will fall back to software rasterizer being slow again. We will recommend to not use KMS for now with Radeon cards. The kernel will probably get KMS disabled by default again. It's a step back but should solve all issues introduced by latest KMS code changes in the unstable Ati driver code. People having new cards will probably want to use testing then if they new fast hardware acceleration in potential cost of stability. MESA will be updated to 7.6.1 in extra. Nouveau will keep having only 2D support for now in extra. No nouveau-dri package. It's useless anyways now. Plans for testing repository: - update to MESA7.7 soon - enable experimental radeon code again in libdrm - maybe backport drm-next branch or radeon-next into a new optional package to get late features/fixes beyond Linus' stable kernels (the way we do with nouveau-drm) - prepare gallium based driver builds - prepare Xorg-server 1.8 -Andy
Appending here two mails from an upstream dev(Dave Airlie). I'll talk to Jan how do deal with this in the near future. -Andy
We want to ship packages with all new features wherever possible. But we have to make sure, that at least 2D is always working and 3D should be stable and fast. We know we will often run into bugs first but our community likes it - see us as a big testing group for you :)
Unless you have a large amount of time of ppl with experience of graphics I'd recommned the following (below)..
That's why we ask for your recommendations what is already usable and worth packing.
1) kernel drm modules: Is it enough to ship the latest stable kernel? Or do you recommend drm-next or any other branch replacing the the default kernel modules in /lib/modules/${_kernver}/updates/ ? We are thinking about such additional packages we can update more often if needed (we did so in the past for nouveau-drm). Do you recommend to enable kms now by default for all chips?
Ship Linus kernel, when things leave staging, you can generally turn them on, not before unless you can provide the support to users and upstream feedback cycles for bugs. Its worse for us when ppl have a load of binary packages that the distro has just picked in the middle of a dev cycle and never upgrade. We generally provide experimental features so we can get feedback and debug them, shipping these without a supporting person in the distro keeping the feedback cycle alive is actually a drain on our end. We get bug reports for sutff 2-3 mths after we've fixed it because of some distros.
2) libdrm What configuration is recommended? Is enable eperimental api code needed and recommended for for certain chips?
Same, leave it alone, --enable-udev is probably all oyu want.
3) mesa Do you still recommend 7.6.1? When will it make sense to package 7.7? When Xorg 1.8 is out or when will the driver make use of 7.7 features?
7.7 is out, probably best to ship it now. since it contains all 7.6.1 fixes
4) Driver packages should be announced clearly on what they depend. Maybe better or more clear branching is needed.
Generally if there is experimental APIs then you need to do the research with normal packages on a Linux distro, the latest released everything should be the best option. Dave.
Shipping only stable releases and not staging stuff is less work for us but would leave people with new Ati cards in the dark.
All ATI cards shipping so have fine 2D support with the latest kernel + latest stable ATI driver (apart from displayport), if we had stable 3D of the quality you wanted it would have shipped.
Right now Radeon is the bad player. DRI1 isn't maintained for a long time. My X200m driven notebook never worked well with old hardware accelerated mode (freezes at login). DRI2 rewrite/KMS made it work well in Kernel .31 series and new libdrm with experimental ati api. It also worked stable but slow for most modern Ati cards. Kernel .32 series now speeds up stuff but gives freezes and lookups through all chipset families. We just reverted to old api in our stable repositories. But we want to fix it in our testing repositories.
DRI1 is still maintained and although we won't be adding new features to it, we still provide bug fixes, a bug fix for the x200m just went into the stable ATI branch this week for DRI1/UMS systems. So you are the perfect example of the problem we face with distros shipping KMS with no feedback loop, you say your x200m (this chipset is the worst in existance, not even AMD know how it works, so I expect it'll never be stable), regressed between .31 and .32, I'm not sure if we have a bug report of a git bisection to figure out which patch causes this so we can revert it. We haven't added many new features to the DRI2 kernel at all for rs480 so if it worked under .31 it most likely was something small in .32.
What's the best way to go? Report it to upstream and wait for rare fixes in Linus' kernels or provide full drm replacements from drm/radeon-next branch? We could react much faster and give more feedback that way.
Stay with Linus tree unless you can follow lists and guide users, adding new features that aren't stable means you face the problems you are seeing, and thus require the manpower to help with t hem.
releases to get branched code with a small announcement saying "hey, this shot now supports new features introduced by libdrm/mesa/Xorg/whatever..."
When KMS is out of staging we will be doing normal stuff, so far we don't recommend KMS to distros and we haven't shipped a libdrm or DDX with KMS enabled so we have no branch on which to do those sort of things. Dave.
On Tue, 2009-12-22 at 23:58 +0100, Andreas Radke wrote:
Appending here two mails from an upstream dev(Dave Airlie). I'll talk to Jan how do deal with this in the near future.
-Andy
Looking at the mails, I think we should take these steps: - update to mesa 7.6.1 for now, you already did this. - disable KMS for ATI by default, enable for Intel by default, as UMS is wrecked out their soon to release driver. - Package stable linux kernel, don't touch drm too much, just apply patches for known broken things, like the intel powermanagement bug that locks up the GPU. - Package released drivers, or use git snapshots from the stable branch. For ATI, there's some maintenance work done on the 6.12-branch in git, I think it's wise to apply those. - for libdrm, package without extra flags, though you *might* want to enable libdrm-nouveau there to get the nouveau driver working. As always, stick with released libdrm, don't use git snapshots. Only provide nouveau drivers if you actually intend to use and update them. After these switches, we should focus on getting mesa 7.7 in our distribution. Mesa 7.6.x is a dead end and upstream only supports 7.7 now.
Am Wed, 23 Dec 2009 09:40:04 +0100 schrieb Jan de Groot <jan@jgc.homeip.net>:
Looking at the mails, I think we should take these steps: - update to mesa 7.6.1 for now, you already did this.
- disable KMS for ATI by default, enable for Intel by default, as UMS is wrecked out their soon to release driver.
We will test if this is possible in our next kernel pkg.
- Package stable linux kernel, don't touch drm too much, just apply patches for known broken things, like the intel powermanagement bug that locks up the GPU.
I'm fine with this for core/extra repos.
- Package released drivers, or use git snapshots from the stable branch. For ATI, there's some maintenance work done on the 6.12-branch in git, I think it's wise to apply those.
I will have a look what it's worth applying or if a new release is planned from upstream. Just also removed the git based pkg from testing.
- for libdrm, package without extra flags, though you *might* want to enable libdrm-nouveau there to get the nouveau driver working. As always, stick with released libdrm, don't use git snapshots. Only provide nouveau drivers if you actually intend to use and update them.
Sure. Only stable libdrm releases because all driver heavily depend on its api. Ati api is back to stable state. For nouveau we need experimental api to get working 2D drivers.
After these switches, we should focus on getting mesa 7.7 in our distribution. Mesa 7.6.x is a dead end and upstream only supports 7.7 now.
No problem. It built fine here on top of the rolled back extra stuff. I'll put new packages into testing. I guess we need to rebuild all related ddx driver packages. Anything else will require rebuilds? The server? The sad part is that we leave all people with modern Ati cards in the dark until upstream declares their code as stable. This will make them going back to software rasterizer and either force them to use the closed source driver or use weird self made git packages from AUR. Because I'm also affected with my weird X200m card I'm still looking for a good solution how to offer a good set of binary packages people can use to try modern code. I could do this on my own like all other people from AUR but we could also setup an additional unstable repo at Gerolde. I could do this also in my public dir. I'd prefer to have people using one set of codebase for reporting bugs upstream. What do you think? -Andy
On Wed, Dec 23, 2009 at 11:21 AM, Andreas Radke <a.radke@arcor.de> wrote:
Because I'm also affected with my weird X200m card I'm still looking for a good solution how to offer a good set of binary packages people can use to try modern code. I could do this on my own like all other people from AUR but we could also setup an additional unstable repo at Gerolde. I could do this also in my public dir. I'd prefer to have people using one set of codebase for reporting bugs upstream. What do you think?
I like both what JGC and you are proposing : 1) common repositories (core/extra/testing) : only code supported by upstream. no experimental stuff 2) additional unstable/experimental repository : libdrm with radeon and nouveau experimental apis, radeon and nouveau drivers built against that, etc Note that there are many options for providing experimental code - 2) : 2.0 : additional repo 2.1 : same repos, but different naming : libdrm-experimental, etc 2.2 : dont provide anything, let people use AUR. It's actually not clear to me which option is better for everyone (arch users, arch packagers and upstream). But in the end, the result shouldn't be too different. Anyway this decision is obviously left to the people doing the work (jgc/andy/...)
On Wed, 2009-12-23 at 11:21 +0100, Andreas Radke wrote:
No problem. It built fine here on top of the rolled back extra stuff. I'll put new packages into testing. I guess we need to rebuild all related ddx driver packages. Anything else will require rebuilds? The server?
Xorg-server might need a rebuild because it is tied to the GL API stuff. The drivers don't matter that much.
The sad part is that we leave all people with modern Ati cards in the dark until upstream declares their code as stable. This will make them going back to software rasterizer and either force them to use the closed source driver or use weird self made git packages from AUR.
That's where users come in. I think it's better to have a -git driver from AUR that is maintained, than a git snapshot in testing or extra which isn't updated very often because it works on your X200m. You can see this with intel also, where some users made an xf86-video-intel-newest package.
Because I'm also affected with my weird X200m card I'm still looking for a good solution how to offer a good set of binary packages people can use to try modern code. I could do this on my own like all other people from AUR but we could also setup an additional unstable repo at Gerolde. I could do this also in my public dir. I'd prefer to have people using one set of codebase for reporting bugs upstream. What do you think?
If you intend to maintain those drivers with regular updates, you're free to do so. The issue with radeon is that it's not only the drivers, but also kernel, mesa and libdrm.
participants (3)
-
Andreas Radke
-
Jan de Groot
-
Xavier