intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [Intel-gfx] [RFC][PATCH 0/5] Introduce drm scaling filter property
@ 2020-02-25  7:05 Pankaj Bharadiya
  2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 1/5] drm: Introduce " Pankaj Bharadiya
                   ` (7 more replies)
  0 siblings, 8 replies; 29+ messages in thread
From: Pankaj Bharadiya @ 2020-02-25  7:05 UTC (permalink / raw)
  To: jani.nikula, daniel, intel-gfx, dri-devel, ville.syrjala,
	airlied, maarten.lankhorst, tzimmermann, mripard,
	mihail.atanassov
  Cc: ankit.k.nautiyal, linux-kernel

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.

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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2020-03-16 15:14 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-25  7:05 [Intel-gfx] [RFC][PATCH 0/5] Introduce drm scaling filter property Pankaj Bharadiya
2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 1/5] drm: Introduce " Pankaj Bharadiya
2020-02-25  9:56   ` Jani Nikula
2020-02-25 10:09     ` Laxminarayan Bharadiya, Pankaj
2020-02-25 11:07       ` Jani Nikula
2020-03-10 16:01   ` Ville Syrjälä
2020-03-16  8:31     ` Daniel Vetter
2020-03-16 15:14       ` Ville Syrjälä
2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 2/5] drm/drm-kms.rst: Add Scaling filter property documentation Pankaj Bharadiya
2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 3/5] drm/i915: Enable scaling filter for plane and pipe Pankaj Bharadiya
2020-03-10 16:05   ` Ville Syrjälä
2020-03-12  8:58     ` Laxminarayan Bharadiya, Pankaj
2020-03-12 12:27       ` Ville Syrjälä
2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 4/5] drm/i915: Introduce scaling filter related registers and bit fields Pankaj Bharadiya
2020-03-10 16:08   ` Ville Syrjälä
2020-02-25  7:05 ` [Intel-gfx] [RFC][PATCH 5/5] drm/i915/display: Add Nearest-neighbor based integer scaling support Pankaj Bharadiya
2020-02-25  7:29   ` Daniel Stone
2020-02-28  5:50     ` Laxminarayan Bharadiya, Pankaj
2020-03-10 16:17   ` Ville Syrjälä
2020-03-12  9:13     ` Laxminarayan Bharadiya, Pankaj
2020-03-12 13:54       ` Ville Syrjälä
2020-03-13  8:45         ` Laxminarayan Bharadiya, Pankaj
2020-03-13 19:53           ` Ville Syrjälä
2020-02-25  7:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Introduce drm scaling filter property Patchwork
2020-02-25  7:50 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-03-12 14:04 ` [Intel-gfx] [RFC][PATCH 0/5] " Ville Syrjälä
2020-03-12 15:37   ` Laxminarayan Bharadiya, Pankaj
2020-03-12 16:01     ` Ville Syrjälä
2020-03-13 10:35       ` Pekka Paalanen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).