1. 28 Jan, 2020 5 commits
    • Michel Dänzer's avatar
      gitlab-ci: Enable -Werror in the meson build job · b6a5389e
      Michel Dänzer authored
      There are no warnings left, so let's prevent new ones from creeping
      back in.
      b6a5389e
    • Michel Dänzer's avatar
      tests/misc: Drop redundant screenInfo declaration · 794fd7e5
      Michel Dänzer authored
      GCC warned about it:
      
      ../test/misc.c:36:19: warning: redundant redeclaration of ‘screenInfo’ [-Wredundant-decls]
         36 | extern ScreenInfo screenInfo;
            |                   ^~~~~~~~~~
      In file included from ../test/misc.c:30:
      ../include/scrnintstr.h:688:29: note: previous declaration of ‘screenInfo’ was here
        688 | extern _X_EXPORT ScreenInfo screenInfo;
            |                             ^~~~~~~~~~
      794fd7e5
    • Michel Dänzer's avatar
      Xephyr: Cast "red" to char* for xcb_aux_parse_color · 42876044
      Michel Dänzer authored
      xcb_aux_parse_color takes a non-const pointer, even though it doesn't
      modify the string or take ownership of its memory.
      
      Avoids the following warning from GCC:
      
      ../hw/kdrive/ephyr/hostx.c: In function ‘hostx_init’:
      ../hw/kdrive/ephyr/hostx.c:683:30: warning: passing argument 1 of ‘xcb_aux_parse_color’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
        683 |     if (!xcb_aux_parse_color("red", &red, &green, &blue)) {
            |                              ^~~~~
      In file included from ../hw/kdrive/ephyr/hostx.c:50:
      /usr/include/xcb/xcb_aux.h:194:27: note: expected ‘char *’ but argument is of type ‘const char *’
        194 | xcb_aux_parse_color(char *color_name,
            |                     ~~~~~~^~~~~~~~~~
      42876044
    • Michel Dänzer's avatar
      loader: strdup const string assigned to local variable name · 65387391
      Michel Dänzer authored
      There's a free(name) at the end of the function.
      
      GCC warned about this:
      
      ../hw/xfree86/loader/loadmod.c: In function ‘LoadModule’:
      ../hw/xfree86/loader/loadmod.c:702:18: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
        702 |         m = name = "int10";
            |                  ^
      65387391
    • Adam Jackson's avatar
      Revert "dri2: Don't make reference to noClientException" · e1fa3beb
      Adam Jackson authored
      It's true that the value would always be -1, if it's not zero, but it's
      usually zero is the problem. As a result we return failure from
      otherwise successful indirect GLX paths, which isn't very nice of us.
      
      This reverts commit 7d33ab0f.
      
      Fixes: #211
      e1fa3beb
  2. 27 Jan, 2020 2 commits
  3. 15 Jan, 2020 1 commit
  4. 14 Jan, 2020 2 commits
  5. 08 Jan, 2020 2 commits
    • Fabrice Fontaine's avatar
      hw/xfree86/common/xf86Init.c: fix build without glx · 49456e0a
      Fabrice Fontaine authored
      Since commit d8ec33fe, an include on
      glxvndabi.h has been added to hw/xfree86/common/xf86Init.c
      
      However, if glx is disabled through --disable-glx and GLX headers are
      not installed in the build's environment, build fails on:
      
      In file included from xf86Init.c:81:
      ../../../include/glxvndabi.h:64:10: fatal error: GL/glxproto.h: No such file or directory
         64 | #include <GL/glxproto.h>
            |          ^~~~~~~~~~~~~~~
      
      Fix this failure by removing this include which does not seem to be
      needed (an other option would have been to keep it under an ifdef GLXEXT
      block)
      
      Fixes:
       - http://autobuild.buildroot.org/results/de838a843f97673d1381a55fd4e9b07164693913
      
      Signed-off-by: Fabrice Fontaine's avatarFabrice Fontaine <fontaine.fabrice@gmail.com>
      49456e0a
    • Lubomir Rintel's avatar
      glamor_egl: Reject OpenGL < 2.1 early on · 26004df6
      Lubomir Rintel authored
      
      
      The Etnaviv driver on GC2000 reports desktop OpenGL 1.3 but also OpenGL ES 2.0.
      However, with the modesetting driver, GLES2 never gets a chance:
      
        [ 11233.393] Require OpenGL version 2.1 or later.
        [ 11233.393] (EE) modeset(0): Failed to initialize glamor at ScreenInit() time.
        [ 11233.393] (EE)
        Fatal server error:
        [ 11233.395] (EE) AddScreen/ScreenInit failed for driver 0
      
      Let's reject old desktop GL early on, just like XWayland seems to do.
      
      This is perhaps a slightly bit more complicated that one would expect, since we
      need to call eglMakeCurrent() before we query the GL version.
      Signed-off-by: Lubomir Rintel's avatarLubomir Rintel <lkundrak@v3.sk>
      26004df6
  6. 06 Jan, 2020 6 commits
  7. 03 Jan, 2020 1 commit
    • Aaron Plattner's avatar
      modesetting: Check whether RandR was initialized before calling rrGetScrPriv · 4226c6d0
      Aaron Plattner authored
      Calling rrGetScrPriv when RandR isn't initialized causes an assertion
      failure that aborts the server:
      
       Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion `key->initialized' failed.
      
       Thread 1 "Xorg" received signal SIGABRT, Aborted.
       0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
       (gdb) bt
       #0  0x00007ffff78a8f25 in raise () from /usr/lib/libc.so.6
       #1  0x00007ffff7892897 in abort () from /usr/lib/libc.so.6
       #2  0x00007ffff7892767 in __assert_fail_base.cold () from /usr/lib/libc.so.6
       #3  0x00007ffff78a1526 in __assert_fail () from /usr/lib/libc.so.6
       #4  0x00007ffff7fb57c1 in dixGetPrivateAddr (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:121
       #5  0x00007ffff7fb5822 in dixGetPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:136
       #6  0x00007ffff7fb586a in dixLookupPrivate (privates=0x555555ab1b60, key=0x555555855720 <rrPrivKeyRec>) at ../include/privates.h:166
       #7  0x00007ffff7fb8445 in CreateScreenResources (pScreen=0x555555ab1790) at ../hw/xfree86/drivers/modesetting/driver.c:1335
       #8  0x000055555576c5e4 in xf86CrtcCreateScreenResources (screen=0x555555ab1790) at ../hw/xfree86/modes/xf86Crtc.c:744
       #9  0x00005555555d8bb6 in dix_main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/main.c:214
       #10 0x00005555557a4f0b in main (argc=4, argv=0x7fffffffead8, envp=0x7fffffffeb00) at ../dix/stubmain.c:34
      
      This can happen, for example, if the server is configured with Xinerama
      and there is more than one X screen:
      
       Section "ServerLayout"
         Identifier "crash"
         Screen 0 "modesetting"
         Screen 1 "dummy" RightOf "modesetting"
         Option "Xinerama"
       EndSection
      
       Section "Device"
         Identifier "modesetting"
         Driver "modesetting"
       EndSection
      
       Section "Screen"
         Identifier "modesetting"
         Device "modesetting"
       EndSection
      
       Section "Device"
         Identifier "dummy"
         Driver "dummy"
       EndSection
      
       Section "Screen"
         Identifier "dummy"
         Device "dummy"
       EndSection
      
      The problem does not reproduce if there is only one X screen because of
      this code in xf86RandR12Init:
      
       #ifdef PANORAMIX
           /* XXX disable RandR when using Xinerama */
           if (!noPanoramiXExtension) {
               if (xf86NumScreens == 1)
                   noPanoramiXExtension = TRUE;
               else
                   return TRUE;
           }
       #endif
      
      Fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before
      calling rrGetScrPriv. This is similar to what the xf86-video-amdgpu
      driver does:
      https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/blob/fd66f5c0bea2b7c22a47bfd5eb1f22d32d166d9c/src/amdgpu_kms.c#L388
      
      Signed-off-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <mdaenzer@redhat.com>
      4226c6d0
  8. 23 Dec, 2019 3 commits
  9. 20 Dec, 2019 16 commits
  10. 19 Dec, 2019 1 commit
    • Michel Dänzer's avatar
      xwayland: Create duplicate TrueColor GLXFBConfigs for Composite · 846e81ec
      Michel Dänzer authored
      Similar to what is done in Xorg. Not doing this prevented apps from
      using GLX with a Composite visual, e.g. Firefox WebRender or Chromium.
      
      v2:
      * Fix inverted direct_color test, fixes Chromium as well.
      * Drop Composite extension guards, since other Xwayland code calls
        compRedirectWindow/compUnredirectWindow unconditionally anyway.
      
      Closes: xorg/xserver#921
      Fixes: 84692415 "xwayland: Add EGL-backed GLX provider"
      Reviewed-by: Adam Jackson <ajax@redhat.com> # v1
      846e81ec
  11. 17 Dec, 2019 1 commit