intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
@ 2012-07-05 20:01 Chris Wilson
  2012-07-05 21:57 ` Eric Anholt
  2012-07-05 22:49 ` Chris Wilson
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Wilson @ 2012-07-05 20:01 UTC (permalink / raw)
  To: intel-gfx

It never quite worked despite the numerous workarounds, yet I still see
people trying to use this hardware and filing bug reports. As we no
longer even try to implement the workarounds, since 6a233c78878
(drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 3afba9d..bcd312f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3739,6 +3739,19 @@ void i915_gem_init_ppgtt(struct drm_device *dev)
 	}
 }
 
+static bool
+intel_enable_blt(struct drm_device *dev)
+{
+	if (!HAS_BLT(dev))
+		return false;
+
+	/* The blitter was dysfunctional on early prototypes */
+	if (IS_GEN6(dev) && dev->pdev->revision < 8)
+		return false;
+
+	return true;
+}
+
 int
 i915_gem_init_hw(struct drm_device *dev)
 {
@@ -3762,7 +3775,7 @@ i915_gem_init_hw(struct drm_device *dev)
 			goto cleanup_render_ring;
 	}
 
-	if (HAS_BLT(dev)) {
+	if (intel_enable_blt(dev)) {
 		ret = intel_init_blt_ring_buffer(dev);
 		if (ret)
 			goto cleanup_bsd_ring;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
  2012-07-05 20:01 [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware Chris Wilson
@ 2012-07-05 21:57 ` Eric Anholt
  2012-07-05 22:27   ` Chris Wilson
  2012-07-05 22:49 ` Chris Wilson
  1 sibling, 1 reply; 6+ messages in thread
From: Eric Anholt @ 2012-07-05 21:57 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 487 bytes --]

Chris Wilson <chris@chris-wilson.co.uk> writes:

> It never quite worked despite the numerous workarounds, yet I still see
> people trying to use this hardware and filing bug reports. As we no
> longer even try to implement the workarounds, since 6a233c78878
> (drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.

Do we have something elsewhere that's very verbose telling them to get
real hardware?  Userland isn't going to do very well when the ring
doesn't work.

[-- Attachment #1.2: Type: application/pgp-signature, Size: 197 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
  2012-07-05 21:57 ` Eric Anholt
@ 2012-07-05 22:27   ` Chris Wilson
  0 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2012-07-05 22:27 UTC (permalink / raw)
  To: Eric Anholt, intel-gfx

On Thu, 05 Jul 2012 14:57:41 -0700, Eric Anholt <eric@anholt.net> wrote:
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > It never quite worked despite the numerous workarounds, yet I still see
> > people trying to use this hardware and filing bug reports. As we no
> > longer even try to implement the workarounds, since 6a233c78878
> > (drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.
> 
> Do we have something elsewhere that's very verbose telling them to get
> real hardware?  Userland isn't going to do very well when the ring
> doesn't work.

The DDX already checks for the pre-production hardware and forces the
shadow buffer if it detects the broken blitter. We can easily add a
message there to remind them to return their SDV and get themselves a
real computer.

So I had actually forgotten about that check. The only question is then
whether that is better in the kernel so that all clients are protected
from pathological users, or left in the DDX?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
  2012-07-05 20:01 [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware Chris Wilson
  2012-07-05 21:57 ` Eric Anholt
@ 2012-07-05 22:49 ` Chris Wilson
  2012-07-09 16:39   ` Eric Anholt
  1 sibling, 1 reply; 6+ messages in thread
From: Chris Wilson @ 2012-07-05 22:49 UTC (permalink / raw)
  To: intel-gfx

It never quite worked despite the numerous workarounds, yet I still see
people trying to use this hardware and filing bug reports. As we no
longer even try to implement the workarounds, since 6a233c78878
(drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.

v2: Add a message to inform the user about the limited capabilities of
their pre-production hardware.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 3afba9d..db438f0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3739,6 +3739,22 @@ void i915_gem_init_ppgtt(struct drm_device *dev)
 	}
 }
 
+static bool
+intel_enable_blt(struct drm_device *dev)
+{
+	if (!HAS_BLT(dev))
+		return false;
+
+	/* The blitter was dysfunctional on early prototypes */
+	if (IS_GEN6(dev) && dev->pdev->revision < 8) {
+		DRM_INFO("BLT not supported on this pre-production hardware;"
+			 " graphics performance will be degraded.\n");
+		return false;
+	}
+
+	return true;
+}
+
 int
 i915_gem_init_hw(struct drm_device *dev)
 {
@@ -3762,7 +3778,7 @@ i915_gem_init_hw(struct drm_device *dev)
 			goto cleanup_render_ring;
 	}
 
-	if (HAS_BLT(dev)) {
+	if (intel_enable_blt(dev)) {
 		ret = intel_init_blt_ring_buffer(dev);
 		if (ret)
 			goto cleanup_bsd_ring;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
  2012-07-05 22:49 ` Chris Wilson
@ 2012-07-09 16:39   ` Eric Anholt
  2012-07-09 18:05     ` Daniel Vetter
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Anholt @ 2012-07-09 16:39 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 613 bytes --]

Chris Wilson <chris@chris-wilson.co.uk> writes:

> It never quite worked despite the numerous workarounds, yet I still see
> people trying to use this hardware and filing bug reports. As we no
> longer even try to implement the workarounds, since 6a233c78878
> (drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.
>
> v2: Add a message to inform the user about the limited capabilities of
> their pre-production hardware.

Where by "performance will be degraded" we mean "GL won't work".  :)

Still, better than just trying to blindly continue on.

Reviewed-by: Eric Anholt <eric@anholt.net>


[-- Attachment #1.2: Type: application/pgp-signature, Size: 197 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware
  2012-07-09 16:39   ` Eric Anholt
@ 2012-07-09 18:05     ` Daniel Vetter
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2012-07-09 18:05 UTC (permalink / raw)
  To: Eric Anholt; +Cc: intel-gfx

On Mon, Jul 09, 2012 at 09:39:38AM -0700, Eric Anholt wrote:
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > It never quite worked despite the numerous workarounds, yet I still see
> > people trying to use this hardware and filing bug reports. As we no
> > longer even try to implement the workarounds, since 6a233c78878
> > (drm/i915/ringbuffer: kill snb blt workaround), simply disable the ring.
> >
> > v2: Add a message to inform the user about the limited capabilities of
> > their pre-production hardware.
> 
> Where by "performance will be degraded" we mean "GL won't work".  :)
> 
> Still, better than just trying to blindly continue on.
> 
> Reviewed-by: Eric Anholt <eric@anholt.net>
Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-07-09 18:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-05 20:01 [PATCH] drm/i915: Disable the BLT on pre-production SNB hardware Chris Wilson
2012-07-05 21:57 ` Eric Anholt
2012-07-05 22:27   ` Chris Wilson
2012-07-05 22:49 ` Chris Wilson
2012-07-09 16:39   ` Eric Anholt
2012-07-09 18:05     ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).