3101
|
|
|
Alan Coopersmith |
1 year ago
|
|
|
3100
|
|
|
Alan Coopersmith |
1 year ago
|
|
|
3099
|
|
|
Alan Coopersmith |
1 year ago
|
|
|
3098
|
|
|
Alan Coopersmith |
2 years ago
|
|
|
3097
|
|
|
Alan Coopersmith |
2 years ago
|
|
|
3096
|
|
|
Michel Dänzer |
2 years ago
|
|
|
3095
|
|
|
Michel Dänzer |
3 years ago
|
|
|
3094
|
|
|
Michel Dänzer |
3 years ago
|
|
|
3093
|
|
|
Michel Dänzer |
3 years ago
|
|
|
3092
|
|
|
Dave Airlie |
3 years ago
|
|
|
3091
|
|
Fix return value check of drmIoctl()
When the drmModeSetCursor2() call was replaced with bare drmIoctl() call in 92df7097, a bug was introduced. With the use of drmModeSetCursor2(), the return value from drmIoctl() (which calls ioctl()) were mangled, if they were negative, they were replaced by -errno by a wrapper function in xf86drMode.c in libdrm. After replacing drmModeSetCursor2() with the call to drmIoctl(), this mangling no longer happens, and we need to explicitly check if the call to drmIoctl() fails, which is indicated by returning -1, and then why it failed, by checking errno. If the error indicated by errno is EINVAL, then we can't use the DRM_IOCTL_MODE_CURSOR2 ioctl(), and need to fall back to the DRM_IOCTL_MODE_CURSOR ioctl().
This bug can manifest itself by an invisible hw cursor on systems where the DRM_IOCTL_MODE_CURSOR2 is not implemented by the graphics driver.
Credit also to Alexey Dokuchaev for help with developing the fix and testing.
This fixes #190
Signed-off-by: Niclas Zeising <zeising@daemonic.se> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
|
Niclas Zeising |
4 years ago
|
|
|
3090
|
|
Don't crash X server if GPU acceleration is not available
Commit d1d8e3c8d0a0a0394d395eba171460501745209b causes X server to fail on startup when GPU acceleration is not working (or is disabled). The reason is that `radeon_get_pixmap_bo` function gets called too early (before EXA has been initialized) and fails with an assert:
#0 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x76ab1c6c in __GI_abort () at abort.c:79 #2 0x76ac0b64 in __assert_fail_base (fmt=0x76bfbce4 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7658c80c "key->initialized", file=<optimized out>, line=121, function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:92 #3 0x76ac0c0c in __GI___assert_fail (assertion=0x7658c80c "key->initialized", file=0x7658c9d0 "../include/privates.h", line=121, function=0x7658d040 <__PRETTY_FUNCTION__.10607> "dixGetPrivateAddr") at assert.c:101 #4 0x76579e6c in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at ../include/privates.h:121 #5 0x7657a954 in dixGetPrivateAddr (key=<optimized out>, key=<optimized out>, privates=<optimized out>) at exa.c:70 #6 dixGetPrivate (key=<optimized out>, privates=<optimized out>) at ../include/privates.h:136 #7 exaGetPixmapDriverPrivate (pPix=<optimized out>) at exa.c:68 #8 0x7623d460 in radeon_get_pixmap_bo (pPix=0x71c1b8) at radeon.h:804 #9 radeon_get_pixmap_handle (pixmap=0x71c1b8, handle=0x7fa22328) at radeon_bo_helper.c:357 #10 0x76244458 in radeon_pixmap_get_fb (pix=0x71c1b8) at radeon.h:886 #11 drmmode_set_mode_major (crtc=0x691860, mode=0x69191c, rotation=<optimized out>, x=<optimized out>, y=<optimized out>) at drmmode_display.c:918 #12 0x762467e8 in drmmode_set_desired_modes (pScrn=0x67c678, drmmode=<optimized out>, set_hw=1) at drmmode_display.c:3128 #13 0x0047bfa4 in MapWindow (client=0x669ec8, pWin=0x7206c0) at window.c:2722 #14 MapWindow (pWin=0x7206c0, client=0x669ec8) at window.c:2665 #15 0x00449650 in dix_main (argc=3, argv=0x7fa22604, envp=<optimized out>) at main.c:247 #16 0x76ab2198 in __libc_start_main (main=0x42db10 <main>, argc=3, argv=0x7fa22604, init=<optimized out>, fini=0x606434 <__libc_csu_fini>, rtld_fini=0x77229930 <_dl_fini>, stack_end=0x7fa225e0) at libc-start.c:308 #17 0x0042db80 in __start () at ../sysdeps/mips/start.S:110
Don't call `exaGetPixmapDriverPrivate` if the acceleration (EXA) is not enabled [yet] to avoid the problem.
Closes: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/188 Closes: https://bugzilla.altlinux.org/show_bug.cgi?id=37539
|
Alexey Sheplyakov |
4 years ago
|
|
|
3089
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3088
|
|
|
Adam Jackson |
4 years ago
|
|
|
3087
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3086
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3085
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3084
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3083
|
|
|
Michel Dänzer |
4 years ago
|
|
|
3082
|
|
|
Michel Dänzer |
4 years ago
|
|
|