NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xsrc/55059: xsrc 19.1.0 radeon driver needs 2 additional fixes



>Number:         55059
>Category:       xsrc
>Synopsis:       xsrc 19.1.0 radeon driver needs 2 additional fixes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    xsrc-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 08 18:15:00 +0000 2020
>Originator:     Onno van der Linden
>Release:        NetBSD 9.99.48
>Organization:

>Environment:
System: NetBSD sheep 9.99.48 NetBSD 9.99.48 (SHEEPKMS) #25: Fri Mar 6 18:37:35 CET 2020 onno@sheep:/usr/src/sys/arch/i386/compile/SHEEPKMS i386
Architecture: i386
Machine: i386
>Description:
With the 19.1.0 radeon driver in xsrc X fails to start on my radeon HD 3450
that has option NoAccell in xorg.conf
>How-To-Repeat:
On my computer run startx after which everything hangs
and a hard reset is needed.
>Fix:
From https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/

I applied the following two fixes and X is starting and running fine again.

https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=4d84cf438e7f1bebf0053035ef0292e9fed257d1
https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=c0eb5dbd9c1db6b6d5b1574bcd8c584170d7ab54

which results in


--- /usr/xsrc/external/mit/xf86-video-ati-kms/dist/src/radeon.h.orig	2020-02-23 08:17:06.926102120 +0100
+++ /usr/xsrc/external/mit/xf86-video-ati-kms/dist/src/radeon.h	2020-03-08 17:43:00.083609713 +0100
@@ -790,8 +790,8 @@
 
 static inline struct radeon_buffer *radeon_get_pixmap_bo(PixmapPtr pPix)
 {
-#ifdef USE_GLAMOR
     RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(pPix->drawable.pScreen));
+#ifdef USE_GLAMOR
 
     if (info->use_glamor) {
 	struct radeon_pixmap *priv;
@@ -799,7 +799,7 @@
 	return priv ? priv->bo : NULL;
     } else
 #endif
-    {
+    if (info->accelOn) {
 	struct radeon_exa_pixmap_priv *driver_priv;
 	driver_priv = exaGetPixmapDriverPrivate(pPix);
 	return driver_priv ? driver_priv->bo : NULL;
@@ -896,7 +896,7 @@
 				   handle);
     }
 
-    return *fb_ptr;
+    return fb_ptr ? *fb_ptr : NULL;
 }
 
 



Home | Main Index | Thread Index | Old Index