Announcement

Collapse
No announcement yet.

DRI3 Support Finally Added To AMD's Radeon X.Org Driver

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

  • #21
    Originally posted by haagch View Post
    /usr/include/xorg/misyncshm.h is owned by xorg-server-devel 1.17.1-4
    Like I've said, it is present on my system (installed), but still, configure script reports:

    Code:
    checking for misyncshm.h... no

    Edit: Relevant part of config.log:

    Code:
    configure:19588: checking for misyncshm.h
    configure:19588: gcc -std=gnu99 -c -g -O2  -Wall -fvisibility=hidden -I/usr/include/xorg -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/X11/dri  conftest.c >&5
    In file included from /usr/include/string.h:634:0,
                     from /usr/include/xorg/os.h:53,
                     from /usr/include/xorg/misc.h:115,
                     from /usr/include/xorg/screenint.h:50,
                     from conftest.c:33:
    /usr/include/xorg/os.h:541:1: error: expected identifier or '(' before '__extension__'
     strndup(const char *str, size_t n);
     ^
    configure:19588: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "xf86-video-ati"
    | #define PACKAGE_TARNAME "xf86-video-ati"
    | #define PACKAGE_VERSION "7.5.99"
    | #define PACKAGE_STRING "xf86-video-ati 7.5.99"
    | #define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
    | #define PACKAGE_URL ""
    | #define PACKAGE "xf86-video-ati"
    | #define VERSION "7.5.99"
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define PACKAGE_VERSION_MAJOR 7
    | #define PACKAGE_VERSION_MINOR 5
    | #define PACKAGE_VERSION_PATCHLEVEL 99
    | #define HAVE_DLFCN_H 1
    | #define LT_OBJDIR ".libs/"
    | #define HAVE_XEXTPROTO_71 1
    | #define HAVE_LIBUDEV 1
    | #define HAVE_GLAMOR_H 1
    | #define USE_GLAMOR 1
    | #define HAVE_XORG_LIST 1
    | /* end confdefs.h.  */
    | #include <X11/Xdefs.h>
    | 	          #include <X11/Xfuncproto.h>
    | 	          #include "screenint.h"
    | 	          #include "xorg-server.h"
    | 
    | #include <misyncshm.h>
    configure:19588: result: no
    Last edited by pejakm; 17 March 2015, 06:40 PM.

    Comment


    • #22
      Originally posted by haagch View Post
      Create a file /etc/X11/xorg.conf.d/20-radeon.conf (filename doesn't actually mean anything, it just needs to end with .conf I think and the number at the beginning is for the order in which the config files are applied)

      Code:
      Section "Device"
         Identifier  "Radeon"
         Driver      "radeon"
         Option      "DRI"  "3"
      EndSection
      ("Identifier" doesn't actually matter, but I think one is needed)
      It is not the correct Option, look at man radeon

      Code:
      Option "DRI3" "on"
      but when I do that it doesn't seem to work:

      [ 6.184] (**) RADEON(0): Option "DRI3" "on"
      ....
      [ 6.604] (WW) RADEON(0): DRI3 disabled
      Last edited by geearf; 17 March 2015, 06:43 PM.

      Comment


      • #23
        Originally posted by geearf View Post
        It is not the correct Option, look at man radeon

        Code:
        Option "DRI3" "on"
        DAMN. That's what intel calls it. But of course radeon needs to do it DIFFERENTLY. Because why even try to do the same thing in the same way? That would only confuse the users!

        Originally posted by pejakm View Post
        Code:
        /usr/include/xorg/os.h:541:1: error: expected identifier or '(' before '__extension__'
         strndup(const char *str, size_t n);
         ^
        Yea, there's a problem there.

        Googling gives this result: https://aur.archlinux.org/packages/x...m-width-patch/ where the solution was to include "#include <xorg-server.h>" in some source files and the second result is a mailing list discussion about it: http://lists.x.org/archives/xorg-dev...ly/043067.html

        > Currently os.h cannot be included safely (without it creating duplicate
        > prototypes for system functions) without first including one of:
        > dix-config.h
        > xorg-server.h
        > xorg-config.h
        So some test code is probably broken.

        Comment


        • #24
          Oh thanks for these links, I realized that's why I have issues.

          Comment


          • #25
            Originally posted by geearf View Post
            Oh thanks for these links, I realized that's why I have issues.
            That worked.
            in configure, replace
            Code:
            for ac_header in misyncshm.h
            do :
              ac_fn_c_check_header_compile "$LINENO" "misyncshm.h" "ac_cv_header_misyncshm_h" "#include <X11/Xdefs.h>
                              #include <X11/Xfuncproto.h>
                              #include \"screenint.h\"
                              #include \"xorg-server.h\"
            "
            by
            Code:
            for ac_header in misyncshm.h
            do :
              ac_fn_c_check_header_compile "$LINENO" "misyncshm.h" "ac_cv_header_misyncshm_h" "#include <X11/Xdefs.h>
                              #include \"xorg-server.h\"
                              #include <X11/Xfuncproto.h>
                              #include \"screenint.h\"
            "
            (It's just re-ordering the xorg-server.h include)

            Comment


            • #26
              Well it wasn't stable and crashed my computer so I went back to my previous ddx.

              Comment


              • #27
                Originally posted by pejakm View Post
                I get this error:

                Code:
                [ 30290.197] (II) RADEON(0): SYNC extension fences disabled because misyncshm.h not available at build time
                [ 30290.197] (WW) RADEON(0): DRI3 disabled
                'misyncshm.h' is present on my system. Any thoughts? (Arch Linux, xorg-server 1.17.1)
                Where did you get your DDX driver from?

                Comment


                • #28
                  Seems to be working here on Arch just using xf86-video-ati from AUR

                  Code:
                  [scias@antergos ~]$ journalctl -b _COMM=gdm-x-session | grep -i dri3
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) LoadModule: "dri3"
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) Module "dri3" already built-in
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (**) RADEON(0): Option "DRI3" "on"
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (**) RADEON(0): DRI3 enabled
                  [scias@antergos ~]$ journalctl -b _COMM=gdm-x-session | grep -i present
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) RADEON(0): Present extension enabled
                  But somehow DRI2 still seems to be enabled and the only thing used by glamor :

                  Code:
                  [scias@antergos ~]$ journalctl -b _COMM=gdm-x-session | grep -i dri2
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) Loading sub module "dri2"
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) LoadModule: "dri2"
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) Module "dri2" already built-in
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) glamor: EGL version 1.4 (DRI2):
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) RADEON(0): [DRI2] Setup complete
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) RADEON(0): [DRI2]   DRI driver: r600
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) RADEON(0): [DRI2]   VDPAU driver: r600
                  mars 18 10:32:52 antergos /usr/lib/gdm/gdm-x-session[548]: (II) GLX: Initialized DRI2 GL provider for screen 0
                  I don't know if DRI2 and DRI3 are meant to be used together and why glamor defaults to it. Maybe xorg-server-git is needed too ?

                  There's noticeable differences however. For example gnome-shell animations look quite smoother (especially the application pager).
                  Last edited by Scias; 18 March 2015, 06:48 AM.

                  Comment


                  • #29
                    Originally posted by Scias View Post
                    I don't know if DRI2 and DRI3 are meant to be used together and why glamor defaults to it. Maybe xorg-server-git is needed too ?

                    There's noticeable differences however. For example gnome-shell animations look quite smoother (especially the application pager).
                    Actually glamor doesn't use DRI2 or DRI3, which are communication protocols between an X client and the Xserver to get acceleration.
                    Glamor is the layer above and enables DRI2 and DRI3. It uses DRM directly.

                    However most messages and in particular Mesa info strings will display DRI2, because historical reasons (even under Wayland, you'll get these).

                    Btw Clients can use either DRI2 or DRI3 if both are available. Support for one doesn't remove support for the other (and for now vdpau is DRI2 only)

                    Comment


                    • #30
                      Originally posted by mannerov View Post
                      Actually glamor doesn't use DRI2 or DRI3, which are communication protocols between an X client and the Xserver to get acceleration.
                      Glamor is the layer above and enables DRI2 and DRI3. It uses DRM directly.

                      However most messages and in particular Mesa info strings will display DRI2, because historical reasons (even under Wayland, you'll get these).

                      Btw Clients can use either DRI2 or DRI3 if both are available. Support for one doesn't remove support for the other (and for now vdpau is DRI2 only)
                      Thanks for clearing that up.

                      Comment

                      Working...
                      X