Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp561633ybh; Thu, 12 Mar 2020 07:06:23 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuaj1DgEUhuYNJNXdmEJcc3sICk7A6HwYLVt2YLz/pI1SRgEBJJnX2gGb4LUpj0uYFsApdu X-Received: by 2002:aca:c256:: with SMTP id s83mr2818272oif.57.1584021983758; Thu, 12 Mar 2020 07:06:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584021983; cv=none; d=google.com; s=arc-20160816; b=Zmxt+9ncZ+zg7CzVXyEu6rlzBRKX8HcIhUbE0Dv4lXxELmhqjZ/C8msePmt1h6gJ25 /+tCDY952/lH3zEEs5vEnVPY+e6lRpvVR8KIoXlvpx9uCRVJkmnPVZyHg1ejAubA6Ieh w6sSU+S1lqz38uTedXJC/widPKDagputaCTP5gMBzrUVskTjMgiuk1FkzQzHe/PfsT0x Si2TYmV6+ln/tBMWgQABRLH/y9i71Ul6zMCDMIJmarv39mKERtLOix8mL48oidLzxf8A aRLXxmHVIdrzgsOAWkPlnIipmQhBHrOGY5v4i0rfbYbg30Hp0tcANLUs1vHueh0OEQ8o Gz4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=GXVYY/Qw4NEO6yL6KWQvbKXuHaeX/FBLSPtV3Fq0m5g=; b=aemRaPF9Vo7Ngi69hPL1eryeDxZMtZ74cESqBBpNXuovUDItK5J+3a/mVFy2ZUO7Lk qTy0Hy+LBcGROJy5/hiVP1lpbjZS07RosLTBeZGMrPDX1+ndR5bJ1kLs7/zGTG41ziSy Xk/pQ74ysDuRJFJ5LfwqBq3lwI4WltDtL2IuenxRLISaq6cPRWWz7b1VneE7Qom08ap8 irjunEnsmF3gJMoZxxl9afQ87eBkomPK/6VcJHmZQAfxiEBpKdHRqtc6zDm2eIWJFIpU Uy6JBJc5RQVkuKhyniHmNR5VfX+T9HGdtBvlv3qfPIJWFAfwGpFKF04DUBv8F0VgfXEN N4iQ== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w20si2680306otj.294.2020.03.12.07.06.05; Thu, 12 Mar 2020 07:06:23 -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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727498AbgCLOEk (ORCPT + 99 others); Thu, 12 Mar 2020 10:04:40 -0400 Received: from mga02.intel.com ([134.134.136.20]:63187 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727123AbgCLOEk (ORCPT ); Thu, 12 Mar 2020 10:04:40 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Mar 2020 07:04:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,545,1574150400"; d="scan'208";a="232063290" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga007.jf.intel.com with SMTP; 12 Mar 2020 07:04:35 -0700 Received: by stinkbox (sSMTP sendmail emulation); Thu, 12 Mar 2020 16:04:34 +0200 Date: Thu, 12 Mar 2020 16:04:34 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Pankaj Bharadiya Cc: jani.nikula@linux.intel.com, daniel@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, maarten.lankhorst@linux.intel.com, tzimmermann@suse.de, mripard@kernel.org, mihail.atanassov@arm.com, linux-kernel@vger.kernel.org, ankit.k.nautiyal@intel.com Subject: Re: [RFC][PATCH 0/5] Introduce drm scaling filter property Message-ID: <20200312140434.GG13686@intel.com> References: <20200225070545.4482-1-pankaj.laxminarayan.bharadiya@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200225070545.4482-1-pankaj.laxminarayan.bharadiya@intel.com> X-Patchwork-Hint: comment User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 25, 2020 at 12:35:40PM +0530, Pankaj Bharadiya wrote: > Integer scaling (IS) is a nearest-neighbor upscaling technique that > simply scales up the existing pixels by an integer (i.e., whole > number) multiplier. Nearest-neighbor (NN) interpolation works by > filling in the missing color values in the upscaled image with that of > the coordinate-mapped nearest source pixel value. > > Both IS and NN preserve the clarity of the original image. In > contrast, traditional upscaling algorithms, such as bilinear or > bicubic interpolation, result in blurry upscaled images because they > employ interpolation techniques that smooth out the transition from > one pixel to another. Therefore, integer scaling is particularly > useful for pixel art games that rely on sharp, blocky images to > deliver their distinctive look. > > Many gaming communities have been asking for integer-mode scaling > support, some links and background: > > https://software.intel.com/en-us/articles/integer-scaling-support-on-intel-graphics > http://tanalin.com/en/articles/lossless-scaling/ > https://community.amd.com/thread/209107 > https://www.nvidia.com/en-us/geforce/forums/game-ready-drivers/13/1002/feature-request-nonblurry-upscaling-at-integer-rat/ > > This patch series - > - Introduces new scaling filter property to allow userspace to > select the driver's default scaling filter or Nearest-neighbor(NN) > filter for scaling operations on crtc/plane. > - Implements and enable integer scaling for i915 > > Userspace patch series link: TBD. That needs to be done or this will go nowhere. > > Thanks to Shashank for initiating this work. His initial RFC can be > found here [1] > > [1] https://patchwork.freedesktop.org/patch/337082/ > > Modifications done in this series - > - refactored code and incorporated initial review comments and > added 2 scaling filter types (default and NN) to begin with. > - added scaling filter property support for planes and new API > helpers for drivers to setup this property. > - rewrote code to enable integer scaling and NN filter for i915 > > > Pankaj Bharadiya (5): > drm: Introduce scaling filter property > drm/drm-kms.rst: Add Scaling filter property documentation > drm/i915: Enable scaling filter for plane and pipe > drm/i915: Introduce scaling filter related registers and bit fields. > drm/i915/display: Add Nearest-neighbor based integer scaling support > > Documentation/gpu/drm-kms.rst | 6 ++ > drivers/gpu/drm/drm_atomic_uapi.c | 8 ++ > drivers/gpu/drm/drm_crtc.c | 16 +++ > drivers/gpu/drm/drm_mode_config.c | 13 +++ > drivers/gpu/drm/drm_plane.c | 35 +++++++ > drivers/gpu/drm/i915/display/intel_display.c | 100 ++++++++++++++++++- > drivers/gpu/drm/i915/display/intel_display.h | 2 + > drivers/gpu/drm/i915/display/intel_sprite.c | 32 ++++-- > drivers/gpu/drm/i915/i915_reg.h | 21 ++++ > include/drm/drm_crtc.h | 10 ++ > include/drm/drm_mode_config.h | 6 ++ > include/drm/drm_plane.h | 14 +++ > 12 files changed, 252 insertions(+), 11 deletions(-) > > -- > 2.23.0 -- Ville Syrj?l? Intel