From patchwork Mon Jan 11 10:45:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 8001611 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 5F729BEEE5 for ; Mon, 11 Jan 2016 10:50:19 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8541920295 for ; Mon, 11 Jan 2016 10:50:18 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id B422120279 for ; Mon, 11 Jan 2016 10:50:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AB73B6E457; Mon, 11 Jan 2016 02:50:16 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id 46D4F6E2CB for ; Mon, 11 Jan 2016 02:47:17 -0800 (PST) Received: by mail-wm0-f68.google.com with SMTP id f206so25663491wmf.2 for ; Mon, 11 Jan 2016 02:47:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=JvgTGjXQC9k5ziCrFEXwdzeq0ZzA+OBVtQy43kX4clE=; b=s1dQPJUy6TErx1CRnYH8IsR6cK8I9Lsj9pHtkyp+CaoEYudLCUGVC7W5vLgmYhrmUJ lvDwXuroAlFSQ+X9iz4lSk/Ak+k3f4FkFZbpC8Uss7sIpnoSIuM8KeRMw8vuLId35hwS HAPjBth3XaxqCRWOy3O+u1MBThVqyySXNRZT6NsWugblxTwPO/I2T/o9N3R3H7H1h/ZH VAYHr5ml7cK5Mg/uyQAqU67WQzf7KLwj9G0laUdFeDF0BjtEfWiaL29hyhsD9m1ftJnp 62QBXKZySWtVqjlM0gN9p21dVa1DTWEua4+CC8418maLHV8OUIo5KyBfCPxadbG7uvk+ dL1w== X-Received: by 10.194.246.134 with SMTP id xw6mr17418266wjc.158.1452509236099; Mon, 11 Jan 2016 02:47:16 -0800 (PST) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id t3sm118879383wjz.11.2016.01.11.02.47.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 11 Jan 2016 02:47:14 -0800 (PST) From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Mon, 11 Jan 2016 10:45:13 +0000 Message-Id: <1452509174-16671-43-git-send-email-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.7.0.rc3 In-Reply-To: <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> Subject: [Intel-gfx] [PATCH 129/190] drm/i915: Before accessing an object via the cpu, flush GTT writes X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP If we want to read the pages directly via the CPU, we have to be sure that we have to flush the writes via the GTT (as the CPU can not see the address aliasing). Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_gem.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index e18c0d4d24ad..c12bda7a4277 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -500,6 +500,8 @@ int i915_gem_obj_prepare_shmem_read(struct drm_i915_gem_object *obj, if (!obj->base.filp) return -EINVAL; + i915_gem_object_flush_gtt_write_domain(obj); + if (!(obj->base.read_domains & I915_GEM_DOMAIN_CPU)) { ret = i915_gem_object_wait_rendering(obj, true); if (ret) @@ -540,6 +542,8 @@ int i915_gem_obj_prepare_shmem_write(struct drm_i915_gem_object *obj, if (!obj->base.filp) return -EINVAL; + i915_gem_object_flush_gtt_write_domain(obj); + if (obj->base.write_domain != I915_GEM_DOMAIN_CPU) { ret = i915_gem_object_wait_rendering(obj, false); if (ret)