xf86-video-intel: src/sna/kgem.c src/sna/sna_accel.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Oct 31 09:58:12 PDT 2014


 src/sna/kgem.c      |    6 +++---
 src/sna/sna_accel.c |    4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

New commits:
commit 122f6065604480a57b86f04d5d09011ee6e8829b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Oct 31 16:50:04 2014 +0000

    sna: Fix forced fallbacks from init
    
    As we now override a few hooks when we mark the GPU as wedged, we also
    need to preserve those overrides during initialisation. Fixes DBG_NO_HW.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index f1e426d..f5cdc6c 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1467,11 +1467,11 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 	if (!is_hw_supported(kgem, dev)) {
 		xf86DrvMsg(kgem_get_screen_index(kgem), X_WARNING,
 			   "Detected unsupported/dysfunctional hardware, disabling acceleration.\n");
-		kgem->wedged = 1;
+		__kgem_set_wedged(kgem);
 	} else if (__kgem_throttle(kgem, false)) {
 		xf86DrvMsg(kgem_get_screen_index(kgem), X_WARNING,
 			   "Detected a hung GPU, disabling acceleration.\n");
-		kgem->wedged = 1;
+		__kgem_set_wedged(kgem);
 	}
 
 	kgem->batch_size = UINT16_MAX & ~7;
@@ -1489,7 +1489,7 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
 	if (!kgem_init_pinned_batches(kgem) && gen == 020) {
 		xf86DrvMsg(kgem_get_screen_index(kgem), X_WARNING,
 			   "Unable to reserve memory for GPU, disabling acceleration.\n");
-		kgem->wedged = 1;
+		__kgem_set_wedged(kgem);
 	}
 
 	DBG(("%s: maximum batch size? %d\n", __FUNCTION__,
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index d214260..cd0b907 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -17711,6 +17711,9 @@ static bool sna_option_accel_none(struct sna *sna)
 {
 	const char *s;
 
+	if (wedged(sna))
+		return true;
+
 	if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE))
 		return true;
 
@@ -17812,6 +17815,7 @@ bool sna_accel_init(ScreenPtr screen, struct sna *sna)
 	if (sna_option_accel_none(sna)) {
 		backend = "disabled";
 		sna->kgem.wedged = true;
+		sna_render_mark_wedged(sna);
 	} else if (sna_option_accel_blt(sna) || sna->info->gen >= 0110)
 		(void)backend;
 	else if (sna->info->gen >= 0100)


More information about the xorg-commit mailing list