From patchwork Thu Jul 24 23:18:23 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Packard X-Patchwork-Id: 4620481 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.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id B388FC0514 for ; Thu, 24 Jul 2014 23:18:55 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DF27C201CD for ; Thu, 24 Jul 2014 23:18:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 194AC20170 for ; Thu, 24 Jul 2014 23:18:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AE4646E783; Thu, 24 Jul 2014 16:18:53 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from keithp.com (home.keithp.com [63.227.221.253]) by gabe.freedesktop.org (Postfix) with ESMTP id 6296D6E783; Thu, 24 Jul 2014 16:18:51 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id 21C92760130; Thu, 24 Jul 2014 16:18:51 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at keithp.com Received: from keithp.com ([127.0.0.1]) by localhost (keithp.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id JAoPBPTRn3bx; Thu, 24 Jul 2014 16:18:47 -0700 (PDT) Received: by keithp.com (Postfix, from userid 1033) id 1608E760135; Thu, 24 Jul 2014 16:18:34 -0700 (PDT) Received: from hiro.keithp.com (localhost [127.0.0.1]) by keithp.com (Postfix) with ESMTP id 9708276013B; Thu, 24 Jul 2014 16:18:34 -0700 (PDT) Received: by hiro.keithp.com (Postfix, from userid 1001) id 813D774A65C; Thu, 24 Jul 2014 16:18:32 -0700 (PDT) From: Keith Packard To: xorg-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Date: Thu, 24 Jul 2014 16:18:23 -0700 Message-Id: <1406243908-1123-8-git-send-email-keithp@keithp.com> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1406243908-1123-1-git-send-email-keithp@keithp.com> References: <1406243908-1123-1-git-send-email-keithp@keithp.com> Subject: [Intel-gfx] [PATCH 07/12] Add intel_flush to abstract flushing pending acceleration operations X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 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.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, 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 intel_flush flushes any pending acceleration operations to the hardware, just like intel_uxa_batch_submit does today except that it is not uxa-specific. Signed-off-by: Keith Packard Reviewed-by: Eric Anholt --- src/uxa/intel.h | 3 +++ src/uxa/intel_display.c | 11 +++-------- src/uxa/intel_driver.c | 14 +++++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/uxa/intel.h b/src/uxa/intel.h index ade8742..64f573b 100644 --- a/src/uxa/intel.h +++ b/src/uxa/intel.h @@ -535,4 +535,7 @@ intel_get_pixmap_bo(PixmapPtr pixmap); void intel_set_pixmap_bo(PixmapPtr pixmap, dri_bo *bo); +void +intel_flush(intel_screen_private *intel); + #endif /* _I830_H_ */ diff --git a/src/uxa/intel_display.c b/src/uxa/intel_display.c index a4cbf00..add09b0 100644 --- a/src/uxa/intel_display.c +++ b/src/uxa/intel_display.c @@ -57,8 +57,6 @@ #include "fb.h" #include "uxa.h" -#include "intel_glamor.h" - #define KNOWN_MODE_FLAGS ((1<<14)-1) struct intel_drm_queue { @@ -437,8 +435,7 @@ intel_crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, crtc->y = y; crtc->rotation = rotation; - intel_glamor_flush(intel); - intel_batch_submit(crtc->scrn); + intel_flush(intel); mode_to_kmode(crtc->scrn, &intel_crtc->kmode, mode); ret = intel_crtc_apply(crtc); @@ -1437,8 +1434,7 @@ intel_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height) if (scrn->virtualX == width && scrn->virtualY == height) return TRUE; - intel_glamor_flush(intel); - intel_batch_submit(scrn); + intel_flush(intel); old_width = scrn->virtualX; old_height = scrn->virtualY; @@ -1552,8 +1548,7 @@ intel_do_pageflip(intel_screen_private *intel, goto error_out; drm_intel_bo_disable_reuse(new_front); - intel_glamor_flush(intel); - intel_batch_submit(scrn); + intel_flush(intel); mode->pageflip_data = pageflip_data; mode->pageflip_handler = pageflip_handler; diff --git a/src/uxa/intel_driver.c b/src/uxa/intel_driver.c index d9f918b..a764b97 100644 --- a/src/uxa/intel_driver.c +++ b/src/uxa/intel_driver.c @@ -181,6 +181,12 @@ intel_get_pixmap_bo(PixmapPtr pixmap) return intel_uxa_get_pixmap_bo(pixmap); } +void +intel_flush(intel_screen_private *intel) +{ + intel_batch_submit(intel->scrn); +} + static void PreInitCleanup(ScrnInfoPtr scrn) { if (!scrn || !scrn->driverPrivate) @@ -647,7 +653,7 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty) PixmapSyncDirtyHelper(dirty, &pixregion); RegionUninit(&pixregion); - intel_batch_submit(scrn); + intel_flush(intel); if (!intel->has_prime_vmap_flush) { drm_intel_bo *bo = intel_uxa_get_pixmap_bo(dirty->slave_dst->master_pixmap); was_blocked = xf86BlockSIGIO(); @@ -732,10 +738,8 @@ intel_flush_callback(CallbackListPtr *list, pointer user_data, pointer call_data) { ScrnInfoPtr scrn = user_data; - if (scrn->vtSema) { - intel_batch_submit(scrn); - intel_glamor_flush(intel_get_screen_private(scrn)); - } + if (scrn->vtSema) + intel_flush(intel_get_screen_private(scrn)); } #if HAVE_UDEV