Announcement

Collapse
No announcement yet.

Testing latest -intel in Ubuntu

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • tormod, thanks for your work on the xorg-edger PPA.
    I have a question, why do you disable KMS on the intel driver?
    Is it not possible to have the option to use (with a KMS kernel) KMS or the old mode-setting?

    Comment


    • The new version crashes

      Hello,
      the new driver version crashes on me.
      I also get
      Code:
      (WW) intel(0): drmDropMaster failed: Unknown error 4294967295
      in the log.
      Here are the last few lines of xorg log:
      Code:
      (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
      (II) intel(0): DPMS enabled
      (==) intel(0): Intel XvMC decoder disabled
      (II) intel(0): Set up textured video
      (II) intel(0): Set up overlay video
      (II) intel(0): direct rendering: DRI2 Enabled
      (WW) intel(0): Option "RenderAccel" is not used
      (WW) intel(0): Option "MigrationHeuristic" is not used
      (WW) intel(0): Option "HWCursor" is not used
      (--) RandR disabled
      (II) Initializing built-in extension Generic Event Extension
      (II) Initializing built-in extension SHAPE
      (II) Initializing built-in extension MIT-SHM
      (II) Initializing built-in extension XInputExtension
      (II) Initializing built-in extension XTEST
      (II) Initializing built-in extension BIG-REQUESTS
      (II) Initializing built-in extension SYNC
      (II) Initializing built-in extension XKEYBOARD
      (II) Initializing built-in extension XC-MISC
      (II) Initializing built-in extension SECURITY
      (II) Initializing built-in extension XINERAMA
      (II) Initializing built-in extension XFIXES
      (II) Initializing built-in extension RENDER
      (II) Initializing built-in extension RANDR
      (II) Initializing built-in extension COMPOSITE
      (II) Initializing built-in extension DAMAGE
      (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
      (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
      (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
      (II) AIGLX: Loaded and initialized /usr/lib/dri/i915_dri.so
      (II) GLX: Initialized DRI2 GL provider for screen 0
      (II) intel(0): Setting screen physical size to 195 x 113
      (II) intel(0): Allocate new frame buffer 1024x600 stride 1024
      (II) intel(0): New front buffer at 0x800000
      
      Backtrace:
      0: /usr/X11R6/bin/X(xorg_backtrace+0x3b) [0x813516b]
      1: /usr/X11R6/bin/X(xf86SigHandler+0x55) [0x80c7be5]
      2: [0xb7f86400]
      3: /usr/lib/xorg/modules//libfb.so(fbFill+0x474) [0xb772cf34]
      4: /usr/lib/xorg/modules//libfb.so(fbPolyFillRect+0x1c4) [0xb772d144]
      5: /usr/lib/xorg/modules/drivers//intel_drv.so(uxa_check_poly_fill_rect+0xd5) [0xb7877985]
      6: /usr/lib/xorg/modules/drivers//intel_drv.so [0xb7872266]
      7: /usr/X11R6/bin/X [0x8180af4]
      8: /usr/X11R6/bin/X(CreateDefaultStipple+0x10b) [0x809f93b]
      9: /usr/X11R6/bin/X(main+0x266) [0x8072196]
      10: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7b5b775]
      11: /usr/X11R6/bin/X [0x80717a1]
      Saw signal 11.  Server aborting.
      (II) AIGLX: Suspending AIGLX clients for VT switch
      (WW) intel(0): drmDropMaster failed: Unknown error 4294967295
       ddxSigGiveUp: Closing log

      Comment


      • Originally posted by Vermind View Post
        Hello,
        the new driver version crashes on me.
        I also get
        Code:
        (WW) intel(0): drmDropMaster failed: Unknown error 4294967295
        in the log.
        This is just a warning because the kernel is < 2.6.29, see http://cgit.freedesktop.org/xorg/dri...84c57b1d080a83
        Backtrace:
        0: /usr/X11R6/bin/X(xorg_backtrace+0x3b) [0x813516b]
        1: /usr/X11R6/bin/X(xf86SigHandler+0x55) [0x80c7be5]
        2: [0xb7f86400]
        3: /usr/lib/xorg/modules//libfb.so(fbFill+0x474) [0xb772cf34]
        4: /usr/lib/xorg/modules//libfb.so(fbPolyFillRect+0x1c4) [0xb772d144]
        5: /usr/lib/xorg/modules/drivers//intel_drv.so(uxa_check_poly_fill_rect+0xd5) [0xb7877985]
        6: /usr/lib/xorg/modules/drivers//intel_drv.so [0xb7872266]
        7: /usr/X11R6/bin/X [0x8180af4]
        8: /usr/X11R6/bin/X(CreateDefaultStipple+0x10b) [0x809f93b]
        9: /usr/X11R6/bin/X(main+0x266) [0x8072196]
        10: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7b5b775]
        11: /usr/X11R6/bin/X [0x80717a1]
        Saw signal 11. Server aborting.
        [/CODE]
        This should probably be reported. Is EXA fine?

        Comment


        • Exa is fine

          Yes, exa works as before.

          Comment


          • Originally posted by KDesk View Post
            tormod, thanks for your work on the xorg-edger PPA.
            I have a question, why do you disable KMS on the intel driver?
            Is it not possible to have the option to use (with a KMS kernel) KMS or the old mode-setting?
            It will not build with the Jaunty kernel headers. Maybe the libdrm-dev header files could be patched to work around this, but it is probably too much work and it will not work on the stock Jaunty kernel anyway. I don't know why they don't make this more backwards compatible, but I guess when functionality is moved from a user-space driver into the kernel we get situations like this.

            You can reverse the kms-disabling in configure.ac and try rebuilding the ppa source, but last time I tried it failed. If this is on a 2.6.29 kernel (or more important, 2.6.29 header files are around) I guess it should build. It should then work both with and without an KMS-enabled (but 2.6.29) kernel, AFAIU.

            Comment


            • Originally posted by Vermind View Post
              Yes, exa works as before.
              Thanks. The bug is known upstream, and I have uploaded a new package with a patch from http://lists.freedesktop.org/archive...il/001952.html which should fix it.

              Comment


              • About building in KMS support

                Any tips on what the best way to enable KMS in xserver-xorg-video-intel? I rebuilt them and noticed that it apparently started detecting if you have KMS support and automatically enabling itn some time ago, which *did* work with previous libdrm-intel1 and -intel from mid march, but that stopped working with the updates to -intel and the kernel from somewhere around 3/27. I see nothing in the source disabling KMS specifically anymore so I assume its been compiling with basic KMS support for awhile. The problem is the generic KMS DRM it provides now is cut back and doesn't provide these features from the newer post 2.6.29 and -next kernels-

                - I915_INIT_DMA2 = 0x04 (dri2 SAREA)
                -#define DRM_I915_MMIO 0x10
                -#define DRM_I915_EXECBUFFER 0x12
                triple buffering was changed, as well as a bunch of other things (I was just looking at i915_drm.h there) leading to me unable to use KMS and breaking UXA in nomodeset mode.

                Anyway, rebuilding libdrm-dev/libdrm-intel1/libdrm2 ends up exporting the older headers in it instead of pulling them from my running kernel (verified it by doing diff's on the files with my header's) and I'm at a loss to what would be the best way to fix that with all of the ways the lib directory is called in the makefiles. Should I use pkgconfig to change the libdrm to point to another folder temporarily while building, overwrite the headers in /lib/include/drm/, or can I define the includes somehow on the command line in a way that'll actually get passed down the chain of makes? Should I build a new libdrm-dev (et all) with the changed headers or can I just make the header changes and call it while making xserver-xorg-video-intel? Any tips would be greatly appreciated

                Comment


                • Originally posted by Sarvatt View Post
                  Any tips on what the best way to enable KMS in xserver-xorg-video-intel?
                  It is disabled in configure.ac. In stock Ubuntu this is in debian/patches/105_no_modesetting.diff, in the xorg-edgers the same change has been applied to the source tree.
                  Code:
                  diff --git a/configure.ac b/configure.ac
                  index bb69f72..9a09d4b 100644
                  --- a/configure.ac
                  +++ b/configure.ac
                  @@ -222,7 +222,7 @@ fi
                   
                   dnl exaGetPixmapDriverPrivate required for DRM_MODE.
                   PKG_CHECK_MODULES(DRM_MODE, [xorg-server >= 1.5],
                  -                 [DRM_MODE=yes], [DRM_MODE=no])
                  +                 [DRM_MODE=no], [DRM_MODE=no])
                   if test "x$DRM_MODE" = xyes; then
                          AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting])
                   fi
                  You could have found this in the Ubuntu changelog.

                  Comment


                  • Ahh thanks, I was working from an apt-get source from your package and saw that it detected DRM_MODE while compiling (it says checking for DRM_MODE... yes), didn't see any patches because of how I grabbed your packages source. That helps a ton though! I managed to get it working with alot of digging.


                    1) edit /usr/lib/drm/drm.h, go to line 599 and add #include "drm_mode.h" right above the big block of DRM_IOCTL defines. it's supposed to be there but left out in the jaunty source. I guess you could manually add the define but this way was easier for me drm_mode.h IS provided by libdrm so I can't see any reason they removed it from drm.h outside of forgetting to re-add it when they upgraded libdrm.

                    2) 112_num_used_fences.patch needs to be applied from ubuntu stock xserver-xorg-video-intel 2.6.3.

                    Code:
                    diff -Nurp patched/src/i830_memory.c working/src/i830_memory.c
                    --- patched/src/i830_memory.c	2009-03-17 11:13:53.000000000 -0700
                    +++ working/src/i830_memory.c	2009-03-17 11:34:18.000000000 -0700
                    @@ -536,7 +536,7 @@ i830_allocator_init(ScrnInfoPtr pScrn, u
                     		struct drm_i915_gem_init init;
                     		int ret;
                     
                    -		sp.param = I915_SETPARAM_NUM_USED_FENCES;
                    +		sp.param = 4;
                     		if (pI830->use_drm_mode)
                     		    sp.value = 0; /* kernel gets them all */
                     		else if (pI830->directRenderingType == DRI_XF86DRI)
                    Problem is, i830_memory.c has changed so it wouldn't apply cleanly. The I915_SETPARAM_NUM_USED_FENCES ioctl isn't defined in the libdrm-dev headers we're using here, and the fence logic underneath it changed so it wont cleanly apply. This also explains why KMS worked (in a very retardedly cut back fasion unbeknownst to me) with stock drivers before I switched to yours.. here's what it should look like instead, or just manually change it to sp.param = 4;

                    Code:
                    diff -Nurp patched/src/i830_memory.c working/src/i830_memory.c
                    --- patched/src/i830_memory.c	2009-03-17 11:13:53.000000000 -0700
                    +++ working/src/i830_memory.c	2009-03-17 11:34:18.000000000 -0700
                    @@ -536,7 +536,7 @@ i830_allocator_init(ScrnInfoPtr pScrn, u
                     		struct drm_i915_gem_init init;
                     		int ret;
                     
                    -		sp.param = I915_SETPARAM_NUM_USED_FENCES;
                    +		sp.param = 4;
                     		sp.value = 0; /* kernel gets them all */
                     
                     		ret = drmCommandWrite(pI830->drmSubFD, DRM_I915_SETPARAM, &sp,
                    3) revert the change tormod just posted

                    It's working completely in KMS mode right now with a kernel built from git today, using UXA. Next goal is to get libdrm-dev built with more recent kernel source instead because theres some other things like gem mmap and vblank fixes missing, but thats going to be rough with all the changes and my complete lack of programming knowledge


                    Edit: linux-libc-dev must be overwriting my drm headers or something, because I just looked in libdrm-dev on your PPA and it installs a newer header than I have that doesn't need the drm_mode.h include added. strange.. And go figure, after fixing that the only change needed is the configure.ac revert



                    Edit2: Man, forget all of that I said, it really was as simple as changing [no] to [yes] in the configure.ac, my libs were overwritten by a linux-libc-dev update... Talk about hours spent on nothing Modesetting is working 100% now and a heck of alot faster than it was with the screwed up libs

                    Last edited by Sarvatt; 05 April 2009, 09:01 AM.

                    Comment


                    • Good news, KMS does build via PPA. I put the package up here in the meantime but I'm guessing tormod might just revert the patch since theres no reason to disable it at all since it does build enabled now.

                      Comment

                      Working...
                      X