From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/i915: disable cpu relocs on ilk and earlier Date: Wed, 10 Oct 2012 10:06:40 +0200 Message-ID: <1349856400-16502-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by gabe.freedesktop.org (Postfix) with ESMTP id A6E169ED48 for ; Wed, 10 Oct 2012 01:05:46 -0700 (PDT) Received: by mail-wi0-f171.google.com with SMTP id hj13so5448142wib.12 for ; Wed, 10 Oct 2012 01:05:45 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Intel Graphics Development Cc: Daniel Vetter , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org They seem to be implicated in render corruptions. And up to now no one really seems to understand the issue, so let's just disable them for now. Most of the machines exhibiting this issue have only a 128 gtt mmio window, so increased pressure on the mappable part (and so higher chance for cpu relocs) seems to be the key. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=852210 Cc: Dave Airlie Cc: stable@vger.kernel.org [Note for stable, there's a minor conflict in the context since we've tuned cpu relocs on gen6+ a bit in 3.7.] Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index 6a2f3e5..4052ac5 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -95,6 +95,12 @@ eb_destroy(struct eb_objects *eb) static inline int use_cpu_reloc(struct drm_i915_gem_object *obj) { + /* cpu relocs are implicated in some not-yet-understood render + * corruptions on at least ilk, but probably also gm45. Until we know + * what's going on, just disable them. */ + if (INTEL_INFO(obj->base.dev)->gen < 6) + return false; + return (obj->base.write_domain == I915_GEM_DOMAIN_CPU || !obj->map_and_fenceable || obj->cache_level != I915_CACHE_NONE); -- 1.7.10.4