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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel