From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3D1DD6EB3D for ; Mon, 20 Jan 2020 22:03:28 +0000 (UTC) From: Imre Deak Date: Tue, 21 Jan 2020 00:03:19 +0200 Message-Id: <20200120220320.17092-2-imre.deak@intel.com> In-Reply-To: <20200120220320.17092-1-imre.deak@intel.com> References: <20200120220320.17092-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/3] lib/igt_fb: Use render copy/blit for tiled formats on platforms w/o HW detiling List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: On platforms without HW detiling use render copy or blitting to convert between a tiled and a linear framebuffer. Signed-off-by: Imre Deak --- lib/igt_fb.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/igt_fb.c b/lib/igt_fb.c index c81b9de8..b5b1750e 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -1975,17 +1975,27 @@ static bool blitter_ok(const struct igt_fb *fb) return true; } +static bool hw_can_detile(const struct igt_fb *fb) +{ + if (fb->modifier == DRM_FORMAT_MOD_NONE) + return true; + + if (!gem_has_legacy_hw_tiling(fb->fd)) + return false; + + return fb->modifier != I915_FORMAT_MOD_Yf_TILED; +} + static bool use_enginecopy(const struct igt_fb *fb) { return is_ccs_modifier(fb->modifier) || - (fb->modifier == I915_FORMAT_MOD_Yf_TILED && - !blitter_ok(fb)); + (!hw_can_detile(fb) && !blitter_ok(fb)); } static bool use_blitter(const struct igt_fb *fb) { return (fb->modifier == I915_FORMAT_MOD_Y_TILED || - fb->modifier == I915_FORMAT_MOD_Yf_TILED) && + !hw_can_detile(fb)) && blitter_ok(fb); } -- 2.23.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev