From patchwork Tue Jan 29 21:54:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mamta Shukla X-Patchwork-Id: 10787839 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6DC576C2 for ; Wed, 30 Jan 2019 08:24:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5DF9028B3B for ; Wed, 30 Jan 2019 08:24:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B96029462; Wed, 30 Jan 2019 08:24:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.7 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 58FC128B3B for ; Wed, 30 Jan 2019 08:24:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6DDEA6EAD0; Wed, 30 Jan 2019 08:24:04 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com [IPv6:2607:f8b0:4864:20::644]) by gabe.freedesktop.org (Postfix) with ESMTPS id 77BA26E976 for ; Tue, 29 Jan 2019 21:55:04 +0000 (UTC) Received: by mail-pl1-x644.google.com with SMTP id w4so10015764plz.1 for ; Tue, 29 Jan 2019 13:55:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=cuY5Vy5B+IHBV2UsGpsqUarFYbOPH6IbqMrWaI5lYZY=; b=umbFF9B3p0kwOT0jooDecV33j2At2/4Dyh6lVFIUXsahVMM2Z557I0Y9w/CC8mQ1LC PhjqsfrXhN863PpgQRbAVAkJOz2ma13Y6M8nSgmgtYkhV7PNnBM9DG73COwvkp2upuhF jMpJwhpsu1i3g+c2eq//Q2ATScD81L/yYMnq+HqI8GBGxrs+LLy70Sbbcjmb2bXD5o3K X+X47itN2Yh+ccdP460h1i3gsi1i0p9BrI0ve+hgKmtsxyY/LAiXmMHRFuDfbxJPOTbd 8KE3ZMDekVatC0XcHVugt6R88ZyTHossQIePpXbc6fPwuD206TLQT1p1IZ8Kn85jQH4T 4pXg== X-Gm-Message-State: AJcUukeLCZomxR89749Re+ZYMz0trkyp03/cUhYGOqxWWhjCUCtxLaC3 cR7eiwzndKZnZb2rQ6tO/wY= X-Google-Smtp-Source: ALg8bN6oQPVFENYu+dQplESUlo1o6Fp/glR0mCGaIUTzzap9Bd+y4VM1CuBddkErYjFZUo3mMhOiwQ== X-Received: by 2002:a17:902:1d4a:: with SMTP id u10mr26585840plu.122.1548798903544; Tue, 29 Jan 2019 13:55:03 -0800 (PST) Received: from armorer ([117.199.63.172]) by smtp.gmail.com with ESMTPSA id l64sm47958882pge.73.2019.01.29.13.55.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 Jan 2019 13:55:03 -0800 (PST) Date: Wed, 30 Jan 2019 03:24:59 +0530 From: Mamta Shukla To: dri-devel@lists.freedesktop.org, daniel@ffwll.ch, harry.wentland@amd.com, hamohammed.sa@gmail.com, rodrigosiqueiramelo@gmail.com Subject: [PATCH v2,1/2] drm/vkms: Use alpha for blending in blend() function Message-ID: <48ecdf48d153d0ca3b954ba737ae9a0b35ef3ad5.1548798106.git.mamtashukla555@gmail.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Mailman-Approved-At: Wed, 30 Jan 2019 08:23:59 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Use the alpha value to blend vaddr_src with vaddr_dst instead of overwriting it in blend(). Signed-off-by: Mamta Shukla --- changes in v2: -Use macro to avoid code duplication -Add spaces around '/' and '-' -Remove spaces at the end of the line drivers/gpu/drm/vkms/vkms_crc.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c index 9d9e8146db90..dc6cb4c2cced 100644 --- a/drivers/gpu/drm/vkms/vkms_crc.c +++ b/drivers/gpu/drm/vkms/vkms_crc.c @@ -5,6 +5,8 @@ #include #include +#define BITSHIFT(val,i) (u8)((*(u32 *)(val)) >> i & 0xff) + /** * compute_crc - Compute CRC value on output frame * @@ -71,6 +73,9 @@ static void blend(void *vaddr_dst, void *vaddr_src, int y_limit = y_src + h_dst; int x_limit = x_src + w_dst; + u8 alpha, r_src, r_dst, g_src, g_dst, b_src, b_dst; + u8 r_alpha, g_alpha, b_alpha; + for (i = y_src, i_dst = y_dst; i < y_limit; ++i) { for (j = x_src, j_dst = x_dst; j < x_limit; ++j) { offset_dst = crc_dst->offset @@ -79,9 +84,25 @@ static void blend(void *vaddr_dst, void *vaddr_src, offset_src = crc_src->offset + (i * crc_src->pitch) + (j * crc_src->cpp); + + /*Currently handles alpha values for fully opaque or fully transparent*/ + alpha = (u8)((*(u32 *)vaddr_src + offset_src) >> 24); + alpha = alpha / 255; + r_src = BITSHIFT(vaddr_src + offset_src, 16); + g_src = BITSHIFT(vaddr_src + offset_src, 8); + b_src = BITSHIFT(vaddr_src + offset_src, 0); + r_dst = BITSHIFT(vaddr_dst + offset_dst, 16); + g_dst = BITSHIFT(vaddr_dst + offset_dst, 8); + b_dst = BITSHIFT(vaddr_dst + offset_dst, 0); + + /*Pre-multiplied alpha for blending */ + r_alpha = (r_src) + (r_dst * (1 - alpha)); + g_alpha = (g_src) + (g_dst * (1 - alpha)); + b_alpha = (b_src) + (b_dst * (1 - alpha)); + memset(vaddr_dst + offset_dst, b_alpha, sizeof(u8)); + memset(vaddr_dst + offset_dst + 1, g_alpha, sizeof(u8)); + memset(vaddr_dst + offset_dst + 2, r_alpha, sizeof(u8)); - memcpy(vaddr_dst + offset_dst, - vaddr_src + offset_src, sizeof(u32)); } i_dst++; } From patchwork Tue Jan 29 22:00:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mamta Shukla X-Patchwork-Id: 10787845 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1F0BD6C2 for ; Wed, 30 Jan 2019 08:24:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0EEA31FE82 for ; Wed, 30 Jan 2019 08:24:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 035AD285A8; Wed, 30 Jan 2019 08:24:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.7 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id ACE5A1FE82 for ; Wed, 30 Jan 2019 08:24:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0ED026EAD9; Wed, 30 Jan 2019 08:24:17 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by gabe.freedesktop.org (Postfix) with ESMTPS id 58F276E979 for ; Tue, 29 Jan 2019 22:00:21 +0000 (UTC) Received: by mail-pl1-x643.google.com with SMTP id g9so9996868plo.3 for ; Tue, 29 Jan 2019 14:00:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=h7E66NUo/SE5gKN38gbPI4w8qStz8gJJth28RSG8zI0=; b=r7QryTHxhKEqn16pDechFWCA2BHez5VnCkiWLVB8If4iJTcWvNqfeb/8tBLqQq5eRX IUdy71OHG9+H6zEjWLxmrZQgN+1S6tkbEuizHT1Db8v/wCl8l9TMIXAMsD71G0Y8cLPA x8XcTwczAFmZ0rk1gnADCPsmVouLf77hfK7GzeNB4jsUQBMe1FSvdooSQVmUeQbE/7hg ndX3pwksUVOKPY45xwExrgrmFCkuiGfZ2w8LSbVOy2ReiQ04kIe7s1Jo9u54mOXW7mqK zxyoy9xquLRRmIXdg2OD0A2OSxknvB75ge516d9g2s+r6KuHvNrc1UnMMgmBE5dc12j4 2u8Q== X-Gm-Message-State: AJcUukffKEdhZWpEHNZI0DgjB2BCUiljYHjvyRe2eePZDObvcAGCVXXl eF67UDSlP1A/PH5EFUdKJ3S6a6eYDls= X-Google-Smtp-Source: ALg8bN6m0GdOtU2Kmo81vdQgCWF2nOFshunQqz0pKLRZDyM8HUwMQXyUhvkgjHs7G6DKWIp/JfnVqg== X-Received: by 2002:a17:902:6acc:: with SMTP id i12mr27067597plt.148.1548799220835; Tue, 29 Jan 2019 14:00:20 -0800 (PST) Received: from armorer ([117.199.63.172]) by smtp.gmail.com with ESMTPSA id h74sm54246242pfd.35.2019.01.29.14.00.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 Jan 2019 14:00:20 -0800 (PST) Date: Wed, 30 Jan 2019 03:30:16 +0530 From: Mamta Shukla To: dri-devel@lists.freedesktop.org, daniel@ffwll.ch, harry.wentland@amd.com, hamohammed.sa@gmail.com, rodrigosiqueiramelo@gmail.com Subject: [PATCH v2 2/2] drm/vkms: Modify memset() in compute_crc function Message-ID: References: <48ecdf48d153d0ca3b954ba737ae9a0b35ef3ad5.1548798106.git.mamtashukla555@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <48ecdf48d153d0ca3b954ba737ae9a0b35ef3ad5.1548798106.git.mamtashukla555@gmail.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Mailman-Approved-At: Wed, 30 Jan 2019 08:23:59 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace memset(vaddr_out + src_offset + 24, 0, 8) with memset(vaddr_out + src_offset + 3, 0, 1) because memset fills memory in bytes and not in bits. Signed-off-by: Mamta Shukla Reviewed-by: Harry Wentland --- No changes in v2. drivers/gpu/drm/vkms/vkms_crc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vkms/vkms_crc.c b/drivers/gpu/drm/vkms/vkms_crc.c index dc6cb4c2cced..5135642fb204 100644 --- a/drivers/gpu/drm/vkms/vkms_crc.c +++ b/drivers/gpu/drm/vkms/vkms_crc.c @@ -31,7 +31,7 @@ static uint32_t compute_crc(void *vaddr_out, struct vkms_crc_data *crc_out) + (i * crc_out->pitch) + (j * crc_out->cpp); /* XRGB format ignores Alpha channel */ - memset(vaddr_out + src_offset + 24, 0, 8); + memset(vaddr_out + src_offset + 3, 0, 1); crc = crc32_le(crc, vaddr_out + src_offset, sizeof(u32)); }