Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp5101357ybb; Tue, 24 Mar 2020 10:59:44 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvzphJqLyKQmRNBwyOGfJSg5bsQESxq2+BCfuXmimXYTRpJOkodzVEfWhI4jpWrUo8lF7m9 X-Received: by 2002:a9d:65ca:: with SMTP id z10mr23121882oth.86.1585072784799; Tue, 24 Mar 2020 10:59:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585072784; cv=none; d=google.com; s=arc-20160816; b=Q0c+xwwHGvsbQqZSJLyIJnPGWKy4MqpAUeNO66eDk/sbbFyCIk2LACI1pfolVgwTDA OUcmsb/ubtgCdp5FRF+CvNvApimfrAMJ9lI/Y1JhFPUP8pME1onVo5dp9SfVDINZudp2 H3t2wbYSc831woHIWSDOP49xoUbZ/kadKpi4X0CZPk6FNOz+pwm/dmQk5jB+QBhNKbJr /bihXMmR89rBrXKhvpdqRSPSpu7LdkefDKv4/CTymqHB64sHi+Ahy9g9S6qiQzkJ5Qip 11VygYbkwzxbyepMLflCxIqCN/rZqgtD4VEGrr6hZkZ7uF+Rrmx8ARLwmJoP+VFmQl60 w4/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=bXFiUd+ZL9z5CQn/h21NvO9Eu9+6Pw2eivWSnYFoFII=; b=sOPWl+kiITxNSVlazMjfrLIUm865+Cv5MqR8W8aiASQB7pSbWRfOiiegJfIWsSwJbJ 3eXHb6zcDMfQiOjWZmtHBgpM8qCXAI8KTtcGrSgDs1Jj926QmM3i/PRLEtUGoByJYJe8 qFdNfflNEIdUcU0sN1sb7Yp+oYDpmtHTr1vGtDQpbHRnFzzHAsxLw1s/rl2hAhNl4URP jdjKwfVQaKEgFdENYO9quypz4RUGd+iy9hUZwtBtH1Ag9tKh+jg8eSiaO1/7UEXTgITm gv+SiwPRwLPlyWgEq1yxBj4usVDFr/5HA3HXGCHy9R5AZBNCwJHAGMEPqqZxBGPVPHEx rrZw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=siol.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b12si12734142ots.192.2020.03.24.10.59.30; Tue, 24 Mar 2020 10:59:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=siol.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727702AbgCXR7B (ORCPT + 99 others); Tue, 24 Mar 2020 13:59:01 -0400 Received: from mailoutvs40.siol.net ([185.57.226.231]:50145 "EHLO mail.siol.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727333AbgCXR7B (ORCPT ); Tue, 24 Mar 2020 13:59:01 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTP id 9520952458E; Tue, 24 Mar 2020 18:58:57 +0100 (CET) X-Virus-Scanned: amavisd-new at psrvmta09.zcs-production.pri Received: from mail.siol.net ([127.0.0.1]) by localhost (psrvmta09.zcs-production.pri [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id scDAk1DWhDMx; Tue, 24 Mar 2020 18:58:57 +0100 (CET) Received: from mail.siol.net (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTPS id 39BA152458F; Tue, 24 Mar 2020 18:58:57 +0100 (CET) Received: from jernej-laptop.localnet (cpe-194-152-20-232.static.triera.net [194.152.20.232]) (Authenticated sender: jernej.skrabec@siol.net) by mail.siol.net (Postfix) with ESMTPA id 928FE52458E; Tue, 24 Mar 2020 18:58:56 +0100 (CET) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: mripard@kernel.org, wens@csie.org, Roman Stratiienko Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, Roman Stratiienko Subject: Re: [PATCH v4 4/4] RFC: drm/sun4i: Process alpha channel of most bottom layer Date: Tue, 24 Mar 2020 18:58:56 +0100 Message-ID: <2979815.5fSG56mABF@jernej-laptop> In-Reply-To: <20200302103138.17916-5-r.stratiienko@gmail.com> References: <20200302103138.17916-5-r.stratiienko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi! Dne ponedeljek, 02. marec 2020 ob 11:31:38 CET je Roman Stratiienko napisal(a): > Allwinner display engine blender consists of 3 pipelined blending units. > > PIPE0->\ > BLD0-\ > PIPE1->/ BLD1-\ > PIPE2->------/ BLD2->OUT > PIPE3->------------/ > > This pipeline produces incorrect composition if PIPE0 buffer has alpha. I always thought that if bottom layer has alpha, it's blended with background color, which is set to opaque black. If that is not the case, can you solve this by changing blending formula located in BLD control registers (offsets 0x90, 0x94, 0x98 and 0x9c)? Best regards, Jernej > Correct solution is to add one more blending step and mix PIPE0 with > background, but it is not supported by the hardware. > > Use premultiplied alpha buffer of PIPE0 overlay channel as is. > In this case we got same effect as mixing PIPE0 with black background. > > Signed-off-by: Roman Stratiienko > > --- > > v4: > - Initial version, depends on other unmerged patches in the patchset. > --- > drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +- > drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c index dd6145f80c36..d94f4d8b9128 > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > @@ -106,7 +106,7 @@ static void sun8i_ui_layer_update_alpha(struct > sun8i_mixer *mixer, int channel, regmap_update_bits(mixer->engine.regs, > SUN8I_MIXER_BLEND_PREMULTIPLY(bld_base), > SUN8I_MIXER_BLEND_PREMULTIPLY_EN(zpos), > - SUN8I_MIXER_BLEND_PREMULTIPLY_EN(zpos)); > + zpos ? SUN8I_MIXER_BLEND_PREMULTIPLY_EN(zpos) : 0); > } > > static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int > channel, diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index e6d8a539614f..68a6843db4ab > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > @@ -108,7 +108,7 @@ static void sun8i_vi_layer_update_alpha(struct > sun8i_mixer *mixer, int channel, regmap_update_bits(mixer->engine.regs, > SUN8I_MIXER_BLEND_PREMULTIPLY(bld_base), > SUN8I_MIXER_BLEND_PREMULTIPLY_EN(zpos), > - (mixer->cfg->is_de3) ? > + (zpos != 0 && mixer->cfg->is_de3) ? > SUN8I_MIXER_BLEND_PREMULTIPLY_EN(zpos) : 0); > > }