From: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com> To: jani.nikula@linux.intel.com, daniel@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, ville.syrjala@linux.intel.com, daniels@collabora.com Cc: pankaj.laxminarayan.bharadiya@intel.com Subject: [PATCH v3 0/5] Introduce drm scaling filter property Date: Tue, 31 Mar 2020 00:08:52 +0530 [thread overview] Message-ID: <20200330183857.13270-1-pankaj.laxminarayan.bharadiya@intel.com> (raw) This series is the continuation for the RFC that I posted earlier [1] [1] RFC: https://patchwork.freedesktop.org/series/73884/ 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 properties to allow userspace to select the driver's default scaling filter or Nearest-neighbor(NN) filter for scaling operations on crtc and plane. - Implements and enable integer scaling for i915 Userspace patch series link: https://github.com/lrusak/xbmc/pull/24 Thanks to Shashank for initiating this work. His initial work can be found here [2] [2] https://patchwork.freedesktop.org/patch/337082/ changes since v2: * Add per-crtc and per-plane scaling filter property (Ville) * Rename/refoctor functions and macros. * Duplicate the scaling filter in crtc and plane hw state (Ville) changes since v1: * Add userspace patch link to this cover letter. * 4/5 - Rearrange skl_scaler_setup_nearest_neighbor_filter() to iterate the registers directly instead of the phases and taps (Ville) Pankaj Bharadiya (5): drm: Introduce plane and CRTC scaling filter properties drm/drm-kms.rst: Add plane and CRTC scaling filter property documentation drm/i915: Introduce scaling filter related registers and bit fields. drm/i915/display: Add Nearest-neighbor based integer scaling support drm/i915: Enable scaling filter for plane and CRTC Documentation/gpu/drm-kms.rst | 12 ++ drivers/gpu/drm/drm_atomic_uapi.c | 8 ++ drivers/gpu/drm/drm_crtc.c | 78 ++++++++++++ drivers/gpu/drm/drm_plane.c | 78 ++++++++++++ .../gpu/drm/i915/display/intel_atomic_plane.c | 1 + drivers/gpu/drm/i915/display/intel_display.c | 116 +++++++++++++++++- drivers/gpu/drm/i915/display/intel_display.h | 4 + .../drm/i915/display/intel_display_types.h | 2 + drivers/gpu/drm/i915/display/intel_sprite.c | 15 ++- drivers/gpu/drm/i915/i915_reg.h | 22 ++++ include/drm/drm_crtc.h | 16 +++ include/drm/drm_plane.h | 21 ++++ 12 files changed, 369 insertions(+), 4 deletions(-) -- 2.23.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com> To: jani.nikula@linux.intel.com, daniel@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, ville.syrjala@linux.intel.com, daniels@collabora.com Subject: [Intel-gfx] [PATCH v3 0/5] Introduce drm scaling filter property Date: Tue, 31 Mar 2020 00:08:52 +0530 [thread overview] Message-ID: <20200330183857.13270-1-pankaj.laxminarayan.bharadiya@intel.com> (raw) This series is the continuation for the RFC that I posted earlier [1] [1] RFC: https://patchwork.freedesktop.org/series/73884/ 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 properties to allow userspace to select the driver's default scaling filter or Nearest-neighbor(NN) filter for scaling operations on crtc and plane. - Implements and enable integer scaling for i915 Userspace patch series link: https://github.com/lrusak/xbmc/pull/24 Thanks to Shashank for initiating this work. His initial work can be found here [2] [2] https://patchwork.freedesktop.org/patch/337082/ changes since v2: * Add per-crtc and per-plane scaling filter property (Ville) * Rename/refoctor functions and macros. * Duplicate the scaling filter in crtc and plane hw state (Ville) changes since v1: * Add userspace patch link to this cover letter. * 4/5 - Rearrange skl_scaler_setup_nearest_neighbor_filter() to iterate the registers directly instead of the phases and taps (Ville) Pankaj Bharadiya (5): drm: Introduce plane and CRTC scaling filter properties drm/drm-kms.rst: Add plane and CRTC scaling filter property documentation drm/i915: Introduce scaling filter related registers and bit fields. drm/i915/display: Add Nearest-neighbor based integer scaling support drm/i915: Enable scaling filter for plane and CRTC Documentation/gpu/drm-kms.rst | 12 ++ drivers/gpu/drm/drm_atomic_uapi.c | 8 ++ drivers/gpu/drm/drm_crtc.c | 78 ++++++++++++ drivers/gpu/drm/drm_plane.c | 78 ++++++++++++ .../gpu/drm/i915/display/intel_atomic_plane.c | 1 + drivers/gpu/drm/i915/display/intel_display.c | 116 +++++++++++++++++- drivers/gpu/drm/i915/display/intel_display.h | 4 + .../drm/i915/display/intel_display_types.h | 2 + drivers/gpu/drm/i915/display/intel_sprite.c | 15 ++- drivers/gpu/drm/i915/i915_reg.h | 22 ++++ include/drm/drm_crtc.h | 16 +++ include/drm/drm_plane.h | 21 ++++ 12 files changed, 369 insertions(+), 4 deletions(-) -- 2.23.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2020-03-30 18:48 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-30 18:38 Pankaj Bharadiya [this message] 2020-03-30 18:38 ` [Intel-gfx] [PATCH v3 0/5] Introduce drm scaling filter property Pankaj Bharadiya 2020-03-30 18:38 ` [PATCH v3 1/5] drm: Introduce plane and CRTC scaling filter properties Pankaj Bharadiya 2020-03-30 18:38 ` [Intel-gfx] " Pankaj Bharadiya 2020-04-07 17:28 ` Ville Syrjälä 2020-04-07 17:28 ` [Intel-gfx] " Ville Syrjälä 2020-04-08 9:47 ` Bharadiya,Pankaj 2020-04-08 9:47 ` [Intel-gfx] " Bharadiya,Pankaj 2020-04-08 13:35 ` Ville Syrjälä 2020-04-08 13:35 ` [Intel-gfx] " Ville Syrjälä 2020-03-30 18:38 ` [PATCH v3 2/5] drm/drm-kms.rst: Add plane and CRTC scaling filter property documentation Pankaj Bharadiya 2020-03-30 18:38 ` [Intel-gfx] " Pankaj Bharadiya 2020-03-30 19:38 ` Simon Ser 2020-03-30 19:38 ` [Intel-gfx] " Simon Ser 2020-03-30 18:38 ` [PATCH v3 3/5] drm/i915: Introduce scaling filter related registers and bit fields Pankaj Bharadiya 2020-03-30 18:38 ` [Intel-gfx] " Pankaj Bharadiya 2020-03-30 18:38 ` [PATCH v3 4/5] drm/i915/display: Add Nearest-neighbor based integer scaling support Pankaj Bharadiya 2020-03-30 18:38 ` [Intel-gfx] " Pankaj Bharadiya 2020-03-30 18:38 ` [PATCH v3 5/5] drm/i915: Enable scaling filter for plane and CRTC Pankaj Bharadiya 2020-03-30 18:38 ` [Intel-gfx] " Pankaj Bharadiya 2020-03-30 19:30 ` [PATCH v3 0/5] Introduce drm scaling filter property Simon Ser 2020-03-30 19:30 ` [Intel-gfx] " Simon Ser 2020-03-31 7:41 ` Pekka Paalanen 2020-03-31 7:41 ` [Intel-gfx] " Pekka Paalanen 2020-03-31 0:16 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Introduce drm scaling filter property (rev4) Patchwork 2020-03-31 0:40 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2020-03-31 10:20 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2020-04-08 13:44 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Introduce drm scaling filter property (rev5) Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200330183857.13270-1-pankaj.laxminarayan.bharadiya@intel.com \ --to=pankaj.laxminarayan.bharadiya@intel.com \ --cc=daniel@ffwll.ch \ --cc=daniels@collabora.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=jani.nikula@linux.intel.com \ --cc=ville.syrjala@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.